Changelog
All notable changes to this project are documented here. The format follows Keep a Changelog, and the project uses Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”- Documentation site at salnikov.no/agentprose (Astro + Starlight,
website/), deployed to GitHub Pages by.github/workflows/docs.yml: quick start, every install path, concepts, platform guides, a WordPress plugin section, and an API reference generated from the TypeScript source. The site runs agentprose on its own pages, with an index built byagentprose build.
Changed
Section titled “Changed”package.jsonhomepagepoints to the documentation site (npm shows it from the next release).- The repository moved to github.com/webmaxru/agentprose (the old
vibeprogrammer/agentproseURL redirects).package.jsonrepositoryandbugs, the bundle banner, the docs and the agent skill command (npx skills add webmaxru/agentprose) name the new home; npm shows it from the next release.
[0.1.3] - 2026-10-18
Section titled “[0.1.3] - 2026-10-18”- Notes for AI agents (
agentNotes) and contact details (contact:email,phone,url,booking,hours,address), written by the site owner. Agents get them fromget_site_info(notesForAgents,contact) and from a new read-only tool,get_contact_info, which is registered when the page setscontact,data-contact, or uses agentprose Cloud (data-key). Sources, highest priority first: page config, agentprose Cloud (/v1/site, fetched only when an agent first asks, never on page load;siteInfooverrides or disables it),agentprose.json(site.agentNotes,site.contact). Everything is cleaned and capped, and links must be http(s). See docs/configuration.md. agentprose build --site <file.json>publishesname,description,lang,logo,links,agentNotesandcontactinagentprose.json, and warns about every field it leaves out. With--out, the CLI prints the<link rel="agentprose-index">tag to add.skills/agentprose/SKILL.md: an agent skill that teaches coding agents to install agentprose correctly (npx skills add webmaxru/agentprose).
Changed
Section titled “Changed”- The 🔌 inspector passes object input to the browser’s
executeTool, retries once with a JSON string on aTypeError(older Chrome builds), and accepts both string and value results. - Size budget: core + engine raised from 16,640 B to 17,408 B gzipped (+768 B) for owner details and
get_contact_info. The core stays under 10,240 B.
<link rel="agentprose-index">(already supported) is now documented, with a section on owner notes and contact details, a security note on owner-written text, dated browser evidence, and docs/roadmap/2026-10-ideas.md.
- A contract test calls every built-in tool with empty and malformed input and asserts it returns a JSON object and never
null,undefinedor a throw. Unit tests cover cleaning, precedence and the Cloud fetch; an e2e test shows the Cloud details load only when an agent asks.
[0.1.2] - 2026-10-18
Section titled “[0.1.2] - 2026-10-18”Security
Section titled “Security”- The default MCP-B polyfill tag now carries Subresource Integrity:
integrity="sha384-aEnX8+GGpZs7j3YINfHJw5npl4H6AkfYHQ5KqdgJzScZ5s76I533BzlPrceDInPx"andcrossorigin="anonymous"for@mcp-b/webmcp-polyfill@6.0.3. If a CDN ever served a different file, the browser refuses it and agentprose settles in modenone. A polyfill URL you supply yourself (data-polyfill="/js/…") is used as given, without a hash; the npm API also acceptspolyfill: { src, integrity }. New export:POLYFILL_SRI. - Tests keep the pin and the hash in step:
@mcp-b/webmcp-polyfillis now an exact devDependency, a unit test compares the hash with the npm package and with jsDelivr, and an e2e test shows a tampered file being refused.
Changed
Section titled “Changed”- A copy served by agentprose Cloud (a
/v/<version>/folder, including the evergreen/v/0/) loads the polyfill from the same Cloud (/v/<exact version>/webmcp-polyfill.js, same hash) instead of jsDelivr, so the Cloud snippet needs one domain in a CSP. - A core loaded through a moving channel (
agentprose@0on jsDelivr,/v/0/on the Cloud) loads its engine, adapters, inspector and polyfill from its own exact version, so a cached core never pairs with a newer engine. - Docs recommend
agentprose@0(latest 0.x) instead ofagentprose@0.1, andhttps://agentprose.cloud/v/0/for the Cloud. Pinning an exact version with SRI is documented as the advanced option (Versioning and updates). - Size budget: core + engine raised from 16,384 B to 16,640 B gzipped (+256 B) for the hash and the version pinning. Core is 9,893 B gzipped (was 9,636 B); the engine is unchanged (6,744 B).
- Docs: what the polyfill is, when and from where it loads, the pinned version and hash, opting out, self-hosting and a CSP table (Security); Versioning and updates.
- Releasing agentprose and
scripts/purge-jsdelivr.mjs(purges@0and@0.1for every file indist/).
[0.1.1] - 2026-10-18
Section titled “[0.1.1] - 2026-10-18”Changed
Section titled “Changed”- The MCP-B WebMCP polyfill is on by default in the script-tag build. After the page’s
loadevent, if the page still has no WebMCP (no nativedocument.modelContext, no@mcp-b/global, no legacynavigator.modelContext), agentprose loads@mcp-b/webmcp-polyfill@6.0.3from jsDelivr (was unpkg) and registers into it.data-polyfill="off"(orfalse) opts out; a URL self-hosts it; the 0.1.0 flag form still works. The npmcreateAgentTools()default is unchanged (off). A blocked or slow polyfill (CSP, offline, 10 s) settles as modenonewithout errors. - Core bundle unchanged in size (9,636 B gzipped, was 9,637 B): the four script loaders are merged into one shared
addScripthelper.
- Tutorial: your blog inside Claude Desktop/Cursor with agentprose + MCP-B, and examples/mcp-b-desktop with an end-to-end check (official MCP SDK client →
@mcp-b/webmcp-local-relay→ headless Chromium page). - WordPress plugin (
wordpress-plugin/), prepared for WordPress.org: bundles the MCP-B polyfill locally (no CDN), opt-in agentprose Cloud disclosed under “External services”, Plugin Check and PHPCS clean, plus WP adapter fixes for custom post types. It lives in this repository and is released separately as a WordPress plugin zip; it is not part of the npm package. - Tests: 7 unit tests for polyfill loading; e2e for the default polyfill, opt-out, a blocked polyfill and a page that already has WebMCP.
- WordPress adapter: titles, excerpts, term and site names are decoded to plain text (WordPress renders
’,[…]); several post types are merged into one date-ordered page of at mostlimit.
[0.1.0] - 2026-10-18
Section titled “[0.1.0] - 2026-10-18”Changed
Section titled “Changed”- Renamed from
readmcptoagentprosebefore the first release: package, CLI,window.AgentProseglobal,agentprose:*events,data-agentprose-*attributes,agentprose.jsonindex and the WordPress plugin slug. Noreadmcppackage was ever published.
- agentprose Cloud hooks:
data-cloudwithdata-keyturns on hosted analytics (/v1/collect) and hosted search (/v1/search) in one attribute.data-cloudis optional when the script is served by the Cloud itself (its origin is used); it stays required on jsDelivr and unpkg, with a console warning when missing. - Analytics beacon v2:
{v, key, tool, ok, ms, page, query?, n?, found?, post?, err?, sid}(result count, citation verdict, post URL argument, short error code, random per-page-load id). Never sends post content or the quote text. search_postswithsearchEndpointfalls back to the site’s own search when the endpoint throws (network, CORS) or answers non-OK (e.g. 429 over quota).- One-line script install (
agentprose.min.js, 9.4 KB gzipped). Zero-config discovery from JSON-LD, OpenGraph,<article>, the prebuiltagentprose.json, RSS/Atom/JSON Feed, sitemap.xml (and indexes), llms.txt and Pagefind. - Tools:
get_current_article,search_posts,list_posts,get_post,get_table_of_contents,get_section,get_related_posts,list_taxonomies,get_citation(quote verification + text-fragment links),get_site_info; opt-inget_subscribe_link,get_comments_link,navigate_to. - WebMCP registration on
document.modelContextwithAbortSignalandexposedTo; legacynavigator.modelContextfallback; opt-in MCP-B polyfill (data-polyfill). - Lazily loaded site-wide engine (6.6 KB gzipped): BM25F search with prefix matching and accent folding, related posts, session cache.
- Adapters: WordPress (auto-detected), Ghost, Sanity, Contentful, Enonic XP (Guillotine), Strapi 5/4, Storyblok, generic/static. Proxy mode, and refusal of management credentials.
agentprose build(static index with sharded Markdown and llms.txt) andagentprose inspect(agent-readiness report) CLI.- 🔌 Inspector panel (
?agentprose-inspect,data-inspector). - WordPress plugin with a settings page.
- Analytics hooks:
onToolCall, theagentprose:callevent,data-analyticsbeacons. - 87 unit tests, 12 end-to-end tests in headless Chromium against fixture sites (native WebMCP and the polyfill).