UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines • 1.13 kB
import{createLogger}from"#internal/logging.js";import{buildSlackBinding}from"#public/channels/slack/api.js";import{buildSlackAuthContext}from"#public/channels/slack/auth.js";import{deriveHitlResponse}from"#public/channels/slack/hitl.js";const log=createLogger(`slack.interactions`);function approvalResponderStatePatch(e,t){if(t?.principalId!==void 0&&e.actions.some(e=>deriveHitlResponse(e)?.kind===`tool-approval`))return{approvalResponderUsers:{[t.principalId]:e.user.id}}}async function authorizeInputResponse(e){let t=buildSlackAuthContext({channelId:e.channelId,teamId:e.teamId,threadTs:e.threadTs,userId:e.submission.user.id,userName:e.submission.user.username??e.submission.user.name}),{thread:n,slack:r}=buildSlackBinding({botToken:e.deps.config.credentials?.botToken,channelId:e.channelId,threadTs:e.threadTs,installationTeamId:e.installationTeamId??void 0,teamId:e.teamId??void 0}),i={defaultAuth:t,slack:r,thread:n};try{return await e.deps.onInputResponse(i,e.submission)}catch(e){return log.error(`HITL input response authorization failed`,{error:e}),null}}export{approvalResponderStatePatch,authorizeInputResponse};