twenty-sdk 2.57.0 → 2.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@sniptt/guards"),t=require("twenty-client-sdk/metadata"),n=require("twenty-client-sdk/rest");var r=t=>!(0,e.isUndefined)(t)&&!(0,e.isNull)(t),i=t=>{let n={type:`unknown`};switch(t.type){case`string`:n.type=`string`;break;case`number`:case`integer`:n.type=`number`;break;case`boolean`:n.type=`boolean`;break;case`array`:n.type=`array`,t.items&&(n.items=i(t.items));break;case`object`:n.type=`object`,t.properties&&(n.properties=Object.fromEntries(Object.entries(t.properties).map(([e,t])=>[e,i(t)])));break;case`record`:n.type=`record`;break;case`records`:n.type=`records`;break;default:n.type=`unknown`}return Array.isArray(t.enum)&&(n.enum=t.enum.filter(e=>typeof e==`string`)),t.multiline===!0&&(n.multiline=!0),(0,e.isNonEmptyString)(t.label)&&(n.label=t.label),(0,e.isNonEmptyString)(t.objectUniversalIdentifier)&&(n.objectUniversalIdentifier=t.objectUniversalIdentifier),n},a=e=>[i(e)];a({type:`object`,properties:{a:{type:`string`},b:{type:`number`}}});var o=`RetryableLogicFunctionError`,s=class extends Error{constructor(e){super(e),this.name=o}},c=class extends Error{constructor(e){super(`App connection ${e} requires the user to reconnect (authFailedAt is set). Surface a "Reconnect" prompt in your UI.`),this.name=`AppConnectionAuthFailedError`,this.connectionId=e}},l={user:`USER`,workspace:`WORKSPACE`},u=`TWENTY_API_URL`,d=`TWENTY_APP_ACCESS_TOKEN`,f=`TWENTY_APP_APPLICATION_ACCESS_TOKEN`,p={USER:`user`,WORKSPACE:`workspace`},m=e=>({...e,visibility:p[e.scope]}),h=()=>process.env.TWENTY_APP_APPLICATION_ACCESS_TOKEN??process.env.TWENTY_APP_ACCESS_TOKEN,g=()=>process.env.TWENTY_APP_ACCESS_TOKEN??process.env.TWENTY_APP_APPLICATION_ACCESS_TOKEN,_=({caller:t,isActingAsCaller:n=!1})=>{let r=process.env[u],i=n?g():h();if(!(0,e.isNonEmptyString)(r)||!(0,e.isNonEmptyString)(i))throw Error(`${t}() requires the app runtime env vars ${u} and ${f} (or ${d}).`);return{apiUrl:r,accessToken:i}},v=async({query:e,variables:t,caller:n,signal:r,isActingAsCaller:i=!1})=>{let{apiUrl:a,accessToken:o}=_({caller:n,isActingAsCaller:i}),s=await fetch(`${a}/metadata`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${o}`},body:JSON.stringify({query:e,variables:t}),signal:r});if(!s.ok)throw Error(`${n}() failed: HTTP ${s.status} ${s.statusText}`);let c=await s.json();if(c.errors&&c.errors.length>0)throw Error(`${n}() failed: ${c.errors.map(e=>e.message).join(`, `)}`);if(!c.data)throw Error(`${n}() failed: response contained no data.`);return c.data},ee=`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@sniptt/guards"),t=require("twenty-client-sdk/metadata"),n=require("twenty-client-sdk/rest");var r=t=>!(0,e.isUndefined)(t)&&!(0,e.isNull)(t),i=t=>{let n={type:`unknown`};switch(t.type){case`string`:n.type=`string`;break;case`number`:case`integer`:n.type=`number`;break;case`boolean`:n.type=`boolean`;break;case`array`:n.type=`array`,t.items&&(n.items=i(t.items));break;case`object`:n.type=`object`,t.properties&&(n.properties=Object.fromEntries(Object.entries(t.properties).map(([e,t])=>[e,i(t)])));break;case`record`:n.type=`record`;break;case`records`:n.type=`records`;break;default:n.type=`unknown`}return Array.isArray(t.enum)&&(n.enum=t.enum.filter(e=>typeof e==`string`)),t.multiline===!0&&(n.multiline=!0),(0,e.isNonEmptyString)(t.label)&&(n.label=t.label),(0,e.isNonEmptyString)(t.objectUniversalIdentifier)&&(n.objectUniversalIdentifier=t.objectUniversalIdentifier),n},a=e=>[i(e)],o=`RetryableLogicFunctionError`,s=class extends Error{constructor(e){super(e),this.name=o}},c=class extends Error{constructor(e){super(`App connection ${e} requires the user to reconnect (authFailedAt is set). Surface a "Reconnect" prompt in your UI.`),this.name=`AppConnectionAuthFailedError`,this.connectionId=e}},l={user:`USER`,workspace:`WORKSPACE`},u=`TWENTY_API_URL`,d=`TWENTY_APP_ACCESS_TOKEN`,f=`TWENTY_APP_APPLICATION_ACCESS_TOKEN`,p=`TWENTY_INTERNAL_API_URL`,m={USER:`user`,WORKSPACE:`workspace`},h=t=>{let n=t[p];return(0,e.isNonEmptyString)(n)?n:t[u]},g=e=>({...e,visibility:m[e.scope]}),_=()=>process.env.TWENTY_APP_APPLICATION_ACCESS_TOKEN??process.env.TWENTY_APP_ACCESS_TOKEN,ee=()=>process.env.TWENTY_APP_ACCESS_TOKEN??process.env.TWENTY_APP_APPLICATION_ACCESS_TOKEN,v=({caller:t,isActingAsCaller:n=!1})=>{let r=h(process.env),i=n?ee():_();if(!(0,e.isNonEmptyString)(r)||!(0,e.isNonEmptyString)(i))throw Error(`${t}() requires the app runtime env vars ${u} and ${f} (or ${d}).`);return{apiUrl:r,accessToken:i}},y=async({query:e,variables:t,caller:n,signal:r,isActingAsCaller:i=!1})=>{let{apiUrl:a,accessToken:o}=v({caller:n,isActingAsCaller:i}),s=await fetch(`${a}/metadata`,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${o}`},body:JSON.stringify({query:e,variables:t}),signal:r});if(!s.ok)throw Error(`${n}() failed: HTTP ${s.status} ${s.statusText}`);let c=await s.json();if(c.errors&&c.errors.length>0)throw Error(`${n}() failed: ${c.errors.map(e=>e.message).join(`, `)}`);if(!c.data)throw Error(`${n}() failed: response contained no data.`);return c.data},b=`
2
2
  query GetAppConnection($id: ID!) {
3
3
  appConnection(id: $id) {
4
4
  id
@@ -16,7 +16,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
16
16
  authFailedReason
17
17
  }
18
18
  }
19
- `,y=async e=>{let{appConnection:t}=await v({query:ee,variables:{id:e},caller:`getConnection`});if(t.authFailedAt!==null)throw new c(t.id);return m(t)},b=({objectNameSingular:e,recordId:t,displayName:n})=>`[[record:${e}:${t}:${n}]]`,x=t=>(0,e.isNonEmptyString)(t)?t.charAt(0).toUpperCase()+t.slice(1):``,S=`
19
+ `,x=async e=>{let{appConnection:t}=await y({query:b,variables:{id:e},caller:`getConnection`});if(t.authFailedAt!==null)throw new c(t.id);return g(t)},S=t=>(0,e.isNonEmptyString)(t)?t.charAt(0).toUpperCase()+t.slice(1):``,C=({objectNameSingular:e,recordId:t,displayName:n})=>`[[record:${e}:${t}:${n}]]`,w=`
20
20
  query ListAppConnections($filter: ListAppConnectionsInput) {
21
21
  appConnections(filter: $filter) {
22
22
  id
@@ -34,11 +34,11 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
34
34
  authFailedReason
35
35
  }
36
36
  }
37
- `,C=async({visibility:e,...t}={})=>{let{appConnections:n}=await v({query:S,variables:{filter:{...t,scope:t.scope??(r(e)?l[e]:void 0)}},caller:`listConnections`});return n.map(m)},w=(e,t)=>{if(t.userWorkspaceId!==null){let n=e.find(e=>e.scope===`USER`&&e.userWorkspaceId===t.userWorkspaceId);if(n)return n}return e.find(e=>e.scope===`WORKSPACE`)??null},te=`
37
+ `,te=async({visibility:e,...t}={})=>{let{appConnections:n}=await y({query:w,variables:{filter:{...t,scope:t.scope??(r(e)?l[e]:void 0)}},caller:`listConnections`});return n.map(g)},ne=(e,t)=>{if(t.userWorkspaceId!==null){let n=e.find(e=>e.scope===`USER`&&e.userWorkspaceId===t.userWorkspaceId);if(n)return n}return e.find(e=>e.scope===`WORKSPACE`)??null},re=`
38
38
  mutation ReportAppConnectionAuthFailure($input: ReportAppConnectionAuthFailureInput!) {
39
39
  reportAppConnectionAuthFailure(input: $input)
40
40
  }
41
- `,ne=async({connectionId:e,reason:t})=>{await v({query:te,variables:{input:{id:e,reason:t}},caller:`reportConnectionAuthFailure`})},T=`
41
+ `,ie=async({connectionId:e,reason:t})=>{await y({query:re,variables:{input:{id:e,reason:t}},caller:`reportConnectionAuthFailure`})},T=`
42
42
  id
43
43
  handle
44
44
  displayName
@@ -47,31 +47,31 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
47
47
  isSyncEnabled
48
48
  participantHandleFieldUniversalIdentifier
49
49
  messagingProviderUniversalIdentifier
50
- `,re=`
50
+ `,ae=`
51
51
  mutation CreateAppMessageChannel($input: CreateAppMessageChannelInput!) {
52
52
  createAppMessageChannel(input: $input) {
53
53
  ${T}
54
54
  }
55
55
  }
56
- `,ie=async({messagingProvider:e,...t})=>{let{createAppMessageChannel:n}=await v({query:re,variables:{input:{...t,messagingProviderUniversalIdentifier:e?.universalIdentifier}},caller:`createMessageChannel`});return n},ae=`
56
+ `,oe=async({messagingProvider:e,...t})=>{let{createAppMessageChannel:n}=await y({query:ae,variables:{input:{...t,messagingProviderUniversalIdentifier:e?.universalIdentifier}},caller:`createMessageChannel`});return n},se=`
57
57
  query ListAppMessageChannels($filter: ListAppMessageChannelsInput) {
58
58
  appMessageChannels(filter: $filter) {
59
59
  ${T}
60
60
  }
61
61
  }
62
- `,oe=async(e={})=>{let{appMessageChannels:t}=await v({query:ae,variables:{filter:e},caller:`listMessageChannels`});return t},se=`
62
+ `,ce=async(e={})=>{let{appMessageChannels:t}=await y({query:se,variables:{filter:e},caller:`listMessageChannels`});return t},le=`
63
63
  mutation UpdateAppMessageChannel($input: UpdateAppMessageChannelInput!) {
64
64
  updateAppMessageChannel(input: $input) {
65
65
  ${T}
66
66
  }
67
67
  }
68
- `,ce=async({messagingProvider:e,...t})=>{let{updateAppMessageChannel:n}=await v({query:se,variables:{input:{...t,messagingProviderUniversalIdentifier:e===void 0?void 0:e?.universalIdentifier??null}},caller:`updateMessageChannel`});return n},le=`
68
+ `,E=async({messagingProvider:e,...t})=>{let{updateAppMessageChannel:n}=await y({query:le,variables:{input:{...t,messagingProviderUniversalIdentifier:e===void 0?void 0:e?.universalIdentifier??null}},caller:`updateMessageChannel`});return n},D=`
69
69
  mutation DeleteAppMessageChannel($id: UUID!) {
70
70
  deleteAppMessageChannel(id: $id) {
71
71
  ${T}
72
72
  }
73
73
  }
74
- `,E=async e=>{let{deleteAppMessageChannel:t}=await v({query:le,variables:{id:e},caller:`deleteMessageChannel`});return t},D=`
74
+ `,O=async e=>{let{deleteAppMessageChannel:t}=await y({query:D,variables:{id:e},caller:`deleteMessageChannel`});return t},k=`
75
75
  mutation IngestAppMessages($input: IngestAppMessagesInput!) {
76
76
  ingestAppMessages(input: $input) {
77
77
  messages {
@@ -82,25 +82,25 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
82
82
  }
83
83
  }
84
84
  }
85
- `,O=async({messageChannelId:e,messages:t})=>{let{ingestAppMessages:n}=await v({query:D,variables:{input:{messageChannelId:e,messages:t}},caller:`ingestMessages`});return n.messages},k=`20202020-15db-460e-8166-c7b5d87ad4be`,A=255,j=async({filename:n,content:r,signal:i})=>{if(!(0,e.isNonEmptyString)(n)||n.length>A)throw Error(`uploadMessageAttachment() failed: filename must be 1 to ${A} characters long`);let{apiUrl:a,accessToken:o}=_({caller:`uploadMessageAttachment`});return{fileId:(await new t.MetadataApiClient({url:`${a}/metadata`,headers:{Authorization:`Bearer ${o}`},fetch:(e,t)=>fetch(e,{...t,signal:i})}).uploadFile({fileBuffer:r,filename:n,fieldMetadataUniversalIdentifier:k})).id,label:n}},M=`
85
+ `,A=async({messageChannelId:e,messages:t})=>{let{ingestAppMessages:n}=await y({query:k,variables:{input:{messageChannelId:e,messages:t}},caller:`ingestMessages`});return n.messages},j=`20202020-15db-460e-8166-c7b5d87ad4be`,M=255,N=async({filename:n,content:r,signal:i})=>{if(!(0,e.isNonEmptyString)(n)||n.length>M)throw Error(`uploadMessageAttachment() failed: filename must be 1 to ${M} characters long`);let{apiUrl:a,accessToken:o}=v({caller:`uploadMessageAttachment`});return{fileId:(await new t.MetadataApiClient({url:`${a}/metadata`,headers:{Authorization:`Bearer ${o}`},fetch:(e,t)=>fetch(e,{...t,signal:i})}).uploadFile({fileBuffer:r,filename:n,fieldMetadataUniversalIdentifier:j})).id,label:n}},P=`
86
86
  id
87
87
  externalId
88
88
  name
89
89
  isSynced
90
90
  messageChannelId
91
- `,N=`
91
+ `,F=`
92
92
  query ListAppMessageFolders($filter: ListAppMessageFoldersInput) {
93
93
  appMessageFolders(filter: $filter) {
94
- ${M}
94
+ ${P}
95
95
  }
96
96
  }
97
- `,P=async(e={})=>{let{appMessageFolders:t}=await v({query:N,variables:{filter:e},caller:`listMessageFolders`});return t},F=`
97
+ `,I=async(e={})=>{let{appMessageFolders:t}=await y({query:F,variables:{filter:e},caller:`listMessageFolders`});return t},L=`
98
98
  mutation SyncAppMessageFolders($input: SyncAppMessageFoldersInput!) {
99
99
  syncAppMessageFolders(input: $input) {
100
- ${M}
100
+ ${P}
101
101
  }
102
102
  }
103
- `,I=async e=>{let{syncAppMessageFolders:t}=await v({query:F,variables:{input:e},caller:`syncMessageFolders`});return t},L=t=>(0,e.isString)(t)?[{role:`user`,content:t}]:t,R=`
103
+ `,R=async e=>{let{syncAppMessageFolders:t}=await y({query:L,variables:{input:e},caller:`syncMessageFolders`});return t},z=t=>(0,e.isString)(t)?[{role:`user`,content:t}]:t,B=`
104
104
  mutation RunAgent($input: RunAgentInput!) {
105
105
  runAgent(input: $input) {
106
106
  threadId
@@ -111,7 +111,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
111
111
  success
112
112
  }
113
113
  }
114
- `,z=async({input:e,...t})=>{let{runAgent:n}=await v({query:R,variables:{input:r(e)?{...t,input:L(e)}:t},caller:`runAgent`});return n},B=`agentChatAssistant`,V=`(?:[^\\[\\]\\n\\r]|\\[[^\\[\\]\\n\\r]*\\])*`;RegExp(`^${V}$`);var H=e=>e.type===`message-persisted`&&r(e.turnId)||e.type===`stream-ended`||e.type===`run-finished`||e.type===`credits-exhausted`||e.type===`stream-error`,U=e=>{let t=e.providerMetadata??void 0;switch(e.type){case`text`:return{type:`text`,text:e.textContent??``};case`reasoning`:return{type:`reasoning`,text:e.reasoningContent??``,state:e.state??`done`,providerMetadata:t};case`file`:return{type:`file`,mediaType:e.fileMediaType??`application/octet-stream`,filename:e.fileFilename??``,url:e.fileUrl??``,fileId:e.fileId??``};case`source-url`:return{type:`source-url`,sourceId:e.sourceUrlSourceId??``,url:e.sourceUrlUrl??``,title:e.sourceUrlTitle??``,providerMetadata:t};case`source-document`:return{type:`source-document`,sourceId:e.sourceDocumentSourceId??``,mediaType:e.sourceDocumentMediaType??``,title:e.sourceDocumentTitle??``,filename:e.sourceDocumentFilename??``,providerMetadata:t};case`step-start`:return{type:`step-start`};default:{let t=e.type.startsWith(`tool-`),n=e.type===`dynamic-tool`;return!t&&!n||!r(e.toolCallId)?null:{type:e.type,...n&&{toolName:e.toolName??``},toolCallId:e.toolCallId,input:e.toolInput??{},output:e.toolOutput,errorText:e.errorMessage??``,state:e.state,...r(e.providerExecuted)&&{providerExecuted:e.providerExecuted},...r(e.providerMetadata)&&{callProviderMetadata:e.providerMetadata}}}}},W=e=>e.map(e=>({id:e.id,role:e.role,status:e.status,parts:[...e.parts].sort((e,t)=>e.orderIndex-t.orderIndex).map(U).filter(r),metadata:{createdAt:e.createdAt,senderWorkspaceMemberId:e.senderWorkspaceMemberId,turnId:e.turnId,...e.role===`assistant`?{startedAt:e.createdAt,finishedAt:e.processedAt??void 0}:{}},threadId:e.threadId}));RegExp(`^record:${B}:${B}:(${V})$`);var ue=`
114
+ `,V=async({input:e,...t})=>{let{runAgent:n}=await y({query:B,variables:{input:r(e)?{...t,input:z(e)}:t},caller:`runAgent`});return n},H=`agentChatAssistant`,U=e=>e.type===`message-persisted`&&r(e.turnId)||e.type===`stream-ended`||e.type===`run-finished`||e.type===`credits-exhausted`||e.type===`stream-error`,W=e=>{let t=e.providerMetadata??void 0;switch(e.type){case`text`:return{type:`text`,text:e.textContent??``};case`reasoning`:return{type:`reasoning`,text:e.reasoningContent??``,state:e.state??`done`,providerMetadata:t};case`file`:return{type:`file`,mediaType:e.fileMediaType??`application/octet-stream`,filename:e.fileFilename??``,url:e.fileUrl??``,fileId:e.fileId??``};case`source-url`:return{type:`source-url`,sourceId:e.sourceUrlSourceId??``,url:e.sourceUrlUrl??``,title:e.sourceUrlTitle??``,providerMetadata:t};case`source-document`:return{type:`source-document`,sourceId:e.sourceDocumentSourceId??``,mediaType:e.sourceDocumentMediaType??``,title:e.sourceDocumentTitle??``,filename:e.sourceDocumentFilename??``,providerMetadata:t};case`step-start`:return{type:`step-start`};default:{let t=e.type.startsWith(`tool-`),n=e.type===`dynamic-tool`;return!t&&!n||!r(e.toolCallId)?null:{type:e.type,...n&&{toolName:e.toolName??``},toolCallId:e.toolCallId,input:e.toolInput??{},output:e.toolOutput,errorText:e.errorMessage??``,state:e.state,...r(e.providerExecuted)&&{providerExecuted:e.providerExecuted},...r(e.providerMetadata)&&{callProviderMetadata:e.providerMetadata}}}}},ue=e=>e.map(e=>({id:e.id,role:e.role,status:e.status,parts:[...e.parts].sort((e,t)=>e.orderIndex-t.orderIndex).map(W).filter(r),metadata:{createdAt:e.createdAt,senderWorkspaceMemberId:e.senderWorkspaceMemberId,senderApplicationId:e.senderApplicationId,agentId:e.agentId,isBuiltInAssistant:e.isBuiltInAssistant,turnId:e.turnId,...e.role===`assistant`?{startedAt:e.createdAt,finishedAt:e.processedAt??void 0}:{}},threadId:e.threadId})),de=`
115
115
  query ConversationMessages($agentUniversalIdentifier: UUID!, $threadKey: String!) {
116
116
  messages: chatMessages(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
117
117
  id
@@ -157,20 +157,20 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
157
157
  }
158
158
  }
159
159
  }
160
- `,de=async e=>{let{messages:t,streamCatchup:n}=await v({query:ue,variables:e,caller:`listConversationMessages`});return{messages:W(t),streamCatchup:n}},G=t=>(0,e.isObject)(t)&&!(0,e.isArray)(t),K=t=>t.map(t=>G(t)&&(0,e.isString)(t.message)?t.message:JSON.stringify(t)),fe=t=>G(t)&&(0,e.isString)(t.type),pe=({block:t,caller:n})=>{let r=t.split(`
160
+ `,fe=async e=>{let{messages:t,streamCatchup:n}=await y({query:de,variables:e,caller:`listConversationMessages`});return{messages:ue(t),streamCatchup:n}},G=t=>(0,e.isObject)(t)&&!(0,e.isArray)(t),K=t=>t.map(t=>G(t)&&(0,e.isString)(t.message)?t.message:JSON.stringify(t)),pe=t=>G(t)&&(0,e.isString)(t.type),me=({block:t,caller:n})=>{let r=t.split(`
161
161
  `);if(r.includes(`event: complete`))return{type:`complete`};let i=r.filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
162
- `);if(!(0,e.isNonEmptyString)(i))return null;let a=JSON.parse(i);if(!G(a))throw Error(`${n}() failed: unexpected result ${i}`);if((0,e.isArray)(a.errors))return{type:`errors`,messages:K(a.errors)};let o=G(a.data)&&G(a.data.onAgentChatEvent)?a.data.onAgentChatEvent.event:void 0;if(!fe(o))throw Error(`${n}() failed: unexpected result ${i}`);return{type:`event`,event:o}},me=async t=>{let n=await t.json().catch(()=>void 0);return G(n)&&(0,e.isArray)(n.errors)?K(n.errors).join(`, `):`HTTP ${t.status} ${t.statusText}`};async function*q({query:e,variables:t,caller:n,signal:i,closedEarlyAdvice:a=``,isActingAsCaller:o=!1}){let{apiUrl:s,accessToken:c}=_({caller:n,isActingAsCaller:o}),l;if(!i?.aborted)try{let o=await fetch(`${s}/metadata`,{method:`POST`,headers:{Accept:`text/event-stream`,"Content-Type":`application/json`,Authorization:`Bearer ${c}`},body:JSON.stringify({query:e,variables:t}),signal:i});if(!o.ok||!r(o.body))throw Error(`${n}() failed: ${await me(o)}`);l=o.body.pipeThrough(new TextDecoderStream).getReader();let u=``;for(;;){let{done:e,value:t}=await l.read();if(e)throw Error(`${n}() failed: the stream closed early${a}`);u=(u+t).replace(/\r\n/g,`
162
+ `);if(!(0,e.isNonEmptyString)(i))return null;let a=JSON.parse(i);if(!G(a))throw Error(`${n}() failed: unexpected result ${i}`);if((0,e.isArray)(a.errors))return{type:`errors`,messages:K(a.errors)};let o=G(a.data)&&G(a.data.onAgentChatEvent)?a.data.onAgentChatEvent.event:void 0;if(!pe(o))throw Error(`${n}() failed: unexpected result ${i}`);return{type:`event`,event:o}},he=async t=>{let n=await t.json().catch(()=>void 0);return G(n)&&(0,e.isArray)(n.errors)?K(n.errors).join(`, `):`HTTP ${t.status} ${t.statusText}`};async function*q({query:e,variables:t,caller:n,signal:i,closedEarlyAdvice:a=``,isActingAsCaller:o=!1}){let{apiUrl:s,accessToken:c}=v({caller:n,isActingAsCaller:o}),l;if(!i?.aborted)try{let o=await fetch(`${s}/metadata`,{method:`POST`,headers:{Accept:`text/event-stream`,"Content-Type":`application/json`,Authorization:`Bearer ${c}`},body:JSON.stringify({query:e,variables:t}),signal:i});if(!o.ok||!r(o.body))throw Error(`${n}() failed: ${await he(o)}`);l=o.body.pipeThrough(new TextDecoderStream).getReader();let u=``;for(;;){let{done:e,value:t}=await l.read();if(e)throw Error(`${n}() failed: the stream closed early${a}`);u=(u+t).replace(/\r\n/g,`
163
163
  `);let r=u.indexOf(`
164
164
 
165
- `);for(;r!==-1;){let e=pe({block:u.slice(0,r),caller:n});if(u=u.slice(r+2),r=u.indexOf(`
165
+ `);for(;r!==-1;){let e=me({block:u.slice(0,r),caller:n});if(u=u.slice(r+2),r=u.indexOf(`
166
166
 
167
- `),e?.type===`complete`)return;if(e?.type===`errors`)throw Error(`${n}() failed: ${e.messages.join(`, `)}`);e?.type===`event`&&(yield e.event)}}}catch(e){if(i?.aborted)return;throw e}finally{await l?.cancel().catch(()=>{})}}var he=`
167
+ `),e?.type===`complete`)return;if(e?.type===`errors`)throw Error(`${n}() failed: ${e.messages.join(`, `)}`);e?.type===`event`&&(yield e.event)}}}catch(e){if(i?.aborted)return;throw e}finally{await l?.cancel().catch(()=>{})}}var ge=`
168
168
  subscription OnAgentChatEvent($agentUniversalIdentifier: UUID!, $threadKey: String!) {
169
169
  onAgentChatEvent(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
170
170
  event
171
171
  }
172
172
  }
173
- `,ge=({signal:e,...t})=>q({query:he,variables:t,caller:`streamConversation`,signal:e,closedEarlyAdvice:`; read the history and stream again to resume`}),_e=`
173
+ `,_e=({signal:e,...t})=>q({query:ge,variables:t,caller:`streamConversation`,signal:e,closedEarlyAdvice:`; read the history and stream again to resume`}),ve=`
174
174
  mutation Generate($input: GenerateInput!) {
175
175
  generate(input: $input) {
176
176
  success
@@ -184,13 +184,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
184
184
  }
185
185
  }
186
186
  }
187
- `,ve=`
187
+ `,ye=`
188
188
  subscription OnAgentRunEvent($runId: UUID!) {
189
189
  onAgentChatEvent(runId: $runId) {
190
190
  event
191
191
  }
192
192
  }
193
- `,ye=5e3,J=async({variables:e,signal:t})=>{let{generate:n}=await v({query:_e,variables:e,caller:`ai.generate`,signal:t,isActingAsCaller:!0});return n},be=t=>(0,e.isString)(t.type),Y=e=>{let t,n=!0;return{quiet:new Promise(r=>{e.then(()=>{n&&(t=setTimeout(()=>r(void 0),ye))},()=>void 0)}),stop:()=>{n=!1,clearTimeout(t)}}},xe=async({variables:e,onChunk:t,signal:n})=>{let i=crypto.randomUUID(),a=new AbortController,o=r(n)?AbortSignal.any([n,a.signal]):a.signal,s=new Promise((e,t)=>n?.addEventListener(`abort`,()=>t(n.reason),{once:!0,signal:a.signal}));s.catch(()=>void 0);try{let a=q({query:ve,variables:{runId:i},caller:`ai.generate`,signal:o,isActingAsCaller:!0});if((await a.next()).done)throw n?.throwIfAborted(),Error(`ai.generate() failed: the stream ended before the run`);let c=J({variables:{input:{...e.input,runId:i}},signal:o}),[l]=await Promise.race([Promise.all([c,(async()=>{let e=Y(c);try{for(;;){let n=await Promise.race([a.next(),e.quiet]).catch(()=>void 0);if(!r(n)||n.done||o.aborted||H(n.value))return;n.value.type===`stream-chunk`&&be(n.value.chunk)&&(e.stop(),await t(n.value.chunk),e=Y(c))}}finally{e.stop(),a.return(void 0).catch(()=>void 0)}})()]),s]);return n?.throwIfAborted(),l}finally{a.abort()}},Se={generate:async({input:e,onChunk:t,signal:n,...i})=>{let a={input:{...i,input:L(e)}};return r(t)?xe({variables:a,onChunk:t,signal:n}):J({variables:a,signal:n})}},Ce=async e=>{let{sendInboxMessage:n}=await new t.MetadataApiClient().mutation({sendInboxMessage:{__args:{input:e},threadId:!0}});return n},we=/\[/g,Te=/\]/g,Ee=/\r?\n/g,X=e=>e.replace(we,`(`).replace(Te,`)`).replace(Ee,` `).trim(),De=async({workspaceMemberId:t})=>{let{data:{workspaceMember:r}}=await new n.RestApiClient().get(`/rest/workspaceMembers/${t}`),i=`${r.name.firstName??``} ${r.name.lastName??``}`.trim();return b({objectNameSingular:`workspaceMember`,recordId:t,displayName:X((0,e.isNonEmptyString)(i)?i:r.userEmail)})},Z=({fullName:t,partName:n})=>{let r=(0,e.isObject)(t)?Reflect.get(t,n):void 0;return(0,e.isString)(r)?r:``},Oe=({record:e,recordId:t,labelIdentifierField:n})=>{if(!r(n))return t;let i=e[n.name];return n.type===`FULL_NAME`?`${Z({fullName:i,partName:`firstName`})} ${Z({fullName:i,partName:`lastName`})}`.trim():r(i)?String(i):``},ke=async({metadataClient:e,objectMetadata:t})=>{if(!r(t.labelIdentifierFieldMetadataId))return;let{object:n}=await e.query({object:{__args:{id:t.id},fields:{__args:{filter:{id:{eq:t.labelIdentifierFieldMetadataId}},paging:{first:1}},edges:{node:{name:!0,type:!0}}}}});return n.fields.edges[0]?.node},Ae=1e3,je=async({metadataClient:e,objectNameSingular:t})=>{let{objects:n}=await e.query({objects:{__args:{filter:{},paging:{first:Ae}},edges:{node:{id:!0,nameSingular:!0,namePlural:!0,labelIdentifierFieldMetadataId:!0}}}}),i=n.edges.find(({node:e})=>e.nameSingular===t)?.node;if(!r(i))throw Error(`This workspace has no ${t} object.`);return i},Me=async({objectNameSingular:e,recordId:r})=>{let i=new t.MetadataApiClient,a=await je({metadataClient:i,objectNameSingular:e}),[o,s]=await Promise.all([ke({metadataClient:i,objectMetadata:a}),new n.RestApiClient().get(`/rest/${a.namePlural}/${r}`)]);return b({objectNameSingular:e,recordId:r,displayName:X(Oe({record:s.data[e],recordId:r,labelIdentifierField:o}))})},Ne=b({objectNameSingular:B,recordId:B,displayName:`Ada`}),Pe=async e=>{await new t.MetadataApiClient().mutation({attachRecordToInboxThread:{__args:{input:e}}})},Fe=async e=>{await new t.MetadataApiClient().mutation({detachRecordFromInboxThread:{__args:{input:e}}})},Q=async e=>{let{enqueueJob:n}=await new t.MetadataApiClient().mutation({enqueueJob:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,jobId:!0}});return n},Ie=async e=>{let{enqueueJobs:n}=await new t.MetadataApiClient().mutation({enqueueJobs:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,enqueuedJobsCount:!0,jobIds:!0,jobs:{jobId:!0,sizeBytes:!0},availableBytes:!0}});return n},Le=async e=>{let{getJobs:n}=await new t.MetadataApiClient().query({getJobs:{__args:{jobIds:e},jobId:!0,state:!0,attemptsMade:!0,failedReason:!0,enqueuedAt:!0,startedAt:!0,finishedAt:!0}});return n},Re=e=>({__args:{paging:{first:e.length},filter:{universalIdentifier:{in:e}}},edges:{node:{id:!0,universalIdentifier:!0,nameSingular:!0}}}),ze=async({timelineActivityTypeUniversalIdentifier:e,targetObjectUniversalIdentifier:i,linkedObjectMetadataUniversalIdentifier:a,targetRecordId:o,...s})=>{let c=[...new Set([i,a].filter(r))],{timelineActivityTypes:l,objects:u}=await new t.MetadataApiClient().query({timelineActivityTypes:{id:!0,universalIdentifier:!0,isActive:!0},objects:Re(c)}),d=l.find(({universalIdentifier:t})=>t===e);if(!r(d))throw Error(`Timeline activity type ${e} is not installed`);if(!d.isActive)throw Error(`Timeline activity type ${e} is inactive`);let f=new Map(u.edges.map(({node:e})=>[e.universalIdentifier,e])),p=f.get(i);if(!r(p))throw Error(`Timeline activity target object ${i} is not installed`);let m=`target${x(p.nameSingular)}Id`,h=r(a)?f.get(a):void 0;if(r(a)&&!r(h))throw Error(`Timeline activity linked object ${a} is not installed`);return(await new n.RestApiClient().post(`/rest/timelineActivities`,{...s,timelineActivityTypeId:d.id,linkedObjectMetadataId:h?.id,[m]:o})).data.createTimelineActivity},Be=`
193
+ `,be=5e3,J=async({variables:e,signal:t})=>{let{generate:n}=await y({query:ve,variables:e,caller:`ai.generate`,signal:t,isActingAsCaller:!0});return n},xe=t=>(0,e.isString)(t.type),Y=e=>{let t,n=!0;return{quiet:new Promise(r=>{e.then(()=>{n&&(t=setTimeout(()=>r(void 0),be))},()=>void 0)}),stop:()=>{n=!1,clearTimeout(t)}}},Se=async({variables:e,onChunk:t,signal:n})=>{let i=crypto.randomUUID(),a=new AbortController,o=r(n)?AbortSignal.any([n,a.signal]):a.signal,s=new Promise((e,t)=>n?.addEventListener(`abort`,()=>t(n.reason),{once:!0,signal:a.signal}));s.catch(()=>void 0);try{let a=q({query:ye,variables:{runId:i},caller:`ai.generate`,signal:o,isActingAsCaller:!0});if((await a.next()).done)throw n?.throwIfAborted(),Error(`ai.generate() failed: the stream ended before the run`);let c=J({variables:{input:{...e.input,runId:i}},signal:o}),[l]=await Promise.race([Promise.all([c,(async()=>{let e=Y(c);try{for(;;){let n=await Promise.race([a.next(),e.quiet]).catch(()=>void 0);if(!r(n)||n.done||o.aborted||U(n.value))return;n.value.type===`stream-chunk`&&xe(n.value.chunk)&&(e.stop(),await t(n.value.chunk),e=Y(c))}}finally{e.stop(),a.return(void 0).catch(()=>void 0)}})()]),s]);return n?.throwIfAborted(),l}finally{a.abort()}},Ce={generate:async({input:e,onChunk:t,signal:n,...i})=>{let a={input:{...i,input:z(e)}};return r(t)?Se({variables:a,onChunk:t,signal:n}):J({variables:a,signal:n})}},we=async e=>{let{sendInboxMessage:n}=await new t.MetadataApiClient().mutation({sendInboxMessage:{__args:{input:e},threadId:!0}});return n},Te=/\[/g,Ee=/\]/g,De=/\r?\n/g,X=e=>e.replace(Te,`(`).replace(Ee,`)`).replace(De,` `).trim(),Oe=async({workspaceMemberId:t})=>{let{data:{workspaceMember:r}}=await new n.RestApiClient().get(`/rest/workspaceMembers/${t}`),i=`${r.name.firstName??``} ${r.name.lastName??``}`.trim();return C({objectNameSingular:`workspaceMember`,recordId:t,displayName:X((0,e.isNonEmptyString)(i)?i:r.userEmail)})},Z=({fullName:t,partName:n})=>{let r=(0,e.isObject)(t)?Reflect.get(t,n):void 0;return(0,e.isString)(r)?r:``},ke=({record:e,recordId:t,labelIdentifierField:n})=>{if(!r(n))return t;let i=e[n.name];return n.type===`FULL_NAME`?`${Z({fullName:i,partName:`firstName`})} ${Z({fullName:i,partName:`lastName`})}`.trim():r(i)?String(i):``},Ae=async({metadataClient:e,objectMetadata:t})=>{if(!r(t.labelIdentifierFieldMetadataId))return;let{object:n}=await e.query({object:{__args:{id:t.id},fields:{__args:{filter:{id:{eq:t.labelIdentifierFieldMetadataId}},paging:{first:1}},edges:{node:{name:!0,type:!0}}}}});return n.fields.edges[0]?.node},je=1e3,Me=async({metadataClient:e,objectNameSingular:t})=>{let{objects:n}=await e.query({objects:{__args:{filter:{},paging:{first:je}},edges:{node:{id:!0,nameSingular:!0,namePlural:!0,labelIdentifierFieldMetadataId:!0}}}}),i=n.edges.find(({node:e})=>e.nameSingular===t)?.node;if(!r(i))throw Error(`This workspace has no ${t} object.`);return i},Ne=async({objectNameSingular:e,recordId:r})=>{let i=new t.MetadataApiClient,a=await Me({metadataClient:i,objectNameSingular:e}),[o,s]=await Promise.all([Ae({metadataClient:i,objectMetadata:a}),new n.RestApiClient().get(`/rest/${a.namePlural}/${r}`)]);return C({objectNameSingular:e,recordId:r,displayName:X(ke({record:s.data[e],recordId:r,labelIdentifierField:o}))})},Pe=C({objectNameSingular:H,recordId:H,displayName:`Ada`}),Fe=async e=>{await new t.MetadataApiClient().mutation({attachRecordToInboxThread:{__args:{input:e}}})},Q=async e=>{await new t.MetadataApiClient().mutation({detachRecordFromInboxThread:{__args:{input:e}}})},Ie=async e=>{await new t.MetadataApiClient().mutation({archiveInboxThread:{__args:{input:e}}})},Le=async e=>{let{enqueueJob:n}=await new t.MetadataApiClient().mutation({enqueueJob:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,jobId:!0}});return n},Re=async e=>{let{enqueueJobs:n}=await new t.MetadataApiClient().mutation({enqueueJobs:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,enqueuedJobsCount:!0,jobIds:!0,jobs:{jobId:!0,sizeBytes:!0},availableBytes:!0}});return n},ze=async e=>{let{getJobs:n}=await new t.MetadataApiClient().query({getJobs:{__args:{jobIds:e},jobId:!0,state:!0,attemptsMade:!0,failedReason:!0,enqueuedAt:!0,startedAt:!0,finishedAt:!0}});return n},Be=e=>({__args:{paging:{first:e.length},filter:{universalIdentifier:{in:e}}},edges:{node:{id:!0,universalIdentifier:!0,nameSingular:!0}}}),Ve=async({timelineActivityTypeUniversalIdentifier:e,targetObjectUniversalIdentifier:i,linkedObjectMetadataUniversalIdentifier:a,targetRecordId:o,...s})=>{let c=[...new Set([i,a].filter(r))],{timelineActivityTypes:l,objects:u}=await new t.MetadataApiClient().query({timelineActivityTypes:{id:!0,universalIdentifier:!0,isActive:!0},objects:Be(c)}),d=l.find(({universalIdentifier:t})=>t===e);if(!r(d))throw Error(`Timeline activity type ${e} is not installed`);if(!d.isActive)throw Error(`Timeline activity type ${e} is inactive`);let f=new Map(u.edges.map(({node:e})=>[e.universalIdentifier,e])),p=f.get(i);if(!r(p))throw Error(`Timeline activity target object ${i} is not installed`);let m=`target${S(p.nameSingular)}Id`,h=r(a)?f.get(a):void 0;if(r(a)&&!r(h))throw Error(`Timeline activity linked object ${a} is not installed`);return(await new n.RestApiClient().post(`/rest/timelineActivities`,{...s,timelineActivityTypeId:d.id,linkedObjectMetadataId:h?.id,[m]:o})).data.createTimelineActivity},He=`
194
194
  query GetAppKeyValue($key: String!, $scope: AppKeyValueScope) {
195
195
  appKeyValue(key: $key, scope: $scope) {
196
196
  key
@@ -198,7 +198,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
198
198
  scope
199
199
  }
200
200
  }
201
- `,Ve=`
201
+ `,Ue=`
202
202
  mutation SetAppKeyValue($input: SetAppKeyValueInput!) {
203
203
  setAppKeyValue(input: $input) {
204
204
  key
@@ -206,9 +206,9 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
206
206
  scope
207
207
  }
208
208
  }
209
- `,He=`
209
+ `,We=`
210
210
  mutation DeleteAppKeyValue($key: String!, $scope: AppKeyValueScope) {
211
211
  deleteAppKeyValue(key: $key, scope: $scope)
212
212
  }
213
- `,$=`WORKSPACE`,Ue={async get(e,t){let{appKeyValue:n}=await v({query:Be,variables:{key:e,scope:t?.scope??$},caller:`kv.get`});return n?.value??null},async set(e,t,n){await v({query:Ve,variables:{input:{key:e,value:t,scope:n?.scope??$}},caller:`kv.set`})},async delete(e,t){let{deleteAppKeyValue:n}=await v({query:He,variables:{key:e,scope:t?.scope??$},caller:`kv.delete`});return n}},We=class{constructor(e,t){this.__twentyHttpResponse=!0,this.body=e,this.status=t?.status,this.headers=t?.headers}};exports.AppConnectionAuthFailedError=c,exports.INBOX_ASSISTANT_MENTION=Ne,exports.Response=We,exports.RetryableLogicFunctionError=s,exports.ai=Se,exports.attachRecordToInboxThread=Pe,exports.createMessageChannel=ie,exports.createTimelineActivity=ze,exports.deleteMessageChannel=E,exports.detachRecordFromInboxThread=Fe,exports.enqueueJob=Q,exports.enqueueJobs=Ie,exports.findConnectionForRequest=w,exports.getConnection=y,exports.getJobs=Le,exports.inboxMention=De,exports.inboxReferenceRecord=Me,exports.ingestMessages=O,exports.isAgentChatTurnEndEvent=H,exports.jsonSchemaToInputSchema=a,exports.kv=Ue,exports.listConnections=C,exports.listConversationMessages=de,exports.listMessageChannels=oe,exports.listMessageFolders=P,exports.reportConnectionAuthFailure=ne,exports.runAgent=z,exports.sendInboxMessage=Ce,exports.streamConversation=ge,exports.syncMessageFolders=I,exports.updateMessageChannel=ce,exports.uploadMessageAttachment=j;
213
+ `,$=`WORKSPACE`,Ge={async get(e,t){let{appKeyValue:n}=await y({query:He,variables:{key:e,scope:t?.scope??$},caller:`kv.get`});return n?.value??null},async set(e,t,n){await y({query:Ue,variables:{input:{key:e,value:t,scope:n?.scope??$}},caller:`kv.set`})},async delete(e,t){let{deleteAppKeyValue:n}=await y({query:We,variables:{key:e,scope:t?.scope??$},caller:`kv.delete`});return n}},Ke=class{constructor(e,t){this.__twentyHttpResponse=!0,this.body=e,this.status=t?.status,this.headers=t?.headers}};exports.AppConnectionAuthFailedError=c,exports.INBOX_ASSISTANT_MENTION=Pe,exports.Response=Ke,exports.RetryableLogicFunctionError=s,exports.ai=Ce,exports.archiveInboxThread=Ie,exports.attachRecordToInboxThread=Fe,exports.createMessageChannel=oe,exports.createTimelineActivity=Ve,exports.deleteMessageChannel=O,exports.detachRecordFromInboxThread=Q,exports.enqueueJob=Le,exports.enqueueJobs=Re,exports.findConnectionForRequest=ne,exports.getConnection=x,exports.getJobs=ze,exports.inboxMention=Oe,exports.inboxReferenceRecord=Ne,exports.ingestMessages=A,exports.isAgentChatTurnEndEvent=U,exports.jsonSchemaToInputSchema=a,exports.kv=Ge,exports.listConnections=te,exports.listConversationMessages=fe,exports.listMessageChannels=ce,exports.listMessageFolders=I,exports.reportConnectionAuthFailure=ie,exports.runAgent=V,exports.sendInboxMessage=we,exports.streamConversation=_e,exports.syncMessageFolders=R,exports.updateMessageChannel=E,exports.uploadMessageAttachment=N;
214
214
  //# sourceMappingURL=index.cjs.map