<results>
<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/mdx-exports.ts?start=1&glob=**/*.ts">
vite/src/mdx-exports.ts

/**
 * Public re-exports of all MDX components available in Holocron.
 *
 * Users can import these in their own `.tsx`...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/chat-widget-example/vite.config.ts?start=6&glob=**/*.ts">
chat-widget-example/vite.config.ts

...vitejs/plugin-react'
import { defineConfig } from 'vite'
import spiceflow from 'spiceflow/vite'

export default defineConfig({
  clearScreen: false,
  plugins: [spiceflow({ entry: './src/main.tsx'...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/api-client.ts?start=26&glob=**/*.ts">
cli/src/api-client.ts

... return ''
}

/** Create a client authenticated with a session token (from `holocron login`). */
export function createSessionClient(baseUrl: string, sessionToken: string) {
  const safeFetch =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/cli.ts?start=11&glob=**/*.ts">
cli/src/cli.ts

...{ deployCli } from './deploy.ts'
import { subscribeCli } from './subscribe.ts'

export const cli = goke('holocron')
  .option('--api-url [url]', 'Holocron API URL (default:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/config.ts?start=10&glob=**/*.ts">
cli/src/config.ts

... return path.join(getConfigDir(), 'config.json')
}

const DEFAULT_URL = 'https://holocron.so'

export interface CliConfig {
  /** Auth credentials keyed by normalized base URL */
  servers?:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/create.ts?start=29&glob=**/*.ts">
cli/src/create.ts

...")|(\/\/.*)|(\/\*[^]*?\*\/)/g
const stringOrTrailingCommaRe = /("(?:\\?[^])*?")|(,\s*)(?=]|})/g

export const createCli = goke()

createCli
  .command('create [dir]', 'Scaffold a new Holocron docs...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/deploy.ts?start=10&glob=**/*.ts">
cli/src/deploy.ts

...} from './api-client.ts'
import { logger, colors as c, formatBytes } from './logger.ts'

export const deployCli = goke()

deployCli
  .command('deploy', 'Build and deploy your docs site to...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/device-flow.ts?start=11&glob=**/*.ts">
cli/src/device-flow.ts

... function readJson<T>(response: Response): Promise<T> {
  return (await response.json()) as T
}

export interface DeviceFlowResult {
  accessToken: string
}

/**
 * Run the BetterAuth device flow...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/keys.ts?start=2&glob=**/*.ts">
cli/src/keys.ts

...{ getApiClient } from './api-client.ts'
import { logger, colors } from './logger.ts'

export const keysCli = goke()

keysCli
  .command('keys create', 'Create a new API key')
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/logger.ts?start=4&glob=**/*.ts">
cli/src/logger.ts

...(vendored picocolors) so no extra dependency is needed.

import { colors } from 'goke'

export { colors }

/** Formatted log helpers — each returns a string, does not print. */
export const...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/login.ts?start=10&glob=**/*.ts">
cli/src/login.ts

...{ getApiClient } from './api-client.ts'
import { logger, colors } from './logger.ts'

export const loginCli = goke()

loginCli
  .command('login', 'Authenticate with Holocron via browser...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/projects.ts?start=2&glob=**/*.ts">
cli/src/projects.ts

...{ getApiClient } from './api-client.ts'
import { logger, colors } from './logger.ts'

export const projectsCli = goke()

projectsCli
  .command('projects list', 'List all projects')
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/subscribe.ts?start=9&glob=**/*.ts">
cli/src/subscribe.ts

...getManagementClient } from './api-client.ts'
import { logger, colors } from './logger.ts'

export const subscribeCli = goke()

/** Prompt for a project selection or fail with usage hint in...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/cli/src/website-ambient.d.ts?start=9&glob=**/*.ts">
cli/src/website-ambient.d.ts

...  class DurableObject<E = any> {
    ctx: any
    env: E
    constructor(ctx: any, env: E)
  }
  export { env, waitUntil, DurableObject }
}

declare module '*.css' {}

// Cloudflare Workers globals...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/db/drizzle.config.ts?start=1&glob=**/*.ts">
db/drizzle.config.ts

import { defineConfig } from 'drizzle-kit'

export default defineConfig({
  out: './drizzle',
  schema: './src/schema.ts',
  dialect: 'sqlite',
})

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/db/src/cloudflare.d.ts?start=17&glob=**/*.ts">
db/src/cloudflare.d.ts

...'cloudflare:workers' {
  const env: {
    DB: D1Database
    [key: string]: unknown
  }
  export { env }
}

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/db/src/node.ts?start=2&glob=**/*.ts">
db/src/node.ts

...{ drizzle } from 'drizzle-orm/sqlite-proxy'
import * as schema from './schema.ts'

export { schema }

async function queryD1(sql: string, params: any[], method: string) {
  //...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/db/src/schema.ts?start=11&glob=**/*.ts">
db/src/schema.ts

...params
// don't crash D1's .bind() which only accepts string | number | null | ArrayBuffer.
export const epochMs = s.customType<{ data: number; driverParam: number }>({
  dataType() { return...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/db/src/workerd.ts?start=2&glob=**/*.ts">
db/src/workerd.ts

...{ drizzle } from 'drizzle-orm/sqlite-proxy'
import * as schema from './schema.ts'

export { schema }

// Convert D1 object rows to positional arrays for sqlite-proxy.
// Same logic as...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/example-cloudflare/vite.config.ts?start=5&glob=**/*.ts">
example-cloudflare/vite.config.ts

...e/vite-plugin'
import { holocron } from '@holocron.so/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  clearScreen: false,
  plugins: [
    holocron({ pagesDir: './src' }),
...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/example/vite.config.ts?start=1&glob=**/*.ts">
example/vite.config.ts

...} from 'rollup-plugin-visualizer'

const analyzeBundle = process.env.ANALYZE_BUNDLE === '1'

export default defineConfig({
  clearScreen: false,
  build: analyzeBundle ? { sourcemap: true } :...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/hosting/src/lib/memoize.ts?start=19&glob=**/*.ts">
hosting/src/lib/memoize.ts

...CACHE_VERSION = 'v1'

interface CacheEnvelope<T> {
  value: T
  createdAt: number
}

export interface MemoizeOptions<Args extends unknown[], T> {
  namespace: string
  fn: (...args: Args)...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/hosting/src/worker.ts?start=34&glob=**/*.ts">
hosting/src/worker.ts

...undefined && moduleName) {
      modules[moduleName] = content
    }
  }

  return modules
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    try {
      const...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/e2e/changelog/changelog.test.ts?start=60&glob=**/*.ts">
integration-tests/e2e/changelog/changelog.test.ts

... inlined into the virtual changelog page.
    expect(html).not.toContain("Could not parse import/exports with acorn");
    expect(html).toContain("changelog-hero");
    expect(html).toContain("Changel...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/e2e/deploy-preview/deploy-preview.test.ts?start=5&glob=**/*.ts">
integration-tests/e2e/deploy-preview/deploy-preview.test.ts

...} from 'vite'`,
      `import { holocron } from '@holocron.so/vite/vite'`,
      ``,
      `export default defineConfig({`,
      `  clearScreen: false,`,
      `  plugins: [holocron()],`,
     ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/e2e/helpers/runtime-debug.ts?start=3&glob=**/*.ts">
integration-tests/e2e/helpers/runtime-debug.ts

...playwright/test";

type ConsoleEntry = {
  location: string;
  text: string;
  type: string;
};

export type RuntimeDebug = {
  consoleEntries: ConsoleEntry[];
  pageErrors: string[];
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/e2e/helpers/test.ts?start=80&glob=**/*.ts">
integration-tests/e2e/helpers/test.ts

...s.kill(-child.pid, "SIGTERM");
  await new Promise((resolve) => child.once("exit", resolve));
}

export const test = base.extend<object, { fixtureServer: void }>({
  fixtureServer: [async ({}, use,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/base-path/vite.config.ts?start=7&glob=**/*.ts">
integration-tests/fixtures/base-path/vite.config.ts

...from "../../scripts/e2e-vite-config.ts";

cleanupFixtureRunPaths(resolveFixtureRunPaths());

export default defineConfig(createE2EViteConfig({
  base: "/docs",
  plugins: [holocron()],
}));

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/changelog/mock-github-server.ts?start=2&glob=**/*.ts">
integration-tests/fixtures/changelog/mock-github-server.ts

...so the changelog
 *  provider's fetch (which runs right after config load) can reach it. */
export async function startMockGitHubServer(): Promise<string> {
  if (process.env.HOLOCRON_CHANGELOG_A...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/changelog/vite.config.ts?start=9&glob=**/*.ts">
integration-tests/fixtures/changelog/vite.config.ts

...} from "./mock-github-server.ts";

cleanupFixtureRunPaths(resolveFixtureRunPaths());

export default defineConfig(async () => {
  await startMockGitHubServer();
  return createE2EViteConfig...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/custom-entry/vite.config.ts?start=1&glob=**/*.ts">
integration-tests/fixtures/custom-entry/vite.config.ts

...from '../../scripts/e2e-vite-config.ts'

cleanupFixtureRunPaths(resolveFixtureRunPaths())

export default defineConfig(createE2EViteConfig({
  plugins: [
    holocron({ entry: './server.tsx'...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/custom-virtual-modules/vite.config.ts?start=18&glob=**/*.ts">
integration-tests/fixtures/custom-virtual-modules/vite.config.ts

...String.raw\`# Virtual v2 API\n\nThis page only exists in the virtual config navigation.\`,
}

export async function getMdxSlugs() {
  return Object.keys(pages)
}

export async function...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/docs-subfolder/vite.config.ts?start=2&glob=**/*.ts">
integration-tests/fixtures/docs-subfolder/vite.config.ts

...from '../../scripts/e2e-vite-config.ts'

cleanupFixtureRunPaths(resolveFixtureRunPaths())

export default defineConfig(createE2EViteConfig({
  plugins: [
    holocron({ entry: './server.tsx'...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/openapi-pagesdir/vite.config.ts?start=9&glob=**/*.ts">
integration-tests/fixtures/openapi-pagesdir/vite.config.ts

...from '../../scripts/e2e-vite-config.ts'

cleanupFixtureRunPaths(resolveFixtureRunPaths())

export default defineConfig(createE2EViteConfig({
  plugins: [holocron({ pagesDir: './src' })],
}))

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/fixtures/tailwind-scan/vite.config.ts?start=9&glob=**/*.ts">
integration-tests/fixtures/tailwind-scan/vite.config.ts

...from "../../scripts/e2e-vite-config.ts";

cleanupFixtureRunPaths(resolveFixtureRunPaths());

export default defineConfig(createE2EViteConfig({
  plugins: [holocron({ pagesDir: "src" })],
}));

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/playwright.config.ts?start=17&glob=**/*.ts">
integration-tests/playwright.config.ts

...null,
    deviceScaleFactor: undefined,
    baseURL: `http://localhost:${port}`,
  },
}));

export default defineConfig({
  globalTeardown: "./scripts/cleanup-e2e.ts",
  timeout: 45_000,
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/playwright.deploy-preview.config.ts?start=1&glob=**/*.ts">
integration-tests/playwright.deploy-preview.config.ts

...the test talks to holocron.so.

import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  testDir: "e2e/deploy-preview",
  timeout: 180_000,
  expect: {
   ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/scripts/cleanup-e2e.ts?start=2&glob=**/*.ts">
integration-tests/scripts/cleanup-e2e.ts

... cache and build artifacts.
 */

import { cleanupAllFixtureRunArtifacts } from "./fixtures.ts";

export function cleanupCurrentRunArtifacts(): void {
  const runId = process.env["E2E_RUN_ID"]?.trim();...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/scripts/e2e-vite-config.ts?start=3&glob=**/*.ts">
integration-tests/scripts/e2e-vite-config.ts

...} from "vite";
import { getFixtureCacheDir, getFixtureOutDir } from "./fixtures.ts";

export type FixtureRunPaths = {
  fixtureRoot?: string;
  cacheDir?: string;
  outDir?:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/scripts/fixtures.ts?start=10&glob=**/*.ts">
integration-tests/scripts/fixtures.ts

...No code changes anywhere else.
 */

import fs from "node:fs";
import path from "node:path";

export type Fixture = {
  /** Folder name under `fixtures/` (also the Playwright project name and test...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/integration-tests/vite.config.ts?start=31&glob=**/*.ts">
integration-tests/vite.config.ts

...eRunPaths(resolveFixtureRunPaths());

const analyzeBundle = process.env.ANALYZE_BUNDLE === "1";

export default defineConfig(createE2EViteConfig({
  build: analyzeBundle ? { sourcemap: true } :...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/og-worker/src/ico-utils.ts?start=9&glob=**/*.ts">
og-worker/src/ico-utils.ts

...return the first one with
 * PNG magic bytes. If none contain PNG data, returns undefined.
 */
export function extractPngFromIco(buf: ArrayBuffer): Uint8Array | undefined {
  const view = new...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/og-worker/worker-configuration.d.ts?start=232&glob=**/*.ts">
og-worker/worker-configuration.d.ts

...value?: any);
        value: any;
        valueOf(): any;
    }
    type ImportValue = ExportValue | number;
    type ModuleImports = Record<string, ImportValue>;
    type Imports =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/scripts/bundle-chat-css.ts?start=33&glob=**/*.ts">
vite/scripts/bundle-chat-css.ts

... ' * Injected into the shadow DOM by ChatShadowHost.',
  ' */',
  '',
  '// prettier-ignore',
  'export const chatCssBundle = ' + JSON.stringify(css),
  '',
].join('\n')

fs.writeFileSync(output,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/scripts/prism-entry.ts?start=4&glob=**/*.ts">
vite/scripts/prism-entry.ts

...that get bundled into a single ESM file.
 * This is separate from src/prism.ts (which re-exports from the bundle)
 * to avoid a circular dependency during generation.
 *
 * Only...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/bin.ts?start=1&glob=**/*.ts">
vite/src/bin.ts

#!/usr/bin/env node

// Thin bin entrypoint: re-exports the Holocron CLI so installing
// @holocron.so/vite also provides the `holocron`...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/build-navigation-data.ts?start=16&glob=**/*.ts">
vite/src/build-navigation-data.ts

...{ buildEnrichedNavigation, type EnrichedNavigationData } from './lib/enrich-navigation.ts'

export type HolocronNavigationData = EnrichedNavigationData

export async function buildNavigationData(...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/chat/chat-store.ts?start=7&glob=**/*.ts">
vite/src/chat/chat-store.ts

...} from 'zustand'
import type { ReactNode } from 'react'
import { flushSync } from 'react-dom'

export type DrawerState = 'closed' | 'open'

/** Opaque AI SDK ModelMessage JSON. Holocron keeps this...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/chat/chat-submit.ts?start=31&glob=**/*.ts">
vite/src/chat/chat-submit.ts

...* @param onScrollToLastUser - Optional callback to scroll UI after user message is added.
 */
export async function submitChat(
  text?: string,
  onScrollToLastUser?: () => void,
): Promise<void>...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/chat/chat-widget-store.ts?start=3&glob=**/*.ts">
vite/src/chat/chat-widget-store.ts

...by ChatWidget with the user-provided domain.
 */

import { createStore } from 'zustand'

export type ChatWidgetConfig = {
  /** Full API URL for chat requests (e.g. "https://docs.myapp.com/hol...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/chat/index.ts?start=5&glob=**/*.ts">
vite/src/chat/index.ts

...} from '@holocron.so/vite/chat'
 *
 *   <ChatWidget domain="docs.myapp.com" />
 */

export { ChatWidget } from './chat-widget.tsx'
export type { ChatWidgetProps } from './chat-widget.tsx'...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/chat/use-chat-widget.ts?start=5&glob=**/*.ts">
vite/src/chat/use-chat-widget.ts

...{ chatStore } from './chat-store.ts'
import { chatWidgetStore } from './chat-widget-store.ts'

export function useChatWidget() {
  const isOpen = useSyncExternalStore(chatStore.subscribe, () =>...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/components/markdown/prism-languages.test.ts?start=4&glob=**/*.ts">
vite/src/components/markdown/prism-languages.test.ts

...languages (popular/trendy ones only)
 * to keep the bundle small. The `prismLanguageIds` export still contains ALL
 * prism component IDs from components.json, so we check that every...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/config.ts?start=40&glob=**/*.ts">
vite/src/config.ts

...a string (image path or icon name) or a structured
 *  `{ name, library?, style? }` object. */
export type ConfigIcon = z.output<typeof iconSchema>

/** An anchor — persistent link rendered as a...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/hooks/use-active-toc.ts?start=32&glob=**/*.ts">
vite/src/hooks/use-active-toc.ts

...change).
 *
 * Skips modifier-key clicks (Cmd/Ctrl/Shift/Alt) which open in new tabs.
 */
export function notifyHeadingClick(e?: React.MouseEvent) {
  if (e && (e.metaKey || e.ctrlKey ||...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/index.ts?start=2&glob=**/*.ts">
vite/src/index.ts

...for building documentation websites
 * from MDX files with a mintlify-compatible config.
 */

export { holocron, type HolocronPluginOptions, type HolocronVirtualModules } from './vite-plugin.ts'

/...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/changelog/github-releases.ts?start=15&glob=**/*.ts">
vite/src/lib/changelog/github-releases.ts

...logger } from '../logger.ts'

/** The subset of GitHub release fields Holocron renders. */
export type GitHubRelease = {
  tagName: string
  name: string | null
  body: string | null
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/changelog/parse-source.ts?start=6&glob=**/*.ts">
vite/src/lib/changelog/parse-source.ts

... isolated makes it unit-testable
 * and keeps the provider focused on fetching + rendering.
 */

export type ChangelogSource = {
  platform: 'github'
  owner: string
  repo: string
  /** Canonical...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/changelog/provider.ts?start=32&glob=**/*.ts">
vite/src/lib/changelog/provider.ts

...slug + ext)
        if (fs.existsSync(abs)) return abs
      }
    }
  }
  return undefined
}

export const changelogProvider: VirtualTabProvider = {
  name: 'changelog',
  claims: (tab) =>...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/code-meta.ts?start=9&glob=**/*.ts">
vite/src/lib/code-meta.ts

...*
 * Use `metaBool()` at the consumer level to interpret string values as booleans.
 */

export type ParsedCodeMeta = {
  title?: string
  attributes: Record<string, string>
}

/**
 *...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/collect-icons.ts?start=10&glob=**/*.ts">
vite/src/lib/collect-icons.ts

...NavGroup } from '../navigation.ts'
import { isNavGroup, isNavPage } from '../navigation.ts'

export type IconLibrary = HolocronConfig['icons']['library']
export type IconRef = string

export...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/config-actions.ts?start=3&glob=**/*.ts">
vite/src/lib/config-actions.ts

...client should store in a cookie. Reuses the existing DO
 *  if a cookie is already present. */
export async function saveConfigOverride(
  override: ConfigOverride,
  existingDoId?: string,
):...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/config-override.ts?start=14&glob=**/*.ts">
vite/src/lib/config-override.ts

... } from 'dialkit'

/* ── Overridable subset ──────────────────────────────────────────────── */

export type ConfigOverride = {
  colors?: Partial<HolocronConfig['colors']>
  appearance?:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/css-vars.ts?start=23&glob=**/*.ts">
vite/src/lib/css-vars.ts

...tailwind-merge'

/** Merge class names with Tailwind conflict resolution (shadcn convention). */
export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}

export interface...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/empty-mermaid.ts?start=3&glob=**/*.ts">
vite/src/lib/empty-mermaid.ts

...so SSR can resolve `#mermaid` here instead of
 * bundling the multi-megabyte renderer.
 */

export default {
  initialize() {},
  async render() {
    return { svg: '' }
  },
}

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/enrich-navigation.ts?start=27&glob=**/*.ts">
vite/src/lib/enrich-navigation.ts

...'./logger.ts'

const SUPPORTED_ICON_LIBRARIES = new Set(['lucide', 'fontawesome', 'tabler'])

export type EnrichedNavigationData = {
  navigation: Navigation
  switchers: { versions:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/frontmatter.ts?start=81&glob=**/*.ts">
vite/src/lib/frontmatter.ts

...rmalized.push(`${prefix}${quote}${combined}`)
    i = end
  }

  return normalized.join('\n')
}

export function parseFrontmatterObject(content: string): Record<string, unknown> {
  const source =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/git-sha.ts?start=4&glob=**/*.ts">
vite/src/lib/git-sha.ts

...the file hasn't changed
 * and we skip re-parsing.
 */

import crypto from 'node:crypto'

export function gitBlobSha(content: string): string {
  const buf = Buffer.from(content, 'utf-8')
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/github-stars.ts?start=13&glob=**/*.ts">
vite/src/lib/github-stars.ts

...= 60 * 60

// ── URL parsing ──────────────────────────────────────────────────────────

export function parseGitHubRepo(url: string): { owner: string; repo: string } | null {
  if (!url)...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/holocron-url.ts?start=17&glob=**/*.ts">
vite/src/lib/holocron-url.ts

...a.env?.VITE_HOLOCRON_URL
    ?? import.meta.env?.HOLOCRON_URL
    ?? processEnv?.HOLOCRON_URL
}

export function getHolocronBaseUrl(): string {
  return normalizeBaseUrl(readHolocronUrlOverride())
}

...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/image-processor.ts?start=14&glob=**/*.ts">
vite/src/lib/image-processor.ts

...package-version.ts'

const PLACEHOLDER_WIDTH = 16
const CACHE_FILENAME = 'holocron-images.json'

export type ImageMeta = {
  width: number
  height: number
  /** data:image/webp;base64,... — compact...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/jsonc.ts?start=2&glob=**/*.ts">
vite/src/lib/jsonc.ts

...commas before ] or }
const stringOrTrailingCommaRe = /("(?:\\?[^])*?")|(,\s*)(?=]|})/g

export function parseJsonc(text: string): unknown {
  text = String(text)
  try {
    return...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/jsx-utils.ts?start=5&glob=**/*.ts">
vite/src/lib/jsx-utils.ts

... = Extract<NativeProgramBody, { type: 'ExpressionStatement' }>['expression'] & { raw?: string }

export type JsxAttribute = NativeJsxAttribute
export type JsxElementNode = NativeJsxElementNode

type...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/link-utils.ts?start=4&glob=**/*.ts">
vite/src/lib/link-utils.ts

... dependency.
 */

/** Check if a URL uses an external or special protocol (case-insensitive). */
export function isExternalUrl(url: string): boolean {
  return /^(?:https?:|mailto:|tel:|javascript:)/i...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/logger.ts?start=18&glob=**/*.ts">
vite/src/lib/logger.ts

...close: string) {
  return (value: string) => enabled ? `${open}${value}${close}` : value
}

export const colors = {
  cyan: formatter('\x1b[36m', '\x1b[39m'),
  dim: formatter('\x1b[2m',...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/mcp/provider.ts?start=211&glob=**/*.ts">
vite/src/lib/mcp/provider.ts

...   .trim()
}

/* ── Provider ─────────────────────────────────────────────────────────── */

export const mcpProvider: VirtualTabProvider = {
  name: 'mcp',
  claims: (tab) => !!tab.mcp,

  async...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/mdx-component-names.ts?start=12&glob=**/*.ts">
vite/src/lib/mdx-component-names.ts

...etc.) are registered
 * separately in the runtime map and don't need entries here.
 */
export const SAFE_MDX_COMPONENT_NAMES = [
  'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'Heading', 'a',...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/mdx-processor.ts?start=24&glob=**/*.ts">
vite/src/lib/mdx-processor.ts

...local='Foo' source='./bar'.
 *  For `import { X } from './bar'`, local='X' source='./bar'. */
export type ImportBinding = {
  local: string
  source: string
}

/** An internal link found in MDX...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/mdx-sections.ts?start=6&glob=**/*.ts">
vite/src/lib/mdx-sections.ts

...} from 'mdast'

type FlowJsxNode = Extract<RootContent, { type: 'mdxJsxFlowElement' }>

export type MdastSection = {
  contentNodes: RootContent[]
  asideNodes: RootContent[]
  /** How many...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/mermaid-browser.ts?start=1&glob=**/*.ts">
vite/src/lib/mermaid-browser.ts

/** Browser Mermaid import target for the `#mermaid` package import. */

export { default } from 'mermaid'

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/nav-store.ts?start=3&glob=**/*.ts">
vite/src/lib/nav-store.ts

...so the chat widget can be extracted independently.
 */

import { createStore } from 'zustand'

export type NavState = {
  navDrawerOpen: boolean
}

export const navStore = createStore<NavState>(()...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/normalize-config.ts?start=110&glob=**/*.ts">
vite/src/lib/normalize-config.ts

...'GitHub',
  discord: 'Discord',
  slack: 'Slack',
  button: 'Button',
  link: 'Link',
}

export function normalize(raw: Record<string, unknown>): HolocronConfig {
  const icons =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/normalize-mdx.ts?start=1&glob=**/*.ts">
vite/src/lib/normalize-mdx.ts

...} from './logger.ts'
import { stripMdExtFromPath, isExternalUrl } from './link-utils.ts'

export type NormalizedMdx = {
  /** Serialized MDX string after all remark transforms */
  content:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/og-utils.ts?start=3&glob=**/*.ts">
vite/src/lib/og-utils.ts

... renders OG images server-side via takumi.
 */

import { holocronUrl } from './holocron-url.ts'

export type OgImageUrlOptions = {
  title: string
  description?: string | null
  iconUrl?: string
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/openapi/curl-generator.ts?start=13&glob=**/*.ts">
vite/src/lib/openapi/curl-generator.ts

...return '0'
    if (s.type === 'boolean') return 'true'
  }
  return `<${param.name}>`
}

export function generateCurl(op: ExtractedOperation, baseUrl?: string): string {
  const base =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/openapi/endpoint-ref.ts?start=5&glob=**/*.ts">
vite/src/lib/openapi/endpoint-ref.ts

... slug and returned as `null`.
 */

import { HTTP_METHODS, type HttpMethod } from './process.ts'

export interface EndpointRef {
  /** Optional spec file the endpoint belongs to (multi-spec form). */
...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/openapi/process.ts?start=18&glob=**/*.ts">
vite/src/lib/openapi/process.ts

...upgrade+dereference
 *  the document is always 3.x but we keep both for type flexibility. */
export type OpenAPIDocument = OpenAPIV3.Document | OpenAPIV3_1.Document

/** Fully dereferenced...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/openapi/provider.ts?start=26&glob=**/*.ts">
vite/src/lib/openapi/provider.ts

...returned. */
const REST_PLACEHOLDER: ConfigNavGroup = Object.freeze({ group: '', pages: [] })

export const openapiProvider: VirtualTabProvider = {
  name: 'openapi',
  claims: (tab) =>...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/package-version.ts?start=2&glob=**/*.ts">
vite/src/lib/package-version.ts

...across releases.
 */

import packageJson from '../../package.json' with { type: 'json' }

export const PACKAGE_VERSION = packageJson.version

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/page-frontmatter.ts?start=21&glob=**/*.ts">
vite/src/lib/page-frontmatter.ts

... 'twitter:site',
  'twitter:image:width',
  'twitter:image:height',
] as const

export type PageSeoMetaKey = (typeof pageSeoMetaKeys)[number]

export const pageFrontmatterSchema =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/raw-markdown.ts?start=37&glob=**/*.ts">
vite/src/lib/raw-markdown.ts

...Check if the request comes from an AI agent or explicitly asks for markdown. */
export function isAgentRequest(request: Request): boolean {
  // Accept header contains text/markdown...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/redirects.ts?start=16&glob=**/*.ts">
vite/src/lib/redirects.ts

...irects'][number]

/** Substitute `:name` and `:splat` placeholders in a destination template. */
export function interpolateDestination(template: string, params: Record<string, string>): string {
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-code-group.ts?start=8&glob=**/*.ts">
vite/src/lib/remark-code-group.ts

...JSX, so normalize the
 * authoring syntax here before safe-mdx tries to render the page.
 */
export function remarkCodeGroup() {
  return (tree) => {
    visit(tree, 'mdxJsxFlowElement', (node,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-details-toggle.test.ts?start=65&glob=**/*.ts">
vite/src/lib/remark-details-toggle.test.ts

...website url every 2 seconds with a HEAD request, when the \`etag\` header changes it will re-export the components.
</details>
`, remarkDetailsToggle)

    expect(result.markdown).toMatchInlineSna...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-details-toggle.ts?start=15&glob=**/*.ts">
vite/src/lib/remark-details-toggle.ts

...}
      }
      return node
    })

    return [{ ...child, children: cleaned }]
  })
}

export function remarkDetailsToggle() {
  return (tree: Root) => {
    visit(tree, 'mdxJsxFlowElement',...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-github-callouts.ts?start=67&glob=**/*.ts">
vite/src/lib/remark-github-callouts.ts

...[{ type: 'mdxJsxAttribute', name: 'title', value: callout.title }],
    children,
  }
}

export function remarkGithubCallouts() {
  return (tree: Root) => {
    visit(tree, 'blockquote',...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-headings.ts?start=13&glob=**/*.ts">
vite/src/lib/remark-headings.ts

...* Keeps Mintlify's {#custom-id} syntax and injects missing ids on native JSX headings.
 */
export function remarkHeadings(this: { data(): Record<string, unknown> }) {
  const data =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-inline-imports.test.ts?start=270&glob=**/*.ts">
vite/src/lib/remark-inline-imports.test.ts

...     ![img](./local.png)
      "
    `)
  })

  test('rewrites import sources precisely, not export constants with same string', () => {
    const imports = new Map<string, InlineImportEntry>([
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-inline-imports.ts?start=2&glob=**/*.ts">
vite/src/lib/remark-inline-imports.ts

...are removed from the original source). The import
 * The virtual module for the .md/.mdx file exports a no-op component
 * that is never rendered since all `<X />` usages have been replaced.
 *
 *...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-mermaid.ts?start=7&glob=**/*.ts">
vite/src/lib/remark-mermaid.ts

... runtime can
 * render SVG diagrams instead of treating them like ordinary highlighted code.
 */
export function remarkMermaidCode() {
  return (tree) => {
    visit(tree, 'code', (node, index,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-sidebar-components.ts?start=9&glob=**/*.ts">
vite/src/lib/remark-sidebar-components.ts

...wrappers so the
 * section splitter only needs to reason about one sidebar primitive.
 */
export function remarkSidebarComponents() {
  return (tree: Root) => {
    visit(tree, 'mdxJsxFlowEleme...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-single-accordion.ts?start=7&glob=**/*.ts">
vite/src/lib/remark-single-accordion.ts

...front so both single and grouped author
 * syntax go through the same component structure.
 */
export function remarkSingleAccordionItems() {
  return (tree) => {
    visit(tree, 'mdxJsxFlowElement'...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/remark-test-utils.ts?start=7&glob=**/*.ts">
vite/src/lib/remark-test-utils.ts

...type { Root } from 'mdast'
import remarkMdx from 'remark-mdx'
import { remark } from 'remark'

export function runRemarkPlugin(
  content: string,
  plugin: () => (tree: Root) => void,
) {
  const...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/resolve-icons.ts?start=6&glob=**/*.ts">
vite/src/lib/resolve-icons.ts

...} from './collect-icons.ts'
import { formatHolocronWarning, logger } from './logger.ts'

export type IconAtlasEntry = {
  /** Inner SVG body (path/g/circle elements), NOT wrapped in <svg>....
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/sample.ts?start=142&glob=**/*.ts">
vite/src/lib/sample.ts

...Schema / OpenAPI schema object.
 * Expects a fully dereferenced schema (no $ref pointers).
 */
export function sample(schema: Record<string, unknown>): unknown {
  return traverse(schema)
}

</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/search.ts?start=8&glob=**/*.ts">
vite/src/lib/search.ts

...────────────────────── */

/** Flat searchable item derived from NavGroup/NavPage/NavHeading. */
export type SearchEntry = {
  label: string
  href: string
  searchText: string
  /** Path-based group...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/sidebar-widths.test.ts?start=99&glob=**/*.ts">
vite/src/lib/sidebar-widths.test.ts

... </div>
</Aside>
`
    expect(computeFromMdx(mdx)).toMatchInlineSnapshot(`460`)
  })

  test('exports a static widths map for the sidebar components', () => {
    expect(COMPONENT_SIDEBAR_WIDTHS).t...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/sidebar-widths.ts?start=38&glob=**/*.ts">
vite/src/lib/sidebar-widths.ts

...1200,
} as const

/** Default right-sidebar width (px). Matches `--grid-nav-width`. */
export const DEFAULT_SIDEBAR_WIDTH: number = GRID_TOKENS['--grid-sidebar-width']

/** Minimum...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/sync.test.ts?start=27&glob=**/*.ts">
vite/src/lib/sync.test.ts

...{ recursive: true })
    fs.writeFileSync(path.join(snippetsDir, 'greeting.tsx'), 'export const Greeting = () => <div>hi</div>')
    fs.writeFileSync(path.join(snippetsDir,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/sync.ts?start=96&glob=**/*.ts">
vite/src/lib/sync.ts

...   title,
    gitSha: `redirect:${slug}`,
    headings: [],
    frontmatter: { title },
  }
}

export type SyncResult = {
  navigation: Navigation
  /** Version/dropdown metadata with enriched...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/test-mdx-util.ts?start=5&glob=**/*.ts">
vite/src/lib/test-mdx-util.ts

...type { Root } from 'mdast'
import type { MdastSection } from './mdx-sections.ts'

export function formatSectionsToMdx(sections: MdastSection[]): string {
  let out = ''
  for (const...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/toc-tree.ts?start=2&glob=**/*.ts">
vite/src/lib/toc-tree.ts

...} from 'mdast'

/* ── TOC tree types ──────────────────────────────────────────────────── */

export type TocNodeType = 'page' | `h${1 | 2 | 3 | 4 | 5 | 6}`

/** Recursive tree node — the...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/virtual-page-mdx.ts?start=11&glob=**/*.ts">
vite/src/lib/virtual-page-mdx.ts

...import paths) and
 *  sync.ts (to resolve inline imports from that virtual directory). */
export function virtualPageDir(pagesDir: string, slug: string): string {
  return path.join(pagesDir,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/lib/virtual-tab-provider.ts?start=32&glob=**/*.ts">
vite/src/lib/virtual-tab-provider.ts

... ConfigNavTab } from '../config.ts'
import { formatHolocronWarning, logger } from './logger.ts'

export type VirtualTabResult = {
  groups: ConfigNavGroup[]
  /** slug → virtual MDX string */
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/navigation.ts?start=24&glob=**/*.ts">
vite/src/navigation.ts

...variant (string path → `<img>` or
 *  library icon; object → library/style aware lookup). */
export type NavIcon = ConfigIcon

/** An enriched tab — reuses the schema-derived base (tab/icon/hidden...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/prism-noop.ts?start=7&glob=**/*.ts">
vite/src/prism-noop.ts

...Dynamic Workers (see MEMORY.md
 * "Code splitting breaks prismjs in Dynamic Workers").
 */

export const Prism = {
  languages: {} as Record<string, any>,
  highlight(text: string, _grammar:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/prism.ts?start=1&glob=**/*.ts">
vite/src/prism.ts

/**
 * Prism language registry entrypoint for Holocron client code.
 *
 * Re-exports from the pre-bundled ESM file at `generated/prism-bundle.js`.
 * That file contains prismjs...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/router.ts?start=11&glob=**/*.ts">
vite/src/router.ts

...} from 'spiceflow/react'
import type { HolocronLoaderData } from './app-factory.tsx'

export { router }

export const href = router.href

/** Typed per-request loader data. Throws if...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/schema.ts?start=54&glob=**/*.ts">
vite/src/schema.ts

... 'tabler'])
    .optional()
    .describe('The icon library to resolve the icon name from'),
})

export const iconSchema = z
  .union([lucideIconNameSchema, fontawesomeIconNameSchema, z.string(),...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/serve-static.ts?start=1&glob=**/*.ts">
vite/src/serve-static.ts

// Re-export Spiceflow's static middleware through Holocron so Spiceflow's
// virtual production entry can...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/site-data.ts?start=15&glob=**/*.ts">
vite/src/site-data.ts

...{ hasVisibleSidebarEntries, isNavPage, isNavGroup, isVisibleNavPage } from './navigation.ts'

export type HolocronSiteData = {
  config: HolocronConfig
  navigation: Navigation
  switchers: {
   ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/virtual.d.ts?start=1&glob=**/*.ts">
vite/src/virtual.d.ts

...module 'virtual:holocron-config' {
  import type { HolocronConfig } from './config.ts'
  export const base: string
  export function getConfig(): Promise<HolocronConfig>
}

declare module...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/src/vite-plugin.ts?start=4&glob=**/*.ts">
vite/src/vite-plugin.ts

... the user already installed them.
 *
 *   import { holocron } from '@holocron.so/vite/vite'
 *   export default defineConfig({ plugins: [holocron()] })
 */

import { createHash } from 'node:crypto'
im...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/test-mcp-types.ts?start=1&glob=**/*.ts">
vite/test-mcp-types.ts

import type { Tool, Resource, Prompt } from '@modelcontextprotocol/sdk'

export function example() {
  const tool: Tool = {
    name: "test_tool",
    inputSchema: { type:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/vite/vitest.config.ts?start=1&glob=**/*.ts">
vite/vitest.config.ts

import { defineConfig } from 'vitest/config'
import path from 'node:path'

export default defineConfig({
  test: {
    include: ['src/**/*.test.ts'],
    exclude: ['dist/**'],
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/scripts/cf-loader.ts?start=1&glob=**/*.ts">
website/scripts/cf-loader.ts

...are never called, only
// route metadata (schemas, paths) is read by the openapi plugin.

export function resolve(
  specifier: string,
  context: { parentURL?: string },
  next: Function,
)...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/ai-logo.ts?start=93&glob=**/*.ts">
website/src/ai-logo.ts

... cropH }
}

// Cache the template blob across requests
let cachedTemplateBlob: Blob | undefined

export const aiLogoApp = new Spiceflow().get(
  '/api/ai-logo/:text',
  async ({ params, request }: {...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/api-auth.test.ts?start=39&glob=**/*.ts">
website/src/api-auth.test.ts

...so error assertions check
// `instanceof Error` + `.status`. The class itself is not re-exported from
// `spiceflow/client`, hence the structural check instead of an `instanceof`
// against...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/api.ts?start=75&glob=**/*.ts">
website/src/api.ts

...{ db, key }
}



// ── App ─────────────────────────────────────────────────────────────────

export const apiApp = new Spiceflow()
  .use(gatewayApp)
  .use(deployApp)
  .use(
    openapi({
     ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/auth-redirect.ts?start=2&glob=**/*.ts">
website/src/auth-redirect.ts

...URLs, never internal RSC transport URLs.

const redirectBase = 'https://holocron.local'

export function normalizeAuthRedirectPath(value: string | undefined): string {
  if (!value ||...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/chat-bash-tool.ts?start=8&glob=**/*.ts">
website/src/chat-bash-tool.ts

... */

import { tool } from 'ai'
import { Bash } from 'just-bash/browser'
import { z } from 'zod'

export type ChatBashToolOptions = {
  files: Record<string, string>
  skillUrls?: string[]
}

type...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/config-override-api.ts?start=28&glob=**/*.ts">
website/src/config-override-api.ts

...= z.object({
  override: configOverrideSchema,
  doId: z.string().optional(),
})

export const configOverrideApp = new Spiceflow()
  // CORS preflight for cross-origin POST from docs...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/config-override-do.ts?start=19&glob=**/*.ts">
website/src/config-override-do.ts

...Uint8Array(hashBuffer)]
    .map((b) => b.toString(16).padStart(2, '0'))
    .join('')
}

export class ConfigOverrideDO extends DurableObject<Env> {
  constructor(ctx: DurableObjectState, env:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/dashboard-actions.ts?start=35&glob=**/*.ts">
website/src/dashboard-actions.ts

...project.orgId }
}

// ── Create API Key ──────────────────────────────────────────────────

export async function createApiKeyAction({ name, projectId }: {
  name: string
  projectId: string
}):...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/db.ts?start=27&glob=**/*.ts">
website/src/db.ts

...unknown>[]) {
  return results.map((row) => Object.keys(row).map((k) => row[k]))
}

export function getDb() {
  return drizzle(
    async (sql, params, method) => {
      const stmt =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/deploy-api.ts?start=32&glob=**/*.ts">
website/src/deploy-api.ts

...*  e.g. basePath="/docs/" + project="my-docs-remorses" → "docs-base-my-docs-remorses" */
export function buildBasePathSubdomain(basePath: string, projectSubdomain: string): string {
  //...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/deploy-auth.ts?start=9&glob=**/*.ts">
website/src/deploy-auth.ts

... schema from 'db/schema'
import { ensureOrg, getDb, getSession, validateApiKey } from './db.ts'

export const GITHUB_OIDC_HEADER = 'x-holocron-github-oidc-token'

const GITHUB_OIDC_JWKS =...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/gateway.ts?start=35&glob=**/*.ts">
website/src/gateway.ts

...{ enable_thinking: false },
} satisfies NonNullable<Parameters<WorkersAI['chat']>[1]>

export type HolocronChatNoticeChunk = {
  type: 'notice'
  code: string
  title: string
  message:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/globals.d.ts?start=3&glob=**/*.ts">
website/src/globals.d.ts

...path="../worker-configuration.d.ts" />

declare module '*.css' {
  const content: string
  export default content
}

declare module 'jpeg-js' {
  interface DecodedJPEG {
    width: number
   ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/billing-rules.ts?start=3&glob=**/*.ts">
website/src/lib/billing-rules.ts

...the policy in one place avoids
// scattering "is this allowed?" checks across the codebase.

export const PRO_PRICE_LOOKUP_KEYS = {
  monthly: 'pro_monthly',
  yearly: 'pro_yearly',
} as...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/credits.ts?start=8&glob=**/*.ts">
website/src/lib/credits.ts

...exchange-rate knob.

/** Real USD spend one credit represents. The only exchange-rate knob. */
export const USD_PER_CREDIT = 0.001

/** Free projects: 5,000 credits = $5/month. */
export const...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/memoize.ts?start=18&glob=**/*.ts">
website/src/lib/memoize.ts

... CACHE_BASE = 'https://0.0.0.0/'

interface CacheEnvelope<T> {
  value: T
  createdAt: number
}

export interface MemoizeOptions<Args extends unknown[], T> {
  namespace: string
  fn: (...args: Args)...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/stripe-webhook.ts?start=9&glob=**/*.ts">
website/src/lib/stripe-webhook.ts

...} from '@strada.sh/sdk'
import { getStripe, handleSubscriptionChange } from './stripe.ts'

export class WebhookSignatureError extends errore.createTaggedError({
  name: 'WebhookSignatureError',
...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/stripe.ts?start=20&glob=**/*.ts">
website/src/lib/stripe.ts

...'./billing-rules.ts'

// ── Tagged errors ───────────────────────────────────────────────────

export class StripeApiError extends errore.createTaggedError({
  name: 'StripeApiError',
  message:...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/lib/utils.ts?start=1&glob=**/*.ts">
website/src/lib/utils.ts

... classes.
import { clsx, type ClassValue } from 'clsx'
import { twMerge } from 'tailwind-merge'

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}

/** Format an epoch-ms...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/strada-client.ts?start=2&glob=**/*.ts">
website/src/strada-client.ts

...so initStrada()
// runs once when the module loads in the browser.
//
// The `browser` export condition resolves `@strada.sh/sdk` to the browser
// entry, which sets up WebTracerProvider,...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/strada-ssr.ts?start=2&glob=**/*.ts">
website/src/strada-ssr.ts

...runs
// at module evaluation time, before Spiceflow creates any spans.
//
// The `workerd` export condition resolves `@strada.sh/sdk` to the Cloudflare
// Workers entry, which uses...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/test/seed.ts?start=11&glob=**/*.ts">
website/src/test/seed.ts

... schema from 'db/schema'
import { ulid } from 'ulid'

const YEAR_MS = 1000 * 60 * 60 * 24 * 365

export interface SeededUser {
  userId: string
  /** Send as `Authorization: Bearer <sessionToken>` to...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/src/usage-counter-do.ts?start=5&glob=**/*.ts">
website/src/usage-counter-do.ts

... capped independently of its paid siblings.

import { DurableObject } from 'cloudflare:workers'

export const NOTICE_USAGE_LIMIT_REACHED = {
  type: 'notice',
  code: 'HOLOCRON_USAGE_LIMIT_REACHED',
...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/vite.config.ts?start=1&glob=**/*.ts">
website/vite.config.ts

...} from 'rollup-plugin-visualizer'

const analyzeBundle = process.env.ANALYZE_BUNDLE === '1'

export default defineConfig({
  server: { port: 7664, strictPort: true },
  clearScreen: false,
 ...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/vitest.config.ts?start=23&glob=**/*.ts">
website/vitest.config.ts

...{ stradaVitePlugin } from '@strada.sh/sdk/vite'
import { defineConfig } from 'vite'

export default defineConfig(async () => {
  // D1 migrations live in the shared db package (flat .sql...
</result>

<result contentUrl="/repos/remorses/fumabase/main/files/website/worker-configuration.d.ts?start=268&glob=**/*.ts">
website/worker-configuration.d.ts

...value?: any);
        value: any;
        valueOf(): any;
    }
    type ImportValue = ExportValue | number;
    type ModuleImports = Record<string, ImportValue>;
    type Imports =...
</result>
</results>