twenty-sdk 2.55.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.
- package/CHANGELOG.md +6 -0
- package/dist/billing/index.cjs.map +1 -1
- package/dist/billing/index.mjs.map +1 -1
- package/dist/define/index.cjs +6 -6
- package/dist/define/index.cjs.map +1 -1
- package/dist/define/index.d.ts +523 -353
- package/dist/define/index.mjs +3526 -3380
- package/dist/define/index.mjs.map +1 -1
- package/dist/front-component/index.cjs +34 -24
- package/dist/front-component/index.cjs.map +1 -1
- package/dist/front-component/index.d.ts +2 -0
- package/dist/front-component/index.mjs +49782 -4870
- package/dist/front-component/index.mjs.map +1 -1
- package/dist/logic-function/index.cjs +104 -23
- package/dist/logic-function/index.cjs.map +1 -1
- package/dist/logic-function/index.d.ts +197 -30
- package/dist/logic-function/index.mjs +379 -121
- package/dist/logic-function/index.mjs.map +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -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_APPLICATION_ACCESS_TOKEN`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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,69 +47,150 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
47
47
|
isSyncEnabled
|
|
48
48
|
participantHandleFieldUniversalIdentifier
|
|
49
49
|
messagingProviderUniversalIdentifier
|
|
50
|
-
`,
|
|
50
|
+
`,re=`
|
|
51
51
|
mutation CreateAppMessageChannel($input: CreateAppMessageChannelInput!) {
|
|
52
52
|
createAppMessageChannel(input: $input) {
|
|
53
|
-
${
|
|
53
|
+
${T}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
|
88
89
|
isSynced
|
|
89
90
|
messageChannelId
|
|
90
|
-
`,
|
|
91
|
+
`,N=`
|
|
91
92
|
query ListAppMessageFolders($filter: ListAppMessageFoldersInput) {
|
|
92
93
|
appMessageFolders(filter: $filter) {
|
|
93
|
-
${
|
|
94
|
+
${M}
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
`,
|
|
97
|
+
`,P=async(e={})=>{let{appMessageFolders:t}=await v({query:N,variables:{filter:e},caller:`listMessageFolders`});return t},F=`
|
|
97
98
|
mutation SyncAppMessageFolders($input: SyncAppMessageFoldersInput!) {
|
|
98
99
|
syncAppMessageFolders(input: $input) {
|
|
99
|
-
${
|
|
100
|
+
${M}
|
|
100
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
104
|
mutation RunAgent($input: RunAgentInput!) {
|
|
104
105
|
runAgent(input: $input) {
|
|
105
106
|
threadId
|
|
107
|
+
runId
|
|
106
108
|
status
|
|
107
109
|
result
|
|
108
110
|
error
|
|
109
111
|
success
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
|
-
`,
|
|
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=`
|
|
115
|
+
query ConversationMessages($agentUniversalIdentifier: UUID!, $threadKey: String!) {
|
|
116
|
+
messages: chatMessages(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
|
|
117
|
+
id
|
|
118
|
+
threadId
|
|
119
|
+
turnId
|
|
120
|
+
senderWorkspaceMemberId
|
|
121
|
+
role
|
|
122
|
+
status
|
|
123
|
+
createdAt
|
|
124
|
+
processedAt
|
|
125
|
+
parts {
|
|
126
|
+
orderIndex
|
|
127
|
+
type
|
|
128
|
+
textContent
|
|
129
|
+
reasoningContent
|
|
130
|
+
toolName
|
|
131
|
+
toolCallId
|
|
132
|
+
toolInput
|
|
133
|
+
toolOutput
|
|
134
|
+
state
|
|
135
|
+
providerExecuted
|
|
136
|
+
errorMessage
|
|
137
|
+
sourceUrlSourceId
|
|
138
|
+
sourceUrlUrl
|
|
139
|
+
sourceUrlTitle
|
|
140
|
+
sourceDocumentSourceId
|
|
141
|
+
sourceDocumentMediaType
|
|
142
|
+
sourceDocumentTitle
|
|
143
|
+
sourceDocumentFilename
|
|
144
|
+
fileMediaType
|
|
145
|
+
fileFilename
|
|
146
|
+
fileUrl
|
|
147
|
+
fileId
|
|
148
|
+
providerMetadata
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
streamCatchup: chatStreamCatchupChunks(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
|
|
152
|
+
chunks
|
|
153
|
+
maxSeq
|
|
154
|
+
error {
|
|
155
|
+
code
|
|
156
|
+
message
|
|
157
|
+
}
|
|
158
|
+
}
|
|
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(`
|
|
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,`
|
|
163
|
+
`);let r=u.indexOf(`
|
|
164
|
+
|
|
165
|
+
`);for(;r!==-1;){let e=pe({block:u.slice(0,r),caller:n});if(u=u.slice(r+2),r=u.indexOf(`
|
|
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=`
|
|
168
|
+
subscription OnAgentChatEvent($agentUniversalIdentifier: UUID!, $threadKey: String!) {
|
|
169
|
+
onAgentChatEvent(agentUniversalIdentifier: $agentUniversalIdentifier, threadKey: $threadKey) {
|
|
170
|
+
event
|
|
171
|
+
}
|
|
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=`
|
|
174
|
+
mutation Generate($input: GenerateInput!) {
|
|
175
|
+
generate(input: $input) {
|
|
176
|
+
success
|
|
177
|
+
text
|
|
178
|
+
object
|
|
179
|
+
error
|
|
180
|
+
runId
|
|
181
|
+
usage {
|
|
182
|
+
inputTokens
|
|
183
|
+
outputTokens
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
`,ve=`
|
|
188
|
+
subscription OnAgentRunEvent($runId: UUID!) {
|
|
189
|
+
onAgentChatEvent(runId: $runId) {
|
|
190
|
+
event
|
|
191
|
+
}
|
|
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=`
|
|
113
194
|
query GetAppKeyValue($key: String!, $scope: AppKeyValueScope) {
|
|
114
195
|
appKeyValue(key: $key, scope: $scope) {
|
|
115
196
|
key
|
|
@@ -117,7 +198,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
117
198
|
scope
|
|
118
199
|
}
|
|
119
200
|
}
|
|
120
|
-
`,
|
|
201
|
+
`,Ve=`
|
|
121
202
|
mutation SetAppKeyValue($input: SetAppKeyValueInput!) {
|
|
122
203
|
setAppKeyValue(input: $input) {
|
|
123
204
|
key
|
|
@@ -125,9 +206,9 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
125
206
|
scope
|
|
126
207
|
}
|
|
127
208
|
}
|
|
128
|
-
`,
|
|
209
|
+
`,He=`
|
|
129
210
|
mutation DeleteAppKeyValue($key: String!, $scope: AppKeyValueScope) {
|
|
130
211
|
deleteAppKeyValue(key: $key, scope: $scope)
|
|
131
212
|
}
|
|
132
|
-
`,$=`WORKSPACE`,
|
|
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;
|
|
133
214
|
//# sourceMappingURL=index.cjs.map
|