{"_id":"@anyforge/mcp-server","_rev":"7-28f998fddf3647af99510a87b0598bb6","name":"@anyforge/mcp-server","dist-tags":{"latest":"2.5.0"},"versions":{"2.0.0":{"name":"@anyforge/mcp-server","version":"2.0.0","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.0.0","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"1f705f4fa0b3aec8402481b03982c76f83d6dfbb","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.0.0.tgz","fileCount":29,"integrity":"sha512-sleFOm1zS1JGZpLW5HOC/hr7RXtG/DJwbFiChjfAJQZ2pBow0DuS/5eYht4hHiKzy9Il4tCV5XUpwdEnx+PFSg==","signatures":[{"sig":"MEQCIBvxuHTNPc5ysS+u2p6GQxpU18cyUYXxtpLF2ynbu2pfAiBpMRg5iQsfMe37L03rayCle3B33yR7jTRYMq8iMBSQfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47642},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"17f28b349821c0d06362e82d3efaf30abb89fbd0","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"11.12.1","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"25.9.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.0.0_1780214156365_0.13798189543128458","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@anyforge/mcp-server","version":"2.0.2","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.0.2","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"9d17e433bb35915677e259bca1d0c82a3d215f1c","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.0.2.tgz","fileCount":29,"integrity":"sha512-kvz3GZMVWNx/q78xGmNoBK86FhlxinJZ6hfQzLOYFGjVLTe9bId9bJytwoOMErns8e7uY/gxx3skYuC+rAM28g==","signatures":[{"sig":"MEQCIAHRNhPr9B8Lzz9Kh30Vc46vU/PST9GCdVeADw5LzrS6AiAhiJw77Xp/IPgDjPq7oGjl2vKPRygaRuS7MYw+lTbYxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48424},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3ccd07031a5bdf26cd2aeabf153b4cf73f4c24f3","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"10.8.2","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^20.14.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.0.2_1780576929369_0.22003534438918648","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@anyforge/mcp-server","version":"2.1.0","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.1.0","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"03a99e1239d03ea358320ef78a91478ae8e344fa","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.1.0.tgz","fileCount":29,"integrity":"sha512-3vLHhpKKYQC1ly9E36uVxANPfF65jZVn2fkKZXHhGbqoc2biWTEBNaQE9MDvBcH9+Oc/v7UzU27jdSNdxSLdDA==","signatures":[{"sig":"MEUCIElp/jjD3yTmojhn7VoK8WsA50ezI5/P8mxR5XLhRJK/AiEA4g/OUPmKtfp9T0v0awcveXn2V5iNZcKrwb3rhtBmYBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50140},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"90e058a6e30a1001ca98e1f43e89537b93ab9341","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"10.8.2","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^20.14.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.1.0_1780862751795_0.4827082672578513","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@anyforge/mcp-server","version":"2.2.0","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.2.0","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"0b87802264656fd04d600fe0e09f4662e687d56d","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.2.0.tgz","fileCount":32,"integrity":"sha512-9x0no6WVK7anvSJZeO6PrXrK8G8KfV2YD2x3LXE+Qj1Yha/Gy/jvZu1x5gHMraI1uP31HgLg9rlmlgb9o8lGTw==","signatures":[{"sig":"MEYCIQCiUCNZwSCX/qOypnmIlhiT+2V0LVubQGxmbYIt9kalgwIhANRKnf3eLC1g6ADYL9XgtADJbG4nhNwR7YzbTxw4Qs3N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56041},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"e33083034429a6f298706286b2cd0a06b19c4dc7","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"10.8.2","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^20.14.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.2.0_1781020191459_0.15148942029323553","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@anyforge/mcp-server","version":"2.3.0","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.3.0","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"a81c331c6428bf91cacaeebe94236e9b236b42d6","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.3.0.tgz","fileCount":38,"integrity":"sha512-LXPQ8lZV/kHrxx0YOsnxOqQi9f7hPvsXHEAeec32U02SUnh/WpsQddR00tY0KIWKlPq0cdmBZ5kpzhLgDMCb8A==","signatures":[{"sig":"MEYCIQCEggBJ7Z4rVDjA4YM3aiURlCoD6UFBLep4FAE/8p7eUwIhAN4zWzHM7dvfy4jNpK4Pq0JKo5As711S+WoWAbZD+qKO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87158},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1e391459971f664f0caffa617981f66864e9cf95","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"10.8.2","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^20.14.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.3.0_1781706127195_0.7076555647556597","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@anyforge/mcp-server","version":"2.4.0","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","_id":"@anyforge/mcp-server@2.4.0","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"bin":{"anyforge-mcp-server":"dist/index.js"},"dist":{"shasum":"6716ab5111cab03052bd2d33a31c8cf2571b1d76","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.4.0.tgz","fileCount":38,"integrity":"sha512-vVIbboZwhIoG7FR60a2Fb91ZULxaPen0c7qWOPZBiGE39SmZW9g1ZVj61twxlN0YkEcZmqdvN4EjssKGJwJzjg==","signatures":[{"sig":"MEQCIEdV5USNEk7Lk1infr0KYiSmu0Lkh36ndV4QnibnxiROAiAGw4SvrKjnJEAZY2ceku9p23YsmJuihhc4FO0YXYrCyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88557},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ac089d41463b95c617d46cfc38f0ebb71c4f9608","scripts":{"dev":"npx tsx index.ts","build":"tsc","start":"npx tsx index.ts","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"_npmVersion":"10.8.2","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.3","@types/node":"^20.14.9"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_2.4.0_1781792770284_0.8649110609285693","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@anyforge/mcp-server","version":"2.5.0","description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","type":"module","main":"./dist/index.js","bin":{"anyforge-mcp-server":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsc","type-check":"tsc --noEmit","prepublishOnly":"npm run build","start":"npx tsx index.ts","dev":"npx tsx index.ts"},"publishConfig":{"access":"public"},"keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"license":"UNLICENSED","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"devDependencies":{"@types/node":"^20.14.9","typescript":"^5.7.3"},"gitHead":"7323039a7e4f43c6549a98639d6aed05fe35f13d","types":"./dist/index.d.ts","_id":"@anyforge/mcp-server@2.5.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-VfweJHiK76UfdwGcxbWKype8Vsp9TKNem6OtGS41WMAU8/Fk7m3K/0MXhROGN9gz7ZMixbWOXi8T5J8hacjDPQ==","shasum":"6f6010e927a603f3de2daa9dfbfe1a7b55abc6da","tarball":"https://registry.npmjs.org/@anyforge/mcp-server/-/mcp-server-2.5.0.tgz","fileCount":38,"unpackedSize":88829,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCv/KXLzsM20wtpJ0rOnsC5em/eysVsCklFFHhO2bVWKAIgBjCfIk1VPUVnrEVxO2U6sW4baTifnRjfkqSwrP9EGvU="}]},"_npmUser":{"name":"erpoot","email":"edwin@pootonline.com"},"directories":{},"maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_2.5.0_1782470144033_0.17444736486769696"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-31T07:55:56.252Z","modified":"2026-06-26T10:35:44.321Z","2.0.0":"2026-05-31T07:55:56.504Z","2.0.2":"2026-06-04T12:42:09.540Z","2.1.0":"2026-06-07T20:05:51.946Z","2.2.0":"2026-06-09T15:49:51.591Z","2.3.0":"2026-06-17T14:22:07.372Z","2.4.0":"2026-06-18T14:26:10.430Z","2.5.0":"2026-06-26T10:35:44.185Z"},"license":"UNLICENSED","keywords":["anyforge","mcp","model-context-protocol","claude","claude-code"],"description":"AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients","maintainers":[{"name":"erpoot","email":"edwin@pootonline.com"}],"readme":"# AnyForge MCP Server\n\nDrive AnyForge from **Claude CLI** (Claude Code), Cursor, and other MCP\nclients: view and approve **HIL** notifications, read **programs /\ninitiatives / work items**, **add and modify** work items, see **crew\noutputs**, and **interact with crews**.\n\nThe server is a thin client over AnyForge's key-authenticated control\nAPI (`/api/v1/control/*`). It holds no business logic and never needs a\nFirebase login.\n\n> **User-facing setup guide:** [Drive AnyForge from Claude CLI](https://anyforge.ai/docs/mcp-server)\n> (`apps/www/content/docs/mcp-server.md`). This README is the in-repo\n> developer reference; the docs page is the canonical install walkthrough.\n\n## 1. Authorise this machine (once)\n\n```bash\nnpx @anyforge/control init\n```\n\nThis runs the device-auth flow and writes a long-lived `sk_anyforge_…`\nkey to `~/.anyforge/credentials`. The MCP server reads that file — so\nyou don't put any secret in your MCP config.\n\n> The key carries scopes (`read` / `write` / `approve`). A read-only key\n> can list and inspect but can't create work items or approve HILs.\n\n## 2. Register with Claude CLI\n\n```bash\nclaude mcp add anyforge -- npx tsx /ABS/PATH/TO/packages/control/mcp-server/index.ts\n```\n\n- Add `--scope user` to make it available in every project, or\n  `--scope project` to commit it to this repo's `.mcp.json`.\n- No env vars are required — credentials come from\n  `~/.anyforge/credentials`.\n\nTo point at a non-prod deployment or inline a key instead of using the\ncredentials file, pass env vars:\n\n```bash\nclaude mcp add anyforge \\\n  -e ANYFORGE_API_URL=https://staging.anyforge.ai \\\n  -e ANYFORGE_API_TOKEN=sk_anyforge_xxx \\\n  -- npx tsx /ABS/PATH/TO/packages/control/mcp-server/index.ts\n```\n\n### Cursor / other clients\n\nUse the equivalent stdio MCP config (`command: npx`, `args: [\"tsx\",\n\"…/index.ts\"]`). The same credential resolution applies.\n\n## Tools\n\n| Tool | Scope | Description |\n|------|-------|-------------|\n| `anyforge_list_pending_approvals` | read | List HIL approvals awaiting a decision |\n| `anyforge_get_approval_detail` | read | Read one approval's plan / ADR / security context |\n| `anyforge_submit_approval` | approve | Approve or reject a HIL (resumes the crew) |\n| `anyforge_list_programs` | read | List programs |\n| `anyforge_get_program` | read | Get a program |\n| `anyforge_list_initiatives` | read | List initiatives with progress + spend |\n| `anyforge_get_initiative` | read | Initiative + crews + burn-down |\n| `anyforge_approve_backlog` | approve | Approve a proposed backlog (HIL #1) |\n| `anyforge_approve_task_proposal` | approve | Approve a mid-flight task proposal |\n| `anyforge_list_work_items` | read | List backlog items + crew state |\n| `anyforge_get_work_item` | read | Get one work item |\n| `anyforge_create_work_item` | write | Create a work item |\n| `anyforge_update_work_item` | write | Edit / advance / dispatch / archive / close |\n| `anyforge_get_crew` | read | Crew state + recent outputs + comments |\n| `anyforge_post_crew_comment` | write | Comment on / @-mention in a crew |\n| `anyforge_resume_crew` | approve | Resume a PAUSED/HALTED crew |\n| `anyforge_halt_crew` | approve | Halt a crew |\n| `anyforge_amend_crew` | approve | Continue & finish — send a crew at its HIL gate back to the engineer with guidance |\n| `anyforge_create_program` | write | Create a program (cross-initiative grouping) |\n| `anyforge_write_program_brief` | write | Write/update a program's brief (charter) — seeds each initiative's architect context |\n| `anyforge_create_initiative` | write | Create a (DRAFT) initiative, optionally under a program |\n| `anyforge_dispatch_architect` | write | Decompose an initiative into a backlog (→ HIL #1) |\n| `anyforge_list_repo_index` | read | List the org repo index (activity, coverage, analyzed) — discover codebases to scope |\n| `anyforge_get_repo_analysis` | read | One repo's coverage / architecture / gap summary |\n| `anyforge_analyze_repos` | write | Start Phase-1 analysis for one or more repos |\n| `anyforge_start_coverage_sweep` | write | Paced Phase 1→2 analysis sweep over a program/repo set |\n| `anyforge_refresh_repo_index` | write | Refresh the repo index + committed-coverage detection now |\n\n## Prompts (guided flows)\n\nMCP clients that support server prompts (e.g. Claude Code surfaces them as\n`/mcp__anyforge__<name>` slash commands) get:\n\n| Prompt | Args | What it does |\n|--------|------|--------------|\n| `genesis` | `programId?`, `goal?` | Turns the client into the **Program Genesis agent**: it interviews you to scope a program across your codebases (using `anyforge_list_repo_index` / `anyforge_get_repo_analysis`), writes the program brief, then creates one initiative per in-scope codebase and offers to dispatch the architect on each. |\n\nThe Genesis flow runs entirely in *your* agent — there's no server-side\nchat-in-a-tool. The prompt gives your client the persona + interview script;\nit drives the conversation and calls the tools above as it goes.\n\n## Example prompts\n\n- \"What's waiting for my approval in AnyForge?\" → `anyforge_list_pending_approvals`\n- \"Show me the plan for approval `abc123` then approve it.\" → `anyforge_get_approval_detail` → `anyforge_submit_approval`\n- \"Add a P1 bug: rate-limit the export endpoint.\" → `anyforge_create_work_item`\n- \"What did crew `xyz` produce? Post a comment asking it to add tests.\" → `anyforge_get_crew` → `anyforge_post_crew_comment`\n- \"Scope a coverage program across our Go services.\" → run the `genesis` prompt → it lists repos, scopes, and creates an initiative per service.\n\n## How it works\n\n```\nClaude CLI ──stdio──▶ MCP server ──HTTPS (Bearer sk_anyforge_…)──▶ /api/v1/control/* ──▶ shared control services\n```\n\nThe `/api/v1/control/*` routes share the exact same service layer as the\nAnyForge web app, so the CLI and the dashboard behave identically.\n\n## Build & publish (maintainers)\n\nThe package ships **compiled JS** (`dist/`), so end users can run\n`npx -y @anyforge/mcp-server` without a TypeScript toolchain. Source lives\nin `index.ts` / `lib/` / `tools/`; `tsc` emits `dist/` (shebang preserved,\n`.js` import specifiers already in source for NodeNext).\n\n```bash\nnpm install          # includes the typescript devDependency\nnpm run build        # tsc → dist/\nnpm pack --dry-run   # verify the tarball: dist/ + README + package.json only\n```\n\nPublishing is automated. **Push a `mcp-server-v<version>` tag** and the\n`.github/workflows/publish-mcp-server.yml` workflow builds and runs\n`npm publish` (scoped public). Keep the tag version in sync with\n`package.json`:\n\n```bash\ncd packages/control/mcp-server\nnpm version patch          # bumps package.json, e.g. 2.0.0 → 2.0.1\ngit commit -am \"chore(mcp): release mcp-server vX.Y.Z\"   # if not committed by npm version\ngit tag mcp-server-v$(node -p \"require('./package.json').version\")\ngit push origin main --tags\n```\n\n> The workflow needs an `NPM_TOKEN` repo secret (an npm **automation**\n> token for an account with publish rights on the `@anyforge` scope). One-\n> time setup: `npm token create --read-only=false`, then add it under\n> GitHub → Settings → Secrets → Actions as `NPM_TOKEN`.\n>\n> To publish manually instead: `npm login && npm publish` from this\n> directory (`prepublishOnly` rebuilds `dist/` first).\n","readmeFilename":"README.md"}