Compare commits

...

19 Commits

Author SHA1 Message Date
Jonas H
14c2f557fd claude ignore 2026-05-10 09:35:05 +02:00
Jonas H
9451af02dd sway screen record 2026-05-10 09:34:44 +02:00
Jonas H
c7edbb1be0 pi 2026-05-10 09:34:33 +02:00
Jonas H
ab93172f38 nvim 2026-05-10 09:34:27 +02:00
Jonas H
a820de87be claude 2026-05-10 09:34:17 +02:00
Jonas H
f908d84a9b llama stuff 2026-04-24 14:24:30 +02:00
Jonas H
c6df5667f7 zsh android variables 2026-04-24 14:24:04 +02:00
Jonas H
60095c6f61 wezterm light theme 2026-04-24 14:23:29 +02:00
Jonas H
a641087fae sway dark/light switch 2026-04-24 14:23:16 +02:00
Jonas H
248667468c BIG pi update with claude chat 2026-04-24 14:22:59 +02:00
Jonas H
fbb00a49ba rm claude-agent-sdk 2026-04-24 14:21:05 +02:00
Jonas H
08ac9d02f8 pi agents update 2026-04-24 14:20:54 +02:00
Jonas H
9dd1c319e0 nvim light theme 2026-04-24 14:20:32 +02:00
Jonas H
96bd163442 light theme 2026-04-24 14:20:14 +02:00
Jonas H
5b29f22fb4 wezterm update 2026-04-10 09:01:34 +02:00
Jonas H
4666776bda pi update 2026-04-10 09:01:25 +02:00
Jonas H
7106db51b5 nvim update 2026-04-10 09:01:18 +02:00
Jonas H
97316a8f7b opencode go 2026-04-06 20:06:05 +02:00
Jonas H
0982a37e4d updated subagent workflows 2026-04-06 20:05:59 +02:00
565 changed files with 109583 additions and 2077 deletions

12
.gitignore vendored
View File

@@ -12,3 +12,15 @@ pi/.pi/agent/auth.json.lock
pi/.pi/context.md
pi/.pi/agent/cache/modules
pi/.pi/agent/extensions/*/node_modules
claude/.claude/backups
claude/.claude/cache
claude/.claude/debug
claude/.claude/file-history
claude/.claude/paste-cache
claude/.claude/plans
claude/.claude/projects
claude/.claude/statsig
claude/.claude/tasks
claude/.claude/telemetry
claude/.claude/todos
claude/.claude/stats-cache.json

View File

@@ -0,0 +1 @@
{"claudeAiOauth":{"accessToken":"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","refreshToken":"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","expiresAt":1778258586609,"scopes":["user:file_upload","user:inference","user:mcp_servers","user:profile","user:sessions:claude_code"],"subscriptionType":"max","rateLimitTier":"default_claude_max_5x"}}

View File

@@ -0,0 +1,23 @@
---
name: code_review
description: Expert code reviewer that analyzes code for bugs, style issues, and improvements
tools: Read, Bash, Edit, Write
model: sonnet
---
You are an expert code reviewer. You analyze code for bugs, performance issues, style inconsistencies, and architectural concerns. You fix issues directly whenever possible, applying edits to the code. When you do need to report rather than fix, include specific line references. Prioritize fixes by severity and focus on changes that have the most impact.
Available tools:
- read: Read file contents
- bash: Execute bash commands
- edit: Make surgical edits to files
- write: Create or overwrite files
Guidelines:
- Use bash for file operations: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to examine files before editing
- Use edit for precise changes (old text must match exactly)
- Use write only for new files or complete rewrites
- When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did
- Be concise in your responses
- Show file paths clearly when working with files

View File

@@ -0,0 +1,21 @@
---
name: debug
description: Expert debugger that traces issues through codebases and pinpoints root causes
tools: Read, Bash
model: sonnet
---
You are an expert debugger. You trace issues through codebases by reading code, following execution paths, and identifying root causes. You provide specific file paths, line numbers, and code snippets that explain where and why things go wrong. You suggest fixes but do not apply them directly — your job is to pinpoint the problem precisely so it can be fixed quickly.
Available tools:
- read: Read file contents
- bash: Execute bash commands
Guidelines:
- Use bash for codebase exploration: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to trace execution paths through files
- When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did
- Always cite specific file paths and line numbers
- Explain the root cause, not just the symptom
- When multiple possible causes exist, rank them by likelihood
- Be concise in your responses

View File

@@ -0,0 +1,34 @@
---
name: implementor
description: Implements a fix or feature from a plan or description, handling the full build-and-verify cycle
tools: Read, Bash, Edit, Write
model: sonnet
---
You are an implementation-focused coding agent. Your job is to take a plan, bug description, or feature request and produce working code that implements it correctly.
Available tools:
- read: Read file contents
- bash: Execute bash commands
- edit: Make surgical edits to files
- write: Create or overwrite files
Guidelines:
- Use bash for file operations: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to examine files before editing them
- Always understand the relevant code context before making changes
- Make the smallest correct change that solves the problem
- After making changes, run build/compile/lint commands to verify correctness
- If the build fails, diagnose the error and fix it — iterate until everything passes
- When summarizing your actions, output plain text directly - do NOT use cat or echo to display what you did
- Be concise in your responses
- Show file paths clearly when working with files
## Workflow
1. **Understand** — read the relevant files and understand the existing code
2. **Plan internally** — decide which files need changes and what the changes are
3. **Implement** — apply all changes using edit/write
4. **Verify** — run build, tests, or lint to confirm the changes are correct
5. **Fix** — if verification fails, diagnose and repair, then re-verify
6. **Report** — summarize what was changed, which files were modified, and the verification result

View File

@@ -0,0 +1,23 @@
---
name: minimal
description: Pi development agent with project-specific rules
tools: Read, Bash, Edit, Write, AskUserQuestion, WebFetch, WebSearch, Task, TodoRead, TodoWrite, Monitor, mcp__pi__ask
model: sonnet
---
You are an expert coding assistant. You help users with coding tasks by reading files, executing commands, editing code, and writing new files.
Available tools:
- read: Read file contents
- bash: Execute bash commands
- edit: Make surgical edits to files
- write: Create or overwrite files
Guidelines:
- Use bash for file operations: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to examine files before editing
- Use edit for precise changes (old text must match exactly)
- Use write only for new files or complete rewrites
- When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did
- Be concise in your responses
- Show file paths clearly when working with files

View File

@@ -0,0 +1,21 @@
---
name: oracle
description: Senior advisor that provides architectural insights, guidance, and clarifications for complex problems
tools: Read, Bash
model: opus
---
You are a senior technical advisor. You provide insights, guidance, and clarifications when agents or developers encounter hard problems. You analyze codebases to understand context, then offer clear explanations, architectural reasoning, and concrete recommendations. You do not write code — you illuminate the path forward so others can act with confidence.
Available tools:
- read: Read file contents
- bash: Execute bash commands
Guidelines:
- Use bash for codebase exploration: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to deeply understand relevant code and context
- When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did
- Provide clear reasoning, not just answers
- Frame trade-offs explicitly when multiple approaches exist
- Reference specific files and patterns from the codebase to support your guidance
- Be concise in your responses

View File

@@ -0,0 +1,18 @@
---
name: plan_review
description: Expert plan reviewer that evaluates implementation plans for completeness and feasibility
tools: Read, Bash
model: opus
---
You are an expert plan reviewer. You evaluate implementation plans for correctness, completeness, feasibility, and risk. You identify missing steps, unclear requirements, potential blockers, and suggest concrete alternatives where plans fall short. You ensure plans are well-sequenced, testable, and account for edge cases.
Available tools:
- read: Read file contents
- bash: Execute bash commands
Guidelines:
- Use bash for file operations: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching
- Use read to examine files
- When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did
- Be concise in your responses

View File

@@ -0,0 +1,327 @@
Configure your Claude status bars — themes, colours, and animations. $ARGUMENTS
The claude-pulse script is at: [REPLACE_WITH_YOUR_PATH]/claude_status.py
---
## ROUTING — decide what to do based on $ARGUMENTS
### Direct commands (skip the menu, run immediately):
If $ARGUMENTS matches a **theme name** (`default`, `ocean`, `sunset`, `mono`, `neon`, `pride`, `frost`, `ember`, `candy`, `rainbow`):
-> Run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --theme <name>` directly, no menu.
-> Confirm: "Theme set to **<name>**. The status line will update on the next refresh."
If $ARGUMENTS is `config` or `settings`:
-> Run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --config` silently.
-> Summarise the settings in your response text (don't show raw ANSI output).
If $ARGUMENTS is exactly `show` (no parts after it), or `show all`, or `colors`, or `colours`, or `preview`:
-> Run TWO separate Bash commands (in parallel) so the output is NOT collapsed behind ctrl+o:
1. `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --show-themes`
2. `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --show-colors`
-> IMPORTANT: Show the raw command output DIRECTLY to the user. Do NOT summarise, reformat, or create tables. The commands output coloured ANSI text with live theme previews — the user needs to see the actual coloured bars, not a markdown description of them. Just run the commands and let the output speak for itself.
-> After both commands, say ONLY: "Press **Ctrl+O** to expand and see the colours."
If $ARGUMENTS contains `hide <parts>` or `show <parts>` (with specific parts like extra, timer, etc.):
-> Run the corresponding `--hide` or `--show` command directly.
If $ARGUMENTS is `animate on` or `animate off`:
-> Run `--animate on|off` directly.
If $ARGUMENTS matches `text-color <name>` or `text-colour <name>`:
-> Run `--text-color <name>` directly.
-> Available colours: auto, white, bright_white, cyan, blue, green, yellow, magenta, red, orange, violet, pink, dim, default, none
If $ARGUMENTS matches `currency <symbol>` (e.g. `currency £`, `currency €`, `currency $`):
-> Run `--currency <symbol>` directly.
-> Confirm: "Currency set to **<symbol>**. Extra usage will display as <symbol>amount."
If $ARGUMENTS matches `bar-size <size>` or `bars <size>` (where size is `small`, `small-medium`, `medium`, `medium-large`, or `large`):
-> Run `--bar-size <size>` directly.
-> Confirm: "Bar size set to **<size>**. The status line will update on the next refresh."
If $ARGUMENTS matches `max-width <number>` (where number is 20100):
-> Run `--max-width <number>` directly.
-> Confirm: "Max width set to **<number>%** of terminal. The status line will update on the next refresh."
If $ARGUMENTS matches `bar-style <name>` or `style <name>` (where name is `classic`, `block`, `shade`, `pipe`, `dot`, `square`, or `star`):
-> Run `--bar-style <name>` directly.
-> Confirm: "Bar style set to **<name>**. The status line will update on the next refresh."
If $ARGUMENTS matches `layout <name>` (where name is `standard`, `compact`, `minimal`, or `percent-first`):
-> Run `--layout <name>` directly.
-> Confirm: "Layout set to **<name>**. The status line will update on the next refresh."
If $ARGUMENTS matches `extra-display <mode>` (where mode is `auto`, `full`, or `amount`):
-> Run `--extra-display <mode>` directly.
-> Confirm with description:
- `auto`: "Extra display set to **auto**. Shows amount only if you have no spending limit, full bar otherwise."
- `full`: "Extra display set to **full**. Shows progress bar with amount spent and limit."
- `amount`: "Extra display set to **amount**. Shows just how much you've spent, no bar."
If $ARGUMENTS matches `weekly-timer-format <mode>` or `reset-format <mode>` (where mode is `auto`, `countdown`, `date`, or `full`):
-> Run `--weekly-timer-format <mode>` directly.
-> Confirm with description:
- `auto`: "Weekly timer format set to **auto**. Shows date when >24h away, countdown when <24h."
- `countdown`: "Weekly timer format set to **countdown**. Always shows time remaining (e.g. 2d 5h)."
- `date`: "Weekly timer format set to **date**. Always shows the reset day (e.g. Sat 5pm)."
- `full`: "Weekly timer format set to **full**. Shows both date and countdown (e.g. Sat 5pm · 2d 5h)."
If $ARGUMENTS matches `weekly-timer-prefix <text>` or `reset-prefix <text>`:
-> Run `--weekly-timer-prefix <text>` directly.
-> Confirm: "Weekly timer prefix set to **<text>**."
-> If empty string, confirm: "Weekly timer prefix removed. Reset time will show without a prefix."
If $ARGUMENTS matches `preset <name>` or `minimal` or `default preset`:
-> If $ARGUMENTS is just `minimal`, run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --preset minimal`
-> Otherwise extract the preset name and run `--preset <name>`
-> Show the output including the preview line.
-> Explain: "This preset configures bar size, layout, and visibility in one step. Use `/pulse default preset` to restore defaults."
If $ARGUMENTS is `update`:
-> Run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --update` and show the output.
-> After a successful update, remind the user to restart Claude Code to use the new version.
### Interactive menu (when $ARGUMENTS is empty, `themes`, `theme`, or `menu`):
**Step 0 — Quick tips & update check:**
First, show the user available quick commands so they know what's possible:
> **Quick commands:** `/pulse show` preview all themes · `/pulse ocean` set a theme · `/pulse config` see settings · `/pulse update` check for updates
Then run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --config` silently to get the current settings. If the output contains "update available" or similar, also tell the user:
> **A new version of claude-pulse is available!** Run `/pulse update` to get the latest features and fixes.
Then continue with the wizard. If no update is available, skip the update message.
**Step 1:** Run `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --themes-demo` and show the output to the user. This prints all 10 themes with their actual coloured bars so the user can see every option before picking.
**Step 2:** Show the first `AskUserQuestion` picker (page 1 of 3):
```
Question: "Pick a theme from the preview above"
Header: "Theme"
multiSelect: false
Options:
- "rainbow" — "Full-spectrum rainbow colours across all bars"
- "default" — "Classic green → yellow → red traffic-light"
- "ocean" — "Cool cyan → blue → magenta"
- "More themes..." — "See all 10 themes"
```
**Step 2b:** If "More themes...", show page 2:
```
Question: "Pick a theme"
Header: "Theme"
multiSelect: false
Options:
- "frost" — "Icy light blue → steel blue → bright white"
- "ember" — "Gold amber → hot orange → bright red"
- "candy" — "Hot pink → purple → bright cyan"
- "More themes..." — "See neon, sunset, pride, mono"
```
**Step 2c:** If "More themes..." again, show page 3:
```
Question: "Pick a theme"
Header: "Theme"
multiSelect: false
Options:
- "neon" — "Vivid bright green → yellow → red"
- "sunset" — "Warm yellow → orange → red"
- "pride" — "Violet → green → pink"
- "← Back" — "Return to the first set of themes"
```
If "← Back", go back to Step 2. Mono is available via "Other" on any page (it's visible in the preview above).
**Step 3:** After the user picks a theme, apply it with `--theme <name>`.
**Step 4:** If the chosen theme is NOT rainbow, ask about text colour. Use the theme-specific recommendation as the top option:
Theme-specific text colour recommendations:
- **ocean** → recommend **cyan** — "Cool cyan that complements the blue/magenta bars"
- **sunset** / **ember** → recommend **yellow** — "Warm tone that complements the orange/red bars"
- **frost** → recommend **cyan** — "Icy tone that complements the blue/white bars"
- **candy** → recommend **pink** — "Pink that complements the purple/cyan bars"
- **neon** → recommend **green** — "Bright green that matches the neon energy"
- **pride** → recommend **violet** — "Violet that complements the green/pink bars"
- **default** / **mono** / anything else → recommend **white** — "Neutral light grey that works with any bars"
```
Question: "What colour for the labels and percentages?"
Header: "Text colour"
multiSelect: false
Options:
- "<theme recommendation> (Recommended)" — "<reason from above>"
- "White" — "Neutral light grey — works with any theme"
- "Default" — "Your terminal's default text colour"
- "<a contrasting option>" — pick one that contrasts with the theme: cyan, magenta, green, yellow, etc.
```
If they pick the recommended option for a specific theme, use `--text-color <colour>` (e.g. `--text-color cyan` for ocean).
If they pick "White", use `--text-color white`.
If they pick "Default", use `--text-color default`.
**Step 5:** Ask about animation. The question depends on the chosen theme:
If the chosen theme IS **rainbow**:
```
Question: "Enable the flowing rainbow animation?"
Header: "Animation"
multiSelect: false
Options:
- "On (Recommended)" — "Rainbow colours flow across the bar while Claude is active"
- "Off" — "Rainbow colours without the flowing effect"
```
If the chosen theme is NOT rainbow:
```
Question: "Enable rainbow animation on your bars?"
Header: "Animation"
multiSelect: false
Options:
- "Off (Recommended)" — "Keep your theme's own colours"
- "On" — "Override bar colours with a flowing rainbow gradient"
```
If they pick "On", run `--animate on`. If "Off", run `--animate off`.
**Step 6:** Ask about bar size:
```
Question: "How wide should the progress bars be?"
Header: "Bar size"
multiSelect: false
Options:
- "Medium (Recommended)" — "8 characters — balanced default"
- "Small" — "4 characters — compact, more room for text"
- "Small-Medium" — "6 characters — between compact and balanced"
- "Medium-Large" — "10 characters — slightly wider than default"
- "Large" — "12 characters — wide bars, more visual detail"
```
Apply with `--bar-size <small|small-medium|medium|medium-large|large>`.
**Step 7:** Check extra credits status by running `python "[REPLACE_WITH_YOUR_PATH]/claude_status.py" --config` silently and checking the "Extra Credits" section.
If credits are **active** (Status: active), ask:
```
Question: "You have bonus credits from Claude. How should extra usage appear?"
Header: "Extra credits"
multiSelect: false
Options:
- "Dynamic (Recommended)" — "Auto-shows when credits are active, hides when not"
- "Always show" — "Always display extra credits, even if none are gifted"
- "Hide" — "Never show extra credits on the status line"
```
If they pick "Dynamic": this is the default behaviour — no command needed (leave defaults).
If they pick "Always show", run `--show extra`.
If they pick "Hide", run `--hide extra`.
If credits are **not active**, ask a simpler version:
```
Question: "If Claude gifts you bonus credits in the future, show them?"
Header: "Extra credits"
multiSelect: false
Options:
- "Dynamic (Recommended)" — "Auto-shows when credits appear, stays hidden otherwise"
- "Hide" — "Never show, even if credits are gifted later"
```
If "Dynamic", no command needed (default). If "Hide", run `--hide extra`.
**Step 7b:** If credits are **active** AND the user chose "Dynamic" or "Always show" in Step 7, ask about display mode:
```
Question: "How should extra credits be displayed?"
Header: "Display"
multiSelect: false
Options:
- "Full bar (Recommended)" — "Progress bar with amount spent and limit"
- "Amount only" — "Just show how much you've spent, no bar"
- "Auto-detect" — "Shows amount only if you have no spending limit"
```
If they pick "Full bar", run `--extra-display full`.
If they pick "Amount only", run `--extra-display amount`.
If they pick "Auto-detect", run `--extra-display auto`.
If credits are **not active**, skip this question (they'll get the `auto` default).
**Step 8:** Ask about currency (only if they chose "Dynamic" or "Always show"):
```
Question: "What currency symbol for your extra credits?"
Header: "Currency"
multiSelect: false
Options:
- "£ (GBP)" — "British Pound (default)"
- "$ (USD)" — "US Dollar"
- "€ (EUR)" — "Euro"
```
The user can also pick "Other" and type any symbol (e.g. ¥, ₹, kr, CHF, etc.).
Apply with `--currency <symbol>`.
**Step 9:** Ask about update notifications:
```
Question: "Allow claude-pulse to check for updates?"
Header: "Updates"
multiSelect: false
Options:
- "Yes (Recommended)" — "Shows a small ↑ indicator when a new version is available. Notification only — never auto-updates."
- "No" — "Keep your current version, no update checks. You can always update manually later with /pulse update."
```
If they pick "Yes", no command needed (default). If "No", run `--hide update`.
**Step 10:** Confirm everything:
"All set! Your status line is now using **<theme>** with **<text colour>** text and animation **<on/off>**. It'll update on the next refresh (~30s) or restart Claude Code to see it immediately."
If credits were shown, also mention the display format:
- If display mode is "full": "Your bonus credits will appear as **Extra ━━━━ <currency>used/<currency>limit**."
- If display mode is "amount": "Your bonus credits will appear as **Extra <currency>amount**."
- If display mode is "auto": "Your bonus credits will auto-detect the best display format."
---
### Visibility settings (when $ARGUMENTS is `visibility` or `toggles`):
Use AskUserQuestion:
```
Question: "Which parts should be visible on your status line?"
Header: "Visibility"
multiSelect: true
Options:
- "Session usage" — "5-hour usage block with progress bar and timer"
- "Weekly usage" — "7-day rolling limit across all models"
- "Weekly reset timer" — "When the 7-day window resets (date or countdown)"
- "Plan name" — "Shows Pro / Max 5x / Max 20x"
- "Timer" — "Countdown until session resets"
```
Then apply the appropriate `--show` and `--hide` commands based on what the user selected vs deselected.
Mention: "You can also enable **extra usage** tracking (bonus/overflow credits) with `/pulse show extra`, or hide the **Claude Code update** indicator with `/pulse hide claude_update`."
---
## DISPLAY RULES
- After any theme/visibility change, tell the user the status line will update on the next refresh (~30 seconds) or they can restart Claude Code to see it immediately.
- When running `--config`, summarise in your own text — don't show raw terminal output (it has ANSI codes that collapse in the UI).
- Always be enthusiastic and brief. This is a fun cosmetic feature.

View File

@@ -0,0 +1,17 @@
{
"fetchedAt": "2026-03-28T09:20:26.099Z",
"plugins": [
{
"plugin": "code-review@claude-plugins-official",
"added_at": "2026-02-11T03:16:31.424Z",
"reason": "just-a-test",
"text": "This is a test #5"
},
{
"plugin": "fizz@testmkt-marketplace",
"added_at": "2026-02-12T00:00:00.000Z",
"reason": "security",
"text": "this is a security test"
}
]
}

View File

@@ -0,0 +1,34 @@
# rust-analyzer-lsp
Rust language server for Claude Code, providing code intelligence and analysis.
## Supported Extensions
`.rs`
## Installation
### Via rustup (recommended)
```bash
rustup component add rust-analyzer
```
### Via Homebrew (macOS)
```bash
brew install rust-analyzer
```
### Via package manager (Linux)
```bash
# Ubuntu/Debian
sudo apt install rust-analyzer
# Arch Linux
sudo pacman -S rust-analyzer
```
### Manual download
Download pre-built binaries from the [releases page](https://github.com/rust-lang/rust-analyzer/releases).
## More Information
- [rust-analyzer Website](https://rust-analyzer.github.io/)
- [GitHub Repository](https://github.com/rust-lang/rust-analyzer)

View File

@@ -0,0 +1,18 @@
{
"name": "claude-pulse",
"owner": {
"name": "PigeonDroid"
},
"metadata": {
"description": "Live usage status bar for Claude Code — session limits, weekly usage, lines changed, widget priorities, 10 themes, and zero API calls"
},
"plugins": [
{
"name": "claude-pulse",
"source": "./",
"description": "Real-time usage monitor with 20+ widgets, priority ordering, +N/-N code changes, 10 themes, shimmer animations, and zero API calls for usage data",
"version": "3.0.0",
"homepage": "https://github.com/NoobyGains/claude-pulse"
}
]
}

View File

@@ -0,0 +1,13 @@
{
"name": "claude-pulse",
"description": "Live usage status bar for Claude Code — session limits, weekly usage, lines changed, 10 themes, widget priorities, shimmer animations, and zero API calls",
"version": "3.0.0",
"author": {
"name": "PigeonDroid"
},
"homepage": "https://github.com/NoobyGains/claude-pulse",
"repository": "https://github.com/NoobyGains/claude-pulse",
"license": "MIT",
"keywords": ["status", "usage", "themes", "status-bar", "monitoring", "pulse", "widgets"],
"commands": "./commands/"
}

View File

@@ -0,0 +1 @@
buy_me_a_coffee: noobygains

View File

@@ -0,0 +1,3 @@
__pycache__/
*.pyc
.env

View File

@@ -0,0 +1,26 @@
Source Available License
Copyright (c) 2026 PigeonDroid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to use
and modify the Software for personal or internal purposes, subject to the
following conditions:
1. The Software may NOT be redistributed, published, sublicensed, or shared
in any form — whether modified or unmodified — without prior written
permission from the copyright holder.
2. The Software may NOT be sold, resold, or included in any product or
service offered for sale.
3. This license notice and the above copyright notice shall be included in
all copies or substantial portions of the Software retained by the user.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,267 @@
<p align="center">
<img src="assets/logo.svg" alt="claude-pulse logo" width="600" />
</p>
<p align="center">
Real-time usage monitor for Claude Code — session limits, weekly limits, cost tracking, peak hours, and 10 themes with animations. All in your status bar.
</p>
<p align="center">
<a href="https://github.com/NoobyGains/claude-pulse/stargazers"><img src="https://img.shields.io/github/stars/NoobyGains/claude-pulse?style=social" alt="GitHub Stars" /></a>
<img src="https://img.shields.io/github/v/tag/NoobyGains/claude-pulse?label=version&color=blue" alt="Version" />
<img src="https://img.shields.io/badge/python-3.6+-3776AB?logo=python&logoColor=white" alt="Python 3.6+" />
<img src="https://img.shields.io/badge/dependencies-zero-brightgreen" alt="Zero Dependencies" />
<img src="https://img.shields.io/badge/Claude%20Code-v2.1.80+-7C3AED?logo=anthropic&logoColor=white" alt="Claude Code v2.1.80+" />
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey" alt="Platform" />
<a href="https://github.com/NoobyGains/claude-pulse/blob/main/LICENSE"><img src="https://img.shields.io/github/license/NoobyGains/claude-pulse?color=green" alt="License" /></a>
<a href="https://buymeacoffee.com/noobygains"><img src="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-FFDD00?logo=buymeacoffee&logoColor=black" alt="Buy Me A Coffee" /></a>
</p>
---
## What is this?
A single-file Python status bar for Claude Code that shows everything you need at a glance — no API key required, zero dependencies, works with your existing Claude Code subscription.
<p align="center">
<img src="assets/demo.gif" alt="claude-pulse themes demo" width="700" />
<br>
<sub>10 built-in themes with colour-coded bars that shift green → yellow → red as usage increases</sub>
</p>
<p align="center">
<img src="assets/rainbow.gif" alt="Rainbow animation demo" width="700" />
<br>
<sub>Rainbow animation — flowing gradient that shifts on every refresh</sub>
</p>
<p align="center">
<img src="assets/update.gif" alt="Update notification demo" width="700" />
<br>
<sub>Automatic update notifications for both claude-pulse and Claude Code</sub>
</p>
```
Session ━━━───────── 27% 2h 53m | Weekly ━━━━━━━━━─── 73% R:Fri 3pm | Context ━━━━──────── 35% | $38.75 | +142 -37 | In Peak ⚡2x 2h 54m left (1pm-7pm) | Opus 4.6 | [\] 320 tools 51m | main
```
## Features
| Feature | Description |
|---|---|
| **Session & Weekly bars** | Colour-coded progress bars (green → yellow → red) for 5-hour session and 7-day weekly limits |
| **Context window** | Live context usage percentage with pressure warnings at 70%/90% |
| **Cost tracking** | Real-time session cost in your local currency (USD, GBP, EUR, + 25 more) with live exchange rates |
| **Peak hours** | Configurable indicator for Anthropic's peak consumption window — red **In Peak ⚡** when limits burn faster, yellow when **approaching**, green **Off-Peak ✓** when limits stretch further. Full and minimal display modes |
| **Live heartbeat** | Spinning indicator with tool count and elapsed time (via PostToolUse hook) |
| **Git branch** | Current branch name always visible |
| **Model display** | Shows which model is active (Opus, Sonnet, Haiku) |
| **10 themes** | default, ocean, sunset, mono, neon, pride, frost, ember, candy, rainbow |
| **5 animation modes** | off, rainbow, pulse, glow, shift — each visually distinct |
| **8 bar styles** | classic, block, shade, pipe, dot, square, star, braille |
| **Lines changed** | Shows `+42 -7` in green/red — lines added and removed this session, read from stdin |
| **Cumulative cost** | Opt-in widget showing total API-equivalent cost across all sessions (cached, 5-min refresh) |
| **Widget priorities** | Every widget has a priority number — reorder them with `--priority model=5,cost=15` |
| **Focus timer** | Built-in focus timer — `--focus start 25` shows countdown in the status bar |
| **Auto-updates** | Notifies when a new version of claude-pulse or Claude Code is available |
| **Staleness indicator** | Shows data age when cached data is old |
| **Zero API calls** | Reads rate limits directly from Claude Code's stdin (v2.1.80+) — no OAuth, no rate limiting |
## Quick Start
### Plugin marketplace (recommended)
```
/plugin marketplace add NoobyGains/claude-pulse
/plugin install claude-pulse
```
Then run `/pulse` to configure. Restart Claude Code.
### One-liner install
**macOS / Linux:**
```bash
curl -fsSL https://raw.githubusercontent.com/NoobyGains/claude-pulse/main/install.sh | bash
```
**Windows (PowerShell):**
```powershell
irm https://raw.githubusercontent.com/NoobyGains/claude-pulse/main/install.ps1 | iex
```
### Manual install
```bash
git clone https://github.com/NoobyGains/claude-pulse.git ~/.claude-pulse
python3 ~/.claude-pulse/claude_status.py --install
```
Restart Claude Code. That's it.
### Enable the live heartbeat (optional)
The heartbeat shows a tool counter and elapsed time, updated on every tool call:
```bash
python3 ~/.claude-pulse/claude_status.py --install-hooks
```
Restart Claude Code for hooks to take effect.
## Configuration
Use `/pulse` in Claude Code for an interactive setup wizard, or configure directly:
```bash
# Themes
--theme ocean # ocean, sunset, mono, neon, pride, frost, ember, candy, rainbow
# Animation
--animate rainbow # rainbow, pulse, glow, shift, off
--animation-speed fast # slow, normal, fast
# Display
--bar-size large # small, small-medium, medium, medium-large, large
--bar-style block # classic, block, shade, pipe, dot, square, star, braille
--layout compact # standard, compact, minimal, percent-first
--wrap auto # off (default, truncate) or auto (wrap to 2 lines at | when narrow)
# Currency (auto-converts USD via live exchange rate)
--currency £ # $, £, €, ¥, C$, A$, ₹, kr, and 20+ more
# Peak hours (local time) — red in peak, green off-peak
--peak-hours 13:00-19:00 # Set your peak window
--peak-hours off # Disable peak indicator
# Set "display": "minimal" in config for short format (⚡ Peak 2h)
# Clock
--clock-format 12h # 12h or 24h
# Widget priority (lower = leftmost)
--priority # Show all widget priorities
--priority model=5,cost=15 # Move model first, cost after session
# Toggle features
--show lines # Show +N/-N lines changed
--show burn_rate # Show usage velocity (↑3%/hr)
--show git_drift # Show commits ahead/behind
--show cumulative_cost # Show total API-equivalent cost across all sessions
--show files_changed # Show modified file count
--show last_tool # Show last tool Claude used
--hide cost # Hide cost ticker
--hide heartbeat # Hide tool counter
# Focus timer
--focus start 25 # Start a 25-minute focus timer
--focus stop # Stop the timer
--focus status # Check remaining time
# Info
--config # Show current configuration
--stats # Show session statistics
--heatmap # Show activity heatmap
--update # Update to latest version
```
## How It Works
```
┌───────────────────────────────────────────────┐
│ Claude Code │
│ Pipes JSON via stdin on every status refresh │
│ (model, context %, cost, rate_limits) │
├───────────────────────────────────────────────┤
│ claude_status.py │
│ Reads stdin → builds ANSI status line │
│ No API calls needed (v2.1.80+) │
├───────────────────────────────────────────────┤
│ PostToolUse Hook (optional) │
│ Updates tool count, heartbeat, git branch │
│ on every tool call │
├───────────────────────────────────────────────┤
│ Cache Layer │
│ Exchange rates (24h) · cumulative cost (5m) │
│ hook state (5m) │
│ Animation state · usage history │
└───────────────────────────────────────────────┘
```
**Data flow:** Claude Code sends session JSON via stdin → claude-pulse reads rate limits directly (no API) → renders colourised ANSI status line → Claude Code displays it.
**Rate limits from stdin (v2.1.80+):** Claude Code now includes `rate_limits.five_hour` and `rate_limits.seven_day` in the stdin JSON, so claude-pulse no longer needs to call the Anthropic OAuth API. This eliminates rate limiting issues entirely.
**PostToolUse hook:** When installed, the hook fires on every tool call (Read, Edit, Bash, etc.), updating the heartbeat counter and git branch. The status line refreshes on each tool call, making the spinner animate during active work.
## Themes
<p align="center">
<img src="themes.png" alt="All 10 themes" width="700" />
</p>
10 built-in themes with colour-coded bars that shift as usage increases. Set with `--theme <name>` or `/pulse <name>`.
## Animation Modes
| Mode | Effect |
|---|---|
| `off` | Static, no animation |
| `rainbow` | Flowing rainbow gradient across the entire bar |
| `pulse` | Bars cycle through vivid colours (cyan → blue → purple → pink → gold → green) |
| `glow` | Per-character gradient that shifts across the bar each frame |
| `shift` | Bright highlight slides across the bar |
Set with `--animate <mode>`. Animation moves on each status line refresh (interaction or tool call).
## Requirements
- **Python 3.6+** (no pip installs needed)
- **Claude Code** with a Pro or Max subscription
- No API key required — uses Claude Code's existing credentials
## Security
- **No API calls for usage data** — reads rate limits directly from Claude Code's stdin (v2.1.80+)
- OAuth tokens only used as fallback for extra credits/per-model caps, sent only to `api.anthropic.com` (hardcoded allowlist)
- All file writes use atomic operations with 0o600 permissions
- ANSI escape injection prevention on all external data
- No `shell=True` in any subprocess call
- Exchange rate API (frankfurter.app) — no auth, read-only, cached 24h
## Troubleshooting
| Issue | Fix |
|---|---|
| No status line visible | Run `--install` then restart Claude Code |
| "Rate limited" message | Update to v3.0.0+ — reads from stdin, no API calls needed |
| Heartbeat not showing | Run `--install-hooks` then restart Claude Code. Shows after first tool call |
| Heartbeat appears/disappears | Normal — shows when hook state is fresh (within 5 min of last tool call) |
| Settings error after hook install | Run `/doctor` — hooks need nested format: `{matcher, hooks: [{type, command}]}` |
| Stale data showing | Data refreshes on every interaction. If idle, it shows the last known state |
| Unicode characters broken | Try `--bar-style block` for better Windows terminal support |
## Support
If this project helped you, consider starring the repo, sharing it with others, or buying me a coffee.
<a href="https://buymeacoffee.com/noobygains"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" width="200" /></a>
## Star History
<a href="https://star-history.com/#NoobyGains/claude-pulse&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=NoobyGains/claude-pulse&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=NoobyGains/claude-pulse&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=NoobyGains/claude-pulse&type=Date" width="700" />
</picture>
</a>
## License
MIT — see [LICENSE](LICENSE) for details.
---
<p align="center">
Made by <a href="https://github.com/NoobyGains">NoobyGains</a> · <a href="https://www.reddit.com/user/PigeonDroid/">PigeonDroid</a>
</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -0,0 +1,50 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 250" width="700" height="250">
<defs>
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#eb5f57"/>
<stop offset="14%" stop-color="#f58b57"/>
<stop offset="28%" stop-color="#fac35f"/>
<stop offset="42%" stop-color="#91c882"/>
<stop offset="57%" stop-color="#82aadc"/>
<stop offset="71%" stop-color="#9b82c8"/>
<stop offset="85%" stop-color="#c882b4"/>
<stop offset="100%" stop-color="#eb5f57"/>
</linearGradient>
<filter id="g1"><feGaussianBlur stdDeviation="6"/></filter>
<filter id="g2"><feGaussianBlur stdDeviation="12"/></filter>
<filter id="g3"><feGaussianBlur stdDeviation="20"/></filter>
</defs>
<rect width="700" height="250" fill="#0d1117" rx="16"/>
<!-- Wide ambient glow -->
<polyline points="40,140 100,140 140,140 170,60 200,180 230,35 260,185 290,75 320,140 360,140 400,140"
fill="none" stroke="url(#g)" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"
opacity="0.15" filter="url(#g3)"/>
<!-- Medium glow -->
<polyline points="40,140 100,140 140,140 170,60 200,180 230,35 260,185 290,75 320,140 360,140 400,140"
fill="none" stroke="url(#g)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"
opacity="0.4" filter="url(#g2)"/>
<!-- Inner glow -->
<polyline points="40,140 100,140 140,140 170,60 200,180 230,35 260,185 290,75 320,140 360,140 400,140"
fill="none" stroke="url(#g)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"
opacity="0.6" filter="url(#g1)"/>
<!-- Sharp line -->
<polyline points="40,140 100,140 140,140 170,60 200,180 230,35 260,185 290,75 320,140 360,140 400,140"
fill="none" stroke="url(#g)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<!-- "claude" in white -->
<text x="430" y="120" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif"
font-size="48" font-weight="700" fill="#ffffff" letter-spacing="-1">claude</text>
<!-- "pulse" in gradient -->
<text x="430" y="168" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif"
font-size="48" font-weight="300" fill="url(#g)" letter-spacing="-1">pulse</text>
<!-- Subtle tagline -->
<text x="432" y="195" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif"
font-size="13" fill="#8b949e" letter-spacing="0.5">real-time usage monitor for Claude Code</text>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,235 @@
Configure your Claude status bars — themes, colours, animations, peak hours, and more. $ARGUMENTS
---
**Finding the script:** Before running any command below, you need the full path to `claude_status.py`. Do this ONCE at the start:
1. Read `~/.claude/settings.json`. If `statusLine.command` contains `claude_status.py`, extract the full script path from that string.
2. If not found, use the Glob tool to search for `**/claude_status.py` inside `~/.claude/plugins/` — pick the result containing `claude-pulse`.
3. If neither works, tell the user: "Run `/claude-pulse:setup` first to install the status bar."
Save the found path as SCRIPT_PATH. Use `python "SCRIPT_PATH"` for all commands below.
---
## ROUTING — decide what to do based on $ARGUMENTS
### Direct commands (skip the menu, run immediately):
If $ARGUMENTS matches a **theme name** (`default`, `ocean`, `sunset`, `mono`, `neon`, `pride`, `frost`, `ember`, `candy`, `rainbow`):
-> Run `python "SCRIPT_PATH" --theme <name>` directly, no menu.
-> Confirm: "Theme set to **<name>**. The status line will update on the next refresh."
If $ARGUMENTS is `config` or `settings`:
-> Run `python "SCRIPT_PATH" --config` silently.
-> Summarise the settings in your response text (don't show raw ANSI output).
If $ARGUMENTS is exactly `show` (no parts after it), or `show all`, or `colors`, or `colours`, or `preview`:
-> Run TWO separate Bash commands (in parallel):
1. `python "SCRIPT_PATH" --show-themes`
2. `python "SCRIPT_PATH" --show-colors`
-> Show the raw output to the user (coloured ANSI text with live previews).
-> After both commands, say ONLY: "Press **Ctrl+O** to expand and see the colours."
If $ARGUMENTS contains `hide <parts>` or `show <parts>` (with specific parts):
-> Run the corresponding `--hide` or `--show` command directly.
-> Valid parts: session, weekly, context, timer, weekly_timer, cost, model, branch, heartbeat, activity, update, claude_update, opus, sonnet, effort, worktree, pomodoro, context_warning, staleness, plan, extra, burn_rate, sessions, last_tool, sparkline, runway, status_message, streak, pace, git_drift, files_changed
If $ARGUMENTS matches `animate <mode>` (where mode is `off`, `rainbow`, `pulse`, `glow`, `shift`, `on`):
-> Run `--animate <mode>` directly.
-> Explain what the mode does:
- **off** — Static, no animation
- **rainbow** — Flowing rainbow gradient across the entire bar
- **pulse** — Bars cycle through vivid colours each refresh
- **glow** — Per-character gradient that shifts across the bar
- **shift** — Bright highlight slides across the bar
If $ARGUMENTS matches `text-color <name>` or `text-colour <name>`:
-> Run `--text-color <name>` directly.
If $ARGUMENTS matches `currency <symbol>` (e.g. `currency £`, `currency €`, `currency $`):
-> Run `--currency <symbol>` directly.
-> Explain: cost is auto-converted from USD using a live exchange rate (cached 24h).
If $ARGUMENTS matches `bar-size <size>`:
-> Run `--bar-size <size>` directly.
If $ARGUMENTS matches `bar-style <name>` or `style <name>`:
-> Run `--bar-style <name>` directly.
If $ARGUMENTS matches `layout <name>`:
-> Run `--layout <name>` directly.
If $ARGUMENTS matches `peak-hours <value>` or `peak <value>`:
-> Run `--peak-hours <value>` directly.
-> Examples: `peak-hours 13:00-19:00`, `peak-hours off`, `peak-hours on`
If $ARGUMENTS matches `animation-speed <speed>` or `speed <speed>`:
-> Run `--animation-speed <speed>` directly.
If $ARGUMENTS matches `focus start [minutes]` or `focus stop` or `focus status`:
-> Run `--focus <action> [minutes]` directly.
-> Default is 25 minutes if no duration given.
If $ARGUMENTS matches `clock <format>` (where format is `12h` or `24h`):
-> Run `--clock-format <format>` directly.
If $ARGUMENTS matches `preset <name>` or `minimal` or `default preset`:
-> Run the corresponding `--preset` command.
If $ARGUMENTS is `update`:
-> Run `python "SCRIPT_PATH" --update` and show the output.
If $ARGUMENTS is `hooks` or `install-hooks`:
-> Run `python "SCRIPT_PATH" --install-hooks` and show the output.
-> Remind user to restart Claude Code.
If $ARGUMENTS is `stats`:
-> Run `python "SCRIPT_PATH" --stats` and show the output.
If $ARGUMENTS is `heatmap`:
-> Run `python "SCRIPT_PATH" --heatmap` and show the output.
### Interactive menu (when $ARGUMENTS is empty, `themes`, `theme`, or `menu`):
**Step 0 — Quick tips:**
> **Quick commands:** `/pulse show` preview all themes · `/pulse ocean` set a theme · `/pulse config` see settings · `/pulse update` check for updates · `/pulse focus start` start a focus timer
Run `python "SCRIPT_PATH" --config` silently to check for updates.
**Step 1:** Run `python "SCRIPT_PATH" --themes-demo` and show the output.
**Step 2:** Theme picker (paginated as 3 pages):
Page 1:
```
Question: "Pick a theme from the preview above"
Options:
- "rainbow" — "Full-spectrum flowing colours"
- "default" — "Classic green → yellow → red"
- "ocean" — "Cool cyan → blue → magenta"
- "More themes..." — "See all 10 themes"
```
Page 2 (if "More themes..."):
```
Options:
- "frost" — "Icy blue → steel → white"
- "ember" — "Gold → hot orange → red"
- "candy" — "Pink → purple → cyan"
- "More themes..." — "See neon, sunset, pride, mono"
```
Page 3 (if "More themes..." again):
```
Options:
- "neon" — "Vivid bright green → yellow → red"
- "sunset" — "Warm yellow → orange → red"
- "pride" — "Violet → green → pink"
- "mono" — "White → white → bright white"
```
Apply with `--theme <name>`.
**Step 3:** Text colour (skip for rainbow):
Theme-specific recommendations: ocean→cyan, sunset/ember→yellow, frost→cyan, candy→pink, neon→green, pride→violet, default/mono→white.
```
Question: "What colour for labels and percentages?"
Options:
- "<recommendation> (Recommended)" — "<reason>"
- "White" — "Neutral, works with any theme"
- "Auto" — "Best match for your theme"
```
Apply with `--text-color <colour>`.
**Step 4:** Animation:
```
Question: "Choose an animation style"
Options:
- "Off (Recommended)" — "Static theme colours, clean and simple"
- "Rainbow" — "Flowing rainbow gradient"
- "Pulse" — "Bars cycle through vivid colours"
- "Glow" — "Gradient shifts across the bar"
- "Shift" — "Bright highlight slides across"
```
Apply with `--animate <mode>`.
**Step 5:** Bar size:
```
Question: "How wide should the progress bars be?"
Options:
- "Large (Recommended)" — "12 characters — detailed bars"
- "Medium" — "8 characters — balanced"
- "Small" — "4 characters — compact"
```
Apply with `--bar-size <size>`.
**Step 6:** Currency:
```
Question: "What currency for the cost ticker?"
Options:
- "$ (USD)" — "US Dollar (base currency)"
- "£ (GBP)" — "British Pound (auto-converted)"
- "€ (EUR)" — "Euro (auto-converted)"
- "Other" — "Type any symbol (¥, ₹, C$, kr, etc.)"
```
Apply with `--currency <symbol>`. Explain: the cost shows what this session would cost at API rates, converted to their currency via live exchange rate.
**Step 7:** Peak hours:
```
Question: "Enable peak hours indicator? (Anthropic's 2x consumption window)"
Options:
- "On — 1pm-7pm (Recommended)" — "Default window matching known peak times"
- "Custom" — "Set your own peak window"
- "Off" — "Don't show peak indicator"
```
If "Custom", ask for start and end time (HH:MM format). Apply with `--peak-hours <start>-<end>`.
If "On", apply `--peak-hours on`.
If "Off", apply `--peak-hours off`.
**Step 8:** Clock format:
```
Question: "Clock format for timers?"
Options:
- "12h" — "Fri 5pm"
- "24h" — "Fri 17:00"
```
Apply with `--clock-format <12h|24h>`.
**Step 9:** Live heartbeat hook:
```
Question: "Install the live heartbeat hook? (shows tool counter during active work)"
Options:
- "Yes (Recommended)" — "Adds [/] 42 tools 5m to your status bar"
- "No" — "Skip — you can install later with /pulse hooks"
```
If "Yes", run `python "SCRIPT_PATH" --install-hooks`. Remind to restart Claude Code.
**Step 10:** Confirm everything:
"All set! Your status bar is configured with **<theme>**, **<animation>** animation, **<currency>** cost tracking, and peak hours **<on/off>**. It updates on every interaction."
If hooks were installed: "Restart Claude Code to activate the live heartbeat."
---
## DISPLAY RULES
- After any change, tell the user it will update on the next refresh.
- When running `--config`, summarise — don't show raw ANSI.
- Be brief and enthusiastic.

View File

@@ -0,0 +1,16 @@
Set up the claude-pulse status bar. This is a one-time setup.
---
## Steps
1. **Find the script.** Use the Glob tool to search for `claude_status.py` inside `~/.claude/plugins/` recursively. The pattern is `**/claude_status.py`. Use the result that contains `claude-pulse` in the path. Save this as SCRIPT_PATH.
2. **Run the installer.** Execute: `python "SCRIPT_PATH" --install`
This adds the status line command and animation hooks to `~/.claude/settings.json`.
3. **Confirm to the user:**
- "claude-pulse is installed! Restart Claude Code to see your status bar."
- "Type `/claude-pulse:pulse` to configure themes, colours, and animations."
- "Type `/claude-pulse:pulse show` to preview all themes."

View File

@@ -0,0 +1,54 @@
{
"cache_ttl_seconds": 60,
"theme": "default",
"text_color": "auto",
"animate": "off",
"animation_speed": "normal",
"bar_size": "large",
"bar_style": "classic",
"layout": "standard",
"max_width": 80,
"context_format": "percent",
"weekly_timer_format": "auto",
"clock_format": "12h",
"extra_display": "auto",
"currency": "$",
"peak_hours": {
"enabled": true,
"start": "13:00",
"end": "19:00"
},
"show": {
"session": true,
"weekly": true,
"context": true,
"timer": true,
"weekly_timer": true,
"cost": true,
"model": true,
"branch": true,
"heartbeat": true,
"activity": true,
"update": true,
"claude_update": true,
"opus": true,
"sonnet": true,
"effort": true,
"worktree": true,
"pomodoro": true,
"context_warning": true,
"staleness": true,
"plan": false,
"extra": false,
"burn_rate": false,
"sessions": false,
"last_tool": false,
"sparkline": false,
"runway": false,
"status_message": false,
"streak": false,
"pace": false,
"git_drift": false,
"files_changed": false
}
}

View File

@@ -0,0 +1,687 @@
"""Generate an animated GIF showcasing claude-pulse inside Claude Code."""
import json
import sys
import tempfile
from pathlib import Path
THEME_CSS = {
"default": {"low": "#22c55e", "mid": "#eab308", "high": "#ef4444"},
"ocean": {"low": "#06b6d4", "mid": "#3b82f6", "high": "#a855f7"},
"sunset": {"low": "#eab308", "mid": "#ff8800", "high": "#ef4444"},
"neon": {"low": "#4ade80", "mid": "#facc15", "high": "#f87171"},
"frost": {"low": "#afffff", "mid": "#5fafff", "high": "#ffffff"},
"ember": {"low": "#ffd700", "mid": "#ff5f00", "high": "#f87171"},
"candy": {"low": "#ff87ff", "mid": "#af87ff", "high": "#00ffff"},
"pride": {"low": "#af5fff", "mid": "#00ffaf", "high": "#ff00af"},
"mono": {"low": "#d1d5db", "mid": "#d1d5db", "high": "#ffffff"},
"rainbow": {"low": "#ff0000", "mid": "#00ff00", "high": "#ff00ff"},
}
DIM_COLOR = "#3a3a3a"
RAINBOW_COLORS = ["#ff0000", "#ff8800", "#ffff00", "#00ff00", "#00ccff",
"#0066ff", "#8800ff", "#ff00ff", "#ff0066", "#ff4444"]
# Claude "Claw'd" pixel mascot as CSS pixel art (16x12 grid)
# R = coral body, D = dark eyes, . = transparent
# Square design: 12px wide body, 2px arm nubs on each side
MASCOT_PIXELS = [
"..RRRRRRRRRRRR..",
"..RRRRRRRRRRRR..",
"..RDDRRRRRRDDR..",
"..RDDRRRRRRDDR..",
"..RRRRRRRRRRRR..",
"RRRRRRRRRRRRRRRR",
"RRRRRRRRRRRRRRRR",
"..RRRRRRRRRRRR..",
"..RRRRRRRRRRRR..",
"..RRRRRRRRRRRR..",
"..RR.RR..RR.RR..",
"..RR.RR..RR.RR..",
]
def mascot_html():
"""Render the Claude pixel mascot as CSS grid pixel art."""
rows = []
for row in MASCOT_PIXELS:
for ch in row:
if ch == "R":
rows.append('<span class="px pr"></span>')
elif ch == "D":
rows.append('<span class="px pd"></span>')
elif ch == "N":
rows.append('<span class="px pn"></span>')
else:
rows.append('<span class="px"></span>')
return "\n ".join(rows)
def bar_color(pct, theme):
if pct >= 80:
return theme["high"]
if pct >= 50:
return theme["mid"]
return theme["low"]
def render_bar_html(pct, theme, width=10, rainbow=False, color_offset=0):
filled = round(pct / 100 * width)
filled = max(0, min(width, filled))
empty = width - filled
e_chars = "\u2500" * empty
if rainbow and filled > 0:
parts = ""
for j in range(filled):
c = RAINBOW_COLORS[(j + color_offset) % len(RAINBOW_COLORS)]
parts += f'<span style="color:{c}">\u2501</span>'
return f'{parts}<span style="color:{DIM_COLOR}">{e_chars}</span>'
color = bar_color(pct, theme)
f_chars = "\u2501" * filled
return f'<span style="color:{color}">{f_chars}</span><span style="color:{DIM_COLOR}">{e_chars}</span>'
def generate_frame_html(theme_name, theme, session_pct, weekly_pct, ctx_pct,
reset_time, plan, model, frame_num, total_frames, desc,
is_rainbow=False, color_offset=0,
extra_used="", extra_limit="",
show_update=False):
session_bar = render_bar_html(session_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset)
weekly_bar = render_bar_html(weekly_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset + 3)
ctx_bar = render_bar_html(ctx_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset + 6)
text_color = "#d1d5db"
sep = f'<span class="sep">|</span>'
sp = f"{session_pct:3d}%"
wp = f"{weekly_pct:3d}%"
cp = f"{ctx_pct:3d}%"
reset_str = f" {reset_time}" if reset_time else " "
extra_part = ""
if extra_used and extra_limit:
extra_pct = 100 * float(extra_used.replace("£", "")) / float(extra_limit.replace("£", ""))
extra_bar = render_bar_html(extra_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset + 9)
extra_part = (
f'{sep}'
f'<span class="sl">Extra </span>{extra_bar}'
f'<span class="sl"> {extra_used}/{extra_limit}</span>'
)
update_part = ""
if show_update:
update_part = f'{sep}<span style="color:#eab308;font-weight:bold">&#x2191; Pulse Update</span>'
status = (
f'<span class="sl">Session </span>{session_bar}'
f'<span class="sl"> {sp}{reset_str}</span>'
f'{sep}'
f'<span class="sl">Weekly </span>{weekly_bar}'
f'<span class="sl"> {wp}</span>'
f'{sep}'
f'<span class="sl">Context </span>{ctx_bar}'
f'<span class="sl"> {cp}</span>'
f'{extra_part}'
f'{update_part}'
f'{sep}'
f'<span class="sl">{plan}</span>'
f'{sep}'
f'<span class="sl">{model}</span>'
)
badge_color = theme["low"]
mascot = mascot_html()
return f'''<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');
* {{ margin: 0; padding: 0; box-sizing: border-box; }}
body {{
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
font-family: 'JetBrains Mono', 'Cascadia Code', 'Consolas', monospace;
}}
.terminal {{
background: #0c0c0c;
border-radius: 8px;
width: 920px;
height: 430px;
box-shadow: 0 8px 30px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.08);
overflow: hidden;
display: flex;
flex-direction: column;
position: relative;
}}
.titlebar {{
background: #202020;
padding: 7px 12px;
display: flex;
align-items: center;
border-bottom: 1px solid #2a2a2a;
flex-shrink: 0;
}}
.tab {{
background: #0c0c0c;
color: #aaa;
font-size: 11px;
padding: 5px 14px;
border-radius: 6px 6px 0 0;
display: flex;
align-items: center;
gap: 6px;
border: 1px solid #2a2a2a;
border-bottom: none;
margin-bottom: -1px;
}}
.tab-icon {{ color: #0078d4; font-size: 13px; }}
.spacer {{ flex: 1; }}
.win-controls {{ display: flex; gap: 0; }}
.win-btn {{
color: #888;
font-size: 11px;
padding: 4px 16px;
display: inline-flex;
align-items: center;
justify-content: center;
}}
.body {{ flex: 1; display: flex; flex-direction: column; overflow: hidden; }}
.conversation {{
flex: 1;
padding: 14px 20px;
overflow: hidden;
}}
/* ── Header ── */
.cc-title {{
color: #d4a574;
font-size: 12px;
margin-bottom: 10px;
padding-bottom: 8px;
border-bottom: 1px solid #d4a57433;
}}
/* ── Two-column welcome ── */
.welcome-row {{
display: flex;
gap: 0;
margin-bottom: 12px;
border: 1px solid #d4a57455;
border-radius: 6px;
overflow: hidden;
}}
.welcome-left {{
flex: 0 0 200px;
display: flex;
flex-direction: column;
align-items: center;
padding: 12px 10px;
border-right: 1px solid #d4a57433;
}}
.welcome-greeting {{
color: #e0e0e0;
font-size: 12px;
font-weight: 500;
margin-bottom: 10px;
text-align: center;
}}
.welcome-right {{
flex: 1;
padding: 12px 14px;
}}
/* Pixel mascot */
.mascot {{
display: grid;
grid-template-columns: repeat(16, 6px);
grid-template-rows: repeat(12, 6px);
gap: 1px;
margin-bottom: 8px;
}}
.px {{ width: 6px; height: 6px; background: transparent; }}
.pr {{ background: #d4735c; }}
.pd {{ background: #1a1a1a; }}
.pn {{ background: #b85e48; }}
.welcome-meta {{
color: #888;
font-size: 10px;
text-align: center;
line-height: 1.5;
}}
/* Right column */
.section-title {{
color: #d4a574;
font-size: 11px;
margin-bottom: 4px;
font-weight: 500;
}}
.tip-text {{
color: #888;
font-size: 10.5px;
line-height: 1.6;
margin-bottom: 10px;
}}
.recent-text {{
color: #666;
font-size: 10.5px;
}}
/* ── User message + Claude reply ── */
.user-msg {{
margin-bottom: 8px;
margin-top: 4px;
}}
.user-prompt {{
display: flex;
align-items: center;
gap: 6px;
}}
.user-prompt .arrow {{ color: #b388ff; font-size: 12px; }}
.user-text {{
color: #e0e0e0;
font-size: 12.5px;
font-weight: 500;
}}
.claude-reply {{
margin-bottom: 8px;
}}
.claude-reply .dot {{ color: #b388ff; font-size: 12px; }}
.claude-reply-text {{
color: #ccc;
font-size: 12px;
display: flex;
align-items: center;
gap: 5px;
}}
/* Prompt cursor */
.prompt-line {{
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
}}
.prompt-arrow {{ color: #b388ff; }}
.cursor {{
display: inline-block;
width: 8px;
height: 15px;
background: #b388ff;
opacity: 0.7;
}}
/* ── Divider ── */
.divider {{
border-top: 1px solid #222;
flex-shrink: 0;
}}
/* ── Status bar ── */
.status-area {{
padding: 8px 20px 6px 20px;
flex-shrink: 0;
}}
.status-line {{
font-size: 11.5px;
line-height: 1.5;
white-space: pre;
letter-spacing: 0;
font-variant-ligatures: none;
}}
.sl {{ color: {text_color}; }}
.sep {{ color: #555; padding: 0 0.3em; }}
/* ── Mode indicator ── */
.mode-bar {{
padding: 2px 20px 10px 20px;
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}}
.mode-icon {{ color: #b388ff; font-size: 11px; }}
.mode-text {{ color: #666; font-size: 11px; }}
.mode-hint {{ color: #444; font-size: 10px; }}
/* ── Theme badge ── */
.theme-overlay {{
position: absolute;
bottom: 12px;
right: 20px;
display: flex;
align-items: center;
gap: 8px;
}}
.theme-badge {{
display: inline-block;
background: rgba(255,255,255,0.06);
border: 1px solid {badge_color}44;
color: {badge_color};
padding: 3px 12px;
border-radius: 4px;
font-size: 10px;
letter-spacing: 1.5px;
text-transform: uppercase;
font-weight: 500;
}}
.frame-counter {{
color: #444;
font-size: 10px;
letter-spacing: 1px;
}}
</style>
</head>
<body>
<div class="terminal">
<div class="titlebar">
<div class="tab"><span class="tab-icon">&#x276F;</span> Windows PowerShell</div>
<div class="spacer"></div>
<div class="win-controls">
<span class="win-btn">&#x2500;</span>
<span class="win-btn">&#x25A1;</span>
<span class="win-btn close">&#x2715;</span>
</div>
</div>
<div class="body">
<div class="conversation">
<div class="cc-title">Claude Code v2.1.36</div>
<div class="welcome-row">
<div class="welcome-left">
<div class="welcome-greeting">Welcome back NoobyGains!</div>
<div class="mascot">
{mascot}
</div>
<div class="welcome-meta">
{model} &middot; Claude Max<br>
C:\\Users\\David
</div>
</div>
<div class="welcome-right">
<div class="section-title">Tips for getting started</div>
<div class="tip-text">
Run <span style="color:#b388ff">/init</span> to create a CLAUDE.md file with instructions for Claude<br>
Note: You have launched claude in your home directory. For the best<br>
experience, navigate to a project folder first.
</div>
<div class="section-title">Recent activity</div>
<div class="recent-text">No recent activity</div>
</div>
</div>
<div class="user-msg">
<div class="user-prompt">
<span class="arrow">&#x276F;</span>
<span class="user-text">hello</span>
</div>
</div>
<div class="claude-reply">
<div class="claude-reply-text">
<span class="dot">&#x25CF;</span>
Hello! How can I help you today?
</div>
</div>
<div class="prompt-line">
<span class="prompt-arrow">&#x276F;</span>
<span class="cursor"></span>
</div>
</div>
<div class="divider"></div>
<div class="status-area">
<div class="status-line">{status}</div>
</div>
<div class="mode-bar">
<span class="mode-icon">&#x23F5;&#x23F5;</span>
<span class="mode-text">auto-accept edits</span>
<span class="mode-hint">(shift+tab to cycle)</span>
</div>
</div>
<div class="theme-overlay">
<span class="theme-badge">{theme_name}</span>
<span class="frame-counter">{frame_num}/{total_frames}</span>
</div>
</div>
</body>
</html>'''
def generate_statusline_html(theme_name, theme, session_pct, weekly_pct, ctx_pct,
reset_time, plan, model, frame_num, total_frames,
is_rainbow=False, color_offset=0,
show_update=False, show_claude_update=False):
"""Render just the status line bar — no terminal chrome."""
session_bar = render_bar_html(session_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset)
weekly_bar = render_bar_html(weekly_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset + 3)
ctx_bar = render_bar_html(ctx_pct, theme, 10, rainbow=is_rainbow, color_offset=color_offset + 6)
text_color = "#d1d5db"
sep = '<span class="sep">|</span>'
sp = f"{session_pct:3d}%"
wp = f"{weekly_pct:3d}%"
cp = f"{ctx_pct:3d}%"
reset_str = f" {reset_time}" if reset_time else " "
update_part = ""
if show_update:
update_part = f'{sep}<span style="color:#eab308;font-weight:bold">&#x2191; Pulse Update</span>'
if show_claude_update:
update_part += f'{sep}<span style="color:#eab308;font-weight:bold">&#x2191; Claude Update</span>'
status = (
f'<span class="sl">Session </span>{session_bar}'
f'<span class="sl"> {sp}{reset_str}</span>'
f'{sep}'
f'<span class="sl">Weekly </span>{weekly_bar}'
f'<span class="sl"> {wp}</span>'
f'{sep}'
f'<span class="sl">Context </span>{ctx_bar}'
f'<span class="sl"> {cp}</span>'
f'{update_part}'
f'{sep}'
f'<span class="sl">{plan}</span>'
f'{sep}'
f'<span class="sl">{model}</span>'
)
return f'''<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');
* {{ margin: 0; padding: 0; box-sizing: border-box; }}
body {{
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
height: 60px;
font-family: 'JetBrains Mono', 'Cascadia Code', 'Consolas', monospace;
}}
.bar {{
background: #0c0c0c;
padding: 10px 20px;
width: 920px;
border-radius: 6px;
border: 1px solid #333;
}}
.status-line {{
font-size: 13px;
line-height: 1.5;
white-space: pre;
letter-spacing: 0;
font-variant-ligatures: none;
}}
.sl {{ color: {text_color}; }}
.sep {{ color: #555; padding: 0 0.3em; }}
</style>
</head>
<body>
<div class="bar">
<div class="status-line">{status}</div>
</div>
</body>
</html>'''
def main():
themes_to_show = ["default", "ocean", "sunset", "neon", "frost", "ember", "candy", "pride", "mono"]
frames_data = []
# (session%, weekly%, ctx%, reset_time, desc, extra_used, extra_limit)
scenarios = [
(12, 6, 8, "4h 52m", "low usage", "£3.10", "£37.00"),
(38, 22, 30, "3h 14m", "warming up", "£8.20", "£37.00"),
(62, 45, 55, "1h 48m", "active session", "£22.50", "£37.00"),
(88, 68, 82, "0h 22m", "near limit", "£34.80", "£37.00"),
]
for theme_name in themes_to_show:
theme = THEME_CSS[theme_name]
for session_pct, weekly_pct, ctx_pct, reset, desc, eu, el in scenarios:
frames_data.append((
theme_name, theme, session_pct, weekly_pct, ctx_pct,
reset, "Max 20x", "Opus 4.6", desc, False, 0, eu, el
))
rainbow_theme = THEME_CSS["rainbow"]
for offset in range(10):
frames_data.append((
"rainbow", rainbow_theme, 55, 38, 45,
"2h 10m", "Max 20x", "Opus 4.6", "animated shimmer", True, offset,
"£18.50", "£37.00"
))
tmp_dir = Path(tempfile.mkdtemp())
html_paths = []
total = len(frames_data)
for i, (tname, theme, sp, wp, cp, reset, plan, model, desc, is_rb, c_off, eu, el) in enumerate(frames_data):
html = generate_frame_html(
tname, theme, sp, wp, cp, reset, plan, model,
i + 1, total, desc, is_rainbow=is_rb, color_offset=c_off,
extra_used=eu, extra_limit=el
)
html_path = tmp_dir / f"frame_{i:03d}.html"
html_path.write_text(html, encoding="utf-8")
html_paths.append(str(html_path))
manifest = tmp_dir / "manifest.json"
manifest.write_text(json.dumps(html_paths), encoding="utf-8")
output_gif = Path(__file__).parent / "assets" / "demo.gif"
output_gif.parent.mkdir(exist_ok=True)
print(f"Generated {len(html_paths)} HTML frames in {tmp_dir}")
print(json.dumps({
"tmp_dir": str(tmp_dir),
"output_gif": str(output_gif),
"frame_count": len(html_paths),
}))
# ── Second GIF: update notification (status line only, no Extra) ──
update_frames = []
update_scenarios = [
(42, 28, 35, "2h 40m", "with update"),
(65, 50, 60, "1h 15m", "with update"),
(85, 72, 78, "0h 30m", "with update"),
]
for tname in themes_to_show:
theme = THEME_CSS[tname]
for sp, wp, cp, reset, desc in update_scenarios:
update_frames.append((tname, theme, sp, wp, cp, reset,
"Max 20x", "Opus 4.6", desc, False, 0))
# Rainbow shimmer for update GIF too
for offset in range(10):
update_frames.append((
"rainbow", THEME_CSS["rainbow"], 55, 38, 45,
"2h 10m", "Max 20x", "Opus 4.6", "shimmer", True, offset
))
tmp_dir2 = Path(tempfile.mkdtemp())
html_paths2 = []
total2 = len(update_frames)
for i, (tname, theme, sp, wp, cp, reset, plan, model, desc, is_rb, c_off) in enumerate(update_frames):
html = generate_statusline_html(
tname, theme, sp, wp, cp, reset, plan, model,
i + 1, total2, is_rainbow=is_rb, color_offset=c_off,
show_update=True
)
html_path = tmp_dir2 / f"update_{i:03d}.html"
html_path.write_text(html, encoding="utf-8")
html_paths2.append(str(html_path))
manifest2 = tmp_dir2 / "manifest.json"
manifest2.write_text(json.dumps(html_paths2), encoding="utf-8")
output_gif2 = Path(__file__).parent / "assets" / "update.gif"
print(f"Generated {len(html_paths2)} update frames in {tmp_dir2}")
print(json.dumps({
"tmp_dir2": str(tmp_dir2),
"output_gif2": str(output_gif2),
"frame_count2": len(html_paths2),
}))
# ── Third GIF: Claude Code update notification (status line only) ──
cc_update_frames = []
cc_update_scenarios = [
(42, 28, 35, "2h 40m", "with claude update"),
(65, 50, 60, "1h 15m", "with claude update"),
(85, 72, 78, "0h 30m", "with claude update"),
]
for tname in themes_to_show:
theme = THEME_CSS[tname]
for sp, wp, cp, reset, desc in cc_update_scenarios:
cc_update_frames.append((tname, theme, sp, wp, cp, reset,
"Max 20x", "Opus 4.6", desc, False, 0))
# Rainbow shimmer for claude update GIF too
for offset in range(10):
cc_update_frames.append((
"rainbow", THEME_CSS["rainbow"], 55, 38, 45,
"2h 10m", "Max 20x", "Opus 4.6", "shimmer", True, offset
))
tmp_dir3 = Path(tempfile.mkdtemp())
html_paths3 = []
total3 = len(cc_update_frames)
for i, (tname, theme, sp, wp, cp, reset, plan, model, desc, is_rb, c_off) in enumerate(cc_update_frames):
html = generate_statusline_html(
tname, theme, sp, wp, cp, reset, plan, model,
i + 1, total3, is_rainbow=is_rb, color_offset=c_off,
show_claude_update=True
)
html_path = tmp_dir3 / f"claude_update_{i:03d}.html"
html_path.write_text(html, encoding="utf-8")
html_paths3.append(str(html_path))
manifest3 = tmp_dir3 / "manifest.json"
manifest3.write_text(json.dumps(html_paths3), encoding="utf-8")
output_gif3 = Path(__file__).parent / "assets" / "claude-update.gif"
print(f"Generated {len(html_paths3)} claude update frames in {tmp_dir3}")
print(json.dumps({
"tmp_dir3": str(tmp_dir3),
"output_gif3": str(output_gif3),
"frame_count3": len(html_paths3),
}))
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,93 @@
$ErrorActionPreference = "Stop"
$RepoSlug = "NoobyGains/claude-pulse"
$RepoUrl = "https://github.com/$RepoSlug.git"
$RawBaseUrl = "https://raw.githubusercontent.com/$RepoSlug/main"
$InstallDir = if ($env:CLAUDE_PULSE_DIR) { $env:CLAUDE_PULSE_DIR } else { Join-Path $HOME ".claude-pulse" }
$ClaudeDir = if ($env:CLAUDE_CONFIG_DIR) { $env:CLAUDE_CONFIG_DIR } else { Join-Path $HOME ".claude" }
$CommandsDir = Join-Path $ClaudeDir "commands"
$InstallMethod = ""
function Write-Step {
param([string]$Message)
Write-Host $Message
}
function Throw-IfFailed {
param([string]$Message)
if ($LASTEXITCODE -ne 0) {
throw $Message
}
}
function Download-Files {
New-Item -ItemType Directory -Path $InstallDir -Force | Out-Null
Invoke-WebRequest -Uri "$RawBaseUrl/claude_status.py" -OutFile (Join-Path $InstallDir "claude_status.py")
Invoke-WebRequest -Uri "$RawBaseUrl/pulse.md" -OutFile (Join-Path $InstallDir "pulse.md")
$script:InstallMethod = "raw"
}
if (Get-Command git -ErrorAction SilentlyContinue) {
if (Test-Path (Join-Path $InstallDir ".git")) {
$originUrl = (git -C $InstallDir remote get-url origin).Trim()
Throw-IfFailed "Failed to read git origin from $InstallDir"
if ($originUrl -notmatch "NoobyGains/claude-pulse(\.git)?$") {
throw "Existing git repo at '$InstallDir' has unexpected origin '$originUrl'"
}
Write-Step "Updating existing claude-pulse clone..."
git -C $InstallDir pull --ff-only origin main | Out-Null
Throw-IfFailed "Failed to update git clone"
$InstallMethod = "git"
}
elseif (Test-Path (Join-Path $InstallDir "claude_status.py")) {
Write-Step "Existing non-git install detected, refreshing files..."
Download-Files
}
elseif (Test-Path $InstallDir) {
throw "Directory already exists and is not a claude-pulse install: $InstallDir"
}
else {
$parentDir = Split-Path -Parent $InstallDir
if ($parentDir -and -not (Test-Path $parentDir)) {
New-Item -ItemType Directory -Path $parentDir -Force | Out-Null
}
Write-Step "Cloning claude-pulse..."
git clone --depth 1 $RepoUrl $InstallDir | Out-Null
Throw-IfFailed "Failed to clone repository"
$InstallMethod = "git"
}
}
else {
Write-Step "git not found, downloading scripts directly..."
Download-Files
}
$PulseCommandPath = Join-Path $InstallDir "pulse.md"
if (Test-Path $PulseCommandPath) {
New-Item -ItemType Directory -Path $CommandsDir -Force | Out-Null
Copy-Item -Path $PulseCommandPath -Destination (Join-Path $CommandsDir "pulse.md") -Force
}
$StatusScriptPath = Join-Path $InstallDir "claude_status.py"
if (Get-Command python -ErrorAction SilentlyContinue) {
& python $StatusScriptPath --install
Throw-IfFailed "Python installer command failed"
}
elseif (Get-Command py -ErrorAction SilentlyContinue) {
& py -3 $StatusScriptPath --install
Throw-IfFailed "Python launcher installer command failed"
}
else {
throw "Python 3 is required. Install Python, then run this installer again."
}
Write-Host ""
Write-Host "claude-pulse installed in: $InstallDir"
Write-Host "Restart Claude Code, then run /pulse to configure your status bar."
if ($InstallMethod -eq "raw") {
Write-Host "Note: installed without git. /pulse update expects a git clone."
}

View File

@@ -0,0 +1,125 @@
#!/usr/bin/env sh
set -eu
REPO_SLUG="NoobyGains/claude-pulse"
REPO_URL="https://github.com/${REPO_SLUG}.git"
RAW_BASE_URL="https://raw.githubusercontent.com/${REPO_SLUG}/main"
INSTALL_DIR="${CLAUDE_PULSE_DIR:-$HOME/.claude-pulse}"
CLAUDE_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
COMMANDS_DIR="${CLAUDE_DIR}/commands"
INSTALL_METHOD=""
log() {
printf '%s\n' "$*"
}
die() {
log "claude-pulse installer: $*"
exit 1
}
has_cmd() {
command -v "$1" >/dev/null 2>&1
}
download_file() {
src_url="$1"
dst_path="$2"
if has_cmd curl; then
curl -fsSL "$src_url" -o "$dst_path"
return
fi
if has_cmd wget; then
wget -qO "$dst_path" "$src_url"
return
fi
die "curl or wget is required when git is unavailable"
}
install_from_raw() {
mkdir -p "$INSTALL_DIR"
download_file "$RAW_BASE_URL/claude_status.py" "$INSTALL_DIR/claude_status.py"
download_file "$RAW_BASE_URL/pulse.md" "$INSTALL_DIR/pulse.md"
INSTALL_METHOD="raw"
}
install_repo() {
if has_cmd git; then
if [ -d "$INSTALL_DIR/.git" ]; then
origin_url="$(git -C "$INSTALL_DIR" remote get-url origin 2>/dev/null || true)"
origin_lc="$(printf '%s' "$origin_url" | tr '[:upper:]' '[:lower:]')"
case "$origin_lc" in
*noobygains/claude-pulse|*noobygains/claude-pulse.git)
log "Updating existing claude-pulse clone..."
git -C "$INSTALL_DIR" pull --ff-only origin main >/dev/null 2>&1 || die "failed to update git clone"
INSTALL_METHOD="git"
return
;;
*)
die "existing git repo at $INSTALL_DIR has unexpected origin: $origin_url"
;;
esac
fi
if [ -f "$INSTALL_DIR/claude_status.py" ]; then
log "Existing non-git install detected, refreshing files..."
install_from_raw
return
fi
if [ -d "$INSTALL_DIR" ]; then
die "directory already exists and is not a claude-pulse install: $INSTALL_DIR"
fi
install_parent="${INSTALL_DIR%/*}"
if [ "$install_parent" != "$INSTALL_DIR" ]; then
mkdir -p "$install_parent"
fi
log "Cloning claude-pulse..."
git clone --depth 1 "$REPO_URL" "$INSTALL_DIR" >/dev/null 2>&1 || die "failed to clone repository"
INSTALL_METHOD="git"
return
fi
log "git not found, downloading scripts directly..."
install_from_raw
}
run_python_install() {
if has_cmd python3; then
python3 "$INSTALL_DIR/claude_status.py" --install
return
fi
if has_cmd python; then
python "$INSTALL_DIR/claude_status.py" --install
return
fi
die "Python 3 is required. Install Python, then run this installer again."
}
install_pulse_command() {
if [ -f "$INSTALL_DIR/pulse.md" ]; then
mkdir -p "$COMMANDS_DIR"
cp "$INSTALL_DIR/pulse.md" "$COMMANDS_DIR/pulse.md"
fi
}
install_repo
install_pulse_command
run_python_install
log ""
log "claude-pulse installed in: $INSTALL_DIR"
log "Restart Claude Code, then run /pulse to configure your status bar."
if [ "$INSTALL_METHOD" = "raw" ]; then
log "Note: installed without git. /pulse update expects a git clone."
fi

View File

@@ -0,0 +1,235 @@
Configure your Claude status bars — themes, colours, animations, peak hours, and more. $ARGUMENTS
---
**Finding the script:** Before running any command below, you need the full path to `claude_status.py`. Do this ONCE at the start:
1. Read `~/.claude/settings.json`. If `statusLine.command` contains `claude_status.py`, extract the full script path from that string.
2. If not found, use the Glob tool to search for `**/claude_status.py` inside `~/.claude/plugins/` — pick the result containing `claude-pulse`.
3. If neither works, tell the user: "Run `/claude-pulse:setup` first to install the status bar."
Save the found path as SCRIPT_PATH. Use `python "SCRIPT_PATH"` for all commands below.
---
## ROUTING — decide what to do based on $ARGUMENTS
### Direct commands (skip the menu, run immediately):
If $ARGUMENTS matches a **theme name** (`default`, `ocean`, `sunset`, `mono`, `neon`, `pride`, `frost`, `ember`, `candy`, `rainbow`):
-> Run `python "SCRIPT_PATH" --theme <name>` directly, no menu.
-> Confirm: "Theme set to **<name>**. The status line will update on the next refresh."
If $ARGUMENTS is `config` or `settings`:
-> Run `python "SCRIPT_PATH" --config` silently.
-> Summarise the settings in your response text (don't show raw ANSI output).
If $ARGUMENTS is exactly `show` (no parts after it), or `show all`, or `colors`, or `colours`, or `preview`:
-> Run TWO separate Bash commands (in parallel):
1. `python "SCRIPT_PATH" --show-themes`
2. `python "SCRIPT_PATH" --show-colors`
-> Show the raw output to the user (coloured ANSI text with live previews).
-> After both commands, say ONLY: "Press **Ctrl+O** to expand and see the colours."
If $ARGUMENTS contains `hide <parts>` or `show <parts>` (with specific parts):
-> Run the corresponding `--hide` or `--show` command directly.
-> Valid parts: session, weekly, context, timer, weekly_timer, cost, model, branch, heartbeat, activity, update, claude_update, opus, sonnet, effort, worktree, pomodoro, context_warning, staleness, plan, extra, burn_rate, sessions, last_tool, sparkline, runway, status_message, streak, pace, git_drift, files_changed
If $ARGUMENTS matches `animate <mode>` (where mode is `off`, `rainbow`, `pulse`, `glow`, `shift`, `on`):
-> Run `--animate <mode>` directly.
-> Explain what the mode does:
- **off** — Static, no animation
- **rainbow** — Flowing rainbow gradient across the entire bar
- **pulse** — Bars cycle through vivid colours each refresh
- **glow** — Per-character gradient that shifts across the bar
- **shift** — Bright highlight slides across the bar
If $ARGUMENTS matches `text-color <name>` or `text-colour <name>`:
-> Run `--text-color <name>` directly.
If $ARGUMENTS matches `currency <symbol>` (e.g. `currency £`, `currency €`, `currency $`):
-> Run `--currency <symbol>` directly.
-> Explain: cost is auto-converted from USD using a live exchange rate (cached 24h).
If $ARGUMENTS matches `bar-size <size>`:
-> Run `--bar-size <size>` directly.
If $ARGUMENTS matches `bar-style <name>` or `style <name>`:
-> Run `--bar-style <name>` directly.
If $ARGUMENTS matches `layout <name>`:
-> Run `--layout <name>` directly.
If $ARGUMENTS matches `peak-hours <value>` or `peak <value>`:
-> Run `--peak-hours <value>` directly.
-> Examples: `peak-hours 13:00-19:00`, `peak-hours off`, `peak-hours on`
If $ARGUMENTS matches `animation-speed <speed>` or `speed <speed>`:
-> Run `--animation-speed <speed>` directly.
If $ARGUMENTS matches `focus start [minutes]` or `focus stop` or `focus status`:
-> Run `--focus <action> [minutes]` directly.
-> Default is 25 minutes if no duration given.
If $ARGUMENTS matches `clock <format>` (where format is `12h` or `24h`):
-> Run `--clock-format <format>` directly.
If $ARGUMENTS matches `preset <name>` or `minimal` or `default preset`:
-> Run the corresponding `--preset` command.
If $ARGUMENTS is `update`:
-> Run `python "SCRIPT_PATH" --update` and show the output.
If $ARGUMENTS is `hooks` or `install-hooks`:
-> Run `python "SCRIPT_PATH" --install-hooks` and show the output.
-> Remind user to restart Claude Code.
If $ARGUMENTS is `stats`:
-> Run `python "SCRIPT_PATH" --stats` and show the output.
If $ARGUMENTS is `heatmap`:
-> Run `python "SCRIPT_PATH" --heatmap` and show the output.
### Interactive menu (when $ARGUMENTS is empty, `themes`, `theme`, or `menu`):
**Step 0 — Quick tips:**
> **Quick commands:** `/pulse show` preview all themes · `/pulse ocean` set a theme · `/pulse config` see settings · `/pulse update` check for updates · `/pulse focus start` start a focus timer
Run `python "SCRIPT_PATH" --config` silently to check for updates.
**Step 1:** Run `python "SCRIPT_PATH" --themes-demo` and show the output.
**Step 2:** Theme picker (paginated as 3 pages):
Page 1:
```
Question: "Pick a theme from the preview above"
Options:
- "rainbow" — "Full-spectrum flowing colours"
- "default" — "Classic green → yellow → red"
- "ocean" — "Cool cyan → blue → magenta"
- "More themes..." — "See all 10 themes"
```
Page 2 (if "More themes..."):
```
Options:
- "frost" — "Icy blue → steel → white"
- "ember" — "Gold → hot orange → red"
- "candy" — "Pink → purple → cyan"
- "More themes..." — "See neon, sunset, pride, mono"
```
Page 3 (if "More themes..." again):
```
Options:
- "neon" — "Vivid bright green → yellow → red"
- "sunset" — "Warm yellow → orange → red"
- "pride" — "Violet → green → pink"
- "mono" — "White → white → bright white"
```
Apply with `--theme <name>`.
**Step 3:** Text colour (skip for rainbow):
Theme-specific recommendations: ocean→cyan, sunset/ember→yellow, frost→cyan, candy→pink, neon→green, pride→violet, default/mono→white.
```
Question: "What colour for labels and percentages?"
Options:
- "<recommendation> (Recommended)" — "<reason>"
- "White" — "Neutral, works with any theme"
- "Auto" — "Best match for your theme"
```
Apply with `--text-color <colour>`.
**Step 4:** Animation:
```
Question: "Choose an animation style"
Options:
- "Off (Recommended)" — "Static theme colours, clean and simple"
- "Rainbow" — "Flowing rainbow gradient"
- "Pulse" — "Bars cycle through vivid colours"
- "Glow" — "Gradient shifts across the bar"
- "Shift" — "Bright highlight slides across"
```
Apply with `--animate <mode>`.
**Step 5:** Bar size:
```
Question: "How wide should the progress bars be?"
Options:
- "Large (Recommended)" — "12 characters — detailed bars"
- "Medium" — "8 characters — balanced"
- "Small" — "4 characters — compact"
```
Apply with `--bar-size <size>`.
**Step 6:** Currency:
```
Question: "What currency for the cost ticker?"
Options:
- "$ (USD)" — "US Dollar (base currency)"
- "£ (GBP)" — "British Pound (auto-converted)"
- "€ (EUR)" — "Euro (auto-converted)"
- "Other" — "Type any symbol (¥, ₹, C$, kr, etc.)"
```
Apply with `--currency <symbol>`. Explain: the cost shows what this session would cost at API rates, converted to their currency via live exchange rate.
**Step 7:** Peak hours:
```
Question: "Enable peak hours indicator? (Anthropic's 2x consumption window)"
Options:
- "On — 1pm-7pm (Recommended)" — "Default window matching known peak times"
- "Custom" — "Set your own peak window"
- "Off" — "Don't show peak indicator"
```
If "Custom", ask for start and end time (HH:MM format). Apply with `--peak-hours <start>-<end>`.
If "On", apply `--peak-hours on`.
If "Off", apply `--peak-hours off`.
**Step 8:** Clock format:
```
Question: "Clock format for timers?"
Options:
- "12h" — "Fri 5pm"
- "24h" — "Fri 17:00"
```
Apply with `--clock-format <12h|24h>`.
**Step 9:** Live heartbeat hook:
```
Question: "Install the live heartbeat hook? (shows tool counter during active work)"
Options:
- "Yes (Recommended)" — "Adds [/] 42 tools 5m to your status bar"
- "No" — "Skip — you can install later with /pulse hooks"
```
If "Yes", run `python "SCRIPT_PATH" --install-hooks`. Remind to restart Claude Code.
**Step 10:** Confirm everything:
"All set! Your status bar is configured with **<theme>**, **<animation>** animation, **<currency>** cost tracking, and peak hours **<on/off>**. It updates on every interaction."
If hooks were installed: "Restart Claude Code to activate the live heartbeat."
---
## DISPLAY RULES
- After any change, tell the user it will update on the next refresh.
- When running `--config`, summarise — don't show raw ANSI.
- Be brief and enthusiastic.

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,29 @@
{
"name": "qmd",
"owner": {
"name": "tobi",
"email": "tobi@lutke.com"
},
"plugins": [
{
"name": "qmd",
"source": "./",
"description": "Search and retrieve documents from local markdown files.",
"version": "0.1.0",
"author": {
"name": "tobi",
"email": "tobi@lutke.com"
},
"repository": "https://github.com/tobi/qmd",
"license": "MIT",
"keywords": ["markdown", "search", "qmd"],
"skills": ["./skills/"],
"mcpServers": {
"qmd": {
"command": "qmd",
"args": ["mcp"]
}
}
}
]
}

View File

@@ -0,0 +1,3 @@
# Use bd merge for beads JSONL files
.beads/issues.jsonl merge=beads

View File

@@ -0,0 +1,71 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test-node:
name: Node ${{ matrix.node-version }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
node-version: ["22", "23"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install SQLite (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
- name: Install SQLite (macOS)
if: runner.os == 'macOS'
run: brew install sqlite
- run: npm install
- name: Tests
run: npx vitest run --reporter=verbose test/
env:
CI: true
test-bun:
name: Bun (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install SQLite (Ubuntu)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
- name: Install SQLite (macOS)
if: runner.os == 'macOS'
run: brew install sqlite
- run: bun install
- name: Tests
run: bun test --timeout 30000 --preload ./src/test-preload.ts test/
env:
CI: true
DYLD_LIBRARY_PATH: /opt/homebrew/opt/sqlite/lib
LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu

View File

@@ -0,0 +1,55 @@
name: Publish
on:
push:
tags: ["v*"]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install SQLite
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
- run: bun install
- run: bun test --timeout 30000 --preload ./src/test-preload.ts test/
env:
CI: true
LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu
- uses: actions/setup-node@v4
with:
node-version: 22
registry-url: https://registry.npmjs.org
- run: npm run build
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Extract release notes
id: notes
run: |
VERSION="${GITHUB_REF_NAME#v}"
NOTES=$(./scripts/extract-changelog.sh "$VERSION")
# Write to file for gh release (avoids quoting issues)
echo "$NOTES" > /tmp/release-notes.md
- name: Create GitHub release
run: |
gh release create "$GITHUB_REF_NAME" \
--title "$GITHUB_REF_NAME" \
--notes-file /tmp/release-notes.md
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,20 @@
node_modules/
dist/
package-lock.json
.npmrc
*.sqlite
.DS_Store
archive/
texts/
.cursor/
.github/copilot/
*.md
!README.md
!CLAUDE.md
!CHANGELOG.md
!skills/**/*.md
!finetune/*.md
!docs/*.md
finetune/outputs/
finetune/data/train/
.claude/

View File

@@ -0,0 +1,3 @@
{
"skills": ["skills"]
}

View File

@@ -0,0 +1,364 @@
# Changelog
## [Unreleased]
## [1.1.0] - 2026-02-20
QMD now speaks in **query documents** — structured multi-line queries where every line is typed (`lex:`, `vec:`, `hyde:`), combining keyword precision with semantic recall. A single plain query still works exactly as before (it's treated as an implicit `expand:` and auto-expanded by the LLM). Lex now supports quoted phrases and negation (`"C++ performance" -sports -athlete`), making intent-aware disambiguation practical. The formal query grammar is documented in `docs/SYNTAX.md`.
The npm package now uses the standard `#!/usr/bin/env node` bin convention, replacing the custom bash wrapper. This fixes native module ABI mismatches when installed via bun and works on any platform with node >= 22 on PATH.
### Changes
- **Query document format**: multi-line queries with typed sub-queries (`lex:`, `vec:`, `hyde:`). Plain queries remain the default (`expand:` implicit, but not written inside the document). First sub-query gets 2× fusion weight — put your strongest signal first. Formal grammar in `docs/SYNTAX.md`.
- **Lex syntax**: full BM25 operator support. `"exact phrase"` for verbatim matching; `-term` and `-"phrase"` for exclusions. Essential for disambiguation when a term is overloaded across domains (e.g. `performance -sports -athlete`).
- **`expand:` shortcut**: send a single plain query (or start the document with `expand:` on its only line) to auto-expand via the local LLM. Query documents themselves are limited to `lex`, `vec`, and `hyde` lines.
- **MCP `query` tool** (renamed from `structured_search`): rewrote the tool description to fully teach AI agents the query document format, lex syntax, and combination strategy. Includes worked examples with intent-aware lex.
- **HTTP `/query` endpoint** (renamed from `/search`; `/search` kept as silent alias).
- **`collections` array filter**: filter by multiple collections in a single query (`collections: ["notes", "brain"]`). Removed the single `collection` string param — array only.
- **Collection `include`/`exclude`**: `includeByDefault: false` hides a collection from all queries unless explicitly named via `collections`. CLI: `qmd collection exclude <name>` / `qmd collection include <name>`.
- **Collection `update-cmd`**: attach a shell command that runs before every `qmd update` (e.g. `git stash && git pull --rebase --ff-only && git stash pop`). CLI: `qmd collection update-cmd <name> '<cmd>'`.
- **`qmd status` tips**: shows actionable tips when collections lack context descriptions or update commands.
- **`qmd collection` subcommands**: `show`, `update-cmd`, `include`, `exclude`. Bare `qmd collection` now prints help.
- **Packaging**: replaced custom bash wrapper with standard `#!/usr/bin/env node` shebang on `dist/qmd.js`. Fixes native module ABI mismatches when installed via bun, and works on any platform where node >= 22 is on PATH.
- **Removed MCP tools** `search`, `vector_search`, `deep_search` — all superseded by `query`.
- **Removed** `qmd context check` command.
- **CLI timing**: each LLM step (expand, embed, rerank) prints elapsed time inline (`Expanding query... (4.2s)`).
### Fixes
- `qmd collection list` shows `[excluded]` tag for collections with `includeByDefault: false`.
- Default searches now respect `includeByDefault` — excluded collections are skipped unless explicitly named.
- Fix main module detection when installed globally via npm/bun (symlink resolution).
## [1.0.7] - 2026-02-18
### Changes
- LLM: add LiquidAI LFM2-1.2B as an alternative base model for query
expansion fine-tuning. LFM2's hybrid architecture (convolutions + attention)
is 2x faster at decode/prefill vs standard transformers — good fit for
on-device inference.
- CLI: support multiple `-c` flags to search across several collections at
once (e.g. `qmd search -c notes -c journals "query"`). #191 (thanks
@openclaw)
### Fixes
- Return empty JSON array `[]` instead of no output when `--json` search
finds no results.
- Resolve relative paths passed to `--index` so they don't produce malformed
config entries.
- Respect `XDG_CONFIG_HOME` for collection config path instead of always
using `~/.config`. #190 (thanks @openclaw)
- CLI: empty-collection hint now shows the correct `collection add` command.
#200 (thanks @vincentkoc)
## [1.0.6] - 2026-02-16
### Changes
- CLI: `qmd status` now shows models with full HuggingFace links instead of
static names in `--help`. Model info is derived from the actual configured
URIs so it stays accurate if models change.
- Release tooling: pre-push hook handles non-interactive shells (CI, editors)
gracefully — warnings auto-proceed instead of hanging on a tty prompt.
Annotated tags now resolve correctly for CI checks.
## [1.0.5] - 2026-02-16
The npm package now ships compiled JavaScript instead of raw TypeScript,
removing the `tsx` runtime dependency. A new `/release` skill automates the
full release workflow with changelog validation and git hook enforcement.
### Changes
- Build: compile TypeScript to `dist/` via `tsc` so the npm package no longer
requires `tsx` at runtime. The `qmd` shell wrapper now runs `dist/qmd.js`
directly.
- Release tooling: new `/release` skill that manages the full release
lifecycle — validates changelog, installs git hooks, previews release notes,
and cuts the release. Auto-populates `[Unreleased]` from git history when
empty.
- Release tooling: `scripts/extract-changelog.sh` extracts cumulative notes
for the full minor series (e.g. 1.0.0 through 1.0.5) for GitHub releases.
Includes `[Unreleased]` content in previews.
- Release tooling: `scripts/release.sh` renames `[Unreleased]` to a versioned
heading and inserts a fresh empty `[Unreleased]` section automatically.
- Release tooling: pre-push git hook blocks `v*` tag pushes unless
`package.json` version matches the tag, a changelog entry exists, and CI
passed on GitHub.
- Publish workflow: GitHub Actions now builds TypeScript, creates a GitHub
release with cumulative notes extracted from the changelog, and publishes
to npm with provenance.
## [1.0.0] - 2026-02-15
QMD now runs on both Node.js and Bun, with up to 2.7x faster reranking
through parallel GPU contexts. GPU auto-detection replaces the unreliable
`gpu: "auto"` with explicit CUDA/Metal/Vulkan probing.
### Changes
- Runtime: support Node.js (>=22) alongside Bun via a cross-runtime SQLite
abstraction layer (`src/db.ts`). `bun:sqlite` on Bun, `better-sqlite3` on
Node. The `qmd` wrapper auto-detects a suitable Node.js install via PATH,
then falls back to mise, asdf, nvm, and Homebrew locations.
- Performance: parallel embedding & reranking via multiple LlamaContext
instances — up to 2.7x faster on multi-core machines.
- Performance: flash attention for ~20% less VRAM per reranking context,
enabling more parallel contexts on GPU.
- Performance: right-sized reranker context (40960 → 2048 tokens, 17x less
memory) since chunks are capped at ~900 tokens.
- Performance: adaptive parallelism — context count computed from available
VRAM (GPU) or CPU math cores rather than hardcoded.
- GPU: probe for CUDA, Metal, Vulkan explicitly at startup instead of
relying on node-llama-cpp's `gpu: "auto"`. `qmd status` shows device info.
- Tests: reorganized into flat `test/` directory with vitest for Node.js and
bun test for Bun. New `eval-bm25` and `store.helpers.unit` suites.
### Fixes
- Prevent VRAM waste from duplicate context creation during concurrent
`embedBatch` calls — initialization lock now covers the full path.
- Collection-aware FTS filtering so scoped keyword search actually restricts
results to the requested collection.
## [0.9.0] - 2026-02-15
First published release on npm as `@tobilu/qmd`. MCP HTTP transport with
daemon mode cuts warm query latency from ~16s to ~10s by keeping models
loaded between requests.
### Changes
- MCP: HTTP transport with daemon lifecycle — `qmd mcp --http --daemon`
starts a background server, `qmd mcp stop` shuts it down. Models stay warm
in VRAM between queries. #149 (thanks @igrigorik)
- Search: type-routed query expansion preserves lex/vec/hyde type info and
routes to the appropriate backend. Eliminates ~4 wasted backend calls per
query (10.0 → 6.0 calls, 1278ms → 549ms). #149 (thanks @igrigorik)
- Search: unified pipeline — extracted `hybridQuery()` and
`vectorSearchQuery()` to `store.ts` so CLI and MCP share identical logic.
Fixes a class of bugs where results differed between the two. #149 (thanks
@igrigorik)
- MCP: dynamic instructions generated at startup from actual index state —
LLMs see collection names, doc counts, and content descriptions. #149
(thanks @igrigorik)
- MCP: tool renames (vsearch → vector_search, query → deep_search) with
rewritten descriptions for better tool selection. #149 (thanks @igrigorik)
- Integration: Claude Code plugin with inline status checks and MCP
integration. #99 (thanks @galligan)
### Fixes
- BM25 score normalization — formula was inverted (`1/(1+|x|)` instead of
`|x|/(1+|x|)`), so strong matches scored *lowest*. Broke `--min-score`
filtering and made the "strong signal" short-circuit dead code. #76 (thanks
@dgilperez)
- Normalize Unicode paths to NFC for macOS compatibility. #82 (thanks
@c-stoeckl)
- Handle dense content (code) that tokenizes beyond expected chunk size.
- Proper cleanup of Metal GPU resources on process exit.
- SQLite-vec readiness verification after extension load.
- Reactivate deactivated documents on re-index instead of creating duplicates.
- Bun UTF-8 path corruption workaround for non-ASCII filenames.
- Disable following symlinks in glob.scan to avoid infinite loops.
## [0.8.0] - 2026-01-28
Fine-tuned query expansion model trained with GRPO replaces the stock Qwen3
0.6B. The training pipeline scores expansions on named entity preservation,
format compliance, and diversity — producing noticeably better lexical
variations and HyDE documents.
### Changes
- LLM: deploy GRPO-trained (Group Relative Policy Optimization) query
expansion model, hosted on HuggingFace and auto-downloaded on first use.
Better preservation of proper nouns and technical terms in expansions.
- LLM: `/only:lex` mode for single-type expansions — useful when you know
which search backend will help.
- LLM: HyDE output moved to first position so vector search can start
embedding while other expansions generate.
- LLM: session lifecycle management via `withLLMSession()` pattern — ensures
cleanup even on failure, similar to database transactions.
- Integration: org-mode title extraction support. #50 (thanks @sh54)
- Integration: SQLite extension loading in Nix devshell. #48 (thanks @sh54)
- Integration: AI agent discovery via skills.sh. #64 (thanks @Algiras)
### Fixes
- Use sequential embedding on CPU-only systems — parallel contexts caused a
race condition where contexts competed for CPU cores, making things slower.
#54 (thanks @freeman-jiang)
- Fix `collectionName` column in vector search SQL (was still using old
`collectionId` from before YAML migration). #61 (thanks @jdvmi00)
- Fix Qwen3 sampling params to prevent repetition loops — stock
temperature/top-p caused occasional infinite repeat patterns.
- Add `--index` option to CLI argument parser (was documented but not wired
up). #84 (thanks @Tritlo)
- Fix DisposedError during slow batch embedding. #41 (thanks @wuhup)
## [0.7.0] - 2026-01-09
First community contributions. The project gained external contributors,
surfacing bugs that only appear in diverse environments — Homebrew sqlite-vec
paths, case-sensitive model filenames, and sqlite-vec JOIN incompatibilities.
### Changes
- Indexing: native `realpathSync()` replaces `readlink -f` subprocess spawn
per file. On a 5000-file collection this eliminates 5000 shell spawns,
~15% faster. #8 (thanks @burke)
- Indexing: single-pass tokenization — chunking algorithm tokenized each
document twice (count then split); now tokenizes once and reuses. #9
(thanks @burke)
### Fixes
- Fix `vsearch` and `query` hanging — sqlite-vec's virtual table doesn't
support the JOIN pattern used; rewrote to subquery. #23 (thanks @mbrendan)
- Fix MCP server exiting immediately after startup — process had no active
handles keeping the event loop alive. #29 (thanks @mostlydev)
- Fix collection filter SQL to properly restrict vector search results.
- Support non-ASCII filenames in collection filter.
- Skip empty files during indexing instead of crashing on zero-length content.
- Fix case sensitivity in Qwen3 model filename resolution. #15 (thanks
@gavrix)
- Fix sqlite-vec loading on macOS with Homebrew (`BREW_PREFIX` detection).
#42 (thanks @komsit37)
- Fix Nix flake to use correct `src/qmd.ts` path. #7 (thanks @burke)
- Fix docid lookup with quotes support in get command. #36 (thanks
@JoshuaLelon)
- Fix query expansion model size in documentation. #38 (thanks @odysseus0)
## [0.6.0] - 2025-12-28
Replaced Ollama HTTP API with node-llama-cpp for all LLM operations. Ollama
adds convenience but also a running server dependency. node-llama-cpp loads
GGUF models directly in-process — zero external dependencies. Models
auto-download from HuggingFace on first use.
### Changes
- LLM: structured query expansion via JSON schema grammar constraints.
Model produces typed expansions — **lexical** (BM25 keywords), **vector**
(semantic rephrasings), **HyDE** (hypothetical document excerpts) — so each
routes to the right backend instead of sending everything everywhere.
- LLM: lazy model loading with 2-minute inactivity auto-unload. Keeps memory
low when idle while avoiding ~3s model load on every query.
- Search: conditional query expansion — when BM25 returns strong results, the
expensive LLM expansion is skipped entirely.
- Search: multi-chunk reranking — documents with multiple relevant chunks
scored by aggregating across all chunks rather than best single chunk.
- Search: cosine distance for vector search (was L2).
- Search: embeddinggemma nomic-style prompt formatting.
- Testing: evaluation harness with synthetic test documents and Hit@K metrics
for BM25, vector, and hybrid RRF.
## [0.5.0] - 2025-12-13
Collections and contexts moved from SQLite tables to YAML at
`~/.config/qmd/index.yml`. SQLite was overkill for config — you can't share
it, and it's opaque. YAML is human-readable and version-controllable. The
migration was extensive (35+ commits) because every part of the system that
touched collections or contexts had to be updated.
### Changes
- Config: YAML-based collections and contexts replace SQLite tables.
`collections` and `path_contexts` tables dropped from schema. Collections
support an optional `update:` command (e.g., `git pull`) before re-index.
- CLI: `qmd collection add/list/remove/rename` commands with `--name` and
`--mask` glob pattern support.
- CLI: `qmd ls` virtual file tree — list collections, files in a collection,
or files under a path prefix.
- CLI: `qmd context add/list/check/rm` with hierarchical context inheritance.
A query to `qmd://notes/2024/jan/` inherits context from `notes/`,
`notes/2024/`, and `notes/2024/jan/`.
- CLI: `qmd context add / "text"` for global context across all collections.
- CLI: `qmd context check` audit command to find paths without context.
- Paths: `qmd://` virtual URI scheme for portable document references.
`qmd://notes/ideas.md` works regardless of where the collection lives on
disk. Works in `get`, `multi-get`, `ls`, and context commands.
- CLI: document IDs (docid) — first 6 chars of content hash for stable
references. Shown as `#abc123` in search results, usable with `get` and
`multi-get`.
- CLI: `--line-numbers` flag for get command output.
## [0.4.0] - 2025-12-10
MCP server for AI agent integration. Without it, agents had to shell out to
`qmd search` and parse CLI output. The monolithic `qmd.ts` (1840 lines) was
split into focused modules with the project's first test suite (215 tests).
### Changes
- MCP: stdio server with tools for search, vector search, hybrid query,
document retrieval, and status. Runs over stdio transport for Claude
Desktop and MCP clients.
- MCP: spec-compliant with June 2025 MCP specification — removed non-spec
`mimeType`, added `isError: true` to errors, `structuredContent` for
machine-readable results, proper URI encoding.
- MCP: simplified tool naming (`qmd_search``search`) since MCP already
namespaces by server.
- Architecture: extract `store.ts` (1221 LOC), `llm.ts` (539 LOC),
`formatter.ts` (359 LOC), `mcp.ts` (503 LOC) from monolithic `qmd.ts`.
- Testing: 215 tests (store: 96, llm: 60, mcp: 59) with mocked Ollama for
fast, deterministic runs. Before this: zero tests.
## [0.3.0] - 2025-12-08
Document chunking for vector search. A 5000-word document about many topics
gets a single embedding that averages everything together, matching poorly for
specific queries. Chunking produces one embedding per ~900-token section with
focused semantic signal.
### Changes
- Search: markdown-aware chunking — prefers heading boundaries, then paragraph
breaks, then sentence boundaries. 15% overlap between chunks ensures
cross-boundary queries still match.
- Search: multi-chunk scoring bonus (+0.02 per additional chunk, capped at
+0.1 for 5+ chunks). Documents relevant in multiple sections rank higher.
- CLI: display paths show collection-relative paths and extracted titles
(from H1 headings or YAML frontmatter) instead of raw filesystem paths.
- CLI: `--all` flag returns all matches (use with `--min-score` to filter).
- CLI: byte-based progress bar with ETA for `embed` command.
- CLI: human-readable time formatting ("15m 4s" instead of "904.2s").
- CLI: documents >64KB truncated with warning during embedding.
## [0.2.0] - 2025-12-08
### Changes
- CLI: `--json`, `--csv`, `--files`, `--md`, `--xml` output format flags.
`--json` for programmatic access, `--files` for piping, `--md`/`--xml` for
LLM consumption, `--csv` for spreadsheets.
- CLI: `qmd status` shows index health — document count, size, embedding
coverage, time since last update.
- Search: weighted RRF — original query gets 2x weight relative to expanded
queries since the user's actual words are a more reliable signal.
## [0.1.0] - 2025-12-07
Initial implementation. Built in a single day for searching personal markdown
notes, journals, and meeting transcripts.
### Changes
- Search: SQLite FTS5 with BM25 ranking. Chose SQLite over Elasticsearch
because QMD is a personal tool — single binary, no server dependencies.
- Search: sqlite-vec for vector similarity. Same rationale: in-process, no
external vector database.
- Search: Reciprocal Rank Fusion to combine BM25 and vector results. RRF is
parameter-free and handles missing signals gracefully.
- LLM: Ollama for embeddings, reranking, and query expansion. Later replaced
with node-llama-cpp in 0.6.0.
- CLI: `qmd add`, `qmd embed`, `qmd search`, `qmd vsearch`, `qmd query`,
`qmd get`. ~1800 lines of TypeScript in a single `qmd.ts` file.
[Unreleased]: https://github.com/tobi/qmd/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/tobi/qmd/releases/tag/v1.0.0
[0.9.0]: https://github.com/tobi/qmd/compare/v0.8.0...v0.9.0

View File

@@ -0,0 +1,165 @@
# QMD - Query Markup Documents
Use Bun instead of Node.js (`bun` not `node`, `bun install` not `npm install`).
## Commands
```sh
qmd collection add . --name <n> # Create/index collection
qmd collection list # List all collections with details
qmd collection remove <name> # Remove a collection by name
qmd collection rename <old> <new> # Rename a collection
qmd ls [collection[/path]] # List collections or files in a collection
qmd context add [path] "text" # Add context for path (defaults to current dir)
qmd context list # List all contexts
qmd context check # Check for collections/paths missing context
qmd context rm <path> # Remove context
qmd get <file> # Get document by path or docid (#abc123)
qmd multi-get <pattern> # Get multiple docs by glob or comma-separated list
qmd status # Show index status and collections
qmd update [--pull] # Re-index all collections (--pull: git pull first)
qmd embed # Generate vector embeddings (uses node-llama-cpp)
qmd query <query> # Search with query expansion + reranking (recommended)
qmd search <query> # Full-text keyword search (BM25, no LLM)
qmd vsearch <query> # Vector similarity search (no reranking)
qmd mcp # Start MCP server (stdio transport)
qmd mcp --http [--port N] # Start MCP server (HTTP, default port 8181)
qmd mcp --http --daemon # Start as background daemon
qmd mcp stop # Stop background MCP daemon
```
## Collection Management
```sh
# List all collections
qmd collection list
# Create a collection with explicit name
qmd collection add ~/Documents/notes --name mynotes --mask '**/*.md'
# Remove a collection
qmd collection remove mynotes
# Rename a collection
qmd collection rename mynotes my-notes
# List all files in a collection
qmd ls mynotes
# List files with a path prefix
qmd ls journals/2025
qmd ls qmd://journals/2025
```
## Context Management
```sh
# Add context to current directory (auto-detects collection)
qmd context add "Description of these files"
# Add context to a specific path
qmd context add /subfolder "Description for subfolder"
# Add global context to all collections (system message)
qmd context add / "Always include this context"
# Add context using virtual paths
qmd context add qmd://journals/ "Context for entire journals collection"
qmd context add qmd://journals/2024 "Journal entries from 2024"
# List all contexts
qmd context list
# Check for collections or paths without context
qmd context check
# Remove context
qmd context rm qmd://journals/2024
qmd context rm / # Remove global context
```
## Document IDs (docid)
Each document has a unique short ID (docid) - the first 6 characters of its content hash.
Docids are shown in search results as `#abc123` and can be used with `get` and `multi-get`:
```sh
# Search returns docid in results
qmd search "query" --json
# Output: [{"docid": "#abc123", "score": 0.85, "file": "docs/readme.md", ...}]
# Get document by docid
qmd get "#abc123"
qmd get abc123 # Leading # is optional
# Docids also work in multi-get comma-separated lists
qmd multi-get "#abc123, #def456"
```
## Options
```sh
# Search & retrieval
-c, --collection <name> # Restrict search to a collection (matches pwd suffix)
-n <num> # Number of results
--all # Return all matches
--min-score <num> # Minimum score threshold
--full # Show full document content
--line-numbers # Add line numbers to output
# Multi-get specific
-l <num> # Maximum lines per file
--max-bytes <num> # Skip files larger than this (default 10KB)
# Output formats (search and multi-get)
--json, --csv, --md, --xml, --files
```
## Development
```sh
bun src/qmd.ts <command> # Run from source
bun link # Install globally as 'qmd'
```
## Tests
All tests live in `test/`. Run everything:
```sh
npx vitest run --reporter=verbose test/
bun test --preload ./src/test-preload.ts test/
```
## Architecture
- SQLite FTS5 for full-text search (BM25)
- sqlite-vec for vector similarity search
- node-llama-cpp for embeddings (embeddinggemma), reranking (qwen3-reranker), and query expansion (Qwen3)
- Reciprocal Rank Fusion (RRF) for combining results
- Smart chunking: 900 tokens/chunk with 15% overlap, prefers markdown headings as boundaries
## Important: Do NOT run automatically
- Never run `qmd collection add`, `qmd embed`, or `qmd update` automatically
- Never modify the SQLite database directly
- Write out example commands for the user to run manually
- Index is stored at `~/.cache/qmd/index.sqlite`
## Do NOT compile
- Never run `bun build --compile` - it overwrites the shell wrapper and breaks sqlite-vec
- The `qmd` file is a shell script that runs compiled JS from `dist/` - do not replace it
- `npm run build` compiles TypeScript to `dist/` via `tsc -p tsconfig.build.json`
## Releasing
Use `/release <version>` to cut a release. Full changelog standards,
release workflow, and git hook setup are documented in the
[release skill](skills/release/SKILL.md).
Key points:
- Add changelog entries under `## [Unreleased]` **as you make changes**
- The release script renames `[Unreleased]``[X.Y.Z] - date` at release time
- Credit external PRs with `#NNN (thanks @username)`
- GitHub releases roll up the full minor series (e.g. 1.2.0 through 1.2.3)

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024-2026 Tobi Lutke
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,624 @@
# QMD - Query Markup Documents
An on-device search engine for everything you need to remember. Index your markdown notes, meeting transcripts, documentation, and knowledge bases. Search with keywords or natural language. Ideal for your agentic flows.
QMD combines BM25 full-text search, vector semantic search, and LLM re-ranking—all running locally via node-llama-cpp with GGUF models.
![QMD Architecture](assets/qmd-architecture.png)
You can read more about QMD's progress in the [CHANGELOG](CHANGELOG.md).
## Quick Start
```sh
# Install globally (Node or Bun)
npm install -g @tobilu/qmd
# or
bun install -g @tobilu/qmd
# Or run directly
npx @tobilu/qmd ...
bunx @tobilu/qmd ...
# Create collections for your notes, docs, and meeting transcripts
qmd collection add ~/notes --name notes
qmd collection add ~/Documents/meetings --name meetings
qmd collection add ~/work/docs --name docs
# Add context to help with search results, each piece of context will be returned when matching sub documents are returned. This works as a tree. This is the key feature of QMD as it allows LLMs to make much better contextual choices when selecting documents. Don't sleep on it!
qmd context add qmd://notes "Personal notes and ideas"
qmd context add qmd://meetings "Meeting transcripts and notes"
qmd context add qmd://docs "Work documentation"
# Generate embeddings for semantic search
qmd embed
# Search across everything
qmd search "project timeline" # Fast keyword search
qmd vsearch "how to deploy" # Semantic search
qmd query "quarterly planning process" # Hybrid + reranking (best quality)
# Get a specific document
qmd get "meetings/2024-01-15.md"
# Get a document by docid (shown in search results)
qmd get "#abc123"
# Get multiple documents by glob pattern
qmd multi-get "journals/2025-05*.md"
# Search within a specific collection
qmd search "API" -c notes
# Export all matches for an agent
qmd search "API" --all --files --min-score 0.3
```
### Using with AI Agents
QMD's `--json` and `--files` output formats are designed for agentic workflows:
```sh
# Get structured results for an LLM
qmd search "authentication" --json -n 10
# List all relevant files above a threshold
qmd query "error handling" --all --files --min-score 0.4
# Retrieve full document content
qmd get "docs/api-reference.md" --full
```
### MCP Server
Although the tool works perfectly fine when you just tell your agent to use it on the command line, it also exposes an MCP (Model Context Protocol) server for tighter integration.
**Tools exposed:**
- `qmd_search` - Fast BM25 keyword search (supports collection filter)
- `qmd_vector_search` - Semantic vector search (supports collection filter)
- `qmd_deep_search` - Deep search with query expansion and reranking (supports collection filter)
- `qmd_get` - Retrieve document by path or docid (with fuzzy matching suggestions)
- `qmd_multi_get` - Retrieve multiple documents by glob pattern, list, or docids
- `qmd_status` - Index health and collection info
**Claude Desktop configuration** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"qmd": {
"command": "qmd",
"args": ["mcp"]
}
}
}
```
**Claude Code** — Install the plugin (recommended):
```bash
claude marketplace add tobi/qmd
claude plugin add qmd@qmd
```
Or configure MCP manually in `~/.claude/settings.json`:
```json
{
"mcpServers": {
"qmd": {
"command": "qmd",
"args": ["mcp"]
}
}
}
```
#### HTTP Transport
By default, QMD's MCP server uses stdio (launched as a subprocess by each client). For a shared, long-lived server that avoids repeated model loading, use the HTTP transport:
```sh
# Foreground (Ctrl-C to stop)
qmd mcp --http # localhost:8181
qmd mcp --http --port 8080 # custom port
# Background daemon
qmd mcp --http --daemon # start, writes PID to ~/.cache/qmd/mcp.pid
qmd mcp stop # stop via PID file
qmd status # shows "MCP: running (PID ...)" when active
```
The HTTP server exposes two endpoints:
- `POST /mcp` — MCP Streamable HTTP (JSON responses, stateless)
- `GET /health` — liveness check with uptime
LLM models stay loaded in VRAM across requests. Embedding/reranking contexts are disposed after 5 min idle and transparently recreated on the next request (~1s penalty, models remain loaded).
Point any MCP client at `http://localhost:8181/mcp` to connect.
## Architecture
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ QMD Hybrid Search Pipeline │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────┐
│ User Query │
└────────┬────────┘
┌──────────────┴──────────────┐
▼ ▼
┌────────────────┐ ┌────────────────┐
│ Query Expansion│ │ Original Query│
│ (fine-tuned) │ │ (×2 weight) │
└───────┬────────┘ └───────┬────────┘
│ │
│ 2 alternative queries │
└──────────────┬──────────────┘
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Original Query │ │ Expanded Query 1│ │ Expanded Query 2│
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
┌───────┴───────┐ ┌───────┴───────┐ ┌───────┴───────┐
▼ ▼ ▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│ BM25 │ │Vector │ │ BM25 │ │Vector │ │ BM25 │ │Vector │
│(FTS5) │ │Search │ │(FTS5) │ │Search │ │(FTS5) │ │Search │
└───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘
│ │ │ │ │ │
└───────┬───────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────────────┼───────────────────────┘
┌───────────────────────┐
│ RRF Fusion + Bonus │
│ Original query: ×2 │
│ Top-rank bonus: +0.05│
│ Top 30 Kept │
└───────────┬───────────┘
┌───────────────────────┐
│ LLM Re-ranking │
│ (qwen3-reranker) │
│ Yes/No + logprobs │
└───────────┬───────────┘
┌───────────────────────┐
│ Position-Aware Blend │
│ Top 1-3: 75% RRF │
│ Top 4-10: 60% RRF │
│ Top 11+: 40% RRF │
└───────────────────────┘
```
## Score Normalization & Fusion
### Search Backends
| Backend | Raw Score | Conversion | Range |
|---------|-----------|------------|-------|
| **FTS (BM25)** | SQLite FTS5 BM25 | `Math.abs(score)` | 0 to ~25+ |
| **Vector** | Cosine distance | `1 / (1 + distance)` | 0.0 to 1.0 |
| **Reranker** | LLM 0-10 rating | `score / 10` | 0.0 to 1.0 |
### Fusion Strategy
The `query` command uses **Reciprocal Rank Fusion (RRF)** with position-aware blending:
1. **Query Expansion**: Original query (×2 for weighting) + 1 LLM variation
2. **Parallel Retrieval**: Each query searches both FTS and vector indexes
3. **RRF Fusion**: Combine all result lists using `score = Σ(1/(k+rank+1))` where k=60
4. **Top-Rank Bonus**: Documents ranking #1 in any list get +0.05, #2-3 get +0.02
5. **Top-K Selection**: Take top 30 candidates for reranking
6. **Re-ranking**: LLM scores each document (yes/no with logprobs confidence)
7. **Position-Aware Blending**:
- RRF rank 1-3: 75% retrieval, 25% reranker (preserves exact matches)
- RRF rank 4-10: 60% retrieval, 40% reranker
- RRF rank 11+: 40% retrieval, 60% reranker (trust reranker more)
**Why this approach**: Pure RRF can dilute exact matches when expanded queries don't match. The top-rank bonus preserves documents that score #1 for the original query. Position-aware blending prevents the reranker from destroying high-confidence retrieval results.
### Score Interpretation
| Score | Meaning |
|-------|---------|
| 0.8 - 1.0 | Highly relevant |
| 0.5 - 0.8 | Moderately relevant |
| 0.2 - 0.5 | Somewhat relevant |
| 0.0 - 0.2 | Low relevance |
## Requirements
### System Requirements
- **Node.js** >= 22
- **Bun** >= 1.0.0
- **macOS**: Homebrew SQLite (for extension support)
```sh
brew install sqlite
```
### GGUF Models (via node-llama-cpp)
QMD uses three local GGUF models (auto-downloaded on first use):
| Model | Purpose | Size |
|-------|---------|------|
| `embeddinggemma-300M-Q8_0` | Vector embeddings | ~300MB |
| `qwen3-reranker-0.6b-q8_0` | Re-ranking | ~640MB |
| `qmd-query-expansion-1.7B-q4_k_m` | Query expansion (fine-tuned) | ~1.1GB |
Models are downloaded from HuggingFace and cached in `~/.cache/qmd/models/`.
## Installation
```sh
npm install -g @tobilu/qmd
# or
bun install -g @tobilu/qmd
```
### Development
```sh
git clone https://github.com/tobi/qmd
cd qmd
npm install
npm link
```
## Usage
### Collection Management
```sh
# Create a collection from current directory
qmd collection add . --name myproject
# Create a collection with explicit path and custom glob mask
qmd collection add ~/Documents/notes --name notes --mask "**/*.md"
# List all collections
qmd collection list
# Remove a collection
qmd collection remove myproject
# Rename a collection
qmd collection rename myproject my-project
# List files in a collection
qmd ls notes
qmd ls notes/subfolder
```
### Generate Vector Embeddings
```sh
# Embed all indexed documents (900 tokens/chunk, 15% overlap)
qmd embed
# Force re-embed everything
qmd embed -f
```
### Context Management
Context adds descriptive metadata to collections and paths, helping search understand your content.
```sh
# Add context to a collection (using qmd:// virtual paths)
qmd context add qmd://notes "Personal notes and ideas"
qmd context add qmd://docs/api "API documentation"
# Add context from within a collection directory
cd ~/notes && qmd context add "Personal notes and ideas"
cd ~/notes/work && qmd context add "Work-related notes"
# Add global context (applies to all collections)
qmd context add / "Knowledge base for my projects"
# List all contexts
qmd context list
# Remove context
qmd context rm qmd://notes/old
```
### Search Commands
```
┌──────────────────────────────────────────────────────────────────┐
│ Search Modes │
├──────────┬───────────────────────────────────────────────────────┤
│ search │ BM25 full-text search only │
│ vsearch │ Vector semantic search only │
│ query │ Hybrid: FTS + Vector + Query Expansion + Re-ranking │
└──────────┴───────────────────────────────────────────────────────┘
```
```sh
# Full-text search (fast, keyword-based)
qmd search "authentication flow"
# Vector search (semantic similarity)
qmd vsearch "how to login"
# Hybrid search with re-ranking (best quality)
qmd query "user authentication"
```
### Options
```sh
# Search options
-n <num> # Number of results (default: 5, or 20 for --files/--json)
-c, --collection # Restrict search to a specific collection
--all # Return all matches (use with --min-score to filter)
--min-score <num> # Minimum score threshold (default: 0)
--full # Show full document content
--line-numbers # Add line numbers to output
--index <name> # Use named index
# Output formats (for search and multi-get)
--files # Output: docid,score,filepath,context
--json # JSON output with snippets
--csv # CSV output
--md # Markdown output
--xml # XML output
# Get options
qmd get <file>[:line] # Get document, optionally starting at line
-l <num> # Maximum lines to return
--from <num> # Start from line number
# Multi-get options
-l <num> # Maximum lines per file
--max-bytes <num> # Skip files larger than N bytes (default: 10KB)
```
### Output Format
Default output is colorized CLI format (respects `NO_COLOR` env):
```
docs/guide.md:42 #a1b2c3
Title: Software Craftsmanship
Context: Work documentation
Score: 93%
This section covers the **craftsmanship** of building
quality software with attention to detail.
See also: engineering principles
notes/meeting.md:15 #d4e5f6
Title: Q4 Planning
Context: Personal notes and ideas
Score: 67%
Discussion about code quality and craftsmanship
in the development process.
```
- **Path**: Collection-relative path (e.g., `docs/guide.md`)
- **Docid**: Short hash identifier (e.g., `#a1b2c3`) - use with `qmd get #a1b2c3`
- **Title**: Extracted from document (first heading or filename)
- **Context**: Path context if configured via `qmd context add`
- **Score**: Color-coded (green >70%, yellow >40%, dim otherwise)
- **Snippet**: Context around match with query terms highlighted
### Examples
```sh
# Get 10 results with minimum score 0.3
qmd query -n 10 --min-score 0.3 "API design patterns"
# Output as markdown for LLM context
qmd search --md --full "error handling"
# JSON output for scripting
qmd query --json "quarterly reports"
# Use separate index for different knowledge base
qmd --index work search "quarterly reports"
```
### Index Maintenance
```sh
# Show index status and collections with contexts
qmd status
# Re-index all collections
qmd update
# Re-index with git pull first (for remote repos)
qmd update --pull
# Get document by filepath (with fuzzy matching suggestions)
qmd get notes/meeting.md
# Get document by docid (from search results)
qmd get "#abc123"
# Get document starting at line 50, max 100 lines
qmd get notes/meeting.md:50 -l 100
# Get multiple documents by glob pattern
qmd multi-get "journals/2025-05*.md"
# Get multiple documents by comma-separated list (supports docids)
qmd multi-get "doc1.md, doc2.md, #abc123"
# Limit multi-get to files under 20KB
qmd multi-get "docs/*.md" --max-bytes 20480
# Output multi-get as JSON for agent processing
qmd multi-get "docs/*.md" --json
# Clean up cache and orphaned data
qmd cleanup
```
## Data Storage
Index stored in: `~/.cache/qmd/index.sqlite`
### Schema
```sql
collections -- Indexed directories with name and glob patterns
path_contexts -- Context descriptions by virtual path (qmd://...)
documents -- Markdown content with metadata and docid (6-char hash)
documents_fts -- FTS5 full-text index
content_vectors -- Embedding chunks (hash, seq, pos, 900 tokens each)
vectors_vec -- sqlite-vec vector index (hash_seq key)
llm_cache -- Cached LLM responses (query expansion, rerank scores)
```
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `XDG_CACHE_HOME` | `~/.cache` | Cache directory location |
## How It Works
### Indexing Flow
```
Collection ──► Glob Pattern ──► Markdown Files ──► Parse Title ──► Hash Content
│ │ │
│ │ ▼
│ │ Generate docid
│ │ (6-char hash)
│ │ │
└──────────────────────────────────────────────────►└──► Store in SQLite
FTS5 Index
```
### Embedding Flow
Documents are chunked into ~900-token pieces with 15% overlap using smart boundary detection:
```
Document ──► Smart Chunk (~900 tokens) ──► Format each chunk ──► node-llama-cpp ──► Store Vectors
│ "title | text" embedBatch()
└─► Chunks stored with:
- hash: document hash
- seq: chunk sequence (0, 1, 2...)
- pos: character position in original
```
### Smart Chunking
Instead of cutting at hard token boundaries, QMD uses a scoring algorithm to find natural markdown break points. This keeps semantic units (sections, paragraphs, code blocks) together.
**Break Point Scores:**
| Pattern | Score | Description |
|---------|-------|-------------|
| `# Heading` | 100 | H1 - major section |
| `## Heading` | 90 | H2 - subsection |
| `### Heading` | 80 | H3 |
| `#### Heading` | 70 | H4 |
| `##### Heading` | 60 | H5 |
| `###### Heading` | 50 | H6 |
| ` ``` ` | 80 | Code block boundary |
| `---` / `***` | 60 | Horizontal rule |
| Blank line | 20 | Paragraph boundary |
| `- item` / `1. item` | 5 | List item |
| Line break | 1 | Minimal break |
**Algorithm:**
1. Scan document for all break points with scores
2. When approaching the 900-token target, search a 200-token window before the cutoff
3. Score each break point: `finalScore = baseScore × (1 - (distance/window)² × 0.7)`
4. Cut at the highest-scoring break point
The squared distance decay means a heading 200 tokens back (score ~30) still beats a simple line break at the target (score 1), but a closer heading wins over a distant one.
**Code Fence Protection:** Break points inside code blocks are ignored—code stays together. If a code block exceeds the chunk size, it's kept whole when possible.
### Query Flow (Hybrid)
```
Query ──► LLM Expansion ──► [Original, Variant 1, Variant 2]
┌─────────┴─────────┐
▼ ▼
For each query: FTS (BM25)
│ │
▼ ▼
Vector Search Ranked List
Ranked List
└─────────┬─────────┘
RRF Fusion (k=60)
Original query ×2 weight
Top-rank bonus: +0.05/#1, +0.02/#2-3
Top 30 candidates
LLM Re-ranking
(yes/no + logprob confidence)
Position-Aware Blend
Rank 1-3: 75% RRF / 25% reranker
Rank 4-10: 60% RRF / 40% reranker
Rank 11+: 40% RRF / 60% reranker
Final Results
```
## Model Configuration
Models are configured in `src/llm.ts` as HuggingFace URIs:
```typescript
const DEFAULT_EMBED_MODEL = "hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf";
const DEFAULT_RERANK_MODEL = "hf:ggml-org/Qwen3-Reranker-0.6B-Q8_0-GGUF/qwen3-reranker-0.6b-q8_0.gguf";
const DEFAULT_GENERATE_MODEL = "hf:tobil/qmd-query-expansion-1.7B-gguf/qmd-query-expansion-1.7B-q4_k_m.gguf";
```
### EmbeddingGemma Prompt Format
```
// For queries
"task: search result | query: {query}"
// For documents
"title: {title} | text: {content}"
```
### Qwen3-Reranker
Uses node-llama-cpp's `createRankingContext()` and `rankAndSort()` API for cross-encoder reranking. Returns documents sorted by relevance score (0.0 - 1.0).
### Qwen3 (Query Expansion)
Used for generating query variations via `LlamaChatSession`.
## License
MIT

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@@ -0,0 +1,928 @@
{
"lockfileVersion": 1,
"configVersion": 1,
"workspaces": {
"": {
"name": "2025-12-07-bm25-q",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.25.1",
"better-sqlite3": "^11.0.0",
"fast-glob": "^3.3.0",
"node-llama-cpp": "^3.14.5",
"picomatch": "^4.0.0",
"sqlite-vec": "^0.1.7-alpha.2",
"yaml": "^2.8.2",
"zod": "^4.2.1",
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.0",
"tsx": "^4.0.0",
"vitest": "^3.0.0",
},
"optionalDependencies": {
"sqlite-vec-darwin-arm64": "^0.1.7-alpha.2",
"sqlite-vec-darwin-x64": "^0.1.7-alpha.2",
"sqlite-vec-linux-x64": "^0.1.7-alpha.2",
"sqlite-vec-win32-x64": "^0.1.7-alpha.2",
},
"peerDependencies": {
"typescript": "^5.9.3",
},
},
},
"packages": {
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="],
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="],
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="],
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="],
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="],
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="],
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="],
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="],
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="],
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="],
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="],
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="],
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="],
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="],
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="],
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="],
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="],
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="],
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="],
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="],
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="],
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="],
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="],
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="],
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="],
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="],
"@hono/node-server": ["@hono/node-server@1.19.7", "", { "peerDependencies": { "hono": "^4" } }, "sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw=="],
"@huggingface/jinja": ["@huggingface/jinja@0.5.3", "", {}, "sha512-asqfZ4GQS0hD876Uw4qiUb7Tr/V5Q+JZuo2L+BtdrD4U40QU58nIRq3ZSgAzJgT874VLjhGVacaYfrdpXtEvtA=="],
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
"@kwsites/file-exists": ["@kwsites/file-exists@1.1.1", "", { "dependencies": { "debug": "^4.1.1" } }, "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw=="],
"@kwsites/promise-deferred": ["@kwsites/promise-deferred@1.1.1", "", {}, "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw=="],
"@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.25.1", "", { "dependencies": { "@hono/node-server": "^1.19.7", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "jose": "^6.1.1", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.0" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-yO28oVFFC7EBoiKdAn+VqRm+plcfv4v0xp6osG/VsCB0NlPZWi87ajbCZZ8f/RvOFLEu7//rSRmuZZ7lMoe3gQ=="],
"@node-llama-cpp/linux-arm64": ["@node-llama-cpp/linux-arm64@3.14.5", "", { "os": "linux", "cpu": [ "x64", "arm64", ] }, "sha512-58IcWW7EOqc/66mYWXRsoMCy1MR3pTX/YaC0HYF9Rg5XeAPKhUP7NHrglbqgjO62CkcuFZaSEiX2AtG972GQYQ=="],
"@node-llama-cpp/linux-armv7l": ["@node-llama-cpp/linux-armv7l@3.14.5", "", { "os": "linux", "cpu": [ "arm", "x64", ] }, "sha512-mJWN0qWsn8y+r/34DC3XlSiXjjKs6wX1BTx0wwJ37fWefS/qfzuBJwQGqpfqe5xpfafib/RgQX44fsvE/9yb1w=="],
"@node-llama-cpp/linux-x64": ["@node-llama-cpp/linux-x64@3.14.5", "", { "os": "linux", "cpu": "x64" }, "sha512-f6xCqlSqSxMP9Iwm3CpaTzFybbHrzpLkNzA18v21PwhMN8u4DP44euLoxe+BMbOpyzx4iMxU1AUsPsgcHD1Y4w=="],
"@node-llama-cpp/linux-x64-cuda": ["@node-llama-cpp/linux-x64-cuda@3.14.5", "", { "os": "linux", "cpu": "x64" }, "sha512-yk0EGnAJ+m/paSaItigmxcqC8nNjZlkx9yZgQE51CsTip7tmnqqlj60pW1fWmhrjOJ9XnRlVVTP81fa9B+O1Hg=="],
"@node-llama-cpp/linux-x64-cuda-ext": ["@node-llama-cpp/linux-x64-cuda-ext@3.14.5", "", { "os": "linux", "cpu": "x64" }, "sha512-AACXmXjqvAppoC6Z20UI7yeSZaFb6uP9x/2lzctVwlm42ef76SN6DNXaX1yzH7DTyzK5zYhoH4ycJUe+zOeGzw=="],
"@node-llama-cpp/linux-x64-vulkan": ["@node-llama-cpp/linux-x64-vulkan@3.14.5", "", { "os": "linux", "cpu": "x64" }, "sha512-9wZG90CUyyO8EsqfDEh03/fK0ctbQFbKaAFa6Goh+jFLOtqPL+plLqAsW3jDFdLRF5+oAPTKt9/4Y7vHTajQbQ=="],
"@node-llama-cpp/mac-arm64-metal": ["@node-llama-cpp/mac-arm64-metal@3.14.5", "", { "os": "darwin", "cpu": [ "x64", "arm64", ] }, "sha512-7pclj/nbQyx7gPVbyqkCn+ftlGcnw7YrewxBv1/BWWAMzBrMt2+qkjtUcUhwXH7mT5WN/+eWsszhIMXH3Uf6vQ=="],
"@node-llama-cpp/mac-x64": ["@node-llama-cpp/mac-x64@3.14.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-iZBmLgPkLKiKS0lYAuqq8i85etGeQ9L+AjEJUhG5N6T/vCF4XSOkUTsEFMEX+iJLV3VxvY/C8R1e/UF7InUjUg=="],
"@node-llama-cpp/win-arm64": ["@node-llama-cpp/win-arm64@3.14.5", "", { "os": "win32", "cpu": [ "x64", "arm64", ] }, "sha512-WTZJeb2JZo/qPNHf++xA2YeMXB46G7G4WsKEnHVyCpAhhslHAhe/LPgSQfNfk9rYusbsRiy9QMxeGNSOowZMVQ=="],
"@node-llama-cpp/win-x64": ["@node-llama-cpp/win-x64@3.14.5", "", { "os": "win32", "cpu": "x64" }, "sha512-cEuhb1iLTodM+V8xc1mWKeWRYkX9tlnl0+9jUjwsv2kgnAjEob3WlTYsCXewvEe2ShSyk8AsLsBPZxv7IQaBsw=="],
"@node-llama-cpp/win-x64-cuda": ["@node-llama-cpp/win-x64-cuda@3.14.5", "", { "os": "win32", "cpu": "x64" }, "sha512-gwBMSzUteLD765Gq/hYQ4UC21vggR7oG+DU4zAg0Mt3i34PqKJC+tBop5jsTN5Hq8RaM9+nTNrVbF/x228TLvg=="],
"@node-llama-cpp/win-x64-cuda-ext": ["@node-llama-cpp/win-x64-cuda-ext@3.14.5", "", { "os": "win32", "cpu": "x64" }, "sha512-kBHnUmodr+n8N+sKTh1c6aNNEmvXBWM5AtaLWIEfkCb00bVHNFeqYPmLuPNtMX3dIUtD9PHdA4Jsn0RJmNZJfA=="],
"@node-llama-cpp/win-x64-vulkan": ["@node-llama-cpp/win-x64-vulkan@3.14.5", "", { "os": "win32", "cpu": "x64" }, "sha512-rY+vr5RaGSCWEe22WZMkhUu16o9zpeqTZO/nD5G27Y0bb+xBRDLmXbxYMp2dDQTfpkNWIZ0ia3PGWwl5yhYw7A=="],
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
"@octokit/app": ["@octokit/app@16.1.2", "", { "dependencies": { "@octokit/auth-app": "^8.1.2", "@octokit/auth-unauthenticated": "^7.0.3", "@octokit/core": "^7.0.6", "@octokit/oauth-app": "^8.0.3", "@octokit/plugin-paginate-rest": "^14.0.0", "@octokit/types": "^16.0.0", "@octokit/webhooks": "^14.0.0" } }, "sha512-8j7sEpUYVj18dxvh0KWj6W/l6uAiVRBl1JBDVRqH1VHKAO/G5eRVl4yEoYACjakWers1DjUkcCHyJNQK47JqyQ=="],
"@octokit/auth-app": ["@octokit/auth-app@8.1.2", "", { "dependencies": { "@octokit/auth-oauth-app": "^9.0.3", "@octokit/auth-oauth-user": "^6.0.2", "@octokit/request": "^10.0.6", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "toad-cache": "^3.7.0", "universal-github-app-jwt": "^2.2.0", "universal-user-agent": "^7.0.0" } }, "sha512-db8VO0PqXxfzI6GdjtgEFHY9tzqUql5xMFXYA12juq8TeTgPAuiiP3zid4h50lwlIP457p5+56PnJOgd2GGBuw=="],
"@octokit/auth-oauth-app": ["@octokit/auth-oauth-app@9.0.3", "", { "dependencies": { "@octokit/auth-oauth-device": "^8.0.3", "@octokit/auth-oauth-user": "^6.0.2", "@octokit/request": "^10.0.6", "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.0" } }, "sha512-+yoFQquaF8OxJSxTb7rnytBIC2ZLbLqA/yb71I4ZXT9+Slw4TziV9j/kyGhUFRRTF2+7WlnIWsePZCWHs+OGjg=="],
"@octokit/auth-oauth-device": ["@octokit/auth-oauth-device@8.0.3", "", { "dependencies": { "@octokit/oauth-methods": "^6.0.2", "@octokit/request": "^10.0.6", "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.0" } }, "sha512-zh2W0mKKMh/VWZhSqlaCzY7qFyrgd9oTWmTmHaXnHNeQRCZr/CXy2jCgHo4e4dJVTiuxP5dLa0YM5p5QVhJHbw=="],
"@octokit/auth-oauth-user": ["@octokit/auth-oauth-user@6.0.2", "", { "dependencies": { "@octokit/auth-oauth-device": "^8.0.3", "@octokit/oauth-methods": "^6.0.2", "@octokit/request": "^10.0.6", "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.0" } }, "sha512-qLoPPc6E6GJoz3XeDG/pnDhJpTkODTGG4kY0/Py154i/I003O9NazkrwJwRuzgCalhzyIeWQ+6MDvkUmKXjg/A=="],
"@octokit/auth-token": ["@octokit/auth-token@6.0.0", "", {}, "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w=="],
"@octokit/auth-unauthenticated": ["@octokit/auth-unauthenticated@7.0.3", "", { "dependencies": { "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0" } }, "sha512-8Jb1mtUdmBHL7lGmop9mU9ArMRUTRhg8vp0T1VtZ4yd9vEm3zcLwmjQkhNEduKawOOORie61xhtYIhTDN+ZQ3g=="],
"@octokit/core": ["@octokit/core@7.0.6", "", { "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", "@octokit/request": "^10.0.6", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "before-after-hook": "^4.0.0", "universal-user-agent": "^7.0.0" } }, "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q=="],
"@octokit/endpoint": ["@octokit/endpoint@11.0.2", "", { "dependencies": { "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ=="],
"@octokit/graphql": ["@octokit/graphql@9.0.3", "", { "dependencies": { "@octokit/request": "^10.0.6", "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.0" } }, "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA=="],
"@octokit/oauth-app": ["@octokit/oauth-app@8.0.3", "", { "dependencies": { "@octokit/auth-oauth-app": "^9.0.2", "@octokit/auth-oauth-user": "^6.0.1", "@octokit/auth-unauthenticated": "^7.0.2", "@octokit/core": "^7.0.5", "@octokit/oauth-authorization-url": "^8.0.0", "@octokit/oauth-methods": "^6.0.1", "@types/aws-lambda": "^8.10.83", "universal-user-agent": "^7.0.0" } }, "sha512-jnAjvTsPepyUaMu9e69hYBuozEPgYqP4Z3UnpmvoIzHDpf8EXDGvTY1l1jK0RsZ194oRd+k6Hm13oRU8EoDFwg=="],
"@octokit/oauth-authorization-url": ["@octokit/oauth-authorization-url@8.0.0", "", {}, "sha512-7QoLPRh/ssEA/HuHBHdVdSgF8xNLz/Bc5m9fZkArJE5bb6NmVkDm3anKxXPmN1zh6b5WKZPRr3697xKT/yM3qQ=="],
"@octokit/oauth-methods": ["@octokit/oauth-methods@6.0.2", "", { "dependencies": { "@octokit/oauth-authorization-url": "^8.0.0", "@octokit/request": "^10.0.6", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0" } }, "sha512-HiNOO3MqLxlt5Da5bZbLV8Zarnphi4y9XehrbaFMkcoJ+FL7sMxH/UlUsCVxpddVu4qvNDrBdaTVE2o4ITK8ng=="],
"@octokit/openapi-types": ["@octokit/openapi-types@27.0.0", "", {}, "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA=="],
"@octokit/openapi-webhooks-types": ["@octokit/openapi-webhooks-types@12.1.0", "", {}, "sha512-WiuzhOsiOvb7W3Pvmhf8d2C6qaLHXrWiLBP4nJ/4kydu+wpagV5Fkz9RfQwV2afYzv3PB+3xYgp4mAdNGjDprA=="],
"@octokit/plugin-paginate-graphql": ["@octokit/plugin-paginate-graphql@6.0.0", "", { "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-crfpnIoFiBtRkvPqOyLOsw12XsveYuY2ieP6uYDosoUegBJpSVxGwut9sxUgFFcll3VTOTqpUf8yGd8x1OmAkQ=="],
"@octokit/plugin-paginate-rest": ["@octokit/plugin-paginate-rest@14.0.0", "", { "dependencies": { "@octokit/types": "^16.0.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw=="],
"@octokit/plugin-rest-endpoint-methods": ["@octokit/plugin-rest-endpoint-methods@17.0.0", "", { "dependencies": { "@octokit/types": "^16.0.0" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw=="],
"@octokit/plugin-retry": ["@octokit/plugin-retry@8.0.3", "", { "dependencies": { "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "bottleneck": "^2.15.3" }, "peerDependencies": { "@octokit/core": ">=7" } }, "sha512-vKGx1i3MC0za53IzYBSBXcrhmd+daQDzuZfYDd52X5S0M2otf3kVZTVP8bLA3EkU0lTvd1WEC2OlNNa4G+dohA=="],
"@octokit/plugin-throttling": ["@octokit/plugin-throttling@11.0.3", "", { "dependencies": { "@octokit/types": "^16.0.0", "bottleneck": "^2.15.3" }, "peerDependencies": { "@octokit/core": "^7.0.0" } }, "sha512-34eE0RkFCKycLl2D2kq7W+LovheM/ex3AwZCYN8udpi6bxsyjZidb2McXs69hZhLmJlDqTSP8cH+jSRpiaijBg=="],
"@octokit/request": ["@octokit/request@10.0.7", "", { "dependencies": { "@octokit/endpoint": "^11.0.2", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "fast-content-type-parse": "^3.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA=="],
"@octokit/request-error": ["@octokit/request-error@7.1.0", "", { "dependencies": { "@octokit/types": "^16.0.0" } }, "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw=="],
"@octokit/types": ["@octokit/types@16.0.0", "", { "dependencies": { "@octokit/openapi-types": "^27.0.0" } }, "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg=="],
"@octokit/webhooks": ["@octokit/webhooks@14.2.0", "", { "dependencies": { "@octokit/openapi-webhooks-types": "12.1.0", "@octokit/request-error": "^7.0.0", "@octokit/webhooks-methods": "^6.0.0" } }, "sha512-da6KbdNCV5sr1/txD896V+6W0iamFWrvVl8cHkBSPT+YlvmT3DwXa4jxZnQc+gnuTEqSWbBeoSZYTayXH9wXcw=="],
"@octokit/webhooks-methods": ["@octokit/webhooks-methods@6.0.0", "", {}, "sha512-MFlzzoDJVw/GcbfzVC1RLR36QqkTLUf79vLVO3D+xn7r0QgxnFoLZgtrzxiQErAjFUOdH6fas2KeQJ1yr/qaXQ=="],
"@reflink/reflink": ["@reflink/reflink@0.1.19", "", { "optionalDependencies": { "@reflink/reflink-darwin-arm64": "0.1.19", "@reflink/reflink-darwin-x64": "0.1.19", "@reflink/reflink-linux-arm64-gnu": "0.1.19", "@reflink/reflink-linux-arm64-musl": "0.1.19", "@reflink/reflink-linux-x64-gnu": "0.1.19", "@reflink/reflink-linux-x64-musl": "0.1.19", "@reflink/reflink-win32-arm64-msvc": "0.1.19", "@reflink/reflink-win32-x64-msvc": "0.1.19" } }, "sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA=="],
"@reflink/reflink-darwin-arm64": ["@reflink/reflink-darwin-arm64@0.1.19", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA=="],
"@reflink/reflink-darwin-x64": ["@reflink/reflink-darwin-x64@0.1.19", "", { "os": "darwin", "cpu": "x64" }, "sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA=="],
"@reflink/reflink-linux-arm64-gnu": ["@reflink/reflink-linux-arm64-gnu@0.1.19", "", { "os": "linux", "cpu": "arm64" }, "sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg=="],
"@reflink/reflink-linux-arm64-musl": ["@reflink/reflink-linux-arm64-musl@0.1.19", "", { "os": "linux", "cpu": "arm64" }, "sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA=="],
"@reflink/reflink-linux-x64-gnu": ["@reflink/reflink-linux-x64-gnu@0.1.19", "", { "os": "linux", "cpu": "x64" }, "sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw=="],
"@reflink/reflink-linux-x64-musl": ["@reflink/reflink-linux-x64-musl@0.1.19", "", { "os": "linux", "cpu": "x64" }, "sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ=="],
"@reflink/reflink-win32-arm64-msvc": ["@reflink/reflink-win32-arm64-msvc@0.1.19", "", { "os": "win32", "cpu": "arm64" }, "sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ=="],
"@reflink/reflink-win32-x64-msvc": ["@reflink/reflink-win32-x64-msvc@0.1.19", "", { "os": "win32", "cpu": "x64" }, "sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w=="],
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.57.1", "", { "os": "android", "cpu": "arm" }, "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg=="],
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.57.1", "", { "os": "android", "cpu": "arm64" }, "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w=="],
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.57.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg=="],
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.57.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w=="],
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.57.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug=="],
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.57.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q=="],
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw=="],
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw=="],
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g=="],
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q=="],
"@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA=="],
"@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw=="],
"@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w=="],
"@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw=="],
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A=="],
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw=="],
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.57.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg=="],
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg=="],
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw=="],
"@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.57.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw=="],
"@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.57.1", "", { "os": "none", "cpu": "arm64" }, "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ=="],
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.57.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ=="],
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.57.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew=="],
"@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ=="],
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA=="],
"@tinyhttp/content-disposition": ["@tinyhttp/content-disposition@2.2.2", "", {}, "sha512-crXw1txzrS36huQOyQGYFvhTeLeG0Si1xu+/l6kXUVYpE0TjFjEZRqTbuadQLfKGZ0jaI+jJoRyqaWwxOSHW2g=="],
"@types/aws-lambda": ["@types/aws-lambda@8.10.159", "", {}, "sha512-SAP22WSGNN12OQ8PlCzGzRCZ7QDCwI85dQZbmpz7+mAk+L7j+wI7qnvmdKh+o7A5LaOp6QnOZ2NJphAZQTTHQg=="],
"@types/better-sqlite3": ["@types/better-sqlite3@7.6.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA=="],
"@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="],
"@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="],
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
"@vitest/expect": ["@vitest/expect@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" } }, "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig=="],
"@vitest/mocker": ["@vitest/mocker@3.2.4", "", { "dependencies": { "@vitest/spy": "3.2.4", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "optionalPeers": ["msw", "vite"] }, "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ=="],
"@vitest/pretty-format": ["@vitest/pretty-format@3.2.4", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA=="],
"@vitest/runner": ["@vitest/runner@3.2.4", "", { "dependencies": { "@vitest/utils": "3.2.4", "pathe": "^2.0.3", "strip-literal": "^3.0.0" } }, "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ=="],
"@vitest/snapshot": ["@vitest/snapshot@3.2.4", "", { "dependencies": { "@vitest/pretty-format": "3.2.4", "magic-string": "^0.30.17", "pathe": "^2.0.3" } }, "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ=="],
"@vitest/spy": ["@vitest/spy@3.2.4", "", { "dependencies": { "tinyspy": "^4.0.3" } }, "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw=="],
"@vitest/utils": ["@vitest/utils@3.2.4", "", { "dependencies": { "@vitest/pretty-format": "3.2.4", "loupe": "^3.1.4", "tinyrainbow": "^2.0.0" } }, "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA=="],
"accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="],
"ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="],
"ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="],
"ansi-escapes": ["ansi-escapes@6.2.1", "", {}, "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig=="],
"ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="],
"ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="],
"aproba": ["aproba@2.1.0", "", {}, "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew=="],
"are-we-there-yet": ["are-we-there-yet@3.0.1", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg=="],
"assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="],
"async-retry": ["async-retry@1.3.3", "", { "dependencies": { "retry": "0.13.1" } }, "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw=="],
"asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="],
"axios": ["axios@1.13.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA=="],
"base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
"before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="],
"better-sqlite3": ["better-sqlite3@11.10.0", "", { "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" } }, "sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ=="],
"bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="],
"bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="],
"body-parser": ["body-parser@2.2.1", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw=="],
"bottleneck": ["bottleneck@2.19.5", "", {}, "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw=="],
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
"buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
"bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
"cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
"call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="],
"call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="],
"chai": ["chai@5.3.3", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw=="],
"chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
"check-error": ["check-error@2.1.3", "", {}, "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA=="],
"chmodrp": ["chmodrp@1.0.2", "", {}, "sha512-TdngOlFV1FLTzU0o1w8MB6/BFywhtLC0SzRTGJU7T9lmdjlCWeMRt1iVo0Ki+ldwNk0BqNiKoc8xpLZEQ8mY1w=="],
"chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="],
"ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="],
"cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="],
"cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="],
"cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="],
"cmake-js": ["cmake-js@7.4.0", "", { "dependencies": { "axios": "^1.6.5", "debug": "^4", "fs-extra": "^11.2.0", "memory-stream": "^1.0.0", "node-api-headers": "^1.1.0", "npmlog": "^6.0.2", "rc": "^1.2.7", "semver": "^7.5.4", "tar": "^6.2.0", "url-join": "^4.0.1", "which": "^2.0.2", "yargs": "^17.7.2" }, "bin": { "cmake-js": "bin/cmake-js" } }, "sha512-Lw0JxEHrmk+qNj1n9W9d4IvkDdYTBn7l2BW6XmtLj7WPpIo2shvxUy+YokfjMxAAOELNonQwX3stkPhM5xSC2Q=="],
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
"color-support": ["color-support@1.1.3", "", { "bin": { "color-support": "bin.js" } }, "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="],
"combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="],
"commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
"console-control-strings": ["console-control-strings@1.1.0", "", {}, "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="],
"content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="],
"content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="],
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
"cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="],
"cors": ["cors@2.8.5", "", { "dependencies": { "object-assign": "^4", "vary": "^1" } }, "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g=="],
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
"decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="],
"deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="],
"deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="],
"delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="],
"delegates": ["delegates@1.0.0", "", {}, "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="],
"depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
"dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="],
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
"emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="],
"encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="],
"end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
"env-var": ["env-var@7.5.0", "", {}, "sha512-mKZOzLRN0ETzau2W2QXefbFjo5EF4yWq28OyKb9ICdeNhHJlOE/pHHnz4hdYJ9cNZXcJHo5xN4OT4pzuSHSNvA=="],
"es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="],
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
"es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="],
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
"esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="],
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
"escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="],
"estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="],
"etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="],
"eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="],
"eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="],
"eventsource-parser": ["eventsource-parser@3.0.6", "", {}, "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg=="],
"expand-template": ["expand-template@2.0.3", "", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="],
"expect-type": ["expect-type@1.3.0", "", {}, "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="],
"express": ["express@5.2.1", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.1", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "depd": "^2.0.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="],
"express-rate-limit": ["express-rate-limit@7.5.1", "", { "peerDependencies": { "express": ">= 4.11" } }, "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw=="],
"fast-content-type-parse": ["fast-content-type-parse@3.0.0", "", {}, "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg=="],
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
"fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="],
"fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="],
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
"file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="],
"filename-reserved-regex": ["filename-reserved-regex@3.0.0", "", {}, "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw=="],
"filenamify": ["filenamify@6.0.0", "", { "dependencies": { "filename-reserved-regex": "^3.0.0" } }, "sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ=="],
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
"finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="],
"follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="],
"form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="],
"forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="],
"fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="],
"fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="],
"fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="],
"fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="],
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
"function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
"gauge": ["gauge@4.0.4", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg=="],
"get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
"get-east-asian-width": ["get-east-asian-width@1.4.0", "", {}, "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q=="],
"get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="],
"get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="],
"get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="],
"github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="],
"glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
"gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="],
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
"has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="],
"has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="],
"has-unicode": ["has-unicode@2.0.1", "", {}, "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="],
"hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
"hono": ["hono@4.11.1", "", {}, "sha512-KsFcH0xxHes0J4zaQgWbYwmz3UPOOskdqZmItstUG93+Wk1ePBLkLGwbP9zlmh1BFUiL8Qp+Xfu9P7feJWpGNg=="],
"http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="],
"iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="],
"ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
"ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
"ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
"ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="],
"ipull": ["ipull@3.9.3", "", { "dependencies": { "@tinyhttp/content-disposition": "^2.2.0", "async-retry": "^1.3.3", "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-spinners": "^2.9.2", "commander": "^10.0.0", "eventemitter3": "^5.0.1", "filenamify": "^6.0.0", "fs-extra": "^11.1.1", "is-unicode-supported": "^2.0.0", "lifecycle-utils": "^2.0.1", "lodash.debounce": "^4.0.8", "lowdb": "^7.0.1", "pretty-bytes": "^6.1.0", "pretty-ms": "^8.0.0", "sleep-promise": "^9.1.0", "slice-ansi": "^7.1.0", "stdout-update": "^4.0.1", "strip-ansi": "^7.1.0" }, "optionalDependencies": { "@reflink/reflink": "^0.1.16" }, "bin": { "ipull": "dist/cli/cli.js" } }, "sha512-ZMkxaopfwKHwmEuGDYx7giNBdLxbHbRCWcQVA1D2eqE4crUguupfxej6s7UqbidYEwT69dkyumYkY8DPHIxF9g=="],
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
"is-fullwidth-code-point": ["is-fullwidth-code-point@5.1.0", "", { "dependencies": { "get-east-asian-width": "^1.3.1" } }, "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ=="],
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
"is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="],
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
"is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="],
"is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="],
"isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="],
"jose": ["jose@6.1.3", "", {}, "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ=="],
"js-tokens": ["js-tokens@9.0.1", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="],
"json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="],
"json-schema-typed": ["json-schema-typed@8.0.2", "", {}, "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="],
"jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="],
"lifecycle-utils": ["lifecycle-utils@3.0.1", "", {}, "sha512-Qt/Jl5dsNIsyCAZsHB6x3mbwHFn0HJbdmvF49sVX/bHgX2cW7+G+U+I67Zw+TPM1Sr21Gb2nfJMd2g6iUcI1EQ=="],
"lodash.debounce": ["lodash.debounce@4.0.8", "", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="],
"log-symbols": ["log-symbols@7.0.1", "", { "dependencies": { "is-unicode-supported": "^2.0.0", "yoctocolors": "^2.1.1" } }, "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg=="],
"loupe": ["loupe@3.2.1", "", {}, "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ=="],
"lowdb": ["lowdb@7.0.1", "", { "dependencies": { "steno": "^4.0.2" } }, "sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw=="],
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
"math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
"media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
"memory-stream": ["memory-stream@1.0.0", "", { "dependencies": { "readable-stream": "^3.4.0" } }, "sha512-Wm13VcsPIMdG96dzILfij09PvuS3APtcKNh7M28FsCA/w6+1mjR7hhPmfFNoilX9xU7wTdhsH5lJAm6XNzdtww=="],
"merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="],
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
"mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
"mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="],
"mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="],
"mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="],
"minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
"minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="],
"minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
"mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
"mkdirp-classic": ["mkdirp-classic@0.5.3", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="],
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
"nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="],
"napi-build-utils": ["napi-build-utils@2.0.0", "", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="],
"negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="],
"node-abi": ["node-abi@3.87.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ=="],
"node-addon-api": ["node-addon-api@8.5.0", "", {}, "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A=="],
"node-api-headers": ["node-api-headers@1.7.0", "", {}, "sha512-uJMGdkhVwu9+I3UsVvI3KW6ICAy/yDfsu5Br9rSnTtY3WpoaComXvKloiV5wtx0Md2rn0B9n29Ys2WMNwWxj9A=="],
"node-llama-cpp": ["node-llama-cpp@3.14.5", "", { "dependencies": { "@huggingface/jinja": "^0.5.3", "async-retry": "^1.3.3", "bytes": "^3.1.2", "chalk": "^5.4.1", "chmodrp": "^1.0.2", "cmake-js": "^7.4.0", "cross-spawn": "^7.0.6", "env-var": "^7.5.0", "filenamify": "^6.0.0", "fs-extra": "^11.3.0", "ignore": "^7.0.4", "ipull": "^3.9.2", "is-unicode-supported": "^2.1.0", "lifecycle-utils": "^3.0.1", "log-symbols": "^7.0.0", "nanoid": "^5.1.5", "node-addon-api": "^8.3.1", "octokit": "^5.0.3", "ora": "^8.2.0", "pretty-ms": "^9.2.0", "proper-lockfile": "^4.1.2", "semver": "^7.7.1", "simple-git": "^3.27.0", "slice-ansi": "^7.1.0", "stdout-update": "^4.0.1", "strip-ansi": "^7.1.0", "validate-npm-package-name": "^6.0.0", "which": "^5.0.0", "yargs": "^17.7.2" }, "optionalDependencies": { "@node-llama-cpp/linux-arm64": "3.14.5", "@node-llama-cpp/linux-armv7l": "3.14.5", "@node-llama-cpp/linux-x64": "3.14.5", "@node-llama-cpp/linux-x64-cuda": "3.14.5", "@node-llama-cpp/linux-x64-cuda-ext": "3.14.5", "@node-llama-cpp/linux-x64-vulkan": "3.14.5", "@node-llama-cpp/mac-arm64-metal": "3.14.5", "@node-llama-cpp/mac-x64": "3.14.5", "@node-llama-cpp/win-arm64": "3.14.5", "@node-llama-cpp/win-x64": "3.14.5", "@node-llama-cpp/win-x64-cuda": "3.14.5", "@node-llama-cpp/win-x64-cuda-ext": "3.14.5", "@node-llama-cpp/win-x64-vulkan": "3.14.5" }, "peerDependencies": { "typescript": ">=5.0.0" }, "optionalPeers": ["typescript"], "bin": { "node-llama-cpp": "dist/cli/cli.js", "nlc": "dist/cli/cli.js" } }, "sha512-Db+RFqFMJOOVWprUINq77LVe44FaiJ6JvNiq14r2+DZRgkgyxckSZa6DcZ5Xe5MC+hGA5aqOdnNxsrudUcs74Q=="],
"npmlog": ["npmlog@6.0.2", "", { "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg=="],
"object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
"object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="],
"octokit": ["octokit@5.0.5", "", { "dependencies": { "@octokit/app": "^16.1.2", "@octokit/core": "^7.0.6", "@octokit/oauth-app": "^8.0.3", "@octokit/plugin-paginate-graphql": "^6.0.0", "@octokit/plugin-paginate-rest": "^14.0.0", "@octokit/plugin-rest-endpoint-methods": "^17.0.0", "@octokit/plugin-retry": "^8.0.3", "@octokit/plugin-throttling": "^11.0.3", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "@octokit/webhooks": "^14.0.0" } }, "sha512-4+/OFSqOjoyULo7eN7EA97DE0Xydj/PW5aIckxqQIoFjFwqXKuFCvXUJObyJfBF9Khu4RL/jlDRI9FPaMGfPnw=="],
"on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="],
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
"onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="],
"ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="],
"parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="],
"parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
"path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="],
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
"pathval": ["pathval@2.0.1", "", {}, "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ=="],
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
"pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="],
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
"prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="],
"pretty-bytes": ["pretty-bytes@6.1.1", "", {}, "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ=="],
"pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="],
"proper-lockfile": ["proper-lockfile@4.1.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="],
"proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
"proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="],
"pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="],
"qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="],
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
"range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="],
"raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="],
"rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="],
"readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
"require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
"require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
"resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
"restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="],
"retry": ["retry@0.13.1", "", {}, "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="],
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
"rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="],
"router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="],
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
"send": ["send@1.2.0", "", { "dependencies": { "debug": "^4.3.5", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.0", "mime-types": "^3.0.1", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.1" } }, "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw=="],
"serve-static": ["serve-static@2.2.0", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ=="],
"set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="],
"setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
"side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="],
"side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="],
"siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="],
"signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
"simple-concat": ["simple-concat@1.0.1", "", {}, "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="],
"simple-get": ["simple-get@4.0.1", "", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="],
"simple-git": ["simple-git@3.30.0", "", { "dependencies": { "@kwsites/file-exists": "^1.1.1", "@kwsites/promise-deferred": "^1.1.1", "debug": "^4.4.0" } }, "sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg=="],
"sleep-promise": ["sleep-promise@9.1.0", "", {}, "sha512-UHYzVpz9Xn8b+jikYSD6bqvf754xL2uBUzDFwiU6NcdZeifPr6UfgU43xpkPu67VMS88+TI2PSI7Eohgqf2fKA=="],
"slice-ansi": ["slice-ansi@7.1.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w=="],
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
"sqlite-vec": ["sqlite-vec@0.1.7-alpha.2", "", { "optionalDependencies": { "sqlite-vec-darwin-arm64": "0.1.7-alpha.2", "sqlite-vec-darwin-x64": "0.1.7-alpha.2", "sqlite-vec-linux-arm64": "0.1.7-alpha.2", "sqlite-vec-linux-x64": "0.1.7-alpha.2", "sqlite-vec-windows-x64": "0.1.7-alpha.2" } }, "sha512-rNgRCv+4V4Ed3yc33Qr+nNmjhtrMnnHzXfLVPeGb28Dx5mmDL3Ngw/Wk8vhCGjj76+oC6gnkmMG8y73BZWGBwQ=="],
"sqlite-vec-darwin-arm64": ["sqlite-vec-darwin-arm64@0.1.7-alpha.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-raIATOqFYkeCHhb/t3r7W7Cf2lVYdf4J3ogJ6GFc8PQEgHCPEsi+bYnm2JT84MzLfTlSTIdxr4/NKv+zF7oLPw=="],
"sqlite-vec-darwin-x64": ["sqlite-vec-darwin-x64@0.1.7-alpha.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-jeZEELsQjjRsVojsvU5iKxOvkaVuE+JYC8Y4Ma8U45aAERrDYmqZoHvgSG7cg1PXL3bMlumFTAmHynf1y4pOzA=="],
"sqlite-vec-linux-arm64": ["sqlite-vec-linux-arm64@0.1.7-alpha.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-6Spj4Nfi7tG13jsUG+W7jnT0bCTWbyPImu2M8nWp20fNrd1SZ4g3CSlDAK8GBdavX7wRlbBHCZ+BDa++rbDewA=="],
"sqlite-vec-linux-x64": ["sqlite-vec-linux-x64@0.1.7-alpha.2", "", { "os": "linux", "cpu": "x64" }, "sha512-IcgrbHaDccTVhXDf8Orwdc2+hgDLAFORl6OBUhcvlmwswwBP1hqBTSEhovClG4NItwTOBNgpwOoQ7Qp3VDPWLg=="],
"sqlite-vec-windows-x64": ["sqlite-vec-windows-x64@0.1.7-alpha.2", "", { "os": "win32", "cpu": "x64" }, "sha512-TRP6hTjAcwvQ6xpCZvjP00pdlda8J38ArFy1lMYhtQWXiIBmWnhMaMbq4kaeCYwvTTddfidatRS+TJrwIKB/oQ=="],
"stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="],
"statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="],
"std-env": ["std-env@3.10.0", "", {}, "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg=="],
"stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="],
"stdout-update": ["stdout-update@4.0.1", "", { "dependencies": { "ansi-escapes": "^6.2.0", "ansi-styles": "^6.2.1", "string-width": "^7.1.0", "strip-ansi": "^7.1.0" } }, "sha512-wiS21Jthlvl1to+oorePvcyrIkiG/6M3D3VTmDUlJm7Cy6SbFhKkAvX+YBuHLxck/tO3mrdpC/cNesigQc3+UQ=="],
"steno": ["steno@4.0.2", "", {}, "sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A=="],
"string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
"string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="],
"strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
"strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
"strip-literal": ["strip-literal@3.1.0", "", { "dependencies": { "js-tokens": "^9.0.1" } }, "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg=="],
"tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="],
"tar-fs": ["tar-fs@2.1.4", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="],
"tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
"tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="],
"tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="],
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
"tinypool": ["tinypool@1.1.1", "", {}, "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg=="],
"tinyrainbow": ["tinyrainbow@2.0.0", "", {}, "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw=="],
"tinyspy": ["tinyspy@4.0.4", "", {}, "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q=="],
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
"toad-cache": ["toad-cache@3.7.0", "", {}, "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw=="],
"toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
"tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="],
"tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
"type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="],
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
"universal-github-app-jwt": ["universal-github-app-jwt@2.2.2", "", {}, "sha512-dcmbeSrOdTnsjGjUfAlqNDJrhxXizjAz94ija9Qw8YkZ1uu0d+GoZzyH+Jb9tIIqvGsadUfwg+22k5aDqqwzbw=="],
"universal-user-agent": ["universal-user-agent@7.0.3", "", {}, "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A=="],
"universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
"unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
"url-join": ["url-join@4.0.1", "", {}, "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="],
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"validate-npm-package-name": ["validate-npm-package-name@6.0.2", "", {}, "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ=="],
"vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
"vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
"vite-node": ["vite-node@3.2.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="],
"vitest": ["vitest@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="],
"which": ["which@5.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ=="],
"why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="],
"wide-align": ["wide-align@1.1.5", "", { "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="],
"wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
"y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
"yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="],
"yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="],
"yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
"yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
"yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="],
"zod": ["zod@4.2.1", "", {}, "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw=="],
"zod-to-json-schema": ["zod-to-json-schema@3.25.0", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ=="],
"cliui/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"cmake-js/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
"cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
"form-data/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="],
"fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
"gauge/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"gauge/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"ipull/lifecycle-utils": ["lifecycle-utils@2.1.0", "", {}, "sha512-AnrXnE2/OF9PHCyFg0RSqsnQTzV991XaZA/buhFDoc58xU7rhSCDgCz/09Lqpsn4MpoPHt7TRAXV1kWZypFVsA=="],
"ipull/pretty-ms": ["pretty-ms@8.0.0", "", { "dependencies": { "parse-ms": "^3.0.0" } }, "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q=="],
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
"minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
"ora/log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="],
"postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
"proper-lockfile/retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="],
"restore-cursor/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
"tar/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],
"wide-align/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
"wrap-ansi/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"cliui/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"cliui/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"cmake-js/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
"cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
"form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="],
"gauge/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"gauge/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"gauge/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"ipull/pretty-ms/parse-ms": ["parse-ms@3.0.0", "", {}, "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw=="],
"ora/log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="],
"wide-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"wide-align/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"wide-align/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"wrap-ansi/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"wrap-ansi/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"yargs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
"yargs/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
"yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
"wide-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
"yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
}
}

View File

@@ -0,0 +1,146 @@
# QMD Query Syntax
QMD queries are structured documents with typed sub-queries. Each line specifies a search type and query text.
## Grammar
```ebnf
query = expand_query | query_document ;
expand_query = text | explicit_expand ;
explicit_expand= "expand:" text ;
query_document = { typed_line } ;
typed_line = type ":" text newline ;
type = "lex" | "vec" | "hyde" ;
text = quoted_phrase | plain_text ;
quoted_phrase = '"' { character } '"' ;
plain_text = { character } ;
newline = "\n" ;
```
## Query Types
| Type | Method | Description |
|------|--------|-------------|
| `lex` | BM25 | Keyword search with exact matching |
| `vec` | Vector | Semantic similarity search |
| `hyde` | Vector | Hypothetical document embedding |
## Default Behavior
A QMD query is either a single expand query or a multi-line query document. Any single-line query with no prefix is treated as an expand query and passed to the expansion model, which emits lex, vec, and hyde variants automatically.
```
# These are equivalent and cannot be combined with typed lines:
how does authentication work
expand: how does authentication work
```
## Lex Query Syntax
Lex queries support special syntax for precise keyword matching:
```ebnf
lex_query = { lex_term } ;
lex_term = negation | phrase | word ;
negation = "-" ( phrase | word ) ;
phrase = '"' { character } '"' ;
word = { letter | digit | "'" } ;
```
| Syntax | Meaning | Example |
|--------|---------|---------|
| `word` | Prefix match | `perf` matches "performance" |
| `"phrase"` | Exact phrase | `"rate limiter"` |
| `-word` | Exclude term | `-sports` |
| `-"phrase"` | Exclude phrase | `-"test data"` |
### Examples
```
lex: CAP theorem consistency
lex: "machine learning" -"deep learning"
lex: auth -oauth -saml
```
## Vec Query Syntax
Vec queries are natural language questions. No special syntax — just write what you're looking for.
```
vec: how does the rate limiter handle burst traffic
vec: what is the tradeoff between consistency and availability
```
## Hyde Query Syntax
Hyde queries are hypothetical answer passages (50-100 words). Write what you expect the answer to look like.
```
hyde: The rate limiter uses a sliding window algorithm with a 60-second window. When a client exceeds 100 requests per minute, subsequent requests return 429 Too Many Requests.
```
## Multi-Line Queries
Combine multiple query types for best results. First query gets 2x weight in fusion.
```
lex: rate limiter algorithm
vec: how does rate limiting work in the API
hyde: The API implements rate limiting using a token bucket algorithm...
```
## Expand Queries
An expand query stands alone; it's not mixed with typed lines. You can either rely on the default untyped form or add the explicit `expand:` prefix:
```
expand: error handling best practices
# equivalent
error handling best practices
```
Both forms call the local query expansion model, which generates lex, vec, and hyde variations automatically.
## Constraints
- Top-level query must be either a standalone expand query or a multi-line document
- Query documents allow only `lex`, `vec`, and `hyde` typed lines (no `expand:` inside)
- `lex` syntax (`-term`, `"phrase"`) only works in lex queries
- Empty lines are ignored
- Leading/trailing whitespace is trimmed
## MCP/HTTP API
The `query` tool accepts a query document:
```json
{
"q": "lex: CAP theorem\nvec: consistency vs availability",
"collections": ["docs"],
"limit": 10
}
```
Or structured format:
```json
{
"searches": [
{ "type": "lex", "query": "CAP theorem" },
{ "type": "vec", "query": "consistency vs availability" }
]
}
```
## CLI
```bash
# Single line (implicit expand)
qmd query "how does auth work"
# Multi-line with types
qmd query $'lex: auth token\nvec: how does authentication work'
# Structured
qmd query $'lex: keywords\nvec: question\nhyde: hypothetical answer...'
```

View File

@@ -0,0 +1,33 @@
# QMD Collections Configuration
# Location: ~/.config/qmd/index.yml
#
# This file defines all collections and their contexts.
# You can manually edit this file - changes take effect immediately.
# Global context applied to all collections
# Use this for universal search instructions or patterns
global_context: "If you see a relevant [[WikiWord]], you can search for that WikiWord to get more context."
# Collection definitions
collections:
# Meeting notes
Meetings:
path: ~/Documents/Meetings
pattern: "**/*.md"
context:
"/": "Meeting notes and summaries"
# Daily journal entries
journals:
path: ~/Documents/Notes
pattern: "**/*.md"
context:
"/journal/2024": "Daily notes from 2024"
"/journal/2025": "Daily notes from 2025"
"/": "Notes vault"
codex:
path: ~/Documents/Codex
pattern: "**/*.md"
context:
"/": "Thematic collections of important concepts and discussions"

View File

@@ -0,0 +1,24 @@
# Training outputs (run eval before pushing to HuggingFace)
outputs/
# Model checkpoints
*.pt
*.safetensors
# Processed data files (regenerated by prepare_data.py)
data/train/
data/train_*/
data/qmd_combined.jsonl
data/qmd_cleaned.jsonl
data/qmd_expansion_cleaned.jsonl
data/quality_report.txt
# Eval results
evals/results_*.jsonl
# Scripts (temporary/local)
scripts/
# Python cache
__pycache__/
*.pyc

View File

@@ -0,0 +1,154 @@
# QMD Query Expansion Fine-Tuning
## Overview
Train Qwen3-1.7B to expand search queries into structured `hyde:/lex:/vec:` output for QMD's hybrid retrieval pipeline.
## Output Format
```
hyde: A hypothetical document passage that would answer the query.
lex: keyword1
lex: keyword2
vec: semantic query reformulation
vec: another semantic variation
```
- `hyde:` always comes FIRST (one line max)
- `lex:` lines for BM25 keyword search (1-3 lines, short keywords)
- `vec:` lines for vector similarity search (1-3 lines, natural language)
## Training Data Format
**There is exactly one JSONL format.** Every file in `data/*.jsonl` must match the strict Pydantic schema in `dataset/schema.py`:
```json
{"query": "auth config", "output": [["hyde", "..."], ["lex", "..."], ["vec", "..."]]}
```
- `query`: non-empty string
- `output`: list of `[type, text]` pairs where type is `"lex"`, `"vec"`, or `"hyde"`
- Extra metadata fields (`category`, `intent`, `is_short`) are allowed but ignored
The schema is enforced by `dataset/schema.py:TrainingExample` (Pydantic model). All data loading goes through `load_examples()` which fails loudly on invalid data. No format alternatives, no legacy fallbacks.
**All `.jsonl` files in `data/` are concatenated and deduplicated for training runs.** The prepared train/val files in `data/train/` are ephemeral build artifacts.
## HuggingFace Repositories
| Repository | Purpose |
|------------|---------|
| `tobil/qmd-query-expansion-1.7B` | Final merged model (SFT baseline) |
| `tobil/qmd-query-expansion-1.7B-gguf` | GGUF quantized versions for deployment |
| `tobil/qmd-query-expansion-1.7B-sft` | SFT adapter checkpoint (intermediate) |
| `tobil/qmd-query-expansion-train` | Prepared training dataset |
| `tobil/qmd-query-expansion-1.7B-grpo` | Experimental GRPO adapter (optional) |
**Rules:**
- No versioned repos (`-v1`, `-v2`, `-v4`, etc.) - update in place
- Only push when eval scores improve over current deployed model
- Always include eval results in model card when pushing
## Dataset Tools
| Script | Purpose |
|--------|---------|
| `dataset/schema.py` | Pydantic `TrainingExample` model + `load_examples()` |
| `dataset/prepare_data.py` | Load via schema, apply Qwen3 chat template, dedup, split |
| `dataset/validate_schema.py` | Validate all JSONL files against schema |
| `dataset/score_data.py` | Score all examples using reward.py |
| `dataset/analyze_data.py` | Analyze distribution and quality |
## Training Pipeline
Always use **Qwen3-1.7B** as the base model unless explicitly stated otherwise.
### Stage 0: Prepare Data
```bash
uv run dataset/prepare_data.py
# Creates: data/train/train.jsonl, data/train/val.jsonl (ephemeral)
```
### Stage 1: SFT
```bash
# Local (requires CUDA)
uv run train.py sft --config configs/sft.yaml
# Cloud (HuggingFace Jobs)
hf jobs uv run --flavor a10g-large --secrets HF_TOKEN --timeout 2h jobs/sft.py
```
### Stage 2: (Experimental) GRPO
```bash
# Experimental script
cd finetune && HF_TOKEN=${HF_TOKEN} uv run python experiments/grpo/grpo.py
```
### HuggingFace Jobs
```bash
hf jobs ps # List running jobs
hf jobs logs <job-id> # Stream logs
hf jobs inspect <job-id> # Check status
hf jobs cancel <job-id> # Cancel a job
```
### Evaluation
```bash
uv run eval.py ./outputs/sft
uv run eval.py tobil/qmd-query-expansion-1.7B
uv run eval.py ./outputs/sft -o eval_results.json
```
## Quality Scoring
`reward.py` is the single source of truth for scoring:
```bash
uv run reward.py # Self-test
```
See `SCORING.md` for the full rubric.
## Experiments
Experimental training configurations live in `experiments/`:
```
experiments/
├── lfm2/ # LiquidAI LFM2-1.2B (hybrid architecture, faster inference)
│ ├── sft_lfm2.yaml
│ └── sft_lfm2.py
├── grpo/ # Experimental GRPO recipe and config
│ ├── grpo.py
│ └── grpo.yaml
└── gepa/ # DSPy-based prompt optimization (GEPA)
├── dspy_gepa.py
└── ...
```
These are not part of the main training pipeline.
## Key Files
```
finetune/
├── reward.py # Scoring function (single source of truth)
├── train.py # SFT training entrypoint
├── eval.py # Generate and score expansions
├── convert_gguf.py # GGUF conversion
├── SCORING.md # Detailed scoring rubric
├── CLAUDE.md # This file
├── Justfile # Common commands
├── data/ # All training JSONL files (strict schema)
├── dataset/ # Schema + data tools (Pydantic-based)
├── jobs/ # Self-contained HuggingFace Jobs scripts
├── configs/ # Training configs (sft.yaml)
├── evals/ # Test queries
├── experiments/ # Experimental configs (LFM2, GEPA, GRPO)
└── outputs/ # Local training outputs (gitignored)
```

View File

@@ -0,0 +1,34 @@
set shell := ["bash", "-uc"]
validate:
uv run dataset/validate_schema.py
uv run dataset/score_data.py
for f in data/*.jsonl; do \
uv run dataset/analyze_data.py --input "$f" --show-examples 0; \
done
score:
uv run dataset/score_data.py
schema:
uv run dataset/validate_schema.py
analyze:
for f in data/*.jsonl; do \
uv run dataset/analyze_data.py --input "$f" --show-examples 0; \
done
prepare:
QMD_BASE_MODEL=Qwen/Qwen3-1.7B uv run dataset/prepare_data.py --seed 42
train-local:
just prepare
HF_TOKEN=${HF_TOKEN} uv run torchrun --standalone --nproc_per_node auto \
train.py sft --config configs/sft_local.yaml |& tee /tmp/qmd-sft-train.log
# Experimental GRPO training is in finetune/experiments/grpo and not part of
# the default pipeline.
#
# grpo-local:
# HF_TOKEN=${HF_TOKEN} uv run train.py grpo --config experiments/grpo/grpo.yaml |& tee /tmp/qmd-grpo-train.log

View File

@@ -0,0 +1,16 @@
FROM /home/tobi/src/github.com/tobi/qmd/finetune/outputs/sft/gguf/sft-q4_k_m.gguf
PARAMETER temperature 0.0
PARAMETER top_p 1.0
PARAMETER top_k 0
PARAMETER repeat_penalty 1.1
PARAMETER num_ctx 4096
TEMPLATE """<|im_start|>system
You are a helpful assistant.
<|im_end|>
<|im_start|>user
/no_think Expand this search query: {{ .Prompt }}
<|im_end|>
<|im_start|>assistant
"""

View File

@@ -0,0 +1,265 @@
---
license: mit
language:
- en
base_model: Qwen/Qwen3-1.7B
tags:
- query-expansion
- search
- gguf
- qwen3
pipeline_tag: text-generation
---
# QMD Query Expansion Fine-Tuning
Train small language models to expand search queries for [QMD](https://github.com/tobi/qmd)'s hybrid retrieval pipeline.
## What This Does
Given a raw search query like `"auth config"`, the trained model produces structured expansions:
```
hyde: Authentication can be configured by setting the AUTH_SECRET environment variable.
lex: authentication configuration
lex: auth settings setup
vec: how to configure authentication settings
vec: authentication configuration options
```
These feed into QMD's three search backends:
- **`lex:`** lines go to BM25 full-text search (short, keyword-focused)
- **`vec:`** lines go to vector similarity search (natural language phrases)
- **`hyde:`** is a hypothetical document passage for embedding-based retrieval ([HyDE](https://arxiv.org/abs/2212.10496) technique)
## Quick Start
### Cloud training via HuggingFace Jobs (no GPU needed)
```bash
# 1. SFT: teach the model the output format (~45 min on A10G, ~$1.50)
hf jobs uv run --flavor a10g-large --secrets HF_TOKEN --timeout 2h jobs/sft.py
# 2. Evaluate against test queries (needs local GPU or use eval job)
uv run eval.py tobil/qmd-query-expansion-1.7B
# 3. Convert to GGUF for local deployment (Ollama, llama.cpp)
uv run convert_gguf.py --size 1.7B
# NOTE: GRPO is currently experimental and moved to finetune/experiments/grpo
# if you want to run it manually, use:
# cd finetune && uv run python experiments/grpo/grpo.py
```
### Local training (if you have a GPU)
```bash
uv run train.py sft --config configs/sft.yaml
# Experimental GRPO
cd finetune && uv run python experiments/grpo/grpo.py
```
### Monitoring HF Jobs
```bash
hf jobs ps # list running jobs
hf jobs inspect <job-id> # check status
hf jobs logs <job-id> # stream logs
hf jobs cancel <job-id> # cancel a job
```
## Prompt Format
All tools use the same prompt — **Qwen3 chat template with `/no_think`**:
```
<|im_start|>user
/no_think Expand this search query: {query}<|im_end|>
<|im_start|>assistant
```
The `/no_think` directive suppresses Qwen3's chain-of-thought mode, producing
direct `lex:/vec:/hyde:` output without `<think>` blocks.
## File Structure
```
finetune/
├── reward.py # Scoring/reward function (single source of truth)
├── train.py # SFT training entrypoint
├── eval.py # Generate expansions and score them
├── convert_gguf.py # GGUF conversion for Ollama/llama.cpp
├── jobs/
│ ├── sft.py # Self-contained SFT for HuggingFace Jobs
│ ├── eval.py # Self-contained eval for HuggingFace Jobs
│ └── eval_common.py # Shared eval utilities
├── configs/
│ └── sft.yaml # SFT hyperparameters for Qwen3-1.7B
├── evals/
│ └── queries.txt # 31 test queries across 8 categories
├── experiments/
│ └── grpo/ # Experimental GRPO configuration and script (optional)
├── data/ # Training JSONL files (all concatenated for training)
├── dataset/
│ ├── prepare_data.py # Format for Qwen3 chat template, dedup, split
│ ├── schema.py # Parse/normalize output format
│ ├── validate_schema.py # Validate JSONL against schema
│ ├── score_data.py # Score all examples using reward.py
│ └── analyze_data.py # Analyze distribution and quality
├── SCORING.md # Detailed scoring rubric reference
└── README.md # This file
```
## Training Pipeline
### Stage 1: SFT (Supervised Fine-Tuning)
Teaches the model the `lex:/vec:/hyde:` output format from labeled examples.
| Parameter | Value |
|-----------|-------|
| Base model | `Qwen/Qwen3-1.7B` |
| Method | LoRA (rank 16, alpha 32) |
| Target modules | All projection layers (q/k/v/o/gate/up/down) |
| Dataset | ~2,290 examples (train split) |
| Effective batch size | 16 (4 x 4 gradient accumulation) |
| Epochs | 5 |
| Learning rate | 2e-4 (cosine schedule) |
```bash
uv run train.py sft --config configs/sft.yaml
uv run train.py sft --config configs/sft.yaml --dry-run # preview config
```
### Stage 2: (Experimental) GRPO
GRPO is currently treated as experimental and kept under `experiments/grpo/`.
It is not part of the default production path for this repository.
```bash
# Optional experimental GRPO run
cd finetune && uv run python experiments/grpo/grpo.py
```
## Evaluation
`eval.py` generates expansions from a model and scores them against test queries:
```bash
# Evaluate a SFT model
uv run eval.py --model tobil/qmd-query-expansion-1.7B-sft
# Evaluate an SFT output dir
uv run eval.py outputs/sft
# Verbose output with deduction details
uv run eval.py tobil/qmd-query-expansion-1.7B -v
# Optional: evaluate GRPO experimental output (if run)
uv run eval.py outputs/grpo
# Save detailed scores to JSON
uv run eval.py tobil/qmd-query-expansion-1.7B -o scores.json
```
## Reward Function
`reward.py` is the single source of truth for scoring. It is used for evaluation
and (optionally) as the GRPO reward signal in the experimental path.
Five scoring dimensions (max 120 without hyde, 140 with):
| Dimension | Points | What It Measures |
|-----------|--------|------------------|
| **Format** | 0-30 | Has lex/vec lines, no invalid lines |
| **Diversity** | 0-30 | Multiple expansion types, diverse content, no query echoes |
| **HyDE** | 0-20 | Present, 50-200 chars, single line, not repetitive |
| **Quality** | 0-20 | Lex shorter than vec, natural language, preserves key terms |
| **Entity** | -45 to +20 | Named entities preserved in lex and vec lines |
| **Think bonus** | 0-20 | Reward for NOT using `<think>` mode |
**Hard failures** (instant 0.0):
- Chat template leakage (`<|im_start|>`, `<|im_end|>`, etc.)
- Any line without a valid `lex:`, `vec:`, or `hyde:` prefix
```bash
# Self-test the reward function
uv run reward.py
```
## GGUF Conversion
Merges base + SFT and (optionally) GRPO adapters into a single model, then
produces quantized GGUF files for deployment:
```bash
# Use preset for 1.7B
uv run convert_gguf.py --size 1.7B
# Custom models
uv run convert_gguf.py --base Qwen/Qwen3-1.7B \
--sft tobil/qmd-query-expansion-1.7B-sft \
--grpo tobil/qmd-query-expansion-1.7B-grpo \
--output tobil/qmd-query-expansion-1.7B-gguf
```
### Using with Ollama
```bash
huggingface-cli download tobil/qmd-query-expansion-1.7B-gguf \
qmd-query-expansion-1.7B-q4_k_m.gguf --local-dir .
echo 'FROM ./qmd-query-expansion-1.7B-q4_k_m.gguf' > Modelfile
ollama create qmd-expand -f Modelfile
ollama run qmd-expand
```
## Data Pipeline
All JSONL files in `data/` are concatenated for training. To prepare for training:
```bash
# Format for Qwen3 chat template, deduplicate, split train/val
uv run dataset/prepare_data.py
# Validate data quality
just validate
```
## Architecture Notes
The production training approach is currently **SFT-only**:
1. **SFT** establishes format compliance and basic query understanding. It uses
a large LoRA (rank 16, all projection layers) because it needs to learn a
new output format from scratch.
2. **GRPO** exists as an optional experimental path under `experiments/grpo/`
and is not in the production training pipeline.
The reward function is entirely rule-based (no LLM judge) which makes it fast,
deterministic, and suitable as an RL signal. See `SCORING.md` for the full rubric.
## Training Results (Qwen3-1.7B, v2)
### SFT
| Metric | Value |
|--------|-------|
| Final train loss | 0.472 |
| Final eval loss | 0.304 |
| Token accuracy (train) | 97.4% |
| Token accuracy (eval) | 93.8% |
| Epochs | 5 |
| Hardware | A10G (24 GB VRAM) |
### Evaluation Scores
| Model | Average Score | Excellent (30) |
|-------|--------------|-----------------|
| SFT | 92.0% | 30/30 |
> GRPO scores are not tracked in this branch; see `experiments/grpo/` for historical
> experimental results.

View File

@@ -0,0 +1,318 @@
# QMD Query Expansion Scoring
## Goal
Transform a random typed query into a great set of retrieval-optimized expansions.
**Input:** `"auth config"`
**Output:**
```
hyde: Authentication can be configured by setting the AUTH_SECRET environment variable and enabling the auth middleware in your application's config file.
lex: authentication configuration
lex: auth settings setup
vec: how to configure authentication settings
vec: authentication configuration options
```
## Output Format
| Prefix | Purpose | Required | Count |
|--------|---------|----------|-------|
| `lex:` | BM25 keyword variations (shorter, keyword-focused) | Yes | 1-3 |
| `vec:` | Semantic reformulations (natural language) | Yes | 1-3 |
| `hyde:` | Hypothetical document passage | Optional | 0-1 |
## Scoring Criteria
### 1. Format Compliance (0-30 points)
| Criterion | Points | Deduction |
|-----------|--------|-----------|
| Has at least one `lex:` line | +10 | -10 if missing |
| Has at least one `vec:` line | +10 | -10 if missing |
| All lines have valid prefix (`lex:`, `vec:`, `hyde:`) | +10 | -5 per invalid line |
| No garbage/prose outside of prefixed lines | - | -10 if present |
### 2. Diversity & Coverage (0-30 points)
| Criterion | Points | Deduction |
|-----------|--------|-----------|
| 2+ different types present (lex + vec) | +10 | -10 if only one type |
| 2+ total expansions | +5 | -5 if only one |
| Multiple lex: lines are diverse (edit distance > 3) | +5 | -2 per duplicate pair |
| Multiple vec: lines are diverse (edit distance > 5) | +5 | -2 per duplicate pair |
| lex/vec not identical to original query | +5 | -5 per line that equals query |
### 3. Hyde Quality (0-20 points, optional bonus)
| Criterion | Points | Deduction |
|-----------|--------|-----------|
| Hyde present and well-formed | +5 | - |
| Hyde is concise (50-200 chars) | +5 | -3 if too short, -5 if too long |
| Hyde has no newlines | +5 | -5 if contains newlines |
| Hyde has no excessive repetition | +5 | -3 if word repeats 3+ times |
### 4. Content Quality (0-20 points)
| Criterion | Points | Deduction |
|-----------|--------|-----------|
| Base relevance | +5 | Subjective |
| Lex lines preserve key terms from query | +5 | -5 if lex is generic |
| Lex lines are keyword-focused (shorter) | +5 | -2 if lex is longer than vec |
| Vec lines are natural language (complete phrases) | +5 | -2 if vec is just keywords |
### 5. Named Entity Preservation (-65 to +20 points, CRITICAL)
Named entities are proper nouns, brand names, personal names, technical terms, and acronyms that MUST appear in lex queries. This prevents generic expansions that lose the specific topic.
**Two-level checking:**
| Criterion | Points | Deduction |
|-----------|--------|-----------|
| **Per-line**: All lex lines contain at least one entity | +15 | - |
| **Per-line**: Some lex lines contain entities | +5 | - |
| **Per-line**: NO lex lines contain entities | - | **-30 HEAVY PENALTY** |
| **Per-entity**: Entity completely absent from all lex+vec | - | **-20 per dropped entity** |
| Generic filler phrases in lex | - | -15 per phrase |
| Entities also in vec lines | +5 | - |
**Named Entity Detection:**
- All-caps acronyms: `TDS`, `API`, `GPU`, `AWS`
- Capitalized proper nouns (any position): `React`, `Docker`, `Bob`, `Sarah`
- Personal names at query start: `Bob asked about deploy``Bob` is an entity
- Technical terms: `node.js`, `C++`, `.NET`
- CamelCase: `JavaScript`, `TypeScript`
- Compound names: `TDS motorsports` → both words are entities
- Project names: `Project Atlas`, `Horizon team`
**Generic Filler Phrases (BANNED in lex):**
- "find information about"
- "search for", "look up"
- "get information", "learn about"
- "details about", "guide to"
**Examples:**
| Query | Bad Lex | Good Lex |
|-------|---------|----------|
| `who is TDS motorsports` | `lex: find information about` | `lex: TDS motorsports history` |
| | `lex: company details` | `lex: TDS motorsports founders` |
| `meeting with Bob about C++` | `lex: c++ meetings` | `lex: Bob "C++" meeting` |
| | `vec: programming meeting notes` | `vec: meeting notes with Bob about C++` |
| `how to use React hooks` | `lex: programming tutorial` | `lex: React hooks tutorial` |
| | `lex: how to code` | `lex: useEffect useState hooks` |
**Key Rule**: If a query mentions a specific entity (person, brand, product, technology, project name), that entity MUST appear somewhere in the lex+vec output. Dropping a person's name is especially costly.
### 6. Lex Phrase Quoting (bonus, +3 points)
When a query contains multi-word technical terms or proper nouns, lex output should use quoted phrases for exact matching in BM25.
| Criterion | Points |
|-----------|--------|
| Uses `"quoted phrases"` in lex when query has multi-word entities | +3 |
**When to quote:**
- Multi-word proper nouns: `"New York"`, `"Monte Carlo"`
- Specific technical terms: `"machine learning"`, `"rate limit"`
- Exact compound terms: `"connection pool"`, `"merge conflict"`
**When to use negation (`-term`):**
- Disambiguating terms: `rust -corrosion`, `java -coffee`, `apple -fruit`
- Excluding related-but-wrong topics: `"machine learning" -"deep learning"`
- Narrowing scope: `docker -kubernetes`, `python -snake`
**Example:**
```
Query: python memory leak debugging
Good lex: "memory leak" python -java -javascript
Good lex: tracemalloc "garbage collector" profiler
```
## Score Calculation
```
Total Score = Format + Diversity + Hyde + Quality + Entity
Max Score = 120 (100 without hyde)
Normalized = Total / Max (0.0 - 1.0)
```
**Rating:**
- 0.80-1.00: Excellent
- 0.60-0.79: Good
- 0.40-0.59: Acceptable
- 0.20-0.39: Poor
- 0.00-0.19: Failed
**Note:** Entity score can go negative, heavily penalizing outputs that miss named entities.
## Examples
### Good Example (Score: 85/100)
**Query:** `"react hooks"`
**Output:**
```
hyde: React Hooks allow you to use state and lifecycle features in functional components without writing a class.
lex: react hooks tutorial
lex: usestate useeffect
vec: how to use react hooks in functional components
vec: react hooks best practices guide
```
**Scoring:**
- Format: 30/30 (all prefixes valid)
- Diversity: 28/30 (2 types, 4 expansions, good diversity)
- Hyde: 17/20 (present, good length, no repetition)
- Quality: 10/20 (relevant, good structure)
### Bad Example (Score: 15/100)
**Query:** `"auth"`
**Output:**
```
auth is an important concept that relates to authentication.
The answer should be in Chinese.
The answer should be in Chinese.
```
**Scoring:**
- Format: 0/30 (no valid prefixes)
- Diversity: 0/30 (no valid expansions)
- Hyde: 0/20 (N/A)
- Quality: 15/20 (some relevance but wrong format)
### Medium Example (Score: 55/100)
**Query:** `"docker networking"`
**Output:**
```
hyde: Docker networking is an important concept. Docker networking is used for container communication. Docker networking configuration is essential.
lex: docker networking
vec: docker networking
```
**Scoring:**
- Format: 30/30 (valid prefixes)
- Diversity: 10/30 (lex=vec=query, no diversity)
- Hyde: 5/20 (too repetitive - "docker networking" 3x)
- Quality: 10/20 (relevant but low effort)
## Heuristics
### Repetition Detection
```python
def word_repetition_score(text):
words = text.lower().split()
counts = Counter(words)
# Deduct for words appearing 3+ times (excluding stopwords)
stopwords = {'the', 'a', 'an', 'is', 'are', 'to', 'for', 'of', 'in', 'and', 'or'}
repeated = sum(1 for w, c in counts.items() if c >= 3 and w not in stopwords)
return max(0, 5 - repeated * 2)
```
### Diversity Check (Simple)
```python
def is_diverse(a, b, min_distance=3):
"""Check if two strings are sufficiently different."""
a, b = a.lower().strip(), b.lower().strip()
if a == b:
return False
# Simple: check if one is not a substring of the other
if a in b or b in a:
return False
# Check edit distance (simplified)
return len(set(a.split()) ^ set(b.split())) >= min_distance
```
### Query Echo Detection
```python
def echoes_query(expansion, query):
"""Check if expansion is just echoing the query."""
exp = expansion.lower().strip()
q = query.lower().strip()
return exp == q or exp in q or q in exp
```
### Named Entity Extraction
```python
KEY_TERM_STOPWORDS = {'what', 'is', 'how', 'to', 'the', 'a', 'an', 'in', 'on', 'for', 'of',
'and', 'or', 'with', 'my', 'your', 'do', 'does', 'can', 'i', 'me', 'we',
'who', 'where', 'when', 'why', 'which', 'find', 'get', 'show', 'tell'}
def extract_named_entities(query: str) -> set:
"""Extract named entities using simple heuristics."""
entities = set()
words = query.split()
prev_was_entity = False
for i, word in enumerate(words):
clean = word.strip('.,!?:;()[]"\'')
if not clean:
prev_was_entity = False
continue
is_entity = False
# All-caps acronyms: TDS, API, GPU
if clean.isupper() and len(clean) >= 2:
entities.add(clean.lower())
is_entity = True
# Capitalized proper nouns (not first word)
elif i > 0 and clean[0].isupper() and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower())
is_entity = True
# Technical terms: node.js, C++
elif any(c in clean for c in '.+-#@') and len(clean) >= 2:
entities.add(clean.lower())
is_entity = True
# CamelCase: JavaScript
elif len(clean) > 1 and any(c.isupper() for c in clean[1:]) and clean[0].isupper():
entities.add(clean.lower())
is_entity = True
# Word following an entity (compound names: TDS motorsports)
elif prev_was_entity and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower())
is_entity = True
prev_was_entity = is_entity
return entities
```
### Generic Phrase Detection
```python
GENERIC_LEX_PHRASES = {
'find information about', 'search for', 'look up', 'get information',
'learn about', 'information on', 'details about', 'find out about',
'what is', 'how to', 'guide to', 'help with'
}
def lex_is_generic(lex_line: str) -> bool:
"""Check if lex line is a useless generic filler."""
lex_lower = lex_line.lower().strip()
for phrase in GENERIC_LEX_PHRASES:
if phrase in lex_lower:
# Check if there's specific content beyond the generic phrase
remaining = lex_lower
for word in phrase.split():
remaining = remaining.replace(word, '', 1).strip()
if len(remaining) < 3: # Nothing specific left
return True
return False
```
## Training Data Requirements
1. **EOM tokens**: Ensure training examples end with proper end-of-message tokens
2. **Diverse examples**: Include varied query types (short, long, technical, casual)
3. **Quality hyde**: Hyde passages should be informative, not template-y
4. **No repetition**: Avoid "This is important. This is very important." patterns

View File

@@ -0,0 +1,17 @@
compute_environment: LOCAL_MACHINE
debug: false
distributed_type: MULTI_GPU
downcast_bf16: 'no'
enable_cpu_affinity: false
gpu_ids: all
machine_rank: 0
main_training_function: main
mixed_precision: bf16
num_machines: 1
num_processes: 4
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

View File

@@ -0,0 +1,47 @@
# SFT Training Config for QMD Query Expansion
# Target: Qwen3-1.7B with LoRA
#
# Usage: uv run train.py sft --config configs/sft.yaml
model:
base: "Qwen/Qwen3-1.7B"
output: "outputs/sft" # Local training output (push to HF manually after eval)
dataset:
# Local: run `uv run dataset/prepare_data.py` first, then use "data/train/"
# HuggingFace: use "tobil/qmd-query-expansion-train" (already prepared)
name: "data/train/"
text_field: "text"
split: "train"
eval_split: 0.1
training:
epochs: 5
batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 2e-4
max_length: 512
warmup_ratio: 0.03
lr_scheduler: "cosine"
# Save checkpoints every 30 minutes
save_interval_minutes: 30
# Fallback time-step save cadence if needed (not used for wall-clock mode)
save_steps: 200
save_total_limit: 3
lora:
rank: 16
alpha: 32
dropout: 0.0
target_modules:
- "q_proj"
- "k_proj"
- "v_proj"
- "o_proj"
- "gate_proj"
- "up_proj"
- "down_proj"
tracking:
project: "qmd-query-expansion"
run_name: "sft-1.7B"

View File

@@ -0,0 +1,44 @@
# SFT Training Config - Local Data, Multi-GPU
# Usage: accelerate launch --config_file configs/accelerate_multi_gpu.yaml train.py sft --config configs/sft_local.yaml
model:
base: "Qwen/Qwen3-1.7B"
output: "outputs/sft" # Local output
push_to_hub: false
dataset:
name: "data/train" # Local path
text_field: "text"
split: "train"
eval_split: 0.1
training:
epochs: 5
batch_size: 2 # Per GPU, effective batch = 2 * 4 GPUs * 4 accum = 32
gradient_accumulation_steps: 4
learning_rate: 0.0002 # 2e-4 as float
max_length: 512
warmup_ratio: 0.03
lr_scheduler: "cosine"
ddp_find_unused_parameters: false
# Save checkpoints every 30 minutes
save_interval_minutes: 30
# Fallback time-step save cadence if needed (not used for wall-clock mode)
save_steps: 200
lora:
rank: 16
alpha: 32
dropout: 0.05
target_modules:
- "q_proj"
- "k_proj"
- "v_proj"
- "o_proj"
- "gate_proj"
- "up_proj"
- "down_proj"
tracking:
project: "qmd-query-expansion"
run_name: "{day} {time}"

View File

@@ -0,0 +1,221 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "transformers>=4.36.0",
# "peft>=0.7.0",
# "torch>=2.0.0",
# "accelerate>=0.24.0",
# "huggingface_hub>=0.20.0",
# "sentencepiece>=0.1.99",
# "protobuf>=3.20.0",
# "numpy",
# "gguf",
# ]
# ///
"""
Convert QMD query expansion model to GGUF format.
Loads the base model, merges SFT and GRPO adapters, then converts to
GGUF with multiple quantizations for use with Ollama/llama.cpp/LM Studio.
Usage:
uv run convert_gguf.py --size 1.7B
uv run convert_gguf.py --size 4B --skip-quantize
uv run convert_gguf.py --base Qwen/Qwen3-1.7B \
--sft tobil/qmd-query-expansion-1.7B-sft \
--grpo tobil/qmd-query-expansion-1.7B-grpo \
--output tobil/qmd-query-expansion-1.7B-gguf
"""
import argparse
import os
import subprocess
import sys
import torch
from huggingface_hub import HfApi, login
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
# Preset configurations for each model size
PRESETS = {
"1.7B": {
"base": "Qwen/Qwen3-1.7B",
"sft": "tobil/qmd-query-expansion-1.7B-sft",
"grpo": "tobil/qmd-query-expansion-1.7B-grpo",
"output": "tobil/qmd-query-expansion-1.7B-gguf",
"ollama_name": "qmd-expand",
},
"4B": {
"base": "Qwen/Qwen3-4B",
"sft": "tobil/qmd-query-expansion-4B-sft",
"grpo": "tobil/qmd-query-expansion-4B-grpo",
"output": "tobil/qmd-query-expansion-4B-gguf",
"ollama_name": "qmd-expand-4b",
},
}
def run_cmd(cmd, description):
"""Run a shell command with error handling."""
print(f" {description}...")
try:
subprocess.run(cmd, check=True, capture_output=True, text=True)
return True
except subprocess.CalledProcessError as e:
print(f" FAILED: {' '.join(cmd)}")
if e.stderr:
print(f" {e.stderr[:500]}")
return False
except FileNotFoundError:
print(f" Command not found: {cmd[0]}")
return False
def main():
parser = argparse.ArgumentParser(description="Convert QMD model to GGUF")
parser.add_argument("--size", choices=PRESETS.keys(), help="Use preset config for model size")
parser.add_argument("--base", help="Base model (overrides preset)")
parser.add_argument("--sft", help="SFT adapter (overrides preset)")
parser.add_argument("--grpo", help="GRPO adapter (overrides preset)")
parser.add_argument("--output", help="Output HF repo (overrides preset)")
parser.add_argument("--skip-quantize", action="store_true", help="Only produce FP16 GGUF")
parser.add_argument("--no-upload", action="store_true", help="Don't upload to HF Hub")
args = parser.parse_args()
# Resolve config
if args.size:
preset = PRESETS[args.size]
base_model = args.base or preset["base"]
sft_model = args.sft or preset["sft"]
grpo_model = args.grpo or preset["grpo"]
output_repo = args.output or preset["output"]
elif args.base and args.sft and args.grpo and args.output:
base_model = args.base
sft_model = args.sft
grpo_model = args.grpo
output_repo = args.output
else:
parser.error("Either --size or all of --base/--sft/--grpo/--output are required")
model_name = output_repo.split("/")[-1].replace("-gguf", "")
print(f"QMD GGUF Conversion: {model_name}")
print("=" * 60)
# Install build tools (for Colab/cloud environments)
print("\nInstalling build dependencies...")
subprocess.run(["apt-get", "update", "-qq"], capture_output=True)
subprocess.run(["apt-get", "install", "-y", "-qq", "build-essential", "cmake", "git"], capture_output=True)
# Login
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
print("Logging in to HuggingFace...")
login(token=hf_token)
# Step 1: Load and merge
print(f"\nStep 1: Loading base model {base_model}...")
model = AutoModelForCausalLM.from_pretrained(
base_model, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True,
)
print(f"Step 2: Merging SFT adapter {sft_model}...")
model = PeftModel.from_pretrained(model, sft_model)
model = model.merge_and_unload()
print(f"Step 3: Merging GRPO adapter {grpo_model}...")
model = PeftModel.from_pretrained(model, grpo_model)
model = model.merge_and_unload()
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
# Step 2: Save merged model
merged_dir = "/tmp/merged_model"
print(f"\nStep 4: Saving merged model to {merged_dir}...")
model.save_pretrained(merged_dir, safe_serialization=True)
tokenizer.save_pretrained(merged_dir)
# Step 3: Setup llama.cpp
print("\nStep 5: Setting up llama.cpp...")
if not os.path.exists("/tmp/llama.cpp"):
run_cmd(["git", "clone", "--depth", "1", "https://github.com/ggerganov/llama.cpp.git", "/tmp/llama.cpp"],
"Cloning llama.cpp")
subprocess.run([sys.executable, "-m", "pip", "install", "-q", "-r", "/tmp/llama.cpp/requirements.txt"],
capture_output=True)
# Step 4: Convert to FP16 GGUF
gguf_dir = "/tmp/gguf_output"
os.makedirs(gguf_dir, exist_ok=True)
gguf_file = f"{gguf_dir}/{model_name}-f16.gguf"
print(f"\nStep 6: Converting to FP16 GGUF...")
if not run_cmd([sys.executable, "/tmp/llama.cpp/convert_hf_to_gguf.py",
merged_dir, "--outfile", gguf_file, "--outtype", "f16"],
"Converting"):
sys.exit(1)
size_mb = os.path.getsize(gguf_file) / (1024 * 1024)
print(f" FP16: {size_mb:.1f} MB")
# Step 5: Quantize
quantized_files = []
if not args.skip_quantize:
print("\nStep 7: Building quantize tool...")
os.makedirs("/tmp/llama.cpp/build", exist_ok=True)
run_cmd(["cmake", "-B", "/tmp/llama.cpp/build", "-S", "/tmp/llama.cpp", "-DGGML_CUDA=OFF"],
"CMake configure")
run_cmd(["cmake", "--build", "/tmp/llama.cpp/build", "--target", "llama-quantize", "-j", "4"],
"Building llama-quantize")
quantize_bin = "/tmp/llama.cpp/build/bin/llama-quantize"
print("\nStep 8: Quantizing...")
for quant_type, desc in [("Q4_K_M", "4-bit"), ("Q5_K_M", "5-bit"), ("Q8_0", "8-bit")]:
qfile = f"{gguf_dir}/{model_name}-{quant_type.lower()}.gguf"
if run_cmd([quantize_bin, gguf_file, qfile, quant_type], f"{quant_type} ({desc})"):
qsize = os.path.getsize(qfile) / (1024 * 1024)
print(f" {quant_type}: {qsize:.1f} MB")
quantized_files.append((qfile, quant_type))
# Step 6: Upload
if not args.no_upload:
print(f"\nStep 9: Uploading to {output_repo}...")
api = HfApi()
api.create_repo(repo_id=output_repo, repo_type="model", exist_ok=True)
api.upload_file(path_or_fileobj=gguf_file,
path_in_repo=f"{model_name}-f16.gguf", repo_id=output_repo)
for qfile, qtype in quantized_files:
api.upload_file(path_or_fileobj=qfile,
path_in_repo=f"{model_name}-{qtype.lower()}.gguf", repo_id=output_repo)
# Upload README
readme = f"""---
base_model: {base_model}
tags: [gguf, llama.cpp, quantized, query-expansion, qmd]
---
# {model_name} (GGUF)
GGUF conversion of the QMD Query Expansion model.
## Details
- **Base:** {base_model}
- **SFT:** {sft_model}
- **GRPO:** {grpo_model}
- **Task:** Query expansion (lex/vec/hyde format)
## Prompt Format
```
<|im_start|>user
/no_think Expand this search query: your query here<|im_end|>
<|im_start|>assistant
```
"""
api.upload_file(path_or_fileobj=readme.encode(),
path_in_repo="README.md", repo_id=output_repo)
print(f"\nDone! Repository: https://huggingface.co/{output_repo}")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,413 @@
{"output": [["lex", "orchestra overview instruments guide tutorial"], ["lex", "orchestra overview instruments guide guide"], ["lex", "orchestra overview instruments guide tips"], ["vec", "learn orchestra instruments guide step by step"], ["vec", "best way to orchestra instruments guide"], ["hyde", "Learning orchestra instruments guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "orchestra instruments guide"}
{"output": [["lex", "Asian overview cooking techniques advice"], ["lex", "Asian overview cooking techniques tips"], ["lex", "Asian overview cooking techniques tutorial"], ["vec", "learn Asian cooking techniques step by step"], ["vec", "tips for Asian cooking techniques success"], ["hyde", "Learning Asian cooking techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "Asian cooking techniques"}
{"output": [["lex", "hike how to overview"], ["lex", "hike guide overview"], ["lex", "hike advice overview"], ["vec", "learn hike step by step"], ["vec", "how to hike effectively"], ["hyde", "Learning hike requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": true, "query": "hike"}
{"output": [["lex", "how overview to metal smithing tutorial"], ["lex", "how overview to metal smithing how to"], ["lex", "how overview to metal smithing tips"], ["vec", "learn how to metal smithing step by step"], ["vec", "how to how to metal smithing effectively"], ["hyde", "This comprehensive guide to how to metal smithing covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "how to metal smithing"}
{"output": [["lex", "international overview cuisine recipe tips"], ["lex", "international overview cuisine recipe guide"], ["lex", "international overview cuisine recipe how to"], ["vec", "learn international cuisine recipe step by step"], ["vec", "best way to international cuisine recipe"], ["hyde", "This comprehensive guide to international cuisine recipe covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "international cuisine recipe"}
{"output": [["lex", "gallery guide overview"], ["lex", "gallery how to overview"], ["lex", "gallery tutorial overview"], ["vec", "best way to gallery"], ["vec", "how to gallery effectively"], ["hyde", "This comprehensive guide to gallery covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": true, "query": "gallery"}
{"output": [["lex", "how overview to luggage selection advice"], ["lex", "how overview to luggage selection guide"], ["lex", "how overview to luggage selection how to"], ["vec", "learn how to luggage selection step by step"], ["vec", "complete guide to how to luggage selection"], ["hyde", "This comprehensive guide to how to luggage selection covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "how to luggage selection"}
{"output": [["lex", "best overview choose paint color tutorial"], ["lex", "best overview choose paint color tips"], ["lex", "best overview choose paint color how to"], ["vec", "tips for best choose paint color success"], ["vec", "learn best choose paint color step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best choose paint color offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "best choose paint color"}
{"output": [["lex", "best overview posture correction how to"], ["lex", "best overview posture correction tips"], ["lex", "best overview posture correction guide"], ["vec", "best way to best posture correction"], ["vec", "complete guide to best posture correction"], ["hyde", "This comprehensive guide to best posture correction covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "best posture correction"}
{"output": [["lex", "gluten overview free techniques tips"], ["lex", "gluten overview free techniques advice"], ["lex", "gluten overview free techniques guide"], ["vec", "how to gluten free techniques effectively"], ["vec", "tips for gluten free techniques success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to gluten free techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "gluten free techniques"}
{"output": [["lex", "pruning overview trees tutorial tips"], ["lex", "pruning overview trees tutorial advice"], ["lex", "pruning overview trees tutorial how to"], ["vec", "tips for pruning trees tutorial success"], ["vec", "how to pruning trees tutorial effectively"], ["hyde", "Learning pruning trees tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "pruning trees tutorial"}
{"output": [["lex", "understand overview modern art advice"], ["lex", "understand overview modern art how to"], ["lex", "understand overview modern art guide"], ["vec", "complete guide to understand modern art"], ["vec", "best way to understand modern art"], ["hyde", "This comprehensive guide to understand modern art covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "understand modern art"}
{"output": [["lex", "best overview travel phrases tutorial"], ["lex", "best overview travel phrases tips"], ["lex", "best overview travel phrases guide"], ["vec", "tips for best travel phrases success"], ["vec", "best way to best travel phrases"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best travel phrases offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "best travel phrases"}
{"output": [["lex", "how overview to translation apps guide"], ["lex", "how overview to translation apps tips"], ["lex", "how overview to translation apps how to"], ["vec", "how to how to translation apps effectively"], ["vec", "tips for how to translation apps success"], ["hyde", "This comprehensive guide to how to translation apps covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "how to translation apps"}
{"output": [["lex", "how overview to networking tips"], ["lex", "how overview to networking guide"], ["lex", "how overview to networking tutorial"], ["vec", "tips for how to networking success"], ["vec", "how to how to networking effectively"], ["hyde", "Learning how to networking requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "how to networking"}
{"output": [["lex", "repair advice overview"], ["lex", "repair guide overview"], ["lex", "repair tips overview"], ["vec", "learn repair step by step"], ["vec", "tips for repair success"], ["hyde", "Learning repair requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": true, "query": "repair"}
{"output": [["lex", "improve overview acupuncture tutorial"], ["lex", "improve overview acupuncture tips"], ["lex", "improve overview acupuncture advice"], ["vec", "tips for improve acupuncture success"], ["vec", "how to improve acupuncture effectively"], ["hyde", "This comprehensive guide to improve acupuncture covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "improve acupuncture"}
{"output": [["lex", "home overview workout for beginners tutorial"], ["lex", "home overview workout for beginners advice"], ["lex", "home overview workout for beginners guide"], ["vec", "complete guide to home workout for beginners"], ["vec", "best way to home workout for beginners"], ["hyde", "This comprehensive guide to home workout for beginners covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "home workout for beginners"}
{"output": [["lex", "online overview privacy setup advice"], ["lex", "online overview privacy setup how to"], ["lex", "online overview privacy setup tips"], ["vec", "tips for online privacy setup success"], ["vec", "complete guide to online privacy setup"], ["hyde", "Learning online privacy setup requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "online privacy setup"}
{"output": [["lex", "gift overview giving tips tips"], ["lex", "gift overview giving tips how to"], ["lex", "gift overview giving tips tutorial"], ["vec", "learn gift giving tips step by step"], ["vec", "best way to gift giving tips"], ["hyde", "Learning gift giving tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "gift giving tips"}
{"output": [["lex", "visa tips overview"], ["lex", "visa tutorial overview"], ["lex", "visa how to overview"], ["vec", "complete guide to visa"], ["vec", "how to visa effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to visa offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": true, "query": "visa"}
{"output": [["lex", "start overview real estate investing advice"], ["lex", "start overview real estate investing tips"], ["lex", "start overview real estate investing tutorial"], ["vec", "tips for start real estate investing success"], ["vec", "best way to start real estate investing"], ["hyde", "Learning start real estate investing requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "start real estate investing"}
{"output": [["lex", "design overview principles history guide"], ["lex", "design overview principles history advice"], ["lex", "design overview principles history how to"], ["vec", "tips for design principles history success"], ["vec", "learn design principles history step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to design principles history offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "design principles history"}
{"output": [["lex", "DIY overview choose paint color tips"], ["lex", "DIY overview choose paint color how to"], ["lex", "DIY overview choose paint color guide"], ["vec", "complete guide to DIY choose paint color"], ["vec", "how to DIY choose paint color effectively"], ["hyde", "This comprehensive guide to DIY choose paint color covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "DIY choose paint color"}
{"output": [["lex", "understand overview dance styles tips"], ["lex", "understand overview dance styles guide"], ["lex", "understand overview dance styles tutorial"], ["vec", "learn understand dance styles step by step"], ["vec", "best way to understand dance styles"], ["hyde", "Whether you're a beginner or looking to improve, this guide to understand dance styles offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "understand dance styles"}
{"output": [["lex", "401k overview tips guide"], ["lex", "401k overview tips how to"], ["lex", "401k overview tips tutorial"], ["vec", "best way to 401k tips"], ["vec", "tips for 401k tips success"], ["hyde", "This comprehensive guide to 401k tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "401k tips"}
{"output": [["lex", "stress overview management guide tips"], ["lex", "stress overview management guide advice"], ["lex", "stress overview management guide guide"], ["vec", "tips for stress management guide success"], ["vec", "how to stress management guide effectively"], ["hyde", "Learning stress management guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "stress management guide"}
{"output": [["lex", "how overview to ceramics how to"], ["lex", "how overview to ceramics guide"], ["lex", "how overview to ceramics tutorial"], ["vec", "tips for how to ceramics success"], ["vec", "complete guide to how to ceramics"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to ceramics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "how to ceramics"}
{"output": [["lex", "laundry overview tips tutorial guide"], ["lex", "laundry overview tips tutorial how to"], ["lex", "laundry overview tips tutorial tutorial"], ["vec", "tips for laundry tips tutorial success"], ["vec", "complete guide to laundry tips tutorial"], ["hyde", "Learning laundry tips tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "laundry tips tutorial"}
{"output": [["lex", "wood overview carving basics tutorial"], ["lex", "wood overview carving basics guide"], ["lex", "wood overview carving basics advice"], ["vec", "best way to wood carving basics"], ["vec", "complete guide to wood carving basics"], ["hyde", "Learning wood carving basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "wood carving basics"}
{"output": [["lex", "start overview retirement planning tips"], ["lex", "start overview retirement planning guide"], ["lex", "start overview retirement planning advice"], ["vec", "best way to start retirement planning"], ["vec", "complete guide to start retirement planning"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start retirement planning offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start retirement planning"}
{"output": [["lex", "stock overview market tips how to"], ["lex", "stock overview market tips tips"], ["lex", "stock overview market tips guide"], ["vec", "complete guide to stock market tips"], ["vec", "tips for stock market tips success"], ["hyde", "Learning stock market tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "stock market tips"}
{"output": [["lex", "acupuncture overview for beginners guide"], ["lex", "acupuncture overview for beginners tutorial"], ["lex", "acupuncture overview for beginners how to"], ["vec", "complete guide to acupuncture for beginners"], ["vec", "learn acupuncture for beginners step by step"], ["hyde", "This comprehensive guide to acupuncture for beginners covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "acupuncture for beginners"}
{"output": [["lex", "fix overview two factor auth how to"], ["lex", "fix overview two factor auth advice"], ["lex", "fix overview two factor auth guide"], ["vec", "tips for fix two factor auth success"], ["vec", "best way to fix two factor auth"], ["hyde", "Whether you're a beginner or looking to improve, this guide to fix two factor auth offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "technology", "is_short": false, "query": "fix two factor auth"}
{"output": [["lex", "woodwork tips overview"], ["lex", "woodwork advice overview"], ["lex", "woodwork guide overview"], ["vec", "how to woodwork effectively"], ["vec", "tips for woodwork success"], ["hyde", "Learning woodwork requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": true, "query": "woodwork"}
{"output": [["lex", "visual overview learner guide how to"], ["lex", "visual overview learner guide guide"], ["lex", "visual overview learner guide tips"], ["vec", "how to visual learner guide effectively"], ["vec", "best way to visual learner guide"], ["hyde", "Learning visual learner guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "visual learner guide"}
{"output": [["lex", "video overview calls setup advice"], ["lex", "video overview calls setup guide"], ["lex", "video overview calls setup tips"], ["vec", "complete guide to video calls setup"], ["vec", "how to video calls setup effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to video calls setup offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "technology", "is_short": false, "query": "video calls setup"}
{"output": [["lex", "best overview sibling relationships advice"], ["lex", "best overview sibling relationships how to"], ["lex", "best overview sibling relationships tutorial"], ["vec", "learn best sibling relationships step by step"], ["vec", "complete guide to best sibling relationships"], ["hyde", "This comprehensive guide to best sibling relationships covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": false, "query": "best sibling relationships"}
{"output": [["lex", "how overview to boost immunity tutorial"], ["lex", "how overview to boost immunity guide"], ["lex", "how overview to boost immunity how to"], ["vec", "complete guide to how to boost immunity"], ["vec", "how to how to boost immunity effectively"], ["hyde", "Learning how to boost immunity requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "how to boost immunity"}
{"output": [["lex", "best overview budget travel how to"], ["lex", "best overview budget travel tutorial"], ["lex", "best overview budget travel tips"], ["vec", "learn best budget travel step by step"], ["vec", "best way to best budget travel"], ["hyde", "Learning best budget travel requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "best budget travel"}
{"output": [["lex", "flower overview arranging tutorial tutorial"], ["lex", "flower overview arranging tutorial advice"], ["lex", "flower overview arranging tutorial tips"], ["vec", "learn flower arranging tutorial step by step"], ["vec", "tips for flower arranging tutorial success"], ["hyde", "Learning flower arranging tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "flower arranging tutorial"}
{"output": [["lex", "organic overview gardening tutorial advice"], ["lex", "organic overview gardening tutorial how to"], ["lex", "organic overview gardening tutorial tutorial"], ["vec", "best way to organic gardening tutorial"], ["vec", "complete guide to organic gardening tutorial"], ["hyde", "Whether you're a beginner or looking to improve, this guide to organic gardening tutorial offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "organic gardening tutorial"}
{"output": [["lex", "best overview trail finding tutorial"], ["lex", "best overview trail finding how to"], ["lex", "best overview trail finding tips"], ["vec", "how to best trail finding effectively"], ["vec", "best way to best trail finding"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best trail finding offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best trail finding"}
{"output": [["lex", "meal how to overview"], ["lex", "meal advice overview"], ["lex", "meal tutorial overview"], ["vec", "tips for meal success"], ["vec", "how to meal effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to meal offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": true, "query": "meal"}
{"output": [["lex", "best overview tent setup how to"], ["lex", "best overview tent setup tips"], ["lex", "best overview tent setup tutorial"], ["vec", "best way to best tent setup"], ["vec", "how to best tent setup effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best tent setup offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best tent setup"}
{"output": [["lex", "unclog overview drain tutorial guide"], ["lex", "unclog overview drain tutorial tutorial"], ["lex", "unclog overview drain tutorial how to"], ["vec", "best way to unclog drain tutorial"], ["vec", "tips for unclog drain tutorial success"], ["hyde", "Learning unclog drain tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "unclog drain tutorial"}
{"output": [["lex", "networking overview tips how to"], ["lex", "networking overview tips advice"], ["lex", "networking overview tips tutorial"], ["vec", "how to networking tips effectively"], ["vec", "tips for networking tips success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to networking tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": false, "query": "networking tips"}
{"output": [["lex", "learn overview furniture making tips"], ["lex", "learn overview furniture making advice"], ["lex", "learn overview furniture making how to"], ["vec", "tips for learn furniture making success"], ["vec", "learn learn furniture making step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn furniture making offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "learn furniture making"}
{"output": [["lex", "passive overview income tips guide"], ["lex", "passive overview income tips tips"], ["lex", "passive overview income tips how to"], ["vec", "learn passive income tips step by step"], ["vec", "complete guide to passive income tips"], ["hyde", "Whether you're a beginner or looking to improve, this guide to passive income tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "passive income tips"}
{"output": [["lex", "travel guide overview"], ["lex", "travel advice overview"], ["lex", "travel how to overview"], ["vec", "learn travel step by step"], ["vec", "best way to travel"], ["hyde", "Whether you're a beginner or looking to improve, this guide to travel offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": true, "query": "travel"}
{"output": [["lex", "small overview space tutorial advice"], ["lex", "small overview space tutorial guide"], ["lex", "small overview space tutorial tips"], ["vec", "best way to small space tutorial"], ["vec", "how to small space tutorial effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to small space tutorial offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "small space tutorial"}
{"output": [["lex", "learn overview vegan cooking advice"], ["lex", "learn overview vegan cooking how to"], ["lex", "learn overview vegan cooking tips"], ["vec", "best way to learn vegan cooking"], ["vec", "how to learn vegan cooking effectively"], ["hyde", "This comprehensive guide to learn vegan cooking covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "learn vegan cooking"}
{"output": [["lex", "earth overview science guide tips"], ["lex", "earth overview science guide advice"], ["lex", "earth overview science guide tutorial"], ["vec", "learn earth science guide step by step"], ["vec", "tips for earth science guide success"], ["hyde", "Learning earth science guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "earth science guide"}
{"output": [["lex", "learn overview classical music tutorial"], ["lex", "learn overview classical music guide"], ["lex", "learn overview classical music advice"], ["vec", "best way to learn classical music"], ["vec", "tips for learn classical music success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn classical music offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "learn classical music"}
{"output": [["lex", "best overview upcycling how to"], ["lex", "best overview upcycling guide"], ["lex", "best overview upcycling tutorial"], ["vec", "complete guide to best upcycling"], ["vec", "learn best upcycling step by step"], ["hyde", "Learning best upcycling requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "best upcycling"}
{"output": [["lex", "improve overview sibling relationships guide"], ["lex", "improve overview sibling relationships how to"], ["lex", "improve overview sibling relationships tips"], ["vec", "learn improve sibling relationships step by step"], ["vec", "best way to improve sibling relationships"], ["hyde", "Learning improve sibling relationships requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "improve sibling relationships"}
{"output": [["lex", "DIY overview fix leaky faucet how to"], ["lex", "DIY overview fix leaky faucet tips"], ["lex", "DIY overview fix leaky faucet guide"], ["vec", "how to DIY fix leaky faucet effectively"], ["vec", "tips for DIY fix leaky faucet success"], ["hyde", "Learning DIY fix leaky faucet requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "DIY fix leaky faucet"}
{"output": [["lex", "improve overview biology tips"], ["lex", "improve overview biology how to"], ["lex", "improve overview biology advice"], ["vec", "complete guide to improve biology"], ["vec", "learn improve biology step by step"], ["hyde", "Learning improve biology requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "improve biology"}
{"output": [["lex", "paint guide overview"], ["lex", "paint advice overview"], ["lex", "paint tips overview"], ["vec", "complete guide to paint"], ["vec", "best way to paint"], ["hyde", "This comprehensive guide to paint covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": true, "query": "paint"}
{"output": [["lex", "how overview to adjust timezone guide"], ["lex", "how overview to adjust timezone tips"], ["lex", "how overview to adjust timezone tutorial"], ["vec", "complete guide to how to adjust timezone"], ["vec", "learn how to adjust timezone step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to adjust timezone offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "how to adjust timezone"}
{"output": [["lex", "best overview backpacking how to"], ["lex", "best overview backpacking tutorial"], ["lex", "best overview backpacking guide"], ["vec", "learn best backpacking step by step"], ["vec", "best way to best backpacking"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best backpacking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "best backpacking"}
{"output": [["lex", "contemporary overview dance history tutorial"], ["lex", "contemporary overview dance history how to"], ["lex", "contemporary overview dance history tips"], ["vec", "complete guide to contemporary dance history"], ["vec", "tips for contemporary dance history success"], ["hyde", "Learning contemporary dance history requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "contemporary dance history"}
{"output": [["lex", "how overview to fix leaky faucet tutorial"], ["lex", "how overview to fix leaky faucet tips"], ["lex", "how overview to fix leaky faucet how to"], ["vec", "how to how to fix leaky faucet effectively"], ["vec", "best way to how to fix leaky faucet"], ["hyde", "This comprehensive guide to how to fix leaky faucet covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "how to fix leaky faucet"}
{"output": [["lex", "speed overview reading guide how to"], ["lex", "speed overview reading guide guide"], ["lex", "speed overview reading guide tips"], ["vec", "learn speed reading guide step by step"], ["vec", "complete guide to speed reading guide"], ["hyde", "Learning speed reading guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "speed reading guide"}
{"output": [["lex", "best overview organic gardening how to"], ["lex", "best overview organic gardening guide"], ["lex", "best overview organic gardening tutorial"], ["vec", "complete guide to best organic gardening"], ["vec", "best way to best organic gardening"], ["hyde", "Learning best organic gardening requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "best organic gardening"}
{"output": [["lex", "best overview hydration tips how to"], ["lex", "best overview hydration tips tips"], ["lex", "best overview hydration tips advice"], ["vec", "how to best hydration tips effectively"], ["vec", "tips for best hydration tips success"], ["hyde", "Learning best hydration tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "best hydration tips"}
{"output": [["lex", "best overview social skills advice"], ["lex", "best overview social skills tips"], ["lex", "best overview social skills how to"], ["vec", "tips for best social skills success"], ["vec", "learn best social skills step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best social skills offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": false, "query": "best social skills"}
{"output": [["lex", "improve overview reading list advice"], ["lex", "improve overview reading list tips"], ["lex", "improve overview reading list guide"], ["vec", "best way to improve reading list"], ["vec", "how to improve reading list effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to improve reading list offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "improve reading list"}
{"output": [["lex", "digital overview detox tips tutorial"], ["lex", "digital overview detox tips guide"], ["lex", "digital overview detox tips how to"], ["vec", "tips for digital detox tips success"], ["vec", "how to digital detox tips effectively"], ["hyde", "Learning digital detox tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "digital detox tips"}
{"output": [["lex", "MOOC overview platforms guide tips"], ["lex", "MOOC overview platforms guide guide"], ["lex", "MOOC overview platforms guide tutorial"], ["vec", "tips for MOOC platforms guide success"], ["vec", "best way to MOOC platforms guide"], ["hyde", "Learning MOOC platforms guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "MOOC platforms guide"}
{"output": [["lex", "dividend overview stocks basics guide"], ["lex", "dividend overview stocks basics tips"], ["lex", "dividend overview stocks basics how to"], ["vec", "learn dividend stocks basics step by step"], ["vec", "best way to dividend stocks basics"], ["hyde", "This comprehensive guide to dividend stocks basics covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "dividend stocks basics"}
{"output": [["lex", "fix overview leaky faucet ideas how to"], ["lex", "fix overview leaky faucet ideas advice"], ["lex", "fix overview leaky faucet ideas guide"], ["vec", "how to fix leaky faucet ideas effectively"], ["vec", "best way to fix leaky faucet ideas"], ["hyde", "Learning fix leaky faucet ideas requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "fix leaky faucet ideas"}
{"output": [["lex", "learn overview dietary restrictions tutorial"], ["lex", "learn overview dietary restrictions how to"], ["lex", "learn overview dietary restrictions advice"], ["vec", "learn learn dietary restrictions step by step"], ["vec", "how to learn dietary restrictions effectively"], ["hyde", "Learning learn dietary restrictions requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "learn dietary restrictions"}
{"output": [["lex", "travel overview gear guide tips"], ["lex", "travel overview gear guide guide"], ["lex", "travel overview gear guide advice"], ["vec", "learn travel gear guide step by step"], ["vec", "best way to travel gear guide"], ["hyde", "This comprehensive guide to travel gear guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "travel gear guide"}
{"output": [["lex", "video overview calls tips tutorial"], ["lex", "video overview calls tips how to"], ["lex", "video overview calls tips tips"], ["vec", "complete guide to video calls tips"], ["vec", "learn video calls tips step by step"], ["hyde", "This comprehensive guide to video calls tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "video calls tips"}
{"output": [["lex", "how overview to landscaping advice"], ["lex", "how overview to landscaping how to"], ["lex", "how overview to landscaping tutorial"], ["vec", "complete guide to how to landscaping"], ["vec", "tips for how to landscaping success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to landscaping offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "how to landscaping"}
{"output": [["lex", "world overview wars guide guide"], ["lex", "world overview wars guide tutorial"], ["lex", "world overview wars guide how to"], ["vec", "how to world wars guide effectively"], ["vec", "complete guide to world wars guide"], ["hyde", "This comprehensive guide to world wars guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "world wars guide"}
{"output": [["lex", "how overview to laundry tips tutorial"], ["lex", "how overview to laundry tips advice"], ["lex", "how overview to laundry tips guide"], ["vec", "tips for how to laundry tips success"], ["vec", "complete guide to how to laundry tips"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to laundry tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "how to laundry tips"}
{"output": [["lex", "best overview teenager advice guide"], ["lex", "best overview teenager advice tips"], ["lex", "best overview teenager advice advice"], ["vec", "learn best teenager advice step by step"], ["vec", "tips for best teenager advice success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best teenager advice offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": false, "query": "best teenager advice"}
{"output": [["lex", "understand overview holiday traditions tips"], ["lex", "understand overview holiday traditions how to"], ["lex", "understand overview holiday traditions advice"], ["vec", "best way to understand holiday traditions"], ["vec", "learn understand holiday traditions step by step"], ["hyde", "This comprehensive guide to understand holiday traditions covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "understand holiday traditions"}
{"output": [["lex", "bake how to overview"], ["lex", "bake advice overview"], ["lex", "bake tips overview"], ["vec", "best way to bake"], ["vec", "complete guide to bake"], ["hyde", "Learning bake requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": true, "query": "bake"}
{"output": [["lex", "kinesthetic overview guide tips"], ["lex", "kinesthetic overview guide advice"], ["lex", "kinesthetic overview guide how to"], ["vec", "learn kinesthetic guide step by step"], ["vec", "tips for kinesthetic guide success"], ["hyde", "This comprehensive guide to kinesthetic guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "kinesthetic guide"}
{"output": [["lex", "batch overview cooking techniques guide"], ["lex", "batch overview cooking techniques tips"], ["lex", "batch overview cooking techniques advice"], ["vec", "best way to batch cooking techniques"], ["vec", "tips for batch cooking techniques success"], ["hyde", "Learning batch cooking techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "batch cooking techniques"}
{"output": [["lex", "nutrition how to overview"], ["lex", "nutrition guide overview"], ["lex", "nutrition tips overview"], ["vec", "complete guide to nutrition"], ["vec", "best way to nutrition"], ["hyde", "Whether you're a beginner or looking to improve, this guide to nutrition offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "technology", "is_short": true, "query": "nutrition"}
{"output": [["lex", "habit overview formation tips how to"], ["lex", "habit overview formation tips advice"], ["lex", "habit overview formation tips guide"], ["vec", "complete guide to habit formation tips"], ["vec", "best way to habit formation tips"], ["hyde", "This comprehensive guide to habit formation tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": false, "query": "habit formation tips"}
{"output": [["lex", "plan overview local experiences tutorial"], ["lex", "plan overview local experiences tips"], ["lex", "plan overview local experiences advice"], ["vec", "learn plan local experiences step by step"], ["vec", "complete guide to plan local experiences"], ["hyde", "Learning plan local experiences requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "plan local experiences"}
{"output": [["lex", "diet guide overview"], ["lex", "diet tutorial overview"], ["lex", "diet how to overview"], ["vec", "how to diet effectively"], ["vec", "tips for diet success"], ["hyde", "This comprehensive guide to diet covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": true, "query": "diet"}
{"output": [["lex", "best overview unclog drain advice"], ["lex", "best overview unclog drain how to"], ["lex", "best overview unclog drain guide"], ["vec", "learn best unclog drain step by step"], ["vec", "tips for best unclog drain success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best unclog drain offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "best unclog drain"}
{"output": [["lex", "study tutorial overview"], ["lex", "study tips overview"], ["lex", "study how to overview"], ["vec", "complete guide to study"], ["vec", "how to study effectively"], ["hyde", "This comprehensive guide to study covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": true, "query": "study"}
{"output": [["lex", "how overview to coffee brewing guide"], ["lex", "how overview to coffee brewing advice"], ["lex", "how overview to coffee brewing how to"], ["vec", "how to how to coffee brewing effectively"], ["vec", "learn how to coffee brewing step by step"], ["hyde", "Learning how to coffee brewing requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "how to coffee brewing"}
{"output": [["lex", "understand overview film genres guide"], ["lex", "understand overview film genres advice"], ["lex", "understand overview film genres how to"], ["vec", "complete guide to understand film genres"], ["vec", "learn understand film genres step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to understand film genres offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "understand film genres"}
{"output": [["lex", "fix overview email etiquette tips"], ["lex", "fix overview email etiquette advice"], ["lex", "fix overview email etiquette guide"], ["vec", "best way to fix email etiquette"], ["vec", "complete guide to fix email etiquette"], ["hyde", "This comprehensive guide to fix email etiquette covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "fix email etiquette"}
{"output": [["lex", "best overview travel gear tips"], ["lex", "best overview travel gear advice"], ["lex", "best overview travel gear how to"], ["vec", "complete guide to best travel gear"], ["vec", "best way to best travel gear"], ["hyde", "This comprehensive guide to best travel gear covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "best travel gear"}
{"output": [["lex", "Baroque overview guide advice"], ["lex", "Baroque overview guide how to"], ["lex", "Baroque overview guide guide"], ["vec", "best way to Baroque guide"], ["vec", "tips for Baroque guide success"], ["hyde", "Learning Baroque guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "Baroque guide"}
{"output": [["lex", "appreciate overview dance styles tutorial"], ["lex", "appreciate overview dance styles how to"], ["lex", "appreciate overview dance styles guide"], ["vec", "how to appreciate dance styles effectively"], ["vec", "tips for appreciate dance styles success"], ["hyde", "Learning appreciate dance styles requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "appreciate dance styles"}
{"output": [["lex", "travel overview safety guide how to"], ["lex", "travel overview safety guide tips"], ["lex", "travel overview safety guide guide"], ["vec", "how to travel safety guide effectively"], ["vec", "complete guide to travel safety guide"], ["hyde", "Whether you're a beginner or looking to improve, this guide to travel safety guide offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "travel safety guide"}
{"output": [["lex", "BBQ overview techniques recipe tutorial"], ["lex", "BBQ overview techniques recipe how to"], ["lex", "BBQ overview techniques recipe advice"], ["vec", "complete guide to BBQ techniques recipe"], ["vec", "tips for BBQ techniques recipe success"], ["hyde", "Learning BBQ techniques recipe requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "BBQ techniques recipe"}
{"output": [["lex", "how overview to indoor plants tips"], ["lex", "how overview to indoor plants how to"], ["lex", "how overview to indoor plants advice"], ["vec", "learn how to indoor plants step by step"], ["vec", "best way to how to indoor plants"], ["hyde", "Learning how to indoor plants requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "how to indoor plants"}
{"output": [["lex", "best overview common cold remedies tutorial"], ["lex", "best overview common cold remedies how to"], ["lex", "best overview common cold remedies advice"], ["vec", "best way to best common cold remedies"], ["vec", "how to best common cold remedies effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best common cold remedies offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "best common cold remedies"}
{"output": [["lex", "retirement overview planning tips advice"], ["lex", "retirement overview planning tips tips"], ["lex", "retirement overview planning tips tutorial"], ["vec", "best way to retirement planning tips"], ["vec", "how to retirement planning tips effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to retirement planning tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "retirement planning tips"}
{"output": [["lex", "problem overview solving techniques tutorial"], ["lex", "problem overview solving techniques how to"], ["lex", "problem overview solving techniques advice"], ["vec", "learn problem solving techniques step by step"], ["vec", "how to problem solving techniques effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to problem solving techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "problem solving techniques"}
{"output": [["lex", "garden guide overview"], ["lex", "garden how to overview"], ["lex", "garden tutorial overview"], ["vec", "tips for garden success"], ["vec", "best way to garden"], ["hyde", "This comprehensive guide to garden covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": true, "query": "garden"}
{"output": [["lex", "plan overview carry on essentials advice"], ["lex", "plan overview carry on essentials guide"], ["lex", "plan overview carry on essentials tutorial"], ["vec", "learn plan carry on essentials step by step"], ["vec", "tips for plan carry on essentials success"], ["hyde", "Learning plan carry on essentials requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "plan carry on essentials"}
{"output": [["lex", "best overview lunch prep advice"], ["lex", "best overview lunch prep guide"], ["lex", "best overview lunch prep how to"], ["vec", "how to best lunch prep effectively"], ["vec", "complete guide to best lunch prep"], ["hyde", "Learning best lunch prep requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "best lunch prep"}
{"output": [["lex", "book overview recommendations techniques tutorial"], ["lex", "book overview recommendations techniques advice"], ["lex", "book overview recommendations techniques tips"], ["vec", "best way to book recommendations techniques"], ["vec", "complete guide to book recommendations techniques"], ["hyde", "Whether you're a beginner or looking to improve, this guide to book recommendations techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "book recommendations techniques"}
{"output": [["lex", "lawn overview care tutorial tips"], ["lex", "lawn overview care tutorial tutorial"], ["lex", "lawn overview care tutorial how to"], ["vec", "complete guide to lawn care tutorial"], ["vec", "best way to lawn care tutorial"], ["hyde", "Learning lawn care tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "lawn care tutorial"}
{"output": [["lex", "plan overview road trip planning guide"], ["lex", "plan overview road trip planning how to"], ["lex", "plan overview road trip planning tutorial"], ["vec", "tips for plan road trip planning success"], ["vec", "learn plan road trip planning step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to plan road trip planning offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "plan road trip planning"}
{"output": [["lex", "degree advice overview"], ["lex", "degree tips overview"], ["lex", "degree tutorial overview"], ["vec", "best way to degree"], ["vec", "how to degree effectively"], ["hyde", "Learning degree requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": true, "query": "degree"}
{"output": [["lex", "how overview to basic troubleshooting tutorial"], ["lex", "how overview to basic troubleshooting how to"], ["lex", "how overview to basic troubleshooting advice"], ["vec", "tips for how to basic troubleshooting success"], ["vec", "learn how to basic troubleshooting step by step"], ["hyde", "This comprehensive guide to how to basic troubleshooting covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "how to basic troubleshooting"}
{"output": [["lex", "study overview ancient civilizations tips"], ["lex", "study overview ancient civilizations advice"], ["lex", "study overview ancient civilizations tutorial"], ["vec", "best way to study ancient civilizations"], ["vec", "complete guide to study ancient civilizations"], ["hyde", "Learning study ancient civilizations requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "study ancient civilizations"}
{"output": [["lex", "in-laws overview advice advice"], ["lex", "in-laws overview advice tutorial"], ["lex", "in-laws overview advice tips"], ["vec", "tips for in-laws advice success"], ["vec", "best way to in-laws advice"], ["hyde", "This comprehensive guide to in-laws advice covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": false, "query": "in-laws advice"}
{"output": [["lex", "how overview to app recommendations guide"], ["lex", "how overview to app recommendations advice"], ["lex", "how overview to app recommendations tips"], ["vec", "complete guide to how to app recommendations"], ["vec", "best way to how to app recommendations"], ["hyde", "Learning how to app recommendations requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "how to app recommendations"}
{"output": [["lex", "best overview carry on essentials how to"], ["lex", "best overview carry on essentials tips"], ["lex", "best overview carry on essentials advice"], ["vec", "tips for best carry on essentials success"], ["vec", "best way to best carry on essentials"], ["hyde", "Learning best carry on essentials requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "best carry on essentials"}
{"output": [["lex", "best overview playing guitar guide"], ["lex", "best overview playing guitar how to"], ["lex", "best overview playing guitar tutorial"], ["vec", "learn best playing guitar step by step"], ["vec", "how to best playing guitar effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best playing guitar offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best playing guitar"}
{"output": [["lex", "best overview camping tips"], ["lex", "best overview camping guide"], ["lex", "best overview camping how to"], ["vec", "tips for best camping success"], ["vec", "best way to best camping"], ["hyde", "Learning best camping requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "best camping"}
{"output": [["lex", "improve overview breathing exercises how to"], ["lex", "improve overview breathing exercises tips"], ["lex", "improve overview breathing exercises guide"], ["vec", "how to improve breathing exercises effectively"], ["vec", "complete guide to improve breathing exercises"], ["hyde", "Learning improve breathing exercises requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "improve breathing exercises"}
{"output": [["lex", "learn overview meal ideas guide"], ["lex", "learn overview meal ideas advice"], ["lex", "learn overview meal ideas tutorial"], ["vec", "best way to learn meal ideas"], ["vec", "complete guide to learn meal ideas"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn meal ideas offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "learn meal ideas"}
{"output": [["lex", "how overview to slow living tutorial"], ["lex", "how overview to slow living advice"], ["lex", "how overview to slow living how to"], ["vec", "tips for how to slow living success"], ["vec", "how to how to slow living effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to slow living offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": false, "query": "how to slow living"}
{"output": [["lex", "compost how to overview"], ["lex", "compost tips overview"], ["lex", "compost advice overview"], ["vec", "tips for compost success"], ["vec", "how to compost effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to compost offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "technology", "is_short": true, "query": "compost"}
{"output": [["lex", "protein advice overview"], ["lex", "protein tips overview"], ["lex", "protein guide overview"], ["vec", "best way to protein"], ["vec", "how to protein effectively"], ["hyde", "This comprehensive guide to protein covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": true, "query": "protein"}
{"output": [["lex", "learn overview reading list how to"], ["lex", "learn overview reading list guide"], ["lex", "learn overview reading list tutorial"], ["vec", "learn learn reading list step by step"], ["vec", "how to learn reading list effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn reading list offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "learn reading list"}
{"output": [["lex", "how overview to bucket list destinations tips"], ["lex", "how overview to bucket list destinations guide"], ["lex", "how overview to bucket list destinations tutorial"], ["vec", "learn how to bucket list destinations step by step"], ["vec", "tips for how to bucket list destinations success"], ["hyde", "This comprehensive guide to how to bucket list destinations covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "how to bucket list destinations"}
{"output": [["lex", "best overview knife skills tutorial"], ["lex", "best overview knife skills advice"], ["lex", "best overview knife skills tips"], ["vec", "best way to best knife skills"], ["vec", "how to best knife skills effectively"], ["hyde", "Learning best knife skills requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "best knife skills"}
{"output": [["lex", "hydration overview tips guide tips"], ["lex", "hydration overview tips guide advice"], ["lex", "hydration overview tips guide how to"], ["vec", "tips for hydration tips guide success"], ["vec", "complete guide to hydration tips guide"], ["hyde", "Learning hydration tips guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "hydration tips guide"}
{"output": [["lex", "learn overview problem solving advice"], ["lex", "learn overview problem solving guide"], ["lex", "learn overview problem solving how to"], ["vec", "best way to learn problem solving"], ["vec", "complete guide to learn problem solving"], ["hyde", "This comprehensive guide to learn problem solving covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "learn problem solving"}
{"output": [["lex", "social overview media privacy setup advice"], ["lex", "social overview media privacy setup tips"], ["lex", "social overview media privacy setup how to"], ["vec", "best way to social media privacy setup"], ["vec", "tips for social media privacy setup success"], ["hyde", "Learning social media privacy setup requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "social media privacy setup"}
{"output": [["lex", "passport tips overview"], ["lex", "passport advice overview"], ["lex", "passport guide overview"], ["vec", "tips for passport success"], ["vec", "best way to passport"], ["hyde", "Learning passport requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": true, "query": "passport"}
{"output": [["lex", "breakfast overview ideas recipe guide"], ["lex", "breakfast overview ideas recipe how to"], ["lex", "breakfast overview ideas recipe tips"], ["vec", "how to breakfast ideas recipe effectively"], ["vec", "tips for breakfast ideas recipe success"], ["hyde", "This comprehensive guide to breakfast ideas recipe covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "breakfast ideas recipe"}
{"output": [["lex", "start overview LLC setup advice"], ["lex", "start overview LLC setup tips"], ["lex", "start overview LLC setup tutorial"], ["vec", "how to start LLC setup effectively"], ["vec", "learn start LLC setup step by step"], ["hyde", "This comprehensive guide to start LLC setup covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "start LLC setup"}
{"output": [["lex", "improve overview physical therapy tips"], ["lex", "improve overview physical therapy tutorial"], ["lex", "improve overview physical therapy guide"], ["vec", "complete guide to improve physical therapy"], ["vec", "best way to improve physical therapy"], ["hyde", "Learning improve physical therapy requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "improve physical therapy"}
{"output": [["lex", "eye overview health guide advice"], ["lex", "eye overview health guide how to"], ["lex", "eye overview health guide tutorial"], ["vec", "complete guide to eye health guide"], ["vec", "best way to eye health guide"], ["hyde", "This comprehensive guide to eye health guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "eye health guide"}
{"output": [["lex", "side overview hustle tips tips"], ["lex", "side overview hustle tips tutorial"], ["lex", "side overview hustle tips how to"], ["vec", "how to side hustle tips effectively"], ["vec", "complete guide to side hustle tips"], ["hyde", "Whether you're a beginner or looking to improve, this guide to side hustle tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "side hustle tips"}
{"output": [["lex", "trail overview finding for beginners tutorial"], ["lex", "trail overview finding for beginners tips"], ["lex", "trail overview finding for beginners guide"], ["vec", "complete guide to trail finding for beginners"], ["vec", "learn trail finding for beginners step by step"], ["hyde", "This comprehensive guide to trail finding for beginners covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "trail finding for beginners"}
{"output": [["lex", "fix overview basic troubleshooting tips"], ["lex", "fix overview basic troubleshooting guide"], ["lex", "fix overview basic troubleshooting how to"], ["vec", "learn fix basic troubleshooting step by step"], ["vec", "how to fix basic troubleshooting effectively"], ["hyde", "Learning fix basic troubleshooting requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "fix basic troubleshooting"}
{"output": [["lex", "understand overview world celebrations tips"], ["lex", "understand overview world celebrations tutorial"], ["lex", "understand overview world celebrations how to"], ["vec", "best way to understand world celebrations"], ["vec", "learn understand world celebrations step by step"], ["hyde", "Learning understand world celebrations requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "understand world celebrations"}
{"output": [["lex", "wheel overview throwing basics tutorial"], ["lex", "wheel overview throwing basics guide"], ["lex", "wheel overview throwing basics tips"], ["vec", "how to wheel throwing basics effectively"], ["vec", "learn wheel throwing basics step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to wheel throwing basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "wheel throwing basics"}
{"output": [["lex", "breakfast overview ideas techniques how to"], ["lex", "breakfast overview ideas techniques tips"], ["lex", "breakfast overview ideas techniques tutorial"], ["vec", "complete guide to breakfast ideas techniques"], ["vec", "best way to breakfast ideas techniques"], ["hyde", "Learning breakfast ideas techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "breakfast ideas techniques"}
{"output": [["lex", "recipe tutorial overview"], ["lex", "recipe how to overview"], ["lex", "recipe advice overview"], ["vec", "best way to recipe"], ["vec", "learn recipe step by step"], ["hyde", "Learning recipe requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": true, "query": "recipe"}
{"output": [["lex", "improve overview child development advice"], ["lex", "improve overview child development tutorial"], ["lex", "improve overview child development tips"], ["vec", "learn improve child development step by step"], ["vec", "tips for improve child development success"], ["hyde", "This comprehensive guide to improve child development covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": false, "query": "improve child development"}
{"output": [["lex", "learn overview cooking techniques how to"], ["lex", "learn overview cooking techniques tips"], ["lex", "learn overview cooking techniques advice"], ["vec", "best way to learn cooking techniques"], ["vec", "how to learn cooking techniques effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn cooking techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "learn cooking techniques"}
{"output": [["lex", "flight tutorial overview"], ["lex", "flight advice overview"], ["lex", "flight how to overview"], ["vec", "learn flight step by step"], ["vec", "how to flight effectively"], ["hyde", "Learning flight requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": true, "query": "flight"}
{"output": [["lex", "DIY overview lawn care how to"], ["lex", "DIY overview lawn care guide"], ["lex", "DIY overview lawn care advice"], ["vec", "complete guide to DIY lawn care"], ["vec", "how to DIY lawn care effectively"], ["hyde", "This comprehensive guide to DIY lawn care covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "DIY lawn care"}
{"output": [["lex", "budget guide overview"], ["lex", "budget tips overview"], ["lex", "budget how to overview"], ["vec", "complete guide to budget"], ["vec", "learn budget step by step"], ["hyde", "Learning budget requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": true, "query": "budget"}
{"output": [["lex", "learn overview productivity systems advice"], ["lex", "learn overview productivity systems tips"], ["lex", "learn overview productivity systems tutorial"], ["vec", "learn learn productivity systems step by step"], ["vec", "how to learn productivity systems effectively"], ["hyde", "Learning learn productivity systems requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "learn productivity systems"}
{"output": [["lex", "study overview speed reading tips"], ["lex", "study overview speed reading tutorial"], ["lex", "study overview speed reading advice"], ["vec", "tips for study speed reading success"], ["vec", "how to study speed reading effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to study speed reading offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "study speed reading"}
{"output": [["lex", "adjust overview timezone guide guide"], ["lex", "adjust overview timezone guide tips"], ["lex", "adjust overview timezone guide advice"], ["vec", "complete guide to adjust timezone guide"], ["vec", "learn adjust timezone guide step by step"], ["hyde", "This comprehensive guide to adjust timezone guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "adjust timezone guide"}
{"output": [["lex", "healthy overview eating guide how to"], ["lex", "healthy overview eating guide guide"], ["lex", "healthy overview eating guide advice"], ["vec", "best way to healthy eating guide"], ["vec", "tips for healthy eating guide success"], ["hyde", "Learning healthy eating guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "healthy eating guide"}
{"output": [["lex", "how overview to campfire cooking guide"], ["lex", "how overview to campfire cooking advice"], ["lex", "how overview to campfire cooking how to"], ["vec", "how to how to campfire cooking effectively"], ["vec", "tips for how to campfire cooking success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to campfire cooking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "how to campfire cooking"}
{"output": [["lex", "DIY overview minimalist living guide"], ["lex", "DIY overview minimalist living advice"], ["lex", "DIY overview minimalist living how to"], ["vec", "how to DIY minimalist living effectively"], ["vec", "best way to DIY minimalist living"], ["hyde", "Whether you're a beginner or looking to improve, this guide to DIY minimalist living offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "DIY minimalist living"}
{"output": [["lex", "sketching overview for beginners tips"], ["lex", "sketching overview for beginners tutorial"], ["lex", "sketching overview for beginners how to"], ["vec", "tips for sketching for beginners success"], ["vec", "how to sketching for beginners effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to sketching for beginners offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "sketching for beginners"}
{"output": [["lex", "certification overview prep techniques tutorial"], ["lex", "certification overview prep techniques how to"], ["lex", "certification overview prep techniques advice"], ["vec", "tips for certification prep techniques success"], ["vec", "learn certification prep techniques step by step"], ["hyde", "This comprehensive guide to certification prep techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "certification prep techniques"}
{"output": [["lex", "marketing overview strategy basics tips"], ["lex", "marketing overview strategy basics advice"], ["lex", "marketing overview strategy basics guide"], ["vec", "best way to marketing strategy basics"], ["vec", "learn marketing strategy basics step by step"], ["hyde", "This comprehensive guide to marketing strategy basics covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "marketing strategy basics"}
{"output": [["lex", "stock overview market strategy tips"], ["lex", "stock overview market strategy how to"], ["lex", "stock overview market strategy guide"], ["vec", "complete guide to stock market strategy"], ["vec", "tips for stock market strategy success"], ["hyde", "Learning stock market strategy requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "stock market strategy"}
{"output": [["lex", "improve overview simple living how to"], ["lex", "improve overview simple living tips"], ["lex", "improve overview simple living tutorial"], ["vec", "how to improve simple living effectively"], ["vec", "best way to improve simple living"], ["hyde", "Learning improve simple living requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "improve simple living"}
{"output": [["lex", "raised overview beds ideas how to"], ["lex", "raised overview beds ideas tutorial"], ["lex", "raised overview beds ideas tips"], ["vec", "best way to raised beds ideas"], ["vec", "how to raised beds ideas effectively"], ["hyde", "This comprehensive guide to raised beds ideas covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "raised beds ideas"}
{"output": [["lex", "understand overview criticism tips"], ["lex", "understand overview criticism tutorial"], ["lex", "understand overview criticism guide"], ["vec", "best way to understand criticism"], ["vec", "complete guide to understand criticism"], ["hyde", "Learning understand criticism requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "understand criticism"}
{"output": [["lex", "beading overview for beginners how to"], ["lex", "beading overview for beginners tutorial"], ["lex", "beading overview for beginners tips"], ["vec", "complete guide to beading for beginners"], ["vec", "learn beading for beginners step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to beading for beginners offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "beading for beginners"}
{"output": [["lex", "how overview to climate zones advice"], ["lex", "how overview to climate zones tips"], ["lex", "how overview to climate zones tutorial"], ["vec", "how to how to climate zones effectively"], ["vec", "tips for how to climate zones success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to climate zones offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "how to climate zones"}
{"output": [["lex", "storytelling overview guide advice"], ["lex", "storytelling overview guide guide"], ["lex", "storytelling overview guide how to"], ["vec", "tips for storytelling guide success"], ["vec", "best way to storytelling guide"], ["hyde", "Whether you're a beginner or looking to improve, this guide to storytelling guide offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "storytelling guide"}
{"output": [["lex", "appreciate overview haiku tips"], ["lex", "appreciate overview haiku how to"], ["lex", "appreciate overview haiku guide"], ["vec", "complete guide to appreciate haiku"], ["vec", "how to appreciate haiku effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to appreciate haiku offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "appreciate haiku"}
{"output": [["lex", "avoid overview fees guide guide"], ["lex", "avoid overview fees guide tutorial"], ["lex", "avoid overview fees guide advice"], ["vec", "how to avoid fees guide effectively"], ["vec", "tips for avoid fees guide success"], ["hyde", "This comprehensive guide to avoid fees guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "avoid fees guide"}
{"output": [["lex", "best overview organize closet advice"], ["lex", "best overview organize closet how to"], ["lex", "best overview organize closet guide"], ["vec", "how to best organize closet effectively"], ["vec", "learn best organize closet step by step"], ["hyde", "This comprehensive guide to best organize closet covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "best organize closet"}
{"output": [["lex", "learn overview blues music tutorial"], ["lex", "learn overview blues music tips"], ["lex", "learn overview blues music guide"], ["vec", "how to learn blues music effectively"], ["vec", "best way to learn blues music"], ["hyde", "Learning learn blues music requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "learn blues music"}
{"output": [["lex", "visa overview requirements tips tutorial"], ["lex", "visa overview requirements tips advice"], ["lex", "visa overview requirements tips how to"], ["vec", "tips for visa requirements tips success"], ["vec", "learn visa requirements tips step by step"], ["hyde", "Learning visa requirements tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "visa requirements tips"}
{"output": [["lex", "learn overview criticism guide"], ["lex", "learn overview criticism advice"], ["lex", "learn overview criticism tips"], ["vec", "learn learn criticism step by step"], ["vec", "complete guide to learn criticism"], ["hyde", "This comprehensive guide to learn criticism covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "learn criticism"}
{"output": [["lex", "stretching overview routine guide how to"], ["lex", "stretching overview routine guide advice"], ["lex", "stretching overview routine guide tips"], ["vec", "learn stretching routine guide step by step"], ["vec", "how to stretching routine guide effectively"], ["hyde", "Learning stretching routine guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "stretching routine guide"}
{"output": [["lex", "best overview meal ideas guide"], ["lex", "best overview meal ideas advice"], ["lex", "best overview meal ideas tips"], ["vec", "complete guide to best meal ideas"], ["vec", "tips for best meal ideas success"], ["hyde", "This comprehensive guide to best meal ideas covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "best meal ideas"}
{"output": [["lex", "understand overview orchestra instruments guide"], ["lex", "understand overview orchestra instruments how to"], ["lex", "understand overview orchestra instruments tips"], ["vec", "tips for understand orchestra instruments success"], ["vec", "how to understand orchestra instruments effectively"], ["hyde", "This comprehensive guide to understand orchestra instruments covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "understand orchestra instruments"}
{"output": [["lex", "prune how to overview"], ["lex", "prune guide overview"], ["lex", "prune tips overview"], ["vec", "best way to prune"], ["vec", "learn prune step by step"], ["hyde", "Learning prune requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": true, "query": "prune"}
{"output": [["lex", "clean guide overview"], ["lex", "clean advice overview"], ["lex", "clean how to overview"], ["vec", "best way to clean"], ["vec", "how to clean effectively"], ["hyde", "This comprehensive guide to clean covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": true, "query": "clean"}
{"output": [["lex", "business overview plan strategy advice"], ["lex", "business overview plan strategy tips"], ["lex", "business overview plan strategy guide"], ["vec", "tips for business plan strategy success"], ["vec", "how to business plan strategy effectively"], ["hyde", "Learning business plan strategy requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "business plan strategy"}
{"output": [["lex", "tax overview deductions basics how to"], ["lex", "tax overview deductions basics guide"], ["lex", "tax overview deductions basics tips"], ["vec", "best way to tax deductions basics"], ["vec", "complete guide to tax deductions basics"], ["hyde", "Learning tax deductions basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "tax deductions basics"}
{"output": [["lex", "how overview to declutter home advice"], ["lex", "how overview to declutter home tutorial"], ["lex", "how overview to declutter home how to"], ["vec", "complete guide to how to declutter home"], ["vec", "learn how to declutter home step by step"], ["hyde", "This comprehensive guide to how to declutter home covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "how to declutter home"}
{"output": [["lex", "how overview to vegetable garden tips"], ["lex", "how overview to vegetable garden advice"], ["lex", "how overview to vegetable garden guide"], ["vec", "learn how to vegetable garden step by step"], ["vec", "complete guide to how to vegetable garden"], ["hyde", "Learning how to vegetable garden requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "how to vegetable garden"}
{"output": [["lex", "negotiation overview skills strategy tips"], ["lex", "negotiation overview skills strategy advice"], ["lex", "negotiation overview skills strategy guide"], ["vec", "complete guide to negotiation skills strategy"], ["vec", "best way to negotiation skills strategy"], ["hyde", "This comprehensive guide to negotiation skills strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "negotiation skills strategy"}
{"output": [["lex", "credit tutorial overview"], ["lex", "credit guide overview"], ["lex", "credit tips overview"], ["vec", "how to credit effectively"], ["vec", "best way to credit"], ["hyde", "Whether you're a beginner or looking to improve, this guide to credit offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "technology", "is_short": true, "query": "credit"}
{"output": [["lex", "literary overview analysis techniques advice"], ["lex", "literary overview analysis techniques guide"], ["lex", "literary overview analysis techniques tips"], ["vec", "tips for literary analysis techniques success"], ["vec", "learn literary analysis techniques step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to literary analysis techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "literary analysis techniques"}
{"output": [["lex", "learn overview wire wrapping guide"], ["lex", "learn overview wire wrapping tutorial"], ["lex", "learn overview wire wrapping tips"], ["vec", "complete guide to learn wire wrapping"], ["vec", "tips for learn wire wrapping success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn wire wrapping offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "learn wire wrapping"}
{"output": [["lex", "communication overview guide guide"], ["lex", "communication overview guide how to"], ["lex", "communication overview guide tutorial"], ["vec", "how to communication guide effectively"], ["vec", "learn communication guide step by step"], ["hyde", "Learning communication guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "communication guide"}
{"output": [["lex", "draw tutorial overview"], ["lex", "draw guide overview"], ["lex", "draw advice overview"], ["vec", "tips for draw success"], ["vec", "how to draw effectively"], ["hyde", "This comprehensive guide to draw covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": true, "query": "draw"}
{"output": [["lex", "dental overview care guide advice"], ["lex", "dental overview care guide tips"], ["lex", "dental overview care guide how to"], ["vec", "complete guide to dental care guide"], ["vec", "learn dental care guide step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to dental care guide offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "dental care guide"}
{"output": [["lex", "improve overview ancient civilizations tips"], ["lex", "improve overview ancient civilizations tutorial"], ["lex", "improve overview ancient civilizations guide"], ["vec", "how to improve ancient civilizations effectively"], ["vec", "tips for improve ancient civilizations success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to improve ancient civilizations offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "improve ancient civilizations"}
{"output": [["lex", "breathing overview exercises guide advice"], ["lex", "breathing overview exercises guide tutorial"], ["lex", "breathing overview exercises guide tips"], ["vec", "how to breathing exercises guide effectively"], ["vec", "learn breathing exercises guide step by step"], ["hyde", "Learning breathing exercises guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "breathing exercises guide"}
{"output": [["lex", "wine overview pairing recipe guide"], ["lex", "wine overview pairing recipe advice"], ["lex", "wine overview pairing recipe how to"], ["vec", "best way to wine pairing recipe"], ["vec", "tips for wine pairing recipe success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to wine pairing recipe offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "wine pairing recipe"}
{"output": [["lex", "renaissance overview art guide tutorial"], ["lex", "renaissance overview art guide how to"], ["lex", "renaissance overview art guide tips"], ["vec", "best way to renaissance art guide"], ["vec", "learn renaissance art guide step by step"], ["hyde", "Learning renaissance art guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "renaissance art guide"}
{"output": [["lex", "two overview factor auth setup tips"], ["lex", "two overview factor auth setup tutorial"], ["lex", "two overview factor auth setup how to"], ["vec", "how to two factor auth setup effectively"], ["vec", "tips for two factor auth setup success"], ["hyde", "Learning two factor auth setup requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "two factor auth setup"}
{"output": [["lex", "best overview survival skills tips"], ["lex", "best overview survival skills guide"], ["lex", "best overview survival skills tutorial"], ["vec", "tips for best survival skills success"], ["vec", "learn best survival skills step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best survival skills offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best survival skills"}
{"output": [["lex", "upcycling overview for beginners guide"], ["lex", "upcycling overview for beginners tips"], ["lex", "upcycling overview for beginners advice"], ["vec", "tips for upcycling for beginners success"], ["vec", "complete guide to upcycling for beginners"], ["hyde", "Learning upcycling for beginners requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "upcycling for beginners"}
{"output": [["lex", "how overview to meal prep advice"], ["lex", "how overview to meal prep guide"], ["lex", "how overview to meal prep tutorial"], ["vec", "complete guide to how to meal prep"], ["vec", "how to how to meal prep effectively"], ["hyde", "This comprehensive guide to how to meal prep covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "how to meal prep"}
{"output": [["lex", "exam guide overview"], ["lex", "exam advice overview"], ["lex", "exam tutorial overview"], ["vec", "complete guide to exam"], ["vec", "learn exam step by step"], ["hyde", "This comprehensive guide to exam covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": true, "query": "exam"}
{"output": [["lex", "parent advice overview"], ["lex", "parent guide overview"], ["lex", "parent how to overview"], ["vec", "learn parent step by step"], ["vec", "complete guide to parent"], ["hyde", "Learning parent requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": true, "query": "parent"}
{"output": [["lex", "learn overview French phrases tips"], ["lex", "learn overview French phrases advice"], ["lex", "learn overview French phrases tutorial"], ["vec", "how to learn French phrases effectively"], ["vec", "best way to learn French phrases"], ["hyde", "This comprehensive guide to learn French phrases covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "learn French phrases"}
{"output": [["lex", "vitamin overview supplements guide tips"], ["lex", "vitamin overview supplements guide advice"], ["lex", "vitamin overview supplements guide how to"], ["vec", "complete guide to vitamin supplements guide"], ["vec", "how to vitamin supplements guide effectively"], ["hyde", "Learning vitamin supplements guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "vitamin supplements guide"}
{"output": [["lex", "learn overview earth science advice"], ["lex", "learn overview earth science guide"], ["lex", "learn overview earth science tutorial"], ["vec", "complete guide to learn earth science"], ["vec", "learn learn earth science step by step"], ["hyde", "Learning learn earth science requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "learn earth science"}
{"output": [["lex", "DIY overview declutter home how to"], ["lex", "DIY overview declutter home advice"], ["lex", "DIY overview declutter home guide"], ["vec", "learn DIY declutter home step by step"], ["vec", "how to DIY declutter home effectively"], ["hyde", "This comprehensive guide to DIY declutter home covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "DIY declutter home"}
{"output": [["lex", "best overview campfire cooking tips"], ["lex", "best overview campfire cooking advice"], ["lex", "best overview campfire cooking guide"], ["vec", "learn best campfire cooking step by step"], ["vec", "tips for best campfire cooking success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best campfire cooking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best campfire cooking"}
{"output": [["lex", "hydration overview tips for beginners advice"], ["lex", "hydration overview tips for beginners tips"], ["lex", "hydration overview tips for beginners tutorial"], ["vec", "how to hydration tips for beginners effectively"], ["vec", "tips for hydration tips for beginners success"], ["hyde", "Learning hydration tips for beginners requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "hydration tips for beginners"}
{"output": [["lex", "rewards overview programs strategy how to"], ["lex", "rewards overview programs strategy tutorial"], ["lex", "rewards overview programs strategy tips"], ["vec", "tips for rewards programs strategy success"], ["vec", "complete guide to rewards programs strategy"], ["hyde", "This comprehensive guide to rewards programs strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "rewards programs strategy"}
{"output": [["lex", "DIY overview raised beds guide"], ["lex", "DIY overview raised beds advice"], ["lex", "DIY overview raised beds tips"], ["vec", "complete guide to DIY raised beds"], ["vec", "tips for DIY raised beds success"], ["hyde", "This comprehensive guide to DIY raised beds covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "DIY raised beds"}
{"output": [["lex", "learn overview coffee brewing how to"], ["lex", "learn overview coffee brewing guide"], ["lex", "learn overview coffee brewing tutorial"], ["vec", "tips for learn coffee brewing success"], ["vec", "best way to learn coffee brewing"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn coffee brewing offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "learn coffee brewing"}
{"output": [["lex", "study overview online courses tips"], ["lex", "study overview online courses tutorial"], ["lex", "study overview online courses advice"], ["vec", "best way to study online courses"], ["vec", "complete guide to study online courses"], ["hyde", "Learning study online courses requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "study online courses"}
{"output": [["lex", "appreciate overview Baroque tips"], ["lex", "appreciate overview Baroque guide"], ["lex", "appreciate overview Baroque tutorial"], ["vec", "how to appreciate Baroque effectively"], ["vec", "learn appreciate Baroque step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to appreciate Baroque offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "appreciate Baroque"}
{"output": [["lex", "how overview to improve sleep guide"], ["lex", "how overview to improve sleep how to"], ["lex", "how overview to improve sleep tutorial"], ["vec", "tips for how to improve sleep success"], ["vec", "complete guide to how to improve sleep"], ["hyde", "This comprehensive guide to how to improve sleep covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "how to improve sleep"}
{"output": [["lex", "best overview ceramics tips"], ["lex", "best overview ceramics tutorial"], ["lex", "best overview ceramics guide"], ["vec", "tips for best ceramics success"], ["vec", "how to best ceramics effectively"], ["hyde", "Learning best ceramics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "best ceramics"}
{"output": [["lex", "home overview buying strategy guide"], ["lex", "home overview buying strategy how to"], ["lex", "home overview buying strategy tips"], ["vec", "complete guide to home buying strategy"], ["vec", "learn home buying strategy step by step"], ["hyde", "This comprehensive guide to home buying strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "home buying strategy"}
{"output": [["lex", "road overview trip planning guide advice"], ["lex", "road overview trip planning guide guide"], ["lex", "road overview trip planning guide tips"], ["vec", "learn road trip planning guide step by step"], ["vec", "best way to road trip planning guide"], ["hyde", "Learning road trip planning guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "road trip planning guide"}
{"output": [["lex", "best overview gluten free tutorial"], ["lex", "best overview gluten free guide"], ["lex", "best overview gluten free tips"], ["vec", "best way to best gluten free"], ["vec", "learn best gluten free step by step"], ["hyde", "Learning best gluten free requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "best gluten free"}
{"output": [["lex", "learn overview color theory guide"], ["lex", "learn overview color theory tips"], ["lex", "learn overview color theory tutorial"], ["vec", "learn learn color theory step by step"], ["vec", "tips for learn color theory success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn color theory offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "learn color theory"}
{"output": [["lex", "how overview to drawing techniques tutorial"], ["lex", "how overview to drawing techniques guide"], ["lex", "how overview to drawing techniques tips"], ["vec", "complete guide to how to drawing techniques"], ["vec", "how to how to drawing techniques effectively"], ["hyde", "Learning how to drawing techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "how to drawing techniques"}
{"output": [["lex", "yoga overview poses for beginners how to"], ["lex", "yoga overview poses for beginners tips"], ["lex", "yoga overview poses for beginners advice"], ["vec", "tips for yoga poses for beginners success"], ["vec", "learn yoga poses for beginners step by step"], ["hyde", "This comprehensive guide to yoga poses for beginners covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "yoga poses for beginners"}
{"output": [["lex", "study overview world wars how to"], ["lex", "study overview world wars guide"], ["lex", "study overview world wars advice"], ["vec", "learn study world wars step by step"], ["vec", "how to study world wars effectively"], ["hyde", "This comprehensive guide to study world wars covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "study world wars"}
{"output": [["lex", "fix overview password manager how to"], ["lex", "fix overview password manager tips"], ["lex", "fix overview password manager tutorial"], ["vec", "learn fix password manager step by step"], ["vec", "complete guide to fix password manager"], ["hyde", "This comprehensive guide to fix password manager covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "fix password manager"}
{"output": [["lex", "hotel tips overview"], ["lex", "hotel how to overview"], ["lex", "hotel tutorial overview"], ["vec", "complete guide to hotel"], ["vec", "learn hotel step by step"], ["hyde", "Learning hotel requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": true, "query": "hotel"}
{"output": [["lex", "plan overview travel photography how to"], ["lex", "plan overview travel photography advice"], ["lex", "plan overview travel photography tutorial"], ["vec", "tips for plan travel photography success"], ["vec", "how to plan travel photography effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to plan travel photography offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "plan travel photography"}
{"output": [["lex", "how overview to Asian cooking guide"], ["lex", "how overview to Asian cooking tips"], ["lex", "how overview to Asian cooking tutorial"], ["vec", "tips for how to Asian cooking success"], ["vec", "how to how to Asian cooking effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to Asian cooking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "how to Asian cooking"}
{"output": [["lex", "how overview to write business plan tutorial"], ["lex", "how overview to write business plan guide"], ["lex", "how overview to write business plan how to"], ["vec", "tips for how to write business plan success"], ["vec", "how to how to write business plan effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to write business plan offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "how to write business plan"}
{"output": [["lex", "how overview to start investing guide"], ["lex", "how overview to start investing advice"], ["lex", "how overview to start investing tips"], ["vec", "best way to how to start investing"], ["vec", "complete guide to how to start investing"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to start investing offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "how to start investing"}
{"output": [["lex", "routine tips overview"], ["lex", "routine advice overview"], ["lex", "routine guide overview"], ["vec", "tips for routine success"], ["vec", "complete guide to routine"], ["hyde", "Whether you're a beginner or looking to improve, this guide to routine offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": true, "query": "routine"}
{"output": [["lex", "how overview to reduce stress guide"], ["lex", "how overview to reduce stress advice"], ["lex", "how overview to reduce stress tutorial"], ["vec", "how to how to reduce stress effectively"], ["vec", "learn how to reduce stress step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to reduce stress offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "how to reduce stress"}
{"output": [["lex", "debt tutorial overview"], ["lex", "debt guide overview"], ["lex", "debt how to overview"], ["vec", "complete guide to debt"], ["vec", "best way to debt"], ["hyde", "Learning debt requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": true, "query": "debt"}
{"output": [["lex", "muscle overview building guide tips"], ["lex", "muscle overview building guide advice"], ["lex", "muscle overview building guide guide"], ["vec", "tips for muscle building guide success"], ["vec", "complete guide to muscle building guide"], ["hyde", "This comprehensive guide to muscle building guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "muscle building guide"}
{"output": [["lex", "best overview BBQ techniques tutorial"], ["lex", "best overview BBQ techniques advice"], ["lex", "best overview BBQ techniques how to"], ["vec", "learn best BBQ techniques step by step"], ["vec", "tips for best BBQ techniques success"], ["hyde", "Learning best BBQ techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "best BBQ techniques"}
{"output": [["lex", "best overview passport renewal how to"], ["lex", "best overview passport renewal guide"], ["lex", "best overview passport renewal tips"], ["vec", "best way to best passport renewal"], ["vec", "learn best passport renewal step by step"], ["hyde", "This comprehensive guide to best passport renewal covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "best passport renewal"}
{"output": [["lex", "sonnet overview history guide"], ["lex", "sonnet overview history tips"], ["lex", "sonnet overview history tutorial"], ["vec", "complete guide to sonnet history"], ["vec", "learn sonnet history step by step"], ["hyde", "Learning sonnet history requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "sonnet history"}
{"output": [["lex", "improve overview etiquette rules tutorial"], ["lex", "improve overview etiquette rules tips"], ["lex", "improve overview etiquette rules how to"], ["vec", "how to improve etiquette rules effectively"], ["vec", "complete guide to improve etiquette rules"], ["hyde", "Learning improve etiquette rules requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "improve etiquette rules"}
{"output": [["lex", "career overview change strategy guide"], ["lex", "career overview change strategy how to"], ["lex", "career overview change strategy tips"], ["vec", "how to career change strategy effectively"], ["vec", "complete guide to career change strategy"], ["hyde", "This comprehensive guide to career change strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "career change strategy"}
{"output": [["lex", "plan overview scenic routes tips"], ["lex", "plan overview scenic routes tutorial"], ["lex", "plan overview scenic routes how to"], ["vec", "complete guide to plan scenic routes"], ["vec", "tips for plan scenic routes success"], ["hyde", "Learning plan scenic routes requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "plan scenic routes"}
{"output": [["lex", "start overview job interview guide"], ["lex", "start overview job interview tutorial"], ["lex", "start overview job interview advice"], ["vec", "best way to start job interview"], ["vec", "learn start job interview step by step"], ["hyde", "Learning start job interview requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "start job interview"}
{"output": [["lex", "small overview business basics how to"], ["lex", "small overview business basics guide"], ["lex", "small overview business basics advice"], ["vec", "how to small business basics effectively"], ["vec", "tips for small business basics success"], ["hyde", "Learning small business basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "small business basics"}
{"output": [["lex", "learn overview puzzle solving tips"], ["lex", "learn overview puzzle solving tutorial"], ["lex", "learn overview puzzle solving how to"], ["vec", "how to learn puzzle solving effectively"], ["vec", "complete guide to learn puzzle solving"], ["hyde", "Learning learn puzzle solving requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "learn puzzle solving"}
{"output": [["lex", "read how to overview"], ["lex", "read guide overview"], ["lex", "read advice overview"], ["vec", "how to read effectively"], ["vec", "complete guide to read"], ["hyde", "Learning read requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": true, "query": "read"}
{"output": [["lex", "stock overview market basics guide"], ["lex", "stock overview market basics tutorial"], ["lex", "stock overview market basics tips"], ["vec", "how to stock market basics effectively"], ["vec", "tips for stock market basics success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to stock market basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "stock market basics"}
{"output": [["lex", "learn overview design principles tutorial"], ["lex", "learn overview design principles guide"], ["lex", "learn overview design principles how to"], ["vec", "how to learn design principles effectively"], ["vec", "tips for learn design principles success"], ["hyde", "Learning learn design principles requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "learn design principles"}
{"output": [["lex", "improve overview swimming technique guide"], ["lex", "improve overview swimming technique tutorial"], ["lex", "improve overview swimming technique how to"], ["vec", "tips for improve swimming technique success"], ["vec", "learn improve swimming technique step by step"], ["hyde", "This comprehensive guide to improve swimming technique covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "improve swimming technique"}
{"output": [["lex", "understand overview Shakespeare tutorial"], ["lex", "understand overview Shakespeare how to"], ["lex", "understand overview Shakespeare advice"], ["vec", "best way to understand Shakespeare"], ["vec", "tips for understand Shakespeare success"], ["hyde", "This comprehensive guide to understand Shakespeare covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "understand Shakespeare"}
{"output": [["lex", "wardrobe overview basics advice guide"], ["lex", "wardrobe overview basics advice tutorial"], ["lex", "wardrobe overview basics advice tips"], ["vec", "how to wardrobe basics advice effectively"], ["vec", "best way to wardrobe basics advice"], ["hyde", "Learning wardrobe basics advice requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "wardrobe basics advice"}
{"output": [["lex", "learn overview clay sculpting tips"], ["lex", "learn overview clay sculpting advice"], ["lex", "learn overview clay sculpting guide"], ["vec", "how to learn clay sculpting effectively"], ["vec", "complete guide to learn clay sculpting"], ["hyde", "Learning learn clay sculpting requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "learn clay sculpting"}
{"output": [["lex", "spices how to overview"], ["lex", "spices advice overview"], ["lex", "spices tutorial overview"], ["vec", "how to spices effectively"], ["vec", "learn spices step by step"], ["hyde", "This comprehensive guide to spices covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": true, "query": "spices"}
{"output": [["lex", "empty overview nest advice how to"], ["lex", "empty overview nest advice tips"], ["lex", "empty overview nest advice advice"], ["vec", "learn empty nest advice step by step"], ["vec", "complete guide to empty nest advice"], ["hyde", "Learning empty nest advice requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "empty nest advice"}
{"output": [["lex", "dividend overview stocks strategy tips"], ["lex", "dividend overview stocks strategy tutorial"], ["lex", "dividend overview stocks strategy guide"], ["vec", "learn dividend stocks strategy step by step"], ["vec", "best way to dividend stocks strategy"], ["hyde", "Whether you're a beginner or looking to improve, this guide to dividend stocks strategy offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "dividend stocks strategy"}
{"output": [["lex", "presentation overview skills guide advice"], ["lex", "presentation overview skills guide how to"], ["lex", "presentation overview skills guide tutorial"], ["vec", "learn presentation skills guide step by step"], ["vec", "how to presentation skills guide effectively"], ["hyde", "Learning presentation skills guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "presentation skills guide"}
{"output": [["lex", "plan overview seven wonders guide"], ["lex", "plan overview seven wonders tips"], ["lex", "plan overview seven wonders advice"], ["vec", "best way to plan seven wonders"], ["vec", "tips for plan seven wonders success"], ["hyde", "This comprehensive guide to plan seven wonders covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "plan seven wonders"}
{"output": [["lex", "start overview freelance income advice"], ["lex", "start overview freelance income tips"], ["lex", "start overview freelance income guide"], ["vec", "how to start freelance income effectively"], ["vec", "tips for start freelance income success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start freelance income offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start freelance income"}
{"output": [["lex", "best overview batch cooking advice"], ["lex", "best overview batch cooking how to"], ["lex", "best overview batch cooking tutorial"], ["vec", "how to best batch cooking effectively"], ["vec", "best way to best batch cooking"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best batch cooking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "best batch cooking"}
{"output": [["lex", "best overview outdoor gear guide"], ["lex", "best overview outdoor gear tips"], ["lex", "best overview outdoor gear advice"], ["vec", "complete guide to best outdoor gear"], ["vec", "learn best outdoor gear step by step"], ["hyde", "This comprehensive guide to best outdoor gear covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "best outdoor gear"}
{"output": [["lex", "best overview family dynamics guide"], ["lex", "best overview family dynamics how to"], ["lex", "best overview family dynamics tips"], ["vec", "complete guide to best family dynamics"], ["vec", "tips for best family dynamics success"], ["hyde", "Learning best family dynamics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "best family dynamics"}
{"output": [["lex", "how overview to travel phrases guide"], ["lex", "how overview to travel phrases tips"], ["lex", "how overview to travel phrases how to"], ["vec", "how to how to travel phrases effectively"], ["vec", "best way to how to travel phrases"], ["hyde", "This comprehensive guide to how to travel phrases covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "how to travel phrases"}
{"output": [["lex", "debt overview payoff strategy tips"], ["lex", "debt overview payoff strategy guide"], ["lex", "debt overview payoff strategy tutorial"], ["vec", "how to debt payoff strategy effectively"], ["vec", "tips for debt payoff strategy success"], ["hyde", "This comprehensive guide to debt payoff strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "debt payoff strategy"}
{"output": [["lex", "best overview plumbing 101 guide"], ["lex", "best overview plumbing 101 advice"], ["lex", "best overview plumbing 101 tutorial"], ["vec", "tips for best plumbing 101 success"], ["vec", "best way to best plumbing 101"], ["hyde", "Learning best plumbing 101 requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "best plumbing 101"}
{"output": [["lex", "vitamin overview supplements for beginners advice"], ["lex", "vitamin overview supplements for beginners guide"], ["lex", "vitamin overview supplements for beginners how to"], ["vec", "tips for vitamin supplements for beginners success"], ["vec", "learn vitamin supplements for beginners step by step"], ["hyde", "Learning vitamin supplements for beginners requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "vitamin supplements for beginners"}
{"output": [["lex", "art guide overview"], ["lex", "art advice overview"], ["lex", "art tips overview"], ["vec", "best way to art"], ["vec", "how to art effectively"], ["hyde", "This comprehensive guide to art covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": true, "query": "art"}
{"output": [["lex", "theater how to overview"], ["lex", "theater guide overview"], ["lex", "theater tutorial overview"], ["vec", "learn theater step by step"], ["vec", "best way to theater"], ["hyde", "This comprehensive guide to theater covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": true, "query": "theater"}
{"output": [["lex", "filing overview taxes basics guide"], ["lex", "filing overview taxes basics how to"], ["lex", "filing overview taxes basics advice"], ["vec", "learn filing taxes basics step by step"], ["vec", "how to filing taxes basics effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to filing taxes basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "filing taxes basics"}
{"output": [["lex", "deep overview cleaning tutorial tutorial"], ["lex", "deep overview cleaning tutorial how to"], ["lex", "deep overview cleaning tutorial tips"], ["vec", "how to deep cleaning tutorial effectively"], ["vec", "best way to deep cleaning tutorial"], ["hyde", "This comprehensive guide to deep cleaning tutorial covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "deep cleaning tutorial"}
{"output": [["lex", "start overview 401k guide"], ["lex", "start overview 401k advice"], ["lex", "start overview 401k tips"], ["vec", "complete guide to start 401k"], ["vec", "tips for start 401k success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start 401k offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start 401k"}
{"output": [["lex", "best overview stress management how to"], ["lex", "best overview stress management tutorial"], ["lex", "best overview stress management advice"], ["vec", "best way to best stress management"], ["vec", "learn best stress management step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best stress management offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "best stress management"}
{"output": [["lex", "frugal overview living basics advice"], ["lex", "frugal overview living basics tutorial"], ["lex", "frugal overview living basics tips"], ["vec", "how to frugal living basics effectively"], ["vec", "learn frugal living basics step by step"], ["hyde", "Learning frugal living basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "frugal living basics"}
{"output": [["lex", "DIY overview studio setup tutorial"], ["lex", "DIY overview studio setup advice"], ["lex", "DIY overview studio setup tips"], ["vec", "complete guide to DIY studio setup"], ["vec", "how to DIY studio setup effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to DIY studio setup offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "DIY studio setup"}
{"output": [["lex", "home overview brewing recipe advice"], ["lex", "home overview brewing recipe tutorial"], ["lex", "home overview brewing recipe tips"], ["vec", "tips for home brewing recipe success"], ["vec", "best way to home brewing recipe"], ["hyde", "Learning home brewing recipe requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "home brewing recipe"}
{"output": [["lex", "minimalist overview living tutorial tips"], ["lex", "minimalist overview living tutorial tutorial"], ["lex", "minimalist overview living tutorial guide"], ["vec", "learn minimalist living tutorial step by step"], ["vec", "tips for minimalist living tutorial success"], ["hyde", "This comprehensive guide to minimalist living tutorial covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "minimalist living tutorial"}
{"output": [["lex", "study overview literature classics tutorial"], ["lex", "study overview literature classics how to"], ["lex", "study overview literature classics guide"], ["vec", "how to study literature classics effectively"], ["vec", "best way to study literature classics"], ["hyde", "Learning study literature classics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "study literature classics"}
{"output": [["lex", "how overview to online privacy tips"], ["lex", "how overview to online privacy how to"], ["lex", "how overview to online privacy guide"], ["vec", "best way to how to online privacy"], ["vec", "how to how to online privacy effectively"], ["hyde", "This comprehensive guide to how to online privacy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "how to online privacy"}
{"output": [["lex", "how overview to composting tutorial"], ["lex", "how overview to composting tips"], ["lex", "how overview to composting how to"], ["vec", "learn how to composting step by step"], ["vec", "complete guide to how to composting"], ["hyde", "This comprehensive guide to how to composting covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "how to composting"}
{"output": [["lex", "best overview clean efficiently advice"], ["lex", "best overview clean efficiently tutorial"], ["lex", "best overview clean efficiently guide"], ["vec", "how to best clean efficiently effectively"], ["vec", "complete guide to best clean efficiently"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best clean efficiently offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "best clean efficiently"}
{"output": [["lex", "how overview to build muscle tips"], ["lex", "how overview to build muscle advice"], ["lex", "how overview to build muscle guide"], ["vec", "learn how to build muscle step by step"], ["vec", "how to how to build muscle effectively"], ["hyde", "This comprehensive guide to how to build muscle covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "how to build muscle"}
{"output": [["lex", "best overview cross stitch tips"], ["lex", "best overview cross stitch how to"], ["lex", "best overview cross stitch tutorial"], ["vec", "how to best cross stitch effectively"], ["vec", "learn best cross stitch step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best cross stitch offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "best cross stitch"}
{"output": [["lex", "how overview to stretch properly tips"], ["lex", "how overview to stretch properly how to"], ["lex", "how overview to stretch properly tutorial"], ["vec", "how to how to stretch properly effectively"], ["vec", "complete guide to how to stretch properly"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to stretch properly offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "how to stretch properly"}
{"output": [["lex", "best overview anxiety relief tutorial"], ["lex", "best overview anxiety relief tips"], ["lex", "best overview anxiety relief advice"], ["vec", "learn best anxiety relief step by step"], ["vec", "best way to best anxiety relief"], ["hyde", "This comprehensive guide to best anxiety relief covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "best anxiety relief"}
{"output": [["lex", "plan overview travel safety tutorial"], ["lex", "plan overview travel safety tips"], ["lex", "plan overview travel safety advice"], ["vec", "how to plan travel safety effectively"], ["vec", "tips for plan travel safety success"], ["hyde", "Learning plan travel safety requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "plan travel safety"}
{"output": [["lex", "choose overview paint color tutorial tips"], ["lex", "choose overview paint color tutorial how to"], ["lex", "choose overview paint color tutorial advice"], ["vec", "tips for choose paint color tutorial success"], ["vec", "complete guide to choose paint color tutorial"], ["hyde", "Whether you're a beginner or looking to improve, this guide to choose paint color tutorial offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "choose paint color tutorial"}
{"output": [["lex", "financial overview independence tips guide"], ["lex", "financial overview independence tips tips"], ["lex", "financial overview independence tips how to"], ["vec", "tips for financial independence tips success"], ["vec", "complete guide to financial independence tips"], ["hyde", "Learning financial independence tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "financial independence tips"}
{"output": [["lex", "DIY overview unclog drain how to"], ["lex", "DIY overview unclog drain tips"], ["lex", "DIY overview unclog drain advice"], ["vec", "best way to DIY unclog drain"], ["vec", "tips for DIY unclog drain success"], ["hyde", "This comprehensive guide to DIY unclog drain covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "DIY unclog drain"}
{"output": [["lex", "learn overview Mexican food guide"], ["lex", "learn overview Mexican food tutorial"], ["lex", "learn overview Mexican food how to"], ["vec", "best way to learn Mexican food"], ["vec", "how to learn Mexican food effectively"], ["hyde", "Learning learn Mexican food requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "learn Mexican food"}
{"output": [["lex", "lunch overview prep techniques how to"], ["lex", "lunch overview prep techniques guide"], ["lex", "lunch overview prep techniques tips"], ["vec", "complete guide to lunch prep techniques"], ["vec", "learn lunch prep techniques step by step"], ["hyde", "This comprehensive guide to lunch prep techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "lunch prep techniques"}
{"output": [["lex", "time overview zones tips guide"], ["lex", "time overview zones tips tutorial"], ["lex", "time overview zones tips how to"], ["vec", "best way to time zones tips"], ["vec", "how to time zones tips effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to time zones tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "time zones tips"}
{"output": [["lex", "fly overview tying basics tutorial"], ["lex", "fly overview tying basics tips"], ["lex", "fly overview tying basics guide"], ["vec", "best way to fly tying basics"], ["vec", "tips for fly tying basics success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to fly tying basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "fly tying basics"}
{"output": [["lex", "best overview mental health guide"], ["lex", "best overview mental health tips"], ["lex", "best overview mental health how to"], ["vec", "tips for best mental health success"], ["vec", "learn best mental health step by step"], ["hyde", "This comprehensive guide to best mental health covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "best mental health"}
{"output": [["lex", "currency overview exchange tips how to"], ["lex", "currency overview exchange tips guide"], ["lex", "currency overview exchange tips tutorial"], ["vec", "best way to currency exchange tips"], ["vec", "complete guide to currency exchange tips"], ["hyde", "This comprehensive guide to currency exchange tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "currency exchange tips"}
{"output": [["lex", "study overview certification prep tutorial"], ["lex", "study overview certification prep tips"], ["lex", "study overview certification prep how to"], ["vec", "tips for study certification prep success"], ["vec", "learn study certification prep step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to study certification prep offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "study certification prep"}
{"output": [["lex", "piano overview lessons basics tutorial"], ["lex", "piano overview lessons basics how to"], ["lex", "piano overview lessons basics guide"], ["vec", "best way to piano lessons basics"], ["vec", "learn piano lessons basics step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to piano lessons basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "piano lessons basics"}
{"output": [["lex", "common overview cold remedies guide tips"], ["lex", "common overview cold remedies guide tutorial"], ["lex", "common overview cold remedies guide advice"], ["vec", "learn common cold remedies guide step by step"], ["vec", "best way to common cold remedies guide"], ["hyde", "This comprehensive guide to common cold remedies guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "common cold remedies guide"}
{"output": [["lex", "start overview tax deductions advice"], ["lex", "start overview tax deductions tutorial"], ["lex", "start overview tax deductions guide"], ["vec", "tips for start tax deductions success"], ["vec", "complete guide to start tax deductions"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start tax deductions offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start tax deductions"}
{"output": [["lex", "knit tips overview"], ["lex", "knit guide overview"], ["lex", "knit tutorial overview"], ["vec", "learn knit step by step"], ["vec", "complete guide to knit"], ["hyde", "Whether you're a beginner or looking to improve, this guide to knit offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": true, "query": "knit"}
{"output": [["lex", "songwriting overview for beginners advice"], ["lex", "songwriting overview for beginners how to"], ["lex", "songwriting overview for beginners tips"], ["vec", "learn songwriting for beginners step by step"], ["vec", "complete guide to songwriting for beginners"], ["hyde", "Whether you're a beginner or looking to improve, this guide to songwriting for beginners offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "songwriting for beginners"}
{"output": [["lex", "dental overview care for beginners advice"], ["lex", "dental overview care for beginners tutorial"], ["lex", "dental overview care for beginners how to"], ["vec", "tips for dental care for beginners success"], ["vec", "complete guide to dental care for beginners"], ["hyde", "Learning dental care for beginners requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "dental care for beginners"}
{"output": [["lex", "wifi tips overview"], ["lex", "wifi how to overview"], ["lex", "wifi guide overview"], ["vec", "best way to wifi"], ["vec", "tips for wifi success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to wifi offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": true, "query": "wifi"}
{"output": [["lex", "best overview garden planning how to"], ["lex", "best overview garden planning tips"], ["lex", "best overview garden planning tutorial"], ["vec", "how to best garden planning effectively"], ["vec", "tips for best garden planning success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best garden planning offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "best garden planning"}
{"output": [["lex", "how overview to Mexican food tips"], ["lex", "how overview to Mexican food how to"], ["lex", "how overview to Mexican food tutorial"], ["vec", "learn how to Mexican food step by step"], ["vec", "best way to how to Mexican food"], ["hyde", "Learning how to Mexican food requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "how to Mexican food"}
{"output": [["lex", "study overview techniques guide guide"], ["lex", "study overview techniques guide tutorial"], ["lex", "study overview techniques guide tips"], ["vec", "learn study techniques guide step by step"], ["vec", "how to study techniques guide effectively"], ["hyde", "This comprehensive guide to study techniques guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "study techniques guide"}
{"output": [["lex", "chess overview strategy for beginners how to"], ["lex", "chess overview strategy for beginners advice"], ["lex", "chess overview strategy for beginners tips"], ["vec", "tips for chess strategy for beginners success"], ["vec", "best way to chess strategy for beginners"], ["hyde", "Whether you're a beginner or looking to improve, this guide to chess strategy for beginners offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "chess strategy for beginners"}
{"output": [["lex", "how overview to social media advice"], ["lex", "how overview to social media how to"], ["lex", "how overview to social media tips"], ["vec", "complete guide to how to social media"], ["vec", "tips for how to social media success"], ["hyde", "Learning how to social media requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "how to social media"}
{"output": [["lex", "travel overview phrases tips advice"], ["lex", "travel overview phrases tips tutorial"], ["lex", "travel overview phrases tips how to"], ["vec", "best way to travel phrases tips"], ["vec", "tips for travel phrases tips success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to travel phrases tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "travel phrases tips"}
{"output": [["lex", "best overview local experiences advice"], ["lex", "best overview local experiences tutorial"], ["lex", "best overview local experiences how to"], ["vec", "best way to best local experiences"], ["vec", "how to best local experiences effectively"], ["hyde", "This comprehensive guide to best local experiences covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "best local experiences"}
{"output": [["lex", "relationship overview communication tips how to"], ["lex", "relationship overview communication tips tips"], ["lex", "relationship overview communication tips guide"], ["vec", "complete guide to relationship communication tips"], ["vec", "how to relationship communication tips effectively"], ["hyde", "This comprehensive guide to relationship communication tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "lifestyle_relationships", "is_short": false, "query": "relationship communication tips"}
{"output": [["lex", "how overview to eat healthier guide"], ["lex", "how overview to eat healthier advice"], ["lex", "how overview to eat healthier tutorial"], ["vec", "tips for how to eat healthier success"], ["vec", "complete guide to how to eat healthier"], ["hyde", "This comprehensive guide to how to eat healthier covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "how to eat healthier"}
{"output": [["lex", "introvert overview tips tips how to"], ["lex", "introvert overview tips tips advice"], ["lex", "introvert overview tips tips tutorial"], ["vec", "how to introvert tips tips effectively"], ["vec", "learn introvert tips tips step by step"], ["hyde", "Learning introvert tips tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "introvert tips tips"}
{"output": [["lex", "modern overview history techniques how to"], ["lex", "modern overview history techniques guide"], ["lex", "modern overview history techniques tips"], ["vec", "best way to modern history techniques"], ["vec", "complete guide to modern history techniques"], ["hyde", "Learning modern history techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "modern history techniques"}
{"output": [["lex", "learn overview history timeline tutorial"], ["lex", "learn overview history timeline how to"], ["lex", "learn overview history timeline tips"], ["vec", "tips for learn history timeline success"], ["vec", "learn learn history timeline step by step"], ["hyde", "This comprehensive guide to learn history timeline covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "learn history timeline"}
{"output": [["lex", "invest guide overview"], ["lex", "invest how to overview"], ["lex", "invest tutorial overview"], ["vec", "best way to invest"], ["vec", "learn invest step by step"], ["hyde", "Learning invest requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": true, "query": "invest"}
{"output": [["lex", "improve overview note taking advice"], ["lex", "improve overview note taking guide"], ["lex", "improve overview note taking tutorial"], ["vec", "tips for improve note taking success"], ["vec", "learn improve note taking step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to improve note taking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "improve note taking"}
{"output": [["lex", "salary overview raise basics tutorial"], ["lex", "salary overview raise basics advice"], ["lex", "salary overview raise basics tips"], ["vec", "how to salary raise basics effectively"], ["vec", "tips for salary raise basics success"], ["hyde", "This comprehensive guide to salary raise basics covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "salary raise basics"}
{"output": [["lex", "learn overview smoking meat guide"], ["lex", "learn overview smoking meat how to"], ["lex", "learn overview smoking meat tutorial"], ["vec", "learn learn smoking meat step by step"], ["vec", "how to learn smoking meat effectively"], ["hyde", "Learning learn smoking meat requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "learn smoking meat"}
{"output": [["lex", "smoking overview meat techniques tips"], ["lex", "smoking overview meat techniques how to"], ["lex", "smoking overview meat techniques guide"], ["vec", "best way to smoking meat techniques"], ["vec", "learn smoking meat techniques step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to smoking meat techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "smoking meat techniques"}
{"output": [["lex", "learn overview cross stitch how to"], ["lex", "learn overview cross stitch tips"], ["lex", "learn overview cross stitch guide"], ["vec", "best way to learn cross stitch"], ["vec", "tips for learn cross stitch success"], ["hyde", "Learning learn cross stitch requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "learn cross stitch"}
{"output": [["lex", "study overview presentation skills tips"], ["lex", "study overview presentation skills tutorial"], ["lex", "study overview presentation skills guide"], ["vec", "how to study presentation skills effectively"], ["vec", "learn study presentation skills step by step"], ["hyde", "This comprehensive guide to study presentation skills covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "study presentation skills"}
{"output": [["lex", "information overview diet tips guide"], ["lex", "information overview diet tips advice"], ["lex", "information overview diet tips how to"], ["vec", "tips for information diet tips success"], ["vec", "how to information diet tips effectively"], ["hyde", "Learning information diet tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "information diet tips"}
{"output": [["lex", "start overview marketing strategy tutorial"], ["lex", "start overview marketing strategy tips"], ["lex", "start overview marketing strategy advice"], ["vec", "learn start marketing strategy step by step"], ["vec", "tips for start marketing strategy success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start marketing strategy offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start marketing strategy"}
{"output": [["lex", "vitamins how to overview"], ["lex", "vitamins advice overview"], ["lex", "vitamins tips overview"], ["vec", "how to vitamins effectively"], ["vec", "complete guide to vitamins"], ["hyde", "This comprehensive guide to vitamins covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": true, "query": "vitamins"}
{"output": [["lex", "cultural overview etiquette tips tips"], ["lex", "cultural overview etiquette tips guide"], ["lex", "cultural overview etiquette tips tutorial"], ["vec", "learn cultural etiquette tips step by step"], ["vec", "tips for cultural etiquette tips success"], ["hyde", "Learning cultural etiquette tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "cultural etiquette tips"}
{"output": [["lex", "CPR overview technique for beginners tutorial"], ["lex", "CPR overview technique for beginners tips"], ["lex", "CPR overview technique for beginners how to"], ["vec", "how to CPR technique for beginners effectively"], ["vec", "tips for CPR technique for beginners success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to CPR technique for beginners offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "CPR technique for beginners"}
{"output": [["lex", "organize tutorial overview"], ["lex", "organize advice overview"], ["lex", "organize how to overview"], ["vec", "learn organize step by step"], ["vec", "best way to organize"], ["hyde", "Whether you're a beginner or looking to improve, this guide to organize offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": true, "query": "organize"}
{"output": [["lex", "guitar tutorial overview"], ["lex", "guitar advice overview"], ["lex", "guitar guide overview"], ["vec", "how to guitar effectively"], ["vec", "complete guide to guitar"], ["hyde", "Whether you're a beginner or looking to improve, this guide to guitar offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": true, "query": "guitar"}
{"output": [["lex", "posture overview correction for beginners advice"], ["lex", "posture overview correction for beginners tutorial"], ["lex", "posture overview correction for beginners tips"], ["vec", "best way to posture correction for beginners"], ["vec", "tips for posture correction for beginners success"], ["hyde", "This comprehensive guide to posture correction for beginners covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "posture correction for beginners"}
{"output": [["lex", "best overview keto meals tutorial"], ["lex", "best overview keto meals how to"], ["lex", "best overview keto meals guide"], ["vec", "complete guide to best keto meals"], ["vec", "how to best keto meals effectively"], ["hyde", "Learning best keto meals requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "best keto meals"}
{"output": [["lex", "how overview to storage solutions advice"], ["lex", "how overview to storage solutions tips"], ["lex", "how overview to storage solutions tutorial"], ["vec", "tips for how to storage solutions success"], ["vec", "learn how to storage solutions step by step"], ["hyde", "Learning how to storage solutions requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "how to storage solutions"}
{"output": [["lex", "birthday overview celebration tips guide"], ["lex", "birthday overview celebration tips how to"], ["lex", "birthday overview celebration tips tips"], ["vec", "complete guide to birthday celebration tips"], ["vec", "how to birthday celebration tips effectively"], ["hyde", "Learning birthday celebration tips requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": false, "query": "birthday celebration tips"}
{"output": [["lex", "time overview management guide how to"], ["lex", "time overview management guide guide"], ["lex", "time overview management guide tips"], ["vec", "best way to time management guide"], ["vec", "how to time management guide effectively"], ["hyde", "Learning time management guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "time management guide"}
{"output": [["lex", "home overview decor basics guide"], ["lex", "home overview decor basics how to"], ["lex", "home overview decor basics tips"], ["vec", "tips for home decor basics success"], ["vec", "how to home decor basics effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to home decor basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "home decor basics"}
{"output": [["lex", "learn overview knitting how to"], ["lex", "learn overview knitting guide"], ["lex", "learn overview knitting tips"], ["vec", "tips for learn knitting success"], ["vec", "how to learn knitting effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn knitting offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "learn knitting"}
{"output": [["lex", "sourdough overview starter techniques tutorial"], ["lex", "sourdough overview starter techniques tips"], ["lex", "sourdough overview starter techniques guide"], ["vec", "best way to sourdough starter techniques"], ["vec", "tips for sourdough starter techniques success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to sourdough starter techniques offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "sourdough starter techniques"}
{"output": [["lex", "best overview home brewing tips"], ["lex", "best overview home brewing tutorial"], ["lex", "best overview home brewing how to"], ["vec", "complete guide to best home brewing"], ["vec", "how to best home brewing effectively"], ["hyde", "This comprehensive guide to best home brewing covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "best home brewing"}
{"output": [["lex", "garden overview planning tutorial how to"], ["lex", "garden overview planning tutorial tutorial"], ["lex", "garden overview planning tutorial tips"], ["vec", "complete guide to garden planning tutorial"], ["vec", "learn garden planning tutorial step by step"], ["hyde", "Learning garden planning tutorial requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "garden planning tutorial"}
{"output": [["lex", "minimalism overview strategy guide"], ["lex", "minimalism overview strategy tips"], ["lex", "minimalism overview strategy how to"], ["vec", "tips for minimalism strategy success"], ["vec", "learn minimalism strategy step by step"], ["hyde", "This comprehensive guide to minimalism strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "minimalism strategy"}
{"output": [["lex", "packing overview light tips how to"], ["lex", "packing overview light tips tutorial"], ["lex", "packing overview light tips guide"], ["vec", "best way to packing light tips"], ["vec", "complete guide to packing light tips"], ["hyde", "This comprehensive guide to packing light tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "packing light tips"}
{"output": [["lex", "minimalism overview basics how to"], ["lex", "minimalism overview basics tips"], ["lex", "minimalism overview basics advice"], ["vec", "tips for minimalism basics success"], ["vec", "how to minimalism basics effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to minimalism basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "minimalism basics"}
{"output": [["lex", "DIY overview electrical basics advice"], ["lex", "DIY overview electrical basics guide"], ["lex", "DIY overview electrical basics tutorial"], ["vec", "tips for DIY electrical basics success"], ["vec", "complete guide to DIY electrical basics"], ["hyde", "Whether you're a beginner or looking to improve, this guide to DIY electrical basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "home_garden", "is_short": false, "query": "DIY electrical basics"}
{"output": [["lex", "start overview credit cards tips"], ["lex", "start overview credit cards how to"], ["lex", "start overview credit cards guide"], ["vec", "best way to start credit cards"], ["vec", "tips for start credit cards success"], ["hyde", "This comprehensive guide to start credit cards covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "start credit cards"}
{"output": [["lex", "how overview to grilling tutorial"], ["lex", "how overview to grilling how to"], ["lex", "how overview to grilling advice"], ["vec", "learn how to grilling step by step"], ["vec", "how to how to grilling effectively"], ["hyde", "This comprehensive guide to how to grilling covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "how to grilling"}
{"output": [["lex", "learn overview grilling advice"], ["lex", "learn overview grilling how to"], ["lex", "learn overview grilling tutorial"], ["vec", "complete guide to learn grilling"], ["vec", "best way to learn grilling"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn grilling offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "learn grilling"}
{"output": [["lex", "cook tutorial overview"], ["lex", "cook guide overview"], ["lex", "cook how to overview"], ["vec", "tips for cook success"], ["vec", "learn cook step by step"], ["hyde", "Learning cook requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": true, "query": "cook"}
{"output": [["lex", "choose overview paint color ideas advice"], ["lex", "choose overview paint color ideas how to"], ["lex", "choose overview paint color ideas tutorial"], ["vec", "how to choose paint color ideas effectively"], ["vec", "complete guide to choose paint color ideas"], ["hyde", "This comprehensive guide to choose paint color ideas covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "choose paint color ideas"}
{"output": [["lex", "mindfulness overview practice guide tutorial"], ["lex", "mindfulness overview practice guide tips"], ["lex", "mindfulness overview practice guide how to"], ["vec", "tips for mindfulness practice guide success"], ["vec", "complete guide to mindfulness practice guide"], ["hyde", "Whether you're a beginner or looking to improve, this guide to mindfulness practice guide offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "mindfulness practice guide"}
{"output": [["lex", "intentional overview living tips how to"], ["lex", "intentional overview living tips guide"], ["lex", "intentional overview living tips tips"], ["vec", "how to intentional living tips effectively"], ["vec", "best way to intentional living tips"], ["hyde", "Whether you're a beginner or looking to improve, this guide to intentional living tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": false, "query": "intentional living tips"}
{"output": [["lex", "tax overview deductions strategy how to"], ["lex", "tax overview deductions strategy guide"], ["lex", "tax overview deductions strategy advice"], ["vec", "how to tax deductions strategy effectively"], ["vec", "best way to tax deductions strategy"], ["hyde", "Whether you're a beginner or looking to improve, this guide to tax deductions strategy offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "tax deductions strategy"}
{"output": [["lex", "massage overview techniques guide guide"], ["lex", "massage overview techniques guide tutorial"], ["lex", "massage overview techniques guide how to"], ["vec", "learn massage techniques guide step by step"], ["vec", "how to massage techniques guide effectively"], ["hyde", "Learning massage techniques guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "massage techniques guide"}
{"output": [["lex", "plan overview capital cities how to"], ["lex", "plan overview capital cities tutorial"], ["lex", "plan overview capital cities tips"], ["vec", "tips for plan capital cities success"], ["vec", "complete guide to plan capital cities"], ["hyde", "This comprehensive guide to plan capital cities covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "plan capital cities"}
{"output": [["lex", "probability overview guide guide"], ["lex", "probability overview guide tutorial"], ["lex", "probability overview guide advice"], ["vec", "best way to probability guide"], ["vec", "learn probability guide step by step"], ["hyde", "Learning probability guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "probability guide"}
{"output": [["lex", "best overview breathing exercises tutorial"], ["lex", "best overview breathing exercises guide"], ["lex", "best overview breathing exercises how to"], ["vec", "how to best breathing exercises effectively"], ["vec", "learn best breathing exercises step by step"], ["hyde", "This comprehensive guide to best breathing exercises covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "best breathing exercises"}
{"output": [["lex", "fix overview video calls advice"], ["lex", "fix overview video calls tutorial"], ["lex", "fix overview video calls how to"], ["vec", "complete guide to fix video calls"], ["vec", "how to fix video calls effectively"], ["hyde", "Learning fix video calls requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "fix video calls"}
{"output": [["lex", "fix overview online privacy advice"], ["lex", "fix overview online privacy how to"], ["lex", "fix overview online privacy tips"], ["vec", "how to fix online privacy effectively"], ["vec", "complete guide to fix online privacy"], ["hyde", "Learning fix online privacy requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "fix online privacy"}
{"output": [["lex", "how overview to astronomy guide"], ["lex", "how overview to astronomy advice"], ["lex", "how overview to astronomy tips"], ["vec", "tips for how to astronomy success"], ["vec", "complete guide to how to astronomy"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to astronomy offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "how to astronomy"}
{"output": [["lex", "how overview to tent setup tutorial"], ["lex", "how overview to tent setup advice"], ["lex", "how overview to tent setup how to"], ["vec", "tips for how to tent setup success"], ["vec", "how to how to tent setup effectively"], ["hyde", "Learning how to tent setup requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "how to tent setup"}
{"output": [["lex", "best overview orienteering how to"], ["lex", "best overview orienteering advice"], ["lex", "best overview orienteering tips"], ["vec", "complete guide to best orienteering"], ["vec", "best way to best orienteering"], ["hyde", "This comprehensive guide to best orienteering covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "best orienteering"}
{"output": [["lex", "international overview cuisine techniques tips"], ["lex", "international overview cuisine techniques advice"], ["lex", "international overview cuisine techniques how to"], ["vec", "best way to international cuisine techniques"], ["vec", "learn international cuisine techniques step by step"], ["hyde", "Learning international cuisine techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "international cuisine techniques"}
{"output": [["lex", "public overview speaking techniques guide"], ["lex", "public overview speaking techniques tutorial"], ["lex", "public overview speaking techniques how to"], ["vec", "tips for public speaking techniques success"], ["vec", "learn public speaking techniques step by step"], ["hyde", "This comprehensive guide to public speaking techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "public speaking techniques"}
{"output": [["lex", "taxes guide overview"], ["lex", "taxes advice overview"], ["lex", "taxes tutorial overview"], ["vec", "learn taxes step by step"], ["vec", "how to taxes effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to taxes offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": true, "query": "taxes"}
{"output": [["lex", "impressionism overview guide tips"], ["lex", "impressionism overview guide tutorial"], ["lex", "impressionism overview guide advice"], ["vec", "complete guide to impressionism guide"], ["vec", "learn impressionism guide step by step"], ["hyde", "This comprehensive guide to impressionism guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "impressionism guide"}
{"output": [["lex", "stain overview removal tutorial advice"], ["lex", "stain overview removal tutorial tips"], ["lex", "stain overview removal tutorial how to"], ["vec", "tips for stain removal tutorial success"], ["vec", "how to stain removal tutorial effectively"], ["hyde", "This comprehensive guide to stain removal tutorial covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "home_garden", "is_short": false, "query": "stain removal tutorial"}
{"output": [["lex", "learn overview logical reasoning how to"], ["lex", "learn overview logical reasoning tips"], ["lex", "learn overview logical reasoning guide"], ["vec", "learn learn logical reasoning step by step"], ["vec", "how to learn logical reasoning effectively"], ["hyde", "Learning learn logical reasoning requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "learn logical reasoning"}
{"output": [["lex", "improve overview visual learner tutorial"], ["lex", "improve overview visual learner advice"], ["lex", "improve overview visual learner tips"], ["vec", "learn improve visual learner step by step"], ["vec", "complete guide to improve visual learner"], ["hyde", "Whether you're a beginner or looking to improve, this guide to improve visual learner offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "improve visual learner"}
{"output": [["lex", "retirement how to overview"], ["lex", "retirement guide overview"], ["lex", "retirement tutorial overview"], ["vec", "learn retirement step by step"], ["vec", "how to retirement effectively"], ["hyde", "This comprehensive guide to retirement covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": true, "query": "retirement"}
{"output": [["lex", "how overview to piano lessons how to"], ["lex", "how overview to piano lessons tips"], ["lex", "how overview to piano lessons guide"], ["vec", "complete guide to how to piano lessons"], ["vec", "tips for how to piano lessons success"], ["hyde", "Learning how to piano lessons requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "how to piano lessons"}
{"output": [["lex", "minimal advice overview"], ["lex", "minimal tutorial overview"], ["lex", "minimal tips overview"], ["vec", "learn minimal step by step"], ["vec", "how to minimal effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to minimal offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "lifestyle_relationships", "is_short": true, "query": "minimal"}
{"output": [["lex", "best overview language basics guide"], ["lex", "best overview language basics tips"], ["lex", "best overview language basics tutorial"], ["vec", "learn best language basics step by step"], ["vec", "best way to best language basics"], ["hyde", "Whether you're a beginner or looking to improve, this guide to best language basics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": false, "query": "best language basics"}
{"output": [["lex", "password advice overview"], ["lex", "password tutorial overview"], ["lex", "password how to overview"], ["vec", "how to password effectively"], ["vec", "learn password step by step"], ["hyde", "Learning password requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "lifestyle_relationships", "is_short": true, "query": "password"}
{"output": [["lex", "dietary overview restrictions recipe advice"], ["lex", "dietary overview restrictions recipe guide"], ["lex", "dietary overview restrictions recipe tips"], ["vec", "how to dietary restrictions recipe effectively"], ["vec", "tips for dietary restrictions recipe success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to dietary restrictions recipe offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "dietary restrictions recipe"}
{"output": [["lex", "best overview mindfulness practice guide"], ["lex", "best overview mindfulness practice tutorial"], ["lex", "best overview mindfulness practice tips"], ["vec", "complete guide to best mindfulness practice"], ["vec", "best way to best mindfulness practice"], ["hyde", "Learning best mindfulness practice requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "best mindfulness practice"}
{"output": [["lex", "how overview to herb growing how to"], ["lex", "how overview to herb growing guide"], ["lex", "how overview to herb growing advice"], ["vec", "learn how to herb growing step by step"], ["vec", "how to how to herb growing effectively"], ["hyde", "Learning how to herb growing requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "how to herb growing"}
{"output": [["lex", "learn overview ceramics tips"], ["lex", "learn overview ceramics tutorial"], ["lex", "learn overview ceramics advice"], ["vec", "tips for learn ceramics success"], ["vec", "complete guide to learn ceramics"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn ceramics offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "learn ceramics"}
{"output": [["lex", "chronic overview pain guide how to"], ["lex", "chronic overview pain guide tutorial"], ["lex", "chronic overview pain guide tips"], ["vec", "tips for chronic pain guide success"], ["vec", "learn chronic pain guide step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to chronic pain guide offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "health_wellness", "is_short": false, "query": "chronic pain guide"}
{"output": [["lex", "art overview history history tips"], ["lex", "art overview history history tutorial"], ["lex", "art overview history history advice"], ["vec", "complete guide to art history history"], ["vec", "best way to art history history"], ["hyde", "Learning art history history requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "arts_culture", "is_short": false, "query": "art history history"}
{"output": [["lex", "start overview passive income tips"], ["lex", "start overview passive income tutorial"], ["lex", "start overview passive income advice"], ["vec", "learn start passive income step by step"], ["vec", "best way to start passive income"], ["hyde", "Learning start passive income requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "start passive income"}
{"output": [["lex", "tax overview deductions tips advice"], ["lex", "tax overview deductions tips tutorial"], ["lex", "tax overview deductions tips how to"], ["vec", "best way to tax deductions tips"], ["vec", "how to tax deductions tips effectively"], ["hyde", "This comprehensive guide to tax deductions tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "tax deductions tips"}
{"output": [["lex", "save advice overview"], ["lex", "save guide overview"], ["lex", "save tips overview"], ["vec", "how to save effectively"], ["vec", "tips for save success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to save offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": true, "query": "save"}
{"output": [["lex", "start overview emergency fund guide"], ["lex", "start overview emergency fund advice"], ["lex", "start overview emergency fund tutorial"], ["vec", "tips for start emergency fund success"], ["vec", "best way to start emergency fund"], ["hyde", "Learning start emergency fund requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "start emergency fund"}
{"output": [["lex", "deep overview work techniques how to"], ["lex", "deep overview work techniques tips"], ["lex", "deep overview work techniques tutorial"], ["vec", "learn deep work techniques step by step"], ["vec", "how to deep work techniques effectively"], ["hyde", "This comprehensive guide to deep work techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "deep work techniques"}
{"output": [["lex", "freelance overview income tips tutorial"], ["lex", "freelance overview income tips tips"], ["lex", "freelance overview income tips how to"], ["vec", "best way to freelance income tips"], ["vec", "tips for freelance income tips success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to freelance income tips offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "freelance income tips"}
{"output": [["lex", "best overview fermentation guide"], ["lex", "best overview fermentation tutorial"], ["lex", "best overview fermentation how to"], ["vec", "best way to best fermentation"], ["vec", "complete guide to best fermentation"], ["hyde", "This comprehensive guide to best fermentation covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "food_cooking", "is_short": false, "query": "best fermentation"}
{"output": [["lex", "exam overview strategy techniques how to"], ["lex", "exam overview strategy techniques tips"], ["lex", "exam overview strategy techniques tutorial"], ["vec", "learn exam strategy techniques step by step"], ["vec", "best way to exam strategy techniques"], ["hyde", "This comprehensive guide to exam strategy techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "education_learning", "is_short": false, "query": "exam strategy techniques"}
{"output": [["lex", "how overview to furniture arrangement tutorial"], ["lex", "how overview to furniture arrangement how to"], ["lex", "how overview to furniture arrangement tips"], ["vec", "tips for how to furniture arrangement success"], ["vec", "how to how to furniture arrangement effectively"], ["hyde", "Learning how to furniture arrangement requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "how to furniture arrangement"}
{"output": [["lex", "home overview brewing techniques advice"], ["lex", "home overview brewing techniques how to"], ["lex", "home overview brewing techniques tips"], ["vec", "best way to home brewing techniques"], ["vec", "learn home brewing techniques step by step"], ["hyde", "Learning home brewing techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "home brewing techniques"}
{"output": [["lex", "how overview to sewing guide"], ["lex", "how overview to sewing tutorial"], ["lex", "how overview to sewing tips"], ["vec", "tips for how to sewing success"], ["vec", "how to how to sewing effectively"], ["hyde", "This comprehensive guide to how to sewing covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "how to sewing"}
{"output": [["lex", "start overview rent vs buy tutorial"], ["lex", "start overview rent vs buy advice"], ["lex", "start overview rent vs buy tips"], ["vec", "how to start rent vs buy effectively"], ["vec", "tips for start rent vs buy success"], ["hyde", "This comprehensive guide to start rent vs buy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "start rent vs buy"}
{"output": [["lex", "improve overview online courses advice"], ["lex", "improve overview online courses tutorial"], ["lex", "improve overview online courses tips"], ["vec", "how to improve online courses effectively"], ["vec", "complete guide to improve online courses"], ["hyde", "Whether you're a beginner or looking to improve, this guide to improve online courses offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "education_learning", "is_short": false, "query": "improve online courses"}
{"output": [["lex", "calligraphy overview basics advice"], ["lex", "calligraphy overview basics tutorial"], ["lex", "calligraphy overview basics tips"], ["vec", "learn calligraphy basics step by step"], ["vec", "complete guide to calligraphy basics"], ["hyde", "This comprehensive guide to calligraphy basics covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "calligraphy basics"}
{"output": [["lex", "road overview trip planning tips guide"], ["lex", "road overview trip planning tips how to"], ["lex", "road overview trip planning tips tutorial"], ["vec", "tips for road trip planning tips success"], ["vec", "how to road trip planning tips effectively"], ["hyde", "This comprehensive guide to road trip planning tips covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "road trip planning tips"}
{"output": [["lex", "start overview index funds tips"], ["lex", "start overview index funds guide"], ["lex", "start overview index funds tutorial"], ["vec", "best way to start index funds"], ["vec", "learn start index funds step by step"], ["hyde", "This comprehensive guide to start index funds covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "start index funds"}
{"output": [["lex", "IRA overview strategy guide"], ["lex", "IRA overview strategy tips"], ["lex", "IRA overview strategy how to"], ["vec", "learn IRA strategy step by step"], ["vec", "how to IRA strategy effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to IRA strategy offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "IRA strategy"}
{"output": [["lex", "how overview to detox body tutorial"], ["lex", "how overview to detox body tips"], ["lex", "how overview to detox body guide"], ["vec", "best way to how to detox body"], ["vec", "learn how to detox body step by step"], ["hyde", "Learning how to detox body requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "how to detox body"}
{"output": [["lex", "best overview fishing spots how to"], ["lex", "best overview fishing spots advice"], ["lex", "best overview fishing spots tutorial"], ["vec", "how to best fishing spots effectively"], ["vec", "tips for best fishing spots success"], ["hyde", "This comprehensive guide to best fishing spots covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "hobbies_crafts", "is_short": false, "query": "best fishing spots"}
{"output": [["lex", "improve overview yoga poses how to"], ["lex", "improve overview yoga poses tips"], ["lex", "improve overview yoga poses advice"], ["vec", "how to improve yoga poses effectively"], ["vec", "tips for improve yoga poses success"], ["hyde", "Learning improve yoga poses requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "health_wellness", "is_short": false, "query": "improve yoga poses"}
{"output": [["lex", "learn how to overview"], ["lex", "learn tips overview"], ["lex", "learn advice overview"], ["vec", "complete guide to learn"], ["vec", "tips for learn success"], ["hyde", "Learning learn requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": true, "query": "learn"}
{"output": [["lex", "best overview massage techniques tips"], ["lex", "best overview massage techniques guide"], ["lex", "best overview massage techniques tutorial"], ["vec", "learn best massage techniques step by step"], ["vec", "how to best massage techniques effectively"], ["hyde", "This comprehensive guide to best massage techniques covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "best massage techniques"}
{"output": [["lex", "learn overview cinema history advice"], ["lex", "learn overview cinema history how to"], ["lex", "learn overview cinema history guide"], ["vec", "how to learn cinema history effectively"], ["vec", "tips for learn cinema history success"], ["hyde", "This comprehensive guide to learn cinema history covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "arts_culture", "is_short": false, "query": "learn cinema history"}
{"output": [["lex", "itinerary tutorial overview"], ["lex", "itinerary advice overview"], ["lex", "itinerary guide overview"], ["vec", "learn itinerary step by step"], ["vec", "tips for itinerary success"], ["hyde", "Whether you're a beginner or looking to improve, this guide to itinerary offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "travel_geography", "is_short": true, "query": "itinerary"}
{"output": [["lex", "improve overview therapy types tips"], ["lex", "improve overview therapy types how to"], ["lex", "improve overview therapy types tutorial"], ["vec", "tips for improve therapy types success"], ["vec", "learn improve therapy types step by step"], ["hyde", "This comprehensive guide to improve therapy types covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "improve therapy types"}
{"output": [["lex", "start overview FIRE movement guide"], ["lex", "start overview FIRE movement how to"], ["lex", "start overview FIRE movement advice"], ["vec", "learn start FIRE movement step by step"], ["vec", "best way to start FIRE movement"], ["hyde", "This comprehensive guide to start FIRE movement covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "start FIRE movement"}
{"output": [["lex", "world overview celebrations history tutorial"], ["lex", "world overview celebrations history guide"], ["lex", "world overview celebrations history how to"], ["vec", "how to world celebrations history effectively"], ["vec", "learn world celebrations history step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to world celebrations history offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "world celebrations history"}
{"output": [["lex", "landscaping overview ideas tutorial"], ["lex", "landscaping overview ideas how to"], ["lex", "landscaping overview ideas guide"], ["vec", "how to landscaping ideas effectively"], ["vec", "learn landscaping ideas step by step"], ["hyde", "Learning landscaping ideas requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "home_garden", "is_short": false, "query": "landscaping ideas"}
{"output": [["lex", "how overview to buy stocks advice"], ["lex", "how overview to buy stocks how to"], ["lex", "how overview to buy stocks tutorial"], ["vec", "best way to how to buy stocks"], ["vec", "learn how to buy stocks step by step"], ["hyde", "Learning how to buy stocks requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "how to buy stocks"}
{"output": [["lex", "best overview typography tips"], ["lex", "best overview typography guide"], ["lex", "best overview typography advice"], ["vec", "how to best typography effectively"], ["vec", "learn best typography step by step"], ["hyde", "Learning best typography requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "best typography"}
{"output": [["lex", "how overview to close deal how to"], ["lex", "how overview to close deal guide"], ["lex", "how overview to close deal advice"], ["vec", "complete guide to how to close deal"], ["vec", "how to how to close deal effectively"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to close deal offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "how to close deal"}
{"output": [["lex", "freelance overview income strategy tutorial"], ["lex", "freelance overview income strategy how to"], ["lex", "freelance overview income strategy advice"], ["vec", "learn freelance income strategy step by step"], ["vec", "complete guide to freelance income strategy"], ["hyde", "Learning freelance income strategy requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "freelance income strategy"}
{"output": [["lex", "learn overview Asian cooking tips"], ["lex", "learn overview Asian cooking advice"], ["lex", "learn overview Asian cooking guide"], ["vec", "complete guide to learn Asian cooking"], ["vec", "learn learn Asian cooking step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn Asian cooking offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "food_cooking", "is_short": false, "query": "learn Asian cooking"}
{"output": [["lex", "401k overview strategy guide"], ["lex", "401k overview strategy tips"], ["lex", "401k overview strategy advice"], ["vec", "best way to 401k strategy"], ["vec", "how to 401k strategy effectively"], ["hyde", "This comprehensive guide to 401k strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "401k strategy"}
{"output": [["lex", "cultural overview etiquette guide how to"], ["lex", "cultural overview etiquette guide tutorial"], ["lex", "cultural overview etiquette guide advice"], ["vec", "learn cultural etiquette guide step by step"], ["vec", "best way to cultural etiquette guide"], ["hyde", "This comprehensive guide to cultural etiquette guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "travel_geography", "is_short": false, "query": "cultural etiquette guide"}
{"output": [["lex", "meditation overview techniques guide tutorial"], ["lex", "meditation overview techniques guide tips"], ["lex", "meditation overview techniques guide guide"], ["vec", "tips for meditation techniques guide success"], ["vec", "complete guide to meditation techniques guide"], ["hyde", "This comprehensive guide to meditation techniques guide covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "health_wellness", "is_short": false, "query": "meditation techniques guide"}
{"output": [["lex", "vegan overview cooking recipe guide"], ["lex", "vegan overview cooking recipe how to"], ["lex", "vegan overview cooking recipe tutorial"], ["vec", "how to vegan cooking recipe effectively"], ["vec", "learn vegan cooking recipe step by step"], ["hyde", "Learning vegan cooking recipe requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": false, "query": "vegan cooking recipe"}
{"output": [["lex", "basic overview troubleshooting setup advice"], ["lex", "basic overview troubleshooting setup how to"], ["lex", "basic overview troubleshooting setup tips"], ["vec", "best way to basic troubleshooting setup"], ["vec", "learn basic troubleshooting setup step by step"], ["hyde", "Learning basic troubleshooting setup requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "technology", "is_short": false, "query": "basic troubleshooting setup"}
{"output": [["lex", "visa overview requirements guide guide"], ["lex", "visa overview requirements guide how to"], ["lex", "visa overview requirements guide advice"], ["vec", "best way to visa requirements guide"], ["vec", "tips for visa requirements guide success"], ["hyde", "Learning visa requirements guide requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "travel_geography", "is_short": false, "query": "visa requirements guide"}
{"output": [["lex", "songwriting overview basics guide"], ["lex", "songwriting overview basics advice"], ["lex", "songwriting overview basics tips"], ["vec", "learn songwriting basics step by step"], ["vec", "complete guide to songwriting basics"], ["hyde", "Learning songwriting basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "hobbies_crafts", "is_short": false, "query": "songwriting basics"}
{"output": [["lex", "financial overview independence basics how to"], ["lex", "financial overview independence basics tips"], ["lex", "financial overview independence basics advice"], ["vec", "complete guide to financial independence basics"], ["vec", "how to financial independence basics effectively"], ["hyde", "This comprehensive guide to financial independence basics covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "financial independence basics"}
{"output": [["lex", "how overview to start business tips"], ["lex", "how overview to start business advice"], ["lex", "how overview to start business tutorial"], ["vec", "how to how to start business effectively"], ["vec", "learn how to start business step by step"], ["hyde", "Whether you're a beginner or looking to improve, this guide to how to start business offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "how to start business"}
{"output": [["lex", "file overview management setup guide"], ["lex", "file overview management setup how to"], ["lex", "file overview management setup tutorial"], ["vec", "complete guide to file management setup"], ["vec", "learn file management setup step by step"], ["hyde", "This comprehensive guide to file management setup covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "technology", "is_short": false, "query": "file management setup"}
{"output": [["lex", "probability overview techniques tips"], ["lex", "probability overview techniques guide"], ["lex", "probability overview techniques advice"], ["vec", "best way to probability techniques"], ["vec", "tips for probability techniques success"], ["hyde", "Learning probability techniques requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "education_learning", "is_short": false, "query": "probability techniques"}
{"output": [["lex", "start overview IRA guide"], ["lex", "start overview IRA tips"], ["lex", "start overview IRA how to"], ["vec", "how to start IRA effectively"], ["vec", "complete guide to start IRA"], ["hyde", "Learning start IRA requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "start IRA"}
{"output": [["lex", "film how to overview"], ["lex", "film tips overview"], ["lex", "film advice overview"], ["vec", "best way to film"], ["vec", "learn film step by step"], ["hyde", "Learning film requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "food_cooking", "is_short": true, "query": "film"}
{"output": [["lex", "salary overview raise strategy advice"], ["lex", "salary overview raise strategy guide"], ["lex", "salary overview raise strategy tips"], ["vec", "learn salary raise strategy step by step"], ["vec", "complete guide to salary raise strategy"], ["hyde", "This comprehensive guide to salary raise strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "salary raise strategy"}
{"output": [["lex", "learn overview fly tying how to"], ["lex", "learn overview fly tying guide"], ["lex", "learn overview fly tying advice"], ["vec", "tips for learn fly tying success"], ["vec", "complete guide to learn fly tying"], ["hyde", "Whether you're a beginner or looking to improve, this guide to learn fly tying offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "hobbies_crafts", "is_short": false, "query": "learn fly tying"}
{"output": [["lex", "rent overview vs buy strategy how to"], ["lex", "rent overview vs buy strategy advice"], ["lex", "rent overview vs buy strategy tips"], ["vec", "best way to rent vs buy strategy"], ["vec", "learn rent vs buy strategy step by step"], ["hyde", "This comprehensive guide to rent vs buy strategy covers all the essential information you need to get started. Follow the steps carefully for best results."]], "category": "finance_business", "is_short": false, "query": "rent vs buy strategy"}
{"output": [["lex", "FIRE overview movement basics advice"], ["lex", "FIRE overview movement basics tips"], ["lex", "FIRE overview movement basics how to"], ["vec", "how to FIRE movement basics effectively"], ["vec", "tips for FIRE movement basics success"], ["hyde", "Learning FIRE movement basics requires practice and patience. This resource provides detailed instructions, examples, and tips to help you master the basics quickly."]], "category": "finance_business", "is_short": false, "query": "FIRE movement basics"}
{"output": [["lex", "start overview financial independence advice"], ["lex", "start overview financial independence tutorial"], ["lex", "start overview financial independence how to"], ["vec", "complete guide to start financial independence"], ["vec", "best way to start financial independence"], ["hyde", "Whether you're a beginner or looking to improve, this guide to start financial independence offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "finance_business", "is_short": false, "query": "start financial independence"}
{"output": [["lex", "appreciate overview gallery etiquette advice"], ["lex", "appreciate overview gallery etiquette tips"], ["lex", "appreciate overview gallery etiquette guide"], ["vec", "best way to appreciate gallery etiquette"], ["vec", "complete guide to appreciate gallery etiquette"], ["hyde", "Whether you're a beginner or looking to improve, this guide to appreciate gallery etiquette offers practical advice, common pitfalls to avoid, and proven strategies for success."]], "category": "arts_culture", "is_short": false, "query": "appreciate gallery etiquette"}

View File

@@ -0,0 +1,386 @@
{"output": [["lex", "world overview capitals quiz tutorial"], ["lex", "world overview capitals quiz guide"], ["lex", "world overview capitals quiz examples"], ["vec", "guide for world capitals quiz"], ["vec", "how to world capitals quiz"], ["hyde", "This comprehensive guide covers everything you need to know about world capitals quiz. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "world capitals quiz"}
{"output": [["lex", "trivia overview facts about space examples"], ["lex", "trivia facts about space best practices"], ["lex", "trivia overview facts about space guide"], ["vec", "understanding trivia facts about space"], ["vec", "guide for trivia facts about space"], ["hyde", "This comprehensive guide covers everything you need to know about trivia facts about space. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "trivia facts about space"}
{"output": [["lex", "did overview you know history examples"], ["lex", "did overview you know history guide"], ["lex", "did you know history best practices"], ["vec", "complete did you know history reference"], ["vec", "learn about did you know history"], ["hyde", "This comprehensive guide covers everything you need to know about did you know history. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "did you know history"}
{"output": [["lex", "random overview science facts tutorial"], ["lex", "random overview science facts guide"], ["lex", "random science facts best practices"], ["vec", "how to random science facts"], ["vec", "guide for random science facts"], ["hyde", "This comprehensive guide covers everything you need to know about random science facts. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "random science facts"}
{"output": [["lex", "famous inventions timeline best practices"], ["lex", "famous inventions timeline documentation"], ["lex", "famous overview inventions timeline tutorial"], ["vec", "how to famous inventions timeline"], ["vec", "complete famous inventions timeline reference"], ["hyde", "This comprehensive guide covers everything you need to know about famous inventions timeline. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "famous inventions timeline"}
{"output": [["lex", "world overview records list guide"], ["lex", "world overview records list tutorial"], ["lex", "world records list best practices"], ["vec", "how to world records list"], ["vec", "understanding world records list"], ["hyde", "This comprehensive guide covers everything you need to know about world records list. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "world records list"}
{"output": [["lex", "fun geography facts documentation"], ["lex", "fun overview geography facts guide"], ["lex", "fun overview geography facts examples"], ["vec", "guide for fun geography facts"], ["vec", "understanding fun geography facts"], ["hyde", "This comprehensive guide covers everything you need to know about fun geography facts. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "fun geography facts"}
{"output": [["lex", "historical trivia questions documentation"], ["lex", "historical overview trivia questions guide"], ["lex", "historical trivia questions best practices"], ["vec", "how to historical trivia questions"], ["vec", "guide for historical trivia questions"], ["hyde", "This comprehensive guide covers everything you need to know about historical trivia questions. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "historical trivia questions"}
{"output": [["lex", "animal trivia facts best practices"], ["lex", "animal overview trivia facts tutorial"], ["lex", "animal overview trivia facts guide"], ["vec", "complete animal trivia facts reference"], ["vec", "guide for animal trivia facts"], ["hyde", "This comprehensive guide covers everything you need to know about animal trivia facts. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "animal trivia facts"}
{"output": [["lex", "sports overview trivia records examples"], ["lex", "sports trivia records documentation"], ["lex", "sports overview trivia records guide"], ["vec", "learn about sports trivia records"], ["vec", "how to sports trivia records"], ["hyde", "This comprehensive guide covers everything you need to know about sports trivia records. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sports trivia records"}
{"output": [["lex", "largest overview countries by area guide"], ["lex", "largest countries by area documentation"], ["lex", "largest countries by area best practices"], ["vec", "understanding largest countries by area"], ["vec", "complete largest countries by area reference"], ["hyde", "This comprehensive guide covers everything you need to know about largest countries by area. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "largest countries by area"}
{"output": [["lex", "rivers that cross multiple countries documentation"], ["lex", "rivers overview that cross multiple countries tutorial"], ["lex", "rivers overview that cross multiple countries guide"], ["vec", "complete rivers that cross multiple countries reference"], ["vec", "understanding rivers that cross multiple countries"], ["hyde", "This comprehensive guide covers everything you need to know about rivers that cross multiple countries. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "rivers that cross multiple countries"}
{"output": [["lex", "highest mountain peaks documentation"], ["lex", "highest overview mountain peaks examples"], ["lex", "highest overview mountain peaks guide"], ["vec", "understanding highest mountain peaks"], ["vec", "guide for highest mountain peaks"], ["hyde", "This comprehensive guide covers everything you need to know about highest mountain peaks. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "highest mountain peaks"}
{"output": [["lex", "desert overview climate zones examples"], ["lex", "desert climate zones documentation"], ["lex", "desert overview climate zones tutorial"], ["vec", "guide for desert climate zones"], ["vec", "how to desert climate zones"], ["hyde", "This comprehensive guide covers everything you need to know about desert climate zones. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "desert climate zones"}
{"output": [["lex", "island overview nations list guide"], ["lex", "island nations list best practices"], ["lex", "island nations list documentation"], ["vec", "understanding island nations list"], ["vec", "how to island nations list"], ["hyde", "This comprehensive guide covers everything you need to know about island nations list. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "island nations list"}
{"output": [["lex", "capital cities europe best practices"], ["lex", "capital cities europe documentation"], ["lex", "capital overview cities europe tutorial"], ["vec", "guide for capital cities europe"], ["vec", "learn about capital cities europe"], ["hyde", "This comprehensive guide covers everything you need to know about capital cities europe. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "capital cities europe"}
{"output": [["lex", "population overview by continent guide"], ["lex", "population overview by continent examples"], ["lex", "population by continent best practices"], ["vec", "learn about population by continent"], ["vec", "understanding population by continent"], ["hyde", "This comprehensive guide covers everything you need to know about population by continent. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "population by continent"}
{"output": [["lex", "time overview zones map tutorial"], ["lex", "time overview zones map guide"], ["lex", "time zones map documentation"], ["vec", "how to time zones map"], ["vec", "complete time zones map reference"], ["hyde", "This comprehensive guide covers everything you need to know about time zones map. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "time zones map"}
{"output": [["lex", "latitude longitude coordinates best practices"], ["lex", "latitude longitude coordinates documentation"], ["lex", "latitude overview longitude coordinates tutorial"], ["vec", "complete latitude longitude coordinates reference"], ["vec", "how to latitude longitude coordinates"], ["hyde", "This comprehensive guide covers everything you need to know about latitude longitude coordinates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latitude longitude coordinates"}
{"output": [["lex", "borders overview between countries tutorial"], ["lex", "borders between countries documentation"], ["lex", "borders between countries best practices"], ["vec", "learn about borders between countries"], ["vec", "complete borders between countries reference"], ["hyde", "This comprehensive guide covers everything you need to know about borders between countries. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "borders between countries"}
{"output": [["lex", "ocean overview currents patterns tutorial"], ["lex", "ocean overview currents patterns examples"], ["lex", "ocean currents patterns documentation"], ["vec", "understanding ocean currents patterns"], ["vec", "how to ocean currents patterns"], ["hyde", "This comprehensive guide covers everything you need to know about ocean currents patterns. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "ocean currents patterns"}
{"output": [["lex", "tectonic overview plate boundaries examples"], ["lex", "tectonic plate boundaries documentation"], ["lex", "tectonic plate boundaries best practices"], ["vec", "complete tectonic plate boundaries reference"], ["vec", "learn about tectonic plate boundaries"], ["hyde", "This comprehensive guide covers everything you need to know about tectonic plate boundaries. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "tectonic plate boundaries"}
{"output": [["lex", "climate overview zones earth tutorial"], ["lex", "climate overview zones earth guide"], ["lex", "climate zones earth documentation"], ["vec", "learn about climate zones earth"], ["vec", "guide for climate zones earth"], ["hyde", "This comprehensive guide covers everything you need to know about climate zones earth. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate zones earth"}
{"output": [["lex", "stoicism overview daily practice examples"], ["lex", "stoicism daily practice best practices"], ["lex", "stoicism overview daily practice tutorial"], ["vec", "guide for stoicism daily practice"], ["vec", "learn about stoicism daily practice"], ["hyde", "This comprehensive guide covers everything you need to know about stoicism daily practice. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "stoicism daily practice"}
{"output": [["lex", "existentialism overview meaning life examples"], ["lex", "existentialism overview meaning life guide"], ["lex", "existentialism meaning life documentation"], ["vec", "learn about existentialism meaning life"], ["vec", "complete existentialism meaning life reference"], ["hyde", "This comprehensive guide covers everything you need to know about existentialism meaning life. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "existentialism meaning life"}
{"output": [["lex", "utilitarianism overview ethics explained tutorial"], ["lex", "utilitarianism overview ethics explained guide"], ["lex", "utilitarianism overview ethics explained examples"], ["vec", "guide for utilitarianism ethics explained"], ["vec", "complete utilitarianism ethics explained reference"], ["hyde", "This comprehensive guide covers everything you need to know about utilitarianism ethics explained. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "utilitarianism ethics explained"}
{"output": [["lex", "kant categorical imperative best practices"], ["lex", "kant overview categorical imperative guide"], ["lex", "kant overview categorical imperative tutorial"], ["vec", "complete kant categorical imperative reference"], ["vec", "how to kant categorical imperative"], ["hyde", "This comprehensive guide covers everything you need to know about kant categorical imperative. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "kant categorical imperative"}
{"output": [["lex", "free will determinism debate documentation"], ["lex", "free overview will determinism debate examples"], ["lex", "free overview will determinism debate tutorial"], ["vec", "complete free will determinism debate reference"], ["vec", "learn about free will determinism debate"], ["hyde", "This comprehensive guide covers everything you need to know about free will determinism debate. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "free will determinism debate"}
{"output": [["lex", "nietzsche overview will to power guide"], ["lex", "nietzsche will to power best practices"], ["lex", "nietzsche overview will to power examples"], ["vec", "complete nietzsche will to power reference"], ["vec", "learn about nietzsche will to power"], ["hyde", "This comprehensive guide covers everything you need to know about nietzsche will to power. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "nietzsche will to power"}
{"output": [["lex", "socrates overview method questioning guide"], ["lex", "socrates overview method questioning tutorial"], ["lex", "socrates overview method questioning examples"], ["vec", "understanding socrates method questioning"], ["vec", "complete socrates method questioning reference"], ["hyde", "This comprehensive guide covers everything you need to know about socrates method questioning. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "socrates method questioning"}
{"output": [["lex", "plato overview theory forms tutorial"], ["lex", "plato theory forms best practices"], ["lex", "plato overview theory forms guide"], ["vec", "how to plato theory forms"], ["vec", "guide for plato theory forms"], ["hyde", "This comprehensive guide covers everything you need to know about plato theory forms. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "plato theory forms"}
{"output": [["lex", "aristotle virtue ethics documentation"], ["lex", "aristotle virtue ethics best practices"], ["lex", "aristotle overview virtue ethics tutorial"], ["vec", "complete aristotle virtue ethics reference"], ["vec", "how to aristotle virtue ethics"], ["hyde", "This comprehensive guide covers everything you need to know about aristotle virtue ethics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "aristotle virtue ethics"}
{"output": [["lex", "descartes overview cogito ergo sum guide"], ["lex", "descartes overview cogito ergo sum examples"], ["lex", "descartes cogito ergo sum best practices"], ["vec", "complete descartes cogito ergo sum reference"], ["vec", "learn about descartes cogito ergo sum"], ["hyde", "This comprehensive guide covers everything you need to know about descartes cogito ergo sum. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "descartes cogito ergo sum"}
{"output": [["lex", "logic propositional calculus documentation"], ["lex", "logic overview propositional calculus tutorial"], ["lex", "logic overview propositional calculus guide"], ["vec", "understanding logic propositional calculus"], ["vec", "complete logic propositional calculus reference"], ["hyde", "This comprehensive guide covers everything you need to know about logic propositional calculus. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "logic propositional calculus"}
{"output": [["lex", "epistemology overview knowledge theory examples"], ["lex", "epistemology overview knowledge theory tutorial"], ["lex", "epistemology knowledge theory documentation"], ["vec", "learn about epistemology knowledge theory"], ["vec", "complete epistemology knowledge theory reference"], ["hyde", "This comprehensive guide covers everything you need to know about epistemology knowledge theory. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "epistemology knowledge theory"}
{"output": [["lex", "metaphysics overview existence reality tutorial"], ["lex", "metaphysics existence reality best practices"], ["lex", "metaphysics overview existence reality guide"], ["vec", "understanding metaphysics existence reality"], ["vec", "how to metaphysics existence reality"], ["hyde", "This comprehensive guide covers everything you need to know about metaphysics existence reality. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "metaphysics existence reality"}
{"output": [["lex", "ancient civilizations timeline documentation"], ["lex", "ancient overview civilizations timeline examples"], ["lex", "ancient civilizations timeline best practices"], ["vec", "complete ancient civilizations timeline reference"], ["vec", "understanding ancient civilizations timeline"], ["hyde", "This comprehensive guide covers everything you need to know about ancient civilizations timeline. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "ancient civilizations timeline"}
{"output": [["lex", "roman overview empire fall reasons guide"], ["lex", "roman empire fall reasons best practices"], ["lex", "roman empire fall reasons documentation"], ["vec", "guide for roman empire fall reasons"], ["vec", "how to roman empire fall reasons"], ["hyde", "This comprehensive guide covers everything you need to know about roman empire fall reasons. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "roman empire fall reasons"}
{"output": [["lex", "medieval period events documentation"], ["lex", "medieval period events best practices"], ["lex", "medieval overview period events tutorial"], ["vec", "learn about medieval period events"], ["vec", "how to medieval period events"], ["hyde", "This comprehensive guide covers everything you need to know about medieval period events. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "medieval period events"}
{"output": [["lex", "renaissance overview art movement examples"], ["lex", "renaissance overview art movement guide"], ["lex", "renaissance art movement documentation"], ["vec", "understanding renaissance art movement"], ["vec", "how to renaissance art movement"], ["hyde", "This comprehensive guide covers everything you need to know about renaissance art movement. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "renaissance art movement"}
{"output": [["lex", "industrial overview revolution inventions tutorial"], ["lex", "industrial revolution inventions best practices"], ["lex", "industrial overview revolution inventions examples"], ["vec", "how to industrial revolution inventions"], ["vec", "guide for industrial revolution inventions"], ["hyde", "This comprehensive guide covers everything you need to know about industrial revolution inventions. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "industrial revolution inventions"}
{"output": [["lex", "world overview war i causes tutorial"], ["lex", "world war i causes documentation"], ["lex", "world war i causes best practices"], ["vec", "learn about world war i causes"], ["vec", "how to world war i causes"], ["hyde", "This comprehensive guide covers everything you need to know about world war i causes. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "world war i causes"}
{"output": [["lex", "cold war key events best practices"], ["lex", "cold overview war key events tutorial"], ["lex", "cold overview war key events guide"], ["vec", "understanding cold war key events"], ["vec", "learn about cold war key events"], ["hyde", "This comprehensive guide covers everything you need to know about cold war key events. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "cold war key events"}
{"output": [["lex", "french overview revolution timeline tutorial"], ["lex", "french revolution timeline documentation"], ["lex", "french overview revolution timeline guide"], ["vec", "understanding french revolution timeline"], ["vec", "guide for french revolution timeline"], ["hyde", "This comprehensive guide covers everything you need to know about french revolution timeline. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "french revolution timeline"}
{"output": [["lex", "american civil war battles documentation"], ["lex", "american overview civil war battles tutorial"], ["lex", "american overview civil war battles guide"], ["vec", "learn about american civil war battles"], ["vec", "complete american civil war battles reference"], ["hyde", "This comprehensive guide covers everything you need to know about american civil war battles. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "american civil war battles"}
{"output": [["lex", "egyptian overview pharaohs dynasty guide"], ["lex", "egyptian overview pharaohs dynasty examples"], ["lex", "egyptian pharaohs dynasty documentation"], ["vec", "how to egyptian pharaohs dynasty"], ["vec", "understanding egyptian pharaohs dynasty"], ["hyde", "This comprehensive guide covers everything you need to know about egyptian pharaohs dynasty. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "egyptian pharaohs dynasty"}
{"output": [["lex", "bronze overview age collapse guide"], ["lex", "bronze overview age collapse tutorial"], ["lex", "bronze age collapse documentation"], ["vec", "guide for bronze age collapse"], ["vec", "understanding bronze age collapse"], ["hyde", "This comprehensive guide covers everything you need to know about bronze age collapse. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "bronze age collapse"}
{"output": [["lex", "byzantine overview empire history tutorial"], ["lex", "byzantine empire history best practices"], ["lex", "byzantine empire history documentation"], ["vec", "learn about byzantine empire history"], ["vec", "how to byzantine empire history"], ["hyde", "This comprehensive guide covers everything you need to know about byzantine empire history. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "byzantine empire history"}
{"output": [["lex", "vietnam overview war timeline examples"], ["lex", "vietnam war timeline best practices"], ["lex", "vietnam war timeline documentation"], ["vec", "understanding vietnam war timeline"], ["vec", "complete vietnam war timeline reference"], ["hyde", "This comprehensive guide covers everything you need to know about vietnam war timeline. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "vietnam war timeline"}
{"output": [["lex", "quantum overview mechanics basics guide"], ["lex", "quantum mechanics basics documentation"], ["lex", "quantum overview mechanics basics examples"], ["vec", "complete quantum mechanics basics reference"], ["vec", "learn about quantum mechanics basics"], ["hyde", "This comprehensive guide covers everything you need to know about quantum mechanics basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "quantum mechanics basics"}
{"output": [["lex", "theory of relativity explained documentation"], ["lex", "theory overview of relativity explained examples"], ["lex", "theory overview of relativity explained tutorial"], ["vec", "learn about theory of relativity explained"], ["vec", "guide for theory of relativity explained"], ["hyde", "This comprehensive guide covers everything you need to know about theory of relativity explained. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "theory of relativity explained"}
{"output": [["lex", "dna structure discovery best practices"], ["lex", "dna overview structure discovery tutorial"], ["lex", "dna overview structure discovery guide"], ["vec", "understanding dna structure discovery"], ["vec", "learn about dna structure discovery"], ["hyde", "This comprehensive guide covers everything you need to know about dna structure discovery. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "dna structure discovery"}
{"output": [["lex", "photosynthesis process steps documentation"], ["lex", "photosynthesis overview process steps guide"], ["lex", "photosynthesis overview process steps examples"], ["vec", "guide for photosynthesis process steps"], ["vec", "complete photosynthesis process steps reference"], ["hyde", "This comprehensive guide covers everything you need to know about photosynthesis process steps. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "photosynthesis process steps"}
{"output": [["lex", "black overview holes physics tutorial"], ["lex", "black overview holes physics examples"], ["lex", "black holes physics best practices"], ["vec", "understanding black holes physics"], ["vec", "complete black holes physics reference"], ["hyde", "This comprehensive guide covers everything you need to know about black holes physics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "black holes physics"}
{"output": [["lex", "plate overview tectonics theory examples"], ["lex", "plate overview tectonics theory guide"], ["lex", "plate tectonics theory best practices"], ["vec", "how to plate tectonics theory"], ["vec", "guide for plate tectonics theory"], ["hyde", "This comprehensive guide covers everything you need to know about plate tectonics theory. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "plate tectonics theory"}
{"output": [["lex", "evolution overview natural selection examples"], ["lex", "evolution natural selection best practices"], ["lex", "evolution natural selection documentation"], ["vec", "learn about evolution natural selection"], ["vec", "guide for evolution natural selection"], ["hyde", "This comprehensive guide covers everything you need to know about evolution natural selection. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "evolution natural selection"}
{"output": [["lex", "periodic overview table elements tutorial"], ["lex", "periodic overview table elements examples"], ["lex", "periodic table elements best practices"], ["vec", "understanding periodic table elements"], ["vec", "complete periodic table elements reference"], ["hyde", "This comprehensive guide covers everything you need to know about periodic table elements. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "periodic table elements"}
{"output": [["lex", "cell overview biology fundamentals tutorial"], ["lex", "cell overview biology fundamentals examples"], ["lex", "cell biology fundamentals best practices"], ["vec", "complete cell biology fundamentals reference"], ["vec", "how to cell biology fundamentals"], ["hyde", "This comprehensive guide covers everything you need to know about cell biology fundamentals. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "cell biology fundamentals"}
{"output": [["lex", "climate change evidence best practices"], ["lex", "climate overview change evidence examples"], ["lex", "climate change evidence documentation"], ["vec", "learn about climate change evidence"], ["vec", "complete climate change evidence reference"], ["hyde", "This comprehensive guide covers everything you need to know about climate change evidence. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate change evidence"}
{"output": [["lex", "impressionist overview painters list tutorial"], ["lex", "impressionist painters list best practices"], ["lex", "impressionist overview painters list guide"], ["vec", "understanding impressionist painters list"], ["vec", "complete impressionist painters list reference"], ["hyde", "This comprehensive guide covers everything you need to know about impressionist painters list. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "impressionist painters list"}
{"output": [["lex", "shakespeare overview plays summary guide"], ["lex", "shakespeare overview plays summary examples"], ["lex", "shakespeare overview plays summary tutorial"], ["vec", "how to shakespeare plays summary"], ["vec", "learn about shakespeare plays summary"], ["hyde", "This comprehensive guide covers everything you need to know about shakespeare plays summary. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "shakespeare plays summary"}
{"output": [["lex", "classical overview music composers examples"], ["lex", "classical music composers documentation"], ["lex", "classical music composers best practices"], ["vec", "how to classical music composers"], ["vec", "understanding classical music composers"], ["hyde", "This comprehensive guide covers everything you need to know about classical music composers. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "classical music composers"}
{"output": [["lex", "modern overview art movements tutorial"], ["lex", "modern overview art movements examples"], ["lex", "modern overview art movements guide"], ["vec", "how to modern art movements"], ["vec", "guide for modern art movements"], ["hyde", "This comprehensive guide covers everything you need to know about modern art movements. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "modern art movements"}
{"output": [["lex", "film overview noir characteristics examples"], ["lex", "film overview noir characteristics tutorial"], ["lex", "film noir characteristics documentation"], ["vec", "guide for film noir characteristics"], ["vec", "how to film noir characteristics"], ["hyde", "This comprehensive guide covers everything you need to know about film noir characteristics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "film noir characteristics"}
{"output": [["lex", "jazz history origins best practices"], ["lex", "jazz history origins documentation"], ["lex", "jazz overview history origins tutorial"], ["vec", "learn about jazz history origins"], ["vec", "understanding jazz history origins"], ["hyde", "This comprehensive guide covers everything you need to know about jazz history origins. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "jazz history origins"}
{"output": [["lex", "renaissance sculpture techniques documentation"], ["lex", "renaissance overview sculpture techniques examples"], ["lex", "renaissance sculpture techniques best practices"], ["vec", "how to renaissance sculpture techniques"], ["vec", "guide for renaissance sculpture techniques"], ["hyde", "This comprehensive guide covers everything you need to know about renaissance sculpture techniques. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "renaissance sculpture techniques"}
{"output": [["lex", "photography composition rules best practices"], ["lex", "photography composition rules documentation"], ["lex", "photography overview composition rules guide"], ["vec", "understanding photography composition rules"], ["vec", "complete photography composition rules reference"], ["hyde", "This comprehensive guide covers everything you need to know about photography composition rules. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "photography composition rules"}
{"output": [["lex", "poetry forms haiku documentation"], ["lex", "poetry overview forms haiku examples"], ["lex", "poetry overview forms haiku guide"], ["vec", "learn about poetry forms haiku"], ["vec", "how to poetry forms haiku"], ["hyde", "This comprehensive guide covers everything you need to know about poetry forms haiku. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "poetry forms haiku"}
{"output": [["lex", "baroque overview art characteristics tutorial"], ["lex", "baroque overview art characteristics guide"], ["lex", "baroque art characteristics best practices"], ["vec", "complete baroque art characteristics reference"], ["vec", "guide for baroque art characteristics"], ["hyde", "This comprehensive guide covers everything you need to know about baroque art characteristics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "baroque art characteristics"}
{"output": [["lex", "street overview art graffiti history guide"], ["lex", "street overview art graffiti history examples"], ["lex", "street art graffiti history documentation"], ["vec", "understanding street art graffiti history"], ["vec", "guide for street art graffiti history"], ["hyde", "This comprehensive guide covers everything you need to know about street art graffiti history. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "street art graffiti history"}
{"output": [["lex", "symptoms overview of vitamin deficiency examples"], ["lex", "symptoms of vitamin deficiency best practices"], ["lex", "symptoms overview of vitamin deficiency guide"], ["vec", "learn about symptoms of vitamin deficiency"], ["vec", "how to symptoms of vitamin deficiency"], ["hyde", "This comprehensive guide covers everything you need to know about symptoms of vitamin deficiency. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "symptoms of vitamin deficiency"}
{"output": [["lex", "how overview vaccines work immune system tutorial"], ["lex", "how overview vaccines work immune system examples"], ["lex", "how vaccines work immune system documentation"], ["vec", "guide for how vaccines work immune system"], ["vec", "how to how vaccines work immune system"], ["hyde", "This comprehensive guide covers everything you need to know about how vaccines work immune system. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "how vaccines work immune system"}
{"output": [["lex", "blood pressure normal range documentation"], ["lex", "blood overview pressure normal range examples"], ["lex", "blood pressure normal range best practices"], ["vec", "complete blood pressure normal range reference"], ["vec", "learn about blood pressure normal range"], ["hyde", "This comprehensive guide covers everything you need to know about blood pressure normal range. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "blood pressure normal range"}
{"output": [["lex", "sleep overview hygiene tips examples"], ["lex", "sleep hygiene tips best practices"], ["lex", "sleep overview hygiene tips guide"], ["vec", "learn about sleep hygiene tips"], ["vec", "guide for sleep hygiene tips"], ["hyde", "This comprehensive guide covers everything you need to know about sleep hygiene tips. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sleep hygiene tips"}
{"output": [["lex", "intermittent fasting benefits documentation"], ["lex", "intermittent overview fasting benefits guide"], ["lex", "intermittent fasting benefits best practices"], ["vec", "complete intermittent fasting benefits reference"], ["vec", "learn about intermittent fasting benefits"], ["hyde", "This comprehensive guide covers everything you need to know about intermittent fasting benefits. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "intermittent fasting benefits"}
{"output": [["lex", "anxiety overview coping strategies guide"], ["lex", "anxiety coping strategies best practices"], ["lex", "anxiety coping strategies documentation"], ["vec", "understanding anxiety coping strategies"], ["vec", "complete anxiety coping strategies reference"], ["hyde", "This comprehensive guide covers everything you need to know about anxiety coping strategies. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "anxiety coping strategies"}
{"output": [["lex", "stretching overview exercises back pain guide"], ["lex", "stretching exercises back pain best practices"], ["lex", "stretching overview exercises back pain tutorial"], ["vec", "how to stretching exercises back pain"], ["vec", "understanding stretching exercises back pain"], ["hyde", "This comprehensive guide covers everything you need to know about stretching exercises back pain. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "stretching exercises back pain"}
{"output": [["lex", "heart overview disease prevention guide"], ["lex", "heart overview disease prevention examples"], ["lex", "heart disease prevention best practices"], ["vec", "guide for heart disease prevention"], ["vec", "complete heart disease prevention reference"], ["hyde", "This comprehensive guide covers everything you need to know about heart disease prevention. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "heart disease prevention"}
{"output": [["lex", "diabetes type 2 management documentation"], ["lex", "diabetes type 2 management best practices"], ["lex", "diabetes overview type 2 management tutorial"], ["vec", "how to diabetes type 2 management"], ["vec", "guide for diabetes type 2 management"], ["hyde", "This comprehensive guide covers everything you need to know about diabetes type 2 management. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "diabetes type 2 management"}
{"output": [["lex", "meditation mental health documentation"], ["lex", "meditation overview mental health tutorial"], ["lex", "meditation overview mental health examples"], ["vec", "understanding meditation mental health"], ["vec", "learn about meditation mental health"], ["hyde", "This comprehensive guide covers everything you need to know about meditation mental health. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "meditation mental health"}
{"output": [["lex", "nutrition macros explained documentation"], ["lex", "nutrition macros explained best practices"], ["lex", "nutrition overview macros explained tutorial"], ["vec", "understanding nutrition macros explained"], ["vec", "guide for nutrition macros explained"], ["hyde", "This comprehensive guide covers everything you need to know about nutrition macros explained. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "nutrition macros explained"}
{"output": [["lex", "first aid basics best practices"], ["lex", "first overview aid basics tutorial"], ["lex", "first overview aid basics examples"], ["vec", "understanding first aid basics"], ["vec", "learn about first aid basics"], ["hyde", "This comprehensive guide covers everything you need to know about first aid basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "first aid basics"}
{"output": [["lex", "compound overview interest calculator examples"], ["lex", "compound overview interest calculator guide"], ["lex", "compound interest calculator best practices"], ["vec", "understanding compound interest calculator"], ["vec", "how to compound interest calculator"], ["hyde", "This comprehensive guide covers everything you need to know about compound interest calculator. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "compound interest calculator"}
{"output": [["lex", "stock overview market basics beginners guide"], ["lex", "stock market basics beginners documentation"], ["lex", "stock overview market basics beginners examples"], ["vec", "guide for stock market basics beginners"], ["vec", "learn about stock market basics beginners"], ["hyde", "This comprehensive guide covers everything you need to know about stock market basics beginners. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "stock market basics beginners"}
{"output": [["lex", "startup overview funding stages tutorial"], ["lex", "startup funding stages best practices"], ["lex", "startup funding stages documentation"], ["vec", "complete startup funding stages reference"], ["vec", "guide for startup funding stages"], ["hyde", "This comprehensive guide covers everything you need to know about startup funding stages. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "startup funding stages"}
{"output": [["lex", "tax deductions small business best practices"], ["lex", "tax deductions small business documentation"], ["lex", "tax overview deductions small business examples"], ["vec", "learn about tax deductions small business"], ["vec", "complete tax deductions small business reference"], ["hyde", "This comprehensive guide covers everything you need to know about tax deductions small business. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "tax deductions small business"}
{"output": [["lex", "budgeting overview methods 50 30 20 guide"], ["lex", "budgeting methods 50 30 20 best practices"], ["lex", "budgeting methods 50 30 20 documentation"], ["vec", "complete budgeting methods 50 30 20 reference"], ["vec", "how to budgeting methods 50 30 20"], ["hyde", "This comprehensive guide covers everything you need to know about budgeting methods 50 30 20. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "budgeting methods 50 30 20"}
{"output": [["lex", "cryptocurrency explained simply documentation"], ["lex", "cryptocurrency overview explained simply examples"], ["lex", "cryptocurrency overview explained simply guide"], ["vec", "how to cryptocurrency explained simply"], ["vec", "learn about cryptocurrency explained simply"], ["hyde", "This comprehensive guide covers everything you need to know about cryptocurrency explained simply. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "cryptocurrency explained simply"}
{"output": [["lex", "inflation effects on savings documentation"], ["lex", "inflation overview effects on savings tutorial"], ["lex", "inflation overview effects on savings guide"], ["vec", "guide for inflation effects on savings"], ["vec", "complete inflation effects on savings reference"], ["hyde", "This comprehensive guide covers everything you need to know about inflation effects on savings. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "inflation effects on savings"}
{"output": [["lex", "retirement overview planning strategies guide"], ["lex", "retirement planning strategies documentation"], ["lex", "retirement overview planning strategies examples"], ["vec", "understanding retirement planning strategies"], ["vec", "how to retirement planning strategies"], ["hyde", "This comprehensive guide covers everything you need to know about retirement planning strategies. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "retirement planning strategies"}
{"output": [["lex", "passive income ideas documentation"], ["lex", "passive overview income ideas guide"], ["lex", "passive overview income ideas tutorial"], ["vec", "how to passive income ideas"], ["vec", "guide for passive income ideas"], ["hyde", "This comprehensive guide covers everything you need to know about passive income ideas. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "passive income ideas"}
{"output": [["lex", "venture overview capital vs angel investors tutorial"], ["lex", "venture capital vs angel investors best practices"], ["lex", "venture overview capital vs angel investors guide"], ["vec", "learn about venture capital vs angel investors"], ["vec", "guide for venture capital vs angel investors"], ["hyde", "This comprehensive guide covers everything you need to know about venture capital vs angel investors. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "venture capital vs angel investors"}
{"output": [["lex", "balance overview sheet basics guide"], ["lex", "balance overview sheet basics tutorial"], ["lex", "balance overview sheet basics examples"], ["vec", "complete balance sheet basics reference"], ["vec", "how to balance sheet basics"], ["hyde", "This comprehensive guide covers everything you need to know about balance sheet basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "balance sheet basics"}
{"output": [["lex", "supply overview chain management tutorial"], ["lex", "supply overview chain management guide"], ["lex", "supply chain management best practices"], ["vec", "learn about supply chain management"], ["vec", "guide for supply chain management"], ["hyde", "This comprehensive guide covers everything you need to know about supply chain management. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "supply chain management"}
{"output": [["lex", "marathon overview training schedule guide"], ["lex", "marathon overview training schedule tutorial"], ["lex", "marathon training schedule best practices"], ["vec", "learn about marathon training schedule"], ["vec", "guide for marathon training schedule"], ["hyde", "This comprehensive guide covers everything you need to know about marathon training schedule. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "marathon training schedule"}
{"output": [["lex", "weightlifting overview proper form guide"], ["lex", "weightlifting proper form documentation"], ["lex", "weightlifting overview proper form examples"], ["vec", "guide for weightlifting proper form"], ["vec", "how to weightlifting proper form"], ["hyde", "This comprehensive guide covers everything you need to know about weightlifting proper form. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "weightlifting proper form"}
{"output": [["lex", "swimming overview stroke techniques tutorial"], ["lex", "swimming stroke techniques best practices"], ["lex", "swimming overview stroke techniques guide"], ["vec", "how to swimming stroke techniques"], ["vec", "complete swimming stroke techniques reference"], ["hyde", "This comprehensive guide covers everything you need to know about swimming stroke techniques. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "swimming stroke techniques"}
{"output": [["lex", "tennis serve mechanics documentation"], ["lex", "tennis overview serve mechanics tutorial"], ["lex", "tennis overview serve mechanics examples"], ["vec", "understanding tennis serve mechanics"], ["vec", "how to tennis serve mechanics"], ["hyde", "This comprehensive guide covers everything you need to know about tennis serve mechanics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "tennis serve mechanics"}
{"output": [["lex", "basketball dribbling drills documentation"], ["lex", "basketball overview dribbling drills tutorial"], ["lex", "basketball dribbling drills best practices"], ["vec", "understanding basketball dribbling drills"], ["vec", "complete basketball dribbling drills reference"], ["hyde", "This comprehensive guide covers everything you need to know about basketball dribbling drills. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "basketball dribbling drills"}
{"output": [["lex", "soccer formations tactics documentation"], ["lex", "soccer overview formations tactics tutorial"], ["lex", "soccer formations tactics best practices"], ["vec", "complete soccer formations tactics reference"], ["vec", "understanding soccer formations tactics"], ["hyde", "This comprehensive guide covers everything you need to know about soccer formations tactics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "soccer formations tactics"}
{"output": [["lex", "golf overview swing fundamentals examples"], ["lex", "golf overview swing fundamentals guide"], ["lex", "golf overview swing fundamentals tutorial"], ["vec", "how to golf swing fundamentals"], ["vec", "learn about golf swing fundamentals"], ["hyde", "This comprehensive guide covers everything you need to know about golf swing fundamentals. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "golf swing fundamentals"}
{"output": [["lex", "yoga overview poses beginners guide"], ["lex", "yoga overview poses beginners examples"], ["lex", "yoga poses beginners documentation"], ["vec", "learn about yoga poses beginners"], ["vec", "guide for yoga poses beginners"], ["hyde", "This comprehensive guide covers everything you need to know about yoga poses beginners. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "yoga poses beginners"}
{"output": [["lex", "running injury prevention best practices"], ["lex", "running overview injury prevention tutorial"], ["lex", "running overview injury prevention examples"], ["vec", "understanding running injury prevention"], ["vec", "guide for running injury prevention"], ["hyde", "This comprehensive guide covers everything you need to know about running injury prevention. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "running injury prevention"}
{"output": [["lex", "cycling overview gear ratios guide"], ["lex", "cycling overview gear ratios tutorial"], ["lex", "cycling gear ratios best practices"], ["vec", "complete cycling gear ratios reference"], ["vec", "guide for cycling gear ratios"], ["hyde", "This comprehensive guide covers everything you need to know about cycling gear ratios. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "cycling gear ratios"}
{"output": [["lex", "rock climbing grades documentation"], ["lex", "rock overview climbing grades tutorial"], ["lex", "rock overview climbing grades examples"], ["vec", "complete rock climbing grades reference"], ["vec", "how to rock climbing grades"], ["hyde", "This comprehensive guide covers everything you need to know about rock climbing grades. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "rock climbing grades"}
{"output": [["lex", "surfing overview wave types tutorial"], ["lex", "surfing overview wave types examples"], ["lex", "surfing wave types documentation"], ["vec", "guide for surfing wave types"], ["vec", "complete surfing wave types reference"], ["hyde", "This comprehensive guide covers everything you need to know about surfing wave types. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "surfing wave types"}
{"output": [["lex", "best overview time visit japan examples"], ["lex", "best time visit japan documentation"], ["lex", "best time visit japan best practices"], ["vec", "understanding best time visit japan"], ["vec", "guide for best time visit japan"], ["hyde", "This comprehensive guide covers everything you need to know about best time visit japan. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "best time visit japan"}
{"output": [["lex", "travel packing checklist documentation"], ["lex", "travel overview packing checklist tutorial"], ["lex", "travel overview packing checklist guide"], ["vec", "complete travel packing checklist reference"], ["vec", "guide for travel packing checklist"], ["hyde", "This comprehensive guide covers everything you need to know about travel packing checklist. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "travel packing checklist"}
{"output": [["lex", "budget backpacking europe documentation"], ["lex", "budget overview backpacking europe guide"], ["lex", "budget overview backpacking europe examples"], ["vec", "learn about budget backpacking europe"], ["vec", "how to budget backpacking europe"], ["hyde", "This comprehensive guide covers everything you need to know about budget backpacking europe. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "budget backpacking europe"}
{"output": [["lex", "visa requirements usa best practices"], ["lex", "visa overview requirements usa tutorial"], ["lex", "visa overview requirements usa examples"], ["vec", "guide for visa requirements usa"], ["vec", "learn about visa requirements usa"], ["hyde", "This comprehensive guide covers everything you need to know about visa requirements usa. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "visa requirements usa"}
{"output": [["lex", "jet overview lag remedies guide"], ["lex", "jet overview lag remedies examples"], ["lex", "jet lag remedies best practices"], ["vec", "understanding jet lag remedies"], ["vec", "guide for jet lag remedies"], ["hyde", "This comprehensive guide covers everything you need to know about jet lag remedies. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "jet lag remedies"}
{"output": [["lex", "road overview trip planning tips tutorial"], ["lex", "road overview trip planning tips examples"], ["lex", "road overview trip planning tips guide"], ["vec", "learn about road trip planning tips"], ["vec", "complete road trip planning tips reference"], ["hyde", "This comprehensive guide covers everything you need to know about road trip planning tips. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "road trip planning tips"}
{"output": [["lex", "solo overview travel safety tutorial"], ["lex", "solo travel safety best practices"], ["lex", "solo travel safety documentation"], ["vec", "guide for solo travel safety"], ["vec", "learn about solo travel safety"], ["hyde", "This comprehensive guide covers everything you need to know about solo travel safety. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "solo travel safety"}
{"output": [["lex", "airport overview security rules examples"], ["lex", "airport overview security rules guide"], ["lex", "airport overview security rules tutorial"], ["vec", "understanding airport security rules"], ["vec", "learn about airport security rules"], ["hyde", "This comprehensive guide covers everything you need to know about airport security rules. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "airport security rules"}
{"output": [["lex", "travel overview insurance coverage guide"], ["lex", "travel overview insurance coverage examples"], ["lex", "travel overview insurance coverage tutorial"], ["vec", "understanding travel insurance coverage"], ["vec", "how to travel insurance coverage"], ["hyde", "This comprehensive guide covers everything you need to know about travel insurance coverage. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "travel insurance coverage"}
{"output": [["lex", "language overview apps learning tutorial"], ["lex", "language overview apps learning examples"], ["lex", "language overview apps learning guide"], ["vec", "guide for language apps learning"], ["vec", "understanding language apps learning"], ["hyde", "This comprehensive guide covers everything you need to know about language apps learning. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "language apps learning"}
{"output": [["lex", "hostel overview vs hotel comparison examples"], ["lex", "hostel vs hotel comparison documentation"], ["lex", "hostel vs hotel comparison best practices"], ["vec", "understanding hostel vs hotel comparison"], ["vec", "learn about hostel vs hotel comparison"], ["hyde", "This comprehensive guide covers everything you need to know about hostel vs hotel comparison. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "hostel vs hotel comparison"}
{"output": [["lex", "travel overview photography tips examples"], ["lex", "travel overview photography tips tutorial"], ["lex", "travel photography tips documentation"], ["vec", "how to travel photography tips"], ["vec", "complete travel photography tips reference"], ["hyde", "This comprehensive guide covers everything you need to know about travel photography tips. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "travel photography tips"}
{"output": [["lex", "bread baking techniques best practices"], ["lex", "bread overview baking techniques guide"], ["lex", "bread overview baking techniques tutorial"], ["vec", "complete bread baking techniques reference"], ["vec", "guide for bread baking techniques"], ["hyde", "This comprehensive guide covers everything you need to know about bread baking techniques. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "bread baking techniques"}
{"output": [["lex", "knife overview skills basics guide"], ["lex", "knife overview skills basics examples"], ["lex", "knife skills basics best practices"], ["vec", "how to knife skills basics"], ["vec", "complete knife skills basics reference"], ["hyde", "This comprehensive guide covers everything you need to know about knife skills basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "knife skills basics"}
{"output": [["lex", "fermentation overview at home tutorial"], ["lex", "fermentation at home documentation"], ["lex", "fermentation overview at home examples"], ["vec", "complete fermentation at home reference"], ["vec", "guide for fermentation at home"], ["hyde", "This comprehensive guide covers everything you need to know about fermentation at home. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "fermentation at home"}
{"output": [["lex", "meal overview prep weekly guide"], ["lex", "meal overview prep weekly tutorial"], ["lex", "meal prep weekly documentation"], ["vec", "guide for meal prep weekly"], ["vec", "understanding meal prep weekly"], ["hyde", "This comprehensive guide covers everything you need to know about meal prep weekly. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "meal prep weekly"}
{"output": [["lex", "spice combinations guide documentation"], ["lex", "spice overview combinations guide tutorial"], ["lex", "spice overview combinations guide examples"], ["vec", "guide for spice combinations guide"], ["vec", "complete spice combinations guide reference"], ["hyde", "This comprehensive guide covers everything you need to know about spice combinations guide. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "spice combinations guide"}
{"output": [["lex", "pasta making fresh best practices"], ["lex", "pasta overview making fresh tutorial"], ["lex", "pasta overview making fresh guide"], ["vec", "guide for pasta making fresh"], ["vec", "complete pasta making fresh reference"], ["hyde", "This comprehensive guide covers everything you need to know about pasta making fresh. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "pasta making fresh"}
{"output": [["lex", "coffee overview brewing methods examples"], ["lex", "coffee overview brewing methods guide"], ["lex", "coffee brewing methods documentation"], ["vec", "complete coffee brewing methods reference"], ["vec", "learn about coffee brewing methods"], ["hyde", "This comprehensive guide covers everything you need to know about coffee brewing methods. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "coffee brewing methods"}
{"output": [["lex", "wine overview pairing basics tutorial"], ["lex", "wine overview pairing basics examples"], ["lex", "wine pairing basics best practices"], ["vec", "guide for wine pairing basics"], ["vec", "learn about wine pairing basics"], ["hyde", "This comprehensive guide covers everything you need to know about wine pairing basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "wine pairing basics"}
{"output": [["lex", "vegetarian overview protein sources guide"], ["lex", "vegetarian overview protein sources tutorial"], ["lex", "vegetarian overview protein sources examples"], ["vec", "how to vegetarian protein sources"], ["vec", "complete vegetarian protein sources reference"], ["hyde", "This comprehensive guide covers everything you need to know about vegetarian protein sources. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "vegetarian protein sources"}
{"output": [["lex", "food storage guidelines documentation"], ["lex", "food storage guidelines best practices"], ["lex", "food overview storage guidelines examples"], ["vec", "guide for food storage guidelines"], ["vec", "how to food storage guidelines"], ["hyde", "This comprehensive guide covers everything you need to know about food storage guidelines. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "food storage guidelines"}
{"output": [["lex", "sourdough overview starter maintenance examples"], ["lex", "sourdough overview starter maintenance tutorial"], ["lex", "sourdough overview starter maintenance guide"], ["vec", "how to sourdough starter maintenance"], ["vec", "learn about sourdough starter maintenance"], ["hyde", "This comprehensive guide covers everything you need to know about sourdough starter maintenance. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sourdough starter maintenance"}
{"output": [["lex", "grilling overview temperature chart guide"], ["lex", "grilling temperature chart documentation"], ["lex", "grilling overview temperature chart examples"], ["vec", "guide for grilling temperature chart"], ["vec", "understanding grilling temperature chart"], ["hyde", "This comprehensive guide covers everything you need to know about grilling temperature chart. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "grilling temperature chart"}
{"output": [["lex", "cognitive overview biases list guide"], ["lex", "cognitive overview biases list tutorial"], ["lex", "cognitive overview biases list examples"], ["vec", "complete cognitive biases list reference"], ["vec", "how to cognitive biases list"], ["hyde", "This comprehensive guide covers everything you need to know about cognitive biases list. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "cognitive biases list"}
{"output": [["lex", "attachment theory styles best practices"], ["lex", "attachment overview theory styles examples"], ["lex", "attachment theory styles documentation"], ["vec", "learn about attachment theory styles"], ["vec", "understanding attachment theory styles"], ["hyde", "This comprehensive guide covers everything you need to know about attachment theory styles. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "attachment theory styles"}
{"output": [["lex", "maslow hierarchy needs best practices"], ["lex", "maslow overview hierarchy needs tutorial"], ["lex", "maslow overview hierarchy needs examples"], ["vec", "understanding maslow hierarchy needs"], ["vec", "learn about maslow hierarchy needs"], ["hyde", "This comprehensive guide covers everything you need to know about maslow hierarchy needs. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "maslow hierarchy needs"}
{"output": [["lex", "growth overview mindset vs fixed tutorial"], ["lex", "growth overview mindset vs fixed guide"], ["lex", "growth mindset vs fixed documentation"], ["vec", "complete growth mindset vs fixed reference"], ["vec", "learn about growth mindset vs fixed"], ["hyde", "This comprehensive guide covers everything you need to know about growth mindset vs fixed. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "growth mindset vs fixed"}
{"output": [["lex", "emotional overview intelligence components guide"], ["lex", "emotional intelligence components best practices"], ["lex", "emotional overview intelligence components examples"], ["vec", "how to emotional intelligence components"], ["vec", "complete emotional intelligence components reference"], ["hyde", "This comprehensive guide covers everything you need to know about emotional intelligence components. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "emotional intelligence components"}
{"output": [["lex", "memory overview techniques mnemonics guide"], ["lex", "memory techniques mnemonics documentation"], ["lex", "memory techniques mnemonics best practices"], ["vec", "how to memory techniques mnemonics"], ["vec", "learn about memory techniques mnemonics"], ["hyde", "This comprehensive guide covers everything you need to know about memory techniques mnemonics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "memory techniques mnemonics"}
{"output": [["lex", "habit overview formation science examples"], ["lex", "habit overview formation science tutorial"], ["lex", "habit formation science documentation"], ["vec", "learn about habit formation science"], ["vec", "guide for habit formation science"], ["hyde", "This comprehensive guide covers everything you need to know about habit formation science. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "habit formation science"}
{"output": [["lex", "stress overview response fight flight guide"], ["lex", "stress overview response fight flight examples"], ["lex", "stress response fight flight documentation"], ["vec", "how to stress response fight flight"], ["vec", "understanding stress response fight flight"], ["hyde", "This comprehensive guide covers everything you need to know about stress response fight flight. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "stress response fight flight"}
{"output": [["lex", "personality types myers briggs documentation"], ["lex", "personality overview types myers briggs examples"], ["lex", "personality overview types myers briggs tutorial"], ["vec", "understanding personality types myers briggs"], ["vec", "how to personality types myers briggs"], ["hyde", "This comprehensive guide covers everything you need to know about personality types myers briggs. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "personality types myers briggs"}
{"output": [["lex", "motivation overview intrinsic extrinsic guide"], ["lex", "motivation overview intrinsic extrinsic examples"], ["lex", "motivation overview intrinsic extrinsic tutorial"], ["vec", "how to motivation intrinsic extrinsic"], ["vec", "guide for motivation intrinsic extrinsic"], ["hyde", "This comprehensive guide covers everything you need to know about motivation intrinsic extrinsic. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "motivation intrinsic extrinsic"}
{"output": [["lex", "decision overview making psychology tutorial"], ["lex", "decision making psychology best practices"], ["lex", "decision overview making psychology examples"], ["vec", "learn about decision making psychology"], ["vec", "how to decision making psychology"], ["hyde", "This comprehensive guide covers everything you need to know about decision making psychology. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "decision making psychology"}
{"output": [["lex", "procrastination overview causes solutions guide"], ["lex", "procrastination causes solutions documentation"], ["lex", "procrastination overview causes solutions examples"], ["vec", "complete procrastination causes solutions reference"], ["vec", "how to procrastination causes solutions"], ["hyde", "This comprehensive guide covers everything you need to know about procrastination causes solutions. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "procrastination causes solutions"}
{"output": [["lex", "renewable energy types documentation"], ["lex", "renewable overview energy types tutorial"], ["lex", "renewable energy types best practices"], ["vec", "complete renewable energy types reference"], ["vec", "learn about renewable energy types"], ["hyde", "This comprehensive guide covers everything you need to know about renewable energy types. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "renewable energy types"}
{"output": [["lex", "carbon footprint reduction documentation"], ["lex", "carbon footprint reduction best practices"], ["lex", "carbon overview footprint reduction tutorial"], ["vec", "guide for carbon footprint reduction"], ["vec", "learn about carbon footprint reduction"], ["hyde", "This comprehensive guide covers everything you need to know about carbon footprint reduction. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "carbon footprint reduction"}
{"output": [["lex", "composting overview basics home examples"], ["lex", "composting overview basics home guide"], ["lex", "composting overview basics home tutorial"], ["vec", "how to composting basics home"], ["vec", "complete composting basics home reference"], ["hyde", "This comprehensive guide covers everything you need to know about composting basics home. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "composting basics home"}
{"output": [["lex", "endangered species list best practices"], ["lex", "endangered overview species list examples"], ["lex", "endangered overview species list guide"], ["vec", "learn about endangered species list"], ["vec", "guide for endangered species list"], ["hyde", "This comprehensive guide covers everything you need to know about endangered species list. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "endangered species list"}
{"output": [["lex", "recycling symbols meaning documentation"], ["lex", "recycling overview symbols meaning examples"], ["lex", "recycling symbols meaning best practices"], ["vec", "complete recycling symbols meaning reference"], ["vec", "how to recycling symbols meaning"], ["hyde", "This comprehensive guide covers everything you need to know about recycling symbols meaning. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recycling symbols meaning"}
{"output": [["lex", "ocean overview plastic pollution examples"], ["lex", "ocean overview plastic pollution guide"], ["lex", "ocean plastic pollution documentation"], ["vec", "learn about ocean plastic pollution"], ["vec", "guide for ocean plastic pollution"], ["hyde", "This comprehensive guide covers everything you need to know about ocean plastic pollution. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "ocean plastic pollution"}
{"output": [["lex", "deforestation effects best practices"], ["lex", "deforestation overview effects tutorial"], ["lex", "deforestation overview effects guide"], ["vec", "understanding deforestation effects"], ["vec", "guide for deforestation effects"], ["hyde", "This comprehensive guide covers everything you need to know about deforestation effects. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "deforestation effects"}
{"output": [["lex", "sustainable living tips best practices"], ["lex", "sustainable living tips documentation"], ["lex", "sustainable overview living tips guide"], ["vec", "learn about sustainable living tips"], ["vec", "complete sustainable living tips reference"], ["hyde", "This comprehensive guide covers everything you need to know about sustainable living tips. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sustainable living tips"}
{"output": [["lex", "wildlife overview conservation efforts guide"], ["lex", "wildlife overview conservation efforts examples"], ["lex", "wildlife conservation efforts documentation"], ["vec", "how to wildlife conservation efforts"], ["vec", "complete wildlife conservation efforts reference"], ["hyde", "This comprehensive guide covers everything you need to know about wildlife conservation efforts. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "wildlife conservation efforts"}
{"output": [["lex", "solar overview panel installation examples"], ["lex", "solar overview panel installation guide"], ["lex", "solar panel installation documentation"], ["vec", "complete solar panel installation reference"], ["vec", "how to solar panel installation"], ["hyde", "This comprehensive guide covers everything you need to know about solar panel installation. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "solar panel installation"}
{"output": [["lex", "water overview conservation methods examples"], ["lex", "water overview conservation methods guide"], ["lex", "water conservation methods documentation"], ["vec", "guide for water conservation methods"], ["vec", "learn about water conservation methods"], ["hyde", "This comprehensive guide covers everything you need to know about water conservation methods. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "water conservation methods"}
{"output": [["lex", "biodiversity importance best practices"], ["lex", "biodiversity importance documentation"], ["lex", "biodiversity overview importance examples"], ["vec", "complete biodiversity importance reference"], ["vec", "understanding biodiversity importance"], ["hyde", "This comprehensive guide covers everything you need to know about biodiversity importance. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "biodiversity importance"}
{"output": [["lex", "calculus derivatives explained best practices"], ["lex", "calculus overview derivatives explained examples"], ["lex", "calculus derivatives explained documentation"], ["vec", "learn about calculus derivatives explained"], ["vec", "how to calculus derivatives explained"], ["hyde", "This comprehensive guide covers everything you need to know about calculus derivatives explained. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "calculus derivatives explained"}
{"output": [["lex", "probability overview basics statistics tutorial"], ["lex", "probability basics statistics documentation"], ["lex", "probability basics statistics best practices"], ["vec", "guide for probability basics statistics"], ["vec", "how to probability basics statistics"], ["hyde", "This comprehensive guide covers everything you need to know about probability basics statistics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "probability basics statistics"}
{"output": [["lex", "linear overview algebra matrices guide"], ["lex", "linear algebra matrices documentation"], ["lex", "linear overview algebra matrices tutorial"], ["vec", "how to linear algebra matrices"], ["vec", "complete linear algebra matrices reference"], ["hyde", "This comprehensive guide covers everything you need to know about linear algebra matrices. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "linear algebra matrices"}
{"output": [["lex", "geometry proofs theorems documentation"], ["lex", "geometry proofs theorems best practices"], ["lex", "geometry overview proofs theorems examples"], ["vec", "how to geometry proofs theorems"], ["vec", "complete geometry proofs theorems reference"], ["hyde", "This comprehensive guide covers everything you need to know about geometry proofs theorems. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "geometry proofs theorems"}
{"output": [["lex", "logarithms overview rules properties examples"], ["lex", "logarithms rules properties best practices"], ["lex", "logarithms rules properties documentation"], ["vec", "how to logarithms rules properties"], ["vec", "understanding logarithms rules properties"], ["hyde", "This comprehensive guide covers everything you need to know about logarithms rules properties. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "logarithms rules properties"}
{"output": [["lex", "trigonometry overview identities guide"], ["lex", "trigonometry identities documentation"], ["lex", "trigonometry identities best practices"], ["vec", "learn about trigonometry identities"], ["vec", "how to trigonometry identities"], ["hyde", "This comprehensive guide covers everything you need to know about trigonometry identities. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "trigonometry identities"}
{"output": [["lex", "set theory basics documentation"], ["lex", "set overview theory basics guide"], ["lex", "set overview theory basics tutorial"], ["vec", "understanding set theory basics"], ["vec", "complete set theory basics reference"], ["hyde", "This comprehensive guide covers everything you need to know about set theory basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "set theory basics"}
{"output": [["lex", "prime numbers properties best practices"], ["lex", "prime overview numbers properties guide"], ["lex", "prime numbers properties documentation"], ["vec", "complete prime numbers properties reference"], ["vec", "guide for prime numbers properties"], ["hyde", "This comprehensive guide covers everything you need to know about prime numbers properties. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "prime numbers properties"}
{"output": [["lex", "fractions overview decimals conversion guide"], ["lex", "fractions overview decimals conversion tutorial"], ["lex", "fractions decimals conversion best practices"], ["vec", "guide for fractions decimals conversion"], ["vec", "complete fractions decimals conversion reference"], ["hyde", "This comprehensive guide covers everything you need to know about fractions decimals conversion. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "fractions decimals conversion"}
{"output": [["lex", "algebra overview equations solving tutorial"], ["lex", "algebra overview equations solving guide"], ["lex", "algebra equations solving best practices"], ["vec", "understanding algebra equations solving"], ["vec", "learn about algebra equations solving"], ["hyde", "This comprehensive guide covers everything you need to know about algebra equations solving. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "algebra equations solving"}
{"output": [["lex", "graph overview theory fundamentals tutorial"], ["lex", "graph theory fundamentals documentation"], ["lex", "graph overview theory fundamentals examples"], ["vec", "complete graph theory fundamentals reference"], ["vec", "understanding graph theory fundamentals"], ["hyde", "This comprehensive guide covers everything you need to know about graph theory fundamentals. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "graph theory fundamentals"}
{"output": [["lex", "combinatorics permutations best practices"], ["lex", "combinatorics overview permutations tutorial"], ["lex", "combinatorics permutations documentation"], ["vec", "understanding combinatorics permutations"], ["vec", "how to combinatorics permutations"], ["hyde", "This comprehensive guide covers everything you need to know about combinatorics permutations. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "combinatorics permutations"}
{"output": [["lex", "spanish verb conjugation documentation"], ["lex", "spanish overview verb conjugation guide"], ["lex", "spanish overview verb conjugation examples"], ["vec", "how to spanish verb conjugation"], ["vec", "learn about spanish verb conjugation"], ["hyde", "This comprehensive guide covers everything you need to know about spanish verb conjugation. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "spanish verb conjugation"}
{"output": [["lex", "japanese hiragana katakana best practices"], ["lex", "japanese overview hiragana katakana guide"], ["lex", "japanese hiragana katakana documentation"], ["vec", "complete japanese hiragana katakana reference"], ["vec", "guide for japanese hiragana katakana"], ["hyde", "This comprehensive guide covers everything you need to know about japanese hiragana katakana. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "japanese hiragana katakana"}
{"output": [["lex", "french overview pronunciation rules guide"], ["lex", "french pronunciation rules documentation"], ["lex", "french overview pronunciation rules examples"], ["vec", "learn about french pronunciation rules"], ["vec", "how to french pronunciation rules"], ["hyde", "This comprehensive guide covers everything you need to know about french pronunciation rules. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "french pronunciation rules"}
{"output": [["lex", "german overview cases grammar examples"], ["lex", "german overview cases grammar guide"], ["lex", "german overview cases grammar tutorial"], ["vec", "understanding german cases grammar"], ["vec", "how to german cases grammar"], ["hyde", "This comprehensive guide covers everything you need to know about german cases grammar. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "german cases grammar"}
{"output": [["lex", "mandarin overview tones guide guide"], ["lex", "mandarin tones guide best practices"], ["lex", "mandarin overview tones guide examples"], ["vec", "guide for mandarin tones guide"], ["vec", "understanding mandarin tones guide"], ["hyde", "This comprehensive guide covers everything you need to know about mandarin tones guide. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "mandarin tones guide"}
{"output": [["lex", "latin phrases common documentation"], ["lex", "latin overview phrases common tutorial"], ["lex", "latin overview phrases common examples"], ["vec", "learn about latin phrases common"], ["vec", "guide for latin phrases common"], ["hyde", "This comprehensive guide covers everything you need to know about latin phrases common. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latin phrases common"}
{"output": [["lex", "arabic overview alphabet basics guide"], ["lex", "arabic overview alphabet basics examples"], ["lex", "arabic alphabet basics best practices"], ["vec", "complete arabic alphabet basics reference"], ["vec", "understanding arabic alphabet basics"], ["hyde", "This comprehensive guide covers everything you need to know about arabic alphabet basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "arabic alphabet basics"}
{"output": [["lex", "english overview idioms meanings guide"], ["lex", "english overview idioms meanings examples"], ["lex", "english idioms meanings documentation"], ["vec", "how to english idioms meanings"], ["vec", "understanding english idioms meanings"], ["hyde", "This comprehensive guide covers everything you need to know about english idioms meanings. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "english idioms meanings"}
{"output": [["lex", "sign language basics documentation"], ["lex", "sign language basics best practices"], ["lex", "sign overview language basics examples"], ["vec", "guide for sign language basics"], ["vec", "understanding sign language basics"], ["hyde", "This comprehensive guide covers everything you need to know about sign language basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sign language basics"}
{"output": [["lex", "etymology overview word origins tutorial"], ["lex", "etymology overview word origins examples"], ["lex", "etymology word origins documentation"], ["vec", "how to etymology word origins"], ["vec", "guide for etymology word origins"], ["hyde", "This comprehensive guide covers everything you need to know about etymology word origins. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "etymology word origins"}
{"output": [["lex", "grammar punctuation rules best practices"], ["lex", "grammar punctuation rules documentation"], ["lex", "grammar overview punctuation rules tutorial"], ["vec", "guide for grammar punctuation rules"], ["vec", "understanding grammar punctuation rules"], ["hyde", "This comprehensive guide covers everything you need to know about grammar punctuation rules. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "grammar punctuation rules"}
{"output": [["lex", "writing overview style guides guide"], ["lex", "writing overview style guides examples"], ["lex", "writing overview style guides tutorial"], ["vec", "complete writing style guides reference"], ["vec", "learn about writing style guides"], ["hyde", "This comprehensive guide covers everything you need to know about writing style guides. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "writing style guides"}
{"output": [["lex", "woodworking joints types documentation"], ["lex", "woodworking overview joints types guide"], ["lex", "woodworking overview joints types tutorial"], ["vec", "how to woodworking joints types"], ["vec", "learn about woodworking joints types"], ["hyde", "This comprehensive guide covers everything you need to know about woodworking joints types. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "woodworking joints types"}
{"output": [["lex", "knitting patterns beginners documentation"], ["lex", "knitting overview patterns beginners examples"], ["lex", "knitting overview patterns beginners tutorial"], ["vec", "guide for knitting patterns beginners"], ["vec", "learn about knitting patterns beginners"], ["hyde", "This comprehensive guide covers everything you need to know about knitting patterns beginners. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "knitting patterns beginners"}
{"output": [["lex", "home overview repair basics guide"], ["lex", "home overview repair basics tutorial"], ["lex", "home repair basics documentation"], ["vec", "how to home repair basics"], ["vec", "complete home repair basics reference"], ["hyde", "This comprehensive guide covers everything you need to know about home repair basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "home repair basics"}
{"output": [["lex", "sewing overview machine threading tutorial"], ["lex", "sewing overview machine threading examples"], ["lex", "sewing machine threading documentation"], ["vec", "complete sewing machine threading reference"], ["vec", "learn about sewing machine threading"], ["hyde", "This comprehensive guide covers everything you need to know about sewing machine threading. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "sewing machine threading"}
{"output": [["lex", "painting overview techniques acrylic guide"], ["lex", "painting overview techniques acrylic examples"], ["lex", "painting techniques acrylic best practices"], ["vec", "learn about painting techniques acrylic"], ["vec", "how to painting techniques acrylic"], ["hyde", "This comprehensive guide covers everything you need to know about painting techniques acrylic. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "painting techniques acrylic"}
{"output": [["lex", "pottery overview wheel basics guide"], ["lex", "pottery overview wheel basics tutorial"], ["lex", "pottery overview wheel basics examples"], ["vec", "learn about pottery wheel basics"], ["vec", "complete pottery wheel basics reference"], ["hyde", "This comprehensive guide covers everything you need to know about pottery wheel basics. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "pottery wheel basics"}
{"output": [["lex", "electronics overview soldering guide guide"], ["lex", "electronics overview soldering guide examples"], ["lex", "electronics soldering guide documentation"], ["vec", "learn about electronics soldering guide"], ["vec", "guide for electronics soldering guide"], ["hyde", "This comprehensive guide covers everything you need to know about electronics soldering guide. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "electronics soldering guide"}
{"output": [["lex", "gardening soil preparation best practices"], ["lex", "gardening overview soil preparation guide"], ["lex", "gardening soil preparation documentation"], ["vec", "learn about gardening soil preparation"], ["vec", "complete gardening soil preparation reference"], ["hyde", "This comprehensive guide covers everything you need to know about gardening soil preparation. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "gardening soil preparation"}
{"output": [["lex", "candle making supplies best practices"], ["lex", "candle making supplies documentation"], ["lex", "candle overview making supplies examples"], ["vec", "understanding candle making supplies"], ["vec", "guide for candle making supplies"], ["hyde", "This comprehensive guide covers everything you need to know about candle making supplies. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "candle making supplies"}
{"output": [["lex", "leather overview crafting tools tutorial"], ["lex", "leather overview crafting tools guide"], ["lex", "leather crafting tools documentation"], ["vec", "guide for leather crafting tools"], ["vec", "complete leather crafting tools reference"], ["hyde", "This comprehensive guide covers everything you need to know about leather crafting tools. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "leather crafting tools"}
{"output": [["lex", "origami overview folding instructions tutorial"], ["lex", "origami folding instructions best practices"], ["lex", "origami folding instructions documentation"], ["vec", "complete origami folding instructions reference"], ["vec", "understanding origami folding instructions"], ["hyde", "This comprehensive guide covers everything you need to know about origami folding instructions. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "origami folding instructions"}
{"output": [["lex", "furniture overview restoration tips guide"], ["lex", "furniture overview restoration tips tutorial"], ["lex", "furniture overview restoration tips examples"], ["vec", "understanding furniture restoration tips"], ["vec", "learn about furniture restoration tips"], ["hyde", "This comprehensive guide covers everything you need to know about furniture restoration tips. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "furniture restoration tips"}
{"output": [["lex", "recent overview GitHub changes 2026 tutorial"], ["lex", "recent overview GitHub changes 2026 examples"], ["lex", "recent overview GitHub changes 2026 guide"], ["vec", "complete recent GitHub changes 2026 reference"], ["vec", "understanding recent GitHub changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent GitHub changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent GitHub changes 2026"}
{"output": [["lex", "recent overview Kubernetes changes 2025 guide"], ["lex", "recent overview Kubernetes changes 2025 tutorial"], ["lex", "recent Kubernetes changes 2025 documentation"], ["vec", "learn about recent Kubernetes changes 2025"], ["vec", "understanding recent Kubernetes changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent Kubernetes changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Kubernetes changes 2025"}
{"output": [["lex", "climate overview tech recent news November tutorial"], ["lex", "climate tech recent news November documentation"], ["lex", "climate overview tech recent news November guide"], ["vec", "complete climate tech recent news November reference"], ["vec", "learn about climate tech recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech recent news November"}
{"output": [["lex", "React overview latest version release tutorial"], ["lex", "React overview latest version release examples"], ["lex", "React latest version release best practices"], ["vec", "how to React latest version release"], ["vec", "complete React latest version release reference"], ["hyde", "This comprehensive guide covers everything you need to know about React latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React latest version release"}
{"output": [["lex", "AI recent news October documentation"], ["lex", "AI overview recent news October tutorial"], ["lex", "AI overview recent news October examples"], ["vec", "how to AI recent news October"], ["vec", "complete AI recent news October reference"], ["hyde", "This comprehensive guide covers everything you need to know about AI recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI recent news October"}
{"output": [["lex", "recent overview Kubernetes changes 2026 examples"], ["lex", "recent overview Kubernetes changes 2026 guide"], ["lex", "recent Kubernetes changes 2026 documentation"], ["vec", "complete recent Kubernetes changes 2026 reference"], ["vec", "guide for recent Kubernetes changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent Kubernetes changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Kubernetes changes 2026"}
{"output": [["lex", "GitHub latest version release best practices"], ["lex", "GitHub overview latest version release tutorial"], ["lex", "GitHub overview latest version release guide"], ["vec", "guide for GitHub latest version release"], ["vec", "complete GitHub latest version release reference"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub latest version release"}
{"output": [["lex", "latest overview Python updates guide"], ["lex", "latest Python updates documentation"], ["lex", "latest Python updates best practices"], ["vec", "how to latest Python updates"], ["vec", "complete latest Python updates reference"], ["hyde", "This comprehensive guide covers everything you need to know about latest Python updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Python updates"}
{"output": [["lex", "Shopify overview recent news December guide"], ["lex", "Shopify overview recent news December tutorial"], ["lex", "Shopify overview recent news December examples"], ["vec", "guide for Shopify recent news December"], ["vec", "complete Shopify recent news December reference"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify recent news December"}
{"output": [["lex", "Vue overview recent news November examples"], ["lex", "Vue recent news November best practices"], ["lex", "Vue recent news November documentation"], ["vec", "how to Vue recent news November"], ["vec", "learn about Vue recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Vue recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue recent news November"}
{"output": [["lex", "Next.js overview changelog 2025 guide"], ["lex", "Next.js overview changelog 2025 examples"], ["lex", "Next.js changelog 2025 documentation"], ["vec", "learn about Next.js changelog 2025"], ["vec", "understanding Next.js changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js changelog 2025"}
{"output": [["lex", "Docker latest version release best practices"], ["lex", "Docker overview latest version release tutorial"], ["lex", "Docker latest version release documentation"], ["vec", "how to Docker latest version release"], ["vec", "understanding Docker latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Docker latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker latest version release"}
{"output": [["lex", "Kubernetes changelog 2025 best practices"], ["lex", "Kubernetes changelog 2025 documentation"], ["lex", "Kubernetes overview changelog 2025 examples"], ["vec", "how to Kubernetes changelog 2025"], ["vec", "learn about Kubernetes changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes changelog 2025"}
{"output": [["lex", "Docker overview new features 2025 guide"], ["lex", "Docker new features 2025 best practices"], ["lex", "Docker overview new features 2025 tutorial"], ["vec", "understanding Docker new features 2025"], ["vec", "learn about Docker new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Docker new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker new features 2025"}
{"output": [["lex", "what changed in Vue 2025 best practices"], ["lex", "what overview changed in Vue 2025 guide"], ["lex", "what changed in Vue 2025 documentation"], ["vec", "how to what changed in Vue 2025"], ["vec", "learn about what changed in Vue 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Vue 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Vue 2025"}
{"output": [["lex", "AI new features 2025 documentation"], ["lex", "AI new features 2025 best practices"], ["lex", "AI overview new features 2025 tutorial"], ["vec", "how to AI new features 2025"], ["vec", "learn about AI new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about AI new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI new features 2025"}
{"output": [["lex", "what overview changed in Vue 2026 tutorial"], ["lex", "what overview changed in Vue 2026 examples"], ["lex", "what overview changed in Vue 2026 guide"], ["vec", "learn about what changed in Vue 2026"], ["vec", "understanding what changed in Vue 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Vue 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Vue 2026"}
{"output": [["lex", "recent overview AI changes 2025 tutorial"], ["lex", "recent overview AI changes 2025 guide"], ["lex", "recent AI changes 2025 best practices"], ["vec", "understanding recent AI changes 2025"], ["vec", "complete recent AI changes 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about recent AI changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent AI changes 2025"}
{"output": [["lex", "Vue recent news October documentation"], ["lex", "Vue overview recent news October guide"], ["lex", "Vue overview recent news October tutorial"], ["vec", "guide for Vue recent news October"], ["vec", "learn about Vue recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about Vue recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue recent news October"}
{"output": [["lex", "what overview changed in Next.js 2026 examples"], ["lex", "what changed in Next.js 2026 documentation"], ["lex", "what changed in Next.js 2026 best practices"], ["vec", "complete what changed in Next.js 2026 reference"], ["vec", "how to what changed in Next.js 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Next.js 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Next.js 2026"}
{"output": [["lex", "Docker changelog 2026 best practices"], ["lex", "Docker changelog 2026 documentation"], ["lex", "Docker overview changelog 2026 examples"], ["vec", "understanding Docker changelog 2026"], ["vec", "complete Docker changelog 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Docker changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker changelog 2026"}
{"output": [["lex", "Python recent news November documentation"], ["lex", "Python overview recent news November tutorial"], ["lex", "Python recent news November best practices"], ["vec", "understanding Python recent news November"], ["vec", "how to Python recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Python recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python recent news November"}
{"output": [["lex", "recent Python changes 2026 best practices"], ["lex", "recent Python changes 2026 documentation"], ["lex", "recent overview Python changes 2026 guide"], ["vec", "complete recent Python changes 2026 reference"], ["vec", "guide for recent Python changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent Python changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Python changes 2026"}
{"output": [["lex", "climate tech changelog 2026 documentation"], ["lex", "climate overview tech changelog 2026 examples"], ["lex", "climate tech changelog 2026 best practices"], ["vec", "guide for climate tech changelog 2026"], ["vec", "learn about climate tech changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech changelog 2026"}
{"output": [["lex", "GitHub changelog 2026 documentation"], ["lex", "GitHub overview changelog 2026 examples"], ["lex", "GitHub overview changelog 2026 guide"], ["vec", "guide for GitHub changelog 2026"], ["vec", "complete GitHub changelog 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub changelog 2026"}
{"output": [["lex", "Shopify overview latest version release guide"], ["lex", "Shopify overview latest version release examples"], ["lex", "Shopify overview latest version release tutorial"], ["vec", "how to Shopify latest version release"], ["vec", "guide for Shopify latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify latest version release"}
{"output": [["lex", "recent Python changes 2025 best practices"], ["lex", "recent overview Python changes 2025 examples"], ["lex", "recent overview Python changes 2025 tutorial"], ["vec", "understanding recent Python changes 2025"], ["vec", "guide for recent Python changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent Python changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Python changes 2025"}
{"output": [["lex", "recent overview AWS changes 2025 guide"], ["lex", "recent AWS changes 2025 best practices"], ["lex", "recent overview AWS changes 2025 examples"], ["vec", "complete recent AWS changes 2025 reference"], ["vec", "guide for recent AWS changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent AWS changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent AWS changes 2025"}
{"output": [["lex", "climate tech recent news October documentation"], ["lex", "climate tech recent news October best practices"], ["lex", "climate overview tech recent news October guide"], ["vec", "guide for climate tech recent news October"], ["vec", "understanding climate tech recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech recent news October"}
{"output": [["lex", "Python overview changelog 2025 tutorial"], ["lex", "Python overview changelog 2025 examples"], ["lex", "Python changelog 2025 best practices"], ["vec", "how to Python changelog 2025"], ["vec", "complete Python changelog 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Python changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python changelog 2025"}
{"output": [["lex", "latest AI updates best practices"], ["lex", "latest overview AI updates guide"], ["lex", "latest overview AI updates tutorial"], ["vec", "understanding latest AI updates"], ["vec", "learn about latest AI updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest AI updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest AI updates"}
{"output": [["lex", "Vue overview recent news December examples"], ["lex", "Vue overview recent news December tutorial"], ["lex", "Vue recent news December best practices"], ["vec", "understanding Vue recent news December"], ["vec", "learn about Vue recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about Vue recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue recent news December"}
{"output": [["lex", "React recent news October documentation"], ["lex", "React recent news October best practices"], ["lex", "React overview recent news October examples"], ["vec", "how to React recent news October"], ["vec", "guide for React recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about React recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React recent news October"}
{"output": [["lex", "recent overview space exploration changes 2025 guide"], ["lex", "recent space exploration changes 2025 best practices"], ["lex", "recent overview space exploration changes 2025 examples"], ["vec", "guide for recent space exploration changes 2025"], ["vec", "understanding recent space exploration changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent space exploration changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent space exploration changes 2025"}
{"output": [["lex", "space overview exploration latest version release tutorial"], ["lex", "space overview exploration latest version release guide"], ["lex", "space exploration latest version release documentation"], ["vec", "understanding space exploration latest version release"], ["vec", "complete space exploration latest version release reference"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration latest version release"}
{"output": [["lex", "recent overview machine learning changes 2026 examples"], ["lex", "recent overview machine learning changes 2026 guide"], ["lex", "recent machine learning changes 2026 best practices"], ["vec", "understanding recent machine learning changes 2026"], ["vec", "how to recent machine learning changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent machine learning changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent machine learning changes 2026"}
{"output": [["lex", "machine learning recent news December documentation"], ["lex", "machine overview learning recent news December guide"], ["lex", "machine learning recent news December best practices"], ["vec", "understanding machine learning recent news December"], ["vec", "learn about machine learning recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning recent news December"}
{"output": [["lex", "latest overview GitHub updates guide"], ["lex", "latest GitHub updates documentation"], ["lex", "latest GitHub updates best practices"], ["vec", "understanding latest GitHub updates"], ["vec", "how to latest GitHub updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest GitHub updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest GitHub updates"}
{"output": [["lex", "Vue overview changelog 2026 examples"], ["lex", "Vue changelog 2026 documentation"], ["lex", "Vue changelog 2026 best practices"], ["vec", "learn about Vue changelog 2026"], ["vec", "how to Vue changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Vue changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue changelog 2026"}
{"output": [["lex", "recent Docker changes 2025 documentation"], ["lex", "recent Docker changes 2025 best practices"], ["lex", "recent overview Docker changes 2025 guide"], ["vec", "complete recent Docker changes 2025 reference"], ["vec", "how to recent Docker changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent Docker changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Docker changes 2025"}
{"output": [["lex", "what overview changed in GitHub 2026 tutorial"], ["lex", "what overview changed in GitHub 2026 guide"], ["lex", "what changed in GitHub 2026 documentation"], ["vec", "understanding what changed in GitHub 2026"], ["vec", "guide for what changed in GitHub 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in GitHub 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in GitHub 2026"}
{"output": [["lex", "Shopify overview recent news October guide"], ["lex", "Shopify recent news October documentation"], ["lex", "Shopify overview recent news October tutorial"], ["vec", "learn about Shopify recent news October"], ["vec", "complete Shopify recent news October reference"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify recent news October"}
{"output": [["lex", "recent overview GitHub changes 2025 guide"], ["lex", "recent GitHub changes 2025 best practices"], ["lex", "recent overview GitHub changes 2025 tutorial"], ["vec", "guide for recent GitHub changes 2025"], ["vec", "learn about recent GitHub changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent GitHub changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent GitHub changes 2025"}
{"output": [["lex", "Next.js overview changelog 2026 tutorial"], ["lex", "Next.js changelog 2026 documentation"], ["lex", "Next.js changelog 2026 best practices"], ["vec", "guide for Next.js changelog 2026"], ["vec", "complete Next.js changelog 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js changelog 2026"}
{"output": [["lex", "what overview changed in TypeScript 2026 examples"], ["lex", "what changed in TypeScript 2026 best practices"], ["lex", "what changed in TypeScript 2026 documentation"], ["vec", "complete what changed in TypeScript 2026 reference"], ["vec", "guide for what changed in TypeScript 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in TypeScript 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in TypeScript 2026"}
{"output": [["lex", "Python new features 2026 best practices"], ["lex", "Python overview new features 2026 examples"], ["lex", "Python overview new features 2026 guide"], ["vec", "guide for Python new features 2026"], ["vec", "complete Python new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Python new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python new features 2026"}
{"output": [["lex", "climate overview tech changelog 2025 tutorial"], ["lex", "climate tech changelog 2025 documentation"], ["lex", "climate overview tech changelog 2025 examples"], ["vec", "guide for climate tech changelog 2025"], ["vec", "how to climate tech changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech changelog 2025"}
{"output": [["lex", "GitHub recent news December best practices"], ["lex", "GitHub overview recent news December guide"], ["lex", "GitHub overview recent news December examples"], ["vec", "learn about GitHub recent news December"], ["vec", "how to GitHub recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub recent news December"}
{"output": [["lex", "Kubernetes new features 2026 documentation"], ["lex", "Kubernetes overview new features 2026 tutorial"], ["lex", "Kubernetes overview new features 2026 guide"], ["vec", "understanding Kubernetes new features 2026"], ["vec", "guide for Kubernetes new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes new features 2026"}
{"output": [["lex", "Kubernetes recent news October best practices"], ["lex", "Kubernetes overview recent news October guide"], ["lex", "Kubernetes recent news October documentation"], ["vec", "how to Kubernetes recent news October"], ["vec", "complete Kubernetes recent news October reference"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes recent news October"}
{"output": [["lex", "TypeScript recent news October best practices"], ["lex", "TypeScript overview recent news October guide"], ["lex", "TypeScript recent news October documentation"], ["vec", "understanding TypeScript recent news October"], ["vec", "complete TypeScript recent news October reference"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript recent news October"}
{"output": [["lex", "Docker recent news October documentation"], ["lex", "Docker overview recent news October examples"], ["lex", "Docker overview recent news October tutorial"], ["vec", "complete Docker recent news October reference"], ["vec", "learn about Docker recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about Docker recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker recent news October"}
{"output": [["lex", "space overview exploration changelog 2025 guide"], ["lex", "space overview exploration changelog 2025 tutorial"], ["lex", "space exploration changelog 2025 documentation"], ["vec", "complete space exploration changelog 2025 reference"], ["vec", "understanding space exploration changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration changelog 2025"}
{"output": [["lex", "Vue latest version release documentation"], ["lex", "Vue latest version release best practices"], ["lex", "Vue overview latest version release examples"], ["vec", "complete Vue latest version release reference"], ["vec", "learn about Vue latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Vue latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue latest version release"}
{"output": [["lex", "Next.js new features 2025 best practices"], ["lex", "Next.js overview new features 2025 guide"], ["lex", "Next.js overview new features 2025 tutorial"], ["vec", "learn about Next.js new features 2025"], ["vec", "complete Next.js new features 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js new features 2025"}
{"output": [["lex", "climate overview tech new features 2025 guide"], ["lex", "climate overview tech new features 2025 tutorial"], ["lex", "climate overview tech new features 2025 examples"], ["vec", "learn about climate tech new features 2025"], ["vec", "understanding climate tech new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech new features 2025"}
{"output": [["lex", "what overview changed in climate tech 2026 examples"], ["lex", "what changed in climate tech 2026 documentation"], ["lex", "what overview changed in climate tech 2026 tutorial"], ["vec", "how to what changed in climate tech 2026"], ["vec", "complete what changed in climate tech 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in climate tech 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in climate tech 2026"}
{"output": [["lex", "what changed in space exploration 2026 best practices"], ["lex", "what overview changed in space exploration 2026 tutorial"], ["lex", "what overview changed in space exploration 2026 examples"], ["vec", "how to what changed in space exploration 2026"], ["vec", "understanding what changed in space exploration 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in space exploration 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in space exploration 2026"}
{"output": [["lex", "Shopify overview new features 2025 guide"], ["lex", "Shopify new features 2025 documentation"], ["lex", "Shopify new features 2025 best practices"], ["vec", "understanding Shopify new features 2025"], ["vec", "complete Shopify new features 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify new features 2025"}
{"output": [["lex", "climate overview tech new features 2026 guide"], ["lex", "climate tech new features 2026 best practices"], ["lex", "climate overview tech new features 2026 tutorial"], ["vec", "understanding climate tech new features 2026"], ["vec", "how to climate tech new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech new features 2026"}
{"output": [["lex", "machine overview learning recent news October guide"], ["lex", "machine learning recent news October best practices"], ["lex", "machine overview learning recent news October tutorial"], ["vec", "complete machine learning recent news October reference"], ["vec", "learn about machine learning recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning recent news October"}
{"output": [["lex", "latest React updates documentation"], ["lex", "latest overview React updates examples"], ["lex", "latest React updates best practices"], ["vec", "learn about latest React updates"], ["vec", "understanding latest React updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest React updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest React updates"}
{"output": [["lex", "TypeScript latest version release best practices"], ["lex", "TypeScript overview latest version release examples"], ["lex", "TypeScript overview latest version release tutorial"], ["vec", "guide for TypeScript latest version release"], ["vec", "complete TypeScript latest version release reference"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript latest version release"}
{"output": [["lex", "Next.js latest version release best practices"], ["lex", "Next.js overview latest version release guide"], ["lex", "Next.js overview latest version release examples"], ["vec", "how to Next.js latest version release"], ["vec", "guide for Next.js latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js latest version release"}
{"output": [["lex", "what overview changed in Kubernetes 2026 tutorial"], ["lex", "what changed in Kubernetes 2026 best practices"], ["lex", "what overview changed in Kubernetes 2026 guide"], ["vec", "understanding what changed in Kubernetes 2026"], ["vec", "complete what changed in Kubernetes 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Kubernetes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Kubernetes 2026"}
{"output": [["lex", "recent React changes 2026 documentation"], ["lex", "recent React changes 2026 best practices"], ["lex", "recent overview React changes 2026 examples"], ["vec", "understanding recent React changes 2026"], ["vec", "learn about recent React changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent React changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent React changes 2026"}
{"output": [["lex", "recent climate tech changes 2025 best practices"], ["lex", "recent overview climate tech changes 2025 guide"], ["lex", "recent overview climate tech changes 2025 tutorial"], ["vec", "complete recent climate tech changes 2025 reference"], ["vec", "guide for recent climate tech changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent climate tech changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent climate tech changes 2025"}
{"output": [["lex", "what changed in Shopify 2026 best practices"], ["lex", "what changed in Shopify 2026 documentation"], ["lex", "what overview changed in Shopify 2026 guide"], ["vec", "complete what changed in Shopify 2026 reference"], ["vec", "learn about what changed in Shopify 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Shopify 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Shopify 2026"}
{"output": [["lex", "Kubernetes changelog 2026 documentation"], ["lex", "Kubernetes overview changelog 2026 examples"], ["lex", "Kubernetes overview changelog 2026 tutorial"], ["vec", "guide for Kubernetes changelog 2026"], ["vec", "understanding Kubernetes changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes changelog 2026"}
{"output": [["lex", "Shopify overview recent news November tutorial"], ["lex", "Shopify overview recent news November examples"], ["lex", "Shopify recent news November best practices"], ["vec", "learn about Shopify recent news November"], ["vec", "guide for Shopify recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify recent news November"}
{"output": [["lex", "GitHub overview recent news October tutorial"], ["lex", "GitHub recent news October best practices"], ["lex", "GitHub overview recent news October guide"], ["vec", "guide for GitHub recent news October"], ["vec", "learn about GitHub recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub recent news October"}
{"output": [["lex", "Kubernetes overview recent news December examples"], ["lex", "Kubernetes overview recent news December guide"], ["lex", "Kubernetes recent news December documentation"], ["vec", "how to Kubernetes recent news December"], ["vec", "complete Kubernetes recent news December reference"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes recent news December"}
{"output": [["lex", "what changed in Docker 2025 best practices"], ["lex", "what overview changed in Docker 2025 guide"], ["lex", "what overview changed in Docker 2025 examples"], ["vec", "understanding what changed in Docker 2025"], ["vec", "learn about what changed in Docker 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Docker 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Docker 2025"}
{"output": [["lex", "recent overview React changes 2025 guide"], ["lex", "recent React changes 2025 best practices"], ["lex", "recent overview React changes 2025 examples"], ["vec", "how to recent React changes 2025"], ["vec", "complete recent React changes 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about recent React changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent React changes 2025"}
{"output": [["lex", "what changed in Kubernetes 2025 best practices"], ["lex", "what overview changed in Kubernetes 2025 guide"], ["lex", "what overview changed in Kubernetes 2025 tutorial"], ["vec", "guide for what changed in Kubernetes 2025"], ["vec", "understanding what changed in Kubernetes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Kubernetes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Kubernetes 2025"}
{"output": [["lex", "recent overview TypeScript changes 2026 guide"], ["lex", "recent TypeScript changes 2026 documentation"], ["lex", "recent TypeScript changes 2026 best practices"], ["vec", "learn about recent TypeScript changes 2026"], ["vec", "understanding recent TypeScript changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent TypeScript changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent TypeScript changes 2026"}
{"output": [["lex", "Shopify overview changelog 2025 examples"], ["lex", "Shopify overview changelog 2025 guide"], ["lex", "Shopify changelog 2025 best practices"], ["vec", "learn about Shopify changelog 2025"], ["vec", "understanding Shopify changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify changelog 2025"}
{"output": [["lex", "latest overview Docker updates guide"], ["lex", "latest overview Docker updates examples"], ["lex", "latest overview Docker updates tutorial"], ["vec", "understanding latest Docker updates"], ["vec", "learn about latest Docker updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest Docker updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Docker updates"}
{"output": [["lex", "recent machine learning changes 2025 documentation"], ["lex", "recent overview machine learning changes 2025 tutorial"], ["lex", "recent overview machine learning changes 2025 examples"], ["vec", "complete recent machine learning changes 2025 reference"], ["vec", "understanding recent machine learning changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent machine learning changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent machine learning changes 2025"}
{"output": [["lex", "recent overview AI changes 2026 examples"], ["lex", "recent overview AI changes 2026 guide"], ["lex", "recent AI changes 2026 best practices"], ["vec", "how to recent AI changes 2026"], ["vec", "guide for recent AI changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent AI changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent AI changes 2026"}
{"output": [["lex", "recent overview Docker changes 2026 guide"], ["lex", "recent overview Docker changes 2026 examples"], ["lex", "recent Docker changes 2026 documentation"], ["vec", "guide for recent Docker changes 2026"], ["vec", "learn about recent Docker changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent Docker changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Docker changes 2026"}
{"output": [["lex", "what overview changed in AWS 2026 guide"], ["lex", "what changed in AWS 2026 documentation"], ["lex", "what overview changed in AWS 2026 tutorial"], ["vec", "how to what changed in AWS 2026"], ["vec", "understanding what changed in AWS 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in AWS 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in AWS 2026"}
{"output": [["lex", "what overview changed in Shopify 2025 guide"], ["lex", "what changed in Shopify 2025 documentation"], ["lex", "what overview changed in Shopify 2025 examples"], ["vec", "understanding what changed in Shopify 2025"], ["vec", "how to what changed in Shopify 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Shopify 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Shopify 2025"}
{"output": [["lex", "AI changelog 2026 documentation"], ["lex", "AI overview changelog 2026 examples"], ["lex", "AI changelog 2026 best practices"], ["vec", "learn about AI changelog 2026"], ["vec", "understanding AI changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about AI changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI changelog 2026"}
{"output": [["lex", "latest Kubernetes updates best practices"], ["lex", "latest Kubernetes updates documentation"], ["lex", "latest overview Kubernetes updates guide"], ["vec", "guide for latest Kubernetes updates"], ["vec", "learn about latest Kubernetes updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest Kubernetes updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Kubernetes updates"}
{"output": [["lex", "what overview changed in climate tech 2025 guide"], ["lex", "what changed in climate tech 2025 best practices"], ["lex", "what overview changed in climate tech 2025 examples"], ["vec", "learn about what changed in climate tech 2025"], ["vec", "understanding what changed in climate tech 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in climate tech 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in climate tech 2025"}
{"output": [["lex", "latest machine learning updates documentation"], ["lex", "latest machine learning updates best practices"], ["lex", "latest overview machine learning updates examples"], ["vec", "learn about latest machine learning updates"], ["vec", "understanding latest machine learning updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest machine learning updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest machine learning updates"}
{"output": [["lex", "what changed in Next.js 2025 best practices"], ["lex", "what changed in Next.js 2025 documentation"], ["lex", "what overview changed in Next.js 2025 guide"], ["vec", "understanding what changed in Next.js 2025"], ["vec", "learn about what changed in Next.js 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Next.js 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Next.js 2025"}
{"output": [["lex", "TypeScript changelog 2025 documentation"], ["lex", "TypeScript overview changelog 2025 examples"], ["lex", "TypeScript overview changelog 2025 guide"], ["vec", "understanding TypeScript changelog 2025"], ["vec", "guide for TypeScript changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript changelog 2025"}
{"output": [["lex", "recent overview AWS changes 2026 guide"], ["lex", "recent overview AWS changes 2026 tutorial"], ["lex", "recent overview AWS changes 2026 examples"], ["vec", "how to recent AWS changes 2026"], ["vec", "understanding recent AWS changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent AWS changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent AWS changes 2026"}
{"output": [["lex", "Vue changelog 2025 best practices"], ["lex", "Vue changelog 2025 documentation"], ["lex", "Vue overview changelog 2025 examples"], ["vec", "guide for Vue changelog 2025"], ["vec", "understanding Vue changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Vue changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue changelog 2025"}
{"output": [["lex", "TypeScript new features 2025 best practices"], ["lex", "TypeScript overview new features 2025 guide"], ["lex", "TypeScript overview new features 2025 tutorial"], ["vec", "complete TypeScript new features 2025 reference"], ["vec", "how to TypeScript new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript new features 2025"}
{"output": [["lex", "React recent news December best practices"], ["lex", "React overview recent news December tutorial"], ["lex", "React overview recent news December examples"], ["vec", "complete React recent news December reference"], ["vec", "guide for React recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about React recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React recent news December"}
{"output": [["lex", "AWS changelog 2026 best practices"], ["lex", "AWS changelog 2026 documentation"], ["lex", "AWS overview changelog 2026 guide"], ["vec", "guide for AWS changelog 2026"], ["vec", "learn about AWS changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about AWS changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS changelog 2026"}
{"output": [["lex", "AI recent news December documentation"], ["lex", "AI overview recent news December guide"], ["lex", "AI recent news December best practices"], ["vec", "complete AI recent news December reference"], ["vec", "how to AI recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about AI recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI recent news December"}
{"output": [["lex", "TypeScript recent news December documentation"], ["lex", "TypeScript recent news December best practices"], ["lex", "TypeScript overview recent news December examples"], ["vec", "understanding TypeScript recent news December"], ["vec", "how to TypeScript recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript recent news December"}
{"output": [["lex", "climate tech recent news December best practices"], ["lex", "climate overview tech recent news December guide"], ["lex", "climate tech recent news December documentation"], ["vec", "how to climate tech recent news December"], ["vec", "guide for climate tech recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech recent news December"}
{"output": [["lex", "Next.js overview recent news October guide"], ["lex", "Next.js recent news October documentation"], ["lex", "Next.js recent news October best practices"], ["vec", "complete Next.js recent news October reference"], ["vec", "guide for Next.js recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js recent news October"}
{"output": [["lex", "AI overview latest version release guide"], ["lex", "AI overview latest version release examples"], ["lex", "AI latest version release documentation"], ["vec", "understanding AI latest version release"], ["vec", "how to AI latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about AI latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI latest version release"}
{"output": [["lex", "latest Next.js updates documentation"], ["lex", "latest overview Next.js updates tutorial"], ["lex", "latest overview Next.js updates guide"], ["vec", "understanding latest Next.js updates"], ["vec", "learn about latest Next.js updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest Next.js updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Next.js updates"}
{"output": [["lex", "Vue overview new features 2026 examples"], ["lex", "Vue overview new features 2026 guide"], ["lex", "Vue new features 2026 documentation"], ["vec", "guide for Vue new features 2026"], ["vec", "understanding Vue new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Vue new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue new features 2026"}
{"output": [["lex", "space overview exploration new features 2026 tutorial"], ["lex", "space exploration new features 2026 best practices"], ["lex", "space overview exploration new features 2026 guide"], ["vec", "understanding space exploration new features 2026"], ["vec", "learn about space exploration new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration new features 2026"}
{"output": [["lex", "recent overview Shopify changes 2026 examples"], ["lex", "recent Shopify changes 2026 best practices"], ["lex", "recent overview Shopify changes 2026 tutorial"], ["vec", "how to recent Shopify changes 2026"], ["vec", "understanding recent Shopify changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent Shopify changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Shopify changes 2026"}
{"output": [["lex", "machine learning latest version release documentation"], ["lex", "machine overview learning latest version release tutorial"], ["lex", "machine overview learning latest version release examples"], ["vec", "complete machine learning latest version release reference"], ["vec", "understanding machine learning latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning latest version release"}
{"output": [["lex", "Docker overview new features 2026 tutorial"], ["lex", "Docker overview new features 2026 guide"], ["lex", "Docker new features 2026 best practices"], ["vec", "how to Docker new features 2026"], ["vec", "complete Docker new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Docker new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker new features 2026"}
{"output": [["lex", "Python overview recent news December guide"], ["lex", "Python recent news December best practices"], ["lex", "Python overview recent news December tutorial"], ["vec", "complete Python recent news December reference"], ["vec", "understanding Python recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about Python recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python recent news December"}
{"output": [["lex", "what changed in React 2026 documentation"], ["lex", "what overview changed in React 2026 examples"], ["lex", "what overview changed in React 2026 guide"], ["vec", "learn about what changed in React 2026"], ["vec", "understanding what changed in React 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in React 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in React 2026"}
{"output": [["lex", "Docker overview changelog 2025 examples"], ["lex", "Docker changelog 2025 best practices"], ["lex", "Docker overview changelog 2025 tutorial"], ["vec", "understanding Docker changelog 2025"], ["vec", "complete Docker changelog 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Docker changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker changelog 2025"}
{"output": [["lex", "what changed in Docker 2026 best practices"], ["lex", "what changed in Docker 2026 documentation"], ["lex", "what overview changed in Docker 2026 examples"], ["vec", "complete what changed in Docker 2026 reference"], ["vec", "understanding what changed in Docker 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Docker 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Docker 2026"}
{"output": [["lex", "recent Next.js changes 2026 best practices"], ["lex", "recent overview Next.js changes 2026 guide"], ["lex", "recent Next.js changes 2026 documentation"], ["vec", "understanding recent Next.js changes 2026"], ["vec", "learn about recent Next.js changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent Next.js changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Next.js changes 2026"}
{"output": [["lex", "latest overview climate tech updates examples"], ["lex", "latest overview climate tech updates tutorial"], ["lex", "latest climate tech updates best practices"], ["vec", "understanding latest climate tech updates"], ["vec", "complete latest climate tech updates reference"], ["hyde", "This comprehensive guide covers everything you need to know about latest climate tech updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest climate tech updates"}
{"output": [["lex", "machine learning changelog 2026 documentation"], ["lex", "machine overview learning changelog 2026 guide"], ["lex", "machine overview learning changelog 2026 examples"], ["vec", "guide for machine learning changelog 2026"], ["vec", "learn about machine learning changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning changelog 2026"}
{"output": [["lex", "what overview changed in AWS 2025 examples"], ["lex", "what overview changed in AWS 2025 guide"], ["lex", "what changed in AWS 2025 best practices"], ["vec", "complete what changed in AWS 2025 reference"], ["vec", "learn about what changed in AWS 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in AWS 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in AWS 2025"}
{"output": [["lex", "Kubernetes overview recent news November guide"], ["lex", "Kubernetes overview recent news November tutorial"], ["lex", "Kubernetes recent news November best practices"], ["vec", "how to Kubernetes recent news November"], ["vec", "guide for Kubernetes recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes recent news November"}
{"output": [["lex", "AI overview changelog 2025 examples"], ["lex", "AI changelog 2025 best practices"], ["lex", "AI overview changelog 2025 tutorial"], ["vec", "guide for AI changelog 2025"], ["vec", "learn about AI changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about AI changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI changelog 2025"}
{"output": [["lex", "recent Next.js changes 2025 documentation"], ["lex", "recent overview Next.js changes 2025 examples"], ["lex", "recent Next.js changes 2025 best practices"], ["vec", "how to recent Next.js changes 2025"], ["vec", "complete recent Next.js changes 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about recent Next.js changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Next.js changes 2025"}
{"output": [["lex", "Python overview recent news October examples"], ["lex", "Python recent news October documentation"], ["lex", "Python recent news October best practices"], ["vec", "complete Python recent news October reference"], ["vec", "guide for Python recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about Python recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python recent news October"}
{"output": [["lex", "recent overview Vue changes 2025 tutorial"], ["lex", "recent Vue changes 2025 best practices"], ["lex", "recent overview Vue changes 2025 guide"], ["vec", "guide for recent Vue changes 2025"], ["vec", "complete recent Vue changes 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about recent Vue changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Vue changes 2025"}
{"output": [["lex", "AI new features 2026 documentation"], ["lex", "AI overview new features 2026 guide"], ["lex", "AI overview new features 2026 tutorial"], ["vec", "how to AI new features 2026"], ["vec", "complete AI new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about AI new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI new features 2026"}
{"output": [["lex", "React new features 2026 documentation"], ["lex", "React overview new features 2026 tutorial"], ["lex", "React overview new features 2026 examples"], ["vec", "learn about React new features 2026"], ["vec", "complete React new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about React new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React new features 2026"}
{"output": [["lex", "Vue new features 2025 documentation"], ["lex", "Vue new features 2025 best practices"], ["lex", "Vue overview new features 2025 guide"], ["vec", "guide for Vue new features 2025"], ["vec", "understanding Vue new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about Vue new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vue new features 2025"}
{"output": [["lex", "climate overview tech latest version release examples"], ["lex", "climate overview tech latest version release tutorial"], ["lex", "climate tech latest version release best practices"], ["vec", "complete climate tech latest version release reference"], ["vec", "guide for climate tech latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about climate tech latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "climate tech latest version release"}
{"output": [["lex", "Python overview latest version release tutorial"], ["lex", "Python overview latest version release guide"], ["lex", "Python latest version release best practices"], ["vec", "understanding Python latest version release"], ["vec", "learn about Python latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Python latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python latest version release"}
{"output": [["lex", "AWS overview recent news December guide"], ["lex", "AWS overview recent news December examples"], ["lex", "AWS overview recent news December tutorial"], ["vec", "complete AWS recent news December reference"], ["vec", "how to AWS recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about AWS recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS recent news December"}
{"output": [["lex", "GitHub overview changelog 2025 tutorial"], ["lex", "GitHub overview changelog 2025 guide"], ["lex", "GitHub changelog 2025 documentation"], ["vec", "understanding GitHub changelog 2025"], ["vec", "complete GitHub changelog 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub changelog 2025"}
{"output": [["lex", "what overview changed in machine learning 2026 tutorial"], ["lex", "what overview changed in machine learning 2026 examples"], ["lex", "what overview changed in machine learning 2026 guide"], ["vec", "learn about what changed in machine learning 2026"], ["vec", "how to what changed in machine learning 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in machine learning 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in machine learning 2026"}
{"output": [["lex", "space exploration recent news October documentation"], ["lex", "space overview exploration recent news October guide"], ["lex", "space overview exploration recent news October examples"], ["vec", "learn about space exploration recent news October"], ["vec", "understanding space exploration recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration recent news October"}
{"output": [["lex", "React overview changelog 2026 tutorial"], ["lex", "React overview changelog 2026 examples"], ["lex", "React changelog 2026 documentation"], ["vec", "how to React changelog 2026"], ["vec", "understanding React changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about React changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React changelog 2026"}
{"output": [["lex", "React overview changelog 2025 tutorial"], ["lex", "React overview changelog 2025 guide"], ["lex", "React changelog 2025 best practices"], ["vec", "complete React changelog 2025 reference"], ["vec", "how to React changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about React changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React changelog 2025"}
{"output": [["lex", "machine overview learning recent news November tutorial"], ["lex", "machine overview learning recent news November guide"], ["lex", "machine overview learning recent news November examples"], ["vec", "how to machine learning recent news November"], ["vec", "understanding machine learning recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning recent news November"}
{"output": [["lex", "GitHub overview new features 2025 guide"], ["lex", "GitHub overview new features 2025 tutorial"], ["lex", "GitHub overview new features 2025 examples"], ["vec", "learn about GitHub new features 2025"], ["vec", "how to GitHub new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub new features 2025"}
{"output": [["lex", "machine overview learning new features 2025 tutorial"], ["lex", "machine learning new features 2025 documentation"], ["lex", "machine learning new features 2025 best practices"], ["vec", "how to machine learning new features 2025"], ["vec", "learn about machine learning new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning new features 2025"}
{"output": [["lex", "AI recent news November documentation"], ["lex", "AI overview recent news November guide"], ["lex", "AI overview recent news November examples"], ["vec", "learn about AI recent news November"], ["vec", "understanding AI recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about AI recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AI recent news November"}
{"output": [["lex", "Python overview new features 2025 tutorial"], ["lex", "Python new features 2025 documentation"], ["lex", "Python overview new features 2025 examples"], ["vec", "understanding Python new features 2025"], ["vec", "complete Python new features 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Python new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python new features 2025"}
{"output": [["lex", "latest Shopify updates best practices"], ["lex", "latest Shopify updates documentation"], ["lex", "latest overview Shopify updates guide"], ["vec", "complete latest Shopify updates reference"], ["vec", "guide for latest Shopify updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest Shopify updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Shopify updates"}
{"output": [["lex", "Kubernetes overview new features 2025 examples"], ["lex", "Kubernetes new features 2025 documentation"], ["lex", "Kubernetes new features 2025 best practices"], ["vec", "guide for Kubernetes new features 2025"], ["vec", "complete Kubernetes new features 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes new features 2025"}
{"output": [["lex", "what overview changed in AI 2026 guide"], ["lex", "what changed in AI 2026 documentation"], ["lex", "what overview changed in AI 2026 tutorial"], ["vec", "guide for what changed in AI 2026"], ["vec", "understanding what changed in AI 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in AI 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in AI 2026"}
{"output": [["lex", "machine learning new features 2026 best practices"], ["lex", "machine overview learning new features 2026 guide"], ["lex", "machine overview learning new features 2026 examples"], ["vec", "understanding machine learning new features 2026"], ["vec", "how to machine learning new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning new features 2026"}
{"output": [["lex", "recent overview Shopify changes 2025 examples"], ["lex", "recent overview Shopify changes 2025 tutorial"], ["lex", "recent Shopify changes 2025 best practices"], ["vec", "complete recent Shopify changes 2025 reference"], ["vec", "how to recent Shopify changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent Shopify changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Shopify changes 2025"}
{"output": [["lex", "what overview changed in machine learning 2025 guide"], ["lex", "what changed in machine learning 2025 best practices"], ["lex", "what changed in machine learning 2025 documentation"], ["vec", "learn about what changed in machine learning 2025"], ["vec", "complete what changed in machine learning 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in machine learning 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in machine learning 2025"}
{"output": [["lex", "Shopify new features 2026 best practices"], ["lex", "Shopify overview new features 2026 examples"], ["lex", "Shopify overview new features 2026 guide"], ["vec", "understanding Shopify new features 2026"], ["vec", "complete Shopify new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify new features 2026"}
{"output": [["lex", "Docker overview recent news November examples"], ["lex", "Docker recent news November best practices"], ["lex", "Docker overview recent news November tutorial"], ["vec", "understanding Docker recent news November"], ["vec", "guide for Docker recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Docker recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker recent news November"}
{"output": [["lex", "latest Vue updates documentation"], ["lex", "latest overview Vue updates tutorial"], ["lex", "latest Vue updates best practices"], ["vec", "understanding latest Vue updates"], ["vec", "learn about latest Vue updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest Vue updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest Vue updates"}
{"output": [["lex", "Next.js overview new features 2026 examples"], ["lex", "Next.js overview new features 2026 guide"], ["lex", "Next.js new features 2026 best practices"], ["vec", "learn about Next.js new features 2026"], ["vec", "how to Next.js new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js new features 2026"}
{"output": [["lex", "GitHub overview new features 2026 examples"], ["lex", "GitHub overview new features 2026 tutorial"], ["lex", "GitHub new features 2026 documentation"], ["vec", "how to GitHub new features 2026"], ["vec", "understanding GitHub new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub new features 2026"}
{"output": [["lex", "AWS new features 2025 best practices"], ["lex", "AWS overview new features 2025 guide"], ["lex", "AWS overview new features 2025 tutorial"], ["vec", "how to AWS new features 2025"], ["vec", "understanding AWS new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about AWS new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS new features 2025"}
{"output": [["lex", "what overview changed in Python 2026 tutorial"], ["lex", "what changed in Python 2026 best practices"], ["lex", "what overview changed in Python 2026 guide"], ["vec", "guide for what changed in Python 2026"], ["vec", "learn about what changed in Python 2026"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Python 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Python 2026"}
{"output": [["lex", "what changed in TypeScript 2025 best practices"], ["lex", "what overview changed in TypeScript 2025 tutorial"], ["lex", "what changed in TypeScript 2025 documentation"], ["vec", "complete what changed in TypeScript 2025 reference"], ["vec", "understanding what changed in TypeScript 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in TypeScript 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in TypeScript 2025"}
{"output": [["lex", "recent space exploration changes 2026 best practices"], ["lex", "recent space exploration changes 2026 documentation"], ["lex", "recent overview space exploration changes 2026 tutorial"], ["vec", "understanding recent space exploration changes 2026"], ["vec", "learn about recent space exploration changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent space exploration changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent space exploration changes 2026"}
{"output": [["lex", "AWS new features 2026 documentation"], ["lex", "AWS overview new features 2026 tutorial"], ["lex", "AWS overview new features 2026 examples"], ["vec", "complete AWS new features 2026 reference"], ["vec", "understanding AWS new features 2026"], ["hyde", "This comprehensive guide covers everything you need to know about AWS new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS new features 2026"}
{"output": [["lex", "recent overview TypeScript changes 2025 examples"], ["lex", "recent TypeScript changes 2025 documentation"], ["lex", "recent overview TypeScript changes 2025 guide"], ["vec", "learn about recent TypeScript changes 2025"], ["vec", "guide for recent TypeScript changes 2025"], ["hyde", "This comprehensive guide covers everything you need to know about recent TypeScript changes 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent TypeScript changes 2025"}
{"output": [["lex", "latest overview TypeScript updates examples"], ["lex", "latest overview TypeScript updates guide"], ["lex", "latest TypeScript updates best practices"], ["vec", "complete latest TypeScript updates reference"], ["vec", "learn about latest TypeScript updates"], ["hyde", "This comprehensive guide covers everything you need to know about latest TypeScript updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest TypeScript updates"}
{"output": [["lex", "what changed in React 2025 documentation"], ["lex", "what overview changed in React 2025 tutorial"], ["lex", "what changed in React 2025 best practices"], ["vec", "learn about what changed in React 2025"], ["vec", "understanding what changed in React 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in React 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in React 2025"}
{"output": [["lex", "AWS overview changelog 2025 examples"], ["lex", "AWS overview changelog 2025 tutorial"], ["lex", "AWS changelog 2025 documentation"], ["vec", "how to AWS changelog 2025"], ["vec", "complete AWS changelog 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about AWS changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS changelog 2025"}
{"output": [["lex", "space exploration changelog 2026 documentation"], ["lex", "space exploration changelog 2026 best practices"], ["lex", "space overview exploration changelog 2026 guide"], ["vec", "learn about space exploration changelog 2026"], ["vec", "how to space exploration changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration changelog 2026"}
{"output": [["lex", "React new features 2025 best practices"], ["lex", "React overview new features 2025 guide"], ["lex", "React overview new features 2025 tutorial"], ["vec", "complete React new features 2025 reference"], ["vec", "how to React new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about React new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React new features 2025"}
{"output": [["lex", "AWS overview latest version release guide"], ["lex", "AWS latest version release documentation"], ["lex", "AWS latest version release best practices"], ["vec", "complete AWS latest version release reference"], ["vec", "understanding AWS latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about AWS latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS latest version release"}
{"output": [["lex", "latest space exploration updates documentation"], ["lex", "latest overview space exploration updates guide"], ["lex", "latest overview space exploration updates examples"], ["vec", "understanding latest space exploration updates"], ["vec", "complete latest space exploration updates reference"], ["hyde", "This comprehensive guide covers everything you need to know about latest space exploration updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest space exploration updates"}
{"output": [["lex", "Kubernetes latest version release best practices"], ["lex", "Kubernetes latest version release documentation"], ["lex", "Kubernetes overview latest version release guide"], ["vec", "understanding Kubernetes latest version release"], ["vec", "how to Kubernetes latest version release"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes latest version release. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes latest version release"}
{"output": [["lex", "React recent news November best practices"], ["lex", "React overview recent news November examples"], ["lex", "React overview recent news November guide"], ["vec", "guide for React recent news November"], ["vec", "how to React recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about React recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React recent news November"}
{"output": [["lex", "TypeScript recent news November documentation"], ["lex", "TypeScript overview recent news November examples"], ["lex", "TypeScript overview recent news November guide"], ["vec", "guide for TypeScript recent news November"], ["vec", "understanding TypeScript recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript recent news November"}
{"output": [["lex", "what overview changed in AI 2025 guide"], ["lex", "what overview changed in AI 2025 examples"], ["lex", "what overview changed in AI 2025 tutorial"], ["vec", "how to what changed in AI 2025"], ["vec", "understanding what changed in AI 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in AI 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in AI 2025"}
{"output": [["lex", "Docker overview recent news December guide"], ["lex", "Docker recent news December documentation"], ["lex", "Docker overview recent news December tutorial"], ["vec", "guide for Docker recent news December"], ["vec", "understanding Docker recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about Docker recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker recent news December"}
{"output": [["lex", "TypeScript overview changelog 2026 guide"], ["lex", "TypeScript overview changelog 2026 tutorial"], ["lex", "TypeScript overview changelog 2026 examples"], ["vec", "understanding TypeScript changelog 2026"], ["vec", "how to TypeScript changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript changelog 2026"}
{"output": [["lex", "space overview exploration new features 2025 examples"], ["lex", "space exploration new features 2025 documentation"], ["lex", "space overview exploration new features 2025 tutorial"], ["vec", "how to space exploration new features 2025"], ["vec", "understanding space exploration new features 2025"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration new features 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration new features 2025"}
{"output": [["lex", "space overview exploration recent news December examples"], ["lex", "space overview exploration recent news December guide"], ["lex", "space overview exploration recent news December tutorial"], ["vec", "guide for space exploration recent news December"], ["vec", "learn about space exploration recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration recent news December"}
{"output": [["lex", "Shopify overview changelog 2026 tutorial"], ["lex", "Shopify overview changelog 2026 examples"], ["lex", "Shopify changelog 2026 documentation"], ["vec", "understanding Shopify changelog 2026"], ["vec", "complete Shopify changelog 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about Shopify changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Shopify changelog 2026"}
{"output": [["lex", "AWS recent news November documentation"], ["lex", "AWS overview recent news November guide"], ["lex", "AWS overview recent news November examples"], ["vec", "understanding AWS recent news November"], ["vec", "complete AWS recent news November reference"], ["hyde", "This comprehensive guide covers everything you need to know about AWS recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS recent news November"}
{"output": [["lex", "AWS overview recent news October tutorial"], ["lex", "AWS overview recent news October examples"], ["lex", "AWS recent news October documentation"], ["vec", "learn about AWS recent news October"], ["vec", "guide for AWS recent news October"], ["hyde", "This comprehensive guide covers everything you need to know about AWS recent news October. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS recent news October"}
{"output": [["lex", "Next.js overview recent news December guide"], ["lex", "Next.js recent news December documentation"], ["lex", "Next.js recent news December best practices"], ["vec", "guide for Next.js recent news December"], ["vec", "how to Next.js recent news December"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js recent news December. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js recent news December"}
{"output": [["lex", "space overview exploration recent news November guide"], ["lex", "space overview exploration recent news November examples"], ["lex", "space overview exploration recent news November tutorial"], ["vec", "guide for space exploration recent news November"], ["vec", "learn about space exploration recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about space exploration recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "space exploration recent news November"}
{"output": [["lex", "what overview changed in Python 2025 guide"], ["lex", "what overview changed in Python 2025 tutorial"], ["lex", "what changed in Python 2025 documentation"], ["vec", "learn about what changed in Python 2025"], ["vec", "guide for what changed in Python 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in Python 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in Python 2025"}
{"output": [["lex", "GitHub recent news November documentation"], ["lex", "GitHub overview recent news November tutorial"], ["lex", "GitHub overview recent news November examples"], ["vec", "complete GitHub recent news November reference"], ["vec", "learn about GitHub recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub recent news November"}
{"output": [["lex", "machine overview learning changelog 2025 examples"], ["lex", "machine overview learning changelog 2025 guide"], ["lex", "machine learning changelog 2025 best practices"], ["vec", "how to machine learning changelog 2025"], ["vec", "learn about machine learning changelog 2025"], ["hyde", "This comprehensive guide covers everything you need to know about machine learning changelog 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "machine learning changelog 2025"}
{"output": [["lex", "Next.js overview recent news November guide"], ["lex", "Next.js overview recent news November tutorial"], ["lex", "Next.js overview recent news November examples"], ["vec", "complete Next.js recent news November reference"], ["vec", "learn about Next.js recent news November"], ["hyde", "This comprehensive guide covers everything you need to know about Next.js recent news November. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Next.js recent news November"}
{"output": [["lex", "latest AWS updates best practices"], ["lex", "latest AWS updates documentation"], ["lex", "latest overview AWS updates examples"], ["vec", "guide for latest AWS updates"], ["vec", "complete latest AWS updates reference"], ["hyde", "This comprehensive guide covers everything you need to know about latest AWS updates. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "latest AWS updates"}
{"output": [["lex", "recent overview Vue changes 2026 examples"], ["lex", "recent overview Vue changes 2026 guide"], ["lex", "recent Vue changes 2026 best practices"], ["vec", "how to recent Vue changes 2026"], ["vec", "complete recent Vue changes 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about recent Vue changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent Vue changes 2026"}
{"output": [["lex", "what changed in space exploration 2025 documentation"], ["lex", "what overview changed in space exploration 2025 examples"], ["lex", "what changed in space exploration 2025 best practices"], ["vec", "understanding what changed in space exploration 2025"], ["vec", "learn about what changed in space exploration 2025"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in space exploration 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in space exploration 2025"}
{"output": [["lex", "TypeScript new features 2026 best practices"], ["lex", "TypeScript overview new features 2026 tutorial"], ["lex", "TypeScript overview new features 2026 guide"], ["vec", "learn about TypeScript new features 2026"], ["vec", "complete TypeScript new features 2026 reference"], ["hyde", "This comprehensive guide covers everything you need to know about TypeScript new features 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "TypeScript new features 2026"}
{"output": [["lex", "what overview changed in GitHub 2025 guide"], ["lex", "what changed in GitHub 2025 documentation"], ["lex", "what changed in GitHub 2025 best practices"], ["vec", "learn about what changed in GitHub 2025"], ["vec", "complete what changed in GitHub 2025 reference"], ["hyde", "This comprehensive guide covers everything you need to know about what changed in GitHub 2025. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "what changed in GitHub 2025"}
{"output": [["lex", "recent climate tech changes 2026 best practices"], ["lex", "recent overview climate tech changes 2026 guide"], ["lex", "recent overview climate tech changes 2026 tutorial"], ["vec", "how to recent climate tech changes 2026"], ["vec", "learn about recent climate tech changes 2026"], ["hyde", "This comprehensive guide covers everything you need to know about recent climate tech changes 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "recent climate tech changes 2026"}
{"output": [["lex", "Python changelog 2026 documentation"], ["lex", "Python overview changelog 2026 guide"], ["lex", "Python changelog 2026 best practices"], ["vec", "how to Python changelog 2026"], ["vec", "understanding Python changelog 2026"], ["hyde", "This comprehensive guide covers everything you need to know about Python changelog 2026. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Python changelog 2026"}
{"output": [["lex", "who overview is TDS motorsports tutorial"], ["lex", "who overview is TDS motorsports guide"], ["lex", "who is TDS motorsports documentation"], ["vec", "learn about who is TDS motorsports"], ["vec", "guide for who is TDS motorsports"], ["hyde", "This comprehensive guide covers everything you need to know about who is TDS motorsports. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "who is TDS motorsports"}
{"output": [["lex", "React overview hooks tutorial examples"], ["lex", "React hooks tutorial documentation"], ["lex", "React overview hooks tutorial tutorial"], ["vec", "understanding React hooks tutorial"], ["vec", "how to React hooks tutorial"], ["hyde", "This comprehensive guide covers everything you need to know about React hooks tutorial. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "React hooks tutorial"}
{"output": [["lex", "Docker overview container networking tutorial"], ["lex", "Docker overview container networking examples"], ["lex", "Docker container networking best practices"], ["vec", "complete Docker container networking reference"], ["vec", "understanding Docker container networking"], ["hyde", "This comprehensive guide covers everything you need to know about Docker container networking. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Docker container networking"}
{"output": [["lex", "Kubernetes pod deployment best practices"], ["lex", "Kubernetes pod deployment documentation"], ["lex", "Kubernetes overview pod deployment examples"], ["vec", "how to Kubernetes pod deployment"], ["vec", "complete Kubernetes pod deployment reference"], ["hyde", "This comprehensive guide covers everything you need to know about Kubernetes pod deployment. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Kubernetes pod deployment"}
{"output": [["lex", "AWS Lambda functions setup documentation"], ["lex", "AWS overview Lambda functions setup examples"], ["lex", "AWS overview Lambda functions setup tutorial"], ["vec", "learn about AWS Lambda functions setup"], ["vec", "how to AWS Lambda functions setup"], ["hyde", "This comprehensive guide covers everything you need to know about AWS Lambda functions setup. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "AWS Lambda functions setup"}
{"output": [["lex", "Stripe overview payment integration examples"], ["lex", "Stripe overview payment integration tutorial"], ["lex", "Stripe payment integration documentation"], ["vec", "learn about Stripe payment integration"], ["vec", "understanding Stripe payment integration"], ["hyde", "This comprehensive guide covers everything you need to know about Stripe payment integration. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Stripe payment integration"}
{"output": [["lex", "GitHub overview Actions workflow guide"], ["lex", "GitHub overview Actions workflow examples"], ["lex", "GitHub Actions workflow documentation"], ["vec", "understanding GitHub Actions workflow"], ["vec", "guide for GitHub Actions workflow"], ["hyde", "This comprehensive guide covers everything you need to know about GitHub Actions workflow. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "GitHub Actions workflow"}
{"output": [["lex", "Vercel overview deployment guide examples"], ["lex", "Vercel deployment guide documentation"], ["lex", "Vercel overview deployment guide tutorial"], ["vec", "learn about Vercel deployment guide"], ["vec", "understanding Vercel deployment guide"], ["hyde", "This comprehensive guide covers everything you need to know about Vercel deployment guide. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Vercel deployment guide"}
{"output": [["lex", "Supabase auth configuration documentation"], ["lex", "Supabase overview auth configuration tutorial"], ["lex", "Supabase auth configuration best practices"], ["vec", "understanding Supabase auth configuration"], ["vec", "learn about Supabase auth configuration"], ["hyde", "This comprehensive guide covers everything you need to know about Supabase auth configuration. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Supabase auth configuration"}
{"output": [["lex", "Twilio overview SMS API guide"], ["lex", "Twilio overview SMS API examples"], ["lex", "Twilio SMS API documentation"], ["vec", "how to Twilio SMS API"], ["vec", "complete Twilio SMS API reference"], ["hyde", "This comprehensive guide covers everything you need to know about Twilio SMS API. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Twilio SMS API"}
{"output": [["lex", "Datadog overview monitoring setup guide"], ["lex", "Datadog monitoring setup best practices"], ["lex", "Datadog overview monitoring setup examples"], ["vec", "complete Datadog monitoring setup reference"], ["vec", "understanding Datadog monitoring setup"], ["hyde", "This comprehensive guide covers everything you need to know about Datadog monitoring setup. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Datadog monitoring setup"}
{"output": [["lex", "Sentry error tracking best practices"], ["lex", "Sentry overview error tracking guide"], ["lex", "Sentry error tracking documentation"], ["vec", "understanding Sentry error tracking"], ["vec", "learn about Sentry error tracking"], ["hyde", "This comprehensive guide covers everything you need to know about Sentry error tracking. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Sentry error tracking"}
{"output": [["lex", "Terraform overview AWS provider tutorial"], ["lex", "Terraform overview AWS provider guide"], ["lex", "Terraform AWS provider best practices"], ["vec", "how to Terraform AWS provider"], ["vec", "understanding Terraform AWS provider"], ["hyde", "This comprehensive guide covers everything you need to know about Terraform AWS provider. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Terraform AWS provider"}
{"output": [["lex", "Ansible playbook examples best practices"], ["lex", "Ansible overview playbook examples examples"], ["lex", "Ansible overview playbook examples tutorial"], ["vec", "understanding Ansible playbook examples"], ["vec", "how to Ansible playbook examples"], ["hyde", "This comprehensive guide covers everything you need to know about Ansible playbook examples. It includes practical examples, best practices, and troubleshooting tips for beginners and advanced users alike."]], "category": "diverse_addon", "query": "Ansible playbook examples"}

View File

@@ -0,0 +1,65 @@
{"output": [["lex", "ssh key auth setup"], ["lex", "ssh public private key pair"], ["lex", "passwordless ssh login"], ["vec", "how to set up ssh key-based authentication instead of passwords"], ["vec", "step-by-step guide to generating and configuring ssh keys for secure server access"], ["hyde", "Generate an SSH key pair with ssh-keygen -t ed25519. Copy the public key to ~/.ssh/authorized_keys on the remote server using ssh-copy-id. Ensure permissions are 700 for .ssh and 600 for authorized_keys."]], "query": "ssh key authentication"}
{"output": [["lex", "python venv virtualenv"], ["lex", "pip virtual environment setup"], ["lex", "python isolated dependencies"], ["vec", "how to create and activate a python virtual environment for project isolation"], ["vec", "what is the difference between venv, virtualenv, and conda for managing python dependencies"], ["hyde", "Create a virtual environment with python -m venv myenv, then activate it with source myenv/bin/activate on Unix or myenv\\Scripts\\activate on Windows. Install packages with pip and they stay isolated from your system Python."]], "query": "Python virtual environments"}
{"output": [["lex", "git merge conflict resolve"], ["lex", "git conflict markers HEAD"], ["lex", "resolving merge conflicts"], ["vec", "how to resolve merge conflicts in git when two branches modify the same lines"], ["vec", "what do the conflict markers mean and how do you manually edit conflicted files"], ["hyde", "Git marks conflicts with <<<<<<< HEAD, =======, and >>>>>>> branch-name. Edit the file to keep the code you want, remove the markers, then git add the file and commit. Use git mergetool for a visual diff interface."]], "query": "git merge conflicts"}
{"output": [["lex", "tcp udp protocol difference"], ["lex", "tcp reliable udp fast"], ["lex", "connection-oriented vs connectionless"], ["vec", "what are the key differences between TCP and UDP network protocols"], ["vec", "when should you use TCP versus UDP for application networking"], ["hyde", "TCP provides reliable, ordered delivery with acknowledgments and retransmission. UDP is faster but unreliable—packets may arrive out of order or not at all. Use TCP for web, email, file transfer. Use UDP for video streaming, gaming, DNS where speed matters more than reliability."]], "query": "TCP vs UDP"}
{"output": [["lex", "docker compose volume mount"], ["lex", "docker persistent storage volumes"], ["lex", "compose yaml volumes section"], ["vec", "how to configure persistent volumes in docker compose for data that survives container restarts"], ["vec", "what is the difference between bind mounts and named volumes in docker compose"], ["hyde", "In docker-compose.yml, define volumes under the top-level volumes key and reference them in services. Named volumes persist data in Docker's storage. Bind mounts map host directories directly: volumes: - ./data:/app/data for development, - myvolume:/app/data for production."]], "query": "Docker compose volumes"}
{"output": [["lex", "regex lookahead assertion"], ["lex", "regex lookbehind positive negative"], ["lex", "zero-width assertions regex"], ["vec", "how do lookahead and lookbehind assertions work in regular expressions"], ["vec", "what is the syntax for positive and negative lookahead and lookbehind in regex"], ["hyde", "Lookahead (?=pattern) matches a position followed by pattern without consuming it. Negative lookahead (?!pattern) matches where pattern doesn't follow. Lookbehind (?<=pattern) matches a position preceded by pattern. Example: \\d+(?= dollars) matches numbers followed by 'dollars'."]], "query": "regex lookahead lookbehind"}
{"output": [["lex", "kubernetes secrets k8s"], ["lex", "k8s secret yaml base64"], ["lex", "kubectl create secret"], ["vec", "how to create and use secrets in kubernetes for sensitive configuration data"], ["vec", "what are best practices for managing secrets in kubernetes clusters"], ["hyde", "Create secrets with kubectl create secret generic mysecret --from-literal=password=abc123. Reference in pods via env valueFrom secretKeyRef or volume mounts. Secrets are base64 encoded, not encrypted—use sealed-secrets or external secret managers like Vault for production."]], "query": "Kubernetes secrets management"}
{"output": [["lex", "cors error fix browser"], ["lex", "access-control-allow-origin header"], ["lex", "cors preflight request"], ["vec", "how to fix CORS errors when making API requests from a web browser"], ["vec", "what causes cross-origin resource sharing errors and how do you configure the server to allow them"], ["hyde", "CORS errors occur when a browser blocks requests to a different origin. Fix by adding Access-Control-Allow-Origin headers on the server. For Express: app.use(cors()). For preflight requests, handle OPTIONS and return Access-Control-Allow-Methods and Access-Control-Allow-Headers."]], "query": "CORS errors fix"}
{"output": [["lex", "postgresql index explain analyze"], ["lex", "postgres btree index performance"], ["lex", "create index postgresql"], ["vec", "how to use EXPLAIN ANALYZE to understand query performance and index usage in postgresql"], ["vec", "what types of indexes does postgresql support and when should you use each"], ["hyde", "Run EXPLAIN ANALYZE SELECT... to see the query plan and actual execution time. Look for Seq Scan on large tables—add an index with CREATE INDEX idx_name ON table(column). B-tree indexes work for equality and range queries, GIN for full-text search and arrays, GiST for geometric data."]], "query": "PostgreSQL indexes explain"}
{"output": [["lex", "jwt refresh token flow"], ["lex", "access token refresh token"], ["lex", "jwt token expiration renewal"], ["vec", "how does the jwt refresh token flow work for maintaining user sessions"], ["vec", "what is the difference between access tokens and refresh tokens in jwt authentication"], ["hyde", "Access tokens are short-lived (15 min) and sent with each request. Refresh tokens are long-lived (days/weeks) and stored securely. When the access token expires, send the refresh token to /auth/refresh to get a new access token without re-authenticating."]], "query": "JWT token refresh"}
{"output": [["lex", "systemd service unit file"], ["lex", "systemctl enable start service"], ["lex", "systemd service configuration"], ["vec", "how to create a systemd service file to run an application as a linux daemon"], ["vec", "what are the essential sections and directives in a systemd unit file"], ["hyde", "Create /etc/systemd/system/myapp.service with [Unit] Description, [Service] ExecStart=/path/to/app, Restart=always, User=appuser, and [Install] WantedBy=multi-user.target. Run systemctl daemon-reload, then systemctl enable --now myapp."]], "query": "systemd service file"}
{"output": [["lex", "websocket http difference"], ["lex", "websocket persistent connection"], ["lex", "http polling vs websocket"], ["vec", "what are the differences between websockets and http for real-time communication"], ["vec", "when should you use websockets instead of http long polling or server-sent events"], ["hyde", "HTTP is request-response: client asks, server answers, connection closes. WebSocket upgrades HTTP to a persistent bidirectional connection. Use WebSocket for chat, live updates, gaming. Use SSE for server-to-client only streaming. HTTP polling wastes bandwidth with repeated requests."]], "query": "websocket vs http"}
{"output": [["lex", "sql injection prevent parameterized"], ["lex", "prepared statements sql injection"], ["lex", "sql injection sanitize input"], ["vec", "how to prevent sql injection attacks in web applications"], ["vec", "why are parameterized queries and prepared statements important for database security"], ["hyde", "Never concatenate user input into SQL strings. Use parameterized queries: cursor.execute('SELECT * FROM users WHERE id = ?', (user_id,)). ORMs like SQLAlchemy handle this automatically. Validate and sanitize input, but parameterization is the primary defense."]], "query": "SQL injection prevention"}
{"output": [["lex", "typescript generics type parameter"], ["lex", "typescript generic function interface"], ["lex", "ts generics constraints extends"], ["vec", "how to use generics in typescript to write reusable type-safe functions and classes"], ["vec", "what is the syntax for generic type parameters and constraints in typescript"], ["hyde", "Generics let you write flexible, reusable code while maintaining type safety. Declare with angle brackets: function identity<T>(arg: T): T { return arg; }. Add constraints with extends: function getLength<T extends { length: number }>(item: T): number { return item.length; }."]], "query": "TypeScript generics"}
{"output": [["lex", "oauth2 authorization code flow"], ["lex", "oauth authorization code grant"], ["lex", "oauth2 pkce code verifier"], ["vec", "how does the oauth 2.0 authorization code flow work for secure third-party authentication"], ["vec", "what are the steps in the oauth authorization code grant and why is pkce recommended"], ["hyde", "User clicks login, redirected to auth server with client_id and redirect_uri. User authenticates, gets authorization code. App exchanges code for tokens at token endpoint. PKCE adds code_verifier/code_challenge to prevent interception attacks—required for public clients."]], "query": "OAuth 2.0 authorization code flow"}
{"output": [["lex", "redis cache strategy pattern"], ["lex", "redis cache aside through"], ["lex", "redis ttl expiration caching"], ["vec", "what are the common caching strategies when using redis for application performance"], ["vec", "how do you implement cache-aside, write-through, and write-behind patterns with redis"], ["hyde", "Cache-aside: app checks Redis first, fetches from DB on miss, writes to cache. Write-through: writes go to cache and DB together. Write-behind: writes to cache, async sync to DB. Set TTL with EXPIRE to prevent stale data. Use SETEX for atomic set-with-expiry."]], "query": "Redis caching strategies"}
{"output": [["lex", "graphql rest api comparison"], ["lex", "graphql query flexibility"], ["lex", "rest vs graphql tradeoffs"], ["vec", "what are the main differences between graphql and rest api design approaches"], ["vec", "when should you choose graphql over rest for your api architecture"], ["hyde", "REST uses fixed endpoints returning predefined data shapes. GraphQL uses one endpoint where clients specify exactly what fields they need, reducing over-fetching. REST is simpler, better cached. GraphQL excels for mobile apps, complex data requirements, and avoiding multiple round trips."]], "query": "GraphQL vs REST"}
{"output": [["lex", "linux chmod file permissions"], ["lex", "unix rwx permission bits"], ["lex", "chmod 755 644 meaning"], ["vec", "how do linux file permissions work and how do you change them with chmod"], ["vec", "what do the rwx permission bits mean for owner, group, and others"], ["hyde", "Permissions are rwx for read, write, execute. Three groups: owner, group, others. chmod 755 means rwxr-xr-x (owner full, others read+execute). chmod 644 means rw-r--r-- (owner read+write, others read only). Use chmod +x to add execute permission."]], "query": "linux file permissions chmod"}
{"output": [["lex", "async await try catch"], ["lex", "javascript promise error handling"], ["lex", "async function exception handling"], ["vec", "how to properly handle errors in javascript async await functions"], ["vec", "what happens when an async function throws and how do you catch those errors"], ["hyde", "Wrap await calls in try-catch blocks: try { const data = await fetchData(); } catch (err) { console.error(err); }. Unhandled rejections in async functions become unhandled promise rejections. For multiple awaits, catch individually or use Promise.allSettled to handle partial failures."]], "query": "async await error handling"}
{"output": [["lex", "terraform state file backend"], ["lex", "terraform remote state s3"], ["lex", "tfstate locking management"], ["vec", "how to manage terraform state files and what are the best practices for team collaboration"], ["vec", "why should you use remote state backends in terraform and how do you configure them"], ["hyde", "Store state remotely in S3, GCS, or Terraform Cloud—never commit tfstate to git. Configure backend in terraform { backend \"s3\" { bucket = \"my-state\", key = \"prod.tfstate\", region = \"us-east-1\", dynamodb_table = \"tf-locks\" } }. DynamoDB provides state locking to prevent concurrent modifications."]], "query": "terraform state management"}
{"output": [["lex", "monorepo polyrepo comparison"], ["lex", "monorepo benefits drawbacks"], ["lex", "single repo multiple repos"], ["vec", "what are the tradeoffs between using a monorepo versus multiple repositories"], ["vec", "when does a monorepo make sense and what tools help manage large monorepos"], ["hyde", "Monorepos keep all code in one repository—easier atomic changes across packages, shared tooling, consistent versioning. Polyrepos give teams autonomy, simpler CI, clearer ownership. Use monorepos for tightly coupled code. Tools: Nx, Turborepo, Lerna, Bazel for build orchestration."]], "query": "monorepo vs polyrepo"}
{"output": [["lex", "css flexbox center align"], ["lex", "flexbox justify-content align-items"], ["lex", "css center div flexbox"], ["vec", "how to center elements horizontally and vertically using css flexbox"], ["vec", "what flexbox properties do you use to center content in a container"], ["hyde", "On the container, set display: flex; justify-content: center; align-items: center;. justify-content handles the main axis (horizontal by default), align-items handles the cross axis. Add height: 100vh to center within the viewport. For a single item, margin: auto also works inside flex containers."]], "query": "CSS flexbox centering"}
{"output": [["lex", "database connection pool"], ["lex", "connection pooling performance"], ["lex", "db pool size configuration"], ["vec", "what is database connection pooling and why does it improve application performance"], ["vec", "how do you configure connection pool size for optimal database throughput"], ["hyde", "Opening database connections is expensive. Connection pools maintain reusable connections. Set pool size based on: pool_size = (core_count * 2) + effective_spindle_count. Too small starves the app, too large overwhelms the database. Popular libraries: HikariCP for Java, pgbouncer for PostgreSQL."]], "query": "database connection pooling"}
{"output": [["lex", "kafka consumer group offset"], ["lex", "kafka partition consumer rebalance"], ["lex", "kafka consumer group id"], ["vec", "how do kafka consumer groups work for parallel message processing"], ["vec", "what happens during consumer group rebalancing and how are partitions assigned"], ["hyde", "Consumers with the same group.id share partitions—each partition is consumed by only one consumer in the group. Adding consumers triggers rebalancing. If consumers > partitions, some idle. Offsets track progress per partition. Use enable.auto.commit=false for exactly-once semantics with manual commits."]], "query": "kafka consumer groups"}
{"output": [["lex", "vim search replace substitute"], ["lex", "vim sed command :%s"], ["lex", "vim find replace regex"], ["vec", "how to search and replace text in vim using the substitute command"], ["vec", "what is the syntax for vim search and replace with regular expressions and flags"], ["hyde", "Use :%s/old/new/g to replace all occurrences in the file. % means all lines, g means global (all matches per line). Add c for confirmation: :%s/old/new/gc. Use \\< and \\> for word boundaries. & in replacement refers to the matched text. Use :s for current line only."]], "query": "vim search replace"}
{"output": [["lex", "http status codes list"], ["lex", "http 200 400 500 codes"], ["lex", "rest api status codes"], ["vec", "what do the common http status codes mean and when should you use each"], ["vec", "how do you choose the right http status code for api responses"], ["hyde", "200 OK success, 201 Created for POST, 204 No Content for DELETE. 400 Bad Request for invalid input, 401 Unauthorized for auth required, 403 Forbidden for insufficient permissions, 404 Not Found. 500 Internal Server Error for unexpected failures, 503 Service Unavailable for temporary issues."]], "query": "http status codes meaning"}
{"output": [["lex", "docker environment variables"], ["lex", "docker env file compose"], ["lex", "docker run -e env vars"], ["vec", "how to pass environment variables to docker containers"], ["vec", "what are the different ways to set environment variables in docker and docker compose"], ["hyde", "Use -e flag: docker run -e DB_HOST=localhost myapp. In docker-compose.yml: environment: - DB_HOST=localhost or env_file: - .env. For secrets, prefer docker secrets or mount files. Variables in Dockerfile with ENV persist in the image; runtime -e overrides them."]], "query": "environment variables docker"}
{"output": [["lex", "rate limiting algorithm api"], ["lex", "token bucket leaky bucket"], ["lex", "rate limit sliding window"], ["vec", "what algorithms are used for api rate limiting and how do they differ"], ["vec", "how do token bucket and sliding window rate limiting algorithms work"], ["hyde", "Token bucket: bucket fills at fixed rate, requests consume tokens, rejected when empty—allows bursts. Leaky bucket: requests queue, processed at fixed rate—smooths traffic. Sliding window: count requests in rolling time window. Fixed window has boundary issues; sliding window log is precise but memory-heavy."]], "query": "rate limiting algorithms"}
{"output": [["lex", "memory leak debug profiler"], ["lex", "memory leak detection tools"], ["lex", "heap dump memory analysis"], ["vec", "how to find and fix memory leaks in applications"], ["vec", "what tools and techniques help identify memory leaks in different programming languages"], ["hyde", "Use heap profilers: Chrome DevTools for JavaScript, VisualVM or MAT for Java, Valgrind for C/C++, tracemalloc for Python. Take heap snapshots before and after operations, compare retained objects. Common causes: forgotten event listeners, closures holding references, unbounded caches, circular references."]], "query": "memory leak debugging"}
{"output": [["lex", "stripe webhook signature verify"], ["lex", "stripe webhook endpoint secret"], ["lex", "stripe event verification"], ["vec", "how to verify stripe webhook signatures to ensure events are authentic"], ["vec", "what is the correct way to handle and validate incoming stripe webhook events"], ["hyde", "Stripe signs webhooks with your endpoint secret. Verify using stripe.webhooks.constructEvent(body, sig, endpointSecret). Use the raw request body, not parsed JSON. Return 200 quickly, process async. Handle event types like checkout.session.completed. Store endpoint secret securely, rotate if compromised."]], "query": "Stripe webhook verification"}
{"output": [["lex", "react context redux comparison"], ["lex", "useContext vs redux state"], ["lex", "react state management choice"], ["vec", "when should you use react context versus redux for state management"], ["vec", "what are the tradeoffs between react context api and redux for global state"], ["hyde", "Context is built-in, simple for low-frequency updates like themes and auth. Redux adds boilerplate but provides devtools, middleware, time-travel debugging, predictable updates. Context re-renders all consumers on any change; Redux allows granular subscriptions. Use Context for simple cases, Redux for complex state logic."]], "query": "React context vs Redux"}
{"output": [["lex", "dns records types a cname mx"], ["lex", "dns configuration records"], ["lex", "domain name system records"], ["vec", "what are the different types of dns records and what does each one do"], ["vec", "how do you configure dns records for a domain including a, cname, mx, and txt records"], ["hyde", "A record maps domain to IPv4 address. AAAA for IPv6. CNAME aliases one domain to another (can't be on root domain). MX for mail servers with priority. TXT for verification and SPF/DKIM. NS delegates to nameservers. TTL controls caching duration. Changes propagate based on previous TTL."]], "query": "DNS records explained"}
{"output": [["lex", "tmux session window pane"], ["lex", "tmux attach detach session"], ["lex", "tmux commands shortcuts"], ["vec", "how to create and manage tmux sessions for persistent terminal workflows"], ["vec", "what are the essential tmux commands for session, window, and pane management"], ["hyde", "Start session: tmux new -s name. Detach: Ctrl-b d. Reattach: tmux attach -t name. New window: Ctrl-b c. Split pane: Ctrl-b % (vertical), Ctrl-b \" (horizontal). Navigate panes: Ctrl-b arrow. List sessions: tmux ls. Kill session: tmux kill-session -t name. Sessions persist after disconnect."]], "query": "tmux session management"}
{"output": [["lex", "utf-8 unicode encoding"], ["lex", "utf8 character encoding bytes"], ["lex", "unicode utf-8 ascii difference"], ["vec", "how does utf-8 encoding work and why is it the standard for text"], ["vec", "what is the relationship between unicode and utf-8 and how are characters encoded as bytes"], ["hyde", "UTF-8 encodes Unicode code points as 1-4 bytes. ASCII characters (0-127) use 1 byte, compatible with ASCII. Higher code points use more bytes with leading bits indicating length. UTF-8 is self-synchronizing and space-efficient for Latin text. Always specify encoding explicitly when reading/writing files."]], "query": "utf-8 encoding explained"}
{"output": [["lex", "bash script best practices"], ["lex", "shell script error handling"], ["lex", "bash scripting guidelines"], ["vec", "what are the best practices for writing reliable and maintainable shell scripts"], ["vec", "how do you handle errors and edge cases properly in bash scripts"], ["hyde", "Start with #!/usr/bin/env bash and set -euo pipefail. Use shellcheck for linting. Quote variables: \"$var\". Use [[ ]] for tests. Handle errors with trap. Use functions for reusability. Avoid parsing ls output—use globs. Prefer printf over echo. Use local variables in functions. Add -- before filenames from user input."]], "query": "shell script best practices"}
{"output": [["lex", "load balancer health check"], ["lex", "health check endpoint liveness"], ["lex", "lb health probe configuration"], ["vec", "how do load balancer health checks work and why are they important"], ["vec", "what should a health check endpoint return and how do you configure health check intervals"], ["hyde", "Load balancers probe backend instances to route traffic only to healthy ones. Health endpoint should check critical dependencies (database, cache) and return 200 if healthy, 503 if not. Configure interval (10-30s), timeout (5s), and threshold (2-3 failures). Include /health and /ready endpoints for Kubernetes liveness and readiness."]], "query": "load balancer health checks"}
{"output": [["lex", "ssl tls certificate renewal"], ["lex", "lets encrypt certbot renew"], ["lex", "https certificate expiration"], ["vec", "how to renew ssl tls certificates before they expire"], ["vec", "what is the process for automated certificate renewal with lets encrypt and certbot"], ["hyde", "Let's Encrypt certificates expire in 90 days. Certbot auto-renews via cron or systemd timer: certbot renew runs twice daily, renews within 30 days of expiry. Test with --dry-run. For other CAs, set calendar reminders. Check expiration: openssl s_client -connect domain:443 | openssl x509 -noout -dates."]], "query": "certificate ssl tls renewal"}
{"output": [["lex", "python decorator function"], ["lex", "python @ decorator syntax"], ["lex", "python wrapper decorator"], ["vec", "how do python decorators work and what is the syntax for creating them"], ["vec", "what are common use cases for decorators in python like logging, caching, and authentication"], ["hyde", "Decorators wrap functions to extend behavior. @decorator before def is syntactic sugar for func = decorator(func). A decorator is a function taking a function and returning a new function. Use functools.wraps to preserve metadata. Common uses: @lru_cache for memoization, @login_required for auth, timing/logging wrappers."]], "query": "python decorators explained"}
{"output": [["lex", "cap theorem distributed database"], ["lex", "consistency availability partition tolerance"], ["lex", "cap theorem tradeoffs"], ["vec", "what is the cap theorem and how does it apply to distributed database design"], ["vec", "how do different databases choose between consistency and availability during network partitions"], ["hyde", "CAP theorem: distributed systems can guarantee only 2 of 3—Consistency (all nodes see same data), Availability (requests get responses), Partition tolerance (survives network splits). During partitions, choose CP (reject requests for consistency, like MongoDB) or AP (serve potentially stale data, like Cassandra). PACELC extends CAP for normal operation tradeoffs."]], "query": "cap theorem database"}
{"output": [["lex", "garbage collection gc tuning"], ["lex", "jvm gc heap memory"], ["lex", "gc pause time optimization"], ["vec", "how to tune garbage collection for better application performance"], ["vec", "what gc algorithms are available and how do you choose gc settings for low latency"], ["hyde", "For JVM, G1GC is default, good balance of throughput and pause times. ZGC and Shenandoah offer sub-millisecond pauses for low-latency needs. Tune heap size: -Xms and -Xmx same to avoid resizing. Monitor with gc logs: -Xlog:gc*. Reduce allocation rate by reusing objects and avoiding unnecessary autoboxing."]], "query": "garbage collection tuning"}
{"output": [["lex", "feature flags toggles"], ["lex", "feature flag implementation"], ["lex", "gradual rollout feature flags"], ["vec", "how to implement feature flags for gradual rollouts and a/b testing"], ["vec", "what are the best practices for managing feature flags in production"], ["hyde", "Feature flags decouple deployment from release. Simple: if (featureEnabled('new-checkout')) { ... }. Store flags in config, database, or services like LaunchDarkly. Use for gradual rollout (1% -> 10% -> 100%), A/B tests, kill switches. Clean up old flags to prevent technical debt. Log flag evaluations for debugging."]], "query": "feature flags implementation"}
{"output": [["lex", "kafka partitions topics"], ["lex", "kafka partition key ordering"], ["lex", "kafka partition count scaling"], ["vec", "how do kafka partitions work and how do they affect scalability and message ordering"], ["vec", "how do you choose the right number of partitions for a kafka topic"], ["hyde", "Partitions enable parallelism—each partition is consumed by one consumer in a group. Messages with same key go to same partition, preserving order per key. More partitions = more throughput but more overhead. Start with partitions = max(expected throughput / partition throughput, consumer count). Can't reduce partitions, only increase."]], "query": "apache kafka partitions"}
{"output": [["lex", "gpg key sign verify"], ["lex", "gpg signature git commits"], ["lex", "pgp key signing encryption"], ["vec", "how to use gpg keys for signing and verifying files and git commits"], ["vec", "what is the process for creating gpg keys and configuring git to sign commits"], ["hyde", "Generate key: gpg --full-generate-key. List keys: gpg --list-keys. Sign file: gpg --sign file.txt. Verify: gpg --verify file.txt.gpg. For git: git config --global user.signingkey KEYID, git config --global commit.gpgsign true. Export public key for GitHub: gpg --armor --export KEYID."]], "query": "GPG key signing"}
{"output": [["lex", "api versioning strategy"], ["lex", "rest api version url header"], ["lex", "api backward compatibility"], ["vec", "what are the different strategies for versioning rest apis"], ["vec", "how do you maintain backward compatibility when evolving an api"], ["hyde", "URL versioning (/v1/users) is explicit, easy to route. Header versioning (Accept: application/vnd.api+json;version=1) keeps URLs clean. Query param (?version=1) is simple but pollutes URLs. Prefer additive changes—new fields don't break clients. Deprecate gracefully with sunset headers and migration guides."]], "query": "api versioning strategies"}
{"output": [["lex", "mutex semaphore difference"], ["lex", "mutex lock synchronization"], ["lex", "semaphore counting binary"], ["vec", "what is the difference between a mutex and a semaphore in concurrent programming"], ["vec", "when should you use a mutex versus a semaphore for thread synchronization"], ["hyde", "Mutex is a binary lock owned by one thread—used for mutual exclusion protecting shared resources. Semaphore is a counter allowing N concurrent accesses—used for limiting concurrency (connection pools, rate limiting). Mutex has ownership (same thread must unlock), semaphore doesn't. Use mutex for critical sections, semaphore for resource counting."]], "query": "mutex vs semaphore"}
{"output": [["lex", "ipv4 ipv6 difference"], ["lex", "ipv6 address format"], ["lex", "ipv4 exhaustion ipv6 transition"], ["vec", "what are the key differences between ipv4 and ipv6 addressing"], ["vec", "why is ipv6 necessary and how does the transition from ipv4 work"], ["hyde", "IPv4 uses 32-bit addresses (4 billion), exhausted in 2011. IPv6 uses 128-bit addresses (340 undecillion), formatted as eight hex groups: 2001:0db8::1. IPv6 eliminates NAT need, has built-in IPsec. Transition via dual-stack (both protocols) or tunneling. Check IPv6 support: curl -6 ipv6.google.com."]], "query": "IPv4 vs IPv6"}
{"output": [["lex", "dependency injection di pattern"], ["lex", "di inversion of control ioc"], ["lex", "dependency injection testing"], ["vec", "what is dependency injection and why does it improve code maintainability"], ["vec", "how does dependency injection make unit testing easier"], ["hyde", "Dependency injection provides dependencies from outside rather than creating them internally. Class receives DatabaseService via constructor instead of instantiating it. Benefits: loose coupling, easy testing with mocks, flexible configuration. Instead of new EmailService(), inject interface IEmailService—swap implementations without changing consumer code."]], "query": "dependency injection benefits"}
{"output": [["lex", "s3 bucket policy permissions"], ["lex", "aws s3 iam policy json"], ["lex", "s3 bucket access control"], ["vec", "how to write an s3 bucket policy to control access permissions"], ["vec", "what is the difference between s3 bucket policies and iam policies for access control"], ["hyde", "S3 bucket policies are resource-based JSON policies attached to buckets. Grant public read: {\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::bucket/*\"}]}. IAM policies attach to users/roles. Use bucket policies for cross-account access, IAM for user-specific permissions. Block public access settings override policies."]], "query": "S3 bucket policy"}
{"output": [["lex", "database sharding horizontal"], ["lex", "shard key partition strategy"], ["lex", "database horizontal scaling"], ["vec", "what is database sharding and what strategies exist for partitioning data"], ["vec", "how do you choose a shard key and what are the tradeoffs of different sharding approaches"], ["hyde", "Sharding distributes data across multiple databases. Strategies: range-based (user IDs 1-1M on shard 1), hash-based (consistent hashing), directory-based (lookup table). Choose shard key with high cardinality, even distribution, query locality. Avoid hot spots—don't shard by timestamp. Cross-shard queries are expensive. Consider sharding only after vertical scaling exhausted."]], "query": "database sharding strategies"}
{"output": [["lex", "compile time runtime error difference"], ["lex", "static dynamic type checking"], ["lex", "compilation errors vs exceptions"], ["vec", "what is the difference between compile time and runtime errors in programming"], ["vec", "why are compile time errors generally preferable to runtime errors for code reliability"], ["hyde", "Compile time errors occur during compilation before code runs—syntax errors, type mismatches in statically typed languages. Runtime errors occur during execution—null pointer, division by zero, file not found. Compile time errors are caught early, cheaper to fix. Static typing and linters catch more at compile time. TypeScript catches errors that JavaScript defers to runtime."]], "query": "compile time vs runtime errors"}
{"output": [["lex", "cdn content delivery network"], ["lex", "cdn caching edge servers"], ["lex", "cloudflare cdn setup"], ["vec", "how does a content delivery network cdn improve website performance"], ["vec", "what content should you serve through a cdn and how do you configure cache headers"], ["hyde", "CDN caches content at edge servers geographically close to users, reducing latency. Serve static assets (images, CSS, JS) through CDN. Set Cache-Control headers: max-age=31536000 for versioned assets, shorter for dynamic content. Configure origin pulls, purge cache on deploys. Popular CDNs: Cloudflare, CloudFront, Fastly, Akamai."]], "query": "content delivery network cdn"}
{"output": [["lex", "mac address ip address difference"], ["lex", "mac address layer 2 hardware"], ["lex", "ip vs mac network address"], ["vec", "what is the difference between a mac address and an ip address in networking"], ["vec", "how do mac addresses and ip addresses work together for network communication"], ["hyde", "MAC address is hardware identifier burned into NIC, 48 bits (AA:BB:CC:DD:EE:FF), used in Layer 2 (local network). IP address is logical, assigned by network, used in Layer 3 (routing). ARP maps IP to MAC on local network. IP gets packets between networks, MAC delivers within a network segment. MAC is permanent, IP changes with network."]], "query": "mac address vs ip address"}
{"output": [["lex", "unit test integration test difference"], ["lex", "testing pyramid unit integration e2e"], ["lex", "unit test isolation mocking"], ["vec", "what is the difference between unit tests and integration tests"], ["vec", "how should you balance unit tests and integration tests in the testing pyramid"], ["hyde", "Unit tests verify single functions or classes in isolation using mocks for dependencies. Fast, many of them. Integration tests verify components working together with real dependencies. Slower, fewer of them. Testing pyramid: many unit tests at base, fewer integration tests in middle, few e2e tests at top. Unit tests catch logic bugs, integration tests catch interface mismatches."]], "query": "unit test vs integration test"}
{"output": [["lex", "webhook vs polling api"], ["lex", "push vs pull api pattern"], ["lex", "webhook callback http"], ["vec", "what are the differences between webhooks and api polling for receiving updates"], ["vec", "when should you use webhooks instead of polling an api for changes"], ["hyde", "Polling: client repeatedly asks server for updates. Simple but wastes bandwidth if nothing changed, may miss events between polls. Webhooks: server pushes updates to client endpoint when events occur. Real-time, efficient, but requires public endpoint and handling failures. Use webhooks when available (Stripe, GitHub), fall back to polling for systems without webhook support."]], "query": "webhook vs api polling"}
{"output": [["lex", "yaml json config comparison"], ["lex", "yaml vs json syntax"], ["lex", "configuration file format"], ["vec", "what are the differences between yaml and json for configuration files"], ["vec", "when should you choose yaml over json for application configuration"], ["hyde", "JSON: strict syntax, no comments, explicit quotes, universal parsing. YAML: superset of JSON, allows comments, cleaner for humans, indentation-based. Use JSON for data interchange, APIs, when strict parsing needed. Use YAML for configs (Docker Compose, Kubernetes, CI/CD) where human editing is common. YAML gotchas: Norway problem (NO parsed as false), inconsistent indentation."]], "query": "yaml vs json config"}
{"output": [["lex", "solid principles oop"], ["lex", "single responsibility open closed"], ["lex", "solid design principles"], ["vec", "what are the solid principles in object oriented design"], ["vec", "how do the solid principles improve code maintainability and flexibility"], ["hyde", "SOLID: Single Responsibility (one reason to change), Open/Closed (open for extension, closed for modification), Liskov Substitution (subtypes substitutable for base types), Interface Segregation (many specific interfaces over one general), Dependency Inversion (depend on abstractions not concretions). Following SOLID produces loosely coupled, testable, maintainable code."]], "query": "solid principles explained"}
{"output": [["lex", "protobuf json comparison"], ["lex", "protocol buffers serialization"], ["lex", "grpc protobuf format"], ["vec", "what are the differences between protocol buffers and json for data serialization"], ["vec", "when should you use protobuf instead of json for api communication"], ["hyde", "JSON: human-readable, self-describing, universal support, larger payload. Protobuf: binary format, 3-10x smaller, faster serialization, requires schema (.proto files), strong typing. Use JSON for public APIs, debugging, human interaction. Use Protobuf for internal microservices, high-throughput systems, gRPC. Schema evolution with field numbers enables backward compatibility."]], "query": "protobuf vs json"}
{"output": [["lex", "stateless stateful service"], ["lex", "stateless api design"], ["lex", "session state storage"], ["vec", "what is the difference between stateless and stateful services in application architecture"], ["vec", "why are stateless services easier to scale and how do you handle state when needed"], ["hyde", "Stateless services don't store client state between requests—any instance can handle any request. Scale by adding instances, no session affinity needed. Stateful services maintain client state, requiring sticky sessions or shared storage. Make services stateless by storing session in JWT tokens, Redis, or databases. Stateless is preferred for horizontal scaling and resilience."]], "query": "stateless vs stateful services"}
{"output": [["lex", "git bisect bug finding"], ["lex", "git bisect good bad"], ["lex", "binary search git commit"], ["vec", "how to use git bisect to find the commit that introduced a bug"], ["vec", "what is the git bisect workflow for binary search debugging through commit history"], ["hyde", "git bisect does binary search through commits to find where bug was introduced. Start: git bisect start, git bisect bad (current has bug), git bisect good v1.0 (known good commit). Git checks out middle commit—test and mark git bisect good or git bisect bad. Repeat until found. Automate with git bisect run ./test.sh. End with git bisect reset."]], "query": "git bisect debugging"}
{"output": [["lex", "roman empire fall causes"], ["lex", "decline of rome 476 AD"], ["lex", "western roman empire collapse"], ["vec", "what were the main causes of the fall of the western roman empire"], ["vec", "how did economic, military, and political factors contribute to rome's collapse"], ["hyde", "The Western Roman Empire fell in 476 AD when Odoacer deposed Romulus Augustulus. Contributing factors included economic troubles, military overextension, political instability with rapid emperor turnover, pressure from Germanic tribes, and the division of the empire. The Eastern Roman Empire (Byzantine) survived until 1453."]], "query": "fall of the Roman Empire"}
{"output": [["lex", "world war 1 causes"], ["lex", "ww1 assassination archduke franz ferdinand"], ["lex", "causes great war 1914"], ["vec", "what were the main causes and triggers of world war one"], ["vec", "how did the assassination of archduke franz ferdinand lead to a global war"], ["hyde", "WWI was caused by MAIN: Militarism, Alliances, Imperialism, Nationalism. The assassination of Archduke Franz Ferdinand on June 28, 1914 in Sarajevo triggered a chain reaction through alliance systems. Austria-Hungary declared war on Serbia, pulling in Russia, Germany, France, and Britain within weeks."]], "query": "causes of World War I"}
{"output": [["lex", "egyptian pyramids how built"], ["lex", "pyramid construction ancient egypt"], ["lex", "great pyramid giza building"], ["vec", "how were the ancient egyptian pyramids constructed without modern technology"], ["vec", "what techniques and labor did ancient egyptians use to build the pyramids at giza"], ["hyde", "The pyramids were built using ramps, levers, and organized labor forces of tens of thousands of workers. Limestone blocks weighing 2.5 tons average were quarried nearby and transported on sledges. Workers were not slaves but paid laborers housed in nearby villages. The Great Pyramid took approximately 20 years to complete around 2560 BC."]], "query": "ancient Egypt pyramids construction"}
{"output": [["lex", "protestant reformation luther"], ["lex", "martin luther 95 theses"], ["lex", "reformation 1517 catholic church"], ["vec", "what started the protestant reformation and what were its main ideas"], ["vec", "how did martin luther's 95 theses challenge the catholic church and spread across europe"], ["hyde", "Martin Luther posted his 95 Theses on October 31, 1517 in Wittenberg, criticizing indulgences and papal authority. Key ideas: salvation by faith alone, scripture as sole authority, priesthood of all believers. The printing press spread his ideas rapidly. Luther was excommunicated in 1521. The Reformation split Western Christianity and sparked religious wars across Europe."]], "query": "Protestant Reformation Martin Luther"}
{"output": [["lex", "silk road trade route"], ["lex", "silk road ancient trade china"], ["lex", "silk road history commerce"], ["vec", "what was the silk road and how did it connect east and west"], ["vec", "what goods and ideas were exchanged along the ancient silk road trade routes"], ["hyde", "The Silk Road was a network of trade routes connecting China to the Mediterranean from around 130 BC to 1450s AD. Goods traded: silk, spices, porcelain from East; gold, glass, horses from West. Also spread Buddhism, Islam, technologies like paper and gunpowder, and unfortunately, the Black Death. Named by German geographer Ferdinand von Richthofen in 1877."]], "query": "Silk Road trade routes"}
{"output": [["lex", "world war 2 d-day normandy"], ["lex", "d-day june 6 1944 invasion"], ["lex", "operation overlord ww2"], ["vec", "what happened on d-day and why was the normandy invasion a turning point in world war two"], ["vec", "how was the d-day invasion of normandy planned and executed by allied forces"], ["hyde", "D-Day, June 6, 1944, was the largest amphibious invasion in history. Operation Overlord landed 156,000 Allied troops on five Normandy beaches (Utah, Omaha, Gold, Juno, Sword). Despite 10,000+ casualties, it established a Western Front, leading to Paris liberation (August 1944) and Germany's surrender (May 1945). Supreme Commander: Dwight D. Eisenhower."]], "query": "World War II D-Day"}

View File

@@ -0,0 +1,336 @@
{"output": [["lex", "ssh key auth setup"], ["lex", "ssh public private key pair"], ["lex", "passwordless ssh login"]], "query": "ssh key authentication only: lex"}
{"output": [["vec", "how to set up ssh key-based authentication instead of passwords"], ["vec", "step-by-step guide to generating and configuring ssh keys for secure server access"]], "query": "ssh key authentication only: vec"}
{"output": [["hyde", "Generate an SSH key pair with ssh-keygen -t ed25519. Copy the public key to ~/.ssh/authorized_keys on the remote server using ssh-copy-id. Ensure permissions are 700 for .ssh and 600 for authorized_keys."]], "query": "ssh key authentication only: hyde"}
{"output": [["lex", "python venv virtualenv"], ["lex", "pip virtual environment setup"], ["lex", "python isolated dependencies"]], "query": "Python virtual environments only: lex"}
{"output": [["vec", "how to create and activate a python virtual environment for project isolation"], ["vec", "what is the difference between venv, virtualenv, and conda for managing python dependencies"]], "query": "Python virtual environments only: vec"}
{"output": [["hyde", "Create a virtual environment with python -m venv myenv, then activate it with source myenv/bin/activate on Unix or myenv\\Scripts\\activate on Windows. Install packages with pip and they stay isolated from your system Python."]], "query": "Python virtual environments only: hyde"}
{"output": [["lex", "git merge conflict resolve"], ["lex", "git conflict markers HEAD"], ["lex", "resolving merge conflicts"]], "query": "git merge conflicts only: lex"}
{"output": [["vec", "how to resolve merge conflicts in git when two branches modify the same lines"], ["vec", "what do the conflict markers mean and how do you manually edit conflicted files"]], "query": "git merge conflicts only: vec"}
{"output": [["hyde", "Git marks conflicts with <<<<<<< HEAD, =======, and >>>>>>> branch-name. Edit the file to keep the code you want, remove the markers, then git add the file and commit. Use git mergetool for a visual diff interface."]], "query": "git merge conflicts only: hyde"}
{"output": [["lex", "tcp udp protocol difference"], ["lex", "tcp reliable udp fast"], ["lex", "connection-oriented vs connectionless"]], "query": "TCP vs UDP only: lex"}
{"output": [["vec", "what are the key differences between TCP and UDP network protocols"], ["vec", "when should you use TCP versus UDP for application networking"]], "query": "TCP vs UDP only: vec"}
{"output": [["hyde", "TCP provides reliable, ordered delivery with acknowledgments and retransmission. UDP is faster but unreliable—packets may arrive out of order or not at all. Use TCP for web, email, file transfer. Use UDP for video streaming, gaming, DNS where speed matters more than reliability."]], "query": "TCP vs UDP only: hyde"}
{"output": [["lex", "docker compose volume mount"], ["lex", "docker persistent storage volumes"], ["lex", "compose yaml volumes section"]], "query": "Docker compose volumes only: lex"}
{"output": [["vec", "how to configure persistent volumes in docker compose for data that survives container restarts"], ["vec", "what is the difference between bind mounts and named volumes in docker compose"]], "query": "Docker compose volumes only: vec"}
{"output": [["hyde", "In docker-compose.yml, define volumes under the top-level volumes key and reference them in services. Named volumes persist data in Docker's storage. Bind mounts map host directories directly: volumes: - ./data:/app/data for development, - myvolume:/app/data for production."]], "query": "Docker compose volumes only: hyde"}
{"output": [["lex", "regex lookahead assertion"], ["lex", "regex lookbehind positive negative"], ["lex", "zero-width assertions regex"]], "query": "regex lookahead lookbehind only: lex"}
{"output": [["vec", "how do lookahead and lookbehind assertions work in regular expressions"], ["vec", "what is the syntax for positive and negative lookahead and lookbehind in regex"]], "query": "regex lookahead lookbehind only: vec"}
{"output": [["hyde", "Lookahead (?=pattern) matches a position followed by pattern without consuming it. Negative lookahead (?!pattern) matches where pattern doesn't follow. Lookbehind (?<=pattern) matches a position preceded by pattern. Example: \\d+(?= dollars) matches numbers followed by 'dollars'."]], "query": "regex lookahead lookbehind only: hyde"}
{"output": [["lex", "kubernetes secrets k8s"], ["lex", "k8s secret yaml base64"], ["lex", "kubectl create secret"]], "query": "Kubernetes secrets management only: lex"}
{"output": [["vec", "how to create and use secrets in kubernetes for sensitive configuration data"], ["vec", "what are best practices for managing secrets in kubernetes clusters"]], "query": "Kubernetes secrets management only: vec"}
{"output": [["hyde", "Create secrets with kubectl create secret generic mysecret --from-literal=password=abc123. Reference in pods via env valueFrom secretKeyRef or volume mounts. Secrets are base64 encoded, not encrypted—use sealed-secrets or external secret managers like Vault for production."]], "query": "Kubernetes secrets management only: hyde"}
{"output": [["lex", "cors error fix browser"], ["lex", "access-control-allow-origin header"], ["lex", "cors preflight request"]], "query": "CORS errors fix only: lex"}
{"output": [["vec", "how to fix CORS errors when making API requests from a web browser"], ["vec", "what causes cross-origin resource sharing errors and how do you configure the server to allow them"]], "query": "CORS errors fix only: vec"}
{"output": [["hyde", "CORS errors occur when a browser blocks requests to a different origin. Fix by adding Access-Control-Allow-Origin headers on the server. For Express: app.use(cors()). For preflight requests, handle OPTIONS and return Access-Control-Allow-Methods and Access-Control-Allow-Headers."]], "query": "CORS errors fix only: hyde"}
{"output": [["lex", "postgresql index explain analyze"], ["lex", "postgres btree index performance"], ["lex", "create index postgresql"]], "query": "PostgreSQL indexes explain only: lex"}
{"output": [["vec", "how to use EXPLAIN ANALYZE to understand query performance and index usage in postgresql"], ["vec", "what types of indexes does postgresql support and when should you use each"]], "query": "PostgreSQL indexes explain only: vec"}
{"output": [["hyde", "Run EXPLAIN ANALYZE SELECT... to see the query plan and actual execution time. Look for Seq Scan on large tables—add an index with CREATE INDEX idx_name ON table(column). B-tree indexes work for equality and range queries, GIN for full-text search and arrays, GiST for geometric data."]], "query": "PostgreSQL indexes explain only: hyde"}
{"output": [["lex", "jwt refresh token flow"], ["lex", "access token refresh token"], ["lex", "jwt token expiration renewal"]], "query": "JWT token refresh only: lex"}
{"output": [["vec", "how does the jwt refresh token flow work for maintaining user sessions"], ["vec", "what is the difference between access tokens and refresh tokens in jwt authentication"]], "query": "JWT token refresh only: vec"}
{"output": [["hyde", "Access tokens are short-lived (15 min) and sent with each request. Refresh tokens are long-lived (days/weeks) and stored securely. When the access token expires, send the refresh token to /auth/refresh to get a new access token without re-authenticating."]], "query": "JWT token refresh only: hyde"}
{"output": [["lex", "react useeffect cleanup function"], ["lex", "useeffect return cleanup"], ["lex", "react unmount cleanup"]], "query": "React useEffect cleanup only: lex"}
{"output": [["vec", "how to properly clean up side effects in react useeffect to prevent memory leaks"], ["vec", "when does the useeffect cleanup function run and what should you clean up"]], "query": "React useEffect cleanup only: vec"}
{"output": [["hyde", "Return a cleanup function from useEffect to run before the component unmounts or before the effect re-runs. Use it to cancel subscriptions, clear timers, and abort fetch requests. Example: useEffect(() => { const id = setInterval(fn, 1000); return () => clearInterval(id); }, []);"]], "query": "React useEffect cleanup only: hyde"}
{"output": [["lex", "nginx reverse proxy config"], ["lex", "nginx proxy_pass upstream"], ["lex", "nginx load balancer setup"]], "query": "nginx reverse proxy only: lex"}
{"output": [["vec", "how to configure nginx as a reverse proxy to forward requests to backend servers"], ["vec", "what nginx directives do you need for a basic reverse proxy configuration"]], "query": "nginx reverse proxy only: vec"}
{"output": [["hyde", "In nginx.conf, use proxy_pass inside a location block: location /api { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }. Add upstream blocks for load balancing across multiple backend servers."]], "query": "nginx reverse proxy only: hyde"}
{"output": [["lex", "systemd service unit file"], ["lex", "systemctl enable start service"], ["lex", "systemd service configuration"]], "query": "systemd service file only: lex"}
{"output": [["vec", "how to create a systemd service file to run an application as a linux daemon"], ["vec", "what are the essential sections and directives in a systemd unit file"]], "query": "systemd service file only: vec"}
{"output": [["hyde", "Create /etc/systemd/system/myapp.service with [Unit] Description, [Service] ExecStart=/path/to/app, Restart=always, User=appuser, and [Install] WantedBy=multi-user.target. Run systemctl daemon-reload, then systemctl enable --now myapp."]], "query": "systemd service file only: hyde"}
{"output": [["lex", "websocket http difference"], ["lex", "websocket persistent connection"], ["lex", "http polling vs websocket"]], "query": "websocket vs http only: lex"}
{"output": [["vec", "what are the differences between websockets and http for real-time communication"], ["vec", "when should you use websockets instead of http long polling or server-sent events"]], "query": "websocket vs http only: vec"}
{"output": [["hyde", "HTTP is request-response: client asks, server answers, connection closes. WebSocket upgrades HTTP to a persistent bidirectional connection. Use WebSocket for chat, live updates, gaming. Use SSE for server-to-client only streaming. HTTP polling wastes bandwidth with repeated requests."]], "query": "websocket vs http only: hyde"}
{"output": [["lex", "sql injection prevent parameterized"], ["lex", "prepared statements sql injection"], ["lex", "sql injection sanitize input"]], "query": "SQL injection prevention only: lex"}
{"output": [["vec", "how to prevent sql injection attacks in web applications"], ["vec", "why are parameterized queries and prepared statements important for database security"]], "query": "SQL injection prevention only: vec"}
{"output": [["hyde", "Never concatenate user input into SQL strings. Use parameterized queries: cursor.execute('SELECT * FROM users WHERE id = ?', (user_id,)). ORMs like SQLAlchemy handle this automatically. Validate and sanitize input, but parameterization is the primary defense."]], "query": "SQL injection prevention only: hyde"}
{"output": [["lex", "typescript generics type parameter"], ["lex", "typescript generic function interface"], ["lex", "ts generics constraints extends"]], "query": "TypeScript generics only: lex"}
{"output": [["vec", "how to use generics in typescript to write reusable type-safe functions and classes"], ["vec", "what is the syntax for generic type parameters and constraints in typescript"]], "query": "TypeScript generics only: vec"}
{"output": [["hyde", "Generics let you write flexible, reusable code while maintaining type safety. Declare with angle brackets: function identity<T>(arg: T): T { return arg; }. Add constraints with extends: function getLength<T extends { length: number }>(item: T): number { return item.length; }."]], "query": "TypeScript generics only: hyde"}
{"output": [["lex", "oauth2 authorization code flow"], ["lex", "oauth authorization code grant"], ["lex", "oauth2 pkce code verifier"]], "query": "OAuth 2.0 authorization code flow only: lex"}
{"output": [["vec", "how does the oauth 2.0 authorization code flow work for secure third-party authentication"], ["vec", "what are the steps in the oauth authorization code grant and why is pkce recommended"]], "query": "OAuth 2.0 authorization code flow only: vec"}
{"output": [["hyde", "User clicks login, redirected to auth server with client_id and redirect_uri. User authenticates, gets authorization code. App exchanges code for tokens at token endpoint. PKCE adds code_verifier/code_challenge to prevent interception attacks—required for public clients."]], "query": "OAuth 2.0 authorization code flow only: hyde"}
{"output": [["lex", "redis cache strategy pattern"], ["lex", "redis cache aside through"], ["lex", "redis ttl expiration caching"]], "query": "Redis caching strategies only: lex"}
{"output": [["vec", "what are the common caching strategies when using redis for application performance"], ["vec", "how do you implement cache-aside, write-through, and write-behind patterns with redis"]], "query": "Redis caching strategies only: vec"}
{"output": [["hyde", "Cache-aside: app checks Redis first, fetches from DB on miss, writes to cache. Write-through: writes go to cache and DB together. Write-behind: writes to cache, async sync to DB. Set TTL with EXPIRE to prevent stale data. Use SETEX for atomic set-with-expiry."]], "query": "Redis caching strategies only: hyde"}
{"output": [["lex", "graphql rest api comparison"], ["lex", "graphql query flexibility"], ["lex", "rest vs graphql tradeoffs"]], "query": "GraphQL vs REST only: lex"}
{"output": [["vec", "what are the main differences between graphql and rest api design approaches"], ["vec", "when should you choose graphql over rest for your api architecture"]], "query": "GraphQL vs REST only: vec"}
{"output": [["hyde", "REST uses fixed endpoints returning predefined data shapes. GraphQL uses one endpoint where clients specify exactly what fields they need, reducing over-fetching. REST is simpler, better cached. GraphQL excels for mobile apps, complex data requirements, and avoiding multiple round trips."]], "query": "GraphQL vs REST only: hyde"}
{"output": [["lex", "linux chmod file permissions"], ["lex", "unix rwx permission bits"], ["lex", "chmod 755 644 meaning"]], "query": "linux file permissions chmod only: lex"}
{"output": [["vec", "how do linux file permissions work and how do you change them with chmod"], ["vec", "what do the rwx permission bits mean for owner, group, and others"]], "query": "linux file permissions chmod only: vec"}
{"output": [["hyde", "Permissions are rwx for read, write, execute. Three groups: owner, group, others. chmod 755 means rwxr-xr-x (owner full, others read+execute). chmod 644 means rw-r--r-- (owner read+write, others read only). Use chmod +x to add execute permission."]], "query": "linux file permissions chmod only: hyde"}
{"output": [["lex", "async await try catch"], ["lex", "javascript promise error handling"], ["lex", "async function exception handling"]], "query": "async await error handling only: lex"}
{"output": [["vec", "how to properly handle errors in javascript async await functions"], ["vec", "what happens when an async function throws and how do you catch those errors"]], "query": "async await error handling only: vec"}
{"output": [["hyde", "Wrap await calls in try-catch blocks: try { const data = await fetchData(); } catch (err) { console.error(err); }. Unhandled rejections in async functions become unhandled promise rejections. For multiple awaits, catch individually or use Promise.allSettled to handle partial failures."]], "query": "async await error handling only: hyde"}
{"output": [["lex", "elasticsearch query dsl"], ["lex", "elasticsearch bool must should"], ["lex", "es full text search query"]], "query": "Elasticsearch query DSL only: lex"}
{"output": [["vec", "how to write search queries using elasticsearch query dsl syntax"], ["vec", "what are the common query types in elasticsearch like match, term, and bool queries"]], "query": "Elasticsearch query DSL only: vec"}
{"output": [["hyde", "Elasticsearch Query DSL uses JSON. Match query for full-text: {match: {title: 'search'}}. Term for exact: {term: {status: 'published'}}. Bool combines queries: {bool: {must: [...], should: [...], filter: [...], must_not: [...]}}. Filter context skips scoring for faster filtering."]], "query": "Elasticsearch query DSL only: hyde"}
{"output": [["lex", "terraform state file backend"], ["lex", "terraform remote state s3"], ["lex", "tfstate locking management"]], "query": "terraform state management only: lex"}
{"output": [["vec", "how to manage terraform state files and what are the best practices for team collaboration"], ["vec", "why should you use remote state backends in terraform and how do you configure them"]], "query": "terraform state management only: vec"}
{"output": [["hyde", "Store state remotely in S3, GCS, or Terraform Cloud—never commit tfstate to git. Configure backend in terraform { backend \"s3\" { bucket = \"my-state\", key = \"prod.tfstate\", region = \"us-east-1\", dynamodb_table = \"tf-locks\" } }. DynamoDB provides state locking to prevent concurrent modifications."]], "query": "terraform state management only: hyde"}
{"output": [["lex", "monorepo polyrepo comparison"], ["lex", "monorepo benefits drawbacks"], ["lex", "single repo multiple repos"]], "query": "monorepo vs polyrepo only: lex"}
{"output": [["vec", "what are the tradeoffs between using a monorepo versus multiple repositories"], ["vec", "when does a monorepo make sense and what tools help manage large monorepos"]], "query": "monorepo vs polyrepo only: vec"}
{"output": [["hyde", "Monorepos keep all code in one repository—easier atomic changes across packages, shared tooling, consistent versioning. Polyrepos give teams autonomy, simpler CI, clearer ownership. Use monorepos for tightly coupled code. Tools: Nx, Turborepo, Lerna, Bazel for build orchestration."]], "query": "monorepo vs polyrepo only: hyde"}
{"output": [["lex", "prometheus alerting rules config"], ["lex", "prometheus alertmanager rules"], ["lex", "promql alert expressions"]], "query": "prometheus alerting rules only: lex"}
{"output": [["vec", "how to write prometheus alerting rules to notify on metric thresholds"], ["vec", "what is the syntax for prometheus alert rules and how do they integrate with alertmanager"]], "query": "prometheus alerting rules only: vec"}
{"output": [["hyde", "Define rules in YAML: groups: - name: example rules: - alert: HighErrorRate expr: rate(http_errors_total[5m]) > 0.1 for: 5m labels: severity: critical annotations: summary: High error rate. Prometheus evaluates rules periodically and sends firing alerts to Alertmanager for routing and deduplication."]], "query": "prometheus alerting rules only: hyde"}
{"output": [["lex", "css flexbox center align"], ["lex", "flexbox justify-content align-items"], ["lex", "css center div flexbox"]], "query": "CSS flexbox centering only: lex"}
{"output": [["vec", "how to center elements horizontally and vertically using css flexbox"], ["vec", "what flexbox properties do you use to center content in a container"]], "query": "CSS flexbox centering only: vec"}
{"output": [["hyde", "On the container, set display: flex; justify-content: center; align-items: center;. justify-content handles the main axis (horizontal by default), align-items handles the cross axis. Add height: 100vh to center within the viewport. For a single item, margin: auto also works inside flex containers."]], "query": "CSS flexbox centering only: hyde"}
{"output": [["lex", "database connection pool"], ["lex", "connection pooling performance"], ["lex", "db pool size configuration"]], "query": "database connection pooling only: lex"}
{"output": [["vec", "what is database connection pooling and why does it improve application performance"], ["vec", "how do you configure connection pool size for optimal database throughput"]], "query": "database connection pooling only: vec"}
{"output": [["hyde", "Opening database connections is expensive. Connection pools maintain reusable connections. Set pool size based on: pool_size = (core_count * 2) + effective_spindle_count. Too small starves the app, too large overwhelms the database. Popular libraries: HikariCP for Java, pgbouncer for PostgreSQL."]], "query": "database connection pooling only: hyde"}
{"output": [["lex", "kafka consumer group offset"], ["lex", "kafka partition consumer rebalance"], ["lex", "kafka consumer group id"]], "query": "kafka consumer groups only: lex"}
{"output": [["vec", "how do kafka consumer groups work for parallel message processing"], ["vec", "what happens during consumer group rebalancing and how are partitions assigned"]], "query": "kafka consumer groups only: vec"}
{"output": [["hyde", "Consumers with the same group.id share partitions—each partition is consumed by only one consumer in the group. Adding consumers triggers rebalancing. If consumers > partitions, some idle. Offsets track progress per partition. Use enable.auto.commit=false for exactly-once semantics with manual commits."]], "query": "kafka consumer groups only: hyde"}
{"output": [["lex", "vim search replace substitute"], ["lex", "vim sed command :%s"], ["lex", "vim find replace regex"]], "query": "vim search replace only: lex"}
{"output": [["vec", "how to search and replace text in vim using the substitute command"], ["vec", "what is the syntax for vim search and replace with regular expressions and flags"]], "query": "vim search replace only: vec"}
{"output": [["hyde", "Use :%s/old/new/g to replace all occurrences in the file. % means all lines, g means global (all matches per line). Add c for confirmation: :%s/old/new/gc. Use \\< and \\> for word boundaries. & in replacement refers to the matched text. Use :s for current line only."]], "query": "vim search replace only: hyde"}
{"output": [["lex", "http status codes list"], ["lex", "http 200 400 500 codes"], ["lex", "rest api status codes"]], "query": "http status codes meaning only: lex"}
{"output": [["vec", "what do the common http status codes mean and when should you use each"], ["vec", "how do you choose the right http status code for api responses"]], "query": "http status codes meaning only: vec"}
{"output": [["hyde", "200 OK success, 201 Created for POST, 204 No Content for DELETE. 400 Bad Request for invalid input, 401 Unauthorized for auth required, 403 Forbidden for insufficient permissions, 404 Not Found. 500 Internal Server Error for unexpected failures, 503 Service Unavailable for temporary issues."]], "query": "http status codes meaning only: hyde"}
{"output": [["lex", "binary search algorithm"], ["lex", "binary search sorted array"], ["lex", "binary search time complexity"]], "query": "binary search algorithm only: lex"}
{"output": [["vec", "how does the binary search algorithm work and what is its time complexity"], ["vec", "how do you implement binary search to find an element in a sorted array"]], "query": "binary search algorithm only: vec"}
{"output": [["hyde", "Binary search halves the search space each iteration. Compare target with middle element: if smaller, search left half; if larger, search right. O(log n) time complexity. Requires sorted input. Watch for integer overflow in mid calculation: use low + (high - low) / 2 instead of (low + high) / 2."]], "query": "binary search algorithm only: hyde"}
{"output": [["lex", "git rebase interactive squash"], ["lex", "git rebase -i edit commits"], ["lex", "git squash commits rebase"]], "query": "git rebase interactive only: lex"}
{"output": [["vec", "how to use git interactive rebase to edit, squash, and reorder commits"], ["vec", "what are the commands available in git rebase interactive mode"]], "query": "git rebase interactive only: vec"}
{"output": [["hyde", "Run git rebase -i HEAD~5 to edit the last 5 commits. In the editor, change 'pick' to: squash (s) to combine with previous, reword (r) to edit message, edit (e) to amend, drop (d) to remove. Save and follow prompts. Never rebase commits already pushed to shared branches."]], "query": "git rebase interactive only: hyde"}
{"output": [["lex", "docker environment variables"], ["lex", "docker env file compose"], ["lex", "docker run -e env vars"]], "query": "environment variables docker only: lex"}
{"output": [["vec", "how to pass environment variables to docker containers"], ["vec", "what are the different ways to set environment variables in docker and docker compose"]], "query": "environment variables docker only: vec"}
{"output": [["hyde", "Use -e flag: docker run -e DB_HOST=localhost myapp. In docker-compose.yml: environment: - DB_HOST=localhost or env_file: - .env. For secrets, prefer docker secrets or mount files. Variables in Dockerfile with ENV persist in the image; runtime -e overrides them."]], "query": "environment variables docker only: hyde"}
{"output": [["lex", "rate limiting algorithm api"], ["lex", "token bucket leaky bucket"], ["lex", "rate limit sliding window"]], "query": "rate limiting algorithms only: lex"}
{"output": [["vec", "what algorithms are used for api rate limiting and how do they differ"], ["vec", "how do token bucket and sliding window rate limiting algorithms work"]], "query": "rate limiting algorithms only: vec"}
{"output": [["hyde", "Token bucket: bucket fills at fixed rate, requests consume tokens, rejected when empty—allows bursts. Leaky bucket: requests queue, processed at fixed rate—smooths traffic. Sliding window: count requests in rolling time window. Fixed window has boundary issues; sliding window log is precise but memory-heavy."]], "query": "rate limiting algorithms only: hyde"}
{"output": [["lex", "blue green deployment strategy"], ["lex", "zero downtime deployment"], ["lex", "blue green kubernetes rollout"]], "query": "blue green deployment only: lex"}
{"output": [["vec", "what is blue green deployment and how does it enable zero downtime releases"], ["vec", "how do you implement blue green deployments in kubernetes or cloud environments"]], "query": "blue green deployment only: vec"}
{"output": [["hyde", "Blue-green runs two identical environments. Blue is live, green has the new version. Test green thoroughly, then switch the load balancer. Instant rollback by switching back to blue. In Kubernetes, use two deployments with a service selector update, or Argo Rollouts for automated blue-green."]], "query": "blue green deployment only: hyde"}
{"output": [["lex", "memory leak debug profiler"], ["lex", "memory leak detection tools"], ["lex", "heap dump memory analysis"]], "query": "memory leak debugging only: lex"}
{"output": [["vec", "how to find and fix memory leaks in applications"], ["vec", "what tools and techniques help identify memory leaks in different programming languages"]], "query": "memory leak debugging only: vec"}
{"output": [["hyde", "Use heap profilers: Chrome DevTools for JavaScript, VisualVM or MAT for Java, Valgrind for C/C++, tracemalloc for Python. Take heap snapshots before and after operations, compare retained objects. Common causes: forgotten event listeners, closures holding references, unbounded caches, circular references."]], "query": "memory leak debugging only: hyde"}
{"output": [["lex", "stripe webhook signature verify"], ["lex", "stripe webhook endpoint secret"], ["lex", "stripe event verification"]], "query": "Stripe webhook verification only: lex"}
{"output": [["vec", "how to verify stripe webhook signatures to ensure events are authentic"], ["vec", "what is the correct way to handle and validate incoming stripe webhook events"]], "query": "Stripe webhook verification only: vec"}
{"output": [["hyde", "Stripe signs webhooks with your endpoint secret. Verify using stripe.webhooks.constructEvent(body, sig, endpointSecret). Use the raw request body, not parsed JSON. Return 200 quickly, process async. Handle event types like checkout.session.completed. Store endpoint secret securely, rotate if compromised."]], "query": "Stripe webhook verification only: hyde"}
{"output": [["lex", "react context redux comparison"], ["lex", "useContext vs redux state"], ["lex", "react state management choice"]], "query": "React context vs Redux only: lex"}
{"output": [["vec", "when should you use react context versus redux for state management"], ["vec", "what are the tradeoffs between react context api and redux for global state"]], "query": "React context vs Redux only: vec"}
{"output": [["hyde", "Context is built-in, simple for low-frequency updates like themes and auth. Redux adds boilerplate but provides devtools, middleware, time-travel debugging, predictable updates. Context re-renders all consumers on any change; Redux allows granular subscriptions. Use Context for simple cases, Redux for complex state logic."]], "query": "React context vs Redux only: hyde"}
{"output": [["lex", "dns records types a cname mx"], ["lex", "dns configuration records"], ["lex", "domain name system records"]], "query": "DNS records explained only: lex"}
{"output": [["vec", "what are the different types of dns records and what does each one do"], ["vec", "how do you configure dns records for a domain including a, cname, mx, and txt records"]], "query": "DNS records explained only: vec"}
{"output": [["hyde", "A record maps domain to IPv4 address. AAAA for IPv6. CNAME aliases one domain to another (can't be on root domain). MX for mail servers with priority. TXT for verification and SPF/DKIM. NS delegates to nameservers. TTL controls caching duration. Changes propagate based on previous TTL."]], "query": "DNS records explained only: hyde"}
{"output": [["lex", "tmux session window pane"], ["lex", "tmux attach detach session"], ["lex", "tmux commands shortcuts"]], "query": "tmux session management only: lex"}
{"output": [["vec", "how to create and manage tmux sessions for persistent terminal workflows"], ["vec", "what are the essential tmux commands for session, window, and pane management"]], "query": "tmux session management only: vec"}
{"output": [["hyde", "Start session: tmux new -s name. Detach: Ctrl-b d. Reattach: tmux attach -t name. New window: Ctrl-b c. Split pane: Ctrl-b % (vertical), Ctrl-b \" (horizontal). Navigate panes: Ctrl-b arrow. List sessions: tmux ls. Kill session: tmux kill-session -t name. Sessions persist after disconnect."]], "query": "tmux session management only: hyde"}
{"output": [["lex", "utf-8 unicode encoding"], ["lex", "utf8 character encoding bytes"], ["lex", "unicode utf-8 ascii difference"]], "query": "utf-8 encoding explained only: lex"}
{"output": [["vec", "how does utf-8 encoding work and why is it the standard for text"], ["vec", "what is the relationship between unicode and utf-8 and how are characters encoded as bytes"]], "query": "utf-8 encoding explained only: vec"}
{"output": [["hyde", "UTF-8 encodes Unicode code points as 1-4 bytes. ASCII characters (0-127) use 1 byte, compatible with ASCII. Higher code points use more bytes with leading bits indicating length. UTF-8 is self-synchronizing and space-efficient for Latin text. Always specify encoding explicitly when reading/writing files."]], "query": "utf-8 encoding explained only: hyde"}
{"output": [["lex", "microservices communication patterns"], ["lex", "sync async microservice calls"], ["lex", "event driven microservices"]], "query": "microservices communication patterns only: lex"}
{"output": [["vec", "what are the common communication patterns between microservices"], ["vec", "when should microservices use synchronous rest calls versus asynchronous messaging"]], "query": "microservices communication patterns only: vec"}
{"output": [["hyde", "Sync (REST/gRPC): simple, immediate response, but creates coupling and cascade failures. Async (message queues, events): decoupled, resilient, eventual consistency. Use sync for queries needing immediate response. Use async for commands, notifications, cross-service workflows. Event sourcing and CQRS for complex domains."]], "query": "microservices communication patterns only: hyde"}
{"output": [["lex", "bash script best practices"], ["lex", "shell script error handling"], ["lex", "bash scripting guidelines"]], "query": "shell script best practices only: lex"}
{"output": [["vec", "what are the best practices for writing reliable and maintainable shell scripts"], ["vec", "how do you handle errors and edge cases properly in bash scripts"]], "query": "shell script best practices only: vec"}
{"output": [["hyde", "Start with #!/usr/bin/env bash and set -euo pipefail. Use shellcheck for linting. Quote variables: \"$var\". Use [[ ]] for tests. Handle errors with trap. Use functions for reusability. Avoid parsing ls output—use globs. Prefer printf over echo. Use local variables in functions. Add -- before filenames from user input."]], "query": "shell script best practices only: hyde"}
{"output": [["lex", "load balancer health check"], ["lex", "health check endpoint liveness"], ["lex", "lb health probe configuration"]], "query": "load balancer health checks only: lex"}
{"output": [["vec", "how do load balancer health checks work and why are they important"], ["vec", "what should a health check endpoint return and how do you configure health check intervals"]], "query": "load balancer health checks only: vec"}
{"output": [["hyde", "Load balancers probe backend instances to route traffic only to healthy ones. Health endpoint should check critical dependencies (database, cache) and return 200 if healthy, 503 if not. Configure interval (10-30s), timeout (5s), and threshold (2-3 failures). Include /health and /ready endpoints for Kubernetes liveness and readiness."]], "query": "load balancer health checks only: hyde"}
{"output": [["lex", "ssl tls certificate renewal"], ["lex", "lets encrypt certbot renew"], ["lex", "https certificate expiration"]], "query": "certificate ssl tls renewal only: lex"}
{"output": [["vec", "how to renew ssl tls certificates before they expire"], ["vec", "what is the process for automated certificate renewal with lets encrypt and certbot"]], "query": "certificate ssl tls renewal only: vec"}
{"output": [["hyde", "Let's Encrypt certificates expire in 90 days. Certbot auto-renews via cron or systemd timer: certbot renew runs twice daily, renews within 30 days of expiry. Test with --dry-run. For other CAs, set calendar reminders. Check expiration: openssl s_client -connect domain:443 | openssl x509 -noout -dates."]], "query": "certificate ssl tls renewal only: hyde"}
{"output": [["lex", "python decorator function"], ["lex", "python @ decorator syntax"], ["lex", "python wrapper decorator"]], "query": "python decorators explained only: lex"}
{"output": [["vec", "how do python decorators work and what is the syntax for creating them"], ["vec", "what are common use cases for decorators in python like logging, caching, and authentication"]], "query": "python decorators explained only: vec"}
{"output": [["hyde", "Decorators wrap functions to extend behavior. @decorator before def is syntactic sugar for func = decorator(func). A decorator is a function taking a function and returning a new function. Use functools.wraps to preserve metadata. Common uses: @lru_cache for memoization, @login_required for auth, timing/logging wrappers."]], "query": "python decorators explained only: hyde"}
{"output": [["lex", "cap theorem distributed database"], ["lex", "consistency availability partition tolerance"], ["lex", "cap theorem tradeoffs"]], "query": "cap theorem database only: lex"}
{"output": [["vec", "what is the cap theorem and how does it apply to distributed database design"], ["vec", "how do different databases choose between consistency and availability during network partitions"]], "query": "cap theorem database only: vec"}
{"output": [["hyde", "CAP theorem: distributed systems can guarantee only 2 of 3—Consistency (all nodes see same data), Availability (requests get responses), Partition tolerance (survives network splits). During partitions, choose CP (reject requests for consistency, like MongoDB) or AP (serve potentially stale data, like Cassandra). PACELC extends CAP for normal operation tradeoffs."]], "query": "cap theorem database only: hyde"}
{"output": [["lex", "garbage collection gc tuning"], ["lex", "jvm gc heap memory"], ["lex", "gc pause time optimization"]], "query": "garbage collection tuning only: lex"}
{"output": [["vec", "how to tune garbage collection for better application performance"], ["vec", "what gc algorithms are available and how do you choose gc settings for low latency"]], "query": "garbage collection tuning only: vec"}
{"output": [["hyde", "For JVM, G1GC is default, good balance of throughput and pause times. ZGC and Shenandoah offer sub-millisecond pauses for low-latency needs. Tune heap size: -Xms and -Xmx same to avoid resizing. Monitor with gc logs: -Xlog:gc*. Reduce allocation rate by reusing objects and avoiding unnecessary autoboxing."]], "query": "garbage collection tuning only: hyde"}
{"output": [["lex", "feature flags toggles"], ["lex", "feature flag implementation"], ["lex", "gradual rollout feature flags"]], "query": "feature flags implementation only: lex"}
{"output": [["vec", "how to implement feature flags for gradual rollouts and a/b testing"], ["vec", "what are the best practices for managing feature flags in production"]], "query": "feature flags implementation only: vec"}
{"output": [["hyde", "Feature flags decouple deployment from release. Simple: if (featureEnabled('new-checkout')) { ... }. Store flags in config, database, or services like LaunchDarkly. Use for gradual rollout (1% -> 10% -> 100%), A/B tests, kill switches. Clean up old flags to prevent technical debt. Log flag evaluations for debugging."]], "query": "feature flags implementation only: hyde"}
{"output": [["lex", "kafka partitions topics"], ["lex", "kafka partition key ordering"], ["lex", "kafka partition count scaling"]], "query": "apache kafka partitions only: lex"}
{"output": [["vec", "how do kafka partitions work and how do they affect scalability and message ordering"], ["vec", "how do you choose the right number of partitions for a kafka topic"]], "query": "apache kafka partitions only: vec"}
{"output": [["hyde", "Partitions enable parallelism—each partition is consumed by one consumer in a group. Messages with same key go to same partition, preserving order per key. More partitions = more throughput but more overhead. Start with partitions = max(expected throughput / partition throughput, consumer count). Can't reduce partitions, only increase."]], "query": "apache kafka partitions only: hyde"}
{"output": [["lex", "cron job syntax schedule"], ["lex", "crontab expression format"], ["lex", "cron schedule examples"]], "query": "cron job syntax only: lex"}
{"output": [["vec", "how to write cron expressions to schedule jobs at specific times"], ["vec", "what does each field in a crontab entry mean and what are common scheduling patterns"]], "query": "cron job syntax only: vec"}
{"output": [["hyde", "Cron format: minute hour day-of-month month day-of-week command. */5 * * * * runs every 5 minutes. 0 2 * * * runs daily at 2 AM. 0 0 * * 0 runs weekly on Sunday. Use crontab -e to edit. Tools like crontab.guru help build expressions. Consider timezone—cron uses system time."]], "query": "cron job syntax only: hyde"}
{"output": [["lex", "gpg key sign verify"], ["lex", "gpg signature git commits"], ["lex", "pgp key signing encryption"]], "query": "GPG key signing only: lex"}
{"output": [["vec", "how to use gpg keys for signing and verifying files and git commits"], ["vec", "what is the process for creating gpg keys and configuring git to sign commits"]], "query": "GPG key signing only: vec"}
{"output": [["hyde", "Generate key: gpg --full-generate-key. List keys: gpg --list-keys. Sign file: gpg --sign file.txt. Verify: gpg --verify file.txt.gpg. For git: git config --global user.signingkey KEYID, git config --global commit.gpgsign true. Export public key for GitHub: gpg --armor --export KEYID."]], "query": "GPG key signing only: hyde"}
{"output": [["lex", "api versioning strategy"], ["lex", "rest api version url header"], ["lex", "api backward compatibility"]], "query": "api versioning strategies only: lex"}
{"output": [["vec", "what are the different strategies for versioning rest apis"], ["vec", "how do you maintain backward compatibility when evolving an api"]], "query": "api versioning strategies only: vec"}
{"output": [["hyde", "URL versioning (/v1/users) is explicit, easy to route. Header versioning (Accept: application/vnd.api+json;version=1) keeps URLs clean. Query param (?version=1) is simple but pollutes URLs. Prefer additive changes—new fields don't break clients. Deprecate gracefully with sunset headers and migration guides."]], "query": "api versioning strategies only: hyde"}
{"output": [["lex", "mutex semaphore difference"], ["lex", "mutex lock synchronization"], ["lex", "semaphore counting binary"]], "query": "mutex vs semaphore only: lex"}
{"output": [["vec", "what is the difference between a mutex and a semaphore in concurrent programming"], ["vec", "when should you use a mutex versus a semaphore for thread synchronization"]], "query": "mutex vs semaphore only: vec"}
{"output": [["hyde", "Mutex is a binary lock owned by one thread—used for mutual exclusion protecting shared resources. Semaphore is a counter allowing N concurrent accesses—used for limiting concurrency (connection pools, rate limiting). Mutex has ownership (same thread must unlock), semaphore doesn't. Use mutex for critical sections, semaphore for resource counting."]], "query": "mutex vs semaphore only: hyde"}
{"output": [["lex", "json schema validation"], ["lex", "jsonschema validator python"], ["lex", "json schema types required"]], "query": "json schema validation only: lex"}
{"output": [["vec", "how to use json schema to validate the structure of json data"], ["vec", "what are the common json schema keywords for defining types, required fields, and constraints"]], "query": "json schema validation only: vec"}
{"output": [["hyde", "JSON Schema defines expected structure. Key properties: type (string, number, object, array), properties for object fields, required array for mandatory fields, items for array elements. Validators: ajv (JS), jsonschema (Python). Use for API request validation, config file validation, documentation generation."]], "query": "json schema validation only: hyde"}
{"output": [["lex", "ci cd pipeline stages"], ["lex", "continuous integration deployment"], ["lex", "build test deploy pipeline"]], "query": "CI CD pipeline stages only: lex"}
{"output": [["vec", "what are the typical stages in a ci cd pipeline"], ["vec", "how do you design a continuous integration and deployment pipeline for reliable releases"]], "query": "CI CD pipeline stages only: vec"}
{"output": [["hyde", "Typical stages: 1) Source—trigger on commit, 2) Build—compile, bundle, create artifacts, 3) Test—unit, integration, e2e tests, 4) Security scan—SAST, dependency audit, 5) Deploy to staging, 6) Acceptance tests, 7) Deploy to production. Use parallelization for speed. Gate deployments on test pass. Implement rollback mechanisms."]], "query": "CI CD pipeline stages only: hyde"}
{"output": [["lex", "event sourcing pattern"], ["lex", "event store append only log"], ["lex", "cqrs event sourcing"]], "query": "event sourcing pattern only: lex"}
{"output": [["vec", "what is event sourcing and how does it differ from traditional crud data storage"], ["vec", "how do you implement event sourcing and what are its benefits and challenges"]], "query": "event sourcing pattern only: vec"}
{"output": [["hyde", "Event sourcing stores state changes as immutable events rather than current state. Account balance is sum of all Deposit and Withdrawal events. Benefits: full audit trail, time travel, replay for debugging. Challenges: eventual consistency, event schema evolution, increased complexity. Often paired with CQRS—separate read models built from event stream."]], "query": "event sourcing pattern only: hyde"}
{"output": [["lex", "ipv4 ipv6 difference"], ["lex", "ipv6 address format"], ["lex", "ipv4 exhaustion ipv6 transition"]], "query": "IPv4 vs IPv6 only: lex"}
{"output": [["vec", "what are the key differences between ipv4 and ipv6 addressing"], ["vec", "why is ipv6 necessary and how does the transition from ipv4 work"]], "query": "IPv4 vs IPv6 only: vec"}
{"output": [["hyde", "IPv4 uses 32-bit addresses (4 billion), exhausted in 2011. IPv6 uses 128-bit addresses (340 undecillion), formatted as eight hex groups: 2001:0db8::1. IPv6 eliminates NAT need, has built-in IPsec. Transition via dual-stack (both protocols) or tunneling. Check IPv6 support: curl -6 ipv6.google.com."]], "query": "IPv4 vs IPv6 only: hyde"}
{"output": [["lex", "dependency injection di pattern"], ["lex", "di inversion of control ioc"], ["lex", "dependency injection testing"]], "query": "dependency injection benefits only: lex"}
{"output": [["vec", "what is dependency injection and why does it improve code maintainability"], ["vec", "how does dependency injection make unit testing easier"]], "query": "dependency injection benefits only: vec"}
{"output": [["hyde", "Dependency injection provides dependencies from outside rather than creating them internally. Class receives DatabaseService via constructor instead of instantiating it. Benefits: loose coupling, easy testing with mocks, flexible configuration. Instead of new EmailService(), inject interface IEmailService—swap implementations without changing consumer code."]], "query": "dependency injection benefits only: hyde"}
{"output": [["lex", "s3 bucket policy permissions"], ["lex", "aws s3 iam policy json"], ["lex", "s3 bucket access control"]], "query": "S3 bucket policy only: lex"}
{"output": [["vec", "how to write an s3 bucket policy to control access permissions"], ["vec", "what is the difference between s3 bucket policies and iam policies for access control"]], "query": "S3 bucket policy only: vec"}
{"output": [["hyde", "S3 bucket policies are resource-based JSON policies attached to buckets. Grant public read: {\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::bucket/*\"}]}. IAM policies attach to users/roles. Use bucket policies for cross-account access, IAM for user-specific permissions. Block public access settings override policies."]], "query": "S3 bucket policy only: hyde"}
{"output": [["lex", "idempotency api design"], ["lex", "idempotent request key"], ["lex", "api retry safety idempotency"]], "query": "idempotency api design only: lex"}
{"output": [["vec", "what is idempotency in api design and why is it important for reliability"], ["vec", "how do you implement idempotent endpoints to handle duplicate requests safely"]], "query": "idempotency api design only: vec"}
{"output": [["hyde", "Idempotent operations produce the same result regardless of how many times called. GET, PUT, DELETE are naturally idempotent. POST needs idempotency keys: client sends unique key, server stores result, returns cached result on retry. Store keys with TTL (24h). Critical for payment APIs—prevents double charges on network retry."]], "query": "idempotency api design only: hyde"}
{"output": [["lex", "awk command examples"], ["lex", "awk print column field"], ["lex", "awk text processing"]], "query": "awk command examples only: lex"}
{"output": [["vec", "how to use awk for text processing and extracting columns from files"], ["vec", "what are common awk patterns and commands for parsing structured text"]], "query": "awk command examples only: vec"}
{"output": [["hyde", "awk processes text line by line, splitting into fields. Print second column: awk '{print $2}' file. Custom delimiter: awk -F',' '{print $1}'. Pattern match: awk '/error/ {print}'. Sum column: awk '{sum+=$3} END {print sum}'. Variables: awk -v threshold=100 '$3 > threshold'. Built-in vars: NF (fields), NR (line number)."]], "query": "awk command examples only: hyde"}
{"output": [["lex", "database sharding horizontal"], ["lex", "shard key partition strategy"], ["lex", "database horizontal scaling"]], "query": "database sharding strategies only: lex"}
{"output": [["vec", "what is database sharding and what strategies exist for partitioning data"], ["vec", "how do you choose a shard key and what are the tradeoffs of different sharding approaches"]], "query": "database sharding strategies only: vec"}
{"output": [["hyde", "Sharding distributes data across multiple databases. Strategies: range-based (user IDs 1-1M on shard 1), hash-based (consistent hashing), directory-based (lookup table). Choose shard key with high cardinality, even distribution, query locality. Avoid hot spots—don't shard by timestamp. Cross-shard queries are expensive. Consider sharding only after vertical scaling exhausted."]], "query": "database sharding strategies only: hyde"}
{"output": [["lex", "jq json parsing command"], ["lex", "jq filter select query"], ["lex", "jq command line json"]], "query": "jq json parsing only: lex"}
{"output": [["vec", "how to use jq to parse and transform json data from the command line"], ["vec", "what are the common jq filters for extracting and manipulating json fields"]], "query": "jq json parsing only: vec"}
{"output": [["hyde", "jq is a command-line JSON processor. Extract field: jq '.name' file.json. Array element: jq '.[0]'. Nested: jq '.users[].email'. Filter: jq '.items[] | select(.price > 100)'. Transform: jq '{name: .title, count: .items | length}'. Raw output: jq -r. Pipe curl output: curl api | jq '.data'."]], "query": "jq json parsing only: hyde"}
{"output": [["lex", "compile time runtime error difference"], ["lex", "static dynamic type checking"], ["lex", "compilation errors vs exceptions"]], "query": "compile time vs runtime errors only: lex"}
{"output": [["vec", "what is the difference between compile time and runtime errors in programming"], ["vec", "why are compile time errors generally preferable to runtime errors for code reliability"]], "query": "compile time vs runtime errors only: vec"}
{"output": [["hyde", "Compile time errors occur during compilation before code runs—syntax errors, type mismatches in statically typed languages. Runtime errors occur during execution—null pointer, division by zero, file not found. Compile time errors are caught early, cheaper to fix. Static typing and linters catch more at compile time. TypeScript catches errors that JavaScript defers to runtime."]], "query": "compile time vs runtime errors only: hyde"}
{"output": [["lex", "cdn content delivery network"], ["lex", "cdn caching edge servers"], ["lex", "cloudflare cdn setup"]], "query": "content delivery network cdn only: lex"}
{"output": [["vec", "how does a content delivery network cdn improve website performance"], ["vec", "what content should you serve through a cdn and how do you configure cache headers"]], "query": "content delivery network cdn only: vec"}
{"output": [["hyde", "CDN caches content at edge servers geographically close to users, reducing latency. Serve static assets (images, CSS, JS) through CDN. Set Cache-Control headers: max-age=31536000 for versioned assets, shorter for dynamic content. Configure origin pulls, purge cache on deploys. Popular CDNs: Cloudflare, CloudFront, Fastly, Akamai."]], "query": "content delivery network cdn only: hyde"}
{"output": [["lex", "circuit breaker pattern"], ["lex", "circuit breaker resilience"], ["lex", "hystrix resilience4j circuit"]], "query": "circuit breaker pattern only: lex"}
{"output": [["vec", "what is the circuit breaker pattern and how does it improve system resilience"], ["vec", "how do you implement circuit breakers to prevent cascade failures in distributed systems"]], "query": "circuit breaker pattern only: vec"}
{"output": [["hyde", "Circuit breaker prevents repeated calls to failing services. States: Closed (normal), Open (failing, reject calls immediately), Half-Open (test recovery). After N failures, opens circuit. After timeout, allows test request. If succeeds, closes. Prevents cascade failures, provides fallbacks. Libraries: resilience4j (Java), polly (.NET), opossum (Node.js)."]], "query": "circuit breaker pattern only: hyde"}
{"output": [["lex", "mac address ip address difference"], ["lex", "mac address layer 2 hardware"], ["lex", "ip vs mac network address"]], "query": "mac address vs ip address only: lex"}
{"output": [["vec", "what is the difference between a mac address and an ip address in networking"], ["vec", "how do mac addresses and ip addresses work together for network communication"]], "query": "mac address vs ip address only: vec"}
{"output": [["hyde", "MAC address is hardware identifier burned into NIC, 48 bits (AA:BB:CC:DD:EE:FF), used in Layer 2 (local network). IP address is logical, assigned by network, used in Layer 3 (routing). ARP maps IP to MAC on local network. IP gets packets between networks, MAC delivers within a network segment. MAC is permanent, IP changes with network."]], "query": "mac address vs ip address only: hyde"}
{"output": [["lex", "unit test integration test difference"], ["lex", "testing pyramid unit integration e2e"], ["lex", "unit test isolation mocking"]], "query": "unit test vs integration test only: lex"}
{"output": [["vec", "what is the difference between unit tests and integration tests"], ["vec", "how should you balance unit tests and integration tests in the testing pyramid"]], "query": "unit test vs integration test only: vec"}
{"output": [["hyde", "Unit tests verify single functions or classes in isolation using mocks for dependencies. Fast, many of them. Integration tests verify components working together with real dependencies. Slower, fewer of them. Testing pyramid: many unit tests at base, fewer integration tests in middle, few e2e tests at top. Unit tests catch logic bugs, integration tests catch interface mismatches."]], "query": "unit test vs integration test only: hyde"}
{"output": [["lex", "base64 encoding decoding"], ["lex", "base64 encode decode string"], ["lex", "base64 binary to text"]], "query": "base64 encoding decoding only: lex"}
{"output": [["vec", "what is base64 encoding and when should you use it"], ["vec", "how do you encode and decode base64 strings in different programming languages"]], "query": "base64 encoding decoding only: vec"}
{"output": [["hyde", "Base64 encodes binary data as ASCII text using 64 characters (A-Z, a-z, 0-9, +, /). Increases size by ~33%. Use for embedding binary in JSON/XML, data URLs, email attachments. Not encryption—easily decoded. In shell: echo -n 'text' | base64. Decode: echo 'dGV4dA==' | base64 -d. In JS: btoa('text'), atob('dGV4dA==')."]], "query": "base64 encoding decoding only: hyde"}
{"output": [["lex", "tail recursion optimization"], ["lex", "tail call optimization tco"], ["lex", "recursive function stack overflow"]], "query": "tail recursion optimization only: lex"}
{"output": [["vec", "what is tail recursion and how does tail call optimization prevent stack overflow"], ["vec", "how do you convert a recursive function to tail recursive form"]], "query": "tail recursion optimization only: vec"}
{"output": [["hyde", "Tail recursion: recursive call is the last operation, no work after it returns. TCO reuses stack frame instead of adding new one—prevents stack overflow. Convert by passing accumulated result as parameter: factorial(n, acc=1) { return n <= 1 ? acc : factorial(n-1, n*acc); }. Not all languages implement TCO—JavaScript in strict mode, Scheme yes, Python no."]], "query": "tail recursion optimization only: hyde"}
{"output": [["lex", "nginx location block config"], ["lex", "nginx location regex prefix"], ["lex", "nginx location matching order"]], "query": "nginx location block only: lex"}
{"output": [["vec", "how do nginx location blocks work and in what order are they matched"], ["vec", "what is the syntax for nginx location directives including prefix and regex matching"]], "query": "nginx location block only: vec"}
{"output": [["hyde", "Location matching order: 1) Exact match (= /path), 2) Preferential prefix (^~ /path), 3) Regex in config order (~* case-insensitive, ~ case-sensitive), 4) Longest prefix match. Example: location /api { proxy_pass http://backend; }. Regex: location ~ \\.php$ { fastcgi_pass; }. Use = for exact matches to skip regex evaluation."]], "query": "nginx location block only: hyde"}
{"output": [["lex", "oop encapsulation abstraction"], ["lex", "object oriented principles"], ["lex", "encapsulation data hiding"]], "query": "oop encapsulation abstraction only: lex"}
{"output": [["vec", "what are encapsulation and abstraction in object oriented programming"], ["vec", "how do encapsulation and abstraction differ and why are they important for software design"]], "query": "oop encapsulation abstraction only: vec"}
{"output": [["hyde", "Encapsulation bundles data and methods, restricting direct access via private fields and public getters/setters. Protects internal state, enables validation. Abstraction hides implementation complexity, exposing only essential interface. Car has accelerate() method—you don't need to know engine internals. Encapsulation is how you hide, abstraction is what you hide."]], "query": "oop encapsulation abstraction only: hyde"}
{"output": [["lex", "webhook vs polling api"], ["lex", "push vs pull api pattern"], ["lex", "webhook callback http"]], "query": "webhook vs api polling only: lex"}
{"output": [["vec", "what are the differences between webhooks and api polling for receiving updates"], ["vec", "when should you use webhooks instead of polling an api for changes"]], "query": "webhook vs api polling only: vec"}
{"output": [["hyde", "Polling: client repeatedly asks server for updates. Simple but wastes bandwidth if nothing changed, may miss events between polls. Webhooks: server pushes updates to client endpoint when events occur. Real-time, efficient, but requires public endpoint and handling failures. Use webhooks when available (Stripe, GitHub), fall back to polling for systems without webhook support."]], "query": "webhook vs api polling only: hyde"}
{"output": [["lex", "database transaction isolation levels"], ["lex", "read committed serializable"], ["lex", "sql isolation dirty read phantom"]], "query": "database transaction isolation levels only: lex"}
{"output": [["vec", "what are the different database transaction isolation levels and their tradeoffs"], ["vec", "how do isolation levels prevent anomalies like dirty reads and phantom reads"]], "query": "database transaction isolation levels only: vec"}
{"output": [["hyde", "Isolation levels from weakest to strongest: Read Uncommitted (dirty reads possible), Read Committed (sees only committed data, default in PostgreSQL), Repeatable Read (no non-repeatable reads), Serializable (no phantom reads, full isolation). Higher isolation = more locking = lower concurrency. Choose based on consistency needs vs performance."]], "query": "database transaction isolation levels only: hyde"}
{"output": [["lex", "hash table collision resolution"], ["lex", "hash map chaining open addressing"], ["lex", "hash collision handling"]], "query": "hash table collision resolution only: lex"}
{"output": [["vec", "how do hash tables handle collisions when multiple keys hash to the same bucket"], ["vec", "what are the differences between chaining and open addressing for collision resolution"]], "query": "hash table collision resolution only: vec"}
{"output": [["hyde", "Chaining: each bucket holds a linked list of entries with same hash. Simple, handles high load well. Open addressing: on collision, probe for next empty slot. Linear probing (check next slot), quadratic probing, double hashing. Better cache locality but degrades at high load factors. Most implementations use chaining (Java HashMap) or open addressing with good probing (Python dict)."]], "query": "hash table collision resolution only: hyde"}
{"output": [["lex", "yaml json config comparison"], ["lex", "yaml vs json syntax"], ["lex", "configuration file format"]], "query": "yaml vs json config only: lex"}
{"output": [["vec", "what are the differences between yaml and json for configuration files"], ["vec", "when should you choose yaml over json for application configuration"]], "query": "yaml vs json config only: vec"}
{"output": [["hyde", "JSON: strict syntax, no comments, explicit quotes, universal parsing. YAML: superset of JSON, allows comments, cleaner for humans, indentation-based. Use JSON for data interchange, APIs, when strict parsing needed. Use YAML for configs (Docker Compose, Kubernetes, CI/CD) where human editing is common. YAML gotchas: Norway problem (NO parsed as false), inconsistent indentation."]], "query": "yaml vs json config only: hyde"}
{"output": [["lex", "kubernetes ingress controller"], ["lex", "k8s ingress nginx traefik"], ["lex", "ingress rules path host"]], "query": "Kubernetes ingress controller only: lex"}
{"output": [["vec", "what is a kubernetes ingress controller and how does it route external traffic to services"], ["vec", "how do you configure ingress rules for path-based and host-based routing in kubernetes"]], "query": "Kubernetes ingress controller only: vec"}
{"output": [["hyde", "Ingress controller implements Ingress resources, routing external HTTP/HTTPS to services. Popular controllers: nginx-ingress, Traefik, HAProxy. Ingress resource defines rules: host (foo.com), paths (/api -> api-service, / -> frontend). Annotations configure TLS, rate limiting, auth. Install controller first, then create Ingress resources."]], "query": "Kubernetes ingress controller only: hyde"}
{"output": [["lex", "docker layer caching build"], ["lex", "dockerfile cache optimization"], ["lex", "docker build cache layers"]], "query": "docker layer caching only: lex"}
{"output": [["vec", "how does docker layer caching work and how do you optimize dockerfiles for faster builds"], ["vec", "what dockerfile practices maximize cache hits when building docker images"]], "query": "docker layer caching only: vec"}
{"output": [["hyde", "Docker caches each instruction as a layer. Cache invalidates when instruction or context changes, invalidating all subsequent layers. Optimization: order from least to most frequently changing. Copy package.json and install deps before copying source code. Use .dockerignore. Multi-stage builds discard intermediate layers. COPY --from for selective extraction."]], "query": "docker layer caching only: hyde"}
{"output": [["lex", "ssh tunnel port forwarding"], ["lex", "ssh local remote forward"], ["lex", "ssh -L -R tunnel"]], "query": "ssh tunnel port forwarding only: lex"}
{"output": [["vec", "how to set up ssh tunnels for local and remote port forwarding"], ["vec", "what is the difference between ssh local port forwarding and remote port forwarding"]], "query": "ssh tunnel port forwarding only: vec"}
{"output": [["hyde", "Local forwarding (-L): access remote service through local port. ssh -L 8080:localhost:3000 server—localhost:8080 reaches server's port 3000. Remote forwarding (-R): expose local service through remote port. ssh -R 8080:localhost:3000 server—server:8080 reaches your port 3000. Use for accessing databases behind firewalls, exposing dev servers temporarily."]], "query": "ssh tunnel port forwarding only: hyde"}
{"output": [["lex", "rest api pagination"], ["lex", "api pagination offset cursor"], ["lex", "paginated response next page"]], "query": "rest api pagination only: lex"}
{"output": [["vec", "what are the different approaches to implementing pagination in rest apis"], ["vec", "how do offset-based and cursor-based pagination compare for api design"]], "query": "rest api pagination only: vec"}
{"output": [["hyde", "Offset pagination: ?page=2&limit=20 or ?offset=20&limit=20. Simple but slow for deep pages, inconsistent with real-time inserts. Cursor pagination: ?cursor=abc123&limit=20, cursor encodes position. Consistent, efficient, better for infinite scroll. Return next_cursor in response. Use Link headers or response body for pagination URLs."]], "query": "rest api pagination only: hyde"}
{"output": [["lex", "solid principles oop"], ["lex", "single responsibility open closed"], ["lex", "solid design principles"]], "query": "solid principles explained only: lex"}
{"output": [["vec", "what are the solid principles in object oriented design"], ["vec", "how do the solid principles improve code maintainability and flexibility"]], "query": "solid principles explained only: vec"}
{"output": [["hyde", "SOLID: Single Responsibility (one reason to change), Open/Closed (open for extension, closed for modification), Liskov Substitution (subtypes substitutable for base types), Interface Segregation (many specific interfaces over one general), Dependency Inversion (depend on abstractions not concretions). Following SOLID produces loosely coupled, testable, maintainable code."]], "query": "solid principles explained only: hyde"}
{"output": [["lex", "protobuf json comparison"], ["lex", "protocol buffers serialization"], ["lex", "grpc protobuf format"]], "query": "protobuf vs json only: lex"}
{"output": [["vec", "what are the differences between protocol buffers and json for data serialization"], ["vec", "when should you use protobuf instead of json for api communication"]], "query": "protobuf vs json only: vec"}
{"output": [["hyde", "JSON: human-readable, self-describing, universal support, larger payload. Protobuf: binary format, 3-10x smaller, faster serialization, requires schema (.proto files), strong typing. Use JSON for public APIs, debugging, human interaction. Use Protobuf for internal microservices, high-throughput systems, gRPC. Schema evolution with field numbers enables backward compatibility."]], "query": "protobuf vs json only: hyde"}
{"output": [["lex", "linux namespaces containers"], ["lex", "container isolation namespace cgroup"], ["lex", "docker linux namespaces"]], "query": "linux namespaces containers only: lex"}
{"output": [["vec", "how do linux namespaces enable container isolation"], ["vec", "what kernel features do docker and containers use for process isolation"]], "query": "linux namespaces containers only: vec"}
{"output": [["hyde", "Containers use Linux namespaces for isolation: PID (process tree), NET (network stack), MNT (filesystem mounts), UTS (hostname), IPC (inter-process communication), USER (user IDs). Cgroups limit resource usage (CPU, memory). Together they isolate processes without full VM overhead. Containers share host kernel but see isolated views of system resources."]], "query": "linux namespaces containers only: hyde"}
{"output": [["lex", "graphql subscriptions websocket"], ["lex", "graphql realtime subscriptions"], ["lex", "graphql subscription server"]], "query": "GraphQL subscriptions websocket only: lex"}
{"output": [["vec", "how do graphql subscriptions work for real-time data updates"], ["vec", "what is the underlying protocol for graphql subscriptions and how do you implement them"]], "query": "GraphQL subscriptions websocket only: vec"}
{"output": [["hyde", "GraphQL subscriptions enable real-time updates via persistent connections. Client subscribes: subscription { messageAdded { text } }. Server pushes when events occur. Typically uses WebSocket with graphql-ws protocol. Server maintains subscription registry, publishes events through PubSub. Apollo Server and Relay support subscriptions natively."]], "query": "GraphQL subscriptions websocket only: hyde"}
{"output": [["lex", "stateless stateful service"], ["lex", "stateless api design"], ["lex", "session state storage"]], "query": "stateless vs stateful services only: lex"}
{"output": [["vec", "what is the difference between stateless and stateful services in application architecture"], ["vec", "why are stateless services easier to scale and how do you handle state when needed"]], "query": "stateless vs stateful services only: vec"}
{"output": [["hyde", "Stateless services don't store client state between requests—any instance can handle any request. Scale by adding instances, no session affinity needed. Stateful services maintain client state, requiring sticky sessions or shared storage. Make services stateless by storing session in JWT tokens, Redis, or databases. Stateless is preferred for horizontal scaling and resilience."]], "query": "stateless vs stateful services only: hyde"}
{"output": [["lex", "git bisect bug finding"], ["lex", "git bisect good bad"], ["lex", "binary search git commit"]], "query": "git bisect debugging only: lex"}
{"output": [["vec", "how to use git bisect to find the commit that introduced a bug"], ["vec", "what is the git bisect workflow for binary search debugging through commit history"]], "query": "git bisect debugging only: vec"}
{"output": [["hyde", "git bisect does binary search through commits to find where bug was introduced. Start: git bisect start, git bisect bad (current has bug), git bisect good v1.0 (known good commit). Git checks out middle commit—test and mark git bisect good or git bisect bad. Repeat until found. Automate with git bisect run ./test.sh. End with git bisect reset."]], "query": "git bisect debugging only: hyde"}
{"output": [["lex", "dns propagation time"], ["lex", "dns ttl propagation delay"], ["lex", "dns changes not working"]], "query": "dns propagation time only: lex"}
{"output": [["vec", "why do dns changes take time to propagate and how can you speed it up"], ["vec", "what is dns propagation and how does ttl affect how quickly changes are visible"]], "query": "dns propagation time only: vec"}
{"output": [["hyde", "DNS propagation is time for changes to spread through cached resolvers worldwide. TTL (Time To Live) controls cache duration. High TTL (86400s) means up to 24h wait. Before changes, lower TTL to 300s, wait for old TTL, make change, then restore TTL. Use dig @8.8.8.8 domain.com to check Google's view. Full propagation can take 24-48h for high-TTL records."]], "query": "dns propagation time only: hyde"}
{"output": [["lex", "roman empire fall causes"], ["lex", "decline of rome 476 AD"], ["lex", "western roman empire collapse"]], "query": "fall of the Roman Empire only: lex"}
{"output": [["vec", "what were the main causes of the fall of the western roman empire"], ["vec", "how did economic, military, and political factors contribute to rome's collapse"]], "query": "fall of the Roman Empire only: vec"}
{"output": [["hyde", "The Western Roman Empire fell in 476 AD when Odoacer deposed Romulus Augustulus. Contributing factors included economic troubles, military overextension, political instability with rapid emperor turnover, pressure from Germanic tribes, and the division of the empire. The Eastern Roman Empire (Byzantine) survived until 1453."]], "query": "fall of the Roman Empire only: hyde"}
{"output": [["lex", "world war 1 causes"], ["lex", "ww1 assassination archduke franz ferdinand"], ["lex", "causes great war 1914"]], "query": "causes of World War I only: lex"}
{"output": [["vec", "what were the main causes and triggers of world war one"], ["vec", "how did the assassination of archduke franz ferdinand lead to a global war"]], "query": "causes of World War I only: vec"}
{"output": [["hyde", "WWI was caused by MAIN: Militarism, Alliances, Imperialism, Nationalism. The assassination of Archduke Franz Ferdinand on June 28, 1914 in Sarajevo triggered a chain reaction through alliance systems. Austria-Hungary declared war on Serbia, pulling in Russia, Germany, France, and Britain within weeks."]], "query": "causes of World War I only: hyde"}
{"output": [["lex", "egyptian pyramids how built"], ["lex", "pyramid construction ancient egypt"], ["lex", "great pyramid giza building"]], "query": "ancient Egypt pyramids construction only: lex"}
{"output": [["vec", "how were the ancient egyptian pyramids constructed without modern technology"], ["vec", "what techniques and labor did ancient egyptians use to build the pyramids at giza"]], "query": "ancient Egypt pyramids construction only: vec"}
{"output": [["hyde", "The pyramids were built using ramps, levers, and organized labor forces of tens of thousands of workers. Limestone blocks weighing 2.5 tons average were quarried nearby and transported on sledges. Workers were not slaves but paid laborers housed in nearby villages. The Great Pyramid took approximately 20 years to complete around 2560 BC."]], "query": "ancient Egypt pyramids construction only: hyde"}
{"output": [["lex", "french revolution timeline events"], ["lex", "french revolution 1789 bastille"], ["lex", "reign of terror robespierre"]], "query": "French Revolution timeline only: lex"}
{"output": [["vec", "what were the major events of the french revolution in chronological order"], ["vec", "how did the french revolution progress from the storming of the bastille to napoleon"]], "query": "French Revolution timeline only: vec"}
{"output": [["hyde", "1789: Estates-General convenes, Bastille stormed July 14. 1791: Constitutional monarchy established. 1792: Republic declared, king executed. 1793-94: Reign of Terror under Robespierre, 17,000 guillotined. 1794: Thermidorian Reaction ends Terror. 1799: Napoleon's coup establishes Consulate."]], "query": "French Revolution timeline only: hyde"}
{"output": [["lex", "ottoman empire history"], ["lex", "ottoman sultanate 1299 1922"], ["lex", "turkish ottoman empire rise fall"]], "query": "Ottoman Empire history only: lex"}
{"output": [["vec", "what was the history of the ottoman empire from its founding to its dissolution"], ["vec", "how did the ottoman empire rise to become a major world power and eventually decline"]], "query": "Ottoman Empire history only: vec"}
{"output": [["hyde", "Founded by Osman I around 1299, the Ottoman Empire conquered Constantinople in 1453, ending the Byzantine Empire. At its peak under Suleiman the Magnificent (1520-1566), it controlled Southeast Europe, Western Asia, and North Africa. Gradual decline through the 18th-19th centuries culminated in dissolution after WWI in 1922."]], "query": "Ottoman Empire history only: hyde"}
{"output": [["lex", "american civil war battles"], ["lex", "civil war gettysburg antietam"], ["lex", "union confederate battles 1861"]], "query": "American Civil War battles only: lex"}
{"output": [["vec", "what were the major battles of the american civil war"], ["vec", "which battles were turning points in the civil war between union and confederate forces"]], "query": "American Civil War battles only: vec"}
{"output": [["hyde", "Major battles: Fort Sumter (1861, war begins), Bull Run (Confederate victory), Antietam (1862, bloodiest single day, led to Emancipation Proclamation), Gettysburg (1863, Union turning point), Vicksburg (Union controls Mississippi), Sherman's March (1864), Appomattox (1865, Lee surrenders). Total casualties exceeded 600,000."]], "query": "American Civil War battles only: hyde"}
{"output": [["lex", "ming dynasty china history"], ["lex", "ming dynasty 1368 1644"], ["lex", "chinese ming emperors"]], "query": "Ming Dynasty China only: lex"}
{"output": [["vec", "what were the major achievements and characteristics of the ming dynasty in china"], ["vec", "how did the ming dynasty rise to power and what led to its eventual fall"]], "query": "Ming Dynasty China only: vec"}
{"output": [["hyde", "The Ming Dynasty (1368-1644) was founded by Zhu Yuanzhang after overthrowing Mongol Yuan rule. Notable achievements: construction of the Forbidden City, voyages of Zheng He, restoration of the Great Wall, and flourishing arts and porcelain. Fell to the Manchu Qing after peasant rebellions weakened central authority."]], "query": "Ming Dynasty China only: hyde"}
{"output": [["lex", "viking age exploration"], ["lex", "vikings norse exploration america"], ["lex", "viking raids settlements"]], "query": "Viking Age exploration only: lex"}
{"output": [["vec", "where did the vikings explore and settle during the viking age"], ["vec", "what routes did norse explorers take and what lands did they discover"]], "query": "Viking Age exploration only: vec"}
{"output": [["hyde", "The Viking Age (793-1066 AD) saw Norse expansion across Europe and beyond. Vikings raided British Isles and France, settled Iceland (874), Greenland (985), and reached North America (Vinland, c.1000) under Leif Erikson. They also traveled east through Russia to Constantinople and served as Varangian Guard."]], "query": "Viking Age exploration only: hyde"}
{"output": [["lex", "industrial revolution inventions"], ["lex", "industrial revolution steam engine"], ["lex", "18th century industrial innovations"]], "query": "Industrial Revolution inventions only: lex"}
{"output": [["vec", "what were the key inventions that drove the industrial revolution"], ["vec", "how did the steam engine and textile machinery transform manufacturing in the 18th century"]], "query": "Industrial Revolution inventions only: vec"}
{"output": [["hyde", "Key inventions: Spinning Jenny (1764), Water Frame (1769), Steam Engine improved by James Watt (1769), Power Loom (1785), Cotton Gin (1793), Steam Locomotive (1804). These enabled factory production, mass manufacturing, and transformed society from agricultural to industrial. Britain led the revolution starting around 1760."]], "query": "Industrial Revolution inventions only: hyde"}
{"output": [["lex", "byzantine empire constantinople"], ["lex", "eastern roman empire byzantium"], ["lex", "fall of constantinople 1453"]], "query": "Byzantine Empire Constantinople only: lex"}
{"output": [["vec", "what was the byzantine empire and how long did it last after rome fell"], ["vec", "how did constantinople serve as the capital of the byzantine empire until 1453"]], "query": "Byzantine Empire Constantinople only: vec"}
{"output": [["hyde", "The Byzantine Empire was the continuation of the Eastern Roman Empire, lasting from 330 AD (Constantinople founded) to 1453. At its peak under Justinian I, it reconquered much of the western Mediterranean. Constantinople was the largest and wealthiest European city for centuries until falling to Ottoman Turks under Mehmed II on May 29, 1453."]], "query": "Byzantine Empire Constantinople only: hyde"}
{"output": [["lex", "aztec empire civilization"], ["lex", "aztec tenochtitlan mexico"], ["lex", "aztec history mesoamerica"]], "query": "Aztec Empire civilization only: lex"}
{"output": [["vec", "what was the aztec empire and how did their civilization develop in mesoamerica"], ["vec", "how did the aztecs build tenochtitlan and what led to the fall of their empire"]], "query": "Aztec Empire civilization only: vec"}
{"output": [["hyde", "The Aztec Empire (1428-1521) dominated central Mexico from their capital Tenochtitlan, built on an island in Lake Texcoco (modern Mexico City). Population reached 200,000+. Known for pyramids, human sacrifice, chinampas (floating gardens), and tribute system. Conquered by Hernán Cortés in 1521 with help from rival indigenous groups and smallpox."]], "query": "Aztec Empire civilization only: hyde"}
{"output": [["lex", "renaissance italy florence"], ["lex", "italian renaissance medici"], ["lex", "florence renaissance art"]], "query": "Renaissance Italy Florence only: lex"}
{"output": [["vec", "why did the renaissance begin in italy particularly in florence"], ["vec", "how did the medici family and florence become the center of the italian renaissance"]], "query": "Renaissance Italy Florence only: vec"}
{"output": [["hyde", "The Renaissance began in Florence around 1400 due to wealth from banking and trade, political stability, and classical heritage. The Medici family, especially Lorenzo the Magnificent, patronized artists like Leonardo, Michelangelo, and Botticelli. Florence's guilds, humanism from rediscovered Greek texts, and competition among city-states drove cultural innovation."]], "query": "Renaissance Italy Florence only: hyde"}
{"output": [["lex", "cold war berlin wall"], ["lex", "berlin wall 1961 1989"], ["lex", "east west germany division"]], "query": "Cold War Berlin Wall only: lex"}
{"output": [["vec", "what was the significance of the berlin wall during the cold war"], ["vec", "why was the berlin wall built and what led to its fall in 1989"]], "query": "Cold War Berlin Wall only: vec"}
{"output": [["hyde", "The Berlin Wall was built overnight on August 13, 1961 by East Germany to stop emigration to the West—3.5 million had fled since 1945. It divided Berlin for 28 years, symbolizing the Iron Curtain. Fell November 9, 1989 after Hungary opened its border and East German protests grew. Germany reunified October 3, 1990."]], "query": "Cold War Berlin Wall only: hyde"}
{"output": [["lex", "mongol empire genghis khan"], ["lex", "mongol conquests 13th century"], ["lex", "genghis khan mongol history"]], "query": "Mongol Empire Genghis Khan only: lex"}
{"output": [["vec", "how did genghis khan build the mongol empire into the largest contiguous land empire"], ["vec", "what territories did the mongol empire conquer and how did they administer such vast lands"]], "query": "Mongol Empire Genghis Khan only: vec"}
{"output": [["hyde", "Genghis Khan united Mongol tribes by 1206 and conquered from Korea to Poland by his death in 1227. The empire peaked under his grandsons, spanning 24 million km²—largest contiguous empire ever. Success came from cavalry tactics, meritocracy, religious tolerance, and the Yam relay system. Divided into khanates after 1260."]], "query": "Mongol Empire Genghis Khan only: hyde"}
{"output": [["lex", "ancient greece democracy athens"], ["lex", "athenian democracy 5th century bc"], ["lex", "greek democracy origins"]], "query": "ancient Greece democracy Athens only: lex"}
{"output": [["vec", "how did democracy develop in ancient athens and how did it function"], ["vec", "what were the key institutions and practices of athenian democracy"]], "query": "ancient Greece democracy Athens only: vec"}
{"output": [["hyde", "Athenian democracy emerged under Cleisthenes (508 BC) and peaked under Pericles (461-429 BC). Citizens (adult male non-slaves) voted directly in the Assembly (Ekklesia) on laws and policy. The Council of 500, chosen by lot, set the agenda. Jury courts had hundreds of jurors. About 30,000 of 300,000 residents were citizens."]], "query": "ancient Greece democracy Athens only: hyde"}
{"output": [["lex", "protestant reformation luther"], ["lex", "martin luther 95 theses"], ["lex", "reformation 1517 catholic church"]], "query": "Protestant Reformation Martin Luther only: lex"}
{"output": [["vec", "what started the protestant reformation and what were its main ideas"], ["vec", "how did martin luther's 95 theses challenge the catholic church and spread across europe"]], "query": "Protestant Reformation Martin Luther only: vec"}
{"output": [["hyde", "Martin Luther posted his 95 Theses on October 31, 1517 in Wittenberg, criticizing indulgences and papal authority. Key ideas: salvation by faith alone, scripture as sole authority, priesthood of all believers. The printing press spread his ideas rapidly. Luther was excommunicated in 1521. The Reformation split Western Christianity and sparked religious wars across Europe."]], "query": "Protestant Reformation Martin Luther only: hyde"}
{"output": [["lex", "silk road trade route"], ["lex", "silk road ancient trade china"], ["lex", "silk road history commerce"]], "query": "Silk Road trade routes only: lex"}
{"output": [["vec", "what was the silk road and how did it connect east and west"], ["vec", "what goods and ideas were exchanged along the ancient silk road trade routes"]], "query": "Silk Road trade routes only: vec"}
{"output": [["hyde", "The Silk Road was a network of trade routes connecting China to the Mediterranean from around 130 BC to 1450s AD. Goods traded: silk, spices, porcelain from East; gold, glass, horses from West. Also spread Buddhism, Islam, technologies like paper and gunpowder, and unfortunately, the Black Death. Named by German geographer Ferdinand von Richthofen in 1877."]], "query": "Silk Road trade routes only: hyde"}
{"output": [["lex", "napoleonic wars europe"], ["lex", "napoleon bonaparte campaigns"], ["lex", "napoleonic era 1803 1815"]], "query": "Napoleonic Wars Europe only: lex"}
{"output": [["vec", "what were the major campaigns and outcomes of the napoleonic wars"], ["vec", "how did napoleon's military conquests reshape europe and lead to his downfall"]], "query": "Napoleonic Wars Europe only: vec"}
{"output": [["hyde", "The Napoleonic Wars (1803-1815) saw France under Napoleon dominate continental Europe through brilliant campaigns at Austerlitz, Jena, and Wagram. His empire stretched from Spain to Poland. The failed 1812 Russian invasion (600,000 troops, 100,000 returned) began his decline. Exiled to Elba 1814, returned for Hundred Days, finally defeated at Waterloo June 18, 1815."]], "query": "Napoleonic Wars Europe only: hyde"}
{"output": [["lex", "ancient mesopotamia civilizations"], ["lex", "mesopotamia sumer babylon"], ["lex", "cradle of civilization tigris euphrates"]], "query": "ancient Mesopotamia civilizations only: lex"}
{"output": [["vec", "what civilizations arose in ancient mesopotamia and what were their achievements"], ["vec", "why is mesopotamia called the cradle of civilization and what did sumerians invent"]], "query": "ancient Mesopotamia civilizations only: vec"}
{"output": [["hyde", "Mesopotamia (modern Iraq) between Tigris and Euphrates rivers hosted the world's first civilizations. Sumerians (4500-1900 BC) invented writing (cuneiform), the wheel, sailboat, and plow. Akkadian Empire under Sargon was first empire. Babylon produced Hammurabi's Code. Assyrians and Persians followed. Agriculture surplus enabled cities, specialization, and complex society."]], "query": "ancient Mesopotamia civilizations only: hyde"}
{"output": [["lex", "meiji restoration japan"], ["lex", "meiji era modernization 1868"], ["lex", "japan meiji emperor reform"]], "query": "Meiji Restoration Japan only: lex"}
{"output": [["vec", "what was the meiji restoration and how did it transform japan"], ["vec", "how did japan modernize so rapidly during the meiji period from 1868 to 1912"]], "query": "Meiji Restoration Japan only: vec"}
{"output": [["hyde", "The Meiji Restoration (1868) ended 250 years of Tokugawa shogunate rule, restoring imperial power under Emperor Meiji. Japan rapidly industrialized and westernized: abolished feudalism, created national army, built railways, established constitution (1889). Slogan: 'Rich country, strong army.' Japan defeated China (1895) and Russia (1905), becoming a world power within 50 years."]], "query": "Meiji Restoration Japan only: hyde"}
{"output": [["lex", "black death plague europe"], ["lex", "bubonic plague 1347 medieval"], ["lex", "black death medieval europe"]], "query": "Black Death plague Europe only: lex"}
{"output": [["vec", "what was the black death and how did it impact medieval europe"], ["vec", "how did the bubonic plague spread across europe and what were its consequences"]], "query": "Black Death plague Europe only: vec"}
{"output": [["hyde", "The Black Death (1347-1351) killed 75-200 million people, 30-60% of Europe's population. Caused by Yersinia pestis bacteria spread by fleas on rats, it arrived via Genoese ships from Crimea. Symptoms: buboes, fever, death within days. Consequences: labor shortages raised wages, weakened feudalism, sparked religious movements and persecution of Jews."]], "query": "Black Death plague Europe only: hyde"}
{"output": [["lex", "spanish conquest americas"], ["lex", "conquistadors cortez pizarro"], ["lex", "spanish colonization new world"]], "query": "Spanish Conquest Americas only: lex"}
{"output": [["vec", "how did spanish conquistadors conquer the aztec and inca empires"], ["vec", "what factors enabled spain to colonize the americas so rapidly in the 16th century"]], "query": "Spanish Conquest Americas only: vec"}
{"output": [["hyde", "Hernán Cortés conquered the Aztec Empire (1519-1521) with 500 soldiers, allying with Tlaxcalans and exploiting Montezuma's hesitation. Francisco Pizarro conquered the Inca Empire (1532-1533) capturing Atahualpa during civil war. Spanish advantages: steel weapons, horses, gunpowder, and crucially, Old World diseases like smallpox that killed 90% of indigenous populations."]], "query": "Spanish Conquest Americas only: hyde"}
{"output": [["lex", "world war 2 d-day normandy"], ["lex", "d-day june 6 1944 invasion"], ["lex", "operation overlord ww2"]], "query": "World War II D-Day only: lex"}
{"output": [["vec", "what happened on d-day and why was the normandy invasion a turning point in world war two"], ["vec", "how was the d-day invasion of normandy planned and executed by allied forces"]], "query": "World War II D-Day only: vec"}
{"output": [["hyde", "D-Day, June 6, 1944, was the largest amphibious invasion in history. Operation Overlord landed 156,000 Allied troops on five Normandy beaches (Utah, Omaha, Gold, Juno, Sword). Despite 10,000+ casualties, it established a Western Front, leading to Paris liberation (August 1944) and Germany's surrender (May 1945). Supreme Commander: Dwight D. Eisenhower."]], "query": "World War II D-Day only: hyde"}
{"output": [["lex", "han dynasty china achievements"], ["lex", "han dynasty 206 bc history"], ["lex", "ancient china han empire"]], "query": "Han Dynasty China achievements only: lex"}
{"output": [["vec", "what were the major achievements and contributions of the han dynasty in china"], ["vec", "why is the han dynasty considered a golden age in chinese history"]], "query": "Han Dynasty China achievements only: vec"}
{"output": [["hyde", "The Han Dynasty (206 BC - 220 AD) is considered China's golden age. Achievements: Silk Road trade established, paper invented (105 AD), civil service exams introduced, Confucianism became state ideology. Population reached 60 million. So influential that ethnic Chinese still call themselves 'Han people.' Collapsed due to court intrigue, eunuch power, and Yellow Turban Rebellion."]], "query": "Han Dynasty China achievements only: hyde"}

View File

@@ -0,0 +1,74 @@
{"query": "performance optimization C++ program", "intent": "optimizing a C++ application", "output": [["lex", "\"C++ performance\" optimization -sports -athlete"], ["lex", "\"memory allocation\" \"cache miss\" profiling"], ["vec", "how to improve the runtime performance of a C++ program"], ["hyde", "C++ performance optimization involves profiling with tools like perf or valgrind, reducing memory allocations, improving cache locality, and avoiding unnecessary copies. Key techniques include move semantics, reserve on vectors, and SIMD intrinsics for hot loops."]]}
{"query": "python memory leak debugging", "intent": "debugging a Python application", "output": [["lex", "\"memory leak\" python -java -javascript"], ["lex", "\"garbage collector\" reference counting tracemalloc"], ["vec", "how to find and fix memory leaks in a Python application"], ["hyde", "Python memory leaks often occur when objects hold references longer than expected, preventing garbage collection. Use tracemalloc or memory_profiler to track allocations over time. Common causes include circular references, global caches, and event listeners that aren't removed."]]}
{"query": "connection pool exhaustion database", "intent": "debugging database connectivity issues", "output": [["lex", "\"connection pool\" exhausted timeout -redis -cache"], ["lex", "\"max connections\" database pool overflow"], ["vec", "why does the database connection pool run out of connections under load"], ["hyde", "Connection pool exhaustion occurs when all connections are checked out and new requests must wait or fail. This typically happens when queries run slowly, connections aren't released properly, or traffic spikes beyond pool capacity."]]}
{"query": "rate limiting API implementation", "intent": "implementing rate limiting in a backend service", "output": [["lex", "\"rate limit\" \"token bucket\" OR \"sliding window\" -ethereum -cryptocurrency"], ["lex", "\"requests per second\" throttle middleware"], ["vec", "how to implement rate limiting for an API endpoint"], ["hyde", "A token bucket rate limiter grants each client N tokens per time window. Each request consumes one token. When tokens run out, requests are rejected with 429 Too Many Requests."]]}
{"query": "SQL query performance slow", "intent": "optimizing a slow database query", "output": [["lex", "\"query plan\" index scan \"full table\" slow -nosql -mongodb"], ["lex", "\"missing index\" \"N+1\" joins optimization"], ["vec", "why is my SQL query running slowly and how do I optimize it"], ["hyde", "Slow SQL queries are usually caused by missing indexes, full table scans, or N+1 query patterns. Use EXPLAIN ANALYZE to view the query plan and add indexes on columns in WHERE and JOIN clauses."]]}
{"query": "machine learning model overfitting", "intent": "training a machine learning model", "output": [["lex", "\"overfitting\" \"validation loss\" regularization -sports -fitness"], ["lex", "dropout \"weight decay\" \"early stopping\" training"], ["vec", "how to detect and prevent overfitting in a machine learning model"], ["hyde", "Overfitting occurs when a model memorizes training data instead of learning generalizable patterns, leading to high training accuracy but poor validation performance."]]}
{"query": "docker container networking", "intent": "configuring Docker networking", "output": [["lex", "\"docker network\" bridge overlay -kubernetes -k8s"], ["lex", "\"container ip\" \"port mapping\" expose publish"], ["vec", "how do Docker containers communicate with each other on the same host"], ["hyde", "Docker containers on the same host communicate via bridge networks. Use docker network create to make named networks, then --network flag to attach containers."]]}
{"query": "authentication token JWT", "intent": "implementing JWT authentication", "output": [["lex", "\"JWT\" \"json web token\" \"secret key\" -oauth -saml"], ["lex", "\"bearer token\" signature expiry claims"], ["vec", "how does JWT authentication work and how do I validate a token"], ["hyde", "JWT tokens consist of three base64-encoded parts: header, payload with claims, and signature. The server validates the signature using a secret key and checks expiry."]]}
{"query": "async await error handling javascript", "intent": "writing async JavaScript code", "output": [["lex", "\"async\" \"await\" \"try catch\" promise -python -rust"], ["lex", "\"unhandled rejection\" \"error boundary\" async"], ["vec", "how to properly handle errors in async/await JavaScript functions"], ["hyde", "Wrap await calls in try/catch blocks to handle rejections. Unhandled promise rejections crash Node.js processes. Use Promise.allSettled() for parallel operations with partial failures."]]}
{"query": "git merge conflict resolution", "intent": "resolving a git merge conflict", "output": [["lex", "\"merge conflict\" \"<<<<<<\" rebase resolution -github -gitlab"], ["lex", "\"conflict markers\" \"ours\" \"theirs\" checkout"], ["vec", "how do I resolve a git merge conflict between two branches"], ["hyde", "Git merge conflicts occur when two branches change the same lines. Conflict markers show both versions. Edit the file to keep the correct version, remove markers, then git add and commit."]]}
{"query": "kubernetes pod crashloopbackoff", "intent": "debugging a Kubernetes deployment", "output": [["lex", "\"CrashLoopBackOff\" pod logs restart -docker -vagrant"], ["lex", "\"container failed\" liveness probe startup"], ["vec", "why is my Kubernetes pod stuck in CrashLoopBackOff and how do I fix it"], ["hyde", "CrashLoopBackOff means the container keeps crashing and Kubernetes backs off restarts exponentially. Check logs with kubectl logs --previous to see the crash output."]]}
{"query": "react state management redux", "intent": "managing state in a React application", "output": [["lex", "\"Redux\" \"useReducer\" \"action creator\" -angular -vue"], ["lex", "\"store dispatch\" \"selector\" \"middleware\" thunk"], ["vec", "when should I use Redux versus local React state for state management"], ["hyde", "Redux is best for state shared across many components. Local useState is fine for UI state scoped to one component. For medium complexity, useContext + useReducer avoids Redux boilerplate."]]}
{"query": "machine learning vs deep learning", "intent": "comparing ML approaches", "output": [["lex", "\"machine learning\" -\"deep learning\" traditional algorithms"], ["lex", "\"deep learning\" \"neural network\" -\"machine learning\" classical"], ["vec", "what is the difference between machine learning and deep learning"], ["hyde", "Machine learning encompasses algorithms that learn from data including decision trees, SVMs, and random forests. Deep learning is a subset using neural networks with multiple layers."]]}
{"query": "python web scraping beautiful soup", "intent": "scraping web pages with Python", "output": [["lex", "\"Beautiful Soup\" python scraping -selenium -playwright"], ["lex", "\"web scraping\" beautifulsoup4 html parsing"], ["vec", "how to scrape web pages using Beautiful Soup in Python"], ["hyde", "Beautiful Soup is a Python library for parsing HTML and XML. Install with pip install beautifulsoup4. Use requests to fetch pages, then BeautifulSoup to navigate the DOM tree."]]}
{"query": "rust ownership and borrowing", "intent": "understanding Rust memory model", "output": [["lex", "rust ownership borrowing -corrosion -oxidation -metal"], ["lex", "\"borrow checker\" lifetime \"move semantics\" rust"], ["vec", "how does Rust's ownership and borrowing system work"], ["hyde", "Rust's ownership system ensures memory safety without garbage collection. Each value has one owner. References can borrow values immutably or mutably but not both simultaneously."]]}
{"query": "java stream api filtering", "intent": "processing Java collections functionally", "output": [["lex", "\"Stream API\" java filter map -coffee -island"], ["lex", "java streams \"lambda expression\" collect"], ["vec", "how to use Java Stream API for filtering and transforming collections"], ["hyde", "Java Streams provide a functional approach to processing collections. Chain operations like filter(), map(), and collect() for declarative data transformation."]]}
{"query": "apple silicon mac development", "intent": "developing for Apple Silicon", "output": [["lex", "\"Apple Silicon\" M1 M2 M3 development -fruit -recipe"], ["lex", "\"arm64\" \"apple silicon\" xcode native -cider"], ["vec", "how to develop and optimize apps for Apple Silicon Macs"], ["hyde", "Apple Silicon Macs use ARM-based chips (M1, M2, M3). Native arm64 builds run fastest. Use Universal binaries to support both architectures."]]}
{"query": "spring boot dependency injection", "intent": "configuring Spring IoC", "output": [["lex", "\"Spring Boot\" \"dependency injection\" autowired -season -weather"], ["lex", "\"Spring\" IoC container bean \"component scan\""], ["vec", "how does dependency injection work in Spring Boot applications"], ["hyde", "Spring Boot uses IoC container to manage bean lifecycle. Annotate classes with @Component, @Service, or @Repository. Use @Autowired or constructor injection to wire dependencies."]]}
{"query": "new york city restaurant recommendations", "intent": "finding restaurants in NYC", "output": [["lex", "\"New York City\" restaurant -state -upstate"], ["lex", "\"NYC\" dining \"best restaurants\" food"], ["vec", "top restaurant recommendations in New York City"], ["hyde", "New York City's dining scene ranges from Michelin-starred restaurants to iconic street food. Popular neighborhoods for dining include the West Village, Williamsburg, and Lower East Side."]]}
{"query": "san francisco hiking trails", "intent": "finding outdoor activities in SF", "output": [["lex", "\"San Francisco\" hiking trails -49ers -football"], ["lex", "\"Bay Area\" hike outdoors \"Golden Gate\""], ["vec", "best hiking trails in and around San Francisco"], ["hyde", "San Francisco offers urban hikes with stunning views. Popular trails include Lands End, Twin Peaks, and the Presidio trails along the Golden Gate Bridge."]]}
{"query": "natural language processing transformers", "intent": "understanding NLP architectures", "output": [["lex", "\"natural language processing\" transformers -electrical -power"], ["lex", "NLP \"transformer architecture\" attention -robots"], ["vec", "how do transformer models work for natural language processing"], ["hyde", "Transformer models use self-attention mechanisms to process text in parallel rather than sequentially. The architecture includes encoder and decoder stacks with multi-head attention layers."]]}
{"query": "red black tree implementation", "intent": "implementing a balanced BST", "output": [["lex", "\"red-black tree\" implementation balancing -color -paint"], ["lex", "\"red black\" BST rotation insertion deletion"], ["vec", "how to implement a red-black tree data structure"], ["hyde", "Red-black trees are self-balancing binary search trees. Each node is colored red or black. Rotations and recoloring maintain balance after insertions and deletions."]]}
{"query": "azure devops pipeline yaml", "intent": "configuring CI/CD in Azure DevOps", "output": [["lex", "\"Azure DevOps\" pipeline yaml -AWS -github"], ["lex", "\"azure-pipelines.yml\" CI CD build stages"], ["vec", "how to configure CI/CD pipelines in Azure DevOps using YAML"], ["hyde", "Azure DevOps pipelines are defined in azure-pipelines.yml. Define stages, jobs, and steps. Use templates for reusable configurations and variable groups for secrets."]]}
{"query": "terraform state management remote backend", "intent": "managing infrastructure as code", "output": [["lex", "\"terraform state\" \"remote backend\" locking -ansible -chef"], ["lex", "terraform \"state file\" S3 backend \"state lock\""], ["vec", "how to manage Terraform state with a remote backend"], ["hyde", "Terraform state tracks infrastructure resources. Use a remote backend like S3 with DynamoDB locking for team collaboration and state consistency."]]}
{"query": "visual studio code extensions", "intent": "customizing VS Code", "output": [["lex", "\"Visual Studio Code\" extensions -\"Visual Studio\" -MSVC"], ["lex", "\"VS Code\" plugins marketplace extensions"], ["vec", "best extensions and plugins for Visual Studio Code"], ["hyde", "VS Code extensions add language support, debugging, and productivity features. Install from the marketplace. Popular extensions include Prettier, ESLint, and GitLens."]]}
{"query": "go concurrency goroutines channels", "intent": "writing concurrent Go code", "output": [["lex", "goroutines channels concurrency -board -game"], ["lex", "\"go routines\" \"channel\" select sync -baduk"], ["vec", "how to use goroutines and channels for concurrency in Go"], ["hyde", "Go handles concurrency with goroutines (lightweight threads) and channels (typed communication pipes). Use select to wait on multiple channels. The sync package provides mutexes."]]}
{"query": "swift ui declarative interface", "intent": "building iOS interfaces with SwiftUI", "output": [["lex", "\"SwiftUI\" declarative interface -taylor -singer"], ["lex", "SwiftUI view modifier \"state management\""], ["vec", "how to build user interfaces with SwiftUI's declarative syntax"], ["hyde", "SwiftUI is Apple's declarative UI framework. Describe views as structs conforming to the View protocol. Use @State, @Binding, and @Observable for reactive state management."]]}
{"query": "cross site scripting prevention", "intent": "securing web applications against XSS", "output": [["lex", "\"cross-site scripting\" XSS prevention -CSS -style"], ["lex", "XSS sanitization \"content security policy\" escaping"], ["vec", "how to prevent cross-site scripting vulnerabilities in web applications"], ["hyde", "Prevent XSS by escaping user input before rendering, using Content Security Policy headers, and sanitizing HTML with libraries like DOMPurify."]]}
{"query": "amazon web services lambda cold start", "intent": "optimizing serverless latency", "output": [["lex", "\"AWS Lambda\" \"cold start\" latency -shopping -retail"], ["lex", "\"Lambda\" warmup provisioned concurrency -calculus"], ["vec", "how to reduce AWS Lambda cold start latency"], ["hyde", "Lambda cold starts occur when a new execution environment is initialized. Reduce them with provisioned concurrency, smaller deployment packages, and choosing faster runtimes like Go or Rust."]]}
{"query": "monte carlo simulation finance", "intent": "financial modeling with simulation", "output": [["lex", "\"Monte Carlo\" simulation finance pricing -casino -gambling"], ["lex", "\"Monte Carlo\" \"random sampling\" portfolio risk"], ["vec", "how to use Monte Carlo simulation for financial modeling and risk analysis"], ["hyde", "Monte Carlo simulation uses random sampling to model uncertainty in financial outcomes. Generate thousands of scenarios to estimate option prices, portfolio risk, or probability of ruin."]]}
{"query": "el nino weather patterns", "intent": "understanding climate phenomena", "output": [["lex", "\"El Nino\" weather patterns -la -nina"], ["lex", "\"El Nino\" ENSO climate \"ocean temperature\""], ["vec", "how does El Nino affect global weather patterns"], ["hyde", "El Nino is a climate pattern involving warming of Pacific Ocean surface temperatures. It disrupts normal weather patterns globally, causing droughts in some regions and flooding in others."]]}
{"query": "hong kong dim sum restaurants", "intent": "finding dim sum in Hong Kong", "output": [["lex", "\"Hong Kong\" \"dim sum\" restaurant -movie -film"], ["lex", "\"Hong Kong\" yum cha brunch Cantonese"], ["vec", "best dim sum restaurants to visit in Hong Kong"], ["hyde", "Hong Kong is famous for its dim sum culture. Traditional yum cha restaurants serve steamed dumplings, buns, and small plates from rolling carts during morning and lunch hours."]]}
{"query": "type 2 diabetes management diet", "intent": "managing diabetes through nutrition", "output": [["lex", "\"type 2 diabetes\" diet management -\"type 1\" -juvenile"], ["lex", "\"blood sugar\" \"glycemic index\" \"type 2\" nutrition"], ["vec", "dietary management strategies for type 2 diabetes"], ["hyde", "Managing type 2 diabetes through diet involves controlling carbohydrate intake, choosing low glycemic index foods, and maintaining regular meal timing. Focus on whole grains, vegetables, and lean protein."]]}
{"query": "post traumatic stress disorder treatment", "intent": "treating PTSD", "output": [["lex", "\"PTSD\" treatment therapy -military -veteran"], ["lex", "\"post-traumatic stress\" EMDR CBT \"trauma therapy\""], ["vec", "effective treatments for post-traumatic stress disorder"], ["hyde", "PTSD treatments include cognitive behavioral therapy (CBT), EMDR (eye movement desensitization), and prolonged exposure therapy. Medication like SSRIs can also help manage symptoms."]]}
{"query": "carbon fiber manufacturing process", "intent": "understanding materials manufacturing", "output": [["lex", "\"carbon fiber\" manufacturing process -bicycle -car"], ["lex", "\"carbon fiber\" autoclave layup \"resin transfer\""], ["vec", "how is carbon fiber manufactured and what are the production steps"], ["hyde", "Carbon fiber is made by carbonizing polyacrylonitrile (PAN) precursor fibers at high temperatures. The process involves stabilization, carbonization, surface treatment, and sizing before weaving into fabrics."]]}
{"query": "sourdough starter maintenance", "intent": "maintaining a sourdough culture", "output": [["lex", "\"sourdough starter\" maintenance feeding -san -francisco"], ["lex", "\"sourdough\" fermentation discard hydration"], ["vec", "how to maintain and feed a sourdough starter"], ["hyde", "Feed your sourdough starter equal parts flour and water by weight every 12-24 hours at room temperature. Discard half before feeding to maintain a manageable size and healthy yeast population."]]}
{"query": "french press coffee technique", "intent": "brewing coffee with a french press", "output": [["lex", "\"french press\" coffee technique ratio -journalism -media"], ["lex", "\"french press\" brew time grind coarse"], ["vec", "how to brew coffee with a french press for best results"], ["hyde", "Use coarsely ground coffee at a 1:15 ratio with water just off the boil (200F). Steep for 4 minutes, then press slowly. Preheat the carafe for consistent temperature."]]}
{"query": "coral reef bleaching climate change", "intent": "understanding marine ecology threats", "output": [["lex", "\"coral bleaching\" \"climate change\" temperature -hair -cosmetic"], ["lex", "\"coral reef\" bleaching warming ocean -aquarium"], ["vec", "how does climate change cause coral reef bleaching"], ["hyde", "Coral bleaching occurs when ocean temperatures rise above normal, causing corals to expel their symbiotic algae. Prolonged bleaching leads to coral death and reef ecosystem collapse."]]}
{"query": "supply chain disruption risk management", "intent": "managing supply chain risks", "output": [["lex", "\"supply chain\" disruption \"risk management\" -software -devops"], ["lex", "\"supply chain\" resilience diversification contingency"], ["vec", "how to manage supply chain disruption risks"], ["hyde", "Supply chain risk management involves identifying vulnerabilities, diversifying suppliers, maintaining safety stock, and developing contingency plans for disruptions."]]}
{"query": "real time operating system embedded", "intent": "choosing an OS for embedded systems", "output": [["lex", "\"real-time operating system\" RTOS embedded -desktop -windows"], ["lex", "\"RTOS\" FreeRTOS \"task scheduling\" deterministic"], ["vec", "what is a real-time operating system and when to use one for embedded systems"], ["hyde", "An RTOS guarantees task execution within strict time constraints. Used in embedded systems where timing is critical: automotive, medical devices, and industrial control."]]}
{"query": "agile scrum sprint planning", "intent": "running effective sprint planning", "output": [["lex", "\"sprint planning\" scrum agile -running -marathon"], ["lex", "\"scrum\" \"story points\" velocity backlog"], ["vec", "how to run effective sprint planning in agile scrum"], ["hyde", "Sprint planning is a scrum ceremony where the team selects work from the backlog for the upcoming sprint. Estimate story points, set the sprint goal, and ensure the team has capacity."]]}
{"query": "gradient descent optimization neural network", "intent": "training neural networks", "output": [["lex", "\"gradient descent\" optimization \"learning rate\" -hiking -slope"], ["lex", "\"SGD\" \"Adam optimizer\" backpropagation convergence"], ["vec", "how does gradient descent work for optimizing neural networks"], ["hyde", "Gradient descent minimizes the loss function by iteratively updating weights in the direction of steepest descent. Variants include SGD, Adam, and AdaGrad, each with different learning rate strategies."]]}
{"query": "mercury retrograde astronomy", "intent": "understanding planetary motion", "output": [["lex", "\"Mercury retrograde\" astronomy orbit -astrology -horoscope"], ["lex", "Mercury \"apparent retrograde\" planet -element -thermometer"], ["vec", "what causes Mercury to appear to move backwards in the sky"], ["hyde", "Mercury retrograde is an apparent backward motion caused by differences in orbital speed. As Earth overtakes Mercury's position, the planet appears to reverse direction against the background stars."]]}
{"query": "silicon valley startup culture", "intent": "understanding tech entrepreneurship", "output": [["lex", "\"Silicon Valley\" startup culture -TV -show -HBO"], ["lex", "\"Silicon Valley\" venture capital entrepreneurship"], ["vec", "what defines the startup culture in Silicon Valley"], ["hyde", "Silicon Valley's startup culture emphasizes rapid iteration, venture capital funding, and disruptive innovation. The ecosystem includes incubators, angel investors, and a tolerance for failure."]]}
{"query": "long covid symptoms treatment", "intent": "understanding post-COVID recovery", "output": [["lex", "\"long COVID\" symptoms treatment -acute -vaccine"], ["lex", "\"post-COVID\" fatigue \"brain fog\" recovery"], ["vec", "what are the symptoms and treatments for long COVID"], ["hyde", "Long COVID symptoms persist weeks or months after infection and include fatigue, brain fog, shortness of breath, and joint pain. Treatment focuses on symptom management and gradual rehabilitation."]]}
{"query": "pandas dataframe groupby aggregation", "intent": "analyzing data with pandas", "output": [["lex", "pandas \"groupby\" aggregation dataframe -animal -bear"], ["lex", "pandas \"group by\" agg sum mean \"pivot table\""], ["vec", "how to use groupby and aggregation functions on a pandas DataFrame"], ["hyde", "Use df.groupby('column').agg() to group rows and compute aggregates like sum, mean, or count. Chain multiple aggregations or use named aggregation for clarity."]]}
{"query": "dead letter queue message processing", "intent": "handling failed messages in queues", "output": [["lex", "\"dead letter queue\" DLQ \"failed messages\" -postal -mail"], ["lex", "\"dead letter\" retry \"message processing\" SQS RabbitMQ"], ["vec", "what is a dead letter queue and how to handle failed messages"], ["hyde", "A dead letter queue captures messages that fail processing after multiple retries. Monitor DLQ depth, set up alerts, and implement reprocessing logic for recoverable failures."]]}
{"query": "graph database neo4j cypher", "intent": "querying graph databases", "output": [["lex", "\"Neo4j\" cypher \"graph database\" -SQL -relational"], ["lex", "\"graph query\" Neo4j nodes relationships traversal"], ["vec", "how to query a Neo4j graph database using Cypher"], ["hyde", "Cypher is Neo4j's declarative query language. Use MATCH to find patterns, CREATE to add nodes and relationships, and WHERE for filtering. Pattern matching follows (node)-[rel]->(node) syntax."]]}
{"query": "reverse proxy nginx load balancing", "intent": "configuring nginx for load balancing", "output": [["lex", "\"reverse proxy\" nginx \"load balancing\" -apache -caddy"], ["lex", "nginx upstream \"proxy_pass\" \"load balancer\""], ["vec", "how to configure nginx as a reverse proxy with load balancing"], ["hyde", "Configure nginx upstream blocks to define backend servers. Use proxy_pass in location blocks to forward requests. Load balancing methods include round-robin, least connections, and IP hash."]]}
{"query": "binary search tree deletion", "intent": "implementing BST operations", "output": [["lex", "\"binary search tree\" deletion algorithm -forest -plant"], ["lex", "BST delete node \"in-order successor\" rebalance"], ["vec", "how to delete a node from a binary search tree"], ["hyde", "BST deletion has three cases: leaf node (remove directly), one child (replace with child), two children (replace with in-order successor or predecessor then delete that node)."]]}
{"query": "kubernetes helm chart templating", "intent": "packaging Kubernetes deployments", "output": [["lex", "\"Helm chart\" templating kubernetes -sailing -boat"], ["lex", "helm values.yaml \"chart template\" \"go template\""], ["vec", "how to create and customize Kubernetes Helm charts with templates"], ["hyde", "Helm charts use Go templates to generate Kubernetes manifests. Define defaults in values.yaml, override at install time. Use helpers in _helpers.tpl for reusable template fragments."]]}
{"query": "convolutional neural network image classification", "intent": "understanding CNN architectures", "output": [["lex", "\"convolutional neural network\" CNN \"image classification\" -news -cable"], ["lex", "CNN convolution pooling \"feature extraction\" -journalism"], ["vec", "how do convolutional neural networks classify images"], ["hyde", "CNNs extract features from images using convolutional layers that learn filters for edges, textures, and shapes. Pooling reduces spatial dimensions. Fully connected layers map features to class probabilities."]]}
{"query": "stock market index fund investing", "intent": "long-term investment strategy", "output": [["lex", "\"index fund\" investing \"stock market\" -day -trading"], ["lex", "\"S&P 500\" \"index fund\" passive \"expense ratio\""], ["vec", "how to invest in stock market index funds for long-term growth"], ["hyde", "Index funds track a market index like the S&P 500 with low fees. They offer broad diversification, consistent returns matching the market, and outperform most active managers over time."]]}
{"query": "lithium ion battery degradation", "intent": "understanding battery aging", "output": [["lex", "\"lithium-ion\" battery degradation cycle -mining -extraction"], ["lex", "\"Li-ion\" battery \"capacity fade\" aging charging"], ["vec", "what causes lithium-ion batteries to degrade over time"], ["hyde", "Lithium-ion batteries degrade through repeated charge cycles, high temperatures, and deep discharges. Capacity fades as the electrolyte decomposes and lithium gets trapped in the anode."]]}
{"query": "functional programming monads haskell", "intent": "understanding Haskell abstractions", "output": [["lex", "monads Haskell \"functional programming\" -monastery -monk"], ["lex", "\"monad\" Maybe IO \"do notation\" Haskell"], ["vec", "what are monads in Haskell and how do they work in functional programming"], ["hyde", "Monads in Haskell wrap computations with context (Maybe for failure, IO for effects). They chain operations with >>= (bind) ensuring effects are sequenced and composable."]]}
{"query": "design patterns factory method", "intent": "applying creational design patterns", "output": [["lex", "\"factory method\" \"design pattern\" creational -manufacturing -industrial"], ["lex", "\"factory pattern\" abstract creator -assembly -plant"], ["vec", "how does the factory method design pattern work and when to use it"], ["hyde", "The factory method pattern defines an interface for creating objects but lets subclasses decide which class to instantiate. It promotes loose coupling by separating creation from usage."]]}
{"query": "protocol buffers grpc serialization", "intent": "using efficient RPC serialization", "output": [["lex", "\"Protocol Buffers\" protobuf gRPC -REST -JSON"], ["lex", "\"gRPC\" proto3 serialization \"service definition\""], ["vec", "how to use Protocol Buffers with gRPC for efficient serialization"], ["hyde", "Protocol Buffers define message schemas in .proto files. gRPC uses them for RPC service definitions. protoc generates client and server code. Binary format is smaller and faster than JSON."]]}
{"query": "chaos engineering resilience testing", "intent": "testing system reliability", "output": [["lex", "\"chaos engineering\" resilience testing -theory -physics"], ["lex", "\"chaos monkey\" \"fault injection\" \"game day\" -random"], ["vec", "how to practice chaos engineering to test system resilience"], ["hyde", "Chaos engineering deliberately injects failures into production systems to verify resilience. Start with hypotheses about expected behavior, then run controlled experiments to find weaknesses."]]}
{"query": "event sourcing CQRS architecture", "intent": "implementing event-driven systems", "output": [["lex", "\"event sourcing\" CQRS architecture -calendar -planning"], ["lex", "\"event store\" \"command query\" projection -party"], ["vec", "how to implement event sourcing with CQRS architecture pattern"], ["hyde", "Event sourcing stores state changes as immutable events rather than current state. CQRS separates read and write models. Commands produce events, projections build read-optimized views from the event stream."]]}
{"query": "zero trust network architecture", "intent": "securing network infrastructure", "output": [["lex", "\"zero trust\" network architecture -social -faith"], ["lex", "\"zero trust\" microsegmentation \"identity verification\" -religion"], ["vec", "what is zero trust network architecture and how to implement it"], ["hyde", "Zero trust assumes no implicit trust for any user or device. Every access request is verified regardless of network location. Implement with identity verification, microsegmentation, and least-privilege access."]]}
{"query": "service mesh istio microservices", "intent": "managing microservice communication", "output": [["lex", "\"service mesh\" Istio microservices -fabric -textile"], ["lex", "Istio sidecar \"traffic management\" -yoga -meditation"], ["vec", "how to use Istio service mesh for microservices communication"], ["hyde", "Istio injects sidecar proxies alongside each microservice to handle traffic routing, load balancing, and mTLS. It provides observability, security, and traffic management without application code changes."]]}
{"query": "principal component analysis dimensionality reduction", "intent": "reducing data dimensions", "output": [["lex", "\"principal component analysis\" PCA -school -administrator"], ["lex", "PCA \"dimensionality reduction\" eigenvalue variance"], ["vec", "how does PCA reduce dimensions in high-dimensional data"], ["hyde", "PCA finds orthogonal axes of maximum variance in data. Project data onto the top k principal components to reduce dimensions while preserving the most information."]]}
{"query": "los angeles traffic congestion solutions", "intent": "addressing urban transportation", "output": [["lex", "\"Los Angeles\" traffic congestion -movie -Hollywood"], ["lex", "\"LA\" freeway commute \"public transit\" metro"], ["vec", "solutions for traffic congestion problems in Los Angeles"], ["hyde", "Los Angeles traffic congestion stems from car-dependent infrastructure and sprawl. Solutions include expanding Metro rail, improving bus rapid transit, congestion pricing, and transit-oriented development."]]}
{"query": "blue green deployment zero downtime", "intent": "deploying without downtime", "output": [["lex", "\"blue-green deployment\" \"zero downtime\" -color -paint"], ["lex", "\"blue green\" deployment rollback cutover -art"], ["vec", "how to implement blue-green deployments for zero-downtime releases"], ["hyde", "Blue-green deployment runs two identical production environments. Route traffic to blue (current), deploy to green (new). After validation, switch the router to green. Rollback by switching back to blue."]]}
{"query": "rio de janeiro carnival festival", "intent": "learning about Brazilian culture", "output": [["lex", "\"Rio de Janeiro\" carnival festival -movie -animation"], ["lex", "\"Rio\" carnival samba parade \"Sambodromo\""], ["vec", "what is the Rio de Janeiro carnival festival and when does it happen"], ["hyde", "Rio's Carnival is a massive annual festival before Lent featuring samba school parades at the Sambodromo, street parties called blocos, and elaborate costumes. It typically runs for five days."]]}
{"query": "object relational mapping hibernate", "intent": "mapping Java objects to databases", "output": [["lex", "\"Hibernate\" ORM \"object-relational mapping\" -sleep -bear"], ["lex", "Hibernate JPA \"entity mapping\" \"lazy loading\""], ["vec", "how to use Hibernate ORM for database access in Java"], ["hyde", "Hibernate maps Java objects to database tables using annotations or XML. It handles SQL generation, caching, and lazy loading. JPA is the standard interface that Hibernate implements."]]}
{"query": "social security retirement benefits", "intent": "understanding retirement planning", "output": [["lex", "\"Social Security\" retirement benefits -cyber -network"], ["lex", "\"Social Security\" \"full retirement age\" -hacking -breach"], ["vec", "how do Social Security retirement benefits work and when to claim"], ["hyde", "Social Security retirement benefits are based on your highest 35 years of earnings. Full retirement age is 66-67 depending on birth year. Claiming early at 62 reduces benefits permanently."]]}
{"query": "differential equation numerical methods", "intent": "solving differential equations numerically", "output": [["lex", "\"differential equation\" \"numerical methods\" solver -personality -psychology"], ["lex", "ODE \"Runge-Kutta\" \"Euler method\" numerical"], ["vec", "numerical methods for solving differential equations"], ["hyde", "Numerical methods approximate solutions to differential equations through discretization. Euler's method is simplest but inaccurate. Runge-Kutta methods (RK4) offer better accuracy per step."]]}
{"query": "cross platform mobile development flutter", "intent": "building mobile apps with Flutter", "output": [["lex", "\"Flutter\" \"cross-platform\" mobile -butterfly -insect"], ["lex", "Flutter Dart widget \"hot reload\" -React -Native"], ["vec", "how to build cross-platform mobile apps using Flutter"], ["hyde", "Flutter uses Dart to build native-compiled apps for iOS and Android from a single codebase. Its widget system provides a rich UI toolkit with hot reload for fast development."]]}
{"query": "renewable energy solar panel efficiency", "intent": "evaluating solar energy", "output": [["lex", "\"solar panel\" efficiency renewable -space -satellite"], ["lex", "\"photovoltaic\" efficiency \"solar cell\" -solar -system"], ["vec", "how efficient are solar panels and what affects their performance"], ["hyde", "Modern solar panels achieve 20-25% efficiency for residential installations. Efficiency depends on cell technology, temperature, shading, angle, and panel degradation over time."]]}
{"query": "great barrier reef conservation", "intent": "protecting marine ecosystems", "output": [["lex", "\"Great Barrier Reef\" conservation protection -gaming -level"], ["lex", "\"Great Barrier Reef\" marine preservation -aquarium"], ["vec", "conservation efforts to protect the Great Barrier Reef"], ["hyde", "The Great Barrier Reef faces threats from coral bleaching, ocean acidification, and pollution. Conservation efforts include marine protected areas, water quality improvement, and coral restoration programs."]]}
{"query": "attention mechanism transformer architecture", "intent": "understanding transformer internals", "output": [["lex", "\"attention mechanism\" transformer architecture -ADHD -focus"], ["lex", "\"self-attention\" \"multi-head\" \"query key value\" -electrical"], ["vec", "how does the attention mechanism work in transformer architecture"], ["hyde", "Self-attention computes relevance scores between all pairs of tokens using query, key, and value projections. Multi-head attention runs multiple parallel attention functions for richer representations."]]}
{"query": "write ahead log database recovery", "intent": "understanding database durability", "output": [["lex", "\"write-ahead log\" WAL database recovery -diary -journal"], ["lex", "WAL \"crash recovery\" \"transaction log\" checkpoint"], ["vec", "how does write-ahead logging enable database crash recovery"], ["hyde", "Write-ahead logging writes changes to a log before modifying data pages. On crash, replay the WAL to restore committed transactions and undo incomplete ones, ensuring durability and consistency."]]}
{"query": "middle earth tolkien geography", "intent": "exploring Tolkien's fictional world", "output": [["lex", "\"Middle-earth\" Tolkien geography map -real -actual"], ["lex", "\"Lord of the Rings\" Tolkien \"Shire\" \"Mordor\" map"], ["vec", "geography and map of Middle-earth from Tolkien's works"], ["hyde", "Middle-earth's geography spans from the Shire in the northwest to Mordor in the southeast. Key regions include Rohan's plains, Gondor's kingdom, Mirkwood forest, and the Misty Mountains."]]}

View File

@@ -0,0 +1,64 @@
{"query": "eiffel tower", "output": [["hyde", "A visitor guide to the Eiffel Tower covering history, viewpoints, and ticket tips."], ["lex", "eiffel tower tourist guide"], ["lex", "eiffel overview tower history"], ["lex", "eiffel overview tower tickets"], ["vec", "visitor information and history of the Eiffel Tower"], ["vec", "Eiffel Tower sightseeing tips and notable facts"]], "category": "location"}
{"query": "statue of liberty", "output": [["hyde", "A travel overview of the Statue of Liberty with history, ferry info, and exhibits."], ["lex", "statue of liberty tourist guide"], ["lex", "statue overview of liberty history"], ["lex", "statue overview of liberty tickets"], ["vec", "visitor guide to the Statue of Liberty"], ["vec", "history and museum exhibits at the Statue of Liberty"]], "category": "location"}
{"query": "great wall of china", "output": [["hyde", "A visitor guide to the Great Wall of China with sections, access, and history."], ["lex", "great wall of china tourist guide"], ["lex", "great wall history"], ["lex", "great wall best sections"], ["vec", "travel tips and history for the Great Wall of China"], ["vec", "where to visit the Great Wall and what to see"]], "category": "location"}
{"query": "machu picchu", "output": [["hyde", "A travel guide to Machu Picchu covering permits, routes, and historical context."], ["lex", "machu picchu tourist guide"], ["lex", "machu overview picchu history"], ["lex", "machu overview picchu tickets"], ["vec", "visitor information and history of Machu Picchu"], ["vec", "how to visit Machu Picchu and what to know"]], "category": "location"}
{"query": "taj mahal", "output": [["hyde", "A visitor guide to the Taj Mahal with history, opening hours, and photography tips."], ["lex", "taj mahal tourist guide"], ["lex", "taj overview mahal history"], ["lex", "taj overview mahal tickets"], ["vec", "travel tips and history for the Taj Mahal"], ["vec", "Taj Mahal visiting hours and highlights"]], "category": "location"}
{"query": "colosseum", "output": [["hyde", "A travel overview of the Colosseum with history, tours, and ticket options."], ["lex", "colosseum tourist guide"], ["lex", "colosseum history overview"], ["lex", "colosseum tickets overview"], ["vec", "visitor guide to the Colosseum in Rome"], ["vec", "history and tours for the Roman Colosseum"]], "category": "location"}
{"query": "petra", "output": [["hyde", "A visitor guide to Petra covering access, trails, and historical highlights."], ["lex", "petra tourist guide"], ["lex", "petra history overview"], ["lex", "petra visitor tips"], ["vec", "how to visit Petra and what to see"], ["vec", "history and travel information for Petra"]], "category": "location"}
{"query": "angkor wat", "output": [["hyde", "A travel guide to Angkor Wat with temple highlights, passes, and best times to visit."], ["lex", "angkor wat tourist guide"], ["lex", "angkor overview wat history"], ["lex", "angkor overview wat tickets"], ["vec", "visitor information for Angkor Wat"], ["vec", "temple highlights and history of Angkor Wat"]], "category": "location"}
{"query": "sydney opera house", "output": [["hyde", "A visitor guide to the Sydney Opera House covering tours, performances, and history."], ["lex", "sydney opera house tourist guide"], ["lex", "sydney overview opera house history"], ["lex", "sydney overview opera house tours"], ["vec", "visitor tips and history of the Sydney Opera House"], ["vec", "how to tour the Sydney Opera House"]], "category": "location"}
{"query": "golden gate bridge", "output": [["hyde", "A travel overview of the Golden Gate Bridge with viewpoints, history, and photography tips."], ["lex", "golden gate bridge tourist guide"], ["lex", "golden overview gate bridge history"], ["lex", "golden gate bridge viewpoints"], ["vec", "visitor information for the Golden Gate Bridge"], ["vec", "best viewpoints and history of the Golden Gate Bridge"]], "category": "location"}
{"query": "mount rushmore", "output": [["hyde", "A visitor guide to Mount Rushmore with history, trails, and museum highlights."], ["lex", "mount rushmore tourist guide"], ["lex", "mount overview rushmore history"], ["lex", "mount rushmore visitor center"], ["vec", "travel tips and history for Mount Rushmore"], ["vec", "what to see at Mount Rushmore memorial"]], "category": "location"}
{"query": "niagara falls", "output": [["hyde", "A travel guide to Niagara Falls with viewpoints, boat tours, and seasonal tips."], ["lex", "niagara falls tourist guide"], ["lex", "niagara falls boat tour"], ["lex", "niagara falls best viewpoint"], ["vec", "visitor information and tours at Niagara Falls"], ["vec", "how to visit Niagara Falls and what to do"]], "category": "location"}
{"query": "grand canyon", "output": [["hyde", "A visitor guide to the Grand Canyon with rim options, hikes, and safety tips."], ["lex", "grand canyon tourist guide"], ["lex", "grand overview canyon hikes"], ["lex", "grand canyon viewpoints"], ["vec", "travel tips and trails for the Grand Canyon"], ["vec", "best viewpoints and hikes at the Grand Canyon"]], "category": "location"}
{"query": "yellowstone national park", "output": [["hyde", "A travel overview of Yellowstone covering geysers, wildlife viewing, and park logistics."], ["lex", "yellowstone tourist guide"], ["lex", "yellowstone geysers"], ["lex", "yellowstone wildlife"], ["vec", "visitor guide to Yellowstone National Park"], ["vec", "what to see in Yellowstone and when to visit"]], "category": "location"}
{"query": "yosemite national park", "output": [["hyde", "A visitor guide to Yosemite with valley highlights, hikes, and seasonal access."], ["lex", "yosemite tourist guide"], ["lex", "yosemite hikes"], ["lex", "yosemite waterfalls"], ["vec", "visitor information for Yosemite National Park"], ["vec", "top sights and hikes in Yosemite"]], "category": "location"}
{"query": "banff national park", "output": [["hyde", "A travel guide to Banff covering lakes, trails, and best seasons to visit."], ["lex", "banff tourist guide"], ["lex", "banff lake louise"], ["lex", "banff hikes"], ["vec", "visitor tips for Banff National Park"], ["vec", "best views and activities in Banff"]], "category": "location"}
{"query": "sagrada familia", "output": [["hyde", "A visitor guide to Sagrada Familia with tickets, architecture highlights, and history."], ["lex", "sagrada familia tourist guide"], ["lex", "sagrada overview familia history"], ["lex", "sagrada overview familia tickets"], ["vec", "visitor information for Sagrada Familia"], ["vec", "architecture and history of Sagrada Familia"]], "category": "location"}
{"query": "buckingham palace", "output": [["hyde", "A travel overview of Buckingham Palace with tours, ceremonies, and visitor info."], ["lex", "buckingham palace tourist guide"], ["lex", "buckingham overview palace tours"], ["lex", "buckingham palace changing of the guard"], ["vec", "visitor tips for Buckingham Palace"], ["vec", "history and ceremonies at Buckingham Palace"]], "category": "location"}
{"query": "louvre museum", "output": [["hyde", "A visitor guide to the Louvre with major exhibits, tickets, and planning tips."], ["lex", "louvre tourist guide"], ["lex", "louvre tickets"], ["lex", "louvre highlights"], ["vec", "visitor information for the Louvre Museum"], ["vec", "top exhibits and planning tips for the Louvre"]], "category": "location"}
{"query": "vatican city", "output": [["hyde", "A travel guide to Vatican City with museums, basilica, and ticket information."], ["lex", "vatican city tourist guide"], ["lex", "vatican museums tickets"], ["lex", "st peter's basilica visit"], ["vec", "visitor information for Vatican City"], ["vec", "what to see in Vatican City and how to visit"]], "category": "location"}
{"query": "st peter's basilica", "output": [["hyde", "A visitor guide to St. Peter's Basilica with entry rules, highlights, and history."], ["lex", "st peter's basilica tourist guide"], ["lex", "st overview peter's basilica history"], ["lex", "st overview peter's basilica tickets"], ["vec", "visitor tips for St. Peter's Basilica"], ["vec", "history and highlights of St. Peter's Basilica"]], "category": "location"}
{"query": "acropolis", "output": [["hyde", "A travel overview of the Acropolis with temple highlights and visitor info."], ["lex", "acropolis tourist guide"], ["lex", "acropolis history overview"], ["lex", "acropolis tickets overview"], ["vec", "visitor guide to the Acropolis in Athens"], ["vec", "history and highlights of the Acropolis"]], "category": "location"}
{"query": "parthenon", "output": [["hyde", "A visitor guide to the Parthenon with history, architecture, and access tips."], ["lex", "parthenon tourist guide"], ["lex", "parthenon history overview"], ["lex", "parthenon architecture"], ["vec", "visitor information for the Parthenon"], ["vec", "history and architecture of the Parthenon"]], "category": "location"}
{"query": "alhambra", "output": [["hyde", "A travel guide to the Alhambra covering tickets, palaces, and gardens."], ["lex", "alhambra tourist guide"], ["lex", "alhambra tickets overview"], ["lex", "alhambra history overview"], ["vec", "visitor information for the Alhambra"], ["vec", "what to see at the Alhambra in Granada"]], "category": "location"}
{"query": "santorini", "output": [["hyde", "A visitor guide to Santorini with viewpoints, beaches, and travel tips."], ["lex", "santorini tourist guide"], ["lex", "santorini best views"], ["lex", "santorini travel tips"], ["vec", "visitor tips for Santorini"], ["vec", "what to see and do in Santorini"]], "category": "location"}
{"query": "venice", "output": [["hyde", "A travel overview of Venice with canals, major sights, and visiting tips."], ["lex", "venice tourist guide"], ["lex", "venice attractions"], ["lex", "venice travel tips"], ["vec", "visitor guide to Venice"], ["vec", "top sights and planning tips for Venice"]], "category": "location"}
{"query": "amsterdam", "output": [["hyde", "A visitor guide to Amsterdam covering museums, canals, and travel tips."], ["lex", "amsterdam tourist guide"], ["lex", "amsterdam museums overview"], ["lex", "amsterdam canal tour"], ["vec", "visitor tips for Amsterdam"], ["vec", "top attractions and neighborhoods in Amsterdam"]], "category": "location"}
{"query": "prague", "output": [["hyde", "A travel guide to Prague with historic sites, castles, and itinerary tips."], ["lex", "prague tourist guide"], ["lex", "prague castle overview"], ["lex", "prague old town overview"], ["vec", "visitor information for Prague"], ["vec", "top sights and travel tips for Prague"]], "category": "location"}
{"query": "reykjavik", "output": [["hyde", "A visitor guide to Reykjavik with sights, day trips, and travel tips."], ["lex", "reykjavik tourist guide"], ["lex", "reykjavik attractions"], ["lex", "reykjavik travel tips"], ["vec", "visitor information for Reykjavik"], ["vec", "what to see in Reykjavik and nearby"]], "category": "location"}
{"query": "tokyo", "output": [["hyde", "A travel guide to Tokyo with neighborhoods, landmarks, and transit tips."], ["lex", "tokyo tourist guide"], ["lex", "tokyo attractions"], ["lex", "tokyo travel tips"], ["vec", "visitor tips for Tokyo"], ["vec", "top sights and neighborhoods in Tokyo"]], "category": "location"}
{"query": "kyoto", "output": [["hyde", "A visitor guide to Kyoto with temples, gardens, and seasonal highlights."], ["lex", "kyoto tourist guide"], ["lex", "kyoto temples overview"], ["lex", "kyoto travel tips"], ["vec", "visitor information for Kyoto"], ["vec", "top temples and sights in Kyoto"]], "category": "location"}
{"query": "beijing", "output": [["hyde", "A travel overview of Beijing with landmarks, museums, and travel tips."], ["lex", "beijing tourist guide"], ["lex", "beijing attractions"], ["lex", "beijing travel tips"], ["vec", "visitor guide to Beijing"], ["vec", "top landmarks and planning tips for Beijing"]], "category": "location"}
{"query": "shanghai", "output": [["hyde", "A visitor guide to Shanghai with skyline sights, neighborhoods, and travel tips."], ["lex", "shanghai tourist guide"], ["lex", "shanghai attractions"], ["lex", "shanghai travel tips"], ["vec", "visitor information for Shanghai"], ["vec", "top sights and neighborhoods in Shanghai"]], "category": "location"}
{"query": "hong kong", "output": [["hyde", "A travel guide to Hong Kong with skyline viewpoints, neighborhoods, and transit tips."], ["lex", "hong kong tourist guide"], ["lex", "hong kong attractions"], ["lex", "hong kong travel tips"], ["vec", "visitor tips for Hong Kong"], ["vec", "top sights and neighborhoods in Hong Kong"]], "category": "location"}
{"query": "singapore", "output": [["hyde", "A visitor guide to Singapore covering major attractions and travel logistics."], ["lex", "singapore tourist guide"], ["lex", "singapore attractions"], ["lex", "singapore travel tips"], ["vec", "visitor information for Singapore"], ["vec", "top attractions and planning tips for Singapore"]], "category": "location"}
{"query": "dubai", "output": [["hyde", "A travel overview of Dubai with landmarks, tours, and practical tips."], ["lex", "dubai tourist guide"], ["lex", "dubai attractions"], ["lex", "dubai travel tips"], ["vec", "visitor information for Dubai"], ["vec", "top sights and planning tips for Dubai"]], "category": "location"}
{"query": "cape town", "output": [["hyde", "A visitor guide to Cape Town with Table Mountain, waterfront, and travel tips."], ["lex", "cape town tourist guide"], ["lex", "cape town attractions"], ["lex", "cape town travel tips"], ["vec", "visitor information for Cape Town"], ["vec", "top sights and travel tips for Cape Town"]], "category": "location"}
{"query": "marrakech", "output": [["hyde", "A travel guide to Marrakech with medina highlights, markets, and tips."], ["lex", "marrakech tourist guide"], ["lex", "marrakech attractions"], ["lex", "marrakech travel tips"], ["vec", "visitor information for Marrakech"], ["vec", "top sights and markets in Marrakech"]], "category": "location"}
{"query": "cairo", "output": [["hyde", "A visitor guide to Cairo with pyramids, museums, and travel tips."], ["lex", "cairo tourist guide"], ["lex", "cairo attractions"], ["lex", "cairo travel tips"], ["vec", "visitor information for Cairo"], ["vec", "top sights and museums in Cairo"]], "category": "location"}
{"query": "pyramids of giza", "output": [["hyde", "A travel overview of the Pyramids of Giza with history, tickets, and tours."], ["lex", "pyramids of giza tourist guide"], ["lex", "pyramids overview of giza history"], ["lex", "pyramids overview of giza tickets"], ["vec", "visitor information for the Pyramids of Giza"], ["vec", "history and tours for the Giza pyramids"]], "category": "location"}
{"query": "stonehenge", "output": [["hyde", "A visitor guide to Stonehenge with history, access, and tour options."], ["lex", "stonehenge tourist guide"], ["lex", "stonehenge history overview"], ["lex", "stonehenge tours overview"], ["vec", "visitor information for Stonehenge"], ["vec", "history and visiting tips for Stonehenge"]], "category": "location"}
{"query": "mont saint michel", "output": [["hyde", "A travel guide to Mont Saint-Michel with abbey highlights and visitor tips."], ["lex", "mont saint michel tourist guide"], ["lex", "mont overview saint michel history"], ["lex", "mont overview saint michel abbey"], ["vec", "visitor information for Mont Saint-Michel"], ["vec", "what to see at Mont Saint-Michel"]], "category": "location"}
{"query": "neuschwanstein castle", "output": [["hyde", "A visitor guide to Neuschwanstein Castle with tours, history, and access tips."], ["lex", "neuschwanstein castle tourist guide"], ["lex", "neuschwanstein overview castle history"], ["lex", "neuschwanstein overview castle tickets"], ["vec", "visitor information for Neuschwanstein Castle"], ["vec", "history and tours for Neuschwanstein Castle"]], "category": "location"}
{"query": "brandenburg gate", "output": [["hyde", "A travel overview of the Brandenburg Gate with historical context and visiting tips."], ["lex", "brandenburg gate tourist guide"], ["lex", "brandenburg overview gate history"], ["lex", "brandenburg overview gate berlin"], ["vec", "visitor information for the Brandenburg Gate"], ["vec", "history and significance of the Brandenburg Gate"]], "category": "location"}
{"query": "times square", "output": [["hyde", "A visitor guide to Times Square with attractions, safety tips, and best times to visit."], ["lex", "times square tourist guide"], ["lex", "times square attractions"], ["lex", "times square travel tips"], ["vec", "visitor information for Times Square"], ["vec", "what to see and do in Times Square"]], "category": "location"}
{"query": "central park", "output": [["hyde", "A travel guide to Central Park with landmarks, trails, and visitor tips."], ["lex", "central park tourist guide"], ["lex", "central park attractions"], ["lex", "central overview park trails"], ["vec", "visitor information for Central Park"], ["vec", "top sights and activities in Central Park"]], "category": "location"}
{"query": "hollywood sign", "output": [["hyde", "A visitor guide to the Hollywood Sign with hiking routes and viewpoint tips."], ["lex", "hollywood sign tourist guide"], ["lex", "hollywood overview sign hike"], ["lex", "hollywood sign viewpoint"], ["vec", "visitor information for the Hollywood Sign"], ["vec", "how to see the Hollywood Sign and best trails"]], "category": "location"}
{"query": "uluru", "output": [["hyde", "A travel overview of Uluru with cultural significance and visitor guidelines."], ["lex", "uluru tourist guide"], ["lex", "uluru history overview"], ["lex", "uluru visitor tips"], ["vec", "visitor information and cultural context for Uluru"], ["vec", "how to visit Uluru respectfully"]], "category": "location"}
{"query": "christ the redeemer", "output": [["hyde", "A visitor guide to Christ the Redeemer with history, tickets, and viewpoints."], ["lex", "christ the redeemer tourist guide"], ["lex", "christ overview the redeemer history"], ["lex", "christ overview the redeemer tickets"], ["vec", "visitor information for Christ the Redeemer"], ["vec", "how to visit Christ the Redeemer and what to know"]], "category": "location"}
{"query": "salar de uyuni", "output": [["hyde", "A travel guide to Salar de Uyuni with tour options, seasons, and travel tips."], ["lex", "salar de uyuni tourist guide"], ["lex", "salar overview de uyuni tours"], ["lex", "salar de uyuni best time"], ["vec", "visitor information for Salar de Uyuni"], ["vec", "how to visit Salar de Uyuni and plan a tour"]], "category": "location"}
{"query": "galapagos islands", "output": [["hyde", "A visitor guide to the Galapagos Islands with wildlife highlights and travel logistics."], ["lex", "galapagos islands tourist guide"], ["lex", "galapagos overview islands wildlife"], ["lex", "galapagos islands travel tips"], ["vec", "visitor information for the Galapagos Islands"], ["vec", "wildlife and travel tips for the Galapagos"]], "category": "location"}
{"query": "borobudur", "output": [["hyde", "A travel overview of Borobudur with temple history, sunrise visits, and tickets."], ["lex", "borobudur tourist guide"], ["lex", "borobudur history overview"], ["lex", "borobudur tickets overview"], ["vec", "visitor information for Borobudur"], ["vec", "history and visiting tips for Borobudur"]], "category": "location"}
{"query": "chichen itza", "output": [["hyde", "A visitor guide to Chichen Itza with history, tours, and travel tips."], ["lex", "chichen itza tourist guide"], ["lex", "chichen overview itza history"], ["lex", "chichen overview itza tickets"], ["vec", "visitor information for Chichen Itza"], ["vec", "history and tours for Chichen Itza"]], "category": "location"}
{"query": "moai of easter island", "output": [["hyde", "A travel guide to the moai statues with history, sites, and visitor tips."], ["lex", "easter island moai tourist guide"], ["lex", "moai statues history"], ["lex", "rapa nui visitor tips"], ["vec", "visitor information for Easter Island and the moai"], ["vec", "history and sites of the moai statues"]], "category": "location"}
{"query": "kilimanjaro", "output": [["hyde", "A visitor guide to Mount Kilimanjaro covering routes, permits, and preparation."], ["lex", "kilimanjaro tourist guide"], ["lex", "kilimanjaro routes overview"], ["lex", "kilimanjaro permits overview"], ["vec", "how to climb Kilimanjaro and plan a trip"], ["vec", "visitor information and preparation for Kilimanjaro"]], "category": "location"}
{"query": "serengeti", "output": [["hyde", "A travel overview of the Serengeti with wildlife highlights and safari tips."], ["lex", "serengeti tourist guide"], ["lex", "serengeti wildlife overview"], ["lex", "serengeti safari tips"], ["vec", "visitor information for the Serengeti"], ["vec", "wildlife and safari planning for the Serengeti"]], "category": "location"}
{"query": "victoria falls", "output": [["hyde", "A visitor guide to Victoria Falls with viewpoints, tours, and travel tips."], ["lex", "victoria falls tourist guide"], ["lex", "victoria falls viewpoints"], ["lex", "victoria overview falls tours"], ["vec", "visitor information for Victoria Falls"], ["vec", "how to visit Victoria Falls and what to see"]], "category": "location"}
{"query": "cape canaveral", "output": [["hyde", "A travel guide to Cape Canaveral with launch viewing tips and visitor centers."], ["lex", "cape canaveral tourist guide"], ["lex", "cape canaveral launch viewing"], ["lex", "kennedy space center"], ["vec", "visitor information for Cape Canaveral"], ["vec", "how to visit Kennedy Space Center and launches"]], "category": "location"}
{"query": "edinburgh castle", "output": [["hyde", "A visitor guide to Edinburgh Castle with history, tours, and highlights."], ["lex", "edinburgh castle tourist guide"], ["lex", "edinburgh overview castle history"], ["lex", "edinburgh overview castle tickets"], ["vec", "visitor information for Edinburgh Castle"], ["vec", "history and highlights of Edinburgh Castle"]], "category": "location"}
{"query": "versailles palace", "output": [["hyde", "A travel overview of the Palace of Versailles with tours, gardens, and history."], ["lex", "versailles palace tourist guide"], ["lex", "versailles overview palace history"], ["lex", "versailles tickets"], ["vec", "visitor information for the Palace of Versailles"], ["vec", "how to visit Versailles and what to see"]], "category": "location"}
{"query": "mount fuji", "output": [["hyde", "A visitor guide to Mount Fuji with viewing spots, trails, and seasonal tips."], ["lex", "mount fuji tourist guide"], ["lex", "mount fuji best view"], ["lex", "mount overview fuji climb"], ["vec", "visitor information for Mount Fuji"], ["vec", "how to view or climb Mount Fuji"]], "category": "location"}
{"query": "sistine chapel", "output": [["hyde", "A visitor guide to the Sistine Chapel with ticket info, highlights, and rules."], ["lex", "sistine chapel tourist guide"], ["lex", "sistine overview chapel history"], ["lex", "sistine overview chapel tickets"], ["vec", "visitor information for the Sistine Chapel"], ["vec", "highlights and visiting tips for the Sistine Chapel"]], "category": "location"}
{"query": "porto", "output": [["hyde", "A travel overview of Porto with riverside sights, wine tours, and tips."], ["lex", "porto tourist guide"], ["lex", "porto attractions"], ["lex", "porto wine tours"], ["vec", "visitor information for Porto"], ["vec", "top sights and travel tips for Porto"]], "category": "location"}
{"query": "dubrovnik", "output": [["hyde", "A visitor guide to Dubrovnik with old town highlights and travel tips."], ["lex", "dubrovnik tourist guide"], ["lex", "dubrovnik attractions"], ["lex", "dubrovnik old town overview"], ["vec", "visitor information for Dubrovnik"], ["vec", "top sights and tips for Dubrovnik"]], "category": "location"}

View File

@@ -0,0 +1,46 @@
{"query": "nelson mandela", "output": [["hyde", "A concise biography of Nelson Mandela covering early life, anti-apartheid activism, imprisonment, and presidency."], ["lex", "nelson mandela biography"], ["lex", "nelson mandela accomplishments"], ["lex", "nelson mandela early life"], ["vec", "life and legacy of Nelson Mandela"], ["vec", "overview of Nelson Mandela's leadership and impact"]], "category": "person"}
{"query": "winston churchill", "output": [["hyde", "A summary of Winston Churchill's life, wartime leadership, and political career."], ["lex", "winston churchill biography"], ["lex", "winston churchill accomplishments"], ["lex", "winston churchill world war ii"], ["vec", "life and leadership of Winston Churchill"], ["vec", "Churchill's wartime role and legacy"]], "category": "person"}
{"query": "franklin d roosevelt", "output": [["hyde", "A brief biography of Franklin D. Roosevelt focusing on the New Deal and World War II leadership."], ["lex", "franklin d roosevelt biography"], ["lex", "fdr accomplishments"], ["lex", "fdr new deal"], ["vec", "FDR's presidency and historical impact"], ["vec", "Franklin Roosevelt's leadership in crisis"]], "category": "person"}
{"query": "abraham lincoln", "output": [["hyde", "A biography of Abraham Lincoln highlighting the Civil War, emancipation, and presidency."], ["lex", "abraham lincoln biography"], ["lex", "abraham lincoln accomplishments"], ["lex", "lincoln emancipation proclamation"], ["vec", "life and legacy of Abraham Lincoln"], ["vec", "Lincoln's role in the Civil War and abolition"]], "category": "person"}
{"query": "mahatma gandhi", "output": [["hyde", "A concise biography of Mahatma Gandhi covering nonviolent resistance and India's independence."], ["lex", "mahatma gandhi biography"], ["lex", "gandhi accomplishments"], ["lex", "gandhi nonviolent resistance"], ["vec", "Gandhi's life and leadership"], ["vec", "overview of Gandhi's impact on independence movements"]], "category": "person"}
{"query": "martin luther king jr", "output": [["hyde", "A summary of Martin Luther King Jr.'s life, civil rights leadership, and major speeches."], ["lex", "martin luther king jr biography"], ["lex", "mlk accomplishments"], ["lex", "mlk civil rights movement"], ["vec", "life and legacy of Martin Luther King Jr."], ["vec", "MLK's leadership and major achievements"]], "category": "person"}
{"query": "angela merkel", "output": [["hyde", "A biography of Angela Merkel focusing on her chancellorship and European leadership."], ["lex", "angela merkel biography"], ["lex", "angela merkel accomplishments"], ["lex", "merkel chancellor germany"], ["vec", "Angela Merkel's political career and legacy"], ["vec", "overview of Merkel's leadership in Europe"]], "category": "person"}
{"query": "barack obama", "output": [["hyde", "A brief biography of Barack Obama covering early life, presidency, and key policies."], ["lex", "barack obama biography"], ["lex", "barack obama accomplishments"], ["lex", "obama presidency"], ["vec", "life and presidency of Barack Obama"], ["vec", "overview of Obama era policies and impact"]], "category": "person"}
{"query": "jacinda ardern", "output": [["hyde", "A profile of Jacinda Ardern focusing on leadership style and key national events."], ["lex", "jacinda ardern biography"], ["lex", "jacinda ardern accomplishments"], ["lex", "ardern new zealand prime minister"], ["vec", "Jacinda Ardern's leadership and tenure"], ["vec", "overview of Ardern's political impact"]], "category": "person"}
{"query": "george washington", "output": [["hyde", "A biography of George Washington highlighting the Revolution and early presidency."], ["lex", "george washington biography"], ["lex", "george washington accomplishments"], ["lex", "washington revolutionary war"], ["vec", "life and legacy of George Washington"], ["vec", "Washington's role in founding the United States"]], "category": "person"}
{"query": "cleopatra", "output": [["hyde", "A concise biography of Cleopatra covering her reign and political alliances in ancient Egypt."], ["lex", "cleopatra biography"], ["lex", "cleopatra accomplishments"], ["lex", "cleopatra reign egypt"], ["vec", "life and legacy of Cleopatra"], ["vec", "Cleopatra's political role in ancient history"]], "category": "person"}
{"query": "julius caesar", "output": [["hyde", "A summary of Julius Caesar's life, military campaigns, and political reforms."], ["lex", "julius caesar biography"], ["lex", "julius caesar accomplishments"], ["lex", "caesar roman republic"], ["vec", "life and impact of Julius Caesar"], ["vec", "Caesar's rise and fall in Roman politics"]], "category": "person"}
{"query": "augustus", "output": [["hyde", "A biography of Augustus focusing on the transition from Republic to Empire."], ["lex", "augustus biography"], ["lex", "augustus accomplishments"], ["lex", "augustus roman emperor"], ["vec", "Augustus and the founding of the Roman Empire"], ["vec", "life and legacy of Augustus Caesar"]], "category": "person"}
{"query": "queen elizabeth ii", "output": [["hyde", "A profile of Queen Elizabeth II covering her reign and historical milestones."], ["lex", "queen elizabeth ii biography"], ["lex", "queen elizabeth ii accomplishments"], ["lex", "elizabeth ii reign"], ["vec", "life and legacy of Queen Elizabeth II"], ["vec", "overview of Elizabeth II's long reign"]], "category": "person"}
{"query": "king henry viii", "output": [["hyde", "A biography of Henry VIII focusing on the English Reformation and royal succession."], ["lex", "henry viii biography"], ["lex", "henry viii accomplishments"], ["lex", "henry viii wives"], ["vec", "Henry VIII and the English Reformation"], ["vec", "life and reign of King Henry VIII"]], "category": "person"}
{"query": "joan of arc", "output": [["hyde", "A summary of Joan of Arc's life, military role, and historical legacy."], ["lex", "joan of arc biography"], ["lex", "joan of arc accomplishments"], ["lex", "joan of arc hundred years war"], ["vec", "life and legacy of Joan of Arc"], ["vec", "Joan of Arc's role in French history"]], "category": "person"}
{"query": "catherine the great", "output": [["hyde", "A biography of Catherine the Great focusing on reforms and expansion of Russia."], ["lex", "catherine the great biography"], ["lex", "catherine the great accomplishments"], ["lex", "catherine overview the great reforms"], ["vec", "Catherine the Great's reign and legacy"], ["vec", "overview of Catherine II's rule"]], "category": "person"}
{"query": "napoleon bonaparte", "output": [["hyde", "A profile of Napoleon Bonaparte covering military campaigns and political rule."], ["lex", "napoleon bonaparte biography"], ["lex", "napoleon accomplishments"], ["lex", "napoleon wars"], ["vec", "life and legacy of Napoleon Bonaparte"], ["vec", "Napoleon's rise, empire, and downfall"]], "category": "person"}
{"query": "simon bolivar", "output": [["hyde", "A biography of Simon Bolivar highlighting independence movements in South America."], ["lex", "simon bolivar biography"], ["lex", "simon bolivar accomplishments"], ["lex", "bolivar independence"], ["vec", "life and legacy of Simon Bolivar"], ["vec", "Bolivar's role in South American independence"]], "category": "person"}
{"query": "genghis khan", "output": [["hyde", "A summary of Genghis Khan's life and the expansion of the Mongol Empire."], ["lex", "genghis khan biography"], ["lex", "genghis khan accomplishments"], ["lex", "mongol empire founder"], ["vec", "life and legacy of Genghis Khan"], ["vec", "Genghis Khan and the rise of the Mongol Empire"]], "category": "person"}
{"query": "mustafa kemal ataturk", "output": [["hyde", "A profile of Mustafa Kemal Ataturk focusing on Turkey's modernization and reforms."], ["lex", "mustafa kemal ataturk biography"], ["lex", "ataturk accomplishments"], ["lex", "ataturk reforms"], ["vec", "Ataturk's leadership and modernization of Turkey"], ["vec", "life and legacy of Mustafa Kemal Ataturk"]], "category": "person"}
{"query": "bob dylan", "output": [["hyde", "An overview of Bob Dylan's career highlighting major albums, awards, and influence."], ["lex", "bob dylan biography"], ["lex", "bob dylan discography"], ["lex", "bob overview dylan albums"], ["vec", "life and music career of Bob Dylan"], ["vec", "Bob Dylan's major works and cultural impact"]], "category": "person"}
{"query": "aretha franklin", "output": [["hyde", "A profile of Aretha Franklin covering her career, signature songs, and awards."], ["lex", "aretha franklin biography"], ["lex", "aretha franklin discography"], ["lex", "aretha overview franklin songs"], ["vec", "career and legacy of Aretha Franklin"], ["vec", "Aretha Franklin's major recordings and influence"]], "category": "person"}
{"query": "ludwig van beethoven", "output": [["hyde", "A biography of Beethoven focusing on compositions, periods, and musical legacy."], ["lex", "beethoven biography"], ["lex", "beethoven compositions"], ["lex", "beethoven symphonies"], ["vec", "life and works of Ludwig van Beethoven"], ["vec", "Beethoven's major compositions and influence"]], "category": "person"}
{"query": "wolfgang amadeus mozart", "output": [["hyde", "A profile of Mozart highlighting major works, operas, and musical legacy."], ["lex", "mozart biography"], ["lex", "mozart compositions"], ["lex", "mozart operas"], ["vec", "life and works of Wolfgang Amadeus Mozart"], ["vec", "Mozart's major compositions and influence"]], "category": "person"}
{"query": "taylor swift", "output": [["hyde", "An overview of Taylor Swift's career focusing on albums, awards, and songwriting."], ["lex", "taylor swift biography"], ["lex", "taylor swift discography"], ["lex", "taylor overview swift albums"], ["vec", "career and discography of Taylor Swift"], ["vec", "Taylor Swift's major works and achievements"]], "category": "person"}
{"query": "beyonce", "output": [["hyde", "A profile of Beyonce covering her solo career, albums, and accolades."], ["lex", "beyonce biography"], ["lex", "beyonce discography"], ["lex", "beyonce albums overview"], ["vec", "Beyonce's career and major releases"], ["vec", "overview of Beyonce's achievements and influence"]], "category": "person"}
{"query": "elvis presley", "output": [["hyde", "A summary of Elvis Presley's life, recordings, and cultural impact."], ["lex", "elvis presley biography"], ["lex", "elvis presley discography"], ["lex", "elvis overview presley songs"], ["vec", "life and music career of Elvis Presley"], ["vec", "Elvis Presley's major recordings and legacy"]], "category": "person"}
{"query": "jimi hendrix", "output": [["hyde", "A profile of Jimi Hendrix focusing on albums, guitar innovations, and legacy."], ["lex", "jimi hendrix biography"], ["lex", "jimi hendrix discography"], ["lex", "jimi overview hendrix albums"], ["vec", "career and influence of Jimi Hendrix"], ["vec", "Jimi Hendrix's major works and legacy"]], "category": "person"}
{"query": "bob marley", "output": [["hyde", "A biography of Bob Marley highlighting key albums, songs, and cultural impact."], ["lex", "bob marley biography"], ["lex", "bob marley discography"], ["lex", "bob overview marley albums"], ["vec", "life and music of Bob Marley"], ["vec", "Bob Marley's major works and influence"]], "category": "person"}
{"query": "john coltrane", "output": [["hyde", "A profile of John Coltrane focusing on landmark albums and jazz innovation."], ["lex", "john coltrane biography"], ["lex", "john coltrane discography"], ["lex", "john overview coltrane albums"], ["vec", "career and recordings of John Coltrane"], ["vec", "John Coltrane's major works and influence"]], "category": "person"}
{"query": "miles davis", "output": [["hyde", "A summary of Miles Davis's career highlighting key albums and musical phases."], ["lex", "miles davis biography"], ["lex", "miles davis discography"], ["lex", "miles overview davis albums"], ["vec", "career and legacy of Miles Davis"], ["vec", "Miles Davis's major recordings and innovations"]], "category": "person"}
{"query": "frida kahlo", "output": [["hyde", "A biography of Frida Kahlo focusing on major works and artistic legacy."], ["lex", "frida kahlo biography"], ["lex", "frida kahlo accomplishments"], ["lex", "frida kahlo paintings"], ["vec", "life and art of Frida Kahlo"], ["vec", "Frida Kahlo's major works and influence"]], "category": "person"}
{"query": "leonardo da vinci", "output": [["hyde", "A profile of Leonardo da Vinci covering inventions, artworks, and legacy."], ["lex", "leonardo da vinci biography"], ["lex", "leonardo da vinci accomplishments"], ["lex", "leonardo overview da vinci artworks"], ["vec", "life and works of Leonardo da Vinci"], ["vec", "Leonardo's major achievements in art and science"]], "category": "person"}
{"query": "marie curie", "output": [["hyde", "A biography of Marie Curie focusing on scientific discoveries and awards."], ["lex", "marie curie biography"], ["lex", "marie curie accomplishments"], ["lex", "marie curie discoveries"], ["vec", "life and scientific legacy of Marie Curie"], ["vec", "Marie Curie's discoveries and honors"]], "category": "person"}
{"query": "albert einstein", "output": [["hyde", "A profile of Albert Einstein covering key theories, papers, and legacy."], ["lex", "albert einstein biography"], ["lex", "albert einstein accomplishments"], ["lex", "einstein relativity"], ["vec", "life and work of Albert Einstein"], ["vec", "Einstein's major scientific contributions"]], "category": "person"}
{"query": "isaac newton", "output": [["hyde", "A summary of Isaac Newton's life and foundational scientific work."], ["lex", "isaac newton biography"], ["lex", "isaac newton accomplishments"], ["lex", "newton laws of motion"], ["vec", "life and scientific legacy of Isaac Newton"], ["vec", "Newton's discoveries and influence"]], "category": "person"}
{"query": "ada lovelace", "output": [["hyde", "A profile of Ada Lovelace highlighting early computing work and legacy."], ["lex", "ada lovelace biography"], ["lex", "ada lovelace accomplishments"], ["lex", "ada overview lovelace computer"], ["vec", "life and contributions of Ada Lovelace"], ["vec", "Ada Lovelace's role in computing history"]], "category": "person"}
{"query": "alan turing", "output": [["hyde", "A biography of Alan Turing covering codebreaking, computing, and legacy."], ["lex", "alan turing biography"], ["lex", "alan turing accomplishments"], ["lex", "alan overview turing enigma"], ["vec", "life and work of Alan Turing"], ["vec", "Turing's contributions to computing and cryptography"]], "category": "person"}
{"query": "rosa parks", "output": [["hyde", "A profile of Rosa Parks focusing on civil rights actions and legacy."], ["lex", "rosa parks biography"], ["lex", "rosa parks accomplishments"], ["lex", "rosa parks civil rights"], ["vec", "life and legacy of Rosa Parks"], ["vec", "Rosa Parks and the civil rights movement"]], "category": "person"}
{"query": "harriet tubman", "output": [["hyde", "A biography of Harriet Tubman covering abolitionism and the Underground Railroad."], ["lex", "harriet tubman biography"], ["lex", "harriet tubman accomplishments"], ["lex", "harriet tubman underground railroad"], ["vec", "life and legacy of Harriet Tubman"], ["vec", "Harriet Tubman's role in abolition"]], "category": "person"}
{"query": "malala yousafzai", "output": [["hyde", "A profile of Malala Yousafzai focusing on education advocacy and awards."], ["lex", "malala yousafzai biography"], ["lex", "malala accomplishments"], ["lex", "malala education advocacy"], ["vec", "life and advocacy of Malala Yousafzai"], ["vec", "Malala's impact on education rights"]], "category": "person"}
{"query": "nelson rockefeller", "output": [["hyde", "A summary of Nelson Rockefeller's political career and public service."], ["lex", "nelson rockefeller biography"], ["lex", "nelson rockefeller accomplishments"], ["lex", "nelson overview rockefeller governor"], ["vec", "life and political career of Nelson Rockefeller"], ["vec", "Rockefeller's public service and legacy"]], "category": "person"}
{"query": "charlie chaplin", "output": [["hyde", "A profile of Charlie Chaplin covering films, comedy style, and legacy."], ["lex", "charlie chaplin biography"], ["lex", "charlie overview chaplin films"], ["lex", "charlie chaplin accomplishments"], ["vec", "life and films of Charlie Chaplin"], ["vec", "Chaplin's cinematic legacy and influence"]], "category": "person"}
{"query": "audrey hepburn", "output": [["hyde", "A biography of Audrey Hepburn focusing on film career and humanitarian work."], ["lex", "audrey hepburn biography"], ["lex", "audrey overview hepburn films"], ["lex", "audrey hepburn accomplishments"], ["vec", "life and career of Audrey Hepburn"], ["vec", "Hepburn's film legacy and humanitarian work"]], "category": "person"}
{"query": "stanley kubrick", "output": [["hyde", "A profile of Stanley Kubrick covering major films and directing style."], ["lex", "stanley kubrick biography"], ["lex", "stanley overview kubrick films"], ["lex", "kubrick accomplishments"], ["vec", "career and films of Stanley Kubrick"], ["vec", "Kubrick's influence on cinema"]], "category": "person"}

View File

@@ -0,0 +1,50 @@
{"query": "meeting with Bob about C++", "intent": "discussing C++ implementation details", "output": [["hyde", "Bob and I discussed C++ implementation details during our meeting, covering template metaprogramming and memory management."], ["lex", "Bob \"C++\" meeting"], ["lex", "Bob C++ discussion notes"], ["vec", "meeting notes with Bob about C++ programming"], ["vec", "Bob's discussion about C++ implementation"]]}
{"query": "Sarah's presentation on Q4 goals", "intent": "reviewing quarterly objectives", "output": [["hyde", "Sarah presented the Q4 goals to the team, outlining revenue targets, product milestones, and hiring plans for the quarter."], ["lex", "Sarah Q4 goals presentation"], ["lex", "Sarah \"Q4\" quarterly goals slides"], ["vec", "Sarah's presentation about Q4 quarterly goals"], ["vec", "Q4 goals and objectives presented by Sarah"]]}
{"query": "email from Dave about the deployment issue", "intent": "tracking a production deployment problem", "output": [["hyde", "Dave emailed about the production deployment failure, noting that the database migration timed out and rollback was needed."], ["lex", "Dave deployment issue email"], ["lex", "Dave email deploy problem"], ["vec", "email from Dave about the deployment issue"], ["vec", "Dave's message about production deployment problems"]]}
{"query": "Alex's proposal for switching to TypeScript", "intent": "evaluating a language migration", "output": [["hyde", "Alex proposed migrating our frontend codebase from JavaScript to TypeScript for better type safety and developer experience."], ["lex", "Alex TypeScript proposal migration"], ["lex", "Alex \"TypeScript\" switch proposal"], ["vec", "Alex's proposal to migrate to TypeScript"], ["vec", "TypeScript migration plan proposed by Alex"]]}
{"query": "conversation with Lisa about the design mockups", "intent": "reviewing UI design progress", "output": [["hyde", "Lisa walked me through the updated design mockups for the new dashboard, including the navigation redesign and responsive layouts."], ["lex", "Lisa design mockups conversation"], ["lex", "Lisa mockups dashboard design"], ["vec", "conversation with Lisa about design mockups"], ["vec", "Lisa's feedback on the design mockup revisions"]]}
{"query": "standup notes from the Platform team", "intent": "tracking daily team progress", "output": [["hyde", "Platform team standup covered the API gateway migration, database upgrade progress, and the new monitoring rollout."], ["lex", "\"Platform team\" standup notes"], ["lex", "Platform standup daily meeting"], ["vec", "standup meeting notes from the Platform team"], ["vec", "Platform team daily standup updates"]]}
{"query": "Mike's feedback on the API design doc", "intent": "incorporating review feedback", "output": [["hyde", "Mike reviewed the API design document and suggested using pagination for list endpoints and adding rate limiting headers."], ["lex", "Mike API design doc feedback"], ["lex", "Mike \"API design\" review"], ["vec", "Mike's feedback and comments on the API design document"], ["vec", "API design document review from Mike"]]}
{"query": "meeting with Jennifer about the hiring pipeline", "intent": "managing engineering recruitment", "output": [["hyde", "Jennifer and I reviewed the engineering hiring pipeline. We have 12 candidates in the interview loop and need to speed up the offer stage."], ["lex", "Jennifer hiring pipeline meeting"], ["lex", "Jennifer interview hiring discussion"], ["vec", "meeting with Jennifer about engineering hiring pipeline"], ["vec", "Jennifer's update on the hiring and interview process"]]}
{"query": "Tom's analysis of the performance regression", "intent": "debugging a performance issue", "output": [["hyde", "Tom traced the performance regression to a missing database index on the users table that was dropped during the last migration."], ["lex", "Tom \"performance regression\" analysis"], ["lex", "Tom performance issue investigation"], ["vec", "Tom's root cause analysis of the performance regression"], ["vec", "performance regression investigation by Tom"]]}
{"query": "Rachel's notes on the vendor evaluation", "intent": "comparing vendor options", "output": [["hyde", "Rachel evaluated three vendors for our logging infrastructure: Datadog, Splunk, and Grafana Cloud. She recommended Datadog for cost and features."], ["lex", "Rachel vendor evaluation notes"], ["lex", "Rachel vendor comparison assessment"], ["vec", "Rachel's notes from the vendor evaluation process"], ["vec", "vendor evaluation and comparison by Rachel"]]}
{"query": "discussion with Chris about the database migration", "intent": "planning infrastructure changes", "output": [["hyde", "Chris outlined the plan to migrate from MySQL to PostgreSQL. The migration will happen in phases starting with the read replicas."], ["lex", "Chris database migration discussion"], ["lex", "Chris MySQL PostgreSQL migration"], ["vec", "discussion with Chris about the database migration plan"], ["vec", "Chris's database migration strategy and timeline"]]}
{"query": "email thread with Maria about the contract renewal", "intent": "managing vendor relationships", "output": [["hyde", "Maria forwarded the updated contract terms from the vendor. The renewal includes a 15% price increase but adds premium support."], ["lex", "Maria contract renewal email"], ["lex", "Maria vendor contract thread"], ["vec", "email thread with Maria about the contract renewal terms"], ["vec", "Maria's correspondence about vendor contract renewal"]]}
{"query": "Kevin's demo of the new search feature", "intent": "reviewing a feature demo", "output": [["hyde", "Kevin demoed the new full-text search feature with autocomplete, faceted filters, and highlighted results. Ships next sprint."], ["lex", "Kevin demo search feature"], ["lex", "Kevin \"search feature\" demo presentation"], ["vec", "Kevin's demonstration of the new search feature"], ["vec", "new search feature demo presented by Kevin"]]}
{"query": "meeting with Priya about the budget review", "intent": "reviewing financial planning", "output": [["hyde", "Priya walked through the Q3 budget actuals versus projections. Infrastructure costs were 20% over budget due to the traffic spike."], ["lex", "Priya budget review meeting"], ["lex", "Priya \"budget review\" Q3 financials"], ["vec", "meeting with Priya about the quarterly budget review"], ["vec", "Priya's budget review and cost analysis"]]}
{"query": "Daniel's incident report on the outage", "intent": "reviewing a production incident", "output": [["hyde", "Daniel wrote the postmortem for Tuesday's outage. Root cause was a misconfigured load balancer health check that caused cascading failures."], ["lex", "Daniel incident report outage"], ["lex", "Daniel outage postmortem \"incident report\""], ["vec", "Daniel's incident report about the production outage"], ["vec", "outage postmortem and incident report from Daniel"]]}
{"query": "brainstorm with Emma about the onboarding flow", "intent": "improving user experience", "output": [["hyde", "Emma and I brainstormed improvements to the user onboarding flow, including progressive profiling, interactive tutorials, and a simpler setup wizard."], ["lex", "Emma onboarding flow brainstorm"], ["lex", "Emma \"onboarding\" UX brainstorm"], ["vec", "brainstorming session with Emma about the onboarding flow"], ["vec", "Emma's ideas for improving user onboarding experience"]]}
{"query": "James asked about the deploy process", "intent": "knowledge sharing on deployments", "output": [["hyde", "James asked how our deployment process works. I walked him through the CI pipeline, staging environment, and production rollout procedure."], ["lex", "James deploy process question"], ["lex", "James deployment procedure"], ["vec", "James asking about the deployment process"], ["vec", "deployment process explanation for James"]]}
{"query": "notes from the Project Atlas kickoff", "intent": "tracking project initiation", "output": [["hyde", "Project Atlas kickoff meeting covered scope, timeline, and team allocation. Target launch is end of Q2 with a beta in March."], ["lex", "\"Project Atlas\" kickoff notes"], ["lex", "\"Project Atlas\" meeting launch"], ["vec", "kickoff meeting notes for Project Atlas"], ["vec", "Project Atlas project kickoff and planning notes"]]}
{"query": "feedback from the Horizon team retro", "intent": "improving team processes", "output": [["hyde", "The Horizon team retrospective identified slow code reviews and unclear requirements as the top two issues. Action items assigned to leads."], ["lex", "\"Horizon team\" retro feedback"], ["lex", "Horizon retrospective improvement"], ["vec", "feedback and action items from the Horizon team retrospective"], ["vec", "Horizon team retrospective meeting notes and outcomes"]]}
{"query": "conversation with Yuki about the localization effort", "intent": "planning internationalization", "output": [["hyde", "Yuki outlined the plan to localize the product into Japanese and Korean. She needs string extraction completed by Friday for the translation vendor."], ["lex", "Yuki localization effort conversation"], ["lex", "Yuki localization i18n translation"], ["vec", "conversation with Yuki about product localization"], ["vec", "Yuki's plan for the localization and translation effort"]]}
{"query": "Marcus's review of the security audit findings", "intent": "addressing security issues", "output": [["hyde", "Marcus reviewed the third-party security audit. Critical findings include exposed admin endpoints and weak session token generation."], ["lex", "Marcus security audit review"], ["lex", "Marcus \"security audit\" findings"], ["vec", "Marcus's review of the security audit results"], ["vec", "security audit findings reviewed by Marcus"]]}
{"query": "sync with Laura about customer escalations", "intent": "managing customer issues", "output": [["hyde", "Laura briefed me on three priority customer escalations: data export timeout for Acme Corp, billing discrepancy for TechStart, and API rate limit increase for GlobalTech."], ["lex", "Laura customer escalations sync"], ["lex", "Laura \"customer escalation\" priority"], ["vec", "sync meeting with Laura about customer escalations"], ["vec", "Laura's update on priority customer escalation cases"]]}
{"query": "one on one with Nathan about career growth", "intent": "supporting career development", "output": [["hyde", "Nathan and I discussed his career development goals. He wants to move into a tech lead role and is interested in the architecture track."], ["lex", "Nathan \"career growth\" 1-on-1"], ["lex", "Nathan career development meeting"], ["vec", "one-on-one with Nathan about career growth and development"], ["vec", "Nathan's career goals and growth discussion"]]}
{"query": "Emily's update on the data pipeline refactor", "intent": "tracking infrastructure work", "output": [["hyde", "Emily reported that the data pipeline refactor is 70% complete. The new Spark jobs are running 3x faster but the Airflow DAGs still need updating."], ["lex", "Emily \"data pipeline\" refactor update"], ["lex", "Emily pipeline Spark Airflow progress"], ["vec", "Emily's progress update on the data pipeline refactor"], ["vec", "data pipeline refactor status from Emily"]]}
{"query": "meeting with Ahmed about the mobile app launch", "intent": "planning a product launch", "output": [["hyde", "Ahmed presented the mobile app launch timeline. Beta TestFlight goes out Monday, app store submission on Wednesday, and public launch next Friday."], ["lex", "Ahmed \"mobile app\" launch meeting"], ["lex", "Ahmed app launch timeline"], ["vec", "meeting with Ahmed about the mobile app launch plan"], ["vec", "Ahmed's timeline for the mobile app launch"]]}
{"query": "Sophia's research on competitor pricing", "intent": "analyzing market positioning", "output": [["hyde", "Sophia analyzed competitor pricing across five direct competitors. Our mid-tier plan is priced 20% higher than average but includes more features."], ["lex", "Sophia competitor pricing research"], ["lex", "Sophia \"competitor analysis\" pricing"], ["vec", "Sophia's research and analysis of competitor pricing"], ["vec", "competitive pricing analysis done by Sophia"]]}
{"query": "discussion with Carlos about the API rate limits", "intent": "adjusting service configuration", "output": [["hyde", "Carlos proposed increasing the default API rate limit from 100 to 500 requests per minute for paying customers, with burst handling."], ["lex", "Carlos \"API rate limit\" discussion"], ["lex", "Carlos rate limit increase proposal"], ["vec", "discussion with Carlos about API rate limit changes"], ["vec", "Carlos's proposal for adjusting API rate limits"]]}
{"query": "retro notes from Sprint 23", "intent": "reviewing sprint outcomes", "output": [["hyde", "Sprint 23 retrospective: what went well was the quick bug turnaround. What to improve was the unclear acceptance criteria on feature tickets."], ["lex", "\"Sprint 23\" retro notes"], ["lex", "\"Sprint 23\" retrospective feedback"], ["vec", "retrospective notes from Sprint 23"], ["vec", "Sprint 23 team retrospective outcomes and action items"]]}
{"query": "conversation with Diana about the accessibility audit", "intent": "addressing accessibility compliance", "output": [["hyde", "Diana shared the accessibility audit results. Twenty-three WCAG AA violations found, mostly missing alt text and insufficient color contrast."], ["lex", "Diana accessibility audit conversation"], ["lex", "Diana WCAG \"accessibility audit\""], ["vec", "conversation with Diana about the accessibility audit findings"], ["vec", "Diana's accessibility audit results and recommendations"]]}
{"query": "Omar's prototype for the recommendation engine", "intent": "evaluating a new feature prototype", "output": [["hyde", "Omar built a prototype recommendation engine using collaborative filtering. Initial results show a 15% improvement in click-through rate on test data."], ["lex", "Omar prototype \"recommendation engine\""], ["lex", "Omar recommendation algorithm prototype"], ["vec", "Omar's prototype for the product recommendation engine"], ["vec", "recommendation engine prototype built by Omar"]]}
{"query": "planning meeting for the Falcon release", "intent": "coordinating a release schedule", "output": [["hyde", "The Falcon release planning meeting set the feature freeze for March 15 and the GA date for April 1. Three blockers need resolution this week."], ["lex", "\"Falcon release\" planning meeting"], ["lex", "Falcon release timeline blockers"], ["vec", "planning meeting for the Falcon product release"], ["vec", "Falcon release planning and timeline discussion"]]}
{"query": "Aisha's presentation on the A/B test results", "intent": "reviewing experiment outcomes", "output": [["hyde", "Aisha presented the A/B test results for the new checkout flow. Variant B showed a 12% conversion lift with statistical significance."], ["lex", "Aisha \"A/B test\" results presentation"], ["lex", "Aisha experiment checkout conversion"], ["vec", "Aisha's presentation on the A/B test experiment results"], ["vec", "A/B test results and analysis presented by Aisha"]]}
{"query": "one on one with Ryan about team dynamics", "intent": "improving team collaboration", "output": [["hyde", "Ryan raised concerns about communication between the frontend and backend squads. We agreed to introduce a weekly sync between the two teams."], ["lex", "Ryan \"team dynamics\" 1-on-1"], ["lex", "Ryan team communication meeting"], ["vec", "one-on-one with Ryan about team dynamics and collaboration"], ["vec", "Ryan's concerns about team dynamics and communication"]]}
{"query": "notes from the board meeting with investors", "intent": "tracking strategic decisions", "output": [["hyde", "Board meeting covered Q3 financial results, Series B fundraising timeline, and the product roadmap for 2025. Investors asked about path to profitability."], ["lex", "board meeting investors notes"], ["lex", "\"board meeting\" investor quarterly"], ["vec", "notes from the board meeting with investors"], ["vec", "investor board meeting notes and key discussion points"]]}
{"query": "Mei-Lin's proposal for the intern program", "intent": "planning an internship structure", "output": [["hyde", "Mei-Lin proposed a structured 12-week intern program with mentorship pairing, weekly tech talks, and a capstone project presentation at the end."], ["lex", "Mei-Lin intern program proposal"], ["lex", "Mei-Lin \"intern program\" structure"], ["vec", "Mei-Lin's proposal for the engineering intern program"], ["vec", "intern program structure proposed by Mei-Lin"]]}
{"query": "conversation with Raj about migrating to Kubernetes", "intent": "planning infrastructure migration", "output": [["hyde", "Raj outlined a phased Kubernetes migration: start with stateless services, then move databases with persistent volumes, and finally sunset the old EC2 instances."], ["lex", "Raj Kubernetes migration conversation"], ["lex", "Raj \"Kubernetes\" migration plan"], ["vec", "conversation with Raj about migrating infrastructure to Kubernetes"], ["vec", "Raj's plan for the Kubernetes migration"]]}
{"query": "weekly sync with the Growth team", "intent": "tracking growth initiatives", "output": [["hyde", "Growth team weekly sync covered the new referral program performance, email campaign results, and the upcoming product-led growth experiment."], ["lex", "\"Growth team\" weekly sync"], ["lex", "Growth team meeting updates"], ["vec", "weekly sync meeting notes with the Growth team"], ["vec", "Growth team weekly meeting updates and priorities"]]}
{"query": "Ivan's analysis of user churn data", "intent": "understanding user retention", "output": [["hyde", "Ivan analyzed user churn patterns and found that users who don't complete onboarding within 24 hours have a 60% higher churn rate."], ["lex", "Ivan churn data analysis"], ["lex", "Ivan \"user churn\" retention analysis"], ["vec", "Ivan's analysis of user churn data and patterns"], ["vec", "user churn analysis and insights from Ivan"]]}
{"query": "chat with Nora about the new CI pipeline", "intent": "improving developer tooling", "output": [["hyde", "Nora set up the new GitHub Actions CI pipeline with parallel test suites, caching, and automatic preview deployments for pull requests."], ["lex", "Nora CI pipeline chat"], ["lex", "Nora \"CI pipeline\" \"GitHub Actions\""], ["vec", "chat with Nora about the new CI pipeline setup"], ["vec", "Nora's work on the new CI/CD pipeline"]]}
{"query": "handoff notes from Victor before his vacation", "intent": "managing work continuity", "output": [["hyde", "Victor's handoff notes cover three in-progress PRs, the pending security patch deployment, and the customer demo scheduled for Thursday."], ["lex", "Victor handoff notes vacation"], ["lex", "Victor handoff \"before vacation\""], ["vec", "handoff notes from Victor before his vacation"], ["vec", "Victor's transition notes and pending items before time off"]]}
{"query": "feedback from the usability testing with Acme Corp", "intent": "incorporating user feedback", "output": [["hyde", "Usability testing with Acme Corp users revealed confusion around the permissions model and a request for bulk import functionality."], ["lex", "\"Acme Corp\" usability testing feedback"], ["lex", "\"Acme Corp\" user testing results"], ["vec", "feedback from usability testing sessions with Acme Corp"], ["vec", "Acme Corp usability testing findings and user feedback"]]}
{"query": "meeting with the Design Systems team about tokens", "intent": "evolving the design system", "output": [["hyde", "The Design Systems team presented their new design token architecture with semantic naming, dark mode support, and automatic documentation generation."], ["lex", "\"Design Systems\" team tokens meeting"], ["lex", "\"design tokens\" meeting \"Design Systems\""], ["vec", "meeting with the Design Systems team about design tokens"], ["vec", "Design Systems team discussion about design token architecture"]]}
{"query": "pair programming session with Kai on the auth refactor", "intent": "collaborative code improvement", "output": [["hyde", "Kai and I pair programmed on the auth refactor, extracting the session management into a dedicated service and adding refresh token rotation."], ["lex", "Kai \"pair programming\" auth refactor"], ["lex", "Kai auth refactor session"], ["vec", "pair programming session with Kai on the authentication refactor"], ["vec", "Kai's collaboration on the auth service refactoring"]]}
{"query": "lunch conversation with Pat about Rust at Stripe", "intent": "discussing Rust adoption at a company", "output": [["hyde", "Pat mentioned Stripe is using Rust for some performance-critical services. They have seen significant latency improvements in their payment processing path."], ["lex", "Pat Rust Stripe conversation"], ["lex", "Pat \"Rust\" \"Stripe\" discussion"], ["vec", "conversation with Pat about Rust usage at Stripe"], ["vec", "Pat's insights about Rust adoption at Stripe"]]}
{"query": "Ada's writeup on the CDN migration", "intent": "documenting infrastructure changes", "output": [["hyde", "Ada documented the CDN migration from CloudFront to Fastly, including performance benchmarks, configuration differences, and the rollout plan."], ["lex", "Ada CDN migration writeup"], ["lex", "Ada \"CDN migration\" CloudFront Fastly"], ["vec", "Ada's writeup and documentation on the CDN migration"], ["vec", "CDN migration documentation authored by Ada"]]}
{"query": "workshop notes from the team offsite in Portland", "intent": "capturing offsite planning outcomes", "output": [["hyde", "The Portland offsite workshop focused on team OKRs for H2, architecture vision for 2026, and cross-team collaboration improvements."], ["lex", "Portland offsite workshop notes"], ["lex", "\"team offsite\" Portland workshop"], ["vec", "workshop notes from the team offsite in Portland"], ["vec", "Portland team offsite workshop outcomes and planning"]]}
{"query": "Tara's RFC on the event-driven architecture", "intent": "evaluating an architecture proposal", "output": [["hyde", "Tara's RFC proposes migrating from synchronous REST calls to an event-driven architecture using Kafka for inter-service communication."], ["lex", "Tara RFC \"event-driven architecture\""], ["lex", "Tara RFC Kafka \"event driven\""], ["vec", "Tara's RFC proposing event-driven architecture migration"], ["vec", "event-driven architecture RFC written by Tara"]]}
{"query": "call with Jordan from customer success about renewals", "intent": "managing enterprise renewals", "output": [["hyde", "Jordan from customer success flagged three enterprise accounts at risk of non-renewal. Main concerns are missing API features and support response times."], ["lex", "Jordan \"customer success\" renewals call"], ["lex", "Jordan renewal risk enterprise"], ["vec", "call with Jordan from customer success about renewal risks"], ["vec", "Jordan's update on enterprise customer renewals"]]}
{"query": "discussion with Zara about the testing strategy", "intent": "improving QA approach", "output": [["hyde", "Zara proposed a new testing pyramid: more unit tests, fewer E2E tests, and contract tests between services to catch integration issues earlier."], ["lex", "Zara \"testing strategy\" discussion"], ["lex", "Zara testing pyramid E2E unit"], ["vec", "discussion with Zara about the testing strategy overhaul"], ["vec", "Zara's proposed testing strategy and approach"]]}
{"query": "follow up with Sam on the billing discrepancy", "intent": "resolving a billing issue", "output": [["hyde", "Sam investigated the billing discrepancy for the enterprise plan. The issue was double-counting usage during the timezone boundary at midnight UTC."], ["lex", "Sam billing discrepancy follow-up"], ["lex", "Sam \"billing\" issue investigation"], ["vec", "follow-up with Sam about the billing discrepancy"], ["vec", "Sam's investigation into the billing discrepancy"]]}

View File

@@ -0,0 +1,200 @@
{"query": "ancient rome", "output": [["hyde", "This entry summarizes ancient rome, outlining key events, dates, and historical context."], ["lex", "ancient overview rome timeline"], ["lex", "ancient overview rome events"], ["lex", "ancient basics rome overview"], ["vec", "historical background and key developments of ancient rome"], ["vec", "major events and impacts related to ancient rome"]], "category": "history"}
{"query": "ancient greece", "output": [["hyde", "This entry summarizes ancient greece, outlining key events, dates, and historical context."], ["lex", "ancient overview greece timeline"], ["lex", "ancient overview greece events"], ["lex", "ancient basics greece overview"], ["vec", "historical background and key developments of ancient greece"], ["vec", "major events and impacts related to ancient greece"]], "category": "history"}
{"query": "ancient egypt", "output": [["hyde", "This entry summarizes ancient egypt, outlining key events, dates, and historical context."], ["lex", "ancient overview egypt timeline"], ["lex", "ancient overview egypt events"], ["lex", "ancient basics egypt overview"], ["vec", "historical background and key developments of ancient egypt"], ["vec", "major events and impacts related to ancient egypt"]], "category": "history"}
{"query": "roman empire", "output": [["hyde", "This entry summarizes roman empire, outlining key events, dates, and historical context."], ["lex", "roman overview empire timeline"], ["lex", "roman overview empire events"], ["lex", "roman basics empire overview"], ["vec", "historical background and key developments of roman empire"], ["vec", "major events and impacts related to roman empire"]], "category": "history"}
{"query": "greek mythology", "output": [["hyde", "This entry summarizes greek mythology, outlining key events, dates, and historical context."], ["lex", "greek overview mythology timeline"], ["lex", "greek overview mythology events"], ["lex", "greek basics mythology overview"], ["vec", "historical background and key developments of greek mythology"], ["vec", "major events and impacts related to greek mythology"]], "category": "history"}
{"query": "persian empire", "output": [["hyde", "This entry summarizes persian empire, outlining key events, dates, and historical context."], ["lex", "persian overview empire timeline"], ["lex", "persian overview empire events"], ["lex", "persian basics empire overview"], ["vec", "historical background and key developments of persian empire"], ["vec", "major events and impacts related to persian empire"]], "category": "history"}
{"query": "byzantine empire", "output": [["hyde", "This entry summarizes byzantine empire, outlining key events, dates, and historical context."], ["lex", "byzantine overview empire timeline"], ["lex", "byzantine overview empire events"], ["lex", "byzantine basics empire overview"], ["vec", "historical background and key developments of byzantine empire"], ["vec", "major events and impacts related to byzantine empire"]], "category": "history"}
{"query": "ottoman empire", "output": [["hyde", "This entry summarizes ottoman empire, outlining key events, dates, and historical context."], ["lex", "ottoman overview empire timeline"], ["lex", "ottoman overview empire events"], ["lex", "ottoman basics empire overview"], ["vec", "historical background and key developments of ottoman empire"], ["vec", "major events and impacts related to ottoman empire"]], "category": "history"}
{"query": "mongol empire", "output": [["hyde", "This entry summarizes mongol empire, outlining key events, dates, and historical context."], ["lex", "mongol overview empire timeline"], ["lex", "mongol overview empire events"], ["lex", "mongol basics empire overview"], ["vec", "historical background and key developments of mongol empire"], ["vec", "major events and impacts related to mongol empire"]], "category": "history"}
{"query": "silk road", "output": [["hyde", "This entry summarizes silk road, outlining key events, dates, and historical context."], ["lex", "silk overview road timeline"], ["lex", "silk overview road events"], ["lex", "silk basics road overview"], ["vec", "historical background and key developments of silk road"], ["vec", "major events and impacts related to silk road"]], "category": "history"}
{"query": "renaissance", "output": [["hyde", "This entry summarizes renaissance, outlining key events, dates, and historical context."], ["lex", "renaissance timeline overview"], ["lex", "renaissance events overview"], ["lex", "renaissance overview basics"], ["vec", "historical background and key developments of renaissance"], ["vec", "major events and impacts related to renaissance"]], "category": "history"}
{"query": "reformation", "output": [["hyde", "This entry summarizes reformation, outlining key events, dates, and historical context."], ["lex", "reformation timeline overview"], ["lex", "reformation events overview"], ["lex", "reformation overview basics"], ["vec", "historical background and key developments of reformation"], ["vec", "major events and impacts related to reformation"]], "category": "history"}
{"query": "industrial revolution", "output": [["hyde", "This entry summarizes industrial revolution, outlining key events, dates, and historical context."], ["lex", "industrial overview revolution timeline"], ["lex", "industrial overview revolution events"], ["lex", "industrial basics revolution overview"], ["vec", "historical background and key developments of industrial revolution"], ["vec", "major events and impacts related to industrial revolution"]], "category": "history"}
{"query": "french revolution", "output": [["hyde", "This entry summarizes french revolution, outlining key events, dates, and historical context."], ["lex", "french overview revolution timeline"], ["lex", "french overview revolution events"], ["lex", "french basics revolution overview"], ["vec", "historical background and key developments of french revolution"], ["vec", "major events and impacts related to french revolution"]], "category": "history"}
{"query": "american revolution", "output": [["hyde", "This entry summarizes american revolution, outlining key events, dates, and historical context."], ["lex", "american overview revolution timeline"], ["lex", "american overview revolution events"], ["lex", "american basics revolution overview"], ["vec", "historical background and key developments of american revolution"], ["vec", "major events and impacts related to american revolution"]], "category": "history"}
{"query": "civil war", "output": [["hyde", "This entry summarizes civil war, outlining key events, dates, and historical context."], ["lex", "civil overview war timeline"], ["lex", "civil overview war events"], ["lex", "civil basics war overview"], ["vec", "historical background and key developments of civil war"], ["vec", "major events and impacts related to civil war"]], "category": "history"}
{"query": "world war", "output": [["hyde", "This entry summarizes world war, outlining key events, dates, and historical context."], ["lex", "world overview war timeline"], ["lex", "world overview war events"], ["lex", "world basics war overview"], ["vec", "historical background and key developments of world war"], ["vec", "major events and impacts related to world war"]], "category": "history"}
{"query": "world war two", "output": [["hyde", "This entry summarizes world war two, outlining key events, dates, and historical context."], ["lex", "world overview war two timeline"], ["lex", "world overview war two events"], ["lex", "world basics war two overview"], ["vec", "historical background and key developments of world war two"], ["vec", "major events and impacts related to world war two"]], "category": "history"}
{"query": "cold war", "output": [["hyde", "This entry summarizes cold war, outlining key events, dates, and historical context."], ["lex", "cold overview war timeline"], ["lex", "cold overview war events"], ["lex", "cold basics war overview"], ["vec", "historical background and key developments of cold war"], ["vec", "major events and impacts related to cold war"]], "category": "history"}
{"query": "great depression", "output": [["hyde", "This entry summarizes great depression, outlining key events, dates, and historical context."], ["lex", "great overview depression timeline"], ["lex", "great overview depression events"], ["lex", "great basics depression overview"], ["vec", "historical background and key developments of great depression"], ["vec", "major events and impacts related to great depression"]], "category": "history"}
{"query": "black death", "output": [["hyde", "This entry summarizes black death, outlining key events, dates, and historical context."], ["lex", "black overview death timeline"], ["lex", "black overview death events"], ["lex", "black basics death overview"], ["vec", "historical background and key developments of black death"], ["vec", "major events and impacts related to black death"]], "category": "history"}
{"query": "age of exploration", "output": [["hyde", "This entry summarizes age of exploration, outlining key events, dates, and historical context."], ["lex", "age overview of exploration timeline"], ["lex", "age overview of exploration events"], ["lex", "age basics of exploration overview"], ["vec", "historical background and key developments of age of exploration"], ["vec", "major events and impacts related to age of exploration"]], "category": "history"}
{"query": "colonialism", "output": [["hyde", "This entry summarizes colonialism, outlining key events, dates, and historical context."], ["lex", "colonialism timeline overview"], ["lex", "colonialism events overview"], ["lex", "colonialism overview basics"], ["vec", "historical background and key developments of colonialism"], ["vec", "major events and impacts related to colonialism"]], "category": "history"}
{"query": "imperialism", "output": [["hyde", "This entry summarizes imperialism, outlining key events, dates, and historical context."], ["lex", "imperialism timeline overview"], ["lex", "imperialism events overview"], ["lex", "imperialism overview basics"], ["vec", "historical background and key developments of imperialism"], ["vec", "major events and impacts related to imperialism"]], "category": "history"}
{"query": "viking age", "output": [["hyde", "This entry summarizes viking age, outlining key events, dates, and historical context."], ["lex", "viking overview age timeline"], ["lex", "viking overview age events"], ["lex", "viking basics age overview"], ["vec", "historical background and key developments of viking age"], ["vec", "major events and impacts related to viking age"]], "category": "history"}
{"query": "medieval europe", "output": [["hyde", "This entry summarizes medieval europe, outlining key events, dates, and historical context."], ["lex", "medieval overview europe timeline"], ["lex", "medieval overview europe events"], ["lex", "medieval basics europe overview"], ["vec", "historical background and key developments of medieval europe"], ["vec", "major events and impacts related to medieval europe"]], "category": "history"}
{"query": "feudalism", "output": [["hyde", "This entry summarizes feudalism, outlining key events, dates, and historical context."], ["lex", "feudalism timeline overview"], ["lex", "feudalism events overview"], ["lex", "feudalism overview basics"], ["vec", "historical background and key developments of feudalism"], ["vec", "major events and impacts related to feudalism"]], "category": "history"}
{"query": "crusades", "output": [["hyde", "This entry summarizes crusades, outlining key events, dates, and historical context."], ["lex", "crusades timeline overview"], ["lex", "crusades events overview"], ["lex", "crusades overview basics"], ["vec", "historical background and key developments of crusades"], ["vec", "major events and impacts related to crusades"]], "category": "history"}
{"query": "ancient china", "output": [["hyde", "This entry summarizes ancient china, outlining key events, dates, and historical context."], ["lex", "ancient overview china timeline"], ["lex", "ancient overview china events"], ["lex", "ancient basics china overview"], ["vec", "historical background and key developments of ancient china"], ["vec", "major events and impacts related to ancient china"]], "category": "history"}
{"query": "han dynasty", "output": [["hyde", "This entry summarizes han dynasty, outlining key events, dates, and historical context."], ["lex", "han overview dynasty timeline"], ["lex", "han overview dynasty events"], ["lex", "han basics dynasty overview"], ["vec", "historical background and key developments of han dynasty"], ["vec", "major events and impacts related to han dynasty"]], "category": "history"}
{"query": "tang dynasty", "output": [["hyde", "This entry summarizes tang dynasty, outlining key events, dates, and historical context."], ["lex", "tang overview dynasty timeline"], ["lex", "tang overview dynasty events"], ["lex", "tang basics dynasty overview"], ["vec", "historical background and key developments of tang dynasty"], ["vec", "major events and impacts related to tang dynasty"]], "category": "history"}
{"query": "ming dynasty", "output": [["hyde", "This entry summarizes ming dynasty, outlining key events, dates, and historical context."], ["lex", "ming overview dynasty timeline"], ["lex", "ming overview dynasty events"], ["lex", "ming basics dynasty overview"], ["vec", "historical background and key developments of ming dynasty"], ["vec", "major events and impacts related to ming dynasty"]], "category": "history"}
{"query": "samurai", "output": [["hyde", "This entry summarizes samurai, outlining key events, dates, and historical context."], ["lex", "samurai timeline overview"], ["lex", "samurai events overview"], ["lex", "samurai overview basics"], ["vec", "historical background and key developments of samurai"], ["vec", "major events and impacts related to samurai"]], "category": "history"}
{"query": "meiji era", "output": [["hyde", "This entry summarizes meiji era, outlining key events, dates, and historical context."], ["lex", "meiji overview era timeline"], ["lex", "meiji overview era events"], ["lex", "meiji basics era overview"], ["vec", "historical background and key developments of meiji era"], ["vec", "major events and impacts related to meiji era"]], "category": "history"}
{"query": "aztec empire", "output": [["hyde", "This entry summarizes aztec empire, outlining key events, dates, and historical context."], ["lex", "aztec overview empire timeline"], ["lex", "aztec overview empire events"], ["lex", "aztec basics empire overview"], ["vec", "historical background and key developments of aztec empire"], ["vec", "major events and impacts related to aztec empire"]], "category": "history"}
{"query": "inca empire", "output": [["hyde", "This entry summarizes inca empire, outlining key events, dates, and historical context."], ["lex", "inca overview empire timeline"], ["lex", "inca overview empire events"], ["lex", "inca basics empire overview"], ["vec", "historical background and key developments of inca empire"], ["vec", "major events and impacts related to inca empire"]], "category": "history"}
{"query": "maya civilization", "output": [["hyde", "This entry summarizes maya civilization, outlining key events, dates, and historical context."], ["lex", "maya overview civilization timeline"], ["lex", "maya overview civilization events"], ["lex", "maya basics civilization overview"], ["vec", "historical background and key developments of maya civilization"], ["vec", "major events and impacts related to maya civilization"]], "category": "history"}
{"query": "ancient india", "output": [["hyde", "This entry summarizes ancient india, outlining key events, dates, and historical context."], ["lex", "ancient overview india timeline"], ["lex", "ancient overview india events"], ["lex", "ancient basics india overview"], ["vec", "historical background and key developments of ancient india"], ["vec", "major events and impacts related to ancient india"]], "category": "history"}
{"query": "gupta empire", "output": [["hyde", "This entry summarizes gupta empire, outlining key events, dates, and historical context."], ["lex", "gupta overview empire timeline"], ["lex", "gupta overview empire events"], ["lex", "gupta basics empire overview"], ["vec", "historical background and key developments of gupta empire"], ["vec", "major events and impacts related to gupta empire"]], "category": "history"}
{"query": "mauryan empire", "output": [["hyde", "This entry summarizes mauryan empire, outlining key events, dates, and historical context."], ["lex", "mauryan overview empire timeline"], ["lex", "mauryan overview empire events"], ["lex", "mauryan basics empire overview"], ["vec", "historical background and key developments of mauryan empire"], ["vec", "major events and impacts related to mauryan empire"]], "category": "history"}
{"query": "mali empire", "output": [["hyde", "This entry summarizes mali empire, outlining key events, dates, and historical context."], ["lex", "mali overview empire timeline"], ["lex", "mali overview empire events"], ["lex", "mali basics empire overview"], ["vec", "historical background and key developments of mali empire"], ["vec", "major events and impacts related to mali empire"]], "category": "history"}
{"query": "songhai empire", "output": [["hyde", "This entry summarizes songhai empire, outlining key events, dates, and historical context."], ["lex", "songhai overview empire timeline"], ["lex", "songhai overview empire events"], ["lex", "songhai basics empire overview"], ["vec", "historical background and key developments of songhai empire"], ["vec", "major events and impacts related to songhai empire"]], "category": "history"}
{"query": "transatlantic slavery", "output": [["hyde", "This entry summarizes transatlantic slavery, outlining key events, dates, and historical context."], ["lex", "transatlantic overview slavery timeline"], ["lex", "transatlantic overview slavery events"], ["lex", "transatlantic basics slavery overview"], ["vec", "historical background and key developments of transatlantic slavery"], ["vec", "major events and impacts related to transatlantic slavery"]], "category": "history"}
{"query": "civil rights", "output": [["hyde", "This entry summarizes civil rights, outlining key events, dates, and historical context."], ["lex", "civil overview rights timeline"], ["lex", "civil overview rights events"], ["lex", "civil basics rights overview"], ["vec", "historical background and key developments of civil rights"], ["vec", "major events and impacts related to civil rights"]], "category": "history"}
{"query": "women suffrage", "output": [["hyde", "This entry summarizes women suffrage, outlining key events, dates, and historical context."], ["lex", "women overview suffrage timeline"], ["lex", "women overview suffrage events"], ["lex", "women basics suffrage overview"], ["vec", "historical background and key developments of women suffrage"], ["vec", "major events and impacts related to women suffrage"]], "category": "history"}
{"query": "space race", "output": [["hyde", "This entry summarizes space race, outlining key events, dates, and historical context."], ["lex", "space overview race timeline"], ["lex", "space overview race events"], ["lex", "space basics race overview"], ["vec", "historical background and key developments of space race"], ["vec", "major events and impacts related to space race"]], "category": "history"}
{"query": "berlin wall", "output": [["hyde", "This entry summarizes berlin wall, outlining key events, dates, and historical context."], ["lex", "berlin overview wall timeline"], ["lex", "berlin overview wall events"], ["lex", "berlin basics wall overview"], ["vec", "historical background and key developments of berlin wall"], ["vec", "major events and impacts related to berlin wall"]], "category": "history"}
{"query": "spanish civil war", "output": [["hyde", "This entry summarizes spanish civil war, outlining key events, dates, and historical context."], ["lex", "spanish overview civil war timeline"], ["lex", "spanish overview civil war events"], ["lex", "spanish basics civil war overview"], ["vec", "historical background and key developments of spanish civil war"], ["vec", "major events and impacts related to spanish civil war"]], "category": "history"}
{"query": "wwi", "output": [["hyde", "This entry summarizes wwi, outlining key events, dates, and historical context."], ["lex", "wwi timeline overview"], ["lex", "wwi events overview"], ["lex", "wwi overview basics"], ["vec", "historical background and key developments of wwi"], ["vec", "major events and impacts related to wwi"]], "category": "history"}
{"query": "wwii", "output": [["hyde", "This entry summarizes wwii, outlining key events, dates, and historical context."], ["lex", "wwii timeline overview"], ["lex", "wwii events overview"], ["lex", "wwii overview basics"], ["vec", "historical background and key developments of wwii"], ["vec", "major events and impacts related to wwii"]], "category": "history"}
{"query": "stoicism", "output": [["hyde", "This overview introduces stoicism, explaining core ideas and major arguments."], ["lex", "stoicism ideas overview"], ["lex", "stoicism principles"], ["lex", "stoicism overview basics"], ["vec", "core concepts and debates within stoicism"], ["vec", "an introduction to stoicism and its main arguments"]], "category": "philosophy"}
{"query": "existentialism", "output": [["hyde", "This overview introduces existentialism, explaining core ideas and major arguments."], ["lex", "existentialism ideas overview"], ["lex", "existentialism principles"], ["lex", "existentialism overview basics"], ["vec", "core concepts and debates within existentialism"], ["vec", "an introduction to existentialism and its main arguments"]], "category": "philosophy"}
{"query": "nihilism", "output": [["hyde", "This overview introduces nihilism, explaining core ideas and major arguments."], ["lex", "nihilism ideas overview"], ["lex", "nihilism principles"], ["lex", "nihilism overview basics"], ["vec", "core concepts and debates within nihilism"], ["vec", "an introduction to nihilism and its main arguments"]], "category": "philosophy"}
{"query": "platonism", "output": [["hyde", "This overview introduces platonism, explaining core ideas and major arguments."], ["lex", "platonism ideas overview"], ["lex", "platonism principles"], ["lex", "platonism overview basics"], ["vec", "core concepts and debates within platonism"], ["vec", "an introduction to platonism and its main arguments"]], "category": "philosophy"}
{"query": "aristotelianism", "output": [["hyde", "This overview introduces aristotelianism, explaining core ideas and major arguments."], ["lex", "aristotelianism ideas overview"], ["lex", "aristotelianism principles"], ["lex", "aristotelianism overview basics"], ["vec", "core concepts and debates within aristotelianism"], ["vec", "an introduction to aristotelianism and its main arguments"]], "category": "philosophy"}
{"query": "epistemology", "output": [["hyde", "This overview introduces epistemology, explaining core ideas and major arguments."], ["lex", "epistemology ideas overview"], ["lex", "epistemology principles"], ["lex", "epistemology overview basics"], ["vec", "core concepts and debates within epistemology"], ["vec", "an introduction to epistemology and its main arguments"]], "category": "philosophy"}
{"query": "metaphysics", "output": [["hyde", "This overview introduces metaphysics, explaining core ideas and major arguments."], ["lex", "metaphysics ideas overview"], ["lex", "metaphysics principles"], ["lex", "metaphysics overview basics"], ["vec", "core concepts and debates within metaphysics"], ["vec", "an introduction to metaphysics and its main arguments"]], "category": "philosophy"}
{"query": "ethics", "output": [["hyde", "This overview introduces ethics, explaining core ideas and major arguments."], ["lex", "ethics ideas overview"], ["lex", "ethics principles"], ["lex", "ethics overview basics"], ["vec", "core concepts and debates within ethics"], ["vec", "an introduction to ethics and its main arguments"]], "category": "philosophy"}
{"query": "aesthetics", "output": [["hyde", "This overview introduces aesthetics, explaining core ideas and major arguments."], ["lex", "aesthetics ideas overview"], ["lex", "aesthetics principles"], ["lex", "aesthetics overview basics"], ["vec", "core concepts and debates within aesthetics"], ["vec", "an introduction to aesthetics and its main arguments"]], "category": "philosophy"}
{"query": "logic", "output": [["hyde", "This overview introduces logic, explaining core ideas and major arguments."], ["lex", "logic ideas overview"], ["lex", "logic principles"], ["lex", "logic overview basics"], ["vec", "core concepts and debates within logic"], ["vec", "an introduction to logic and its main arguments"]], "category": "philosophy"}
{"query": "phenomenology", "output": [["hyde", "This overview introduces phenomenology, explaining core ideas and major arguments."], ["lex", "phenomenology ideas overview"], ["lex", "phenomenology principles"], ["lex", "phenomenology overview basics"], ["vec", "core concepts and debates within phenomenology"], ["vec", "an introduction to phenomenology and its main arguments"]], "category": "philosophy"}
{"query": "utilitarianism", "output": [["hyde", "This overview introduces utilitarianism, explaining core ideas and major arguments."], ["lex", "utilitarianism ideas overview"], ["lex", "utilitarianism principles"], ["lex", "utilitarianism overview basics"], ["vec", "core concepts and debates within utilitarianism"], ["vec", "an introduction to utilitarianism and its main arguments"]], "category": "philosophy"}
{"query": "deontology", "output": [["hyde", "This overview introduces deontology, explaining core ideas and major arguments."], ["lex", "deontology ideas overview"], ["lex", "deontology principles"], ["lex", "deontology overview basics"], ["vec", "core concepts and debates within deontology"], ["vec", "an introduction to deontology and its main arguments"]], "category": "philosophy"}
{"query": "virtue ethics", "output": [["hyde", "This overview introduces virtue ethics, explaining core ideas and major arguments."], ["lex", "virtue overview ethics ideas"], ["lex", "virtue ethics principles"], ["lex", "virtue basics ethics overview"], ["vec", "core concepts and debates within virtue ethics"], ["vec", "an introduction to virtue ethics and its main arguments"]], "category": "philosophy"}
{"query": "free will", "output": [["hyde", "This overview introduces free will, explaining core ideas and major arguments."], ["lex", "free overview will ideas"], ["lex", "free will principles"], ["lex", "free basics will overview"], ["vec", "core concepts and debates within free will"], ["vec", "an introduction to free will and its main arguments"]], "category": "philosophy"}
{"query": "determinism", "output": [["hyde", "This overview introduces determinism, explaining core ideas and major arguments."], ["lex", "determinism ideas overview"], ["lex", "determinism principles"], ["lex", "determinism overview basics"], ["vec", "core concepts and debates within determinism"], ["vec", "an introduction to determinism and its main arguments"]], "category": "philosophy"}
{"query": "mind body", "output": [["hyde", "This overview introduces mind body, explaining core ideas and major arguments."], ["lex", "mind overview body ideas"], ["lex", "mind body principles"], ["lex", "mind basics body overview"], ["vec", "core concepts and debates within mind body"], ["vec", "an introduction to mind body and its main arguments"]], "category": "philosophy"}
{"query": "consciousness", "output": [["hyde", "This overview introduces consciousness, explaining core ideas and major arguments."], ["lex", "consciousness ideas overview"], ["lex", "consciousness principles"], ["lex", "consciousness overview basics"], ["vec", "core concepts and debates within consciousness"], ["vec", "an introduction to consciousness and its main arguments"]], "category": "philosophy"}
{"query": "personal identity", "output": [["hyde", "This overview introduces personal identity, explaining core ideas and major arguments."], ["lex", "personal overview identity ideas"], ["lex", "personal identity principles"], ["lex", "personal basics identity overview"], ["vec", "core concepts and debates within personal identity"], ["vec", "an introduction to personal identity and its main arguments"]], "category": "philosophy"}
{"query": "social contract", "output": [["hyde", "This overview introduces social contract, explaining core ideas and major arguments."], ["lex", "social overview contract ideas"], ["lex", "social contract principles"], ["lex", "social basics contract overview"], ["vec", "core concepts and debates within social contract"], ["vec", "an introduction to social contract and its main arguments"]], "category": "philosophy"}
{"query": "political theory", "output": [["hyde", "This overview introduces political theory, explaining core ideas and major arguments."], ["lex", "political overview theory ideas"], ["lex", "political theory principles"], ["lex", "political basics theory overview"], ["vec", "core concepts and debates within political theory"], ["vec", "an introduction to political theory and its main arguments"]], "category": "philosophy"}
{"query": "moral relativism", "output": [["hyde", "This overview introduces moral relativism, explaining core ideas and major arguments."], ["lex", "moral overview relativism ideas"], ["lex", "moral relativism principles"], ["lex", "moral basics relativism overview"], ["vec", "core concepts and debates within moral relativism"], ["vec", "an introduction to moral relativism and its main arguments"]], "category": "philosophy"}
{"query": "pragmatism", "output": [["hyde", "This overview introduces pragmatism, explaining core ideas and major arguments."], ["lex", "pragmatism ideas overview"], ["lex", "pragmatism principles"], ["lex", "pragmatism overview basics"], ["vec", "core concepts and debates within pragmatism"], ["vec", "an introduction to pragmatism and its main arguments"]], "category": "philosophy"}
{"query": "rationalism", "output": [["hyde", "This overview introduces rationalism, explaining core ideas and major arguments."], ["lex", "rationalism ideas overview"], ["lex", "rationalism principles"], ["lex", "rationalism overview basics"], ["vec", "core concepts and debates within rationalism"], ["vec", "an introduction to rationalism and its main arguments"]], "category": "philosophy"}
{"query": "empiricism", "output": [["hyde", "This overview introduces empiricism, explaining core ideas and major arguments."], ["lex", "empiricism ideas overview"], ["lex", "empiricism principles"], ["lex", "empiricism overview basics"], ["vec", "core concepts and debates within empiricism"], ["vec", "an introduction to empiricism and its main arguments"]], "category": "philosophy"}
{"query": "skepticism", "output": [["hyde", "This overview introduces skepticism, explaining core ideas and major arguments."], ["lex", "skepticism ideas overview"], ["lex", "skepticism principles"], ["lex", "skepticism overview basics"], ["vec", "core concepts and debates within skepticism"], ["vec", "an introduction to skepticism and its main arguments"]], "category": "philosophy"}
{"query": "absurdism", "output": [["hyde", "This overview introduces absurdism, explaining core ideas and major arguments."], ["lex", "absurdism ideas overview"], ["lex", "absurdism principles"], ["lex", "absurdism overview basics"], ["vec", "core concepts and debates within absurdism"], ["vec", "an introduction to absurdism and its main arguments"]], "category": "philosophy"}
{"query": "daoism", "output": [["hyde", "This overview introduces daoism, explaining core ideas and major arguments."], ["lex", "daoism ideas overview"], ["lex", "daoism principles"], ["lex", "daoism overview basics"], ["vec", "core concepts and debates within daoism"], ["vec", "an introduction to daoism and its main arguments"]], "category": "philosophy"}
{"query": "confucianism", "output": [["hyde", "This overview introduces confucianism, explaining core ideas and major arguments."], ["lex", "confucianism ideas overview"], ["lex", "confucianism principles"], ["lex", "confucianism overview basics"], ["vec", "core concepts and debates within confucianism"], ["vec", "an introduction to confucianism and its main arguments"]], "category": "philosophy"}
{"query": "buddhist philosophy", "output": [["hyde", "This overview introduces buddhist philosophy, explaining core ideas and major arguments."], ["lex", "buddhist overview philosophy ideas"], ["lex", "buddhist philosophy principles"], ["lex", "buddhist basics philosophy overview"], ["vec", "core concepts and debates within buddhist philosophy"], ["vec", "an introduction to buddhist philosophy and its main arguments"]], "category": "philosophy"}
{"query": "hindu philosophy", "output": [["hyde", "This overview introduces hindu philosophy, explaining core ideas and major arguments."], ["lex", "hindu overview philosophy ideas"], ["lex", "hindu philosophy principles"], ["lex", "hindu basics philosophy overview"], ["vec", "core concepts and debates within hindu philosophy"], ["vec", "an introduction to hindu philosophy and its main arguments"]], "category": "philosophy"}
{"query": "islamic philosophy", "output": [["hyde", "This overview introduces islamic philosophy, explaining core ideas and major arguments."], ["lex", "islamic overview philosophy ideas"], ["lex", "islamic philosophy principles"], ["lex", "islamic basics philosophy overview"], ["vec", "core concepts and debates within islamic philosophy"], ["vec", "an introduction to islamic philosophy and its main arguments"]], "category": "philosophy"}
{"query": "meaning of life", "output": [["hyde", "This overview introduces meaning of life, explaining core ideas and major arguments."], ["lex", "meaning overview of life ideas"], ["lex", "meaning of life principles"], ["lex", "meaning basics of life overview"], ["vec", "core concepts and debates within meaning of life"], ["vec", "an introduction to meaning of life and its main arguments"]], "category": "philosophy"}
{"query": "justice theory", "output": [["hyde", "This overview introduces justice theory, explaining core ideas and major arguments."], ["lex", "justice overview theory ideas"], ["lex", "justice theory principles"], ["lex", "justice basics theory overview"], ["vec", "core concepts and debates within justice theory"], ["vec", "an introduction to justice theory and its main arguments"]], "category": "philosophy"}
{"query": "rights theory", "output": [["hyde", "This overview introduces rights theory, explaining core ideas and major arguments."], ["lex", "rights overview theory ideas"], ["lex", "rights theory principles"], ["lex", "rights basics theory overview"], ["vec", "core concepts and debates within rights theory"], ["vec", "an introduction to rights theory and its main arguments"]], "category": "philosophy"}
{"query": "natural law", "output": [["hyde", "This overview introduces natural law, explaining core ideas and major arguments."], ["lex", "natural overview law ideas"], ["lex", "natural law principles"], ["lex", "natural basics law overview"], ["vec", "core concepts and debates within natural law"], ["vec", "an introduction to natural law and its main arguments"]], "category": "philosophy"}
{"query": "language philosophy", "output": [["hyde", "This overview introduces language philosophy, explaining core ideas and major arguments."], ["lex", "language overview philosophy ideas"], ["lex", "language philosophy principles"], ["lex", "language basics philosophy overview"], ["vec", "core concepts and debates within language philosophy"], ["vec", "an introduction to language philosophy and its main arguments"]], "category": "philosophy"}
{"query": "philosophy science", "output": [["hyde", "This overview introduces philosophy science, explaining core ideas and major arguments."], ["lex", "philosophy overview science ideas"], ["lex", "philosophy science principles"], ["lex", "philosophy basics science overview"], ["vec", "core concepts and debates within philosophy science"], ["vec", "an introduction to philosophy science and its main arguments"]], "category": "philosophy"}
{"query": "critical theory", "output": [["hyde", "This overview introduces critical theory, explaining core ideas and major arguments."], ["lex", "critical overview theory ideas"], ["lex", "critical theory principles"], ["lex", "critical basics theory overview"], ["vec", "core concepts and debates within critical theory"], ["vec", "an introduction to critical theory and its main arguments"]], "category": "philosophy"}
{"query": "feminist philosophy", "output": [["hyde", "This overview introduces feminist philosophy, explaining core ideas and major arguments."], ["lex", "feminist overview philosophy ideas"], ["lex", "feminist philosophy principles"], ["lex", "feminist basics philosophy overview"], ["vec", "core concepts and debates within feminist philosophy"], ["vec", "an introduction to feminist philosophy and its main arguments"]], "category": "philosophy"}
{"query": "virtue theory", "output": [["hyde", "This overview introduces virtue theory, explaining core ideas and major arguments."], ["lex", "virtue overview theory ideas"], ["lex", "virtue theory principles"], ["lex", "virtue basics theory overview"], ["vec", "core concepts and debates within virtue theory"], ["vec", "an introduction to virtue theory and its main arguments"]], "category": "philosophy"}
{"query": "stoic practices", "output": [["hyde", "This overview introduces stoic practices, explaining core ideas and major arguments."], ["lex", "stoic overview practices ideas"], ["lex", "stoic practices principles"], ["lex", "stoic basics practices overview"], ["vec", "core concepts and debates within stoic practices"], ["vec", "an introduction to stoic practices and its main arguments"]], "category": "philosophy"}
{"query": "moral psychology", "output": [["hyde", "This overview introduces moral psychology, explaining core ideas and major arguments."], ["lex", "moral overview psychology ideas"], ["lex", "moral psychology principles"], ["lex", "moral basics psychology overview"], ["vec", "core concepts and debates within moral psychology"], ["vec", "an introduction to moral psychology and its main arguments"]], "category": "philosophy"}
{"query": "existential therapy", "output": [["hyde", "This overview introduces existential therapy, explaining core ideas and major arguments."], ["lex", "existential overview therapy ideas"], ["lex", "existential therapy principles"], ["lex", "existential basics therapy overview"], ["vec", "core concepts and debates within existential therapy"], ["vec", "an introduction to existential therapy and its main arguments"]], "category": "philosophy"}
{"query": "phenomenology basics", "output": [["hyde", "This overview introduces phenomenology basics, explaining core ideas and major arguments."], ["lex", "phenomenology overview basics ideas"], ["lex", "phenomenology basics principles"], ["lex", "phenomenology reference basics overview"], ["vec", "core concepts and debates within phenomenology basics"], ["vec", "an introduction to phenomenology basics and its main arguments"]], "category": "philosophy"}
{"query": "theodicy", "output": [["hyde", "This overview introduces theodicy, explaining core ideas and major arguments."], ["lex", "theodicy ideas overview"], ["lex", "theodicy principles"], ["lex", "theodicy overview basics"], ["vec", "core concepts and debates within theodicy"], ["vec", "an introduction to theodicy and its main arguments"]], "category": "philosophy"}
{"query": "ethical dilemmas", "output": [["hyde", "This overview introduces ethical dilemmas, explaining core ideas and major arguments."], ["lex", "ethical overview dilemmas ideas"], ["lex", "ethical dilemmas principles"], ["lex", "ethical basics dilemmas overview"], ["vec", "core concepts and debates within ethical dilemmas"], ["vec", "an introduction to ethical dilemmas and its main arguments"]], "category": "philosophy"}
{"query": "moral realism", "output": [["hyde", "This overview introduces moral realism, explaining core ideas and major arguments."], ["lex", "moral overview realism ideas"], ["lex", "moral realism principles"], ["lex", "moral basics realism overview"], ["vec", "core concepts and debates within moral realism"], ["vec", "an introduction to moral realism and its main arguments"]], "category": "philosophy"}
{"query": "virtue", "output": [["hyde", "This overview introduces virtue, explaining core ideas and major arguments."], ["lex", "virtue ideas overview"], ["lex", "virtue principles"], ["lex", "virtue overview basics"], ["vec", "core concepts and debates within virtue"], ["vec", "an introduction to virtue and its main arguments"]], "category": "philosophy"}
{"query": "reason", "output": [["hyde", "This overview introduces reason, explaining core ideas and major arguments."], ["lex", "reason ideas overview"], ["lex", "reason principles"], ["lex", "reason overview basics"], ["vec", "core concepts and debates within reason"], ["vec", "an introduction to reason and its main arguments"]], "category": "philosophy"}
{"query": "anatomy", "output": [["hyde", "This overview of anatomy covers causes, symptoms, and common treatments."], ["lex", "anatomy symptoms overview"], ["lex", "anatomy diagnosis"], ["lex", "anatomy treatment"], ["vec", "understanding anatomy, including causes and treatments"], ["vec", "clinical overview of anatomy for general readers"]], "category": "medicine"}
{"query": "physiology", "output": [["hyde", "This overview of physiology covers causes, symptoms, and common treatments."], ["lex", "physiology symptoms overview"], ["lex", "physiology diagnosis"], ["lex", "physiology treatment"], ["vec", "understanding physiology, including causes and treatments"], ["vec", "clinical overview of physiology for general readers"]], "category": "medicine"}
{"query": "cardiology", "output": [["hyde", "This overview of cardiology covers causes, symptoms, and common treatments."], ["lex", "cardiology symptoms overview"], ["lex", "cardiology diagnosis"], ["lex", "cardiology treatment"], ["vec", "understanding cardiology, including causes and treatments"], ["vec", "clinical overview of cardiology for general readers"]], "category": "medicine"}
{"query": "neurology", "output": [["hyde", "This overview of neurology covers causes, symptoms, and common treatments."], ["lex", "neurology symptoms overview"], ["lex", "neurology diagnosis"], ["lex", "neurology treatment"], ["vec", "understanding neurology, including causes and treatments"], ["vec", "clinical overview of neurology for general readers"]], "category": "medicine"}
{"query": "oncology", "output": [["hyde", "This overview of oncology covers causes, symptoms, and common treatments."], ["lex", "oncology symptoms overview"], ["lex", "oncology diagnosis"], ["lex", "oncology treatment"], ["vec", "understanding oncology, including causes and treatments"], ["vec", "clinical overview of oncology for general readers"]], "category": "medicine"}
{"query": "immunology", "output": [["hyde", "This overview of immunology covers causes, symptoms, and common treatments."], ["lex", "immunology symptoms overview"], ["lex", "immunology diagnosis"], ["lex", "immunology treatment"], ["vec", "understanding immunology, including causes and treatments"], ["vec", "clinical overview of immunology for general readers"]], "category": "medicine"}
{"query": "endocrinology", "output": [["hyde", "This overview of endocrinology covers causes, symptoms, and common treatments."], ["lex", "endocrinology symptoms overview"], ["lex", "endocrinology diagnosis"], ["lex", "endocrinology treatment"], ["vec", "understanding endocrinology, including causes and treatments"], ["vec", "clinical overview of endocrinology for general readers"]], "category": "medicine"}
{"query": "epidemiology", "output": [["hyde", "This overview of epidemiology covers causes, symptoms, and common treatments."], ["lex", "epidemiology symptoms overview"], ["lex", "epidemiology diagnosis"], ["lex", "epidemiology treatment"], ["vec", "understanding epidemiology, including causes and treatments"], ["vec", "clinical overview of epidemiology for general readers"]], "category": "medicine"}
{"query": "radiology", "output": [["hyde", "This overview of radiology covers causes, symptoms, and common treatments."], ["lex", "radiology symptoms overview"], ["lex", "radiology diagnosis"], ["lex", "radiology treatment"], ["vec", "understanding radiology, including causes and treatments"], ["vec", "clinical overview of radiology for general readers"]], "category": "medicine"}
{"query": "pediatrics", "output": [["hyde", "This overview of pediatrics covers causes, symptoms, and common treatments."], ["lex", "pediatrics symptoms overview"], ["lex", "pediatrics diagnosis"], ["lex", "pediatrics treatment"], ["vec", "understanding pediatrics, including causes and treatments"], ["vec", "clinical overview of pediatrics for general readers"]], "category": "medicine"}
{"query": "psychiatry", "output": [["hyde", "This overview of psychiatry covers causes, symptoms, and common treatments."], ["lex", "psychiatry symptoms overview"], ["lex", "psychiatry diagnosis"], ["lex", "psychiatry treatment"], ["vec", "understanding psychiatry, including causes and treatments"], ["vec", "clinical overview of psychiatry for general readers"]], "category": "medicine"}
{"query": "dermatology", "output": [["hyde", "This overview of dermatology covers causes, symptoms, and common treatments."], ["lex", "dermatology symptoms overview"], ["lex", "dermatology diagnosis"], ["lex", "dermatology treatment"], ["vec", "understanding dermatology, including causes and treatments"], ["vec", "clinical overview of dermatology for general readers"]], "category": "medicine"}
{"query": "gastroenterology", "output": [["hyde", "This overview of gastroenterology covers causes, symptoms, and common treatments."], ["lex", "gastroenterology symptoms overview"], ["lex", "gastroenterology diagnosis"], ["lex", "gastroenterology treatment"], ["vec", "understanding gastroenterology, including causes and treatments"], ["vec", "clinical overview of gastroenterology for general readers"]], "category": "medicine"}
{"query": "orthopedics", "output": [["hyde", "This overview of orthopedics covers causes, symptoms, and common treatments."], ["lex", "orthopedics symptoms overview"], ["lex", "orthopedics diagnosis"], ["lex", "orthopedics treatment"], ["vec", "understanding orthopedics, including causes and treatments"], ["vec", "clinical overview of orthopedics for general readers"]], "category": "medicine"}
{"query": "surgery", "output": [["hyde", "This overview of surgery covers causes, symptoms, and common treatments."], ["lex", "surgery symptoms overview"], ["lex", "surgery diagnosis"], ["lex", "surgery treatment"], ["vec", "understanding surgery, including causes and treatments"], ["vec", "clinical overview of surgery for general readers"]], "category": "medicine"}
{"query": "anesthesia", "output": [["hyde", "This overview of anesthesia covers causes, symptoms, and common treatments."], ["lex", "anesthesia symptoms overview"], ["lex", "anesthesia diagnosis"], ["lex", "anesthesia treatment"], ["vec", "understanding anesthesia, including causes and treatments"], ["vec", "clinical overview of anesthesia for general readers"]], "category": "medicine"}
{"query": "vaccines", "output": [["hyde", "This overview of vaccines covers causes, symptoms, and common treatments."], ["lex", "vaccines symptoms overview"], ["lex", "vaccines diagnosis"], ["lex", "vaccines treatment"], ["vec", "understanding vaccines, including causes and treatments"], ["vec", "clinical overview of vaccines for general readers"]], "category": "medicine"}
{"query": "antibiotics", "output": [["hyde", "This overview of antibiotics covers causes, symptoms, and common treatments."], ["lex", "antibiotics symptoms overview"], ["lex", "antibiotics diagnosis"], ["lex", "antibiotics treatment"], ["vec", "understanding antibiotics, including causes and treatments"], ["vec", "clinical overview of antibiotics for general readers"]], "category": "medicine"}
{"query": "infection", "output": [["hyde", "This overview of infection covers causes, symptoms, and common treatments."], ["lex", "infection symptoms overview"], ["lex", "infection diagnosis"], ["lex", "infection treatment"], ["vec", "understanding infection, including causes and treatments"], ["vec", "clinical overview of infection for general readers"]], "category": "medicine"}
{"query": "diabetes", "output": [["hyde", "This overview of diabetes covers causes, symptoms, and common treatments."], ["lex", "diabetes symptoms overview"], ["lex", "diabetes diagnosis"], ["lex", "diabetes treatment"], ["vec", "understanding diabetes, including causes and treatments"], ["vec", "clinical overview of diabetes for general readers"]], "category": "medicine"}
{"query": "hypertension", "output": [["hyde", "This overview of hypertension covers causes, symptoms, and common treatments."], ["lex", "hypertension symptoms overview"], ["lex", "hypertension diagnosis"], ["lex", "hypertension treatment"], ["vec", "understanding hypertension, including causes and treatments"], ["vec", "clinical overview of hypertension for general readers"]], "category": "medicine"}
{"query": "asthma", "output": [["hyde", "This overview of asthma covers causes, symptoms, and common treatments."], ["lex", "asthma symptoms overview"], ["lex", "asthma diagnosis"], ["lex", "asthma treatment"], ["vec", "understanding asthma, including causes and treatments"], ["vec", "clinical overview of asthma for general readers"]], "category": "medicine"}
{"query": "arthritis", "output": [["hyde", "This overview of arthritis covers causes, symptoms, and common treatments."], ["lex", "arthritis symptoms overview"], ["lex", "arthritis diagnosis"], ["lex", "arthritis treatment"], ["vec", "understanding arthritis, including causes and treatments"], ["vec", "clinical overview of arthritis for general readers"]], "category": "medicine"}
{"query": "depression", "output": [["hyde", "This overview of depression covers causes, symptoms, and common treatments."], ["lex", "depression symptoms overview"], ["lex", "depression diagnosis"], ["lex", "depression treatment"], ["vec", "understanding depression, including causes and treatments"], ["vec", "clinical overview of depression for general readers"]], "category": "medicine"}
{"query": "anxiety", "output": [["hyde", "This overview of anxiety covers causes, symptoms, and common treatments."], ["lex", "anxiety symptoms overview"], ["lex", "anxiety diagnosis"], ["lex", "anxiety treatment"], ["vec", "understanding anxiety, including causes and treatments"], ["vec", "clinical overview of anxiety for general readers"]], "category": "medicine"}
{"query": "stroke", "output": [["hyde", "This overview of stroke covers causes, symptoms, and common treatments."], ["lex", "stroke symptoms overview"], ["lex", "stroke diagnosis"], ["lex", "stroke treatment"], ["vec", "understanding stroke, including causes and treatments"], ["vec", "clinical overview of stroke for general readers"]], "category": "medicine"}
{"query": "heart attack", "output": [["hyde", "This overview of heart attack covers causes, symptoms, and common treatments."], ["lex", "heart overview attack symptoms"], ["lex", "heart attack diagnosis"], ["lex", "heart attack treatment"], ["vec", "understanding heart attack, including causes and treatments"], ["vec", "clinical overview of heart attack for general readers"]], "category": "medicine"}
{"query": "blood pressure", "output": [["hyde", "This overview of blood pressure covers causes, symptoms, and common treatments."], ["lex", "blood overview pressure symptoms"], ["lex", "blood pressure diagnosis"], ["lex", "blood pressure treatment"], ["vec", "understanding blood pressure, including causes and treatments"], ["vec", "clinical overview of blood pressure for general readers"]], "category": "medicine"}
{"query": "cholesterol", "output": [["hyde", "This overview of cholesterol covers causes, symptoms, and common treatments."], ["lex", "cholesterol symptoms overview"], ["lex", "cholesterol diagnosis"], ["lex", "cholesterol treatment"], ["vec", "understanding cholesterol, including causes and treatments"], ["vec", "clinical overview of cholesterol for general readers"]], "category": "medicine"}
{"query": "kidney disease", "output": [["hyde", "This overview of kidney disease covers causes, symptoms, and common treatments."], ["lex", "kidney overview disease symptoms"], ["lex", "kidney disease diagnosis"], ["lex", "kidney disease treatment"], ["vec", "understanding kidney disease, including causes and treatments"], ["vec", "clinical overview of kidney disease for general readers"]], "category": "medicine"}
{"query": "liver disease", "output": [["hyde", "This overview of liver disease covers causes, symptoms, and common treatments."], ["lex", "liver overview disease symptoms"], ["lex", "liver disease diagnosis"], ["lex", "liver disease treatment"], ["vec", "understanding liver disease, including causes and treatments"], ["vec", "clinical overview of liver disease for general readers"]], "category": "medicine"}
{"query": "covid", "output": [["hyde", "This overview of covid covers causes, symptoms, and common treatments."], ["lex", "covid symptoms overview"], ["lex", "covid diagnosis"], ["lex", "covid treatment"], ["vec", "understanding covid, including causes and treatments"], ["vec", "clinical overview of covid for general readers"]], "category": "medicine"}
{"query": "flu", "output": [["hyde", "This overview of flu covers causes, symptoms, and common treatments."], ["lex", "flu symptoms overview"], ["lex", "flu diagnosis"], ["lex", "flu treatment"], ["vec", "understanding flu, including causes and treatments"], ["vec", "clinical overview of flu for general readers"]], "category": "medicine"}
{"query": "allergy", "output": [["hyde", "This overview of allergy covers causes, symptoms, and common treatments."], ["lex", "allergy symptoms overview"], ["lex", "allergy diagnosis"], ["lex", "allergy treatment"], ["vec", "understanding allergy, including causes and treatments"], ["vec", "clinical overview of allergy for general readers"]], "category": "medicine"}
{"query": "migraine", "output": [["hyde", "This overview of migraine covers causes, symptoms, and common treatments."], ["lex", "migraine symptoms overview"], ["lex", "migraine diagnosis"], ["lex", "migraine treatment"], ["vec", "understanding migraine, including causes and treatments"], ["vec", "clinical overview of migraine for general readers"]], "category": "medicine"}
{"query": "nutrition", "output": [["hyde", "This overview of nutrition covers causes, symptoms, and common treatments."], ["lex", "nutrition symptoms overview"], ["lex", "nutrition diagnosis"], ["lex", "nutrition treatment"], ["vec", "understanding nutrition, including causes and treatments"], ["vec", "clinical overview of nutrition for general readers"]], "category": "medicine"}
{"query": "obesity", "output": [["hyde", "This overview of obesity covers causes, symptoms, and common treatments."], ["lex", "obesity symptoms overview"], ["lex", "obesity diagnosis"], ["lex", "obesity treatment"], ["vec", "understanding obesity, including causes and treatments"], ["vec", "clinical overview of obesity for general readers"]], "category": "medicine"}
{"query": "pregnancy", "output": [["hyde", "This overview of pregnancy covers causes, symptoms, and common treatments."], ["lex", "pregnancy symptoms overview"], ["lex", "pregnancy diagnosis"], ["lex", "pregnancy treatment"], ["vec", "understanding pregnancy, including causes and treatments"], ["vec", "clinical overview of pregnancy for general readers"]], "category": "medicine"}
{"query": "prenatal care", "output": [["hyde", "This overview of prenatal care covers causes, symptoms, and common treatments."], ["lex", "prenatal overview care symptoms"], ["lex", "prenatal care diagnosis"], ["lex", "prenatal care treatment"], ["vec", "understanding prenatal care, including causes and treatments"], ["vec", "clinical overview of prenatal care for general readers"]], "category": "medicine"}
{"query": "mental health", "output": [["hyde", "This overview of mental health covers causes, symptoms, and common treatments."], ["lex", "mental overview health symptoms"], ["lex", "mental health diagnosis"], ["lex", "mental health treatment"], ["vec", "understanding mental health, including causes and treatments"], ["vec", "clinical overview of mental health for general readers"]], "category": "medicine"}
{"query": "sleep disorders", "output": [["hyde", "This overview of sleep disorders covers causes, symptoms, and common treatments."], ["lex", "sleep overview disorders symptoms"], ["lex", "sleep disorders diagnosis"], ["lex", "sleep disorders treatment"], ["vec", "understanding sleep disorders, including causes and treatments"], ["vec", "clinical overview of sleep disorders for general readers"]], "category": "medicine"}
{"query": "pain management", "output": [["hyde", "This overview of pain management covers causes, symptoms, and common treatments."], ["lex", "pain overview management symptoms"], ["lex", "pain management diagnosis"], ["lex", "pain management treatment"], ["vec", "understanding pain management, including causes and treatments"], ["vec", "clinical overview of pain management for general readers"]], "category": "medicine"}
{"query": "physical therapy", "output": [["hyde", "This overview of physical therapy covers causes, symptoms, and common treatments."], ["lex", "physical overview therapy symptoms"], ["lex", "physical therapy diagnosis"], ["lex", "physical therapy treatment"], ["vec", "understanding physical therapy, including causes and treatments"], ["vec", "clinical overview of physical therapy for general readers"]], "category": "medicine"}
{"query": "medical ethics", "output": [["hyde", "This overview of medical ethics covers causes, symptoms, and common treatments."], ["lex", "medical overview ethics symptoms"], ["lex", "medical ethics diagnosis"], ["lex", "medical ethics treatment"], ["vec", "understanding medical ethics, including causes and treatments"], ["vec", "clinical overview of medical ethics for general readers"]], "category": "medicine"}
{"query": "clinical trials", "output": [["hyde", "This overview of clinical trials covers causes, symptoms, and common treatments."], ["lex", "clinical overview trials symptoms"], ["lex", "clinical trials diagnosis"], ["lex", "clinical trials treatment"], ["vec", "understanding clinical trials, including causes and treatments"], ["vec", "clinical overview of clinical trials for general readers"]], "category": "medicine"}
{"query": "diagnosis", "output": [["hyde", "This overview of diagnosis covers causes, symptoms, and common treatments."], ["lex", "diagnosis symptoms overview"], ["lex", "diagnosis diagnosis"], ["lex", "diagnosis treatment"], ["vec", "understanding diagnosis, including causes and treatments"], ["vec", "clinical overview of diagnosis for general readers"]], "category": "medicine"}
{"query": "symptoms", "output": [["hyde", "This overview of symptoms covers causes, symptoms, and common treatments."], ["lex", "symptoms symptoms overview"], ["lex", "symptoms diagnosis"], ["lex", "symptoms treatment"], ["vec", "understanding symptoms, including causes and treatments"], ["vec", "clinical overview of symptoms for general readers"]], "category": "medicine"}
{"query": "treatment", "output": [["hyde", "This overview of treatment covers causes, symptoms, and common treatments."], ["lex", "treatment symptoms overview"], ["lex", "treatment diagnosis"], ["lex", "treatment treatment"], ["vec", "understanding treatment, including causes and treatments"], ["vec", "clinical overview of treatment for general readers"]], "category": "medicine"}
{"query": "public health", "output": [["hyde", "This overview of public health covers causes, symptoms, and common treatments."], ["lex", "public overview health symptoms"], ["lex", "public health diagnosis"], ["lex", "public health treatment"], ["vec", "understanding public health, including causes and treatments"], ["vec", "clinical overview of public health for general readers"]], "category": "medicine"}
{"query": "primary care", "output": [["hyde", "This overview of primary care covers causes, symptoms, and common treatments."], ["lex", "primary overview care symptoms"], ["lex", "primary care diagnosis"], ["lex", "primary care treatment"], ["vec", "understanding primary care, including causes and treatments"], ["vec", "clinical overview of primary care for general readers"]], "category": "medicine"}
{"query": "art history", "output": [["hyde", "This overview of art history highlights key styles, influences, and notable works."], ["lex", "art overview history styles"], ["lex", "art overview history artists"], ["lex", "art basics history overview"], ["vec", "an introduction to art history and its stylistic features"], ["vec", "history and influence of art history in culture"]], "category": "arts"}
{"query": "renaissance art", "output": [["hyde", "This overview of renaissance art highlights key styles, influences, and notable works."], ["lex", "renaissance overview art styles"], ["lex", "renaissance overview art artists"], ["lex", "renaissance basics art overview"], ["vec", "an introduction to renaissance art and its stylistic features"], ["vec", "history and influence of renaissance art in culture"]], "category": "arts"}
{"query": "baroque art", "output": [["hyde", "This overview of baroque art highlights key styles, influences, and notable works."], ["lex", "baroque overview art styles"], ["lex", "baroque overview art artists"], ["lex", "baroque basics art overview"], ["vec", "an introduction to baroque art and its stylistic features"], ["vec", "history and influence of baroque art in culture"]], "category": "arts"}
{"query": "impressionism", "output": [["hyde", "This overview of impressionism highlights key styles, influences, and notable works."], ["lex", "impressionism styles overview"], ["lex", "impressionism artists overview"], ["lex", "impressionism overview basics"], ["vec", "an introduction to impressionism and its stylistic features"], ["vec", "history and influence of impressionism in culture"]], "category": "arts"}
{"query": "modern art", "output": [["hyde", "This overview of modern art highlights key styles, influences, and notable works."], ["lex", "modern overview art styles"], ["lex", "modern overview art artists"], ["lex", "modern basics art overview"], ["vec", "an introduction to modern art and its stylistic features"], ["vec", "history and influence of modern art in culture"]], "category": "arts"}
{"query": "abstract art", "output": [["hyde", "This overview of abstract art highlights key styles, influences, and notable works."], ["lex", "abstract overview art styles"], ["lex", "abstract overview art artists"], ["lex", "abstract basics art overview"], ["vec", "an introduction to abstract art and its stylistic features"], ["vec", "history and influence of abstract art in culture"]], "category": "arts"}
{"query": "sculpture", "output": [["hyde", "This overview of sculpture highlights key styles, influences, and notable works."], ["lex", "sculpture styles overview"], ["lex", "sculpture artists overview"], ["lex", "sculpture overview basics"], ["vec", "an introduction to sculpture and its stylistic features"], ["vec", "history and influence of sculpture in culture"]], "category": "arts"}
{"query": "painting", "output": [["hyde", "This overview of painting highlights key styles, influences, and notable works."], ["lex", "painting styles overview"], ["lex", "painting artists overview"], ["lex", "painting overview basics"], ["vec", "an introduction to painting and its stylistic features"], ["vec", "history and influence of painting in culture"]], "category": "arts"}
{"query": "drawing", "output": [["hyde", "This overview of drawing highlights key styles, influences, and notable works."], ["lex", "drawing styles overview"], ["lex", "drawing artists overview"], ["lex", "drawing overview basics"], ["vec", "an introduction to drawing and its stylistic features"], ["vec", "history and influence of drawing in culture"]], "category": "arts"}
{"query": "photography", "output": [["hyde", "This overview of photography highlights key styles, influences, and notable works."], ["lex", "photography styles overview"], ["lex", "photography artists overview"], ["lex", "photography overview basics"], ["vec", "an introduction to photography and its stylistic features"], ["vec", "history and influence of photography in culture"]], "category": "arts"}
{"query": "film noir", "output": [["hyde", "This overview of film noir highlights key styles, influences, and notable works."], ["lex", "film overview noir styles"], ["lex", "film overview noir artists"], ["lex", "film basics noir overview"], ["vec", "an introduction to film noir and its stylistic features"], ["vec", "history and influence of film noir in culture"]], "category": "arts"}
{"query": "cinematography", "output": [["hyde", "This overview of cinematography highlights key styles, influences, and notable works."], ["lex", "cinematography styles overview"], ["lex", "cinematography artists overview"], ["lex", "cinematography overview basics"], ["vec", "an introduction to cinematography and its stylistic features"], ["vec", "history and influence of cinematography in culture"]], "category": "arts"}
{"query": "classical music", "output": [["hyde", "This overview of classical music highlights key styles, influences, and notable works."], ["lex", "classical overview music styles"], ["lex", "classical overview music artists"], ["lex", "classical basics music overview"], ["vec", "an introduction to classical music and its stylistic features"], ["vec", "history and influence of classical music in culture"]], "category": "arts"}
{"query": "jazz", "output": [["hyde", "This overview of jazz highlights key styles, influences, and notable works."], ["lex", "jazz styles overview"], ["lex", "jazz artists overview"], ["lex", "jazz overview basics"], ["vec", "an introduction to jazz and its stylistic features"], ["vec", "history and influence of jazz in culture"]], "category": "arts"}
{"query": "opera", "output": [["hyde", "This overview of opera highlights key styles, influences, and notable works."], ["lex", "opera styles overview"], ["lex", "opera artists overview"], ["lex", "opera overview basics"], ["vec", "an introduction to opera and its stylistic features"], ["vec", "history and influence of opera in culture"]], "category": "arts"}
{"query": "ballet", "output": [["hyde", "This overview of ballet highlights key styles, influences, and notable works."], ["lex", "ballet styles overview"], ["lex", "ballet artists overview"], ["lex", "ballet overview basics"], ["vec", "an introduction to ballet and its stylistic features"], ["vec", "history and influence of ballet in culture"]], "category": "arts"}
{"query": "theater", "output": [["hyde", "This overview of theater highlights key styles, influences, and notable works."], ["lex", "theater styles overview"], ["lex", "theater artists overview"], ["lex", "theater overview basics"], ["vec", "an introduction to theater and its stylistic features"], ["vec", "history and influence of theater in culture"]], "category": "arts"}
{"query": "drama", "output": [["hyde", "This overview of drama highlights key styles, influences, and notable works."], ["lex", "drama styles overview"], ["lex", "drama artists overview"], ["lex", "drama overview basics"], ["vec", "an introduction to drama and its stylistic features"], ["vec", "history and influence of drama in culture"]], "category": "arts"}
{"query": "poetry", "output": [["hyde", "This overview of poetry highlights key styles, influences, and notable works."], ["lex", "poetry styles overview"], ["lex", "poetry artists overview"], ["lex", "poetry overview basics"], ["vec", "an introduction to poetry and its stylistic features"], ["vec", "history and influence of poetry in culture"]], "category": "arts"}
{"query": "literature", "output": [["hyde", "This overview of literature highlights key styles, influences, and notable works."], ["lex", "literature styles overview"], ["lex", "literature artists overview"], ["lex", "literature overview basics"], ["vec", "an introduction to literature and its stylistic features"], ["vec", "history and influence of literature in culture"]], "category": "arts"}
{"query": "novel", "output": [["hyde", "This overview of novel highlights key styles, influences, and notable works."], ["lex", "novel styles overview"], ["lex", "novel artists overview"], ["lex", "novel overview basics"], ["vec", "an introduction to novel and its stylistic features"], ["vec", "history and influence of novel in culture"]], "category": "arts"}
{"query": "short stories", "output": [["hyde", "This overview of short stories highlights key styles, influences, and notable works."], ["lex", "short overview stories styles"], ["lex", "short overview stories artists"], ["lex", "short basics stories overview"], ["vec", "an introduction to short stories and its stylistic features"], ["vec", "history and influence of short stories in culture"]], "category": "arts"}
{"query": "mythology", "output": [["hyde", "This overview of mythology highlights key styles, influences, and notable works."], ["lex", "mythology styles overview"], ["lex", "mythology artists overview"], ["lex", "mythology overview basics"], ["vec", "an introduction to mythology and its stylistic features"], ["vec", "history and influence of mythology in culture"]], "category": "arts"}
{"query": "folklore", "output": [["hyde", "This overview of folklore highlights key styles, influences, and notable works."], ["lex", "folklore styles overview"], ["lex", "folklore artists overview"], ["lex", "folklore overview basics"], ["vec", "an introduction to folklore and its stylistic features"], ["vec", "history and influence of folklore in culture"]], "category": "arts"}
{"query": "architecture", "output": [["hyde", "This overview of architecture highlights key styles, influences, and notable works."], ["lex", "architecture styles overview"], ["lex", "architecture artists overview"], ["lex", "architecture overview basics"], ["vec", "an introduction to architecture and its stylistic features"], ["vec", "history and influence of architecture in culture"]], "category": "arts"}
{"query": "gothic architecture", "output": [["hyde", "This overview of gothic architecture highlights key styles, influences, and notable works."], ["lex", "gothic overview architecture styles"], ["lex", "gothic overview architecture artists"], ["lex", "gothic basics architecture overview"], ["vec", "an introduction to gothic architecture and its stylistic features"], ["vec", "history and influence of gothic architecture in culture"]], "category": "arts"}
{"query": "roman architecture", "output": [["hyde", "This overview of roman architecture highlights key styles, influences, and notable works."], ["lex", "roman overview architecture styles"], ["lex", "roman overview architecture artists"], ["lex", "roman basics architecture overview"], ["vec", "an introduction to roman architecture and its stylistic features"], ["vec", "history and influence of roman architecture in culture"]], "category": "arts"}
{"query": "street art", "output": [["hyde", "This overview of street art highlights key styles, influences, and notable works."], ["lex", "street overview art styles"], ["lex", "street overview art artists"], ["lex", "street basics art overview"], ["vec", "an introduction to street art and its stylistic features"], ["vec", "history and influence of street art in culture"]], "category": "arts"}
{"query": "graphic design", "output": [["hyde", "This overview of graphic design highlights key styles, influences, and notable works."], ["lex", "graphic overview design styles"], ["lex", "graphic overview design artists"], ["lex", "graphic basics design overview"], ["vec", "an introduction to graphic design and its stylistic features"], ["vec", "history and influence of graphic design in culture"]], "category": "arts"}
{"query": "fashion history", "output": [["hyde", "This overview of fashion history highlights key styles, influences, and notable works."], ["lex", "fashion overview history styles"], ["lex", "fashion overview history artists"], ["lex", "fashion basics history overview"], ["vec", "an introduction to fashion history and its stylistic features"], ["vec", "history and influence of fashion history in culture"]], "category": "arts"}
{"query": "cultural history", "output": [["hyde", "This overview of cultural history highlights key styles, influences, and notable works."], ["lex", "cultural overview history styles"], ["lex", "cultural overview history artists"], ["lex", "cultural basics history overview"], ["vec", "an introduction to cultural history and its stylistic features"], ["vec", "history and influence of cultural history in culture"]], "category": "arts"}
{"query": "music theory", "output": [["hyde", "This overview of music theory highlights key styles, influences, and notable works."], ["lex", "music overview theory styles"], ["lex", "music overview theory artists"], ["lex", "music basics theory overview"], ["vec", "an introduction to music theory and its stylistic features"], ["vec", "history and influence of music theory in culture"]], "category": "arts"}
{"query": "composition", "output": [["hyde", "This overview of composition highlights key styles, influences, and notable works."], ["lex", "composition styles overview"], ["lex", "composition artists overview"], ["lex", "composition overview basics"], ["vec", "an introduction to composition and its stylistic features"], ["vec", "history and influence of composition in culture"]], "category": "arts"}
{"query": "art criticism", "output": [["hyde", "This overview of art criticism highlights key styles, influences, and notable works."], ["lex", "art overview criticism styles"], ["lex", "art overview criticism artists"], ["lex", "art basics criticism overview"], ["vec", "an introduction to art criticism and its stylistic features"], ["vec", "history and influence of art criticism in culture"]], "category": "arts"}
{"query": "storytelling", "output": [["hyde", "This overview of storytelling highlights key styles, influences, and notable works."], ["lex", "storytelling styles overview"], ["lex", "storytelling artists overview"], ["lex", "storytelling overview basics"], ["vec", "an introduction to storytelling and its stylistic features"], ["vec", "history and influence of storytelling in culture"]], "category": "arts"}
{"query": "screenwriting", "output": [["hyde", "This overview of screenwriting highlights key styles, influences, and notable works."], ["lex", "screenwriting styles overview"], ["lex", "screenwriting artists overview"], ["lex", "screenwriting overview basics"], ["vec", "an introduction to screenwriting and its stylistic features"], ["vec", "history and influence of screenwriting in culture"]], "category": "arts"}
{"query": "animation", "output": [["hyde", "This overview of animation highlights key styles, influences, and notable works."], ["lex", "animation styles overview"], ["lex", "animation artists overview"], ["lex", "animation overview basics"], ["vec", "an introduction to animation and its stylistic features"], ["vec", "history and influence of animation in culture"]], "category": "arts"}
{"query": "documentary", "output": [["hyde", "This overview of documentary highlights key styles, influences, and notable works."], ["lex", "documentary styles overview"], ["lex", "documentary artists overview"], ["lex", "documentary overview basics"], ["vec", "an introduction to documentary and its stylistic features"], ["vec", "history and influence of documentary in culture"]], "category": "arts"}
{"query": "world literature", "output": [["hyde", "This overview of world literature highlights key styles, influences, and notable works."], ["lex", "world overview literature styles"], ["lex", "world overview literature artists"], ["lex", "world basics literature overview"], ["vec", "an introduction to world literature and its stylistic features"], ["vec", "history and influence of world literature in culture"]], "category": "arts"}
{"query": "epic poetry", "output": [["hyde", "This overview of epic poetry highlights key styles, influences, and notable works."], ["lex", "epic overview poetry styles"], ["lex", "epic overview poetry artists"], ["lex", "epic basics poetry overview"], ["vec", "an introduction to epic poetry and its stylistic features"], ["vec", "history and influence of epic poetry in culture"]], "category": "arts"}
{"query": "haiku", "output": [["hyde", "This overview of haiku highlights key styles, influences, and notable works."], ["lex", "haiku styles overview"], ["lex", "haiku artists overview"], ["lex", "haiku overview basics"], ["vec", "an introduction to haiku and its stylistic features"], ["vec", "history and influence of haiku in culture"]], "category": "arts"}
{"query": "calligraphy", "output": [["hyde", "This overview of calligraphy highlights key styles, influences, and notable works."], ["lex", "calligraphy styles overview"], ["lex", "calligraphy artists overview"], ["lex", "calligraphy overview basics"], ["vec", "an introduction to calligraphy and its stylistic features"], ["vec", "history and influence of calligraphy in culture"]], "category": "arts"}
{"query": "ceramics", "output": [["hyde", "This overview of ceramics highlights key styles, influences, and notable works."], ["lex", "ceramics styles overview"], ["lex", "ceramics artists overview"], ["lex", "ceramics overview basics"], ["vec", "an introduction to ceramics and its stylistic features"], ["vec", "history and influence of ceramics in culture"]], "category": "arts"}
{"query": "textiles", "output": [["hyde", "This overview of textiles highlights key styles, influences, and notable works."], ["lex", "textiles styles overview"], ["lex", "textiles artists overview"], ["lex", "textiles overview basics"], ["vec", "an introduction to textiles and its stylistic features"], ["vec", "history and influence of textiles in culture"]], "category": "arts"}
{"query": "printmaking", "output": [["hyde", "This overview of printmaking highlights key styles, influences, and notable works."], ["lex", "printmaking styles overview"], ["lex", "printmaking artists overview"], ["lex", "printmaking overview basics"], ["vec", "an introduction to printmaking and its stylistic features"], ["vec", "history and influence of printmaking in culture"]], "category": "arts"}
{"query": "collage", "output": [["hyde", "This overview of collage highlights key styles, influences, and notable works."], ["lex", "collage styles overview"], ["lex", "collage artists overview"], ["lex", "collage overview basics"], ["vec", "an introduction to collage and its stylistic features"], ["vec", "history and influence of collage in culture"]], "category": "arts"}
{"query": "music history", "output": [["hyde", "This overview of music history highlights key styles, influences, and notable works."], ["lex", "music overview history styles"], ["lex", "music overview history artists"], ["lex", "music basics history overview"], ["vec", "an introduction to music history and its stylistic features"], ["vec", "history and influence of music history in culture"]], "category": "arts"}
{"query": "art movements", "output": [["hyde", "This overview of art movements highlights key styles, influences, and notable works."], ["lex", "art overview movements styles"], ["lex", "art overview movements artists"], ["lex", "art basics movements overview"], ["vec", "an introduction to art movements and its stylistic features"], ["vec", "history and influence of art movements in culture"]], "category": "arts"}
{"query": "art conservation", "output": [["hyde", "This overview of art conservation highlights key styles, influences, and notable works."], ["lex", "art overview conservation styles"], ["lex", "art overview conservation artists"], ["lex", "art basics conservation overview"], ["vec", "an introduction to art conservation and its stylistic features"], ["vec", "history and influence of art conservation in culture"]], "category": "arts"}
{"query": "museum studies", "output": [["hyde", "This overview of museum studies highlights key styles, influences, and notable works."], ["lex", "museum overview studies styles"], ["lex", "museum overview studies artists"], ["lex", "museum basics studies overview"], ["vec", "an introduction to museum studies and its stylistic features"], ["vec", "history and influence of museum studies in culture"]], "category": "arts"}

View File

@@ -0,0 +1,48 @@
{"query": "UFC fight", "output": [["lex", "UFC \"Ultimate Fighting Championship\" fight"], ["lex", "MMA mixed martial arts bout"], ["vec", "Ultimate Fighting Championship fight results and highlights"], ["hyde", "The UFC (Ultimate Fighting Championship) fight card featured a five-round main event. The bout ended by TKO in the third round, with the fighter landing a devastating combination that dropped his opponent."]]}
{"query": "UFC fighter rankings", "output": [["lex", "UFC \"Ultimate Fighting Championship\" fighter rankings"], ["lex", "MMA pound-for-pound rankings weight class"], ["vec", "current UFC fighter rankings across all weight divisions"], ["hyde", "The UFC pound-for-pound rankings were updated following UFC 310. The lightweight division saw significant movement, with the champion retaining the #1 spot after a dominant title defense."]]}
{"query": "UFC fight tonight", "output": [["lex", "UFC \"Ultimate Fighting Championship\" fight tonight"], ["lex", "UFC fight card tonight main event"], ["vec", "what UFC fights are happening tonight and where to watch"], ["hyde", "Tonight's UFC Fight Night card begins at 7pm ET with preliminary bouts on ESPN+, followed by the main card at 10pm ET. The main event features a welterweight clash between two top-10 ranked fighters."]]}
{"query": "UFC weight classes", "output": [["lex", "UFC \"Ultimate Fighting Championship\" weight classes divisions"], ["lex", "MMA weight divisions flyweight bantamweight lightweight"], ["vec", "what are the UFC weight classes and their limits"], ["hyde", "UFC weight classes range from strawweight (115 lbs) to heavyweight (265 lbs). The men's divisions include flyweight (125), bantamweight (135), featherweight (145), lightweight (155), welterweight (170), middleweight (185), light heavyweight (205), and heavyweight (265)."]]}
{"query": "UFC pay-per-view", "output": [["lex", "UFC PPV pay-per-view event"], ["lex", "\"Ultimate Fighting Championship\" PPV card buy"], ["vec", "how to buy and watch UFC pay-per-view events"], ["hyde", "UFC pay-per-view events are available exclusively on ESPN+ for $79.99. The PPV main card typically begins at 10pm ET, preceded by the prelims on ESPN. Major numbered events like UFC 300 feature championship bouts."]]}
{"query": "NFL game scores", "output": [["lex", "NFL \"National Football League\" game scores"], ["lex", "NFL football scores results today"], ["vec", "National Football League game scores and results"], ["hyde", "The NFL Week 14 scores are in: the Chiefs defeated the Bills 27-24 in a thrilling Sunday Night Football matchup. The game came down to a last-second field goal that sealed the victory."]]}
{"query": "NFL draft", "output": [["lex", "NFL \"National Football League\" draft picks"], ["lex", "NFL draft prospects round selection"], ["vec", "National Football League draft picks and prospect analysis"], ["hyde", "The NFL Draft is held annually in late April, consisting of seven rounds over three days. Teams select eligible college football players, with the order determined by the previous season's record, giving the worst teams the earliest picks."]]}
{"query": "NFL Super Bowl", "output": [["lex", "NFL \"National Football League\" Super Bowl"], ["lex", "Super Bowl championship game NFC AFC"], ["vec", "NFL Super Bowl championship game results and history"], ["hyde", "The Super Bowl is the annual championship game of the National Football League. The NFC champion faces the AFC champion in the most-watched sporting event in the United States, typically held on the first Sunday in February."]]}
{"query": "NFL playoff standings", "output": [["lex", "NFL \"National Football League\" playoff standings"], ["lex", "NFL postseason bracket wild card division"], ["vec", "current NFL playoff standings and wild card race"], ["hyde", "The NFL playoff bracket includes 14 teams—seven from each conference. The top seed in each conference earns a first-round bye. Wild card weekend features six games, followed by the divisional round, conference championships, and the Super Bowl."]]}
{"query": "NFL trade deadline", "output": [["lex", "NFL \"National Football League\" trade deadline"], ["lex", "NFL player trades deadline deals"], ["vec", "National Football League trade deadline deals and rumors"], ["hyde", "The NFL trade deadline falls in early November each season. Teams looking to contend acquire players to bolster their rosters, while rebuilding teams trade veterans for draft picks. Notable deadline deals have reshaped playoff races."]]}
{"query": "NBA game", "output": [["lex", "NBA \"National Basketball Association\" game"], ["lex", "NBA basketball game score results"], ["vec", "National Basketball Association game results and highlights"], ["hyde", "The NBA regular season game tipped off at 7:30pm ET. The home team secured a 112-105 victory behind a 35-point performance from their star guard, who hit the go-ahead three-pointer with 45 seconds remaining."]]}
{"query": "NBA trade deadline", "output": [["lex", "NBA \"National Basketball Association\" trade deadline"], ["lex", "NBA player trades deadline deals rumors"], ["vec", "National Basketball Association trade deadline deals and rumors"], ["hyde", "The NBA trade deadline in February is one of the most active periods in the league. Contending teams look to add missing pieces while lottery-bound teams move veterans for young players and draft capital. The deadline has produced blockbuster multi-team deals."]]}
{"query": "NBA playoffs", "output": [["lex", "NBA \"National Basketball Association\" playoffs"], ["lex", "NBA postseason bracket play-in tournament"], ["vec", "National Basketball Association playoff bracket and series results"], ["hyde", "The NBA playoffs feature 16 teams competing in a best-of-seven series format across four rounds. The play-in tournament determines the 7th and 8th seeds. The playoffs culminate in the NBA Finals, where the Eastern and Western Conference champions meet."]]}
{"query": "NBA draft lottery", "output": [["lex", "NBA \"National Basketball Association\" draft lottery"], ["lex", "NBA draft lottery odds picks prospects"], ["vec", "how does the NBA draft lottery work and who are the top prospects"], ["hyde", "The NBA Draft Lottery determines the order of selection for the 14 teams that did not make the playoffs. The team with the worst record gets the best odds (14%) at the #1 overall pick, but the weighted lottery system means any of the bottom teams can move up."]]}
{"query": "NHL game", "output": [["lex", "NHL \"National Hockey League\" game"], ["lex", "NHL hockey game score results"], ["vec", "National Hockey League game scores and highlights"], ["hyde", "The NHL game ended in overtime after a 3-3 tie through regulation. The home team scored the game-winner on a power play goal 2:34 into the extra period, extending their winning streak to five games."]]}
{"query": "NHL Stanley Cup playoffs", "output": [["lex", "NHL \"National Hockey League\" Stanley Cup playoffs"], ["lex", "Stanley Cup playoff bracket series results"], ["vec", "National Hockey League Stanley Cup playoff results and bracket"], ["hyde", "The NHL Stanley Cup Playoffs feature 16 teams in a best-of-seven format across four rounds. The two conference champions meet in the Stanley Cup Final. The Cup is the oldest professional sports trophy in North America, first awarded in 1893."]]}
{"query": "NHL trade deadline", "output": [["lex", "NHL \"National Hockey League\" trade deadline"], ["lex", "NHL player trades deadline deals rentals"], ["vec", "National Hockey League trade deadline deals and acquisitions"], ["hyde", "The NHL trade deadline in early March sees contending teams acquire rental players for their playoff push. Teams out of contention sell pending unrestricted free agents for draft picks and prospects. Deadline day often features dozens of trades."]]}
{"query": "MLB World Series", "output": [["lex", "MLB \"Major League Baseball\" World Series"], ["lex", "World Series championship fall classic"], ["vec", "Major League Baseball World Series results and history"], ["hyde", "The World Series is the annual championship of Major League Baseball, contested between the American League and National League pennant winners. The best-of-seven series is played in October, earning it the nickname 'the Fall Classic.'"]]}
{"query": "MLB trade rumors", "output": [["lex", "MLB \"Major League Baseball\" trade rumors"], ["lex", "MLB trades deadline deals prospects"], ["vec", "Major League Baseball trade rumors and potential deals"], ["hyde", "MLB trade deadline activity heats up in late July as contenders look to add pitching and hitting. The most sought-after players are starting pitchers with team-friendly contracts and power bats from rebuilding clubs willing to trade for top prospects."]]}
{"query": "MLB standings", "output": [["lex", "MLB \"Major League Baseball\" standings"], ["lex", "MLB division standings wild card race"], ["vec", "current Major League Baseball standings and wild card race"], ["hyde", "The MLB standings show the division leaders and wild card contenders across the American and National Leagues. Each league has three divisions (East, Central, West), with division winners and three wild card teams qualifying for the postseason."]]}
{"query": "F1 race results", "output": [["lex", "F1 \"Formula 1\" \"Formula One\" race results"], ["lex", "Formula 1 Grand Prix race winner podium"], ["vec", "Formula 1 race results and Grand Prix standings"], ["hyde", "The Formula 1 Grand Prix race results are in. The pole-sitter converted his front-row start into a dominant victory, leading every lap and finishing 12 seconds ahead of his teammate. The constructors' championship battle tightened with both teams scoring heavily."]]}
{"query": "F1 driver standings", "output": [["lex", "F1 \"Formula 1\" driver standings championship"], ["lex", "Formula 1 drivers championship points WDC"], ["vec", "current Formula 1 World Drivers' Championship standings"], ["hyde", "The Formula 1 World Drivers' Championship standings after round 15 show a tight battle at the top, with just 28 points separating the leader from second place. Consistency in point scoring across all races has been the key differentiator."]]}
{"query": "F1 constructors championship", "output": [["lex", "F1 \"Formula 1\" constructors championship standings"], ["lex", "Formula 1 constructors WCC team points"], ["vec", "Formula 1 World Constructors' Championship standings and points"], ["hyde", "The Formula 1 Constructors' Championship awards points to teams based on the combined results of both drivers. The championship carries enormous financial implications, as prize money distribution is largely determined by final constructors' standings."]]}
{"query": "F1 Grand Prix schedule", "output": [["lex", "F1 \"Formula 1\" Grand Prix schedule calendar"], ["lex", "Formula 1 race calendar circuit dates"], ["vec", "Formula 1 Grand Prix race schedule and calendar for the season"], ["hyde", "The Formula 1 calendar features 24 Grands Prix across five continents. The season runs from March to December, visiting iconic circuits like Monaco, Silverstone, Monza, and Spa-Francorchamps alongside newer venues in the Middle East and Asia."]]}
{"query": "MLS Cup", "output": [["lex", "MLS \"Major League Soccer\" Cup"], ["lex", "MLS Cup championship playoff final"], ["vec", "Major League Soccer MLS Cup championship results"], ["hyde", "The MLS Cup is the championship match of Major League Soccer, concluding the MLS Cup Playoffs. The single-match final determines the league champion. The playoff format includes a best-of-three first round followed by single-elimination conference semifinals, finals, and the Cup."]]}
{"query": "MLS standings", "output": [["lex", "MLS \"Major League Soccer\" standings"], ["lex", "MLS standings points table Eastern Western conference"], ["vec", "current Major League Soccer standings and playoff picture"], ["hyde", "The MLS regular season standings determine playoff seeding. Each conference's top nine teams qualify for the MLS Cup Playoffs. Points are awarded as three for a win, one for a draw, and zero for a loss. Goal differential serves as the primary tiebreaker."]]}
{"query": "IMSA race results", "output": [["lex", "IMSA \"International Motor Sports Association\" race results"], ["lex", "IMSA WeatherTech SportsCar Championship results"], ["vec", "International Motor Sports Association race results and standings"], ["hyde", "The IMSA WeatherTech SportsCar Championship race results from the weekend showed a dominant performance by the GTP class leaders. The prototype covered 348 laps over the race distance, with strategy calls on pit timing proving decisive in the final stint."]]}
{"query": "IMSA LMP2 standings", "output": [["lex", "IMSA LMP2 standings championship"], ["lex", "IMSA \"International Motor Sports Association\" LMP2 class points"], ["vec", "IMSA WeatherTech Championship LMP2 class standings and results"], ["hyde", "The IMSA LMP2 class standings in the WeatherTech SportsCar Championship show a close fight for the title. The class features prototype-style race cars with spec Gibson V8 engines, competing alongside the top-tier GTP and GTD classes at endurance events."]]}
{"query": "IMSA Daytona 24", "output": [["lex", "IMSA Daytona 24 Hours \"Rolex 24\""], ["lex", "\"Daytona 24 Hours\" endurance race Rolex"], ["vec", "IMSA Rolex 24 at Daytona endurance race results"], ["hyde", "The Rolex 24 at Daytona is the season-opening round of the IMSA WeatherTech SportsCar Championship. The 24-hour endurance race at Daytona International Speedway features multi-class competition with GTP prototypes, LMP2, GTD Pro, and GTD cars racing simultaneously."]]}
{"query": "IMSA GTD class", "output": [["lex", "IMSA GTD \"Grand Touring Daytona\" class"], ["lex", "IMSA GTD GT3 sports car racing"], ["vec", "IMSA WeatherTech GTD class cars and competition"], ["hyde", "The IMSA GTD (Grand Touring Daytona) class features GT3-specification sports cars from manufacturers including Porsche, BMW, Mercedes-AMG, Lamborghini, and Ferrari. GTD Pro is the professional tier while GTD features a mix of professional and amateur drivers."]]}
{"query": "WEC Le Mans", "output": [["lex", "WEC \"World Endurance Championship\" Le Mans"], ["lex", "\"24 Hours of Le Mans\" FIA WEC endurance"], ["vec", "World Endurance Championship 24 Hours of Le Mans results"], ["hyde", "The 24 Hours of Le Mans is the crown jewel of the FIA World Endurance Championship. Held annually at the Circuit de la Sarthe in France, the race features Hypercar, LMP2, and LMGT3 classes competing over 24 hours on the legendary 13.6km circuit."]]}
{"query": "WEC Hypercar", "output": [["lex", "WEC \"World Endurance Championship\" Hypercar class"], ["lex", "FIA WEC Hypercar LMH LMDh prototype"], ["vec", "World Endurance Championship Hypercar class cars and manufacturers"], ["hyde", "The Hypercar class in the FIA World Endurance Championship features both Le Mans Hypercars (LMH) and Le Mans Daytona hybrid (LMDh) prototypes. Manufacturers including Toyota, Ferrari, Porsche, Peugeot, and Cadillac compete for the overall victory at Le Mans and WEC rounds."]]}
{"query": "WEC race calendar", "output": [["lex", "WEC \"World Endurance Championship\" race calendar schedule"], ["lex", "FIA WEC season rounds circuits dates"], ["vec", "FIA World Endurance Championship race schedule and calendar"], ["hyde", "The FIA World Endurance Championship calendar features eight rounds across the globe, including the 24 Hours of Le Mans, 6 Hours of Spa, and races at COTA, Fuji, Bahrain, and other circuits. Each round except Le Mans is a 6-hour or 8-hour race."]]}
{"query": "NASCAR Cup Series", "output": [["lex", "NASCAR Cup Series race results"], ["lex", "NASCAR stock car racing Cup Series standings"], ["vec", "NASCAR Cup Series race results and driver standings"], ["hyde", "The NASCAR Cup Series is the top tier of stock car racing in the United States. The season features 36 races across oval tracks, road courses, and superspeedways. The playoffs determine the champion through an elimination format culminating at Phoenix Raceway."]]}
{"query": "NASCAR Daytona 500", "output": [["lex", "NASCAR Daytona 500 race"], ["lex", "\"Daytona 500\" \"Great American Race\" NASCAR"], ["vec", "NASCAR Daytona 500 results and highlights"], ["hyde", "The Daytona 500 is the most prestigious race in NASCAR, opening the Cup Series season each February at Daytona International Speedway. Known as 'The Great American Race,' it features 200 laps of intense superspeedway drafting and pack racing on the 2.5-mile tri-oval."]]}
{"query": "NASCAR playoff standings", "output": [["lex", "NASCAR playoff standings Cup Series"], ["lex", "NASCAR Cup playoffs elimination points cutoff"], ["vec", "current NASCAR Cup Series playoff standings and elimination race"], ["hyde", "The NASCAR Cup Series playoffs feature 16 drivers competing across 10 races in four rounds. Four drivers are eliminated after each three-race round, with the Championship 4 racing for the title at the season finale. Wins and stage points determine advancement."]]}
{"query": "PGA golf tournament", "output": [["lex", "PGA \"Professional Golfers Association\" tournament"], ["lex", "PGA Tour golf tournament leaderboard results"], ["vec", "PGA Tour golf tournament results and leaderboard"], ["hyde", "The PGA Tour event concluded with a final-round 65 to win by two strokes at 18-under par. The tournament featured a stacked field including several major champions competing on the par-72 layout. The victory earned the champion 500 FedExCup points."]]}
{"query": "PGA major championship", "output": [["lex", "PGA golf major championship"], ["lex", "\"PGA Championship\" Masters \"US Open\" \"The Open\" golf major"], ["vec", "PGA Tour major championship results and history"], ["hyde", "The four men's golf majors are the Masters (April, Augusta National), the PGA Championship (May), the U.S. Open (June), and The Open Championship (July, British Open). These tournaments carry the most prestige and FedExCup points on the PGA Tour calendar."]]}
{"query": "ATP tennis rankings", "output": [["lex", "ATP \"Association of Tennis Professionals\" rankings"], ["lex", "ATP Tour men's tennis world rankings points"], ["vec", "Association of Tennis Professionals men's tennis world rankings"], ["hyde", "The ATP Rankings determine men's tennis player standings based on points earned at tournaments over the past 52 weeks. Grand Slams award the most points (2000 for the winner), followed by ATP Masters 1000 events. The year-end #1 ranking is one of tennis's highest honors."]]}
{"query": "ATP Grand Slam results", "output": [["lex", "ATP tennis Grand Slam results"], ["lex", "\"Grand Slam\" tennis tournament results draw men's"], ["vec", "men's tennis Grand Slam tournament results and draw"], ["hyde", "The Grand Slam tournaments are the four most prestigious events in tennis: the Australian Open (January), French Open (May-June), Wimbledon (June-July), and US Open (August-September). Each features a 128-player draw with best-of-five-sets matches in the men's singles."]]}
{"query": "WTA tennis", "output": [["lex", "WTA \"Women's Tennis Association\" tour"], ["lex", "WTA women's tennis rankings tournament results"], ["vec", "Women's Tennis Association tour results and world rankings"], ["hyde", "The WTA Tour is the top professional tennis circuit for women. The tour features four Grand Slams, WTA 1000 events, WTA 500, and WTA 250 tournaments. Rankings are based on points accumulated over a rolling 52-week period, with Grand Slams offering the highest point totals."]]}
{"query": "FIFA World Cup", "output": [["lex", "FIFA \"Fédération Internationale de Football Association\" World Cup"], ["lex", "FIFA World Cup soccer football tournament"], ["vec", "FIFA World Cup international soccer tournament results and history"], ["hyde", "The FIFA World Cup is the most prestigious international soccer tournament, held every four years. National teams from around the world compete through qualifying stages before 32 (expanded to 48 in 2026) teams meet at the finals. The tournament is the most-watched sporting event globally."]]}
{"query": "FIFA rankings", "output": [["lex", "FIFA world rankings football soccer"], ["lex", "\"FIFA rankings\" national team points international"], ["vec", "FIFA men's world rankings for international soccer teams"], ["hyde", "The FIFA World Rankings rank men's national football teams based on match results over the past four years, weighted by match importance, opponent strength, and confederation. The rankings determine seeding for World Cup draws and other FIFA competitions."]]}
{"query": "F1 qualifying results", "output": [["lex", "F1 \"Formula 1\" qualifying results grid"], ["lex", "Formula 1 qualifying session pole position Q1 Q2 Q3"], ["vec", "Formula 1 qualifying session results and starting grid"], ["hyde", "Formula 1 qualifying determines the starting grid through three knockout sessions. Q1 eliminates the slowest five cars, Q2 eliminates the next five, and Q3 is a top-10 shootout for pole position. Sprint qualifying sessions use a shorter format at select Grand Prix weekends."]]}
{"query": "NBA free agency", "output": [["lex", "NBA \"National Basketball Association\" free agency"], ["lex", "NBA free agent signings contracts offseason"], ["vec", "National Basketball Association free agency signings and contracts"], ["hyde", "NBA free agency begins July 1st each year when unrestricted free agents can negotiate with any team. The salary cap and luxury tax shape which teams can offer max contracts. Restricted free agents can receive offer sheets that their current team has the right to match."]]}
{"query": "NFL fantasy football", "output": [["lex", "NFL \"National Football League\" fantasy football"], ["lex", "fantasy football rankings waiver wire projections"], ["vec", "NFL fantasy football player rankings and waiver wire pickups"], ["hyde", "Fantasy football managers set weekly lineups of NFL players who earn points based on real-game statistics. Key positions include quarterback, running back, wide receiver, and tight end. Waiver wire pickups and trade strategies are crucial for navigating injuries and bye weeks throughout the season."]]}
{"query": "NASCAR Xfinity Series", "output": [["lex", "NASCAR Xfinity Series race results"], ["lex", "NASCAR Xfinity standings drivers points"], ["vec", "NASCAR Xfinity Series race results and driver standings"], ["hyde", "The NASCAR Xfinity Series is the second tier of NASCAR competition, serving as a development series for drivers aspiring to reach the Cup Series. Many Xfinity races are held on the same weekends as Cup events, with some Cup drivers making occasional starts."]]}
{"query": "MMA UFC event", "output": [["lex", "MMA UFC \"Ultimate Fighting Championship\" event"], ["lex", "MMA \"mixed martial arts\" UFC fight card"], ["vec", "UFC mixed martial arts event fight card and results"], ["hyde", "The UFC event featured 12 bouts across the preliminary and main card. The main event was a five-round championship fight, with the challenger earning a unanimous decision victory to claim the belt. Two performance bonuses were awarded for spectacular finishes."]]}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,399 @@
{"output": [["hyde", "BASE jumping involves parachuting from fixed objects: Buildings, Antennas, Spans (bridges), and Earth (cliffs). Unlike skydiving from aircraft, BASE jumps occur at much lower altitudes, giving jumpers only seconds to deploy their parachute."]], "query": "what is base jumping? /only:hyde"}
{"output": [["vec", "how to knife skills basics"], ["vec", "complete knife skills basics reference"]], "query": "knife skills basics /only:vec"}
{"output": [["vec", "complete React changelog 2025 reference"], ["vec", "how to React changelog 2025"]], "query": "React changelog 2025 /only:vec"}
{"output": [["vec", "understanding cold war key events"], ["vec", "learn about cold war key events"]], "query": "cold war key events /only:vec"}
{"output": [["vec", "how does culture shape people's ethical beliefs and moral values"], ["vec", "what is the relationship between cultural norms and ethical decision-making"]], "query": "how does culture influence ethics /only:vec"}
{"output": [["lex", "ethics vs morals difference"], ["lex", "ethics morals philosophy distinction"], ["lex", "moral principles ethical systems comparison"]], "query": "what is the difference between ethics and morals /only:lex"}
{"output": [["vec", "complete GitHub recent news November reference"], ["vec", "learn about GitHub recent news November"]], "query": "GitHub recent news November /only:vec"}
{"output": [["vec", "how can I respectfully learn about Native American culture and history"], ["vec", "what are good resources for understanding Indigenous peoples' traditions and heritage"]], "query": "how to learn about native american culture /only:vec"}
{"output": [["vec", "learn about decision making psychology"], ["vec", "how to decision making psychology"]], "query": "decision making psychology /only:vec"}
{"output": [["vec", "guide for grilling temperature chart"], ["vec", "understanding grilling temperature chart"]], "query": "grilling temperature chart /only:vec"}
{"output": [["hyde", "In Mexico, Día de los Muertos celebrates deceased loved ones with altars, marigolds, and sugar skulls. Hindu cremation ceremonies release the soul for reincarnation. In Ghana, elaborate fantasy coffins reflect the deceased's life. Japanese Obon festivals welcome ancestral spirits home."]], "query": "how do different cultures commemorate death? /only:hyde"}
{"output": [["vec", "guide for bronze age collapse"], ["vec", "understanding bronze age collapse"]], "query": "bronze age collapse /only:vec"}
{"output": [["vec", "how to time zones map"], ["vec", "complete time zones map reference"]], "query": "time zones map /only:vec"}
{"output": [["hyde", "Test a 12V car battery with a multimeter set to DC volts. A fully charged battery reads 12.6V or higher. Between 12.0-12.4V indicates partial charge. Below 12.0V means the battery is discharged. For a load test, apply a load equal to half the CCA rating for 15 seconds—voltage should stay above 9.6V."]], "query": "battery test /only:hyde"}
{"output": [["vec", "what were the major achievements and contributions of the han dynasty in china"], ["vec", "why is the han dynasty considered a golden age in chinese history"]], "query": "Han Dynasty China achievements /only:vec"}
{"output": [["hyde", "Water temperature and steep time vary by tea type. Black tea: 200-212°F for 3-5 minutes. Green tea: 160-180°F for 2-3 minutes. White tea: 160-185°F for 4-5 minutes. Oolong: 185-205°F for 3-5 minutes. Use 1 teaspoon of loose leaf per 8 oz cup. Pre-warm the teapot with hot water for consistent extraction."]], "query": "how to brew the perfect cup of tea /only:hyde"}
{"output": [["lex", "Docker new features 2025 guide"], ["lex", "Docker new features 2025 best practices"], ["lex", "Docker new features 2025 tutorial"]], "query": "Docker new features 2025 /only:lex"}
{"output": [["vec", "guide for weightlifting proper form"], ["vec", "how to weightlifting proper form"]], "query": "weightlifting proper form /only:vec"}
{"output": [["vec", "what was the byzantine empire and how long did it last after rome fell"], ["vec", "how did constantinople serve as the capital of the byzantine empire until 1453"]], "query": "Byzantine Empire Constantinople /only:vec"}
{"output": [["hyde", "Philosophy examines truth through several theories. The correspondence theory holds that truth is agreement between a proposition and reality. The coherence theory says a statement is true if it fits consistently within a system of beliefs. The pragmatic theory (James, Dewey) defines truth as what works in practice. Deflationary theories argue that \"true\" adds nothing beyond the assertion itself."]], "query": "how does philosophy explore the nature of truth? /only:hyde"}
{"output": [["vec", "how were the ancient egyptian pyramids constructed without modern technology"], ["vec", "what techniques and labor did ancient egyptians use to build the pyramids at giza"]], "query": "ancient Egypt pyramids construction /only:vec"}
{"output": [["lex", "Enlightenment 18th century intellectual movement"], ["lex", "Age of Enlightenment reason philosophy"], ["lex", "Enlightenment thinkers Voltaire Locke Kant"]], "query": "what was the enlightenment /only:lex"}
{"output": [["vec", "guide for Vue changelog 2025"], ["vec", "understanding Vue changelog 2025"]], "query": "Vue changelog 2025 /only:vec"}
{"output": [["hyde", "TCP provides reliable, ordered delivery with acknowledgments and retransmission. UDP is faster but unreliable—packets may arrive out of order or not at all. Use TCP for web, email, file transfer. Use UDP for video streaming, gaming, DNS where speed matters more than reliability."]], "query": "TCP vs UDP /only:hyde"}
{"output": [["hyde", "Start by cleaning the data: remove outliers using predefined criteria and check for missing values. Calculate descriptive statistics (mean, median, standard deviation). Visualize distributions with histograms or box plots. Apply appropriate statistical tests to evaluate hypotheses. Interpret results in context of your research question and note limitations."]], "query": "how to analyze experimental data /only:hyde"}
{"output": [["vec", "how do you find and vet a trustworthy real estate agent for buying or selling a home"], ["vec", "what qualities and credentials should you look for in a reliable realtor"]], "query": "how to find a reliable realtor /only:vec"}
{"output": [["hyde", "A capsule wardrobe consists of 30-40 versatile pieces that mix and match. Start by choosing a neutral color palette (black, navy, white, beige). Include 2-3 pairs of pants, 5-7 tops, 2 jackets, 2 pairs of shoes, and 1-2 dresses or suits. Remove items you haven't worn in a year. Invest in quality basics over trendy pieces."]], "query": "how to build a capsule wardrobe /only:hyde"}
{"output": [["hyde", "To sell a car privately, first determine a fair price using Kelley Blue Book or Edmunds. Gather the title, maintenance records, and smog certificate. List the car on Craigslist, Facebook Marketplace, or AutoTrader. When meeting buyers, accept cashier's checks or cash. Sign the title over and file a release of liability with your DMV."]], "query": "how to sell a car privately? /only:hyde"}
{"output": [["hyde", "Sailboats are propelled by wind acting on sails. Common types include dinghies (small, single-hull), keelboats (weighted keel for stability), catamarans (twin hulls), and sloops (single mast, fore-and-aft rigged). Key parts include the hull, mast, boom, jib, mainsail, rudder, and keel."]], "query": "sail boat /only:hyde"}
{"output": [["lex", "grammar punctuation rules best practices"], ["lex", "grammar punctuation rules documentation"], ["lex", "grammar punctuation rules tutorial"]], "query": "grammar punctuation rules /only:lex"}
{"output": [["vec", "what is tail recursion and how does tail call optimization prevent stack overflow"], ["vec", "how do you convert a recursive function to tail recursive form"]], "query": "tail recursion optimization /only:vec"}
{"output": [["vec", "how does the binary search algorithm work and what is its time complexity"], ["vec", "how do you implement binary search to find an element in a sorted array"]], "query": "binary search algorithm /only:vec"}
{"output": [["hyde", "For low light video, open your aperture to f/1.4f/2.8 and lower your shutter speed to 1/50 for 24fps footage. Raise ISO gradually — modern cameras handle ISO 32006400 with acceptable noise. Use a fast prime lens and add practical lights in the scene when possible."]], "query": "how to shoot video in low light /only:hyde"}
{"output": [["hyde", "Place eggs in a single layer in a pot and cover with cold water by 1 inch. Bring to a rolling boil, then remove from heat and cover. For soft-boiled: 6-7 minutes. For medium: 9-10 minutes. For hard-boiled: 12-13 minutes. Transfer immediately to an ice bath for 5 minutes. Older eggs (7-10 days) peel more easily than fresh ones."]], "query": "how to boil an egg perfectly /only:hyde"}
{"output": [["hyde", "The Great Wall of China is a series of fortifications built over centuries to protect Chinese states and empires from northern invasions. The most well-known sections were built during the Ming Dynasty (1368-1644). The total length, including all branches and sections across dynasties, is approximately 21,196 kilometers (13,171 miles)."]], "query": "what is the great wall of china? /only:hyde"}
{"output": [["vec", "guide for stock market basics beginners"], ["vec", "learn about stock market basics beginners"]], "query": "stock market basics beginners /only:vec"}
{"output": [["lex", "thought experiments philosophy reasoning"], ["lex", "philosophical thought experiment trolley problem examples"]], "query": "how do thought experiments aid philosophical reasoning /only:lex"}
{"output": [["lex", "world war 1 causes"], ["lex", "ww1 assassination archduke franz ferdinand"], ["lex", "causes great war 1914"]], "query": "causes of World War I /only:lex"}
{"output": [["lex", "ocean currents patterns tutorial"], ["lex", "ocean currents patterns examples"], ["lex", "ocean currents patterns documentation"]], "query": "ocean currents patterns /only:lex"}
{"output": [["lex", "sects of Islam Sunni Shia Sufi"], ["lex", "Islamic denominations branches"], ["lex", "Sunni Shia differences beliefs"]], "query": "what are the main sects of islam? /only:lex"}
{"output": [["lex", "Kubernetes changelog 2025 best practices"], ["lex", "Kubernetes changelog 2025 documentation"], ["lex", "Kubernetes changelog 2025 examples"]], "query": "Kubernetes changelog 2025 /only:lex"}
{"output": [["lex", "song worship significance religious singing"], ["lex", "worship music congregational singing hymns praise"]], "query": "what is the significance of song in worship? /only:lex"}
{"output": [["vec", "how to plan and plant a garden designed to be enjoyed at night"], ["vec", "what plants and flowers work best in a moon garden"]], "query": "how to create a moon garden? /only:vec"}
{"output": [["hyde", "In Christianity, sacredness is conferred by God's presence—churches, sacraments, and scripture are holy. In Hinduism, sacred rivers like the Ganges and temples house divine energy. Indigenous traditions see sacredness in natural features—mountains, groves, and animals. Islam treats the Quran and Mecca as inviolably sacred."]], "query": "how do religions interpret the concept of sacredness? /only:hyde"}
{"output": [["hyde", "The Ten Commandments (Decalogue) were given by God to Moses on Mount Sinai, as recorded in Exodus 20 and Deuteronomy 5. They form the foundational moral code of Judaism and Christianity, covering duties to God (no other gods, no idols, keep the Sabbath) and duties to others (honor parents, do not murder, steal, or lie)."]], "query": "what is the significance of the ten commandments /only:hyde"}
{"output": [["lex", "remove oil stains clothing"], ["lex", "grease stain removal fabric"], ["lex", "oil stain laundry treatment"]], "query": "how to remove oil stains from clothes /only:lex"}
{"output": [["hyde", "Culture shapes identity through language, traditions, values, and social norms internalized from childhood. Family, community, religion, and media all transmit cultural frameworks. Identity is constructed through negotiation between personal experiences and cultural expectations, creating a sense of belonging and self-understanding."]], "query": "how does culture influence identity? /only:hyde"}
{"output": [["lex", "philosophy of mind consciousness mental states"], ["lex", "philosophy of mind problem qualia dualism physicalism"]], "query": "what is the philosophy of mind /only:lex"}
{"output": [["vec", "how can someone find and volunteer for civic engagement and community initiatives"], ["vec", "what are ways to get involved in local civic volunteer opportunities"]], "query": "how to volunteer for civic initiatives /only:vec"}
{"output": [["lex", "climate science research findings 2025 2026"], ["lex", "climate change latest studies temperature emissions"]], "query": "latest findings in climate science /only:lex"}
{"output": [["hyde", "To fix a bug, first reproduce it reliably and identify the exact conditions that trigger it. Use a debugger or add logging to narrow down the faulty code path. Write a regression test that captures the bug, then modify the code until the test passes."]], "query": "bug fix /only:hyde"}
{"output": [["lex", "heirloom seed suppliers catalog"], ["lex", "buy heirloom seeds online non-GMO"], ["lex", "heirloom vegetable seed company"]], "query": "where to find heirloom seed suppliers? /only:lex"}
{"output": [["vec", "what defines a smart city and what technologies do they use"], ["vec", "how do smart cities use IoT sensors and data analytics to improve urban infrastructure"]], "query": "what are smart cities? /only:vec"}
{"output": [["hyde", "Sacred geometry assigns symbolic and spiritual meaning to geometric shapes and proportions found in nature. Key patterns include the Flower of Life (overlapping circles), Metatron's Cube, the golden ratio (1.618), and the Fibonacci spiral. These patterns appear in sunflower seeds, nautilus shells, and ancient temple architecture."]], "query": "what is sacred geometry? /only:hyde"}
{"output": [["hyde", "Raised garden beds are available at Home Depot, Lowe's, and garden centers. Online retailers like Gardener's Supply, Amazon, and Birdies offer metal and cedar kits. Cedar is rot-resistant and long-lasting; galvanized steel beds are durable and modern-looking."]], "query": "where to buy raised garden beds? /only:hyde"}
{"output": [["lex", "oil painting beginner supplies techniques"], ["lex", "oil painting start canvas brushes paints medium"]], "query": "how to start oil painting? /only:lex"}
{"output": [["vec", "how do I safely learn to do a backflip on a trampoline"], ["vec", "what is the proper technique for doing flips on a trampoline"]], "query": "how to do a flip on a trampoline /only:vec"}
{"output": [["hyde", "Philosophy of mind examines the nature of mental states, consciousness, and their relationship to the physical brain. Central questions include the mind-body problem: how do subjective experiences (qualia) arise from neural processes? Key positions include dualism, physicalism, functionalism, and property dualism."]], "query": "what is philosophy of mind /only:hyde"}
{"output": [["vec", "what are safe and effective methods to lose weight quickly"], ["vec", "how can I create a calorie deficit to lose weight without harming my health"]], "query": "how to lose weight fast? /only:vec"}
{"output": [["hyde", "The fall of the Western Roman Empire in 476 AD resulted from multiple factors: military overextension, barbarian invasions (Visigoths, Vandals, Ostrogoths), economic decline from debasement of currency, political instability with rapid emperor turnover, and the shift of power to Constantinople."]], "query": "what caused the fall of the roman empire /only:hyde"}
{"output": [["hyde", "Tokyo is the capital city of Japan. It became the capital in 1868 when Emperor Meiji moved the imperial seat from Kyoto. Tokyo, located on the eastern coast of Honshu, is the most populous metropolitan area in the world with over 37 million residents."]], "query": "what is the capital of japan /only:hyde"}
{"output": [["vec", "what items should I pack in my hospital bag before going into labor"], ["vec", "what is a complete packing checklist for the hospital for giving birth"]], "query": "what to pack in a hospital bag for labor? /only:vec"}
{"output": [["vec", "what is an anthology and how are literary anthologies compiled and organized"], ["vec", "what types of works are typically collected in an anthology such as short stories, poems, or essays"]], "query": "what is an anthology? /only:vec"}
{"output": [["hyde", "E-commerce enables businesses to sell products globally without physical storefronts. Companies use platforms like Shopify, Amazon Marketplace, and WooCommerce to reach customers online. In 2024, global e-commerce sales exceeded $6 trillion. Direct-to-consumer (DTC) brands cut out middlemen, while marketplaces aggregate sellers for one-stop shopping."]], "query": "what is the role of e-commerce in modern business /only:hyde"}
{"output": [["lex", "replace windshield wipers installation"], ["lex", "change wiper blades car DIY"], ["lex", "windshield wiper replacement size"]], "query": "how to replace windshield wipers? /only:lex"}
{"output": [["vec", "how is artificial intelligence being applied in healthcare for diagnosis and treatment"], ["vec", "what are the main uses of AI and machine learning in the medical field"]], "query": "how artificial intelligence is used in healthcare /only:vec"}
{"output": [["hyde", "Shoot at f/8 for deep depth of field and zone focus at 3 meters for quick candid shots. Use a 28mm or 35mm lens. Anticipate moments—find good light or backgrounds and wait for subjects to enter the frame. Shoot from the hip to stay inconspicuous."]], "query": "best techniques for street photography /only:hyde"}
{"output": [["hyde", "Lean manufacturing, derived from the Toyota Production System, aims to minimize waste (muda) while maximizing value. Its five principles: define value from the customer's perspective, map the value stream, create flow, establish pull, and pursue perfection through continuous improvement (kaizen)."]], "query": "what is lean manufacturing /only:hyde"}
{"output": [["hyde", "Deconstruction, associated with Jacques Derrida, is a method of critical analysis that examines how meaning in texts is constructed through binary oppositions (speech/writing, presence/absence). Derrida argued that meaning is never fixed; it is always deferred through a chain of signifiers. Deconstruction reveals the internal contradictions and assumptions hidden within texts."]], "query": "what is deconstruction /only:hyde"}
{"output": [["vec", "how do you perform file input and output operations in programming languages"], ["vec", "what are the common methods for reading from and writing to files in Python, Java, or C"]], "query": "io file /only:vec"}
{"output": [["vec", "how do you choose aftermarket car speakers that fit your vehicle and sound preferences"], ["vec", "what is the difference between coaxial and component car speakers and which should you buy"]], "query": "how to choose car speakers? /only:vec"}
{"output": [["lex", "improve sleep quality tips habits"], ["lex", "better sleep hygiene insomnia remedies"]], "query": "how to improve sleep quality /only:lex"}
{"output": [["lex", "philosophers define happiness philosophy"], ["lex", "happiness eudaimonia Aristotle hedonism"], ["lex", "philosophical theories happiness well-being"]], "query": "how do philosophers define happiness /only:lex"}
{"output": [["vec", "what ingredients and steps do you need to make slime at home"], ["vec", "how to make homemade slime using glue and borax or contact lens solution"]], "query": "how to make slime at home /only:vec"}
{"output": [["lex", "writing routine daily habit"], ["lex", "build writing practice discipline"], ["lex", "writing schedule productivity"]], "query": "how to build a writing routine /only:lex"}
{"output": [["vec", "how do you choose the right camera for your photography needs and budget?"], ["vec", "what factors should you consider when deciding between DSLR and mirrorless cameras?"]], "query": "how to choose the right camera /only:vec"}
{"output": [["lex", "sailboat sailing types rigging"], ["lex", "sailboat buy beginner learn to sail"], ["lex", "sailboat parts hull keel mast"]], "query": "sail boat /only:lex"}
{"output": [["vec", "what is a kubernetes ingress controller and how does it route external traffic to services"], ["vec", "how do you configure ingress rules for path-based and host-based routing in kubernetes"]], "query": "Kubernetes ingress controller /only:vec"}
{"output": [["lex", "sacred texts Judaism Torah Talmud"], ["lex", "Jewish scripture Hebrew Bible Tanakh"], ["lex", "Judaism holy books Mishnah"]], "query": "what are the sacred texts of judaism /only:lex"}
{"output": [["lex", "climate change agriculture crop yields"], ["lex", "global warming farming drought impact"], ["lex", "climate change food production"]], "query": "how climate change affects farming /only:lex"}
{"output": [["hyde", "REST uses fixed endpoints returning predefined data shapes. GraphQL uses one endpoint where clients specify exactly what fields they need, reducing over-fetching. REST is simpler, better cached. GraphQL excels for mobile apps, complex data requirements, and avoiding multiple round trips."]], "query": "GraphQL vs REST /only:hyde"}
{"output": [["hyde", "Congress.gov is the official source for federal legislation. Search by bill number, keyword, or sponsor. Each bill page shows full text, status, cosponsors, committee actions, and vote records. GovTrack.us and ProPublica's Congress API provide additional analysis and tracking tools."]], "query": "how to obtain information on federal legislation /only:hyde"}
{"output": [["hyde", "Open the hood and locate the air filter housing—usually a black plastic box near the engine. Unclip the latches, remove the old filter, and note its orientation. Insert the new filter with the rubber rim facing up, close the housing, and secure the clips. Replace every 12,000-15,000 miles."]], "query": "how to replace car air filter? /only:hyde"}
{"output": [["lex", "primary election definition process"], ["lex", "primary election presidential nomination"], ["lex", "open closed primary voting"]], "query": "what is a primary election /only:lex"}
{"output": [["hyde", "Install a sturdy trellis, arbor, or wire system at least 3 inches from the wall to allow air circulation. Tie canes horizontally with soft plant ties to encourage lateral growth and more blooms. Prune in late winter, removing dead wood and shortening side shoots to 2-3 buds."]], "query": "how to support climbing roses? /only:hyde"}
{"output": [["hyde", "A primary election is a vote held by a political party to choose its candidates for the general election. In a closed primary, only registered party members can vote. In an open primary, any registered voter may participate regardless of party affiliation."]], "query": "what is a primary election /only:hyde"}
{"output": [["lex", "blockchain technology distributed ledger"], ["lex", "blockchain cryptography decentralized consensus"]], "query": "how does blockchain technology work /only:lex"}
{"output": [["vec", "what are the best ways to improve a car's gas mileage and fuel efficiency"], ["vec", "what driving habits and car maintenance steps help reduce fuel consumption"]], "query": "how to improve car gas mileage? /only:vec"}
{"output": [["lex", "elasticsearch query dsl"], ["lex", "elasticsearch bool must should"], ["lex", "es full text search query"]], "query": "Elasticsearch query DSL /only:lex"}
{"output": [["hyde", "The central themes of To Kill a Mockingbird include racial injustice in the American South, as shown through Tom Robinson's trial. Moral courage is embodied by Atticus Finch, who defends Robinson despite social pressure. The loss of innocence is traced through Scout's growing awareness of prejudice and cruelty in Maycomb, Alabama."]], "query": "what are the themes of to kill a mockingbird? /only:hyde"}
{"output": [["hyde", "Check crime maps on sites like CrimeMapping.com or SpotCrime using the ZIP code. Walk the neighborhood at different times of day and night. Look for signs of community investment: maintained properties, street lighting, and active businesses. Talk to residents and visit the local police precinct for crime statistics."]], "query": "how to assess a neighborhood safety /only:hyde"}
{"output": [["lex", "scientific findings report writing"], ["lex", "research results publication format"], ["lex", "academic paper methodology results"]], "query": "how to report scientific findings /only:lex"}
{"output": [["vec", "what training plan should a beginner follow to prepare for their first triathlon"], ["vec", "how to balance swimming cycling and running workouts when training for a triathlon"]], "query": "how to prepare for a triathlon /only:vec"}
{"output": [["hyde", "A moon garden features white and pale-colored flowers, silver foliage, and night-blooming plants that glow under moonlight. Include moonflower (Ipomoea alba), white nicotiana, night-blooming jasmine, dusty miller, and lamb's ear. Add light-colored gravel paths for reflection."]], "query": "how to create a moon garden? /only:hyde"}
{"output": [["hyde", "In Plato's Symposium, beauty is a ladder ascending from physical attraction to the Form of Beauty itself. Kant distinguished between the beautiful (harmonious, universal pleasure) and the sublime (overwhelming grandeur). For Hegel, beauty in art reveals truth through sensory form. Contemporary aesthetics debates whether beauty is objective or culturally constructed."]], "query": "what is the significance of beauty in philosophy /only:hyde"}
{"output": [["lex", "influencer marketing social media brand promotion"], ["lex", "influencer campaigns Instagram TikTok sponsorship"]], "query": "what is influencer marketing /only:lex"}
{"output": [["hyde", "On the container, set display: flex; justify-content: center; align-items: center;. justify-content handles the main axis (horizontal by default), align-items handles the cross axis. Add height: 100vh to center within the viewport. For a single item, margin: auto also works inside flex containers."]], "query": "CSS flexbox centering /only:hyde"}
{"output": [["vec", "what is the Torah and why is it significant in Judaism"], ["vec", "what role does the Torah play in Jewish religious life and law"]], "query": "what is the significance of the torah? /only:vec"}
{"output": [["lex", "git rebase interactive squash"], ["lex", "git rebase -i edit commits"], ["lex", "git squash commits rebase"]], "query": "git rebase interactive /only:lex"}
{"output": [["lex", "hang artwork without nails wall"], ["lex", "picture hanging command strips adhesive hooks"]], "query": "how to hang artwork without nails /only:lex"}
{"output": [["vec", "what are the options for fixing damaged, chipped, or broken teeth?"], ["vec", "how do dentists repair teeth using crowns, veneers, bonding, and other dental treatments?"]], "query": "fix teeth /only:vec"}
{"output": [["lex", "daily motivation habits discipline routine"], ["lex", "stay motivated goals productivity tips"]], "query": "how to stay motivated daily? /only:lex"}
{"output": [["lex", "research bias scientific community peer review"], ["lex", "scientific bias mitigation replication reproducibility"]], "query": "how the scientific community addresses research bias /only:lex"}
{"output": [["vec", "what is a cliffhanger in storytelling and how does it create suspense"], ["vec", "how do writers use cliffhangers to keep readers or viewers engaged"]], "query": "what is cliffhanger? /only:vec"}
{"output": [["hyde", "Stream of consciousness is a narrative technique that presents a character's continuous flow of thoughts, feelings, and sensory impressions as they occur. Pioneered by writers like Virginia Woolf and James Joyce, it mimics the unstructured way the human mind processes experience."]], "query": "what is stream of consciousness /only:hyde"}
{"output": [["hyde", "Start with #!/usr/bin/env bash and set -euo pipefail. Use shellcheck for linting. Quote variables: \"$var\". Use [[ ]] for tests. Handle errors with trap. Use functions for reusability. Avoid parsing ls output—use globs. Prefer printf over echo. Use local variables in functions. Add -- before filenames from user input."]], "query": "shell script best practices /only:hyde"}
{"output": [["lex", "DNA function genetic information"], ["lex", "deoxyribonucleic acid protein synthesis"], ["lex", "DNA replication transcription translation"]], "query": "what is the function of dna /only:lex"}
{"output": [["hyde", "Webmail allows you to access your email through a web browser without installing a desktop client. Popular services include Gmail (mail.google.com), Outlook.com, Yahoo Mail, and ProtonMail. Log in with your credentials to read, compose, and manage messages from any device."]], "query": "web mail /only:hyde"}
{"output": [["hyde", "Store state remotely in S3, GCS, or Terraform Cloud—never commit tfstate to git. Configure backend in terraform { backend \"s3\" { bucket = \"my-state\", key = \"prod.tfstate\", region = \"us-east-1\", dynamodb_table = \"tf-locks\" } }. DynamoDB provides state locking to prevent concurrent modifications."]], "query": "terraform state management /only:hyde"}
{"output": [["vec", "understanding latest Vue updates"], ["vec", "learn about latest Vue updates"]], "query": "latest Vue updates /only:vec"}
{"output": [["vec", "guide for carbon footprint reduction"], ["vec", "learn about carbon footprint reduction"]], "query": "carbon footprint reduction /only:vec"}
{"output": [["lex", "homeostasis regulation human body"], ["lex", "negative feedback loop physiology"], ["lex", "body temperature pH blood glucose regulation"]], "query": "how does the body maintain homeostasis /only:lex"}
{"output": [["hyde", "Run EXPLAIN ANALYZE SELECT... to see the query plan and actual execution time. Look for Seq Scan on large tables—add an index with CREATE INDEX idx_name ON table(column). B-tree indexes work for equality and range queries, GIN for full-text search and arrays, GiST for geometric data."]], "query": "PostgreSQL indexes explain /only:hyde"}
{"output": [["lex", "what changed in AWS 2025 examples"], ["lex", "what changed in AWS 2025 guide"], ["lex", "what changed in AWS 2025 best practices"]], "query": "what changed in AWS 2025 /only:lex"}
{"output": [["hyde", "Ethologists use direct observation, video tracking, and GPS telemetry to study animal behavior in natural habitats. Lab experiments control variables to test hypotheses about cognition and social behavior. Focal sampling follows one individual; scan sampling records group behavior at intervals."]], "query": "how do scientists study animal behavior /only:hyde"}
{"output": [["lex", "tech troubleshooting fix repair computer"], ["lex", "technology fix common problems software hardware"], ["lex", "tech support fix device issue"]], "query": "tech fix /only:lex"}
{"output": [["vec", "what do the common http status codes mean and when should you use each"], ["vec", "how do you choose the right http status code for api responses"]], "query": "http status codes meaning /only:vec"}
{"output": [["lex", "recent Shopify changes 2025 examples"], ["lex", "recent Shopify changes 2025 tutorial"], ["lex", "recent Shopify changes 2025 best practices"]], "query": "recent Shopify changes 2025 /only:lex"}
{"output": [["lex", "postgresql index explain analyze"], ["lex", "postgres btree index performance"], ["lex", "create index postgresql"]], "query": "PostgreSQL indexes explain /only:lex"}
{"output": [["hyde", "200 OK success, 201 Created for POST, 204 No Content for DELETE. 400 Bad Request for invalid input, 401 Unauthorized for auth required, 403 Forbidden for insufficient permissions, 404 Not Found. 500 Internal Server Error for unexpected failures, 503 Service Unavailable for temporary issues."]], "query": "http status codes meaning /only:hyde"}
{"output": [["lex", "kindle library ebook collection"], ["lex", "Amazon Kindle digital library management"], ["lex", "kindle book organization archive"]], "query": "kindle library /only:lex"}
{"output": [["lex", "family role society function socialization"], ["lex", "family structure social institution support"]], "query": "what is the role of family in society /only:lex"}
{"output": [["lex", "webhook vs polling api"], ["lex", "push vs pull api pattern"], ["lex", "webhook callback http"]], "query": "webhook vs api polling /only:lex"}
{"output": [["lex", "space exploration changelog 2026 documentation"], ["lex", "space exploration changelog 2026 best practices"], ["lex", "space exploration changelog 2026 guide"]], "query": "space exploration changelog 2026 /only:lex"}
{"output": [["lex", "resilience training programs mental toughness"], ["lex", "resilience building workplace employee training"]], "query": "resilience training programs /only:lex"}
{"output": [["hyde", "A scientific research proposal typically includes: title, abstract, specific aims, background and significance, preliminary data, research design and methods, timeline, budget and justification, and references. The specific aims page is the most critical — state the problem, your hypothesis, and 2-3 measurable objectives clearly in one page."]], "query": "how to write a scientific research proposal /only:hyde"}
{"output": [["hyde", "Match tractor horsepower to your acreage: 25-45 HP for under 50 acres, 45-85 HP for 50-200 acres, and 100+ HP for large operations. Consider PTO power for running implements like mowers and tillers. Evaluate whether two-wheel or four-wheel drive suits your terrain. Used equipment can save 40-60% over new."]], "query": "how to choose farm equipment /only:hyde"}
{"output": [["hyde", "To enhance creativity, practice divergent thinking by generating many ideas without judgment. Keep a daily journal, expose yourself to new experiences, and set aside unstructured time for daydreaming. Research shows that walking, adequate sleep, and constraints can all stimulate creative problem-solving."]], "query": "how to enhance creativity? /only:hyde"}
{"output": [["hyde", "Culture shapes ethics by defining what a society considers right or wrong. Collectivist cultures may prioritize group harmony and duty to family, while individualist cultures emphasize personal autonomy and rights. Cultural relativism argues that moral standards are culturally defined, while universalists hold that some ethical principles transcend culture."]], "query": "how does culture influence ethics /only:hyde"}
{"output": [["vec", "what are writing prompts and how do writers use them for inspiration"], ["vec", "how do writing prompts help overcome writer's block and spark creativity"]], "query": "what are writing prompts? /only:vec"}
{"output": [["hyde", "Moral philosophy, or ethics, is the branch of philosophy concerned with questions of right and wrong conduct. It includes three main branches: metaethics (the nature of moral judgments), normative ethics (frameworks like utilitarianism, deontology, and virtue ethics), and applied ethics (specific issues like abortion or euthanasia)."]], "query": "what is moral philosophy /only:hyde"}
{"output": [["lex", "participate public policy discussion civic"], ["lex", "public policy engagement town hall"], ["lex", "citizen participation policy advocacy"]], "query": "how to participate in public policy discussions /only:lex"}
{"output": [["lex", "recent React changes 2025 guide"], ["lex", "recent React changes 2025 best practices"], ["lex", "recent React changes 2025 examples"]], "query": "recent React changes 2025 /only:lex"}
{"output": [["vec", "what algorithms are used for api rate limiting and how do they differ"], ["vec", "how do token bucket and sliding window rate limiting algorithms work"]], "query": "rate limiting algorithms /only:vec"}
{"output": [["lex", "volunteer civic initiatives community service"], ["lex", "volunteering local government community projects"]], "query": "how to volunteer for civic initiatives /only:lex"}
{"output": [["lex", "dependency injection di pattern"], ["lex", "di inversion of control ioc"], ["lex", "dependency injection testing"]], "query": "dependency injection benefits /only:lex"}
{"output": [["hyde", "Algae produce approximately 50% of the world's oxygen through photosynthesis and form the base of aquatic food chains. Phytoplankton, a type of microalgae, supports marine ecosystems by providing energy to zooplankton, fish, and larger organisms."]], "query": "what is the significance of algae in ecosystems /only:hyde"}
{"output": [["lex", "JSON serialization deserialization"], ["lex", "JSON serialize object string"], ["lex", "JSON stringify parse encoding"]], "query": "json serial /only:lex"}
{"output": [["vec", "how to Kubernetes recent news November"], ["vec", "guide for Kubernetes recent news November"]], "query": "Kubernetes recent news November /only:vec"}
{"output": [["lex", "grow blueberries home garden"], ["lex", "blueberry bush planting acidic soil"], ["lex", "container blueberry growing care"]], "query": "how to grow blueberries at home? /only:lex"}
{"output": [["vec", "what is database sharding and what strategies exist for partitioning data"], ["vec", "how do you choose a shard key and what are the tradeoffs of different sharding approaches"]], "query": "database sharding strategies /only:vec"}
{"output": [["vec", "how to post and browse classified ads on Craigslist"], ["vec", "how does Craigslist work for buying, selling, and listing items locally"]], "query": "craigslist ads /only:vec"}
{"output": [["lex", "protect business data security cybersecurity"], ["lex", "data protection encryption backup strategy"], ["lex", "business data security firewall access control"]], "query": "how to protect business data /only:lex"}
{"output": [["vec", "what is an elevator pitch and how do you structure an effective one"], ["vec", "how do you deliver a compelling 30-second pitch for a business idea or job opportunity"]], "query": "what is an elevator pitch /only:vec"}
{"output": [["hyde", "A regex (regular expression) matches text patterns. Common syntax: `.` matches any character, `*` means zero or more, `+` means one or more, `?` means optional. `[a-z]` matches lowercase letters. `\\d` matches digits. Capture groups use parentheses: `(\\d{3})-(\\d{4})` matches and captures phone number parts. Use `^` for start and `$` for end of line."]], "query": "regex match /only:hyde"}
{"output": [["lex", "vote in person polling place Election Day"], ["lex", "in-person voting process ID requirements"]], "query": "how do i vote in person /only:lex"}
{"output": [["lex", "logic philosophy significance role"], ["lex", "formal logic philosophical argument validity"]], "query": "what is the significance of logic in philosophy /only:lex"}
{"output": [["vec", "how does rising global temperature affect crop yields and food production"], ["vec", "what effects does climate change have on soil quality and growing seasons for farmers"]], "query": "how climate change affects farming /only:vec"}
{"output": [["vec", "how to machine learning recent news November"], ["vec", "understanding machine learning recent news November"]], "query": "machine learning recent news November /only:vec"}
{"output": [["hyde", "Consumers with the same group.id share partitions—each partition is consumed by only one consumer in the group. Adding consumers triggers rebalancing. If consumers > partitions, some idle. Offsets track progress per partition. Use enable.auto.commit=false for exactly-once semantics with manual commits."]], "query": "kafka consumer groups /only:hyde"}
{"output": [["hyde", "Yoga is an ancient practice combining physical postures (asanas), breathing techniques (pranayama), and meditation. Regular practice improves flexibility, builds strength, reduces stress and anxiety, lowers blood pressure, and enhances sleep quality. Styles range from gentle Hatha to vigorous Vinyasa and Ashtanga."]], "query": "what is yoga and its benefits /only:hyde"}
{"output": [["vec", "what frameworks or steps help with making ethical decisions in difficult situations"], ["vec", "how do you systematically evaluate moral choices when facing an ethical dilemma"]], "query": "how to approach ethical decision-making /only:vec"}
{"output": [["lex", "exchange-traded funds ETFs investing"], ["lex", "ETF index fund stock market"], ["lex", "ETF vs mutual fund comparison"]], "query": "what are exchange-traded funds (etfs) /only:lex"}
{"output": [["lex", "Jazz Age history 1920s"], ["lex", "Jazz Age Harlem Renaissance Roaring Twenties"], ["lex", "jazz music history Louis Armstrong"]], "query": "what is the history of the jazz age /only:lex"}
{"output": [["vec", "how did the Industrial Revolution transform society, economy, and daily life?"], ["vec", "what were the major social and economic impacts of the Industrial Revolution on workers and cities?"]], "query": "what was the impact of the industrial revolution on society? /only:vec"}
{"output": [["lex", "yoga benefits health flexibility stress"], ["lex", "yoga physical mental health advantages"]], "query": "what are the benefits of yoga /only:lex"}
{"output": [["lex", "business plan writing template sections"], ["lex", "business plan executive summary financial projections"]], "query": "how to write a business plan /only:lex"}
{"output": [["lex", "Catholic Church Middle Ages role"], ["lex", "medieval church political power papacy"], ["lex", "Catholic Church feudalism education medieval"]], "query": "what was the role of the catholic church in the middle ages? /only:lex"}
{"output": [["lex", "Vue recent news October documentation"], ["lex", "Vue recent news October guide"], ["lex", "Vue recent news October tutorial"]], "query": "Vue recent news October /only:lex"}
{"output": [["hyde", "The protagonist is the central character of a narrative, the one whose goals and conflicts drive the plot. The story is told from their perspective or follows their journey. Protagonists are not always heroes—they can be antiheroes or morally ambiguous characters. The antagonist opposes the protagonist, creating the central conflict of the story."]], "query": "what is a protagonist? /only:hyde"}
{"output": [["lex", "mixed media art techniques materials"], ["lex", "mixed media collage painting assemblage"]], "query": "what is mixed media art? /only:lex"}
{"output": [["hyde", "Feminist ethics emerged from Carol Gilligan's critique of Kohlberg's moral development theory, arguing that women's moral reasoning emphasizes care and relationships rather than abstract principles of justice. Nel Noddings developed the ethics of care, centering moral life on attentiveness, responsibility, and responsiveness to the needs of particular others."]], "query": "what are the foundations of feminist ethics /only:hyde"}
{"output": [["lex", "Renaissance literature authors works"], ["lex", "Renaissance literary period Shakespeare Petrarch humanism"]], "query": "renaissance literature /only:lex"}
{"output": [["hyde", "Start by setting small, achievable goals and completing them—each success builds evidence of competence. Practice self-compassion: replace harsh self-criticism with the tone you'd use with a friend. Keep a \"wins\" journal and review it weekly. Gradually expand your comfort zone by doing one slightly uncomfortable thing each day. Confidence grows from accumulated experience, not positive thinking alone."]], "query": "how to build self-confidence /only:hyde"}
{"output": [["vec", "how have major philosophers throughout history defined happiness and well-being?"], ["vec", "what is the difference between Aristotle's eudaimonia and hedonistic views of happiness?"]], "query": "how do philosophers define happiness /only:vec"}
{"output": [["lex", "personal finance management"], ["lex", "manage money budgeting saving investing"], ["lex", "personal financial planning"]], "query": "how to manage personal finances /only:lex"}
{"output": [["hyde", "JSON: strict syntax, no comments, explicit quotes, universal parsing. YAML: superset of JSON, allows comments, cleaner for humans, indentation-based. Use JSON for data interchange, APIs, when strict parsing needed. Use YAML for configs (Docker Compose, Kubernetes, CI/CD) where human editing is common. YAML gotchas: Norway problem (NO parsed as false), inconsistent indentation."]], "query": "yaml vs json config /only:hyde"}
{"output": [["lex", "Kubernetes changelog 2026 documentation"], ["lex", "Kubernetes changelog 2026 examples"], ["lex", "Kubernetes changelog 2026 tutorial"]], "query": "Kubernetes changelog 2026 /only:lex"}
{"output": [["lex", "retirement planning strategies guide"], ["lex", "retirement planning strategies documentation"], ["lex", "retirement planning strategies examples"]], "query": "retirement planning strategies /only:lex"}
{"output": [["vec", "how can citizens effectively participate in public policy discussions and influence government decisions?"], ["vec", "what are the ways individuals can engage in public policy debates at the local, state, and federal level?"]], "query": "how to participate in public policy discussions /only:vec"}
{"output": [["vec", "how to fix a dripping faucet by replacing the washer or cartridge"], ["vec", "what are the step-by-step instructions for repairing a leaky kitchen or bathroom faucet"]], "query": "how to repair a leaky faucet /only:vec"}
{"output": [["hyde", "The Meiji Restoration (1868) ended 250 years of Tokugawa shogunate rule, restoring imperial power under Emperor Meiji. Japan rapidly industrialized and westernized: abolished feudalism, created national army, built railways, established constitution (1889). Slogan: 'Rich country, strong army.' Japan defeated China (1895) and Russia (1905), becoming a world power within 50 years."]], "query": "Meiji Restoration Japan /only:hyde"}
{"output": [["lex", "AI recent news December documentation"], ["lex", "AI recent news December guide"], ["lex", "AI recent news December best practices"]], "query": "AI recent news December /only:lex"}
{"output": [["lex", "ocean plastic pollution examples"], ["lex", "ocean plastic pollution guide"], ["lex", "ocean plastic pollution documentation"]], "query": "ocean plastic pollution /only:lex"}
{"output": [["hyde", "Context is built-in, simple for low-frequency updates like themes and auth. Redux adds boilerplate but provides devtools, middleware, time-travel debugging, predictable updates. Context re-renders all consumers on any change; Redux allows granular subscriptions. Use Context for simple cases, Redux for complex state logic."]], "query": "React context vs Redux /only:hyde"}
{"output": [["lex", "ipv4 ipv6 difference"], ["lex", "ipv6 address format"], ["lex", "ipv4 exhaustion ipv6 transition"]], "query": "IPv4 vs IPv6 /only:lex"}
{"output": [["hyde", "Turn off the water supply valves under the sink. Remove the faucet handle by unscrewing the decorative cap and handle screw. Pull out the stem or cartridge. For compression faucets, replace the rubber washer and O-ring. For cartridge faucets, replace the entire cartridge. Reassemble, turn the water back on, and test for leaks."]], "query": "how to repair a leaky faucet /only:hyde"}
{"output": [["hyde", "Faith in spirituality serves as the foundation for trust in a reality beyond the material world. It enables surrender to uncertainty and provides a framework for interpreting suffering and purpose. Unlike dogmatic belief, spiritual faith often involves personal experience—a felt sense of connection to something greater that sustains practice through doubt and difficulty."]], "query": "what is the role of faith in spirituality /only:hyde"}
{"output": [["vec", "what economic and geopolitical factors cause stock market volatility"], ["vec", "why do financial markets experience sudden price swings and instability"]], "query": "what causes market volatility /only:vec"}
{"output": [["lex", "calculus derivatives explained best practices"], ["lex", "calculus derivatives explained examples"], ["lex", "calculus derivatives explained documentation"]], "query": "calculus derivatives explained /only:lex"}
{"output": [["lex", "machine learning changelog 2025 examples"], ["lex", "machine learning changelog 2025 guide"], ["lex", "machine learning changelog 2025 best practices"]], "query": "machine learning changelog 2025 /only:lex"}
{"output": [["vec", "what should a beginner know before going kayaking for the first time"], ["vec", "how do I paddle and balance a kayak as a first-time kayaker"]], "query": "how to kayak for the first time /only:vec"}
{"output": [["lex", "Earth Hour participation lights off event"], ["lex", "Earth Hour date 2026 how to join"]], "query": "how to participate in earth hour? /only:lex"}
{"output": [["lex", "TypeScript changelog 2025 documentation"], ["lex", "TypeScript changelog 2025 examples"], ["lex", "TypeScript changelog 2025 guide"]], "query": "TypeScript changelog 2025 /only:lex"}
{"output": [["vec", "how does spiritual leadership influence organizations and their members"], ["vec", "what role does spiritual leadership play in providing meaning and purpose at work"]], "query": "what is the importance of spiritual leadership? /only:vec"}
{"output": [["lex", "rivers that cross multiple countries documentation"], ["lex", "rivers that cross multiple countries tutorial"], ["lex", "rivers that cross multiple countries guide"]], "query": "rivers that cross multiple countries /only:lex"}
{"output": [["vec", "how do asynchronous programming patterns work in web development and API requests?"], ["vec", "what are the best async web frameworks for building non-blocking HTTP servers?"]], "query": "async web /only:vec"}
{"output": [["vec", "where can I buy eco-friendly and sustainably made furniture"], ["vec", "what brands and stores sell furniture made from sustainable or recycled materials"]], "query": "where to find eco-friendly furniture /only:vec"}
{"output": [["vec", "how often should windshield wipers be replaced and what are signs they need changing"], ["vec", "what are the signs that windshield wiper blades are worn out and need replacement"]], "query": "when to replace windshield wipers? /only:vec"}
{"output": [["lex", "just society characteristics principles fairness"], ["lex", "social justice equality Rawls distributive justice"]], "query": "what are the characteristics of a just society /only:lex"}
{"output": [["hyde", "Avoid comparing siblings to each other. Give each child individual attention and acknowledge their unique strengths. Teach conflict resolution skills rather than always intervening. Set clear family rules about respectful behavior and let children solve minor disputes themselves."]], "query": "how to manage sibling rivalry? /only:hyde"}
{"output": [["vec", "what are practical strategies for building self-confidence and overcoming self-doubt"], ["vec", "how can someone develop greater self-confidence through daily habits and mindset shifts"]], "query": "how to build self-confidence /only:vec"}
{"output": [["lex", "React changelog 2026 tutorial"], ["lex", "React changelog 2026 examples"], ["lex", "React changelog 2026 documentation"]], "query": "React changelog 2026 /only:lex"}
{"output": [["vec", "what type of soil do roses grow best in and how should it be prepared"], ["vec", "what soil pH and composition are ideal for growing healthy rose bushes"]], "query": "what are the best soil types for roses /only:vec"}
{"output": [["hyde", "Compound interest is calculated on both the principal and accumulated interest. The formula is A = P(1 + r/n)^(nt), where P is principal, r is annual rate, n is compounding frequency, and t is time in years. Monthly compounding on $10,000 at 5% yields $16,470 after 10 years."]], "query": "how does compound interest work /only:hyde"}
{"output": [["hyde", "Tail recursion: recursive call is the last operation, no work after it returns. TCO reuses stack frame instead of adding new one—prevents stack overflow. Convert by passing accumulated result as parameter: factorial(n, acc=1) { return n <= 1 ? acc : factorial(n-1, n*acc); }. Not all languages implement TCO—JavaScript in strict mode, Scheme yes, Python no."]], "query": "tail recursion optimization /only:hyde"}
{"output": [["hyde", "Generics let you write flexible, reusable code while maintaining type safety. Declare with angle brackets: function identity<T>(arg: T): T { return arg; }. Add constraints with extends: function getLength<T extends { length: number }>(item: T): number { return item.length; }."]], "query": "TypeScript generics /only:hyde"}
{"output": [["hyde", "Spiritual leadership theory proposes that leaders who foster a sense of calling, meaning, and membership create more engaged and productive organizations. It emphasizes vision, altruistic love, and hope as core values that transcend traditional management."]], "query": "what is the importance of spiritual leadership? /only:hyde"}
{"output": [["vec", "how does culture shape a person's sense of identity"], ["vec", "in what ways do cultural values and traditions influence who we become"]], "query": "how does culture influence identity? /only:vec"}
{"output": [["vec", "what strategies do organizations use to drive successful digital transformation"], ["vec", "how do enterprises plan and execute a digital transformation initiative"]], "query": "digital transformation strategies /only:vec"}
{"output": [["hyde", "Start small: make eye contact and greet one new person at each event. Prepare a few open-ended questions in advance. Focus on listening rather than performing. After each interaction, note what went well. Gradual exposure reduces anxiety over time—the more you practice, the more natural conversations become."]], "query": "how to build confidence in social situations? /only:hyde"}
{"output": [["lex", "analyze political candidate stance positions"], ["lex", "candidate policy positions voting record"], ["lex", "compare political candidates issues"]], "query": "how to analyze a political candidate's stance /only:lex"}
{"output": [["vec", "how does the jwt refresh token flow work for maintaining user sessions"], ["vec", "what is the difference between access tokens and refresh tokens in jwt authentication"]], "query": "JWT token refresh /only:vec"}
{"output": [["lex", "buy used cars online marketplace"], ["lex", "certified pre-owned cars website"], ["lex", "online used car dealers Carvana AutoTrader"]], "query": "where to buy used cars online /only:lex"}
{"output": [["lex", "GitHub Actions workflow guide"], ["lex", "GitHub Actions workflow examples"], ["lex", "GitHub Actions workflow documentation"]], "query": "GitHub Actions workflow /only:lex"}
{"output": [["hyde", "Use `git push origin main` to push your local main branch to the remote. For a new branch, use `git push -u origin feature-branch` to set the upstream tracking reference. If the push is rejected because the remote has new commits, run `git pull --rebase` first, then push again."]], "query": "git push /only:hyde"}
{"output": [["vec", "what is Kant's categorical imperative and how does it function as a moral principle"], ["vec", "how does the categorical imperative test whether an action is morally permissible"]], "query": "what is the categorical imperative /only:vec"}
{"output": [["hyde", "Build your personal brand by defining your niche and unique value proposition. Create consistent profiles across LinkedIn, Twitter, and a personal website. Publish content regularly—blog posts, videos, or podcasts—that demonstrates your expertise. Engage authentically with your audience and network at industry events."]], "query": "how to build a personal brand /only:hyde"}
{"output": [["hyde", "Augmented reality overlays digital content onto the real world and is applied across many fields. In healthcare, surgeons use AR to visualize anatomy during procedures. In education, AR apps bring textbook content to life in 3D. Retailers like IKEA use AR to let customers preview furniture in their homes. In manufacturing, AR guides workers through assembly with step-by-step overlays."]], "query": "how augmented reality is applied in different fields /only:hyde"}
{"output": [["lex", "memory leak debug profiler"], ["lex", "memory leak detection tools"], ["lex", "heap dump memory analysis"]], "query": "memory leak debugging /only:lex"}
{"output": [["hyde", "Zero waste is a philosophy and lifestyle aiming to send nothing to landfills by reducing consumption, reusing items, recycling, and composting. Practical steps include using reusable bags, bottles, and containers, buying in bulk, composting food scraps, and choosing products with minimal or recyclable packaging."]], "query": "what is zero waste? /only:hyde"}
{"output": [["hyde", "Improve concentration by eliminating distractions: silence notifications, use website blockers, and work in a quiet environment. The Pomodoro Technique—25 minutes of focused work followed by a 5-minute break—builds sustained attention. Regular exercise, adequate sleep (7-9 hours), and mindfulness meditation physically strengthen the brain's prefrontal cortex."]], "query": "how to enhance concentration /only:hyde"}
{"output": [["vec", "what strategies and techniques can improve productivity in the workplace"], ["vec", "how can employees and managers increase work output and reduce wasted time"]], "query": "how to improve workplace productivity /only:vec"}
{"output": [["vec", "how do I fix a car key fob that stopped working"], ["vec", "how to replace the battery or reprogram a car key fob"]], "query": "how to fix car key fob? /only:vec"}
{"output": [["vec", "what are the central concepts and key features of Taoist philosophy?"], ["vec", "how does Taoism emphasize living in harmony with the Tao and the concept of wu wei?"]], "query": "what are the key features of taoist philosophy? /only:vec"}
{"output": [["hyde", "Open with a vivid, specific anecdote—not a generic quote. Show rather than tell by describing experiences that shaped your goals. Connect your past to your intended field of study. Be authentic; admissions officers read thousands of essays and recognize genuine voice immediately."]], "query": "how to write a standout personal statement /only:hyde"}
{"output": [["hyde", "Outdoor survival training teaches skills needed to stay alive in wilderness emergencies. Core topics include building emergency shelters from natural materials, finding and purifying water, starting fire without matches using a ferro rod or bow drill, signaling for rescue, and basic navigation without GPS. Courses range from weekend workshops to multi-week immersive programs."]], "query": "what is outdoor survival training? /only:hyde"}
{"output": [["hyde", "Existentialists like Sartre argued life has no inherent meaning—we must create it through our choices. Aristotle proposed eudaimonia (flourishing) as life's purpose. Camus explored the absurd, suggesting we must find meaning despite an indifferent universe. Eastern philosophy often points to liberation from suffering."]], "query": "how do philosophers approach the meaning of life /only:hyde"}
{"output": [["vec", "complete japanese hiragana katakana reference"], ["vec", "guide for japanese hiragana katakana"]], "query": "japanese hiragana katakana /only:vec"}
{"output": [["lex", "what changed in machine learning 2025 guide"], ["lex", "what changed in machine learning 2025 best practices"], ["lex", "what changed in machine learning 2025 documentation"]], "query": "what changed in machine learning 2025 /only:lex"}
{"output": [["hyde", "Set up your home office in a quiet room with natural light. Invest in an ergonomic chair with lumbar support and a desk at elbow height (28-30 inches). Position your monitor at arm's length with the top at eye level. Use a desk lamp with 4000-5000K color temperature. Keep cables organized and add a plant—studies show greenery reduces stress and improves focus."]], "query": "how to create a home office space /only:hyde"}
{"output": [["vec", "complete latest Shopify updates reference"], ["vec", "guide for latest Shopify updates"]], "query": "latest Shopify updates /only:vec"}
{"output": [["vec", "learn about Next.js new features 2026"], ["vec", "how to Next.js new features 2026"]], "query": "Next.js new features 2026 /only:vec"}
{"output": [["hyde", "The Roman Empire's cultural legacy includes Latin (the root of Romance languages), Roman law (the basis of civil law systems worldwide), architectural innovations like arches, aqueducts, and concrete, republican government concepts, road networks, and the spread of Christianity. Roman art, literature, and engineering influenced Western civilization for centuries."]], "query": "how did the roman empire impact culture? /only:hyde"}
{"output": [["hyde", "Check your local government website or social media for upcoming town hall schedules. Arrive early and sign up to speak if required. Prepare a concise statement (usually 2-3 minutes). Stay respectful and on-topic. Bring supporting data or personal stories to strengthen your point."]], "query": "how to participate in a town hall meeting /only:hyde"}
{"output": [["vec", "how can I become a better and more active listener in conversations"], ["vec", "what techniques improve listening skills and show empathy"]], "query": "how to be a good listener /only:vec"}
{"output": [["hyde", "WebSocket provides full-duplex communication over a single TCP connection. After an HTTP upgrade handshake, client and server can send messages in both directions without polling. Use `new WebSocket('ws://host/path')` on the client and a library like ws on the server."]], "query": "web socket /only:hyde"}
{"output": [["hyde", "Partitions enable parallelism—each partition is consumed by one consumer in a group. Messages with same key go to same partition, preserving order per key. More partitions = more throughput but more overhead. Start with partitions = max(expected throughput / partition throughput, consumer count). Can't reduce partitions, only increase."]], "query": "apache kafka partitions /only:hyde"}
{"output": [["vec", "guide for inflation effects on savings"], ["vec", "complete inflation effects on savings reference"]], "query": "inflation effects on savings /only:vec"}
{"output": [["vec", "how do nginx location blocks work and in what order are they matched"], ["vec", "what is the syntax for nginx location directives including prefix and regex matching"]], "query": "nginx location block /only:vec"}
{"output": [["vec", "what are the key differences between ipv4 and ipv6 addressing"], ["vec", "why is ipv6 necessary and how does the transition from ipv4 work"]], "query": "IPv4 vs IPv6 /only:vec"}
{"output": [["hyde", "Startup capital can come from bootstrapping, friends and family, angel investors, venture capital firms, crowdfunding platforms like Kickstarter, or government grants. Prepare a pitch deck with your business model, market size, traction metrics, and financial projections before approaching investors."]], "query": "how to raise startup capital /only:hyde"}
{"output": [["lex", "tectonic plate boundaries examples"], ["lex", "tectonic plate boundaries documentation"], ["lex", "tectonic plate boundaries best practices"]], "query": "tectonic plate boundaries /only:lex"}
{"output": [["lex", "surfing wave types tutorial"], ["lex", "surfing wave types examples"], ["lex", "surfing wave types documentation"]], "query": "surfing wave types /only:lex"}
{"output": [["lex", "light meter photography exposure reading"], ["lex", "incident reflected light meter settings"]], "query": "how to use a light meter /only:lex"}
{"output": [["hyde", "Literary parody imitates the style, conventions, or content of a specific work or genre for comedic or critical effect. It exaggerates distinctive features to expose flaws or absurdities. Examples include Don Quixote (parodying chivalric romances), Northanger Abbey (Gothic novels), and The Hitchhiker's Guide to the Galaxy (science fiction tropes)."]], "query": "what is literary parody? /only:hyde"}
{"output": [["lex", "peel and stick wallpaper installation"], ["lex", "self-adhesive wallpaper apply walls"]], "query": "how to install peel and stick wallpaper /only:lex"}
{"output": [["vec", "how do beginners start a daily meditation practice from scratch"], ["vec", "what are simple meditation techniques for people who have never meditated before"]], "query": "how to meditate for beginners /only:vec"}
{"output": [["lex", "renaissance sculpture techniques documentation"], ["lex", "renaissance sculpture techniques examples"], ["lex", "renaissance sculpture techniques best practices"]], "query": "renaissance sculpture techniques /only:lex"}
{"output": [["vec", "what are effective strategies and habits for saving money consistently"], ["vec", "how can I create a budget and save more money each month"]], "query": "how to save money effectively /only:vec"}
{"output": [["vec", "how do graphql subscriptions work for real-time data updates"], ["vec", "what is the underlying protocol for graphql subscriptions and how do you implement them"]], "query": "GraphQL subscriptions websocket /only:vec"}
{"output": [["lex", "algae ecosystem role food chain"], ["lex", "algae oxygen production aquatic ecosystems"], ["lex", "algae photosynthesis carbon cycle"]], "query": "what is the significance of algae in ecosystems /only:lex"}
{"output": [["lex", "React recent news November best practices"], ["lex", "React recent news November examples"], ["lex", "React recent news November guide"]], "query": "React recent news November /only:lex"}
{"output": [["lex", "sailing adventure trips voyages"], ["lex", "sailing vacation destinations cruises"], ["lex", "ocean sailing expedition"]], "query": "sailing adventures /only:lex"}
{"output": [["lex", "elasticsearch query dsl"], ["lex", "elasticsearch bool must should"], ["lex", "es full text search query"]], "query": "Elasticsearch query DSL /only:lex"}
{"output": [["hyde", "The essential elements of a short story are plot (the sequence of events), character (the people involved), setting (time and place), conflict (the central struggle), theme (the underlying message), and point of view (the narrative perspective). Short stories typically focus on a single incident."]], "query": "what are the elements of short stories? /only:hyde"}
{"output": [["vec", "understanding Docker changelog 2026"], ["vec", "complete Docker changelog 2026 reference"]], "query": "Docker changelog 2026 /only:vec"}
{"output": [["vec", "what role does sacred music play in religious worship services across different faiths"], ["vec", "how do hymns, chants, and liturgical music enhance the experience of communal worship"]], "query": "what is the role of sacred music in worship? /only:vec"}
{"output": [["vec", "what are the popular haircut styles and how to choose the right one"], ["vec", "how to communicate what haircut you want to a stylist or barber"]], "query": "hair cut /only:vec"}
{"output": [["lex", "han dynasty china achievements"], ["lex", "han dynasty 206 bc history"], ["lex", "ancient china han empire"]], "query": "Han Dynasty China achievements /only:lex"}
{"output": [["lex", "productivity work increase tips"], ["lex", "workplace productivity time management techniques"]], "query": "how to increase productivity at work? /only:lex"}
{"output": [["vec", "why is the Alhambra in Granada, Spain considered a masterpiece of Islamic architecture?"], ["vec", "what is the cultural and historical significance of the Alhambra palace?"]], "query": "what is the significance of the alhambra? /only:vec"}
{"output": [["lex", "bioethics definition medical ethics biology"], ["lex", "bioethics issues euthanasia cloning genetic engineering"]], "query": "what is bioethics /only:lex"}
{"output": [["lex", "brand building strategy identity positioning"], ["lex", "brand identity logo messaging target audience"]], "query": "how to build a successful brand /only:lex"}
{"output": [["vec", "what is stellar cartography and how do astronomers map the positions and movements of stars?"], ["vec", "what tools and surveys are used to create detailed maps of stars in the galaxy?"]], "query": "stellar cartography /only:vec"}
{"output": [["hyde", "The key principles of Confucianism include Ren (benevolence/humaneness), Li (ritual propriety), Xiao (filial piety), Yi (righteousness), and Zhi (wisdom). The Five Relationships define social bonds: ruler-subject, parent-child, husband-wife, elder-younger sibling, and friend-friend. Each relationship carries reciprocal obligations."]], "query": "what are the key principles of confucianism? /only:hyde"}
{"output": [["lex", "what changed in GitHub 2026 tutorial"], ["lex", "what changed in GitHub 2026 guide"], ["lex", "what changed in GitHub 2026 documentation"]], "query": "what changed in GitHub 2026 /only:lex"}
{"output": [["hyde", "Most pediatricians recommend introducing solid foods around 6 months of age. Signs of readiness include sitting up with support, showing interest in food, and loss of the tongue-thrust reflex. Start with single-ingredient purees like sweet potato, avocado, or iron-fortified cereal, one new food every 3-5 days."]], "query": "when to introduce solid foods to a baby? /only:hyde"}
{"output": [["vec", "how do you blend vintage furniture and antique pieces with modern interior design elements"], ["vec", "what are effective ways to combine mid-century or antique decor with contemporary minimalist style"]], "query": "how to mix modern and vintage decor /only:vec"}
{"output": [["vec", "understanding latest climate tech updates"], ["vec", "complete latest climate tech updates reference"]], "query": "latest climate tech updates /only:vec"}
{"output": [["vec", "how to prevent sql injection attacks in web applications"], ["vec", "why are parameterized queries and prepared statements important for database security"]], "query": "SQL injection prevention /only:vec"}
{"output": [["hyde", "Place the ring light directly in front of your face at eye level, with the camera positioned in the center of the ring. Keep the light 12-24 inches from your face for an even, shadow-free glow. Adjust brightness to avoid overexposure. The circular catchlights in the eyes are a signature look."]], "query": "how to use a ring light /only:hyde"}
{"output": [["lex", "increase home resale value renovations"], ["lex", "home improvement ROI property value"]], "query": "how to increase home resale value /only:lex"}
{"output": [["lex", "set financial goals planning budget"], ["lex", "financial goal setting SMART savings"], ["lex", "personal finance goals short long term"]], "query": "how to set financial goals /only:lex"}
{"output": [["lex", "GitHub new features 2025 guide"], ["lex", "GitHub new features 2025 tutorial"], ["lex", "GitHub new features 2025 examples"]], "query": "GitHub new features 2025 /only:lex"}
{"output": [["vec", "how can individuals protect their finances and manage the impact of high inflation"], ["vec", "what financial strategies help people cope with rising prices and reduced purchasing power"]], "query": "how to handle inflation impact /only:vec"}
{"output": [["vec", "guide for Python new features 2026"], ["vec", "complete Python new features 2026 reference"]], "query": "Python new features 2026 /only:vec"}
{"output": [["hyde", "Natural anxiety management includes regular aerobic exercise (30 minutes, 5 days a week), diaphragmatic breathing, progressive muscle relaxation, and limiting caffeine and alcohol. Cognitive behavioral techniques like thought journaling help identify and challenge anxious thinking patterns. Herbal supplements such as chamomile and ashwagandha show some evidence of benefit."]], "query": "how to manage anxiety naturally /only:hyde"}
{"output": [["lex", "talk children bullying conversation advice"], ["lex", "kids bullying prevention parent discussion"]], "query": "how to talk to kids about bullying? /only:lex"}
{"output": [["hyde", "Impact investing directs capital toward companies and projects that generate measurable social or environmental benefits alongside financial returns. Unlike ESG screening, which excludes harmful sectors, impact investing actively targets positive outcomes — such as affordable housing, renewable energy, or microfinance. The Global Impact Investing Network (GIIN) estimates the market at over $1 trillion."]], "query": "what is impact investing? /only:hyde"}
{"output": [["vec", "what is competitive analysis in business and how do companies use it to inform strategy"], ["vec", "what frameworks and methods are used to conduct a competitive analysis of rival companies"]], "query": "what is competitive analysis /only:vec"}
{"output": [["vec", "what are the most recent developments in the Russia-Ukraine war as of 2025-2026?"], ["vec", "what is the current status of the Ukraine conflict including ceasefire talks and territorial changes?"]], "query": "latest updates on the ukraine conflict /only:vec"}
{"output": [["lex", "research institutions universities role science"], ["lex", "research institutions funding labs innovation"]], "query": "what is the role of research institutions /only:lex"}
{"output": [["lex", "enhance social impact community"], ["lex", "positive social impact strategies nonprofit"], ["lex", "social change community engagement"]], "query": "how to enhance positive social impact? /only:lex"}
{"output": [["hyde", "Pilgrimage holds deep significance across religions. Muslims perform Hajj to Mecca as one of the Five Pillars. Christians journey to Jerusalem, Rome, and Santiago de Compostela. Hindus bathe in the Ganges at Varanasi. The physical journey symbolizes an inner spiritual transformation—leaving ordinary life, enduring hardship, and arriving at a sacred place of renewal and encounter with the divine."]], "query": "what is the significance of pilgrimage in religion? /only:hyde"}
{"output": [["lex", "global affairs news sources current events"], ["lex", "world news reliable sources daily updates"]], "query": "how to stay updated on global affairs /only:lex"}
{"output": [["hyde", "Affordable art prints are available on Society6, Redbubble, and Etsy, where independent artists sell prints starting at $15$30. IKEA offers framed prints under $20. For museum-quality reproductions, check Artsy or Saatchi Art's prints section. King & McGaw specializes in licensed fine art reproductions at mid-range prices."]], "query": "where to buy affordable art prints /only:hyde"}
{"output": [["hyde", "Building resilience involves developing a growth mindset, maintaining social connections, and practicing self-care. Reframe setbacks as learning opportunities. Cultivate problem-solving skills rather than ruminating on what went wrong. Regular exercise, adequate sleep, and mindfulness strengthen your capacity to recover from stress. Resilient people accept what they cannot control and focus energy on what they can."]], "query": "building resilience /only:hyde"}
{"output": [["vec", "why is community considered important in spiritual and religious practice?"], ["vec", "how does belonging to a spiritual community enhance personal faith and practice?"]], "query": "what is the significance of community in spirituality? /only:vec"}
{"output": [["lex", "Hajj Islam pilgrimage Mecca significance"], ["lex", "Hajj pillar Islam Kaaba rituals"]], "query": "what is the significance of the hajj in islam? /only:lex"}
{"output": [["vec", "what role does community play in ethical theory and moral life"], ["vec", "how does communitarian philosophy view the relationship between community and ethics"]], "query": "what is the significance of community in ethics /only:vec"}
{"output": [["hyde", "Regular physical activity releases endorphins that naturally reduce stress. Practice deep breathing: inhale for 4 counts, hold for 4, exhale for 6. Other effective strategies include progressive muscle relaxation, journaling, limiting caffeine, and maintaining a consistent sleep schedule of 7-9 hours."]], "query": "how to reduce stress /only:hyde"}
{"output": [["hyde", "Maintain a consistent sleep schedule, even on weekends. Keep your bedroom cool (65-68°F), dark, and quiet. Avoid screens for 30 minutes before bed. Limit caffeine after noon. Regular exercise improves sleep, but finish workouts at least 3 hours before bedtime."]], "query": "how to improve sleep quality /only:hyde"}
{"output": [["lex", "ancient greece democracy athens"], ["lex", "athenian democracy 5th century bc"], ["lex", "greek democracy origins"]], "query": "ancient Greece democracy Athens /only:lex"}
{"output": [["hyde", "SOLID: Single Responsibility (one reason to change), Open/Closed (open for extension, closed for modification), Liskov Substitution (subtypes substitutable for base types), Interface Segregation (many specific interfaces over one general), Dependency Inversion (depend on abstractions not concretions). Following SOLID produces loosely coupled, testable, maintainable code."]], "query": "solid principles explained /only:hyde"}
{"output": [["vec", "understanding TypeScript changelog 2026"], ["vec", "how to TypeScript changelog 2026"]], "query": "TypeScript changelog 2026 /only:vec"}
{"output": [["vec", "what is the difference between a mac address and an ip address in networking"], ["vec", "how do mac addresses and ip addresses work together for network communication"]], "query": "mac address vs ip address /only:vec"}
{"output": [["hyde", "JSON: human-readable, self-describing, universal support, larger payload. Protobuf: binary format, 3-10x smaller, faster serialization, requires schema (.proto files), strong typing. Use JSON for public APIs, debugging, human interaction. Use Protobuf for internal microservices, high-throughput systems, gRPC. Schema evolution with field numbers enables backward compatibility."]], "query": "protobuf vs json /only:hyde"}
{"output": [["hyde", "Find emotional support through multiple channels: talk to a trusted friend or family member. Contact a therapist through Psychology Today's directory or your insurance provider. Call the 988 Suicide and Crisis Lifeline (dial 988) for immediate help. Join support groups through NAMI or local community centers. Online therapy platforms like BetterHelp and Talkspace offer accessible counseling."]], "query": "how to find emotional support /only:hyde"}
{"output": [["vec", "how do I plant and establish a wildflower meadow in my yard"], ["vec", "what steps are needed to create a wildflower meadow from seed"]], "query": "how to plant a wildflower meadow? /only:vec"}
{"output": [["vec", "what skills and experience do you need to build a successful digital marketing career"], ["vec", "how to get started in digital marketing and advance to senior roles"]], "query": "how to succeed in a digital marketing career? /only:vec"}
{"output": [["lex", "realism idealism philosophy difference"], ["lex", "realism vs idealism metaphysics epistemology"], ["lex", "philosophical realism idealism comparison"]], "query": "what is the difference between realism and idealism /only:lex"}
{"output": [["hyde", "AI-driven analytics uses machine learning algorithms to automatically detect patterns, anomalies, and trends in large datasets. Unlike traditional BI tools, AI analytics can generate predictive forecasts, perform natural language queries, and surface insights without manual configuration."]], "query": "ai-driven analytics /only:hyde"}
{"output": [["vec", "how does social contract theory explain the legitimacy of government"], ["vec", "what did Hobbes, Locke, and Rousseau argue about the social contract and governance"]], "query": "how does the social contract theory explain governance /only:vec"}
{"output": [["lex", "grow tomatoes home garden"], ["lex", "tomato plant care watering sunlight"], ["lex", "container tomatoes growing tips"]], "query": "how to grow tomatoes at home? /only:lex"}
{"output": [["lex", "archetypes Carl Jung collective unconscious"], ["lex", "archetypes significance literature psychology"]], "query": "what is the significance of archetypes? /only:lex"}
{"output": [["lex", "machine learning recent news November tutorial"], ["lex", "machine learning recent news November guide"], ["lex", "machine learning recent news November examples"]], "query": "machine learning recent news November /only:lex"}
{"output": [["vec", "learn about Shopify recent news October"], ["vec", "complete Shopify recent news October reference"]], "query": "Shopify recent news October /only:vec"}
{"output": [["vec", "complete AWS latest version release reference"], ["vec", "understanding AWS latest version release"]], "query": "AWS latest version release /only:vec"}
{"output": [["lex", "budget backpacking europe documentation"], ["lex", "budget backpacking europe guide"], ["lex", "budget backpacking europe examples"]], "query": "budget backpacking europe /only:lex"}
{"output": [["hyde", "Classical music is built on melody (a sequence of notes forming a theme), harmony (chords supporting the melody), rhythm (the timing and pattern of notes), dynamics (volume changes), and form (the structure, such as sonata, rondo, or theme and variations)."]], "query": "what are the elements of classical music? /only:hyde"}
{"output": [["vec", "learn about electronics soldering guide"], ["vec", "guide for electronics soldering guide"]], "query": "electronics soldering guide /only:vec"}
{"output": [["lex", "balance sheet basics guide"], ["lex", "balance sheet basics tutorial"], ["lex", "balance sheet basics examples"]], "query": "balance sheet basics /only:lex"}
{"output": [["vec", "complete soccer formations tactics reference"], ["vec", "understanding soccer formations tactics"]], "query": "soccer formations tactics /only:vec"}
{"output": [["vec", "what are effective ways to improve interpersonal and communication skills?"], ["vec", "how can someone develop better listening, empathy, and social skills in personal and professional settings?"]], "query": "how to improve interpersonal skills /only:vec"}
{"output": [["lex", "enum class C++ Java strongly typed"], ["lex", "enum class Python enumeration members"], ["lex", "enum class scoped enumeration"]], "query": "enum class /only:lex"}
{"output": [["hyde", "Train by walking with a loaded pack for progressively longer distances over 4-6 weeks. Pack the ten essentials: navigation, sun protection, insulation, illumination, first aid, fire, tools, nutrition, hydration, and shelter. Check the weather forecast and file a trip plan with someone you trust."]], "query": "how to prepare for a long hike /only:hyde"}
{"output": [["vec", "what are the most recent scientific findings about climate change in 2025-2026"], ["vec", "what do the latest climate science studies reveal about global warming trends"]], "query": "latest findings in climate science /only:vec"}
{"output": [["lex", "python decorator function"], ["lex", "python @ decorator syntax"], ["lex", "python wrapper decorator"]], "query": "python decorators explained /only:lex"}
{"output": [["vec", "how to use awk for text processing and extracting columns from files"], ["vec", "what are common awk patterns and commands for parsing structured text"]], "query": "awk command examples /only:vec"}
{"output": [["hyde", "The building blocks of life are four types of organic molecules: proteins (made from amino acids), nucleic acids (DNA and RNA from nucleotides), carbohydrates (sugars and polysaccharides), and lipids (fats and phospholipids). These molecules self-assemble into cells, the basic unit of all living organisms."]], "query": "what are the building blocks of life /only:hyde"}
{"output": [["vec", "understanding largest countries by area"], ["vec", "complete largest countries by area reference"]], "query": "largest countries by area /only:vec"}
{"output": [["hyde", "To travel on a budget, book flights midweek, use fare comparison tools like Google Flights or Skyscanner, stay in hostels or use house-sitting platforms, and eat at local markets instead of tourist restaurants."]], "query": "where to find budget travel tips /only:hyde"}
{"output": [["lex", "daycare choose selection criteria childcare"], ["lex", "daycare center evaluation safety ratio"]], "query": "how to choose a daycare? /only:lex"}
{"output": [["lex", "homemade pizza dough recipe"], ["lex", "pizza from scratch oven toppings"], ["lex", "make pizza dough sauce crust"]], "query": "how to make homemade pizza /only:lex"}
{"output": [["lex", "mandarin tones guide guide"], ["lex", "mandarin tones guide best practices"], ["lex", "mandarin tones guide examples"]], "query": "mandarin tones guide /only:lex"}
{"output": [["hyde", "Original sin is the Christian doctrine that humanity inherited a sinful nature from Adam and Eve's disobedience in the Garden of Eden. Augustine of Hippo formalized the teaching, arguing that all humans are born in a state of sin, redeemable only through divine grace."]], "query": "what is the concept of original sin /only:hyde"}
{"output": [["vec", "where can I find art classes for beginners to learn painting or drawing"], ["vec", "what types of art classes are available online and in person for adults"]], "query": "art class /only:vec"}
{"output": [["hyde", "The veil of ignorance is a thought experiment by John Rawls in A Theory of Justice (1971). It asks people to choose principles of justice from an \"original position\" where they don't know their own race, gender, wealth, or abilities. Rawls argues this produces fair, impartial rules."]], "query": "what is the veil of ignorance /only:hyde"}
{"output": [["hyde", "Thailand is a Southeast Asian country known for tropical beaches, ornate temples, and rich cuisine. Bangkok is the capital. Popular destinations include Chiang Mai, Phuket, and the islands of Koh Samui and Phi Phi. Thai food staples include pad thai, green curry, and tom yum soup."]], "query": "thailand /only:hyde"}
{"output": [["vec", "how can scientists make their research presentations more engaging and accessible"], ["vec", "what techniques improve the delivery and visual design of scientific talks"]], "query": "how to make scientific presentations engaging /only:vec"}
{"output": [["lex", "spice combinations guide documentation"], ["lex", "spice combinations guide tutorial"], ["lex", "spice combinations guide examples"]], "query": "spice combinations guide /only:lex"}
{"output": [["vec", "what purpose does dialogue serve in communication and storytelling"], ["vec", "how does dialogue function in literature and everyday interaction"]], "query": "what is the function of dialogue? /only:vec"}
{"output": [["lex", "philosophical arguments logic premises conclusion"], ["lex", "philosophical reasoning deductive inductive"]], "query": "how do philosophical arguments work /only:lex"}
{"output": [["hyde", "Just war theory establishes criteria for morally permissible warfare. Jus ad bellum (right to go to war) requires just cause, legitimate authority, right intention, last resort, proportionality, and reasonable chance of success. Jus in bello (right conduct in war) requires distinction between combatants and civilians and proportional use of force."]], "query": "what is the ethics of war /only:hyde"}
{"output": [["lex", "creative portrait photography ideas techniques"], ["lex", "portrait photo ideas poses lighting creative"]], "query": "what are creative portrait ideas? /only:lex"}
{"output": [["hyde", "Safe weight loss is 1-2 pounds per week through a calorie deficit of 500-1000 calories daily. Combine a protein-rich diet with strength training and cardio. Avoid crash diets—they cause muscle loss and metabolic slowdown. Drink water, sleep 7-9 hours, and track food intake for accountability."]], "query": "how to lose weight fast? /only:hyde"}
{"output": [["hyde", "Decide what you'll shoot most: landscapes, portraits, video, or street photography. Mirrorless cameras are lighter with faster autofocus, while DSLRs offer longer battery life and more lens options. Key specs to compare: sensor size (full-frame vs APS-C), megapixels, autofocus points, and video capabilities. Budget $500-1000 for a capable starter body."]], "query": "how to choose the right camera /only:hyde"}
{"output": [["hyde", "Give each child one-on-one time to reduce competition for attention. Avoid comparing siblings or labeling them (\"the smart one\"). Teach conflict resolution: help them express feelings with \"I\" statements and find compromises. Praise cooperation when you see it. Set clear family rules about physical aggression and name-calling."]], "query": "how to encourage siblings to get along? /only:hyde"}
{"output": [["hyde", "The Renaissance began in Florence around 1400 due to wealth from banking and trade, political stability, and classical heritage. The Medici family, especially Lorenzo the Magnificent, patronized artists like Leonardo, Michelangelo, and Botticelli. Florence's guilds, humanism from rediscovered Greek texts, and competition among city-states drove cultural innovation."]], "query": "Renaissance Italy Florence /only:hyde"}
{"output": [["lex", "evaluate scientific claims critical thinking"], ["lex", "scientific literacy evidence evaluation peer review"]], "query": "how to evaluate scientific claims critically /only:lex"}
{"output": [["vec", "how to troubleshoot and fix common technology problems with computers and devices"], ["vec", "what are basic tech fixes for common software and hardware issues"]], "query": "tech fix /only:vec"}
{"output": [["lex", "bioinformatics research applications 2025 2026"], ["lex", "bioinformatics genomics proteomics computational biology"]], "query": "latest uses of bioinformatics in research /only:lex"}
{"output": [["vec", "learn about yoga poses beginners"], ["vec", "guide for yoga poses beginners"]], "query": "yoga poses beginners /only:vec"}
{"output": [["hyde", "Top heirloom seed suppliers include Baker Creek Heirloom Seeds, Seed Savers Exchange, and Johnny's Selected Seeds. Baker Creek offers over 1,800 open-pollinated varieties with free shipping. Seed Savers Exchange is a nonprofit dedicated to preserving rare heirloom varieties through their seed bank and catalog."]], "query": "where to find heirloom seed suppliers? /only:hyde"}
{"output": [["hyde", "Earth's atmosphere is composed of 78.09% nitrogen (N₂), 20.95% oxygen (O₂), 0.93% argon (Ar), and 0.04% carbon dioxide (CO₂). Trace gases include neon, helium, methane, krypton, and water vapor (0-4% depending on humidity). The atmosphere extends roughly 480 km above the surface and is divided into five layers: troposphere, stratosphere, mesosphere, thermosphere, and exosphere."]], "query": "what is the composition of the earth's atmosphere /only:hyde"}
{"output": [["vec", "what is event sourcing and how does it differ from traditional crud data storage"], ["vec", "how do you implement event sourcing and what are its benefits and challenges"]], "query": "event sourcing pattern /only:vec"}
{"output": [["vec", "how did spanish conquistadors conquer the aztec and inca empires"], ["vec", "what factors enabled spain to colonize the americas so rapidly in the 16th century"]], "query": "Spanish Conquest Americas /only:vec"}
{"output": [["vec", "how to make HTTP requests using an HTTP client library"], ["vec", "which HTTP client libraries are available for making API calls in different languages"]], "query": "http client /only:vec"}
{"output": [["vec", "what are the main sacred texts and scriptures in the Jewish religious tradition"], ["vec", "what is the Torah and what other texts are considered holy in Judaism"]], "query": "what are the sacred texts of judaism /only:vec"}
{"output": [["vec", "learn about endangered species list"], ["vec", "guide for endangered species list"]], "query": "endangered species list /only:vec"}
{"output": [["lex", "glacier formation process ice"], ["lex", "glaciers formed snow compaction accumulation"]], "query": "how are glaciers formed /only:lex"}
{"output": [["vec", "what is content marketing and how does it attract customers"], ["vec", "how do businesses use content marketing to drive traffic and build trust"]], "query": "what is content marketing /only:vec"}
{"output": [["hyde", "Cycling commute refers to using a bicycle as your primary transportation to and from work. Bike commuters typically ride 3-15 miles each way, saving on fuel costs while getting daily exercise. Many cities now have protected bike lanes and bike-share programs."]], "query": "what is cycling commute? /only:hyde"}
{"output": [["lex", "spiritual leadership organizations values"], ["lex", "spiritual leadership workplace meaning purpose"]], "query": "what is the importance of spiritual leadership? /only:lex"}
{"output": [["hyde", "Interfaith dialogue is the cooperative interaction between people of different religious traditions, aimed at mutual understanding rather than conversion. Organizations like the Parliament of the World's Religions bring together leaders from Christianity, Islam, Judaism, Hinduism, Buddhism, and others to discuss shared values and address social issues."]], "query": "what is interfaith dialogue? /only:hyde"}
{"output": [["vec", "how do enzymes help break down food during the digestive process"], ["vec", "what role do specific enzymes like amylase and protease play in digestion"]], "query": "what is the role of enzymes in digestion /only:vec"}
{"output": [["lex", "aztec empire civilization"], ["lex", "aztec tenochtitlan mexico"], ["lex", "aztec history mesoamerica"]], "query": "Aztec Empire civilization /only:lex"}
{"output": [["hyde", "Landscaping stones can be purchased from home improvement stores like Home Depot and Lowe's, local stone yards, and quarries. For bulk orders, landscape supply companies deliver directly. River rock, flagstone, and pea gravel are popular choices for garden paths and borders."]], "query": "where to find landscaping stones? /only:hyde"}
{"output": [["hyde", "Read multiple news sources across the political spectrum: AP News and Reuters for wire reporting, then compare coverage from different outlets. Subscribe to newsletters like The Morning (NYT) or Axios AM. Follow legislative trackers like Congress.gov. Attend local government meetings and candidate forums."]], "query": "how to stay informed about politics /only:hyde"}
{"output": [["lex", "latest GitHub updates guide"], ["lex", "latest GitHub updates documentation"], ["lex", "latest GitHub updates best practices"]], "query": "latest GitHub updates /only:lex"}
{"output": [["vec", "what are the positive and negative effects of tourism on local cultural traditions and communities"], ["vec", "how does mass tourism change the customs, language, and daily life of host communities"]], "query": "how tourism affects local cultures /only:vec"}
{"output": [["lex", "find reliable realtor real estate agent"], ["lex", "choosing trustworthy real estate agent"]], "query": "how to find a reliable realtor /only:lex"}
{"output": [["vec", "what are the tradeoffs between using a monorepo versus multiple repositories"], ["vec", "when does a monorepo make sense and what tools help manage large monorepos"]], "query": "monorepo vs polyrepo /only:vec"}
{"output": [["lex", "habit formation science examples"], ["lex", "habit formation science tutorial"], ["lex", "habit formation science documentation"]], "query": "habit formation science /only:lex"}
{"output": [["hyde", "Switch to LED lighting and install occupancy sensors in conference rooms and restrooms. Set computers to sleep mode after 10 minutes of inactivity. Use smart power strips to eliminate phantom loads. Set thermostats to 68°F in winter and 76°F in summer. These measures typically reduce office energy use by 20-30%."]], "query": "how to conserve energy in the office? /only:hyde"}
{"output": [["hyde", "A mathematical model uses equations and variables to represent a real-world system. For example, the SIR model uses differential equations to predict infectious disease spread: dS/dt = -βSI, dI/dt = βSI - γI, dR/dt = γI. Models are validated by comparing predictions against observed data and refined iteratively."]], "query": "what is a mathematical model /only:hyde"}
{"output": [["lex", "unit test integration test difference"], ["lex", "testing pyramid unit integration e2e"], ["lex", "unit test isolation mocking"]], "query": "unit test vs integration test /only:lex"}
{"output": [["vec", "guide for what changed in Python 2026"], ["vec", "learn about what changed in Python 2026"]], "query": "what changed in Python 2026 /only:vec"}
{"output": [["vec", "how have philosophers historically explored and debated the nature of reality and existence?"], ["vec", "what are the main metaphysical positions on whether reality is fundamentally material, mental, or something else?"]], "query": "how do philosophers explore the nature of reality /only:vec"}
{"output": [["vec", "what are the core beliefs and teachings of the Baha'i faith"], ["vec", "what did Baha'u'llah teach about unity, equality, and world peace"]], "query": "what are the teachings of the baha'i faith? /only:vec"}
{"output": [["hyde", "Compositional balance refers to the distribution of visual weight within an image or artwork. Symmetrical balance places equal elements on both sides of a central axis, while asymmetrical balance uses contrasting elements — such as a large shape offset by a smaller, brighter one — to create dynamic equilibrium."]], "query": "what is compositional balance? /only:hyde"}
{"output": [["vec", "what mechanisms does the human body use to maintain internal stability"], ["vec", "how do feedback loops help regulate body temperature and blood sugar levels"]], "query": "how does the body maintain homeostasis /only:vec"}
{"output": [["hyde", "Isolation levels from weakest to strongest: Read Uncommitted (dirty reads possible), Read Committed (sees only committed data, default in PostgreSQL), Repeatable Read (no non-repeatable reads), Serializable (no phantom reads, full isolation). Higher isolation = more locking = lower concurrency. Choose based on consistency needs vs performance."]], "query": "database transaction isolation levels /only:hyde"}
{"output": [["hyde", "Hospital bag essentials for labor: ID and insurance card, birth plan, comfortable robe or gown, slippers, toiletries, phone charger, going-home outfit for you and baby, car seat, nursing bra, newborn diapers, snacks, and a pillow from home."]], "query": "what to pack in a hospital bag for labor? /only:hyde"}
{"output": [["hyde", "Visit the National Museum of the American Indian (Smithsonian) or local tribal cultural centers. Read works by Native authors like Joy Harjo, Tommy Orange, and Robin Wall Kimmerer. Attend powwows and cultural events when open to the public. Learn which tribal nations are indigenous to your area."]], "query": "how to learn about native american culture /only:hyde"}
{"output": [["lex", "burnout syndrome workplace exhaustion"], ["lex", "burnout symptoms causes recovery"]], "query": "what is burnout? /only:lex"}
{"output": [["hyde", "Dependency injection provides dependencies from outside rather than creating them internally. Class receives DatabaseService via constructor instead of instantiating it. Benefits: loose coupling, easy testing with mocks, flexible configuration. Instead of new EmailService(), inject interface IEmailService—swap implementations without changing consumer code."]], "query": "dependency injection benefits /only:hyde"}
{"output": [["vec", "what role does the media play in shaping political discourse and public opinion"], ["vec", "how does news coverage and media bias influence political outcomes and democracy"]], "query": "what is the role of media in politics /only:vec"}
{"output": [["lex", "plasmid DNA circular extrachromosomal"], ["lex", "plasmid bacteria gene transfer cloning"], ["lex", "plasmid vector molecular biology"]], "query": "what are plasmids /only:lex"}
{"output": [["hyde", "Start by listening to understand, not to rebut. Ask questions like \"What experiences led you to that view?\" Avoid personal attacks and generalizations. Find common ground before addressing differences. Use \"I\" statements instead of \"you always\" accusations. Accept that changing minds takes time and repeated respectful engagement."]], "query": "how to engage in civil political discussions /only:hyde"}
{"output": [["hyde", "Lookahead (?=pattern) matches a position followed by pattern without consuming it. Negative lookahead (?!pattern) matches where pattern doesn't follow. Lookbehind (?<=pattern) matches a position preceded by pattern. Example: \\d+(?= dollars) matches numbers followed by 'dollars'."]], "query": "regex lookahead lookbehind /only:hyde"}
{"output": [["hyde", "Diversify across asset classes: stocks, bonds, real estate, and commodities. Within stocks, spread across sectors (tech, healthcare, energy) and geographies (US, international, emerging markets). Use index funds or ETFs for broad exposure. A common allocation is 60% stocks, 30% bonds, 10% alternatives, adjusted by age and risk tolerance."]], "query": "how to diversify investment portfolio /only:hyde"}
{"output": [["lex", "recent GitHub changes 2026 tutorial"], ["lex", "recent GitHub changes 2026 examples"], ["lex", "recent GitHub changes 2026 guide"]], "query": "recent GitHub changes 2026 /only:lex"}
{"output": [["vec", "understanding Sentry error tracking"], ["vec", "learn about Sentry error tracking"]], "query": "Sentry error tracking /only:vec"}
{"output": [["vec", "what is the principle of utility in utilitarian ethics as defined by Bentham and Mill"], ["vec", "how does the utilitarian principle of utility evaluate actions based on their consequences for overall happiness"]], "query": "what is the principle of utility? /only:vec"}
{"output": [["vec", "what are the best tips for taking professional-quality portrait photographs?"], ["vec", "how should you set up lighting, posing, and camera settings for portrait photography?"]], "query": "portrait photography tips /only:vec"}
{"output": [["lex", "Bahá'í faith core practices worship"], ["lex", "Bahá'í religion prayer fasting principles"]], "query": "what are the core practices of the bahá'í faith? /only:lex"}
{"output": [["vec", "where can someone find emotional support during difficult times or mental health challenges"], ["vec", "what resources are available for people seeking emotional support and counseling"]], "query": "how to find emotional support /only:vec"}
{"output": [["vec", "what are effective soccer training drills for improving skills and fitness"], ["vec", "which soccer drills help players improve dribbling, passing, and shooting"]], "query": "soccer training drills /only:vec"}
{"output": [["hyde", "Know your rights: the First Amendment protects peaceful assembly on public property. Bring water, snacks, a phone charger, and ID. Write an emergency contact number on your arm. Stay with a buddy and agree on a meeting point. Wear comfortable shoes and weather-appropriate clothing. If tear gas is used, move upwind. Document police interactions by filming at a safe distance."]], "query": "how to participate in a protest /only:hyde"}
{"output": [["lex", "peer review importance scientific publishing"], ["lex", "peer review process academic research"]], "query": "what is the importance of peer review /only:lex"}
{"output": [["hyde", "Idempotent operations produce the same result regardless of how many times called. GET, PUT, DELETE are naturally idempotent. POST needs idempotency keys: client sends unique key, server stores result, returns cached result on retry. Store keys with TTL (24h). Critical for payment APIs—prevents double charges on network retry."]], "query": "idempotency api design /only:hyde"}
{"output": [["lex", "AWS Lambda functions setup documentation"], ["lex", "AWS Lambda functions setup examples"], ["lex", "AWS Lambda functions setup tutorial"]], "query": "AWS Lambda functions setup /only:lex"}
{"output": [["hyde", "Prepare by researching the other party's priorities and constraints. Define your BATNA (best alternative to a negotiated agreement) and walk-away point. Open with an ambitious but defensible anchor. Listen more than you talk. Focus on interests, not positions, to find creative win-win solutions."]], "query": "how to negotiate a business deal /only:hyde"}
{"output": [["vec", "how are ethical theories like utilitarianism and deontology applied to real-world social issues?"], ["vec", "what ethical frameworks do philosophers use to analyze problems like poverty, inequality, and healthcare?"]], "query": "how do ethical theories apply to social issues /only:vec"}
{"output": [["hyde", "S3 bucket policies are resource-based JSON policies attached to buckets. Grant public read: {\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::bucket/*\"}]}. IAM policies attach to users/roles. Use bucket policies for cross-account access, IAM for user-specific permissions. Block public access settings override policies."]], "query": "S3 bucket policy /only:hyde"}
{"output": [["vec", "what does virtue signaling mean and how is the term used in political and social discourse?"], ["vec", "how do people use virtue signaling to publicly express moral values without substantive action?"]], "query": "what is virtue signaling? /only:vec"}
{"output": [["hyde", "Sacred trees appear across religions: the Bodhi tree where Buddha attained enlightenment, the Tree of Life in Genesis, Yggdrasil in Norse mythology connecting the nine worlds, and the banyan in Hinduism symbolizing eternal life. Trees represent growth, connection between earth and heaven, and renewal."]], "query": "what is the significance of the sacred tree in various faiths? /only:hyde"}
{"output": [["lex", "sort list programming algorithm"], ["lex", "list sort Python Java ascending descending"], ["lex", "array sorting methods comparison"]], "query": "list sort /only:lex"}
{"output": [["lex", "thriller novel elements writing techniques"], ["lex", "good thriller pacing suspense plot twists"]], "query": "what makes a good thriller novel? /only:lex"}
{"output": [["hyde", "Spiritual communities provide shared worship, accountability, and mutual support that deepen individual faith. In Christianity, the church body gathers for fellowship; in Buddhism, the sangha is one of the Three Jewels; in Judaism, a minyan of ten is required for communal prayer. Communal practice reinforces commitment and provides belonging."]], "query": "what is the significance of community in spirituality? /only:hyde"}
{"output": [["vec", "how to latest Python updates"], ["vec", "complete latest Python updates reference"]], "query": "latest Python updates /only:vec"}
{"output": [["lex", "scientific research career path academia"], ["lex", "career scientist PhD research position"]], "query": "how to pursue a career in scientific research /only:lex"}
{"output": [["lex", "buy organic seeds online garden"], ["lex", "organic seed suppliers heirloom non-GMO"]], "query": "where to buy organic seeds? /only:lex"}
{"output": [["vec", "how to industrial revolution inventions"], ["vec", "guide for industrial revolution inventions"]], "query": "industrial revolution inventions /only:vec"}
{"output": [["hyde", "An elevator pitch is a concise, 30-60 second summary of who you are and what you offer. Structure it as: hook (attention-grabbing opening), problem you solve, your solution, and a call to action. Practice until it sounds conversational, not rehearsed."]], "query": "what is an elevator pitch /only:hyde"}
{"output": [["hyde", "Sit comfortably with your back straight. Close your eyes and focus on your breath—notice each inhale and exhale. When thoughts arise, gently return attention to your breathing without judgment. Start with 5 minutes daily and gradually increase. Consistency matters more than duration."]], "query": "how to meditate for beginners /only:hyde"}
{"output": [["hyde", "Public research datasets are available from repositories such as Kaggle, the UCI Machine Learning Repository, NASA's Open Data Portal, NOAA Climate Data, and institutional data archives like Harvard Dataverse and Zenodo."]], "query": "where to find datasets for scientific research /only:hyde"}

View File

@@ -0,0 +1,243 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = ["pydantic>=2.0"]
# ///
"""
Dataset Analysis and Quality Report Generator
Analyzes training data loaded through the strict Pydantic schema for:
1. Query length distribution
2. Category diversity
3. Named entity coverage
4. Output format coverage
5. Duplicate detection
"""
import argparse
import sys
from pathlib import Path
from collections import Counter, defaultdict
from dataclasses import dataclass
sys.path.insert(0, str(Path(__file__).parent.parent))
from dataset.schema import TrainingExample, OutputType, load_examples
@dataclass
class DatasetStats:
total_examples: int = 0
short_queries: int = 0
medium_queries: int = 0
long_queries: int = 0
has_lex: int = 0
has_vec: int = 0
has_hyde: int = 0
long_hyde_count: int = 0
duplicate_queries: int = 0
named_entity_queries: int = 0
temporal_queries: int = 0
short_keyword_queries: int = 0
def categorize_query(query: str) -> str:
query_lower = query.lower()
words = query_lower.split()
word_count = len(words)
if word_count <= 2:
return "short_keyword"
if any(w[0].isupper() for w in query.split() if w):
return "named_entity"
temporal_keywords = [
"latest", "recent", "new", "update", "changelog",
"changed", "version", "release", "news", "2024", "2025",
]
if any(kw in query_lower for kw in temporal_keywords):
return "temporal"
if query_lower.startswith("how "):
return "how_to"
if query_lower.startswith("what "):
return "what_is"
if any(kw in query_lower for kw in ["difference", "vs", "versus", "compare"]):
return "comparison"
if any(kw in query_lower for kw in ["meeting", "notes", "journal", "ideas", "thoughts"]):
return "personal"
return "other"
def extract_named_entities(query: str) -> list:
entities = []
stopwords = {"the", "a", "an", "is", "are", "to", "for", "of", "in", "and", "or"}
for word in query.split():
if word.lower() in stopwords:
continue
if word and word[0].isupper() and len(word) > 1:
entities.append(word)
if any(c in word for c in ".+-0123456789") and len(word) > 1:
entities.append(word)
return entities
def analyze_examples(examples: list[TrainingExample]) -> tuple[DatasetStats, dict, dict]:
stats = DatasetStats()
categories: Counter = Counter()
seen_queries: set[str] = set()
category_examples: dict[str, list[str]] = defaultdict(list)
for ex in examples:
stats.total_examples += 1
query_lower = ex.query.lower()
if query_lower in seen_queries:
stats.duplicate_queries += 1
else:
seen_queries.add(query_lower)
word_count = len(ex.query.split())
if word_count <= 2:
stats.short_queries += 1
elif word_count <= 5:
stats.medium_queries += 1
else:
stats.long_queries += 1
category = categorize_query(ex.query)
categories[category] += 1
category_examples[category].append(ex.query)
if extract_named_entities(ex.query):
stats.named_entity_queries += 1
# Use the typed OutputPair model
types_present = {p.type for p in ex.output}
if OutputType.lex in types_present:
stats.has_lex += 1
if OutputType.vec in types_present:
stats.has_vec += 1
if OutputType.hyde in types_present:
stats.has_hyde += 1
for p in ex.output:
if p.type == OutputType.hyde and len(p.text) > 200:
stats.long_hyde_count += 1
stats.temporal_queries = categories.get("temporal", 0)
stats.short_keyword_queries = categories.get("short_keyword", 0)
return stats, dict(categories), dict(category_examples)
def print_report(stats: DatasetStats, categories: dict, category_examples: dict):
print("=" * 70)
print("QMD TRAINING DATA ANALYSIS REPORT")
print("=" * 70)
print()
total = stats.total_examples
print("BASIC STATISTICS")
print("-" * 40)
print(f"Total examples: {total:>6}")
print(f"Duplicates found: {stats.duplicate_queries:>6}")
print()
print("QUERY LENGTH DISTRIBUTION")
print("-" * 40)
print(f"Short (1-2 words): {stats.short_queries:>6} ({100 * stats.short_queries / total:5.1f}%)")
print(f"Medium (3-5 words): {stats.medium_queries:>6} ({100 * stats.medium_queries / total:5.1f}%)")
print(f"Long (6+ words): {stats.long_queries:>6} ({100 * stats.long_queries / total:5.1f}%)")
print()
print("CATEGORY DISTRIBUTION")
print("-" * 40)
for cat, count in sorted(categories.items(), key=lambda x: -x[1]):
pct = 100 * count / total
bar = "#" * int(pct / 2)
print(f"{cat:20} {count:>6} ({pct:5.1f}%) {bar}")
print()
print("OUTPUT FORMAT COVERAGE")
print("-" * 40)
print(f"Has lex: {stats.has_lex:>6} ({100 * stats.has_lex / total:5.1f}%)")
print(f"Has vec: {stats.has_vec:>6} ({100 * stats.has_vec / total:5.1f}%)")
print(f"Has hyde: {stats.has_hyde:>6} ({100 * stats.has_hyde / total:5.1f}%)")
print(f"Long hyde (>200ch): {stats.long_hyde_count:>6}")
print()
print("EVALUATION ALIGNMENT")
print("-" * 40)
print(f"Named entity queries: {stats.named_entity_queries:>6} ({100 * stats.named_entity_queries / total:5.1f}%)")
print(f"Temporal/recency: {stats.temporal_queries:>6} ({100 * stats.temporal_queries / total:5.1f}%)")
print(f"Short keyword queries: {stats.short_keyword_queries:>6} ({100 * stats.short_keyword_queries / total:5.1f}%)")
print()
print("RECOMMENDATIONS")
print("-" * 40)
recommendations = []
if stats.short_queries / total < 0.15:
recommendations.append("Short queries below 15% - add more 1-2 word keyword queries")
if stats.named_entity_queries / total < 0.10:
recommendations.append("Named entity queries below 10% - add more capitalized tech term queries")
if stats.temporal_queries / total < 0.05:
recommendations.append("Temporal queries below 5% - add more 'latest', 'recent' queries")
if stats.long_hyde_count > 50:
recommendations.append(f"{stats.long_hyde_count} long hyde sections - consider truncating")
if stats.duplicate_queries > 0:
recommendations.append(f"{stats.duplicate_queries} duplicate queries - consider deduplication")
if not recommendations:
print("Dataset looks good! No major issues detected.")
else:
for rec in recommendations:
print(f" - {rec}")
print()
print("=" * 70)
def main():
parser = argparse.ArgumentParser(description="Analyze QMD training dataset")
parser.add_argument(
"--input",
type=str,
default="data/qmd_expansion_v3_structured.jsonl",
help="Path to training data JSONL file",
)
parser.add_argument(
"--show-examples",
type=int,
default=3,
help="Number of example queries to show per category",
)
args = parser.parse_args()
input_path = Path(args.input)
if not input_path.exists():
script_dir = Path(__file__).parent.parent
input_path = script_dir / args.input
if not input_path.exists():
print(f"Error: Could not find dataset at {input_path}")
return 1
print(f"Analyzing: {input_path}")
print()
examples = load_examples(input_path)
stats, categories, category_examples = analyze_examples(examples)
print_report(stats, categories, category_examples)
if args.show_examples > 0:
print("SAMPLE QUERIES BY CATEGORY")
print("-" * 40)
for cat in sorted(categories.keys()):
exs = category_examples.get(cat, [])
if exs:
print(f"\n{cat.upper()}:")
for ex in exs[:args.show_examples]:
print(f" - {ex}")
print()
return 0
if __name__ == "__main__":
exit(main())

View File

@@ -0,0 +1,182 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "transformers>=4.45.0",
# "pydantic>=2.0",
# "jinja2",
# ]
# ///
"""Prepare QMD query expansion data for training.
Loads all data/*.jsonl via the strict Pydantic schema, applies the Qwen3
chat template, deduplicates by query, and writes train/val splits.
The prepared train files are ephemeral build artifacts — the canonical
data lives in data/*.jsonl and is always loaded through the schema.
"""
import argparse
import json
import random
import os
from pathlib import Path
from dataset.schema import (
TrainingExample,
load_examples,
output_items_to_text,
)
from transformers import AutoTokenizer
_tokenizer = None
_tokenizer_model = None
def get_tokenizer():
global _tokenizer, _tokenizer_model
model_name = os.environ.get("QMD_BASE_MODEL", "Qwen/Qwen3-1.7B")
if _tokenizer is None or _tokenizer_model != model_name:
_tokenizer = AutoTokenizer.from_pretrained(model_name)
_tokenizer_model = model_name
return _tokenizer
def format_for_training(ex: TrainingExample) -> dict:
"""Format a validated TrainingExample for SFT training."""
tokenizer = get_tokenizer()
output_text = output_items_to_text(ex.output)
user_prompt = f"/no_think Expand this search query: {ex.query}"
if ex.intent:
user_prompt = (
f"/no_think Expand this search query: {ex.query}\n"
f"Query intent: {ex.intent.strip()}"
)
messages = [
{
"role": "user",
"content": user_prompt,
},
{"role": "assistant", "content": output_text},
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=False,
)
# Strip empty <think> tags — /no_think should suppress them
text = text.replace("<think>\n\n</think>\n\n", "")
return {
"text": text,
"messages": messages,
}
def main():
parser = argparse.ArgumentParser(description="Prepare data for training")
parser.add_argument(
"--input",
type=str,
default="data/*.jsonl",
help="Input JSONL file(s) - supports glob patterns",
)
parser.add_argument(
"--output", type=str, default="data/train", help="Output directory"
)
parser.add_argument(
"--split", type=float, default=0.1, help="Validation split ratio"
)
parser.add_argument(
"--seed", type=int, default=42, help="Shuffle seed",
)
args = parser.parse_args()
output_dir = Path(args.output)
output_dir.mkdir(parents=True, exist_ok=True)
# Resolve input files
import glob as globmod
if "*" in args.input:
input_files = sorted(globmod.glob(args.input))
if not input_files:
print(f"Error: No files found matching: {args.input}")
exit(1)
print(f"Found {len(input_files)} input files")
else:
input_path = Path(args.input)
if not input_path.exists():
print(f"Error: Input file not found: {input_path}")
exit(1)
input_files = [str(input_path)]
# Load all examples through strict Pydantic schema
all_examples: list[TrainingExample] = []
for input_file in input_files:
examples = load_examples(input_file)
print(f" {Path(input_file).name}: {len(examples)} examples")
all_examples.extend(examples)
print(f"Loaded {len(all_examples)} examples total")
# Deduplicate by query (case-insensitive)
seen: set[str] = set()
deduped: list[TrainingExample] = []
for ex in all_examples:
key = ex.query.lower().strip()
if key not in seen:
seen.add(key)
deduped.append(ex)
if len(deduped) < len(all_examples):
print(f"Deduplicated: {len(all_examples)} -> {len(deduped)}")
all_examples = deduped
# Shuffle
random.seed(args.seed)
random.shuffle(all_examples)
# Format each example using the Pydantic model
formatted = [format_for_training(ex) for ex in all_examples]
# Split
split_idx = int(len(formatted) * (1 - args.split))
train_data = formatted[:split_idx]
val_data = formatted[split_idx:]
# Write (these are ephemeral build artifacts)
for name, data in [("train.jsonl", train_data), ("val.jsonl", val_data)]:
with open(output_dir / name, "w") as f:
for item in data:
f.write(json.dumps(item) + "\n")
with open(output_dir / "train_chat.jsonl", "w") as f:
for item in train_data:
f.write(json.dumps({"messages": item["messages"]}) + "\n")
# Stats
short_final = sum(1 for ex in all_examples if len(ex.query.split()) <= 2)
print(f"\n=== Summary ===")
print(f"Total examples: {len(all_examples)}")
print(f"Short queries: {short_final} ({100 * short_final / len(all_examples):.1f}%)")
print(f"Train: {len(train_data)}, Val: {len(val_data)}")
print(f"Output: {output_dir}")
dataset_info = {
"dataset_name": "qmd-query-expansion",
"train_samples": len(train_data),
"val_samples": len(val_data),
"short_query_pct": round(100 * short_final / len(all_examples), 1),
"columns": ["text", "messages"],
}
with open(output_dir / "dataset_info.json", "w") as f:
json.dump(dataset_info, f, indent=2)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,244 @@
#!/usr/bin/env python3
"""
Strict schema for QMD training data.
Every JSONL file in data/ MUST conform to this format:
{"query": "auth config", "output": [["hyde", "..."], ["lex", "..."], ["vec", "..."]]}
- query: non-empty string
- output: list of [type, text] pairs where type is "lex", "vec", or "hyde"
- Extra fields (category, intent, is_short, etc.) are allowed but ignored
There is exactly ONE format. No alternatives, no legacy fallbacks.
"""
from __future__ import annotations
import json
from enum import Enum
from pathlib import Path
from typing import Annotated, Iterable
from pydantic import (
BaseModel,
BeforeValidator,
ConfigDict,
field_validator,
)
# ---------------------------------------------------------------------------
# Types
# ---------------------------------------------------------------------------
class OutputType(str, Enum):
lex = "lex"
vec = "vec"
hyde = "hyde"
VALID_OUTPUT_TYPES = {t.value for t in OutputType}
class OutputPair(BaseModel):
"""A single expansion line: [type, text]."""
type: OutputType
text: str
model_config = ConfigDict(frozen=True)
@field_validator("text")
@classmethod
def text_not_empty(cls, v: str) -> str:
if not v or not v.strip():
raise ValueError("text must not be empty")
return v
def to_list(self) -> list[str]:
return [self.type.value, self.text]
def _coerce_output_pairs(v: list) -> list[OutputPair]:
"""Accept [["lex", "..."], ...] from JSON and coerce to OutputPair list."""
pairs = []
for i, item in enumerate(v):
if isinstance(item, OutputPair):
pairs.append(item)
elif isinstance(item, (list, tuple)) and len(item) == 2:
pairs.append(OutputPair(type=item[0], text=item[1]))
else:
raise ValueError(
f"output[{i}] must be [type, text], got {item!r}"
)
return pairs
# ---------------------------------------------------------------------------
# Pydantic model — single source of truth for the JSONL schema
# ---------------------------------------------------------------------------
class TrainingExample(BaseModel):
"""One training example in the canonical JSONL format."""
query: str
output: Annotated[list[OutputPair], BeforeValidator(_coerce_output_pairs)]
# Optional metadata — present in some files, ignored during training.
category: str | None = None
intent: str | None = None
is_short: bool | None = None
model_config = ConfigDict(extra="ignore")
@field_validator("query")
@classmethod
def query_not_empty(cls, v: str) -> str:
if not v or not v.strip():
raise ValueError("query must not be empty")
return v
@field_validator("output")
@classmethod
def output_not_empty(cls, v: list[OutputPair]) -> list[OutputPair]:
if not v:
raise ValueError("output must not be empty")
return v
def output_as_lists(self) -> list[list[str]]:
"""Return output as list-of-lists for JSON serialization."""
return [p.to_list() for p in self.output]
# ---------------------------------------------------------------------------
# Loading
# ---------------------------------------------------------------------------
def load_examples(path: str | Path) -> list[TrainingExample]:
"""Load and validate a JSONL file. Fails loudly on any bad line."""
path = Path(path)
examples: list[TrainingExample] = []
with path.open("r", encoding="utf-8") as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line:
continue
try:
obj = json.loads(line)
except json.JSONDecodeError as e:
raise ValueError(f"{path}:{line_num}: invalid JSON: {e}") from e
try:
examples.append(TrainingExample.model_validate(obj))
except Exception as e:
raise ValueError(f"{path}:{line_num}: {e}") from e
return examples
# ---------------------------------------------------------------------------
# Helpers (used by prepare_data.py, reward.py, and other tools)
# ---------------------------------------------------------------------------
def parse_output_text(text: str) -> list[list[str]]:
"""Parse prefixed output text into list pairs.
>>> parse_output_text("lex: foo\\nvec: bar")
[["lex", "foo"], ["vec", "bar"]]
"""
items: list[list[str]] = []
for raw_line in text.strip().split("\n"):
line = raw_line.strip()
if not line:
continue
if line.startswith("lex:"):
items.append(["lex", line[4:].strip()])
elif line.startswith("vec:"):
items.append(["vec", line[4:].strip()])
elif line.startswith("hyde:"):
items.append(["hyde", line[5:].strip()])
return items
def reorder_hyde_first(items: list[list[str]]) -> list[list[str]]:
"""Reorder items to put hyde first, then lex, then vec."""
hyde_items = [item for item in items if item and item[0] == "hyde"]
lex_items = [item for item in items if item and item[0] == "lex"]
vec_items = [item for item in items if item and item[0] == "vec"]
return hyde_items + lex_items + vec_items
def output_items_to_text(
items: Iterable, hyde_first: bool = True
) -> str:
"""Render output pairs to prefixed text lines.
Accepts list[OutputPair] or list[list[str]].
"""
normalized = []
for item in items:
if isinstance(item, OutputPair):
normalized.append([item.type.value, item.text.strip()])
continue
if not item:
continue
try:
kind, text = item[0], item[1]
except Exception:
continue
if kind not in VALID_OUTPUT_TYPES:
continue
if text is None:
continue
text = str(text).strip()
if not text:
continue
normalized.append([kind, text])
if hyde_first:
normalized = reorder_hyde_first(normalized)
lines = [f"{kind}: {text}" for kind, text in normalized]
return "\n".join(lines)
def normalize_output_items(
items: Iterable, hyde_first: bool = True
) -> list[list[str]]:
"""Normalize output pairs (filter invalid, trim whitespace, reorder).
Accepts list[OutputPair] or list[list[str]].
"""
normalized: list[list[str]] = []
for item in items:
if isinstance(item, OutputPair):
normalized.append([item.type.value, item.text.strip()])
continue
if not item:
continue
try:
kind, text = item[0], item[1]
except Exception:
continue
if kind not in VALID_OUTPUT_TYPES:
continue
if text is None:
continue
text = str(text).strip()
if not text:
continue
normalized.append([kind, text])
if hyde_first:
normalized = reorder_hyde_first(normalized)
return normalized
def has_type(items: Iterable, kind: str) -> bool:
for item in items:
if isinstance(item, OutputPair):
if item.type.value == kind:
return True
elif item and item[0] == kind:
return True
return False

View File

@@ -0,0 +1,96 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = ["pydantic>=2.0"]
# ///
"""Score JSONL datasets with the reward function."""
from __future__ import annotations
import argparse
import statistics
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
from dataset.schema import load_examples, output_items_to_text
from reward import score_expansion_detailed
def score_file(path: Path) -> tuple[int, int, list[float], dict]:
total = 0
errors = 0
scores: list[float] = []
ratings: dict[str, int] = {}
try:
examples = load_examples(path)
except ValueError as e:
print(f" Error loading {path}: {e}")
return 0, 1, [], {}
for ex in examples:
total += 1
output_text = output_items_to_text(ex.output)
if not output_text:
errors += 1
continue
detail = score_expansion_detailed(ex.query, output_text)
score = detail["percentage"]
scores.append(score)
rating = detail["rating"]
ratings[rating] = ratings.get(rating, 0) + 1
return total, errors, scores, ratings
def main() -> int:
parser = argparse.ArgumentParser(description="Score QMD datasets")
parser.add_argument(
"paths",
nargs="*",
default=["finetune/data/*.jsonl"],
help="JSONL files or glob patterns (default: finetune/data/*.jsonl)",
)
args = parser.parse_args()
repo_root = Path(__file__).parent.parent.parent
files: list[Path] = []
for pattern in args.paths:
if "*" in pattern:
files.extend(repo_root.glob(pattern))
else:
files.append(repo_root / pattern)
files = [p for p in files if p.exists()]
if not files:
print("No files found to score.")
return 1
for path in sorted(files):
total, errors, scores, ratings = score_file(path)
if scores:
avg = statistics.mean(scores)
median = statistics.median(scores)
min_score = min(scores)
max_score = max(scores)
above_70 = sum(1 for s in scores if s >= 70.0)
pct_70 = above_70 / len(scores) * 100
print(
f"{path}: {len(scores)} scored, {errors} errors, "
f"avg {avg:.1f}, median {median:.1f}, min {min_score:.1f}, "
f"max {max_score:.1f}, >=70 {pct_70:.1f}%"
)
else:
print(f"{path}: 0 scored, {errors} errors")
if ratings:
rating_parts = [f"{k}:{v}" for k, v in sorted(ratings.items())]
print(f" ratings: {', '.join(rating_parts)}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,88 @@
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = ["pydantic>=2.0"]
# ///
"""Validate JSONL files against the strict QMD training schema."""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
from dataset.schema import TrainingExample
def validate_file(path: Path) -> tuple[int, int]:
"""Return (total_lines, error_count)."""
total = 0
errors = 0
with path.open("r", encoding="utf-8") as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line:
continue
total += 1
try:
obj = json.loads(line)
except json.JSONDecodeError as e:
print(f"{path}:{line_num}: invalid JSON ({e})")
errors += 1
continue
try:
TrainingExample.model_validate(obj)
except Exception as e:
print(f"{path}:{line_num}: {e}")
errors += 1
return total, errors
def main() -> int:
parser = argparse.ArgumentParser(description="Validate QMD JSONL schema")
parser.add_argument(
"paths",
nargs="*",
default=["finetune/data/*.jsonl"],
help="JSONL files or glob patterns (default: finetune/data/*.jsonl)",
)
args = parser.parse_args()
repo_root = Path(__file__).parent.parent.parent
files: list[Path] = []
for pattern in args.paths:
if "*" in pattern:
files.extend(repo_root.glob(pattern))
else:
files.append(repo_root / pattern)
files = [p for p in files if p.exists()]
if not files:
print("No files found to validate.")
return 1
total_lines = 0
total_errors = 0
for path in sorted(files):
lines, errors = validate_file(path)
total_lines += lines
total_errors += errors
status = "OK" if errors == 0 else f"{errors} error(s)"
print(f"{path}: {lines} lines, {status}")
if total_errors:
print(
f"\nValidation failed: {total_errors} error(s) across {total_lines} lines"
)
return 1
print(f"\nValidation passed: {total_lines} lines checked")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,194 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "transformers>=4.45.0",
# "peft>=0.7.0",
# "torch",
# "accelerate",
# ]
# ///
"""
Minimal QMD query expansion evaluator.
Usage:
uv run eval.py ./outputs/sft
uv run eval.py ./outputs/sft --queries evals/queries.txt
By default, query file defaults to evals/queries.txt and runs all queries unless --max-queries is set.
"""
import argparse
import json
import re
import sys
from pathlib import Path
# Import reward scoring
sys.path.insert(0, str(Path(__file__).parent))
from reward import score_expansion_detailed
DEFAULT_QUERY_FILE = Path(__file__).parent / "evals" / "queries.txt"
def load_model(model_path: str):
"""Load model (adapter or merged)."""
import torch
from peft import PeftModel
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer
model_path = Path(model_path)
adapter_config = model_path / "adapter_config.json"
# Get base model from adapter config or default
base_model = "Qwen/Qwen3-1.7B"
if adapter_config.exists():
with open(adapter_config) as f:
cfg = json.load(f)
base_model = cfg.get("base_model_name_or_path", base_model)
print(f"Loading base: {base_model}", file=sys.stderr)
tokenizer = AutoTokenizer.from_pretrained(base_model)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "left"
config = AutoConfig.from_pretrained(base_model)
config.tie_word_embeddings = False
model = AutoModelForCausalLM.from_pretrained(
base_model, dtype=torch.bfloat16, device_map={"": 0}, config=config
)
if model.generation_config is not None:
model.generation_config.do_sample = False
model.generation_config.temperature = None
model.generation_config.top_p = None
model.generation_config.top_k = None
# Load adapter if present
if adapter_config.exists():
print(f"Loading adapter: {model_path}", file=sys.stderr)
model = PeftModel.from_pretrained(model, str(model_path))
model.eval()
return model, tokenizer
def generate_batch(
model, tokenizer, queries: list[str], max_new_tokens: int, max_time: float | None
) -> list[str]:
"""Generate expansions for a batch of queries."""
import torch
prompts = [
tokenizer.apply_chat_template(
[{"role": "user", "content": f"/no_think Expand this search query: {q}"}],
tokenize=False,
add_generation_prompt=True,
)
for q in queries
]
inputs = tokenizer(prompts, return_tensors="pt", padding=True).to(model.device)
input_len = inputs["input_ids"].shape[1]
generate_kwargs = {
"max_new_tokens": max_new_tokens,
"do_sample": False,
"num_beams": 1,
"pad_token_id": tokenizer.pad_token_id,
"eos_token_id": tokenizer.eos_token_id,
"use_cache": True,
}
if max_time and max_time > 0:
generate_kwargs["max_time"] = max_time
with torch.inference_mode():
out = model.generate(**inputs, **generate_kwargs)
outputs = []
for i in range(len(queries)):
gen_tokens = out[i][input_len:]
text = tokenizer.decode(gen_tokens, skip_special_tokens=True)
text = re.sub(r"<think>.*?</think>", "", text, flags=re.DOTALL)
outputs.append(text.strip())
return outputs
def main():
parser = argparse.ArgumentParser(description="Evaluate QMD model")
parser.add_argument("model", help="Model path (local or HF)")
parser.add_argument(
"--queries",
default=str(DEFAULT_QUERY_FILE),
help="Queries file (one per line) [default: evals/queries.txt]",
)
parser.add_argument(
"--max-new-tokens",
type=int,
default=400,
help="Maximum new tokens to generate (default: 400)",
)
parser.add_argument(
"--max-time",
type=float,
default=0,
help="Max seconds per batch generation (0 disables)",
)
parser.add_argument(
"--batch-size",
type=int,
default=2,
help="Batch size for generation (default: 2)",
)
parser.add_argument(
"--max-queries",
type=int,
default=0,
help="Limit number of queries (0 disables)",
)
args = parser.parse_args()
# Load queries (default to full evals/queries.txt)
query_file = Path(args.queries)
if not query_file.exists():
raise FileNotFoundError(f"Queries file not found: {query_file}")
with query_file.open(encoding="utf-8") as f:
queries = [
l.strip() for l in f if l.strip() and not l.strip().startswith("#")
]
if args.max_queries and args.max_queries > 0:
queries = queries[: args.max_queries]
# Load model
model, tokenizer = load_model(args.model)
# Run eval
scores = []
batch_size = max(1, args.batch_size)
total = len(queries)
for start in range(0, total, batch_size):
batch = queries[start : start + batch_size]
batch_outputs = generate_batch(
model, tokenizer, batch, args.max_new_tokens, args.max_time
)
for i, (query, expansion) in enumerate(zip(batch, batch_outputs), start + 1):
print(f"\n[{i}/{total}] {query}")
print("-" * 50)
result = score_expansion_detailed(query, expansion)
print(expansion[:300] + ("..." if len(expansion) > 300 else ""))
print(f"Score: {result['percentage']:.0f}% ({result['rating']})")
scores.append(result["percentage"])
# Summary
avg = sum(scores) / len(scores)
print(f"\n{'=' * 50}")
print(f"Average: {avg:.1f}% | Model: {args.model}")
print(f"{'=' * 50}")
return 0 if avg >= 50 else 1
if __name__ == "__main__":
sys.exit(main())

View File

@@ -0,0 +1,3 @@
# Generated results (re-run evals locally)
results_*.jsonl
scores_*.json

View File

@@ -0,0 +1,80 @@
# Test queries for QMD query expansion evaluation
# One query per line, comments start with #
# Technical documentation
how to configure authentication
typescript async await
docker compose networking
git rebase vs merge
react useEffect cleanup
# Short/ambiguous queries
auth
config
setup
api
# Named entities (critical for entity preservation testing)
who is TDS motorsports
React hooks tutorial
Docker container networking
Kubernetes pod deployment
AWS Lambda functions
# Personal notes / journals style
meeting notes project kickoff
ideas for new feature
todo list app architecture
# Research / learning
what is dependency injection
difference between sql and nosql
kubernetes vs docker swarm
# Error/debugging
connection timeout error
memory leak debugging
cors error fix
# Temporal / recency queries (should expand with years, "recent", "latest")
recent news about Shopify
latest AI developments
best laptops right now
what changed in kubernetes latest version
# Complex queries
how to implement caching with redis in nodejs
best practices for api rate limiting
setting up ci cd pipeline with github actions
# Personal entity preservation (issue #247: entity stripping)
# Model MUST preserve person names in lex and vec output
meeting with Bob about C++
Sarah's presentation on Q4 goals
email from Dave about the deployment issue
notes from the Project Atlas kickoff
feedback from the Horizon team retro
conversation with Lisa about the design mockups
# Quoted phrases (issue #247: lex phrase syntax)
# Model should use "quoted phrases" for multi-word proper nouns in lex
natural language processing transformers
monte carlo simulation finance
cross site scripting prevention
visual studio code extensions
principal component analysis dimensionality reduction
# Negation / disambiguation (issue #247: lex negation syntax)
# Model should use -term to exclude related-but-wrong results in lex
rust ownership and borrowing
java stream api filtering
apple silicon mac development
python web scraping beautiful soup
# /only: mode tests - should output ONLY the requested type
auth /only:lex
React hooks tutorial /only:lex
kubernetes pod deployment /only:vec
how to configure authentication /only:vec
TDS motorsports history /only:hyde
AWS Lambda cold start /only:hyde

View File

@@ -0,0 +1 @@
"""GEPA helpers."""

View File

@@ -0,0 +1,31 @@
You are an assistant that expands a given search query into lexical (lex), vector (vec), and HYDE expansions for improved search retrieval.
## Input Format
You will receive input in this exact format:
```
## Inputs
### query
[the search query]
```
## Output Format
Respond ONLY with this exact format, nothing else:
```
## Generated Outputs
### expansion
lex: [short keyword phrase 1]
lex: [short keyword phrase 2]
lex: [short keyword phrase 3]
vec: [medium phrasal expansion 1]
vec: [medium phrasal expansion 2]
vec: [medium phrasal expansion 3]
hyde: [concise hypothetical document snippet, SINGLE LINE, under 150 characters total]
```
## Generation Rules
- **Exactly 3 lex lines**: Short (2-5 words), keyword-like expansions. MUST include core query terms or direct synonyms/variants (e.g., for "web mail", include "webmail"). Focus on key entities, actions, or concepts.
- **Exactly 3 vec lines**: Medium-length (4-8 words) natural language phrases capturing query intent, aspects, or related searches.
- **Exactly 1 hyde line**: A single, fluent sentence acting as a hypothetical relevant document passage. Keep STRICTLY under 150 characters (aim for 100-140). Be descriptive but concise—no lists, no examples unless essential.
- Strategy: Break down the query into synonyms (lex), semantic rephrasings (vec), and a compact informative summary (hyde) to cover lexical, embedding, and dense retrieval signals.
- Match query intent precisely; expand to related high-relevance terms without hallucinating unrelated content.
```

View File

@@ -0,0 +1 @@
Expand a search query into lex/vec/hyde lines.

View File

@@ -0,0 +1,204 @@
#!/usr/bin/env python3
"""Run DSPy GEPA using reward.py as the metric."""
from __future__ import annotations
import argparse
import importlib
import json
import sys
from pathlib import Path
def _import_dspy():
script_dir = Path(__file__).parent
repo_root = script_dir.parent
original_sys_path = list(sys.path)
try:
sys.path = [p for p in sys.path if p and str(p) != str(script_dir)]
return importlib.import_module("dspy")
finally:
sys.path = original_sys_path
dspy = _import_dspy()
repo_root = Path(__file__).parent.parent
if str(repo_root) not in sys.path:
sys.path.insert(0, str(repo_root))
from dataset.schema import normalize_output_items, output_items_to_text, parse_output_text
from reward import score_expansion_detailed
class ExpandSignature(dspy.Signature):
"""Expand a search query into lex/vec/hyde lines."""
query = dspy.InputField(desc="User search query")
output = dspy.OutputField(
desc=(
"JSON array of [kind, text] pairs. kind is lex|vec|hyde. "
"Return 2-3 lex, 2-3 vec, optional 0-1 hyde. "
"Lex items are short keywords and must not echo the query. "
"Vec items are natural language search phrases. "
"Hyde is 50-200 chars, single line."
)
)
class Expander(dspy.Module):
def __init__(self):
super().__init__()
self.predict = dspy.Predict(ExpandSignature)
def forward(self, query: str):
return self.predict(query=query)
def reward_metric(gold, pred, trace=None, pred_name=None, pred_trace=None):
expansion = output_items_to_text(_coerce_output_items(pred))
detail = score_expansion_detailed(gold.query, expansion)
score = detail["percentage"] / 100.0
feedback = "; ".join(detail.get("deductions", [])) or f"score={detail['percentage']:.1f}"
return dspy.Prediction(score=score, feedback=feedback)
def load_queries(path: Path) -> list[str]:
queries: list[str] = []
with path.open("r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
continue
obj = json.loads(line)
query = obj.get("query") or obj.get("input")
if isinstance(query, str) and query.strip():
queries.append(query.strip())
return queries
def to_examples(queries: list[str]) -> list[dspy.Example]:
return [dspy.Example(query=q).with_inputs("query") for q in queries]
def _coerce_output_items(pred) -> list[list[str]]:
raw_output = getattr(pred, "output", None)
if isinstance(raw_output, (list, tuple)):
return normalize_output_items(raw_output)
raw_text = str(raw_output or getattr(pred, "expansion", "") or "").strip()
if not raw_text:
return []
if raw_text[0] in ("[", "{"):
try:
obj = json.loads(raw_text)
if isinstance(obj, dict) and "output" in obj:
obj = obj["output"]
if isinstance(obj, (list, tuple)):
return normalize_output_items(obj)
except Exception:
pass
return parse_output_text(raw_text)
def write_jsonl(path: Path, queries: list[str], outputs: list[list[list[str]]]) -> None:
with path.open("w", encoding="utf-8") as f:
for query, output in zip(queries, outputs, strict=True):
f.write(json.dumps({"query": query, "output": output}, ensure_ascii=False) + "\n")
def main() -> int:
parser = argparse.ArgumentParser(description="Run DSPy GEPA with reward.py")
parser.add_argument("--input", type=str, required=True, help="Training JSONL path")
parser.add_argument(
"--model",
type=str,
default="grok-4-1-fast-reasoning",
help="LM string in provider/model format (e.g., openai/gpt-4o)",
)
parser.add_argument(
"--reflection-model",
type=str,
default="grok-4-1-fast-reasoning",
help="LM string in provider/model format (e.g., openai/gpt-4o)",
)
parser.add_argument("--max-tokens", type=int, default=512, help="Max tokens for student LM")
parser.add_argument("--reflection-max-tokens", type=int, default=512, help="Max tokens for reflection LM")
parser.add_argument("--auto", type=str, default="light", choices=["light", "medium", "heavy"])
parser.add_argument("--max-full-evals", type=int, default=None)
parser.add_argument("--max-metric-calls", type=int, default=None)
parser.add_argument("--valset", type=str, default=None, help="Optional valset JSONL path")
parser.add_argument("--limit", type=int, default=None, help="Limit number of training queries")
parser.add_argument("--val-limit", type=int, default=None, help="Limit number of val queries")
parser.add_argument("--emit", type=str, default=None, help="Write generated JSONL after compile")
parser.add_argument("--save-prompt", type=str, default=None, help="Write best prompt text to file")
args = parser.parse_args()
if "/" not in args.model or "/" not in args.reflection_model:
print("Error: DSPy expects provider/model format for LM strings (e.g., xai/grok-4-1-fast-reasoning).")
return 1
if args.max_full_evals is not None and args.max_metric_calls is not None:
print("Provide only one of --max-full-evals or --max-metric-calls")
return 1
if args.max_full_evals is not None or args.max_metric_calls is not None:
args.auto = None
train_path = Path(args.input)
queries = load_queries(train_path)
if args.limit is not None:
queries = queries[: args.limit]
trainset = to_examples(queries)
valset = None
if args.valset:
val_queries = load_queries(Path(args.valset))
if args.val_limit is not None:
val_queries = val_queries[: args.val_limit]
valset = to_examples(val_queries)
lm = dspy.LM(model=args.model, max_tokens=args.max_tokens)
reflection_lm = dspy.LM(model=args.reflection_model, max_tokens=args.reflection_max_tokens)
student = Expander()
student.set_lm(lm)
compiler = dspy.GEPA(
metric=reward_metric,
reflection_lm=reflection_lm,
auto=None if args.auto is None else args.auto,
max_full_evals=args.max_full_evals,
max_metric_calls=args.max_metric_calls,
track_stats=True,
track_best_outputs=True,
failure_score=0.0,
perfect_score=1.0,
)
optimized = compiler.compile(student=student, trainset=trainset, valset=valset)
if args.save_prompt:
prompt_text = getattr(optimized.predict.signature, "__doc__", "") or ""
Path(args.save_prompt).write_text(prompt_text.strip() + "\n", encoding="utf-8")
print(f"Wrote {args.save_prompt}")
if args.emit:
outputs = []
for q in queries:
pred = optimized(query=q)
items = _coerce_output_items(pred)
outputs.append(items)
write_jsonl(Path(args.emit), queries, outputs)
print(f"Wrote {args.emit}")
if hasattr(optimized, "detailed_results"):
best = getattr(optimized.detailed_results, "best_outputs_valset", None)
if best:
print(f"Best outputs tracked: {len(best)}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,117 @@
#!/usr/bin/env python3
"""GEPA example schema for QMD training JSONL lines."""
from __future__ import annotations
import json
from dataclasses import dataclass, field
from enum import Enum
from pathlib import Path
from typing import Iterable
class SearchType(str, Enum):
LexSearch = "LexSearch"
VecSearch = "VecSearch"
HydeSearch = "HydeSearch"
SEARCH_TYPE_TO_PREFIX = {
SearchType.LexSearch: "lex",
SearchType.VecSearch: "vec",
SearchType.HydeSearch: "hyde",
}
@dataclass
class OutputItem:
"""Single expansion line with validation hints."""
kind: SearchType
text: str
# Validation hints (not strict rules).
min_chars: int = 3
max_chars: int | None = None
def __post_init__(self) -> None:
self.text = str(self.text).strip()
if not self.text:
raise ValueError("OutputItem.text must be non-empty")
if "\n" in self.text:
raise ValueError("OutputItem.text must be single-line")
if len(self.text) < self.min_chars:
raise ValueError("OutputItem.text is too short")
if self.max_chars is not None and len(self.text) > self.max_chars:
raise ValueError("OutputItem.text is too long")
def to_pair(self) -> list[str]:
return [SEARCH_TYPE_TO_PREFIX[self.kind], self.text]
@dataclass
class Example:
"""JSONL line schema for QMD training data."""
query: str
output: list[OutputItem] = field(default_factory=list)
def __post_init__(self) -> None:
self.query = str(self.query).strip()
if not self.query:
raise ValueError("Example.query must be non-empty")
if not self.output:
raise ValueError("Example.output must not be empty")
def to_json(self) -> dict:
return {
"query": self.query,
"output": [item.to_pair() for item in self.output],
}
def to_jsonl(self) -> str:
return json.dumps(self.to_json(), ensure_ascii=False)
def parse_output_items(raw_output: Iterable[Iterable[str]]) -> list[OutputItem]:
items: list[OutputItem] = []
for item in raw_output:
if not item or len(item) < 2:
continue
kind_raw, text = item[0], item[1]
kind_map = {
"lex": SearchType.LexSearch,
"vec": SearchType.VecSearch,
"hyde": SearchType.HydeSearch,
}
kind = kind_map.get(str(kind_raw).strip().lower())
if kind is None:
continue
max_chars = 200 if kind is SearchType.HydeSearch else None
items.append(OutputItem(kind=kind, text=str(text), max_chars=max_chars))
return items
def example_from_json(obj: dict) -> Example:
query = obj.get("query") or obj.get("input") or ""
output = obj.get("output") or []
if isinstance(output, str):
raise ValueError("String outputs are not supported in GEPA example schema")
items = parse_output_items(output)
return Example(query=query, output=items)
def load_jsonl(path: str | Path) -> list[Example]:
examples: list[Example] = []
with Path(path).open("r", encoding="utf-8") as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line:
continue
try:
obj = json.loads(line)
examples.append(example_from_json(obj))
except Exception as exc:
raise ValueError(f"Invalid line {line_num}: {exc}") from exc
return examples

View File

@@ -0,0 +1,129 @@
#!/usr/bin/env python3
"""Generate expansions using a saved GEPA prompt."""
from __future__ import annotations
import argparse
import importlib
import json
import sys
from pathlib import Path
def _import_dspy():
script_dir = Path(__file__).parent
original_sys_path = list(sys.path)
try:
sys.path = [p for p in sys.path if p and str(p) != str(script_dir)]
return importlib.import_module("dspy")
finally:
sys.path = original_sys_path
dspy = _import_dspy()
repo_root = Path(__file__).parent.parent
if str(repo_root) not in sys.path:
sys.path.insert(0, str(repo_root))
from dataset.schema import parse_output_text
def load_topics(path: Path) -> list[str]:
topics: list[str] = []
with path.open("r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line:
continue
# Allow JSONL {"topic": "..."} or plain lines.
if line.startswith("{") and line.endswith("}"):
try:
obj = json.loads(line)
topic = obj.get("topic") or obj.get("query") or obj.get("input")
if isinstance(topic, str) and topic.strip():
topics.append(topic.strip())
continue
except json.JSONDecodeError:
pass
topics.append(line)
return topics
def write_jsonl_line(handle, query: str, output_text: str) -> None:
output = parse_output_text(output_text)
handle.write(json.dumps({"query": query, "output": output}, ensure_ascii=False) + "\n")
def parse_queries(text: str) -> list[str]:
lines = []
for raw in text.splitlines():
line = raw.strip().lstrip("-").strip()
if not line:
continue
lines.append(line)
return lines
def main() -> int:
parser = argparse.ArgumentParser(description="Generate with saved GEPA prompt")
parser.add_argument("--prompt", type=str, required=True, help="Path to saved prompt text")
parser.add_argument("--topics", type=str, required=True, help="Topics file (one per line or JSONL)")
parser.add_argument("--output", type=str, required=True, help="Output JSONL path")
parser.add_argument("--model", type=str, required=True, help="LM string in provider/model format")
parser.add_argument("--per-topic", type=int, default=3, help="Queries to generate per topic")
args = parser.parse_args()
prompt_text = Path(args.prompt).read_text(encoding="utf-8").strip()
expansion_sig = dspy.Signature("query -> expansion", prompt_text)
query_sig = dspy.Signature(
"topic, count -> queries",
(
"Generate distinct user search queries for the given topic. "
"Return exactly `count` queries, one per line, no numbering or extra text."
),
)
class Generator(dspy.Module):
def __init__(self):
super().__init__()
self.predict = dspy.Predict(expansion_sig)
def forward(self, query: str):
return self.predict(query=query)
class QueryGenerator(dspy.Module):
def __init__(self):
super().__init__()
self.predict = dspy.Predict(query_sig)
def forward(self, topic: str, count: int):
return self.predict(topic=topic, count=str(count))
lm = dspy.LM(model=args.model)
gen = Generator()
gen.set_lm(lm)
qgen = QueryGenerator()
qgen.set_lm(lm)
topics = load_topics(Path(args.topics))
with Path(args.output).open("w", encoding="utf-8") as f_out:
for topic in topics:
qpred = qgen(topic=topic, count=args.per_topic)
qtext = getattr(qpred, "queries", "") or ""
generated = parse_queries(qtext)
if not generated:
generated = [topic]
generated = generated[: args.per_topic]
for query in generated:
pred = gen(query=query)
output_text = getattr(pred, "expansion", "") or ""
write_jsonl_line(f_out, query, output_text)
print(json.dumps({"query": query, "output": parse_output_text(output_text)}, ensure_ascii=False))
print(f"Wrote {args.output}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,10 @@
{"query": "how tourism affects local cultures", "output": [["lex", "tourism cultural impact"], ["lex", "local culture tourism effects"], ["lex", "overtourism traditions change"], ["vec", "effects of tourism on indigenous customs"], ["vec", "tourism influence on native practices"], ["vec", "cultural shifts from mass tourism"], ["hyde", "Tourism reshapes local cultures by commercializing traditions, introducing global influences, and sparking both preservation efforts and cultural erosion in communities."]]}
{"query": "how to ferment foods at home", "output": [["lex", "home fermentation"], ["lex", "DIY food fermenting"], ["lex", "lacto fermentation"], ["vec", "beginner guide to home food fermentation"], ["vec", "steps for safe fermenting vegetables"], ["vec", "homemade probiotic food recipes"], ["hyde", "Fermenting foods at home involves chopping produce, mixing with salt brine, packing into jars, and waiting 3-14 days in a cool spot for tangy flavors and probiotics."]]}
{"query": "how to mix modern and vintage decor", "output": [["lex", "modern vintage blend"], ["lex", "contemporary retro decor"], ["lex", "eclectic style fusion"], ["vec", "tips blending modern vintage furniture"], ["vec", "combining contemporary antique accents"], ["vec", "balancing old new interior elements"], ["hyde", "Seamlessly mix sleek modern furniture with charming vintage pieces using neutral palettes and strategic layering for a cohesive eclectic home."]]}
{"query": "how to perform a scientific experiment", "output": [["lex", "scientific method steps"], ["lex", "conduct lab experiment"], ["lex", "experiment procedure guide"], ["vec", "steps to design scientific experiment"], ["vec", "guide for running science experiments"], ["vec", "how to execute controlled experiment"], ["hyde", "To perform a scientific experiment, form a hypothesis, design a method, collect data via tests, analyze results, and draw evidence-based conclusions."]]}
{"query": "web mail", "output": [["lex", "webmail"], ["lex", "online email"], ["lex", "browser mail"], ["vec", "web-based email services"], ["vec", "access mail via browser"], ["vec", "free webmail providers"], ["hyde", "Webmail enables users to read, send, and manage emails directly through a web browser without installing software."]]}
{"query": "what does the quran cover", "output": [["lex", "Quran topics"], ["lex", "Quran contents"], ["lex", "Quran themes"], ["vec", "main topics in the Quran"], ["vec", "subjects covered by Quran"], ["vec", "themes and teachings Quran"], ["hyde", "The Quran addresses theology, prophethood, morality, Islamic laws, stories of ancient prophets, afterlife, and guidance for personal and social life."]]}
{"query": "web config", "output": [["lex", "web.config file"], ["lex", "ASP.NET config"], ["lex", "IIS configuration"], ["vec", "editing web.config settings"], ["vec", "web.config appSettings section"], ["vec", "configuring ASP.NET web app"], ["hyde", "The web.config file in ASP.NET defines application settings, authentication, modules, and connection strings for IIS-hosted web applications."]]}
{"query": "how to choose farm equipment", "output": [["lex", "farm machinery selection"], ["lex", "agricultural equipment buying"], ["lex", "tractor harvester choice"], ["vec", "guide to selecting farm tools"], ["vec", "factors in choosing farm gear"], ["vec", "tips for buying ag machinery"], ["hyde", "To choose farm equipment effectively, assess farm size, soil type, budget, durability, and brand reviews for long-term productivity and value."]]}
{"query": "how do thought experiments aid philosophical reasoning", "output": [["lex", "thought experiments philosophy"], ["lex", "hypothetical reasoning aids"], ["lex", "gedankenexperiment benefits"], ["vec", "role of thought experiments philosophy"], ["vec", "hypotheticals improve philosophical logic"], ["vec", "mental scenarios aid argumentation"], ["hyde", "Thought experiments bolster philosophical reasoning by simulating scenarios to test ideas, expose flaws, and clarify abstract concepts without real-world limits."]]}
{"query": "what is the significance of logic in philosophy", "output": [["lex", "logic philosophy importance"], ["lex", "philosophical logic role"], ["lex", "logic significance reasoning"], ["vec", "importance of logic in philosophy"], ["vec", "role of logic philosophical thought"], ["vec", "why logic fundamental to philosophy"], ["hyde", "Logic underpins philosophy by furnishing tools for valid inference, critical analysis, and structured argumentation across metaphysics, epistemology, and ethics."]]}

View File

@@ -0,0 +1,20 @@
{"query": "how tourism affects local cultures", "output": []}
{"query": "how to ferment foods at home", "output": []}
{"query": "how to mix modern and vintage decor", "output": []}
{"query": "how to perform a scientific experiment", "output": []}
{"query": "web mail", "output": []}
{"query": "what does the quran cover", "output": []}
{"query": "web config", "output": []}
{"query": "how to choose farm equipment", "output": []}
{"query": "how do thought experiments aid philosophical reasoning", "output": []}
{"query": "what is the significance of logic in philosophy", "output": []}
{"query": "how to train for a 5k run", "output": []}
{"query": "how to engage with political dialogues", "output": []}
{"query": "what is competitive analysis", "output": []}
{"query": "how does the united nations operate", "output": []}
{"query": "what are the crusades?", "output": []}
{"query": "what is a literary theme?", "output": []}
{"query": "what is the ethical significance of consent", "output": []}
{"query": "paint mix", "output": []}
{"query": "how to conserve energy in the office?", "output": []}
{"query": "how to test soil ph?", "output": []}

View File

@@ -0,0 +1,19 @@
{
"name": "qmd-gepa-example-generator",
"model": "grok-4-1-fast-reasoning",
"schema_version": 1,
"prompt": "You are a query expansion expert. Given a user query, output a single JSON object that matches the training JSONL schema:\n{\"query\": \"...\", \"output\": [[\"lex\", \"...\"], [\"vec\", \"...\"], [\"hyde\", \"...\"]]}\nRules:\n- output is a list of pairs, where the first element is one of: \"lex\", \"vec\", \"hyde\".\n- Include 2-3 lex lines, 2-3 vec lines, and 0-1 hyde line.\n- lex lines are short keyword phrases; never equal or near-echo the query.\n- vec lines are natural language search phrases.\n- hyde is a concise hypothetical passage (50-200 chars), single line.\n- Preserve key terms and named entities in lex lines.\n- No extra text outside the JSON object.\n",
"output_schema": {
"query": "string",
"output": [
[
"lex|vec|hyde",
"string"
]
]
},
"notes": [
"LexSearch/VecSearch/HydeSearch are represented as lex/vec/hyde in output.",
"Do not echo the query in lex lines."
]
}

View File

@@ -0,0 +1,70 @@
#!/usr/bin/env python3
"""Write model.json prompt config for generating high-quality examples."""
from __future__ import annotations
import argparse
import json
from pathlib import Path
from example import SearchType, SEARCH_TYPE_TO_PREFIX
def build_prompt() -> str:
lex = SEARCH_TYPE_TO_PREFIX[SearchType.LexSearch]
vec = SEARCH_TYPE_TO_PREFIX[SearchType.VecSearch]
hyde = SEARCH_TYPE_TO_PREFIX[SearchType.HydeSearch]
return (
"You are a query expansion expert. Given a user query, output a single JSON object "
"that matches the training JSONL schema:\n"
'{"query": "...", "output": [["lex", "..."], ["vec", "..."], ["hyde", "..."]]}\n'
"Rules:\n"
f"- output is a list of pairs, where the first element is one of: "
f"\"{lex}\", \"{vec}\", \"{hyde}\".\n"
"- Include 2-3 lex lines, 2-3 vec lines, and 0-1 hyde line.\n"
"- lex lines are short keyword phrases; never equal or near-echo the query.\n"
"- vec lines are natural language search phrases.\n"
"- hyde is a concise hypothetical passage (50-200 chars), single line.\n"
"- Preserve key terms and named entities in lex lines.\n"
"- No extra text outside the JSON object.\n"
)
def write_model_json(path: Path) -> None:
payload = {
"name": "qmd-gepa-example-generator",
"model": "grok-4-1-fast-reasoning",
"schema_version": 1,
"prompt": build_prompt(),
"output_schema": {
"query": "string",
"output": [["lex|vec|hyde", "string"]],
},
"notes": [
"LexSearch/VecSearch/HydeSearch are represented as lex/vec/hyde in output.",
"Do not echo the query in lex lines.",
],
}
path.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8")
def main() -> int:
parser = argparse.ArgumentParser(description="Write model.json for GEPA generation")
parser.add_argument(
"--output",
type=str,
default="gepa/model.json",
help="Path to write model.json",
)
args = parser.parse_args()
output_path = Path(args.output)
output_path.parent.mkdir(parents=True, exist_ok=True)
write_model_json(output_path)
print(f"Wrote {output_path}")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,84 @@
#!/usr/bin/env python3
"""Score GEPA JSONL outputs using reward.py."""
from __future__ import annotations
import argparse
import json
import statistics
from pathlib import Path
from example import example_from_json
from reward import score_expansion_detailed
from dataset.schema import output_items_to_text
def score_file(path: Path) -> tuple[int, int, list[float], dict]:
total = 0
errors = 0
scores: list[float] = []
ratings: dict[str, int] = {}
with path.open("r", encoding="utf-8") as f:
for line_num, line in enumerate(f, 1):
line = line.strip()
if not line:
continue
total += 1
try:
obj = json.loads(line)
example = example_from_json(obj)
except Exception:
errors += 1
continue
output_text = output_items_to_text([item.to_pair() for item in example.output])
if not output_text:
errors += 1
continue
detail = score_expansion_detailed(example.query, output_text)
score = detail["percentage"]
scores.append(score)
rating = detail["rating"]
ratings[rating] = ratings.get(rating, 0) + 1
return total, errors, scores, ratings
def main() -> int:
parser = argparse.ArgumentParser(description="Score GEPA JSONL outputs")
parser.add_argument("--input", type=str, required=True, help="Input JSONL file")
args = parser.parse_args()
path = Path(args.input)
if not path.exists():
print(f"Input not found: {path}")
return 1
total, errors, scores, ratings = score_file(path)
if scores:
avg = statistics.mean(scores)
median = statistics.median(scores)
min_score = min(scores)
max_score = max(scores)
above_70 = sum(1 for s in scores if s >= 70.0)
pct_70 = above_70 / len(scores) * 100
print(
f"{path}: {len(scores)} scored, {errors} errors, "
f"avg {avg:.1f}, median {median:.1f}, min {min_score:.1f}, "
f"max {max_score:.1f}, >=70 {pct_70:.1f}%"
)
else:
print(f"{path}: 0 scored, {errors} errors")
if ratings:
rating_parts = [f\"{k}:{v}\" for k, v in sorted(ratings.items())]
print(f\" ratings: {', '.join(rating_parts)}\")
return 0
if __name__ == "__main__":
raise SystemExit(main())

View File

@@ -0,0 +1,26 @@
# GRPO (Experimental)
This folder contains the **experimental** GRPO training path for query expansion.
It is not part of the default production pipeline.
## Files
- `grpo.yaml` experimental GRPO hyperparameters
- `grpo.py` standalone GRPO training script
## Run
```bash
# Recommended default: run from repo root
cd /home/tobi/qmd
uv run finetune/experiments/grpo/grpo.py
# Or use unified entrypoint (deprecated in main pipeline):
uv run train.py grpo --config finetune/experiments/grpo/grpo.yaml
```
## Notes
- Current mainline focuses on SFT-only quality and benchmarks.
- Keep this workflow isolated unless you are explicitly experimenting with
reinforcement-learning refinement.

View File

@@ -0,0 +1,143 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "trl>=0.12.0",
# "peft>=0.7.0",
# "transformers>=4.45.0",
# "accelerate>=0.24.0",
# "huggingface_hub>=0.20.0",
# "datasets",
# "bitsandbytes",
# "torch",
# ]
# ///
"""
GRPO training for QMD query expansion (Qwen3-1.7B).
Experimental recipe run on top of merged SFT weights. Self-contained runner:
uv run experiments/grpo/grpo.py
(If using HF Jobs, run this script as the job entrypoint.)
"""
import os
import sys
import torch
from datasets import load_dataset
from huggingface_hub import login
from peft import LoraConfig, PeftModel, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer
from trl import GRPOTrainer, GRPOConfig
# Download eval_common.py if running as a standalone script (e.g. HF Jobs)
_eval_common_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eval_common.py")
if not os.path.exists(_eval_common_path):
import urllib.request
_url = "https://huggingface.co/datasets/tobil/hf-cli-jobs-uv-run-scripts/resolve/main/eval_common.py"
_opener = urllib.request.build_opener()
_token = os.environ.get("HF_TOKEN", "")
if _token:
_opener.addheaders = [("Authorization", f"Bearer {_token}")]
with open(_eval_common_path, "wb") as _f:
_f.write(_opener.open(_url).read())
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from eval_common import QMDRewardFunction, run_eval
# --- Config (inlined from experiments/grpo/grpo.yaml) ---
BASE_MODEL = "Qwen/Qwen3-1.7B"
SFT_MODEL = "tobil/qmd-query-expansion-1.7B-sft"
OUTPUT_MODEL = "tobil/qmd-query-expansion-1.7B-grpo"
DATASET = "tobil/qmd-query-expansion-train"
def main():
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
login(token=hf_token)
print(f"Loading tokenizer from {BASE_MODEL}...")
tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
# Load and format dataset
print(f"Loading dataset: {DATASET}...")
dataset = load_dataset(DATASET, split="train")
def extract_prompt(example):
content = example["messages"][0]["content"]
messages = [{"role": "user", "content": content}]
formatted = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
return {"prompt": formatted}
dataset = dataset.map(extract_prompt, remove_columns=dataset.column_names)
dataset = dataset.shuffle(seed=42).select(range(min(1000, len(dataset))))
print(f"Using {len(dataset)} prompts for GRPO")
# Load base model, merge SFT adapter
print(f"Loading base model {BASE_MODEL}...")
base_model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL, torch_dtype=torch.bfloat16, device_map="auto",
)
print(f"Merging SFT adapter {SFT_MODEL}...")
model = PeftModel.from_pretrained(base_model, SFT_MODEL)
model = model.merge_and_unload()
print("SFT adapter merged.")
# Fresh LoRA for GRPO (small: rank 4, q/v only)
grpo_lora = LoraConfig(
r=4, lora_alpha=8, lora_dropout=0.05,
bias="none", task_type="CAUSAL_LM",
target_modules=["q_proj", "v_proj"],
)
model = get_peft_model(model, grpo_lora)
model.print_trainable_parameters()
config = GRPOConfig(
output_dir="qmd-query-expansion-1.7B-grpo",
push_to_hub=True,
hub_model_id=OUTPUT_MODEL,
num_generations=4,
max_completion_length=200,
beta=0.04, # KL regularization — prevents drift from SFT checkpoint
num_train_epochs=1,
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
learning_rate=5e-7,
max_grad_norm=0.5,
max_steps=200,
logging_steps=10,
save_strategy="epoch",
bf16=True,
report_to="none",
)
print("Initializing GRPO trainer...")
trainer = GRPOTrainer(
model=model,
processing_class=tokenizer,
args=config,
train_dataset=dataset,
reward_funcs=[QMDRewardFunction()],
)
print("Starting GRPO training...")
trainer.train()
print("Pushing to Hub...")
trainer.push_to_hub()
print(f"Done! Model: https://huggingface.co/{OUTPUT_MODEL}")
# --- Automatic evaluation ---
print("\nStarting automatic evaluation...")
trainer.model.eval()
run_eval(trainer.model, tokenizer, "grpo")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,53 @@
# GRPO Training Config for QMD Query Expansion
# Target: Qwen3-1.7B, trained on top of merged SFT weights
#
# Usage: uv run train.py grpo --config experiments/grpo/grpo.yaml
#
# The reward function (reward.py) scores expansions on format compliance,
# diversity, hyde quality, content quality, and named entity preservation.
# beta > 0 is critical to prevent drift from the SFT checkpoint.
model:
base: "Qwen/Qwen3-1.7B"
sft: "outputs/sft" # Use local SFT output (or HF path if uploaded)
output: "outputs/grpo" # Local training output (push to HF manually after eval)
push_to_hub: false
torch_dtype: "bfloat16"
load_in_4bit: false
load_in_8bit: false
dataset:
# Local: run `uv run dataset/prepare_data.py` first, then use "data/train/"
# HuggingFace: use "tobil/qmd-query-expansion-train" (already prepared)
name: "data/train/"
prompt_field: "messages"
max_samples: 1000
training:
epochs: 1
batch_size: 2
gradient_accumulation_steps: 8
learning_rate: 0.0000005
max_grad_norm: 0.5
max_steps: 200
# Save checkpoints every 30 minutes
save_interval_minutes: 30
# Fallback time-step save cadence if needed (not used for wall-clock mode)
save_steps: 50
grpo:
num_generations: 4
max_completion_length: 200
beta: 0.04 # KL regularization - prevents drift from SFT checkpoint
lora:
rank: 4
alpha: 8
dropout: 0.05
target_modules:
- "q_proj"
- "v_proj"
tracking:
project: "qmd-query-expansion"
run_name: "grpo-1.7B"

View File

@@ -0,0 +1,106 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "trl>=0.12.0",
# "peft>=0.7.0",
# "transformers>=4.55.0",
# "accelerate>=0.24.0",
# "huggingface_hub>=0.20.0",
# "datasets",
# "bitsandbytes",
# "torch",
# ]
# ///
"""
SFT training for QMD query expansion with LiquidAI LFM2-1.2B.
LFM2 is a hybrid architecture optimized for edge/on-device inference.
Uses different LoRA target modules than standard transformers.
Self-contained script for HuggingFace Jobs:
hf jobs uv run --flavor a10g-large --secrets HF_TOKEN --timeout 2h jobs/sft_lfm2.py
"""
import os
from huggingface_hub import login
# --- Config (inlined from configs/sft_lfm2.yaml) ---
BASE_MODEL = "LiquidAI/LFM2-1.2B"
OUTPUT_MODEL = "tobil/qmd-query-expansion-lfm2-sft"
DATASET = "tobil/qmd-query-expansion-train"
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
login(token=hf_token)
from datasets import load_dataset
from peft import LoraConfig
from transformers import AutoTokenizer
from trl import SFTTrainer, SFTConfig
# Load and split dataset
print(f"Loading dataset: {DATASET}...")
dataset = load_dataset(DATASET, split="train")
print(f"Dataset loaded: {len(dataset)} examples")
split = dataset.train_test_split(test_size=0.1, seed=42)
train_dataset = split["train"]
eval_dataset = split["test"]
print(f" Train: {len(train_dataset)}, Eval: {len(eval_dataset)}")
# SFT config
config = SFTConfig(
output_dir="qmd-query-expansion-lfm2-sft",
push_to_hub=True,
hub_model_id=OUTPUT_MODEL,
hub_strategy="every_save",
num_train_epochs=5,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
max_length=512,
logging_steps=10,
save_strategy="steps",
save_steps=200,
save_total_limit=2,
eval_strategy="steps",
eval_steps=200,
warmup_ratio=0.03,
lr_scheduler_type="cosine",
bf16=True,
report_to="none",
)
# LoRA config for LFM2 architecture
# LFM2 uses different layer names than standard transformers:
# - Attention: q_proj, k_proj, v_proj, out_proj
# - Input projection: in_proj
# - FFN/MLP gates (SwiGLU): w1, w2, w3
peft_config = LoraConfig(
r=16,
lora_alpha=32,
lora_dropout=0.0,
bias="none",
task_type="CAUSAL_LM",
target_modules=["q_proj", "k_proj", "v_proj", "out_proj", "in_proj", "w1", "w2", "w3"],
)
print("Initializing SFT trainer...")
trainer = SFTTrainer(
model=BASE_MODEL,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
args=config,
peft_config=peft_config,
)
print("Starting SFT training (LFM2-1.2B)...")
trainer.train()
print("Pushing to Hub...")
trainer.push_to_hub()
print(f"Done! Model: https://huggingface.co/{OUTPUT_MODEL}")

View File

@@ -0,0 +1,60 @@
# SFT Training Config for QMD Query Expansion with LiquidAI LFM2
# Target: LFM2-1.2B with LoRA (hybrid architecture: convolutions + attention)
#
# LFM2 is optimized for on-device inference with fast decode/prefill.
# Recommended for: agentic tasks, data extraction, RAG, creative writing.
#
# Usage: uv run train.py sft --config configs/sft_lfm2.yaml
#
# Requirements:
# - transformers >= 4.55.0 (LFM2 architecture support)
# - May need: pip install -U transformers
model:
base: "LiquidAI/LFM2-1.2B"
output: "outputs/sft-lfm2" # Local training output (push to HF manually after eval)
dataset:
# Local: run `uv run dataset/prepare_data.py` first, then use "data/train/"
# HuggingFace: use "tobil/qmd-query-expansion-train" (already prepared)
name: "data/train/"
text_field: "text"
split: "train"
eval_split: 0.1
training:
epochs: 5
batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 2e-4
max_length: 512
warmup_ratio: 0.03
lr_scheduler: "cosine"
lora:
rank: 16
alpha: 32
dropout: 0.0
# LFM2 uses different architecture than standard transformers:
# - Attention layers: q_proj, k_proj, v_proj, out_proj
# - Input projection: in_proj
# - FFN/MLP gates: w1, w2, w3 (SwiGLU activation)
target_modules:
- "q_proj"
- "k_proj"
- "v_proj"
- "out_proj"
- "in_proj"
- "w1"
- "w2"
- "w3"
tracking:
project: "qmd-query-expansion"
run_name: "sft-lfm2-1.2B"
# LFM2-specific generation settings (recommended by LiquidAI)
generation:
temperature: 0.3
min_p: 0.15
repetition_penalty: 1.05

View File

@@ -0,0 +1,490 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "transformers>=4.45.0",
# "peft>=0.7.0",
# "torch",
# "huggingface_hub>=0.20.0",
# "accelerate",
# ]
# ///
"""
Evaluate QMD query expansion models on HuggingFace Jobs.
Self-contained script — inlines the reward function and test queries.
hf jobs uv run --flavor a10g-small --secrets HF_TOKEN --timeout 30m jobs/eval.py
hf jobs uv run --flavor a10g-small --secrets HF_TOKEN --timeout 30m jobs/eval.py -- --sft-only
"""
import argparse
import csv
import io
import json
import os
import re
import sys
from collections import Counter
import torch
from huggingface_hub import HfApi, login
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
# --- Config ---
BASE_MODEL = "Qwen/Qwen3-1.7B"
SFT_MODEL = "tobil/qmd-query-expansion-1.7B-sft"
GRPO_MODEL = "tobil/qmd-query-expansion-1.7B-grpo"
# --- Test queries (inlined from evals/queries.txt) ---
QUERIES = [
# Technical documentation
"how to configure authentication",
"typescript async await",
"docker compose networking",
"git rebase vs merge",
"react useEffect cleanup",
# Short/ambiguous
"auth",
"config",
"setup",
"api",
# Named entities
"who is TDS motorsports",
"React hooks tutorial",
"Docker container networking",
"Kubernetes pod deployment",
"AWS Lambda functions",
# Personal notes / journals
"meeting notes project kickoff",
"ideas for new feature",
"todo list app architecture",
# Research / learning
"what is dependency injection",
"difference between sql and nosql",
"kubernetes vs docker swarm",
# Error/debugging
"connection timeout error",
"memory leak debugging",
"cors error fix",
# Temporal / recency
"recent news about Shopify",
"latest AI developments",
"best laptops right now",
"what changed in kubernetes latest version",
# Complex
"how to implement caching with redis in nodejs",
"best practices for api rate limiting",
"setting up ci cd pipeline with github actions",
]
# =============================================================================
# Reward function (inlined from reward.py)
# =============================================================================
STOPWORDS = frozenset({
'the', 'a', 'an', 'is', 'are', 'to', 'for', 'of', 'in',
'and', 'or', 'it', 'this', 'that', 'be', 'with', 'as', 'on', 'by',
})
KEY_TERM_STOPWORDS = frozenset({
'what', 'is', 'how', 'to', 'the', 'a', 'an', 'in', 'on', 'for', 'of',
'and', 'or', 'with', 'my', 'your', 'do', 'does', 'can', 'i', 'me', 'we',
'who', 'where', 'when', 'why', 'which', 'find', 'get', 'show', 'tell',
})
GENERIC_LEX_PHRASES = frozenset({
'find information about', 'search for', 'look up', 'get information',
'learn about', 'information on', 'details about', 'find out about',
'what is', 'how to', 'guide to', 'help with',
})
CHAT_TEMPLATE_TOKENS = frozenset({
'<|im_start|>', '<|im_end|>', '<|endoftext|>',
'\nassistant\n', '\nuser\n',
})
def parse_expansion(text):
result = {"lex": [], "vec": [], "hyde": [], "invalid": []}
for line in text.strip().split("\n"):
line = line.strip()
if not line:
continue
if line.startswith("lex:"):
result["lex"].append(line[4:].strip())
elif line.startswith("vec:"):
result["vec"].append(line[4:].strip())
elif line.startswith("hyde:"):
result["hyde"].append(line[5:].strip())
else:
result["invalid"].append(line)
return result
def clean_model_output(text):
text = text.replace('<|im_end|>', '').strip()
used_thinking = '<think>' in text and '</think>' in text
if used_thinking:
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL).strip()
return text, used_thinking
def extract_named_entities(query):
entities = set()
words = query.split()
prev_was_entity = False
for i, word in enumerate(words):
clean = word.strip('.,!?:;()[]"\'')
if not clean:
prev_was_entity = False
continue
is_entity = False
if clean.isupper() and len(clean) >= 2:
entities.add(clean.lower()); is_entity = True
elif i > 0 and clean[0].isupper() and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower()); is_entity = True
elif any(c in clean for c in '.+-#@') and len(clean) >= 2:
entities.add(clean.lower()); is_entity = True
elif len(clean) > 1 and any(c.isupper() for c in clean[1:]) and clean[0].isupper():
entities.add(clean.lower()); is_entity = True
elif prev_was_entity and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower()); is_entity = True
prev_was_entity = is_entity
return entities
def get_key_terms(query):
return set(query.lower().split()) - KEY_TERM_STOPWORDS
def lex_preserves_key_terms(lex_line, query):
key_terms = get_key_terms(query)
return not key_terms or bool(key_terms & set(lex_line.lower().split()))
def lex_preserves_entities(line, entities):
if not entities: return True
return any(e in line.lower() for e in entities)
def lex_is_generic(lex_line):
lower = lex_line.lower().strip()
for phrase in GENERIC_LEX_PHRASES:
if phrase in lower or lower.startswith(phrase.split()[0]):
remaining = lower
for word in phrase.split():
remaining = remaining.replace(word, '', 1).strip()
if len(remaining) < 3:
return True
return False
def word_set_distance(a, b):
return len(set(a.lower().split()) ^ set(b.lower().split()))
def is_diverse(a, b, min_distance=2):
a, b = a.lower().strip(), b.lower().strip()
if a == b or a in b or b in a: return False
return word_set_distance(a, b) >= min_distance
def echoes_query(expansion, query):
exp, q = expansion.lower().strip(), query.lower().strip()
return exp == q or (q in exp and len(exp) < len(q) + 10)
def word_repetition_penalty(text):
counts = Counter(re.findall(r'\b\w+\b', text.lower()))
return sum((c - 2) * 2 for w, c in counts.items()
if c >= 3 and w not in STOPWORDS and len(w) > 2)
def score_expansion_detailed(query, expansion):
text, used_thinking = clean_model_output(expansion.strip())
deductions = []
def _fail(reason):
return {
"format": 0, "diversity": 0, "hyde": 0, "quality": 0, "entity": 0,
"think_bonus": 0, "total": 0, "max_possible": 100,
"percentage": 0.0, "rating": "Failed", "deductions": [reason],
}
if any(tok in text for tok in CHAT_TEMPLATE_TOKENS):
return _fail("CHAT TEMPLATE LEAKAGE")
for line in text.split("\n"):
line = line.strip()
if line and not line.startswith(("lex:", "vec:", "hyde:")):
return _fail(f"INVALID LINE: {line[:50]}")
parsed = parse_expansion(text)
format_score = 10
if parsed["lex"]: format_score += 10
else: deductions.append("missing lex:")
if parsed["vec"]: format_score += 10
else: deductions.append("missing vec:")
diversity_score = 0
types_present = sum(1 for t in ("lex", "vec") if parsed[t])
if types_present >= 2: diversity_score += 10
if len(parsed["lex"]) + len(parsed["vec"]) >= 2: diversity_score += 5
lex_div = 5
for i, a in enumerate(parsed["lex"]):
for b in parsed["lex"][i+1:]:
if not is_diverse(a, b, 2): lex_div -= 2
diversity_score += max(0, lex_div)
vec_div = 5
for i, a in enumerate(parsed["vec"]):
for b in parsed["vec"][i+1:]:
if not is_diverse(a, b, 3): vec_div -= 2
diversity_score += max(0, vec_div)
echo = 5
for exp in parsed["lex"] + parsed["vec"]:
if echoes_query(exp, query): echo -= 3
diversity_score += max(0, echo)
hyde_score = 0
if parsed["hyde"]:
hyde_text = parsed["hyde"][0]
hyde_score += 5
hyde_len = len(hyde_text)
if 50 <= hyde_len <= 200: hyde_score += 5
elif hyde_len < 50: hyde_score += 2
if "\n" not in hyde_text: hyde_score += 5
hyde_score += max(0, 5 - word_repetition_penalty(hyde_text))
quality_score = 5
if parsed["lex"] and parsed["vec"]:
avg_lex = sum(len(l) for l in parsed["lex"]) / len(parsed["lex"])
avg_vec = sum(len(v) for v in parsed["vec"]) / len(parsed["vec"])
if avg_lex <= avg_vec: quality_score += 5
if parsed["vec"]:
natural = sum(1 for v in parsed["vec"] if " " in v and len(v) > 15)
quality_score += 5 if natural == len(parsed["vec"]) else 2
if parsed["lex"]:
with_terms = sum(1 for l in parsed["lex"] if lex_preserves_key_terms(l, query))
if with_terms == len(parsed["lex"]): quality_score += 5
elif with_terms > 0: quality_score += 2
entity_score = 0
entities = extract_named_entities(query)
if entities and parsed["lex"]:
with_entities = sum(1 for l in parsed["lex"] if lex_preserves_entities(l, entities))
if with_entities == len(parsed["lex"]): entity_score += 15
elif with_entities > 0: entity_score += 5
else: entity_score -= 30
generic_count = sum(1 for l in parsed["lex"] if lex_is_generic(l))
if generic_count: entity_score -= generic_count * 15
if parsed["vec"]:
vec_with = sum(1 for v in parsed["vec"] if lex_preserves_entities(v, entities))
if vec_with > 0: entity_score += 5
elif not entities:
entity_score = 10
think_bonus = 0 if used_thinking else 20
total = format_score + diversity_score + hyde_score + quality_score + entity_score + think_bonus
max_possible = 140 if parsed["hyde"] else 120
percentage = max(0.0, min(100.0, total / max_possible * 100))
if percentage >= 80: rating = "Excellent"
elif percentage >= 60: rating = "Good"
elif percentage >= 40: rating = "Acceptable"
elif percentage >= 20: rating = "Poor"
else: rating = "Failed"
return {
"format": format_score, "diversity": diversity_score, "hyde": hyde_score,
"quality": quality_score, "entity": max(0, entity_score),
"think_bonus": think_bonus, "total": max(0, total),
"max_possible": max_possible, "percentage": round(percentage, 1),
"rating": rating, "deductions": deductions,
"entities_detected": list(entities) if entities else [],
}
# =============================================================================
# Model loading and generation
# =============================================================================
def load_model(base, sft=None, grpo=None):
print(f"Loading tokenizer from {base}...")
tokenizer = AutoTokenizer.from_pretrained(base)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
print(f"Loading base model {base}...")
model = AutoModelForCausalLM.from_pretrained(
base, torch_dtype=torch.bfloat16, device_map="auto",
)
if sft:
print(f"Loading and merging SFT adapter {sft}...")
model = PeftModel.from_pretrained(model, sft)
model = model.merge_and_unload()
if grpo:
print(f"Loading GRPO adapter {grpo}...")
model = PeftModel.from_pretrained(model, grpo)
model.eval()
return model, tokenizer
def generate_expansion(model, tokenizer, query, max_new_tokens=200):
messages = [{"role": "user", "content": f"/no_think Expand this search query: {query}"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs, max_new_tokens=max_new_tokens,
temperature=0.7, do_sample=True,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
)
full_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
if "\nassistant\n" in full_output:
expansion = full_output.split("\nassistant\n")[-1].strip()
elif "assistant\n" in full_output:
expansion = full_output.split("assistant\n")[-1].strip()
else:
expansion = full_output[len(prompt):].strip()
if "<think>" in expansion:
expansion = re.sub(r'<think>.*?</think>', '', expansion, flags=re.DOTALL).strip()
return expansion
# =============================================================================
# Main
# =============================================================================
def results_to_csv(results, label):
"""Convert eval results to CSV string."""
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow([
"model", "query", "expansion", "score_pct", "rating",
"format", "diversity", "hyde", "quality", "entity", "think_bonus",
"total", "max_possible", "deductions",
])
for r in results:
s = r["scores"]
writer.writerow([
label, r["query"], r["expansion"], s["percentage"], s["rating"],
s["format"], s["diversity"], s["hyde"], s["quality"], s["entity"],
s["think_bonus"], s["total"], s["max_possible"],
"; ".join(s.get("deductions", [])),
])
return buf.getvalue()
def upload_csv(results, label, repo_id, api):
"""Upload eval results CSV to HuggingFace Hub."""
csv_data = results_to_csv(results, label)
tag = label.split("/")[-1].replace(" ", "_").lower()
filename = f"eval_{tag}.csv"
print(f" Uploading {filename} to {repo_id}...")
api.upload_file(
path_or_fileobj=csv_data.encode("utf-8"),
path_in_repo=filename,
repo_id=repo_id,
repo_type="model",
)
print(f" Uploaded: https://huggingface.co/{repo_id}/blob/main/{filename}")
def evaluate_model(model, tokenizer, label):
print(f"\n{'='*70}")
print(f" EVALUATING: {label}")
print(f"{'='*70}")
results = []
for i, query in enumerate(QUERIES, 1):
expansion = generate_expansion(model, tokenizer, query)
scores = score_expansion_detailed(query, expansion)
results.append({"query": query, "expansion": expansion, "scores": scores})
marker = "+" if scores["percentage"] >= 80 else "-" if scores["percentage"] < 60 else "~"
print(f" [{marker}] {i:2d}/{len(QUERIES)} {scores['percentage']:5.1f}% {scores['rating']:10s} {query}")
avg = sum(r["scores"]["percentage"] for r in results) / len(results)
ratings = Counter(r["scores"]["rating"] for r in results)
print(f"\n {''*50}")
print(f" Average score: {avg:.1f}%")
print(f" Ratings:")
for rating in ["Excellent", "Good", "Acceptable", "Poor", "Failed"]:
count = ratings.get(rating, 0)
if count > 0:
print(f" {rating:10s}: {count:2d} {'' * count}")
# Show worst queries
worst = sorted(results, key=lambda r: r["scores"]["percentage"])[:5]
print(f"\n Bottom 5:")
for r in worst:
print(f" {r['scores']['percentage']:5.1f}% {r['query']}")
if r["scores"]["deductions"]:
print(f" {', '.join(r['scores']['deductions'][:3])}")
return results, avg
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--sft-only", action="store_true", help="Only evaluate SFT model")
parser.add_argument("--upload-repo", default="tobil/qmd-query-expansion-evals",
help="HF repo to upload CSV results")
args = parser.parse_args()
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
login(token=hf_token)
api = HfApi()
api.create_repo(repo_id=args.upload_repo, repo_type="model", exist_ok=True)
# Evaluate SFT
model, tokenizer = load_model(BASE_MODEL, sft=SFT_MODEL)
sft_results, sft_avg = evaluate_model(model, tokenizer, f"SFT: {SFT_MODEL}")
upload_csv(sft_results, "sft", args.upload_repo, api)
if not args.sft_only:
# For GRPO: reload base, merge SFT, then load GRPO adapter
del model
torch.cuda.empty_cache()
model, tokenizer = load_model(BASE_MODEL, sft=SFT_MODEL, grpo=GRPO_MODEL)
grpo_results, grpo_avg = evaluate_model(model, tokenizer, f"GRPO: {GRPO_MODEL}")
upload_csv(grpo_results, "grpo", args.upload_repo, api)
# Upload combined comparison CSV
combined = results_to_csv(sft_results, "sft") + results_to_csv(grpo_results, "grpo").split("\n", 1)[1]
api.upload_file(
path_or_fileobj=combined.encode("utf-8"),
path_in_repo="eval_comparison.csv",
repo_id=args.upload_repo,
repo_type="model",
)
print(f" Uploaded: eval_comparison.csv")
# Comparison
print(f"\n{'='*70}")
print(f" COMPARISON")
print(f"{'='*70}")
print(f" SFT average: {sft_avg:.1f}%")
print(f" GRPO average: {grpo_avg:.1f}%")
print(f" Delta: {grpo_avg - sft_avg:+.1f}%")
improved = sum(1 for s, g in zip(sft_results, grpo_results)
if g["scores"]["percentage"] > s["scores"]["percentage"])
regressed = sum(1 for s, g in zip(sft_results, grpo_results)
if g["scores"]["percentage"] < s["scores"]["percentage"])
print(f" Improved: {improved}/{len(QUERIES)}, Regressed: {regressed}/{len(QUERIES)}")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,354 @@
"""
Common evaluation and reward scoring for QMD query expansion models.
Shared by sft.py and grpo.py for post-training evaluation.
"""
import csv
import io
import re
from collections import Counter
import torch
from huggingface_hub import HfApi
# =============================================================================
# Reward function (single source of truth)
# =============================================================================
STOPWORDS = frozenset({
'the', 'a', 'an', 'is', 'are', 'to', 'for', 'of', 'in',
'and', 'or', 'it', 'this', 'that', 'be', 'with', 'as', 'on', 'by',
})
KEY_TERM_STOPWORDS = frozenset({
'what', 'is', 'how', 'to', 'the', 'a', 'an', 'in', 'on', 'for', 'of',
'and', 'or', 'with', 'my', 'your', 'do', 'does', 'can', 'i', 'me', 'we',
'who', 'where', 'when', 'why', 'which', 'find', 'get', 'show', 'tell',
})
GENERIC_LEX_PHRASES = frozenset({
'find information about', 'search for', 'look up', 'get information',
'learn about', 'information on', 'details about', 'find out about',
'what is', 'how to', 'guide to', 'help with',
})
CHAT_TEMPLATE_TOKENS = frozenset({
'<|im_start|>', '<|im_end|>', '<|endoftext|>',
'\nassistant\n', '\nuser\n',
})
def parse_expansion(text):
result = {"lex": [], "vec": [], "hyde": [], "invalid": []}
for line in text.strip().split("\n"):
line = line.strip()
if not line:
continue
if line.startswith("lex:"):
result["lex"].append(line[4:].strip())
elif line.startswith("vec:"):
result["vec"].append(line[4:].strip())
elif line.startswith("hyde:"):
result["hyde"].append(line[5:].strip())
else:
result["invalid"].append(line)
return result
def clean_model_output(text):
text = text.replace('<|im_end|>', '').strip()
used_thinking = '<think>' in text and '</think>' in text
if used_thinking:
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL).strip()
return text, used_thinking
def extract_named_entities(query):
entities = set()
words = query.split()
prev_was_entity = False
for i, word in enumerate(words):
clean = word.strip('.,!?:;()[]"\'')
if not clean:
prev_was_entity = False
continue
is_entity = False
if clean.isupper() and len(clean) >= 2:
entities.add(clean.lower()); is_entity = True
elif i > 0 and clean[0].isupper() and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower()); is_entity = True
elif any(c in clean for c in '.+-#@') and len(clean) >= 2:
entities.add(clean.lower()); is_entity = True
elif len(clean) > 1 and any(c.isupper() for c in clean[1:]) and clean[0].isupper():
entities.add(clean.lower()); is_entity = True
elif prev_was_entity and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower()); is_entity = True
prev_was_entity = is_entity
return entities
def get_key_terms(query):
return set(query.lower().split()) - KEY_TERM_STOPWORDS
def lex_preserves_key_terms(lex_line, query):
key_terms = get_key_terms(query)
return not key_terms or bool(key_terms & set(lex_line.lower().split()))
def lex_preserves_entities(line, entities):
if not entities:
return True
return any(e in line.lower() for e in entities)
def lex_is_generic(lex_line):
lower = lex_line.lower().strip()
for phrase in GENERIC_LEX_PHRASES:
if phrase in lower or lower.startswith(phrase.split()[0]):
remaining = lower
for word in phrase.split():
remaining = remaining.replace(word, '', 1).strip()
if len(remaining) < 3:
return True
return False
def word_set_distance(a, b):
return len(set(a.lower().split()) ^ set(b.lower().split()))
def is_diverse(a, b, min_distance=2):
a, b = a.lower().strip(), b.lower().strip()
if a == b or a in b or b in a:
return False
return word_set_distance(a, b) >= min_distance
def echoes_query(expansion, query):
exp, q = expansion.lower().strip(), query.lower().strip()
return exp == q or (q in exp and len(exp) < len(q) + 10)
def word_repetition_penalty(text):
counts = Counter(re.findall(r'\b\w+\b', text.lower()))
return sum((c - 2) * 2 for w, c in counts.items()
if c >= 3 and w not in STOPWORDS and len(w) > 2)
def score_expansion(query, expansion):
"""Score expansion as float in [0.0, 1.0] for RL reward."""
text, used_thinking = clean_model_output(expansion.strip())
if any(tok in text for tok in CHAT_TEMPLATE_TOKENS):
return 0.0
for line in text.split("\n"):
line = line.strip()
if line and not line.startswith(("lex:", "vec:", "hyde:")):
return 0.0
parsed = parse_expansion(text)
format_score = 10
if parsed["lex"]: format_score += 10
if parsed["vec"]: format_score += 10
diversity_score = 0
if sum(1 for t in ("lex", "vec") if parsed[t]) >= 2: diversity_score += 10
if len(parsed["lex"]) + len(parsed["vec"]) >= 2: diversity_score += 5
lex_div = 5
for i, a in enumerate(parsed["lex"]):
for b in parsed["lex"][i+1:]:
if not is_diverse(a, b, 2): lex_div -= 2
diversity_score += max(0, lex_div)
vec_div = 5
for i, a in enumerate(parsed["vec"]):
for b in parsed["vec"][i+1:]:
if not is_diverse(a, b, 3): vec_div -= 2
diversity_score += max(0, vec_div)
echo = 5
for exp in parsed["lex"] + parsed["vec"]:
if echoes_query(exp, query): echo -= 3
diversity_score += max(0, echo)
hyde_score = 0
if parsed["hyde"]:
hyde_text = parsed["hyde"][0]
hyde_score += 5
if 50 <= len(hyde_text) <= 200: hyde_score += 5
elif len(hyde_text) < 50: hyde_score += 2
if "\n" not in hyde_text: hyde_score += 5
hyde_score += max(0, 5 - word_repetition_penalty(hyde_text))
quality_score = 5
if parsed["lex"] and parsed["vec"]:
avg_lex = sum(len(l) for l in parsed["lex"]) / len(parsed["lex"])
avg_vec = sum(len(v) for v in parsed["vec"]) / len(parsed["vec"])
if avg_lex <= avg_vec: quality_score += 5
if parsed["vec"]:
natural = sum(1 for v in parsed["vec"] if " " in v and len(v) > 15)
quality_score += 5 if natural == len(parsed["vec"]) else 2
if parsed["lex"]:
with_terms = sum(1 for l in parsed["lex"] if lex_preserves_key_terms(l, query))
if with_terms == len(parsed["lex"]): quality_score += 5
elif with_terms > 0: quality_score += 2
entity_score = 0
entities = extract_named_entities(query)
if entities and parsed["lex"]:
with_entities = sum(1 for l in parsed["lex"] if lex_preserves_entities(l, entities))
if with_entities == len(parsed["lex"]): entity_score += 15
elif with_entities > 0: entity_score += 5
else: entity_score -= 30
generic_count = sum(1 for l in parsed["lex"] if lex_is_generic(l))
if generic_count: entity_score -= generic_count * 15
if parsed["vec"]:
vec_with = sum(1 for v in parsed["vec"] if lex_preserves_entities(v, entities))
if vec_with > 0: entity_score += 5
elif not entities:
entity_score = 10
think_bonus = 0 if used_thinking else 20
total = format_score + diversity_score + hyde_score + quality_score + entity_score + think_bonus
max_possible = 140 if parsed["hyde"] else 120
return max(0.0, min(1.0, total / max_possible))
def extract_query_from_prompt(prompt):
"""Extract the search query from a formatted prompt string."""
if "Expand this search query:" in prompt:
query = prompt.split("Expand this search query:")[-1].strip()
if "<|im_end|>" in query:
query = query.split("<|im_end|>")[0].strip()
return query
return prompt.strip()
class QMDRewardFunction:
"""Reward function wrapper for TRL's GRPOTrainer."""
__name__ = "qmd_scoring_reward"
def __call__(self, completions, prompts=None, **kwargs):
rewards = []
for i, completion in enumerate(completions):
query = ""
if prompts and i < len(prompts):
query = extract_query_from_prompt(prompts[i])
rewards.append(score_expansion(query, completion))
return rewards
# =============================================================================
# Evaluation
# =============================================================================
EVAL_QUERIES = [
# Technical documentation
"how to configure authentication",
"typescript async await",
"docker compose networking",
"git rebase vs merge",
"react useEffect cleanup",
# Short/ambiguous
"auth", "config", "setup", "api",
# Named entities
"who is TDS motorsports",
"React hooks tutorial",
"Docker container networking",
"Kubernetes pod deployment",
"AWS Lambda functions",
# Personal notes / journals
"meeting notes project kickoff",
"ideas for new feature",
"todo list app architecture",
# Research / learning
"what is dependency injection",
"difference between sql and nosql",
"kubernetes vs docker swarm",
# Error/debugging
"connection timeout error",
"memory leak debugging",
"cors error fix",
# Temporal / recency
"recent news about Shopify",
"latest AI developments",
"best laptops right now",
"what changed in kubernetes latest version",
# Complex
"how to implement caching with redis in nodejs",
"best practices for api rate limiting",
"setting up ci cd pipeline with github actions",
]
def generate_expansion(model, tokenizer, query, max_new_tokens=200):
"""Generate a query expansion using the model."""
messages = [{"role": "user", "content": f"/no_think Expand this search query: {query}"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs, max_new_tokens=max_new_tokens,
temperature=0.7, do_sample=True,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
)
full_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
if "\nassistant\n" in full_output:
return full_output.split("\nassistant\n")[-1].strip()
elif "assistant\n" in full_output:
return full_output.split("assistant\n")[-1].strip()
return full_output[len(prompt):].strip()
def run_eval(model, tokenizer, label, upload_repo="tobil/qmd-query-expansion-evals"):
"""Evaluate model on EVAL_QUERIES, print results, upload CSV."""
api = HfApi()
api.create_repo(repo_id=upload_repo, repo_type="model", exist_ok=True)
print(f"\n{'='*70}")
print(f" EVALUATING: {label}")
print(f"{'='*70}")
results = []
for i, query in enumerate(EVAL_QUERIES, 1):
expansion = generate_expansion(model, tokenizer, query)
score = score_expansion(query, expansion)
pct = round(score * 100, 1)
rating = ("Excellent" if pct >= 80 else "Good" if pct >= 60
else "Acceptable" if pct >= 40 else "Poor" if pct >= 20 else "Failed")
marker = "+" if pct >= 80 else "-" if pct < 60 else "~"
print(f" [{marker}] {i:2d}/{len(EVAL_QUERIES)} {pct:5.1f}% {rating:10s} {query}")
results.append({"query": query, "expansion": expansion, "score": pct, "rating": rating})
avg = sum(r["score"] for r in results) / len(results)
ratings = Counter(r["rating"] for r in results)
print(f"\n {''*50}")
print(f" Average score: {avg:.1f}%")
for r in ["Excellent", "Good", "Acceptable", "Poor", "Failed"]:
c = ratings.get(r, 0)
if c:
print(f" {r:10s}: {c:2d} {'' * c}")
worst = sorted(results, key=lambda r: r["score"])[:5]
print(f"\n Bottom 5:")
for r in worst:
print(f" {r['score']:5.1f}% {r['query']}")
buf = io.StringIO()
writer = csv.writer(buf)
writer.writerow(["model", "query", "expansion", "score_pct", "rating"])
for r in results:
writer.writerow([label, r["query"], r["expansion"], r["score"], r["rating"]])
filename = f"eval_{label}.csv"
print(f"\n Uploading {filename} to {upload_repo}...")
api.upload_file(
path_or_fileobj=buf.getvalue().encode("utf-8"),
path_in_repo=filename,
repo_id=upload_repo,
repo_type="model",
)
print(f" Done: https://huggingface.co/{upload_repo}/blob/main/{filename}")

View File

@@ -0,0 +1,121 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "trl>=0.12.0",
# "peft>=0.7.0",
# "transformers>=4.45.0",
# "accelerate>=0.24.0",
# "huggingface_hub>=0.20.0",
# "datasets",
# "bitsandbytes",
# "torch",
# ]
# ///
"""
SFT training for QMD query expansion (Qwen3-1.7B).
Self-contained script for HuggingFace Jobs:
hf jobs uv run --flavor a10g-large --secrets HF_TOKEN --timeout 2h jobs/sft.py
"""
import os
import sys
from huggingface_hub import login
# --- Config (inlined from configs/sft.yaml) ---
BASE_MODEL = "Qwen/Qwen3-1.7B"
OUTPUT_MODEL = "tobil/qmd-query-expansion-1.7B-sft"
DATASET = "tobil/qmd-query-expansion-train"
hf_token = os.environ.get("HF_TOKEN")
if hf_token:
login(token=hf_token)
from datasets import load_dataset
from peft import LoraConfig
from transformers import AutoTokenizer
from trl import SFTTrainer, SFTConfig
# Load and split dataset
print(f"Loading dataset: {DATASET}...")
dataset = load_dataset(DATASET, split="train")
print(f"Dataset loaded: {len(dataset)} examples")
split = dataset.train_test_split(test_size=0.1, seed=42)
train_dataset = split["train"]
eval_dataset = split["test"]
print(f" Train: {len(train_dataset)}, Eval: {len(eval_dataset)}")
# SFT config
config = SFTConfig(
output_dir="qmd-query-expansion-1.7B-sft",
push_to_hub=True,
hub_model_id=OUTPUT_MODEL,
hub_strategy="every_save",
num_train_epochs=5,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
max_length=512,
logging_steps=10,
save_strategy="steps",
save_steps=200,
save_total_limit=2,
eval_strategy="steps",
eval_steps=200,
warmup_ratio=0.03,
lr_scheduler_type="cosine",
bf16=True,
report_to="none",
)
# LoRA: rank 16, all projection layers
peft_config = LoraConfig(
r=16,
lora_alpha=32,
lora_dropout=0.0,
bias="none",
task_type="CAUSAL_LM",
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
)
print("Initializing SFT trainer...")
trainer = SFTTrainer(
model=BASE_MODEL,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
args=config,
peft_config=peft_config,
)
print("Starting SFT training...")
trainer.train()
print("Pushing to Hub...")
trainer.push_to_hub()
print(f"Done! Model: https://huggingface.co/{OUTPUT_MODEL}")
# --- Automatic evaluation ---
_eval_common_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eval_common.py")
if not os.path.exists(_eval_common_path):
import urllib.request
_url = "https://huggingface.co/datasets/tobil/hf-cli-jobs-uv-run-scripts/resolve/main/eval_common.py"
_opener = urllib.request.build_opener()
_token = os.environ.get("HF_TOKEN", "")
if _token:
_opener.addheaders = [("Authorization", f"Bearer {_token}")]
with open(_eval_common_path, "wb") as _f:
_f.write(_opener.open(_url).read())
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from eval_common import run_eval
print("\nStarting automatic evaluation...")
eval_tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
if eval_tokenizer.pad_token is None:
eval_tokenizer.pad_token = eval_tokenizer.eos_token
trainer.model.eval()
run_eval(trainer.model, eval_tokenizer, "sft")

View File

@@ -0,0 +1,23 @@
[project]
name = "qmd-finetune"
version = "0.1.0"
description = "QMD query expansion fine-tuning tools"
requires-python = ">=3.10"
dependencies = [
"torch",
"trl>=0.12.0",
"peft>=0.7.0",
"transformers>=4.45.0",
"accelerate>=0.24.0",
"huggingface_hub>=0.20.0",
"trackio",
"datasets",
"pyyaml",
"gguf",
"sentencepiece",
"nvidia-ml-py",
"pydantic>=2.0",
]
[dependency-groups]
dev = []

View File

@@ -0,0 +1,673 @@
# /// script
# requires-python = ">=3.10"
# dependencies = []
# ///
"""
QMD Query Expansion Reward Function
Single source of truth for scoring query expansions. Used by:
- GRPO training (as the RL reward signal)
- Evaluation scripts (for scoring model outputs)
Scores expansions on five dimensions:
Format (30) - Has lex/vec lines, no invalid lines
Diversity (30) - Multiple types, diverse content, no echoes
HyDE (20) - Optional bonus for hypothetical document passage
Quality (20) - Lex shorter than vec, natural language, key terms
Entity (20) - Named entity preservation in lex/vec lines
Returns 0.0-1.0 for RL rewards, or a detailed breakdown dict for evaluation.
"""
import re
from collections import Counter
# =============================================================================
# Constants
# =============================================================================
# "only:" mode patterns - when query ends with these, expect only that type
# Format: "query /only:lex" (slash prefix, no space after colon)
ONLY_MODE_PATTERN = re.compile(r'\s+/only:(lex|vec|hyde)\s*$', re.IGNORECASE)
STOPWORDS = frozenset({
'the', 'a', 'an', 'is', 'are', 'to', 'for', 'of', 'in',
'and', 'or', 'it', 'this', 'that', 'be', 'with', 'as', 'on', 'by',
})
KEY_TERM_STOPWORDS = frozenset({
'what', 'is', 'how', 'to', 'the', 'a', 'an', 'in', 'on', 'for', 'of',
'and', 'or', 'with', 'my', 'your', 'do', 'does', 'can', 'i', 'me', 'we',
'who', 'where', 'when', 'why', 'which', 'find', 'get', 'show', 'tell',
'about', 'from', 'into', 'between', 'through', 'during', 'after',
'before', 'like', 'than', 'then', 'that', 'this', 'their', 'its',
'was', 'were', 'has', 'had', 'been', 'being', 'have', 'not', 'but',
'just', 'also', 'very', 'so', 'if', 'at', 'by', 'up', 'out', 'all',
'some', 'any', 'no', 'each', 'every', 'both', 'few', 'more', 'most',
'other', 'only', 'same', 'such', 'here', 'there', 'asked', 'said',
'notes', 'meeting', 'email', 'discussion', 'conversation', 'call',
})
# Words that commonly start queries but aren't named entities.
# Used for position-0 entity detection to avoid false positives.
QUERY_VERB_STOPWORDS = frozenset({
'configure', 'setup', 'install', 'build', 'create', 'make', 'run',
'start', 'stop', 'check', 'test', 'debug', 'fix', 'update', 'change',
'add', 'remove', 'delete', 'use', 'using', 'need', 'want', 'should',
'would', 'could', 'help', 'please', 'best', 'good', 'new', 'old',
'latest', 'recent', 'setting', 'settings', 'compare', 'comparing',
'implement', 'implementing', 'deploy', 'deploying', 'migrate',
'migrating', 'optimize', 'optimizing', 'understand', 'understanding',
'explain', 'list', 'describe', 'define', 'convert', 'connecting',
'performance', 'overview', 'introduction', 'tutorial', 'example',
'difference', 'between', 'about', 'review', 'resolve', 'resolving',
'troubleshoot', 'troubleshooting', 'monitor', 'monitoring', 'manage',
'managing', 'enable', 'disable', 'set', 'write', 'read', 'search',
'possible', 'common', 'typical', 'recommended', 'alternative',
})
GENERIC_LEX_PHRASES = frozenset({
'find information about', 'search for', 'look up', 'get information',
'learn about', 'information on', 'details about', 'find out about',
'what is', 'how to', 'guide to', 'help with',
})
# Chat template tokens that indicate a broken output
CHAT_TEMPLATE_TOKENS = frozenset({
'<|im_start|>', '<|im_end|>', '<|endoftext|>',
'\nassistant\n', '\nuser\n',
})
# =============================================================================
# Parsing
# =============================================================================
def parse_expansion(text: str) -> dict:
"""Parse a multi-line expansion into {lex, vec, hyde, invalid} lists."""
result = {"lex": [], "vec": [], "hyde": [], "invalid": []}
for line in text.strip().split("\n"):
line = line.strip()
if not line:
continue
if line.startswith("lex:"):
result["lex"].append(line[4:].strip())
elif line.startswith("vec:"):
result["vec"].append(line[4:].strip())
elif line.startswith("hyde:"):
result["hyde"].append(line[5:].strip())
else:
result["invalid"].append(line)
return result
def detect_only_mode(query: str) -> tuple[str | None, str]:
"""Detect if query ends with 'only: lex/vec/hyde'.
Returns (only_type, base_query) where only_type is None for normal queries.
"""
match = ONLY_MODE_PATTERN.search(query)
if match:
only_type = match.group(1).lower()
base_query = query[:match.start()].strip()
return only_type, base_query
return None, query
def clean_model_output(text: str) -> tuple[str, bool]:
"""Strip chat template artifacts from model output.
Returns (cleaned_text, used_thinking) where used_thinking is True
if the model emitted <think>...</think> blocks.
"""
text = text.replace('<|im_end|>', '').strip()
used_thinking = '<think>' in text and '</think>' in text
if used_thinking:
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL).strip()
return text, used_thinking
# =============================================================================
# Helpers
# =============================================================================
def extract_named_entities(query: str) -> set:
"""Extract named entities using heuristics.
Detects: ALL-CAPS acronyms (TDS, API), capitalized proper nouns (React, Bob),
technical terms with special chars (node.js, C++), CamelCase (JavaScript),
and compound names (TDS motorsports -> both words).
Position-0 words are also detected as entities if they are capitalized and
not common query-starting verbs (e.g. "Bob asked about deploy" -> "bob").
"""
entities = set()
words = query.split()
prev_was_entity = False
for i, word in enumerate(words):
clean = word.strip('.,!?:;()[]"\'')
if not clean:
prev_was_entity = False
continue
is_entity = False
# ALL-CAPS acronyms: TDS, API, GPU, AWS
if clean.isupper() and len(clean) >= 2:
entities.add(clean.lower())
is_entity = True
# Capitalized proper nouns (any position, including first word)
elif clean[0].isupper() and clean.lower() not in KEY_TERM_STOPWORDS:
if i > 0:
# Non-first words: always treat as entity
entities.add(clean.lower())
is_entity = True
elif clean.lower() not in QUERY_VERB_STOPWORDS:
# First word: also entity if not a common query verb
entities.add(clean.lower())
is_entity = True
# Technical terms with special chars: node.js, C++, .NET
elif any(c in clean for c in '.+-#@') and len(clean) >= 2:
entities.add(clean.lower())
is_entity = True
# CamelCase: JavaScript, TypeScript
elif len(clean) > 1 and any(c.isupper() for c in clean[1:]) and clean[0].isupper():
entities.add(clean.lower())
is_entity = True
# Compound names: word following an entity (TDS motorsports)
elif prev_was_entity and clean.lower() not in KEY_TERM_STOPWORDS:
entities.add(clean.lower())
is_entity = True
prev_was_entity = is_entity
return entities
def get_key_terms(query: str) -> set:
"""Get non-stopword terms from a query."""
return set(query.lower().split()) - KEY_TERM_STOPWORDS
def lex_preserves_key_terms(lex_line: str, query: str) -> bool:
"""Does the lex line contain at least one key term from the query?"""
key_terms = get_key_terms(query)
if not key_terms:
return True
return bool(key_terms & set(lex_line.lower().split()))
def lex_preserves_entities(line: str, entities: set) -> bool:
"""Does the line contain at least one named entity?"""
if not entities:
return True
lower = line.lower()
return any(e in lower for e in entities)
def lex_is_generic(lex_line: str) -> bool:
"""Is this lex line a useless generic filler phrase?"""
lower = lex_line.lower().strip()
for phrase in GENERIC_LEX_PHRASES:
if phrase in lower or lower.startswith(phrase.split()[0]):
remaining = lower
for word in phrase.split():
remaining = remaining.replace(word, '', 1).strip()
if len(remaining) < 3:
return True
return False
def word_set_distance(a: str, b: str) -> int:
"""Symmetric difference of word sets (how many words are unique to one)."""
return len(set(a.lower().split()) ^ set(b.lower().split()))
def is_diverse(a: str, b: str, min_distance: int = 2) -> bool:
"""Are two strings sufficiently different?"""
a, b = a.lower().strip(), b.lower().strip()
if a == b or a in b or b in a:
return False
return word_set_distance(a, b) >= min_distance
def echoes_query(expansion: str, query: str) -> bool:
"""Is this expansion just echoing the original query?"""
exp, q = expansion.lower().strip(), query.lower().strip()
return exp == q or (q in exp and len(exp) < len(q) + 10)
def word_repetition_penalty(text: str) -> int:
"""Penalty for words repeated 3+ times (excluding stopwords)."""
counts = Counter(re.findall(r'\b\w+\b', text.lower()))
return sum((c - 2) * 2 for w, c in counts.items()
if c >= 3 and w not in STOPWORDS and len(w) > 2)
# =============================================================================
# Scoring
# =============================================================================
def _score_only_mode(query: str, base_query: str, text: str, used_thinking: bool, only_type: str) -> dict:
"""Score an 'only:' mode expansion. Expects ONLY the requested type."""
parsed = parse_expansion(text)
deductions = []
# Expected type must be present
expected_items = parsed.get(only_type, [])
if not expected_items:
return {
"format": 0, "diversity": 0, "hyde": 0, "quality": 0, "entity": 0,
"think_bonus": 0, "total": 0, "max_possible": 100,
"percentage": 0.0, "rating": "Failed",
"deductions": [f"missing expected {only_type}: output"],
"parsed": parsed,
"entities_detected": [],
"only_mode": only_type,
}
# Penalize presence of OTHER types
other_types = {"lex", "vec", "hyde"} - {only_type}
unwanted_count = sum(len(parsed.get(t, [])) for t in other_types)
if unwanted_count > 0:
deductions.append(f"contains unwanted types (expected only {only_type})")
# --- Format (0-30) ---
format_score = 30 if unwanted_count == 0 else max(0, 30 - unwanted_count * 10)
# --- Diversity (0-30) ---
diversity_score = 0
if len(expected_items) >= 2:
diversity_score += 15
# Check for diversity among items
div_score = 15
for i, a in enumerate(expected_items):
for b in expected_items[i+1:]:
if not is_diverse(a, b, 2):
div_score -= 5
deductions.append(f"{only_type} duplicate: {a[:20]}...")
diversity_score += max(0, div_score)
elif len(expected_items) == 1:
diversity_score = 15 # One item is fine for single-type output
# Check for echoes
for exp in expected_items:
if echoes_query(exp, base_query):
diversity_score -= 5
deductions.append(f"echoes query: {exp[:20]}...")
diversity_score = max(0, diversity_score)
# --- Type-specific quality (0-20) ---
quality_score = 10 # base
entities = extract_named_entities(base_query)
if only_type == "lex":
# Lex should be short keyword phrases with key terms
with_terms = sum(1 for l in expected_items if lex_preserves_key_terms(l, base_query))
if with_terms == len(expected_items):
quality_score += 5
# Check for generic phrases
generic = sum(1 for l in expected_items if lex_is_generic(l))
if generic == 0:
quality_score += 5
else:
deductions.append(f"{generic} generic lex phrases")
elif only_type == "vec":
# Vec should be natural language sentences
natural = sum(1 for v in expected_items if " " in v and len(v) > 15)
if natural == len(expected_items):
quality_score += 10
else:
quality_score += 5
deductions.append("vec not all natural language")
elif only_type == "hyde":
# Hyde should be a document snippet (50-200 chars)
hyde_text = expected_items[0]
hyde_len = len(hyde_text)
if 50 <= hyde_len <= 200:
quality_score += 10
elif 30 <= hyde_len <= 300:
quality_score += 5
deductions.append(f"hyde length {hyde_len} (ideal: 50-200)")
else:
deductions.append(f"hyde length {hyde_len} out of range")
# --- Entity preservation (0-20) ---
entity_score = 10 # base
if entities:
with_entities = sum(1 for item in expected_items if lex_preserves_entities(item, entities))
if with_entities == len(expected_items):
entity_score += 10
elif with_entities > 0:
entity_score += 5
else:
entity_score = 0
deductions.append(f"missing entities: {entities}")
# --- Think bonus (0-20) ---
think_bonus = 0 if used_thinking else 20
# --- Total ---
total = format_score + diversity_score + quality_score + entity_score + think_bonus
max_possible = 120
percentage = max(0.0, min(100.0, total / max_possible * 100))
if percentage >= 80:
rating = "Excellent"
elif percentage >= 60:
rating = "Good"
elif percentage >= 40:
rating = "Acceptable"
elif percentage >= 20:
rating = "Poor"
else:
rating = "Failed"
return {
"format": format_score,
"diversity": diversity_score,
"hyde": 0, # not used in only mode (quality covers it)
"quality": quality_score,
"entity": entity_score,
"think_bonus": think_bonus,
"total": total,
"max_possible": max_possible,
"percentage": round(percentage, 1),
"rating": rating,
"deductions": deductions,
"parsed": parsed,
"entities_detected": list(entities) if entities else [],
"only_mode": only_type,
}
def score_expansion_detailed(query: str, expansion: str) -> dict:
"""Score an expansion with full breakdown. Returns dict with all dimensions."""
text, used_thinking = clean_model_output(expansion.strip())
deductions = []
# Detect "only:" mode
only_type, base_query = detect_only_mode(query)
def _fail(reason):
return {
"format": 0, "diversity": 0, "hyde": 0, "quality": 0, "entity": 0,
"think_bonus": 0, "total": 0, "max_possible": 100,
"percentage": 0.0, "rating": "Failed",
"deductions": [reason],
"parsed": parse_expansion(expansion),
"entities_detected": [],
"only_mode": only_type,
}
# Hard fail: remaining chat template tokens
if any(tok in text for tok in CHAT_TEMPLATE_TOKENS):
return _fail("CHAT TEMPLATE LEAKAGE")
# Hard fail: every non-empty line must have a valid prefix
for line in text.split("\n"):
line = line.strip()
if line and not line.startswith(("lex:", "vec:", "hyde:")):
return _fail(f"INVALID LINE: {line[:50]}")
# --- Handle "only:" mode separately ---
if only_type:
return _score_only_mode(query, base_query, text, used_thinking, only_type)
parsed = parse_expansion(text)
# --- Format (0-30) ---
format_score = 10 # no invalid lines (guaranteed by hard fail)
if parsed["lex"]:
format_score += 10
else:
deductions.append("missing lex:")
if parsed["vec"]:
format_score += 10
else:
deductions.append("missing vec:")
# --- Diversity (0-30) ---
diversity_score = 0
types_present = sum(1 for t in ("lex", "vec") if parsed[t])
if types_present >= 2:
diversity_score += 10
else:
deductions.append("only one type")
if len(parsed["lex"]) + len(parsed["vec"]) >= 2:
diversity_score += 5
lex_div = 5
for i, a in enumerate(parsed["lex"]):
for b in parsed["lex"][i+1:]:
if not is_diverse(a, b, 2):
lex_div -= 2
deductions.append(f"lex duplicate: {a[:20]}...")
diversity_score += max(0, lex_div)
vec_div = 5
for i, a in enumerate(parsed["vec"]):
for b in parsed["vec"][i+1:]:
if not is_diverse(a, b, 3):
vec_div -= 2
deductions.append(f"vec duplicate: {a[:20]}...")
diversity_score += max(0, vec_div)
echo = 5
lex_echo_count = 0
for exp in parsed["lex"]:
if echoes_query(exp, query):
lex_echo_count += 1
deductions.append(f"lex echoes query: {exp[:20]}...")
# Harsh penalty for lex echoes - they're useless
if lex_echo_count > 0:
echo -= lex_echo_count * 10 # -10 per echo
for exp in parsed["vec"]:
if echoes_query(exp, query):
echo -= 3 # vec echoes less severe (natural language overlap ok)
deductions.append(f"vec echoes query: {exp[:20]}...")
diversity_score += max(-10, echo) # can go negative
# --- HyDE (0-20, optional bonus) ---
hyde_score = 0
if parsed["hyde"]:
hyde_text = parsed["hyde"][0]
hyde_score += 5
hyde_len = len(hyde_text)
if 50 <= hyde_len <= 200:
hyde_score += 5
elif hyde_len < 50:
hyde_score += 2
deductions.append(f"hyde too short ({hyde_len})")
else:
deductions.append(f"hyde too long ({hyde_len})")
if "\n" not in hyde_text:
hyde_score += 5
hyde_score += max(0, 5 - word_repetition_penalty(hyde_text))
# --- Extract entities (used by both quality and entity sections) ---
entities = extract_named_entities(query)
# --- Quality (0-20) ---
quality_score = 5 # base relevance
if parsed["lex"] and parsed["vec"]:
avg_lex = sum(len(l) for l in parsed["lex"]) / len(parsed["lex"])
avg_vec = sum(len(v) for v in parsed["vec"]) / len(parsed["vec"])
if avg_lex <= avg_vec:
quality_score += 5
else:
deductions.append("lex longer than vec")
if parsed["vec"]:
natural = sum(1 for v in parsed["vec"] if " " in v and len(v) > 15)
quality_score += 5 if natural == len(parsed["vec"]) else 2
if parsed["lex"]:
with_terms = sum(1 for l in parsed["lex"] if lex_preserves_key_terms(l, query))
if with_terms == len(parsed["lex"]):
quality_score += 5
elif with_terms > 0:
quality_score += 2
else:
deductions.append("lex missing key terms")
# Bonus: lex uses quoted phrases for multi-word entities (+3)
if entities and parsed["lex"]:
multi_word_entities = [e for e in entities if " " in e or len(e) > 6]
if multi_word_entities:
lex_joined = " ".join(parsed["lex"])
if '"' in lex_joined:
quality_score += 3
# --- Entity Preservation (-45 to +20) ---
entity_score = 0
if entities and parsed["lex"]:
# Per-line check: do lex lines contain entities?
with_entities = sum(1 for l in parsed["lex"] if lex_preserves_entities(l, entities))
if with_entities == len(parsed["lex"]):
entity_score += 15
elif with_entities > 0:
entity_score += 5
else:
entity_score -= 30
deductions.append(f"lex missing entities: {entities}")
# Per-entity coverage: is each entity mentioned somewhere in lex+vec?
all_output = " ".join(parsed["lex"] + parsed["vec"]).lower()
missing_entities = {e for e in entities if e not in all_output}
if missing_entities:
penalty = len(missing_entities) * 20
entity_score -= penalty
deductions.append(f"entities dropped: {missing_entities}")
generic_count = sum(1 for l in parsed["lex"] if lex_is_generic(l))
if generic_count:
entity_score -= generic_count * 15
deductions.append(f"{generic_count} generic lex phrases")
if parsed["vec"]:
vec_with = sum(1 for v in parsed["vec"] if lex_preserves_entities(v, entities))
if vec_with > 0:
entity_score += 5
elif not entities:
entity_score = 10
# --- Think bonus (0-20): reward NOT using thinking mode ---
think_bonus = 0 if used_thinking else 20
# --- Total ---
total = format_score + diversity_score + hyde_score + quality_score + entity_score + think_bonus
max_possible = 140 if parsed["hyde"] else 120
percentage = max(0.0, min(100.0, total / max_possible * 100))
# Hard cap: lex echoes are unacceptable - cap at 50%
if lex_echo_count > 0:
percentage = min(percentage, 50.0)
deductions.insert(0, f"CAPPED: {lex_echo_count} lex echo(es)")
if percentage >= 80:
rating = "Excellent"
elif percentage >= 60:
rating = "Good"
elif percentage >= 40:
rating = "Acceptable"
elif percentage >= 20:
rating = "Poor"
else:
rating = "Failed"
return {
"format": format_score,
"diversity": diversity_score,
"hyde": hyde_score,
"quality": quality_score,
"entity": max(0, entity_score),
"think_bonus": think_bonus,
"total": max(0, total),
"max_possible": max_possible,
"percentage": round(percentage, 1),
"rating": rating,
"deductions": deductions,
"parsed": parsed,
"entities_detected": list(entities) if entities else [],
"only_mode": None,
}
def score_expansion(query: str, expansion: str) -> float:
"""Score expansion as a float in [0.0, 1.0] for use as RL reward."""
result = score_expansion_detailed(query, expansion)
return max(0.0, min(1.0, result["total"] / result["max_possible"]))
def extract_query_from_prompt(prompt: str) -> str:
"""Extract the query string from a chat-formatted prompt."""
if "Expand this search query:" in prompt:
query = prompt.split("Expand this search query:")[-1].strip()
if "<|im_end|>" in query:
query = query.split("<|im_end|>")[0].strip()
return query
return prompt.strip()
# =============================================================================
# TRL-compatible reward class
# =============================================================================
class QMDRewardFunction:
"""Reward function compatible with TRL's GRPOTrainer."""
__name__ = "qmd_scoring_reward"
def __call__(self, completions: list[str], prompts: list[str] = None, **kwargs) -> list[float]:
rewards = []
for i, completion in enumerate(completions):
query = ""
if prompts and i < len(prompts):
query = extract_query_from_prompt(prompts[i])
rewards.append(score_expansion(query, completion))
return rewards
# =============================================================================
# CLI: run standalone to test the reward function
# =============================================================================
if __name__ == "__main__":
print("QMD Reward Function Self-Test")
print("=" * 60)
tests = [
("auth", "lex: auth setup\nlex: authentication config\nvec: how to configure authentication\nhyde: Configure auth by setting AUTH_SECRET."),
("auth", "auth is important for security"),
("who is TDS motorsports", "lex: TDS motorsports history\nlex: TDS motorsports founders\nvec: information about TDS motorsports company"),
("who is TDS motorsports", "lex: find information about\nlex: company details\nvec: who is this company"),
("how to use React hooks", "lex: React hooks tutorial\nlex: useEffect useState\nvec: how to use React hooks in functional components"),
("auth", "<think>Let me think...</think>\nlex: auth"),
("auth", "lex: auth\nThis is some explanation\nvec: more"),
# Personal entity tests (issue #247: entity stripping)
("meeting with Bob about C++", 'lex: Bob "C++" meeting\nlex: Bob C++ discussion notes\nvec: meeting notes with Bob about C++ programming'),
("meeting with Bob about C++", "lex: c++ meetings\nvec: programming meeting notes"), # BAD: Bob is gone
# Quoted phrases bonus
("python memory leak debugging", 'lex: "memory leak" python -java\nlex: tracemalloc profiler\nvec: how to find memory leaks in Python'),
# "/only:" mode tests (slash prefix)
("auth /only:lex", "lex: auth setup\nlex: authentication config\nlex: login credentials"),
("auth /only:lex", "lex: auth setup\nvec: how to configure authentication"), # should fail - has vec
("React hooks /only:vec", "vec: how to use React hooks in functional components\nvec: useState and useEffect patterns in React"),
("PostgreSQL indexing /only:hyde", "hyde: PostgreSQL uses B-tree indexes by default. Create indexes with CREATE INDEX idx_name ON table(column). EXPLAIN ANALYZE shows whether queries use indexes efficiently."),
]
for query, expansion in tests:
score = score_expansion(query, expansion)
detail = score_expansion_detailed(query, expansion)
only_mode = detail.get("only_mode")
mode_str = f" [only:{only_mode}]" if only_mode else ""
print(f"\n Query: '{query}'{mode_str}")
print(f" Score: {score:.2f} ({detail['rating']})")
if detail["deductions"]:
print(f" Issues: {', '.join(detail['deductions'][:3])}")

View File

@@ -0,0 +1,670 @@
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "torch",
# "trl>=0.12.0",
# "peft>=0.7.0",
# "transformers>=4.45.0",
# "accelerate>=0.24.0",
# "huggingface_hub>=0.20.0",
# "trackio",
# "nvidia-ml-py",
# "datasets",
# "bitsandbytes",
# "pyyaml",
# "gguf",
# ]
# ///
"""
Unified training script for QMD query expansion models.
Primary pipeline is SFT-only:
sft - Supervised fine-tuning on labeled examples
GRPO was moved to `experiments/grpo/` and is not part of the main training
pipeline by default.
Usage:
uv run train.py sft --config configs/sft.yaml
"""
import argparse
import os
import subprocess
import sys
import time
from pathlib import Path
import yaml
from transformers import TrainerCallback
def export_gguf(model, tokenizer, output_dir: str, model_name: str):
"""Export model to GGUF at Q4_K_M, Q6_K, Q8_0 quantizations."""
import shutil
import tempfile
output_path = Path(output_dir)
gguf_dir = output_path / "gguf"
gguf_dir.mkdir(exist_ok=True)
# Save merged model to temp dir
print("Saving merged model for GGUF conversion...")
with tempfile.TemporaryDirectory() as tmp:
merged_path = Path(tmp) / "merged"
model.save_pretrained(merged_path, safe_serialization=True)
tokenizer.save_pretrained(merged_path)
# Setup llama.cpp
llama_cpp = Path("/tmp/llama.cpp")
if not llama_cpp.exists():
print("Cloning llama.cpp...")
subprocess.run(
[
"git",
"clone",
"--depth",
"1",
"https://github.com/ggerganov/llama.cpp.git",
str(llama_cpp),
],
capture_output=True,
)
subprocess.run(
[
sys.executable,
"-m",
"pip",
"install",
"-q",
"-r",
str(llama_cpp / "requirements.txt"),
],
capture_output=True,
)
# Build quantize tool if needed
quantize_bin = llama_cpp / "build" / "bin" / "llama-quantize"
if not quantize_bin.exists():
print("Building llama-quantize...")
build_dir = llama_cpp / "build"
build_dir.mkdir(exist_ok=True)
subprocess.run(
[
"cmake",
"-B",
str(build_dir),
"-S",
str(llama_cpp),
"-DGGML_CUDA=OFF",
],
capture_output=True,
)
subprocess.run(
[
"cmake",
"--build",
str(build_dir),
"--target",
"llama-quantize",
"-j",
"4",
],
capture_output=True,
)
# Convert to FP16 first
fp16_file = gguf_dir / f"{model_name}-f16.gguf"
print(f"Converting to FP16: {fp16_file}")
log_out = Path("/tmp/qmd-gguf-convert.log")
log_err = Path("/tmp/qmd-gguf-convert.err")
with log_out.open("w") as out_f, log_err.open("w") as err_f:
result = subprocess.run(
[
sys.executable,
str(llama_cpp / "convert_hf_to_gguf.py"),
str(merged_path),
"--outfile",
str(fp16_file),
"--outtype",
"f16",
],
stdout=out_f,
stderr=err_f,
text=True,
)
if result.returncode != 0:
print("GGUF conversion failed.")
print(f"stdout: {log_out}")
print(f"stderr: {log_err}")
return
# Quantize to 4, 6, 8 bit
for quant_type in ["Q4_K_M", "Q6_K", "Q8_0"]:
out_file = gguf_dir / f"{model_name}-{quant_type.lower()}.gguf"
print(f"Quantizing {quant_type}: {out_file}")
subprocess.run(
[str(quantize_bin), str(fp16_file), str(out_file), quant_type],
capture_output=True,
)
if out_file.exists():
size_mb = out_file.stat().st_size / (1024 * 1024)
print(f" {quant_type}: {size_mb:.1f} MB")
# Remove FP16 to save space
if fp16_file.exists():
fp16_file.unlink()
print(f"GGUF files saved to: {gguf_dir}")
class TimedSaveCallback(TrainerCallback):
"""Trigger periodic checkpoint saves based on elapsed wall-clock time."""
def __init__(self, interval_minutes: float):
self.interval_seconds = float(interval_minutes) * 60.0
self.last_save_time = time.time()
def on_step_end(self, args, state, control, **kwargs):
if not getattr(state, "is_world_process_zero", False):
return control
now = time.time()
if now - self.last_save_time >= self.interval_seconds:
control.should_save = True
self.last_save_time = now
return control
def run_eval(model_path: str) -> float | None:
"""Run eval.py on the trained model and return average score."""
print("\n" + "=" * 60)
print("Running evaluation...")
print("=" * 60)
eval_script = Path(__file__).parent / "eval.py"
result = subprocess.run(
[sys.executable, str(eval_script), model_path],
cwd=str(Path(__file__).parent),
capture_output=True,
text=True,
)
if result.stdout:
print(result.stdout, end="")
if result.stderr:
print(result.stderr, end="")
avg = None
for line in (result.stdout or "").splitlines():
if line.strip().startswith("Average:"):
try:
avg = float(line.split("Average:", 1)[1].split("%", 1)[0].strip())
except ValueError:
pass
break
return avg
def cmd_sft(args):
"""Run supervised fine-tuning."""
import torch
from datasets import load_dataset
import torch.distributed as dist
from peft import LoraConfig
from transformers import AutoTokenizer, AutoModelForCausalLM
from transformers.utils import logging as hf_logging
hf_logging.set_verbosity_error()
from trl import SFTTrainer, SFTConfig
with open(args.config) as f:
cfg = yaml.safe_load(f)
os.environ.setdefault("HF_LOG_CUDA_MEMORY", "0")
if args.dry_run:
print("SFT Training Configuration:")
print(yaml.dump(cfg, default_flow_style=False))
return
dataset_name = cfg["dataset"]["name"]
print(f"Loading dataset: {dataset_name}...")
# Support local JSONL files and glob patterns
if dataset_name.startswith("data/") or dataset_name.endswith(".jsonl"):
from pathlib import Path
import glob
# Handle glob patterns like "data/*.jsonl"
if "*" in dataset_name:
jsonl_files = sorted(glob.glob(dataset_name))
if not jsonl_files:
raise ValueError(f"No files found matching: {dataset_name}")
print(
f" Found {len(jsonl_files)} JSONL files: {[Path(f).name for f in jsonl_files]}"
)
dataset = load_dataset("json", data_files=jsonl_files, split="train")
else:
data_path = Path(dataset_name)
if data_path.is_dir():
train_file = data_path / "train.jsonl"
dataset = load_dataset(
"json", data_files=str(train_file), split="train"
)
else:
dataset = load_dataset("json", data_files=dataset_name, split="train")
else:
dataset = load_dataset(dataset_name, split=cfg["dataset"]["split"])
print(f"Dataset loaded: {len(dataset)} examples")
dataset = dataset.shuffle(seed=42)
split = dataset.train_test_split(test_size=cfg["dataset"]["eval_split"], seed=42)
train_dataset = split["train"]
eval_dataset = split["test"]
print(f" Train: {len(train_dataset)}, Eval: {len(eval_dataset)}")
# Check if output looks like a HF Hub path (contains /)
output_name = cfg["model"]["output"]
push_to_hub = "/" in output_name and not output_name.startswith("outputs/")
if "push_to_hub" in cfg["model"]:
push_to_hub = bool(cfg["model"]["push_to_hub"])
output_dir = output_name.split("/")[-1] if push_to_hub else output_name
report_to = "none"
if os.environ.get("HF_TOKEN"):
try:
import trackio # noqa: F401
report_to = "trackio"
except Exception:
print("Trackio not installed; disabling tracking.")
tracking = cfg.get("tracking", {})
if report_to == "trackio":
project = tracking.get("project")
if project:
os.environ.setdefault("TRACKIO_PROJECT", project)
run_name = tracking.get("run_name")
if run_name and "{" in run_name:
from datetime import datetime
now = datetime.now()
run_name = run_name.replace("{day}", now.strftime("%b %d")).replace(
"{time}", now.strftime("%H:%M")
)
save_interval_minutes = cfg["training"].get("save_interval_minutes")
save_steps = cfg["training"].get("save_steps", 200)
save_total_limit = cfg["training"].get("save_total_limit", 2)
if save_interval_minutes:
# Prefer wall-clock checkpointing (for long jobs / preemption safety)
save_steps = max(save_steps, 10_000_000)
callbacks = []
if save_interval_minutes:
try:
interval_value = float(save_interval_minutes)
except (TypeError, ValueError):
interval_value = None
if interval_value and interval_value > 0:
callbacks.append(TimedSaveCallback(interval_value))
config = SFTConfig(
output_dir=output_dir,
push_to_hub=push_to_hub,
hub_model_id=output_name if push_to_hub else None,
hub_strategy="every_save" if push_to_hub else "end",
num_train_epochs=cfg["training"]["epochs"],
per_device_train_batch_size=cfg["training"]["batch_size"],
gradient_accumulation_steps=cfg["training"]["gradient_accumulation_steps"],
learning_rate=cfg["training"]["learning_rate"],
max_length=cfg["training"]["max_length"],
logging_steps=10,
save_strategy="steps",
save_steps=save_steps,
save_total_limit=save_total_limit,
eval_strategy="steps",
eval_steps=cfg["training"].get("eval_steps", 200),
warmup_ratio=cfg["training"]["warmup_ratio"],
lr_scheduler_type=cfg["training"]["lr_scheduler"],
ddp_find_unused_parameters=cfg["training"].get(
"ddp_find_unused_parameters", False
),
bf16=True,
report_to=report_to,
run_name=run_name if report_to == "trackio" else None,
)
# LoRA config with modules_to_save for embedding layers
# This prevents token ID mismatches during inference
peft_config = LoraConfig(
r=cfg["lora"]["rank"],
lora_alpha=cfg["lora"]["alpha"],
lora_dropout=cfg["lora"]["dropout"],
bias="none",
task_type="CAUSAL_LM",
target_modules=cfg["lora"]["target_modules"],
modules_to_save=["embed_tokens", "lm_head"], # Critical for special tokens
ensure_weight_tying=True,
)
print("Loading tokenizer...")
base_model = cfg["model"]["base"]
tokenizer = AutoTokenizer.from_pretrained(base_model)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
print("Initializing SFT trainer...")
trainer = SFTTrainer(
model=base_model,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
args=config,
peft_config=peft_config,
processing_class=tokenizer,
callbacks=callbacks,
)
print("Starting SFT training...")
trainer.train()
is_main = os.environ.get("RANK", "0") == "0"
if dist.is_available() and dist.is_initialized():
dist.barrier()
if not is_main:
return
if push_to_hub:
print("Pushing to Hub...")
trainer.push_to_hub()
print(f"Done! Model: https://huggingface.co/{output_name}")
else:
trainer.save_model()
print(f"Done! Model saved to: {output_dir}")
# Export GGUF
print("\nExporting to GGUF...")
# Need to get the merged model for GGUF
print("Loading model for GGUF export...")
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained(
base_model, torch_dtype=torch.bfloat16, device_map="auto"
)
base.config.tie_word_embeddings = False
model = PeftModel.from_pretrained(base, output_dir, local_files_only=True)
model = model.merge_and_unload()
export_gguf(model, tokenizer, output_dir, Path(output_dir).name)
# Run eval
eval_avg = run_eval(output_dir)
if report_to == "trackio":
try:
import trackio
if eval_avg is not None:
trackio.log({"eval.avg": eval_avg})
except Exception:
pass
def cmd_grpo(args):
"""Run GRPO reinforcement learning on top of merged SFT weights."""
print(
"GRPO is not part of the main training pipeline and has been moved to `experiments/grpo/`."
)
print("To run experimental GRPO, use:")
print(" cd finetune && uv run python experiments/grpo/grpo.py")
return
import torch
import torch.distributed as dist
import os
from datasets import load_dataset
from peft import LoraConfig, PeftModel, get_peft_model
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.utils import logging as hf_logging
hf_logging.set_verbosity_error()
from trl import GRPOTrainer, GRPOConfig
# Import reward from the shared module
sys.path.insert(0, os.path.dirname(__file__))
from reward import QMDRewardFunction
with open(args.config) as f:
cfg = yaml.safe_load(f)
os.environ.setdefault("HF_LOG_CUDA_MEMORY", "0")
if args.dry_run:
print("GRPO Training Configuration:")
print(yaml.dump(cfg, default_flow_style=False))
return
# Tracking
report_to = "none"
if os.environ.get("HF_TOKEN"):
try:
import trackio # noqa: F401
report_to = "trackio"
except Exception:
print("Trackio not installed; disabling tracking.")
tracking = cfg.get("tracking", {})
if report_to == "trackio":
project = tracking.get("project")
if project:
os.environ.setdefault("TRACKIO_PROJECT", project)
run_name = tracking.get("run_name")
if run_name and "{" in run_name:
from datetime import datetime
now = datetime.now()
run_name = run_name.replace("{day}", now.strftime("%b %d")).replace(
"{time}", now.strftime("%H:%M")
)
# Load tokenizer
base_model_name = cfg["model"]["base"]
print(f"Loading tokenizer from {base_model_name}...")
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
if tokenizer.pad_token is None:
tokenizer.pad_token = tokenizer.eos_token
# Load and format dataset
print("Loading dataset...")
dataset = load_dataset(cfg["dataset"]["name"], split="train")
def extract_prompt(example):
content = example[cfg["dataset"]["prompt_field"]][0]["content"]
messages = [{"role": "user", "content": content}]
formatted = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
return {"prompt": formatted}
dataset = dataset.map(extract_prompt, remove_columns=dataset.column_names)
max_samples = cfg["dataset"].get("max_samples", len(dataset))
dataset = dataset.shuffle(seed=42).select(range(min(max_samples, len(dataset))))
print(f"Using {len(dataset)} prompts for GRPO")
# Load base model, merge SFT adapter
sft_model_name = cfg["model"]["sft"]
print(f"Loading SFT model from {sft_model_name}...")
local_rank = int(os.environ.get("LOCAL_RANK", "0"))
if torch.cuda.is_available():
available = torch.cuda.device_count()
if available == 0:
raise RuntimeError("CUDA is available but no devices were detected.")
if local_rank >= available:
print(
f"Warning: LOCAL_RANK={local_rank} but only {available} CUDA device(s) visible. "
"Falling back to the last available device."
)
local_rank = available - 1
torch.cuda.set_device(local_rank)
dtype_name = cfg["model"].get("torch_dtype", "bfloat16")
dtype_map = {
"bfloat16": torch.bfloat16,
"float16": torch.float16,
"float32": torch.float32,
}
torch_dtype = dtype_map.get(dtype_name, torch.bfloat16)
model_kwargs = {
"torch_dtype": torch_dtype,
"device_map": {"": local_rank} if torch.cuda.is_available() else "auto",
}
base_model = AutoModelForCausalLM.from_pretrained(
base_model_name,
**model_kwargs,
)
model = PeftModel.from_pretrained(base_model, sft_model_name)
model = model.merge_and_unload()
print("SFT adapter merged.")
# Add fresh LoRA for GRPO with modules_to_save
grpo_lora_config = LoraConfig(
r=cfg["lora"]["rank"],
lora_alpha=cfg["lora"]["alpha"],
lora_dropout=cfg["lora"]["dropout"],
bias="none",
task_type="CAUSAL_LM",
target_modules=cfg["lora"]["target_modules"],
modules_to_save=["embed_tokens", "lm_head"], # Critical for special tokens
ensure_weight_tying=True,
)
model = get_peft_model(model, grpo_lora_config)
model.print_trainable_parameters()
# Build GRPO config
output_name = cfg["model"]["output"]
push_to_hub = "/" in output_name and not output_name.startswith("outputs/")
if "push_to_hub" in cfg["model"]:
push_to_hub = bool(cfg["model"]["push_to_hub"])
output_dir = output_name.split("/")[-1] if push_to_hub else output_name
grpo_cfg = cfg.get("grpo", {})
learning_rate = cfg["training"]["learning_rate"]
if isinstance(learning_rate, str):
learning_rate = float(learning_rate)
save_interval_minutes = cfg["training"].get("save_interval_minutes")
save_steps = cfg["training"].get("save_steps", 200)
save_total_limit = cfg["training"].get("save_total_limit", 2)
save_strategy = cfg["training"].get("save_strategy", "epoch")
if save_interval_minutes:
# Prefer wall-clock checkpointing (for long jobs / preemption safety)
save_steps = max(save_steps, 10_000_000)
save_strategy = "steps"
callbacks = []
if save_interval_minutes:
try:
interval_value = float(save_interval_minutes)
except (TypeError, ValueError):
interval_value = None
if interval_value and interval_value > 0:
callbacks.append(TimedSaveCallback(interval_value))
config = GRPOConfig(
output_dir=output_dir,
push_to_hub=push_to_hub,
hub_model_id=output_name if push_to_hub else None,
num_generations=grpo_cfg.get("num_generations", 4),
max_completion_length=grpo_cfg.get("max_completion_length", 200),
beta=grpo_cfg.get("beta", 0.04),
num_train_epochs=cfg["training"]["epochs"],
per_device_train_batch_size=cfg["training"]["batch_size"],
gradient_accumulation_steps=cfg["training"]["gradient_accumulation_steps"],
learning_rate=learning_rate,
max_grad_norm=cfg["training"]["max_grad_norm"],
max_steps=cfg["training"].get("max_steps", -1),
logging_steps=10,
save_strategy=save_strategy,
save_steps=save_steps,
save_total_limit=save_total_limit,
bf16=True,
skip_memory_metrics=True,
report_to=report_to,
run_name=run_name if report_to == "trackio" else None,
)
# Train
print("Initializing GRPO trainer...")
trainer = GRPOTrainer(
model=model,
processing_class=tokenizer,
args=config,
train_dataset=dataset,
reward_funcs=[QMDRewardFunction()],
callbacks=callbacks,
)
print("Starting GRPO training...")
trainer.train()
is_main = os.environ.get("RANK", "0") == "0"
if dist.is_available() and dist.is_initialized():
dist.barrier()
if not is_main:
return
if push_to_hub:
print("Pushing to Hub...")
trainer.push_to_hub()
trainer.save_model()
if report_to == "trackio":
try:
import trackio
trackio.finish()
except Exception:
pass
print(f"Done! Model saved to: {output_dir}")
# Export GGUF
print("\nExporting to GGUF...")
merged = model.merge_and_unload()
export_gguf(merged, tokenizer, output_dir, Path(output_dir).name)
# Run eval
eval_avg = run_eval(output_dir)
if report_to == "trackio" and eval_avg is not None:
try:
import trackio
trackio.log({"eval.avg": eval_avg})
except Exception:
pass
def main():
parser = argparse.ArgumentParser(
description="QMD Query Expansion Training",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
uv run train.py sft --config configs/sft.yaml
""",
)
sub = parser.add_subparsers(dest="stage", required=True)
sft_parser = sub.add_parser("sft", help="Supervised fine-tuning")
sft_parser.add_argument("--config", required=True, help="Path to SFT config YAML")
sft_parser.add_argument(
"--dry-run", action="store_true", help="Print config and exit"
)
args = parser.parse_args()
cmd_sft(args)
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More