All files / src/llms pages.ts

100% Statements 40/40
100% Branches 0/0
100% Functions 0/0
100% Lines 40/40

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72                                    2x 2x 2x 2x 2x                     2x 2x 2x 2x 2x 2x   2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x   2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x   2x 2x 2x  
/**
 * The pages the site serves to language models, beside `llms.txt` (SPECS §11).
 *
 * `llms.txt` is the summary (`llms/index.ts`) and links here; these are the
 * references it links to, one Markdown file each under `llms/` on the site, in
 * the shape llmstxt.org asks for — a page a model can fetch whole and act on.
 * Each is **generated from the app it describes**: the tasks from the
 * registry, the link keys beside the hash's own reader, the usage from the
 * command, the messages from the embed channel, the stores from the shelf.
 *
 * Nothing here is committed as output. The site build writes every file from
 * the source it is building (`scripts/llms.mjs`, through `llms/render.ts`), so
 * each deploy of `main` serves what that commit's app does, and the dev server
 * renders them on request. `test/dom/llms.test.ts` holds what they say to the
 * app: every link key to the reader's list, every flag to the parser, both JSON
 * examples to their parsers.
 */
 
import { cliPage } from './cli'
import { dataPage } from './data'
import { embedPage } from './embed'
import { linksPage } from './links'
import { tasksPage } from './tasks'
 
/** One page: where it is served under the site's root, what `llms.txt` calls it, and what writes it. */
export interface AgentPage {
  path: string
  title: string
  /** The line after its link in `llms.txt`. */
  summary: string
  render(): string
}
 
export const AGENT_PAGES: readonly AgentPage[] = [
  {
    path: 'llms/links.md',
    title: 'Links',
    summary:
      'every key of a link’s fragment and every value it takes, the two forms of a coordinate, the query ' +
      'parameters, pinned builds, and examples that open',
    render: linksPage,
  },
  {
    path: 'llms/cli.md',
    title: 'Command line',
    summary: 'installing `chromosomix`, writing a command, what it writes, exit statuses, examples, and the full usage',
    render: cliPage,
  },
  {
    path: 'llms/tasks.md',
    title: 'Analysis tasks',
    summary:
      'every task, with what it reads and writes and every parameter’s flag, values, default and meaning, ' +
      'generated from the app’s registry',
    render: tasksPage,
  },
  {
    path: 'llms/embed.md',
    title: 'Embedding and driving',
    summary: 'the viewer in an `<iframe>`, its `postMessage` protocol, and the Jupyter and R widgets',
    render: embedPage,
  },
  {
    path: 'llms/data.md',
    title: 'Files, hosting, stores and workspaces',
    summary:
      'the formats and their sidecars, what a host must serve, the built-in data stores, and the store and ' +
      'workspace JSON formats',
    render: dataPage,
  },
]