mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-10-01 20:33:50 +00:00
* docs: OpenThreat, one file a security tool serves about what it found in the open Twelve rules that degrade and two that do not: a subject is public or it is not in the file (no private repos, no customer servers, no paid users' scans), and a secret is never located while it is open (rule, severity, subject, status only; no location, message or excerpt). Four kinds: finding, attack, indicator, advisory. Status open, fixed, mitigated, blocked, withdrawn; a withdrawn threat stays a while so directories retract it. Announcing is on by default with a one-switch opt-out in the tool's own settings. Discovery at /.well-known/openthreat.json, rel="openthreat", or a handed URL; origin is the verification. Mapped against SARIF, STIX 2.1 and CSAF rather than replacing them. First reporter: threatcrush.com/discovery (its own PR). First directory: nichedb.dev/c/threats (its own PR). Registered in DOC_SLUGS, NAV, STATIC_ROUTES and llms.txt. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014cmNRtR2vL1p89dbVQ7FZJ * ci: trigger workflows --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
106 lines
4 KiB
TypeScript
106 lines
4 KiB
TypeScript
import type { ReactNode } from "react";
|
|
import { renderInstallCommand } from "@/lib/install-command";
|
|
|
|
// Mirrors the rail/nav from page-markup.ts so standalone routes (e.g. /blog)
|
|
// share the site chrome. Anchor links point at the homepage sections.
|
|
const NAV: Array<{ href: string; label: string; external?: boolean }> = [
|
|
{ href: "/#overview", label: "Overview" },
|
|
{ href: "/#schemas", label: "Schemas" },
|
|
{ href: "/agent-swarm", label: "Soon" },
|
|
{ href: "/agentbyte", label: "AgentByte" },
|
|
{ href: "/credential-sharing", label: "Credentials" },
|
|
{ href: "/openontology", label: "OpenOntology" },
|
|
{ href: "/opencreds", label: "OpenCreds" },
|
|
{ href: "/openswarm", label: "OpenSwarm" },
|
|
{ href: "/openprd", label: "OpenPRD" },
|
|
{ href: "/asdlc", label: "ASDLC" },
|
|
{ href: "/openprofile", label: "OpenProfile" },
|
|
{ href: "/openmcp", label: "OpenMCP" },
|
|
{ href: "/openaccess", label: "OpenAccess" },
|
|
{ href: "/openserver", label: "OpenServer" },
|
|
{ href: "/openthreat", label: "OpenThreat" },
|
|
{ href: "/opencpu", label: "OpenCPU" },
|
|
{ href: "/openmemory", label: "OpenMemory" },
|
|
{ href: "/opengpu", label: "OpenGPU" },
|
|
{ href: "/openbandwidth", label: "OpenBandwidth" },
|
|
{ href: "/openfile", label: "OpenFile" },
|
|
{ href: "/opendisk", label: "OpenDisk" },
|
|
{ href: "/opencoupon", label: "OpenCoupon" },
|
|
{ href: "/openrecipe", label: "OpenRecipe.md" },
|
|
{ href: "/openaffiliate", label: "OpenAffiliate" },
|
|
{ href: "/#cli", label: "CLI" },
|
|
{ href: "/docs", label: "Docs" },
|
|
{ href: "/blog", label: "Blog" },
|
|
{ href: "/openspec", label: "OpenSpec" },
|
|
{ href: "/pricing", label: "Pricing" },
|
|
{ href: "/hire-us", label: "Hire Us" },
|
|
{ href: "/about", label: "About" },
|
|
{ href: "https://github.com/profullstack/logicsrc", label: "GitHub ↗", external: true },
|
|
{ href: "/terms", label: "Terms" },
|
|
{ href: "/privacy", label: "Privacy" },
|
|
{ href: "/#reference", label: "Reference" },
|
|
];
|
|
|
|
export function SiteShell({
|
|
children,
|
|
active,
|
|
}: {
|
|
children: ReactNode;
|
|
active?: string;
|
|
}): ReactNode {
|
|
return (
|
|
<main className="shell">
|
|
<aside className="rail">
|
|
<a className="brand" href="/" style={{ textDecoration: "none", color: "inherit" }}>
|
|
<span className="mark">LS</span>
|
|
<div>
|
|
<strong>LogicSRC</strong>
|
|
<small>Open coordination standards</small>
|
|
</div>
|
|
</a>
|
|
{/* Same markup the homepage uses, so the two can never drift apart.
|
|
Static content from a module constant -- nothing user-supplied. */}
|
|
<div dangerouslySetInnerHTML={{ __html: renderInstallCommand("rail") }} />
|
|
<nav aria-label="LogicSRC sections">
|
|
{NAV.map((item) => (
|
|
<a
|
|
key={item.href}
|
|
href={item.href}
|
|
className={item.label === active ? "active" : undefined}
|
|
aria-current={item.label === active ? "page" : undefined}
|
|
target={item.external ? "_blank" : undefined}
|
|
rel={item.external ? "noreferrer" : undefined}
|
|
>
|
|
{item.label}
|
|
</a>
|
|
))}
|
|
</nav>
|
|
</aside>
|
|
<section className="workspace">
|
|
{children}
|
|
<footer
|
|
style={{
|
|
maxWidth: "72rem",
|
|
margin: "2rem auto 0",
|
|
padding: "1.25rem 0",
|
|
borderTop: "1px solid #d9ded4",
|
|
display: "flex",
|
|
flexWrap: "wrap",
|
|
gap: "0.75rem",
|
|
justifyContent: "space-between",
|
|
fontSize: "0.85rem",
|
|
color: "#5b6b7a",
|
|
}}
|
|
>
|
|
<span>© {new Date().getFullYear()} Profullstack, Inc. · LogicSRC</span>
|
|
<span style={{ display: "flex", gap: "0.75rem" }}>
|
|
<a href="/docs" style={{ color: "inherit" }}>Docs</a>
|
|
<a href="/blog/rss.xml" style={{ color: "inherit" }}>RSS</a>
|
|
<a href="/terms" style={{ color: "inherit" }}>Terms</a>
|
|
<a href="/privacy" style={{ color: "inherit" }}>Privacy</a>
|
|
</span>
|
|
</footer>
|
|
</section>
|
|
</main>
|
|
);
|
|
}
|