nowaikit 2.5.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.

Potentially problematic release.


This version of nowaikit might be problematic. Click here for more details.

Files changed (209) hide show
  1. package/.env.example +96 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1253 -0
  4. package/desktop/renderer/dist/apple-touch-icon.png +0 -0
  5. package/desktop/renderer/dist/assets/index-Bb0ncZQl.css +1 -0
  6. package/desktop/renderer/dist/assets/index-MlBBSUMZ.js +49 -0
  7. package/desktop/renderer/dist/favicon-32.png +0 -0
  8. package/desktop/renderer/dist/favicon.svg +18 -0
  9. package/desktop/renderer/dist/index.html +18 -0
  10. package/desktop/serve.js +449 -0
  11. package/dist/cli/auth.d.ts +14 -0
  12. package/dist/cli/auth.d.ts.map +1 -0
  13. package/dist/cli/auth.js +179 -0
  14. package/dist/cli/auth.js.map +1 -0
  15. package/dist/cli/config-store.d.ts +28 -0
  16. package/dist/cli/config-store.d.ts.map +1 -0
  17. package/dist/cli/config-store.js +64 -0
  18. package/dist/cli/config-store.js.map +1 -0
  19. package/dist/cli/detect-clients.d.ts +16 -0
  20. package/dist/cli/detect-clients.d.ts.map +1 -0
  21. package/dist/cli/detect-clients.js +151 -0
  22. package/dist/cli/detect-clients.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +193 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/setup.d.ts +4 -0
  28. package/dist/cli/setup.d.ts.map +1 -0
  29. package/dist/cli/setup.js +575 -0
  30. package/dist/cli/setup.js.map +1 -0
  31. package/dist/cli/writers/index.d.ts +9 -0
  32. package/dist/cli/writers/index.d.ts.map +1 -0
  33. package/dist/cli/writers/index.js +140 -0
  34. package/dist/cli/writers/index.js.map +1 -0
  35. package/dist/prompts/index.d.ts +25 -0
  36. package/dist/prompts/index.d.ts.map +1 -0
  37. package/dist/prompts/index.js +38 -0
  38. package/dist/prompts/index.js.map +1 -0
  39. package/dist/prompts/itsm.d.ts +20 -0
  40. package/dist/prompts/itsm.d.ts.map +1 -0
  41. package/dist/prompts/itsm.js +110 -0
  42. package/dist/prompts/itsm.js.map +1 -0
  43. package/dist/prompts/user-prompts.d.ts +3 -0
  44. package/dist/prompts/user-prompts.d.ts.map +1 -0
  45. package/dist/prompts/user-prompts.js +35 -0
  46. package/dist/prompts/user-prompts.js.map +1 -0
  47. package/dist/resources/index.d.ts +26 -0
  48. package/dist/resources/index.d.ts.map +1 -0
  49. package/dist/resources/index.js +99 -0
  50. package/dist/resources/index.js.map +1 -0
  51. package/dist/server.d.ts +3 -0
  52. package/dist/server.d.ts.map +1 -0
  53. package/dist/server.js +129 -0
  54. package/dist/server.js.map +1 -0
  55. package/dist/servicenow/client.d.ts +135 -0
  56. package/dist/servicenow/client.d.ts.map +1 -0
  57. package/dist/servicenow/client.js +803 -0
  58. package/dist/servicenow/client.js.map +1 -0
  59. package/dist/servicenow/instances.d.ts +28 -0
  60. package/dist/servicenow/instances.d.ts.map +1 -0
  61. package/dist/servicenow/instances.js +204 -0
  62. package/dist/servicenow/instances.js.map +1 -0
  63. package/dist/servicenow/types.d.ts +574 -0
  64. package/dist/servicenow/types.d.ts.map +1 -0
  65. package/dist/servicenow/types.js +3 -0
  66. package/dist/servicenow/types.js.map +1 -0
  67. package/dist/tools/agile.d.ts +225 -0
  68. package/dist/tools/agile.d.ts.map +1 -0
  69. package/dist/tools/agile.js +205 -0
  70. package/dist/tools/agile.js.map +1 -0
  71. package/dist/tools/app-studio.d.ts +139 -0
  72. package/dist/tools/app-studio.d.ts.map +1 -0
  73. package/dist/tools/app-studio.js +139 -0
  74. package/dist/tools/app-studio.js.map +1 -0
  75. package/dist/tools/atf.d.ts +144 -0
  76. package/dist/tools/atf.d.ts.map +1 -0
  77. package/dist/tools/atf.js +186 -0
  78. package/dist/tools/atf.js.map +1 -0
  79. package/dist/tools/catalog.d.ts +628 -0
  80. package/dist/tools/catalog.d.ts.map +1 -0
  81. package/dist/tools/catalog.js +397 -0
  82. package/dist/tools/catalog.js.map +1 -0
  83. package/dist/tools/change.d.ts +347 -0
  84. package/dist/tools/change.d.ts.map +1 -0
  85. package/dist/tools/change.js +213 -0
  86. package/dist/tools/change.js.map +1 -0
  87. package/dist/tools/core.d.ts +540 -0
  88. package/dist/tools/core.d.ts.map +1 -0
  89. package/dist/tools/core.js +373 -0
  90. package/dist/tools/core.js.map +1 -0
  91. package/dist/tools/csm.d.ts +401 -0
  92. package/dist/tools/csm.d.ts.map +1 -0
  93. package/dist/tools/csm.js +255 -0
  94. package/dist/tools/csm.js.map +1 -0
  95. package/dist/tools/deployment.d.ts +366 -0
  96. package/dist/tools/deployment.d.ts.map +1 -0
  97. package/dist/tools/deployment.js +181 -0
  98. package/dist/tools/deployment.js.map +1 -0
  99. package/dist/tools/devops.d.ts +236 -0
  100. package/dist/tools/devops.d.ts.map +1 -0
  101. package/dist/tools/devops.js +207 -0
  102. package/dist/tools/devops.js.map +1 -0
  103. package/dist/tools/flow.d.ts +496 -0
  104. package/dist/tools/flow.d.ts.map +1 -0
  105. package/dist/tools/flow.js +348 -0
  106. package/dist/tools/flow.js.map +1 -0
  107. package/dist/tools/hrsd.d.ts +789 -0
  108. package/dist/tools/hrsd.d.ts.map +1 -0
  109. package/dist/tools/hrsd.js +377 -0
  110. package/dist/tools/hrsd.js.map +1 -0
  111. package/dist/tools/incident.d.ts +256 -0
  112. package/dist/tools/incident.d.ts.map +1 -0
  113. package/dist/tools/incident.js +163 -0
  114. package/dist/tools/incident.js.map +1 -0
  115. package/dist/tools/index.d.ts +11514 -0
  116. package/dist/tools/index.d.ts.map +1 -0
  117. package/dist/tools/index.js +276 -0
  118. package/dist/tools/index.js.map +1 -0
  119. package/dist/tools/integration.d.ts +603 -0
  120. package/dist/tools/integration.d.ts.map +1 -0
  121. package/dist/tools/integration.js +510 -0
  122. package/dist/tools/integration.js.map +1 -0
  123. package/dist/tools/itam.d.ts +462 -0
  124. package/dist/tools/itam.d.ts.map +1 -0
  125. package/dist/tools/itam.js +306 -0
  126. package/dist/tools/itam.js.map +1 -0
  127. package/dist/tools/knowledge.d.ts +187 -0
  128. package/dist/tools/knowledge.d.ts.map +1 -0
  129. package/dist/tools/knowledge.js +161 -0
  130. package/dist/tools/knowledge.js.map +1 -0
  131. package/dist/tools/ml.d.ts +263 -0
  132. package/dist/tools/ml.d.ts.map +1 -0
  133. package/dist/tools/ml.js +251 -0
  134. package/dist/tools/ml.js.map +1 -0
  135. package/dist/tools/mobile.d.ts +352 -0
  136. package/dist/tools/mobile.d.ts.map +1 -0
  137. package/dist/tools/mobile.js +122 -0
  138. package/dist/tools/mobile.js.map +1 -0
  139. package/dist/tools/notification.d.ts +590 -0
  140. package/dist/tools/notification.d.ts.map +1 -0
  141. package/dist/tools/notification.js +382 -0
  142. package/dist/tools/notification.js.map +1 -0
  143. package/dist/tools/now-assist.d.ts +300 -0
  144. package/dist/tools/now-assist.d.ts.map +1 -0
  145. package/dist/tools/now-assist.js +227 -0
  146. package/dist/tools/now-assist.js.map +1 -0
  147. package/dist/tools/performance.d.ts +447 -0
  148. package/dist/tools/performance.d.ts.map +1 -0
  149. package/dist/tools/performance.js +473 -0
  150. package/dist/tools/performance.js.map +1 -0
  151. package/dist/tools/portal.d.ts +530 -0
  152. package/dist/tools/portal.d.ts.map +1 -0
  153. package/dist/tools/portal.js +425 -0
  154. package/dist/tools/portal.js.map +1 -0
  155. package/dist/tools/problem.d.ts +110 -0
  156. package/dist/tools/problem.d.ts.map +1 -0
  157. package/dist/tools/problem.js +100 -0
  158. package/dist/tools/problem.js.map +1 -0
  159. package/dist/tools/reporting.d.ts +825 -0
  160. package/dist/tools/reporting.d.ts.map +1 -0
  161. package/dist/tools/reporting.js +460 -0
  162. package/dist/tools/reporting.js.map +1 -0
  163. package/dist/tools/script.d.ts +714 -0
  164. package/dist/tools/script.d.ts.map +1 -0
  165. package/dist/tools/script.js +629 -0
  166. package/dist/tools/script.js.map +1 -0
  167. package/dist/tools/security.d.ts +794 -0
  168. package/dist/tools/security.d.ts.map +1 -0
  169. package/dist/tools/security.js +425 -0
  170. package/dist/tools/security.js.map +1 -0
  171. package/dist/tools/sys-properties.d.ts +315 -0
  172. package/dist/tools/sys-properties.d.ts.map +1 -0
  173. package/dist/tools/sys-properties.js +372 -0
  174. package/dist/tools/sys-properties.js.map +1 -0
  175. package/dist/tools/task.d.ts +82 -0
  176. package/dist/tools/task.d.ts.map +1 -0
  177. package/dist/tools/task.js +96 -0
  178. package/dist/tools/task.js.map +1 -0
  179. package/dist/tools/updateset.d.ts +159 -0
  180. package/dist/tools/updateset.d.ts.map +1 -0
  181. package/dist/tools/updateset.js +212 -0
  182. package/dist/tools/updateset.js.map +1 -0
  183. package/dist/tools/user.d.ts +206 -0
  184. package/dist/tools/user.d.ts.map +1 -0
  185. package/dist/tools/user.js +163 -0
  186. package/dist/tools/user.js.map +1 -0
  187. package/dist/tools/va.d.ts +217 -0
  188. package/dist/tools/va.d.ts.map +1 -0
  189. package/dist/tools/va.js +178 -0
  190. package/dist/tools/va.js.map +1 -0
  191. package/dist/tools/workspace.d.ts +565 -0
  192. package/dist/tools/workspace.d.ts.map +1 -0
  193. package/dist/tools/workspace.js +201 -0
  194. package/dist/tools/workspace.js.map +1 -0
  195. package/dist/tools-manifest.json +7852 -0
  196. package/dist/utils/errors.d.ts +6 -0
  197. package/dist/utils/errors.d.ts.map +1 -0
  198. package/dist/utils/errors.js +11 -0
  199. package/dist/utils/errors.js.map +1 -0
  200. package/dist/utils/logging.d.ts +7 -0
  201. package/dist/utils/logging.d.ts.map +1 -0
  202. package/dist/utils/logging.js +15 -0
  203. package/dist/utils/logging.js.map +1 -0
  204. package/dist/utils/permissions.d.ts +21 -0
  205. package/dist/utils/permissions.d.ts.map +1 -0
  206. package/dist/utils/permissions.js +54 -0
  207. package/dist/utils/permissions.js.map +1 -0
  208. package/instances.example.json +71 -0
  209. package/package.json +110 -0
@@ -0,0 +1,49 @@
1
+ (function(){const p=document.createElement("link").relList;if(p&&p.supports&&p.supports("modulepreload"))return;for(const S of document.querySelectorAll('link[rel="modulepreload"]'))m(S);new MutationObserver(S=>{for(const w of S)if(w.type==="childList")for(const q of w.addedNodes)q.tagName==="LINK"&&q.rel==="modulepreload"&&m(q)}).observe(document,{childList:!0,subtree:!0});function u(S){const w={};return S.integrity&&(w.integrity=S.integrity),S.referrerPolicy&&(w.referrerPolicy=S.referrerPolicy),S.crossOrigin==="use-credentials"?w.credentials="include":S.crossOrigin==="anonymous"?w.credentials="omit":w.credentials="same-origin",w}function m(S){if(S.ep)return;S.ep=!0;const w=u(S);fetch(S.href,w)}})();function yu(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var Bo={exports:{}},In={},Fo={exports:{}},ye={};/**
2
+ * @license React
3
+ * react.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var $c;function fp(){if($c)return ye;$c=1;var l=Symbol.for("react.element"),p=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),m=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),w=Symbol.for("react.provider"),q=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),L=Symbol.for("react.memo"),G=Symbol.for("react.lazy"),$=Symbol.iterator;function Y(g){return g===null||typeof g!="object"?null:(g=$&&g[$]||g["@@iterator"],typeof g=="function"?g:null)}var ne={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},V=Object.assign,P={};function B(g,I,E){this.props=g,this.context=I,this.refs=P,this.updater=E||ne}B.prototype.isReactComponent={},B.prototype.setState=function(g,I){if(typeof g!="object"&&typeof g!="function"&&g!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,g,I,"setState")},B.prototype.forceUpdate=function(g){this.updater.enqueueForceUpdate(this,g,"forceUpdate")};function H(){}H.prototype=B.prototype;function re(g,I,E){this.props=g,this.context=I,this.refs=P,this.updater=E||ne}var b=re.prototype=new H;b.constructor=re,V(b,B.prototype),b.isPureReactComponent=!0;var M=Array.isArray,y=Object.prototype.hasOwnProperty,A={current:null},X={key:!0,ref:!0,__self:!0,__source:!0};function j(g,I,E){var U,oe={},de=null,se=null;if(I!=null)for(U in I.ref!==void 0&&(se=I.ref),I.key!==void 0&&(de=""+I.key),I)y.call(I,U)&&!X.hasOwnProperty(U)&&(oe[U]=I[U]);var ce=arguments.length-2;if(ce===1)oe.children=E;else if(1<ce){for(var he=Array(ce),Ge=0;Ge<ce;Ge++)he[Ge]=arguments[Ge+2];oe.children=he}if(g&&g.defaultProps)for(U in ce=g.defaultProps,ce)oe[U]===void 0&&(oe[U]=ce[U]);return{$$typeof:l,type:g,key:de,ref:se,props:oe,_owner:A.current}}function F(g,I){return{$$typeof:l,type:g.type,key:I,ref:g.ref,props:g.props,_owner:g._owner}}function O(g){return typeof g=="object"&&g!==null&&g.$$typeof===l}function Z(g){var I={"=":"=0",":":"=2"};return"$"+g.replace(/[=:]/g,function(E){return I[E]})}var _e=/\/+/g;function ve(g,I){return typeof g=="object"&&g!==null&&g.key!=null?Z(""+g.key):I.toString(36)}function we(g,I,E,U,oe){var de=typeof g;(de==="undefined"||de==="boolean")&&(g=null);var se=!1;if(g===null)se=!0;else switch(de){case"string":case"number":se=!0;break;case"object":switch(g.$$typeof){case l:case p:se=!0}}if(se)return se=g,oe=oe(se),g=U===""?"."+ve(se,0):U,M(oe)?(E="",g!=null&&(E=g.replace(_e,"$&/")+"/"),we(oe,I,E,"",function(Ge){return Ge})):oe!=null&&(O(oe)&&(oe=F(oe,E+(!oe.key||se&&se.key===oe.key?"":(""+oe.key).replace(_e,"$&/")+"/")+g)),I.push(oe)),1;if(se=0,U=U===""?".":U+":",M(g))for(var ce=0;ce<g.length;ce++){de=g[ce];var he=U+ve(de,ce);se+=we(de,I,E,he,oe)}else if(he=Y(g),typeof he=="function")for(g=he.call(g),ce=0;!(de=g.next()).done;)de=de.value,he=U+ve(de,ce++),se+=we(de,I,E,he,oe);else if(de==="object")throw I=String(g),Error("Objects are not valid as a React child (found: "+(I==="[object Object]"?"object with keys {"+Object.keys(g).join(", ")+"}":I)+"). If you meant to render a collection of children, use an array instead.");return se}function fe(g,I,E){if(g==null)return g;var U=[],oe=0;return we(g,U,"","",function(de){return I.call(E,de,oe++)}),U}function Se(g){if(g._status===-1){var I=g._result;I=I(),I.then(function(E){(g._status===0||g._status===-1)&&(g._status=1,g._result=E)},function(E){(g._status===0||g._status===-1)&&(g._status=2,g._result=E)}),g._status===-1&&(g._status=0,g._result=I)}if(g._status===1)return g._result.default;throw g._result}var pe={current:null},z={transition:null},ie={ReactCurrentDispatcher:pe,ReactCurrentBatchConfig:z,ReactCurrentOwner:A};function k(){throw Error("act(...) is not supported in production builds of React.")}return ye.Children={map:fe,forEach:function(g,I,E){fe(g,function(){I.apply(this,arguments)},E)},count:function(g){var I=0;return fe(g,function(){I++}),I},toArray:function(g){return fe(g,function(I){return I})||[]},only:function(g){if(!O(g))throw Error("React.Children.only expected to receive a single React element child.");return g}},ye.Component=B,ye.Fragment=u,ye.Profiler=S,ye.PureComponent=re,ye.StrictMode=m,ye.Suspense=C,ye.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ie,ye.act=k,ye.cloneElement=function(g,I,E){if(g==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+g+".");var U=V({},g.props),oe=g.key,de=g.ref,se=g._owner;if(I!=null){if(I.ref!==void 0&&(de=I.ref,se=A.current),I.key!==void 0&&(oe=""+I.key),g.type&&g.type.defaultProps)var ce=g.type.defaultProps;for(he in I)y.call(I,he)&&!X.hasOwnProperty(he)&&(U[he]=I[he]===void 0&&ce!==void 0?ce[he]:I[he])}var he=arguments.length-2;if(he===1)U.children=E;else if(1<he){ce=Array(he);for(var Ge=0;Ge<he;Ge++)ce[Ge]=arguments[Ge+2];U.children=ce}return{$$typeof:l,type:g.type,key:oe,ref:de,props:U,_owner:se}},ye.createContext=function(g){return g={$$typeof:q,_currentValue:g,_currentValue2:g,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},g.Provider={$$typeof:w,_context:g},g.Consumer=g},ye.createElement=j,ye.createFactory=function(g){var I=j.bind(null,g);return I.type=g,I},ye.createRef=function(){return{current:null}},ye.forwardRef=function(g){return{$$typeof:_,render:g}},ye.isValidElement=O,ye.lazy=function(g){return{$$typeof:G,_payload:{_status:-1,_result:g},_init:Se}},ye.memo=function(g,I){return{$$typeof:L,type:g,compare:I===void 0?null:I}},ye.startTransition=function(g){var I=z.transition;z.transition={};try{g()}finally{z.transition=I}},ye.unstable_act=k,ye.useCallback=function(g,I){return pe.current.useCallback(g,I)},ye.useContext=function(g){return pe.current.useContext(g)},ye.useDebugValue=function(){},ye.useDeferredValue=function(g){return pe.current.useDeferredValue(g)},ye.useEffect=function(g,I){return pe.current.useEffect(g,I)},ye.useId=function(){return pe.current.useId()},ye.useImperativeHandle=function(g,I,E){return pe.current.useImperativeHandle(g,I,E)},ye.useInsertionEffect=function(g,I){return pe.current.useInsertionEffect(g,I)},ye.useLayoutEffect=function(g,I){return pe.current.useLayoutEffect(g,I)},ye.useMemo=function(g,I){return pe.current.useMemo(g,I)},ye.useReducer=function(g,I,E){return pe.current.useReducer(g,I,E)},ye.useRef=function(g){return pe.current.useRef(g)},ye.useState=function(g){return pe.current.useState(g)},ye.useSyncExternalStore=function(g,I,E){return pe.current.useSyncExternalStore(g,I,E)},ye.useTransition=function(){return pe.current.useTransition()},ye.version="18.3.1",ye}var Kc;function Xo(){return Kc||(Kc=1,Fo.exports=fp()),Fo.exports}/**
10
+ * @license React
11
+ * react-jsx-runtime.production.min.js
12
+ *
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Qc;function mp(){if(Qc)return In;Qc=1;var l=Xo(),p=Symbol.for("react.element"),u=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,S=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,w={key:!0,ref:!0,__self:!0,__source:!0};function q(_,C,L){var G,$={},Y=null,ne=null;L!==void 0&&(Y=""+L),C.key!==void 0&&(Y=""+C.key),C.ref!==void 0&&(ne=C.ref);for(G in C)m.call(C,G)&&!w.hasOwnProperty(G)&&($[G]=C[G]);if(_&&_.defaultProps)for(G in C=_.defaultProps,C)$[G]===void 0&&($[G]=C[G]);return{$$typeof:p,type:_,key:Y,ref:ne,props:$,_owner:S.current}}return In.Fragment=u,In.jsx=q,In.jsxs=q,In}var Yc;function gp(){return Yc||(Yc=1,Bo.exports=mp()),Bo.exports}var s=gp(),W=Xo();const Jo=yu(W);var Ui={},Oo={exports:{}},Je={},Wo={exports:{}},Uo={};/**
18
+ * @license React
19
+ * scheduler.production.min.js
20
+ *
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */var Xc;function hp(){return Xc||(Xc=1,(function(l){function p(z,ie){var k=z.length;z.push(ie);e:for(;0<k;){var g=k-1>>>1,I=z[g];if(0<S(I,ie))z[g]=ie,z[k]=I,k=g;else break e}}function u(z){return z.length===0?null:z[0]}function m(z){if(z.length===0)return null;var ie=z[0],k=z.pop();if(k!==ie){z[0]=k;e:for(var g=0,I=z.length,E=I>>>1;g<E;){var U=2*(g+1)-1,oe=z[U],de=U+1,se=z[de];if(0>S(oe,k))de<I&&0>S(se,oe)?(z[g]=se,z[de]=k,g=de):(z[g]=oe,z[U]=k,g=U);else if(de<I&&0>S(se,k))z[g]=se,z[de]=k,g=de;else break e}}return ie}function S(z,ie){var k=z.sortIndex-ie.sortIndex;return k!==0?k:z.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var w=performance;l.unstable_now=function(){return w.now()}}else{var q=Date,_=q.now();l.unstable_now=function(){return q.now()-_}}var C=[],L=[],G=1,$=null,Y=3,ne=!1,V=!1,P=!1,B=typeof setTimeout=="function"?setTimeout:null,H=typeof clearTimeout=="function"?clearTimeout:null,re=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function b(z){for(var ie=u(L);ie!==null;){if(ie.callback===null)m(L);else if(ie.startTime<=z)m(L),ie.sortIndex=ie.expirationTime,p(C,ie);else break;ie=u(L)}}function M(z){if(P=!1,b(z),!V)if(u(C)!==null)V=!0,Se(y);else{var ie=u(L);ie!==null&&pe(M,ie.startTime-z)}}function y(z,ie){V=!1,P&&(P=!1,H(j),j=-1),ne=!0;var k=Y;try{for(b(ie),$=u(C);$!==null&&(!($.expirationTime>ie)||z&&!Z());){var g=$.callback;if(typeof g=="function"){$.callback=null,Y=$.priorityLevel;var I=g($.expirationTime<=ie);ie=l.unstable_now(),typeof I=="function"?$.callback=I:$===u(C)&&m(C),b(ie)}else m(C);$=u(C)}if($!==null)var E=!0;else{var U=u(L);U!==null&&pe(M,U.startTime-ie),E=!1}return E}finally{$=null,Y=k,ne=!1}}var A=!1,X=null,j=-1,F=5,O=-1;function Z(){return!(l.unstable_now()-O<F)}function _e(){if(X!==null){var z=l.unstable_now();O=z;var ie=!0;try{ie=X(!0,z)}finally{ie?ve():(A=!1,X=null)}}else A=!1}var ve;if(typeof re=="function")ve=function(){re(_e)};else if(typeof MessageChannel<"u"){var we=new MessageChannel,fe=we.port2;we.port1.onmessage=_e,ve=function(){fe.postMessage(null)}}else ve=function(){B(_e,0)};function Se(z){X=z,A||(A=!0,ve())}function pe(z,ie){j=B(function(){z(l.unstable_now())},ie)}l.unstable_IdlePriority=5,l.unstable_ImmediatePriority=1,l.unstable_LowPriority=4,l.unstable_NormalPriority=3,l.unstable_Profiling=null,l.unstable_UserBlockingPriority=2,l.unstable_cancelCallback=function(z){z.callback=null},l.unstable_continueExecution=function(){V||ne||(V=!0,Se(y))},l.unstable_forceFrameRate=function(z){0>z||125<z?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):F=0<z?Math.floor(1e3/z):5},l.unstable_getCurrentPriorityLevel=function(){return Y},l.unstable_getFirstCallbackNode=function(){return u(C)},l.unstable_next=function(z){switch(Y){case 1:case 2:case 3:var ie=3;break;default:ie=Y}var k=Y;Y=ie;try{return z()}finally{Y=k}},l.unstable_pauseExecution=function(){},l.unstable_requestPaint=function(){},l.unstable_runWithPriority=function(z,ie){switch(z){case 1:case 2:case 3:case 4:case 5:break;default:z=3}var k=Y;Y=z;try{return ie()}finally{Y=k}},l.unstable_scheduleCallback=function(z,ie,k){var g=l.unstable_now();switch(typeof k=="object"&&k!==null?(k=k.delay,k=typeof k=="number"&&0<k?g+k:g):k=g,z){case 1:var I=-1;break;case 2:I=250;break;case 5:I=1073741823;break;case 4:I=1e4;break;default:I=5e3}return I=k+I,z={id:G++,callback:ie,priorityLevel:z,startTime:k,expirationTime:I,sortIndex:-1},k>g?(z.sortIndex=k,p(L,z),u(C)===null&&z===u(L)&&(P?(H(j),j=-1):P=!0,pe(M,k-g))):(z.sortIndex=I,p(C,z),V||ne||(V=!0,Se(y))),z},l.unstable_shouldYield=Z,l.unstable_wrapCallback=function(z){var ie=Y;return function(){var k=Y;Y=ie;try{return z.apply(this,arguments)}finally{Y=k}}}})(Uo)),Uo}var Jc;function _p(){return Jc||(Jc=1,Wo.exports=hp()),Wo.exports}/**
26
+ * @license React
27
+ * react-dom.production.min.js
28
+ *
29
+ * Copyright (c) Facebook, Inc. and its affiliates.
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */var Zc;function vp(){if(Zc)return Je;Zc=1;var l=Xo(),p=_p();function u(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m=new Set,S={};function w(e,t){q(e,t),q(e+"Capture",t)}function q(e,t){for(S[e]=t,e=0;e<t.length;e++)m.add(t[e])}var _=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),C=Object.prototype.hasOwnProperty,L=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,G={},$={};function Y(e){return C.call($,e)?!0:C.call(G,e)?!1:L.test(e)?$[e]=!0:(G[e]=!0,!1)}function ne(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function V(e,t,r,n){if(t===null||typeof t>"u"||ne(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function P(e,t,r,n,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var B={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){B[e]=new P(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];B[t]=new P(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){B[e]=new P(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){B[e]=new P(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){B[e]=new P(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){B[e]=new P(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){B[e]=new P(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){B[e]=new P(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){B[e]=new P(e,5,!1,e.toLowerCase(),null,!1,!1)});var H=/[\-:]([a-z])/g;function re(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(H,re);B[t]=new P(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(H,re);B[t]=new P(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(H,re);B[t]=new P(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){B[e]=new P(e,1,!1,e.toLowerCase(),null,!1,!1)}),B.xlinkHref=new P("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){B[e]=new P(e,1,!1,e.toLowerCase(),null,!0,!0)});function b(e,t,r,n){var i=B.hasOwnProperty(t)?B[t]:null;(i!==null?i.type!==0:n||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(V(t,r,i,n)&&(r=null),n||i===null?Y(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,""+r)):i.mustUseProperty?e[i.propertyName]=r===null?i.type===3?!1:"":r:(t=i.attributeName,n=i.attributeNamespace,r===null?e.removeAttribute(t):(i=i.type,r=i===3||i===4&&r===!0?"":""+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}var M=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,y=Symbol.for("react.element"),A=Symbol.for("react.portal"),X=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),O=Symbol.for("react.provider"),Z=Symbol.for("react.context"),_e=Symbol.for("react.forward_ref"),ve=Symbol.for("react.suspense"),we=Symbol.for("react.suspense_list"),fe=Symbol.for("react.memo"),Se=Symbol.for("react.lazy"),pe=Symbol.for("react.offscreen"),z=Symbol.iterator;function ie(e){return e===null||typeof e!="object"?null:(e=z&&e[z]||e["@@iterator"],typeof e=="function"?e:null)}var k=Object.assign,g;function I(e){if(g===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);g=t&&t[1]||""}return`
34
+ `+g+e}var E=!1;function U(e,t){if(!e||E)return"";E=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(x){var n=x}Reflect.construct(e,[],t)}else{try{t.call()}catch(x){n=x}e.call(t.prototype)}else{try{throw Error()}catch(x){n=x}e()}}catch(x){if(x&&n&&typeof x.stack=="string"){for(var i=x.stack.split(`
35
+ `),o=n.stack.split(`
36
+ `),a=i.length-1,c=o.length-1;1<=a&&0<=c&&i[a]!==o[c];)c--;for(;1<=a&&0<=c;a--,c--)if(i[a]!==o[c]){if(a!==1||c!==1)do if(a--,c--,0>c||i[a]!==o[c]){var d=`
37
+ `+i[a].replace(" at new "," at ");return e.displayName&&d.includes("<anonymous>")&&(d=d.replace("<anonymous>",e.displayName)),d}while(1<=a&&0<=c);break}}}finally{E=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?I(e):""}function oe(e){switch(e.tag){case 5:return I(e.type);case 16:return I("Lazy");case 13:return I("Suspense");case 19:return I("SuspenseList");case 0:case 2:case 15:return e=U(e.type,!1),e;case 11:return e=U(e.type.render,!1),e;case 1:return e=U(e.type,!0),e;default:return""}}function de(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case X:return"Fragment";case A:return"Portal";case F:return"Profiler";case j:return"StrictMode";case ve:return"Suspense";case we:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Z:return(e.displayName||"Context")+".Consumer";case O:return(e._context.displayName||"Context")+".Provider";case _e:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case fe:return t=e.displayName||null,t!==null?t:de(e.type)||"Memo";case Se:t=e._payload,e=e._init;try{return de(e(t))}catch{}}return null}function se(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return de(t);case 8:return t===j?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ce(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function he(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ge(e){var t=he(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,o=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){n=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function An(e){e._valueTracker||(e._valueTracker=Ge(e))}function Zo(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=he(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Rn(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Hi(e,t){var r=t.checked;return k({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function ea(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=ce(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ta(e,t){t=t.checked,t!=null&&b(e,"checked",t,!1)}function Vi(e,t){ta(e,t);var r=ce(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?$i(e,t.type,r):t.hasOwnProperty("defaultValue")&&$i(e,t.type,ce(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ra(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function $i(e,t,r){(t!=="number"||Rn(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Wr=Array.isArray;function mr(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i<r.length;i++)t["$"+r[i]]=!0;for(r=0;r<e.length;r++)i=t.hasOwnProperty("$"+e[r].value),e[r].selected!==i&&(e[r].selected=i),i&&n&&(e[r].defaultSelected=!0)}else{for(r=""+ce(r),t=null,i=0;i<e.length;i++){if(e[i].value===r){e[i].selected=!0,n&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ki(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(u(91));return k({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function na(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(u(92));if(Wr(r)){if(1<r.length)throw Error(u(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:ce(r)}}function ia(e,t){var r=ce(t.value),n=ce(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function sa(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function oa(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Qi(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?oa(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Pn,aa=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,r,n,i){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,i)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Pn=Pn||document.createElement("div"),Pn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Pn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ur(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Gr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},_u=["Webkit","ms","Moz","O"];Object.keys(Gr).forEach(function(e){_u.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Gr[t]=Gr[e]})});function la(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Gr.hasOwnProperty(e)&&Gr[e]?(""+t).trim():t+"px"}function ca(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=la(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var vu=k({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Yi(e,t){if(t){if(vu[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(u(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(u(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(u(61))}if(t.style!=null&&typeof t.style!="object")throw Error(u(62))}}function Xi(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ji=null;function Zi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var es=null,gr=null,hr=null;function ua(e){if(e=yn(e)){if(typeof es!="function")throw Error(u(280));var t=e.stateNode;t&&(t=ii(t),es(e.stateNode,e.type,t))}}function da(e){gr?hr?hr.push(e):hr=[e]:gr=e}function pa(){if(gr){var e=gr,t=hr;if(hr=gr=null,ua(e),t)for(e=0;e<t.length;e++)ua(t[e])}}function ya(e,t){return e(t)}function fa(){}var ts=!1;function ma(e,t,r){if(ts)return e(t,r);ts=!0;try{return ya(e,t,r)}finally{ts=!1,(gr!==null||hr!==null)&&(fa(),pa())}}function Hr(e,t){var r=e.stateNode;if(r===null)return null;var n=ii(r);if(n===null)return null;r=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(r&&typeof r!="function")throw Error(u(231,t,typeof r));return r}var rs=!1;if(_)try{var Vr={};Object.defineProperty(Vr,"passive",{get:function(){rs=!0}}),window.addEventListener("test",Vr,Vr),window.removeEventListener("test",Vr,Vr)}catch{rs=!1}function xu(e,t,r,n,i,o,a,c,d){var x=Array.prototype.slice.call(arguments,3);try{t.apply(r,x)}catch(N){this.onError(N)}}var $r=!1,Mn=null,Dn=!1,ns=null,Su={onError:function(e){$r=!0,Mn=e}};function bu(e,t,r,n,i,o,a,c,d){$r=!1,Mn=null,xu.apply(Su,arguments)}function wu(e,t,r,n,i,o,a,c,d){if(bu.apply(this,arguments),$r){if($r){var x=Mn;$r=!1,Mn=null}else throw Error(u(198));Dn||(Dn=!0,ns=x)}}function Xt(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function ga(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ha(e){if(Xt(e)!==e)throw Error(u(188))}function ku(e){var t=e.alternate;if(!t){if(t=Xt(e),t===null)throw Error(u(188));return t!==e?null:e}for(var r=e,n=t;;){var i=r.return;if(i===null)break;var o=i.alternate;if(o===null){if(n=i.return,n!==null){r=n;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===r)return ha(i),e;if(o===n)return ha(i),t;o=o.sibling}throw Error(u(188))}if(r.return!==n.return)r=i,n=o;else{for(var a=!1,c=i.child;c;){if(c===r){a=!0,r=i,n=o;break}if(c===n){a=!0,n=i,r=o;break}c=c.sibling}if(!a){for(c=o.child;c;){if(c===r){a=!0,r=o,n=i;break}if(c===n){a=!0,n=o,r=i;break}c=c.sibling}if(!a)throw Error(u(189))}}if(r.alternate!==n)throw Error(u(190))}if(r.tag!==3)throw Error(u(188));return r.stateNode.current===r?e:t}function _a(e){return e=ku(e),e!==null?va(e):null}function va(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=va(e);if(t!==null)return t;e=e.sibling}return null}var xa=p.unstable_scheduleCallback,Sa=p.unstable_cancelCallback,ju=p.unstable_shouldYield,Cu=p.unstable_requestPaint,Le=p.unstable_now,Eu=p.unstable_getCurrentPriorityLevel,is=p.unstable_ImmediatePriority,ba=p.unstable_UserBlockingPriority,zn=p.unstable_NormalPriority,Iu=p.unstable_LowPriority,wa=p.unstable_IdlePriority,Bn=null,ht=null;function qu(e){if(ht&&typeof ht.onCommitFiberRoot=="function")try{ht.onCommitFiberRoot(Bn,e,void 0,(e.current.flags&128)===128)}catch{}}var ut=Math.clz32?Math.clz32:Nu,Lu=Math.log,Tu=Math.LN2;function Nu(e){return e>>>=0,e===0?32:31-(Lu(e)/Tu|0)|0}var Fn=64,On=4194304;function Kr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Wn(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,i=e.suspendedLanes,o=e.pingedLanes,a=r&268435455;if(a!==0){var c=a&~i;c!==0?n=Kr(c):(o&=a,o!==0&&(n=Kr(o)))}else a=r&~i,a!==0?n=Kr(a):o!==0&&(n=Kr(o));if(n===0)return 0;if(t!==0&&t!==n&&(t&i)===0&&(i=n&-n,o=t&-t,i>=o||i===16&&(o&4194240)!==0))return t;if((n&4)!==0&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)r=31-ut(t),i=1<<r,n|=e[r],t&=~i;return n}function Au(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ru(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,i=e.expirationTimes,o=e.pendingLanes;0<o;){var a=31-ut(o),c=1<<a,d=i[a];d===-1?((c&r)===0||(c&n)!==0)&&(i[a]=Au(c,t)):d<=t&&(e.expiredLanes|=c),o&=~c}}function ss(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function ka(){var e=Fn;return Fn<<=1,(Fn&4194240)===0&&(Fn=64),e}function os(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Qr(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ut(t),e[t]=r}function Pu(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0<r;){var i=31-ut(r),o=1<<i;t[i]=0,n[i]=-1,e[i]=-1,r&=~o}}function as(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var n=31-ut(r),i=1<<n;i&t|e[n]&t&&(e[n]|=t),r&=~i}}var xe=0;function ja(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Ca,ls,Ea,Ia,qa,cs=!1,Un=[],Nt=null,At=null,Rt=null,Yr=new Map,Xr=new Map,Pt=[],Mu="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function La(e,t){switch(e){case"focusin":case"focusout":Nt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":Rt=null;break;case"pointerover":case"pointerout":Yr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Xr.delete(t.pointerId)}}function Jr(e,t,r,n,i,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:r,eventSystemFlags:n,nativeEvent:o,targetContainers:[i]},t!==null&&(t=yn(t),t!==null&&ls(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Du(e,t,r,n,i){switch(t){case"focusin":return Nt=Jr(Nt,e,t,r,n,i),!0;case"dragenter":return At=Jr(At,e,t,r,n,i),!0;case"mouseover":return Rt=Jr(Rt,e,t,r,n,i),!0;case"pointerover":var o=i.pointerId;return Yr.set(o,Jr(Yr.get(o)||null,e,t,r,n,i)),!0;case"gotpointercapture":return o=i.pointerId,Xr.set(o,Jr(Xr.get(o)||null,e,t,r,n,i)),!0}return!1}function Ta(e){var t=Jt(e.target);if(t!==null){var r=Xt(t);if(r!==null){if(t=r.tag,t===13){if(t=ga(r),t!==null){e.blockedOn=t,qa(e.priority,function(){Ea(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Gn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=ds(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var n=new r.constructor(r.type,r);Ji=n,r.target.dispatchEvent(n),Ji=null}else return t=yn(r),t!==null&&ls(t),e.blockedOn=r,!1;t.shift()}return!0}function Na(e,t,r){Gn(e)&&r.delete(t)}function zu(){cs=!1,Nt!==null&&Gn(Nt)&&(Nt=null),At!==null&&Gn(At)&&(At=null),Rt!==null&&Gn(Rt)&&(Rt=null),Yr.forEach(Na),Xr.forEach(Na)}function Zr(e,t){e.blockedOn===t&&(e.blockedOn=null,cs||(cs=!0,p.unstable_scheduleCallback(p.unstable_NormalPriority,zu)))}function en(e){function t(i){return Zr(i,e)}if(0<Un.length){Zr(Un[0],e);for(var r=1;r<Un.length;r++){var n=Un[r];n.blockedOn===e&&(n.blockedOn=null)}}for(Nt!==null&&Zr(Nt,e),At!==null&&Zr(At,e),Rt!==null&&Zr(Rt,e),Yr.forEach(t),Xr.forEach(t),r=0;r<Pt.length;r++)n=Pt[r],n.blockedOn===e&&(n.blockedOn=null);for(;0<Pt.length&&(r=Pt[0],r.blockedOn===null);)Ta(r),r.blockedOn===null&&Pt.shift()}var _r=M.ReactCurrentBatchConfig,Hn=!0;function Bu(e,t,r,n){var i=xe,o=_r.transition;_r.transition=null;try{xe=1,us(e,t,r,n)}finally{xe=i,_r.transition=o}}function Fu(e,t,r,n){var i=xe,o=_r.transition;_r.transition=null;try{xe=4,us(e,t,r,n)}finally{xe=i,_r.transition=o}}function us(e,t,r,n){if(Hn){var i=ds(e,t,r,n);if(i===null)Is(e,t,n,Vn,r),La(e,n);else if(Du(i,e,t,r,n))n.stopPropagation();else if(La(e,n),t&4&&-1<Mu.indexOf(e)){for(;i!==null;){var o=yn(i);if(o!==null&&Ca(o),o=ds(e,t,r,n),o===null&&Is(e,t,n,Vn,r),o===i)break;i=o}i!==null&&n.stopPropagation()}else Is(e,t,n,null,r)}}var Vn=null;function ds(e,t,r,n){if(Vn=null,e=Zi(n),e=Jt(e),e!==null)if(t=Xt(e),t===null)e=null;else if(r=t.tag,r===13){if(e=ga(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Vn=e,null}function Aa(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Eu()){case is:return 1;case ba:return 4;case zn:case Iu:return 16;case wa:return 536870912;default:return 16}default:return 16}}var Mt=null,ps=null,$n=null;function Ra(){if($n)return $n;var e,t=ps,r=t.length,n,i="value"in Mt?Mt.value:Mt.textContent,o=i.length;for(e=0;e<r&&t[e]===i[e];e++);var a=r-e;for(n=1;n<=a&&t[r-n]===i[o-n];n++);return $n=i.slice(e,1<n?1-n:void 0)}function Kn(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Qn(){return!0}function Pa(){return!1}function Ze(e){function t(r,n,i,o,a){this._reactName=r,this._targetInst=i,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null;for(var c in e)e.hasOwnProperty(c)&&(r=e[c],this[c]=r?r(o):o[c]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?Qn:Pa,this.isPropagationStopped=Pa,this}return k(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=Qn)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=Qn)},persist:function(){},isPersistent:Qn}),t}var vr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ys=Ze(vr),tn=k({},vr,{view:0,detail:0}),Ou=Ze(tn),fs,ms,rn,Yn=k({},tn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:hs,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==rn&&(rn&&e.type==="mousemove"?(fs=e.screenX-rn.screenX,ms=e.screenY-rn.screenY):ms=fs=0,rn=e),fs)},movementY:function(e){return"movementY"in e?e.movementY:ms}}),Ma=Ze(Yn),Wu=k({},Yn,{dataTransfer:0}),Uu=Ze(Wu),Gu=k({},tn,{relatedTarget:0}),gs=Ze(Gu),Hu=k({},vr,{animationName:0,elapsedTime:0,pseudoElement:0}),Vu=Ze(Hu),$u=k({},vr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Ku=Ze($u),Qu=k({},vr,{data:0}),Da=Ze(Qu),Yu={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Xu={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Ju={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zu(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Ju[e])?!!t[e]:!1}function hs(){return Zu}var ed=k({},tn,{key:function(e){if(e.key){var t=Yu[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Kn(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Xu[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:hs,charCode:function(e){return e.type==="keypress"?Kn(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Kn(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),td=Ze(ed),rd=k({},Yn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),za=Ze(rd),nd=k({},tn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:hs}),id=Ze(nd),sd=k({},vr,{propertyName:0,elapsedTime:0,pseudoElement:0}),od=Ze(sd),ad=k({},Yn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),ld=Ze(ad),cd=[9,13,27,32],_s=_&&"CompositionEvent"in window,nn=null;_&&"documentMode"in document&&(nn=document.documentMode);var ud=_&&"TextEvent"in window&&!nn,Ba=_&&(!_s||nn&&8<nn&&11>=nn),Fa=" ",Oa=!1;function Wa(e,t){switch(e){case"keyup":return cd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ua(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xr=!1;function dd(e,t){switch(e){case"compositionend":return Ua(t);case"keypress":return t.which!==32?null:(Oa=!0,Fa);case"textInput":return e=t.data,e===Fa&&Oa?null:e;default:return null}}function pd(e,t){if(xr)return e==="compositionend"||!_s&&Wa(e,t)?(e=Ra(),$n=ps=Mt=null,xr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ba&&t.locale!=="ko"?null:t.data;default:return null}}var yd={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ga(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!yd[e.type]:t==="textarea"}function Ha(e,t,r,n){da(n),t=ti(t,"onChange"),0<t.length&&(r=new ys("onChange","change",null,r,n),e.push({event:r,listeners:t}))}var sn=null,on=null;function fd(e){cl(e,0)}function Xn(e){var t=jr(e);if(Zo(t))return e}function md(e,t){if(e==="change")return t}var Va=!1;if(_){var vs;if(_){var xs="oninput"in document;if(!xs){var $a=document.createElement("div");$a.setAttribute("oninput","return;"),xs=typeof $a.oninput=="function"}vs=xs}else vs=!1;Va=vs&&(!document.documentMode||9<document.documentMode)}function Ka(){sn&&(sn.detachEvent("onpropertychange",Qa),on=sn=null)}function Qa(e){if(e.propertyName==="value"&&Xn(on)){var t=[];Ha(t,on,e,Zi(e)),ma(fd,t)}}function gd(e,t,r){e==="focusin"?(Ka(),sn=t,on=r,sn.attachEvent("onpropertychange",Qa)):e==="focusout"&&Ka()}function hd(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Xn(on)}function _d(e,t){if(e==="click")return Xn(t)}function vd(e,t){if(e==="input"||e==="change")return Xn(t)}function xd(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var dt=typeof Object.is=="function"?Object.is:xd;function an(e,t){if(dt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++){var i=r[n];if(!C.call(t,i)||!dt(e[i],t[i]))return!1}return!0}function Ya(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Xa(e,t){var r=Ya(e);e=0;for(var n;r;){if(r.nodeType===3){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Ya(r)}}function Ja(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ja(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Za(){for(var e=window,t=Rn();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Rn(e.document)}return t}function Ss(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Sd(e){var t=Za(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Ja(r.ownerDocument.documentElement,r)){if(n!==null&&Ss(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=r.textContent.length,o=Math.min(n.start,i);n=n.end===void 0?o:Math.min(n.end,i),!e.extend&&o>n&&(i=n,n=o,o=i),i=Xa(r,o);var a=Xa(r,n);i&&a&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),o>n?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var bd=_&&"documentMode"in document&&11>=document.documentMode,Sr=null,bs=null,ln=null,ws=!1;function el(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;ws||Sr==null||Sr!==Rn(n)||(n=Sr,"selectionStart"in n&&Ss(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),ln&&an(ln,n)||(ln=n,n=ti(bs,"onSelect"),0<n.length&&(t=new ys("onSelect","select",null,t,r),e.push({event:t,listeners:n}),t.target=Sr)))}function Jn(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r["Webkit"+e]="webkit"+t,r["Moz"+e]="moz"+t,r}var br={animationend:Jn("Animation","AnimationEnd"),animationiteration:Jn("Animation","AnimationIteration"),animationstart:Jn("Animation","AnimationStart"),transitionend:Jn("Transition","TransitionEnd")},ks={},tl={};_&&(tl=document.createElement("div").style,"AnimationEvent"in window||(delete br.animationend.animation,delete br.animationiteration.animation,delete br.animationstart.animation),"TransitionEvent"in window||delete br.transitionend.transition);function Zn(e){if(ks[e])return ks[e];if(!br[e])return e;var t=br[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in tl)return ks[e]=t[r];return e}var rl=Zn("animationend"),nl=Zn("animationiteration"),il=Zn("animationstart"),sl=Zn("transitionend"),ol=new Map,al="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Dt(e,t){ol.set(e,t),w(t,[e])}for(var js=0;js<al.length;js++){var Cs=al[js],wd=Cs.toLowerCase(),kd=Cs[0].toUpperCase()+Cs.slice(1);Dt(wd,"on"+kd)}Dt(rl,"onAnimationEnd"),Dt(nl,"onAnimationIteration"),Dt(il,"onAnimationStart"),Dt("dblclick","onDoubleClick"),Dt("focusin","onFocus"),Dt("focusout","onBlur"),Dt(sl,"onTransitionEnd"),q("onMouseEnter",["mouseout","mouseover"]),q("onMouseLeave",["mouseout","mouseover"]),q("onPointerEnter",["pointerout","pointerover"]),q("onPointerLeave",["pointerout","pointerover"]),w("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),w("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),w("onBeforeInput",["compositionend","keypress","textInput","paste"]),w("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),w("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),w("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var cn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),jd=new Set("cancel close invalid load scroll toggle".split(" ").concat(cn));function ll(e,t,r){var n=e.type||"unknown-event";e.currentTarget=r,wu(n,t,void 0,e),e.currentTarget=null}function cl(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var n=e[r],i=n.event;n=n.listeners;e:{var o=void 0;if(t)for(var a=n.length-1;0<=a;a--){var c=n[a],d=c.instance,x=c.currentTarget;if(c=c.listener,d!==o&&i.isPropagationStopped())break e;ll(i,c,x),o=d}else for(a=0;a<n.length;a++){if(c=n[a],d=c.instance,x=c.currentTarget,c=c.listener,d!==o&&i.isPropagationStopped())break e;ll(i,c,x),o=d}}}if(Dn)throw e=ns,Dn=!1,ns=null,e}function ke(e,t){var r=t[Rs];r===void 0&&(r=t[Rs]=new Set);var n=e+"__bubble";r.has(n)||(ul(t,e,2,!1),r.add(n))}function Es(e,t,r){var n=0;t&&(n|=4),ul(r,e,n,t)}var ei="_reactListening"+Math.random().toString(36).slice(2);function un(e){if(!e[ei]){e[ei]=!0,m.forEach(function(r){r!=="selectionchange"&&(jd.has(r)||Es(r,!1,e),Es(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ei]||(t[ei]=!0,Es("selectionchange",!1,t))}}function ul(e,t,r,n){switch(Aa(t)){case 1:var i=Bu;break;case 4:i=Fu;break;default:i=us}r=i.bind(null,t,r,e),i=void 0,!rs||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(i=!0),n?i!==void 0?e.addEventListener(t,r,{capture:!0,passive:i}):e.addEventListener(t,r,!0):i!==void 0?e.addEventListener(t,r,{passive:i}):e.addEventListener(t,r,!1)}function Is(e,t,r,n,i){var o=n;if((t&1)===0&&(t&2)===0&&n!==null)e:for(;;){if(n===null)return;var a=n.tag;if(a===3||a===4){var c=n.stateNode.containerInfo;if(c===i||c.nodeType===8&&c.parentNode===i)break;if(a===4)for(a=n.return;a!==null;){var d=a.tag;if((d===3||d===4)&&(d=a.stateNode.containerInfo,d===i||d.nodeType===8&&d.parentNode===i))return;a=a.return}for(;c!==null;){if(a=Jt(c),a===null)return;if(d=a.tag,d===5||d===6){n=o=a;continue e}c=c.parentNode}}n=n.return}ma(function(){var x=o,N=Zi(r),R=[];e:{var T=ol.get(e);if(T!==void 0){var K=ys,J=e;switch(e){case"keypress":if(Kn(r)===0)break e;case"keydown":case"keyup":K=td;break;case"focusin":J="focus",K=gs;break;case"focusout":J="blur",K=gs;break;case"beforeblur":case"afterblur":K=gs;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":K=Ma;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":K=Uu;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":K=id;break;case rl:case nl:case il:K=Vu;break;case sl:K=od;break;case"scroll":K=Ou;break;case"wheel":K=ld;break;case"copy":case"cut":case"paste":K=Ku;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":K=za}var ee=(t&4)!==0,Te=!ee&&e==="scroll",h=ee?T!==null?T+"Capture":null:T;ee=[];for(var f=x,v;f!==null;){v=f;var D=v.stateNode;if(v.tag===5&&D!==null&&(v=D,h!==null&&(D=Hr(f,h),D!=null&&ee.push(dn(f,D,v)))),Te)break;f=f.return}0<ee.length&&(T=new K(T,J,null,r,N),R.push({event:T,listeners:ee}))}}if((t&7)===0){e:{if(T=e==="mouseover"||e==="pointerover",K=e==="mouseout"||e==="pointerout",T&&r!==Ji&&(J=r.relatedTarget||r.fromElement)&&(Jt(J)||J[kt]))break e;if((K||T)&&(T=N.window===N?N:(T=N.ownerDocument)?T.defaultView||T.parentWindow:window,K?(J=r.relatedTarget||r.toElement,K=x,J=J?Jt(J):null,J!==null&&(Te=Xt(J),J!==Te||J.tag!==5&&J.tag!==6)&&(J=null)):(K=null,J=x),K!==J)){if(ee=Ma,D="onMouseLeave",h="onMouseEnter",f="mouse",(e==="pointerout"||e==="pointerover")&&(ee=za,D="onPointerLeave",h="onPointerEnter",f="pointer"),Te=K==null?T:jr(K),v=J==null?T:jr(J),T=new ee(D,f+"leave",K,r,N),T.target=Te,T.relatedTarget=v,D=null,Jt(N)===x&&(ee=new ee(h,f+"enter",J,r,N),ee.target=v,ee.relatedTarget=Te,D=ee),Te=D,K&&J)t:{for(ee=K,h=J,f=0,v=ee;v;v=wr(v))f++;for(v=0,D=h;D;D=wr(D))v++;for(;0<f-v;)ee=wr(ee),f--;for(;0<v-f;)h=wr(h),v--;for(;f--;){if(ee===h||h!==null&&ee===h.alternate)break t;ee=wr(ee),h=wr(h)}ee=null}else ee=null;K!==null&&dl(R,T,K,ee,!1),J!==null&&Te!==null&&dl(R,Te,J,ee,!0)}}e:{if(T=x?jr(x):window,K=T.nodeName&&T.nodeName.toLowerCase(),K==="select"||K==="input"&&T.type==="file")var te=md;else if(Ga(T))if(Va)te=vd;else{te=hd;var ae=gd}else(K=T.nodeName)&&K.toLowerCase()==="input"&&(T.type==="checkbox"||T.type==="radio")&&(te=_d);if(te&&(te=te(e,x))){Ha(R,te,r,N);break e}ae&&ae(e,T,x),e==="focusout"&&(ae=T._wrapperState)&&ae.controlled&&T.type==="number"&&$i(T,"number",T.value)}switch(ae=x?jr(x):window,e){case"focusin":(Ga(ae)||ae.contentEditable==="true")&&(Sr=ae,bs=x,ln=null);break;case"focusout":ln=bs=Sr=null;break;case"mousedown":ws=!0;break;case"contextmenu":case"mouseup":case"dragend":ws=!1,el(R,r,N);break;case"selectionchange":if(bd)break;case"keydown":case"keyup":el(R,r,N)}var le;if(_s)e:{switch(e){case"compositionstart":var ue="onCompositionStart";break e;case"compositionend":ue="onCompositionEnd";break e;case"compositionupdate":ue="onCompositionUpdate";break e}ue=void 0}else xr?Wa(e,r)&&(ue="onCompositionEnd"):e==="keydown"&&r.keyCode===229&&(ue="onCompositionStart");ue&&(Ba&&r.locale!=="ko"&&(xr||ue!=="onCompositionStart"?ue==="onCompositionEnd"&&xr&&(le=Ra()):(Mt=N,ps="value"in Mt?Mt.value:Mt.textContent,xr=!0)),ae=ti(x,ue),0<ae.length&&(ue=new Da(ue,e,null,r,N),R.push({event:ue,listeners:ae}),le?ue.data=le:(le=Ua(r),le!==null&&(ue.data=le)))),(le=ud?dd(e,r):pd(e,r))&&(x=ti(x,"onBeforeInput"),0<x.length&&(N=new Da("onBeforeInput","beforeinput",null,r,N),R.push({event:N,listeners:x}),N.data=le))}cl(R,t)})}function dn(e,t,r){return{instance:e,listener:t,currentTarget:r}}function ti(e,t){for(var r=t+"Capture",n=[];e!==null;){var i=e,o=i.stateNode;i.tag===5&&o!==null&&(i=o,o=Hr(e,r),o!=null&&n.unshift(dn(e,o,i)),o=Hr(e,t),o!=null&&n.push(dn(e,o,i))),e=e.return}return n}function wr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function dl(e,t,r,n,i){for(var o=t._reactName,a=[];r!==null&&r!==n;){var c=r,d=c.alternate,x=c.stateNode;if(d!==null&&d===n)break;c.tag===5&&x!==null&&(c=x,i?(d=Hr(r,o),d!=null&&a.unshift(dn(r,d,c))):i||(d=Hr(r,o),d!=null&&a.push(dn(r,d,c)))),r=r.return}a.length!==0&&e.push({event:t,listeners:a})}var Cd=/\r\n?/g,Ed=/\u0000|\uFFFD/g;function pl(e){return(typeof e=="string"?e:""+e).replace(Cd,`
38
+ `).replace(Ed,"")}function ri(e,t,r){if(t=pl(t),pl(e)!==t&&r)throw Error(u(425))}function ni(){}var qs=null,Ls=null;function Ts(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Ns=typeof setTimeout=="function"?setTimeout:void 0,Id=typeof clearTimeout=="function"?clearTimeout:void 0,yl=typeof Promise=="function"?Promise:void 0,qd=typeof queueMicrotask=="function"?queueMicrotask:typeof yl<"u"?function(e){return yl.resolve(null).then(e).catch(Ld)}:Ns;function Ld(e){setTimeout(function(){throw e})}function As(e,t){var r=t,n=0;do{var i=r.nextSibling;if(e.removeChild(r),i&&i.nodeType===8)if(r=i.data,r==="/$"){if(n===0){e.removeChild(i),en(t);return}n--}else r!=="$"&&r!=="$?"&&r!=="$!"||n++;r=i}while(r);en(t)}function zt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function fl(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var kr=Math.random().toString(36).slice(2),_t="__reactFiber$"+kr,pn="__reactProps$"+kr,kt="__reactContainer$"+kr,Rs="__reactEvents$"+kr,Td="__reactListeners$"+kr,Nd="__reactHandles$"+kr;function Jt(e){var t=e[_t];if(t)return t;for(var r=e.parentNode;r;){if(t=r[kt]||r[_t]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=fl(e);e!==null;){if(r=e[_t])return r;e=fl(e)}return t}e=r,r=e.parentNode}return null}function yn(e){return e=e[_t]||e[kt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function jr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(u(33))}function ii(e){return e[pn]||null}var Ps=[],Cr=-1;function Bt(e){return{current:e}}function je(e){0>Cr||(e.current=Ps[Cr],Ps[Cr]=null,Cr--)}function be(e,t){Cr++,Ps[Cr]=e.current,e.current=t}var Ft={},Fe=Bt(Ft),$e=Bt(!1),Zt=Ft;function Er(e,t){var r=e.type.contextTypes;if(!r)return Ft;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in r)i[o]=t[o];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ke(e){return e=e.childContextTypes,e!=null}function si(){je($e),je(Fe)}function ml(e,t,r){if(Fe.current!==Ft)throw Error(u(168));be(Fe,t),be($e,r)}function gl(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in t))throw Error(u(108,se(e)||"Unknown",i));return k({},r,n)}function oi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ft,Zt=Fe.current,be(Fe,e),be($e,$e.current),!0}function hl(e,t,r){var n=e.stateNode;if(!n)throw Error(u(169));r?(e=gl(e,t,Zt),n.__reactInternalMemoizedMergedChildContext=e,je($e),je(Fe),be(Fe,e)):je($e),be($e,r)}var jt=null,ai=!1,Ms=!1;function _l(e){jt===null?jt=[e]:jt.push(e)}function Ad(e){ai=!0,_l(e)}function Ot(){if(!Ms&&jt!==null){Ms=!0;var e=0,t=xe;try{var r=jt;for(xe=1;e<r.length;e++){var n=r[e];do n=n(!0);while(n!==null)}jt=null,ai=!1}catch(i){throw jt!==null&&(jt=jt.slice(e+1)),xa(is,Ot),i}finally{xe=t,Ms=!1}}return null}var Ir=[],qr=0,li=null,ci=0,it=[],st=0,er=null,Ct=1,Et="";function tr(e,t){Ir[qr++]=ci,Ir[qr++]=li,li=e,ci=t}function vl(e,t,r){it[st++]=Ct,it[st++]=Et,it[st++]=er,er=e;var n=Ct;e=Et;var i=32-ut(n)-1;n&=~(1<<i),r+=1;var o=32-ut(t)+i;if(30<o){var a=i-i%5;o=(n&(1<<a)-1).toString(32),n>>=a,i-=a,Ct=1<<32-ut(t)+i|r<<i|n,Et=o+e}else Ct=1<<o|r<<i|n,Et=e}function Ds(e){e.return!==null&&(tr(e,1),vl(e,1,0))}function zs(e){for(;e===li;)li=Ir[--qr],Ir[qr]=null,ci=Ir[--qr],Ir[qr]=null;for(;e===er;)er=it[--st],it[st]=null,Et=it[--st],it[st]=null,Ct=it[--st],it[st]=null}var et=null,tt=null,Ce=!1,pt=null;function xl(e,t){var r=ct(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function Sl(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,et=e,tt=zt(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,et=e,tt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=er!==null?{id:Ct,overflow:Et}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=ct(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,et=e,tt=null,!0):!1;default:return!1}}function Bs(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Fs(e){if(Ce){var t=tt;if(t){var r=t;if(!Sl(e,t)){if(Bs(e))throw Error(u(418));t=zt(r.nextSibling);var n=et;t&&Sl(e,t)?xl(n,r):(e.flags=e.flags&-4097|2,Ce=!1,et=e)}}else{if(Bs(e))throw Error(u(418));e.flags=e.flags&-4097|2,Ce=!1,et=e}}}function bl(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;et=e}function ui(e){if(e!==et)return!1;if(!Ce)return bl(e),Ce=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ts(e.type,e.memoizedProps)),t&&(t=tt)){if(Bs(e))throw wl(),Error(u(418));for(;t;)xl(e,t),t=zt(t.nextSibling)}if(bl(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="/$"){if(t===0){tt=zt(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}tt=null}}else tt=et?zt(e.stateNode.nextSibling):null;return!0}function wl(){for(var e=tt;e;)e=zt(e.nextSibling)}function Lr(){tt=et=null,Ce=!1}function Os(e){pt===null?pt=[e]:pt.push(e)}var Rd=M.ReactCurrentBatchConfig;function fn(e,t,r){if(e=r.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(u(309));var n=r.stateNode}if(!n)throw Error(u(147,e));var i=n,o=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===o?t.ref:(t=function(a){var c=i.refs;a===null?delete c[o]:c[o]=a},t._stringRef=o,t)}if(typeof e!="string")throw Error(u(284));if(!r._owner)throw Error(u(290,e))}return e}function di(e,t){throw e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function kl(e){var t=e._init;return t(e._payload)}function jl(e){function t(h,f){if(e){var v=h.deletions;v===null?(h.deletions=[f],h.flags|=16):v.push(f)}}function r(h,f){if(!e)return null;for(;f!==null;)t(h,f),f=f.sibling;return null}function n(h,f){for(h=new Map;f!==null;)f.key!==null?h.set(f.key,f):h.set(f.index,f),f=f.sibling;return h}function i(h,f){return h=Qt(h,f),h.index=0,h.sibling=null,h}function o(h,f,v){return h.index=v,e?(v=h.alternate,v!==null?(v=v.index,v<f?(h.flags|=2,f):v):(h.flags|=2,f)):(h.flags|=1048576,f)}function a(h){return e&&h.alternate===null&&(h.flags|=2),h}function c(h,f,v,D){return f===null||f.tag!==6?(f=Ao(v,h.mode,D),f.return=h,f):(f=i(f,v),f.return=h,f)}function d(h,f,v,D){var te=v.type;return te===X?N(h,f,v.props.children,D,v.key):f!==null&&(f.elementType===te||typeof te=="object"&&te!==null&&te.$$typeof===Se&&kl(te)===f.type)?(D=i(f,v.props),D.ref=fn(h,f,v),D.return=h,D):(D=Pi(v.type,v.key,v.props,null,h.mode,D),D.ref=fn(h,f,v),D.return=h,D)}function x(h,f,v,D){return f===null||f.tag!==4||f.stateNode.containerInfo!==v.containerInfo||f.stateNode.implementation!==v.implementation?(f=Ro(v,h.mode,D),f.return=h,f):(f=i(f,v.children||[]),f.return=h,f)}function N(h,f,v,D,te){return f===null||f.tag!==7?(f=cr(v,h.mode,D,te),f.return=h,f):(f=i(f,v),f.return=h,f)}function R(h,f,v){if(typeof f=="string"&&f!==""||typeof f=="number")return f=Ao(""+f,h.mode,v),f.return=h,f;if(typeof f=="object"&&f!==null){switch(f.$$typeof){case y:return v=Pi(f.type,f.key,f.props,null,h.mode,v),v.ref=fn(h,null,f),v.return=h,v;case A:return f=Ro(f,h.mode,v),f.return=h,f;case Se:var D=f._init;return R(h,D(f._payload),v)}if(Wr(f)||ie(f))return f=cr(f,h.mode,v,null),f.return=h,f;di(h,f)}return null}function T(h,f,v,D){var te=f!==null?f.key:null;if(typeof v=="string"&&v!==""||typeof v=="number")return te!==null?null:c(h,f,""+v,D);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case y:return v.key===te?d(h,f,v,D):null;case A:return v.key===te?x(h,f,v,D):null;case Se:return te=v._init,T(h,f,te(v._payload),D)}if(Wr(v)||ie(v))return te!==null?null:N(h,f,v,D,null);di(h,v)}return null}function K(h,f,v,D,te){if(typeof D=="string"&&D!==""||typeof D=="number")return h=h.get(v)||null,c(f,h,""+D,te);if(typeof D=="object"&&D!==null){switch(D.$$typeof){case y:return h=h.get(D.key===null?v:D.key)||null,d(f,h,D,te);case A:return h=h.get(D.key===null?v:D.key)||null,x(f,h,D,te);case Se:var ae=D._init;return K(h,f,v,ae(D._payload),te)}if(Wr(D)||ie(D))return h=h.get(v)||null,N(f,h,D,te,null);di(f,D)}return null}function J(h,f,v,D){for(var te=null,ae=null,le=f,ue=f=0,De=null;le!==null&&ue<v.length;ue++){le.index>ue?(De=le,le=null):De=le.sibling;var ge=T(h,le,v[ue],D);if(ge===null){le===null&&(le=De);break}e&&le&&ge.alternate===null&&t(h,le),f=o(ge,f,ue),ae===null?te=ge:ae.sibling=ge,ae=ge,le=De}if(ue===v.length)return r(h,le),Ce&&tr(h,ue),te;if(le===null){for(;ue<v.length;ue++)le=R(h,v[ue],D),le!==null&&(f=o(le,f,ue),ae===null?te=le:ae.sibling=le,ae=le);return Ce&&tr(h,ue),te}for(le=n(h,le);ue<v.length;ue++)De=K(le,h,ue,v[ue],D),De!==null&&(e&&De.alternate!==null&&le.delete(De.key===null?ue:De.key),f=o(De,f,ue),ae===null?te=De:ae.sibling=De,ae=De);return e&&le.forEach(function(Yt){return t(h,Yt)}),Ce&&tr(h,ue),te}function ee(h,f,v,D){var te=ie(v);if(typeof te!="function")throw Error(u(150));if(v=te.call(v),v==null)throw Error(u(151));for(var ae=te=null,le=f,ue=f=0,De=null,ge=v.next();le!==null&&!ge.done;ue++,ge=v.next()){le.index>ue?(De=le,le=null):De=le.sibling;var Yt=T(h,le,ge.value,D);if(Yt===null){le===null&&(le=De);break}e&&le&&Yt.alternate===null&&t(h,le),f=o(Yt,f,ue),ae===null?te=Yt:ae.sibling=Yt,ae=Yt,le=De}if(ge.done)return r(h,le),Ce&&tr(h,ue),te;if(le===null){for(;!ge.done;ue++,ge=v.next())ge=R(h,ge.value,D),ge!==null&&(f=o(ge,f,ue),ae===null?te=ge:ae.sibling=ge,ae=ge);return Ce&&tr(h,ue),te}for(le=n(h,le);!ge.done;ue++,ge=v.next())ge=K(le,h,ue,ge.value,D),ge!==null&&(e&&ge.alternate!==null&&le.delete(ge.key===null?ue:ge.key),f=o(ge,f,ue),ae===null?te=ge:ae.sibling=ge,ae=ge);return e&&le.forEach(function(yp){return t(h,yp)}),Ce&&tr(h,ue),te}function Te(h,f,v,D){if(typeof v=="object"&&v!==null&&v.type===X&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case y:e:{for(var te=v.key,ae=f;ae!==null;){if(ae.key===te){if(te=v.type,te===X){if(ae.tag===7){r(h,ae.sibling),f=i(ae,v.props.children),f.return=h,h=f;break e}}else if(ae.elementType===te||typeof te=="object"&&te!==null&&te.$$typeof===Se&&kl(te)===ae.type){r(h,ae.sibling),f=i(ae,v.props),f.ref=fn(h,ae,v),f.return=h,h=f;break e}r(h,ae);break}else t(h,ae);ae=ae.sibling}v.type===X?(f=cr(v.props.children,h.mode,D,v.key),f.return=h,h=f):(D=Pi(v.type,v.key,v.props,null,h.mode,D),D.ref=fn(h,f,v),D.return=h,h=D)}return a(h);case A:e:{for(ae=v.key;f!==null;){if(f.key===ae)if(f.tag===4&&f.stateNode.containerInfo===v.containerInfo&&f.stateNode.implementation===v.implementation){r(h,f.sibling),f=i(f,v.children||[]),f.return=h,h=f;break e}else{r(h,f);break}else t(h,f);f=f.sibling}f=Ro(v,h.mode,D),f.return=h,h=f}return a(h);case Se:return ae=v._init,Te(h,f,ae(v._payload),D)}if(Wr(v))return J(h,f,v,D);if(ie(v))return ee(h,f,v,D);di(h,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,f!==null&&f.tag===6?(r(h,f.sibling),f=i(f,v),f.return=h,h=f):(r(h,f),f=Ao(v,h.mode,D),f.return=h,h=f),a(h)):r(h,f)}return Te}var Tr=jl(!0),Cl=jl(!1),pi=Bt(null),yi=null,Nr=null,Ws=null;function Us(){Ws=Nr=yi=null}function Gs(e){var t=pi.current;je(pi),e._currentValue=t}function Hs(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Ar(e,t){yi=e,Ws=Nr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Qe=!0),e.firstContext=null)}function ot(e){var t=e._currentValue;if(Ws!==e)if(e={context:e,memoizedValue:t,next:null},Nr===null){if(yi===null)throw Error(u(308));Nr=e,yi.dependencies={lanes:0,firstContext:e}}else Nr=Nr.next=e;return t}var rr=null;function Vs(e){rr===null?rr=[e]:rr.push(e)}function El(e,t,r,n){var i=t.interleaved;return i===null?(r.next=r,Vs(t)):(r.next=i.next,i.next=r),t.interleaved=r,It(e,n)}function It(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Wt=!1;function $s(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Il(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function qt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ut(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(me&2)!==0){var i=n.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t,It(e,r)}return i=n.interleaved,i===null?(t.next=t,Vs(n)):(t.next=i.next,i.next=t),n.interleaved=t,It(e,r)}function fi(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,as(e,r)}}function ql(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,o=null;if(r=r.firstBaseUpdate,r!==null){do{var a={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};o===null?i=o=a:o=o.next=a,r=r.next}while(r!==null);o===null?i=o=t:o=o.next=t}else i=o=t;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function mi(e,t,r,n){var i=e.updateQueue;Wt=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,c=i.shared.pending;if(c!==null){i.shared.pending=null;var d=c,x=d.next;d.next=null,a===null?o=x:a.next=x,a=d;var N=e.alternate;N!==null&&(N=N.updateQueue,c=N.lastBaseUpdate,c!==a&&(c===null?N.firstBaseUpdate=x:c.next=x,N.lastBaseUpdate=d))}if(o!==null){var R=i.baseState;a=0,N=x=d=null,c=o;do{var T=c.lane,K=c.eventTime;if((n&T)===T){N!==null&&(N=N.next={eventTime:K,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});e:{var J=e,ee=c;switch(T=t,K=r,ee.tag){case 1:if(J=ee.payload,typeof J=="function"){R=J.call(K,R,T);break e}R=J;break e;case 3:J.flags=J.flags&-65537|128;case 0:if(J=ee.payload,T=typeof J=="function"?J.call(K,R,T):J,T==null)break e;R=k({},R,T);break e;case 2:Wt=!0}}c.callback!==null&&c.lane!==0&&(e.flags|=64,T=i.effects,T===null?i.effects=[c]:T.push(c))}else K={eventTime:K,lane:T,tag:c.tag,payload:c.payload,callback:c.callback,next:null},N===null?(x=N=K,d=R):N=N.next=K,a|=T;if(c=c.next,c===null){if(c=i.shared.pending,c===null)break;T=c,c=T.next,T.next=null,i.lastBaseUpdate=T,i.shared.pending=null}}while(!0);if(N===null&&(d=R),i.baseState=d,i.firstBaseUpdate=x,i.lastBaseUpdate=N,t=i.shared.interleaved,t!==null){i=t;do a|=i.lane,i=i.next;while(i!==t)}else o===null&&(i.shared.lanes=0);sr|=a,e.lanes=a,e.memoizedState=R}}function Ll(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],i=n.callback;if(i!==null){if(n.callback=null,n=r,typeof i!="function")throw Error(u(191,i));i.call(n)}}}var mn={},vt=Bt(mn),gn=Bt(mn),hn=Bt(mn);function nr(e){if(e===mn)throw Error(u(174));return e}function Ks(e,t){switch(be(hn,t),be(gn,e),be(vt,mn),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Qi(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Qi(t,e)}je(vt),be(vt,t)}function Rr(){je(vt),je(gn),je(hn)}function Tl(e){nr(hn.current);var t=nr(vt.current),r=Qi(t,e.type);t!==r&&(be(gn,e),be(vt,r))}function Qs(e){gn.current===e&&(je(vt),je(gn))}var Ee=Bt(0);function gi(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ys=[];function Xs(){for(var e=0;e<Ys.length;e++)Ys[e]._workInProgressVersionPrimary=null;Ys.length=0}var hi=M.ReactCurrentDispatcher,Js=M.ReactCurrentBatchConfig,ir=0,Ie=null,Ae=null,Pe=null,_i=!1,_n=!1,vn=0,Pd=0;function Oe(){throw Error(u(321))}function Zs(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!dt(e[r],t[r]))return!1;return!0}function eo(e,t,r,n,i,o){if(ir=o,Ie=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,hi.current=e===null||e.memoizedState===null?Bd:Fd,e=r(n,i),_n){o=0;do{if(_n=!1,vn=0,25<=o)throw Error(u(301));o+=1,Pe=Ae=null,t.updateQueue=null,hi.current=Od,e=r(n,i)}while(_n)}if(hi.current=Si,t=Ae!==null&&Ae.next!==null,ir=0,Pe=Ae=Ie=null,_i=!1,t)throw Error(u(300));return e}function to(){var e=vn!==0;return vn=0,e}function xt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Pe===null?Ie.memoizedState=Pe=e:Pe=Pe.next=e,Pe}function at(){if(Ae===null){var e=Ie.alternate;e=e!==null?e.memoizedState:null}else e=Ae.next;var t=Pe===null?Ie.memoizedState:Pe.next;if(t!==null)Pe=t,Ae=e;else{if(e===null)throw Error(u(310));Ae=e,e={memoizedState:Ae.memoizedState,baseState:Ae.baseState,baseQueue:Ae.baseQueue,queue:Ae.queue,next:null},Pe===null?Ie.memoizedState=Pe=e:Pe=Pe.next=e}return Pe}function xn(e,t){return typeof t=="function"?t(e):t}function ro(e){var t=at(),r=t.queue;if(r===null)throw Error(u(311));r.lastRenderedReducer=e;var n=Ae,i=n.baseQueue,o=r.pending;if(o!==null){if(i!==null){var a=i.next;i.next=o.next,o.next=a}n.baseQueue=i=o,r.pending=null}if(i!==null){o=i.next,n=n.baseState;var c=a=null,d=null,x=o;do{var N=x.lane;if((ir&N)===N)d!==null&&(d=d.next={lane:0,action:x.action,hasEagerState:x.hasEagerState,eagerState:x.eagerState,next:null}),n=x.hasEagerState?x.eagerState:e(n,x.action);else{var R={lane:N,action:x.action,hasEagerState:x.hasEagerState,eagerState:x.eagerState,next:null};d===null?(c=d=R,a=n):d=d.next=R,Ie.lanes|=N,sr|=N}x=x.next}while(x!==null&&x!==o);d===null?a=n:d.next=c,dt(n,t.memoizedState)||(Qe=!0),t.memoizedState=n,t.baseState=a,t.baseQueue=d,r.lastRenderedState=n}if(e=r.interleaved,e!==null){i=e;do o=i.lane,Ie.lanes|=o,sr|=o,i=i.next;while(i!==e)}else i===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function no(e){var t=at(),r=t.queue;if(r===null)throw Error(u(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,o=t.memoizedState;if(i!==null){r.pending=null;var a=i=i.next;do o=e(o,a.action),a=a.next;while(a!==i);dt(o,t.memoizedState)||(Qe=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),r.lastRenderedState=o}return[o,n]}function Nl(){}function Al(e,t){var r=Ie,n=at(),i=t(),o=!dt(n.memoizedState,i);if(o&&(n.memoizedState=i,Qe=!0),n=n.queue,io(Ml.bind(null,r,n,e),[e]),n.getSnapshot!==t||o||Pe!==null&&Pe.memoizedState.tag&1){if(r.flags|=2048,Sn(9,Pl.bind(null,r,n,i,t),void 0,null),Me===null)throw Error(u(349));(ir&30)!==0||Rl(r,t,i)}return i}function Rl(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=Ie.updateQueue,t===null?(t={lastEffect:null,stores:null},Ie.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function Pl(e,t,r,n){t.value=r,t.getSnapshot=n,Dl(t)&&zl(e)}function Ml(e,t,r){return r(function(){Dl(t)&&zl(e)})}function Dl(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!dt(e,r)}catch{return!0}}function zl(e){var t=It(e,1);t!==null&&gt(t,e,1,-1)}function Bl(e){var t=xt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:xn,lastRenderedState:e},t.queue=e,e=e.dispatch=zd.bind(null,Ie,e),[t.memoizedState,e]}function Sn(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},t=Ie.updateQueue,t===null?(t={lastEffect:null,stores:null},Ie.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e)),e}function Fl(){return at().memoizedState}function vi(e,t,r,n){var i=xt();Ie.flags|=e,i.memoizedState=Sn(1|t,r,void 0,n===void 0?null:n)}function xi(e,t,r,n){var i=at();n=n===void 0?null:n;var o=void 0;if(Ae!==null){var a=Ae.memoizedState;if(o=a.destroy,n!==null&&Zs(n,a.deps)){i.memoizedState=Sn(t,r,o,n);return}}Ie.flags|=e,i.memoizedState=Sn(1|t,r,o,n)}function Ol(e,t){return vi(8390656,8,e,t)}function io(e,t){return xi(2048,8,e,t)}function Wl(e,t){return xi(4,2,e,t)}function Ul(e,t){return xi(4,4,e,t)}function Gl(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Hl(e,t,r){return r=r!=null?r.concat([e]):null,xi(4,4,Gl.bind(null,t,e),r)}function so(){}function Vl(e,t){var r=at();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&Zs(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function $l(e,t){var r=at();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&Zs(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function Kl(e,t,r){return(ir&21)===0?(e.baseState&&(e.baseState=!1,Qe=!0),e.memoizedState=r):(dt(r,t)||(r=ka(),Ie.lanes|=r,sr|=r,e.baseState=!0),t)}function Md(e,t){var r=xe;xe=r!==0&&4>r?r:4,e(!0);var n=Js.transition;Js.transition={};try{e(!1),t()}finally{xe=r,Js.transition=n}}function Ql(){return at().memoizedState}function Dd(e,t,r){var n=$t(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},Yl(e))Xl(t,r);else if(r=El(e,t,r,n),r!==null){var i=Ve();gt(r,e,n,i),Jl(r,t,n)}}function zd(e,t,r){var n=$t(e),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(Yl(e))Xl(t,i);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var a=t.lastRenderedState,c=o(a,r);if(i.hasEagerState=!0,i.eagerState=c,dt(c,a)){var d=t.interleaved;d===null?(i.next=i,Vs(t)):(i.next=d.next,d.next=i),t.interleaved=i;return}}catch{}finally{}r=El(e,t,i,n),r!==null&&(i=Ve(),gt(r,e,n,i),Jl(r,t,n))}}function Yl(e){var t=e.alternate;return e===Ie||t!==null&&t===Ie}function Xl(e,t){_n=_i=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function Jl(e,t,r){if((r&4194240)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,as(e,r)}}var Si={readContext:ot,useCallback:Oe,useContext:Oe,useEffect:Oe,useImperativeHandle:Oe,useInsertionEffect:Oe,useLayoutEffect:Oe,useMemo:Oe,useReducer:Oe,useRef:Oe,useState:Oe,useDebugValue:Oe,useDeferredValue:Oe,useTransition:Oe,useMutableSource:Oe,useSyncExternalStore:Oe,useId:Oe,unstable_isNewReconciler:!1},Bd={readContext:ot,useCallback:function(e,t){return xt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:Ol,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,vi(4194308,4,Gl.bind(null,t,e),r)},useLayoutEffect:function(e,t){return vi(4194308,4,e,t)},useInsertionEffect:function(e,t){return vi(4,2,e,t)},useMemo:function(e,t){var r=xt();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=xt();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=Dd.bind(null,Ie,e),[n.memoizedState,e]},useRef:function(e){var t=xt();return e={current:e},t.memoizedState=e},useState:Bl,useDebugValue:so,useDeferredValue:function(e){return xt().memoizedState=e},useTransition:function(){var e=Bl(!1),t=e[0];return e=Md.bind(null,e[1]),xt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=Ie,i=xt();if(Ce){if(r===void 0)throw Error(u(407));r=r()}else{if(r=t(),Me===null)throw Error(u(349));(ir&30)!==0||Rl(n,t,r)}i.memoizedState=r;var o={value:r,getSnapshot:t};return i.queue=o,Ol(Ml.bind(null,n,o,e),[e]),n.flags|=2048,Sn(9,Pl.bind(null,n,o,r,t),void 0,null),r},useId:function(){var e=xt(),t=Me.identifierPrefix;if(Ce){var r=Et,n=Ct;r=(n&~(1<<32-ut(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=vn++,0<r&&(t+="H"+r.toString(32)),t+=":"}else r=Pd++,t=":"+t+"r"+r.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Fd={readContext:ot,useCallback:Vl,useContext:ot,useEffect:io,useImperativeHandle:Hl,useInsertionEffect:Wl,useLayoutEffect:Ul,useMemo:$l,useReducer:ro,useRef:Fl,useState:function(){return ro(xn)},useDebugValue:so,useDeferredValue:function(e){var t=at();return Kl(t,Ae.memoizedState,e)},useTransition:function(){var e=ro(xn)[0],t=at().memoizedState;return[e,t]},useMutableSource:Nl,useSyncExternalStore:Al,useId:Ql,unstable_isNewReconciler:!1},Od={readContext:ot,useCallback:Vl,useContext:ot,useEffect:io,useImperativeHandle:Hl,useInsertionEffect:Wl,useLayoutEffect:Ul,useMemo:$l,useReducer:no,useRef:Fl,useState:function(){return no(xn)},useDebugValue:so,useDeferredValue:function(e){var t=at();return Ae===null?t.memoizedState=e:Kl(t,Ae.memoizedState,e)},useTransition:function(){var e=no(xn)[0],t=at().memoizedState;return[e,t]},useMutableSource:Nl,useSyncExternalStore:Al,useId:Ql,unstable_isNewReconciler:!1};function yt(e,t){if(e&&e.defaultProps){t=k({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function oo(e,t,r,n){t=e.memoizedState,r=r(n,t),r=r==null?t:k({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var bi={isMounted:function(e){return(e=e._reactInternals)?Xt(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=Ve(),i=$t(e),o=qt(n,i);o.payload=t,r!=null&&(o.callback=r),t=Ut(e,o,i),t!==null&&(gt(t,e,i,n),fi(t,e,i))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=Ve(),i=$t(e),o=qt(n,i);o.tag=1,o.payload=t,r!=null&&(o.callback=r),t=Ut(e,o,i),t!==null&&(gt(t,e,i,n),fi(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=Ve(),n=$t(e),i=qt(r,n);i.tag=2,t!=null&&(i.callback=t),t=Ut(e,i,n),t!==null&&(gt(t,e,n,r),fi(t,e,n))}};function Zl(e,t,r,n,i,o,a){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,o,a):t.prototype&&t.prototype.isPureReactComponent?!an(r,n)||!an(i,o):!0}function ec(e,t,r){var n=!1,i=Ft,o=t.contextType;return typeof o=="object"&&o!==null?o=ot(o):(i=Ke(t)?Zt:Fe.current,n=t.contextTypes,o=(n=n!=null)?Er(e,i):Ft),t=new t(r,o),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=bi,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function tc(e,t,r,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(r,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&bi.enqueueReplaceState(t,t.state,null)}function ao(e,t,r,n){var i=e.stateNode;i.props=r,i.state=e.memoizedState,i.refs={},$s(e);var o=t.contextType;typeof o=="object"&&o!==null?i.context=ot(o):(o=Ke(t)?Zt:Fe.current,i.context=Er(e,o)),i.state=e.memoizedState,o=t.getDerivedStateFromProps,typeof o=="function"&&(oo(e,t,o,r),i.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(t=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),t!==i.state&&bi.enqueueReplaceState(i,i.state,null),mi(e,r,i,n),i.state=e.memoizedState),typeof i.componentDidMount=="function"&&(e.flags|=4194308)}function Pr(e,t){try{var r="",n=t;do r+=oe(n),n=n.return;while(n);var i=r}catch(o){i=`
39
+ Error generating stack: `+o.message+`
40
+ `+o.stack}return{value:e,source:t,stack:i,digest:null}}function lo(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function co(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Wd=typeof WeakMap=="function"?WeakMap:Map;function rc(e,t,r){r=qt(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){qi||(qi=!0,jo=n),co(e,t)},r}function nc(e,t,r){r=qt(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var i=t.value;r.payload=function(){return n(i)},r.callback=function(){co(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(r.callback=function(){co(e,t),typeof n!="function"&&(Ht===null?Ht=new Set([this]):Ht.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),r}function ic(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Wd;var i=new Set;n.set(t,i)}else i=n.get(t),i===void 0&&(i=new Set,n.set(t,i));i.has(r)||(i.add(r),e=rp.bind(null,e,t,r),t.then(e,e))}function sc(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function oc(e,t,r,n,i){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=qt(-1,1),t.tag=2,Ut(r,t,1))),r.lanes|=1),e):(e.flags|=65536,e.lanes=i,e)}var Ud=M.ReactCurrentOwner,Qe=!1;function He(e,t,r,n){t.child=e===null?Cl(t,null,r,n):Tr(t,e.child,r,n)}function ac(e,t,r,n,i){r=r.render;var o=t.ref;return Ar(t,i),n=eo(e,t,r,n,o,i),r=to(),e!==null&&!Qe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Lt(e,t,i)):(Ce&&r&&Ds(t),t.flags|=1,He(e,t,n,i),t.child)}function lc(e,t,r,n,i){if(e===null){var o=r.type;return typeof o=="function"&&!No(o)&&o.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=o,cc(e,t,o,n,i)):(e=Pi(r.type,null,n,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&i)===0){var a=o.memoizedProps;if(r=r.compare,r=r!==null?r:an,r(a,n)&&e.ref===t.ref)return Lt(e,t,i)}return t.flags|=1,e=Qt(o,n),e.ref=t.ref,e.return=t,t.child=e}function cc(e,t,r,n,i){if(e!==null){var o=e.memoizedProps;if(an(o,n)&&e.ref===t.ref)if(Qe=!1,t.pendingProps=n=o,(e.lanes&i)!==0)(e.flags&131072)!==0&&(Qe=!0);else return t.lanes=e.lanes,Lt(e,t,i)}return uo(e,t,r,n,i)}function uc(e,t,r){var n=t.pendingProps,i=n.children,o=e!==null?e.memoizedState:null;if(n.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},be(Dr,rt),rt|=r;else{if((r&1073741824)===0)return e=o!==null?o.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,be(Dr,rt),rt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=o!==null?o.baseLanes:r,be(Dr,rt),rt|=n}else o!==null?(n=o.baseLanes|r,t.memoizedState=null):n=r,be(Dr,rt),rt|=n;return He(e,t,i,r),t.child}function dc(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function uo(e,t,r,n,i){var o=Ke(r)?Zt:Fe.current;return o=Er(t,o),Ar(t,i),r=eo(e,t,r,n,o,i),n=to(),e!==null&&!Qe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Lt(e,t,i)):(Ce&&n&&Ds(t),t.flags|=1,He(e,t,r,i),t.child)}function pc(e,t,r,n,i){if(Ke(r)){var o=!0;oi(t)}else o=!1;if(Ar(t,i),t.stateNode===null)ki(e,t),ec(t,r,n),ao(t,r,n,i),n=!0;else if(e===null){var a=t.stateNode,c=t.memoizedProps;a.props=c;var d=a.context,x=r.contextType;typeof x=="object"&&x!==null?x=ot(x):(x=Ke(r)?Zt:Fe.current,x=Er(t,x));var N=r.getDerivedStateFromProps,R=typeof N=="function"||typeof a.getSnapshotBeforeUpdate=="function";R||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(c!==n||d!==x)&&tc(t,a,n,x),Wt=!1;var T=t.memoizedState;a.state=T,mi(t,n,a,i),d=t.memoizedState,c!==n||T!==d||$e.current||Wt?(typeof N=="function"&&(oo(t,r,N,n),d=t.memoizedState),(c=Wt||Zl(t,r,c,n,T,d,x))?(R||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=d),a.props=n,a.state=d,a.context=x,n=c):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{a=t.stateNode,Il(e,t),c=t.memoizedProps,x=t.type===t.elementType?c:yt(t.type,c),a.props=x,R=t.pendingProps,T=a.context,d=r.contextType,typeof d=="object"&&d!==null?d=ot(d):(d=Ke(r)?Zt:Fe.current,d=Er(t,d));var K=r.getDerivedStateFromProps;(N=typeof K=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(c!==R||T!==d)&&tc(t,a,n,d),Wt=!1,T=t.memoizedState,a.state=T,mi(t,n,a,i);var J=t.memoizedState;c!==R||T!==J||$e.current||Wt?(typeof K=="function"&&(oo(t,r,K,n),J=t.memoizedState),(x=Wt||Zl(t,r,x,n,T,J,d)||!1)?(N||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(n,J,d),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(n,J,d)),typeof a.componentDidUpdate=="function"&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof a.componentDidUpdate!="function"||c===e.memoizedProps&&T===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&T===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=J),a.props=n,a.state=J,a.context=d,n=x):(typeof a.componentDidUpdate!="function"||c===e.memoizedProps&&T===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&T===e.memoizedState||(t.flags|=1024),n=!1)}return po(e,t,r,n,o,i)}function po(e,t,r,n,i,o){dc(e,t);var a=(t.flags&128)!==0;if(!n&&!a)return i&&hl(t,r,!1),Lt(e,t,o);n=t.stateNode,Ud.current=t;var c=a&&typeof r.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&a?(t.child=Tr(t,e.child,null,o),t.child=Tr(t,null,c,o)):He(e,t,c,o),t.memoizedState=n.state,i&&hl(t,r,!0),t.child}function yc(e){var t=e.stateNode;t.pendingContext?ml(e,t.pendingContext,t.pendingContext!==t.context):t.context&&ml(e,t.context,!1),Ks(e,t.containerInfo)}function fc(e,t,r,n,i){return Lr(),Os(i),t.flags|=256,He(e,t,r,n),t.child}var yo={dehydrated:null,treeContext:null,retryLane:0};function fo(e){return{baseLanes:e,cachePool:null,transitions:null}}function mc(e,t,r){var n=t.pendingProps,i=Ee.current,o=!1,a=(t.flags&128)!==0,c;if((c=a)||(c=e!==null&&e.memoizedState===null?!1:(i&2)!==0),c?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),be(Ee,i&1),e===null)return Fs(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(a=n.children,e=n.fallback,o?(n=t.mode,o=t.child,a={mode:"hidden",children:a},(n&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=a):o=Mi(a,n,0,null),e=cr(e,n,r,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=fo(r),t.memoizedState=yo,e):mo(t,a));if(i=e.memoizedState,i!==null&&(c=i.dehydrated,c!==null))return Gd(e,t,a,n,c,i,r);if(o){o=n.fallback,a=t.mode,i=e.child,c=i.sibling;var d={mode:"hidden",children:n.children};return(a&1)===0&&t.child!==i?(n=t.child,n.childLanes=0,n.pendingProps=d,t.deletions=null):(n=Qt(i,d),n.subtreeFlags=i.subtreeFlags&14680064),c!==null?o=Qt(c,o):(o=cr(o,a,r,null),o.flags|=2),o.return=t,n.return=t,n.sibling=o,t.child=n,n=o,o=t.child,a=e.child.memoizedState,a=a===null?fo(r):{baseLanes:a.baseLanes|r,cachePool:null,transitions:a.transitions},o.memoizedState=a,o.childLanes=e.childLanes&~r,t.memoizedState=yo,n}return o=e.child,e=o.sibling,n=Qt(o,{mode:"visible",children:n.children}),(t.mode&1)===0&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function mo(e,t){return t=Mi({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function wi(e,t,r,n){return n!==null&&Os(n),Tr(t,e.child,null,r),e=mo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Gd(e,t,r,n,i,o,a){if(r)return t.flags&256?(t.flags&=-257,n=lo(Error(u(422))),wi(e,t,a,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=n.fallback,i=t.mode,n=Mi({mode:"visible",children:n.children},i,0,null),o=cr(o,i,a,null),o.flags|=2,n.return=t,o.return=t,n.sibling=o,t.child=n,(t.mode&1)!==0&&Tr(t,e.child,null,a),t.child.memoizedState=fo(a),t.memoizedState=yo,o);if((t.mode&1)===0)return wi(e,t,a,null);if(i.data==="$!"){if(n=i.nextSibling&&i.nextSibling.dataset,n)var c=n.dgst;return n=c,o=Error(u(419)),n=lo(o,n,void 0),wi(e,t,a,n)}if(c=(a&e.childLanes)!==0,Qe||c){if(n=Me,n!==null){switch(a&-a){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}i=(i&(n.suspendedLanes|a))!==0?0:i,i!==0&&i!==o.retryLane&&(o.retryLane=i,It(e,i),gt(n,e,i,-1))}return To(),n=lo(Error(u(421))),wi(e,t,a,n)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=np.bind(null,e),i._reactRetry=t,null):(e=o.treeContext,tt=zt(i.nextSibling),et=t,Ce=!0,pt=null,e!==null&&(it[st++]=Ct,it[st++]=Et,it[st++]=er,Ct=e.id,Et=e.overflow,er=t),t=mo(t,n.children),t.flags|=4096,t)}function gc(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),Hs(e.return,t,r)}function go(e,t,r,n,i){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=n,o.tail=r,o.tailMode=i)}function hc(e,t,r){var n=t.pendingProps,i=n.revealOrder,o=n.tail;if(He(e,t,n.children,r),n=Ee.current,(n&2)!==0)n=n&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&gc(e,r,t);else if(e.tag===19)gc(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(be(Ee,n),(t.mode&1)===0)t.memoizedState=null;else switch(i){case"forwards":for(r=t.child,i=null;r!==null;)e=r.alternate,e!==null&&gi(e)===null&&(i=r),r=r.sibling;r=i,r===null?(i=t.child,t.child=null):(i=r.sibling,r.sibling=null),go(t,!1,i,r,o);break;case"backwards":for(r=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&gi(e)===null){t.child=i;break}e=i.sibling,i.sibling=r,r=i,i=e}go(t,!0,r,null,o);break;case"together":go(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ki(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Lt(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),sr|=t.lanes,(r&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,r=Qt(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=Qt(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function Hd(e,t,r){switch(t.tag){case 3:yc(t),Lr();break;case 5:Tl(t);break;case 1:Ke(t.type)&&oi(t);break;case 4:Ks(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,i=t.memoizedProps.value;be(pi,n._currentValue),n._currentValue=i;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(be(Ee,Ee.current&1),t.flags|=128,null):(r&t.child.childLanes)!==0?mc(e,t,r):(be(Ee,Ee.current&1),e=Lt(e,t,r),e!==null?e.sibling:null);be(Ee,Ee.current&1);break;case 19:if(n=(r&t.childLanes)!==0,(e.flags&128)!==0){if(n)return hc(e,t,r);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),be(Ee,Ee.current),n)break;return null;case 22:case 23:return t.lanes=0,uc(e,t,r)}return Lt(e,t,r)}var _c,ho,vc,xc;_c=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}},ho=function(){},vc=function(e,t,r,n){var i=e.memoizedProps;if(i!==n){e=t.stateNode,nr(vt.current);var o=null;switch(r){case"input":i=Hi(e,i),n=Hi(e,n),o=[];break;case"select":i=k({},i,{value:void 0}),n=k({},n,{value:void 0}),o=[];break;case"textarea":i=Ki(e,i),n=Ki(e,n),o=[];break;default:typeof i.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=ni)}Yi(r,n);var a;r=null;for(x in i)if(!n.hasOwnProperty(x)&&i.hasOwnProperty(x)&&i[x]!=null)if(x==="style"){var c=i[x];for(a in c)c.hasOwnProperty(a)&&(r||(r={}),r[a]="")}else x!=="dangerouslySetInnerHTML"&&x!=="children"&&x!=="suppressContentEditableWarning"&&x!=="suppressHydrationWarning"&&x!=="autoFocus"&&(S.hasOwnProperty(x)?o||(o=[]):(o=o||[]).push(x,null));for(x in n){var d=n[x];if(c=i!=null?i[x]:void 0,n.hasOwnProperty(x)&&d!==c&&(d!=null||c!=null))if(x==="style")if(c){for(a in c)!c.hasOwnProperty(a)||d&&d.hasOwnProperty(a)||(r||(r={}),r[a]="");for(a in d)d.hasOwnProperty(a)&&c[a]!==d[a]&&(r||(r={}),r[a]=d[a])}else r||(o||(o=[]),o.push(x,r)),r=d;else x==="dangerouslySetInnerHTML"?(d=d?d.__html:void 0,c=c?c.__html:void 0,d!=null&&c!==d&&(o=o||[]).push(x,d)):x==="children"?typeof d!="string"&&typeof d!="number"||(o=o||[]).push(x,""+d):x!=="suppressContentEditableWarning"&&x!=="suppressHydrationWarning"&&(S.hasOwnProperty(x)?(d!=null&&x==="onScroll"&&ke("scroll",e),o||c===d||(o=[])):(o=o||[]).push(x,d))}r&&(o=o||[]).push("style",r);var x=o;(t.updateQueue=x)&&(t.flags|=4)}},xc=function(e,t,r,n){r!==n&&(t.flags|=4)};function bn(e,t){if(!Ce)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function We(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags&14680064,n|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags,n|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function Vd(e,t,r){var n=t.pendingProps;switch(zs(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return We(t),null;case 1:return Ke(t.type)&&si(),We(t),null;case 3:return n=t.stateNode,Rr(),je($e),je(Fe),Xs(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ui(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,pt!==null&&(Io(pt),pt=null))),ho(e,t),We(t),null;case 5:Qs(t);var i=nr(hn.current);if(r=t.type,e!==null&&t.stateNode!=null)vc(e,t,r,n,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(u(166));return We(t),null}if(e=nr(vt.current),ui(t)){n=t.stateNode,r=t.type;var o=t.memoizedProps;switch(n[_t]=t,n[pn]=o,e=(t.mode&1)!==0,r){case"dialog":ke("cancel",n),ke("close",n);break;case"iframe":case"object":case"embed":ke("load",n);break;case"video":case"audio":for(i=0;i<cn.length;i++)ke(cn[i],n);break;case"source":ke("error",n);break;case"img":case"image":case"link":ke("error",n),ke("load",n);break;case"details":ke("toggle",n);break;case"input":ea(n,o),ke("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!o.multiple},ke("invalid",n);break;case"textarea":na(n,o),ke("invalid",n)}Yi(r,o),i=null;for(var a in o)if(o.hasOwnProperty(a)){var c=o[a];a==="children"?typeof c=="string"?n.textContent!==c&&(o.suppressHydrationWarning!==!0&&ri(n.textContent,c,e),i=["children",c]):typeof c=="number"&&n.textContent!==""+c&&(o.suppressHydrationWarning!==!0&&ri(n.textContent,c,e),i=["children",""+c]):S.hasOwnProperty(a)&&c!=null&&a==="onScroll"&&ke("scroll",n)}switch(r){case"input":An(n),ra(n,o,!0);break;case"textarea":An(n),sa(n);break;case"select":case"option":break;default:typeof o.onClick=="function"&&(n.onclick=ni)}n=i,t.updateQueue=n,n!==null&&(t.flags|=4)}else{a=i.nodeType===9?i:i.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=oa(r)),e==="http://www.w3.org/1999/xhtml"?r==="script"?(e=a.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=a.createElement(r,{is:n.is}):(e=a.createElement(r),r==="select"&&(a=e,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):e=a.createElementNS(e,r),e[_t]=t,e[pn]=n,_c(e,t,!1,!1),t.stateNode=e;e:{switch(a=Xi(r,n),r){case"dialog":ke("cancel",e),ke("close",e),i=n;break;case"iframe":case"object":case"embed":ke("load",e),i=n;break;case"video":case"audio":for(i=0;i<cn.length;i++)ke(cn[i],e);i=n;break;case"source":ke("error",e),i=n;break;case"img":case"image":case"link":ke("error",e),ke("load",e),i=n;break;case"details":ke("toggle",e),i=n;break;case"input":ea(e,n),i=Hi(e,n),ke("invalid",e);break;case"option":i=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},i=k({},n,{value:void 0}),ke("invalid",e);break;case"textarea":na(e,n),i=Ki(e,n),ke("invalid",e);break;default:i=n}Yi(r,i),c=i;for(o in c)if(c.hasOwnProperty(o)){var d=c[o];o==="style"?ca(e,d):o==="dangerouslySetInnerHTML"?(d=d?d.__html:void 0,d!=null&&aa(e,d)):o==="children"?typeof d=="string"?(r!=="textarea"||d!=="")&&Ur(e,d):typeof d=="number"&&Ur(e,""+d):o!=="suppressContentEditableWarning"&&o!=="suppressHydrationWarning"&&o!=="autoFocus"&&(S.hasOwnProperty(o)?d!=null&&o==="onScroll"&&ke("scroll",e):d!=null&&b(e,o,d,a))}switch(r){case"input":An(e),ra(e,n,!1);break;case"textarea":An(e),sa(e);break;case"option":n.value!=null&&e.setAttribute("value",""+ce(n.value));break;case"select":e.multiple=!!n.multiple,o=n.value,o!=null?mr(e,!!n.multiple,o,!1):n.defaultValue!=null&&mr(e,!!n.multiple,n.defaultValue,!0);break;default:typeof i.onClick=="function"&&(e.onclick=ni)}switch(r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return We(t),null;case 6:if(e&&t.stateNode!=null)xc(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(u(166));if(r=nr(hn.current),nr(vt.current),ui(t)){if(n=t.stateNode,r=t.memoizedProps,n[_t]=t,(o=n.nodeValue!==r)&&(e=et,e!==null))switch(e.tag){case 3:ri(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ri(n.nodeValue,r,(e.mode&1)!==0)}o&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[_t]=t,t.stateNode=n}return We(t),null;case 13:if(je(Ee),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ce&&tt!==null&&(t.mode&1)!==0&&(t.flags&128)===0)wl(),Lr(),t.flags|=98560,o=!1;else if(o=ui(t),n!==null&&n.dehydrated!==null){if(e===null){if(!o)throw Error(u(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(u(317));o[_t]=t}else Lr(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;We(t),o=!1}else pt!==null&&(Io(pt),pt=null),o=!0;if(!o)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(Ee.current&1)!==0?Re===0&&(Re=3):To())),t.updateQueue!==null&&(t.flags|=4),We(t),null);case 4:return Rr(),ho(e,t),e===null&&un(t.stateNode.containerInfo),We(t),null;case 10:return Gs(t.type._context),We(t),null;case 17:return Ke(t.type)&&si(),We(t),null;case 19:if(je(Ee),o=t.memoizedState,o===null)return We(t),null;if(n=(t.flags&128)!==0,a=o.rendering,a===null)if(n)bn(o,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(a=gi(e),a!==null){for(t.flags|=128,bn(o,!1),n=a.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)o=r,e=n,o.flags&=14680066,a=o.alternate,a===null?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=a.childLanes,o.lanes=a.lanes,o.child=a.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=a.memoizedProps,o.memoizedState=a.memoizedState,o.updateQueue=a.updateQueue,o.type=a.type,e=a.dependencies,o.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return be(Ee,Ee.current&1|2),t.child}e=e.sibling}o.tail!==null&&Le()>zr&&(t.flags|=128,n=!0,bn(o,!1),t.lanes=4194304)}else{if(!n)if(e=gi(a),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),bn(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Ce)return We(t),null}else 2*Le()-o.renderingStartTime>zr&&r!==1073741824&&(t.flags|=128,n=!0,bn(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(r=o.last,r!==null?r.sibling=a:t.child=a,o.last=a)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Le(),t.sibling=null,r=Ee.current,be(Ee,n?r&1|2:r&1),t):(We(t),null);case 22:case 23:return Lo(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&(t.mode&1)!==0?(rt&1073741824)!==0&&(We(t),t.subtreeFlags&6&&(t.flags|=8192)):We(t),null;case 24:return null;case 25:return null}throw Error(u(156,t.tag))}function $d(e,t){switch(zs(t),t.tag){case 1:return Ke(t.type)&&si(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Rr(),je($e),je(Fe),Xs(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Qs(t),null;case 13:if(je(Ee),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));Lr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return je(Ee),null;case 4:return Rr(),null;case 10:return Gs(t.type._context),null;case 22:case 23:return Lo(),null;case 24:return null;default:return null}}var ji=!1,Ue=!1,Kd=typeof WeakSet=="function"?WeakSet:Set,Q=null;function Mr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){qe(e,t,n)}else r.current=null}function _o(e,t,r){try{r()}catch(n){qe(e,t,n)}}var Sc=!1;function Qd(e,t){if(qs=Hn,e=Za(),Ss(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break e}var a=0,c=-1,d=-1,x=0,N=0,R=e,T=null;t:for(;;){for(var K;R!==r||i!==0&&R.nodeType!==3||(c=a+i),R!==o||n!==0&&R.nodeType!==3||(d=a+n),R.nodeType===3&&(a+=R.nodeValue.length),(K=R.firstChild)!==null;)T=R,R=K;for(;;){if(R===e)break t;if(T===r&&++x===i&&(c=a),T===o&&++N===n&&(d=a),(K=R.nextSibling)!==null)break;R=T,T=R.parentNode}R=K}r=c===-1||d===-1?null:{start:c,end:d}}else r=null}r=r||{start:0,end:0}}else r=null;for(Ls={focusedElem:e,selectionRange:r},Hn=!1,Q=t;Q!==null;)if(t=Q,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Q=e;else for(;Q!==null;){t=Q;try{var J=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(J!==null){var ee=J.memoizedProps,Te=J.memoizedState,h=t.stateNode,f=h.getSnapshotBeforeUpdate(t.elementType===t.type?ee:yt(t.type,ee),Te);h.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(u(163))}}catch(D){qe(t,t.return,D)}if(e=t.sibling,e!==null){e.return=t.return,Q=e;break}Q=t.return}return J=Sc,Sc=!1,J}function wn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,o!==void 0&&_o(t,r,o)}i=i.next}while(i!==n)}}function Ci(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function vo(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function bc(e){var t=e.alternate;t!==null&&(e.alternate=null,bc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[_t],delete t[pn],delete t[Rs],delete t[Td],delete t[Nd])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wc(e){return e.tag===5||e.tag===3||e.tag===4}function kc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function xo(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=ni));else if(n!==4&&(e=e.child,e!==null))for(xo(e,t,r),e=e.sibling;e!==null;)xo(e,t,r),e=e.sibling}function So(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(So(e,t,r),e=e.sibling;e!==null;)So(e,t,r),e=e.sibling}var ze=null,ft=!1;function Gt(e,t,r){for(r=r.child;r!==null;)jc(e,t,r),r=r.sibling}function jc(e,t,r){if(ht&&typeof ht.onCommitFiberUnmount=="function")try{ht.onCommitFiberUnmount(Bn,r)}catch{}switch(r.tag){case 5:Ue||Mr(r,t);case 6:var n=ze,i=ft;ze=null,Gt(e,t,r),ze=n,ft=i,ze!==null&&(ft?(e=ze,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):ze.removeChild(r.stateNode));break;case 18:ze!==null&&(ft?(e=ze,r=r.stateNode,e.nodeType===8?As(e.parentNode,r):e.nodeType===1&&As(e,r),en(e)):As(ze,r.stateNode));break;case 4:n=ze,i=ft,ze=r.stateNode.containerInfo,ft=!0,Gt(e,t,r),ze=n,ft=i;break;case 0:case 11:case 14:case 15:if(!Ue&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&((o&2)!==0||(o&4)!==0)&&_o(r,t,a),i=i.next}while(i!==n)}Gt(e,t,r);break;case 1:if(!Ue&&(Mr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(c){qe(r,t,c)}Gt(e,t,r);break;case 21:Gt(e,t,r);break;case 22:r.mode&1?(Ue=(n=Ue)||r.memoizedState!==null,Gt(e,t,r),Ue=n):Gt(e,t,r);break;default:Gt(e,t,r)}}function Cc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Kd),t.forEach(function(n){var i=ip.bind(null,e,n);r.has(n)||(r.add(n),n.then(i,i))})}}function mt(e,t){var r=t.deletions;if(r!==null)for(var n=0;n<r.length;n++){var i=r[n];try{var o=e,a=t,c=a;e:for(;c!==null;){switch(c.tag){case 5:ze=c.stateNode,ft=!1;break e;case 3:ze=c.stateNode.containerInfo,ft=!0;break e;case 4:ze=c.stateNode.containerInfo,ft=!0;break e}c=c.return}if(ze===null)throw Error(u(160));jc(o,a,i),ze=null,ft=!1;var d=i.alternate;d!==null&&(d.return=null),i.return=null}catch(x){qe(i,t,x)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Ec(t,e),t=t.sibling}function Ec(e,t){var r=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(mt(t,e),St(e),n&4){try{wn(3,e,e.return),Ci(3,e)}catch(ee){qe(e,e.return,ee)}try{wn(5,e,e.return)}catch(ee){qe(e,e.return,ee)}}break;case 1:mt(t,e),St(e),n&512&&r!==null&&Mr(r,r.return);break;case 5:if(mt(t,e),St(e),n&512&&r!==null&&Mr(r,r.return),e.flags&32){var i=e.stateNode;try{Ur(i,"")}catch(ee){qe(e,e.return,ee)}}if(n&4&&(i=e.stateNode,i!=null)){var o=e.memoizedProps,a=r!==null?r.memoizedProps:o,c=e.type,d=e.updateQueue;if(e.updateQueue=null,d!==null)try{c==="input"&&o.type==="radio"&&o.name!=null&&ta(i,o),Xi(c,a);var x=Xi(c,o);for(a=0;a<d.length;a+=2){var N=d[a],R=d[a+1];N==="style"?ca(i,R):N==="dangerouslySetInnerHTML"?aa(i,R):N==="children"?Ur(i,R):b(i,N,R,x)}switch(c){case"input":Vi(i,o);break;case"textarea":ia(i,o);break;case"select":var T=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!o.multiple;var K=o.value;K!=null?mr(i,!!o.multiple,K,!1):T!==!!o.multiple&&(o.defaultValue!=null?mr(i,!!o.multiple,o.defaultValue,!0):mr(i,!!o.multiple,o.multiple?[]:"",!1))}i[pn]=o}catch(ee){qe(e,e.return,ee)}}break;case 6:if(mt(t,e),St(e),n&4){if(e.stateNode===null)throw Error(u(162));i=e.stateNode,o=e.memoizedProps;try{i.nodeValue=o}catch(ee){qe(e,e.return,ee)}}break;case 3:if(mt(t,e),St(e),n&4&&r!==null&&r.memoizedState.isDehydrated)try{en(t.containerInfo)}catch(ee){qe(e,e.return,ee)}break;case 4:mt(t,e),St(e);break;case 13:mt(t,e),St(e),i=e.child,i.flags&8192&&(o=i.memoizedState!==null,i.stateNode.isHidden=o,!o||i.alternate!==null&&i.alternate.memoizedState!==null||(ko=Le())),n&4&&Cc(e);break;case 22:if(N=r!==null&&r.memoizedState!==null,e.mode&1?(Ue=(x=Ue)||N,mt(t,e),Ue=x):mt(t,e),St(e),n&8192){if(x=e.memoizedState!==null,(e.stateNode.isHidden=x)&&!N&&(e.mode&1)!==0)for(Q=e,N=e.child;N!==null;){for(R=Q=N;Q!==null;){switch(T=Q,K=T.child,T.tag){case 0:case 11:case 14:case 15:wn(4,T,T.return);break;case 1:Mr(T,T.return);var J=T.stateNode;if(typeof J.componentWillUnmount=="function"){n=T,r=T.return;try{t=n,J.props=t.memoizedProps,J.state=t.memoizedState,J.componentWillUnmount()}catch(ee){qe(n,r,ee)}}break;case 5:Mr(T,T.return);break;case 22:if(T.memoizedState!==null){Lc(R);continue}}K!==null?(K.return=T,Q=K):Lc(R)}N=N.sibling}e:for(N=null,R=e;;){if(R.tag===5){if(N===null){N=R;try{i=R.stateNode,x?(o=i.style,typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"):(c=R.stateNode,d=R.memoizedProps.style,a=d!=null&&d.hasOwnProperty("display")?d.display:null,c.style.display=la("display",a))}catch(ee){qe(e,e.return,ee)}}}else if(R.tag===6){if(N===null)try{R.stateNode.nodeValue=x?"":R.memoizedProps}catch(ee){qe(e,e.return,ee)}}else if((R.tag!==22&&R.tag!==23||R.memoizedState===null||R===e)&&R.child!==null){R.child.return=R,R=R.child;continue}if(R===e)break e;for(;R.sibling===null;){if(R.return===null||R.return===e)break e;N===R&&(N=null),R=R.return}N===R&&(N=null),R.sibling.return=R.return,R=R.sibling}}break;case 19:mt(t,e),St(e),n&4&&Cc(e);break;case 21:break;default:mt(t,e),St(e)}}function St(e){var t=e.flags;if(t&2){try{e:{for(var r=e.return;r!==null;){if(wc(r)){var n=r;break e}r=r.return}throw Error(u(160))}switch(n.tag){case 5:var i=n.stateNode;n.flags&32&&(Ur(i,""),n.flags&=-33);var o=kc(e);So(e,o,i);break;case 3:case 4:var a=n.stateNode.containerInfo,c=kc(e);xo(e,c,a);break;default:throw Error(u(161))}}catch(d){qe(e,e.return,d)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Yd(e,t,r){Q=e,Ic(e)}function Ic(e,t,r){for(var n=(e.mode&1)!==0;Q!==null;){var i=Q,o=i.child;if(i.tag===22&&n){var a=i.memoizedState!==null||ji;if(!a){var c=i.alternate,d=c!==null&&c.memoizedState!==null||Ue;c=ji;var x=Ue;if(ji=a,(Ue=d)&&!x)for(Q=i;Q!==null;)a=Q,d=a.child,a.tag===22&&a.memoizedState!==null?Tc(i):d!==null?(d.return=a,Q=d):Tc(i);for(;o!==null;)Q=o,Ic(o),o=o.sibling;Q=i,ji=c,Ue=x}qc(e)}else(i.subtreeFlags&8772)!==0&&o!==null?(o.return=i,Q=o):qc(e)}}function qc(e){for(;Q!==null;){var t=Q;if((t.flags&8772)!==0){var r=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:Ue||Ci(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!Ue)if(r===null)n.componentDidMount();else{var i=t.elementType===t.type?r.memoizedProps:yt(t.type,r.memoizedProps);n.componentDidUpdate(i,r.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&Ll(t,o,n);break;case 3:var a=t.updateQueue;if(a!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}Ll(t,a,r)}break;case 5:var c=t.stateNode;if(r===null&&t.flags&4){r=c;var d=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":d.autoFocus&&r.focus();break;case"img":d.src&&(r.src=d.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var x=t.alternate;if(x!==null){var N=x.memoizedState;if(N!==null){var R=N.dehydrated;R!==null&&en(R)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(u(163))}Ue||t.flags&512&&vo(t)}catch(T){qe(t,t.return,T)}}if(t===e){Q=null;break}if(r=t.sibling,r!==null){r.return=t.return,Q=r;break}Q=t.return}}function Lc(e){for(;Q!==null;){var t=Q;if(t===e){Q=null;break}var r=t.sibling;if(r!==null){r.return=t.return,Q=r;break}Q=t.return}}function Tc(e){for(;Q!==null;){var t=Q;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{Ci(4,t)}catch(d){qe(t,r,d)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount=="function"){var i=t.return;try{n.componentDidMount()}catch(d){qe(t,i,d)}}var o=t.return;try{vo(t)}catch(d){qe(t,o,d)}break;case 5:var a=t.return;try{vo(t)}catch(d){qe(t,a,d)}}}catch(d){qe(t,t.return,d)}if(t===e){Q=null;break}var c=t.sibling;if(c!==null){c.return=t.return,Q=c;break}Q=t.return}}var Xd=Math.ceil,Ei=M.ReactCurrentDispatcher,bo=M.ReactCurrentOwner,lt=M.ReactCurrentBatchConfig,me=0,Me=null,Ne=null,Be=0,rt=0,Dr=Bt(0),Re=0,kn=null,sr=0,Ii=0,wo=0,jn=null,Ye=null,ko=0,zr=1/0,Tt=null,qi=!1,jo=null,Ht=null,Li=!1,Vt=null,Ti=0,Cn=0,Co=null,Ni=-1,Ai=0;function Ve(){return(me&6)!==0?Le():Ni!==-1?Ni:Ni=Le()}function $t(e){return(e.mode&1)===0?1:(me&2)!==0&&Be!==0?Be&-Be:Rd.transition!==null?(Ai===0&&(Ai=ka()),Ai):(e=xe,e!==0||(e=window.event,e=e===void 0?16:Aa(e.type)),e)}function gt(e,t,r,n){if(50<Cn)throw Cn=0,Co=null,Error(u(185));Qr(e,r,n),((me&2)===0||e!==Me)&&(e===Me&&((me&2)===0&&(Ii|=r),Re===4&&Kt(e,Be)),Xe(e,n),r===1&&me===0&&(t.mode&1)===0&&(zr=Le()+500,ai&&Ot()))}function Xe(e,t){var r=e.callbackNode;Ru(e,t);var n=Wn(e,e===Me?Be:0);if(n===0)r!==null&&Sa(r),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(r!=null&&Sa(r),t===1)e.tag===0?Ad(Ac.bind(null,e)):_l(Ac.bind(null,e)),qd(function(){(me&6)===0&&Ot()}),r=null;else{switch(ja(n)){case 1:r=is;break;case 4:r=ba;break;case 16:r=zn;break;case 536870912:r=wa;break;default:r=zn}r=Oc(r,Nc.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function Nc(e,t){if(Ni=-1,Ai=0,(me&6)!==0)throw Error(u(327));var r=e.callbackNode;if(Br()&&e.callbackNode!==r)return null;var n=Wn(e,e===Me?Be:0);if(n===0)return null;if((n&30)!==0||(n&e.expiredLanes)!==0||t)t=Ri(e,n);else{t=n;var i=me;me|=2;var o=Pc();(Me!==e||Be!==t)&&(Tt=null,zr=Le()+500,ar(e,t));do try{ep();break}catch(c){Rc(e,c)}while(!0);Us(),Ei.current=o,me=i,Ne!==null?t=0:(Me=null,Be=0,t=Re)}if(t!==0){if(t===2&&(i=ss(e),i!==0&&(n=i,t=Eo(e,i))),t===1)throw r=kn,ar(e,0),Kt(e,n),Xe(e,Le()),r;if(t===6)Kt(e,n);else{if(i=e.current.alternate,(n&30)===0&&!Jd(i)&&(t=Ri(e,n),t===2&&(o=ss(e),o!==0&&(n=o,t=Eo(e,o))),t===1))throw r=kn,ar(e,0),Kt(e,n),Xe(e,Le()),r;switch(e.finishedWork=i,e.finishedLanes=n,t){case 0:case 1:throw Error(u(345));case 2:lr(e,Ye,Tt);break;case 3:if(Kt(e,n),(n&130023424)===n&&(t=ko+500-Le(),10<t)){if(Wn(e,0)!==0)break;if(i=e.suspendedLanes,(i&n)!==n){Ve(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=Ns(lr.bind(null,e,Ye,Tt),t);break}lr(e,Ye,Tt);break;case 4:if(Kt(e,n),(n&4194240)===n)break;for(t=e.eventTimes,i=-1;0<n;){var a=31-ut(n);o=1<<a,a=t[a],a>i&&(i=a),n&=~o}if(n=i,n=Le()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Xd(n/1960))-n,10<n){e.timeoutHandle=Ns(lr.bind(null,e,Ye,Tt),n);break}lr(e,Ye,Tt);break;case 5:lr(e,Ye,Tt);break;default:throw Error(u(329))}}}return Xe(e,Le()),e.callbackNode===r?Nc.bind(null,e):null}function Eo(e,t){var r=jn;return e.current.memoizedState.isDehydrated&&(ar(e,t).flags|=256),e=Ri(e,t),e!==2&&(t=Ye,Ye=r,t!==null&&Io(t)),e}function Io(e){Ye===null?Ye=e:Ye.push.apply(Ye,e)}function Jd(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var i=r[n],o=i.getSnapshot;i=i.value;try{if(!dt(o(),i))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Kt(e,t){for(t&=~wo,t&=~Ii,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-ut(t),n=1<<r;e[r]=-1,t&=~n}}function Ac(e){if((me&6)!==0)throw Error(u(327));Br();var t=Wn(e,0);if((t&1)===0)return Xe(e,Le()),null;var r=Ri(e,t);if(e.tag!==0&&r===2){var n=ss(e);n!==0&&(t=n,r=Eo(e,n))}if(r===1)throw r=kn,ar(e,0),Kt(e,t),Xe(e,Le()),r;if(r===6)throw Error(u(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,lr(e,Ye,Tt),Xe(e,Le()),null}function qo(e,t){var r=me;me|=1;try{return e(t)}finally{me=r,me===0&&(zr=Le()+500,ai&&Ot())}}function or(e){Vt!==null&&Vt.tag===0&&(me&6)===0&&Br();var t=me;me|=1;var r=lt.transition,n=xe;try{if(lt.transition=null,xe=1,e)return e()}finally{xe=n,lt.transition=r,me=t,(me&6)===0&&Ot()}}function Lo(){rt=Dr.current,je(Dr)}function ar(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,Id(r)),Ne!==null)for(r=Ne.return;r!==null;){var n=r;switch(zs(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&si();break;case 3:Rr(),je($e),je(Fe),Xs();break;case 5:Qs(n);break;case 4:Rr();break;case 13:je(Ee);break;case 19:je(Ee);break;case 10:Gs(n.type._context);break;case 22:case 23:Lo()}r=r.return}if(Me=e,Ne=e=Qt(e.current,null),Be=rt=t,Re=0,kn=null,wo=Ii=sr=0,Ye=jn=null,rr!==null){for(t=0;t<rr.length;t++)if(r=rr[t],n=r.interleaved,n!==null){r.interleaved=null;var i=n.next,o=r.pending;if(o!==null){var a=o.next;o.next=i,n.next=a}r.pending=n}rr=null}return e}function Rc(e,t){do{var r=Ne;try{if(Us(),hi.current=Si,_i){for(var n=Ie.memoizedState;n!==null;){var i=n.queue;i!==null&&(i.pending=null),n=n.next}_i=!1}if(ir=0,Pe=Ae=Ie=null,_n=!1,vn=0,bo.current=null,r===null||r.return===null){Re=1,kn=t,Ne=null;break}e:{var o=e,a=r.return,c=r,d=t;if(t=Be,c.flags|=32768,d!==null&&typeof d=="object"&&typeof d.then=="function"){var x=d,N=c,R=N.tag;if((N.mode&1)===0&&(R===0||R===11||R===15)){var T=N.alternate;T?(N.updateQueue=T.updateQueue,N.memoizedState=T.memoizedState,N.lanes=T.lanes):(N.updateQueue=null,N.memoizedState=null)}var K=sc(a);if(K!==null){K.flags&=-257,oc(K,a,c,o,t),K.mode&1&&ic(o,x,t),t=K,d=x;var J=t.updateQueue;if(J===null){var ee=new Set;ee.add(d),t.updateQueue=ee}else J.add(d);break e}else{if((t&1)===0){ic(o,x,t),To();break e}d=Error(u(426))}}else if(Ce&&c.mode&1){var Te=sc(a);if(Te!==null){(Te.flags&65536)===0&&(Te.flags|=256),oc(Te,a,c,o,t),Os(Pr(d,c));break e}}o=d=Pr(d,c),Re!==4&&(Re=2),jn===null?jn=[o]:jn.push(o),o=a;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var h=rc(o,d,t);ql(o,h);break e;case 1:c=d;var f=o.type,v=o.stateNode;if((o.flags&128)===0&&(typeof f.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(Ht===null||!Ht.has(v)))){o.flags|=65536,t&=-t,o.lanes|=t;var D=nc(o,c,t);ql(o,D);break e}}o=o.return}while(o!==null)}Dc(r)}catch(te){t=te,Ne===r&&r!==null&&(Ne=r=r.return);continue}break}while(!0)}function Pc(){var e=Ei.current;return Ei.current=Si,e===null?Si:e}function To(){(Re===0||Re===3||Re===2)&&(Re=4),Me===null||(sr&268435455)===0&&(Ii&268435455)===0||Kt(Me,Be)}function Ri(e,t){var r=me;me|=2;var n=Pc();(Me!==e||Be!==t)&&(Tt=null,ar(e,t));do try{Zd();break}catch(i){Rc(e,i)}while(!0);if(Us(),me=r,Ei.current=n,Ne!==null)throw Error(u(261));return Me=null,Be=0,Re}function Zd(){for(;Ne!==null;)Mc(Ne)}function ep(){for(;Ne!==null&&!ju();)Mc(Ne)}function Mc(e){var t=Fc(e.alternate,e,rt);e.memoizedProps=e.pendingProps,t===null?Dc(e):Ne=t,bo.current=null}function Dc(e){var t=e;do{var r=t.alternate;if(e=t.return,(t.flags&32768)===0){if(r=Vd(r,t,rt),r!==null){Ne=r;return}}else{if(r=$d(r,t),r!==null){r.flags&=32767,Ne=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Re=6,Ne=null;return}}if(t=t.sibling,t!==null){Ne=t;return}Ne=t=e}while(t!==null);Re===0&&(Re=5)}function lr(e,t,r){var n=xe,i=lt.transition;try{lt.transition=null,xe=1,tp(e,t,r,n)}finally{lt.transition=i,xe=n}return null}function tp(e,t,r,n){do Br();while(Vt!==null);if((me&6)!==0)throw Error(u(327));r=e.finishedWork;var i=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(u(177));e.callbackNode=null,e.callbackPriority=0;var o=r.lanes|r.childLanes;if(Pu(e,o),e===Me&&(Ne=Me=null,Be=0),(r.subtreeFlags&2064)===0&&(r.flags&2064)===0||Li||(Li=!0,Oc(zn,function(){return Br(),null})),o=(r.flags&15990)!==0,(r.subtreeFlags&15990)!==0||o){o=lt.transition,lt.transition=null;var a=xe;xe=1;var c=me;me|=4,bo.current=null,Qd(e,r),Ec(r,e),Sd(Ls),Hn=!!qs,Ls=qs=null,e.current=r,Yd(r),Cu(),me=c,xe=a,lt.transition=o}else e.current=r;if(Li&&(Li=!1,Vt=e,Ti=i),o=e.pendingLanes,o===0&&(Ht=null),qu(r.stateNode),Xe(e,Le()),t!==null)for(n=e.onRecoverableError,r=0;r<t.length;r++)i=t[r],n(i.value,{componentStack:i.stack,digest:i.digest});if(qi)throw qi=!1,e=jo,jo=null,e;return(Ti&1)!==0&&e.tag!==0&&Br(),o=e.pendingLanes,(o&1)!==0?e===Co?Cn++:(Cn=0,Co=e):Cn=0,Ot(),null}function Br(){if(Vt!==null){var e=ja(Ti),t=lt.transition,r=xe;try{if(lt.transition=null,xe=16>e?16:e,Vt===null)var n=!1;else{if(e=Vt,Vt=null,Ti=0,(me&6)!==0)throw Error(u(331));var i=me;for(me|=4,Q=e.current;Q!==null;){var o=Q,a=o.child;if((Q.flags&16)!==0){var c=o.deletions;if(c!==null){for(var d=0;d<c.length;d++){var x=c[d];for(Q=x;Q!==null;){var N=Q;switch(N.tag){case 0:case 11:case 15:wn(8,N,o)}var R=N.child;if(R!==null)R.return=N,Q=R;else for(;Q!==null;){N=Q;var T=N.sibling,K=N.return;if(bc(N),N===x){Q=null;break}if(T!==null){T.return=K,Q=T;break}Q=K}}}var J=o.alternate;if(J!==null){var ee=J.child;if(ee!==null){J.child=null;do{var Te=ee.sibling;ee.sibling=null,ee=Te}while(ee!==null)}}Q=o}}if((o.subtreeFlags&2064)!==0&&a!==null)a.return=o,Q=a;else e:for(;Q!==null;){if(o=Q,(o.flags&2048)!==0)switch(o.tag){case 0:case 11:case 15:wn(9,o,o.return)}var h=o.sibling;if(h!==null){h.return=o.return,Q=h;break e}Q=o.return}}var f=e.current;for(Q=f;Q!==null;){a=Q;var v=a.child;if((a.subtreeFlags&2064)!==0&&v!==null)v.return=a,Q=v;else e:for(a=f;Q!==null;){if(c=Q,(c.flags&2048)!==0)try{switch(c.tag){case 0:case 11:case 15:Ci(9,c)}}catch(te){qe(c,c.return,te)}if(c===a){Q=null;break e}var D=c.sibling;if(D!==null){D.return=c.return,Q=D;break e}Q=c.return}}if(me=i,Ot(),ht&&typeof ht.onPostCommitFiberRoot=="function")try{ht.onPostCommitFiberRoot(Bn,e)}catch{}n=!0}return n}finally{xe=r,lt.transition=t}}return!1}function zc(e,t,r){t=Pr(r,t),t=rc(e,t,1),e=Ut(e,t,1),t=Ve(),e!==null&&(Qr(e,1,t),Xe(e,t))}function qe(e,t,r){if(e.tag===3)zc(e,e,r);else for(;t!==null;){if(t.tag===3){zc(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(Ht===null||!Ht.has(n))){e=Pr(r,e),e=nc(t,e,1),t=Ut(t,e,1),e=Ve(),t!==null&&(Qr(t,1,e),Xe(t,e));break}}t=t.return}}function rp(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),t=Ve(),e.pingedLanes|=e.suspendedLanes&r,Me===e&&(Be&r)===r&&(Re===4||Re===3&&(Be&130023424)===Be&&500>Le()-ko?ar(e,0):wo|=r),Xe(e,t)}function Bc(e,t){t===0&&((e.mode&1)===0?t=1:(t=On,On<<=1,(On&130023424)===0&&(On=4194304)));var r=Ve();e=It(e,t),e!==null&&(Qr(e,t,r),Xe(e,r))}function np(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Bc(e,r)}function ip(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(u(314))}n!==null&&n.delete(t),Bc(e,r)}var Fc;Fc=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||$e.current)Qe=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return Qe=!1,Hd(e,t,r);Qe=(e.flags&131072)!==0}else Qe=!1,Ce&&(t.flags&1048576)!==0&&vl(t,ci,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;ki(e,t),e=t.pendingProps;var i=Er(t,Fe.current);Ar(t,r),i=eo(null,t,n,e,i,r);var o=to();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ke(n)?(o=!0,oi(t)):o=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,$s(t),i.updater=bi,t.stateNode=i,i._reactInternals=t,ao(t,n,e,r),t=po(null,t,n,!0,o,r)):(t.tag=0,Ce&&o&&Ds(t),He(null,t,i,r),t=t.child),t;case 16:n=t.elementType;e:{switch(ki(e,t),e=t.pendingProps,i=n._init,n=i(n._payload),t.type=n,i=t.tag=op(n),e=yt(n,e),i){case 0:t=uo(null,t,n,e,r);break e;case 1:t=pc(null,t,n,e,r);break e;case 11:t=ac(null,t,n,e,r);break e;case 14:t=lc(null,t,n,yt(n.type,e),r);break e}throw Error(u(306,n,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:yt(n,i),uo(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:yt(n,i),pc(e,t,n,i,r);case 3:e:{if(yc(t),e===null)throw Error(u(387));n=t.pendingProps,o=t.memoizedState,i=o.element,Il(e,t),mi(t,n,null,r);var a=t.memoizedState;if(n=a.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){i=Pr(Error(u(423)),t),t=fc(e,t,n,r,i);break e}else if(n!==i){i=Pr(Error(u(424)),t),t=fc(e,t,n,r,i);break e}else for(tt=zt(t.stateNode.containerInfo.firstChild),et=t,Ce=!0,pt=null,r=Cl(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Lr(),n===i){t=Lt(e,t,r);break e}He(e,t,n,r)}t=t.child}return t;case 5:return Tl(t),e===null&&Fs(t),n=t.type,i=t.pendingProps,o=e!==null?e.memoizedProps:null,a=i.children,Ts(n,i)?a=null:o!==null&&Ts(n,o)&&(t.flags|=32),dc(e,t),He(e,t,a,r),t.child;case 6:return e===null&&Fs(t),null;case 13:return mc(e,t,r);case 4:return Ks(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Tr(t,null,n,r):He(e,t,n,r),t.child;case 11:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:yt(n,i),ac(e,t,n,i,r);case 7:return He(e,t,t.pendingProps,r),t.child;case 8:return He(e,t,t.pendingProps.children,r),t.child;case 12:return He(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,i=t.pendingProps,o=t.memoizedProps,a=i.value,be(pi,n._currentValue),n._currentValue=a,o!==null)if(dt(o.value,a)){if(o.children===i.children&&!$e.current){t=Lt(e,t,r);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var c=o.dependencies;if(c!==null){a=o.child;for(var d=c.firstContext;d!==null;){if(d.context===n){if(o.tag===1){d=qt(-1,r&-r),d.tag=2;var x=o.updateQueue;if(x!==null){x=x.shared;var N=x.pending;N===null?d.next=d:(d.next=N.next,N.next=d),x.pending=d}}o.lanes|=r,d=o.alternate,d!==null&&(d.lanes|=r),Hs(o.return,r,t),c.lanes|=r;break}d=d.next}}else if(o.tag===10)a=o.type===t.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(u(341));a.lanes|=r,c=a.alternate,c!==null&&(c.lanes|=r),Hs(a,r,t),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===t){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}He(e,t,i.children,r),t=t.child}return t;case 9:return i=t.type,n=t.pendingProps.children,Ar(t,r),i=ot(i),n=n(i),t.flags|=1,He(e,t,n,r),t.child;case 14:return n=t.type,i=yt(n,t.pendingProps),i=yt(n.type,i),lc(e,t,n,i,r);case 15:return cc(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:yt(n,i),ki(e,t),t.tag=1,Ke(n)?(e=!0,oi(t)):e=!1,Ar(t,r),ec(t,n,i),ao(t,n,i,r),po(null,t,n,!0,e,r);case 19:return hc(e,t,r);case 22:return uc(e,t,r)}throw Error(u(156,t.tag))};function Oc(e,t){return xa(e,t)}function sp(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ct(e,t,r,n){return new sp(e,t,r,n)}function No(e){return e=e.prototype,!(!e||!e.isReactComponent)}function op(e){if(typeof e=="function")return No(e)?1:0;if(e!=null){if(e=e.$$typeof,e===_e)return 11;if(e===fe)return 14}return 2}function Qt(e,t){var r=e.alternate;return r===null?(r=ct(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Pi(e,t,r,n,i,o){var a=2;if(n=e,typeof e=="function")No(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case X:return cr(r.children,i,o,t);case j:a=8,i|=8;break;case F:return e=ct(12,r,t,i|2),e.elementType=F,e.lanes=o,e;case ve:return e=ct(13,r,t,i),e.elementType=ve,e.lanes=o,e;case we:return e=ct(19,r,t,i),e.elementType=we,e.lanes=o,e;case pe:return Mi(r,i,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case O:a=10;break e;case Z:a=9;break e;case _e:a=11;break e;case fe:a=14;break e;case Se:a=16,n=null;break e}throw Error(u(130,e==null?e:typeof e,""))}return t=ct(a,r,t,i),t.elementType=e,t.type=n,t.lanes=o,t}function cr(e,t,r,n){return e=ct(7,e,n,t),e.lanes=r,e}function Mi(e,t,r,n){return e=ct(22,e,n,t),e.elementType=pe,e.lanes=r,e.stateNode={isHidden:!1},e}function Ao(e,t,r){return e=ct(6,e,null,t),e.lanes=r,e}function Ro(e,t,r){return t=ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ap(e,t,r,n,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=os(0),this.expirationTimes=os(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=os(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Po(e,t,r,n,i,o,a,c,d){return e=new ap(e,t,r,c,d),t===1?(t=1,o===!0&&(t|=8)):t=0,o=ct(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},$s(o),e}function lp(e,t,r){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:A,key:n==null?null:""+n,children:e,containerInfo:t,implementation:r}}function Wc(e){if(!e)return Ft;e=e._reactInternals;e:{if(Xt(e)!==e||e.tag!==1)throw Error(u(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ke(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(u(171))}if(e.tag===1){var r=e.type;if(Ke(r))return gl(e,r,t)}return t}function Uc(e,t,r,n,i,o,a,c,d){return e=Po(r,n,!0,e,i,o,a,c,d),e.context=Wc(null),r=e.current,n=Ve(),i=$t(r),o=qt(n,i),o.callback=t??null,Ut(r,o,i),e.current.lanes=i,Qr(e,i,n),Xe(e,n),e}function Di(e,t,r,n){var i=t.current,o=Ve(),a=$t(i);return r=Wc(r),t.context===null?t.context=r:t.pendingContext=r,t=qt(o,a),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=Ut(i,t,a),e!==null&&(gt(e,i,a,o),fi(e,i,a)),a}function zi(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Gc(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function Mo(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}function cp(){return null}var Hc=typeof reportError=="function"?reportError:function(e){console.error(e)};function Do(e){this._internalRoot=e}Bi.prototype.render=Do.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));Di(e,t,null,null)},Bi.prototype.unmount=Do.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;or(function(){Di(null,e,null,null)}),t[kt]=null}};function Bi(e){this._internalRoot=e}Bi.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ia();e={blockedOn:null,target:e,priority:t};for(var r=0;r<Pt.length&&t!==0&&t<Pt[r].priority;r++);Pt.splice(r,0,e),r===0&&Ta(e)}};function zo(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Fi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Vc(){}function up(e,t,r,n,i){if(i){if(typeof n=="function"){var o=n;n=function(){var x=zi(a);o.call(x)}}var a=Uc(t,n,e,0,null,!1,!1,"",Vc);return e._reactRootContainer=a,e[kt]=a.current,un(e.nodeType===8?e.parentNode:e),or(),a}for(;i=e.lastChild;)e.removeChild(i);if(typeof n=="function"){var c=n;n=function(){var x=zi(d);c.call(x)}}var d=Po(e,0,!1,null,null,!1,!1,"",Vc);return e._reactRootContainer=d,e[kt]=d.current,un(e.nodeType===8?e.parentNode:e),or(function(){Di(t,d,r,n)}),d}function Oi(e,t,r,n,i){var o=r._reactRootContainer;if(o){var a=o;if(typeof i=="function"){var c=i;i=function(){var d=zi(a);c.call(d)}}Di(t,a,e,i)}else a=up(r,t,e,i,n);return zi(a)}Ca=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=Kr(t.pendingLanes);r!==0&&(as(t,r|1),Xe(t,Le()),(me&6)===0&&(zr=Le()+500,Ot()))}break;case 13:or(function(){var n=It(e,1);if(n!==null){var i=Ve();gt(n,e,1,i)}}),Mo(e,1)}},ls=function(e){if(e.tag===13){var t=It(e,134217728);if(t!==null){var r=Ve();gt(t,e,134217728,r)}Mo(e,134217728)}},Ea=function(e){if(e.tag===13){var t=$t(e),r=It(e,t);if(r!==null){var n=Ve();gt(r,e,t,n)}Mo(e,t)}},Ia=function(){return xe},qa=function(e,t){var r=xe;try{return xe=e,t()}finally{xe=r}},es=function(e,t,r){switch(t){case"input":if(Vi(e,r),t=r.name,r.type==="radio"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var i=ii(n);if(!i)throw Error(u(90));Zo(n),Vi(n,i)}}}break;case"textarea":ia(e,r);break;case"select":t=r.value,t!=null&&mr(e,!!r.multiple,t,!1)}},ya=qo,fa=or;var dp={usingClientEntryPoint:!1,Events:[yn,jr,ii,da,pa,qo]},En={findFiberByHostInstance:Jt,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},pp={bundleType:En.bundleType,version:En.version,rendererPackageName:En.rendererPackageName,rendererConfig:En.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:M.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=_a(e),e===null?null:e.stateNode},findFiberByHostInstance:En.findFiberByHostInstance||cp,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Wi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Wi.isDisabled&&Wi.supportsFiber)try{Bn=Wi.inject(pp),ht=Wi}catch{}}return Je.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=dp,Je.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!zo(t))throw Error(u(200));return lp(e,t,null,r)},Je.createRoot=function(e,t){if(!zo(e))throw Error(u(299));var r=!1,n="",i=Hc;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(i=t.onRecoverableError)),t=Po(e,1,!1,null,null,r,!1,n,i),e[kt]=t.current,un(e.nodeType===8?e.parentNode:e),new Do(t)},Je.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(u(188)):(e=Object.keys(e).join(","),Error(u(268,e)));return e=_a(t),e=e===null?null:e.stateNode,e},Je.flushSync=function(e){return or(e)},Je.hydrate=function(e,t,r){if(!Fi(t))throw Error(u(200));return Oi(null,e,t,!0,r)},Je.hydrateRoot=function(e,t,r){if(!zo(e))throw Error(u(405));var n=r!=null&&r.hydratedSources||null,i=!1,o="",a=Hc;if(r!=null&&(r.unstable_strictMode===!0&&(i=!0),r.identifierPrefix!==void 0&&(o=r.identifierPrefix),r.onRecoverableError!==void 0&&(a=r.onRecoverableError)),t=Uc(t,null,e,1,r??null,i,!1,o,a),e[kt]=t.current,un(e),n)for(e=0;e<n.length;e++)r=n[e],i=r._getVersion,i=i(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,i]:t.mutableSourceEagerHydrationData.push(r,i);return new Bi(t)},Je.render=function(e,t,r){if(!Fi(t))throw Error(u(200));return Oi(null,e,t,!1,r)},Je.unmountComponentAtNode=function(e){if(!Fi(e))throw Error(u(40));return e._reactRootContainer?(or(function(){Oi(null,null,e,!1,function(){e._reactRootContainer=null,e[kt]=null})}),!0):!1},Je.unstable_batchedUpdates=qo,Je.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!Fi(r))throw Error(u(200));if(e==null||e._reactInternals===void 0)throw Error(u(38));return Oi(e,t,r,!1,n)},Je.version="18.3.1-next-f1338f8080-20240426",Je}var eu;function xp(){if(eu)return Oo.exports;eu=1;function l(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(p){console.error(p)}}return l(),Oo.exports=vp(),Oo.exports}var tu;function Sp(){if(tu)return Ui;tu=1;var l=xp();return Ui.createRoot=l.createRoot,Ui.hydrateRoot=l.hydrateRoot,Ui}var bp=Sp();const wp=yu(bp),ru=[{name:"query_records",description:"Query ServiceNow records with filtering, field selection, pagination, and sorting",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g., "incident", "change_request")'},query:{type:"string",description:'Encoded query string (e.g., "active=true^priority=1")'},fields:{type:"string",description:"Comma-separated fields to return"},limit:{type:"number",description:"Max records (default: 10, max: 1000)"},orderBy:{type:"string",description:'Field to sort by. Prefix with "-" for descending'}},required:["table"]}},{name:"get_table_schema",description:"Get the structure and field information for a ServiceNow table",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table name to inspect"}},required:["table"]}},{name:"get_record",description:"Retrieve complete details of a specific record by sys_id",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table name"},sys_id:{type:"string",description:"32-character system ID"},fields:{type:"string",description:"Optional comma-separated fields"}},required:["table","sys_id"]}},{name:"get_user",description:"Look up user details by email or username",inputSchema:{type:"object",properties:{user_identifier:{type:"string",description:"Email address or username"}},required:["user_identifier"]}},{name:"get_group",description:"Find assignment group details by name or sys_id",inputSchema:{type:"object",properties:{group_identifier:{type:"string",description:"Group name or sys_id"}},required:["group_identifier"]}},{name:"search_cmdb_ci",description:"Search for configuration items (CIs) in the CMDB",inputSchema:{type:"object",properties:{query:{type:"string",description:'Encoded query (e.g., "sys_class_name=cmdb_ci_server")'},limit:{type:"number",description:"Max CIs (default: 10, max: 100)"}},required:[]}},{name:"get_cmdb_ci",description:"Get complete information about a specific configuration item",inputSchema:{type:"object",properties:{ci_sys_id:{type:"string",description:"System ID of the CI"},fields:{type:"string",description:"Optional comma-separated fields"}},required:["ci_sys_id"]}},{name:"list_relationships",description:"Show parent and child relationships for a CI",inputSchema:{type:"object",properties:{ci_sys_id:{type:"string",description:"System ID of the CI"}},required:["ci_sys_id"]}},{name:"list_discovery_schedules",description:"List discovery schedules and their run status",inputSchema:{type:"object",properties:{active_only:{type:"boolean",description:"Only show active schedules"}},required:[]}},{name:"list_mid_servers",description:"List MID servers and verify they are healthy",inputSchema:{type:"object",properties:{active_only:{type:"boolean",description:'Only show servers with status "Up"'}},required:[]}},{name:"list_active_events",description:"Monitor critical infrastructure events",inputSchema:{type:"object",properties:{query:{type:"string",description:'Filter events (e.g., "severity=1")'},limit:{type:"number",description:"Max events (default: 10)"}},required:[]}},{name:"cmdb_health_dashboard",description:"Get CMDB data quality metrics (completeness of server and network CI data)",inputSchema:{type:"object",properties:{},required:[]}},{name:"service_mapping_summary",description:"View service dependencies and related CIs for impact analysis",inputSchema:{type:"object",properties:{service_sys_id:{type:"string",description:"System ID of the business service"}},required:["service_sys_id"]}},{name:"natural_language_search",description:"Search ServiceNow using plain English (experimental)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Plain English query"},limit:{type:"number",description:"Max results (default: 10)"}},required:["query"]}},{name:"natural_language_update",description:"Update a record using natural language (experimental, requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{instruction:{type:"string",description:"Natural language update instruction"},table:{type:"string",description:"Table name"}},required:["instruction","table"]}},{name:"list_instances",description:"List all configured ServiceNow instances (multi-instance / multi-customer support)",inputSchema:{type:"object",properties:{},required:[]}},{name:"switch_instance",description:"Switch the active ServiceNow instance for this session",inputSchema:{type:"object",properties:{name:{type:"string",description:'Instance name as configured (e.g. "prod", "dev", "customer_a")'}},required:["name"]}},{name:"get_current_instance",description:"Get the currently active ServiceNow instance name and URL",inputSchema:{type:"object",properties:{},required:[]}},{name:"create_ci_relationship",description:"[Write] Create a relationship between two CMDB Configuration Items",inputSchema:{type:"object",properties:{parent:{type:"string",description:"Parent CI sys_id"},child:{type:"string",description:"Child CI sys_id"},type:{type:"string",description:'Relationship type (e.g. "Runs on::Runs")'}},required:["parent","child","type"]}},{name:"cmdb_impact_analysis",description:"Analyze the downstream impact of a Configuration Item change or outage",inputSchema:{type:"object",properties:{ci_sys_id:{type:"string",description:"CI sys_id to analyze"},depth:{type:"number",description:"Relationship depth to traverse (default: 2)"}},required:["ci_sys_id"]}},{name:"run_discovery_scan",description:"[Write] Trigger a ServiceNow Discovery scan for network/infrastructure",inputSchema:{type:"object",properties:{schedule_id:{type:"string",description:"Discovery schedule sys_id to run"},mid_server:{type:"string",description:"Optional MID server name"}},required:["schedule_id"]}},{name:"create_incident",description:"Create a new incident record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief description of the issue"},urgency:{type:"number",description:"1=High, 2=Medium, 3=Low"},impact:{type:"number",description:"1=High, 2=Medium, 3=Low"},priority:{type:"number",description:"1=Critical, 2=High, 3=Moderate, 4=Low"},description:{type:"string",description:"Detailed description"},assignment_group:{type:"string",description:"Assignment group name or sys_id"},caller_id:{type:"string",description:"Caller user name or sys_id"},category:{type:"string",description:"Incident category"},subcategory:{type:"string",description:"Incident subcategory"}},required:["short_description"]}},{name:"get_incident",description:"Get full details of an incident by number (e.g. INC0012345) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Incident number (INC...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_incident",description:"Update fields on an existing incident (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the incident"},fields:{type:"object",description:'Key-value pairs to update (e.g., {"state": "2", "urgency": "1"})'}},required:["sys_id","fields"]}},{name:"resolve_incident",description:"Resolve an incident with resolution code and notes (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the incident"},resolution_code:{type:"string",description:'Resolution code (e.g., "Solved (Permanently)")'},resolution_notes:{type:"string",description:"Details of how the incident was resolved"}},required:["sys_id","resolution_code","resolution_notes"]}},{name:"close_incident",description:"Close a resolved incident (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the incident"}},required:["sys_id"]}},{name:"add_work_note",description:"Add an internal work note to any ITSM record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g., "incident", "change_request")'},sys_id:{type:"string",description:"System ID of the record"},note:{type:"string",description:"Work note text (internal, not visible to end user)"}},required:["table","sys_id","note"]}},{name:"add_comment",description:"Add a customer-visible comment to any ITSM record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g., "incident")'},sys_id:{type:"string",description:"System ID of the record"},comment:{type:"string",description:"Comment text (visible to end user/caller)"}},required:["table","sys_id","comment"]}},{name:"create_problem",description:"Create a new problem record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief description of the problem"},description:{type:"string",description:"Detailed description"},assignment_group:{type:"string",description:"Assignment group name or sys_id"},priority:{type:"number",description:"1=Critical, 2=High, 3=Moderate, 4=Low"}},required:["short_description"]}},{name:"get_problem",description:"Get full details of a problem by number (PRB...) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Problem number (PRB...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_problem",description:"Update fields on an existing problem (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the problem"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"resolve_problem",description:"Resolve a problem with root cause and resolution notes (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the problem"},root_cause:{type:"string",description:"Root cause of the problem"},resolution_notes:{type:"string",description:"How the problem was resolved"}},required:["sys_id","root_cause","resolution_notes"]}},{name:"create_change_request",description:"Create a new change request (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief description of the change"},description:{type:"string",description:"Detailed description and justification"},type:{type:"string",description:'Change type: "normal", "standard", "emergency"'},category:{type:"string",description:'Change category (e.g. "Software", "Hardware", "Network")'},risk:{type:"string",description:'Risk level: "1"=High, "2"=Medium, "3"=Low, "4"=Very Low'},impact:{type:"string",description:'Impact: "1"=High, "2"=Medium, "3"=Low'},priority:{type:"string",description:'Priority: "1"=Critical, "2"=High, "3"=Moderate, "4"=Low'},assignment_group:{type:"string",description:"Assignment group name or sys_id"},assigned_to:{type:"string",description:"Assignee username or sys_id"},start_date:{type:"string",description:"Planned start date (ISO: YYYY-MM-DD HH:MM:SS)"},end_date:{type:"string",description:"Planned end date (ISO: YYYY-MM-DD HH:MM:SS)"},implementation_plan:{type:"string",description:"Step-by-step implementation plan"},backout_plan:{type:"string",description:"Rollback plan if change fails"},test_plan:{type:"string",description:"Testing and validation steps"},cmdb_ci:{type:"string",description:"Affected CI sys_id"}},required:["short_description","type"]}},{name:"get_change_request",description:"Get full details of a change request by number (CHG...) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Change number (CHG...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_change_request",description:"Update fields on a change request (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the change request"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_change_requests",description:"List change requests with optional filtering by state or query",inputSchema:{type:"object",properties:{query:{type:"string",description:"Encoded query filter"},state:{type:"string",description:'Change state (e.g., "-5"=Requested, "-4"=Draft, "0"=Open)'},limit:{type:"number",description:"Max records (default: 10)"}},required:[]}},{name:"submit_change_for_approval",description:'Move a change request to "Requested" state for approval (requires WRITE_ENABLED=true)',inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the change request"}},required:["sys_id"]}},{name:"close_change_request",description:"Close a change request with close code and notes (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the change request"},close_code:{type:"string",description:'Close code (e.g., "successful", "unsuccessful")'},close_notes:{type:"string",description:"Closure notes"}},required:["sys_id","close_code","close_notes"]}},{name:"schedule_cab_meeting",description:"[Write] Schedule a Change Advisory Board (CAB) meeting",inputSchema:{type:"object",properties:{change_id:{type:"string",description:"Change request number (CHG...) or sys_id"},date:{type:"string",description:"ISO date for the CAB meeting"},duration_minutes:{type:"number",description:"Meeting duration in minutes"},attendees:{type:"string",description:"Comma-separated group names"}},required:["change_id","date"]}},{name:"get_task",description:"Get details of any task record by number or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Task number or sys_id"}},required:["number_or_sysid"]}},{name:"update_task",description:"Update fields on a task record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the task"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_my_tasks",description:"List tasks assigned to the currently configured user",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max tasks to return (default: 10)"}},required:[]}},{name:"complete_task",description:"Mark a task as complete (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the task"},close_notes:{type:"string",description:"Optional closure notes"}},required:["sys_id"]}},{name:"list_knowledge_bases",description:"List all knowledge bases available in the instance",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"search_knowledge",description:"Search knowledge base articles by keyword",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search keywords or phrase"},limit:{type:"number",description:"Max articles (default: 10)"},knowledge_base:{type:"string",description:"Optional: filter by knowledge base sys_id or name"}},required:["query"]}},{name:"get_knowledge_article",description:"Get the full content of a knowledge article by number (KB...) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Article number (KB...) or sys_id"}},required:["number_or_sysid"]}},{name:"create_knowledge_article",description:"Create a new knowledge article (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Article title"},text:{type:"string",description:"Article body (HTML or plain text)"},knowledge_base_sys_id:{type:"string",description:"sys_id of the target knowledge base"},category:{type:"string",description:"Article category"}},required:["short_description","text","knowledge_base_sys_id"]}},{name:"update_knowledge_article",description:"Update a knowledge article (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the article"},fields:{type:"object",description:'Key-value pairs to update (e.g., {"text": "...updated content..."})'}},required:["sys_id","fields"]}},{name:"publish_knowledge_article",description:"Publish a draft knowledge article (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the article to publish"}},required:["sys_id"]}},{name:"retire_knowledge_article",description:"[Write] Retire a knowledge article (mark as outdated)",inputSchema:{type:"object",properties:{article_id:{type:"string",description:"Article number (KB...) or sys_id"}},required:["article_id"]}},{name:"list_catalog_items",description:"List available service catalog items",inputSchema:{type:"object",properties:{category:{type:"string",description:"Filter by category name or sys_id"},limit:{type:"number",description:"Max items (default: 20)"}},required:[]}},{name:"search_catalog",description:"Search the service catalog for items matching a keyword",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search keywords"},limit:{type:"number",description:"Max results (default: 10)"}},required:["query"]}},{name:"get_catalog_item",description:"Get full details of a catalog item including its variables",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Catalog item sys_id or name"}},required:["sys_id_or_name"]}},{name:"create_catalog_item",description:"Create a new service catalog item (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Catalog item display name"},short_description:{type:"string",description:"One-line summary shown in search results"},description:{type:"string",description:"Full HTML description of the item"},category:{type:"string",description:"sys_id of the catalog category (sc_category)"},price:{type:"string",description:'Price (e.g. "0", "99.99")'},delivery_time:{type:"string",description:'Estimated delivery time ISO 8601 duration (e.g. "1 08:00:00" for 1 day 8 hours)'},active:{type:"boolean",description:"Make the item available in the catalog (default: true)"},roles:{type:"string",description:"Comma-separated roles that can see the item"}},required:["name","short_description"]}},{name:"update_catalog_item",description:"Update an existing catalog item (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Catalog item sys_id"},fields:{type:"object",description:"Fields to update (name, short_description, price, active, category, etc.)"}},required:["sys_id","fields"]}},{name:"order_catalog_item",description:"Order a service catalog item (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the catalog item"},quantity:{type:"number",description:"Quantity to order (default: 1)"},variables:{type:"object",description:"Catalog item variables as key-value pairs"}},required:["sys_id"]}},{name:"create_approval_rule",description:"Create an approval rule that automatically generates approval requests when a record matches given conditions (requires WRITE_ENABLED=true). Uses the sysapproval_rule table.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Rule name"},table:{type:"string",description:'Table this rule applies to (e.g. "sc_request", "change_request")'},approver_type:{type:"string",description:'"user" | "group" — whether the approver is a user or a group'},approver:{type:"string",description:"sys_id of the approving user or group"},condition:{type:"string",description:"Encoded query that determines when the rule fires (leave blank for always)"},active:{type:"boolean",description:"Activate the rule immediately (default: true)"},order:{type:"number",description:"Execution order relative to other rules (default: 100)"}},required:["name","table","approver_type","approver"]}},{name:"get_my_approvals",description:"List approvals pending for the currently configured user",inputSchema:{type:"object",properties:{state:{type:"string",description:'Filter by state: "requested", "approved", "rejected" (default: "requested")'}},required:[]}},{name:"list_approvals",description:"List approval requests with optional filters",inputSchema:{type:"object",properties:{query:{type:"string",description:"Encoded query filter"},state:{type:"string",description:"Approval state filter"},limit:{type:"number",description:"Max results (default: 10)"}},required:[]}},{name:"approve_request",description:"Approve a pending approval request (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the approval record"},comments:{type:"string",description:"Optional approval comments"}},required:["sys_id"]}},{name:"reject_request",description:"Reject a pending approval request (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the approval record"},comments:{type:"string",description:"Reason for rejection (required)"}},required:["sys_id","comments"]}},{name:"get_sla_details",description:"Get SLA breach status for a specific task or incident",inputSchema:{type:"object",properties:{task_sys_id:{type:"string",description:"System ID of the task/incident"}},required:["task_sys_id"]}},{name:"list_active_slas",description:"List active SLA records with optional filters",inputSchema:{type:"object",properties:{query:{type:"string",description:"Encoded query filter"},limit:{type:"number",description:"Max results (default: 10)"}},required:[]}},{name:"create_catalog_variable",description:"[Write] Add a form variable to a service catalog item",inputSchema:{type:"object",properties:{cat_item_id:{type:"string",description:"Catalog item sys_id"},name:{type:"string",description:"Variable name"},question_text:{type:"string",description:"Label shown to user"},type:{type:"string",description:"Variable type: string/reference/select_box/checkbox/date/date_time/integer/multi_line_text/email"},order:{type:"number",description:"Display order (default: 100)"},mandatory:{type:"boolean",description:"Required field"}},required:["cat_item_id","name","question_text","type"]}},{name:"create_catalog_ui_policy",description:"[Write] Create a UI policy for a catalog item form",inputSchema:{type:"object",properties:{cat_item_id:{type:"string",description:"Catalog item sys_id"},short_description:{type:"string",description:"UI policy description"},conditions:{type:"string",description:"Encoded condition query"},reverse_if_false:{type:"boolean",description:"Reverse actions when condition is false"}},required:["cat_item_id","short_description"]}},{name:"list_users",description:"List users with optional search filter",inputSchema:{type:"object",properties:{query:{type:"string",description:'Filter (e.g., "active=true^departmentLIKEIT")'},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"create_user",description:"Create a new user account (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{user_name:{type:"string",description:"Unique username (login name)"},email:{type:"string",description:"Email address"},first_name:{type:"string",description:"First name"},last_name:{type:"string",description:"Last name"},title:{type:"string",description:"Job title"},department:{type:"string",description:"Department name or sys_id"}},required:["user_name","email","first_name","last_name"]}},{name:"update_user",description:"Update a user account (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the user"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_groups",description:"List groups with optional search filter",inputSchema:{type:"object",properties:{query:{type:"string",description:'Filter (e.g., "active=true^typeLIKEitil")'},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"create_group",description:"Create a new assignment group (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Group name"},description:{type:"string",description:"Group description"},manager:{type:"string",description:"Manager user_name or sys_id"}},required:["name"]}},{name:"update_group",description:"Update a group (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the group"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"add_user_to_group",description:"Add a user to a group (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{user_sys_id:{type:"string",description:"System ID of the user"},group_sys_id:{type:"string",description:"System ID of the group"}},required:["user_sys_id","group_sys_id"]}},{name:"remove_user_from_group",description:"Remove a user from a group (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{member_sys_id:{type:"string",description:"System ID of the sys_user_grmember record"}},required:["member_sys_id"]}},{name:"list_reports",description:"List saved reports in the instance (latest release: /api/now/reporting)",inputSchema:{type:"object",properties:{search:{type:"string",description:"Search reports by name (uses sysparm_contains)"},category:{type:"string",description:"Filter by report category"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_report",description:"Get the definition and metadata of a saved report",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Report sys_id or exact name"}},required:["sys_id_or_name"]}},{name:"run_aggregate_query",description:"Run a grouped aggregate (COUNT, SUM, AVG) query on any table (latest release: /api/now/stats/{table})",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table to query (e.g., "incident", "task_sla")'},group_by:{type:"string",description:'Field to group results by (e.g., "priority", "state", "assignment_group")'},aggregate:{type:"string",description:"Aggregate function: COUNT (default), SUM, AVG, MIN, MAX"},query:{type:"string",description:"Optional encoded query filter"},limit:{type:"number",description:"Max groups (default: 20)"}},required:["table","group_by"]}},{name:"trend_query",description:"Get time-bucketed trend data for a table (useful for monthly/weekly trend charts)",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g., "incident")'},date_field:{type:"string",description:'Date field to bucket by (e.g., "opened_at", "sys_created_on")'},group_by:{type:"string",description:'Secondary grouping field (e.g., "priority", "state")'},query:{type:"string",description:"Optional encoded query filter"},periods:{type:"number",description:"Number of months to look back (default: 6)"}},required:["table","date_field","group_by"]}},{name:"get_performance_analytics",description:"Get Performance Analytics widget data (requires PA plugin; latest release: /api/now/pa/widget/{sys_id})",inputSchema:{type:"object",properties:{widget_sys_id:{type:"string",description:"sys_id of the PA widget"},time_range:{type:"string",description:'Time range (e.g., "last_30_days", "last_quarter")'}},required:["widget_sys_id"]}},{name:"export_report_data",description:"Export raw table data as structured JSON for use in external reports",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table to export from"},query:{type:"string",description:"Encoded query filter"},fields:{type:"string",description:"Comma-separated fields to include"},limit:{type:"number",description:"Max records (default: 100, max: 1000)"}},required:["table"]}},{name:"get_sys_log",description:"Retrieve system log entries for debugging or auditing",inputSchema:{type:"object",properties:{query:{type:"string",description:'Filter (e.g., "level=error^sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()")'},limit:{type:"number",description:"Max entries (default: 20)"}},required:[]}},{name:"list_scheduled_jobs",description:"List scheduled jobs and their run schedules",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active jobs only (default: true)"},query:{type:"string",description:"Additional filter"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_scheduled_job",description:"Get full details of a scheduled job by sys_id or name",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Job sys_id or exact name"}},required:["sys_id_or_name"]}},{name:"create_scheduled_job",description:"Create a new scheduled script execution job (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Job name"},script:{type:"string",description:"Server-side JavaScript to run on schedule"},run_type:{type:"string",description:'Schedule type: "daily", "weekly", "monthly", "once", "periodically"'},run_time:{type:"string",description:"Time to run (HH:MM:SS format for daily/weekly/monthly)"},run_period:{type:"string",description:'Period interval for "periodically" type (e.g. "00:15:00" for 15 minutes)'},active:{type:"boolean",description:"Whether to activate immediately (default: true)"}},required:["name","script","run_type"]}},{name:"update_scheduled_job",description:"Update a scheduled job (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Scheduled job sys_id"},fields:{type:"object",description:"Fields to update (name, script, active, run_type, run_time, etc.)"}},required:["sys_id","fields"]}},{name:"trigger_scheduled_job",description:"Immediately execute a scheduled job on-demand (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Scheduled job sys_id to trigger"}},required:["sys_id"]}},{name:"create_report",description:"Create a new saved report on any table (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{title:{type:"string",description:"Report title displayed in the list"},table:{type:"string",description:'Table to report on (e.g. "incident", "change_request")'},type:{type:"string",description:'Report type: "bar", "column", "pie", "line", "list", "gauge", "single_score", "trend", "pivot", "calHeatmap"'},field:{type:"string",description:"Primary grouping field for the report"},query:{type:"string",description:"Encoded query to filter report data"},aggregate:{type:"string",description:"Aggregate function: COUNT (default), SUM, AVG, MIN, MAX"},group_by:{type:"string",description:"Secondary grouping field (stacked charts)"},roles:{type:"string",description:"Comma-separated roles that can view the report"}},required:["title","table","type"]}},{name:"update_report",description:"Update an existing saved report definition (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Report sys_id"},fields:{type:"object",description:"Fields to update (title, type, query, field, aggregate, etc.)"}},required:["sys_id","fields"]}},{name:"list_job_run_history",description:"List recent run history for scheduled jobs (success/failure log)",inputSchema:{type:"object",properties:{job_sys_id:{type:"string",description:"Filter by specific job sys_id"},status:{type:"string",description:"Filter by run status: success, error, canceled"},limit:{type:"number",description:"Max results (default: 25)"}},required:[]}},{name:"create_scheduled_report",description:"[Write] Schedule a report for recurring email delivery",inputSchema:{type:"object",properties:{report_id:{type:"string",description:"Report sys_id"},frequency:{type:"string",description:"Frequency: daily/weekly/monthly"},recipients:{type:"string",description:"Email addresses"},day_of_week:{type:"string",description:"Day of week (for weekly frequency)"},day_of_month:{type:"number",description:"Day of month (for monthly frequency)"},format:{type:"string",description:"Export format: pdf/csv/xlsx"}},required:["report_id","frequency","recipients"]}},{name:"create_kpi",description:"[Write] Create a Key Performance Indicator from ServiceNow data",inputSchema:{type:"object",properties:{name:{type:"string",description:"KPI name"},table:{type:"string",description:"Source table"},field:{type:"string",description:"Aggregate field"},aggregate:{type:"string",description:"Aggregate function: COUNT/AVG/SUM/MIN/MAX"},conditions:{type:"string",description:"Encoded query filter"},unit:{type:"string",description:"Display unit"}},required:["name","table","aggregate"]}},{name:"list_atf_suites",description:"List ATF test suites in the instance",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active suites only"},query:{type:"string",description:"Additional filter"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_atf_suite",description:"Get details of a test suite including test count",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Test suite sys_id or name"}},required:["sys_id_or_name"]}},{name:"run_atf_suite",description:"Execute an ATF test suite (requires ATF_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the test suite"}},required:["sys_id"]}},{name:"list_atf_tests",description:"List ATF test cases, optionally filtered by suite",inputSchema:{type:"object",properties:{suite_sys_id:{type:"string",description:"Filter by test suite sys_id"},active:{type:"boolean",description:"Filter to active tests only"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_atf_test",description:"Get details of a specific test case",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the test"}},required:["sys_id"]}},{name:"run_atf_test",description:"Execute a single ATF test (requires ATF_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the test"}},required:["sys_id"]}},{name:"get_atf_suite_result",description:"Get the results of a test suite run",inputSchema:{type:"object",properties:{result_sys_id:{type:"string",description:"System ID of the suite result record"}},required:["result_sys_id"]}},{name:"list_atf_test_results",description:"List individual test results within a suite run",inputSchema:{type:"object",properties:{suite_result_sys_id:{type:"string",description:"Filter by suite result sys_id"},limit:{type:"number",description:"Max results (default: 50)"}},required:[]}},{name:"get_atf_failure_insight",description:"Get ATF Failure Insight data — metadata changes between last successful and failed run (role changes, field value changes)",inputSchema:{type:"object",properties:{result_sys_id:{type:"string",description:"System ID of the failed suite result"}},required:["result_sys_id"]}},{name:"nlq_query",description:"Ask a natural language question and get structured ServiceNow data (ServiceNow NLQ API)",inputSchema:{type:"object",properties:{question:{type:"string",description:'Plain English question (e.g., "How many P1 incidents were opened this week?")'},table:{type:"string",description:"Optional target table hint"},limit:{type:"number",description:"Max results (default: 10)"}},required:["question"]}},{name:"ai_search",description:"Semantic AI-powered search across KB, catalog, incidents (ServiceNow AI Search)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Natural language search query"},sources:{type:"array",items:{type:"string"},description:'Sources to search: ["kb", "catalog", "incident"] (default: all)'},limit:{type:"number",description:"Max results (default: 10)"}},required:["query"]}},{name:"generate_summary",description:"Generate an AI summary of any record using Now Assist (latest release: sn_assist/skill/summarize)",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g., "incident", "change_request")'},sys_id:{type:"string",description:"System ID of the record"}},required:["table","sys_id"]}},{name:"suggest_resolution",description:"Get AI-powered resolution suggestion for an incident based on similar past incidents",inputSchema:{type:"object",properties:{incident_sys_id:{type:"string",description:"System ID of the incident"}},required:["incident_sys_id"]}},{name:"categorize_incident",description:"Use Predictive Intelligence to predict category, assignment group, and priority (latest release: LightGBM algorithm)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Incident short description"},description:{type:"string",description:"Optional full description for better accuracy"}},required:["short_description"]}},{name:"get_virtual_agent_topics",description:"List Virtual Agent topics available in the instance (latest release: streaming VA API)",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active topics only"},category:{type:"string",description:"Filter by topic category"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"trigger_agentic_playbook",description:"Invoke an Agentic Playbook — context-aware AI agents that complete tasks autonomously ",inputSchema:{type:"object",properties:{playbook_sys_id:{type:"string",description:"System ID of the Agentic Playbook"},context:{type:"object",description:"Context key-value pairs to pass to the playbook"}},required:["playbook_sys_id"]}},{name:"get_ms_copilot_topics",description:"List VA topics exposed to Microsoft Copilot 365 via Custom Engine Agent integration ",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"generate_work_notes",description:"Generate AI-drafted work notes for a record based on its current context",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table name"},sys_id:{type:"string",description:"System ID of the record"},context:{type:"string",description:"Additional context to include in the draft"}},required:["table","sys_id"]}},{name:"get_pi_models",description:"List available Predictive Intelligence solutions (classification/similarity models)",inputSchema:{type:"object",properties:{},required:[]}},{name:"list_business_rules",description:"List business rules (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Filter by table name"},active:{type:"boolean",description:"Filter to active rules only"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_business_rule",description:"Get full details and script body of a business rule (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the business rule"}},required:["sys_id"]}},{name:"create_business_rule",description:"Create a new business rule (requires SCRIPTING_ENABLED=true). ServiceNow supports ES2021 async/await in scripts.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Rule name"},table:{type:"string",description:"Table this rule applies to"},when:{type:"string",description:'"before" | "after" | "async" | "display"'},script:{type:"string",description:"Server-side JavaScript. ServiceNow supports ES2021 (async/await, ?., ??)."},condition:{type:"string",description:"Optional condition script"},active:{type:"boolean",description:"Whether to activate the rule (default: true)"},order:{type:"number",description:"Execution order (default: 100)"}},required:["name","table","when","script"]}},{name:"update_business_rule",description:"Update a business rule (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the rule"},fields:{type:"object",description:"Key-value pairs to update (name, script, active, condition, etc.)"}},required:["sys_id","fields"]}},{name:"list_script_includes",description:"List script includes (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{query:{type:"string",description:'Filter (e.g., "nameLIKEUtil")'},active:{type:"boolean",description:"Filter to active includes"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_script_include",description:"Get full script body of a script include (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Script include sys_id or api_name"}},required:["sys_id_or_name"]}},{name:"create_script_include",description:"Create a new script include (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Script include name"},script:{type:"string",description:"Script body (class definition). ServiceNow supports ES2021."},api_name:{type:"string",description:"API name used to call this from other scripts"},access:{type:"string",description:'"public" or "package_private" (default: "public")'},active:{type:"boolean",description:"Whether to activate (default: true)"}},required:["name","script"]}},{name:"update_script_include",description:"Update a script include (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the script include"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_client_scripts",description:"List client scripts (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Filter by table name"},type:{type:"string",description:'"onLoad" | "onChange" | "onSubmit" | "onCellEdit"'},active:{type:"boolean",description:"Filter to active scripts"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_client_script",description:"Get full details and script body of a client script (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the client script"}},required:["sys_id"]}},{name:"list_changesets",description:"List update sets (changesets) (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{state:{type:"string",description:'Filter by state: "in progress", "complete", "ignore"'},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"get_changeset",description:"Get details of an update set (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Update set sys_id or name"}},required:["sys_id_or_name"]}},{name:"commit_changeset",description:"Commit an update set (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the update set"}},required:["sys_id"]}},{name:"publish_changeset",description:"Publish/export an update set to XML for deployment (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the update set"}},required:["sys_id"]}},{name:"create_client_script",description:"Create a new client script (onLoad, onChange, onSubmit, onCellEdit) (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Script name"},table:{type:"string",description:"Table this client script applies to"},type:{type:"string",description:'"onLoad" | "onChange" | "onSubmit" | "onCellEdit"'},script:{type:"string",description:"Client-side JavaScript. Use g_form, g_user, etc."},field_name:{type:"string",description:"Field name (required for onChange/onCellEdit)"},active:{type:"boolean",description:"Whether to activate the script (default: true)"},global:{type:"boolean",description:"Run script globally (default: false)"}},required:["name","table","type","script"]}},{name:"update_client_script",description:"Update an existing client script (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Client script sys_id"},fields:{type:"object",description:"Fields to update (script, active, name, type, etc.)"}},required:["sys_id","fields"]}},{name:"list_ui_policies",description:"List UI Policies for a table (field visibility, mandatory, read-only rules) (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Filter by table name"},active:{type:"boolean",description:"Filter to active policies only"},limit:{type:"number",description:"Max results (default: 25)"}},required:[]}},{name:"get_ui_policy",description:"Get full details and conditions of a UI Policy (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UI Policy sys_id"}},required:["sys_id"]}},{name:"create_ui_policy",description:"Create a new UI Policy to control field behavior dynamically (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Policy description"},table:{type:"string",description:"Table to apply this policy on"},conditions:{type:"string",description:"Encoded query conditions that trigger the policy"},script:{type:"string",description:"Optional script to run when conditions are met"},active:{type:"boolean",description:"Whether to activate immediately (default: true)"},run_scripts:{type:"boolean",description:"Run script in addition to UI actions (default: false)"}},required:["short_description","table"]}},{name:"list_ui_actions",description:"List UI Actions (buttons, context menus, related links) for a table (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Filter by table name"},type:{type:"string",description:"Filter by type: button, context_menu, related_link, list_link, list_button, list_context_menu"},active:{type:"boolean",description:"Filter to active actions only"},limit:{type:"number",description:"Max results (default: 25)"}},required:[]}},{name:"get_ui_action",description:"Get full details and script of a UI Action (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UI Action sys_id"}},required:["sys_id"]}},{name:"create_ui_action",description:"Create a new UI Action (button or link) on a form (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Button/link label visible to users"},table:{type:"string",description:"Table to add this action on"},action_name:{type:"string",description:"Internal action name (no spaces)"},script:{type:"string",description:"Server-side script to execute when clicked"},type:{type:"string",description:'"button" | "context_menu" | "related_link" | "list_button"'},condition:{type:"string",description:"Condition to show/hide the action"},active:{type:"boolean",description:"Whether to activate immediately (default: true)"},form_button:{type:"boolean",description:"Show on form (default: true)"},list_button:{type:"boolean",description:"Show on list (default: false)"}},required:["name","table","action_name"]}},{name:"update_ui_action",description:"Update an existing UI Action (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UI Action sys_id"},fields:{type:"object",description:"Fields to update (name, script, active, condition, etc.)"}},required:["sys_id","fields"]}},{name:"list_acls",description:"List Access Control rules (ACLs) — who can read/write/create/delete records (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Filter ACLs by table name"},operation:{type:"string",description:"Filter by operation: read, write, create, delete, execute"},active:{type:"boolean",description:"Filter to active ACLs only"},limit:{type:"number",description:"Max results (default: 25)"}},required:[]}},{name:"get_acl",description:"Get full details of an ACL rule including its script and role requirements (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"ACL sys_id"}},required:["sys_id"]}},{name:"create_acl",description:"Create a new ACL rule to control access to a table or field (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:'ACL name (typically "table.field" or "table.*")'},type:{type:"string",description:'"record" | "field" | "rest_endpoint" | "soap_endpoint"'},operation:{type:"string",description:'"read" | "write" | "create" | "delete" | "execute"'},admin_overrides:{type:"boolean",description:"Allow admin to override (default: true)"},active:{type:"boolean",description:"Whether to activate immediately (default: true)"},script:{type:"string",description:"Optional condition script (return true to allow)"},roles:{type:"string",description:'Comma-separated roles required (e.g. "admin,itil")'},description:{type:"string",description:"Description of this access rule"}},required:["name","operation"]}},{name:"update_acl",description:"Update an existing ACL rule (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"ACL sys_id"},fields:{type:"object",description:"Fields to update (active, script, roles, condition, etc.)"}},required:["sys_id","fields"]}},{name:"create_story",description:"Create a new agile story/user story (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Story title"},story_points:{type:"number",description:"Story point estimate"},sprint:{type:"string",description:"Sprint sys_id or name"},epic:{type:"string",description:"Epic sys_id"},description:{type:"string",description:"Story description and acceptance criteria"},assigned_to:{type:"string",description:"User sys_id or username"}},required:["short_description"]}},{name:"update_story",description:"Update an agile story (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the story"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_stories",description:"List agile stories with optional sprint or state filter",inputSchema:{type:"object",properties:{sprint:{type:"string",description:"Filter by sprint sys_id"},state:{type:"string",description:'Filter by state (e.g., "1"=Open, "2"=Work in Progress, "3"=Complete)'},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"create_epic",description:"Create a new epic (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Epic title"},description:{type:"string",description:"Epic description and goals"},project:{type:"string",description:"Project sys_id"}},required:["short_description"]}},{name:"update_epic",description:"Update an epic (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the epic"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_epics",description:"List epics with optional project or state filter",inputSchema:{type:"object",properties:{project:{type:"string",description:"Filter by project sys_id"},state:{type:"string",description:"Filter by state"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"create_scrum_task",description:"Create a scrum task (sub-task of a story) (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Task title"},story_sys_id:{type:"string",description:"Parent story sys_id"},assigned_to:{type:"string",description:"Assignee user_name or sys_id"}},required:["short_description"]}},{name:"update_scrum_task",description:"Update a scrum task (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the scrum task"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_scrum_tasks",description:"List scrum tasks, optionally filtered by story",inputSchema:{type:"object",properties:{story_sys_id:{type:"string",description:"Filter by parent story sys_id"},assigned_to:{type:"string",description:"Filter by assignee"},limit:{type:"number",description:"Max results (default: 20)"}},required:[]}},{name:"create_hr_case",description:"Create a new HR Service Delivery case (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief description of the HR request"},hr_service:{type:"string",description:'HR service sys_id or name (e.g. "Onboarding", "Offboarding")'},subject_person:{type:"string",description:"User sys_id or username the case is about"},description:{type:"string",description:"Full details of the HR request"},assignment_group:{type:"string",description:"HR assignment group name or sys_id"},priority:{type:"number",description:"1=Critical, 2=High, 3=Moderate, 4=Low"}},required:["short_description","hr_service"]}},{name:"get_hr_case",description:"Get full details of an HR case by number (e.g. HRCS0001234) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"HR case number (HRCS...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_hr_case",description:"Update fields on an existing HR case (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the HR case"},fields:{type:"object",description:"Key-value pairs to update"}},required:["sys_id","fields"]}},{name:"list_hr_cases",description:"List HR cases with optional filters (status, subject person, service)",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state: open, work_in_progress, closed_complete, closed_incomplete"},subject_person:{type:"string",description:"User sys_id or username to filter by"},hr_service:{type:"string",description:"HR service name or sys_id"},limit:{type:"number",description:"Max records to return (default 25)"},query:{type:"string",description:"Additional encoded query string"}},required:[]}},{name:"close_hr_case",description:"Close an HR case with resolution notes (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the HR case"},close_notes:{type:"string",description:"Resolution or closure notes"},close_code:{type:"string",description:'Closure code (e.g., "Resolved", "Withdrawn")'}},required:["sys_id","close_notes"]}},{name:"list_hr_services",description:"List available HR services (Onboarding, Offboarding, Benefits, Payroll, etc.)",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active services only (default true)"},query:{type:"string",description:"Filter by name or description"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_hr_service",description:"Get details of a specific HR service including its tasks and SLAs",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"HR service sys_id or exact name"}},required:["sys_id_or_name"]}},{name:"get_hr_profile",description:"Get the HR profile for a user (employment details, department, manager)",inputSchema:{type:"object",properties:{user_identifier:{type:"string",description:"Username, email, or sys_id of the user"}},required:["user_identifier"]}},{name:"update_hr_profile",description:"Update HR profile fields for a user (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{user_sys_id:{type:"string",description:"sys_id of the user whose profile to update"},fields:{type:"object",description:'HR profile fields to update (e.g., {"department": "Engineering"})'}},required:["user_sys_id","fields"]}},{name:"list_hr_tasks",description:"List HR tasks associated with an HR case",inputSchema:{type:"object",properties:{hr_case_sysid:{type:"string",description:"sys_id of the parent HR case"},state:{type:"string",description:"Filter by task state (open, closed)"}},required:["hr_case_sysid"]}},{name:"create_hr_task",description:"Create a task within an HR case (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{hr_case_sysid:{type:"string",description:"sys_id of the parent HR case"},short_description:{type:"string",description:"Brief description of the task"},assigned_to:{type:"string",description:"User sys_id or username to assign the task to"},due_date:{type:"string",description:"Due date in ISO 8601 format"}},required:["hr_case_sysid","short_description"]}},{name:"get_hr_case_activity",description:"Get the full activity log and journal entries for an HR case",inputSchema:{type:"object",properties:{hr_case_sysid:{type:"string",description:"sys_id of the HR case"}},required:["hr_case_sysid"]}},{name:"create_onboarding_case",description:"Create an employee onboarding case with all standard tasks. **[Write]**",inputSchema:{type:"object",properties:{employee_sys_id:{type:"string",description:"New employee user sys_id"},start_date:{type:"string",description:"Start date (ISO 8601)"},department:{type:"string",description:"Department name or sys_id"},manager:{type:"string",description:"Manager user sys_id"},location:{type:"string",description:"Office location"},job_title:{type:"string",description:"Job title"}},required:["employee_sys_id","start_date"]}},{name:"create_offboarding_case",description:"Create an employee offboarding case with exit tasks. **[Write]**",inputSchema:{type:"object",properties:{employee_sys_id:{type:"string",description:"Departing employee user sys_id"},last_day:{type:"string",description:"Last working day (ISO 8601)"},reason:{type:"string",description:"Offboarding reason (resignation, termination, retirement)"},manager:{type:"string",description:"Manager user sys_id"}},required:["employee_sys_id","last_day"]}},{name:"get_hr_lifecycle_events",description:"Get HR lifecycle events for an employee (promotions, transfers, leaves)",inputSchema:{type:"object",properties:{employee_sys_id:{type:"string",description:"Employee user sys_id"},event_type:{type:"string",description:"Filter by type: promotion, transfer, leave, onboarding, offboarding"},limit:{type:"number",description:"Max records (default 25)"}},required:["employee_sys_id"]}},{name:"list_hr_document_templates",description:"List available HR document templates (offer letters, contracts, policies)",inputSchema:{type:"object",properties:{category:{type:"string",description:"Filter by category: onboarding, offboarding, benefits, policy"},active:{type:"boolean",description:"Filter active only (default true)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"create_csm_case",description:"Create a new Customer Service case (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief summary of the customer issue"},account:{type:"string",description:"Account name or sys_id"},contact:{type:"string",description:"Contact name or sys_id (the person raising the case)"},category:{type:"string",description:'Case category (e.g., "Product", "Billing", "Technical")'},subcategory:{type:"string",description:"Case subcategory"},priority:{type:"number",description:"1=Critical, 2=High, 3=Moderate, 4=Low"},description:{type:"string",description:"Detailed description of the customer issue"},product:{type:"string",description:"Product or service sys_id related to the case"},assignment_group:{type:"string",description:"CSM assignment group"}},required:["short_description"]}},{name:"get_csm_case",description:"Get full details of a CSM case by number (e.g. CS0001234) or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Case number (CS...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_csm_case",description:"Update fields on an existing CSM case (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the CSM case"},fields:{type:"object",description:"Key-value pairs of fields to update"}},required:["sys_id","fields"]}},{name:"list_csm_cases",description:"List CSM cases with optional filters (account, contact, state, priority)",inputSchema:{type:"object",properties:{account:{type:"string",description:"Filter by account name or sys_id"},contact:{type:"string",description:"Filter by contact name or sys_id"},state:{type:"string",description:"Filter by state (open, resolved, closed)"},priority:{type:"number",description:"Filter by priority (1-4)"},limit:{type:"number",description:"Max records to return (default 25)"},query:{type:"string",description:"Additional encoded query"}},required:[]}},{name:"close_csm_case",description:"Close a CSM case with resolution details (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the CSM case"},resolution_code:{type:"string",description:"How the case was resolved"},resolution_notes:{type:"string",description:"Detailed resolution notes"}},required:["sys_id","resolution_notes"]}},{name:"get_csm_account",description:"Get details of a customer account including contacts and open cases count",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:"Account name or sys_id"}},required:["name_or_sysid"]}},{name:"list_csm_accounts",description:"List customer accounts with optional search filter",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search accounts by name"},active:{type:"boolean",description:"Filter to active accounts only (default true)"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_csm_contact",description:"Get details of a customer contact (name, account, phone, email)",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:"Contact name, email, or sys_id"}},required:["name_or_sysid"]}},{name:"list_csm_contacts",description:"List contacts for an account or search across all contacts",inputSchema:{type:"object",properties:{account_sysid:{type:"string",description:"Filter contacts by account sys_id"},query:{type:"string",description:"Search by name or email"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_csm_case_sla",description:"Get SLA details and remaining time for a CSM case",inputSchema:{type:"object",properties:{case_sysid:{type:"string",description:"sys_id of the CSM case"}},required:["case_sysid"]}},{name:"list_csm_products",description:"List products and services available in the CSM catalog",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search products by name"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"create_security_incident",description:"Create a Security Operations incident (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Brief description of the security event"},category:{type:"string",description:'Incident category (e.g., "Malware", "Phishing", "Data Breach", "Unauthorized Access")'},subcategory:{type:"string",description:"Incident subcategory"},severity:{type:"number",description:"1=High, 2=Medium, 3=Low"},description:{type:"string",description:"Detailed description of the security incident"},affected_cis:{type:"array",items:{type:"string"},description:"List of affected CI sys_ids"},assignment_group:{type:"string",description:"SOC team or assignment group"}},required:["short_description","category"]}},{name:"get_security_incident",description:"Get full details of a security incident by number or sys_id",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Security incident number (SIR...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_security_incident",description:"Update a security incident record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the security incident"},fields:{type:"object",description:"Fields to update (state, severity, containment_status, etc.)"}},required:["sys_id","fields"]}},{name:"list_security_incidents",description:"List security incidents with filters (severity, state, category)",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state (open, analysis, contain, eradicate, recover, review, closed)"},severity:{type:"number",description:"Filter by severity (1=High, 2=Medium, 3=Low)"},category:{type:"string",description:"Filter by incident category"},limit:{type:"number",description:"Max records to return (default 25)"},query:{type:"string",description:"Additional encoded query string"}},required:[]}},{name:"list_vulnerabilities",description:"List vulnerability entries from the Vulnerability Response module",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state (open, in_review, risk_accepted, closed)"},severity:{type:"string",description:"Filter by CVSS severity (critical, high, medium, low)"},ci_sysid:{type:"string",description:"Filter by affected CI sys_id"},limit:{type:"number",description:"Max records to return (default 25)"},query:{type:"string",description:"Additional encoded query string"}},required:[]}},{name:"get_vulnerability",description:"Get details of a specific vulnerability entry including CVSS score and affected CIs",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Vulnerability number (VIT...) or sys_id"}},required:["number_or_sysid"]}},{name:"update_vulnerability",description:"Update a vulnerability entry (state, risk acceptance notes, remediation date) (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"System ID of the vulnerability entry"},fields:{type:"object",description:"Fields to update (state, risk_acceptance_notes, remediation_date, etc.)"}},required:["sys_id","fields"]}},{name:"list_grc_risks",description:"List GRC (Governance, Risk, Compliance) risk entries",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by risk state (draft, assess, review, accepted, closed)"},category:{type:"string",description:"Filter by risk category"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_grc_risk",description:"Get details of a GRC risk including impact, likelihood, and controls",inputSchema:{type:"object",properties:{number_or_sysid:{type:"string",description:"Risk number or sys_id"}},required:["number_or_sysid"]}},{name:"list_grc_controls",description:"List GRC controls with optional filter by risk or policy",inputSchema:{type:"object",properties:{risk_sysid:{type:"string",description:"Filter controls by related risk sys_id"},state:{type:"string",description:"Filter by control state (draft, attest, review, exception, compliant, non_compliant)"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_threat_intelligence",description:"Query threat intelligence data — IOCs, threat actors, and campaigns",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search term (IP, domain, hash, actor name)"},type:{type:"string",description:"Filter by IOC type: ip_address, domain, file_hash, url, email"},limit:{type:"number",description:"Max records to return (default 25)"}},required:["query"]}},{name:"list_security_playbooks",description:"List available security response playbooks",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter active only (default true)"},category:{type:"string",description:"Filter by category (incident_response, threat_hunting, compliance)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"run_security_playbook",description:"Execute a security response playbook against an incident. **[Write]**",inputSchema:{type:"object",properties:{playbook_sys_id:{type:"string",description:"Playbook sys_id to execute"},incident_sys_id:{type:"string",description:"Security incident sys_id to run against"},parameters:{type:"object",description:"Optional playbook input parameters"}},required:["playbook_sys_id","incident_sys_id"]}},{name:"get_security_dashboard",description:"Get security posture dashboard — open incidents by severity, vulnerability counts, mean time to resolve",inputSchema:{type:"object",properties:{days:{type:"number",description:"Look-back period in days (default 30)"}},required:[]}},{name:"scan_vulnerabilities",description:"Trigger a vulnerability scan for specified CIs or groups. **[Write]**",inputSchema:{type:"object",properties:{ci_sys_ids:{type:"array",items:{type:"string"},description:"CI sys_ids to scan"},group:{type:"string",description:"CI group to scan (alternative to ci_sys_ids)"},scan_type:{type:"string",description:"Scan type: full, quick, compliance (default full)"}},required:[]}},{name:"create_grc_risk",description:"Create a new GRC risk entry. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Risk name"},category:{type:"string",description:"Risk category"},description:{type:"string",description:"Risk description"},impact:{type:"number",description:"Impact score (1-5)"},likelihood:{type:"number",description:"Likelihood score (1-5)"},owner:{type:"string",description:"Risk owner user sys_id"}},required:["name","category"]}},{name:"list_compliance_policies",description:"List GRC compliance policies and their current status",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state (draft, published, retired)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"get_compliance_assessment",description:"Get compliance assessment results for a policy or control",inputSchema:{type:"object",properties:{policy_sys_id:{type:"string",description:"Policy sys_id"},control_sys_id:{type:"string",description:"Control sys_id (alternative to policy)"}},required:[]}},{name:"list_audit_results",description:"List audit results and findings",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state (open, in_progress, closed)"},severity:{type:"string",description:"Filter by severity (critical, high, medium, low)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"list_flows",description:"List Flow Designer flows with optional filter by name, category, or active status",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search flows by name or description"},active:{type:"boolean",description:"Filter to active flows only (default true)"},category:{type:"string",description:'Filter by category (e.g., "ITSM", "HR", "Security")'},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_flow",description:"Get full details of a Flow Designer flow including its actions and trigger",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:"Flow name or sys_id"}},required:["name_or_sysid"]}},{name:"trigger_flow",description:"Trigger a Flow Designer flow with optional input parameters (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{flow_sys_id:{type:"string",description:"sys_id of the flow to trigger"},inputs:{type:"object",description:"Key-value pairs for flow input variables"}},required:["flow_sys_id"]}},{name:"get_flow_execution",description:"Get the status and details of a specific flow execution",inputSchema:{type:"object",properties:{execution_sysid:{type:"string",description:"sys_id of the flow execution to inspect"}},required:["execution_sysid"]}},{name:"list_flow_executions",description:"List recent executions of a flow with status (completed, error, running)",inputSchema:{type:"object",properties:{flow_sys_id:{type:"string",description:"sys_id of the parent flow"},status:{type:"string",description:"Filter by status: running, complete, error, cancelled"},limit:{type:"number",description:"Max records to return (default 25)"}},required:["flow_sys_id"]}},{name:"list_subflows",description:"List available subflows that can be reused across flows",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search subflows by name"},active:{type:"boolean",description:"Filter to active subflows only (default true)"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_subflow",description:"Get full details of a subflow including its inputs, outputs, and actions",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:"Subflow name or sys_id"}},required:["name_or_sysid"]}},{name:"list_action_instances",description:"List reusable Flow Designer action instances available in the environment",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search actions by name or category"},category:{type:"string",description:'Filter by action category (e.g., "ServiceNow Core", "Integrations")'},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_process_automation",description:"Get details of a Process Automation Designer playbook or process",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:"Playbook or process name or sys_id"}},required:["name_or_sysid"]}},{name:"list_process_automations",description:"List Process Automation Designer playbooks and processes",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name or description"},active:{type:"boolean",description:"Filter to active processes only (default true)"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"create_flow",description:"Create a new Flow Designer flow. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Flow name"},description:{type:"string",description:"Flow description"},trigger_type:{type:"string",description:"Trigger type: record, schedule, inbound_email, rest (default record)"},trigger_table:{type:"string",description:"Trigger table (for record triggers)"},scope:{type:"string",description:"Application scope"}},required:["name"]}},{name:"create_subflow",description:"Create a new reusable subflow. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Subflow name"},description:{type:"string",description:"Subflow description"},inputs:{type:"array",items:{type:"object"},description:"Input variable definitions [{name, type, mandatory}]"},scope:{type:"string",description:"Application scope"}},required:["name"]}},{name:"create_flow_action",description:"Create a custom Flow Designer action. **[Scripting]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Action name"},description:{type:"string",description:"Action description"},inputs:{type:"array",items:{type:"object"},description:"Input definitions [{name, type, mandatory}]"},outputs:{type:"array",items:{type:"object"},description:"Output definitions [{name, type}]"},script:{type:"string",description:"Action script body"}},required:["name"]}},{name:"publish_flow",description:"Publish (activate) a draft flow or subflow. **[Write]**",inputSchema:{type:"object",properties:{flow_sys_id:{type:"string",description:"Flow or subflow sys_id to publish"},type:{type:"string",description:"Type: flow or subflow (default flow)"}},required:["flow_sys_id"]}},{name:"test_flow",description:"Execute a flow in test mode with sample inputs. **[Write]**",inputSchema:{type:"object",properties:{flow_sys_id:{type:"string",description:"Flow sys_id to test"},test_inputs:{type:"object",description:"Test input values"}},required:["flow_sys_id"]}},{name:"get_flow_error_log",description:"Get detailed error logs for failed flow executions",inputSchema:{type:"object",properties:{flow_sys_id:{type:"string",description:"Flow sys_id"},days:{type:"number",description:"Look-back period in days (default 7)"},limit:{type:"number",description:"Max records (default 25)"}},required:["flow_sys_id"]}},{name:"list_portals",description:"List all Service Portal configurations available in the instance",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search portals by title or url_suffix"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"create_portal",description:"Create a new Service Portal configuration (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{title:{type:"string",description:"Human-readable portal title"},url_suffix:{type:"string",description:'URL path segment for the portal (e.g. "myportal" → /myportal)'},default_homepage:{type:"string",description:"sys_id of the default homepage sp_page record"},theme:{type:"string",description:"sys_id of the sp_theme to apply"},logo:{type:"string",description:"sys_id of the logo attachment record"},description:{type:"string",description:"Short description of the portal"}},required:["title","url_suffix"]}},{name:"create_portal_page",description:"Create a new page inside a Service Portal (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{title:{type:"string",description:"Page title"},id:{type:"string",description:'Unique page ID used in the URL (e.g. "my-page")'},portal_sys_id:{type:"string",description:"sys_id of the parent Service Portal"},description:{type:"string",description:"Brief description of the page purpose"}},required:["title","id","portal_sys_id"]}},{name:"get_portal",description:"Get full configuration details of a Service Portal by sys_id or URL suffix",inputSchema:{type:"object",properties:{id:{type:"string",description:'Portal sys_id or url_suffix (e.g. "sp", "itsm")'}},required:["id"]}},{name:"list_portal_pages",description:"List pages that belong to a Service Portal",inputSchema:{type:"object",properties:{portal_sys_id:{type:"string",description:"sys_id of the parent portal"},query:{type:"string",description:"Filter pages by title or id"},limit:{type:"number",description:"Max records to return (default 50)"}},required:["portal_sys_id"]}},{name:"get_portal_page",description:"Get details of a specific Service Portal page including its layout",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Page sys_id"}},required:["sys_id"]}},{name:"list_portal_widgets",description:"List Service Portal widgets with optional search by name or category",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search widgets by name or description"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_portal_widget",description:"Get full source code (HTML, CSS, client/server scripts) of a Service Portal widget",inputSchema:{type:"object",properties:{id_or_sysid:{type:"string",description:'Widget sys_id or id field (e.g. "widget-cool-clock")'}},required:["id_or_sysid"]}},{name:"create_portal_widget",description:"Create a new Service Portal widget with template, CSS, and scripts (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Human-readable widget name"},id:{type:"string",description:'Unique widget ID/handle (e.g. "my-custom-widget")'},template:{type:"string",description:"Angular HTML template"},css:{type:"string",description:"SCSS/CSS styles"},client_script:{type:"string",description:"Client-side controller JavaScript"},server_script:{type:"string",description:"Server-side script (GlideRecord calls)"},option_schema:{type:"string",description:"JSON array defining widget options"},demo_data:{type:"string",description:"JSON object with demo data for preview"}},required:["name","id"]}},{name:"update_portal_widget",description:"Update an existing Service Portal widget's source code (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Widget sys_id"},fields:{type:"object",description:"Fields to update: template, css, client_script, server_script, name, etc."}},required:["sys_id","fields"]}},{name:"list_widget_instances",description:"List instances of a specific widget placed on portal pages",inputSchema:{type:"object",properties:{widget_sys_id:{type:"string",description:"Widget sys_id to find instances of"},limit:{type:"number",description:"Max records to return (default 25)"}},required:["widget_sys_id"]}},{name:"list_ux_apps",description:"List Next Experience (UI Builder) applications",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search apps by name"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_ux_app",description:"Get configuration details of a Next Experience application",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"App sys_id or name"}},required:["sys_id_or_name"]}},{name:"list_ux_pages",description:"List pages within a Next Experience (UI Builder) application",inputSchema:{type:"object",properties:{app_sys_id:{type:"string",description:"Parent UX app sys_id"},query:{type:"string",description:"Filter pages by name"},limit:{type:"number",description:"Max records to return (default 50)"}},required:["app_sys_id"]}},{name:"list_portal_themes",description:"List Service Portal themes (color palettes, CSS variables)",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_portal_theme",description:"Get full details of a Service Portal theme including CSS variables",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Theme sys_id"}},required:["sys_id"]}},{name:"list_rest_messages",description:"List outbound REST Message configurations (integrations with external APIs)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name or description"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_rest_message",description:"Get full configuration of an outbound REST Message including its endpoints",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"REST Message sys_id or name"}},required:["sys_id_or_name"]}},{name:"list_rest_message_functions",description:"List HTTP methods (functions) defined within a REST Message",inputSchema:{type:"object",properties:{rest_message_sys_id:{type:"string",description:"Parent REST Message sys_id"},limit:{type:"number",description:"Max records to return (default 25)"}},required:["rest_message_sys_id"]}},{name:"create_rest_message",description:"Create a new outbound REST Message definition (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Unique REST Message name"},endpoint:{type:"string",description:'Base URL endpoint (e.g. "https://api.example.com/v1")'},description:{type:"string",description:"Purpose/description of this integration"},use_mutual_auth:{type:"boolean",description:"Whether to use mutual TLS authentication"},authentication_type:{type:"string",description:'Auth type: "no_authentication", "basic", "oauth2"'}},required:["name","endpoint"]}},{name:"list_transform_maps",description:"List Transform Maps used for importing data into ServiceNow tables",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name or target table"},target_table:{type:"string",description:'Filter by target table name (e.g. "incident")'},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_transform_map",description:"Get details of a Transform Map including its field mappings",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Transform Map sys_id or name"}},required:["sys_id_or_name"]}},{name:"run_transform_map",description:"Execute a Transform Map on an Import Set to load data (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{transform_map_sys_id:{type:"string",description:"sys_id of the Transform Map to run"},import_set_sys_id:{type:"string",description:"sys_id of the Import Set containing source data"}},required:["transform_map_sys_id","import_set_sys_id"]}},{name:"list_transform_field_maps",description:"List field-level mappings within a Transform Map",inputSchema:{type:"object",properties:{transform_map_sys_id:{type:"string",description:"Parent Transform Map sys_id"},limit:{type:"number",description:"Max records to return (default 50)"}},required:["transform_map_sys_id"]}},{name:"list_import_sets",description:"List Import Sets with optional filter by state or staging table",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state: loaded, partial, transform_failed, complete"},query:{type:"string",description:"Additional encoded query string"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_import_set",description:"Get details of a specific Import Set including row count and transform status",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Import Set sys_id"}},required:["sys_id"]}},{name:"create_import_set_row",description:"Insert a row into an Import Set staging table for later transformation (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{staging_table:{type:"string",description:'Staging table name (e.g. "u_import_incident"). Must already exist.'},data:{type:"object",description:"Key-value pairs for the staging table row"}},required:["staging_table","data"]}},{name:"list_data_sources",description:"List Import Set data source definitions (file/JDBC/REST loaders)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name"},type:{type:"string",description:"Filter by type: file, jdbc, ldap, rest"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_event_registry",description:"List registered event definitions in the ServiceNow event registry",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search events by name or description"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_event_registry_entry",description:"Get details of a specific registered event definition",inputSchema:{type:"object",properties:{name_or_sysid:{type:"string",description:'Event name (e.g. "incident.created") or sys_id'}},required:["name_or_sysid"]}},{name:"register_event",description:"Register a new custom event in the event registry (requires SCRIPTING_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:'Unique event name (e.g. "my_app.record_created")'},description:{type:"string",description:"Description of when this event fires"},table:{type:"string",description:'Table that fires this event (e.g. "incident")'}},required:["name","table"]}},{name:"fire_event",description:"Fire a custom ServiceNow event for a specific record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{event_name:{type:"string",description:"Event name to fire (must be registered)"},table:{type:"string",description:"Table name of the target record"},record_sys_id:{type:"string",description:"sys_id of the record to fire the event on"},parm1:{type:"string",description:"Optional first parameter passed to event handlers"},parm2:{type:"string",description:"Optional second parameter passed to event handlers"}},required:["event_name","table","record_sys_id"]}},{name:"list_event_log",description:"List recent event log entries (fired events and their processing status)",inputSchema:{type:"object",properties:{event_name:{type:"string",description:"Filter by event name"},state:{type:"string",description:"Filter by state: ready, processing, processed, error, transferred"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"list_oauth_applications",description:"List OAuth application registry entries (client applications that can authenticate)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name or client ID"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_credential_aliases",description:"List connection and credential aliases used by integrations",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by name"},type:{type:"string",description:"Filter by type: basic, oauth2, api_key, certificate"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_notifications",description:"List email notification definitions (sysevent_email_action)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search notifications by name"},table:{type:"string",description:'Filter by target table (e.g. "incident")'},event:{type:"string",description:"Filter by event trigger name"},active:{type:"boolean",description:"Filter to active notifications only"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_notification",description:"Get full details of an email notification definition including template and conditions",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Notification sys_id or name"}},required:["sys_id_or_name"]}},{name:"create_notification",description:"Create a new email notification definition (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Notification name"},table:{type:"string",description:'Table that triggers this notification (e.g. "incident")'},event:{type:"string",description:'Event name that fires this notification (e.g. "incident.commented")'},subject:{type:"string",description:"Email subject line (supports ${field} variables)"},message_html:{type:"string",description:"HTML body of the email notification"},recipients:{type:"string",description:'Who receives the email (e.g. "assigned_to", "watch_list")'},active:{type:"boolean",description:"Whether to activate immediately (default true)"},condition:{type:"string",description:"Additional filter condition script"}},required:["name","table"]}},{name:"update_notification",description:"Update an existing email notification (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Notification sys_id"},fields:{type:"object",description:"Fields to update: name, subject, message_html, active, condition, etc."}},required:["sys_id","fields"]}},{name:"list_email_logs",description:"List outbound email log entries to track sent/failed emails",inputSchema:{type:"object",properties:{state:{type:"string",description:"Filter by state: sent, failed, ready, sending, ignored"},recipient:{type:"string",description:"Filter by recipient email address"},subject:{type:"string",description:"Filter emails by subject (partial match)"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_email_log",description:"Get full details of an email log entry including body and headers",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Email log sys_id"}},required:["sys_id"]}},{name:"list_attachments",description:"List attachments associated with a specific record",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g. "incident")'},record_sys_id:{type:"string",description:"sys_id of the record whose attachments to list"},limit:{type:"number",description:"Max records to return (default 25)"}},required:["table","record_sys_id"]}},{name:"get_attachment_metadata",description:"Get metadata (name, type, size) of a specific attachment by its sys_id",inputSchema:{type:"object",properties:{attachment_sys_id:{type:"string",description:"Attachment sys_id"}},required:["attachment_sys_id"]}},{name:"delete_attachment",description:"Delete an attachment from a record (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{attachment_sys_id:{type:"string",description:"sys_id of the attachment to delete"}},required:["attachment_sys_id"]}},{name:"upload_attachment",description:"Upload a base64-encoded attachment to a ServiceNow record (requires WRITE_ENABLED=true). Useful for adding files, screenshots, or documents to incidents, changes, etc.",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name (e.g. "incident")'},record_sys_id:{type:"string",description:"sys_id of the record to attach the file to"},file_name:{type:"string",description:'File name including extension (e.g. "screenshot.png")'},content_type:{type:"string",description:'MIME type (e.g. "image/png", "application/pdf", "text/plain", "application/json")'},content_base64:{type:"string",description:"Base64-encoded file content (use standard base64 encoding)"}},required:["table","record_sys_id","file_name","content_type","content_base64"]}},{name:"list_email_templates",description:"List email notification templates used by notifications",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search templates by name"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_notification_subscriptions",description:"List user subscriptions to notifications (who has opted in/out)",inputSchema:{type:"object",properties:{user_sys_id:{type:"string",description:"User sys_id to list their subscriptions"},notification_sys_id:{type:"string",description:"Filter by specific notification"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"send_emergency_broadcast",description:"[Write] Send emergency broadcast notification to users or groups",inputSchema:{type:"object",properties:{subject:{type:"string",description:"Broadcast subject"},body:{type:"string",description:"Message body"},recipients:{type:"string",description:"Comma-separated user/group sys_ids"},channels:{type:"string",description:"Delivery channels: email,sms,push"}},required:["subject","body","recipients"]}},{name:"schedule_notification",description:"[Write] Schedule a notification for future delivery",inputSchema:{type:"object",properties:{notification_id:{type:"string",description:"Notification rule sys_id"},schedule:{type:"string",description:"Cron expression or ISO date"},active:{type:"boolean",description:"Whether the notification is active"}},required:["notification_id","schedule"]}},{name:"list_pa_indicators",description:"List Performance Analytics (PA) indicators (KPIs) available in the instance",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search indicators by name or description"},category:{type:"string",description:"Filter by indicator category"},active:{type:"boolean",description:"Filter to active indicators only (default true)"},limit:{type:"number",description:"Max records to return (default 50)"}},required:[]}},{name:"get_pa_indicator",description:"Get details of a specific Performance Analytics indicator including its formula",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Indicator sys_id or name"}},required:["sys_id_or_name"]}},{name:"get_pa_scorecard",description:"Get current scorecard data for a PA indicator — returns current value, target, trend direction",inputSchema:{type:"object",properties:{indicator_sys_id:{type:"string",description:"PA indicator sys_id"},breakdown_sys_id:{type:"string",description:"Optional breakdown (dimension) sys_id to segment data by group"},period:{type:"string",description:"Time period: last_7_days, last_30_days, last_quarter, last_year (default: last_30_days)"},include_scores:{type:"boolean",description:"Include individual score records (default false)"}},required:["indicator_sys_id"]}},{name:"get_pa_time_series",description:"Get historical time-series data for a PA indicator to identify trends",inputSchema:{type:"object",properties:{indicator_sys_id:{type:"string",description:"PA indicator sys_id"},start_date:{type:"string",description:"Start date in YYYY-MM-DD format (default: 30 days ago)"},end_date:{type:"string",description:"End date in YYYY-MM-DD format (default: today)"},limit:{type:"number",description:"Max data points to return (default 100)"}},required:["indicator_sys_id"]}},{name:"list_pa_breakdowns",description:"List PA breakdowns (dimensions) available for segmenting indicator data",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search breakdowns by name"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_pa_dashboards",description:"List Performance Analytics dashboards",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search dashboards by name"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_pa_dashboard",description:"Get details of a PA dashboard including its widgets/tabs",inputSchema:{type:"object",properties:{sys_id_or_name:{type:"string",description:"Dashboard sys_id or name"}},required:["sys_id_or_name"]}},{name:"list_homepages",description:"List homepage dashboards (CMS content pages used as homepages)",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search by title"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"list_pa_jobs",description:"List Performance Analytics data collection jobs and their schedules",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active jobs only (default true)"},query:{type:"string",description:"Search by name"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_pa_job",description:"Get details of a Performance Analytics collection job",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"PA job sys_id"}},required:["sys_id"]}},{name:"create_dashboard",description:"Create a new Performance Analytics dashboard (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Dashboard name"},description:{type:"string",description:"Brief description of the dashboard"},roles:{type:"string",description:"Comma-separated roles that can view this dashboard (leave blank for all)"},active:{type:"boolean",description:"Activate the dashboard immediately (default: true)"}},required:["name"]}},{name:"update_dashboard",description:"Update an existing PA dashboard (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Dashboard sys_id"},fields:{type:"object",description:"Fields to update (name, description, roles, active, etc.)"}},required:["sys_id","fields"]}},{name:"check_table_completeness",description:"Analyze data quality and field completeness for a ServiceNow table — returns percentage of non-empty values per field",inputSchema:{type:"object",properties:{table:{type:"string",description:'Table name to analyze (e.g. "incident", "cmdb_ci_server")'},fields:{type:"string",description:'Comma-separated field names to check (e.g. "assigned_to,priority,category")'},query:{type:"string",description:'Optional encoded query to scope the analysis (e.g. "active=true")'},sample_size:{type:"number",description:"Number of records to sample (default 100, max 500)"}},required:["table","fields"]}},{name:"get_table_record_count",description:"Get total record count for a ServiceNow table with optional filters",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table name"},query:{type:"string",description:"Optional encoded query to count a subset"}},required:["table"]}},{name:"compare_record_counts",description:"Compare record counts across multiple ServiceNow tables or time periods — useful for capacity planning",inputSchema:{type:"object",properties:{tables:{type:"array",items:{type:"string"},description:'List of table names to compare (e.g. ["incident", "change_request", "problem"])'},query:{type:"string",description:"Optional query to apply to all tables"}},required:["tables"]}},{name:"get_system_property",description:"Get a ServiceNow system property value and metadata by name",inputSchema:{type:"object",properties:{name:{type:"string",description:'Property name (e.g. "glide.smtp.host")'}},required:["name"]}},{name:"set_system_property",description:"Create or update a ServiceNow system property value. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Property name"},value:{type:"string",description:"Property value"},description:{type:"string",description:"Optional description"},type:{type:"string",description:"Property type: string, integer, boolean, choice, password2, etc."}},required:["name","value"]}},{name:"list_system_properties",description:"List system properties with optional filtering",inputSchema:{type:"object",properties:{query:{type:"string",description:"Encoded query to filter properties"},category:{type:"string",description:'Filter by category (e.g. "email", "security")'},type:{type:"string",description:'Filter by type (e.g. "boolean", "string")'},limit:{type:"number",description:"Max records (default 50)"}},required:[]}},{name:"delete_system_property",description:"Delete a system property by name. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Property name to delete"}},required:["name"]}},{name:"search_system_properties",description:"Search system properties by name, value, or description",inputSchema:{type:"object",properties:{search:{type:"string",description:"Search text matched against name, value, and description"},limit:{type:"number",description:"Max results (default 20)"}},required:["search"]}},{name:"bulk_get_properties",description:"Retrieve multiple system property values in a single call",inputSchema:{type:"object",properties:{names:{type:"array",items:{type:"string"},description:"Array of property names to retrieve"}},required:["names"]}},{name:"bulk_set_properties",description:"Create or update multiple system properties in a single operation. **[Write]**",inputSchema:{type:"object",properties:{properties:{type:"array",description:"Array of {name, value, description?} objects",items:{type:"object",properties:{name:{type:"string"},value:{type:"string"},description:{type:"string"}},required:["name","value"]}}},required:["properties"]}},{name:"export_properties",description:"Export system properties matching a query to a JSON object (useful for environment snapshots)",inputSchema:{type:"object",properties:{category:{type:"string",description:"Filter by category"},query:{type:"string",description:"Encoded query filter"}},required:[]}},{name:"import_properties",description:"Import (create or update) system properties from a JSON object. **[Write]**",inputSchema:{type:"object",properties:{properties:{type:"object",description:'Key-value map of property names to values (e.g. {"glide.smtp.host": "smtp.example.com"})'},dry_run:{type:"boolean",description:"If true, show what would be changed without writing (default false)"}},required:["properties"]}},{name:"validate_property",description:"Validate a property value against its declared type constraints without saving",inputSchema:{type:"object",properties:{name:{type:"string",description:"Property name"},value:{type:"string",description:"Value to validate"}},required:["name","value"]}},{name:"list_property_categories",description:"List all unique property categories with their record counts",inputSchema:{type:"object",properties:{},required:[]}},{name:"get_property_history",description:"Get audit history of changes to a system property",inputSchema:{type:"object",properties:{name:{type:"string",description:"Property name"},limit:{type:"number",description:"Max audit records (default 20)"}},required:["name"]}},{name:"get_current_update_set",description:"Get the currently active Update Set for the session",inputSchema:{type:"object",properties:{},required:[]}},{name:"list_update_sets",description:"List Update Sets by state (in progress, complete, ignore)",inputSchema:{type:"object",properties:{state:{type:"string",description:'State filter: "in progress", "complete", "ignore"'},query:{type:"string",description:"Additional encoded query filter"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"create_update_set",description:"Create a new Update Set and optionally switch to it. **[Scripting]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Update Set name"},description:{type:"string",description:"Purpose or description"},release:{type:"string",description:"Target release label"},switch_to:{type:"boolean",description:"Switch to this Update Set after creation (default true)"}},required:["name"]}},{name:"switch_update_set",description:"Switch the active Update Set context to a specified Update Set. **[Scripting]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"sys_id of the target Update Set"}},required:["sys_id"]}},{name:"complete_update_set",description:"Mark an Update Set as complete (ready for migration). **[Scripting]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Update Set sys_id"}},required:["sys_id"]}},{name:"preview_update_set",description:"Preview all changes contained in an Update Set",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Update Set sys_id"},limit:{type:"number",description:"Max records to list (default 100)"}},required:["sys_id"]}},{name:"export_update_set",description:"Get the XML export payload for an Update Set (as used in migration). **[Scripting]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Update Set sys_id"}},required:["sys_id"]}},{name:"ensure_active_update_set",description:"Ensure an active Update Set exists; create one automatically if none is in progress. **[Scripting]**",inputSchema:{type:"object",properties:{default_name:{type:"string",description:'Name to use when auto-creating (default: "AI Session Update Set")'}},required:[]}},{name:"create_va_topic",description:"Create a new Virtual Agent conversation topic. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Topic name (display name)"},description:{type:"string",description:"What this topic handles"},category:{type:"string",description:"Topic category sys_id"},active:{type:"boolean",description:"Activate immediately (default true)"},fulfillment_type:{type:"string",description:'Fulfillment type: "itsm_integration", "custom", "web_service"'}},required:["name"]}},{name:"update_va_topic",description:"Update a Virtual Agent topic properties. **[Write]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Topic sys_id"},fields:{type:"object",description:"Fields to update (name, description, active, etc.)"}},required:["sys_id","fields"]}},{name:"get_va_topic",description:"Get Virtual Agent topic details including intent and trigger phrases",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Topic sys_id"}},required:["sys_id"]}},{name:"list_va_topics_full",description:"List all Virtual Agent topics with category and status details",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active topics only (default true)"},category:{type:"string",description:"Filter by category name"},query:{type:"string",description:"Additional encoded query"},limit:{type:"number",description:"Max results (default 50)"}},required:[]}},{name:"get_va_conversation",description:"Get conversation history for a Virtual Agent session",inputSchema:{type:"object",properties:{conversation_id:{type:"string",description:"Conversation sys_id or session ID"},limit:{type:"number",description:"Max messages (default 50)"}},required:["conversation_id"]}},{name:"list_va_conversations",description:"List recent Virtual Agent conversations",inputSchema:{type:"object",properties:{topic_sys_id:{type:"string",description:"Filter by topic"},user_sys_id:{type:"string",description:"Filter by user"},limit:{type:"number",description:"Max results (default 25)"}},required:[]}},{name:"list_va_categories",description:"List Virtual Agent topic categories",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max results (default 25)"}},required:[]}},{name:"list_assets",description:"List IT assets with optional filtering by state, class, or assigned user",inputSchema:{type:"object",properties:{asset_class:{type:"string",description:'Asset class: "alm_hardware", "alm_license", "alm_consumable"'},state:{type:"string",description:'Asset state: "in_use", "in_stock", "retired", "missing"'},assigned_to:{type:"string",description:"User sys_id to filter by assignee"},location:{type:"string",description:"Location name or sys_id"},query:{type:"string",description:"Additional encoded query"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"get_asset",description:"Get full details of an IT asset including financial and lifecycle data",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Asset sys_id"}},required:["sys_id"]}},{name:"create_asset",description:"Create a new IT asset record. **[Write]**",inputSchema:{type:"object",properties:{display_name:{type:"string",description:"Asset display name"},asset_tag:{type:"string",description:"Unique asset tag"},model_category:{type:"string",description:"Category sys_id (Hardware, Software, etc.)"},model:{type:"string",description:"Model sys_id"},serial_number:{type:"string",description:"Serial number"},assigned_to:{type:"string",description:"User sys_id"},location:{type:"string",description:"Location sys_id"},cost:{type:"number",description:"Purchase cost"},cost_center:{type:"string",description:"Cost center sys_id"},purchase_date:{type:"string",description:"Purchase date (YYYY-MM-DD)"}},required:["display_name"]}},{name:"update_asset",description:"Update an IT asset record. **[Write]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Asset sys_id"},fields:{type:"object",description:"Fields to update"}},required:["sys_id","fields"]}},{name:"retire_asset",description:"Retire an IT asset (mark as disposed/retired). **[Write]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Asset sys_id"},disposal_reason:{type:"string",description:"Reason for retirement"},disposal_date:{type:"string",description:"Disposal date (YYYY-MM-DD)"}},required:["sys_id"]}},{name:"list_software_licenses",description:"List software license records with compliance status",inputSchema:{type:"object",properties:{query:{type:"string",description:"Encoded query filter"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"get_license_compliance",description:"Get license compliance summary — purchased vs. installed vs. in use counts",inputSchema:{type:"object",properties:{license_sys_id:{type:"string",description:"Software license sys_id (optional — omit for all)"}},required:[]}},{name:"list_asset_contracts",description:"List asset maintenance and support contracts",inputSchema:{type:"object",properties:{asset_sys_id:{type:"string",description:"Filter by linked asset"},active:{type:"boolean",description:"Filter to active contracts (default true)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"track_asset_lifecycle",description:"Track asset lifecycle events and stage transitions",inputSchema:{type:"object",properties:{asset_id:{type:"string",description:"Asset tag or sys_id"},new_stage:{type:"string",description:"Lifecycle stage: in_stock/in_use/in_maintenance/retired/disposed"},notes:{type:"string",description:"Transition notes"}},required:["asset_id","new_stage"]}},{name:"get_license_optimization",description:"Analyze software license usage and recommend optimizations",inputSchema:{type:"object",properties:{software_name:{type:"string",description:"Optional filter by software name"},threshold_pct:{type:"number",description:"Usage threshold percentage (default: 80)"}},required:[]}},{name:"list_devops_pipelines",description:"List DevOps pipeline configurations registered in ServiceNow",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter to active pipelines (default true)"},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"get_devops_pipeline",description:"Get details of a specific DevOps pipeline",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Pipeline sys_id"}},required:["sys_id"]}},{name:"list_deployments",description:"List recent application deployments tracked in ServiceNow",inputSchema:{type:"object",properties:{pipeline_sys_id:{type:"string",description:"Filter by pipeline"},environment:{type:"string",description:'Filter by environment (e.g. "prod", "staging")'},state:{type:"string",description:'Filter by state: "success", "failed", "in_progress"'},limit:{type:"number",description:"Max records (default 25)"}},required:[]}},{name:"get_deployment",description:"Get details and status of a specific deployment",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Deployment sys_id"}},required:["sys_id"]}},{name:"create_devops_change",description:"Create a change request linked to a DevOps deployment for change governance. **[Write]**",inputSchema:{type:"object",properties:{short_description:{type:"string",description:"Change short description"},pipeline:{type:"string",description:"Pipeline name or sys_id"},environment:{type:"string",description:"Target environment (prod, staging, dev)"},artifact:{type:"string",description:"Artifact name or version being deployed"},type:{type:"string",description:"Change type: normal, standard, emergency"},assigned_to:{type:"string",description:"User sys_id"},assignment_group:{type:"string",description:"Group sys_id"}},required:["short_description","environment"]}},{name:"track_deployment",description:"Record a deployment event in ServiceNow for audit and velocity tracking. **[Write]**",inputSchema:{type:"object",properties:{pipeline:{type:"string",description:"Pipeline sys_id or name"},environment:{type:"string",description:"Target environment"},artifact_name:{type:"string",description:"Artifact or application name"},artifact_version:{type:"string",description:"Version or build number"},status:{type:"string",description:"Deployment status: success, failed, rolled_back"},notes:{type:"string",description:"Deployment notes"}},required:["environment","artifact_name","status"]}},{name:"get_devops_insights",description:"Get deployment frequency, failure rate, and lead time metrics for a pipeline",inputSchema:{type:"object",properties:{pipeline_sys_id:{type:"string",description:"Pipeline sys_id (optional — all pipelines if omitted)"},days:{type:"number",description:"Number of days to analyse (default 30)"}},required:[]}},{name:"list_scoped_apps",description:"List scoped applications (custom apps) installed in the instance",inputSchema:{type:"object",properties:{query:{type:"string",description:"Search apps by name or scope prefix"},active:{type:"boolean",description:"Filter to active apps only"},limit:{type:"number",description:"Max records to return (default 25)"}},required:[]}},{name:"get_scoped_app",description:"Get full details of a scoped application by sys_id or scope name",inputSchema:{type:"object",properties:{id:{type:"string",description:'App sys_id or scope name (e.g. "x_myco_myapp")'}},required:["id"]}},{name:"create_scoped_app",description:"Create a new scoped application in App Studio (requires WRITE_ENABLED=true). The scope prefix must be unique and follow the pattern x_<vendor>_<appname>.",inputSchema:{type:"object",properties:{name:{type:"string",description:"Human-readable application name"},scope:{type:"string",description:'Unique scope prefix, e.g. "x_myco_myapp". Must start with "x_".'},version:{type:"string",description:'Application version string (e.g. "1.0.0"). Defaults to "1.0.0".'},short_description:{type:"string",description:"Short description shown in the app list"},description:{type:"string",description:"Full description of the application"},vendor:{type:"string",description:"Vendor or author name"},active:{type:"boolean",description:"Activate the app immediately (default: true)"},logo:{type:"string",description:"App logo attachment sys_id (optional)"}},required:["name","scope"]}},{name:"update_scoped_app",description:"Update an existing scoped application (requires WRITE_ENABLED=true)",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"App sys_id"},fields:{type:"object",description:"Fields to update (name, version, short_description, description, active, vendor, etc.)"}},required:["sys_id","fields"]}},{name:"ml_predict_change_risk",description:"Predict the risk level of a change request using historical ML analysis",inputSchema:{type:"object",properties:{change_sys_id:{type:"string",description:"Change request sys_id to evaluate"},type:{type:"string",description:"Change type: normal, standard, emergency"},category:{type:"string",description:"Change category"}},required:[]}},{name:"ml_detect_anomalies",description:"Run anomaly detection on operational metrics (alert volume, incident trends, etc.)",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table to analyze (e.g. incident, sn_agent_alert)"},field:{type:"string",description:"Numeric field to analyse (e.g. priority, reassignment_count)"},days:{type:"number",description:"Look-back period in days (default 30)"},threshold:{type:"number",description:"Standard deviations for anomaly threshold (default 2)"}},required:["table","field"]}},{name:"ml_forecast_incidents",description:"Forecast incident volume for the next N days based on historical trends",inputSchema:{type:"object",properties:{days_ahead:{type:"number",description:"Number of days to forecast (default 7)"},category:{type:"string",description:"Filter by category (optional)"},priority:{type:"string",description:"Filter by priority (optional)"}},required:[]}},{name:"ml_train_incident_classifier",description:"Trigger training of the incident classification ML solution. **[Write]**",inputSchema:{type:"object",properties:{solution_name:{type:"string",description:"ML solution name (default auto-detect)"}},required:[]}},{name:"ml_train_change_risk",description:"Trigger training of the change risk prediction ML model. **[Write]**",inputSchema:{type:"object",properties:{solution_name:{type:"string",description:"ML solution name (default auto-detect)"}},required:[]}},{name:"ml_train_anomaly_detector",description:"Trigger training of an anomaly detection model for a specific table/field. **[Write]**",inputSchema:{type:"object",properties:{table:{type:"string",description:"Target table for anomaly detection"},field:{type:"string",description:"Numeric field to train on"}},required:["table","field"]}},{name:"ml_evaluate_model",description:"Get accuracy, training status, and metrics for a trained ML solution",inputSchema:{type:"object",properties:{model_sys_id:{type:"string",description:"ML solution sys_id"}},required:["model_sys_id"]}},{name:"ml_model_training_history",description:"Get training run history and accuracy trends for an ML solution over time",inputSchema:{type:"object",properties:{model_sys_id:{type:"string",description:"ML solution sys_id"},days:{type:"number",description:"Look-back period (default 90)"}},required:["model_sys_id"]}},{name:"ml_virtual_agent_nlu",description:"Analyse Virtual Agent NLU performance — conversation completion rates and fallback metrics",inputSchema:{type:"object",properties:{topic_sys_id:{type:"string",description:"VA topic sys_id (optional, all topics if omitted)"},days:{type:"number",description:"Analysis period in days (default 30)"}},required:[]}},{name:"ml_process_optimization",description:"Identify process bottlenecks using analysis of task durations and reassignment patterns",inputSchema:{type:"object",properties:{table:{type:"string",description:"Process table to analyse (e.g. incident, change_request, sc_task)"},days:{type:"number",description:"Analysis period (default 90)"}},required:["table"]}},{name:"list_uib_pages",description:"List UI Builder pages and their route configurations",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max records (default 25)"},app:{type:"string",description:"Filter by UX app sys_id"}},required:[]}},{name:"get_uib_page",description:"Get details of a specific UI Builder page including layout and child elements",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UIB page sys_id"}},required:["sys_id"]}},{name:"create_uib_page",description:"Create a new UI Builder page with route registration. **[Write]**",inputSchema:{type:"object",properties:{title:{type:"string",description:"Page title"},path:{type:"string",description:"URL path segment"},app:{type:"string",description:"Parent UX app sys_id"},layout:{type:"string",description:"Layout type: single, sidebar, tabbed (default single)"}},required:["title","path"]}},{name:"update_uib_page",description:"Update an existing UI Builder page. **[Write]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UIB page sys_id"},title:{type:"string"},path:{type:"string"},layout:{type:"string"}},required:["sys_id"]}},{name:"delete_uib_page",description:"Delete a UI Builder page. **[Write]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"UIB page sys_id"}},required:["sys_id"]}},{name:"list_uib_components",description:"List available UI Builder components (macroponents) in the instance",inputSchema:{type:"object",properties:{limit:{type:"number",description:"Max records (default 50)"},scope:{type:"string",description:"Filter by scope/app"}},required:[]}},{name:"create_uib_component",description:"Create a custom UI Builder component (macroponent). **[Scripting]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Component name"},label:{type:"string",description:"Display label"},description:{type:"string"},category:{type:"string",description:"Component category"}},required:["name","label"]}},{name:"update_uib_component",description:"Update a UI Builder component. **[Scripting]**",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Component sys_id"},label:{type:"string"},description:{type:"string"}},required:["sys_id"]}},{name:"list_uib_data_brokers",description:"List UI Builder data brokers (data sources for pages)",inputSchema:{type:"object",properties:{page_sys_id:{type:"string",description:"Filter by page"},limit:{type:"number"}},required:[]}},{name:"create_uib_data_broker",description:"Create a UI Builder data broker to feed data to a page. **[Scripting]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Broker name"},table:{type:"string",description:"Source table"},query:{type:"string",description:"Encoded query filter"},page:{type:"string",description:"Target page sys_id"}},required:["name","table"]}},{name:"list_workspaces",description:"List all configurable agent workspaces",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter active (default true)"},limit:{type:"number"}},required:[]}},{name:"get_workspace",description:"Get details of a configurable agent workspace including tabs and lists",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Workspace sys_id"}},required:["sys_id"]}},{name:"create_workspace",description:"Create a new configurable agent workspace. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Workspace name"},description:{type:"string"},table:{type:"string",description:"Primary table (e.g. incident)"},icon:{type:"string",description:"Workspace icon name"}},required:["name","table"]}},{name:"configure_workspace_list",description:"Add or update a list view in an agent workspace. **[Write]**",inputSchema:{type:"object",properties:{workspace_sys_id:{type:"string",description:"Workspace sys_id"},table:{type:"string",description:"List table"},title:{type:"string",description:"List title"},query:{type:"string",description:"Encoded query filter"},columns:{type:"string",description:"Comma-separated field names"}},required:["workspace_sys_id","table","title"]}},{name:"create_ux_app_route",description:"Register a new route (URL path) in a UX app. **[Write]**",inputSchema:{type:"object",properties:{app_sys_id:{type:"string",description:"UX app sys_id"},path:{type:"string",description:"Route path"},page_sys_id:{type:"string",description:"Target UIB page sys_id"},title:{type:"string",description:"Route title"}},required:["app_sys_id","path","page_sys_id"]}},{name:"create_ux_experience",description:"Create a new UX Experience (app shell) configuration. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Experience name"},app_sys_id:{type:"string",description:"UX app sys_id"},landing_page:{type:"string",description:"Landing page sys_id"}},required:["name","app_sys_id"]}},{name:"list_mobile_app_configs",description:"List ServiceNow mobile app configurations",inputSchema:{type:"object",properties:{active:{type:"boolean",description:"Filter active (default true)"},limit:{type:"number"}},required:[]}},{name:"get_mobile_app_config",description:"Get details of a specific mobile app configuration",inputSchema:{type:"object",properties:{sys_id:{type:"string",description:"Mobile app config sys_id"}},required:["sys_id"]}},{name:"create_mobile_app_config",description:"Create a new mobile app configuration. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"App name"},description:{type:"string"},branding_color:{type:"string",description:"Primary colour hex"}},required:["name"]}},{name:"list_mobile_applets",description:"List mobile applets (mini-apps within the mobile experience)",inputSchema:{type:"object",properties:{app_config:{type:"string",description:"Filter by app config sys_id"},limit:{type:"number"}},required:[]}},{name:"create_mobile_applet",description:"Create a mobile applet in a mobile app. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Applet name"},table:{type:"string",description:"Applet data table"},icon:{type:"string",description:"Applet icon"},app_config:{type:"string",description:"Parent app config sys_id"}},required:["name","table"]}},{name:"list_mobile_layouts",description:"List mobile layout configurations",inputSchema:{type:"object",properties:{limit:{type:"number"}},required:[]}},{name:"create_mobile_layout",description:"Create a mobile layout for a specific view. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Layout name"},table:{type:"string",description:"Target table"},type:{type:"string",description:"Layout type: list, form, detail"}},required:["name","table"]}},{name:"configure_offline_sync",description:"Configure which tables/records are available offline in mobile. **[Write]**",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table to sync offline"},query:{type:"string",description:"Filter query for sync scope"},max_records:{type:"number",description:"Max offline records (default 500)"}},required:["table"]}},{name:"send_push_notification",description:"Send a push notification to mobile app users. **[Write]**",inputSchema:{type:"object",properties:{user:{type:"string",description:"Target user sys_id"},group:{type:"string",description:"Target group sys_id (alternative to user)"},title:{type:"string",description:"Notification title"},body:{type:"string",description:"Notification body text"},action_url:{type:"string",description:"Deep link URL on tap"}},required:["title","body"]}},{name:"get_mobile_analytics",description:"Get mobile app usage analytics — sessions, active users, popular applets",inputSchema:{type:"object",properties:{days:{type:"number",description:"Analysis period in days (default 30)"}},required:[]}},{name:"find_artifact",description:"Search for platform artifacts by name, type, or scope (business rules, scripts, widgets, etc.)",inputSchema:{type:"object",properties:{name:{type:"string",description:"Artifact name or pattern"},type:{type:"string",description:"Artifact type: business_rule, script_include, client_script, ui_policy, ui_action, widget, flow, sys_properties"},scope:{type:"string",description:"Application scope name"},limit:{type:"number"}},required:["name"]}},{name:"validate_artifact",description:"Validate an artifact for best practices, security issues, and performance concerns",inputSchema:{type:"object",properties:{table:{type:"string",description:"Artifact table (e.g. sys_script, sys_script_include)"},sys_id:{type:"string",description:"Artifact sys_id"}},required:["table","sys_id"]}},{name:"clone_artifact",description:"Clone a platform artifact to a new name/scope. **[Scripting]**",inputSchema:{type:"object",properties:{table:{type:"string",description:"Source artifact table"},sys_id:{type:"string",description:"Source artifact sys_id"},new_name:{type:"string",description:"Name for the cloned artifact"},target_scope:{type:"string",description:"Target application scope (optional)"}},required:["table","sys_id","new_name"]}},{name:"validate_deployment",description:"Pre-validate an update set or app before deployment — check for conflicts and missing dependencies",inputSchema:{type:"object",properties:{update_set_sys_id:{type:"string",description:"Update set sys_id to validate"},app_sys_id:{type:"string",description:"Scoped app sys_id (alternative to update set)"}},required:[]}},{name:"rollback_deployment",description:"Rollback a deployment by reverting an update set. **[Write]**",inputSchema:{type:"object",properties:{update_set_sys_id:{type:"string",description:"Committed update set sys_id to rollback"},reason:{type:"string",description:"Reason for rollback"}},required:["update_set_sys_id"]}},{name:"list_deployment_history",description:"List deployment history — committed update sets and app installs over time",inputSchema:{type:"object",properties:{days:{type:"number",description:"Look-back period (default 30)"},limit:{type:"number"}},required:[]}},{name:"create_solution_package",description:"Create a solution package from selected update sets for distribution. **[Write]**",inputSchema:{type:"object",properties:{name:{type:"string",description:"Package name"},description:{type:"string"},update_sets:{type:"array",items:{type:"string"},description:"Array of update set sys_ids to include"}},required:["name","update_sets"]}},{name:"execute_background_script",description:"Execute a background script on the instance (server-side JavaScript). **[Scripting]**",inputSchema:{type:"object",properties:{script:{type:"string",description:"JavaScript code to execute"},scope:{type:"string",description:"Application scope (default global)"}},required:["script"]}},{name:"import_cmdb_data",description:"Import CI data into CMDB via import set. **[Write]**",inputSchema:{type:"object",properties:{table:{type:"string",description:"Target CMDB table (e.g. cmdb_ci_server)"},data:{type:"array",items:{type:"object"},description:"Array of records to import"}},required:["table","data"]}},{name:"analyze_data_quality",description:"Analyse data quality for a table — completeness, duplicates, stale records",inputSchema:{type:"object",properties:{table:{type:"string",description:"Table to analyse"},required_fields:{type:"string",description:"Comma-separated fields that should be populated"},days_stale:{type:"number",description:"Consider records stale after N days without update (default 180)"}},required:["table"]}}],kp=typeof window<"u"&&window.api!==void 0;function bt(l,p){try{const u=localStorage.getItem(l);return u?JSON.parse(u):p}catch{return p}}function fr(l,p){localStorage.setItem(l,JSON.stringify(p))}let qn=!1,Fr,Go,Ho;function Or(){return bt("nowaikit:instances",[])}function jp(l){return bt("nowaikit:audit",[]).slice(-l).reverse()}function ur(l){const p=bt("nowaikit:audit",[]);p.push(l),p.length>2e3&&p.splice(0,p.length-2e3),fr("nowaikit:audit",p)}function Cp(){const l=Or(),p=bt("nowaikit:config:activeInstance","");return l.find(u=>u.name===p)||l[0]||null}function Ep(l){return btoa(l).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function nt(l,p,u){const m=Cp();if(!m)throw new Error("No ServiceNow instance configured. Add one in Setup.");const w=`/api/snow/${Ep(m.instanceUrl)}${p}`,q={"Content-Type":"application/json",Accept:"application/json","X-NowAIKit-Proxy":"1"};m.authMethod==="basic"&&m.username&&m.password&&(q.Authorization=`Basic ${btoa(`${m.username}:${m.password}`)}`);const _={method:l,headers:q};u&&(l==="POST"||l==="PUT"||l==="PATCH")&&(_.body=JSON.stringify(u));const C=await fetch(w,_);if(!C.ok){const G=await C.text().catch(()=>"");throw new Error(`ServiceNow ${C.status}: ${G.slice(0,200)}`)}const L=await C.json().catch(()=>({}));return{ok:!0,status:C.status,data:L}}async function Ip(l,p){var u;switch(l){case"query_records":{const m=p.table;if(!m)throw new Error("table is required");const S=new URLSearchParams;p.query&&S.set("sysparm_query",p.query),p.fields&&S.set("sysparm_fields",p.fields),p.limit&&S.set("sysparm_limit",String(p.limit)),p.offset&&S.set("sysparm_offset",String(p.offset)),p.orderBy&&S.set("sysparm_query",(p.query||"")+"^ORDERBY"+p.orderBy),S.set("sysparm_display_value",String(p.display_value??"true"));const w=S.toString(),{data:q}=await nt("GET",`/api/now/table/${m}?${w}`),_=q.result;return{count:Array.isArray(_)?_.length:0,records:_}}case"get_record":{const m=p.table,S=p.sys_id;if(!m||!S)throw new Error("table and sys_id are required");const w=new URLSearchParams;p.fields&&w.set("sysparm_fields",p.fields),w.set("sysparm_display_value","true");const{data:q}=await nt("GET",`/api/now/table/${m}/${S}?${w}`);return q.result}case"create_record":{const m=p.table;if(!m)throw new Error("table is required");const{data:S}=await nt("POST",`/api/now/table/${m}`,p.fields||p.data||{}),w=S.result;return{sys_id:w==null?void 0:w.sys_id,record:w}}case"update_record":{const m=p.table,S=p.sys_id;if(!m||!S)throw new Error("table and sys_id are required");const{data:w}=await nt("PATCH",`/api/now/table/${m}/${S}`,p.fields||p.data||{});return w.result}case"delete_record":{const m=p.table,S=p.sys_id;if(!m||!S)throw new Error("table and sys_id are required");return await nt("DELETE",`/api/now/table/${m}/${S}`),{success:!0,deleted:S}}case"get_table_schema":{const m=p.table_name||p.table;if(!m)throw new Error("table_name is required");const{data:S}=await nt("GET",`/api/now/table/${m}?sysparm_limit=0`),{data:w}=await nt("GET",`/api/now/table/sys_dictionary?sysparm_query=name=${m}^internal_type!=collection&sysparm_fields=element,column_label,internal_type,max_length,mandatory,reference&sysparm_display_value=true&sysparm_limit=200`);return{table:m,columns:w.result}}case"get_incident":{const m=p.number||p.sys_id;if(!m)throw new Error("number or sys_id is required");if(/^[0-9a-f]{32}$/i.test(m)){const{data:_}=await nt("GET",`/api/now/table/incident/${m}?sysparm_display_value=true`);return _.result}const{data:w}=await nt("GET",`/api/now/table/incident?sysparm_query=number=${m}&sysparm_display_value=true&sysparm_limit=1`),q=w.result;return(q==null?void 0:q[0])||{error:`Incident ${m} not found`}}case"create_incident":{const{data:m}=await nt("POST","/api/now/table/incident",p),S=m.result;return{sys_id:S==null?void 0:S.sys_id,number:S==null?void 0:S.number,record:S}}default:{const m=l.match(/^list_(.+)$/),S=l.match(/^get_(.+)$/),w=l.match(/^search_(.+)$/);if(m||w){const q=p.table||nu(l);if(!q)throw new Error(`Cannot determine ServiceNow table for tool "${l}". Use query_records with an explicit table name.`);const _=new URLSearchParams;p.query&&_.set("sysparm_query",p.query),p.fields&&_.set("sysparm_fields",p.fields),_.set("sysparm_limit",String(p.limit||25)),_.set("sysparm_display_value","true");const{data:C}=await nt("GET",`/api/now/table/${q}?${_}`),L=C.result;return{count:Array.isArray(L)?L.length:0,records:L}}if(S){const q=p.sys_id||p.number,_=p.table||nu(l);if(!_||!q)throw new Error(`Cannot determine table/sys_id for tool "${l}". Use get_record with explicit table and sys_id.`);if(/^[0-9a-f]{32}$/i.test(q)){const{data:G}=await nt("GET",`/api/now/table/${_}/${q}?sysparm_display_value=true`);return G.result}const{data:L}=await nt("GET",`/api/now/table/${_}?sysparm_query=number=${q}&sysparm_display_value=true&sysparm_limit=1`);return(u=L.result)==null?void 0:u[0]}throw new Error(`Tool "${l}" is not supported in browser mode. Use query_records, get_record, or the desktop app for full tool support.`)}}}function nu(l){return{list_incidents:"incident",get_incident:"incident",search_incidents:"incident",list_problems:"problem",get_problem:"problem",list_change_requests:"change_request",get_change_request:"change_request",list_tasks:"task",get_task:"task",list_users:"sys_user",get_user:"sys_user",list_groups:"sys_user_group",get_group:"sys_user_group",list_knowledge_bases:"kb_knowledge_base",search_knowledge:"kb_knowledge",get_knowledge_article:"kb_knowledge",list_catalog_items:"sc_cat_item",get_catalog_item:"sc_cat_item",list_assets:"alm_asset",get_asset:"alm_asset",list_reports:"sys_report",get_report:"sys_report",search_cmdb_ci:"cmdb_ci",get_cmdb_ci:"cmdb_ci",list_notifications:"sysevent_email_action",get_notification:"sysevent_email_action",list_business_rules:"sys_script",get_business_rule:"sys_script",list_script_includes:"sys_script_include",get_script_include:"sys_script_include",list_client_scripts:"sys_script_client",get_client_script:"sys_script_client",list_ui_policies:"sys_ui_policy",get_ui_policy:"sys_ui_policy",list_ui_actions:"sys_ui_action",get_ui_action:"sys_ui_action",list_acls:"sys_security_acl",get_acl:"sys_security_acl",list_scheduled_jobs:"sysauto",get_scheduled_job:"sysauto",list_scoped_apps:"sys_scope",get_scoped_app:"sys_scope",list_update_sets:"sys_update_set",get_update_set:"sys_update_set",list_email_logs:"sys_email",get_email_log:"sys_email",list_stories:"rm_story",get_story:"rm_story",list_epics:"rm_epic",get_epic:"rm_epic",list_software_licenses:"alm_license"}[l]||null}const qp={getConfig:async l=>bt(`nowaikit:config:${l}`,null),setConfig:async(l,p)=>{fr(`nowaikit:config:${l}`,p)},getAllConfig:async()=>{var m;const l=Or(),p=bt("nowaikit:config:activeInstance",((m=l[0])==null?void 0:m.name)||""),u=bt("nowaikit:config:settings",null);return{instances:l,activeInstance:p,theme:"dark",telemetry:!1,autoUpdate:!0,...u?{settings:u}:{}}},listInstances:async()=>Or(),addInstance:async l=>{const p=Or(),u=p.findIndex(S=>S.name===l.name);u>=0?p[u]=l:p.push(l),fr("nowaikit:instances",p);const m=bt("nowaikit:config:activeInstance","");return(!m||!p.some(S=>S.name===m))&&fr("nowaikit:config:activeInstance",l.name),ur({ts:new Date().toISOString(),event:"instance:add",instance:l.name,success:!0}),{success:!0}},removeInstance:async l=>{var S;const p=Or(),u=p.findIndex(w=>w.name===l);return u<0?{success:!1,error:`Instance "${l}" not found`}:(p.splice(u,1),fr("nowaikit:instances",p),bt("nowaikit:config:activeInstance","")===l&&fr("nowaikit:config:activeInstance",((S=p[0])==null?void 0:S.name)||""),ur({ts:new Date().toISOString(),event:"instance:remove",instance:l,success:!0}),{success:!0})},testInstance:async l=>{var p,u;ur({ts:new Date().toISOString(),event:"instance:test",instance:l.name||l.instanceUrl,success:!0,durationMs:120});try{const m=`${l.instanceUrl}/api/now/table/sys_properties?sysparm_query=name=instance_name&sysparm_limit=1&sysparm_fields=value`,S={Accept:"application/json","Content-Type":"application/json"};l.authMethod==="basic"&&l.username&&l.password&&(S.Authorization=`Basic ${btoa(`${l.username}:${l.password}`)}`);const w=await fetch(m,{headers:S,signal:AbortSignal.timeout(15e3)});if(w.status===401)return{success:!1,error:"Authentication failed. Check your credentials."};if(w.status===403)return{success:!1,error:"Access denied. Check user permissions."};if(!w.ok)return{success:!1,error:`HTTP ${w.status}: ${w.statusText}`};const q=await w.json();return{success:!0,info:{instanceName:((u=(p=q==null?void 0:q.result)==null?void 0:p[0])==null?void 0:u.value)||"OK",url:l.instanceUrl}}}catch(m){return m instanceof TypeError&&String(m).includes("fetch")?{success:!0,info:{instanceName:"Connection test unavailable in browser (CORS). Use the desktop app for full testing."}}:{success:!1,error:m instanceof Error?m.message:String(m)}}},startServer:async l=>{const p=Or(),u=l?p.find(m=>m.name===l):p[0];return u?(qn=!0,Fr=u.name,Go=Math.floor(Math.random()*6e4)+5e3,Ho=new Date().toISOString(),ur({ts:new Date().toISOString(),event:"server:start",instance:u.name,success:!0}),{success:!0}):{success:!1,error:"No instance configured. Use Setup Wizard to add one."}},stopServer:async()=>{const l=qn;return qn=!1,Fr=void 0,Go=void 0,Ho=void 0,l&&ur({ts:new Date().toISOString(),event:"server:stop",success:!0}),{success:!0}},getServerStatus:async()=>({running:qn,instance:Fr,pid:Go,startedAt:Ho,toolCount:ru.length}),listTools:async()=>ru,executeTool:async(l,p)=>{if(!qn)return{success:!1,error:"Server is not running. Start the server first."};const u=Date.now();try{const m=await Ip(l,p);return ur({ts:new Date().toISOString(),event:"tool:call",tool:l,instance:Fr,success:!0,durationMs:Date.now()-u}),{success:!0,result:m}}catch(m){const S=m instanceof Error?m.message:String(m);return ur({ts:new Date().toISOString(),event:"tool:call",tool:l,instance:Fr,success:!1,error:S,durationMs:Date.now()-u}),{success:!1,error:S}}},getAuditLogs:async l=>jp(l||100),getVersion:async()=>({app:"2.4.8",electron:typeof navigator<"u"?"Browser":"N/A",node:typeof navigator<"u"?navigator.userAgent.split(" ").pop()||"Browser":"N/A"}),openExternal:async l=>{window.open(l,"_blank","noopener,noreferrer")},selectDirectory:async()=>null,getServerPath:async()=>"N/A (browser mode — use desktop app or CLI for MCP server)",sendChat:async l=>{var G,$,Y,ne,V;const{provider:p,apiKey:u,model:m,messages:S,tools:w}=l;if(!u)return{error:"No API key configured"};const q=Date.now(),_=(P,B,H,re,b,M,y)=>{const A=bt("nowaikit:audit",[]),X={ts:new Date().toISOString(),event:"chat:send",provider:P,model:B,toolCount:H,instance:Fr,success:re,durationMs:b};M&&(X.inputTokens=M.inputTokens,X.outputTokens=M.outputTokens),y&&(X.error=y),A.push(X),A.length>2e3&&A.splice(0,A.length-2e3),fr("nowaikit:audit",A)},C=w&&w.length>0?`You are NowAIKit, an AI assistant for ServiceNow. Use tools to fetch real data — never make up data.
41
+
42
+ Use "query_records" with correct table: incident, change_request, problem, task, sys_user, cmdb_ci.
43
+ Query syntax: active=true, priority=1, ORDERBYDESCsys_created_on, nameLIKEtext.
44
+ IMPORTANT: Do NOT add assigned_to filter unless user explicitly says "my" or "assigned to me". Query ALL matching records by default.`:void 0,L=P=>P.replace(/sk-ant-[a-zA-Z0-9_-]+/g,"sk-ant-***").replace(/sk-[a-zA-Z0-9_-]{20,}/g,"sk-***").replace(/AIza[a-zA-Z0-9_-]+/g,"AIza***").replace(/gsk_[a-zA-Z0-9_-]+/g,"gsk_***").replace(/sk-or-[a-zA-Z0-9_-]+/g,"sk-or-***").replace(/key=[^&\s]+/g,"key=***");try{if(p==="anthropic"){const P=w==null?void 0:w.map(y=>({name:y.name,description:y.description,input_schema:y.inputSchema||{type:"object",properties:{}}})),B={model:m,max_tokens:4096,messages:S};C&&(B.system=C),P&&P.length>0&&(B.tools=P);const H=await fetch("/api/ai/anthropic/v1/messages",{method:"POST",headers:{"Content-Type":"application/json","x-api-key":u,"anthropic-version":"2023-06-01","X-NowAIKit-Proxy":"1"},body:JSON.stringify(B)});if(!H.ok){const y=L(`API error ${H.status}: ${await H.text()}`);return _(p,m,(w==null?void 0:w.length)||0,!1,Date.now()-q,void 0,y),{error:y}}const re=await H.json(),b=re.usage,M=b?{inputTokens:b.input_tokens||0,outputTokens:b.output_tokens||0}:void 0;return _(p,m,(w==null?void 0:w.length)||0,!0,Date.now()-q,M),{content:re.content,stop_reason:re.stop_reason,usage:M}}else if(p==="google"){const B={contents:S.map(F=>{const O=[];if(typeof F.content=="string")O.push({text:F.content});else if(Array.isArray(F.content))for(const Z of F.content)Z.type==="text"?O.push({text:Z.text}):Z.type==="tool_use"?O.push({functionCall:{name:Z.name,args:Z.input}}):Z.type==="tool_result"&&O.push({functionResponse:{name:"tool",response:{content:Z.content}}});return{role:F.role==="assistant"?"model":"user",parts:O}})};C&&(B.systemInstruction={parts:[{text:C}]}),w&&w.length>0&&(B.tools=[{functionDeclarations:w.map(F=>({name:F.name,description:F.description,parameters:F.inputSchema||{type:"object",properties:{}}}))}]);const H=`/api/ai/google/v1beta/models/${m}:generateContent?key=${u}`,re=`https://generativelanguage.googleapis.com/v1beta/models/${m}:generateContent?key=${u}`;let b;try{if(b=await fetch(H,{method:"POST",headers:{"Content-Type":"application/json","X-NowAIKit-Proxy":"1"},body:JSON.stringify(B)}),b.status===404)throw new Error("proxy_not_available")}catch{b=await fetch(re,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)})}if(!b.ok){const F=L(`Google AI error ${b.status}: ${await b.text()}`);return _(p,m,(w==null?void 0:w.length)||0,!1,Date.now()-q,void 0,F),{error:F}}const M=await b.json(),y=((Y=($=(G=M.candidates)==null?void 0:G[0])==null?void 0:$.content)==null?void 0:Y.parts)??[],A=[];for(const F of y)F.text&&A.push({type:"text",text:F.text}),F.functionCall&&A.push({type:"tool_use",id:`toolu_${Date.now()}`,name:F.functionCall.name,input:F.functionCall.args});const X=M.usageMetadata,j=X?{inputTokens:X.promptTokenCount||0,outputTokens:X.candidatesTokenCount||0}:void 0;return _(p,m,(w==null?void 0:w.length)||0,!0,Date.now()-q,j),{content:A,stop_reason:A.some(F=>F.type==="tool_use")?"tool_use":"end_turn",usage:j}}else{const B={openai:"/api/ai/openai/v1/chat/completions",groq:"/api/ai/groq/openai/v1/chat/completions",openrouter:"/api/ai/openrouter/api/v1/chat/completions"}[p];if(!B)return{error:`Unknown provider: ${p}`};const H=[];C&&H.push({role:"system",content:C});for(const O of S)if(typeof O.content=="string")H.push({role:O.role,content:O.content});else if(Array.isArray(O.content)){const Z=O.content,_e=Z.filter(fe=>fe.type==="text").map(fe=>fe.text).join(`
45
+ `),ve=Z.filter(fe=>fe.type==="tool_use"),we=Z.filter(fe=>fe.type==="tool_result");if(ve.length>0)H.push({role:"assistant",content:_e||null,tool_calls:ve.map(fe=>({id:fe.id,type:"function",function:{name:fe.name,arguments:JSON.stringify(fe.input)}}))});else if(we.length>0)for(const fe of we)H.push({role:"tool",tool_call_id:fe.tool_use_id,content:typeof fe.content=="string"?fe.content:JSON.stringify(fe.content)});else _e&&H.push({role:O.role,content:_e})}const re={model:m,messages:H},b=w==null?void 0:w.map(O=>({type:"function",function:{name:O.name,description:O.description,parameters:O.inputSchema||{type:"object",properties:{}}}}));b&&b.length>0&&(re.tools=b);const M=await fetch(B,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${u}`,"X-NowAIKit-Proxy":"1"},body:JSON.stringify(re)});if(!M.ok){const O=L(`API error ${M.status}: ${await M.text()}`);return _(p,m,(w==null?void 0:w.length)||0,!1,Date.now()-q,void 0,O),{error:O}}const y=await M.json(),A=(V=(ne=y.choices)==null?void 0:ne[0])==null?void 0:V.message,X=[];if(A!=null&&A.content&&X.push({type:"text",text:A.content}),A!=null&&A.tool_calls)for(const O of A.tool_calls){let Z={};try{Z=JSON.parse(O.function.arguments)}catch{}X.push({type:"tool_use",id:O.id,name:O.function.name,input:Z})}const j=y.usage,F=j?{inputTokens:j.prompt_tokens||0,outputTokens:j.completion_tokens||0}:void 0;return _(p,m,(w==null?void 0:w.length)||0,!0,Date.now()-q,F),{content:X,stop_reason:X.some(O=>O.type==="tool_use")?"tool_use":"end_turn",usage:F}}}catch(P){const B=P instanceof TypeError&&String(P.message).includes("Failed to fetch")?'AI proxy not available. Run "npm run serve" or "npm run dev:web" for browser AI chat, or use the desktop app.':P instanceof Error?P.message:"Request failed";return _(p,m,(w==null?void 0:w.length)||0,!1,Date.now()-q,void 0,B),{error:B}}}},wt=kp?window.api:qp,Lp=[{value:"full",label:"Full — all 400+ tools"},{value:"service_desk",label:"Service Desk"},{value:"change_coordinator",label:"Change Coordinator"},{value:"platform_developer",label:"Platform Developer"},{value:"system_administrator",label:"System Administrator"},{value:"itom_engineer",label:"ITOM Engineer"}],dr=["welcome","url","auth","creds","test","role","clients","done"],Tp=[{value:"",label:"— Select —"},{value:"prod",label:"Production"},{value:"staging",label:"Staging"},{value:"uat",label:"UAT"},{value:"test",label:"Test"},{value:"dev",label:"Development"}];function Np({onComplete:l,onClose:p,existingGroups:u=[]}){const[m,S]=W.useState("welcome"),[w,q]=W.useState(""),[_,C]=W.useState({instanceUrl:"",instanceName:"default",group:"Default",environment:"",authMethod:"basic",authMode:"service-account",username:"",password:"",clientId:"",clientSecret:"",toolPackage:"full",writeEnabled:!1}),[L,G]=W.useState("idle"),[$,Y]=W.useState(""),[ne,V]=W.useState(""),P=()=>{const j=dr.indexOf(m);j<dr.length-1&&S(dr[j+1])},B=()=>{const j=dr.indexOf(m);j>0&&S(dr[j-1])},H=(j,F)=>C(O=>({...O,[j]:F}));function re(){return wt}async function b(){G("testing");try{const j=re(),F={name:_.instanceName,instanceUrl:_.instanceUrl,authMethod:_.authMethod,username:_.username,password:_.password,clientId:_.clientId,clientSecret:_.clientSecret,toolPackage:_.toolPackage,writeEnabled:_.writeEnabled,group:_.group||"Default",environment:_.environment||void 0};if(j){const O=await j.testInstance(F);O.success?(G("ok"),Y("Connection successful")):(G("fail"),Y(O.error??"Connection failed"))}else try{const O=await fetch(`${_.instanceUrl}/api/now/table/sys_properties?sysparm_limit=1`,{headers:_.username?{Authorization:"Basic "+btoa(`${_.username}:${_.password}`)}:{}});O.ok?(G("ok"),Y("Connection successful")):(G("fail"),Y(`HTTP ${O.status} — check credentials`))}catch{G("fail"),Y("Could not reach instance — check URL and CORS settings")}}catch(j){G("fail"),Y(j instanceof Error?j.message:"Connection failed")}}async function M(){const j=re();if(j){const F={name:_.instanceName,instanceUrl:_.instanceUrl,authMethod:_.authMethod,username:_.username,password:_.password,clientId:_.clientId,clientSecret:_.clientSecret,toolPackage:_.toolPackage,writeEnabled:_.writeEnabled,group:_.group||"Default",environment:_.environment||void 0},O=await j.addInstance(F);if(!O.success){V(O.error??"Failed to save config");return}}P()}const y={container:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",padding:24},card:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:12,padding:40,width:"100%",maxWidth:520,position:"relative"},title:{fontSize:"1.4rem",fontWeight:700,marginBottom:8},sub:{color:"var(--text2)",marginBottom:28,fontSize:"0.9rem"},label:{display:"block",fontSize:"0.8rem",color:"var(--dim)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.05em"},input:{width:"100%",background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",padding:"10px 12px",fontSize:"0.9rem",marginBottom:16},btn:{background:"var(--accent)",color:"#fff",border:"none",borderRadius:6,padding:"10px 20px",fontSize:"0.9rem",fontWeight:600,cursor:"pointer"},btnGhost:{background:"transparent",color:"var(--text2)",border:"1px solid var(--border)",borderRadius:6,padding:"10px 20px",fontSize:"0.9rem",cursor:"pointer"},row:{display:"flex",gap:12,justifyContent:"flex-end",marginTop:24},progress:{display:"flex",gap:6,marginBottom:28}},A=dr.indexOf(m),X=dr.length-2;return s.jsx("div",{style:y.container,children:s.jsxs("div",{style:y.card,children:[p&&m!=="done"&&s.jsx("button",{onClick:p,style:{position:"absolute",top:12,right:12,background:"transparent",border:"none",color:"var(--dim)",fontSize:"1.2rem",cursor:"pointer",padding:"4px 8px",borderRadius:4,zIndex:10},title:"Close",children:"✕"}),m!=="welcome"&&m!=="done"&&s.jsx("div",{style:y.progress,children:Array.from({length:X}).map((j,F)=>s.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:F<A?"var(--accent)":"var(--border)"}},F))}),m==="welcome"&&s.jsxs(s.Fragment,{children:[s.jsxs("h1",{style:y.title,children:["Welcome to ",s.jsx("span",{style:{background:"linear-gradient(135deg, #00D4AA 0%, #0F4C81 100%)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"NowAIKit"})]}),s.jsx("p",{style:y.sub,children:"Connect Any AI to ServiceNow. Instantly."}),s.jsxs("div",{style:{display:"flex",gap:12},children:[s.jsx("button",{style:y.btn,onClick:P,children:"Get Started →"}),p&&s.jsx("button",{style:y.btnGhost,onClick:p,children:"Cancel"})]})]}),m==="url"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"ServiceNow Instance"}),s.jsx("label",{style:y.label,children:"Instance URL"}),s.jsxs("div",{style:{display:"flex",alignItems:"center",marginBottom:16},children:[s.jsx("span",{style:{background:"var(--surface2)",border:"1px solid var(--border)",borderRight:"none",borderRadius:"6px 0 0 6px",padding:"10px 10px",fontSize:"0.9rem",color:"var(--dim)",whiteSpace:"nowrap"},children:"https://"}),s.jsx("input",{style:{...y.input,marginBottom:0,borderRadius:0,flex:1},value:_.instanceUrl.replace(/^https?:\/\//,"").replace(/\.service-now\.com$/,""),onChange:j=>{const F=j.target.value.replace(/[^a-zA-Z0-9-]/g,"");H("instanceUrl",`https://${F}.service-now.com`)},placeholder:"yourcompany"}),s.jsx("span",{style:{background:"var(--surface2)",border:"1px solid var(--border)",borderLeft:"none",borderRadius:"0 6px 6px 0",padding:"10px 10px",fontSize:"0.9rem",color:"var(--dim)",whiteSpace:"nowrap"},children:".service-now.com"})]}),s.jsx("label",{style:y.label,children:"Short name (e.g. prod, dev)"}),s.jsx("input",{style:y.input,value:_.instanceName,onChange:j=>H("instanceName",j.target.value),placeholder:"default"}),s.jsx("label",{style:y.label,children:"Group / Customer"}),u.length>0?s.jsxs("div",{style:{marginBottom:16},children:[s.jsxs("select",{style:{...y.input,cursor:"pointer",marginBottom:8},value:_.group===w&&w?"__new__":_.group,onChange:j=>{j.target.value==="__new__"?(q(""),H("group","")):(H("group",j.target.value),q(""))},children:[u.map(j=>s.jsx("option",{value:j,children:j},j)),s.jsx("option",{value:"__new__",children:"+ Add new group…"})]}),(_.group===""||!u.includes(_.group)&&_.group!=="Default")&&s.jsx("input",{style:y.input,value:w,onChange:j=>{q(j.target.value),H("group",j.target.value)},placeholder:"e.g. Acme Corp, Internal, Customer A"})]}):s.jsx("input",{style:y.input,value:_.group,onChange:j=>H("group",j.target.value),placeholder:"e.g. Acme Corp, Default"}),s.jsx("label",{style:y.label,children:"Environment"}),s.jsx("select",{style:{...y.input,cursor:"pointer"},value:_.environment,onChange:j=>H("environment",j.target.value),children:Tp.map(j=>s.jsx("option",{value:j.value,children:j.label},j.value))}),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:B,children:"← Back"}),s.jsx("button",{style:y.btn,onClick:P,disabled:!_.instanceUrl.startsWith("https://"),children:"Next →"})]})]}),m==="auth"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"Authentication"}),s.jsx("label",{style:y.label,children:"Method"}),["basic","oauth"].map(j=>s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10,cursor:"pointer"},children:[s.jsx("input",{type:"radio",checked:_.authMethod===j,onChange:()=>H("authMethod",j)}),s.jsx("span",{style:{fontSize:"0.9rem"},children:j==="basic"?"Basic Auth (username + password)":"OAuth 2.0 (recommended for production)"})]},j)),s.jsx("br",{}),s.jsx("label",{style:y.label,children:"Execution Context"}),[["service-account","Service account — shared credentials (default)"],["per-user","Per-user — each user runs in their own ServiceNow context (enterprise)"],["impersonation","Impersonation — service account + user ACL context"]].map(([j,F])=>s.jsxs("label",{style:{display:"flex",alignItems:"flex-start",gap:8,marginBottom:10,cursor:"pointer"},children:[s.jsx("input",{type:"radio",style:{marginTop:3},checked:_.authMode===j,onChange:()=>H("authMode",j)}),s.jsx("span",{style:{fontSize:"0.875rem",color:"var(--text2)"},children:F})]},j)),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:B,children:"← Back"}),s.jsx("button",{style:y.btn,onClick:P,children:"Next →"})]})]}),m==="creds"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"Credentials"}),_.authMethod==="oauth"&&s.jsxs(s.Fragment,{children:[s.jsx("label",{style:y.label,children:"OAuth Client ID"}),s.jsx("input",{style:y.input,value:_.clientId,onChange:j=>H("clientId",j.target.value)}),s.jsx("label",{style:y.label,children:"OAuth Client Secret"}),s.jsx("input",{style:y.input,type:"password",value:_.clientSecret,onChange:j=>H("clientSecret",j.target.value)})]}),s.jsx("label",{style:y.label,children:_.authMethod==="oauth"?"Service Account Username":"Username"}),s.jsx("input",{style:y.input,value:_.username,onChange:j=>H("username",j.target.value)}),s.jsx("label",{style:y.label,children:"Password"}),s.jsx("input",{style:y.input,type:"password",value:_.password,onChange:j=>H("password",j.target.value)}),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:B,children:"← Back"}),s.jsx("button",{style:y.btn,onClick:P,children:"Next →"})]})]}),m==="test"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"Test Connection"}),s.jsx("p",{style:y.sub,children:"Verify nowaikit can reach your ServiceNow instance."}),L==="idle"&&s.jsx("button",{style:y.btn,onClick:b,children:"Test Connection"}),L==="testing"&&s.jsx("p",{style:{color:"var(--dim)"},children:"Testing…"}),L==="ok"&&s.jsxs("p",{style:{color:"var(--green)",marginBottom:16},children:["✓ ",$]}),L==="fail"&&s.jsxs("p",{style:{color:"var(--red)",marginBottom:16},children:["✗ ",$]}),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:B,children:"← Back"}),(L==="ok"||L==="fail")&&s.jsx("button",{style:y.btn,onClick:P,children:"Next →"})]})]}),m==="role"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"Tool Package & Permissions"}),s.jsx("label",{style:y.label,children:"Tool Package"}),s.jsx("select",{style:{...y.input,cursor:"pointer"},value:_.toolPackage,onChange:j=>H("toolPackage",j.target.value),children:Lp.map(j=>s.jsx("option",{value:j.value,children:j.label},j.value))}),s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer"},children:[s.jsx("input",{type:"checkbox",checked:_.writeEnabled,onChange:j=>H("writeEnabled",j.target.checked)}),s.jsx("span",{style:{fontSize:"0.9rem"},children:"Enable write operations (create/update/delete)"})]}),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:B,children:"← Back"}),s.jsx("button",{style:y.btn,onClick:P,children:"Next →"})]})]}),m==="clients"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:y.title,children:"Install into AI Client"}),s.jsx("p",{style:y.sub,children:"nowaikit will write the config automatically. You can also do this later from the Instances page."}),s.jsxs("p",{style:{color:"var(--text2)",fontSize:"0.875rem",marginBottom:20},children:["Click ",s.jsx("strong",{children:"Install"})," to detect installed clients and write their configs, or ",s.jsx("strong",{children:"Skip"})," to configure manually later."]}),ne&&s.jsxs("p",{style:{color:"var(--red)",fontSize:"0.875rem",marginBottom:8},children:["✗ ",ne]}),s.jsxs("div",{style:y.row,children:[s.jsx("button",{style:y.btnGhost,onClick:M,children:"Skip for now"}),s.jsx("button",{style:y.btn,onClick:M,children:"Install & Finish →"})]})]}),m==="done"&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{style:{...y.title,color:"var(--green)"},children:"✓ Setup Complete!"}),s.jsxs("p",{style:y.sub,children:["nowaikit is connected to ",s.jsx("strong",{children:_.instanceUrl})," as ",s.jsx("strong",{children:_.instanceName}),"."]}),s.jsxs("p",{style:{color:"var(--text2)",fontSize:"0.875rem",marginBottom:24},children:["Open your AI client (Claude Desktop, Cursor, etc.) and start using ServiceNow tools. Try: ",s.jsx("em",{children:'"List my 5 most recent open incidents"'})]}),s.jsx("button",{style:y.btn,onClick:l,children:"Open Dashboard →"})]})]})})}const Ap={full:"400+",service_desk:"47",change_coordinator:"32",platform_developer:"51",system_administrator:"38",itom_engineer:"29"};function iu(){return wt}function Gi({label:l,value:p,sub:u,subTitle:m,accent:S,valueColor:w}){return s.jsxs("div",{className:"card",style:{padding:"20px 22px",flex:1,minWidth:0,overflow:"hidden"},children:[s.jsx("div",{style:{fontSize:"0.68rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.07em",marginBottom:8,whiteSpace:"nowrap"},children:l}),s.jsx("div",{style:{fontSize:"1.75rem",fontWeight:700,color:w??(S?"var(--accent)":"var(--text)"),lineHeight:1,marginBottom:u?6:0},children:p}),u&&s.jsx("div",{title:m??u,style:{fontSize:"0.78rem",color:"var(--text2)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:m?"help":"default"},children:u})]})}function Rp({serverOnline:l,serverUrl:p,onRefresh:u}){const m=(()=>{try{return parseInt(new URL(p).port||"3100",10)}catch{return 3100}})(),[S,w]=W.useState(m),[q,_]=W.useState(!1),[C,L]=W.useState("");W.useEffect(()=>{w(m)},[m]);async function G(){const ne=iu();if(!ne){L("Desktop app required to manage the server");return}_(!0),L(l?"Stopping…":"Starting…");try{if(l)await ne.stopServer(),L("Server stopped");else{const V=await ne.startServer();V.success?L("Server started"):L(V.error??"Start failed")}setTimeout(u,1500)}catch(V){L(`Error: ${V instanceof Error?V.message:"unknown"}`)}finally{_(!1)}}async function $(){const ne=iu();if(ne){_(!0),L("Restarting…");try{await ne.stopServer();const V=await ne.startServer();L(V.success?"Server restarted":V.error??"Restart failed"),setTimeout(u,1500)}catch(V){L(`Error: ${V instanceof Error?V.message:"unknown"}`)}finally{_(!1)}}}const Y=ne=>s.jsx("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:`var(--${ne})`,marginRight:6,flexShrink:0,boxShadow:ne==="green"?"0 0 6px var(--green)":"none"}});return s.jsxs("div",{className:"card",style:{marginBottom:28,overflow:"hidden"},children:[s.jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",flex:1,minWidth:200},children:[Y(l?"green":"dim"),s.jsx("span",{style:{fontWeight:600,fontSize:"0.88rem"},children:"Server"}),s.jsx("span",{style:{marginLeft:8,fontSize:"0.78rem",color:l?"var(--green)":"var(--dim)"},children:l?`Online · localhost:${S}`:"Offline"})]}),s.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0},children:[s.jsx("button",{onClick:G,disabled:q,style:{background:l?"rgba(248,113,113,0.12)":"var(--accent)",border:l?"1px solid rgba(248,113,113,0.3)":"none",color:l?"var(--red)":"#fff",borderRadius:6,padding:"6px 14px",fontSize:"0.82rem",fontWeight:600,cursor:"pointer",opacity:q?.6:1},children:q?"…":l?"■ Stop":"▶ Start"}),l&&s.jsx("button",{onClick:$,disabled:q,style:{background:"rgba(34,197,94,0.12)",border:"1px solid rgba(34,197,94,0.3)",color:"var(--green)",borderRadius:6,padding:"6px 14px",fontSize:"0.82rem",fontWeight:600,cursor:"pointer",opacity:q?.6:1},children:"↻ Restart"})]})]}),C&&s.jsx("div",{style:{padding:"8px 16px",fontSize:"0.78rem",color:"var(--text2)",background:"var(--surface2)",borderBottom:"1px solid var(--border)"},children:C}),!l&&!q&&!C&&s.jsxs("div",{style:{padding:"12px 16px",fontSize:"0.82rem",color:"var(--text2)"},children:[s.jsx("strong",{style:{color:"var(--yellow)"},children:"Server is offline."})," ","Click ",s.jsx("strong",{children:"▶ Start"})," above to launch the server, or run ",s.jsx("code",{style:{background:"var(--surface2)",padding:"1px 6px",borderRadius:4},children:"nowaikit server"})," in a terminal."]})]})}function Pp({instances:l,serverOnline:p,appVersion:u,serverUrl:m,onRefresh:S,onNavigate:w}){const q=l.find(_=>_.active);return s.jsxs("div",{children:[s.jsxs("div",{className:"page-header",children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"}),s.jsx("polyline",{points:"9 22 9 12 15 12 15 22"})]}),"Dashboard"]}),s.jsx("button",{className:"btn-ghost",onClick:S,style:{padding:"6px 14px",fontSize:"0.8rem"},children:"↻ Refresh"})]}),s.jsxs("div",{style:{display:"flex",gap:14,marginBottom:28,flexWrap:"wrap"},children:[s.jsx(Gi,{label:"Active Instance",value:(q==null?void 0:q.name)??"—",sub:q==null?void 0:q.url,subTitle:q==null?void 0:q.url,accent:!0}),s.jsx(Gi,{label:"Tools",value:q?Ap[q.toolPackage]??"—":"—",sub:q?q.toolPackage.replace(/_/g," ")+" package":"no instance"}),s.jsx(Gi,{label:"Instances",value:l.length,sub:"configured"}),s.jsx(Gi,{label:"Server",value:p?"Online":"Offline",sub:void 0,valueColor:p?"var(--green)":"var(--dim)"})]}),s.jsx(Rp,{serverOnline:p,serverUrl:m,onRefresh:S}),s.jsxs("div",{style:{display:"flex",gap:12,marginBottom:28,flexWrap:"wrap"},children:[s.jsxs("button",{className:"btn-primary",onClick:()=>w("chat"),style:{display:"flex",alignItems:"center",gap:8},children:[s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"})}),"Start Chat"]}),s.jsxs("button",{className:"btn-ghost",onClick:()=>w("tools"),style:{display:"flex",alignItems:"center",gap:8},children:[s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"7",width:"20",height:"14",rx:"2",ry:"2"}),s.jsx("path",{d:"M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16"})]}),"Browse Tools"]}),s.jsxs("button",{className:"btn-ghost",onClick:()=>w("instances"),style:{display:"flex",alignItems:"center",gap:8},children:[s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"2",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("rect",{x:"2",y:"14",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("line",{x1:"6",y1:"6",x2:"6.01",y2:"6"}),s.jsx("line",{x1:"6",y1:"18",x2:"6.01",y2:"18"})]}),"Manage Instances"]})]}),s.jsxs("div",{className:"card",style:{overflow:"hidden"},children:[s.jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[s.jsx("span",{style:{fontSize:"0.7rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Configured Instances"}),s.jsx("button",{onClick:()=>w("instances"),style:{background:"none",border:"none",color:"var(--accent)",fontSize:"0.78rem",cursor:"pointer"},children:"Manage →"})]}),l.length===0?s.jsxs("div",{style:{padding:"32px 16px",textAlign:"center",color:"var(--dim)",fontSize:"0.875rem"},children:["No instances configured."," ",s.jsx("button",{onClick:()=>w("instances"),style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",fontSize:"0.875rem"},children:"Add one →"})]}):l.map((_,C)=>s.jsxs("div",{style:{display:"flex",alignItems:"center",padding:"13px 16px",borderBottom:C<l.length-1?"1px solid var(--border)":"none",gap:12,minWidth:0},children:[s.jsxs("div",{style:{flex:1,minWidth:0},children:[s.jsxs("div",{style:{fontWeight:600,marginBottom:3,display:"flex",alignItems:"center",gap:8},children:[s.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:_.name}),_.active&&s.jsx("span",{className:"badge-green",style:{flexShrink:0},children:"active"})]}),s.jsx("div",{title:_.url,style:{fontSize:"0.8rem",color:"var(--text2)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",cursor:"help",maxWidth:"100%"},children:_.url})]}),s.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"0.75rem",color:"var(--dim)",flexShrink:0},children:[s.jsx("span",{className:"badge-dim",children:_.toolPackage.replace(/_/g," ")}),s.jsx("span",{children:"·"}),s.jsx("span",{children:_.authMethod}),s.jsx("span",{children:"·"}),s.jsx("span",{style:{color:_.writeEnabled?"var(--yellow)":"var(--dim)"},children:_.writeEnabled?"read/write":"read-only"})]})]},_.name))]})]})}const Mp={prod:{bg:"rgba(232,70,106,0.15)",fg:"#F06A82"},staging:{bg:"rgba(245,158,11,0.15)",fg:"#FF8A55"},test:{bg:"rgba(59,130,246,0.15)",fg:"#60a5fa"},dev:{bg:"rgba(16,185,129,0.15)",fg:"#34d399"},uat:{bg:"rgba(15,76,129,0.15)",fg:"#3A6FA1"}};function su(l){return Mp[l.toLowerCase()]??{bg:"var(--surface2)",fg:"var(--dim)"}}function Dp({instances:l,onRemove:p,onSetDefault:u,onTest:m,onAddInstance:S}){const[w,q]=W.useState({}),[_,C]=W.useState(new Set),[L,G]=W.useState(""),$=W.useMemo(()=>{const b=new Map;for(const M of l){const y=M.group||"Default";b.has(y)||b.set(y,[]),b.get(y).push(M)}return Array.from(b.entries()).map(([M,y])=>({name:M,instances:y.sort((A,X)=>{const j=["prod","staging","uat","test","dev"],F=j.indexOf(A.environment.toLowerCase()),O=j.indexOf(X.environment.toLowerCase());return(F===-1?99:F)-(O===-1?99:O)}),hasActive:y.some(A=>A.active)})).sort((M,y)=>M.hasActive!==y.hasActive?M.hasActive?-1:1:M.name.localeCompare(y.name))},[l]);W.useMemo(()=>{if(_.size===0&&$.length>0){const b=new Set,M=$.find(y=>y.hasActive);M?b.add(M.name):b.add($[0].name),C(b)}},[$]);const Y=W.useMemo(()=>{if(!L.trim())return $;const b=L.toLowerCase();return $.map(M=>({...M,instances:M.instances.filter(y=>y.name.toLowerCase().includes(b)||y.url.toLowerCase().includes(b)||y.group.toLowerCase().includes(b)||y.environment.toLowerCase().includes(b))})).filter(M=>M.instances.length>0)},[$,L]);function ne(b){C(M=>{const y=new Set(M);return y.has(b)?y.delete(b):y.add(b),y})}function V(){C(new Set($.map(b=>b.name)))}function P(){C(new Set)}async function B(b){q(y=>({...y,[b]:"testing"}));const M=await m(b);q(y=>({...y,[b]:M}))}const H=$.length,re=l.length;return s.jsxs("div",{children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:20,flexWrap:"wrap",gap:12},children:[s.jsxs("div",{children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"2",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("rect",{x:"2",y:"14",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("line",{x1:"6",y1:"6",x2:"6.01",y2:"6"}),s.jsx("line",{x1:"6",y1:"18",x2:"6.01",y2:"18"})]}),"Instances"]}),s.jsxs("div",{style:{fontSize:"0.78rem",color:"var(--dim)",marginTop:2},children:[H," ",H===1?"group":"groups"," · ",re," ",re===1?"instance":"instances"]})]}),s.jsxs("div",{style:{display:"flex",gap:8},children:[s.jsx("button",{className:"btn-ghost",onClick:V,style:{fontSize:"0.78rem",padding:"6px 12px"},children:"Expand All"}),s.jsx("button",{className:"btn-ghost",onClick:P,style:{fontSize:"0.78rem",padding:"6px 12px"},children:"Collapse All"}),s.jsx("button",{className:"btn-primary",onClick:S,style:{fontSize:"0.85rem"},children:"+ Add Instance"})]})]}),s.jsx("input",{className:"input",type:"text",value:L,onChange:b=>G(b.target.value),placeholder:`Search ${re} instances by name, URL, group, or environment…`,style:{marginBottom:16,fontSize:"0.85rem"}}),Y.length===0&&s.jsx("div",{style:{textAlign:"center",padding:48,color:"var(--dim)"},children:l.length===0?s.jsxs(s.Fragment,{children:[s.jsx("div",{style:{fontSize:"1.5rem",marginBottom:12},children:"🔗"}),s.jsx("p",{children:"No instances configured yet."}),s.jsxs("p",{style:{fontSize:"0.85rem",marginTop:8,color:"var(--text2)"},children:["Run ",s.jsx("code",{style:{background:"var(--surface2)",padding:"1px 6px",borderRadius:3},children:"nowaikit setup"})," or click ",s.jsx("strong",{children:"Add Instance"}),"."]})]}):s.jsxs("p",{children:['No instances match "',L,'"']})}),s.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:Y.map(b=>{const M=_.has(b.name),y=b.instances.reduce((A,X)=>{const j=X.environment||"other";return A[j]=(A[j]||0)+1,A},{});return s.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden"},children:[s.jsxs("button",{onClick:()=>ne(b.name),style:{width:"100%",display:"flex",alignItems:"center",gap:14,padding:"14px 20px",background:"transparent",border:"none",cursor:"pointer",textAlign:"left",transition:"background .15s"},children:[s.jsx("span",{style:{fontSize:"1.1rem",width:24,textAlign:"center",flexShrink:0},children:b.hasActive?"🟢":"⬡"}),s.jsxs("div",{style:{flex:1,minWidth:0},children:[s.jsx("div",{style:{fontWeight:600,fontSize:"0.95rem",color:"var(--text)"},children:b.name}),s.jsxs("div",{style:{fontSize:"0.75rem",color:"var(--text2)",marginTop:2,display:"flex",gap:8,flexWrap:"wrap"},children:[s.jsxs("span",{children:[b.instances.length," ",b.instances.length===1?"instance":"instances"]}),Object.entries(y).map(([A,X])=>{const j=su(A);return s.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4,padding:"0 6px",borderRadius:8,fontSize:"0.68rem",fontWeight:500,background:j.bg,color:j.fg},children:[X," ",A]},A)})]})]}),b.hasActive&&s.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:5,padding:"3px 10px",borderRadius:12,fontSize:"0.72rem",fontWeight:500,background:"rgba(34,197,94,0.12)",color:"var(--green)"},children:[s.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:"var(--green)"}}),"Active"]}),s.jsx("span",{style:{fontSize:"0.7rem",color:"var(--dim)",transition:"transform .2s",transform:M?"rotate(180deg)":"rotate(0deg)"},children:"▼"})]}),M&&s.jsx("div",{style:{borderTop:"1px solid var(--border)"},children:b.instances.map(A=>{const X=w[A.name],j=su(A.environment);return s.jsxs("div",{style:{padding:"12px 20px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:14,transition:"background .1s"},children:[s.jsx("div",{style:{width:56,flexShrink:0,textAlign:"center",padding:"4px 0",borderRadius:6,fontSize:"0.72rem",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.04em",background:j.bg,color:j.fg},children:A.environment||"—"}),s.jsxs("div",{style:{flex:1,minWidth:0},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:2},children:[s.jsx("span",{style:{fontWeight:600,fontSize:"0.88rem"},children:A.name}),A.active&&s.jsx("span",{style:{background:"#14532d",color:"#86efac",padding:"1px 8px",borderRadius:12,fontSize:"0.68rem",fontWeight:600},children:"ACTIVE"})]}),s.jsx("div",{style:{fontSize:"0.78rem",color:"var(--text2)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:A.url}),s.jsxs("div",{style:{fontSize:"0.72rem",color:"var(--dim)",marginTop:2},children:[A.authMethod," · ",A.toolPackage.replace(/_/g," ")," · ",A.writeEnabled?"read/write":"read-only"]})]}),s.jsxs("div",{style:{display:"flex",gap:6,flexShrink:0},children:[!A.active&&s.jsx("button",{className:"btn-ghost",onClick:()=>u(A.name),style:{fontSize:"0.78rem",padding:"5px 12px"},children:"Set Active"}),s.jsx("button",{className:"btn-ghost",onClick:()=>B(A.name),disabled:X==="testing",style:{fontSize:"0.78rem",padding:"5px 12px"},children:X==="testing"?"…":"Test"}),s.jsx("button",{onClick:()=>{confirm(`Remove instance "${A.name}"?`)&&p(A.name)},style:{background:"transparent",border:"1px solid rgba(239,68,68,0.3)",borderRadius:6,color:"var(--red)",padding:"5px 12px",cursor:"pointer",fontSize:"0.78rem",opacity:.7,transition:"opacity .15s"},children:"✕"})]}),X&&X!=="testing"&&s.jsxs("div",{style:{position:"absolute",bottom:4,left:90,fontSize:"0.72rem",color:X.ok?"var(--green)":"var(--red)"},children:[X.ok?"✓":"✗"," ",X.message]})]},A.name)})})]},b.name)})})]})}const fu=[{id:"all",label:"All"},{id:"incident",label:"Incidents"},{id:"problem",label:"Problems"},{id:"change",label:"Change"},{id:"task",label:"Tasks"},{id:"cmdb",label:"CMDB"},{id:"user",label:"Users"},{id:"knowledge",label:"Knowledge"},{id:"catalog",label:"Catalog"},{id:"script",label:"Scripts"},{id:"event",label:"Events"}],mu=[{id:"all",label:"All Tiers",color:"var(--dim)"},{id:"read",label:"Read",color:"var(--green)"},{id:"write",label:"Write",color:"var(--yellow)"},{id:"scripting",label:"Scripting",color:"#c084fc"},{id:"agentic",label:"Agentic",color:"var(--red)"}];function Vo(l){const p=(l||"").toLowerCase();return p.includes("[scripting]")||p.includes("scripting")?"scripting":p.includes("[agentic]")||p.includes("agentic playbook")?"agentic":p.includes("[write]")||p.includes("write_enabled")||p.includes("requires write")?"write":"read"}function zp(l){const p=mu.find(u=>u.id===l);return s.jsx("span",{style:{fontSize:"0.65rem",padding:"2px 6px",borderRadius:10,border:`1px solid ${p.color}`,color:p.color,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.04em"},children:p.label})}function $o(l){const p=l.toLowerCase();for(const u of fu.slice(1))if(p.includes(u.id))return u.id;return"other"}function Bp({tool:l,onClose:p}){var ne,V;const u=((ne=l.inputSchema)==null?void 0:ne.properties)??{},m=((V=l.inputSchema)==null?void 0:V.required)??[],[S,w]=W.useState({}),[q,_]=W.useState(""),[C,L]=W.useState(!1),[G,$]=W.useState("");async function Y(){var B;L(!0),_(""),$("");const P=wt;if(!P){$("Desktop app required"),L(!1);return}try{const H={};for(const[b,M]of Object.entries(S)){if(!M&&!m.includes(b))continue;const y=(B=u[b])==null?void 0:B.type;y==="number"||y==="integer"?H[b]=Number(M):y==="boolean"?H[b]=M==="true":H[b]=M}const re=await P.executeTool(l.name,H);re.success?_(typeof re.result=="string"?re.result:JSON.stringify(re.result,null,2)):$(re.error??"Tool execution failed")}catch(H){$(H instanceof Error?H.message:"Error")}L(!1)}return s.jsxs("div",{style:{position:"fixed",top:0,right:0,bottom:0,width:420,background:"var(--surface)",borderLeft:"1px solid var(--border2)",boxShadow:"var(--shadow)",zIndex:100,display:"flex",flexDirection:"column"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[s.jsx("code",{style:{color:"var(--accent)",fontWeight:700,fontSize:"0.95rem"},children:l.name}),s.jsx("button",{onClick:p,style:{background:"none",border:"none",color:"var(--dim)",fontSize:"1.2rem",padding:4},children:"✕"})]}),s.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px 20px"},children:[l.description&&s.jsx("p",{style:{fontSize:"0.85rem",color:"var(--text2)",marginBottom:20,lineHeight:1.6},children:l.description}),Object.entries(u).map(([P,B])=>s.jsxs("div",{style:{marginBottom:14},children:[s.jsxs("label",{style:{display:"block",fontSize:"0.78rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:5},children:[P,m.includes(P)&&s.jsx("span",{style:{color:"var(--red)",marginLeft:3},children:"*"})]}),B.description&&s.jsx("div",{style:{fontSize:"0.76rem",color:"var(--text2)",marginBottom:5},children:B.description}),B.enum?s.jsxs("select",{value:S[P]??"",onChange:H=>w(re=>({...re,[P]:H.target.value})),style:{width:"100%",background:"var(--surface2)",border:"1px solid var(--border2)",borderRadius:6,color:"var(--text)",padding:"8px 10px",fontSize:"0.85rem"},children:[s.jsx("option",{value:"",children:"— select —"}),B.enum.map(H=>s.jsx("option",{value:H,children:H},H))]}):s.jsx("input",{className:"input",type:B.type==="number"||B.type==="integer"?"number":"text",value:S[P]??"",onChange:H=>w(re=>({...re,[P]:H.target.value})),placeholder:B.type==="boolean"?"true / false":B.type??""})]},P)),Object.keys(u).length===0&&s.jsx("div",{style:{color:"var(--dim)",fontSize:"0.85rem"},children:"No parameters required."})]}),s.jsxs("div",{style:{padding:"14px 20px",borderTop:"1px solid var(--border)",flexShrink:0},children:[s.jsx("button",{className:"btn-primary",onClick:Y,disabled:C,style:{width:"100%",padding:10,opacity:C?.6:1},children:C?"Running…":"Run Tool"}),G&&s.jsxs("div",{style:{color:"var(--red)",fontSize:"0.8rem",marginTop:10},children:["✗ ",G]}),q&&s.jsx("pre",{className:"result-box",style:{marginTop:12,maxHeight:260},children:q})]})]})}function Fp({activeToolPackage:l,serverOnline:p,serverUrl:u,onRestart:m}){const[S,w]=W.useState([]),[q,_]=W.useState(!0),[C,L]=W.useState("all"),[G,$]=W.useState("all"),[Y,ne]=W.useState(""),[V,P]=W.useState(null),[B,H]=W.useState(!1);W.useEffect(()=>{const b=wt;if(!b){_(!1);return}b.listTools().then(M=>w(M??[])).catch(()=>{}).finally(()=>_(!1))},[]);const re=S.filter(b=>!(C!=="all"&&$o(b.name)!==C||G!=="all"&&Vo(b.description)!==G||Y&&!b.name.toLowerCase().includes(Y.toLowerCase())&&!(b.description??"").toLowerCase().includes(Y.toLowerCase())));return s.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"calc(100vh - 56px)"},children:[s.jsxs("div",{className:"page-header",style:{marginBottom:16},children:[s.jsxs("div",{children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"7",width:"20",height:"14",rx:"2",ry:"2"}),s.jsx("path",{d:"M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16"})]}),"Tools"]}),!q&&s.jsxs("div",{style:{fontSize:"0.78rem",color:"var(--dim)",marginTop:2},children:[re.length," of ",S.length," tools · ",l.replace(/_/g," ")," package"]})]}),s.jsx("input",{className:"input",placeholder:"Search tools…",value:Y,onChange:b=>ne(b.target.value),style:{width:220}})]}),s.jsx("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:10},children:fu.map(b=>{const M=b.id==="all"?S.length:S.filter(y=>$o(y.name)===b.id).length;return M===0&&b.id!=="all"?null:s.jsxs("button",{onClick:()=>L(b.id),style:{padding:"5px 12px",borderRadius:20,fontSize:"0.8rem",border:"1px solid",borderColor:C===b.id?"var(--accent)":"var(--border2)",background:C===b.id?"var(--accent-bg)":"transparent",color:C===b.id?"var(--accent)":"var(--text2)",fontWeight:C===b.id?600:400,transition:"all .15s"},children:[b.label," ",s.jsx("span",{style:{opacity:.7,marginLeft:2},children:M})]},b.id)})}),s.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:20,alignItems:"center"},children:[s.jsx("span",{style:{fontSize:"0.75rem",color:"var(--dim)",marginRight:4},children:"Tier:"}),mu.map(b=>{const M=b.id==="all"?S.length:S.filter(y=>Vo(y.description)===b.id).length;return s.jsxs("button",{onClick:()=>$(b.id),style:{padding:"4px 10px",borderRadius:16,fontSize:"0.75rem",border:"1px solid",borderColor:G===b.id?b.color:"var(--border2)",background:G===b.id?`${b.color}15`:"transparent",color:G===b.id?b.color:"var(--text2)",fontWeight:G===b.id?600:400,transition:"all .15s"},children:[b.label," ",s.jsx("span",{style:{opacity:.7,marginLeft:2},children:M})]},b.id)})]}),!p&&!q&&s.jsxs("div",{style:{background:"rgba(251,191,36,0.1)",border:"1px solid rgba(251,191,36,0.25)",borderRadius:8,padding:"10px 16px",marginBottom:16,fontSize:"0.85rem",color:"var(--yellow)",display:"flex",alignItems:"center",gap:10},children:[s.jsx("span",{children:"⚠"}),s.jsxs("span",{style:{flex:1},children:["HTTP server offline — ",s.jsx("strong",{children:"Run"})," will fail."]}),s.jsx("button",{disabled:B,onClick:async()=>{const b=wt;b&&(H(!0),await b.startServer(),H(!1),m==null||m())},style:{background:"rgba(251,191,36,0.2)",border:"1px solid rgba(251,191,36,0.4)",color:"var(--yellow)",borderRadius:6,padding:"4px 12px",fontSize:"0.8rem",cursor:"pointer",flexShrink:0,opacity:B?.6:1},children:B?"Starting…":"Start Server"})]}),q?s.jsxs("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--dim)",gap:10},children:[s.jsx("span",{className:"spinner"})," Loading tools…"]}):re.length===0?s.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--dim)"},children:S.length===0?"No tools loaded — ensure HTTP server is running":"No tools match the filter"}):s.jsx("div",{style:{flex:1,overflowY:"auto",display:"grid",gridTemplateColumns:"repeat(auto-fill,minmax(260px,1fr))",gap:10,alignContent:"start"},children:re.map(b=>s.jsxs("button",{onClick:()=>P((V==null?void 0:V.name)===b.name?null:b),style:{background:(V==null?void 0:V.name)===b.name?"var(--accent-bg)":"var(--surface)",border:`1px solid ${(V==null?void 0:V.name)===b.name?"var(--accent)":"var(--border)"}`,borderRadius:"var(--radius)",padding:"14px 16px",textAlign:"left",cursor:"pointer",transition:"all .15s"},children:[s.jsx("div",{style:{fontFamily:"monospace",fontSize:"0.82rem",color:"var(--accent)",fontWeight:600,marginBottom:5},children:b.name}),s.jsx("div",{style:{fontSize:"0.78rem",color:"var(--text2)",lineHeight:1.4,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:b.description||"No description"}),s.jsxs("div",{style:{marginTop:8,display:"flex",gap:6,alignItems:"center"},children:[s.jsx("span",{className:"badge-dim",children:$o(b.name)}),zp(Vo(b.description))]})]},b.name))}),V&&s.jsx(Bp,{tool:V,serverUrl:u,onClose:()=>P(null)})]})}const Op=[15,25,50,100];function Wp(){return wt}function Up(){const[l,p]=W.useState([]),[u,m]=W.useState(!0),[S,w]=W.useState(""),[q,_]=W.useState(null),[C,L]=W.useState(0),[G,$]=W.useState(25);function Y(){m(!0),_(null),L(0);const y=Wp();if(!y){m(!1);return}y.getAuditLogs(2e3).then(A=>{p(A??[])}).catch(()=>{}).finally(()=>m(!1))}W.useEffect(()=>{Y()},[]);const ne=l.filter(y=>{if(!S)return!0;const A=S.toLowerCase();return(y.tool??"").toLowerCase().includes(A)||(y.instance??"").toLowerCase().includes(A)||(y.provider??"").toLowerCase().includes(A)||(y.model??"").toLowerCase().includes(A)||(y.error??"").toLowerCase().includes(A)||(y.event??"").toLowerCase().includes(A)||(y.user??"").toLowerCase().includes(A)}),V=Math.ceil(ne.length/G),P=ne.slice(C*G,(C+1)*G);function B(y){if(!y)return"—";try{const A=new Date(y);return A.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})+" "+A.toLocaleDateString(void 0,{month:"short",day:"numeric"})}catch{return y}}function H(y){return y.success===!0?s.jsx("span",{className:"badge-green",children:"ok"}):y.success===!1?s.jsx("span",{className:"badge-red",children:"error"}):s.jsx("span",{className:"badge-dim",children:"—"})}function re(){const y=["Time","Event","Tool","Instance","User","Provider","Model","Status","Duration (ms)","Input Tokens","Output Tokens","Error"],A=ne.map(Z=>[Z.ts??"",Z.event??"",Z.tool||Z.resource||Z.prompt||"",Z.instance??"",Z.user??"",Z.provider??"",Z.model??"",Z.success===!0?"ok":Z.success===!1?"error":"",Z.durationMs!=null?String(Z.durationMs):"",Z.inputTokens!=null?String(Z.inputTokens):"",Z.outputTokens!=null?String(Z.outputTokens):"",Z.error??""]),X=[y,...A].map(Z=>Z.map(_e=>`"${String(_e).replace(/"/g,'""')}"`).join(",")).join(`
46
+ `),j=new Blob([X],{type:"text/csv"}),F=URL.createObjectURL(j),O=document.createElement("a");O.href=F,O.download=`nowaikit-audit-${new Date().toISOString().slice(0,10)}.csv`,O.click(),URL.revokeObjectURL(F)}const b={padding:"8px 12px",fontSize:"0.72rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.06em",textAlign:"left",borderBottom:"1px solid var(--border)",fontWeight:600},M={padding:"10px 12px",fontSize:"0.82rem",borderBottom:"1px solid var(--border)",verticalAlign:"middle"};return s.jsxs("div",{children:[s.jsxs("div",{className:"page-header",children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),s.jsx("polyline",{points:"14 2 14 8 20 8"}),s.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),s.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"})]}),"Audit Log"]}),s.jsxs("div",{style:{display:"flex",gap:8},children:[s.jsx("input",{className:"input",placeholder:"Filter by tool, instance, provider, model…",value:S,onChange:y=>{w(y.target.value),L(0)},style:{width:280}}),s.jsx("button",{className:"btn-ghost",onClick:re,disabled:ne.length===0,style:{padding:"6px 14px",fontSize:"0.8rem"},title:"Export filtered logs as CSV",children:"Export CSV"}),s.jsx("button",{className:"btn-ghost",onClick:Y,style:{padding:"6px 14px",fontSize:"0.8rem"},children:"↻"})]})]}),s.jsxs("div",{style:{fontSize:"0.78rem",color:"var(--dim)",marginBottom:14},children:["Log: ",s.jsx("code",{style:{color:"var(--text2)"},children:"~/.config/nowaikit/audit.jsonl"}),!u&&s.jsxs("span",{style:{marginLeft:12},children:["Showing ",P.length," of ",ne.length," entries",ne.length!==l.length&&` (${l.length} total)`]})]}),u?s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:200,color:"var(--dim)",gap:10},children:[s.jsx("span",{className:"spinner"})," Loading logs…"]}):l.length===0?s.jsxs("div",{className:"card",style:{padding:32,textAlign:"center",color:"var(--dim)"},children:[s.jsx("div",{style:{marginBottom:8},children:"No audit log entries found."}),s.jsx("div",{style:{fontSize:"0.8rem"},children:"Logs appear after tools are called or chat messages are sent."})]}):s.jsxs("div",{className:"card",style:{overflow:"auto"},children:[s.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",minWidth:1e3},children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{style:b,children:"Time"}),s.jsx("th",{style:b,children:"Event"}),s.jsx("th",{style:b,children:"Tool"}),s.jsx("th",{style:b,children:"Instance"}),s.jsx("th",{style:b,children:"User"}),s.jsx("th",{style:b,children:"Provider"}),s.jsx("th",{style:b,children:"Model"}),s.jsx("th",{style:b,children:"Status"}),s.jsx("th",{style:b,children:"Tokens"}),s.jsx("th",{style:b,children:"Duration"}),s.jsx("th",{style:b,children:"Error"})]})}),s.jsx("tbody",{children:P.map((y,A)=>s.jsxs("tr",{onClick:()=>_(q===y?null:y),style:{cursor:"pointer",background:q===y?"var(--surface2)":"transparent",transition:"background .1s"},children:[s.jsx("td",{style:{...M,color:"var(--text2)",fontFamily:"monospace",fontSize:"0.78rem",whiteSpace:"nowrap"},children:B(y.ts)}),s.jsx("td",{style:{...M,fontSize:"0.75rem",color:"var(--dim)"},children:y.event??"—"}),s.jsx("td",{style:{...M,fontFamily:"monospace",color:"var(--accent)",fontWeight:500},children:y.tool||y.resource||y.prompt||"—"}),s.jsx("td",{style:{...M,fontSize:"0.8rem",color:"var(--text2)"},children:y.instance??"—"}),s.jsx("td",{style:{...M,fontSize:"0.8rem",color:"var(--text2)"},children:y.user??"—"}),s.jsx("td",{style:{...M,fontSize:"0.8rem",color:"var(--text2)"},children:y.provider??"—"}),s.jsx("td",{style:{...M,fontFamily:"monospace",fontSize:"0.75rem",color:"var(--text2)",maxWidth:150,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y.model??"—"}),s.jsx("td",{style:M,children:H(y)}),s.jsx("td",{style:{...M,fontFamily:"monospace",fontSize:"0.75rem",color:"var(--text2)",whiteSpace:"nowrap"},children:y.inputTokens!=null||y.outputTokens!=null?`${y.inputTokens??0}→${y.outputTokens??0}`:"—"}),s.jsx("td",{style:{...M,color:"var(--text2)"},children:y.durationMs!=null?`${y.durationMs}ms`:"—"}),s.jsx("td",{style:{...M,color:"var(--red)",fontSize:"0.75rem",maxWidth:200,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y.error??""})]},C*G+A))})]}),ne.length>0&&s.jsxs("div",{style:{padding:"12px 16px",display:"flex",alignItems:"center",justifyContent:"space-between",borderTop:"1px solid var(--border)",flexWrap:"wrap",gap:8},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:"0.78rem",color:"var(--text2)"},children:[s.jsx("span",{children:"Rows:"}),s.jsx("select",{value:G,onChange:y=>{$(Number(y.target.value)),L(0)},style:{background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text)",padding:"3px 6px",fontSize:"0.78rem"},children:Op.map(y=>s.jsx("option",{value:y,children:y},y))})]}),s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[s.jsx("button",{className:"btn-ghost",onClick:()=>L(0),disabled:C===0,style:{padding:"4px 8px",fontSize:"0.75rem"},children:"« First"}),s.jsx("button",{className:"btn-ghost",onClick:()=>L(y=>Math.max(0,y-1)),disabled:C===0,style:{padding:"4px 8px",fontSize:"0.75rem"},children:"‹ Prev"}),(()=>{const y=[],A=Math.max(0,C-2),X=Math.min(V-1,C+2);A>0&&y.push(0),A>1&&y.push(-1);for(let j=A;j<=X;j++)y.push(j);return X<V-2&&y.push(-2),X<V-1&&y.push(V-1),y.map((j,F)=>j<0?s.jsx("span",{style:{padding:"0 4px",color:"var(--dim)",fontSize:"0.75rem"},children:"…"},`e${F}`):s.jsx("button",{className:"btn-ghost",onClick:()=>L(j),style:{padding:"4px 8px",fontSize:"0.75rem",minWidth:28,background:j===C?"var(--accent)":"transparent",color:j===C?"#fff":"var(--text2)",borderRadius:4,fontWeight:j===C?600:400},children:j+1},j))})(),s.jsx("button",{className:"btn-ghost",onClick:()=>L(y=>Math.min(V-1,y+1)),disabled:C>=V-1,style:{padding:"4px 8px",fontSize:"0.75rem"},children:"Next ›"}),s.jsx("button",{className:"btn-ghost",onClick:()=>L(V-1),disabled:C>=V-1,style:{padding:"4px 8px",fontSize:"0.75rem"},children:"Last »"})]}),s.jsxs("span",{style:{fontSize:"0.75rem",color:"var(--dim)"},children:[C*G+1,"–",Math.min((C+1)*G,ne.length)," of ",ne.length]})]}),q&&s.jsxs("div",{style:{padding:"14px 16px",borderTop:"2px solid var(--border2)",background:"var(--surface2)"},children:[s.jsx("div",{style:{fontSize:"0.72rem",color:"var(--dim)",marginBottom:6,textTransform:"uppercase",letterSpacing:"0.06em"},children:"Entry Detail"}),s.jsx("pre",{style:{fontSize:"0.78rem",overflowX:"auto",color:"var(--text)",lineHeight:1.5},children:JSON.stringify(q,null,2)})]})]})]})}function Gp({size:l=16,color:p="currentColor",style:u}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:p,viewBox:"0 0 16 16",style:u,children:s.jsx("path",{d:"m3.127 10.604 3.135-1.76.053-.153-.053-.085H6.11l-.525-.032-1.791-.048-1.554-.065-1.505-.08-.38-.081L0 7.832l.036-.234.32-.214.455.04 1.009.069 1.513.105 1.097.064 1.626.17h.259l.036-.105-.089-.065-.068-.064-1.566-1.062-1.695-1.121-.887-.646-.48-.327-.243-.306-.104-.67.435-.48.585.04.15.04.593.456 1.267.981 1.654 1.218.242.202.097-.068.012-.049-.109-.181-.9-1.626-.96-1.655-.428-.686-.113-.411a2 2 0 0 1-.068-.484l.496-.674L4.446 0l.662.089.279.242.411.94.666 1.48 1.033 2.014.302.597.162.553.06.17h.105v-.097l.085-1.134.157-1.392.154-1.792.052-.504.25-.605.497-.327.387.186.319.456-.045.294-.19 1.23-.37 1.93-.243 1.29h.142l.161-.16.654-.868 1.097-1.372.484-.545.565-.601.363-.287h.686l.505.751-.226.775-.707.895-.585.759-.839 1.13-.524.904.048.072.125-.012 1.897-.403 1.024-.186 1.223-.21.553.258.06.263-.218.536-1.307.323-1.533.307-2.284.54-.028.02.032.04 1.029.098.44.024h1.077l2.005.15.525.346.315.424-.053.323-.807.411-3.631-.863-.872-.218h-.12v.073l.726.71 1.331 1.202 1.667 1.55.084.383-.214.302-.226-.032-1.464-1.101-.565-.497-1.28-1.077h-.084v.113l.295.432 1.557 2.34.08.718-.112.234-.404.141-.444-.08-.911-1.28-.94-1.44-.759-1.291-.093.053-.448 4.821-.21.246-.484.186-.403-.307-.214-.496.214-.98.258-1.28.21-1.016.19-1.263.112-.42-.008-.028-.092.012-.953 1.307-1.448 1.957-1.146 1.227-.274.109-.477-.247.045-.44.266-.39 1.586-2.018.956-1.25.617-.723-.004-.105h-.036l-4.212 2.736-.75.096-.324-.302.04-.496.154-.162 1.267-.871z"})})}function Hp({size:l=16,color:p="currentColor",style:u}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:p,viewBox:"0 0 16 16",style:u,children:s.jsx("path",{d:"M14.949 6.547a3.94 3.94 0 0 0-.348-3.273 4.11 4.11 0 0 0-4.4-1.934A4.1 4.1 0 0 0 8.423.2 4.15 4.15 0 0 0 6.305.086a4.1 4.1 0 0 0-1.891.948 4.04 4.04 0 0 0-1.158 1.753 4.1 4.1 0 0 0-1.563.679A4 4 0 0 0 .554 4.72a3.99 3.99 0 0 0 .502 4.731 3.94 3.94 0 0 0 .346 3.274 4.11 4.11 0 0 0 4.402 1.933c.382.425.852.764 1.377.995.526.231 1.095.35 1.67.346 1.78.002 3.358-1.132 3.901-2.804a4.1 4.1 0 0 0 1.563-.68 4 4 0 0 0 1.14-1.253 3.99 3.99 0 0 0-.506-4.716m-6.097 8.406a3.05 3.05 0 0 1-1.945-.694l.096-.054 3.23-1.838a.53.53 0 0 0 .265-.455v-4.49l1.366.778q.02.011.025.035v3.722c-.003 1.653-1.361 2.992-3.037 2.996m-6.53-2.75a2.95 2.95 0 0 1-.36-2.01l.095.057L5.29 12.09a.53.53 0 0 0 .527 0l3.949-2.246v1.555a.05.05 0 0 1-.022.041L6.473 13.3c-1.454.826-3.311.335-4.15-1.098m-.85-6.94A3.02 3.02 0 0 1 3.07 3.949v3.785a.51.51 0 0 0 .262.451l3.93 2.237-1.366.779a.05.05 0 0 1-.048 0L2.585 9.342a2.98 2.98 0 0 1-1.113-4.094zm11.216 2.571L8.747 5.576l1.362-.776a.05.05 0 0 1 .048 0l3.265 1.86a3 3 0 0 1 1.173 1.207 2.96 2.96 0 0 1-.27 3.2 3.05 3.05 0 0 1-1.36.997V8.279a.52.52 0 0 0-.276-.445m1.36-2.015-.097-.057-3.226-1.855a.53.53 0 0 0-.53 0L6.249 6.153V4.598a.04.04 0 0 1 .019-.04L9.533 2.7a3.07 3.07 0 0 1 3.257.139c.474.325.843.778 1.066 1.303.223.526.289 1.103.191 1.664zM5.503 8.575 4.139 7.8a.05.05 0 0 1-.026-.037V4.049c0-.57.166-1.127.476-1.607s.752-.864 1.275-1.105a3.08 3.08 0 0 1 3.234.41l-.096.054-3.23 1.838a.53.53 0 0 0-.265.455zm.742-1.577 1.758-1 1.762 1v2l-1.755 1-1.762-1z"})})}function Vp({size:l=16,color:p="currentColor",style:u}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:p,viewBox:"0 0 28 28",style:u,children:s.jsx("path",{d:"M14 28C14 26.0633 13.6267 24.2433 12.88 22.54C12.1567 20.8367 11.165 19.355 9.905 18.095C8.645 16.835 7.16333 15.8433 5.46 15.12C3.75667 14.3733 1.93667 14 0 14C1.93667 14 3.75667 13.6383 5.46 12.915C7.16333 12.1683 8.645 11.165 9.905 9.905C11.165 8.645 12.1567 7.16333 12.88 5.46C13.6267 3.75667 14 1.93667 14 0C14 1.93667 14.3617 3.75667 15.085 5.46C15.8317 7.16333 16.835 8.645 18.095 9.905C19.355 11.165 20.8367 12.1683 22.54 12.915C24.2433 13.6383 26.0633 14 28 14C26.0633 14 24.2433 14.3733 22.54 15.12C20.8367 15.8433 19.355 16.835 18.095 18.095C16.835 19.355 15.8317 20.8367 15.085 22.54C14.3617 24.2433 14 26.0633 14 28Z"})})}function $p({size:l=16,color:p="currentColor",style:u}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:p,viewBox:"0 0 24 24",style:u,children:s.jsx("path",{d:"M3 3v18h18V3zm11.72 13.37c-.41.38-.82.66-1.33.87l-.21.09c-.83.3-1.82.21-2.63-.1-.45-.21-.82-.46-1.19-.8.33-.41.66-.75 1.07-1.07l.27.21c.5.35 1 .47 1.61.41.62-.12 1.12-.4 1.52-.9.37-.61.41-1.09.41-1.8V10.4c0-.72-.15-1.18-.6-1.74-.61-.49-1.17-.74-1.96-.7-.66.11-1.19.42-1.59.95-.33.53-.48 1.07-.37 1.69.2.68.45 1.25 1.07 1.61.52.27.98.32 1.56.33h.25c.2.02.4.02.61.03V14c-1.49.06-2.65.06-3.84-.97a4.22 4.22 0 0 1-1.23-2.8c.04-.88.35-1.6.86-2.32l.15-.23c1.43-1.51 3.7-1.61 5.31-.31l.17.14c.58.52.96 1.25 1.08 2.01 0 .16.01.33.01.49v3.6c0 1.05-.3 1.95-1.02 2.74Z"})})}function Kp({size:l=16,color:p="currentColor",style:u}){return s.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:l,height:l,fill:"none",stroke:p,viewBox:"0 0 512 512",style:u,children:[s.jsx("path",{d:"M3 248.945C18 248.945 76 236 106 219C136 202 136 202 198 158C276.497 102.293 332 120.945 423 120.945",strokeWidth:"90",strokeLinecap:"round"}),s.jsx("path",{d:"M511 121.5L357.25 210.268L357.25 32.7324L511 121.5Z",fill:p,stroke:"none"}),s.jsx("path",{d:"M0 249C15 249 73 261.945 103 278.945C133 295.945 133 295.945 195 339.945C273.497 395.652 329 377 420 377",strokeWidth:"90",strokeLinecap:"round"}),s.jsx("path",{d:"M508 376.445L354.25 287.678L354.25 465.213L508 376.445Z",fill:p,stroke:"none"})]})}const gu={anthropic:Gp,openai:Hp,google:Vp,groq:$p,openrouter:Kp};function Qp(l){const p=new Map;for(const m of l)if(m.role==="user"&&Array.isArray(m.content))for(const S of m.content)S.type==="tool_result"&&p.set(S.tool_use_id,S);const u=[];for(const m of l)if(m.role==="user"&&typeof m.content=="string")u.push({kind:"user",text:m.content});else if(m.role==="assistant"&&Array.isArray(m.content))for(const S of m.content)S.type==="text"&&u.push({kind:"assistant",parts:[S]}),S.type==="tool_use"&&u.push({kind:"tool",tu:S,result:p.get(S.id)});return u}function Yp(l){const p=/```[\w]*\n?([\s\S]*?)```/g,u=[];let m=0,S=0,w;for(;(w=p.exec(l))!==null;)w.index>m&&u.push(ou(l.slice(m,w.index),S++)),u.push(s.jsx("pre",{style:{background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:6,padding:"10px 14px",overflowX:"auto",fontSize:"0.8rem",margin:"8px 0"},children:s.jsx("code",{children:w[1].trim()})},S++)),m=w.index+w[0].length;return m<l.length&&u.push(ou(l.slice(m),S++)),u}function ou(l,p){const u=l.split(/(`[^`\n]+`|\*\*[^*]+\*\*)/g);return s.jsx("span",{style:{whiteSpace:"pre-wrap"},children:u.map((m,S)=>m.startsWith("`")&&m.endsWith("`")?s.jsx("code",{style:{background:"var(--surface3)",padding:"1px 5px",borderRadius:4,fontSize:"0.82em"},children:m.slice(1,-1)},S):m.startsWith("**")&&m.endsWith("**")?s.jsx("strong",{children:m.slice(2,-2)},S):m)},p)}function Xp({tu:l,result:p}){const[u,m]=W.useState(!1),S=p&&!p.is_error;return s.jsxs("div",{style:{background:"#1a1f35",border:"1px solid #2e3a5f",borderRadius:8,fontSize:"0.78rem",overflow:"hidden",fontFamily:"monospace"},children:[s.jsxs("button",{onClick:()=>m(w=>!w),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"8px 10px",background:"transparent",border:"none",color:"#93c5fd",cursor:"pointer",textAlign:"left"},children:[s.jsx("span",{style:{fontSize:"0.7rem",opacity:.7},children:u?"▼":"▶"}),s.jsx("span",{style:{fontWeight:600},children:l.name}),p&&s.jsx("span",{className:S?"badge-green":"badge-red",style:{marginLeft:"auto"},children:S?"ok":"error"}),!p&&s.jsx("span",{className:"badge-dim",style:{marginLeft:"auto"},children:"running…"})]}),u&&s.jsxs("div",{style:{padding:"8px 10px",borderTop:"1px solid #2e3a5f"},children:[s.jsx("div",{style:{color:"var(--dim)",fontSize:"0.68rem",marginBottom:3,letterSpacing:"0.05em"},children:"INPUT"}),s.jsx("pre",{style:{fontSize:"0.74rem",overflowX:"auto",color:"#a5f3fc",marginBottom:p?8:0},children:JSON.stringify(l.input,null,2)}),p&&s.jsxs(s.Fragment,{children:[s.jsx("div",{style:{color:"var(--dim)",fontSize:"0.68rem",marginBottom:3,letterSpacing:"0.05em"},children:p.is_error?"ERROR":"OUTPUT"}),s.jsx("pre",{style:{fontSize:"0.74rem",overflowX:"auto",color:p.is_error?"var(--red)":"#a5f3fc"},children:p.content})]})]})]})}const au=[{id:"anthropic",label:"Claude"},{id:"openai",label:"ChatGPT"},{id:"google",label:"Gemini"},{id:"groq",label:"Groq"},{id:"openrouter",label:"OpenRouter"}],lu={anthropic:[{value:"claude-opus-4-6",label:"Claude Opus 4.6"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5"}],openai:[{value:"gpt-5.2",label:"GPT-5.2"},{value:"gpt-5.2-pro",label:"GPT-5.2 Pro"},{value:"gpt-5.1",label:"GPT-5.1"},{value:"gpt-5-mini",label:"GPT-5 mini"},{value:"gpt-5-nano",label:"GPT-5 nano"},{value:"gpt-4.1",label:"GPT-4.1"},{value:"gpt-4.1-mini",label:"GPT-4.1 mini"},{value:"gpt-4o",label:"GPT-4o"},{value:"o3",label:"o3"},{value:"o4-mini",label:"o4 mini"}],google:[{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro"},{value:"gemini-3-pro-preview",label:"Gemini 3 Pro"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro"}],groq:[{value:"meta-llama/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick"},{value:"meta-llama/llama-4-scout-17b-16e-instruct",label:"Llama 4 Scout"},{value:"llama-3.3-70b-versatile",label:"Llama 3.3 70B"},{value:"llama-3.1-8b-instant",label:"Llama 3.1 8B"}],openrouter:[{value:"openai/o1-pro",label:"OpenAI o1 Pro"},{value:"xai/grok-4",label:"Grok 4 (xAI)"},{value:"anthropic/claude-3.7-sonnet",label:"Claude 3.7 Sonnet"},{value:"google/gemini-2.0-flash-001",label:"Gemini 2.0 Flash"},{value:"deepseek/deepseek-r1:free",label:"DeepSeek R1 (free)"},{value:"meta-llama/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick"},{value:"meta-llama/llama-3.3-70b-instruct",label:"Llama 3.3 70B"},{value:"google/gemma-2-9b-it:free",label:"Gemma 2 9B (free)"}]},Jp=["Show me my 5 most recent open incidents","List all critical change requests scheduled for this week","Find all CIs with no owner assigned","What problems have been open for more than 30 days?"],cu=128,Zp=new Set(["query_records","get_record","get_table_schema","get_user","get_group","get_incident","create_incident","update_incident","resolve_incident","get_change_request","list_change_requests","create_change_request","update_change_request","get_task","list_my_tasks","update_task","get_problem","create_problem","update_problem","search_knowledge","get_knowledge_article","add_work_note","add_comment","search_cmdb_ci","get_cmdb_ci","list_users","list_groups","natural_language_search"]),uu={incident:["incident","resolve_incident","close_incident","add_work_note","add_comment"],incidents:["incident","query_records"],change:["change_request","change"],changes:["change_request","query_records"],problem:["problem"],problems:["problem","query_records"],task:["task"],tasks:["task","query_records"],user:["user","get_user"],users:["user","list_users","query_records"],group:["group"],groups:["group","list_groups"],knowledge:["knowledge"],kb:["knowledge"],ci:["cmdb","ci"],cmdb:["cmdb","ci"],server:["cmdb","ci_server"],catalog:["catalog"],flow:["flow"],report:["report","aggregate","trend"],sla:["sla"],approval:["approval"],hr:["hr_"],security:["security"],vulnerability:["vulnerab"],asset:["asset"],license:["license"],portal:["portal"],widget:["widget"],script:["script","business_rule"],acl:["acl"],notification:["notification","email"],atf:["atf"],test:["atf","test"]};function du(l){return l.endsWith("ies")?l.slice(0,-3)+"y":l.endsWith("ses")||l.endsWith("xes")||l.endsWith("zes")||l.endsWith("es")?l.slice(0,-2):l.endsWith("s")&&!l.endsWith("ss")?l.slice(0,-1):l.endsWith("ing")&&l.length>5?l.slice(0,-3):l.endsWith("ed")&&l.length>4?l.slice(0,-2):l}function ey(l,p){if(l.length<=cu)return l;const m=p.toLowerCase().split(/\s+/).filter(_=>_.length>2),S=[...new Set([...m,...m.map(du)])],w=[];for(const _ of m){const C=uu[_]||uu[du(_)];C&&w.push(...C)}const q=l.map(_=>{let C=0;const L=_.name.toLowerCase(),G=(_.description||"").toLowerCase();Zp.has(_.name)&&(C+=5);for(const $ of S)L.includes($)&&(C+=3),G.includes($)&&(C+=1);for(const $ of w)L.includes($)&&(C+=4);return(L.startsWith("list_")||L.startsWith("get_")||L.startsWith("search_"))&&(C+=1),{tool:_,score:C}});return q.sort((_,C)=>C.score-_.score),q.slice(0,cu).map(_=>_.tool)}const ty=8;async function ry(l,p,u,m,S,w){if(!p)return{error:"No API key configured. Go to Settings to add one."};const q=wt;let _=[...m];try{for(let C=0;C<ty;C++){const L=_.map(P=>({role:P.role,content:P.content})),G=await q.sendChat({provider:l,apiKey:p,model:u,messages:L,tools:S.length>0?S:void 0});if(G.error)return{error:G.error};const Y=(G.content??[]).map(P=>P.type==="tool_use"?{type:"tool_use",id:P.id??`toolu_${Date.now()}`,name:P.name??"",input:P.input??{}}:{type:"text",text:P.text??""});_=[..._,{role:"assistant",content:Y}],w(_);const ne=Y.filter(P=>P.type==="tool_use");if(ne.length===0||G.stop_reason!=="tool_use")return{messages:_};const V=[];for(const P of ne)try{const B=await q.executeTool(P.name,P.input),H=B.success?typeof B.result=="string"?B.result:JSON.stringify(B.result,null,2):`Error: ${B.error??"Tool execution failed"}`;V.push({type:"tool_result",tool_use_id:P.id,content:H,is_error:!B.success})}catch(B){V.push({type:"tool_result",tool_use_id:P.id,content:`Error: ${B instanceof Error?B.message:"Unknown error"}`,is_error:!0})}_=[..._,{role:"user",content:V}],w(_)}return{messages:_,error:"Tool execution limit reached. The AI made too many consecutive tool calls."}}catch(C){return{error:C instanceof Error?C.message:"Request failed"}}}const Nn="nowaikit_chat_history";function ny(l,p){try{const u=JSON.parse(localStorage.getItem(Nn)||"{}");u[l]=p,localStorage.setItem(Nn,JSON.stringify(u))}catch{}}function pu(l){try{return JSON.parse(localStorage.getItem(Nn)||"{}")[l]||[]}catch{return[]}}function iy(l){try{const p=JSON.parse(localStorage.getItem(Nn)||"{}");delete p[l],localStorage.setItem(Nn,JSON.stringify(p))}catch{}}function sy({settings:l,serverUrl:p,instances:u}){var I;const[m,S]=W.useState(l.activeProvider||"anthropic"),[w,q]=W.useState(l.model||"claude-sonnet-4-6"),[_,C]=W.useState(()=>pu(l.activeProvider||"anthropic")),[L,G]=W.useState(""),[$,Y]=W.useState(!1),[ne,V]=W.useState(""),[P,B]=W.useState([]),[H,re]=W.useState(!1),[b,M]=W.useState(""),[y,A]=W.useState(0),X=W.useRef(null),j=W.useRef(null),F=W.useRef(null),O=W.useRef(m);W.useEffect(()=>{O.current===m&&ny(m,_)},[_,m]),W.useEffect(()=>{const E=lu[m],U=E[0].value;E.find(oe=>oe.value===w)||q(U),C(pu(m)),V(""),O.current=m},[m]),W.useEffect(()=>{var E;(E=X.current)==null||E.scrollIntoView({behavior:"smooth"})},[_,$]),W.useEffect(()=>{wt.listTools().then(U=>B(U??[])).catch(()=>{})},[]),W.useEffect(()=>{if(!H)return;const E=U=>{var oe,de;!((oe=F.current)!=null&&oe.contains(U.target))&&!((de=j.current)!=null&&de.contains(U.target))&&re(!1)};return document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[H]);const Z=l.providers[m],_e=!!(Z!=null&&Z.apiKey),ve=u.find(E=>E.active),we=Qp(_),fe=b?P.filter(E=>{var U;return E.name.toLowerCase().includes(b.toLowerCase())||((U=E.description)==null?void 0:U.toLowerCase().includes(b.toLowerCase()))}):P,Se=fe.slice(0,10);function pe(E){const U=E.target.value;G(U);const oe=U.match(/(?:^|\s)\/([\w_]*)$/);oe?(M(oe[1]),A(0),re(!0)):re(!1)}function z(E){var oe;const U=L.replace(/(?:^|\s)\/([\w_]*)$/,de=>`${de.startsWith(" ")?" ":""}/${E.name} `);G(U),re(!1),(oe=j.current)==null||oe.focus()}async function ie(E){const U=(E??L).trim();if(!U||$)return;G(""),V(""),re(!1);const oe=U.replace(/\/([\w_]+)/g,(se,ce)=>P.find(Ge=>Ge.name===ce)?`(use tool: ${ce})`:se),de=[..._,{role:"user",content:U}];C(de),Y(!0);try{const se=ey(P,U),ce=await ry(m,(Z==null?void 0:Z.apiKey)??"",w,de,se,he=>C(he));if(Y(!1),ce.error){V(ce.error);return}ce.messages&&C(ce.messages)}catch(se){Y(!1),V(se instanceof Error?se.message:"Chat request failed")}}function k(E){if(H&&Se.length>0){if(E.key==="ArrowDown"){E.preventDefault(),A(U=>Math.min(U+1,Se.length-1));return}if(E.key==="ArrowUp"){E.preventDefault(),A(U=>Math.max(U-1,0));return}if(E.key==="Tab"||E.key==="Enter"&&H){E.preventDefault(),Se[y]&&z(Se[y]);return}if(E.key==="Escape"){re(!1);return}}E.key==="Enter"&&!E.shiftKey&&(E.preventDefault(),ie())}const g={background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text)",padding:"6px 10px",fontSize:"0.8rem"};return s.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"calc(100vh - 56px)",maxWidth:900,margin:"0 auto"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:16,gap:12,flexWrap:"wrap"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsx("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"})}),"AI Chat"]}),ve&&s.jsxs("div",{style:{fontSize:"0.78rem",color:"var(--dim)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["Instance: ",ve.name," · ",ve.url]})]}),s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,flexWrap:"wrap"},children:[s.jsx("div",{style:{display:"flex",border:"1px solid var(--border)",borderRadius:6,overflow:"hidden"},children:au.map(E=>{var oe;const U=!!((oe=l.providers[E.id])!=null&&oe.apiKey);return s.jsxs("button",{onClick:()=>S(E.id),style:{padding:"5px 12px",border:"none",fontSize:"0.78rem",cursor:"pointer",background:m===E.id?"var(--accent)":"transparent",color:m===E.id?"#fff":U?"var(--text2)":"var(--dim)",fontWeight:m===E.id?600:400,transition:"all .15s",display:"flex",alignItems:"center",gap:5},children:[Jo.createElement(gu[E.id]??(()=>null),{size:14,color:m===E.id?"#fff":"currentColor"})," ",E.label,U&&m!==E.id&&s.jsx("span",{style:{width:5,height:5,borderRadius:"50%",background:"var(--green)"}})]},E.id)})}),s.jsx("select",{value:w,onChange:E=>q(E.target.value),style:g,children:lu[m].map(E=>s.jsx("option",{value:E.value,children:E.label},E.value))}),_.length>0&&s.jsx(s.Fragment,{children:s.jsx("button",{className:"btn-ghost",onClick:()=>{iy(m),C([]),V("")},style:{padding:"6px 14px",fontSize:"0.8rem"},children:"New Chat"})})]})]}),!_e&&s.jsxs("div",{style:{background:"rgba(251,191,36,0.1)",border:"1px solid rgba(251,191,36,0.3)",borderRadius:8,padding:"12px 16px",marginBottom:16,fontSize:"0.875rem",color:"var(--yellow)"},children:["No API key for ",s.jsx("strong",{children:(I=au.find(E=>E.id===m))==null?void 0:I.label}),". Go to ",s.jsx("strong",{children:"Settings → AI Providers"})," to add your key."]}),s.jsxs("div",{style:{flex:1,overflowY:"auto",marginBottom:16,display:"flex",flexDirection:"column",gap:4},children:[we.length===0&&s.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:24,color:"var(--dim)"},children:[s.jsxs("div",{style:{textAlign:"center"},children:[s.jsx("div",{style:{fontSize:"1.8rem",marginBottom:8},children:"🔗"}),s.jsx("div",{style:{fontSize:"0.95rem",color:"var(--text2)",fontWeight:500},children:"Ask anything about your ServiceNow instance"}),s.jsxs("div",{style:{fontSize:"0.8rem",marginTop:4},children:["Type ",s.jsx("code",{style:{background:"var(--surface2)",padding:"1px 5px",borderRadius:3},children:"/"})," to browse & run tools · Shift+Enter for new line"]})]}),s.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8,width:"100%",maxWidth:560},children:Jp.map(E=>s.jsx("button",{onClick:()=>ie(E),style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text2)",padding:"10px 14px",textAlign:"left",fontSize:"0.85rem",cursor:"pointer",transition:"all .15s"},children:E},E))})]}),we.map((E,U)=>E.kind==="user"?s.jsx("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:6},children:s.jsx("div",{style:{background:"var(--accent)",color:"#fff",borderRadius:8,padding:"10px 12px",maxWidth:"88%",fontSize:"0.85rem",lineHeight:1.5},children:E.text})},U):E.kind==="assistant"?s.jsx("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:6},children:s.jsx("div",{style:{background:"var(--surface2)",borderRadius:8,padding:"10px 12px",maxWidth:"88%",fontSize:"0.85rem",lineHeight:1.5},children:Yp(E.parts[0].text)})},U):E.kind==="tool"?s.jsx("div",{style:{maxWidth:"95%",marginBottom:4},children:s.jsx(Xp,{tu:E.tu,result:E.result})},U):null),$&&s.jsx("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:4},children:s.jsx("div",{style:{background:"var(--surface)",border:"1px solid var(--border)",borderRadius:"3px 14px 14px 14px",padding:"12px 16px"},children:s.jsx("div",{style:{display:"flex",gap:5,alignItems:"center"},children:[0,1,2].map(E=>s.jsx("div",{style:{width:7,height:7,borderRadius:"50%",background:"var(--dim)",animation:`bounce .9s ease-in-out ${E*.2}s infinite alternate`}},E))})})}),ne&&s.jsx("div",{style:{background:"rgba(248,113,113,0.1)",border:"1px solid rgba(248,113,113,0.3)",borderRadius:8,padding:"10px 14px",color:"var(--red)",fontSize:"0.85rem"},children:ne}),s.jsx("div",{ref:X})]}),H&&Se.length>0&&s.jsx("div",{ref:F,style:{position:"relative",marginBottom:4},children:s.jsxs("div",{style:{position:"absolute",bottom:"100%",left:0,right:0,background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.4)",zIndex:50,maxHeight:280,overflowY:"auto"},children:[s.jsx("div",{style:{padding:"8px 12px 6px",fontSize:"0.7rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.07em",borderBottom:"1px solid var(--border)"},children:"Tools — Tab or Enter to select · Esc to close"}),Se.map((E,U)=>s.jsxs("button",{onMouseDown:oe=>{oe.preventDefault(),z(E)},style:{display:"flex",alignItems:"baseline",gap:10,width:"100%",padding:"8px 12px",background:U===y?"var(--accent-bg)":"transparent",border:"none",cursor:"pointer",textAlign:"left",transition:"background .1s",borderBottom:U<Se.length-1?"1px solid var(--border)":"none"},children:[s.jsxs("code",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.8rem",flexShrink:0},children:["/",E.name]}),s.jsx("span",{style:{fontSize:"0.75rem",color:"var(--text2)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:E.description})]},E.name)),P.length>10&&s.jsxs("div",{style:{padding:"6px 12px",fontSize:"0.72rem",color:"var(--dim)",borderTop:"1px solid var(--border)"},children:[fe.length," tools · type to filter"]})]})}),s.jsxs("div",{style:{display:"flex",gap:10,alignItems:"flex-end",paddingBottom:4},children:[s.jsx("textarea",{ref:j,value:L,onChange:pe,onKeyDown:k,placeholder:"Ask anything… or type / to browse tools (Enter to send)",rows:1,disabled:$||!_e,style:{flex:1,background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:10,color:"var(--text)",padding:"11px 14px",fontSize:"0.9rem",resize:"none",outline:"none",transition:"border-color .15s, box-shadow .15s",minHeight:46,maxHeight:160,lineHeight:1.5,...L?{borderColor:"var(--accent)",boxShadow:"0 0 0 3px var(--accent-bg)"}:{}}}),s.jsx("button",{onClick:()=>ie(),disabled:$||!L.trim()||!_e,className:"btn-primary",style:{padding:"11px 20px",borderRadius:10,flexShrink:0,opacity:$||!L.trim()||!_e?.45:1},children:$?s.jsx("span",{className:"spinner",style:{width:16,height:16,borderWidth:2}}):"Send"})]}),s.jsx("style",{children:`
47
+ @keyframes bounce { from { transform: translateY(0); } to { transform: translateY(-5px); } }
48
+ textarea:focus { border-color: var(--accent) !important; box-shadow: 0 0 0 3px var(--accent-bg) !important; }
49
+ `})]})}const Ln=[{id:"anthropic",label:"Claude (Anthropic)",icon:"◈",keyLabel:"Anthropic API Key",keyPlaceholder:"sk-ant-api03-…",portalUrl:"https://console.anthropic.com/settings/keys",portalLabel:"Anthropic Console",subscriptionNote:"Anthropic API access is separate from Claude.ai subscriptions. You need an API key from the Anthropic Console.",signInSteps:['Click "Open Anthropic Console" below',"Sign in with your Anthropic account","Go to Settings → API Keys",'Click "Create Key", copy it',"Paste the key in the field that appears"]},{id:"openai",label:"ChatGPT / Codex (OpenAI)",icon:"◎",keyLabel:"OpenAI API Key",keyPlaceholder:"sk-proj-…",portalUrl:"https://platform.openai.com/api-keys",portalLabel:"OpenAI Platform",subscriptionNote:"ChatGPT Plus / Pro subscriptions give access to chat.openai.com but not the API. You need a separate API key from the OpenAI Platform.",signInSteps:['Click "Open OpenAI Platform" below',"Sign in with your OpenAI account",'Click "Create new secret key"',"Copy the key (shown only once)","Paste the key in the field that appears"]},{id:"google",label:"Gemini (Google AI)",icon:"◇",keyLabel:"Google AI API Key",keyPlaceholder:"AIza…",portalUrl:"https://aistudio.google.com/app/apikey",portalLabel:"Google AI Studio",subscriptionNote:"Sign in with your Google account to access Gemini API via Google AI Studio. Free tier available for personal use.",signInSteps:['Click "Sign in with Google" below',"Sign in with your Google account",'Click "Create API key"',"Copy the generated key","Paste the key in the field that appears"]},{id:"groq",label:"Groq (Free)",icon:"⚡",keyLabel:"Groq API Key",keyPlaceholder:"gsk_…",portalUrl:"https://console.groq.com/keys",portalLabel:"Groq Console",subscriptionNote:"Groq offers free, ultra-fast inference for open models like Llama 3.3 and Mixtral. Generous free tier with no credit card required.",signInSteps:['Click "Open Groq Console" below',"Sign up or sign in (free)","Go to API Keys",'Click "Create API Key", copy it',"Paste the key in the field that appears"]},{id:"openrouter",label:"OpenRouter (Multi-Provider)",icon:"⊕",keyLabel:"OpenRouter API Key",keyPlaceholder:"sk-or-v1-…",portalUrl:"https://openrouter.ai/keys",portalLabel:"OpenRouter",subscriptionNote:"OpenRouter is a unified gateway to 200+ models from OpenAI, Anthropic, Google, xAI, Meta, DeepSeek and more. Many models have free tiers — no credit card required.",signInSteps:['Click "Open OpenRouter" below',"Sign up or sign in (free)","Go to Keys",'Click "Create Key", copy it',"Paste the key in the field that appears"]}],Ko={anthropic:[{value:"claude-opus-4-6",label:"Claude Opus 4.6",desc:"Most capable, complex reasoning"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6",desc:"Balanced — recommended"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5",desc:"Fastest, lowest cost"}],openai:[{value:"gpt-5.2",label:"GPT-5.2",desc:"Latest flagship — most capable"},{value:"gpt-5.2-pro",label:"GPT-5.2 Pro",desc:"Highest quality, extended thinking"},{value:"gpt-5.1",label:"GPT-5.1",desc:"Previous flagship — strong all-round"},{value:"gpt-5-mini",label:"GPT-5 mini",desc:"Fast & affordable — great for tool use"},{value:"gpt-5-nano",label:"GPT-5 nano",desc:"Ultra-fast, lowest cost"},{value:"gpt-4.1",label:"GPT-4.1",desc:"Strong coding & instruction following"},{value:"gpt-4.1-mini",label:"GPT-4.1 mini",desc:"Fast & budget-friendly"},{value:"gpt-4o",label:"GPT-4o",desc:"Versatile multimodal"},{value:"o3",label:"o3",desc:"Advanced reasoning"},{value:"o4-mini",label:"o4 mini",desc:"Fast reasoning"}],google:[{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro",desc:"Latest — state-of-the-art reasoning"},{value:"gemini-3-pro-preview",label:"Gemini 3 Pro",desc:"Frontier-class multimodal"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash",desc:"Fast & capable — best value"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash",desc:"Previous gen — stable & proven"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro",desc:"Previous gen — advanced reasoning"}],groq:[{value:"meta-llama/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick",desc:"Best quality — 128 experts (recommended)"},{value:"meta-llama/llama-4-scout-17b-16e-instruct",label:"Llama 4 Scout",desc:"Fast & efficient — 16 experts"},{value:"llama-3.3-70b-versatile",label:"Llama 3.3 70B",desc:"Reliable workhorse — tool use"},{value:"llama-3.1-8b-instant",label:"Llama 3.1 8B",desc:"Ultra-fast, lightweight"}],openrouter:[{value:"openai/o1-pro",label:"OpenAI o1 Pro",desc:"High-end reasoning via OpenRouter"},{value:"xai/grok-4",label:"Grok 4 (xAI)",desc:"Latest xAI general-purpose model"},{value:"anthropic/claude-3.7-sonnet",label:"Claude 3.7 Sonnet",desc:"Latest Claude variant via OpenRouter"},{value:"google/gemini-2.0-flash-001",label:"Gemini 2.0 Flash",desc:"Google Gemini Flash variant"},{value:"deepseek/deepseek-r1:free",label:"DeepSeek R1",desc:"Free — open reasoning model"},{value:"meta-llama/llama-4-maverick-17b-128e-instruct",label:"Llama 4 Maverick",desc:"Free — best open model"},{value:"meta-llama/llama-3.3-70b-instruct",label:"Llama 3.3 70B",desc:"Free — strong general-purpose"},{value:"google/gemma-2-9b-it:free",label:"Gemma 2 9B",desc:"Free — lightweight Google model"}]},oy=[{id:"teal",color:"#00D4AA",label:"Teal (default)"},{id:"navy",color:"#0F4C81",label:"Navy"},{id:"blue",color:"#3b82f6",label:"Blue"},{id:"emerald",color:"#22c55e",label:"Emerald"},{id:"amber",color:"#f59e0b",label:"Amber"}];function pr(){return wt}function ay({settings:l,onSave:p,activeInstance:u,onNavigate:m}){const{mode:S,accent:w,setMode:q,setAccent:_}=hu(),[C,L]=W.useState(l),[G,$]=W.useState(""),[Y,ne]=W.useState(!1),[V,P]=W.useState(!1),[B,H]=W.useState(!1),[re,b]=W.useState(!1),[M,y]=W.useState("none"),[A,X]=W.useState(!1),[j,F]=W.useState(!1),[O,Z]=W.useState(null);function _e(){Z(null)}function ve(k,g){_e(),L(I=>({...I,providers:{...I.providers,[k]:{...I.providers[k],apiKey:g}}}))}async function we(){b(!0),await p(C),b(!1),H(!0),setTimeout(()=>H(!1),2e3)}async function fe(){y("steps"),X(!0);try{const k=pr();k?await k.openExternal(pe.portalUrl):window.open(pe.portalUrl,"_blank")}finally{X(!1),y("paste")}}async function Se(){var g;const k=((g=C.providers[G])==null?void 0:g.apiKey)??"";if(!k){Z({ok:!1,msg:"Enter a key first"});return}F(!0),Z(null);try{const E={anthropic:["sk-ant-"],openai:["sk-"],google:["AIza"],groq:["gsk_"],openrouter:["sk-or-"]}[G]??[];E.length>0&&!E.some(U=>k.startsWith(U))?Z({ok:!1,msg:`Key doesn't match expected format for ${G}`}):Z({ok:!0,msg:"Key format looks valid — save to use it"})}catch{Z({ok:!1,msg:"Validation error"})}finally{F(!1)}}const pe=Ln.find(k=>k.id===G)??Ln[0],z=(k,g)=>s.jsxs("div",{style:{marginBottom:28},children:[s.jsx("div",{style:{fontSize:"0.7rem",fontWeight:700,color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:12},children:k}),s.jsx("div",{className:"card",style:{padding:"20px 24px"},children:g})]}),ie=(k,g,I)=>s.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:24,padding:"12px 0",borderBottom:"1px solid var(--border)"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsx("div",{style:{fontWeight:500,marginBottom:2},children:k}),s.jsx("div",{style:{fontSize:"0.8rem",color:"var(--text2)"},children:g})]}),s.jsx("div",{style:{flexShrink:0},children:I})]});return s.jsxs("div",{style:{maxWidth:680},children:[s.jsxs("div",{className:"page-header",children:[s.jsxs("h2",{className:"page-title",style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"3"}),s.jsx("path",{d:"M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z"})]}),"Settings"]}),s.jsx("button",{className:"btn-primary",onClick:we,disabled:re,style:{opacity:re?.6:1},children:B?"✓ Saved":re?"Saving…":"Save Changes"})]}),s.jsxs("div",{style:{marginBottom:28},children:[s.jsxs("button",{onClick:()=>ne(k=>!k),style:{display:"flex",alignItems:"center",gap:8,width:"100%",background:"transparent",border:"none",cursor:"pointer",padding:0,marginBottom:12},children:[s.jsx("div",{style:{fontSize:"0.7rem",fontWeight:700,color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.08em"},children:"ServiceNow Connection"}),s.jsx("span",{style:{fontSize:"0.68rem",color:"var(--dim)",marginLeft:"auto"},children:u?u.name:"Not configured"}),s.jsx("span",{style:{fontSize:"0.7rem",color:"var(--dim)",transition:"transform .2s",transform:Y?"rotate(180deg)":"rotate(0deg)"},children:"▼"})]}),Y&&s.jsx("div",{className:"card",style:{padding:"20px 24px"},children:u?s.jsxs(s.Fragment,{children:[s.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"8px 24px",marginBottom:16},children:[["Instance",u.name],["URL",u.url],["Auth Method",u.authMethod],["Tool Package",u.toolPackage.replace(/_/g," ")],["Write Access",u.writeEnabled?"Enabled":"Read-only"]].map(([k,g])=>s.jsxs("div",{style:{padding:"8px 0",borderBottom:"1px solid var(--border)"},children:[s.jsx("div",{style:{fontSize:"0.72rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:3},children:k}),s.jsx("div",{style:{fontSize:"0.88rem",fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:g})]},k))}),s.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[s.jsx("button",{className:"btn-primary",onClick:()=>m==null?void 0:m("instances"),style:{fontSize:"0.82rem",padding:"7px 14px"},children:"Manage Instances"}),s.jsx("button",{className:"btn-ghost",onClick:()=>m==null?void 0:m("instances"),style:{fontSize:"0.82rem",padding:"7px 14px"},children:"+ Add Instance"})]})]}):s.jsxs("div",{style:{textAlign:"center",padding:"20px 0",color:"var(--dim)"},children:[s.jsx("div",{style:{fontSize:"0.88rem",marginBottom:12},children:"No ServiceNow instance configured yet."}),s.jsx("button",{className:"btn-primary",onClick:()=>m==null?void 0:m("instances"),style:{fontSize:"0.85rem"},children:"Configure ServiceNow Instance"})]})})]}),s.jsxs("div",{style:{marginBottom:28},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[s.jsx("div",{style:{fontSize:"0.7rem",fontWeight:700,color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.08em"},children:"AI Providers"}),s.jsxs("div",{style:{fontSize:"0.72rem",color:"var(--dim)"},children:[Ln.filter(k=>{var g;return(g=C.providers[k.id])==null?void 0:g.apiKey}).length,"/",Ln.length," connected"]})]}),s.jsx("div",{style:{display:"flex",flexDirection:"column",gap:8},children:Ln.map(k=>{var oe,de;const g=!!((oe=C.providers[k.id])!=null&&oe.apiKey),I=G===k.id,E=Ko[k.id],U=C.providers[k.id];return s.jsxs("div",{className:"card",style:{padding:0,overflow:"hidden",borderColor:I?"var(--accent)":g?"var(--green-dim, var(--border))":"var(--border)",transition:"border-color .2s"},children:[s.jsxs("button",{onClick:()=>{I?$(""):($(k.id),L(se=>{const ce={...se,activeProvider:k.id};return Ko[k.id].find(he=>he.value===se.model)||(ce.model=Ko[k.id][0].value),ce}),y("none"),_e(),P(!1))},style:{width:"100%",display:"flex",alignItems:"center",gap:14,padding:"14px 20px",background:"transparent",border:"none",cursor:"pointer",textAlign:"left",transition:"background .15s"},children:[s.jsx("span",{style:{width:28,textAlign:"center",flexShrink:0,opacity:g?1:.5,display:"flex",alignItems:"center",justifyContent:"center"},children:Jo.createElement(gu[k.id]??(()=>null),{size:20})}),s.jsxs("div",{style:{flex:1,minWidth:0},children:[s.jsx("div",{style:{fontWeight:600,fontSize:"0.9rem",color:"var(--text)"},children:k.label}),s.jsx("div",{style:{fontSize:"0.75rem",color:"var(--text2)",marginTop:1},children:g?`Connected · ${((de=E.find(se=>se.value===(C.activeProvider===k.id?C.model:E[0].value)))==null?void 0:de.label)??E[0].label}`:"Not configured"})]}),g?s.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:5,padding:"3px 10px",borderRadius:12,fontSize:"0.72rem",fontWeight:500,background:"rgba(34,197,94,0.12)",color:"var(--green)"},children:[s.jsx("span",{style:{width:6,height:6,borderRadius:"50%",background:"var(--green)"}}),"Active"]}):s.jsx("span",{style:{padding:"3px 10px",borderRadius:12,fontSize:"0.72rem",fontWeight:500,background:"var(--surface2)",color:"var(--dim)"},children:"Setup needed"}),s.jsx("span",{style:{fontSize:"0.7rem",color:"var(--dim)",transition:"transform .2s",transform:I?"rotate(180deg)":"rotate(0deg)"},children:"▼"})]}),I&&s.jsxs("div",{style:{padding:"0 20px 20px",borderTop:"1px solid var(--border)"},children:[s.jsx("div",{style:{fontSize:"0.8rem",color:"var(--text2)",background:"var(--surface2)",border:"1px solid var(--border)",borderRadius:6,padding:"10px 14px",margin:"16px 0",lineHeight:1.6},children:pe.subscriptionNote}),M==="steps"&&s.jsxs("div",{children:[s.jsx("div",{style:{fontWeight:600,marginBottom:14,fontSize:"0.9rem"},children:A?`Opening ${pe.portalLabel}…`:`Sign in to ${pe.label}`}),s.jsx("ol",{style:{margin:0,padding:"0 0 0 20px",color:"var(--text2)",fontSize:"0.85rem",lineHeight:2},children:pe.signInSteps.map((se,ce)=>s.jsx("li",{style:{color:ce===0&&A?"var(--accent)":"var(--text2)"},children:se},ce))}),A&&s.jsxs("div",{style:{marginTop:16,display:"flex",alignItems:"center",gap:10,color:"var(--dim)",fontSize:"0.82rem"},children:[s.jsx("span",{className:"spinner",style:{width:14,height:14,borderWidth:2}}),"Portal open — sign in and copy your API key, then close the window"]}),!A&&s.jsx("button",{className:"btn-ghost",onClick:()=>y("none"),style:{marginTop:14,fontSize:"0.82rem",padding:"6px 14px"},children:"Cancel"})]}),M==="paste"&&s.jsxs("div",{children:[s.jsx("div",{style:{fontWeight:600,marginBottom:8},children:"Paste your API key"}),s.jsxs("div",{style:{fontSize:"0.82rem",color:"var(--text2)",marginBottom:12},children:["Copy the key from ",pe.portalLabel," and paste it below."]}),s.jsxs("div",{style:{display:"flex",gap:8,marginBottom:12},children:[s.jsx("input",{autoFocus:!0,className:"input",type:V?"text":"password",value:U.apiKey,onChange:se=>ve(G,se.target.value),placeholder:pe.keyPlaceholder,style:{fontFamily:"monospace",fontSize:"0.85rem",flex:1}}),s.jsx("button",{className:"btn-ghost",onClick:()=>P(se=>!se),style:{flexShrink:0,padding:"8px 14px"},children:V?"Hide":"Show"})]}),s.jsxs("div",{style:{display:"flex",gap:8},children:[s.jsx("button",{className:"btn-primary",onClick:async()=>{await Se()},disabled:j||!U.apiKey,style:{fontSize:"0.82rem",padding:"8px 16px"},children:j?"Verifying…":"Verify Key"}),s.jsx("button",{className:"btn-ghost",onClick:()=>{y("none")},style:{fontSize:"0.82rem",padding:"8px 16px"},children:"Done"})]}),O&&s.jsxs("div",{style:{marginTop:10,fontSize:"0.8rem",color:O.ok?"var(--green)":"var(--red)"},children:[O.ok?"✓ ":"✗ ",O.msg]})]}),M==="none"&&s.jsxs("div",{children:[s.jsxs("button",{className:"btn-primary",onClick:fe,style:{display:"flex",alignItems:"center",gap:10,marginBottom:16,fontSize:"0.85rem"},children:[pe.icon," Sign in to ",pe.label.split("(")[0].trim(),s.jsx("span",{style:{opacity:.7,fontSize:"0.72rem"},children:"→ opens portal"})]}),s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:16},children:[s.jsx("div",{style:{flex:1,height:1,background:"var(--border)"}}),s.jsx("span",{style:{fontSize:"0.7rem",color:"var(--dim)",textTransform:"uppercase",letterSpacing:"0.06em"},children:"or paste API key directly"}),s.jsx("div",{style:{flex:1,height:1,background:"var(--border)"}})]}),s.jsx("div",{style:{marginBottom:6,fontWeight:500,fontSize:"0.85rem"},children:pe.keyLabel}),s.jsxs("div",{style:{display:"flex",gap:8,marginBottom:8},children:[s.jsx("input",{className:"input",type:V?"text":"password",value:U.apiKey,onChange:se=>ve(G,se.target.value),placeholder:pe.keyPlaceholder,style:{fontFamily:"monospace",fontSize:"0.85rem",flex:1}}),s.jsx("button",{className:"btn-ghost",onClick:()=>P(se=>!se),style:{flexShrink:0,padding:"8px 14px"},children:V?"Hide":"Show"}),s.jsx("button",{className:"btn-ghost",onClick:Se,disabled:j||!U.apiKey,style:{flexShrink:0,padding:"8px 14px",opacity:!U.apiKey||j?.5:1},children:j?"Testing…":"Test"})]}),O?s.jsxs("div",{style:{fontSize:"0.78rem",color:O.ok?"var(--green)":"var(--red)",marginBottom:16},children:[O.ok?"✓ ":"✗ ",O.msg]}):U.apiKey?s.jsx("div",{style:{fontSize:"0.78rem",color:"var(--green)",marginBottom:16},children:"✓ Key configured — click Test to verify"}):s.jsx("div",{style:{fontSize:"0.78rem",color:"var(--dim)",marginBottom:16},children:"No key set — this provider is unavailable"}),s.jsxs("div",{style:{borderTop:"1px solid var(--border)",paddingTop:16},children:[s.jsx("div",{style:{fontWeight:500,marginBottom:10,fontSize:"0.85rem"},children:"Default Model"}),s.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:6},children:E.map(se=>{const ce=C.model===se.value;return s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",borderRadius:6,cursor:"pointer",transition:"all .15s",background:ce?"var(--accent-bg, rgba(79,142,247,0.12))":"var(--surface2)",border:`1px solid ${ce?"var(--accent)":"var(--border)"}`},children:[s.jsx("input",{type:"radio",name:"model",checked:ce,onChange:()=>L(he=>({...he,model:se.value})),style:{accentColor:"var(--accent)",width:14,height:14,flexShrink:0}}),s.jsxs("div",{style:{minWidth:0},children:[s.jsx("div",{style:{fontWeight:500,fontSize:"0.82rem"},children:se.label}),s.jsx("div",{style:{fontSize:"0.72rem",color:"var(--text2)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:se.desc})]})]},se.value)})})]})]})]})]},k.id)})})]}),z("Appearance",s.jsxs(s.Fragment,{children:[ie("Theme","Switch between dark and light mode",s.jsx("div",{style:{display:"flex",gap:4},children:["dark","light"].map(k=>s.jsx("button",{onClick:()=>q(k),style:{padding:"7px 14px",borderRadius:6,fontSize:"0.82rem",fontWeight:500,background:S===k?"var(--accent)":"var(--surface3)",color:S===k?"#fff":"var(--text2)",border:"none",cursor:"pointer"},children:k==="dark"?"🌙 Dark":"☀️ Light"},k))})),s.jsxs("div",{style:{padding:"12px 0"},children:[s.jsx("div",{style:{fontWeight:500,marginBottom:10},children:"Accent Color"}),s.jsx("div",{style:{display:"flex",gap:10},children:oy.map(k=>s.jsx("button",{onClick:()=>_(k.id),title:k.label,style:{width:30,height:30,borderRadius:"50%",background:k.color,border:"none",boxShadow:w===k.id?`0 0 0 3px var(--bg), 0 0 0 5px ${k.color}`:"none",transition:"box-shadow .15s",cursor:"pointer"}},k.id))})]})]})),z("Support",s.jsx(s.Fragment,{children:s.jsxs("div",{style:{fontSize:"0.85rem",color:"var(--text2)",lineHeight:1.7},children:[s.jsx("div",{children:"Need help or want to report a bug?"}),s.jsxs("div",{style:{marginTop:8,display:"flex",flexDirection:"column",gap:6},children:[s.jsxs("div",{children:[s.jsx("span",{style:{color:"var(--dim)",fontSize:"0.78rem",marginRight:8},children:"Email"}),s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("mailto:support@nowaikit.com")},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",padding:0,fontSize:"0.85rem"},children:"support@nowaikit.com"})]}),s.jsxs("div",{children:[s.jsx("span",{style:{color:"var(--dim)",fontSize:"0.78rem",marginRight:8},children:"Issues"}),s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("https://github.com/aartiq/nowaikit/issues")},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",padding:0,fontSize:"0.85rem"},children:"GitHub Issues"})]})]})]})})),z("About",s.jsx(s.Fragment,{children:s.jsxs("div",{style:{fontSize:"0.85rem",color:"var(--text2)",lineHeight:1.7},children:[s.jsxs("div",{children:[s.jsx("strong",{children:"nowaikit"})," — Your AI companion for ServiceNow"]}),s.jsxs("div",{children:["Config: ",s.jsx("code",{style:{fontSize:"0.8rem"},children:"~/.config/nowaikit/"})]}),s.jsxs("div",{style:{marginTop:8},children:[s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("https://github.com/aartiq/nowaikit")},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",padding:0,fontSize:"0.85rem"},children:"GitHub"})," · ",s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("https://nowaitkit.com")},style:{background:"none",border:"none",color:"var(--accent)",cursor:"pointer",padding:0,fontSize:"0.85rem"},children:"Website"})]}),s.jsxs("div",{style:{marginTop:12,fontSize:"0.72rem",color:"var(--dim)",lineHeight:1.6},children:['This software is provided "as is" under the'," ",s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("https://github.com/aartiq/nowaikit/blob/main/LICENSE")},style:{background:"none",border:"none",color:"var(--dim)",cursor:"pointer",padding:0,fontSize:"0.72rem",textDecoration:"underline"},children:"MIT License"}),", without warranty of any kind. Use at your own risk."," ",s.jsx("button",{onClick:()=>{var k;return(k=pr())==null?void 0:k.openExternal("https://github.com/aartiq/nowaikit/blob/main/TERMS.md")},style:{background:"none",border:"none",color:"var(--dim)",cursor:"pointer",padding:0,fontSize:"0.72rem",textDecoration:"underline"},children:"Terms & Conditions"})]})]})})),s.jsxs("div",{style:{marginTop:28,padding:"14px 18px",background:"var(--surface)",border:"1px solid var(--border)",borderRadius:8,fontSize:"0.78rem",color:"var(--text2)",lineHeight:1.6},children:[s.jsx("strong",{style:{color:"var(--text)"},children:"Security note:"})," Passwords and API keys are encrypted at rest using AES-256-GCM (keys stored in your OS keychain). You can edit ",s.jsx("code",{style:{background:"var(--surface2)",padding:"1px 5px",borderRadius:3},children:"config.json"})," directly with plaintext values — they will be automatically encrypted the next time the app saves settings."]})]})}const ly={dashboard:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"}),s.jsx("polyline",{points:"9 22 9 12 15 12 15 22"})]}),chat:s.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"})}),tools:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"7",width:"20",height:"14",rx:"2",ry:"2"}),s.jsx("path",{d:"M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16"})]}),instances:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"2",y:"2",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("rect",{x:"2",y:"14",width:"20",height:"8",rx:"2",ry:"2"}),s.jsx("line",{x1:"6",y1:"6",x2:"6.01",y2:"6"}),s.jsx("line",{x1:"6",y1:"18",x2:"6.01",y2:"18"})]}),logs:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),s.jsx("polyline",{points:"14 2 14 8 20 8"}),s.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),s.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"})]}),settings:s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"3"}),s.jsx("path",{d:"M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 010 2.83 2 2 0 01-2.83 0l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z"})]})},cy=[{id:"dashboard",label:"Dashboard"},{id:"chat",label:"AI Chat"},{id:"tools",label:"Tools"},{id:"instances",label:"Instances"},{id:"logs",label:"Audit Log"},{id:"settings",label:"Settings"}],uy=[{id:"teal",color:"#00D4AA"},{id:"navy",color:"#0F4C81"},{id:"blue",color:"#3b82f6"},{id:"emerald",color:"#22c55e"},{id:"amber",color:"#f59e0b"}];function dy({size:l=28}){return s.jsxs("svg",{width:l,height:l,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{flexShrink:0},children:[s.jsx("defs",{children:s.jsxs("linearGradient",{id:"logoGrad",x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[s.jsx("stop",{offset:"0%",stopColor:"#00F0C0"}),s.jsx("stop",{offset:"50%",stopColor:"#00D4AA"}),s.jsx("stop",{offset:"100%",stopColor:"#0F4C81"})]})}),s.jsx("rect",{width:"32",height:"32",rx:"8",fill:"url(#logoGrad)"}),s.jsx("path",{d:"M9 23V9l7 10V9",stroke:"#fff",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"}),s.jsx("circle",{cx:"23",cy:"12",r:"2.5",fill:"#fff",opacity:"0.9"}),s.jsx("circle",{cx:"23",cy:"20",r:"2.5",fill:"#fff",opacity:"0.9"}),s.jsx("line",{x1:"23",y1:"14.5",x2:"23",y2:"17.5",stroke:"#fff",strokeWidth:"1.5",opacity:"0.6"})]})}function py({currentPage:l,onNavigate:p,instanceName:u,instanceCount:m,serverOnline:S}){const{mode:w,accent:q,setMode:_,setAccent:C}=hu();return s.jsxs("aside",{style:{width:220,background:"var(--surface)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0},children:[s.jsx("div",{style:{height:38,flexShrink:0,WebkitAppRegion:"drag"}}),s.jsxs("div",{style:{padding:"4px 18px 16px",borderBottom:"1px solid var(--border)"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:6},children:[s.jsx(dy,{size:30}),s.jsxs("span",{style:{fontWeight:700,fontSize:"1.05rem",letterSpacing:"-0.3px"},children:[s.jsx("span",{style:{color:"var(--text)"},children:"Now"}),s.jsx("span",{style:{background:"linear-gradient(135deg, #00D4AA 0%, #0F4C81 100%)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",fontWeight:800},children:"AI"}),s.jsx("span",{style:{color:"var(--text)"},children:"Kit"})]})]}),s.jsx("div",{style:{fontSize:"0.73rem",color:"var(--dim)",paddingLeft:40},children:u||"No instance"})]}),s.jsx("nav",{style:{flex:1,padding:"10px 10px",overflowY:"auto"},children:cy.map(L=>{const G=l===L.id;return s.jsxs("button",{onClick:()=>p(L.id),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"9px 12px",borderRadius:7,marginBottom:2,background:G?"var(--accent-bg)":"transparent",color:G?"var(--accent)":"var(--text2)",border:"none",fontSize:"0.875rem",cursor:"pointer",textAlign:"left",fontWeight:G?600:400,transition:"all .15s"},children:[s.jsx("span",{style:{opacity:.8,width:18,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:ly[L.id]}),s.jsx("span",{children:L.label}),L.id==="chat"&&s.jsx("span",{style:{marginLeft:"auto",width:7,height:7,borderRadius:"50%",background:"var(--accent)",opacity:.8}})]},L.id)})}),s.jsxs("div",{style:{padding:"10px 14px",borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,fontSize:"0.75rem"},children:[s.jsx("div",{style:{width:7,height:7,borderRadius:"50%",background:S?"var(--green)":"var(--dim)",flexShrink:0}}),s.jsx("span",{style:{color:S?"var(--green)":"var(--dim)"},children:S?"Server online":"Server offline"}),s.jsx("span",{style:{color:"var(--dim)",marginLeft:"auto"},children:m>0?`${m} inst.`:"no inst."})]}),s.jsxs("div",{style:{padding:"12px 14px 14px"},children:[s.jsx("div",{style:{display:"flex",gap:4,marginBottom:10},children:["dark","light"].map(L=>s.jsx("button",{onClick:()=>_(L),style:{flex:1,padding:"5px 0",borderRadius:6,fontSize:"0.75rem",background:w===L?"var(--surface3)":"transparent",color:w===L?"var(--text)":"var(--dim)",border:`1px solid ${w===L?"var(--border2)":"transparent"}`,transition:"all .15s"},children:L==="dark"?"🌙 Dark":"☀ Light"},L))}),s.jsx("div",{style:{display:"flex",gap:7,justifyContent:"center"},children:uy.map(L=>s.jsx("button",{onClick:()=>C(L.id),title:L.id,style:{width:18,height:18,borderRadius:"50%",background:L.color,border:"none",outline:q===L.id?`2px solid ${L.color}`:"2px solid transparent",outlineOffset:2,transition:"outline .15s",cursor:"pointer"}},L.id))})]})]})}const Tn={providers:{anthropic:{apiKey:"",authMethod:"apiKey"},openai:{apiKey:"",authMethod:"apiKey"},google:{apiKey:"",authMethod:"apiKey"},groq:{apiKey:"",authMethod:"apiKey"},openrouter:{apiKey:"",authMethod:"apiKey"}},activeProvider:"anthropic",model:"claude-sonnet-4-6"},Yo=W.createContext({mode:"dark",accent:"teal",setMode:()=>{},setAccent:()=>{}}),hu=()=>W.useContext(Yo);function yr(){return wt}function Qo(l,p){document.documentElement.setAttribute("data-theme",l),document.documentElement.setAttribute("data-accent",p),localStorage.setItem("nwk-theme",l),localStorage.setItem("nwk-accent",p)}function yy(){const[l,p]=W.useState(()=>localStorage.getItem("nwk-theme")||"dark"),[u,m]=W.useState(()=>localStorage.getItem("nwk-accent")||"teal"),S=W.useCallback(F=>{p(F),Qo(F,u)},[u]),w=W.useCallback(F=>{m(F),Qo(l,F)},[l]);W.useEffect(()=>{Qo(l,u)},[]);const[q,_]=W.useState("dashboard"),[C,L]=W.useState([]),[G,$]=W.useState(!1),[Y,ne]=W.useState("http://localhost:3100"),[V,P]=W.useState(""),[B,H]=W.useState(Tn),[re,b]=W.useState(!0),[M,y]=W.useState(!1),A=W.useCallback(async()=>{const F=yr();if(F)try{const O=await F.getServerStatus();$((O==null?void 0:O.running)??!1)}catch{$(!1)}},[]),X=W.useCallback(async()=>{const F=yr();if(F){try{const[O,Z,_e]=await Promise.all([F.listInstances(),F.getVersion(),F.getAllConfig()]);P(Z.app),ne("http://localhost:3100");const ve=_e,we=ve.settings??ve;let fe=Tn;we.providers?fe=we:we.anthropicApiKey&&(fe={...Tn,providers:{...Tn.providers,anthropic:{apiKey:we.anthropicApiKey,authMethod:"apiKey"}},model:we.model||Tn.model}),H(fe);const Se=ve.activeInstance??"",pe=O.map(z=>({name:z.name,url:z.instanceUrl,active:z.name===Se,group:z.group||"Default",environment:z.environment||"",toolPackage:z.toolPackage||"full",writeEnabled:!!z.writeEnabled,authMethod:z.authMethod||"basic"}));L(pe),pe.length===0&&y(!0)}catch{y(!0)}await A()}},[A]);if(W.useEffect(()=>{if(!yr()){b(!1);return}X().finally(()=>b(!1));const O=setInterval(A,15e3);return()=>clearInterval(O)},[X,A]),re)return s.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",flexDirection:"column",gap:12,color:"var(--dim)"},children:[s.jsx("div",{className:"spinner",style:{width:28,height:28,borderWidth:3}}),s.jsx("span",{style:{fontSize:"0.85rem"},children:"Starting nowaikit…"})]});if(M)return s.jsx(Yo.Provider,{value:{mode:l,accent:u,setMode:S,setAccent:w},children:s.jsx(Np,{onComplete:()=>{y(!1),X()},onClose:()=>y(!1),existingGroups:[...new Set(C.map(F=>F.group).filter(Boolean))]})});const j=C.find(F=>F.active);return s.jsx(Yo.Provider,{value:{mode:l,accent:u,setMode:S,setAccent:w},children:s.jsxs("div",{style:{display:"flex",height:"100vh",overflow:"hidden"},children:[s.jsx(py,{currentPage:q,onNavigate:_,instanceName:j==null?void 0:j.name,instanceCount:C.length,serverOnline:G}),s.jsxs("main",{className:"fade-in",style:{flex:1,overflow:"auto",padding:"0 32px 28px",background:"var(--bg)"},children:[s.jsx("div",{style:{height:38,flexShrink:0,WebkitAppRegion:"drag"}}),q==="dashboard"&&s.jsx(Pp,{instances:C,serverOnline:G,appVersion:V,serverUrl:Y,onRefresh:X,onNavigate:_}),q==="chat"&&s.jsx(sy,{settings:B,serverUrl:Y,instances:C}),q==="tools"&&s.jsx(Fp,{activeToolPackage:(j==null?void 0:j.toolPackage)??"full",serverOnline:G,serverUrl:Y,onRestart:X}),q==="instances"&&s.jsx(Dp,{instances:C,onRemove:async F=>{var O;await((O=yr())==null?void 0:O.removeInstance(F)),X()},onSetDefault:async F=>{var O;await((O=yr())==null?void 0:O.setConfig("activeInstance",F)),X()},onTest:async F=>{const O=C.find(ve=>ve.name===F),Z=yr();if(!O||!Z)return{ok:!1,message:"Not available"};const _e=await Z.testInstance({name:O.name,instanceUrl:O.url,authMethod:O.authMethod});return{ok:_e.success,message:_e.success?"Connection successful":_e.error??"Failed"}},onAddInstance:()=>y(!0)}),q==="logs"&&s.jsx(Up,{}),q==="settings"&&s.jsx(ay,{settings:B,activeInstance:j,onNavigate:_,onSave:async F=>{var O;H(F),await((O=yr())==null?void 0:O.setConfig("settings",F))}})]},q)]})})}wp.createRoot(document.getElementById("root")).render(s.jsx(Jo.StrictMode,{children:s.jsx(yy,{})}));