/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.observabilityAIAssistant_bundle_jsonpfunction=window.observabilityAIAssistant_bundle_jsonpfunction||[]).push([[6],{106:function(e,t,o){"use strict";function n(e){return encodeURI(function(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}(e))}o.r(t),o.d(t,"FunctionArgsValidationError",(function(){return FunctionArgsValidationError})),o.d(t,"createChatService",(function(){return O}));const r={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},a={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},i={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};let s="undefined"!=typeof self&&self.location&&"null"!==self.location.origin?new URL(self.location.origin+self.location.pathname+location.search):new URL("https://github.com/cfworker");function c(e,t=Object.create(null),o=s,d=""){if(e&&"object"==typeof e&&!Array.isArray(e)){const n=e.$id||e.id;if(n){const r=new URL(n,o.href);r.hash.length>1?t[r.href]=e:(r.hash="",""===d?o=r:c(e,t,o))}}else if(!0!==e&&!1!==e)return t;const f=o.href+(d?"#"+d:"");if(void 0!==t[f])throw new Error(`Duplicate schema URI "${f}".`);if(t[f]=e,!0===e||!1===e)return t;if(void 0===e.__absolute_uri__&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:f}),e.$ref&&void 0===e.__absolute_ref__){const t=new URL(e.$ref,o.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&void 0===e.__absolute_recursive_ref__){const t=new URL(e.$recursiveRef,o.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}e.$anchor&&(t[new URL("#"+e.$anchor,o.href).href]=e);for(let s in e){if(i[s])continue;const f=`${d}/${n(s)}`,u=e[s];if(Array.isArray(u)){if(r[s]){const e=u.length;for(let n=0;ne.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e)),uri:function(e){return v.test(e)&&w.test(e)},"uri-reference":m(/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i),"uri-template":m(/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i),url:m(/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu),email:e=>{if('"'===e[0])return!1;const[t,o,...n]=e.split("@");return!(!t||!o||0!==n.length||t.length>64||o.length>253)&&"."!==t[0]&&!t.endsWith(".")&&!t.includes("..")&&!(!/^[a-z0-9.-]+$/i.test(o)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t))&&o.split(".").every((e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e)))},hostname:m(/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i),ipv4:m(/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/),ipv6:m(/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i),regex:function(e){if(k.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}},uuid:m(/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i),"json-pointer":m(/^(?:\/(?:[^~/]|~0|~1)*)*$/),"json-pointer-uri-fragment":m(/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i),"relative-json-pointer":m(/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/),date:m(/^\d\d\d\d-[0-1]\d-[0-3]\d$/),time:m(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i),"date-time":m(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i),"uri-reference":m(/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i)};function p(e){const t=e.match(f);if(!t)return!1;const o=+t[1],n=+t[2],r=+t[3];return n>=1&&n<=12&&r>=1&&r<=(2==n&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(o)?29:u[n])}function $(e,t){const o=t.match(l);if(!o)return!1;const n=+o[1],r=+o[2],a=+o[3],i=!!o[5];return(n<=23&&r<=59&&a<=59||23==n&&59==r&&60==a)&&(!e||i)}const y=/t|\s/i,v=/\/|:/,w=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,k=/[^\\]\\Z/;function L(e,t,o="2019-09",r=c(t),a=!0,i=null,s="#",f="#",u=Object.create(null)){if(!0===t)return{valid:!0,errors:[]};if(!1===t)return{valid:!1,errors:[{instanceLocation:s,keyword:"false",keywordLocation:s,error:"False boolean schema."}]};const l=typeof e;let m;switch(l){case"boolean":case"number":case"string":m=l;break;case"object":m=null===e?"null":Array.isArray(e)?"array":"object";break;default:throw new Error(`Instances of "${l}" type are not supported.`)}const{$ref:p,$recursiveRef:$,$recursiveAnchor:y,type:v,const:w,enum:k,required:g,not:b,anyOf:_,allOf:x,oneOf:O,if:I,then:j,else:z,format:A,properties:E,patternProperties:P,additionalProperties:S,unevaluatedProperties:R,minProperties:M,maxProperties:C,propertyNames:N,dependentRequired:q,dependentSchemas:F,dependencies:U,prefixItems:T,items:J,additionalItems:D,unevaluatedItems:V,contains:H,minContains:Y,maxContains:G,minItems:W,maxItems:X,uniqueItems:B,minimum:K,maximum:Z,exclusiveMinimum:Q,exclusiveMaximum:ee,multipleOf:te,minLength:oe,maxLength:ne,pattern:re,__absolute_ref__:ae,__absolute_recursive_ref__:ie}=t,se=[];if(!0===y&&null===i&&(i=t),"#"===$){const n=null===i?r[ie]:i,c=`${f}/$recursiveRef`,d=L(e,null===i?t:i,o,r,a,n,s,c,u);d.valid||se.push({instanceLocation:s,keyword:"$recursiveRef",keywordLocation:c,error:"A subschema had errors."},...d.errors)}if(void 0!==p){const t=r[ae||p];if(void 0===t){let e=`Unresolved $ref "${p}".`;throw ae&&ae!==p&&(e+=` Absolute URI "${ae}".`),e+=`\nKnown schemas:\n- ${Object.keys(r).join("\n- ")}`,new Error(e)}const n=`${f}/$ref`,c=L(e,t,o,r,a,i,s,n,u);if(c.valid||se.push({instanceLocation:s,keyword:"$ref",keywordLocation:n,error:"A subschema had errors."},...c.errors),"4"===o||"7"===o)return{valid:0===se.length,errors:se}}if(Array.isArray(v)){let t=v.length,o=!1;for(let n=0;nd(e,t)))||se.push({instanceLocation:s,keyword:"enum",keywordLocation:`${f}/enum`,error:`Instance does not match any of ${JSON.stringify(k)}.`}):k.some((t=>e===t))||se.push({instanceLocation:s,keyword:"enum",keywordLocation:`${f}/enum`,error:`Instance does not match any of ${JSON.stringify(k)}.`})),void 0!==b){const t=`${f}/not`;L(e,b,o,r,a,i,s,t).valid&&se.push({instanceLocation:s,keyword:"not",keywordLocation:t,error:'Instance matched "not" schema.'})}let ce=[];if(void 0!==_){const t=`${f}/anyOf`,n=se.length;let c=!1;for(let n=0;n<_.length;n++){const d=_[n],f=Object.create(u),l=L(e,d,o,r,a,!0===y?i:null,s,`${t}/${n}`,f);se.push(...l.errors),c=c||l.valid,l.valid&&ce.push(f)}c?se.length=n:se.splice(n,0,{instanceLocation:s,keyword:"anyOf",keywordLocation:t,error:"Instance does not match any subschemas."})}if(void 0!==x){const t=`${f}/allOf`,n=se.length;let c=!0;for(let n=0;n{const d=Object.create(u),f=L(e,n,o,r,a,!0===y?i:null,s,`${t}/${c}`,d);return se.push(...f.errors),f.valid&&ce.push(d),f.valid})).length;1===c?se.length=n:se.splice(n,0,{instanceLocation:s,keyword:"oneOf",keywordLocation:t,error:`Instance does not match exactly one subschema (${c} matches).`})}if("object"!==m&&"array"!==m||Object.assign(u,...ce),void 0!==I){const t=`${f}/if`;if(L(e,I,o,r,a,i,s,t,u).valid){if(void 0!==j){const n=L(e,j,o,r,a,i,s,`${f}/then`,u);n.valid||se.push({instanceLocation:s,keyword:"if",keywordLocation:t,error:'Instance does not match "then" schema.'},...n.errors)}}else if(void 0!==z){const n=L(e,z,o,r,a,i,s,`${f}/else`,u);n.valid||se.push({instanceLocation:s,keyword:"if",keywordLocation:t,error:'Instance does not match "else" schema.'},...n.errors)}}if("object"===m){if(void 0!==g)for(const t of g)t in e||se.push({instanceLocation:s,keyword:"required",keywordLocation:`${f}/required`,error:`Instance does not have required property "${t}".`});const t=Object.keys(e);if(void 0!==M&&t.lengthC&&se.push({instanceLocation:s,keyword:"maxProperties",keywordLocation:`${f}/maxProperties`,error:`Instance does not have at least ${C} properties.`}),void 0!==N){const t=`${f}/propertyNames`;for(const c in e){const e=`${s}/${n(c)}`,d=L(c,N,o,r,a,i,e,t);d.valid||se.push({instanceLocation:s,keyword:"propertyNames",keywordLocation:t,error:`Property name "${c}" does not match schema.`},...d.errors)}}if(void 0!==q){const t=`${f}/dependantRequired`;for(const o in q)if(o in e){const n=q[o];for(const r of n)r in e||se.push({instanceLocation:s,keyword:"dependentRequired",keywordLocation:t,error:`Instance has "${o}" but does not have "${r}".`})}}if(void 0!==F)for(const t in F){const c=`${f}/dependentSchemas`;if(t in e){const d=L(e,F[t],o,r,a,i,s,`${c}/${n(t)}`,u);d.valid||se.push({instanceLocation:s,keyword:"dependentSchemas",keywordLocation:c,error:`Instance has "${t}" but does not match dependant schema.`},...d.errors)}}if(void 0!==U){const t=`${f}/dependencies`;for(const c in U)if(c in e){const d=U[c];if(Array.isArray(d))for(const o of d)o in e||se.push({instanceLocation:s,keyword:"dependencies",keywordLocation:t,error:`Instance has "${c}" but does not have "${o}".`});else{const f=L(e,d,o,r,a,i,s,`${t}/${n(c)}`);f.valid||se.push({instanceLocation:s,keyword:"dependencies",keywordLocation:t,error:`Instance has "${c}" but does not match dependant schema.`},...f.errors)}}}const c=Object.create(null);let d=!1;if(void 0!==E){const t=`${f}/properties`;for(const f in E){if(!(f in e))continue;const l=`${s}/${n(f)}`,m=L(e[f],E[f],o,r,a,i,l,`${t}/${n(f)}`);if(m.valid)u[f]=c[f]=!0;else if(d=a,se.push({instanceLocation:s,keyword:"properties",keywordLocation:t,error:`Property "${f}" does not match schema.`},...m.errors),d)break}}if(!d&&void 0!==P){const t=`${f}/patternProperties`;for(const f in P){const l=new RegExp(f),m=P[f];for(const h in e){if(!l.test(h))continue;const p=`${s}/${n(h)}`,$=L(e[h],m,o,r,a,i,p,`${t}/${n(f)}`);$.valid?u[h]=c[h]=!0:(d=a,se.push({instanceLocation:s,keyword:"patternProperties",keywordLocation:t,error:`Property "${h}" matches pattern "${f}" but does not match associated schema.`},...$.errors))}}}if(d||void 0===S){if(!d&&void 0!==R){const t=`${f}/unevaluatedProperties`;for(const c in e)if(!u[c]){const d=`${s}/${n(c)}`,f=L(e[c],R,o,r,a,i,d,t);f.valid?u[c]=!0:se.push({instanceLocation:s,keyword:"unevaluatedProperties",keywordLocation:t,error:`Property "${c}" does not match unevaluated properties schema.`},...f.errors)}}}else{const t=`${f}/additionalProperties`;for(const f in e){if(c[f])continue;const l=`${s}/${n(f)}`,m=L(e[f],S,o,r,a,i,l,t);m.valid?u[f]=!0:(d=a,se.push({instanceLocation:s,keyword:"additionalProperties",keywordLocation:t,error:`Property "${f}" does not match additional properties schema.`},...m.errors))}}}else if("array"===m){void 0!==X&&e.length>X&&se.push({instanceLocation:s,keyword:"maxItems",keywordLocation:`${f}/maxItems`,error:`Array has too many items (${e.length} > ${X}).`}),void 0!==W&&e.length=(Y||0)&&(se.length=c),void 0===Y&&void 0===G&&0===d?se.splice(c,0,{instanceLocation:s,keyword:"contains",keywordLocation:n,error:"Array does not contain item matching schema."}):void 0!==Y&&dG&&se.push({instanceLocation:s,keyword:"maxContains",keywordLocation:`${f}/maxContains`,error:`Array may contain at most ${G} items matching schema. ${d} items were found.`})}if(!c&&void 0!==V){const c=`${f}/unevaluatedItems`;for(;n=Z||e>Z)&&se.push({instanceLocation:s,keyword:"maximum",keywordLocation:`${f}/maximum`,error:`${e} is greater than ${ee?"or equal to ":""} ${Z}.`})):(void 0!==K&&eZ&&se.push({instanceLocation:s,keyword:"maximum",keywordLocation:`${f}/maximum`,error:`${e} is greater than ${Z}.`}),void 0!==Q&&e<=Q&&se.push({instanceLocation:s,keyword:"exclusiveMinimum",keywordLocation:`${f}/exclusiveMinimum`,error:`${e} is less than ${Q}.`}),void 0!==ee&&e>=ee&&se.push({instanceLocation:s,keyword:"exclusiveMaximum",keywordLocation:`${f}/exclusiveMaximum`,error:`${e} is greater than or equal to ${ee}.`})),void 0!==te){const t=e%te;Math.abs(0-t)>=1.1920929e-7&&Math.abs(te-t)>=1.1920929e-7&&se.push({instanceLocation:s,keyword:"multipleOf",keywordLocation:`${f}/multipleOf`,error:`${e} is not a multiple of ${te}.`})}}else if("string"===m){const t=void 0===oe&&void 0===ne?0:function(e){let t,o=0,n=e.length,r=0;for(;r=55296&&t<=56319&&rne&&se.push({instanceLocation:s,keyword:"maxLength",keywordLocation:`${f}/maxLength`,error:`String is too long (${t} > ${ne}).`}),void 0===re||new RegExp(re).test(e)||se.push({instanceLocation:s,keyword:"pattern",keywordLocation:`${f}/pattern`,error:"String does not match pattern."}),void 0!==A&&h[A]&&!h[A](e)&&se.push({instanceLocation:s,keyword:"format",keywordLocation:`${f}/format`,error:`String does not match format "${A}".`})}return{valid:0===se.length,errors:se}}class validator_Validator{constructor(e,t="2019-09",o=!0){this.schema=e,this.draft=t,this.shortCircuit=o,this.lookup=c(e)}validate(e){return L(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),c(e,this.lookup)}}var g=o(22),b=o(18),_=o(26),x=o(11);class TokenLimitReachedError extends Error{constructor(){super("Token limit reached")}}class ServerError extends Error{}class FunctionArgsValidationError extends Error{constructor(e){super("Function arguments are invalid"),this.errors=e}}async function O({signal:e,registrations:t,client:o}){const n=new Map,r=new Map,a=new Map,i=e=>{n.set(e.name,e)},s=(e,t,o)=>{a.set(e.name,new validator_Validator(e.parameters,"2020-12",!0)),r.set(e.name,{options:e,respond:t,render:o})},c=({contexts:e,filter:t}={})=>{const o=Array.from(r.values());return e||t?o.filter((o=>{const n=!e||o.options.contexts.some((t=>e.includes(t))),r=!t||o.options.name.includes(t)||o.options.description.includes(t);return n&&r})):o};return await Promise.all(t.map((t=>t({signal:e,registerContext:i,registerFunction:s})))),{executeFunction:async({name:e,args:t,signal:o,messages:n})=>{const i=r.get(e);if(!i)throw new Error(`Function ${e} not found`);const s=t?JSON.parse(t):{};return function(e,t){const o=a.get(e).validate(t);if(!o.valid)throw new FunctionArgsValidationError(o.errors)}(e,s),await i.respond({arguments:s,messages:n},o)},renderFunction:(e,t,o)=>{var n,a,i;const s=r.get(e);if(!s)throw new Error(`Function ${e} not found`);const c=t?JSON.parse(t):{},d={content:JSON.parse(null!==(n=o.content)&&void 0!==n?n:"{}"),data:JSON.parse(null!==(a=o.data)&&void 0!==a?a:"{}")};return null===(i=s.render)||void 0===i?void 0:i.call(s,{response:d,arguments:c})},getContexts:()=>Array.from(n.values()),getFunctions:c,hasRenderFunction:e=>{var t;return!(null===(t=c().find((t=>t.options.name===e)))||void 0===t||!t.render)},chat({connectorId:e,messages:t,function:n="auto"}){const r=new _.BehaviorSubject({message:{role:x.a.Assistant}}),a=c({contexts:["core","apm"]}),i=new AbortController;return o("POST /internal/observability_ai_assistant/chat",{params:{body:{messages:t,connectorId:e,functions:"none"===n?[]:a.map((e=>Object(b.pick)(e.options,"name","description","parameters")))}},signal:i.signal,asResponse:!0,rawResponse:!0}).then((e=>{var t,o;const n=e,a=null===(t=n.response)||void 0===t?void 0:t.status;var s;if(!a||a>=400)throw new Error((null===(s=n.response)||void 0===s?void 0:s.statusText)||"Unexpected error");const c=null===(o=n.response.body)||void 0===o?void 0:o.getReader();if(!c)throw new Error("Could not get reader from response");const d=(f=c,new _.Observable((e=>{let t="";return async function o(){const{done:n,value:r}=await f.read();if(n)return t&&e.next(t),void e.complete();const a=(new TextDecoder).decode(r).split("\n");a[0]=t+a[0],t=a.pop()||"";for(const t of a)e.next(t);return o()}().catch((t=>e.error(t))),()=>{f.cancel().catch((()=>{}))}})).pipe(Object(_.share)())).pipe(Object(_.map)((e=>e.substring(6))),Object(_.filter)((e=>!!e&&"[DONE]"!==e)),Object(_.map)((e=>JSON.parse(e))),Object(_.tap)((e=>{if("error"in e)throw new ServerError(e.error.message)})),Object(_.filter)((e=>"object"in e&&"chat.completion.chunk"===e.object)),Object(_.tap)((e=>{if("length"===e.choices[0].finish_reason)throw new TokenLimitReachedError})),Object(_.scan)(((e,{choices:t})=>{var o,n,r,a,i;return e.message.content+=null!==(o=t[0].delta.content)&&void 0!==o?o:"",e.message.function_call.name+=null!==(n=null===(r=t[0].delta.function_call)||void 0===r?void 0:r.name)&&void 0!==n?n:"",e.message.function_call.arguments+=null!==(a=null===(i=t[0].delta.function_call)||void 0===i?void 0:i.arguments)&&void 0!==a?a:"",Object(b.cloneDeep)(e)}),{message:{content:"",function_call:{name:"",arguments:"",trigger:x.a.Assistant},role:x.a.Assistant}}),Object(_.catchError)((e=>Object(_.of)({...r.value,error:e,aborted:e instanceof g.AbortError||i.signal.aborted})))).subscribe(r);var f;i.signal.addEventListener("abort",(()=>{d.unsubscribe(),r.next({...r.value,aborted:!0}),r.complete()}))})).catch((async e=>{if("response"in e){var t;const o=await(null===(t=e.response)||void 0===t?void 0:t.json());e.body=o,o.message&&(e.message=o.message)}throw e})).catch((e=>{r.next({...r.value,aborted:!1,error:e}),r.complete()})),r.pipe(Object(_.concatMap)((e=>Object(_.of)(e).pipe(Object(_.delay)(50)))),Object(_.shareReplay)(1),Object(_.finalize)((()=>{i.abort()})))}}}}}]);