configuration/strings/page.strings.ts

configuration/strings/page.strings.ts is a file in Bane's Lab Site. 142 lines of code and 56 definitions.

import {
    CATALOG_MARKDOWN_ROUTE,
    CATALOG_ROUTE,
    CREATIVE_COMMONS,
    FULL_TEXT_ROUTE,
    LLMS_ROUTE,
    pagePath,
} from "#core/assets/link.assets";
import { CLOSING_MODEL_ICON, LICENSE_ICON } from "#configuration/icons/page.icons";
import {
    COMPANY_ADDRESS,
    COMPANY_COUNTRY,
    COMPANY_NAME,
    COMPANY_NUMBER,
    COMPANY_OWNER,
} from "#configuration/strings/company.strings";
import type { Closing, License } from "#types/site.types";
import { LICENSE_BY, LICENSE_CC, LICENSE_SA } from "#core/assets/image.assets";
import { HOME_THESIS } from "#configuration/strings/home.strings";
import { LICENSE_PAGE } from "#core/ids/page.ids";
import { MAIL_ICON } from "#configuration/icons/element.icons";
import type { PageShare } from "#types/card.types";

export const SITE_NAME = "Bane's Lab";

export const METHODOLOGY_AUTHOR = "Jay Baleine";

export const TITLE_SEPARATOR = " — ";

export const HOME_TITLE = "Home";

export const HOME_DESCRIPTION =
    "Bane's Lab documents a method for building software with LLMs, together with the instruction format (Pattern Abstract Grammar), the software architecture and the ontology the method relies on.";

export const GRAMMAR_TITLE = "PAG";

export const GRAMMAR_DESCRIPTION =
    "Pattern Abstract Grammar (PAG) is a structured format for writing instructions to LLMs, defined by a formal grammar that is grounded in a reasoning ontology and published with a guide and a set of templates.";

export const METHODOLOGY_TITLE = "Methodology";

export const METHODOLOGY_DESCRIPTION =
    "Disciplined Methodology is a method for building software with LLMs: one loop at every size, rules held by checks rather than attention, state derived rather than written, and evidence in place of claims.";

export const ARCHITECTURE_TITLE = "Architecture";

export const ARCHITECTURE_DESCRIPTION =
    "The architecture page covers software architecture for code that an LLM writes. It models a system as a graph, types and relates its principles, traces each anti-pattern as a path of decay, derives coverage from a grid, and states every architectural intent as a condition a check can decide.";

export const ONTOLOGY_TITLE = "Ontology";

export const ONTOLOGY_DESCRIPTION =
    "The ontology holds every architectural principle with its relations and repairs, the lexicon of terms, the algorithm contracts, the reasoning spine, the layers and the resolved tensions, and the page renders it from the same data the quality tooling reads.";

export const ANATOMY_TITLE = "Anatomy";

export const ANATOMY_DESCRIPTION =
    "The anatomy page publishes the source of this site as it is on disk, every workspace member parsed on every build. It shows every folder and file, its statistics, its syntax tree, its definitions and their calls, and the problems the parser found.";

export const DATA_CATALOG_NAME = "Bane's Lab Data Catalog";

export const DATA_CATALOG_DESCRIPTION =
    "The ontology and the source of this site as datasets, published as JSON and Markdown.";

export const FAQ_TITLE = "FAQ";

export const FAQ_DESCRIPTION =
    "I answer the questions I am asked most often about the methodology, including where it came from, how I practice it and where it stops being useful.";

export const ABOUT_TITLE = "About";

export const ABOUT_DESCRIPTION =
    "Jay Baleine designs and governs software systems from Ostend, Belgium, and documents the method behind that work on Bane's Lab.";

export const LICENSE_TITLE = "Licensing";

export const LICENSE_DESCRIPTION =
    "Pattern Abstract Grammar (PAG) is available under a dual-license model: a free non-commercial license and a commercial license for businesses.";

export const INFORMATION_TITLE = "Info";

export const INFORMATION_DESCRIPTION =
    "Security information for Bane's Lab: how the static site is delivered, which protections are in place, and what your visit does and does not exchange with the server.";

export const TERMS_TITLE = "Terms";

export const TERMS_DESCRIPTION =
    "Terms of Service for Bane's Lab, a static informational site that requires no account, collects no personal data and offers no paid services.";

