All notable changes to Mythos Jr (MJR) will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-04-07
Initial release. Non-initiating defensive cybersecurity worker agent derived from lessons documented in the Claude Mythos Preview System Card (2026-04-07).
- Core A2A server built on
@a2a-js/sdkv0.3.0 with JSON-RPC and REST transports on port 8080. - Liveness sidecar on port 9090 exposing
GET /healthz. - Three skills —
vulnerability_triage,patch_verification,safe_exploit_reproduction. Everything else is refused. - Claude Agent SDK integration pinned to
@anthropic-ai/claude-agent-sdk@0.2.94. Model hardcoded toclaude-sonnet-4-6. - Verbatim Anthropic anti-hacking system prompt from System Card §4.2.2.2 plus 14 MJR-specific extensions.
canUseToolhook wired into everyquery()call, enforcing bash denylist, path guards, nonce validation, retry caps, and audit logging.security-policy.jsonas the single source of truth for runtime hard caps (max_turns=25,max_retries_per_tool=3,subagent_max_depth=1) and the network egress allowlist.- Startup refusal checks — MJR refuses to start if
MJR_IS_HOST_AGENT=true, ifCLAUDE_DISABLE_PERMISSIONSis set, or if any env var matches/dangerous|skip-permissions|bypass/i. - Empty-stream → failed guard. If the Agent SDK stream yields zero text artifacts, MJR publishes
state: failedwith an explicit reason. No silent-success fallthrough. This is the exact Mythos failure mode the system card warns about, and it surfaced in MJR's first smoke test before being fixed. - Subagent spawn helper enforcing permission inheritance — a child's
allowedToolsmust be a subset of its parent's, never broader. Subagent depth capped at 1. - Per-tool-call nonce validation — every tool result is tagged with a nonce; artifacts referencing tool output without a matching nonce are rejected as fabricated.
- Fake-dry-run regex scrubber that strips
(dry run)annotations from streamed artifacts. - pino audit logger writing one JSON line per tool call, tool result, task state transition, and refusal. Log path is host-supplied via
--audit-logso a compromised task can't overwrite it. - npm package
@m2ai/mythos-jr(public, MIT) with amythos-jrbinary entry point. - Reference Dockerfile at
docs/Dockerfile.referencefor advanced users willing to mount their authenticated~/.claude/credentials. Not the primary distribution. - Documentation —
README.md,docs/QUICKSTART.md(install, boot, curl example),docs/HOST_INTEGRATION.md(A2A Task schema and host audit responsibilities),host/host_checks.md(the rules the host MUST enforce),PLAN.md(the full Mythos-lesson → mitigation table with system card citations),ROADMAP.md.
- End-to-end smoke test against a live
claude-sonnet-4-6backend via the user's authenticatedclaudeCLI subprocess. Task: SQL injection triage against an in-prompt Python snippet. MJR returned a correct, scoped-to-one-paragraph root-cause analysis in ~9 seconds. Audit log captured the fullsystem → assistant → rate_limit → result → task_completestream.
- No built-in host. MJR is a worker only. You must supply a host agent to dispatch A2A tasks.
- No built-in sandbox. MJR runs as a host process. For
safe_exploit_reproduction, run MJR itself inside a VM or stripped container. - Docker is reference-only. The
docs/Dockerfile.referenceworks but requires mounting~/.claude/credentials, which is not ergonomic for distribution. - 7 moderate severity vulnerabilities in transitive npm dependencies (deferred to v1.1.0 —
npm audit fixrequires breaking changes). - No test suite.
vitestis a dev dependency but no tests ship in v1.0.0 (deferred to v1.1.0).