@nightowlsdev/engine-eve
EngineAdapter, reduced governanceThe Vercel Eve protocol adapter engine, renders a running Eve app's NDJSON session as a single Night Owls agent. Adapter tier: reduced governance, tier-2 events (tool calls + usage visible, no delegation); durable park/resume on Vercel Workflows.
What it does
@nightowlsdev/engine-eve is a protocol ADAPTER over a deployed Vercel Eve app, Eve's own agent loop runs on the remote (parked durably on Vercel Workflows), so this renders its NDJSON session stream as a single Night Owls agent rather than executing in-process. `eveEngine({ baseUrl, routeAuthSecret?, agentSlug? })` talks to every `/eve/v1/*` route under the deployed (or `pnpm dev`) app's base URL and maps Eve's wire events, `actions.requested`/`action.result` (tool visibility), `step.completed.usage`, `input.requested` (incl. two-option confirmations), onto `SwarmEvent`s, one notch richer than the opaque `engine-a2a`: `events.tier: 2`. Its capability descriptor is honest about the reduced-governance adapter tier: `kind: 'adapter'`, `governance` all `false`/`'none'` (the remote loop owns generation, the tool gate, cost caps, and its own secrets), `hitl.ask`/`hitl.approval` both `true` (Eve's `input.requested` maps onto our `ask`/answer loop), and `hitl.durableResume` STATICALLY `true`, Eve sessions park on durable Vercel Workflows, a fact of the remote protocol rather than something our storage configures. `cancellation: 'between-steps'` is a client-stream-stop-only honesty caveat: the remote durable turn may continue after we stop listening. Ships a `nightOwlsPlugin` manifest so `owl install engine-eve` wires `defineSwarm({ engine: eveEngine({ baseUrl: 'https://my-eve-app.vercel.app' }) })`.
Install
pnpm add @nightowlsdev/engine-eveKey exports
- eveEngine
- EveEngine
- EVE_ENGINE_CAPABILITIES
- createFetchEveTransport
- bearerToken / noneAuth / staticHeaders
- mapEveEvent
- extractEveUsage
- assertStreamVersion / parseNdjsonStream
- nightOwlsPlugin
Usage
import { defineSwarm } from "@nightowlsdev/core";
import { eveEngine, EVE_ENGINE_CAPABILITIES } from "@nightowlsdev/engine-eve";
// An ADAPTER over a deployed Vercel Eve app's NDJSON session, the loop runs on the remote
// (parked on durable Vercel Workflows); this renders it as one Night Owls agent.
const swarm = defineSwarm({ agents, engine: eveEngine({ baseUrl: "https://my-eve-app.vercel.app" }) });
// Tier-2 events (tool calls + usage visible) but reduced governance, the remote owns the gate.
console.log(EVE_ENGINE_CAPABILITIES.events.tier); // 2
console.log(EVE_ENGINE_CAPABILITIES.governance.costCaps); // false