export const PRIVACY_TITLE = "Privacy";

export const PRIVACY_DESCRIPTION =
    "Privacy Policy for Bane's Lab: the site collects, stores and processes no personal data; this policy describes what a normal visit exchanges with the server.";

export const SEARCH_TITLE = "Search";

export const SEARCH_DESCRIPTION =
    "Search every page of Bane's Lab at once. The results come back in the order the site teaches them, each shown the way its own page shows it.";

export const HOME_SHARE: PageShare = { headline: SITE_NAME, tagline: HOME_THESIS };

export const GRAMMAR_SHARE: PageShare = {
    headline: "Pattern Abstract Grammar",
    tagline: "Structured instructions for LLMs",
};

export const METHODOLOGY_SHARE: PageShare = {
    headline: "Disciplined Methodology",
    tagline: "Constraints, checks and skepticism for building software with LLMs",
};

export const ARCHITECTURE_SHARE: PageShare = {
    headline: "Software Architecture",
    tagline: "Principles, decay and coverage",
};

export const ONTOLOGY_SHARE: PageShare = { headline: "The Ontology", tagline: "Principles, lexicon and algorithms" };

export const ANATOMY_SHARE: PageShare = { headline: "The Anatomy", tagline: "Source trees, walks and definitions" };

export const FAQ_SHARE: PageShare = { headline: "Frequently Asked Questions", tagline: "Origin, practice and limits" };

export const ABOUT_SHARE: PageShare = { headline: METHODOLOGY_AUTHOR, tagline: "Work, background and contact" };

export const LICENSE_SHARE: PageShare = {
    headline: LICENSE_TITLE,
    tagline: "Free for non-commercial use, licensed for commercial use",
};

export const INFORMATION_SHARE: PageShare = {
    headline: "Security Information",
    tagline: "Infrastructure, application security and TLS",
};

export const TERMS_SHARE: PageShare = {
    headline: "Terms of Service",
    tagline: "Acceptable use, ownership and liability",
};

export const PRIVACY_SHARE: PageShare = {
    headline: "Privacy Policy",
    tagline: "Collection, server logs and your rights",
};

export const SEARCH_SHARE: PageShare = { headline: SEARCH_TITLE, tagline: "Pages, sections and code definitions" };

export const MISSING_PAGE_TITLE = "Page Not Found";

export const MISSING_PAGE_MESSAGE = "The requested page could not be loaded.";

export const MISSING_PAGE_LINK = "Back to the home page";

export const MODEL_CLOSING: Closing = {
    icon: CLOSING_MODEL_ICON,
    linked: true,
    note: "Each page is also published as Markdown and as JSON, and you can query them via the API routes.",
    terms: [CATALOG_ROUTE, CATALOG_MARKDOWN_ROUTE, LLMS_ROUTE, FULL_TEXT_ROUTE],
    title: "For LLMs",
};

export const USE_CLOSING: Closing = {
    icon: LICENSE_ICON,
    terms: [`Model training is permitted; credit ${COMPANY_OWNER} and cite this site.`],
    title: "Use and attribution",
};

export const CONTACT_CLOSING: Closing = {
    icon: MAIL_ICON,
    stacked: true,
    terms: [COMPANY_OWNER, COMPANY_ADDRESS, COMPANY_COUNTRY + COMPANY_NUMBER],
    title: "Contact",
};

export const CLOSING_SEPARATOR = " · ";

export const LINK_SEPARATOR = " - ";

const DOCUMENTATION_COVERED_BY = `${COMPANY_NAME} documentation is covered by `;

const LICENSE_NAME = "CC BY-SA 4.0";

export const CREATIVE_COMMONS_LICENSE: License = {
    badges: [
        { alt: "CC", source: LICENSE_CC },
        { alt: "BY", source: LICENSE_BY },
        { alt: "SA", source: LICENSE_SA },
    ],
    href: CREATIVE_COMMONS,
    lead: DOCUMENTATION_COVERED_BY,
    name: LICENSE_NAME,
};

export const GRAMMAR_LICENSE: License = {
    badges: [],
    href: pagePath(LICENSE_PAGE),
    lead: "Pattern Abstract Grammar and its documentation are covered by the ",
    name: "PAG dual license",
};