UNPKG

@adonis-agora/agent

Version:

Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.

47 lines • 2.07 kB
export async function resolveA2aAuth(auth, ctx) { return typeof auth === 'function' ? auth(ctx) : auth; } /** * Requires `@adonis-agora/authkit-server` 0.76 or later (its personal agents). Loaded lazily, like * the MCP `authKitAuth` driver, so it is not a declared peer. * * Authenticate A2A callers with AuthKit's personal agents (`personalAgents` in `config/authkit.ts`): * the agent's signed JWT, the delegation token beside it, the Agent Card security block, step-up * links and signed receipts — all from `@adonis-agora/authkit-server`, loaded lazily. */ export function authKitPersonalAgents() { return async ({ app }) => { const authkit = (await import('@adonis-agora/authkit-server')); const middleware = authkit.personalAgentAuth(); const delegableScopes = async () => { const service = (await app.container.make('authkit.server')); return { ...(service.config.personalAgents?.delegation?.scopes ?? {}) }; }; return { async authenticate(ctx) { let passed = false; await middleware(ctx, async () => { passed = true; }); const caller = passed ? authkit.personalAgentOf(ctx) : null; return caller ? { issuer: caller.issuer, sub: caller.sub, name: caller.name, delegation: caller.delegation, } : null; }, cardSecurity: (ctx, interfaceUrl) => authkit.personalAgentSecurity(ctx, { interfaceUrl }), async stepUp(ctx, missingScopes) { if (Object.keys(await delegableScopes()).length === 0) return null; return authkit.personalAgentStepUp(ctx, missingScopes); }, receipt: (ctx, input) => authkit.personalAgentReceipt(ctx, input), delegableScopes, }; }; } //# sourceMappingURL=auth.js.map