twenty-sdk 2.56.0 → 2.57.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},y=`
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=`
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
- `,ee=async e=>{let{appConnection:t}=await v({query:y,variables:{id:e},caller:`getConnection`});if(t.authFailedAt!==null)throw new c(t.id);return m(t)},b=`agentChatAssistant`,x=({objectNameSingular:e,recordId:t,displayName:n})=>e===`agentChatAssistant`?`@${n}`:`[[record:${e}:${t}:${n}]]`,S=t=>(0,e.isNonEmptyString)(t)?t.charAt(0).toUpperCase()+t.slice(1):``,C=`
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=`
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
- `,w=async({visibility:e,...t}={})=>{let{appConnections:n}=await v({query:C,variables:{filter:{...t,scope:t.scope??(r(e)?l[e]:void 0)}},caller:`listConnections`});return n.map(m)},te=(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},ne=`
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=`
38
38
  mutation ReportAppConnectionAuthFailure($input: ReportAppConnectionAuthFailureInput!) {
39
39
  reportAppConnectionAuthFailure(input: $input)
40
40
  }
41
- `,re=async({connectionId:e,reason:t})=>{await v({query:ne,variables:{input:{id:e,reason:t}},caller:`reportConnectionAuthFailure`})},T=`
41
+ `,ne=async({connectionId:e,reason:t})=>{await v({query:te,variables:{input:{id:e,reason:t}},caller:`reportConnectionAuthFailure`})},T=`
42
42
  id
43
43
  handle
44
44
  displayName
@@ -47,41 +47,42 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
47
47
  isSyncEnabled
48
48
  participantHandleFieldUniversalIdentifier
49
49
  messagingProviderUniversalIdentifier
50
- `,ie=`
50
+ `,re=`
51
51
  mutation CreateAppMessageChannel($input: CreateAppMessageChannelInput!) {
52
52
  createAppMessageChannel(input: $input) {
53
53
  ${T}
54
54
  }
55
55
  }
56
- `,ae=async({messagingProvider:e,...t})=>{let{createAppMessageChannel:n}=await v({query:ie,variables:{input:{...t,messagingProviderUniversalIdentifier:e?.universalIdentifier}},caller:`createMessageChannel`});return n},oe=`
56
+ `,ie=async({messagingProvider:e,...t})=>{let{createAppMessageChannel:n}=await v({query:re,variables:{input:{...t,messagingProviderUniversalIdentifier:e?.universalIdentifier}},caller:`createMessageChannel`});return n},ae=`
57
57
  query ListAppMessageChannels($filter: ListAppMessageChannelsInput) {
58
58
  appMessageChannels(filter: $filter) {
59
59
  ${T}
60
60
  }
61
61
  }
62
- `,se=async(e={})=>{let{appMessageChannels:t}=await v({query:oe,variables:{filter:e},caller:`listMessageChannels`});return t},E=`
62
+ `,oe=async(e={})=>{let{appMessageChannels:t}=await v({query:ae,variables:{filter:e},caller:`listMessageChannels`});return t},se=`
63
63
  mutation UpdateAppMessageChannel($input: UpdateAppMessageChannelInput!) {
64
64
  updateAppMessageChannel(input: $input) {
65
65
  ${T}
66
66
  }
67
67
  }
