{"_id":"@blitzreels/eve","_rev":"4-a666c75725f56b10e385ffc679483f11","name":"@blitzreels/eve","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@blitzreels/eve","version":"0.1.0","keywords":["eve","eve-extension","blitzreels","video","agent"],"license":"SEE LICENSE IN LICENSE","_id":"@blitzreels/eve@0.1.0","maintainers":[{"name":"virgilerietsch","email":"virgileboris96@hotmail.fr"}],"homepage":"https://blitzreels.com/","bugs":{"url":"https://www.blitzreels.com/support"},"eve":{"extension":{"dist":"./dist/extension","source":"./extension"}},"dist":{"shasum":"e75a22883bc04cb1e4f016540cf1f9f4c75b2de0","tarball":"https://registry.npmjs.org/@blitzreels/eve/-/eve-0.1.0.tgz","fileCount":54,"integrity":"sha512-ZIu8zUFMd/vaCJnMwOn0lBQxb2OKNE50ota2D6J1wjziwg8Z9n7dZo7IRjjj0o35ZaU54X3OeAV6jBzc0mTPoQ==","signatures":[{"sig":"MEUCIEmUUAXxy2mR+ZNLMPuJJlCh+KXBUarGdQ5ivwcdw2dnAiEAyOHBaBIlRpEXZnivrCl7Y47qCUNvZVY9lBzxfjBwuP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51226},"type":"module","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./tools":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.mjs"}},"scripts":{"build":"eve extension build","prebuild":"pnpm --filter @blitzreels/sdk build","typecheck":"tsc -p tsconfig.json --noEmit","pretypecheck":"pnpm --filter @blitzreels/sdk build"},"_npmUser":{"name":"virgilerietsch","email":"virgileboris96@hotmail.fr"},"description":"eve extension that gives durable AI agents BlitzReels video editing, clipping, generation, and export tools.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"4.4.3","@blitzreels/sdk":"^0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"0.27.5"},"peerDependencies":{"eve":"*"},"_npmOperationalInternal":{"tmp":"tmp/eve_0.1.0_1784925007752_0.5548087996913635","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@blitzreels/eve","version":"0.2.1","description":"eve extension that gives durable AI agents BlitzReels video editing, clipping, generation, and export tools.","homepage":"https://blitzreels.com/","license":"MIT","repository":{"type":"git","url":"git+https://github.com/blitzreels/eve-extension.git"},"bugs":{"url":"https://github.com/blitzreels/eve-extension/issues"},"type":"module","keywords":["eve","eve-extension","blitzreels","video","agent"],"eve":{"extension":{"source":"./extension","dist":"./dist/extension"}},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./tools":{"types":"./dist/tools/index.d.ts","default":"./dist/tools/index.mjs"}},"dependencies":{"@blitzreels/sdk":"^0.2.0","zod":"4.4.3"},"devDependencies":{"@biomejs/biome":"2.5.6","@types/node":"^26.0.0","eve":"0.27.5","typescript":"^6.0.3"},"peerDependencies":{"eve":"*"},"publishConfig":{"access":"public"},"engines":{"node":">=24"},"scripts":{"build":"eve extension build","check:boundary":"node scripts/check-boundary.mjs","lint":"biome check .","typecheck":"tsc -p tsconfig.json --noEmit","verify":"pnpm check:boundary && pnpm lint && pnpm typecheck && pnpm build"},"_nodeVersion":"24.11.1","_id":"@blitzreels/eve@0.2.1","dist":{"integrity":"sha512-mgw/0YpDb+Skc0jyH41+EiUxHwKRD/46OkarfQyC85TmeoQm7h+PXQftjVTIo5i5eImVNFAcQBAxuMq3eRjsXQ==","shasum":"446ff3e847f2a0871889b2ed9cf66c681ef6e579","tarball":"https://registry.npmjs.org/@blitzreels/eve/-/eve-0.2.1.tgz","fileCount":62,"unpackedSize":59880,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDRgyFYc+s6OcFq/t7qs4TOwF4IzgmYbk8/QpWQOVu3CgIgL3sjg+ul0pAvIwmHfxGyHgbx1lUbJTUo6HDcBGKy0Xo="}]},"_npmUser":{"name":"virgilerietsch","email":"virgileboris96@hotmail.fr"},"directories":{},"maintainers":[{"name":"virgilerietsch","email":"virgileboris96@hotmail.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eve_0.2.1_1785412234542_0.9539905201958814"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T20:30:07.589Z","modified":"2026-07-30T11:50:34.866Z","0.1.0":"2026-07-24T20:30:07.918Z","0.2.0":"2026-07-30T11:21:11.030Z","0.2.1":"2026-07-30T11:50:34.690Z"},"bugs":{"url":"https://github.com/blitzreels/eve-extension/issues"},"license":"MIT","homepage":"https://blitzreels.com/","keywords":["eve","eve-extension","blitzreels","video","agent"],"description":"eve extension that gives durable AI agents BlitzReels video editing, clipping, generation, and export tools.","maintainers":[{"name":"virgilerietsch","email":"virgileboris96@hotmail.fr"}],"readme":"# @blitzreels/eve\n\nAn [eve](https://eve.dev) extension that gives a durable AI agent BlitzReels video tools:\nlong-form to short-form clipping, visual-QA repair, project inspection, snapshot previews,\nAI generation, and exports.\n\nIt wraps [`@blitzreels/sdk`](https://www.npmjs.com/package/@blitzreels/sdk), so tool calls run in\nyour app runtime against the same public API the CLI and MCP server use.\n\nThis repository contains only the Eve integration. The BlitzReels SDK, CLI, application,\nbackend, infrastructure, and internal contracts are maintained privately.\n\n## Install\n\n```bash\npnpm add @blitzreels/eve\n```\n\n## Mount\n\nCreate the mount file in your agent. Its filename becomes the tool namespace.\n\n```ts title=\"agent/extensions/blitzreels.ts\"\nimport blitzreels from \"@blitzreels/eve\";\n\nexport default blitzreels({ apiKey: process.env.BLITZREELS_API_KEY! });\n```\n\nCreate an API key from your BlitzReels workspace's Developer page, then put it in `.env.local`:\n\n```bash\nBLITZREELS_API_KEY=br_live_...\n```\n\nKeys are environment-bounded: `br_live_...` against production, `br_test_...` against a local\nor development runtime. Point `baseUrl` at the matching host when you use a test key.\n\nThe mount above exposes `blitzreels__list_projects`, `blitzreels__create_clip_batch`, and so on.\n\n### Config\n\n| Key | Required | Default |\n| --- | --- | --- |\n| `apiKey` | yes | — |\n| `baseUrl` | no | `https://www.blitzreels.com/api/v1` |\n\n## Tools\n\n| Tool | Effect | Approval |\n| --- | --- | --- |\n| `list_projects` | read | — |\n| `create_project` | write | — |\n| `inspect_project` | read | — |\n| `render_snapshot` | read (renders preview frames) | — |\n| `list_media` | read | — |\n| `get_media` | read | — |\n| `import_youtube` | write, downloads source | `once()` |\n| `create_clip_batch` | write, spends credits | `once()` |\n| `get_clip_batch` | read | — |\n| `list_clips` | read | — |\n| `reselect_clip` | write | — |\n| `repair_clip` | write | — |\n| `export_clip` | write, renders | `once()` |\n| `list_caption_words` | read | — |\n| `set_caption_look` | write | — |\n| `delete_clip_batch` | destructive write | `always()` |\n| `start_export` | write, renders | `once()` |\n| `get_export` | read | — |\n| `generate_video` | write, spends credits | `once()` |\n| `generate_image` | write, spends credits | `once()` |\n| `generate_faceless_video` | write, spends credits | `once()` |\n| `get_generation` | read | — |\n\nEvery tool returns `{ ok: true, data }` or `{ ok: false, error }`. The error carries `code`,\n`retryable`, `status`, `request_id`, and `upgrade_url` so an agent can decide between retrying,\nstopping, and reporting a plan limit — it never throws a raw HTTP failure into the model's context.\n\nCredit-spending tools derive their idempotency key from eve's durable `callId`, so a step that eve\nre-runs after an interruption reuses the original BlitzReels receipt instead of paying twice.\n\n### Overriding approval\n\nTighten or loosen a gate from the consuming agent with a directory mount:\n\n```ts title=\"agent/extensions/blitzreels/tools/export_clip.ts\"\nimport { export_clip } from \"@blitzreels/eve/tools\";\nimport { defineTool } from \"eve/tools\";\nimport { always } from \"eve/tools/approval\";\n\nexport default defineTool({ ...export_clip, approval: always() });\n```\n\nUse `disableTool()` in the same slot to remove a tool entirely.\n\n## Skill\n\nThe extension ships a `blitzreels-clipping` skill: the long-form-to-shorts procedure, the\n`clipPresetId` decision table, the QA `repairMode` decision table, and the polling contract.\neve loads it on demand when a turn matches its description.\n\n## Alternative: connect over MCP\n\nIf you want the hosted tool surface instead of typed local tools, BlitzReels also runs a\nStreamable HTTP MCP server at `https://www.blitzreels.com/api/mcp`. It authenticates the signed-in\nuser over OAuth — an API key is rejected — so wire it through Vercel Connect and give the eve\nsession a user principal from route auth or a platform channel.\n\n```ts title=\"agent/connections/blitzreels.ts\"\nimport { connect } from \"@vercel/connect/eve\";\nimport { defineMcpClientConnection } from \"eve/connections\";\nimport { once } from \"eve/tools/approval\";\n\nexport default defineMcpClientConnection({\n  url: \"https://www.blitzreels.com/api/mcp\",\n  description: \"BlitzReels: clip long videos into shorts, edit projects, and export.\",\n  auth: connect(\"www.blitzreels.com/blitzreels\"),\n  approval: once(),\n});\n```\n\nUse the extension when the agent acts as a workspace with its own API key, and when you want typed\ntools, tuned descriptions, approval defaults, and idempotent retries. Use the MCP connection when\neach end user should act as themselves, and when you want whatever the server exposes today with\nno package to upgrade. The connector UID above is whatever `vercel connect create` returns for\nyour project.\n\n## Develop\n\n```bash\npnpm build\npnpm typecheck\n```\n\n`eve dev` in a consuming agent rebuilds the extension on source changes.\n\n## Links\n\n- BlitzReels API docs: <https://www.blitzreels.com/docs>\n- OpenAPI: <https://www.blitzreels.com/api/openapi.json>\n- Eve extensions: <https://eve.dev/docs/extensions>\n","readmeFilename":"","repository":{"type":"git","url":"git+https://github.com/blitzreels/eve-extension.git"}}