The site generator's authority

This site is built by site/build.osk, an Oska program. Just before each build, oskac check site/build.osk prints the program's authority report, and the build publishes it here as it was printed. There is one line per function: the capabilities it can reach, each with the parameter it comes through, or pure if it can reach none. main is granted FsRead and FsWrite, which can only be narrowed, so only the functions it passes a directory or file capability to can touch the filesystem. Each indented line under a function is an attenuation: a place where it narrows a capability, with the kind it narrows from and to and its root, or computed at runtime when the root is not a literal. main's attenuations are the generator's real reach: the files and directories it reads, and the directory it writes.

fn main: FsRead (read), FsWrite (write)
  FsRead -> DirRead: restrict_to "docs" (bytes 2669..2693)
  FsRead -> FileRead: restrict_to_file "README.md" (bytes 2711..2745)
  FsRead -> FileRead: restrict_to_file "GLOSSARY.md" (bytes 2765..2801)
  FsRead -> FileRead: restrict_to_file "site/style.css" (bytes 2818..2857)
  FsRead -> FileRead: restrict_to_file "Cargo.toml" (bytes 2877..2912)
  FsRead -> FileRead: restrict_to_file "site/search.js" (bytes 2930..2969)
  FsRead -> DirRead: restrict_to "site/agent-setup" (bytes 2986..3022)
  FsRead -> FileRead: restrict_to_file "site/authority.txt" (bytes 3043..3086)
  FsWrite -> DirWrite: restrict_to "." (bytes 3255..3277)
  DirWrite -> DirWrite: restrict_to "_site" (bytes 3337..3372)
fn build: DirRead, FileRead (sources), DirWrite (site)
fn cname: pure
fn has_doc: pure
fn gather: DirRead, FileRead (sources)
fn version_of: pure
fn unpublished: pure
fn new_doc: pure
fn html_name: pure
fn title_of: pure
fn section_title: pure
fn nav_label: pure
fn publish: DirWrite (site)
fn md_path: pure
fn md_url: pure
fn doc_page: pure
fn section_page: pure
fn url_of: pure
fn origin: pure
fn repository: pure
fn robots: pure
fn sitemap: pure
fn canonical: pure
fn latest_json: pure
fn llms_txt: pure
fn llms_group: pure
fn llms_full: pure
fn search_json: pure
fn json_string: pure
fn search_limit: pure
fn headings_of: pure
fn search_text: pure
fn prose: pure
fn summary_of: pure
fn shorten: pure
fn collapse: pure
fn plain_text: pure
fn csp: pure
fn fonts: pure
fn font_stylesheet: pure
fn layout: pure
fn about: pure
fn banner: pure
fn structured_data: pure
fn navigation: pure
fn nav_item: pure
fn markdown: pure
fn blocks: pure
fn starts_block: pure
fn is_fence: pure
fn fenced_code: pure
fn heading_level: pure
fn heading: pure
fn heading_tag: pure
fn slug: pure
fn block_quote: pure
fn table_starts: pure
fn table: pure
fn row: pure
fn cells: pure
fn list_marker: pure
fn list: pure
fn list_item: pure
fn paragraph: pure
fn retarget: pure
fn fence_flags: pure
fn retarget_line: pure
fn retarget_destination: pure
fn inline: pure
fn spans: pure
fn opens_emphasis: pure
fn find_closer: pure
fn run_length: pure
fn find_run: pure
fn matching: pure
fn destination: pure
fn link_to: pure
fn anchor_to: pure
fn picture: pure
fn safe_href: pure
fn url_characters: pure
fn has_scheme: pure
fn resolve: pure
fn published_url: pure
fn parent_of: pure
fn last_segment: pure
fn sub: pure
fn indent: pure
fn dedent: pure
fn min: pure
fn trim_one_space: pure
fn is_alphanumeric: pure
fn is_space: pure
fn is_punctuation: pure
fn text_of: pure
fn wrap: pure
fn empty: pure
fn markup: pure
fn has_catalog: pure
fn code_pages: pure
fn catalog: pure
fn doc_codes: pure
fn fence_tag: pure
fn is_code: pure
fn code_row: pure
fn with_examples: pure
fn code_page: pure
fn local_links: pure
fn chomp: pure
fn codes_index: pure
fn summary: pure
fn codes_json: pure
fn code_json: pure
fn json_or_null: pure
fn catalog_json_string: pure
fn asset_text: pure
fn has_asset: pure
fn has_setup: pure
fn carries_prompt: pure
fn first_section: pure
fn prompt_doc_page: pure
fn setup_block: pure
fn setup_listing: pure
fn setup_page: pure
fn authority_page: pure
fn setup_group: pure
fn publish_setup: DirWrite (site)