Why this matters
Turns the email agent from "demo-proven with placeholders" into actually installable via npm i @amd-gaia/agent-email. Ships on the existing one-off release_agent_email.yml (rclone → assets.amd-gaia.ai) — the registry-driven generalization is tracked separately in milestone #51 and lands shortly after.
Checklist
Known limitation
First release ships unsigned binaries (#732 / #733 / #1650 not done) → SmartScreen/Gatekeeper warnings. Acceptable for an early/preview publish; note it in release comms.
Why this matters
Turns the email agent from "demo-proven with placeholders" into actually installable via
npm i @amd-gaia/agent-email. Ships on the existing one-offrelease_agent_email.yml(rclone →assets.amd-gaia.ai) — the registry-driven generalization is tracked separately in milestone #51 and lands shortly after.Checklist
release_agent_email.yml(rclone),gen_binaries_lock.pyrefactor, real win32 hash inbinaries.lock.json. (Keep the Worker code from feat(email-packaging): no-Python email-agent binary + thin @amd-gaia/agent-email npm client #1654 in place — out of scope to remove.)R2_ACCESS_KEY_ID/R2_SECRET_ACCESS_KEY/R2_ACCOUNT_ID; varASSETS_BASE_URL; register npm trusted publisher for@amd-gaia/agent-emailagainstrelease_agent_email.yml.agent-pkg-email-v0.1.0→ CI freezes all 4 platforms (win32-x64, darwin-arm64, darwin-x64, linux-x64), uploads to R2, regenerates lock with real hashes, fetch-verifies,npm publish.npm i @amd-gaia/agent-emailpulls + runs on a clean box.Known limitation
First release ships unsigned binaries (#732 / #733 / #1650 not done) → SmartScreen/Gatekeeper warnings. Acceptable for an early/preview publish; note it in release comms.