Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / packages/cli/src/commands/search.ts |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | packages/cli/src/commands/search.ts |
| Original SHA-256 | fb4f58c1c06b120f7ab469bf66b6ca127d38aae0bf2d3b941120868b1e2b9c69 |
| Git blob SHA | 21347fd6b72afbd40b260e1093ddc007dee5dac3 |
| Reading-copy SHA-256 | fb4f58c1c06b120f7ab469bf66b6ca127d38aae0bf2d3b941120868b1e2b9c69 |
Recovered source transcript
Download complete source text ↓54 lines · 1.6 KB
import * as p from '@clack/prompts'
import pc from 'picocolors'
import * as logger from '../lib/logger.js'
import { loadRegistry, searchRegistry } from '../lib/registry.js'
import { track } from '../lib/telemetry.js'
import { PRIMARY_CATEGORIES } from '../types/index.js'
interface SearchOptions {
category?: string
allCategories?: boolean
}
/**
* Search the registry for llms.txt entries matching a query.
*/
export async function search(query: string, options: SearchOptions): Promise<void> {
const spin = logger.spinner('Loading registry...')
spin.start()
await loadRegistry()
spin.stop()
let activeCategories: string[] | undefined
if (options.allCategories) {
activeCategories = undefined
} else if (options.category) {
activeCategories = options.category.split(',').map(c => c.trim())
} else {
activeCategories = [...PRIMARY_CATEGORIES]
}
let results = searchRegistry(query, activeCategories)
results = results.slice(0, 10)
if (results.length === 0) {
p.log.info(`No results for "${query}"`)
if (activeCategories) {
p.log.message(pc.dim('Try `--all-categories` to search everything'))
}
return
}
p.log.step(pc.bold(`Results for "${query}":`))
for (const entry of results) {
p.log.message(
` ${pc.cyan(pc.bold(entry.name))} ${pc.dim(`(${entry.slug})`)}\n ${entry.description}\n ${pc.dim(entry.category)} · ${pc.dim(entry.llmsTxtUrl)}${entry.llmsFullTxtUrl ? `\n ${pc.dim('full:')} ${pc.dim(entry.llmsFullTxtUrl)}` : ''}`
)
}
p.log.message(pc.dim(`Showing ${results.length} result(s). Install with: llmstxt install <name>`))
track({ event: 'search', skills: query })
}