68
- `,D=async({messagingProvider:e,...t})=>{let{updateAppMessageChannel:n}=await v({query:E,variables:{input:{...t,messagingProviderUniversalIdentifier:e===void 0?void 0:e?.universalIdentifier??null}},caller:`updateMessageChannel`});return n},O=`
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=`
69
69
  mutation DeleteAppMessageChannel($id: UUID!) {
70
70
  deleteAppMessageChannel(id: $id) {
71
71
  ${T}
72
72
  }
73
73
  }
74
- `,k=async e=>{let{deleteAppMessageChannel:t}=await v({query:O,variables:{id:e},caller:`deleteMessageChannel`});return t},A=`
74
+ `,E=async e=>{let{deleteAppMessageChannel:t}=await v({query:le,variables:{id:e},caller:`deleteMessageChannel`});return t},D=`
75
75
  mutation IngestAppMessages($input: IngestAppMessagesInput!) {
76
76
  ingestAppMessages(input: $input) {
77
77
  messages {
78
78
  externalId
79
79
  messageId
80
80
  messageThreadId
81
+ hasAttachments
81
82
  }
82
83
  }
83
84
  }
84
- `,j=async({messageChannelId:e,messages:t})=>{let{ingestAppMessages:n}=await v({query:A,variables:{input:{messageChannelId:e,messages:t}},caller:`ingestMessages`});return n.messages},M=`
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
86
  id
86
87
  externalId
87
88
  name
@@ -110,7 +111,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
110
111
  success
111
112
  }
112
113
  }
113
- `,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=e=>e.type===`message-persisted`&&r(e.turnId)||e.type===`stream-ended`||e.type===`run-finished`||e.type===`credits-exhausted`||e.type===`stream-error`,V=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}}}}},H=e=>e.map(e=>({id:e.id,role:e.role,status:e.status,parts:[...e.parts].sort((e,t)=>e.orderIndex-t.orderIndex).map(V).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})),U=`
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
115
  query ConversationMessages($agentUniversalIdentifier: UUID!, $threadKey: String!) {
115
116
  messages: chatMessages(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
116
117
  id
@@ -156,20 +157,20 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
156
157
  }
157
158
  }
158
159
  }
159
- `,W=async e=>{let{messages:t,streamCatchup:n}=await v({query:U,variables:e,caller:`listConversationMessages`});return{messages:H(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)),ce=t=>G(t)&&(0,e.isString)(t.type),le=({block:t,caller:n})=>{let r=t.split(`
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
161
  `);if(r.includes(`event: complete`))return{type:`complete`};let i=r.filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
161
- `);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(!ce(o))throw Error(`${n}() failed: unexpected result ${i}`);return{type:`event`,event:o}},ue=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 ue(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(!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
163
  `);let r=u.indexOf(`
163
164
 
164
- `);for(;r!==-1;){let e=le({block:u.slice(0,r),caller:n});if(u=u.slice(r+2),r=u.indexOf(`
165
+ `);for(;r!==-1;){let e=pe({block:u.slice(0,r),caller:n});if(u=u.slice(r+2),r=u.indexOf(`
165
166
 
166
- `),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 de=`
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
168
  subscription OnAgentChatEvent($agentUniversalIdentifier: UUID!, $threadKey: String!) {
168
169
  onAgentChatEvent(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
169
170
  event
170
171
  }
171
172
  }
172
- `,fe=({signal:e,...t})=>q({query:de,variables:t,caller:`streamConversation`,signal:e,closedEarlyAdvice:`; read the history and stream again to resume`}),pe=`
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
174
  mutation Generate($input: GenerateInput!) {
174
175
  generate(input: $input) {
175
176
  success
@@ -183,13 +184,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
183
184
  }
184
185
  }
185
186
  }
186
- `,me=`
187
+ `,ve=`
187
188
  subscription OnAgentRunEvent($runId: UUID!) {
188
189
  onAgentChatEvent(runId: $runId) {
189
190
  event
190
191
  }
191
192
  }
192
- `,he=5e3,J=async({variables:e,signal:t})=>{let{generate:n}=await v({query:pe,variables:e,caller:`ai.generate`,signal:t,isActingAsCaller:!0});return n},ge=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),he))},()=>void 0)}),stop:()=>{n=!1,clearTimeout(t)}}},_e=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:me,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||B(n.value))return;n.value.type===`stream-chunk`&&ge(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()}},ve={generate:async({input:e,onChunk:t,signal:n,...i})=>{let a={input:{...i,input:L(e)}};return r(t)?_e({variables:a,onChunk:t,signal:n}):J({variables:a,signal:n})}},ye=async e=>{let{sendInboxMessage:n}=await new t.MetadataApiClient().mutation({sendInboxMessage:{__args:{input:e},threadId:!0}});return n},be=/\[/g,xe=/\]/g,Se=/\r?\n/g,X=e=>e.replace(be,`(`).replace(xe,`)`).replace(Se,` `).trim(),Ce=async({workspaceMemberId:t})=>{let{data:{workspaceMember:r}}=await new n.RestApiClient().get(`/rest/workspaceMembers/${t}`),i=`${r.name.firstName??``} ${r.name.lastName??``}`.trim();return x({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:``},we=({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):``},Te=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},Ee=1e3,De=async({metadataClient:e,objectNameSingular:t})=>{let{objects:n}=await e.query({objects:{__args:{filter:{},paging:{first:Ee}},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},Oe=async({objectNameSingular:e,recordId:r})=>{let i=new t.MetadataApiClient,a=await De({metadataClient:i,objectNameSingular:e}),[o,s]=await Promise.all([Te({metadataClient:i,objectMetadata:a}),new n.RestApiClient().get(`/rest/${a.namePlural}/${r}`)]);return x({objectNameSingular:e,recordId:r,displayName:X(we({record:s.data[e],recordId:r,labelIdentifierField:o}))})},Q=x({objectNameSingular:b,recordId:b,displayName:`Ada`}),ke=async e=>{await new t.MetadataApiClient().mutation({attachRecordToInboxThread:{__args:{input:e}}})},Ae=async e=>{await new t.MetadataApiClient().mutation({detachRecordFromInboxThread:{__args:{input:e}}})},je=async e=>{let{enqueueJob:n}=await new t.MetadataApiClient().mutation({enqueueJob:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,jobId:!0}});return n},Me=async e=>{let{enqueueJobs:n}=await new t.MetadataApiClient().mutation({enqueueJobs:{__args:{input:e},enqueued:!0,logicFunctionUniversalIdentifier:!0,enqueuedJobsCount:!0,jobIds:!0}});return n},Ne=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},Pe=e=>({__args:{paging:{first:e.length},filter:{universalIdentifier:{in:e}}},edges:{node:{id:!0,universalIdentifier:!0,nameSingular:!0}}}),Fe=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:Pe(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},Ie=`
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
194
  query GetAppKeyValue($key: String!, $scope: AppKeyValueScope) {
194
195
  appKeyValue(key: $key, scope: $scope) {
195
196
  key
@@ -197,7 +198,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
197
198
  scope
198
199
  }
199
200
  }
200
- `,Le=`
201
+ `,Ve=`
201
202
  mutation SetAppKeyValue($input: SetAppKeyValueInput!) {
202
203
  setAppKeyValue(input: $input) {
203
204
  key
@@ -205,9 +206,9 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
205
206
  scope
206
207
  }
207
208
  }
208
- `,Re=`
209
+ `,He=`
209
210
  mutation DeleteAppKeyValue($key: String!, $scope: AppKeyValueScope) {
210
211
  deleteAppKeyValue(key: $key, scope: $scope)
211
212
  }
212
- `,$=`WORKSPACE`,ze={async get(e,t){let{appKeyValue:n}=await v({query:Ie,variables:{key:e,scope:t?.scope??$},caller:`kv.get`});return n?.value??null},async set(e,t,n){await v({query:Le,variables:{input:{key:e,value:t,scope:n?.scope??$}},caller:`kv.set`})},async delete(e,t){let{deleteAppKeyValue:n}=await v({query:Re,variables:{key:e,scope:t?.scope??$},caller:`kv.delete`});return n}},Be=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=Q,exports.Response=Be,exports.RetryableLogicFunctionError=s,exports.ai=ve,exports.attachRecordToInboxThread=ke,exports.createMessageChannel=ae,exports.createTimelineActivity=Fe,exports.deleteMessageChannel=k,exports.detachRecordFromInboxThread=Ae,exports.enqueueJob=je,exports.enqueueJobs=Me,exports.findConnectionForRequest=te,exports.getConnection=ee,exports.getJobs=Ne,exports.inboxMention=Ce,exports.inboxReferenceRecord=Oe,exports.ingestMessages=j,exports.isAgentChatTurnEndEvent=B,exports.jsonSchemaToInputSchema=a,exports.kv=ze,exports.listConnections=w,exports.listConversationMessages=W,exports.listMessageChannels=se,exports.listMessageFolders=P,exports.reportConnectionAuthFailure=re,exports.runAgent=z,exports.sendInboxMessage=ye,exports.streamConversation=fe,exports.syncMessageFolders=I,exports.updateMessageChannel=D;
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
214
  //# sourceMappingURL=index.cjs.map