UNPKG

eve

Version:

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

10 lines 10.4 kB
import{d as e}from"../../_chunks/node/chunk-AYN7QRWH-B__hKQV7.js";var t=class extends Error{constructor(e){super(e),this.name=`SlackBlockError`}},n={actionId:255,actionsElements:25,blockId:255,blocks:50,buttonText:75,buttonUrl:3e3,buttonValue:2e3,chartDataPoints:20,chartLabel:20,chartsPerMessage:2,chartSegments:12,chartSeries:12,chartTitle:50,fields:10,fieldText:2e3,headerText:150,imageAlt:2e3,imageUrl:3e3,optionDescription:75,optionText:75,optionValue:150,options:100,placeholder:150,radioOptions:10,sectionText:3e3,tableChars:1e4,tableColumns:20,tablePageSize:100,tableRows:100,textObject:3e3},r=`input:`,i=`input-freeform:`,a=`input-freeform-submit`,o=`input-freeform-block`,s=`input-freeform-text`,ee=/^(?<requestId>.+):button:\d+$/u;function c(e){let t={text:{text:g(e.prompt,n.sectionText),type:`mrkdwn`},type:`section`},r=e.options??[];if(r.length===0)return[t,{elements:[p(e.requestId)],type:`actions`}];let i=e.allowFreeform?[p(e.requestId)]:[];if(e.display===`radio`)return[t,{elements:[te(e),...i],type:`actions`}];if(e.display===`select`)return[t,{elements:[h(e),...i],type:`actions`}];let a=i.length>0?n.actionsElements-1:n.actionsElements;return[t,{elements:r.slice(0,a).map((t,n)=>m(e.requestId,t,n)).concat(i),type:`actions`}]}function l(e){if(!e.actionId.startsWith(`input:`))return null;let t=e.actionId.slice(r.length);if(e.selectedOptionValue!==void 0)return t?{optionId:e.selectedOptionValue,requestId:t}:null;let n=ee.exec(t)?.groups?.requestId;return n&&e.value!==void 0?{optionId:e.value,requestId:n}:null}function u(e){let t=g(e.title??e.prompt??`Your answer`,24),r=[];return e.prompt&&r.push({text:{text:g(e.prompt,n.sectionText),type:`mrkdwn`},type:`section`}),r.push({block_id:o,element:{action_id:s,multiline:!0,type:`plain_text_input`},label:{text:`Answer`,type:`plain_text`},type:`input`}),{blocks:r,callback_id:a,close:{text:`Cancel`,type:`plain_text`},private_metadata:typeof e.metadata==`string`?e.metadata:JSON.stringify(e.metadata),submit:{text:`Submit`,type:`plain_text`},title:{text:t,type:`plain_text`},type:`modal`}}function d(e){return e.find(e=>e.blockId===`input-freeform-block`&&e.actionId===`input-freeform-text`)?.value}function f(e){let t=[];return e.promptBlock&&typeof e.promptBlock==`object`&&t.push(e.promptBlock),t.push({text:{text:`:white_check_mark: *${e.answer}*`,type:`mrkdwn`},type:`section`}),e.userId&&t.push({elements:[{text:`Answered by <@${e.userId}>`,type:`mrkdwn`}],type:`context`}),t}function p(e){return{action_id:`${i}${e}`,style:`primary`,text:{text:`Type your answer`,type:`plain_text`},type:`button`,value:e}}function m(e,t,i){return _({action_id:`${r}${e}:button:${i}`,style:t.style===`primary`||t.style===`danger`?t.style:void 0,text:{text:g(t.label,n.buttonText),type:`plain_text`},type:`button`,value:g(t.id,n.buttonValue)})}function h(e){let t=(e.options??[]).map(e=>({text:{text:g(e.label,n.optionText),type:`plain_text`},value:g(e.id,n.optionValue)}));return{action_id:`${r}${e.requestId}`,options:t.slice(0,n.options),placeholder:{text:`Choose an option`,type:`plain_text`},type:`static_select`}}function te(e){let t=(e.options??[]).map(e=>({text:{text:g(e.label,n.optionText),type:`plain_text`},value:g(e.id,n.optionValue)}));return t.length>n.radioOptions?h(e):{action_id:`${r}${e.requestId}`,options:t,type:`radio_buttons`}}function g(e,t){return e.length>t?e.slice(0,t):e}function _(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}var v=` `,y=/\{\{emoji:([a-zA-Z0-9_+-]+)\}\}/g;function b(e,t={}){let r=[],i={chartCount:0,convertEmoji:t.convertEmoji??w,maxBlocks:t.maxBlocks??n.blocks,usedTable:!1};e.title&&r.push({text:K(e.title,i.convertEmoji,n.headerText),type:`header`}),e.subtitle&&r.push({elements:[G(e.subtitle,i.convertEmoji,n.textObject)],type:`context`}),e.imageUrl&&r.push({alt_text:Y(i.convertEmoji(e.title||`Card image`),n.imageAlt),image_url:Y(e.imageUrl,n.imageUrl),type:`image`});for(let t of e.children)r.push(...T(t,i));return r.slice(0,i.maxBlocks)}var x=b;function S(e,t={}){let n=t.convertEmoji??w,r=[];e.title&&r.push(`*${n(e.title)}*`),e.subtitle&&r.push(n(e.subtitle));for(let t of e.children){let e=W(t,n);e&&r.push(e)}return r.join(` `)}var C=S;function w(e){return e.replace(y,`:$1:`)}function T(e,t){switch(e.type){case`actions`:return[k(e,t.convertEmoji)];case`chart`:return[z(e,t)];case`divider`:return[{type:`divider`}];case`fields`:return[L(e,t.convertEmoji)];case`image`:return[D(e,t.convertEmoji)];case`link`:return[O(e,t.convertEmoji)];case`section`:return e.children.flatMap(e=>T(e,t));case`table`:return R(e,t);case`text`:return[E(e,t.convertEmoji)];default:return Z(e)}}function E(t,r){let i=e(r(t.content));return t.style===`muted`?{elements:[G(i,e=>e,n.textObject)],type:`context`}:{text:G(t.style===`bold`?`*${i}*`:i,e=>e,n.sectionText),type:`section`}}function D(e,t){return{alt_text:Y(t(e.alt||`Image`),n.imageAlt),image_url:Y(e.url,n.imageUrl),type:`image`}}function O(e,t){return{text:G(`<${e.url}|${t(e.label)}>`,e=>e,n.sectionText),type:`section`}}function k(e,t){return{elements:e.children.slice(0,n.actionsElements).map(e=>A(e,t)),type:`actions`}}function A(e,t){switch(e.type){case`button`:return j(e,t);case`link-button`:return M(e,t);case`radio_select`:return P(e,t);case`select`:return N(e,t);default:return Z(e)}}function j(e,t){return Q({action_id:Y(e.id,n.actionId),style:J(e.style),text:K(e.label,t,n.buttonText),type:`button`,value:e.value===void 0?void 0:Y(e.value,n.buttonValue)})}function M(e,t){return Q({action_id:Y(e.id??`link-${e.url}`,n.actionId),style:J(e.style),text:K(e.label,t,n.buttonText),type:`button`,url:Y(e.url,n.buttonUrl)})}function N(e,t){let r=e.options.slice(0,n.options).map(e=>I(e,t,`plain_text`));return Q({action_id:Y(e.id,n.actionId),initial_option:F(r,e.initialOption),options:r,placeholder:e.placeholder?K(e.placeholder,t,n.placeholder):void 0,type:`static_select`})}function P(e,t){let r=e.options.slice(0,n.radioOptions).map(e=>I(e,t,`mrkdwn`));return Q({action_id:Y(e.id,n.actionId),initial_option:F(r,e.initialOption),options:r,type:`radio_buttons`})}function F(e,t){if(t===void 0)return;let r=Y(t,n.optionValue);return e.find(e=>e.value===r)}function I(e,t,r){return Q({description:e.description?{text:Y(t(e.description),n.optionDescription),type:r}:void 0,text:{text:Y(t(e.label),n.optionText),type:r},value:Y(e.value,n.optionValue)})}function L(t,r){return{fields:t.children.slice(0,n.fields).map(t=>G(`*${e(r(t.label))}* ${e(r(t.value))}`,e=>e,n.fieldText)),type:`section`}}function R(e,t){let r=[e.headers,...e.rows].flat().reduce((e,t)=>e+t.length,0);if(t.usedTable||e.rows.length+1>n.tableRows||e.headers.length>n.tableColumns||r>n.tableChars)return[{text:B($(e)),type:`section`}];t.usedTable=!0;let i=[e.headers.map(e=>q(e,t.convertEmoji)),...e.rows.map(e=>e.map(e=>q(e,t.convertEmoji)))];return e.rows.length===0?[Q({column_settings:e.align?.slice(0,n.tableColumns).map(e=>e?{align:e}:null),rows:i,type:`table`})]:[Q({caption:t.convertEmoji(e.caption||`Table`),page_size:e.pageSize===void 0?void 0:Math.min(n.tablePageSize,Math.max(1,Math.floor(e.pageSize))),rows:i,type:`data_table`})]}function z(e,t){let r=t.chartCount<n.chartsPerMessage?V(e,t.convertEmoji):null;return r?(t.chartCount+=1,r):{text:B(U(e)),type:`section`}}function B(e){let t=e=>`\`\`\` ${e} \`\`\``,r=n.sectionText-t(``).length;return{text:e.length>r?t(`${e.slice(0,r-1)}\u2026`):t(e),type:`mrkdwn`}}function V(e,t){let r=t(e.title);if(r.length===0||r.length>n.chartTitle)return null;let{chart:i}=e;if(i.type===`pie`)return i.segments.length>=1&&i.segments.length<=n.chartSegments&&i.segments.every(e=>H(e.label)&&e.value>0)?{chart:{segments:i.segments.map(e=>({label:e.label,value:e.value})),type:`pie`},title:r,type:`data_visualization`}:null;let{categories:a,series:o}=i;if(!(a.length>=1&&a.length<=n.chartDataPoints&&a.every(e=>H(e))&&new Set(a).size===a.length&&o.length>=1&&o.length<=n.chartSeries&&o.every(e=>H(e.name))&&new Set(o.map(e=>e.name)).size===o.length&&(i.xLabel===void 0||i.xLabel.length<=n.chartTitle)&&(i.yLabel===void 0||i.yLabel.length<=n.chartTitle)))return null;let s=[];for(let e of o){if(e.data.length!==a.length)return null;let t=new Map(e.data.map(e=>[e.label,e])),n=[];for(let e of a){let r=t.get(e);if(!r)return null;n.push({label:e,value:r.value})}s.push({data:n,name:e.name})}return{chart:{axis_config:Q({categories:a,x_label:i.xLabel,y_label:i.yLabel}),series:s,type:i.type},title:r,type:`data_visualization`}}function H(e){return e.length>=1&&e.length<=n.chartLabel}function U(e){let{chart:t,title:n}=e;return t.type===`pie`?`${n} ${$({headers:[`Label`,`Value`],rows:t.segments.map(e=>[e.label,String(e.value)]),type:`table`})}`:`${n} ${$({headers:[t.xLabel??``,...t.series.map(e=>e.name)],rows:t.categories.map(e=>[e,...t.series.map(t=>{let n=t.data.find(t=>t.label===e);return n?String(n.value):``})]),type:`table`})}`}function W(e,t){switch(e.type){case`actions`:return;case`chart`:return U(e);case`divider`:return`---`;case`fields`:return e.children.map(e=>`${t(e.label)}: ${t(e.value)}`).join(` `);case`image`:return e.alt?t(e.alt):void 0;case`link`:return`${t(e.label)} (${e.url})`;case`section`:return e.children.map(e=>W(e,t)).filter(e=>!!e).join(` `);case`table`:return $(e);case`text`:return t(e.content);default:return Z(e)}}function G(e,t,n){return{text:X(Y(t(e),n)),type:`mrkdwn`}}function K(e,t,n){return{emoji:!0,text:X(Y(t(e),n)),type:`plain_text`}}function q(e,t){return{text:X(t(e)),type:`raw_text`}}function J(e){return e===`danger`||e===`primary`?e:void 0}function Y(e,t){return e.length>t?e.slice(0,t):e}function X(e){return e.length>0?e:v}function Z(e){throw new t(`Unsupported Slack card element: ${String(e)}`)}function Q(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r);return t}function $(e){let t=[e.headers,...e.rows],n=e.headers.map((e,n)=>Math.max(...t.map(e=>e[n]?.length??0)));return t.map(e=>e.map((e,t)=>(e??``).padEnd(n[t]??0)).join(` | `).trimEnd()).join(` `)}export{s as SLACK_FREEFORM_ACTION_ID,i as SLACK_FREEFORM_ACTION_PREFIX,o as SLACK_FREEFORM_BLOCK_ID,a as SLACK_FREEFORM_CALLBACK_ID,r as SLACK_INPUT_ACTION_PREFIX,t as SlackBlockError,f as answeredSlackInputBlocks,u as buildSlackFreeformView,x as cardToBlockKit,C as cardToFallbackText,b as cardToSlackBlocks,S as cardToSlackFallbackText,w as convertSlackEmojiPlaceholders,c as inputRequestToSlackBlocks,d as parseSlackFreeformValue,l as parseSlackInputResponse};