// doctrine-scanner-exempt: legacy live-product surface; rename tracked as separate engineering debt — see scripts/check-doctrine-v6.mjs header. // MYTHOS LAYER — A11oy × Sentra defensive orchestration architecture. // // Distillation of the Mythos-class executive summary into a static doctrine // surface: the A11oy command-agent orchestration loop, the integrated scanner // toolchain catalogue, the RL pipeline formulation, the guardrails stack, and // the phased roadmap. // // All inputs are public research, official tool documentation, or first-principle // reconstructions. No leaks, no scraped weights, no telemetry. Adoption requires // a Sentra approval workflow per the Glasswing doctrine. export const MYTHOS_LAYER_VERSION = '0.1.0-seed'; export const MYTHOS_LAYER_TAGLINE = 'A11oy plans, Sentra executes, the human approves. Defensive only, evidence-bound, public-input only.'; // --------------------------------------------------------------------------- // 1. ORCHESTRATION LOOP // The 10-step A11oy → Sentra interaction described in the architecture diagram. // --------------------------------------------------------------------------- export type LoopActor = 'A11oy' | 'Sentra' | 'Human' | 'External'; export interface OrchestrationStep { step: number; from: LoopActor; to: LoopActor; action: string; detail: string; guardrail: string; } export const ORCHESTRATION_STEPS: readonly OrchestrationStep[] = [ { step: 1, from: 'A11oy', to: 'Sentra', action: 'plan tasks', detail: 'A11oy decomposes a natural-language or policy directive (e.g. "scan production Linux fleet for critical CVEs") into a typed task graph and submits it to Sentra\u2019s Policy Engine for admission control.', guardrail: 'Plan is rejected if it requests any action outside the tenant\u2019s registered scope or violates a Constitution rule.', }, { step: 2, from: 'A11oy', to: 'Sentra', action: 'execute scans', detail: 'Approved tasks dispatch the scanner toolchain (CodeQL, Semgrep, OSV-Scanner, Trivy, Gitleaks, Checkov) against the target surface defined in the plan.', guardrail: 'Scanners run in least-privilege containers with read-only mounts; no scanner can write to a target system.', }, { step: 3, from: 'Sentra', to: 'Sentra', action: 'findings → analyzer', detail: 'Raw scanner output is normalised into the Mythos finding schema and fed to the Risk Assessment Engine for de-duplication, severity scoring, and exploitability triage.', guardrail: 'Every finding is hash-linked to the scanner version, ruleset version, and target snapshot for chain-of-custody.', }, { step: 4, from: 'Sentra', to: 'A11oy', action: 'context info → model', detail: 'Risk-scored findings, the relevant code/IaC context, and the dependency graph are returned to the A11oy LLM agent for patch reasoning.', guardrail: 'Context is bounded by the original plan\u2019s scope; no out-of-scope source is delivered to the model.', }, { step: 5, from: 'A11oy', to: 'Sentra', action: 'propose patch', detail: 'A11oy generates a candidate patch (diff) and a rationale trace, then submits both to Sentra\u2019s Patch Engine for static validation.', guardrail: 'Patch payload is schema-validated; any non-diff side-channel (shell calls, network IO) is stripped before submission.', }, { step: 6, from: 'Sentra', to: 'Human', action: 'patch suggestion → approval', detail: 'The Patch Engine attaches a static-analysis verdict and posts the suggestion to the Approval Queue with severity, blast radius, and rollback plan.', guardrail: 'Production patches require dual-key approval; staging patches require single-key approval; no auto-merge above low risk.', }, { step: 7, from: 'Human', to: 'Sentra', action: 'commit approved patch', detail: 'On approve, Sentra commits the patch to the staging branch with the approver\u2019s OIDC-attested signature recorded in the audit ledger.', guardrail: 'Approval evidence is appended to the Cerberus vault before the commit lands; rollback is a single-click revert.', }, { step: 8, from: 'Sentra', to: 'External', action: 'apply patch', detail: 'Sentra deploys the approved patch through the customer\u2019s existing CI/CD path and verifies the targeted finding is resolved on the post-deploy scan.', guardrail: 'Apply step is idempotent and auto-reverts if the post-deploy scan introduces new criticals.', }, { step: 9, from: 'A11oy', to: 'A11oy', action: 'retrain', detail: 'Outcome (verified fix, false positive, regression) is logged as an RL episode for the Silver planner; reward signal is composed from finding-closed, no-new-bugs, and time-to-resolve.', guardrail: 'Training data is tenant-isolated; no cross-tenant gradient sharing without explicit opt-in.', }, { step: 10, from: 'Human', to: 'Sentra', action: 'review', detail: 'Analyst reviews the closed loop, marks the disposition (correct / over-cautious / wrong), and the feedback updates the reward model used by step 9.', guardrail: 'Reviewer disposition is itself logged as evidence and feeds the Mirror Eval slice for the next quarterly model audit.', }, ]; // --------------------------------------------------------------------------- // 2. SCANNER TOOLCHAIN // Public, defensively-licensed tools the orchestration layer composes. // --------------------------------------------------------------------------- export type ScannerSurface = | 'source-code' | 'dependencies' | 'containers' | 'iac' | 'secrets'; export type ScannerLicense = 'MIT' | 'Apache-2.0' | 'MPL-2.0' | 'LGPL-3.0' | 'GPL-3.0'; export type ScannerId = | 'codeql' | 'semgrep' | 'osv-scanner' | 'trivy' | 'gitleaks' | 'checkov'; export interface Scanner { id: ScannerId; name: string; surface: ScannerSurface; oneLine: string; primitive: string; license: ScannerLicense; source: { repo: string; url: string; org: string; lang: string }; sentraBinding: string; guardrail: string; } export const SCANNERS: readonly Scanner[] = [ { id: 'codeql', name: 'CodeQL', surface: 'source-code', oneLine: 'GitHub\u2019s semantic code-analysis engine. Treats the codebase as a database and runs typed queries to find vulnerability classes (SQLi, RCE, taint flows).', primitive: 'Datalog-style queries over a code property graph, with curated query packs per language.', license: 'MIT', source: { repo: 'github/codeql', url: 'https://github.com/github/codeql', org: 'GitHub', lang: 'C++ / QL' }, sentraBinding: 'Invoked by the Static Scanner module on every plan that touches source. Findings normalise into the Mythos finding schema with rule-id provenance.', guardrail: 'Runs in a sandboxed container against a read-only checkout. The query pack version is pinned and recorded in the evidence ledger.', }, { id: 'semgrep', name: 'Semgrep', surface: 'source-code', oneLine: 'Fast, syntax-aware pattern matcher for source code. Lower-cost first pass that catches the long-tail of policy-driven anti-patterns.', primitive: 'AST pattern templates with metavariables and taint analysis, executed against many languages from a single ruleset.', license: 'LGPL-3.0', source: { repo: 'semgrep/semgrep', url: 'https://github.com/semgrep/semgrep', org: 'Semgrep', lang: 'Python / OCaml' }, sentraBinding: 'Runs in parallel with CodeQL as the cheap first sieve. Its findings carry lower default severity unless escalated by the Risk Engine.', guardrail: 'Custom rules require Constitution review before they are added to the active ruleset; no inline rule loading.', }, { id: 'osv-scanner', name: 'OSV-Scanner', surface: 'dependencies', oneLine: 'Google\u2019s frontend to the Open Source Vulnerabilities database. Resolves project lockfiles and reports known CVEs against pinned versions.', primitive: 'Deterministic lockfile parser + queries against the public OSV.dev advisory feed.', license: 'Apache-2.0', source: { repo: 'google/osv-scanner', url: 'https://github.com/google/osv-scanner', org: 'Google', lang: 'Go' }, sentraBinding: 'Runs on every dependency manifest in scope. Findings link to the upstream OSV entry plus the targeted lockfile path.', guardrail: 'Uses the public OSV API only. No customer SBOM is uploaded; queries are purl-based and opaque.', }, { id: 'trivy', name: 'Trivy', surface: 'containers', oneLine: 'Container, OS package, and IaC scanner. The default Sentra layer for any image or registry surface.', primitive: 'Layered scanner that combines distro vulnerability databases, SBOM extraction, and a Rego-driven misconfig pass.', license: 'Apache-2.0', source: { repo: 'aquasecurity/trivy', url: 'https://github.com/aquasecurity/trivy', org: 'Aqua Security', lang: 'Go' }, sentraBinding: 'Wired to both the Static Scanner (image scan) and the Patch Engine (post-deploy verification scan).', guardrail: 'Operates against image digests, not running workloads. No exec-into-container path is exposed.', }, { id: 'gitleaks', name: 'Gitleaks', surface: 'secrets', oneLine: 'High-entropy and pattern-based secrets scanner for git history. Catches leaked credentials before they reach production.', primitive: 'Configurable regex + entropy ruleset over git diffs and historical blobs.', license: 'MIT', source: { repo: 'gitleaks/gitleaks', url: 'https://github.com/gitleaks/gitleaks', org: 'Zachary Rice', lang: 'Go' }, sentraBinding: 'Triggered on every plan that includes a repository scan. Findings are routed straight to the Approval Queue with auto-redaction in the audit log.', guardrail: 'Findings are stored as hashed fingerprints, not the raw secret. The raw match is held in the Cerberus vault under analyst-only access.', }, { id: 'checkov', name: 'Checkov', surface: 'iac', oneLine: 'Infrastructure-as-code scanner for Terraform, CloudFormation, Kubernetes, Helm, and ARM. Catches misconfigurations before they ship.', primitive: 'Built-in policy library + custom policies expressed in Python or YAML, executed against parsed IaC graphs.', license: 'Apache-2.0', source: { repo: 'bridgecrewio/checkov', url: 'https://github.com/bridgecrewio/checkov', org: 'Bridgecrew / Prisma Cloud', lang: 'Python' }, sentraBinding: 'Runs on every IaC change in a plan. Verdicts feed the Compliance Engine for SOC2 / CIS-Benchmark mapping.', guardrail: 'No --download-external-modules in CI; only vendored modules are evaluated to keep the supply chain attested.', }, ]; // --------------------------------------------------------------------------- // 3. RL PIPELINE // Public-research formulation: state, action, reward, training regime. // --------------------------------------------------------------------------- export interface RLAxis { id: 'state' | 'action' | 'reward' | 'regime' | 'humanFeedback' | 'safety'; axis: string; detail: string; citation: string; } export const RL_PIPELINE: readonly RLAxis[] = [ { id: 'state', axis: 'State', detail: 'Current security posture: vulnerable code context, dependency graph, recent scanner output, telemetry stream, and the agent\u2019s long-term memory of prior episodes.', citation: 'Anthropic public research on agentic context windows; Team Atlanta patch RL state design.', }, { id: 'action', axis: 'Action', detail: 'Discrete, schema-validated operations: scan repo X with tool Y, fetch code piece Z, generate patch for CVE C, apply staging deploy, request human approval. No free-form shell.', citation: 'GRPO action-space framing; Anthropic public RL guardrail constraints.', }, { id: 'reward', axis: 'Reward', detail: 'Composite: +1 for verified vulnerability closed, +0.5 for high-severity CVE detected, \u22120.5 for false positive, \u22121 for regression introduced, \u22122 for any policy violation attempt.', citation: 'Team Atlanta patch RL: reward=1 when patch compiles and fixes the bug. Sentra extends with regression and policy penalties.', }, { id: 'regime', axis: 'Training regime', detail: 'Offline replay of historical incidents and CTF corpora bootstraps the policy. Online self-play in isolated lab networks refines it. PPO and GRPO are the primary on-policy algorithms.', citation: 'PPO (Schulman 2017); GRPO (DeepSeek-Math 2024); Team Atlanta agentic patch loop.', }, { id: 'humanFeedback', axis: 'Human feedback (RLHF)', detail: 'Every high-impact decision (production patch, isolation order, exploit confirmation) routes through an analyst. The accept/reject/revise signal updates the reward model used in the next training run.', citation: 'Anthropic RLHF technique reports; NIST AI RMF guidance on human oversight.', }, { id: 'safety', axis: 'Safety constraints', detail: 'Hard rules sit outside the RL loop: schema-validated outputs, sandboxed action execution, no patch to prod without dual-key approval, no scanner against out-of-scope assets.', citation: 'Public Anthropic agentic guardrail patterns; OWASP LLM Top-10 input/output validation.', }, ]; // --------------------------------------------------------------------------- // 4. GUARDRAILS STACK // Multi-layer defensive constraints applied to every model action. // --------------------------------------------------------------------------- export interface Guardrail { layer: string; control: string; enforcedBy: string; } export const GUARDRAILS: readonly Guardrail[] = [ { layer: 'Input', control: 'Schema validation on every prompt and tool argument. Reject on parse failure, no silent coercion.', enforcedBy: 'A11oy intent router + Mythos doctrine schemas (JSON Schema 2020-12).', }, { layer: 'Action', control: 'Action space restricted to a typed registry. No free-form shell, no dynamic code eval, no network egress outside the tenant scope.', enforcedBy: 'Sentra capability compartments + connector firewall.', }, { layer: 'Output', control: 'Patch diffs static-validated; analysis text PII-redacted; secrets hashed before storage.', enforcedBy: 'Patch Engine validators + Cerberus vault redaction policy.', }, { layer: 'Approval', control: 'Risk-tiered gating: low \u2192 single-key, medium \u2192 dual-key, high \u2192 dual-key plus 24h soak in staging.', enforcedBy: 'Sentra Approval Queue + Constitution rule engine.', }, { layer: 'Audit', control: 'Every action, approval, and rejection appended to a hash-linked evidence ledger with OIDC-attested signatures.', enforcedBy: 'Cerberus evidence vault (append-only, signed).', }, { layer: 'Provenance', control: 'Model version, prompt hash, tool versions, and ruleset versions captured per episode for reproducibility and SLSA-style supply-chain attestation.', enforcedBy: 'Hephaestus provenance gate.', }, ]; // --------------------------------------------------------------------------- // 5. PHASED ROADMAP // Translation of the research brief\u2019s 0\u201324 month plan onto Sentra modules. // --------------------------------------------------------------------------- export type RoadmapPhase = '0\u20136' | '7\u201312' | '13\u201324'; export interface RoadmapMilestone { id: string; phase: RoadmapPhase; title: string; detail: string; module: string; } export const ROADMAP: readonly RoadmapMilestone[] = [ { id: 'phase1-toolchain', phase: '0\u20136', title: 'Scanner toolchain wired end-to-end', detail: 'CodeQL + Semgrep + OSV-Scanner + Trivy + Gitleaks + Checkov each producing normalised findings into the Mythos schema, with a deterministic merge pass and a single Risk Engine entry point.', module: 'Sentra Static Scanner + Risk Engine', }, { id: 'phase1-orchestrator', phase: '0\u20136', title: 'A11oy plan \u2192 Sentra dispatch path', detail: 'A11oy decomposes natural-language directives into typed plans; Sentra admits or rejects against the Constitution; approved plans dispatch to the scanner toolchain.', module: 'A11oy Planner + Sentra Policy Engine', }, { id: 'phase1-approval-loop', phase: '0\u20136', title: 'Approval Queue with dual-key gating', detail: 'Patch suggestions appear in the Approval Queue with severity, blast radius, and rollback plan. Production changes require two operators; staging requires one.', module: 'Sentra Approval Queue', }, { id: 'phase2-rl-offline', phase: '7\u201312', title: 'Offline RL bootstrap on historical incidents', detail: 'Replay anonymised incident logs as RL episodes. Train Silver to prefer plans that historically closed the finding without regression. Reward model anchored on analyst dispositions.', module: 'Silver RL Planner', }, { id: 'phase2-context-retrieval', phase: '7\u201312', title: 'RL contextual code retrieval', detail: 'Per Team Atlanta, train a retrieval policy that fetches the exact code pieces required to verify or fix a finding. Cuts token spend and false-positive rate.', module: 'A11oy Retriever + Sentra Patch Engine', }, { id: 'phase2-redteam', phase: '7\u201312', title: 'Continuous defensive red-team in sandbox', detail: 'Strict-policy hacker agent runs in an isolated tenant clone, attempting attacks against staging snapshots. Outcomes feed the Risk Engine\u2019s exploitability score.', module: 'Sentra Sandbox + Adversarial Resilience', }, { id: 'phase3-self-play', phase: '13\u201324', title: 'Online self-play in isolated lab networks', detail: 'Synthetic corpora and CTF-style environments host longer-horizon self-play episodes. PPO / GRPO policy updates ship behind a Mirror Eval gate.', module: 'Silver RL Planner + Mirror Eval', }, { id: 'phase3-compliance', phase: '13\u201324', title: 'SOC2 Type II + ISO 42001 attestation', detail: 'The full A11oy \u00d7 Sentra control set passes a Type II audit with the evidence ledger as the primary control surface. ISO 42001 added for AI-management-system coverage.', module: 'Sentra Compliance Engine + Cerberus Evidence Vault', }, { id: 'phase3-defender-network', phase: '13\u201324', title: 'Defender Credits federated learning', detail: 'Tenants opt in to a federated update channel where reward-model deltas (never raw evidence) cross-pollinate. Each contribution earns Defender Credits redeemable against compute.', module: 'A11oy Federation + Defender Credits', }, ]; // --------------------------------------------------------------------------- // 6. PUBLIC MODEL REFERENCES // Candidates from Table 1 of the brief. Public access only \u2014 no claim of // integration with proprietary endpoints we do not have. // --------------------------------------------------------------------------- export interface ModelReference { id: string; family: string; contextWindow: string; strengths: string; access: string; } export const MODEL_REFERENCES: readonly ModelReference[] = [ { id: 'claude-sonnet-4-6', family: 'Anthropic Claude Sonnet 4.6', contextWindow: '~1M tokens', strengths: 'Frontier coding and agentic tool use; long-running multi-file workflows.', access: 'Public Anthropic API. Used as the default A11oy planner where customer policy permits.', }, { id: 'claude-opus-4-7', family: 'Anthropic Claude Opus 4.7', contextWindow: '~512K\u20131M tokens', strengths: 'Deepest reasoning chain; first Mythos-class safety filters in the public Claude line.', access: 'Public Anthropic API. Reserved for high-risk patch reasoning routed via A11oy escalation.', }, { id: 'openmythos-rdt', family: 'OpenMythos (community RDT reconstruction)', contextWindow: '~1M tokens (target)', strengths: 'Independent looped-transformer reconstruction. Useful as a transparent reasoning baseline.', access: 'Open-source weights, public training recipe. No leaked Anthropic artifacts ever ingested.', }, { id: 'gpt-frontier', family: 'OpenAI frontier (GPT-4o / GPT-5 line)', contextWindow: 'Vendor-disclosed', strengths: 'Multimodal agent capabilities; strong tool-call reliability.', access: 'Public OpenAI API. Selectable via the Model Router when customer policy prefers it.', }, ]; // --------------------------------------------------------------------------- // 7. CITATIONS — anchor refs back to the source brief. // --------------------------------------------------------------------------- export const MYTHOS_LAYER_CITATIONS: ReadonlyArray<{ tag: string; source: string }> = [ { tag: '66', source: 'Anthropic public posting on Mythos Preview vulnerability discovery and exploitation.' }, { tag: '70', source: 'Project Glasswing public announcement and partner stack.' }, { tag: '72', source: 'Claude Sonnet 4.6 public release notes (1M-token context, agentic coding).' }, { tag: '73', source: 'Claude Opus 4.7 public release notes (Mythos-safe filtering).' }, { tag: '74', source: 'GRPO algorithm description, DeepSeek-Math 2024.' }, { tag: '75', source: 'Team Atlanta agentic patch RL writeup; reward shaping for compile/fix.' }, { tag: '86', source: 'UK AI Security Institute (AISI) Mythos threat-level assessment.' }, { tag: '91', source: 'OpenMythos community reconstruction notes on recurrent-depth transformers.' }, { tag: '95', source: 'Public agentic guardrail patterns (schema validation, sandboxed actions, output constraints).' }, ];