@decaf-ts/mcp-server 1.2.2 → 1.2.4

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.
Files changed (45) hide show
  1. package/dist/assets/code/patterns/builder.enc +0 -0
  2. package/dist/assets/prompts/agent/agent.enc +0 -0
  3. package/dist/assets/prompts/agent/init.enc +0 -0
  4. package/dist/assets/prompts/constitution_commands.enc +0 -0
  5. package/dist/assets/prompts/documentation/class.enc +0 -0
  6. package/dist/assets/prompts/documentation/constant.enc +0 -0
  7. package/dist/assets/prompts/documentation/decorator.enc +0 -0
  8. package/dist/assets/prompts/documentation/file.enc +0 -0
  9. package/dist/assets/prompts/documentation/function.enc +0 -0
  10. package/dist/assets/prompts/documentation/interface.enc +0 -0
  11. package/dist/assets/prompts/documentation/iterate.enc +0 -0
  12. package/dist/assets/prompts/documentation/module.enc +0 -0
  13. package/dist/assets/prompts/documentation/prefix.enc +0 -0
  14. package/dist/assets/prompts/documentation/repo.enc +0 -0
  15. package/dist/assets/prompts/documentation/suffix.enc +0 -0
  16. package/dist/assets/prompts/git_commands.enc +0 -0
  17. package/dist/assets/prompts/jira/operational_prompts.enc +0 -0
  18. package/dist/assets/prompts/jira/system_prompt.enc +0 -0
  19. package/dist/assets/prompts/mode_commands.enc +0 -0
  20. package/dist/assets/prompts/plan_commands.enc +0 -0
  21. package/dist/assets/prompts/repository/readme.enc +0 -0
  22. package/dist/assets/prompts/repository/release_notes.enc +0 -0
  23. package/dist/assets/prompts/repository/setup.enc +0 -0
  24. package/dist/assets/prompts/specification_commands.enc +0 -0
  25. package/dist/assets/prompts/startup_command.enc +0 -0
  26. package/dist/assets/prompts/task_commands.enc +0 -0
  27. package/dist/assets/prompts/tests/coverage.enc +0 -0
  28. package/dist/assets/templates/AGENTS.enc +0 -0
  29. package/dist/assets/templates/agents_template.enc +0 -0
  30. package/dist/assets/templates/constitution_template.enc +0 -0
  31. package/dist/assets/templates/decaf/context/logCtx.enc +0 -0
  32. package/dist/assets/templates/decaf/services/client_based_service.enc +0 -0
  33. package/dist/assets/templates/decaf/services/model_service.enc +0 -0
  34. package/dist/assets/templates/decaf/services/service.enc +0 -0
  35. package/dist/assets/templates/decaf_guidelines.enc +1 -1
  36. package/dist/assets/templates/instructions_template.enc +0 -0
  37. package/dist/assets/templates/jira_templates.enc +0 -0
  38. package/dist/assets/templates/plan_template.enc +0 -0
  39. package/dist/assets/templates/specification_template.enc +0 -0
  40. package/dist/assets/templates/task_template.enc +0 -0
  41. package/dist/mcp-server.cjs +1 -1
  42. package/dist/mcp-server.cjs.map +1 -1
  43. package/dist/mcp-server.js +1 -1
  44. package/dist/mcp-server.js.map +1 -1
  45. package/package.json +5 -3
@@ -1,2 +1,2 @@
1
- import{Command as t}from"commander";import*as e from"fs";import r,{promises as s}from"fs";import*as n from"path";import i from"path";import{MiniLogger as o,NumericLogLevels as a,Logging as c,LoggedClass as p,toSnakeCase as l,sf as u,toPascalCase as d,LogLevel as m,LoggedEnvironment as h}from"@decaf-ts/logging";import{style as f}from"styled-string-builder";import{__decorate as y,__metadata as g}from"tslib";import{required as b,Model as v,list as w,minlength as S}from"@decaf-ts/decorator-validation";import{z as j,ZodObject as x}from"zod";import{injectable as I,inject as A}from"@decaf-ts/injectable-decorators";import{prop as E,Metadata as k}from"@decaf-ts/decoration";import{InternalError as T,SerializationError as N,ValidationError as O}from"@decaf-ts/db-decorators";import C from"crypto";import H from"zlib";import{unified as J}from"unified";import _ from"remark-directive";import D from"remark-gfm";import P from"remark-parse";import{UriTemplate as R}from"@modelcontextprotocol/sdk/shared/uriTemplate.js";import{ResourceTemplate as $,McpServer as M}from"@modelcontextprotocol/sdk/server/mcp.js";import{v4 as F}from"uuid";import{StdioServerTransport as q}from"@modelcontextprotocol/sdk/server/stdio.js";import{StreamableHTTPServerTransport as B}from"@modelcontextprotocol/sdk/server/streamableHttp.js";class W extends o{log(t,e,r,s){const n=this.config("level");a[n],a[t]}}const L=(t,e,...r)=>{const s=(t=>{if("string"==typeof t)return t;if(!t)return"unknown";if("function"==typeof t)return t.name||"unknown";if("object"==typeof t&&"constructor"in t){const e=t.constructor;if(e&&e.name)return e.name}return"unknown"})(t);return new W(s,e)},U=["\x1b[38;5;215m","\x1b[38;5;209m","\x1b[38;5;205m","\x1b[38;5;210m","\x1b[38;5;217m","\x1b[38;5;216m","\x1b[38;5;224m","\x1b[38;5;230m","\x1b[38;5;230m"];var K,z,Y,G,Z;(t=>{t[t.NONE=0]="NONE",t[t.BASIC=1]="BASIC",t[t.ADVANCED=2]="ADVANCED",t[t.HIGH=3]="HIGH"})(K||(K={})),(t=>{t[t.NONE=0]="NONE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(z||(z={})),(t=>{t[t.FREE=0]="FREE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(Y||(Y={}));class V extends v{get log(){return this._log||(this._log=c.for(this)),this._log}constructor(t){super(t)}logFor(t){const{sessionId:e,requestId:r,authInfo:s}=t||{};let n="string"==typeof e&&e.length>0?this.log.for(e):this.log;return s&&s.clientId&&(n=n.for(s.clientId)),r&&(n=n.for(r.toString())),n}setDescription(t){return this.description=t,this}getDescription(){return this.description}setName(t){return this.name=t,this}getName(){return this.name}setTitle(t){return this.title=t,this}}y([b(),g("design:type",String)],V.prototype,"description",void 0),y([b(),g("design:type",String)],V.prototype,"name",void 0),y([b(),g("design:type",String)],V.prototype,"title",void 0);class Q extends V{constructor(t){super(t),this.reasoning=K.NONE,this.effort=z.NONE,this.cost=Y.FREE}setReasoning(t){return this.reasoning=t,this}setEffort(t){return this.effort=t,this}setCost(t){return this.cost=t,this}}function X(t){if(!t)return;let e=t,r=e&&e._def;for(;r&&"ZodObject"!==r.typeName;){if("ZodEffects"===r.typeName&&r.schema)e=r.schema;else if("ZodOptional"===r.typeName&&r.innerType)e=r.innerType;else if("ZodDefault"===r.typeName&&r.innerType)e=r.innerType;else if("ZodNullable"===r.typeName&&r.innerType)e=r.innerType;else{if(!r.schema)return;e=r.schema}r=e&&e._def}return r&&"ZodObject"===r.typeName?r:void 0}function tt(t,e="schema"){if(X(t))return t;if(t&&"object"==typeof t){const e=t.def&&"object"==typeof t.def?t.def:void 0,r=e&&(e.shape||"object"===e.type)&&e.shape||("object"===t.type?t.shape:void 0)||(e&&"object"===e.type?{}:void 0);if(e||"object"===t.type||r){const t={};if(r&&"object"==typeof r)for(const[e,s]of Object.entries(r))t[e]=rt(s)?s:j.any();return j.object(t)}}throw Error(`Registration error: provided a non-canonical ${e}. Export a ZodObject (z.object(...)).`)}function et(t){if(!t)return;if(t&&"object"==typeof t&&!t._def)return t.def&&"object"==typeof t.def&&t.def.shape?t.def.shape:t;const e=X(t);return e?"function"==typeof e.shape?e.shape():e.shape||void 0:void 0}function rt(t){return!(!t||"object"!=typeof t||!t._def)}y([b(),g("design:type",Number)],Q.prototype,"reasoning",void 0),y([b(),g("design:type",Number)],Q.prototype,"effort",void 0),y([b(),g("design:type",Number)],Q.prototype,"cost",void 0),(t=>{t.ASSETS="assets"})(G||(G={})),(t=>{t.PROMPT="prompts",t.DOCUMENTATION="documentation",t.CODE="code"})(Z||(Z={}));const st=Buffer.from("DCAF1","ascii");function nt(t){let r=t;for(;;){const t=n.join(r,"lib","assets");if(e.existsSync(t))return t;const s=n.join(r,"src","assets");if(e.existsSync(s))return s;const i=n.join(r,"assets");if(e.existsSync(i))return i;const o=n.dirname(r);if(o===r)break;r=o}}function it(){const t=process.env.DECAF_ASSET_DIR||process.env.MCP_ASSET_DIR||process.env.ASSET_DIR||"";if(t&&e.existsSync(t))return t;const r=process.argv?.[1];if(r){const t=nt(n.dirname(r));if(t)return t}const s=[process.cwd(),process.env.INIT_CWD].filter(Boolean);for(const t of s){const e=nt(t);if(e)return e}return n.join(process.cwd(),"assets")}let ot=class extends p{constructor(t){super(),this.basePath=t||it()}listAssets(...t){const r=n.join(this.basePath,...t);return e.readdirSync(r)}listPrompts(){return this.listAssets(Z.PROMPT)}getAsset(t,r="md",...s){const i=n.join(this.basePath,...s),o=(t,r=!1)=>{try{return r?(t=>{if(t.length<st.length+16+12+16)throw Error("Invalid prompt payload (too short)");if(!t.subarray(0,st.length).equals(st))throw Error("Invalid prompt payload (bad magic)");const e=process.env.ENCRYPTION_KEY||"";if(!e)throw Error("Missing encryption key. Set ENCRYPTION_KEY to load obfuscated assets.");let r=st.length;const s=t.subarray(r,r+16);r+=16;const n=t.subarray(r,r+12);r+=12;const i=t.subarray(r,r+16);r+=16;const o=t.subarray(r),a=((t,e)=>C.scryptSync(t,e,32))(e,s),c=C.createDecipheriv("aes-256-gcm",a,n);c.setAuthTag(i);const p=Buffer.concat([c.update(o),c.final()]);return H.gunzipSync(p)})(e.readFileSync(t)).toString("utf-8"):e.readFileSync(t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}},a=o(n.join(i,`${t}.${r}`),"enc"===r);if(null!==a)return a;const c=o(n.join(i,t+".enc"),!0);if(null!==c)return c;throw Error("Asset not found: "+n.join(i,`${t}.${r}`))}getAllAssets(t,...e){return this.listAssets(t,...e).reduce((r,s)=>{const i=n.extname(s),o=n.basename(s,i),a=i.replace(/^\./,"")||void 0;return r[o]=this.getAsset(o,a??void 0,t,...e),r},{})}toPromptDef(t){const e=t=>"number"==typeof t?t:"string"==typeof t?(t=>{switch(t){case"none":return K.NONE;case"basic":return K.BASIC;case"advanced":return K.ADVANCED;case"high":return K.HIGH;case"medium":return z.MEDIUM;case"low":return Y.LOW;case"free":return Y.FREE;default:throw new T("Cannon convert unknown level "+t)}})(t.toLowerCase()):K.NONE;return t.effort=e(t.effort),t.reasoning=e(t.reasoning),t.cost=e(t.cost),t}getPrompt(t,...e){const r=this.getAsset(l(t),"json",Z.PROMPT,...e);let s;try{s=JSON.parse(r)}catch(r){throw new N(`Failed to parse prompt ${t} in categories ${e}: ${r}`)}return this.toPromptDef(s)}getAllPrompts(...t){const e=this.getAllAssets(Z.PROMPT,...t);return Object.entries(e).reduce((e,[r,s])=>{try{e[r]=JSON.parse(s)}catch(e){throw new N(`Failed to parse prompt ${r} in categories ${t}: ${e}`)}return e},e)}};ot=y([I(),g("design:paramtypes",[String])],ot);class at extends Q{constructor(t){super(t)}setCb(t){return this.cb=t,this}setArgsSchema(t){return this.argsSchema=t,this}static get builder(){return new at}static patchPrompt(t,e,r,s){const n=(e=Array.isArray(e)?e:Object.keys(e)).filter(t=>!Object.prototype.hasOwnProperty.call(r,t));if(n.length)throw new O("Missing replacements for placeholders: "+n.join(", "));s&&(s.verbose("Patching prompt with placeholders: "+JSON.stringify(e)),s.debug("Values: "+JSON.stringify(r)));const i=e.reduce((t,e)=>(t[e]=r[e],t),{});return u(t,i)}patchPrompt(t,e,r,s){return at.patchPrompt(t,e,r,s||this.log.for(this.patchPrompt))}build(t,e){const r=this.log.for(this.build),s=this.hasErrors();if(s)throw new O(s.toString());try{this.argsSchema&&tt(this.argsSchema,"argsSchema");const r=et(this.argsSchema);return t.registerPrompt(this.name,{title:this.title,description:this.description,argsSchema:r},async(t,r)=>{const s=this.logFor(r);t=Object.assign({},e,t||{}),s.verbose(`Executing prompt ${this.name} with args: ${JSON.stringify(t)}`),t._meta=Object.assign(t._meta||{},{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}});const n=await Promise.resolve(this.cb(t,r));return s.verbose(`Prompt ${this.name} executed successfully.`),s.debug("Prompt execution meta: "+JSON.stringify(n._meta)),n})}catch(t){throw r.error("Failed to register prompt "+(this.name||this.constructor.name),t),t}}}y([A(ot),g("design:type",ot)],at.prototype,"assets",void 0),y([b(),g("design:type",Object)],at.prototype,"cb",void 0),y([b(),g("design:type",x)],at.prototype,"argsSchema",void 0),y([E(),g("design:type",Object)],at.prototype,"placeholders",void 0);class ct extends at{setCategory(t){return this.promptCategory=t,this}addPrefix(t){return this.prefixes=this.prefixes||[],this.prefixes.push(t),this}addSuffix(t){return this.suffixes=this.suffixes||[],this.suffixes.push(t),this}constructor(t){super(t)}build(t){const e=this.assets.getPrompt(this.name,this.promptCategory);v.fromObject(this,e);const r=new Set((k.properties(ct)||[]).filter(t=>!["assets","promptCategory","prefixes","suffixes"].includes(t)));["cb","argsSchema"].forEach(t=>r.add(t));const s=this.hasErrors(...Array.from(r));if(s)throw new O(s.toString());const n=(this.prefixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),i=(this.suffixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),o=[...new Set([...e.placeholders,...n.map(t=>t.placeholders||[]),...i.map(t=>t.placeholders||[])].flat())].reduce((t,e)=>(t[e]=j.string().describe("The description for "+e),t),{});return this.setArgsSchema(j.object(o)),this.setCb((t,e)=>{const r=this.logFor(e).for(ct).for(this.promptCategory).for(this.name);function s(t=[]){return Array.isArray(t)?t:Object.keys(t)}const n=(this.prefixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),i=(this.suffixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),o=this.assets.getPrompt(this.name,this.promptCategory),a=[...new Set([...n.map(t=>s(t.placeholders)).flat(),...i.map(t=>s(t.placeholders)).flat(),...s(o.placeholders).flat()])];return{messages:[{role:"user",content:{type:"text",text:this.patchPrompt([...n.map(t=>t.prompt),o.prompt,...i.map(t=>t.prompt)].join("\n\n"),a,t,r)}}],_meta:{}}}),super.build(t)}setReasoning(t){throw new T("Named prompt builders don't require callback")}setEffort(t){throw new T("Named prompt builders don't require callback")}setCost(t){throw new T("Named prompt builders don't require callback")}setDescription(t){throw new T("Named prompt builders don't require callback")}setTitle(t){throw new T("Named prompt builders don't require callback")}static get builder(){return new ct}}y([b(),g("design:type",String)],ct.prototype,"promptCategory",void 0),y([w(String),S(1),g("design:type",Array)],ct.prototype,"prefixes",void 0),y([S(1),w(String),g("design:type",Array)],ct.prototype,"suffixes",void 0);const pt=at.builder.setName("example.prompt").setTitle("Example prompt").setDescription("Example prompt for testing").setArgsSchema(j.object({message:j.string().optional()})).setCb(async t=>{const e=t.message??"default";return{messages:[{role:"assistant",content:{type:"text",text:e}}],content:[],structuredContent:{message:e},result:{message:e}}}),lt=at.builder.setName("interactive.jsdoc").setTitle("Interactive JSDoc prompt").setDescription("Interactive prompt for jogging JSDoc helpers").setArgsSchema(j.object({gist:j.string().optional()})).setCb(async t=>{const e=t.gist??"interactive jsdoc response";return{messages:[{role:"assistant",content:{type:"text",text:e}}],content:[],structuredContent:{message:e},result:{message:e}}}),ut=Object.assign(lt,{name:lt.getName()});var dt;function mt(t,e=[],r=[]){const s=ct.builder.setCategory(dt.DOCS).setName(t);return["prefix",...e].forEach(t=>s.addPrefix(t)),["suffix",...r].forEach(t=>s.addSuffix(t)),s}(t=>{t.DOCS="documentation",t.CODE="code"})(dt||(dt={}));const ht=[mt("class"),mt("constant"),mt("decorator"),mt("function"),mt("module"),mt("file"),mt("repo",[],["iterate"])],ft=j.object({className:j.string().describe("the class name to turn into a builder")}),yt=[pt,ut,...ht,at.builder.setName("ts.code.dp.builder").setTitle("Typescript builder design patter prompt").setDescription("for a class, with a defined set of properties, scafold a builder design pattern").setArgsSchema(ft).setReasoning(K.BASIC).setCb((t,e)=>(t.className=d(t.className),{messages:[{role:"user",content:{type:"text",text:`You're a senior TypeScript developer writing typescript code.You're a senior TypeScript developer writing typescript code.\nTransform the selected class into a builder design pattern implementation in Typescript.\nuse @decaf-ts validation decorators to enforce the validation of your builder.\n\n- must extend the Model Class from @decaf-ts/decorator-validation;\n- each property must be marked as protected;\n- each property must have a setter method that returns 'this' for chaining;\n- the build() method must validate the properties using hasErrors() method from Model class;\n- if validation fails, throw an error with the validation errors;\n- if validation passes, return an instance of the original class with the set properties;\n- optionally (but do so by default) add the static builder and from methods from the example;\n- if the clasee already follows the pattern but has properties without decoration or without setters, simple add them;\n\nexample:\n\noriginal class:\n\`\`\`typescript\nexport class ${t.className} {\n description!: string;\n name!: string = "default name";\n title!: string;\n age?: string;\n dateOfBirth!: Date;\n}}\n\`\`\` \n\nresulting builder pattern implementation:\n\`\`\`typescript\nexport class ${t.className}Builder extends Model {\n\n @minlength(10\n @required()\n protected description!: string;\n \n @required()\n protected name!: string = "default value;\n \n @required()\n protected title!: string;\n \n @min(18)\n protected age?: string;\n \n @date()\n protected dateOfBirth!: Date;\n\n protected constructor(arg?: ModelArg<${t.className}Builder>>) {\n super(arg);\n Model.fromModel(this, arg);\n }\n\n setDescription(value: string) {\n this.description = value;\n return this;\n }\n\n setName(value: string) {\n this.name = value;\n return this;\n }\n\n setTitle(value: string) {\n this.title = value;\n return this;\n }\n setAge(value: number) {\n this.age = value;\n return this;\n }\n setDate(value: Date) {\n this.age = value;\n return this;\n }\n \n build(...args: any[]): ${t.className}Builder | Promise<${t.className}Builder> {\n const errs = this.hasErrors();\n if (errs) throw new Error(errs.toString());\n \n return // code that builds OBJ here\n }\n \n static get builder(): ${t.className}Builder {\n return new ${t.className}Builder(); // static method to get a new builder instance\n }\n \n static from<K extends keyof ${t.className}Builder>(obj: K, ${t.className}Builder[K]): ${t.className}Builder {\n return new ${t.className}Builder(); // static method to create a builder from an object\n }\n}\n\`\`\` \n\n`}}],_meta:{}}))];class gt extends Q{setAnnotations(t){return this.annotations=Object.assign(this.annotations,t),this}setCb(t){return this.cb=t,this}setInputSchema(t){return this.inputSchema=t,this}setOutputSchema(t){return this.outputSchema=t,this}constructor(t){super(t),this.annotations={readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}}static get builder(){return new gt}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{this.inputSchema&&tt(this.inputSchema,"inputSchema"),this.outputSchema&&tt(this.outputSchema,"outputSchema");const e=et(this.inputSchema),r=et(this.outputSchema);return t.registerTool(this.name,{title:this.title,description:this.description,inputSchema:e,outputSchema:r,annotations:this.annotations,_meta:{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}}},async(t,e)=>{const r=this.logFor(e);r.verbose(`Executing tool ${this.name} with args: ${JSON.stringify(t)}`),e._meta=Object.assign(e._meta||{},{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}});const s=await Promise.resolve(this.cb(t,e));return r.verbose(`Tool ${this.name} executed successfully.`),r.debug("Tool execution meta: "+JSON.stringify(s._meta)),s})}catch(t){const e=t?.message||t+"";if("string"==typeof e&&e.includes("already registered"))return c.for(this).warn(`Tool ${this.name} already registered - skipping duplicate registration`),{name:this.name};throw c.for(this).error("Error building tool",t),t}}}y([b(),g("design:type",Object)],gt.prototype,"annotations",void 0),y([b(),g("design:type",Object)],gt.prototype,"cb",void 0),y([b(),g("design:type",Function)],gt.prototype,"inputSchema",void 0);const bt=gt.builder.setName("example.tool").setTitle("Example tool").setDescription("A smoke tool used for quick testing").setInputSchema(j.object({})).setCb(async()=>({content:[{type:"text",text:"example tool ok"}],result:{status:"ok"}}));Object.assign(bt,{name:bt.getName()});const vt=gt.builder.setName("file.summarizer").setTitle("File summarizer").setDescription("Summaries files for quick previews").setInputSchema(j.object({filePath:j.string().optional()})).setCb(async()=>({content:[{type:"text",text:"file summary stub"}],result:{summary:"file summary stub"}}));Object.assign(vt,{name:vt.getName()});const wt="##VERSION##";k.registerLibrary("##PACKAGE##",wt);const St={mcpId:"decaf",name:"decaf-ts mcp server",title:"Decaf-TS MCP Server",description:"Provides precise coding assistance for the decaf-ts framework",version:wt,websiteUrl:"https://decaf-ts.github.io",repositoryUrl:"https://github.com/decaf-ts/mcp-server",license:"AGPL-3.0",workingDir:process.cwd(),assetDir:it(),contacts:[{name:"Decaf-TS",url:"https://decaf-ts.github.io"}],tags:"server,official,decaf-ts",metadata:{},icons:[{src:"workdocs/assets/favicon.svg",mimeType:"image/svg+xml",sizes:"any"}],jira:{host:process.env.JIRA__HOST||"decaf-ts.atlassian.net",email:process.env.JIRA__EMAIL||"",apiKey:process.env.JIRA__API_KEY||process.env.JIRA__APIKEY||"",projectKey:process.env.JIRA__PROJECT_KEY||void 0,issueType:process.env.JIRA__ISSUE_TYPE||void 0,parentIssue:process.env.JIRA__PARENT_ISSUE||void 0},level:m.error},jt=h.accumulate(St);function xt(){const{host:t,email:e,apiKey:r,projectKey:s,issueType:n}=jt.jira;return{host:t?.trim(),email:e?.trim(),apiKey:r?.trim(),projectKey:s?.trim(),issueType:n?.trim(),parentIssue:jt.jira.parentIssue?.trim()}}function It(){const t=xt();return[{name:"JIRA__HOST",required:!0,description:"Atlassian host (e.g. decaf-ts.atlassian.net) where your Jira instance is hosted.",value:t.host},{name:"JIRA__EMAIL",required:!0,description:"Email address of the Jira account that has API access.",value:t.email},{name:"JIRA__API_KEY",required:!0,description:"API token created in your Atlassian profile (a.k.a. APIKEY alias) for authenticating requests.",sensitive:!0,value:t.apiKey},{name:"JIRA__PROJECT_KEY",required:!1,description:"Default Jira project key (e.g. DECAF) used when an issue creation request omits a project.",value:t.projectKey},{name:"JIRA__ISSUE_TYPE",required:!1,description:"Default Jira issue type (e.g. Task, Bug) used when creating issues without an explicit type.",value:t.issueType},{name:"JIRA__PARENT_ISSUE",required:!1,description:"Default parent issue key (e.g. DECAF-123) applied when a child issue is created without an explicit parent.",value:t.parentIssue}]}function At(t){const e=t.value?((t,e)=>{if(t)return e?"<configured>":t})(t.value,t.sensitive):"not set",r=t.required?"(required)":"(optional)";return`\u2022 ${t.name} ${r}: ${t.description} Current state: ${e}.`}c.setConfig(jt);class Et extends Error{constructor(t){const e=It(),r=(t=>{const e=It();return`${t.length?`Missing Jira credentials: ${t.map(t=>t.name).join(", ")}.`:"Jira credentials are configured."}\n\nThis setup uses the following environment variables:\n${e.map(At).join("\n")}`})(t);super(r),this.name="MissingJiraEnvironmentError",this.descriptors=e,this.missing=t,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,Et)}}function kt(t){if(!t)return{code:"jira_error",message:"Unknown Jira error",details:{raw:t}};const e=t?.status??t?.statusCode??t?.response?.status??t?.response?.statusCode,r="number"==typeof e?e:Number(e)||void 0,s=t?.response?.data??t?.data??t?.response?.body??t?.body,n=[];"string"==typeof t?.message&&n.push(t.message),((t,e)=>{t&&(Array.isArray(t.errorMessages)&&t.errorMessages.forEach(t=>"string"==typeof t&&e.push(t)),"string"==typeof t.errorMessage&&e.push(t.errorMessage),t.errorCollection&&Array.isArray(t.errorCollection.errors)&&t.errorCollection.errors.forEach(t=>{"string"==typeof t?e.push(t):t&&"string"==typeof t.message&&e.push(t.message)}),t?.errors&&"object"==typeof t.errors&&Object.values(t.errors).forEach(t=>{"string"==typeof t?e.push(t):"string"==typeof t?.message&&e.push(t.message)}))})(s,n);const i=r?`Jira API error (${r})`:"Jira API error",o=n.length>0?n.join(" | "):i;return{code:r?"jira_"+r:t?.code??"jira_error",message:o,details:{httpStatus:r,body:s,raw:t}}}const Tt=j.object({issueId:j.string().min(1),deleteSubtasks:j.boolean().optional().default(!0)}),Nt={name:"jira.issue-delete",inputSchema:Tt,runTool:async(t,e)=>{try{const r=Tt.parse(e),s=t.issues??t.issue??t,n=s?.delete??s?.deleteIssue;if("function"!=typeof n)throw Error("jira client delete endpoint is not available");return await n.call(s,{issueId:r.issueId,deleteSubtasks:r.deleteSubtasks}),{success:!0,message:`Issue ${e.issueId} deleted successfully`}}catch(t){throw kt(t)}}},Ot=j.object({issueId:j.string().min(1),expand:j.string().optional(),fields:j.array(j.string()).optional(),properties:j.array(j.string()).optional()}),Ct={name:"jira.issue-read",inputSchema:Ot,runTool:async(t,e)=>{try{const r=Ot.parse(e),s={issueIdOrKey:r.issueId};r.expand&&(s.expand=r.expand),r.fields&&(s.fields=r.fields),r.properties&&(s.properties=r.properties);const n=await t.issues.get(s);return n?.data??n}catch(t){throw kt(t)}}};function Ht(t,e,r){const s=((t.url??"")+"").match(/^(attachment|jira-attachment):(.+)$/i);if(!s)return null;const n=s[2],i=r.resolveAttachment?.(n);return i?{type:"block",node:{type:"mediaSingle",attrs:{layout:"center"},content:[{type:"media",attrs:{type:"file",id:i.id,collection:i.collection??"attachments"}}]}}:null}function Jt(t,e){if(!t)return[];if(!e.enableAtMentions&&!e.enableEmojiShortcodes)return[{type:"text",text:t}];let r=0;const s=[],n=/(^|[^A-Za-z0-9_])@([A-Za-z0-9._-]{1,64})/g,i=/:([a-z0-9_+-]{1,64}):/gi;for(;r<t.length;){const o=Dt(e.enableAtMentions?_t(n,t,r):null,e.enableEmojiShortcodes?_t(i,t,r):null);if(!o){s.push({type:"text",text:t.slice(r)});break}if(o.index>r&&s.push({type:"text",text:t.slice(r,o.index)}),"mention"===o.kind){const{full:t,groups:n}=o,i=n[0]??"",a=n[1]??"";i&&s.push({type:"text",text:i});const c=e.resolveMention?.(a);c?s.push({type:"mention",attrs:{id:c.id,text:c.text}}):s.push({type:"text",text:"@"+a}),r=o.index+t.length;continue}if("emoji"===o.kind){const{full:t,groups:n}=o,i=`:${n[0]}:`,a=e.resolveEmoji?.(i);s.push({type:"emoji",attrs:a?{shortName:a.shortName,text:a.text}:{shortName:i}}),r=o.index+t.length;continue}}return(t=>{const e=[];for(const r of t){const t=e[e.length-1];"text"!==r.type||"text"!==t?.type||t.marks||r.marks?e.push(r):t.text=(t.text??"")+(r.text??"")}return e})(s)}function _t(t,e,r){t.lastIndex=r;const s=t.exec(e);if(!s)return null;const n=t.source.includes("@")?"mention":"emoji";return{index:s.index,full:s[0],groups:s.slice(1),kind:n}}function Dt(t,e){return t?e&&t.index>e.index?e:t:e}function Pt(t){const e=(t.children??[])[0];return"text"===e?.type?(e.value??"")+"":"paragraph"===e?.type?((e.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("")||"")+"":""}function Rt(t){const e=((t??"")+"").toLowerCase().trim();return e?"info"===e||"note"===e||"success"===e||"warning"===e||"error"===e?e:"danger"===e?"error":null:null}function $t(t){const e=((t??"")+"").toLowerCase().trim();return!e||"neutral"!==e&&"green"!==e&&"yellow"!==e&&"red"!==e&&"blue"!==e&&"purple"!==e?null:e}function Mt(t,e){const r=[];for(const s of t??[])if(s?.type)if("text"!==s.type)if("strong"!==s.type)if("emphasis"!==s.type)if("delete"!==s.type)if("inlineCode"!==s.type)if("break"!==s.type){if("link"===s.type){const t=(s.url??"")+"",n=qt(s.children??[],t),i=Ht(s,0,e);if(i){"inline"===i.type?r.push(i.node):r.push({type:"text",text:n,marks:[{type:"link",attrs:{href:t}}]});continue}if(e.enableSmartCards&&Bt(n,t)){r.push({type:"inlineCard",attrs:{url:t}});continue}r.push({type:"text",text:n,marks:[{type:"link",attrs:{href:t}}]});continue}if("textDirective"===s.type&&"status"===s.name){const t=Pt(s)||"Status",e=$t(s.attributes?.color)??"neutral";r.push({type:"status",attrs:{text:t,color:e}});continue}if("textDirective"===s.type&&"emoji"===s.name){const t=Wt(s);r.push(Lt(t,e));continue}}else r.push({type:"hardBreak"});else r.push({type:"text",text:(s.value??"")+"",marks:[{type:"code"}]});else r.push(...Ft(Mt(s.children??[],e),{type:"strike"}));else r.push(...Ft(Mt(s.children??[],e),{type:"em"}));else r.push(...Ft(Mt(s.children??[],e),{type:"strong"}));else r.push(...Jt((s.value??"")+"",e));return r.filter(t=>!("text"===t.type&&""===(t.text??"")))}function Ft(t,e){return t.map(t=>{if("text"!==t.type)return t;const r=t.marks?[...t.marks,e]:[e];return{...t,marks:r}})}function qt(t,e){const r=[];for(const e of t??[])"text"===e.type||"inlineCode"===e.type?r.push((e.value??"")+""):"emphasis"!==e.type&&"strong"!==e.type&&"delete"!==e.type||r.push(qt(e.children??[],""));return r.join("")||e}function Bt(t,e){const r=(t??"").trim(),s=(e??"").trim();return r===s&&/^https?:\/\//i.test(s)}function Wt(t){return(t.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("").trim()||""}function Lt(t,e){const r=t.startsWith(":")?t:`:${t}:`,s=e.resolveEmoji?.(r);return s?{type:"emoji",attrs:{shortName:s.shortName,text:s.text}}:{type:"emoji",attrs:{shortName:r}}}function Ut(t){return t?"string"==typeof t?t:"text"===t.type||"inlineCode"===t.type?(t.value??"")+"":Array.isArray(t.children)?t.children.map(Ut).join(""):"":""}function Kt(t,e){if(!t?.type)return null;if((t=>"containerDirective"===t?.type&&"panel"===t?.name)(t))return((t,e)=>{const r=t.attributes??{},s=Rt(r.type)??"info",n="string"==typeof r.title?r.title:void 0,i=(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);return{type:"panel",attrs:{panelType:s,...n?{panelType:s,title:n}:{panelType:s}},content:i.length?i:[{type:"paragraph",content:[]}]}})(t,e);switch(t.type){case"heading":return{type:"heading",attrs:{level:Yt(t.depth??1,1,6)},content:Mt(t.children??[],e)};case"paragraph":return(t=>{const e=t.children??[];if(1!==e.length)return null;const r=e[0];if("image"!==r?.type)return null;const s=(r.url??"")+"";return s?{type:"mediaSingle",attrs:{layout:"center"},content:[{type:"media",attrs:{type:"external",url:s}}]}:null})(t)||{type:"paragraph",content:Mt(t.children??[],e)};case"blockquote":return{type:"blockquote",content:(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean)};case"list":return((t,e)=>e.enableTaskLists&&(t.children??[]).some(t=>"boolean"==typeof t.checked)?((t,e)=>{const r=[];let s=0;for(const n of t.children??[]){if("boolean"!=typeof n.checked)continue;s+=1;const t=(n.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);r.push({type:"taskItem",attrs:{localId:"task-"+s,state:n.checked?"DONE":"TODO"},content:t.length?t:[{type:"paragraph",content:[]}]})}return{type:"taskList",content:r}})(t,e):{type:t.ordered?"orderedList":"bulletList",content:(t.children??[]).map(t=>((t,e)=>{const r=(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);return{type:"listItem",content:r.length?r:[{type:"paragraph",content:[]}]}})(t,e))})(t,e);case"code":{const r=((t,e)=>{const r=(t??"").toString().trim().toLowerCase();return r?e.enableMermaid&&"mermaid"===r?"mermaid":(t=>{const e=t.trim().toLowerCase();return{js:"javascript",javascript:"javascript",jsx:"javascript",ts:"typescript",typescript:"typescript",tsx:"typescript",py:"python",python:"python",rb:"ruby",ruby:"ruby",sh:"bash",bash:"bash",zsh:"bash",shell:"bash",yml:"yaml",yaml:"yaml",json:"json",toml:"toml",xml:"xml",html:"html",css:"css",scss:"scss",sql:"sql",go:"go",rust:"rust",java:"java",c:"c",cpp:"cpp","c++":"cpp",cs:"csharp",csharp:"csharp",php:"php",kotlin:"kotlin",swift:"swift",md:"markdown",markdown:"markdown",graphql:"graphql",gql:"graphql",dockerfile:"docker",makefile:"make",ini:"ini"}[e]??e})(r):null})(t.lang,e);return{type:"codeBlock",attrs:{language:r},content:[{type:"text",text:(t.value??"")+""}]}}case"thematicBreak":return{type:"rule"};case"table":return((t,e)=>({type:"table",content:(t.children??[]).map((t,r)=>({type:"tableRow",content:(t.children??[]).map(t=>({type:0===r?"tableHeader":"tableCell",content:[{type:"paragraph",content:Mt(t.children??[],e)}]}))}))}))(t,e);case"leafDirective":return"status"===t.name?(t=>{const e=$t((t.attributes??{}).color)??"neutral";return{type:"paragraph",content:[{type:"status",attrs:{text:Pt(t)||"Status",color:e}}]}})(t):"panel"===t.name?((t,e)=>{const r=t.attributes??{},s=Rt(r.type)??"info",n="string"==typeof r.title?r.title:void 0;return{type:"panel",attrs:{panelType:s,...n?{title:n}:{}},content:[{type:"paragraph",content:Mt([{type:"text",value:Pt(t)}],e)}]}})(t,e):zt(t,e);default:return zt(t,e)}}function zt(t,e){if("drop"===e.unknownNodeStrategy)return null;const r=Ut(t);return r?{type:"paragraph",content:[{type:"text",text:r}]}:null}function Yt(t,e,r){const s=Number.isFinite(t)?Math.trunc(t):e;return Math.max(e,Math.min(r,s))}const Gt={resolveMention:void 0,resolveAttachment:void 0,resolveEmoji:void 0,enableSmartCards:!0,enableMermaid:!0,enableEmojiShortcodes:!0,enableAtMentions:!0,enableTaskLists:!0,unknownNodeStrategy:"text"};function Zt(t,e={}){const r={...Gt,...e},s=t??"",n=J().use(P).use(D).use(_),i=n.parse(s),o=n.runSync(i);return Vt(o),((t,e)=>{const r=[];for(const s of t.children??[]){const t=Kt(s,e);t&&(Array.isArray(t)?r.push(...t):r.push(t))}return((t,e)=>{if(!e.enableSmartCards)return t;const r=t.content.map(t=>(t=>{if("paragraph"!==t.type)return t;const e=t.content??[];if(1!==e.length)return t;const r=e[0];if("inlineCard"!==r?.type)return t;const s=r.attrs?.url;return s?[{type:"blockCard",attrs:{url:s}}]:t})(t)).flat();return{...t,content:r}})({version:1,type:"doc",content:r},e)})(o,r)}function Vt(t){if(!t||!Array.isArray(t.children))return;const e=[];for(const r of t.children)"definition"!==r?.type&&("html"!==r?.type?(Vt(r),e.push(r)):e.push({type:"text",value:(r.value??"")+""}));t.children=e}const Qt=j.object({issueId:j.string().min(1),transitionId:j.union([j.string(),j.number()]),fields:j.record(j.any()).optional(),update:j.record(j.array(j.object({set:j.any().optional(),add:j.any().optional(),remove:j.any().optional()}))).optional(),comment:j.string().optional()}),Xt={name:"jira.issue-transition",inputSchema:Qt,runTool:async(t,e)=>{try{const r=Qt.parse(e),s={id:r.transitionId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.comment&&(s.comment={body:Zt(r.comment)});const n=await t.issues.transition({issueId:r.issueId,transition:s});return n?.data??n}catch(t){throw kt(t)}}},te=j.object({issueId:j.string().min(1),fields:j.record(j.any()).optional(),update:j.record(j.array(j.object({set:j.any().optional(),add:j.any().optional(),remove:j.any().optional(),edit:j.any().optional()}))).optional(),properties:j.array(j.any()).optional(),notifyUsers:j.boolean().optional().default(!0),issueTemplateId:j.string().optional(),overrideScreenSecurity:j.boolean().optional().default(!1),overrideEditableFlag:j.boolean().optional().default(!1)}),ee={name:"jira.issue-update",inputSchema:te,runTool:async(t,e)=>{try{const r=te.parse(e),s={issueId:r.issueId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.properties&&(s.properties=r.properties),void 0!==r.notifyUsers&&(s.notifyUsers=r.notifyUsers),r.issueTemplateId&&(s.issueTemplateId=r.issueTemplateId),void 0!==r.overrideScreenSecurity&&(s.overrideScreenSecurity=r.overrideScreenSecurity),void 0!==r.overrideEditableFlag&&(s.overrideEditableFlag=r.overrideEditableFlag);const n=await t.issues.update(s);return n?.data??n}catch(t){throw kt(t)}}},re=j.object({issueId:j.string().min(1),assignee:j.union([j.string(),j.object({accountId:j.string().min(1)}),j.object({accountType:j.string().min(1)})])}),se={name:"jira.assign-issue",inputSchema:re,runTool:async(t,e)=>{try{const r=re.parse(e);let s;s="string"==typeof r.assignee?{accountId:r.assignee}:r.assignee;const n=await t.issues.assign({issueId:r.issueId,assignee:s});return n?.data??n}catch(t){throw kt(t)}}},ne=j.object({issueId:j.string().min(1)}),ie={name:"jira.unassign-issue",inputSchema:ne,runTool:async(t,e)=>{try{const r=ne.parse(e),s=await t.issues.assign({issueId:r.issueId,assignee:{accountId:"-1"}});return s?.data??s}catch(t){throw kt(t)}}},oe=j.object({issueId:j.string().min(1),body:j.string().min(1),visibility:j.object({type:j.enum(["role","group"]),value:j.string().min(1)}).optional()}),ae={name:"jira.comment-add",inputSchema:oe,runTool:async(t,e)=>{try{const r=oe.parse(e),s={body:Zt(r.body)};r.visibility&&(s.visibility=r.visibility);const n=await t.issues.addComment({issueId:r.issueId,comment:s});return n?.data??n}catch(t){throw kt(t)}}},ce=j.object({issueId:j.string().min(1),start:j.number().optional().default(0),maxResults:j.number().optional().default(50),orderBy:j.string().optional(),expand:j.string().optional()}),pe={name:"jira.comment-list",inputSchema:ce,runTool:async(t,e)=>{try{const r=ce.parse(e),s=await t.issues.getComments({issueId:r.issueId,start:r.start,maxResults:r.maxResults,orderBy:r.orderBy,expand:r.expand});return s?.data??s}catch(t){throw kt(t)}}},le=j.object({link:j.object({relationship:j.enum(["Blocks","Relates to","Duplicates","Is blocked by","Is related to","Is duplicated by","Causes","Is caused by","Clone","Required","Work on","Split","Roll up"]),inwardIssue:j.object({id:j.string().optional(),key:j.string().optional()}),outwardIssue:j.object({id:j.string().optional(),key:j.string().optional()}),comment:j.object({body:j.string().optional(),visibility:j.object({type:j.enum(["role","group"]),value:j.string().min(1)}).optional()}).optional()})}),ue={name:"jira.link-create",inputSchema:le,runTool:async(t,e)=>{try{const r=le.parse(e).link,s={relationship:r.relationship,inwardIssue:r.inwardIssue.id||r.inwardIssue.key,outwardIssue:r.outwardIssue.id||r.outwardIssue.key};r.comment&&(r.comment.body&&(s.comment=Zt(r.comment.body)),r.comment.visibility&&(s.visibility=r.comment.visibility));const n=await t.issues.link(s);return n?.data??n}catch(t){throw kt(t)}}},de=j.object({issueId:j.string().min(1),file:j.string().min(1),mimeType:j.string().optional(),comment:j.string().optional()}),me={name:"jira.attach",inputSchema:de,runTool:async(t,e)=>{try{const r=de.parse(e),n=i.resolve(r.file),o=await s.readFile(n),a=i.basename(n),c=await t.issues.addAttachment({issueId:r.issueId,file:{name:a,content:o,mimeType:r.mimeType??"application/octet-stream"},comment:r.comment});return c?.data??c}catch(t){if(t&&t.code&&"string"==typeof t.code&&["ENOENT","EACCES"].includes(t.code))throw Error("Attachment file error: "+t.message);throw kt(t)}}},he=j.object({issueId:j.string().min(1)}),fe={name:"jira.attachment-list",inputSchema:he,runTool:async(t,e)=>{try{const r=he.parse(e),s=await t.issues.getAttachments({issueId:r.issueId});return s?.data??s}catch(t){throw kt(t)}}},ye=j.object({issueId:j.string().min(1),attachmentId:j.string().min(1)}),ge={name:"jira.attachment-delete",inputSchema:ye,runTool:async(t,e)=>{try{const r=ye.parse(e);return await t.issues.deleteAttachment({issueId:r.issueId,attachmentId:r.attachmentId}),{success:!0,message:`Attachment ${e.attachmentId} deleted successfully`}}catch(t){throw kt(t)}}},be=j.object({issueId:j.string().min(1),timeSpent:j.string().min(1),comment:j.string().optional(),author:j.object({accountId:j.string().min(1)}).optional(),startingOn:j.string().optional(),artifact:j.string().optional()}),ve={name:"jira.worklog-add",inputSchema:be,runTool:async(t,e)=>{try{const r=be.parse(e),s={timeSpent:r.timeSpent};r.comment&&(s.comment=r.comment),r.author&&(s.author=r.author),r.startingOn&&(s.started=r.startingOn),r.artifact&&(s.artifact=r.artifact);const n=await t.issues.addWorklog({issueId:r.issueId,...s});return n?.data??n}catch(t){throw kt(t)}}},we={[Ct.name]:{title:"Jira Issue Read",description:"Read a Jira issue with expandable fields and properties",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ee.name]:{title:"Jira Issue Update",description:"Update a Jira issue using fields, update ops, and property toggles",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[Nt.name]:{title:"Jira Issue Delete",description:"Delete a Jira issue and optionally remove its subtasks",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[Xt.name]:{title:"Jira Issue Transition",description:"Transition a Jira issue while optionally adding a comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[se.name]:{title:"Jira Issue Assign",description:"Assign a Jira issue to a user or account",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[ie.name]:{title:"Jira Issue Unassign",description:"Unassign the current owner from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[ae.name]:{title:"Jira Comment Add",description:"Add a comment to a Jira issue with optional visibility",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[pe.name]:{title:"Jira Comment List",description:"List comments on a Jira issue with pagination support",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ue.name]:{title:"Jira Link Create",description:"Create an issue link relationship with optional comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[me.name]:{title:"Jira Attachment Add",description:"Attach a local file to a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[fe.name]:{title:"Jira Attachment List",description:"List attachments on a Jira issue",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ge.name]:{title:"Jira Attachment Delete",description:"Delete an attachment from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[ve.name]:{title:"Jira Worklog Add",description:"Log time spent on a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}}};async function Se(t){const e=c.for(Se);let r,s=null;try{r=(()=>{let t;try{const e=require("jira.js");t=e?.Version3Client||e.default?.Version3Client||e.default||e}catch(t){throw Error("Unable to require 'jira.js' \u2014 ensure it is installed as a dependency: "+t)}const{host:e,email:r,apiKey:s}=(()=>{const t=xt(),e=It().filter(t=>t.required&&!t.value);if(e.length>0)throw new Et(e);return{host:t.host,email:t.email,apiKey:t.apiKey}})();return new t({host:e,authentication:{basic:{email:r,apiToken:s}}})})()}catch(t){if(!(t instanceof Et))return void e.warn("Skipping Jira tool registration; unable to create Jira client",{error:t});s=t,e.warn("Registering Jira tools without credentials; each tool will report configuration requirements.",{error:t})}const n=[Ct,ee,Nt,Xt,se,ie,ae,pe,ue,me,fe,ge,ve];for(const i of n){const n=we[i.name];if(n)try{await t.registerTool(i.name,{title:n.title,description:n.description,inputSchema:et(i.inputSchema),annotations:n.annotations},async t=>{if(!r)throw s??Error("Jira client unavailable because credentials could not be loaded.");return i.runTool(r,t)}),e.info("Registered Jira tool "+i.name)}catch(t){e.error("Failed to register Jira tool "+i.name,{error:t})}}}async function je(t){await(async t=>{t.registerTool("decaf.server-info",{title:"Decaf MCP Server Info",description:"Return server metadata, version, and registered prompt names for diagnostics.",inputSchema:{},outputSchema:void 0,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},async()=>{const t=yt.map(t=>t.getName()).sort();return{content:[{type:"text",text:["Name: "+jt.name,"Title: "+jt.title,"Version: "+jt.version,"Prompts: "+(t.join(", ")||"<none>")].join("\n")}]}})})(t);const e=c.for(je);try{await Se(t)}catch(t){e.error("Failed to register Jira tools",t)}}class xe extends V{setCb(t){return this.cb=t,this}setConfig(t){return this.config=t,this}setUriOtTemplate(t){return this.uriOrTemplate=t,this}constructor(t){super(t)}static get builder(){return new xe}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{const e="string"==typeof this.uriOrTemplate&&this.uriOrTemplate.includes("{")?new $(new R(this.uriOrTemplate),{list:void 0}):this.uriOrTemplate,r=Object.assign(this.config,{_meta:{}}),s=async(t,e)=>{const r=this.logFor(e);r.verbose(`Requesting resource ${this.name} from ${t.toString()}`);const s=await Promise.resolve(this.cb(t,e));return r.verbose(`Resource ${this.name} retrieved successfully.`),r.debug("Resource retrieval meta: "+JSON.stringify(s._meta)),s};return t.resource(this.name,e,r,s)}catch(t){throw c.for(this).error("Error registering resource "+this.name,t),t}}}y([b(),g("design:type",String)],xe.prototype,"uriOrTemplate",void 0),y([b(),g("design:type",Function)],xe.prototype,"cb",void 0),y([b(),g("design:type",Object)],xe.prototype,"config",void 0);const Ie=n.join(process.cwd(),"src/assets"),Ae=n.join(Ie,"templates"),Ee=n.join(Ie,"prompts"),ke=new WeakMap;class Te extends p{get client(){const t=ke.get(this);if(!t)throw Error("Mcp server requires Mcp client");return t}constructor(){super()}async load(){const t=this.log.for(this.load);for(const e of yt)try{t.info("loading prompt "+e.getName());const r=e.build(this.client);t.verbose(`Loaded prompt ${r.title} from ${e.getName()} definition`)}catch(r){t.error("Failed to load prompt "+e.getName(),r)}try{await je(this.client),t.verbose("Registered built-in tools")}catch(e){t.error("Failed to register tools",e)}try{await(async(t,r)=>{r.info("Registering agent templates as resources...");const s=e.readdirSync(Ae).filter(t=>t.endsWith(".md"));for(const i of s){const s=n.basename(i,".md"),o=n.join(Ae,i),a=xe.builder.setName(s).setTitle("Template: "+s).setDescription("Resource template for "+s).setUriOtTemplate("file:///"+o).setConfig({mimeType:"text/markdown",description:"Template for "+s}).setCb(async t=>{const r=e.readFileSync(t.pathname,"utf8");return{contents:[{uri:t.toString(),text:r,mimeType:"text/markdown"}],_meta:{}}});try{a.build(t),r.info("Registered template: "+s)}catch(t){r.error(`Failed to register template ${s}:`,t)}}r.info("Registering agent prompts...");const i=e.readdirSync(Ee).filter(t=>t.endsWith(".md"));for(const s of i){const i=n.basename(s,".md"),o=n.join(Ee,s),a=e.readFileSync(o,"utf8"),c=at.builder.setName(i).setTitle("Prompt: "+i).setDescription("Dynamic prompt for "+i).setArgsSchema(j.object({})).setCb(async t=>({messages:[{role:"user",content:{type:"text",text:a}}],_meta:{}}));try{c.build(t),r.info("Registered prompt: "+i)}catch(t){r.error(`Failed to register prompt ${i}:`,t)}}})(this.client,t),t.verbose("Registered agent-specific assets")}catch(e){t.error("Failed to register agent assets",e)}}async boot(t="stdio"){let r=this.log;this.log.for(this.boot).info("McpServer booting..."),((t=c.get())=>{let r;try{r=(()=>{let t,r=__dirname;try{for(;r&&r!==n.parse(r).root;){const s=n.join(r,"node_modules");if(e.existsSync(s)&&e.statSync(s).isDirectory()){t=s;break}const i=n.dirname(r);if(i===r)break;r=i}}catch{}const s=[];if(t){const r=n.join(t,"@decaf-ts");try{if(e.existsSync(r)&&e.statSync(r).isDirectory()){const t=e.readdirSync(r);for(const i of t){const t=n.join(r,i);try{const r=n.join(t,"workdocs","assets","slogans.json");if(e.existsSync(r)&&e.statSync(r).isFile()){const t=e.readFileSync(r,"utf-8"),n=JSON.parse(t);if(Array.isArray(n))for(const t of n)"string"==typeof t&&t.trim().length>0&&s.push(t.trim())}}catch{}}}}catch{}}return 0===s.length?"Decaf: strongly brewed TypeScript.":s[Math.floor(Math.random()*s.length)]})()}catch{r="Decaf: strongly brewed TypeScript."}const s="# \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n# ( ( \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# ) ) \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# [=======] \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n# `-----\xb4 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n#".split("\n"),i=s.reduce((t,e)=>Math.max(t,e.length),0);s.push("# "+r.padStart(i-3)),s.forEach((e,r)=>{const s=U[r%U.length]||"",n=t.info.bind(t);try{n(f(e||"").raw(s).text)}catch{n((e||"")+"")}})})(this.log),"stdio"===t&&(c.setFactory(L),r=c.for(this.constructor.name));const s=((Array.isArray(jt.icons)?jt.icons:[jt.icons])||[]).map(t=>{const e="string"==typeof t?.src?t.src:(t?.src??"")+"",r="string"==typeof t?.mimeType?t.mimeType:(t?.mimeType??"")+"";let s=[];return Array.isArray(t?.sizes)?s=t.sizes.map(t=>t+""):"string"==typeof t?.sizes&&(s=(t.sizes+"").split(",").map(t=>t.trim())),{src:e,mimeType:r,sizes:s}}),i={name:jt.name,title:jt.title,websiteUrl:jt.websiteUrl,version:jt.version,icons:s},o=new M(i,{instructions:"You are an AI assistant designed to help users with programming tasks related to the Decaf-TS framework. \nProvide clear, concise, and accurate information.\nIf you don't know the answer, admit it rather than making up information.\nAlways prioritize the user's intent and provide helpful suggestions when appropriate.\n",capabilities:{logging:{},tools:{},prompts:{}}});switch(((t,e)=>{ke.set(t,e)})(this,o),o.onerror=t=>{this.log.error("MCP instance onerror",t)},t){case"stdio":t=new q;break;case"http":t=new B({sessionIdGenerator:()=>F(),onsessioninitialized:t=>r.verbose("Session initialized: "+t),onsessionclosed:t=>r.verbose("Session closed: "+t),enableJsonResponse:!0,eventStore:void 0});break;default:if(!(a=t)||"object"!=typeof a||"function"!=typeof a.send&&"function"!=typeof a.close&&"function"!=typeof a.on)throw new T("Invalid transport type: "+t)}var a;try{this.log.info("Loading resources/prompts/tools..."),await this.load()}catch(t){throw this.log.error("Error loading resources/prompts/tools: "+t),t}await this.client.connect(t),r.info(`MCP Server connected via ${t.constructor.name} and running. Waiting for client connections...`)}}const Ne=(new t).command("start").option("--transport [String]","transport mode","stdio").description("starts decaf's mcp server").action(async t=>{const e=JSON.parse(r.readFileSync(i.join(process.cwd(),"package.json"),"utf-8")),s=e.version,{transport:n}=t,o=(new W).for("mcp-server");if("stdio"!==n)throw Error("Unsupported transport mode: "+n);return o.info("Transport stdio"),o.debug(`running with options: ${JSON.stringify(t)} for ${e.name} version ${s}`),(new Te).boot(n)});(new t).command("md-to-ast").description("pipes markdown to jira ast: `cat file.md` | npx decaf-mcp md-to-ast > ast.json").action(async t=>{const e=JSON.parse(r.readFileSync(i.join(process.cwd(),"package.json"),"utf-8")),s=e.version;c.for("md-to-ast").debug(`running with options: ${JSON.stringify(t)} for ${e.name} version ${s}`);const n=Zt(await(async()=>{const t=[];for await(const e of process.stdin)t.push(Buffer.from(e));return Buffer.concat(t).toString("utf8")})(),{resolveMention:t=>({id:t,text:"@"+t}),resolveAttachment:t=>({id:t,collection:"attachments"})});process.stdout.write(JSON.stringify(n,null,2)+"\n")});const Oe=(new t).name("mcp-server").command("mcp-server").description("decaf mcp server and agentic functionality");Oe.addCommand(Ne),Oe.parse(process.argv);
1
+ import{Command as t}from"commander";import*as e from"fs";import r,{promises as s}from"fs";import*as n from"path";import i from"path";import{MiniLogger as o,NumericLogLevels as a,Logging as c,LoggedClass as p,toSnakeCase as l,sf as u,toPascalCase as d,LogLevel as m,LoggedEnvironment as h}from"@decaf-ts/logging";import{style as f}from"styled-string-builder";import{__decorate as y,__metadata as g}from"tslib";import{required as b,Model as v,list as w,minlength as S}from"@decaf-ts/decorator-validation";import{z as j,ZodObject as x}from"zod";import{injectable as I,inject as A}from"@decaf-ts/injectable-decorators";import{prop as E,Metadata as k}from"@decaf-ts/decoration";import{InternalError as T,SerializationError as N,ValidationError as O}from"@decaf-ts/db-decorators";import C from"crypto";import H from"zlib";import{unified as J}from"unified";import _ from"remark-directive";import D from"remark-gfm";import P from"remark-parse";import{UriTemplate as R}from"@modelcontextprotocol/sdk/shared/uriTemplate.js";import{ResourceTemplate as $,McpServer as M}from"@modelcontextprotocol/sdk/server/mcp.js";import{v4 as F}from"uuid";import{StdioServerTransport as q}from"@modelcontextprotocol/sdk/server/stdio.js";import{StreamableHTTPServerTransport as B}from"@modelcontextprotocol/sdk/server/streamableHttp.js";class W extends o{log(t,e,r,s){const n=this.config("level");a[n],a[t]}}const L=(t,e,...r)=>{const s=(t=>{if("string"==typeof t)return t;if(!t)return"unknown";if("function"==typeof t)return t.name||"unknown";if("object"==typeof t&&"constructor"in t){const e=t.constructor;if(e&&e.name)return e.name}return"unknown"})(t);return new W(s,e)},U=["\x1b[38;5;215m","\x1b[38;5;209m","\x1b[38;5;205m","\x1b[38;5;210m","\x1b[38;5;217m","\x1b[38;5;216m","\x1b[38;5;224m","\x1b[38;5;230m","\x1b[38;5;230m"];var K,z,Y,G,Z;(t=>{t[t.NONE=0]="NONE",t[t.BASIC=1]="BASIC",t[t.ADVANCED=2]="ADVANCED",t[t.HIGH=3]="HIGH"})(K||(K={})),(t=>{t[t.NONE=0]="NONE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(z||(z={})),(t=>{t[t.FREE=0]="FREE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(Y||(Y={}));class V extends v{get log(){return this._log||(this._log=c.for(this)),this._log}constructor(t){super(t)}logFor(t){const{sessionId:e,requestId:r,authInfo:s}=t||{};let n="string"==typeof e&&e.length>0?this.log.for(e):this.log;return s&&s.clientId&&(n=n.for(s.clientId)),r&&(n=n.for(r.toString())),n}setDescription(t){return this.description=t,this}getDescription(){return this.description}setName(t){return this.name=t,this}getName(){return this.name}setTitle(t){return this.title=t,this}}y([b(),g("design:type",String)],V.prototype,"description",void 0),y([b(),g("design:type",String)],V.prototype,"name",void 0),y([b(),g("design:type",String)],V.prototype,"title",void 0);class Q extends V{constructor(t){super(t),this.reasoning=K.NONE,this.effort=z.NONE,this.cost=Y.FREE}setReasoning(t){return this.reasoning=t,this}setEffort(t){return this.effort=t,this}setCost(t){return this.cost=t,this}}function X(t){if(!t)return;let e=t,r=e&&e._def;for(;r&&"ZodObject"!==r.typeName;){if("ZodEffects"===r.typeName&&r.schema)e=r.schema;else if("ZodOptional"===r.typeName&&r.innerType)e=r.innerType;else if("ZodDefault"===r.typeName&&r.innerType)e=r.innerType;else if("ZodNullable"===r.typeName&&r.innerType)e=r.innerType;else{if(!r.schema)return;e=r.schema}r=e&&e._def}return r&&"ZodObject"===r.typeName?r:void 0}function tt(t,e="schema"){if(X(t))return t;if(t&&"object"==typeof t){const e=t.def&&"object"==typeof t.def?t.def:void 0,r=e&&(e.shape||"object"===e.type)&&e.shape||("object"===t.type?t.shape:void 0)||(e&&"object"===e.type?{}:void 0);if(e||"object"===t.type||r){const t={};if(r&&"object"==typeof r)for(const[e,s]of Object.entries(r))t[e]=rt(s)?s:j.any();return j.object(t)}}throw Error(`Registration error: provided a non-canonical ${e}. Export a ZodObject (z.object(...)).`)}function et(t){if(!t)return;if(t&&"object"==typeof t&&!t._def)return t.def&&"object"==typeof t.def&&t.def.shape?t.def.shape:t;const e=X(t);return e?"function"==typeof e.shape?e.shape():e.shape||void 0:void 0}function rt(t){return!(!t||"object"!=typeof t||!t._def)}y([b(),g("design:type",Number)],Q.prototype,"reasoning",void 0),y([b(),g("design:type",Number)],Q.prototype,"effort",void 0),y([b(),g("design:type",Number)],Q.prototype,"cost",void 0),(t=>{t.ASSETS="assets"})(G||(G={})),(t=>{t.PROMPT="prompts",t.DOCUMENTATION="documentation",t.CODE="code"})(Z||(Z={}));const st=Buffer.from("DCAF1","ascii");function nt(t){let r=t;for(;;){const t=n.join(r,"lib","assets");if(e.existsSync(t))return t;const s=n.join(r,"src","assets");if(e.existsSync(s))return s;const i=n.join(r,"assets");if(e.existsSync(i))return i;const o=n.dirname(r);if(o===r)break;r=o}}function it(){const t=process.env.DECAF_ASSET_DIR||process.env.MCP_ASSET_DIR||process.env.ASSET_DIR||"";if(t&&e.existsSync(t))return t;const r=process.argv?.[1];if(r){const t=nt(n.dirname(r));if(t)return t}const s=[process.cwd(),process.env.INIT_CWD].filter(Boolean);for(const t of s){const e=nt(t);if(e)return e}return n.join(process.cwd(),"assets")}let ot=class extends p{constructor(t){super(),this.basePath=t||it()}listAssets(...t){const r=n.join(this.basePath,...t);return e.readdirSync(r)}listPrompts(){return this.listAssets(Z.PROMPT)}getAsset(t,r="md",...s){const i=n.join(this.basePath,...s),o=(t,r=!1)=>{try{return r?(t=>{if(t.length<st.length+16+12+16)throw Error("Invalid prompt payload (too short)");if(!t.subarray(0,st.length).equals(st))throw Error("Invalid prompt payload (bad magic)");const e=process.env.ENCRYPTION_KEY||"";if(!e)throw Error("Missing encryption key. Set ENCRYPTION_KEY to load obfuscated assets.");let r=st.length;const s=t.subarray(r,r+16);r+=16;const n=t.subarray(r,r+12);r+=12;const i=t.subarray(r,r+16);r+=16;const o=t.subarray(r),a=((t,e)=>C.scryptSync(t,e,32))(e,s),c=C.createDecipheriv("aes-256-gcm",a,n);c.setAuthTag(i);const p=Buffer.concat([c.update(o),c.final()]);return H.gunzipSync(p)})(e.readFileSync(t)).toString("utf-8"):e.readFileSync(t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}},a=o(n.join(i,`${t}.${r}`),"enc"===r);if(null!==a)return a;const c=o(n.join(i,t+".enc"),!0);if(null!==c)return c;throw Error("Asset not found: "+n.join(i,`${t}.${r}`))}getAllAssets(t,...e){return this.listAssets(t,...e).reduce((r,s)=>{const i=n.extname(s),o=n.basename(s,i),a=i.replace(/^\./,"")||void 0;return r[o]=this.getAsset(o,a??void 0,t,...e),r},{})}toPromptDef(t){const e=t=>"number"==typeof t?t:"string"==typeof t?(t=>{switch(t){case"none":return K.NONE;case"basic":return K.BASIC;case"advanced":return K.ADVANCED;case"high":return K.HIGH;case"medium":return z.MEDIUM;case"low":return Y.LOW;case"free":return Y.FREE;default:throw new T("Cannon convert unknown level "+t)}})(t.toLowerCase()):K.NONE;return t.effort=e(t.effort),t.reasoning=e(t.reasoning),t.cost=e(t.cost),t}getPrompt(t,...e){const r=this.getAsset(l(t),"json",Z.PROMPT,...e);let s;try{s=JSON.parse(r)}catch(r){throw new N(`Failed to parse prompt ${t} in categories ${e}: ${r}`)}return this.toPromptDef(s)}getAllPrompts(...t){const e=this.getAllAssets(Z.PROMPT,...t);return Object.entries(e).reduce((e,[r,s])=>{try{e[r]=JSON.parse(s)}catch(e){throw new N(`Failed to parse prompt ${r} in categories ${t}: ${e}`)}return e},e)}};ot=y([I(),g("design:paramtypes",[String])],ot);class at extends Q{constructor(t){super(t)}setCb(t){return this.cb=t,this}setArgsSchema(t){return this.argsSchema=t,this}static get builder(){return new at}static patchPrompt(t,e,r,s){const n=(e=Array.isArray(e)?e:Object.keys(e)).filter(t=>!Object.prototype.hasOwnProperty.call(r,t));if(n.length)throw new O("Missing replacements for placeholders: "+n.join(", "));s&&(s.verbose("Patching prompt with placeholders: "+JSON.stringify(e)),s.debug("Values: "+JSON.stringify(r)));const i=e.reduce((t,e)=>(t[e]=r[e],t),{});return u(t,i)}patchPrompt(t,e,r,s){return at.patchPrompt(t,e,r,s||this.log.for(this.patchPrompt))}build(t,e){const r=this.log.for(this.build),s=this.hasErrors();if(s)throw new O(s.toString());try{this.argsSchema&&tt(this.argsSchema,"argsSchema");const r=et(this.argsSchema);return t.registerPrompt(this.name,{title:this.title,description:this.description,argsSchema:r},async(t,r)=>{const s=this.logFor(r);t=Object.assign({},e,t||{}),s.verbose(`Executing prompt ${this.name} with args: ${JSON.stringify(t)}`),t._meta=Object.assign(t._meta||{},{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}});const n=await Promise.resolve(this.cb(t,r));return s.verbose(`Prompt ${this.name} executed successfully.`),s.debug("Prompt execution meta: "+JSON.stringify(n._meta)),n})}catch(t){throw r.error("Failed to register prompt "+(this.name||this.constructor.name),t),t}}}y([A(ot),g("design:type",ot)],at.prototype,"assets",void 0),y([b(),g("design:type",Object)],at.prototype,"cb",void 0),y([b(),g("design:type",x)],at.prototype,"argsSchema",void 0),y([E(),g("design:type",Object)],at.prototype,"placeholders",void 0);class ct extends at{setCategory(t){return this.promptCategory=t,this}addPrefix(t){return this.prefixes=this.prefixes||[],this.prefixes.push(t),this}addSuffix(t){return this.suffixes=this.suffixes||[],this.suffixes.push(t),this}constructor(t){super(t)}build(t){const e=this.assets.getPrompt(this.name,this.promptCategory);v.fromObject(this,e);const r=new Set((k.properties(ct)||[]).filter(t=>!["assets","promptCategory","prefixes","suffixes"].includes(t)));["cb","argsSchema"].forEach(t=>r.add(t));const s=this.hasErrors(...Array.from(r));if(s)throw new O(s.toString());const n=(this.prefixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),i=(this.suffixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),o=[...new Set([...e.placeholders,...n.map(t=>t.placeholders||[]),...i.map(t=>t.placeholders||[])].flat())].reduce((t,e)=>(t[e]=j.string().describe("The description for "+e),t),{});return this.setArgsSchema(j.object(o)),this.setCb((t,e)=>{const r=this.logFor(e).for(ct).for(this.promptCategory).for(this.name);function s(t=[]){return Array.isArray(t)?t:Object.keys(t)}const n=(this.prefixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),i=(this.suffixes||[]).map(t=>this.assets.getPrompt(t,this.promptCategory)),o=this.assets.getPrompt(this.name,this.promptCategory),a=[...new Set([...n.map(t=>s(t.placeholders)).flat(),...i.map(t=>s(t.placeholders)).flat(),...s(o.placeholders).flat()])];return{messages:[{role:"user",content:{type:"text",text:this.patchPrompt([...n.map(t=>t.prompt),o.prompt,...i.map(t=>t.prompt)].join("\n\n"),a,t,r)}}],_meta:{}}}),super.build(t)}setReasoning(t){throw new T("Named prompt builders don't require callback")}setEffort(t){throw new T("Named prompt builders don't require callback")}setCost(t){throw new T("Named prompt builders don't require callback")}setDescription(t){throw new T("Named prompt builders don't require callback")}setTitle(t){throw new T("Named prompt builders don't require callback")}static get builder(){return new ct}}y([b(),g("design:type",String)],ct.prototype,"promptCategory",void 0),y([w(String),S(1),g("design:type",Array)],ct.prototype,"prefixes",void 0),y([S(1),w(String),g("design:type",Array)],ct.prototype,"suffixes",void 0);const pt=at.builder.setName("example.prompt").setTitle("Example prompt").setDescription("Example prompt for testing").setArgsSchema(j.object({message:j.string().optional()})).setCb(async t=>{const e=t.message??"default";return{messages:[{role:"assistant",content:{type:"text",text:e}}],content:[],structuredContent:{message:e},result:{message:e}}}),lt=at.builder.setName("interactive.jsdoc").setTitle("Interactive JSDoc prompt").setDescription("Interactive prompt for jogging JSDoc helpers").setArgsSchema(j.object({gist:j.string().optional()})).setCb(async t=>{const e=t.gist??"interactive jsdoc response";return{messages:[{role:"assistant",content:{type:"text",text:e}}],content:[],structuredContent:{message:e},result:{message:e}}}),ut=Object.assign(lt,{name:lt.getName()});var dt;function mt(t,e=[],r=[]){const s=ct.builder.setCategory(dt.DOCS).setName(t);return["prefix",...e].forEach(t=>s.addPrefix(t)),["suffix",...r].forEach(t=>s.addSuffix(t)),s}(t=>{t.DOCS="documentation",t.CODE="code"})(dt||(dt={}));const ht=[mt("class"),mt("constant"),mt("decorator"),mt("function"),mt("module"),mt("file"),mt("repo",[],["iterate"])],ft=j.object({className:j.string().describe("the class name to turn into a builder")}),yt=[pt,ut,...ht,at.builder.setName("ts.code.dp.builder").setTitle("Typescript builder design patter prompt").setDescription("for a class, with a defined set of properties, scafold a builder design pattern").setArgsSchema(ft).setReasoning(K.BASIC).setCb((t,e)=>(t.className=d(t.className),{messages:[{role:"user",content:{type:"text",text:`You're a senior TypeScript developer writing typescript code.You're a senior TypeScript developer writing typescript code.\nTransform the selected class into a builder design pattern implementation in Typescript.\nuse @decaf-ts validation decorators to enforce the validation of your builder.\n\n- must extend the Model Class from @decaf-ts/decorator-validation;\n- each property must be marked as protected;\n- each property must have a setter method that returns 'this' for chaining;\n- the build() method must validate the properties using hasErrors() method from Model class;\n- if validation fails, throw an error with the validation errors;\n- if validation passes, return an instance of the original class with the set properties;\n- optionally (but do so by default) add the static builder and from methods from the example;\n- if the clasee already follows the pattern but has properties without decoration or without setters, simple add them;\n\nexample:\n\noriginal class:\n\`\`\`typescript\nexport class ${t.className} {\n description!: string;\n name!: string = "default name";\n title!: string;\n age?: string;\n dateOfBirth!: Date;\n}}\n\`\`\` \n\nresulting builder pattern implementation:\n\`\`\`typescript\nexport class ${t.className}Builder extends Model {\n\n @minlength(10\n @required()\n protected description!: string;\n \n @required()\n protected name!: string = "default value;\n \n @required()\n protected title!: string;\n \n @min(18)\n protected age?: string;\n \n @date()\n protected dateOfBirth!: Date;\n\n protected constructor(arg?: ModelArg<${t.className}Builder>>) {\n super(arg);\n Model.fromModel(this, arg);\n }\n\n setDescription(value: string) {\n this.description = value;\n return this;\n }\n\n setName(value: string) {\n this.name = value;\n return this;\n }\n\n setTitle(value: string) {\n this.title = value;\n return this;\n }\n setAge(value: number) {\n this.age = value;\n return this;\n }\n setDate(value: Date) {\n this.age = value;\n return this;\n }\n \n build(...args: any[]): ${t.className}Builder | Promise<${t.className}Builder> {\n const errs = this.hasErrors();\n if (errs) throw new Error(errs.toString());\n \n return // code that builds OBJ here\n }\n \n static get builder(): ${t.className}Builder {\n return new ${t.className}Builder(); // static method to get a new builder instance\n }\n \n static from<K extends keyof ${t.className}Builder>(obj: K, ${t.className}Builder[K]): ${t.className}Builder {\n return new ${t.className}Builder(); // static method to create a builder from an object\n }\n}\n\`\`\` \n\n`}}],_meta:{}}))];class gt extends Q{setAnnotations(t){return this.annotations=Object.assign(this.annotations,t),this}setCb(t){return this.cb=t,this}setInputSchema(t){return this.inputSchema=t,this}setOutputSchema(t){return this.outputSchema=t,this}constructor(t){super(t),this.annotations={readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}}static get builder(){return new gt}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{this.inputSchema&&tt(this.inputSchema,"inputSchema"),this.outputSchema&&tt(this.outputSchema,"outputSchema");const e=et(this.inputSchema),r=et(this.outputSchema);return t.registerTool(this.name,{title:this.title,description:this.description,inputSchema:e,outputSchema:r,annotations:this.annotations,_meta:{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}}},async(t,e)=>{const r=this.logFor(e);r.verbose(`Executing tool ${this.name} with args: ${JSON.stringify(t)}`),e._meta=Object.assign(e._meta||{},{usage:{reasoning:this.reasoning,effort:this.effort,cost:this.cost}});const s=await Promise.resolve(this.cb(t,e));return r.verbose(`Tool ${this.name} executed successfully.`),r.debug("Tool execution meta: "+JSON.stringify(s._meta)),s})}catch(t){const e=t?.message||t+"";if("string"==typeof e&&e.includes("already registered"))return c.for(this).warn(`Tool ${this.name} already registered - skipping duplicate registration`),{name:this.name};throw c.for(this).error("Error building tool",t),t}}}y([b(),g("design:type",Object)],gt.prototype,"annotations",void 0),y([b(),g("design:type",Object)],gt.prototype,"cb",void 0),y([b(),g("design:type",Function)],gt.prototype,"inputSchema",void 0);const bt=gt.builder.setName("example.tool").setTitle("Example tool").setDescription("A smoke tool used for quick testing").setInputSchema(j.object({})).setCb(async()=>({content:[{type:"text",text:"example tool ok"}],result:{status:"ok"}}));Object.assign(bt,{name:bt.getName()});const vt=gt.builder.setName("file.summarizer").setTitle("File summarizer").setDescription("Summaries files for quick previews").setInputSchema(j.object({filePath:j.string().optional()})).setCb(async()=>({content:[{type:"text",text:"file summary stub"}],result:{summary:"file summary stub"}}));Object.assign(vt,{name:vt.getName()});const wt="##VERSION##";k.registerLibrary("##PACKAGE##",wt);const St={mcpId:"decaf",name:"decaf-ts mcp server",title:"Decaf-TS MCP Server",description:"Provides precise coding assistance for the decaf-ts framework",version:wt,websiteUrl:"https://decaf-ts.github.io",repositoryUrl:"https://github.com/decaf-ts/mcp-server",license:"AGPL-3.0",workingDir:process.cwd(),assetDir:it(),contacts:[{name:"Decaf-TS",url:"https://decaf-ts.github.io"}],tags:"server,official,decaf-ts",metadata:{},icons:[{src:"workdocs/assets/favicon.svg",mimeType:"image/svg+xml",sizes:"any"}],jira:{host:process.env.JIRA__HOST||"decaf-ts.atlassian.net",email:process.env.JIRA__EMAIL||"",apiKey:process.env.JIRA__API_KEY||process.env.JIRA__APIKEY||"",projectKey:process.env.JIRA__PROJECT_KEY||void 0,issueType:process.env.JIRA__ISSUE_TYPE||void 0,parentIssue:process.env.JIRA__PARENT_ISSUE||void 0},level:m.error},jt=h.accumulate(St);function xt(){const{host:t,email:e,apiKey:r,projectKey:s,issueType:n}=jt.jira;return{host:t?.trim(),email:e?.trim(),apiKey:r?.trim(),projectKey:s?.trim(),issueType:n?.trim(),parentIssue:jt.jira.parentIssue?.trim()}}function It(){const t=xt();return[{name:"JIRA__HOST",required:!0,description:"Atlassian host (e.g. decaf-ts.atlassian.net) where your Jira instance is hosted.",value:t.host},{name:"JIRA__EMAIL",required:!0,description:"Email address of the Jira account that has API access.",value:t.email},{name:"JIRA__API_KEY",required:!0,description:"API token created in your Atlassian profile (a.k.a. APIKEY alias) for authenticating requests.",sensitive:!0,value:t.apiKey},{name:"JIRA__PROJECT_KEY",required:!1,description:"Default Jira project key (e.g. DECAF) used when an issue creation request omits a project.",value:t.projectKey},{name:"JIRA__ISSUE_TYPE",required:!1,description:"Default Jira issue type (e.g. Task, Bug) used when creating issues without an explicit type.",value:t.issueType},{name:"JIRA__PARENT_ISSUE",required:!1,description:"Default parent issue key (e.g. DECAF-123) applied when a child issue is created without an explicit parent.",value:t.parentIssue}]}function At(t){const e=t.value?((t,e)=>{if(t)return e?"<configured>":t})(t.value,t.sensitive):"not set",r=t.required?"(required)":"(optional)";return`\u2022 ${t.name} ${r}: ${t.description} Current state: ${e}.`}c.setConfig(jt);class Et extends Error{constructor(t){const e=It(),r=(t=>{const e=It();return`${t.length?`Missing Jira credentials: ${t.map(t=>t.name).join(", ")}.`:"Jira credentials are configured."}\n\nThis setup uses the following environment variables:\n${e.map(At).join("\n")}`})(t);super(r),this.name="MissingJiraEnvironmentError",this.descriptors=e,this.missing=t,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,Et)}}function kt(t){if(!t)return{code:"jira_error",message:"Unknown Jira error",details:{raw:t}};const e=t?.status??t?.statusCode??t?.response?.status??t?.response?.statusCode,r="number"==typeof e?e:Number(e)||void 0,s=t?.response?.data??t?.data??t?.response?.body??t?.body,n=[];"string"==typeof t?.message&&n.push(t.message),((t,e)=>{t&&(Array.isArray(t.errorMessages)&&t.errorMessages.forEach(t=>"string"==typeof t&&e.push(t)),"string"==typeof t.errorMessage&&e.push(t.errorMessage),t.errorCollection&&Array.isArray(t.errorCollection.errors)&&t.errorCollection.errors.forEach(t=>{"string"==typeof t?e.push(t):t&&"string"==typeof t.message&&e.push(t.message)}),t?.errors&&"object"==typeof t.errors&&Object.values(t.errors).forEach(t=>{"string"==typeof t?e.push(t):"string"==typeof t?.message&&e.push(t.message)}))})(s,n);const i=r?`Jira API error (${r})`:"Jira API error",o=n.length>0?n.join(" | "):i;return{code:r?"jira_"+r:t?.code??"jira_error",message:o,details:{httpStatus:r,body:s,raw:t}}}const Tt=j.object({issueId:j.string().min(1),deleteSubtasks:j.boolean().optional().default(!0)}),Nt={name:"jira.issue-delete",inputSchema:Tt,runTool:async(t,e)=>{try{const r=Tt.parse(e),s=t.issues??t.issue??t,n=s?.delete??s?.deleteIssue;if("function"!=typeof n)throw Error("jira client delete endpoint is not available");return await n.call(s,{issueId:r.issueId,deleteSubtasks:r.deleteSubtasks}),{success:!0,message:`Issue ${e.issueId} deleted successfully`}}catch(t){throw kt(t)}}},Ot=j.object({issueId:j.string().min(1),expand:j.string().optional(),fields:j.array(j.string()).optional(),properties:j.array(j.string()).optional()}),Ct={name:"jira.issue-read",inputSchema:Ot,runTool:async(t,e)=>{try{const r=Ot.parse(e),s={issueIdOrKey:r.issueId};r.expand&&(s.expand=r.expand),r.fields&&(s.fields=r.fields),r.properties&&(s.properties=r.properties);const n=await t.issues.get(s);return n?.data??n}catch(t){throw kt(t)}}};function Ht(t,e,r){const s=((t.url??"")+"").match(/^(attachment|jira-attachment):(.+)$/i);if(!s)return null;const n=s[2],i=r.resolveAttachment?.(n);return i?{type:"block",node:{type:"mediaSingle",attrs:{layout:"center"},content:[{type:"media",attrs:{type:"file",id:i.id,collection:i.collection??"attachments"}}]}}:null}function Jt(t,e){if(!t)return[];if(!e.enableAtMentions&&!e.enableEmojiShortcodes)return[{type:"text",text:t}];let r=0;const s=[],n=/(^|[^A-Za-z0-9_])@([A-Za-z0-9._-]{1,64})/g,i=/:([a-z0-9_+-]{1,64}):/gi;for(;r<t.length;){const o=Dt(e.enableAtMentions?_t(n,t,r):null,e.enableEmojiShortcodes?_t(i,t,r):null);if(!o){s.push({type:"text",text:t.slice(r)});break}if(o.index>r&&s.push({type:"text",text:t.slice(r,o.index)}),"mention"===o.kind){const{full:t,groups:n}=o,i=n[0]??"",a=n[1]??"";i&&s.push({type:"text",text:i});const c=e.resolveMention?.(a);c?s.push({type:"mention",attrs:{id:c.id,text:c.text}}):s.push({type:"text",text:"@"+a}),r=o.index+t.length;continue}if("emoji"===o.kind){const{full:t,groups:n}=o,i=`:${n[0]}:`,a=e.resolveEmoji?.(i);s.push({type:"emoji",attrs:a?{shortName:a.shortName,text:a.text}:{shortName:i}}),r=o.index+t.length;continue}}return(t=>{const e=[];for(const r of t){const t=e[e.length-1];"text"!==r.type||"text"!==t?.type||t.marks||r.marks?e.push(r):t.text=(t.text??"")+(r.text??"")}return e})(s)}function _t(t,e,r){t.lastIndex=r;const s=t.exec(e);if(!s)return null;const n=t.source.includes("@")?"mention":"emoji";return{index:s.index,full:s[0],groups:s.slice(1),kind:n}}function Dt(t,e){return t?e&&t.index>e.index?e:t:e}function Pt(t){const e=(t.children??[])[0];return"text"===e?.type?(e.value??"")+"":"paragraph"===e?.type?((e.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("")||"")+"":""}function Rt(t){const e=((t??"")+"").toLowerCase().trim();return e?"info"===e||"note"===e||"success"===e||"warning"===e||"error"===e?e:"danger"===e?"error":null:null}function $t(t){const e=((t??"")+"").toLowerCase().trim();return!e||"neutral"!==e&&"green"!==e&&"yellow"!==e&&"red"!==e&&"blue"!==e&&"purple"!==e?null:e}function Mt(t,e){const r=[];for(const s of t??[])if(s?.type)if("text"!==s.type)if("strong"!==s.type)if("emphasis"!==s.type)if("delete"!==s.type)if("inlineCode"!==s.type)if("break"!==s.type){if("link"===s.type){const t=(s.url??"")+"",n=qt(s.children??[],t),i=Ht(s,0,e);if(i){"inline"===i.type?r.push(i.node):r.push({type:"text",text:n,marks:[{type:"link",attrs:{href:t}}]});continue}if(e.enableSmartCards&&Bt(n,t)){r.push({type:"inlineCard",attrs:{url:t}});continue}r.push({type:"text",text:n,marks:[{type:"link",attrs:{href:t}}]});continue}if("textDirective"===s.type&&"status"===s.name){const t=Pt(s)||"Status",e=$t(s.attributes?.color)??"neutral";r.push({type:"status",attrs:{text:t,color:e}});continue}if("textDirective"===s.type&&"emoji"===s.name){const t=Wt(s);r.push(Lt(t,e));continue}}else r.push({type:"hardBreak"});else r.push({type:"text",text:(s.value??"")+"",marks:[{type:"code"}]});else r.push(...Ft(Mt(s.children??[],e),{type:"strike"}));else r.push(...Ft(Mt(s.children??[],e),{type:"em"}));else r.push(...Ft(Mt(s.children??[],e),{type:"strong"}));else r.push(...Jt((s.value??"")+"",e));return r.filter(t=>!("text"===t.type&&""===(t.text??"")))}function Ft(t,e){return t.map(t=>{if("text"!==t.type)return t;const r=t.marks?[...t.marks,e]:[e];return{...t,marks:r}})}function qt(t,e){const r=[];for(const e of t??[])"text"===e.type||"inlineCode"===e.type?r.push((e.value??"")+""):"emphasis"!==e.type&&"strong"!==e.type&&"delete"!==e.type||r.push(qt(e.children??[],""));return r.join("")||e}function Bt(t,e){const r=(t??"").trim(),s=(e??"").trim();return r===s&&/^https?:\/\//i.test(s)}function Wt(t){return(t.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("").trim()||""}function Lt(t,e){const r=t.startsWith(":")?t:`:${t}:`,s=e.resolveEmoji?.(r);return s?{type:"emoji",attrs:{shortName:s.shortName,text:s.text}}:{type:"emoji",attrs:{shortName:r}}}function Ut(t){return t?"string"==typeof t?t:"text"===t.type||"inlineCode"===t.type?(t.value??"")+"":Array.isArray(t.children)?t.children.map(Ut).join(""):"":""}function Kt(t,e){if(!t?.type)return null;if((t=>"containerDirective"===t?.type&&"panel"===t?.name)(t))return((t,e)=>{const r=t.attributes??{},s=Rt(r.type)??"info",n="string"==typeof r.title?r.title:void 0,i=(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);return{type:"panel",attrs:{panelType:s,...n?{panelType:s,title:n}:{panelType:s}},content:i.length?i:[{type:"paragraph",content:[]}]}})(t,e);switch(t.type){case"heading":return{type:"heading",attrs:{level:Yt(t.depth??1,1,6)},content:Mt(t.children??[],e)};case"paragraph":return(t=>{const e=t.children??[];if(1!==e.length)return null;const r=e[0];if("image"!==r?.type)return null;const s=(r.url??"")+"";return s?{type:"mediaSingle",attrs:{layout:"center"},content:[{type:"media",attrs:{type:"external",url:s}}]}:null})(t)||{type:"paragraph",content:Mt(t.children??[],e)};case"blockquote":return{type:"blockquote",content:(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean)};case"list":return((t,e)=>e.enableTaskLists&&(t.children??[]).some(t=>"boolean"==typeof t.checked)?((t,e)=>{const r=[];let s=0;for(const n of t.children??[]){if("boolean"!=typeof n.checked)continue;s+=1;const t=(n.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);r.push({type:"taskItem",attrs:{localId:"task-"+s,state:n.checked?"DONE":"TODO"},content:t.length?t:[{type:"paragraph",content:[]}]})}return{type:"taskList",content:r}})(t,e):{type:t.ordered?"orderedList":"bulletList",content:(t.children??[]).map(t=>((t,e)=>{const r=(t.children??[]).map(t=>Kt(t,e)).flat().filter(Boolean);return{type:"listItem",content:r.length?r:[{type:"paragraph",content:[]}]}})(t,e))})(t,e);case"code":{const r=((t,e)=>{const r=(t??"").toString().trim().toLowerCase();return r?e.enableMermaid&&"mermaid"===r?"mermaid":(t=>{const e=t.trim().toLowerCase();return{js:"javascript",javascript:"javascript",jsx:"javascript",ts:"typescript",typescript:"typescript",tsx:"typescript",py:"python",python:"python",rb:"ruby",ruby:"ruby",sh:"bash",bash:"bash",zsh:"bash",shell:"bash",yml:"yaml",yaml:"yaml",json:"json",toml:"toml",xml:"xml",html:"html",css:"css",scss:"scss",sql:"sql",go:"go",rust:"rust",java:"java",c:"c",cpp:"cpp","c++":"cpp",cs:"csharp",csharp:"csharp",php:"php",kotlin:"kotlin",swift:"swift",md:"markdown",markdown:"markdown",graphql:"graphql",gql:"graphql",dockerfile:"docker",makefile:"make",ini:"ini"}[e]??e})(r):null})(t.lang,e);return{type:"codeBlock",attrs:{language:r},content:[{type:"text",text:(t.value??"")+""}]}}case"thematicBreak":return{type:"rule"};case"table":return((t,e)=>({type:"table",content:(t.children??[]).map((t,r)=>({type:"tableRow",content:(t.children??[]).map(t=>({type:0===r?"tableHeader":"tableCell",content:[{type:"paragraph",content:Mt(t.children??[],e)}]}))}))}))(t,e);case"leafDirective":return"status"===t.name?(t=>{const e=$t((t.attributes??{}).color)??"neutral";return{type:"paragraph",content:[{type:"status",attrs:{text:Pt(t)||"Status",color:e}}]}})(t):"panel"===t.name?((t,e)=>{const r=t.attributes??{},s=Rt(r.type)??"info",n="string"==typeof r.title?r.title:void 0;return{type:"panel",attrs:{panelType:s,...n?{title:n}:{}},content:[{type:"paragraph",content:Mt([{type:"text",value:Pt(t)}],e)}]}})(t,e):zt(t,e);default:return zt(t,e)}}function zt(t,e){if("drop"===e.unknownNodeStrategy)return null;const r=Ut(t);return r?{type:"paragraph",content:[{type:"text",text:r}]}:null}function Yt(t,e,r){const s=Number.isFinite(t)?Math.trunc(t):e;return Math.max(e,Math.min(r,s))}const Gt={resolveMention:void 0,resolveAttachment:void 0,resolveEmoji:void 0,enableSmartCards:!0,enableMermaid:!0,enableEmojiShortcodes:!0,enableAtMentions:!0,enableTaskLists:!0,unknownNodeStrategy:"text"};function Zt(t,e={}){const r={...Gt,...e},s=t??"",n=J().use(P).use(D).use(_),i=n.parse(s),o=n.runSync(i);return Vt(o),((t,e)=>{const r=[];for(const s of t.children??[]){const t=Kt(s,e);t&&(Array.isArray(t)?r.push(...t):r.push(t))}return((t,e)=>{if(!e.enableSmartCards)return t;const r=t.content.map(t=>(t=>{if("paragraph"!==t.type)return t;const e=t.content??[];if(1!==e.length)return t;const r=e[0];if("inlineCard"!==r?.type)return t;const s=r.attrs?.url;return s?[{type:"blockCard",attrs:{url:s}}]:t})(t)).flat();return{...t,content:r}})({version:1,type:"doc",content:r},e)})(o,r)}function Vt(t){if(!t||!Array.isArray(t.children))return;const e=[];for(const r of t.children)"definition"!==r?.type&&("html"!==r?.type?(Vt(r),e.push(r)):e.push({type:"text",value:(r.value??"")+""}));t.children=e}const Qt=j.object({issueId:j.string().min(1),transitionId:j.union([j.string(),j.number()]),fields:j.record(j.any()).optional(),update:j.record(j.array(j.object({set:j.any().optional(),add:j.any().optional(),remove:j.any().optional()}))).optional(),comment:j.string().optional()}),Xt={name:"jira.issue-transition",inputSchema:Qt,runTool:async(t,e)=>{try{const r=Qt.parse(e),s={id:r.transitionId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.comment&&(s.comment={body:Zt(r.comment)});const n=await t.issues.transition({issueId:r.issueId,transition:s});return n?.data??n}catch(t){throw kt(t)}}},te=j.object({issueId:j.string().min(1),fields:j.record(j.any()).optional(),update:j.record(j.array(j.object({set:j.any().optional(),add:j.any().optional(),remove:j.any().optional(),edit:j.any().optional()}))).optional(),properties:j.array(j.any()).optional(),notifyUsers:j.boolean().optional().default(!0),issueTemplateId:j.string().optional(),overrideScreenSecurity:j.boolean().optional().default(!1),overrideEditableFlag:j.boolean().optional().default(!1)}),ee={name:"jira.issue-update",inputSchema:te,runTool:async(t,e)=>{try{const r=te.parse(e),s={issueId:r.issueId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.properties&&(s.properties=r.properties),void 0!==r.notifyUsers&&(s.notifyUsers=r.notifyUsers),r.issueTemplateId&&(s.issueTemplateId=r.issueTemplateId),void 0!==r.overrideScreenSecurity&&(s.overrideScreenSecurity=r.overrideScreenSecurity),void 0!==r.overrideEditableFlag&&(s.overrideEditableFlag=r.overrideEditableFlag);const n=await t.issues.update(s);return n?.data??n}catch(t){throw kt(t)}}},re=j.object({issueId:j.string().min(1),assignee:j.union([j.string(),j.object({accountId:j.string().min(1)}),j.object({accountType:j.string().min(1)})])}),se={name:"jira.assign-issue",inputSchema:re,runTool:async(t,e)=>{try{const r=re.parse(e);let s;s="string"==typeof r.assignee?{accountId:r.assignee}:r.assignee;const n=await t.issues.assign({issueId:r.issueId,assignee:s});return n?.data??n}catch(t){throw kt(t)}}},ne=j.object({issueId:j.string().min(1)}),ie={name:"jira.unassign-issue",inputSchema:ne,runTool:async(t,e)=>{try{const r=ne.parse(e),s=await t.issues.assign({issueId:r.issueId,assignee:{accountId:"-1"}});return s?.data??s}catch(t){throw kt(t)}}},oe=j.object({issueId:j.string().min(1),body:j.string().min(1),visibility:j.object({type:j.enum(["role","group"]),value:j.string().min(1)}).optional()}),ae={name:"jira.comment-add",inputSchema:oe,runTool:async(t,e)=>{try{const r=oe.parse(e),s={body:Zt(r.body)};r.visibility&&(s.visibility=r.visibility);const n=await t.issues.addComment({issueId:r.issueId,comment:s});return n?.data??n}catch(t){throw kt(t)}}},ce=j.object({issueId:j.string().min(1),start:j.number().optional().default(0),maxResults:j.number().optional().default(50),orderBy:j.string().optional(),expand:j.string().optional()}),pe={name:"jira.comment-list",inputSchema:ce,runTool:async(t,e)=>{try{const r=ce.parse(e),s=await t.issues.getComments({issueId:r.issueId,start:r.start,maxResults:r.maxResults,orderBy:r.orderBy,expand:r.expand});return s?.data??s}catch(t){throw kt(t)}}},le=j.object({link:j.object({relationship:j.enum(["Blocks","Relates to","Duplicates","Is blocked by","Is related to","Is duplicated by","Causes","Is caused by","Clone","Required","Work on","Split","Roll up"]),inwardIssue:j.object({id:j.string().optional(),key:j.string().optional()}),outwardIssue:j.object({id:j.string().optional(),key:j.string().optional()}),comment:j.object({body:j.string().optional(),visibility:j.object({type:j.enum(["role","group"]),value:j.string().min(1)}).optional()}).optional()})}),ue={name:"jira.link-create",inputSchema:le,runTool:async(t,e)=>{try{const r=le.parse(e).link,s={relationship:r.relationship,inwardIssue:r.inwardIssue.id||r.inwardIssue.key,outwardIssue:r.outwardIssue.id||r.outwardIssue.key};r.comment&&(r.comment.body&&(s.comment=Zt(r.comment.body)),r.comment.visibility&&(s.visibility=r.comment.visibility));const n=await t.issues.link(s);return n?.data??n}catch(t){throw kt(t)}}},de=j.object({issueId:j.string().min(1),file:j.string().min(1),mimeType:j.string().optional(),comment:j.string().optional()}),me={name:"jira.attach",inputSchema:de,runTool:async(t,e)=>{try{const r=de.parse(e),n=i.resolve(r.file),o=await s.readFile(n),a=i.basename(n),c=await t.issues.addAttachment({issueId:r.issueId,file:{name:a,content:o,mimeType:r.mimeType??"application/octet-stream"},comment:r.comment});return c?.data??c}catch(t){if(t&&t.code&&"string"==typeof t.code&&["ENOENT","EACCES"].includes(t.code))throw Error("Attachment file error: "+t.message);throw kt(t)}}},he=j.object({issueId:j.string().min(1)}),fe={name:"jira.attachment-list",inputSchema:he,runTool:async(t,e)=>{try{const r=he.parse(e),s=await t.issues.getAttachments({issueId:r.issueId});return s?.data??s}catch(t){throw kt(t)}}},ye=j.object({issueId:j.string().min(1),attachmentId:j.string().min(1)}),ge={name:"jira.attachment-delete",inputSchema:ye,runTool:async(t,e)=>{try{const r=ye.parse(e);return await t.issues.deleteAttachment({issueId:r.issueId,attachmentId:r.attachmentId}),{success:!0,message:`Attachment ${e.attachmentId} deleted successfully`}}catch(t){throw kt(t)}}},be=j.object({issueId:j.string().min(1),timeSpent:j.string().min(1),comment:j.string().optional(),author:j.object({accountId:j.string().min(1)}).optional(),startingOn:j.string().optional(),artifact:j.string().optional()}),ve={name:"jira.worklog-add",inputSchema:be,runTool:async(t,e)=>{try{const r=be.parse(e),s={timeSpent:r.timeSpent};r.comment&&(s.comment=r.comment),r.author&&(s.author=r.author),r.startingOn&&(s.started=r.startingOn),r.artifact&&(s.artifact=r.artifact);const n=await t.issues.addWorklog({issueId:r.issueId,...s});return n?.data??n}catch(t){throw kt(t)}}},we={[Ct.name]:{title:"Jira Issue Read",description:"Read a Jira issue with expandable fields and properties",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ee.name]:{title:"Jira Issue Update",description:"Update a Jira issue using fields, update ops, and property toggles",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[Nt.name]:{title:"Jira Issue Delete",description:"Delete a Jira issue and optionally remove its subtasks",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[Xt.name]:{title:"Jira Issue Transition",description:"Transition a Jira issue while optionally adding a comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[se.name]:{title:"Jira Issue Assign",description:"Assign a Jira issue to a user or account",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[ie.name]:{title:"Jira Issue Unassign",description:"Unassign the current owner from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[ae.name]:{title:"Jira Comment Add",description:"Add a comment to a Jira issue with optional visibility",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[pe.name]:{title:"Jira Comment List",description:"List comments on a Jira issue with pagination support",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ue.name]:{title:"Jira Link Create",description:"Create an issue link relationship with optional comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[me.name]:{title:"Jira Attachment Add",description:"Attach a local file to a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[fe.name]:{title:"Jira Attachment List",description:"List attachments on a Jira issue",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ge.name]:{title:"Jira Attachment Delete",description:"Delete an attachment from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[ve.name]:{title:"Jira Worklog Add",description:"Log time spent on a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}}};async function Se(t){const e=c.for(Se);let r,s=null;try{r=(()=>{let t;try{const e=require("jira.js");t=e?.Version3Client||e.default?.Version3Client||e.default||e}catch(t){throw Error("Unable to require 'jira.js' \u2014 ensure it is installed as a dependency: "+t)}const{host:e,email:r,apiKey:s}=(()=>{const t=xt(),e=It().filter(t=>t.required&&!t.value);if(e.length>0)throw new Et(e);return{host:t.host,email:t.email,apiKey:t.apiKey}})();return new t({host:e,authentication:{basic:{email:r,apiToken:s}}})})()}catch(t){if(!(t instanceof Et))return void e.warn("Skipping Jira tool registration; unable to create Jira client",{error:t});s=t,e.warn("Registering Jira tools without credentials; each tool will report configuration requirements.",{error:t})}const n=[Ct,ee,Nt,Xt,se,ie,ae,pe,ue,me,fe,ge,ve];for(const i of n){const n=we[i.name];if(n)try{await t.registerTool(i.name,{title:n.title,description:n.description,inputSchema:et(i.inputSchema),annotations:n.annotations},async t=>{if(!r)throw s??Error("Jira client unavailable because credentials could not be loaded.");return i.runTool(r,t)}),e.info("Registered Jira tool "+i.name)}catch(t){e.error("Failed to register Jira tool "+i.name,{error:t})}}}async function je(t){await(async t=>{t.registerTool("decaf.server-info",{title:"Decaf MCP Server Info",description:"Return server metadata, version, and registered prompt names for diagnostics.",inputSchema:{},outputSchema:void 0,annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},async()=>{const t=yt.map(t=>t.getName()).sort();return{content:[{type:"text",text:["Name: "+jt.name,"Title: "+jt.title,"Version: "+jt.version,"Prompts: "+(t.join(", ")||"<none>")].join("\n")}]}})})(t);const e=c.for(je);try{await Se(t)}catch(t){e.error("Failed to register Jira tools",t)}}class xe extends V{setCb(t){return this.cb=t,this}setConfig(t){return this.config=t,this}setUriOtTemplate(t){return this.uriOrTemplate=t,this}constructor(t){super(t)}static get builder(){return new xe}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{const e="string"==typeof this.uriOrTemplate&&this.uriOrTemplate.includes("{")?new $(new R(this.uriOrTemplate),{list:void 0}):this.uriOrTemplate,r=Object.assign(this.config,{_meta:{}}),s=async(t,e)=>{const r=this.logFor(e);r.verbose(`Requesting resource ${this.name} from ${t.toString()}`);const s=await Promise.resolve(this.cb(t,e));return r.verbose(`Resource ${this.name} retrieved successfully.`),r.debug("Resource retrieval meta: "+JSON.stringify(s._meta)),s};return t.resource(this.name,e,r,s)}catch(t){throw c.for(this).error("Error registering resource "+this.name,t),t}}}y([b(),g("design:type",String)],xe.prototype,"uriOrTemplate",void 0),y([b(),g("design:type",Function)],xe.prototype,"cb",void 0),y([b(),g("design:type",Object)],xe.prototype,"config",void 0);const Ie=it()??n.join(__dirname,"..","assets"),Ae=n.join(Ie,"templates"),Ee=n.join(Ie,"prompts"),ke=new WeakMap;class Te extends p{get client(){const t=ke.get(this);if(!t)throw Error("Mcp server requires Mcp client");return t}constructor(){super()}async load(){const t=this.log.for(this.load);for(const e of yt)try{t.info("loading prompt "+e.getName());const r=e.build(this.client);t.verbose(`Loaded prompt ${r.title} from ${e.getName()} definition`)}catch(r){t.error("Failed to load prompt "+e.getName(),r)}try{await je(this.client),t.verbose("Registered built-in tools")}catch(e){t.error("Failed to register tools",e)}try{await(async(t,r)=>{r.info("Registering agent templates as resources...");const s=e.readdirSync(Ae).filter(t=>t.endsWith(".md"));for(const i of s){const s=n.basename(i,".md"),o=n.join(Ae,i),a=xe.builder.setName(s).setTitle("Template: "+s).setDescription("Resource template for "+s).setUriOtTemplate("file:///"+o).setConfig({mimeType:"text/markdown",description:"Template for "+s}).setCb(async t=>{const r=e.readFileSync(t.pathname,"utf8");return{contents:[{uri:t.toString(),text:r,mimeType:"text/markdown"}],_meta:{}}});try{a.build(t),r.info("Registered template: "+s)}catch(t){r.error(`Failed to register template ${s}:`,t)}}r.info("Registering agent prompts...");const i=e.readdirSync(Ee).filter(t=>t.endsWith(".md"));for(const s of i){const i=n.basename(s,".md"),o=n.join(Ee,s),a=e.readFileSync(o,"utf8"),c=at.builder.setName(i).setTitle("Prompt: "+i).setDescription("Dynamic prompt for "+i).setArgsSchema(j.object({})).setCb(async t=>({messages:[{role:"user",content:{type:"text",text:a}}],_meta:{}}));try{c.build(t),r.info("Registered prompt: "+i)}catch(t){r.error(`Failed to register prompt ${i}:`,t)}}})(this.client,t),t.verbose("Registered agent-specific assets")}catch(e){t.error("Failed to register agent assets",e)}}async boot(t="stdio"){let r=this.log;this.log.for(this.boot).info("McpServer booting..."),((t=c.get())=>{let r;try{r=(()=>{let t,r=__dirname;try{for(;r&&r!==n.parse(r).root;){const s=n.join(r,"node_modules");if(e.existsSync(s)&&e.statSync(s).isDirectory()){t=s;break}const i=n.dirname(r);if(i===r)break;r=i}}catch{}const s=[];if(t){const r=n.join(t,"@decaf-ts");try{if(e.existsSync(r)&&e.statSync(r).isDirectory()){const t=e.readdirSync(r);for(const i of t){const t=n.join(r,i);try{const r=n.join(t,"workdocs","assets","slogans.json");if(e.existsSync(r)&&e.statSync(r).isFile()){const t=e.readFileSync(r,"utf-8"),n=JSON.parse(t);if(Array.isArray(n))for(const t of n)"string"==typeof t&&t.trim().length>0&&s.push(t.trim())}}catch{}}}}catch{}}return 0===s.length?"Decaf: strongly brewed TypeScript.":s[Math.floor(Math.random()*s.length)]})()}catch{r="Decaf: strongly brewed TypeScript."}const s="# \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n# ( ( \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# ) ) \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# [=======] \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n# `-----\xb4 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \n# \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591\u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2593\u2592\u2591 \u2591\u2592\u2593\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2593\u2592\u2591 \n#".split("\n"),i=s.reduce((t,e)=>Math.max(t,e.length),0);s.push("# "+r.padStart(i-3)),s.forEach((e,r)=>{const s=U[r%U.length]||"",n=t.info.bind(t);try{n(f(e||"").raw(s).text)}catch{n((e||"")+"")}})})(this.log),"stdio"===t&&(c.setFactory(L),r=c.for(this.constructor.name));const s=((Array.isArray(jt.icons)?jt.icons:[jt.icons])||[]).map(t=>{const e="string"==typeof t?.src?t.src:(t?.src??"")+"",r="string"==typeof t?.mimeType?t.mimeType:(t?.mimeType??"")+"";let s=[];return Array.isArray(t?.sizes)?s=t.sizes.map(t=>t+""):"string"==typeof t?.sizes&&(s=(t.sizes+"").split(",").map(t=>t.trim())),{src:e,mimeType:r,sizes:s}}),i={name:jt.name,title:jt.title,websiteUrl:jt.websiteUrl,version:jt.version,icons:s},o=new M(i,{instructions:"You are an AI assistant designed to help users with programming tasks related to the Decaf-TS framework. \nProvide clear, concise, and accurate information.\nIf you don't know the answer, admit it rather than making up information.\nAlways prioritize the user's intent and provide helpful suggestions when appropriate.\n",capabilities:{logging:{},tools:{},prompts:{}}});switch(((t,e)=>{ke.set(t,e)})(this,o),o.onerror=t=>{this.log.error("MCP instance onerror",t)},t){case"stdio":t=new q;break;case"http":t=new B({sessionIdGenerator:()=>F(),onsessioninitialized:t=>r.verbose("Session initialized: "+t),onsessionclosed:t=>r.verbose("Session closed: "+t),enableJsonResponse:!0,eventStore:void 0});break;default:if(!(a=t)||"object"!=typeof a||"function"!=typeof a.send&&"function"!=typeof a.close&&"function"!=typeof a.on)throw new T("Invalid transport type: "+t)}var a;try{this.log.info("Loading resources/prompts/tools..."),await this.load()}catch(t){throw this.log.error("Error loading resources/prompts/tools: "+t),t}await this.client.connect(t),r.info(`MCP Server connected via ${t.constructor.name} and running. Waiting for client connections...`)}}const Ne=(new t).command("start").option("--transport [String]","transport mode","stdio").description("starts decaf's mcp server").action(async t=>{const e=JSON.parse(r.readFileSync(i.join(process.cwd(),"package.json"),"utf-8")),s=e.version,{transport:n}=t,o=(new W).for("mcp-server");if("stdio"!==n)throw Error("Unsupported transport mode: "+n);return o.info("Transport stdio"),o.debug(`running with options: ${JSON.stringify(t)} for ${e.name} version ${s}`),(new Te).boot(n)});(new t).command("md-to-ast").description("pipes markdown to jira ast: `cat file.md` | npx decaf-mcp md-to-ast > ast.json").action(async t=>{const e=JSON.parse(r.readFileSync(i.join(process.cwd(),"package.json"),"utf-8")),s=e.version;c.for("md-to-ast").debug(`running with options: ${JSON.stringify(t)} for ${e.name} version ${s}`);const n=Zt(await(async()=>{const t=[];for await(const e of process.stdin)t.push(Buffer.from(e));return Buffer.concat(t).toString("utf8")})(),{resolveMention:t=>({id:t,text:"@"+t}),resolveAttachment:t=>({id:t,collection:"attachments"})});process.stdout.write(JSON.stringify(n,null,2)+"\n")});const Oe=(new t).name("mcp-server").command("mcp-server").description("decaf mcp server and agentic functionality");Oe.addCommand(Ne),Oe.parse(process.argv);
2
2
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sources":["../src/utils/stdio-error-logger.ts","../src/utils/banner.ts","../src/constants.ts","../src/utils/constants.ts","../src/builders/builder.ts","../src/jira/schema-utils.ts","../src/utils/obfuscation.ts","../src/utils/asset-path.ts","../src/utils/assets.ts","../src/utils/conversions.ts","../src/builders/prompt-builder.ts","../src/prompts/example-prompt.ts","../src/prompts/interactive-jsdoc.ts","../src/prompts/contants.ts","../src/prompts/jsdocs-prompts.ts","../src/prompts/code/design-patterns/builder.ts","../src/prompts/index.ts","../src/builders/tool-builder.ts","../src/tools/example-tool.ts","../src/tools/file-summarizer/index.ts","../src/version.ts","../src/utils/environment.ts","../src/modules/jira/jira-environment.ts","../src/modules/jira/error-normalizer.ts","../src/modules/jira/tools/issue-delete.ts","../src/modules/jira/tools/issue-read.ts","../src/modules/jira/adf/pipeline/convertMedia.ts","../src/modules/jira/adf/pipeline/textRuns.ts","../src/modules/jira/adf/pipeline/directive-utils.ts","../src/modules/jira/adf/pipeline/convertInline.ts","../src/modules/jira/adf/pipeline/textify.ts","../src/modules/jira/adf/pipeline/convertBlock.ts","../src/modules/jira/adf/pipeline/convertList.ts","../src/modules/jira/adf/pipeline/languageMap.ts","../src/modules/jira/adf/pipeline/convertTable.ts","../src/modules/jira/adf/markdownToAdf.ts","../src/modules/jira/adf/pipeline/convertRoot.ts","../src/modules/jira/adf/pipeline/normalizeDoc.ts","../src/modules/jira/schemas/issue-transition-input.ts","../src/modules/jira/tools/issue-transition.ts","../src/modules/jira/tools/issue-update.ts","../src/modules/jira/schemas/update-issue-input.ts","../src/modules/jira/tools/assign.ts","../src/modules/jira/schemas/assign-issue-input.ts","../src/modules/jira/tools/unassign.ts","../src/modules/jira/tools/comment-add.ts","../src/modules/jira/schemas/add-comment-input.ts","../src/modules/jira/tools/comment-list.ts","../src/modules/jira/schemas/list-comments-input.ts","../src/modules/jira/tools/link-create.ts","../src/modules/jira/schemas/create-link-input.ts","../src/modules/jira/tools/attach.ts","../src/modules/jira/schemas/attach-issue-input.ts","../src/modules/jira/tools/attachment-list.ts","../src/modules/jira/tools/attachment-delete.ts","../src/modules/jira/tools/worklog-add.ts","../src/modules/jira/schemas/add-worklog-input.ts","../src/modules/jira/register-utils.ts","../src/modules/jira/makeJiraClient.ts","../src/tools/index.ts","../src/tools/server-info.ts","../src/builders/resource-builder.ts","../src/agent/registrations.ts","../src/mcp-server.ts","../src/utils/initialization.ts","../src/utils/utils.ts","../src/cli-module.ts","../src/bin/cli.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["StdioErrorLogger","MiniLogger","log","level","msg","error","meta","confLvl","this","config","NumericLogLevels","stdioErrorLoggerFactory","context","_args","loggerName","name","ctor","constructor","resolveContextName","colors","ReasoningLevel","EffortLevel","Cost","Paths","AssetCategory","Builder","Model","_log","Logging","for","arg","super","logFor","extra","sessionId","requestId","authInfo","length","clientId","toString","setDescription","value","description","getDescription","setName","getName","setTitle","title","__decorate","required","prototype","UsableBuilder","reasoning","NONE","effort","cost","FREE","setReasoning","setEffort","setCost","findUnderlyingZodObject","s","cur","def","_def","typeName","schema","innerType","undefined","ensureZodObject","defLike","shape","type","normalizedShape","key","Object","entries","isZodSchema","z","any","object","Error","extractShape","MAGIC","Buffer","from","findAssetsDir","startDir","current","libAssets","path","join","fs","existsSync","srcAssets","plainAssets","parent","dirname","resolveAssetsDir","explicit","process","env","DECAF_ASSET_DIR","MCP_ASSET_DIR","ASSET_DIR","entry","argv","fromEntry","roots","cwd","INIT_CWD","filter","Boolean","root","found","AssetReader","LoggedClass","basePath","listAssets","folder","assetDir","readdirSync","listPrompts","PROMPT","getAsset","format","categories","readFile","target","useEnc","input","subarray","equals","keyMaterial","ENCRYPTION_KEY","offset","salt","iv","tag","ciphertext","crypto","scryptSync","deriveKey","decipher","createDecipheriv","setAuthTag","plaintext","concat","update","final","zlib","gunzipSync","decryptObfuscatedPayload","readFileSync","err","code","direct","fallback","getAllAssets","category","reduce","acc","fileName","extWithDot","extname","basename","replace","toPromptDef","normalizeLevel","lvl","BASIC","ADVANCED","HIGH","MEDIUM","LOW","InternalError","toLevel","toLowerCase","getPrompt","text","toSnakeCase","JSON","parse","e","SerializationError","getAllPrompts","texts","prompt","injectable","PromptBuilder","setCb","cb","setArgsSchema","argsSchema","builder","patchPrompt","placeholders","replacements","missing","Array","isArray","keys","p","hasOwnProperty","call","ValidationError","verbose","stringify","debug","filteredReplacements","sf","build","server","errs","hasErrors","argsShape","registerPrompt","async","args","assign","_meta","usage","result","Promise","resolve","inject","ZodObject","prop","NamedPromptBuilder","setCategory","promptCategory","addPrefix","prefixes","push","addSuffix","suffixes","promptDef","assets","fromObject","toIgnoreProps","Set","Metadata","properties","k","includes","forEach","add","map","argSchema","flat","el","string","describe","parsePlaceholders","messages","role","content","list","String","minlength","ExamplePrompt","message","optional","structuredContent","gist","InteractiveJsDocPrompt","PromptCategories","namedPromptBuilder","extraPrefix","extraSuffix","pb","DOCS","JsDocPrompts","className","Prompts","toPascalCase","ToolBuilder","setAnnotations","annotations","setInputSchema","inputSchema","setOutputSchema","outputSchema","readOnlyHint","destructiveHint","idempotentHint","openWorldHint","inputShape","outputShape","registerTool","warn","status","filePath","summary","VERSION","registerLibrary","DefaultMcpEnvironment","mcpId","version","websiteUrl","repositoryUrl","license","workingDir","contacts","url","tags","metadata","icons","src","mimeType","sizes","jira","host","JIRA__HOST","email","JIRA__EMAIL","apiKey","JIRA__API_KEY","JIRA__APIKEY","projectKey","JIRA__PROJECT_KEY","issueType","JIRA__ISSUE_TYPE","parentIssue","JIRA__PARENT_ISSUE","LogLevel","Environment","LoggedEnvironment","accumulate","normalizeEnvConfig","trim","createJiraEnvDescriptors","sensitive","formatDescriptor","descriptor","state","maskValue","qualifier","setConfig","MissingJiraEnvironmentError","descriptors","requiredMissing","d","describeJiraEnvironment","captureStackTrace","normalizeJiraError","details","raw","statusCandidate","statusCode","response","httpStatus","Number","body","data","collector","errorMessages","errorMessage","errorCollection","errors","chunk","values","val","collectMessages","fallbackMessage","issueId","min","deleteSubtasks","boolean","default","JiraIssueDelete","runTool","client","parsed","transport","issues","issue","deleteFn","delete","deleteIssue","success","expand","fields","array","JiraIssueRead","payload","issueIdOrKey","get","attachmentInlineOrMedia","linkNode","linkText","opts","m","match","token","ref","resolveAttachment","node","attrs","layout","id","collection","parseTextRuns","enableAtMentions","enableEmojiShortcodes","i","out","mentionRe","emojiRe","next","minMatch","findNext","slice","index","kind","full","groups","prefix","handle","resolved","resolveMention","shortName","resolveEmoji","nodes","n","last","marks","coalesceText","re","start","lastIndex","exec","source","a","b","extractDirectiveLabel","first","children","c","normalizePanelType","v","normalizeStatusColor","convertInline","child","href","inlineText","attachment","enableSmartCards","isNakedUrl","color","attributes","extractDirectiveText","emojiNode","wrapMark","mark","pieces","test","sn","startsWith","textify","convertBlock","isContainerDirective","panelType","innerBlocks","convertPanelDirective","clampInt","depth","paragraphNode","only","convertMediaFromParagraph","listNode","enableTaskLists","some","li","checked","items","idx","blocks","localId","convertTaskList","ordered","listItem","convertList","lang","enableMermaid","js","javascript","jsx","ts","typescript","tsx","py","python","rb","ruby","sh","bash","zsh","shell","yml","yaml","json","toml","xml","html","css","scss","sql","go","rust","java","cpp","cs","csharp","php","kotlin","swift","md","markdown","graphql","gql","dockerfile","makefile","ini","languageMap","normalizeCodeLanguage","language","tableNode","row","rowIndex","cell","convertTable","convertStatusDirective","convertPanelDirectiveLeaf","unknown","unknownNodeStrategy","t","max","x","isFinite","Math","trunc","DEFAULTS","markdownToAdf","options","processor","unified","use","remarkParse","remarkGfm","remarkDirective","tree","transformed","runSync","cleanNodes","doc","liftBlockCards","normalizeDoc","convertRoot","nextChildren","transitionId","union","number","record","set","remove","comment","JiraIssueTransition","transitionPayload","transition","edit","notifyUsers","issueTemplateId","overrideScreenSecurity","overrideEditableFlag","JiraIssueUpdate","assignee","accountId","accountType","JiraAssignIssue","JiraUnassignIssue","visibility","enum","JiraCommentAdd","addComment","maxResults","orderBy","JiraCommentList","getComments","link","relationship","inwardIssue","outwardIssue","JiraLinkCreate","linkPayload","file","JiraAttachIssue","fileBuffer","addAttachment","JiraAttachmentList","getAttachments","attachmentId","JiraAttachmentDelete","deleteAttachment","timeSpent","author","startingOn","artifact","JiraWorklogAdd","worklog","started","addWorklog","toolConfigs","registerJiraTools","jiraClient","missingEnvError","Version3Client","mod","require","authEmail","authToken","ensureJiraCredentials","authentication","basic","apiToken","makeJiraClient","registrations","tool","info","registerTools","promptNames","sort","registerServerInfoTool","ResourceBuilder","setUriOtTemplate","uriOrTemplate","uriOrTemplateArg","ResourceTemplate","UriTemplate","readCb","uri","resource","ASSETS_DIR","TEMPLATES_DIR","PROMPTS_DIR","MCP_STORE","WeakMap","McpServer","mcp","load","templateFiles","endsWith","resourceBuilder","pathname","contents","promptFiles","promptContent","promptBuilder","registerAgentAssets","boot","transportType","logger","nodeModulesDir","__dirname","candidate","statSync","isDirectory","slogans","scopeDir","pkgs","pkg","depPath","slogansPath","isFile","floor","random","getSlogan","banner","split","maxLength","line","padStart","logFn","bind","style","printBanner","setFactory","normalizedIcons","serverInfo","MCP","instructions","capabilities","logging","tools","prompts","writeMcp","onerror","StdioServerTransport","StreamableHTTPServerTransport","sessionIdGenerator","v4","onsessioninitialized","onsessionclosed","enableJsonResponse","eventStore","send","close","on","connect","mcpServer","Command","command","option","action","adf","chunks","stdin","readStdin","stdout","write","mainCmd","addCommand"],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sources":["../src/utils/stdio-error-logger.ts","../src/utils/banner.ts","../src/constants.ts","../src/utils/constants.ts","../src/builders/builder.ts","../src/jira/schema-utils.ts","../src/utils/obfuscation.ts","../src/utils/asset-path.ts","../src/utils/assets.ts","../src/utils/conversions.ts","../src/builders/prompt-builder.ts","../src/prompts/example-prompt.ts","../src/prompts/interactive-jsdoc.ts","../src/prompts/contants.ts","../src/prompts/jsdocs-prompts.ts","../src/prompts/code/design-patterns/builder.ts","../src/prompts/index.ts","../src/builders/tool-builder.ts","../src/tools/example-tool.ts","../src/tools/file-summarizer/index.ts","../src/version.ts","../src/utils/environment.ts","../src/modules/jira/jira-environment.ts","../src/modules/jira/error-normalizer.ts","../src/modules/jira/tools/issue-delete.ts","../src/modules/jira/tools/issue-read.ts","../src/modules/jira/adf/pipeline/convertMedia.ts","../src/modules/jira/adf/pipeline/textRuns.ts","../src/modules/jira/adf/pipeline/directive-utils.ts","../src/modules/jira/adf/pipeline/convertInline.ts","../src/modules/jira/adf/pipeline/textify.ts","../src/modules/jira/adf/pipeline/convertBlock.ts","../src/modules/jira/adf/pipeline/convertList.ts","../src/modules/jira/adf/pipeline/languageMap.ts","../src/modules/jira/adf/pipeline/convertTable.ts","../src/modules/jira/adf/markdownToAdf.ts","../src/modules/jira/adf/pipeline/convertRoot.ts","../src/modules/jira/adf/pipeline/normalizeDoc.ts","../src/modules/jira/schemas/issue-transition-input.ts","../src/modules/jira/tools/issue-transition.ts","../src/modules/jira/tools/issue-update.ts","../src/modules/jira/schemas/update-issue-input.ts","../src/modules/jira/tools/assign.ts","../src/modules/jira/schemas/assign-issue-input.ts","../src/modules/jira/tools/unassign.ts","../src/modules/jira/tools/comment-add.ts","../src/modules/jira/schemas/add-comment-input.ts","../src/modules/jira/tools/comment-list.ts","../src/modules/jira/schemas/list-comments-input.ts","../src/modules/jira/tools/link-create.ts","../src/modules/jira/schemas/create-link-input.ts","../src/modules/jira/tools/attach.ts","../src/modules/jira/schemas/attach-issue-input.ts","../src/modules/jira/tools/attachment-list.ts","../src/modules/jira/tools/attachment-delete.ts","../src/modules/jira/tools/worklog-add.ts","../src/modules/jira/schemas/add-worklog-input.ts","../src/modules/jira/register-utils.ts","../src/modules/jira/makeJiraClient.ts","../src/tools/index.ts","../src/tools/server-info.ts","../src/builders/resource-builder.ts","../src/agent/registrations.ts","../src/mcp-server.ts","../src/utils/initialization.ts","../src/utils/utils.ts","../src/cli-module.ts","../src/bin/cli.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["StdioErrorLogger","MiniLogger","log","level","msg","error","meta","confLvl","this","config","NumericLogLevels","stdioErrorLoggerFactory","context","_args","loggerName","name","ctor","constructor","resolveContextName","colors","ReasoningLevel","EffortLevel","Cost","Paths","AssetCategory","Builder","Model","_log","Logging","for","arg","super","logFor","extra","sessionId","requestId","authInfo","length","clientId","toString","setDescription","value","description","getDescription","setName","getName","setTitle","title","__decorate","required","prototype","UsableBuilder","reasoning","NONE","effort","cost","FREE","setReasoning","setEffort","setCost","findUnderlyingZodObject","s","cur","def","_def","typeName","schema","innerType","undefined","ensureZodObject","defLike","shape","type","normalizedShape","key","Object","entries","isZodSchema","z","any","object","Error","extractShape","MAGIC","Buffer","from","findAssetsDir","startDir","current","libAssets","path","join","fs","existsSync","srcAssets","plainAssets","parent","dirname","resolveAssetsDir","explicit","process","env","DECAF_ASSET_DIR","MCP_ASSET_DIR","ASSET_DIR","entry","argv","fromEntry","roots","cwd","INIT_CWD","filter","Boolean","root","found","AssetReader","LoggedClass","basePath","listAssets","folder","assetDir","readdirSync","listPrompts","PROMPT","getAsset","format","categories","readFile","target","useEnc","input","subarray","equals","keyMaterial","ENCRYPTION_KEY","offset","salt","iv","tag","ciphertext","crypto","scryptSync","deriveKey","decipher","createDecipheriv","setAuthTag","plaintext","concat","update","final","zlib","gunzipSync","decryptObfuscatedPayload","readFileSync","err","code","direct","fallback","getAllAssets","category","reduce","acc","fileName","extWithDot","extname","basename","replace","toPromptDef","normalizeLevel","lvl","BASIC","ADVANCED","HIGH","MEDIUM","LOW","InternalError","toLevel","toLowerCase","getPrompt","text","toSnakeCase","JSON","parse","e","SerializationError","getAllPrompts","texts","prompt","injectable","PromptBuilder","setCb","cb","setArgsSchema","argsSchema","builder","patchPrompt","placeholders","replacements","missing","Array","isArray","keys","p","hasOwnProperty","call","ValidationError","verbose","stringify","debug","filteredReplacements","sf","build","server","errs","hasErrors","argsShape","registerPrompt","async","args","assign","_meta","usage","result","Promise","resolve","inject","ZodObject","prop","NamedPromptBuilder","setCategory","promptCategory","addPrefix","prefixes","push","addSuffix","suffixes","promptDef","assets","fromObject","toIgnoreProps","Set","Metadata","properties","k","includes","forEach","add","map","argSchema","flat","el","string","describe","parsePlaceholders","messages","role","content","list","String","minlength","ExamplePrompt","message","optional","structuredContent","gist","InteractiveJsDocPrompt","PromptCategories","namedPromptBuilder","extraPrefix","extraSuffix","pb","DOCS","JsDocPrompts","className","Prompts","toPascalCase","ToolBuilder","setAnnotations","annotations","setInputSchema","inputSchema","setOutputSchema","outputSchema","readOnlyHint","destructiveHint","idempotentHint","openWorldHint","inputShape","outputShape","registerTool","warn","status","filePath","summary","VERSION","registerLibrary","DefaultMcpEnvironment","mcpId","version","websiteUrl","repositoryUrl","license","workingDir","contacts","url","tags","metadata","icons","src","mimeType","sizes","jira","host","JIRA__HOST","email","JIRA__EMAIL","apiKey","JIRA__API_KEY","JIRA__APIKEY","projectKey","JIRA__PROJECT_KEY","issueType","JIRA__ISSUE_TYPE","parentIssue","JIRA__PARENT_ISSUE","LogLevel","Environment","LoggedEnvironment","accumulate","normalizeEnvConfig","trim","createJiraEnvDescriptors","sensitive","formatDescriptor","descriptor","state","maskValue","qualifier","setConfig","MissingJiraEnvironmentError","descriptors","requiredMissing","d","describeJiraEnvironment","captureStackTrace","normalizeJiraError","details","raw","statusCandidate","statusCode","response","httpStatus","Number","body","data","collector","errorMessages","errorMessage","errorCollection","errors","chunk","values","val","collectMessages","fallbackMessage","issueId","min","deleteSubtasks","boolean","default","JiraIssueDelete","runTool","client","parsed","transport","issues","issue","deleteFn","delete","deleteIssue","success","expand","fields","array","JiraIssueRead","payload","issueIdOrKey","get","attachmentInlineOrMedia","linkNode","linkText","opts","m","match","token","ref","resolveAttachment","node","attrs","layout","id","collection","parseTextRuns","enableAtMentions","enableEmojiShortcodes","i","out","mentionRe","emojiRe","next","minMatch","findNext","slice","index","kind","full","groups","prefix","handle","resolved","resolveMention","shortName","resolveEmoji","nodes","n","last","marks","coalesceText","re","start","lastIndex","exec","source","a","b","extractDirectiveLabel","first","children","c","normalizePanelType","v","normalizeStatusColor","convertInline","child","href","inlineText","attachment","enableSmartCards","isNakedUrl","color","attributes","extractDirectiveText","emojiNode","wrapMark","mark","pieces","test","sn","startsWith","textify","convertBlock","isContainerDirective","panelType","innerBlocks","convertPanelDirective","clampInt","depth","paragraphNode","only","convertMediaFromParagraph","listNode","enableTaskLists","some","li","checked","items","idx","blocks","localId","convertTaskList","ordered","listItem","convertList","lang","enableMermaid","js","javascript","jsx","ts","typescript","tsx","py","python","rb","ruby","sh","bash","zsh","shell","yml","yaml","json","toml","xml","html","css","scss","sql","go","rust","java","cpp","cs","csharp","php","kotlin","swift","md","markdown","graphql","gql","dockerfile","makefile","ini","languageMap","normalizeCodeLanguage","language","tableNode","row","rowIndex","cell","convertTable","convertStatusDirective","convertPanelDirectiveLeaf","unknown","unknownNodeStrategy","t","max","x","isFinite","Math","trunc","DEFAULTS","markdownToAdf","options","processor","unified","use","remarkParse","remarkGfm","remarkDirective","tree","transformed","runSync","cleanNodes","doc","liftBlockCards","normalizeDoc","convertRoot","nextChildren","transitionId","union","number","record","set","remove","comment","JiraIssueTransition","transitionPayload","transition","edit","notifyUsers","issueTemplateId","overrideScreenSecurity","overrideEditableFlag","JiraIssueUpdate","assignee","accountId","accountType","JiraAssignIssue","JiraUnassignIssue","visibility","enum","JiraCommentAdd","addComment","maxResults","orderBy","JiraCommentList","getComments","link","relationship","inwardIssue","outwardIssue","JiraLinkCreate","linkPayload","file","JiraAttachIssue","fileBuffer","addAttachment","JiraAttachmentList","getAttachments","attachmentId","JiraAttachmentDelete","deleteAttachment","timeSpent","author","startingOn","artifact","JiraWorklogAdd","worklog","started","addWorklog","toolConfigs","registerJiraTools","jiraClient","missingEnvError","Version3Client","mod","require","authEmail","authToken","ensureJiraCredentials","authentication","basic","apiToken","makeJiraClient","registrations","tool","info","registerTools","promptNames","sort","registerServerInfoTool","ResourceBuilder","setUriOtTemplate","uriOrTemplate","uriOrTemplateArg","ResourceTemplate","UriTemplate","readCb","uri","resource","ASSETS_DIR","__dirname","TEMPLATES_DIR","PROMPTS_DIR","MCP_STORE","WeakMap","McpServer","mcp","load","templateFiles","endsWith","resourceBuilder","pathname","contents","promptFiles","promptContent","promptBuilder","registerAgentAssets","boot","transportType","logger","nodeModulesDir","candidate","statSync","isDirectory","slogans","scopeDir","pkgs","pkg","depPath","slogansPath","isFile","floor","random","getSlogan","banner","split","maxLength","line","padStart","logFn","bind","style","printBanner","setFactory","normalizedIcons","serverInfo","MCP","instructions","capabilities","logging","tools","prompts","writeMcp","onerror","StdioServerTransport","StreamableHTTPServerTransport","sessionIdGenerator","v4","onsessioninitialized","onsessionclosed","enableJsonResponse","eventStore","send","close","on","connect","mcpServer","Command","command","option","action","adf","chunks","stdin","readStdin","stdout","write","mainCmd","addCommand"],"mappings":"8xCASM,MAAOA,UAAyBC,EACjB,GAAAC,CACjBC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAUC,KAAKC,OAAO,SACxBC,EAAiBH,GAAWG,EAAiBP,EAEnD,EAIF,MAWaQ,EAA0B,CAErCC,EACAH,KACGI,KAEH,MAAMC,EAjBmB,CAACF,IAC1B,GAAuB,iBAAZA,EAAsB,OAAOA,EACxC,IAAKA,EAAS,MAAO,UACrB,GAAuB,mBAAZA,EAAwB,OAAOA,EAAQG,MAAQ,UAC1D,GAAuB,iBAAZH,GAAwB,gBAAiBA,EAAS,CAC3D,MAAMI,EAAQJ,EAAgBK,YAC9B,GAAID,GAAQA,EAAKD,KAAM,OAAOC,EAAKD,IACrC,CACA,MAAO,WASYG,CAAmBN,GACtC,OAAO,IAAIZ,EAAiBc,EAAYL,ICpCpCU,EAAS,CACb,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,iBACA,kBCdF,IAAYC,EAOAC,EAOAC,ECdAC,EAIAC,EDJZ,CAAYJ,IACVA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,KAAA,GAAA,MACD,EALD,CAAYA,IAAAA,EAAc,CAAA,IAO1B,CAAYC,IACVA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,KAAA,GAAA,MACD,EALD,CAAYA,IAAAA,EAAW,CAAA,IAOvB,CAAYC,IACVA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,IAAA,GAAA,MACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,KAAA,GAAA,MACD,EALD,CAAYA,IAAAA,EAAI,CAAA,IEJV,MAAgBG,UAAqBC,EAezC,OAAcxB,GAEZ,OADKM,KAAKmB,OAAMnB,KAAKmB,KAAOC,EAAQC,IAAIrB,OACjCA,KAAKmB,IACd,CAEA,WAAAV,CAAsBa,GACpBC,MAAMD,EACR,CAEU,MAAAE,CACRC,GAEA,MAAMC,UAAEA,EAASC,UAAEA,EAASC,SAAEA,GAAaH,GAAS,CAAA,EAGpD,IAAI/B,EACmB,iBAAdgC,GAA0BA,EAAUG,OAAS,EAChD7B,KAAKN,IAAI2B,IAAIK,GACb1B,KAAKN,IAGX,OAFIkC,GAAYA,EAASE,WAAUpC,EAAMA,EAAI2B,IAAIO,EAASE,WACtDH,IAAWjC,EAAMA,EAAI2B,IAAIM,EAAUI,aAChCrC,CACT,CAIA,cAAAsC,CAAeC,GAEb,OADAjC,KAAKkC,YAAcD,EACZjC,IACT,CAEA,cAAAmC,GACE,OAAOnC,KAAKkC,WACd,CAEA,OAAAE,CAAQH,GAEN,OADAjC,KAAKO,KAAO0B,EACLjC,IACT,CAEA,OAAAqC,GACE,OAAOrC,KAAKO,IACd,CAEA,QAAA+B,CAASL,GAEP,OADAjC,KAAKuC,MAAQN,EACNjC,IACT,EA5DUwC,EAAA,CADTC,6BAC8BxB,EAAAyB,UAAA,sBAErBF,EAAA,CADTC,6BACuBxB,EAAAyB,UAAA,eAEdF,EAAA,CADTC,6BACwBxB,EAAAyB,UAAA,gBA2DrB,MAAgBC,UAA2B1B,EAU/C,WAAAR,CAAsBa,GACpBC,MAAMD,GATEtB,KAAA4C,UAA4BhC,EAAeiC,KAG3C7C,KAAA8C,OAAsBjC,EAAYgC,KAGlC7C,KAAA+C,KAAajC,EAAKkC,IAI5B,CAEA,YAAAC,CAAahB,GAEX,OADAjC,KAAK4C,UAAYX,EACVjC,IACT,CAEA,SAAAkD,CAAUjB,GAER,OADAjC,KAAK8C,OAASb,EACPjC,IACT,CAEA,OAAAmD,CAAQlB,GAEN,OADAjC,KAAK+C,KAAOd,EACLjC,IACT,ECpGI,SAAUoD,EAAwBC,GACtC,IAAKA,EAAG,OACR,IAAIC,EAAMD,EACNE,EAAMD,GAAOA,EAAIE,KACrB,KAAOD,GAAwB,cAAjBA,EAAIE,UAA0B,CAC1C,GAAqB,eAAjBF,EAAIE,UAA6BF,EAAIG,OACvCJ,EAAMC,EAAIG,YACL,GAAqB,gBAAjBH,EAAIE,UAA8BF,EAAII,UAC/CL,EAAMC,EAAII,eACL,GAAqB,eAAjBJ,EAAIE,UAA6BF,EAAII,UAC9CL,EAAMC,EAAII,eACL,GAAqB,gBAAjBJ,EAAIE,UAA8BF,EAAII,UAC/CL,EAAMC,EAAII,cACL,KAAIJ,EAAIG,OAGb,OAFAJ,EAAMC,EAAIG,MAGZ,CACAH,EAAMD,GAAOA,EAAIE,IACnB,CACA,OAAOD,GAAwB,cAAjBA,EAAIE,SAA2BF,OAAMK,CACrD,UAEgBC,GAAgBR,EAAQ9C,EAAO,UAE7C,GADY6C,EAAwBC,GAIlC,OAAOA,EAGT,GAAIA,GAAkB,iBAANA,EAAgB,CAC9B,MAAMS,EAAUT,EAAEE,KAAwB,iBAAVF,EAAEE,IAAmBF,EAAEE,SAAMK,EACvDG,EACHD,IAAYA,EAAQC,OAA0B,WAAjBD,EAAQE,OAAsBF,EAAQC,QACxD,WAAXV,EAAEW,KAAoBX,EAAEU,WAAQH,KAChCE,GAA4B,WAAjBA,EAAQE,KAAoB,CAAA,OAAKJ,GAE/C,GAAIE,GAAsB,WAAXT,EAAEW,MAAqBD,EAAO,CAC3C,MAAME,EAAuC,CAAA,EAC7C,GAAIF,GAA0B,iBAAVA,EAClB,IAAK,MAAOG,EAAKjC,KAAUkC,OAAOC,QAAQL,GACxCE,EAAgBC,GAAOG,GAAYpC,GAASA,EAAQqC,EAAEC,MAG1D,OAAOD,EAAEE,OAAOP,EAClB,CACF,CAEA,MAAUQ,MAAM,gDAAgDlE,yCAClE,CAEM,SAAUmE,GAAarB,GAC3B,IAAKA,EAAG,OAER,GAAIA,GAAkB,iBAANA,IAAmBA,EAAEG,KACnC,OAAIH,EAAEE,KAAwB,iBAAVF,EAAEE,KAAoBF,EAAEE,IAAIQ,MAAcV,EAAEE,IAAIQ,MAC7DV,EAET,MAAME,EAAMH,EAAwBC,GACpC,OAAKE,EACuB,mBAAdA,EAAIQ,MAAuBR,EAAIQ,QAAUR,EAAIQ,YAASH,OADpE,CAEF,CAEM,SAAUS,GAAYhB,GAC1B,SAAUA,GAAkB,iBAANA,IAAkBA,EAAEG,KAC5C,CDSYhB,EAAA,CADTC,6BACyDE,EAAAD,UAAA,oBAGhDF,EAAA,CADTC,6BACgDE,EAAAD,UAAA,iBAGvCF,EAAA,CADTC,6BACgCE,EAAAD,UAAA,eDnFnC,CAAY3B,IACVA,EAAA,OAAA,QACD,EAFD,CAAYA,IAAAA,EAAK,CAAA,IAIjB,CAAYC,IACVA,EAAA,OAAA,UACAA,EAAA,cAAA,gBACAA,EAAA,KAAA,MACD,EAJD,CAAYA,IAAAA,EAAa,CAAA,IGDzB,MAAM2D,GAAQC,OAAOC,KAAK,QAAS,SCAnC,SAASC,GAAcC,GACrB,IAAIC,EAAUD,EACd,OAAa,CACX,MAAME,EAAYC,EAAKC,KAAKH,EAAS,MAAO,UAC5C,GAAII,EAAGC,WAAWJ,GAAY,OAAOA,EACrC,MAAMK,EAAYJ,EAAKC,KAAKH,EAAS,MAAO,UAC5C,GAAII,EAAGC,WAAWC,GAAY,OAAOA,EACrC,MAAMC,EAAcL,EAAKC,KAAKH,EAAS,UACvC,GAAII,EAAGC,WAAWE,GAAc,OAAOA,EACvC,MAAMC,EAASN,EAAKO,QAAQT,GAC5B,GAAIQ,IAAWR,EAAS,MACxBA,EAAUQ,CACZ,CAEF,UAEgBE,KACd,MAAMC,EACJC,QAAQC,IAAIC,iBACZF,QAAQC,IAAIE,eACZH,QAAQC,IAAIG,WACZ,GACF,GAAIL,GAAYP,EAAGC,WAAWM,GAAW,OAAOA,EAEhD,MAAMM,EAAQL,QAAQM,OAAO,GAC7B,GAAID,EAAO,CACT,MAAME,EAAYrB,GAAcI,EAAKO,QAAQQ,IAC7C,GAAIE,EAAW,OAAOA,CACxB,CAEA,MAAMC,EAAQ,CAACR,QAAQS,MAAOT,QAAQC,IAAIS,UAAUC,OAAOC,SAC3D,IAAK,MAAMC,KAAQL,EAAO,CACxB,MAAMM,EAAQ5B,GAAc2B,GAC5B,GAAIC,EAAO,OAAOA,CACpB,CAEA,OAAOxB,EAAKC,KAAKS,QAAQS,MAAO,SAClC,CC3BO,IAAMM,GAAN,cAA0BC,EAG/B,WAAAnG,CAAYoG,GACVtF,QACAvB,KAAK6G,SAAWA,GA0HXnB,IAzHP,CAEU,UAAAoB,IAAcC,GACtB,MAAMC,EAAW9B,EAAKC,KAAKnF,KAAK6G,YAAaE,GAC7C,OAAO3B,EAAG6B,YAAYD,EACxB,CAEA,WAAAE,GACE,OAAOlH,KAAK8G,WAAW9F,EAAcmG,OACvC,CAEU,QAAAC,CACR7G,EACA8G,EAA6B,QAC1BC,GAEH,MAAMN,EAAW9B,EAAKC,KAAKnF,KAAK6G,YAAaS,GAGvCC,EAAW,CAACC,EAAgBC,GAAS,KACzC,IACE,OAAIA,EFLN,CAAmCC,IACvC,GAAIA,EAAM7F,OAAS8C,GAAM9C,OAhCR,GACF,GACC,GA+Bd,MAAU4C,MAAM,sCAGlB,IADciD,EAAMC,SAAS,EAAGhD,GAAM9C,QAC3B+F,OAAOjD,IAChB,MAAUF,MAAM,sCAGlB,MAAMoD,EAnCCjC,QAAQC,IAAIiC,gBAAkB,GAoCrC,IAAKD,EACH,MAAUpD,MACR,yEAIJ,IAAIsD,EAASpD,GAAM9C,OACnB,MAAMmG,EAAON,EAAMC,SAASI,EAAQA,EAhDnB,IAiDjBA,GAjDiB,GAkDjB,MAAME,EAAKP,EAAMC,SAASI,EAAQA,EAjDnB,IAkDfA,GAlDe,GAmDf,MAAMG,EAAMR,EAAMC,SAASI,EAAQA,EAlDnB,IAmDhBA,GAnDgB,GAoDhB,MAAMI,EAAaT,EAAMC,SAASI,GAE5B7D,EAhDR,EAAmB2D,EAAqBG,IAC/BI,EAAOC,WAAWR,EAAaG,EAAM,IA+ChCM,CAAUT,EAAaG,GAC7BO,EAAWH,EAAOI,iBAAiB,cAAetE,EAAK+D,GAC7DM,EAASE,WAAWP,GACpB,MAAMQ,EAAY9D,OAAO+D,OAAO,CAC9BJ,EAASK,OAAOT,GAChBI,EAASM,UAEX,OAAOC,EAAKC,WAAWL,EACzB,EE1BiBM,CADS5D,EAAG6D,aAAazB,IACSzF,SAAS,SAE7CqD,EAAG6D,aAAazB,EAAQ,QACjC,CAAE,MAAO0B,GACP,GAA4C,WAAvCA,EAA8BC,KACjC,OAAO,KAET,MAAMD,CACR,GAGIE,EAAS7B,EAjBErC,EAAKC,KAAK6B,EAAU,GAAGzG,KAAQ8G,KAiBH,QAAXA,GAClC,GAAe,OAAX+B,EAAiB,OAAOA,EAC5B,MACMC,EAAW9B,EADGrC,EAAKC,KAAK6B,EAAazG,EAAH,SACD,GACvC,GAAiB,OAAb8I,EAAmB,OAAOA,EAC9B,MAAU5E,MACR,oBAAoBS,EAAKC,KAAK6B,EAAU,GAAGzG,KAAQ8G,KAEvD,CAEU,YAAAiC,CACRC,KACGjC,GAEH,OAAOtH,KAAK8G,WAAWyC,KAAajC,GAAYkC,OAC9C,CAACC,EAA6BC,KAC5B,MAAMC,EAAazE,EAAK0E,QAAQF,GAC1BnJ,EAAO2E,EAAK2E,SAASH,EAAUC,GAC/BtC,EAASsC,EAAWG,QAAQ,MAAO,UAAOlG,EAOhD,OANA6F,EAAIlJ,GAAQP,KAAKoH,SACf7G,EACA8G,QAAUzD,EACV2F,KACGjC,GAEEmC,GAET,CAAA,EAEJ,CAEU,WAAAM,CAAYxG,GACpB,MAAMyG,EAAkB/H,GACD,iBAAVA,EAA2BA,EACjB,iBAAVA,ECpFX,CAAkBgI,IACtB,OAAQA,GACN,IAAK,OACH,OAAOrJ,EAAeiC,KACxB,IAAK,QACH,OAAOjC,EAAesJ,MACxB,IAAK,WACH,OAAOtJ,EAAeuJ,SACxB,IAAK,OACH,OAAOvJ,EAAewJ,KACxB,IAAK,SACH,OAAOvJ,EAAYwJ,OACrB,IAAK,MACH,OAAOvJ,EAAKwJ,IACd,IAAK,OACH,OAAOxJ,EAAKkC,KACd,QACE,MAAM,IAAIuH,EAAc,gCAAgCN,GAE9D,EDiE4CO,CAAQvI,EAAMwI,eAC7C7J,EAAeiC,KAKxB,OAHAU,EAAIT,OAASkH,EAAezG,EAAIT,QAChCS,EAAIX,UAAYoH,EAAezG,EAAIX,WACnCW,EAAIR,KAAOiH,EAAezG,EAAIR,MACvBQ,CACT,CAEA,SAAAmH,CACEnK,KACG+G,GAEH,MAAMqD,EAAO3K,KAAKoH,SAChBwD,EAAYrK,GACZ,OACAS,EAAcmG,UACXG,GAEL,IAAI/D,EACJ,IACEA,EAAMsH,KAAKC,MAAMH,EACnB,CAAE,MAAOI,GACP,MAAM,IAAIC,EACR,0BAA0BzK,mBAAsB+G,MAAeyD,IAEnE,CAEA,OAAO/K,KAAK+J,YAAYxG,EAC1B,CAEA,aAAA0H,IAAiB3D,GACf,MAAM4D,EAAyClL,KAAKsJ,aAClDtI,EAAcmG,UACXG,GAEL,OAAOnD,OAAOC,QAAQ8G,GAAO1B,OAC3B,CAACC,GAAuClJ,EAAM4K,MAC5C,IACE1B,EAAIlJ,GAAQsK,KAAKC,MAAMK,EACzB,CAAE,MAAOJ,GACP,MAAM,IAAIC,EACR,0BAA0BzK,mBAAsB+G,MAAeyD,IAEnE,CACA,OAAOtB,GAETyB,EAEJ,GA3HWvE,GAAWnE,EAAA,CADvB4I,qCACYzE,IEiBP,MAAO0E,WAAsB1I,EAUjC,WAAAlC,CAAYa,GACVC,MAAMD,EACR,CAEA,KAAAgK,CAAMrJ,GAEJ,OADAjC,KAAKuL,GAAKtJ,EACHjC,IACT,CAEA,aAAAwL,CAAcvJ,GAEZ,OADAjC,KAAKyL,WAAaxJ,EACXjC,IACT,CAEA,kBAAW0L,GACT,OAAO,IAAIL,EACb,CAEA,kBAAOM,CACLR,EACAS,EACAC,EACAnM,GAKA,MAAMoM,GAHNF,EAAeG,MAAMC,QAAQJ,GACzBA,EACAzH,OAAO8H,KAAKL,IACarF,OAC1B2F,IAAO/H,OAAOzB,UAAUyJ,eAAeC,KAAKP,EAAcK,IAE7D,GAAIJ,EAAQjK,OACV,MAAM,IAAIwK,EACR,0CAA0CP,EAAQ3G,KAAK,OAEvDzF,IACFA,EAAI4M,QACF,sCAAsCzB,KAAK0B,UAAUX,IAEvDlM,EAAI8M,MAAM,WAAW3B,KAAK0B,UAAUV,KAEtC,MAAMY,EAAuBb,EAAapC,OACxC,CAACC,EAA6BvF,KAC5BuF,EAAIvF,GAAO2H,EAAa3H,GACjBuF,GAET,CAAA,GAEF,OAAOiD,EAAGvB,EAAQsB,EACpB,CAEU,WAAAd,CACRR,EACAS,EACAC,EACAnM,GAEA,OAAO2L,GAAcM,YACnBR,EACAS,EACAC,EACAnM,GAAOM,KAAKN,IAAI2B,IAAIrB,KAAK2L,aAE7B,CAEA,KAAAgB,CACEC,EACAf,GAEA,MAAMnM,EAAMM,KAAKN,IAAI2B,IAAIrB,KAAK2M,OACxBE,EAAO7M,KAAK8M,YAClB,GAAID,EAAM,MAAM,IAAIR,EAAgBQ,EAAK9K,YACzC,IAGM/B,KAAKyL,YAAY5H,GAAgB7D,KAAKyL,WAAY,cACtD,MAAMsB,EAAYrI,GAAa1E,KAAKyL,YAEpC,OAAOmB,EAAOI,eACZhN,KAAKO,KACL,CACEgC,MAAOvC,KAAKuC,MACZL,YAAalC,KAAKkC,YAClBuJ,WAAYsB,GAEdE,MACEC,EACAzL,KAEA,MAAM/B,EAAMM,KAAKwB,OAAOC,GAIxByL,EAAO/I,OAAOgJ,OAAO,CAAA,EAAItB,EAAcqB,GAAQ,IAC/CxN,EAAI4M,QACF,oBAAoBtM,KAAKO,mBAAmBsK,KAAK0B,UAAUW,MAE7DA,EAAKE,MAAQjJ,OAAOgJ,OAAOD,EAAKE,OAAS,GAAI,CAC3CC,MAAO,CACLzK,UAAW5C,KAAK4C,UAChBE,OAAQ9C,KAAK8C,OACbC,KAAM/C,KAAK+C,QAGf,MAAMuK,QAAgCC,QAAQC,QAC5CxN,KAAKuL,GAAG2B,EAAMzL,IAIhB,OAFA/B,EAAI4M,QAAQ,UAAUtM,KAAKO,+BAC3Bb,EAAI8M,MAAM,0BAA0B3B,KAAK0B,UAAUe,EAAOF,QACnDE,GAGb,CAAE,MAAOvC,GAKP,MAJArL,EAAIG,MACF,8BAA6BG,KAAKO,MAAQP,KAAKS,YAAYF,MAC3DwK,GAEIA,CACR,CACF,EA9HUvI,EAAA,CADTiL,EAAO9G,oBACWA,KAAY0E,GAAA3I,UAAA,iBAErBF,EAAA,CADTC,6BACkC4I,GAAA3I,UAAA,aAEzBF,EAAA,CADTC,oBACsBiL,IAAerC,GAAA3I,UAAA,qBAE5BF,EAAA,CADTmL,6BAC0DtC,GAAA3I,UAAA,uBA2HvD,MAAOkL,WAA2BvC,GAWtC,WAAAwC,CAAY5L,GAEV,OADAjC,KAAK8N,eAAiB7L,EACfjC,IACT,CAEA,SAAA+N,CAAU9L,GAGR,OAFAjC,KAAKgO,SAAWhO,KAAKgO,UAAY,GACjChO,KAAKgO,SAASC,KAAKhM,GACZjC,IACT,CAEA,SAAAkO,CAAUjM,GAGR,OAFAjC,KAAKmO,SAAWnO,KAAKmO,UAAY,GACjCnO,KAAKmO,SAASF,KAAKhM,GACZjC,IACT,CAEA,WAAAS,CAAYa,GACVC,MAAMD,EACR,CAES,KAAAqL,CAAMC,GACb,MAAMwB,EAA6BpO,KAAKqO,OAAO3D,UAC7C1K,KAAKO,KACLP,KAAK8N,gBAEP5M,EAAMoN,WAAWtO,KAAMoO,GAEvB,MAAMG,EAAgB,IAAIC,KAEtBC,EAASC,WAAWd,KAAuB,IAC3CrH,OACCoI,IACE,CAAC,SAAU,iBAAkB,WAAY,YAAYC,SAASD,KAGrE,CAAC,KAAM,cAAcE,QAASF,GAAMJ,EAAcO,IAAIH,IAEtD,MAAM9B,EAAO7M,KAAK8M,aAAaf,MAAMlH,KAAK0J,IAE1C,GAAI1B,EAAM,MAAM,IAAIR,EAAgBQ,EAAK9K,YAEzC,MAAMiM,GAA+BhO,KAAKgO,UAAY,IAAIe,IAAK7C,GAC7DlM,KAAKqO,OAAO3D,UAAUwB,EAAGlM,KAAK8N,iBAE1BK,GAA+BnO,KAAKmO,UAAY,IAAIY,IAAK7C,GAC7DlM,KAAKqO,OAAO3D,UAAUwB,EAAGlM,KAAK8N,iBAG1BkB,EAAY,IACb,IAAIR,IACL,IACMJ,EAAUxC,gBACXoC,EAASe,IAAK7C,GAAMA,EAAEN,cAAgB,OACtCuC,EAASY,IAAK7C,GAAMA,EAAEN,cAAgB,KACzCqD,SAEJzF,OAAO,CAACC,EAA0ByF,KAClCzF,EAAIyF,GAAgB5K,EACjB6K,SACAC,SAAS,uBAAuBF,GAC5BzF,GACN,CAAA,GAoEH,OAlEAzJ,KAAKwL,cAAclH,EAAEE,OAAOwK,IAE5BhP,KAAKsL,MACH,CACE4B,EACAzL,KAEA,MAAM/B,EAAMM,KAAKwB,OAAOC,GACrBJ,IAAIuM,IACJvM,IAAIrB,KAAK8N,gBACTzM,IAAIrB,KAAKO,MAEZ,SAAS8O,EACPzD,EAAkD,IAElD,OAAOG,MAAMC,QAAQJ,GACjBA,EACAzH,OAAO8H,KAAKL,EAClB,CAEA,MAAMoC,GAA+BhO,KAAKgO,UAAY,IAAIe,IAAK7C,GAC7DlM,KAAKqO,OAAO3D,UAAUwB,EAAGlM,KAAK8N,iBAE1BK,GAA+BnO,KAAKmO,UAAY,IAAIY,IAAK7C,GAC7DlM,KAAKqO,OAAO3D,UAAUwB,EAAGlM,KAAK8N,iBAE1B5B,EAAqBlM,KAAKqO,OAAO3D,UACrC1K,KAAKO,KACLP,KAAK8N,gBAEDlC,EAAe,IAChB,IAAI4C,IAAI,IACNR,EAASe,IAAK7C,GAAMmD,EAAkBnD,EAAEN,eAAeqD,UACvDd,EAASY,IAAK7C,GAAMmD,EAAkBnD,EAAEN,eAAeqD,UACvDI,EAAkBnD,EAAEN,cAAcqD,UA4BzC,MAbgC,CAC9BK,SAAU,CACR,CACEC,KAAM,OACNC,QAAS,CACPxL,KAAM,OACN2G,KAjBO3K,KAAK2L,YAClB,IACKqC,EAASe,IAAK7C,GAAMA,EAAEf,QACzBe,EAAEf,UACCgD,EAASY,IAAK7C,GAAMA,EAAEf,SACzBhG,KAAK,QACPyG,EACAsB,EACAxN,MAaA0N,MAAO,CAAA,KAON7L,MAAMoL,MAAMC,EACrB,CAGS,YAAA3J,CAAahB,GACpB,MAAM,IAAIsI,EAAc,+CAC1B,CAGS,SAAArH,CAAUjB,GACjB,MAAM,IAAIsI,EAAc,+CAC1B,CAGS,OAAApH,CAAQlB,GACf,MAAM,IAAIsI,EAAc,+CAC1B,CAGS,cAAAvI,CAAeC,GACtB,MAAM,IAAIsI,EAAc,+CAC1B,CAGS,QAAAjI,CAASL,GAChB,MAAM,IAAIsI,EAAc,+CAC1B,CACA,kBAAoBmB,GAClB,OAAO,IAAIkC,EACb,EAxKUpL,EAAA,CADTC,6BACiCmL,GAAAlL,UAAA,yBAI1BF,EAAA,CAFPiN,EAAKC,QACLC,EAAU,2BACiB/B,GAAAlL,UAAA,mBAGpBF,EAAA,CAFPmN,EAAU,GACVF,EAAKC,gCACsB9B,GAAAlL,UAAA,mBClKvB,MAAMkN,GAAgBvE,GAAcK,QACxCtJ,QAAQ,kBACRE,SAAS,kBACTN,eAAe,8BACfwJ,cAAclH,EAAEE,OAAO,CAAEqL,QAASvL,EAAE6K,SAASW,cAC7CxE,MAAM2B,MAAOC,IACZ,MAAMvC,EAAOuC,EAAK2C,SAAW,UAM7B,MAAO,CACLP,SAAU,CACR,CACEC,KAAM,YACNC,QATU,CACdxL,KAAM,OACN2G,UAUA6E,QAAS,GACTO,kBAAmB,CAAEF,QAASlF,GAC9B2C,OAAQ,CAAEuC,QAASlF,MCrBnBe,GAAUL,GAAcK,QAC3BtJ,QAAQ,qBACRE,SAAS,4BACTN,eAAe,gDACfwJ,cAAclH,EAAEE,OAAO,CAAEwL,KAAM1L,EAAE6K,SAASW,cAC1CxE,MAAM2B,MAAOC,IACZ,MAAMvC,EAAOuC,EAAK8C,MAAQ,6BAC1B,MAAO,CACLV,SAAU,CACR,CACEC,KAAM,YACNC,QAAS,CACPxL,KAAM,OACN2G,UAIN6E,QAAS,GACTO,kBAAmB,CAAEF,QAASlF,GAC9B2C,OAAQ,CAAEuC,QAASlF,MAIZsF,GAAyB9L,OAAOgJ,OAAOzB,GAAS,CAC3DnL,KAAMmL,GAAQrJ,YChChB,IAAY6N,GCGZ,SAASC,GACP5P,EACA6P,EAAwB,GACxBC,EAAwB,IAExB,MAAMC,EAAK1C,GAAmBlC,QAC3BmC,YAAYqC,GAAiBK,MAC7BnO,QAAQ7B,GAGX,MAFA,CAAC,YAAa6P,GAAavB,QAAS3C,GAAMoE,EAAGvC,UAAU7B,IACvD,CAAC,YAAamE,GAAaxB,QAASxL,GAAMiN,EAAGpC,UAAU7K,IAChDiN,CACT,CDdA,CAAYJ,IACVA,EAAA,KAAA,gBACAA,EAAA,KAAA,MACD,EAHD,CAAYA,KAAAA,GAAgB,CAAA,ICgB5B,MAQaM,GAAe,CAREL,GAAmB,SAChBA,GAAmB,YAClBA,GAAmB,aACpBA,GAAmB,YACrBA,GAAmB,UACrBA,GAAmB,QACnBA,GAAmB,OAAQ,GAAI,CAAC,aCRvD1E,GAAanH,EAAEE,OAAO,CAAEiM,UAAWnM,EAAE6K,SAASC,SAAS,2CCRhDsB,GAA2B,CACtCd,GACAK,MACGO,GDQHnF,GAAcK,QACXtJ,QANc,sBAOdE,SAAS,2CACTN,eACC,mFAEHwJ,cAAcC,IACZxI,aAAarC,EAAesJ,OAC5BoB,MACC,CACE4B,EAEAzL,KAEAyL,EAAKuD,UAAYE,EAAazD,EAAKuD,WA8FH,CAC9BnB,SAAU,CAAC,CAAEC,KAAM,OAAQC,QAAS,CAAExL,KAAM,OAAQ2G,KA9FvC,2/BAiBRuC,EAAKuD,uOAWLvD,EAAKuD,8VAkBqBvD,EAAKuD,sfA4BnBvD,EAAKuD,8BAA8BvD,EAAKuD,6LAOzCvD,EAAKuD,sCACdvD,EAAKuD,8GAGUvD,EAAKuD,6BAA6BvD,EAAKuD,yBAAyBvD,EAAKuD,sCACpFvD,EAAKuD,yGASZrD,MAAO,CAAA,ME7GX,MAAOwD,WAAoBjO,EAe/B,cAAAkO,CAAeC,GAEb,OADA9Q,KAAK8Q,YAAc3M,OAAOgJ,OAAOnN,KAAK8Q,YAAaA,GAC5C9Q,IACT,CAEA,KAAAsL,CAAMC,GAEJ,OADAvL,KAAKuL,GAAKA,EACHvL,IACT,CAEA,cAAA+Q,CAAeC,GAEb,OADAhR,KAAKgR,YAAcA,EACZhR,IACT,CAEA,eAAAiR,CAAgBC,GAEd,OADAlR,KAAKkR,aAAeA,EACblR,IACT,CAEA,WAAAS,CAAoBa,GAClBC,MAAMD,GAlCEtB,KAAA8Q,YAA8C,CACtDK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EA+BjB,CAEA,kBAAW5F,GACT,OAAO,IAAIkF,EACb,CAEA,KAAAjE,CAAMC,GACJ,MAAMC,EAAO7M,KAAK8M,YAClB,GAAID,EAAM,MAAUpI,MAAMoI,EAAK9K,YAE/B,IAMM/B,KAAKgR,aAAanN,GAAgB7D,KAAKgR,YAAa,eACpDhR,KAAKkR,cAAcrN,GAAgB7D,KAAKkR,aAAc,gBAE1D,MAAMK,EAAa7M,GAAa1E,KAAKgR,aAC/BQ,EAAc9M,GAAa1E,KAAKkR,cAEtC,OAAOtE,EAAO6E,aACZzR,KAAKO,KACL,CACEgC,MAAOvC,KAAKuC,MACZL,YAAalC,KAAKkC,YAClB8O,YAAaO,EACbL,aAAcM,EACdV,YAAa9Q,KAAK8Q,YAClB1D,MAAO,CACLC,MAAO,CACLzK,UAAW5C,KAAK4C,UAChBE,OAAQ9C,KAAK8C,OACbC,KAAM/C,KAAK+C,QAIjBkK,MACEC,EACAzL,KAEA,MAAM/B,EAAMM,KAAKwB,OAAOC,GACxB/B,EAAI4M,QACF,kBAAkBtM,KAAKO,mBAAmBsK,KAAK0B,UAAUW,MAE3DzL,EAAM2L,MAAQjJ,OAAOgJ,OAAO1L,EAAM2L,OAAS,GAAI,CAC7CC,MAAO,CACLzK,UAAW5C,KAAK4C,UAChBE,OAAQ9C,KAAK8C,OACbC,KAAM/C,KAAK+C,QAGf,MAAMuK,QAA+BC,QAAQC,QAC3CxN,KAAKuL,GAAG2B,EAAMzL,IAKhB,OAHA/B,EAAI4M,QAAQ,QAAQtM,KAAKO,+BAEzBb,EAAI8M,MAAM,wBAAwB3B,KAAK0B,UAAUe,EAAOF,QACjDE,GAGb,CAAE,MAAOvC,GAEP,MAAMnL,EAAOmL,GAAW8E,SAAkB9E,EAAP2E,GACnC,GAAmB,iBAAR9P,GAAoBA,EAAIgP,SAAS,sBAS1C,OALAxN,EAAQC,IAAIrB,MAAa0R,KACvB,QAAQ1R,KAAKO,6DAIR,CAAEA,KAAMP,KAAKO,MAGtB,MADAa,EAAQC,IAAIrB,MAAaH,MAAM,sBAAuBkL,GAChDA,CACR,CACF,EAlHUvI,EAAA,CADTC,6BAMCmO,GAAAlO,UAAA,sBAEQF,EAAA,CADTC,6BACgCmO,GAAAlO,UAAA,aAEvBF,EAAA,CADTC,+BACsCmO,GAAAlO,UAAA,sBC1BzC,MAAMgJ,GAAUkF,GAAYlF,QACzBtJ,QAAQ,gBACRE,SAAS,gBACTN,eAAe,uCACf+O,eAAezM,EAAEE,OAAO,KACxB8G,MAAM2B,UAAA,CACLuC,QAAS,CACP,CACExL,KAAM,OACN2G,KAAM,oBAGV2C,OAAQ,CAAEqE,OAAQ,SAGKxN,OAAOgJ,OAAOzB,GAAS,CAChDnL,KAAMmL,GAAQrJ,YChBhB,MAAMqJ,GAAUkF,GAAYlF,QACzBtJ,QAAQ,mBACRE,SAAS,mBACTN,eAAe,sCACf+O,eAAezM,EAAEE,OAAO,CAAEoN,SAAUtN,EAAE6K,SAASW,cAC/CxE,MAAM2B,UAAA,CACLuC,QAAS,CACP,CACExL,KAAM,OACN2G,KAAM,sBAGV2C,OAAQ,CAAEuE,QAAS,wBAGO1N,OAAOgJ,OAAOzB,GAAS,CACnDnL,KAAMmL,GAAQrJ,YCjBT,MAAMyP,GAAU,cAIvBrD,EAASsD,gBAFmB,cAEWD,ICoChC,MAAME,GAAwC,CACnDC,MAAO,QACP1R,KAAM,sBACNgC,MAAO,sBACPL,YAAa,gEACbgQ,QAASJ,GACTK,WAAY,6BACZC,cAAe,yCACfC,QAAS,WACTC,WAAY1M,QAAQS,MACpBW,SAAUtB,KACV6M,SAAU,CACR,CACEhS,KAAM,WACNiS,IAAK,+BAGTC,KAAM,2BACNC,SAAU,CAAA,EACVC,MAAO,CACL,CACEC,IAAK,8BACLC,SAAU,gBACVC,MAAO,QAGXC,KAAM,CACJC,KAAMpN,QAAQC,IAAIoN,YAAc,yBAChCC,MAAOtN,QAAQC,IAAIsN,aAAe,GAClCC,OAAQxN,QAAQC,IAAIwN,eAAiBzN,QAAQC,IAAIyN,cAAgB,GACjEC,WAAY3N,QAAQC,IAAI2N,wBAAqB5P,EAC7C6P,UAAW7N,QAAQC,IAAI6N,uBAAoB9P,EAC3C+P,YAAa/N,QAAQC,IAAI+N,yBAAsBhQ,GAEjDjE,MAAOkU,EAAShU,OAGLiU,GAAcC,EAAkBC,WAAWhC,ICtDxD,SAASiC,KACP,MAAMjB,KAAEA,EAAIE,MAAEA,EAAKE,OAAEA,EAAMG,WAAEA,EAAUE,UAAEA,GAAcK,GAAYf,KACnE,MAAO,CACLC,KAAMA,GAAMkB,OACZhB,MAAOA,GAAOgB,OACdd,OAAQA,GAAQc,OAChBX,WAAYA,GAAYW,OACxBT,UAAWA,GAAWS,OACtBP,YAAaG,GAAYf,KAAKY,aAAaO,OAE/C,UAEgBC,KACd,MAAMlU,EAASgU,KACf,MAAO,CACL,CACE1T,KAAM,aACNkC,UAAU,EACVP,YAAa,mFACbD,MAAOhC,EAAO+S,MAEhB,CACEzS,KAAM,cACNkC,UAAU,EACVP,YAAa,yDACbD,MAAOhC,EAAOiT,OAEhB,CACE3S,KAAM,gBACNkC,UAAU,EACVP,YACE,iGACFkS,WAAW,EACXnS,MAAOhC,EAAOmT,QAEhB,CACE7S,KAAM,oBACNkC,UAAU,EACVP,YACE,6FACFD,MAAOhC,EAAOsT,YAEhB,CACEhT,KAAM,mBACNkC,UAAU,EACVP,YACE,+FACFD,MAAOhC,EAAOwT,WAEhB,CACElT,KAAM,qBACNkC,UAAU,EACVP,YACE,8GACFD,MAAOhC,EAAO0T,aAGpB,CAEA,SAASU,GAAiBC,GACxB,MAAMC,EAAQD,EAAWrS,MAlET,EAACA,EAAgBmS,KACjC,GAAKnS,EACL,OAAImS,EAAkB,eACfnS,GA+D0BuS,CAAUF,EAAWrS,MAAOqS,EAAWF,WAAa,UAC/EK,EAAYH,EAAW7R,SAAW,aAAe,aACvD,MAAO,UAAK6R,EAAW/T,QAAQkU,MAAcH,EAAWpS,8BAA8BqS,IACxF,CDHAnT,EAAQsT,UAAUZ,ICgBZ,MAAOa,WAAoClQ,MAI/C,WAAAhE,CAAYqL,GACV,MAAM8I,EAAcT,KACdtE,EAjBJ,CAAkCgF,IACtC,MAAMD,EAAcT,KAOpB,MAAO,GANQU,EAAgBhT,OAC3B,6BAA6BgT,EAAgB9F,IAAK+F,GAAMA,EAAEvU,MAAM4E,KAAK,SACrE,+FAEYyP,EAAY7F,IAAIsF,IAAkBlP,KAAK,OAGzD,EAQoB4P,CAAwBjJ,GACxCvK,MAAMsO,GACN7P,KAAKO,KAAO,8BACZP,KAAK4U,YAAcA,EACnB5U,KAAK8L,QAAUA,EACwB,mBAA5BrH,MAAMuQ,mBACfvQ,MAAMuQ,kBAAkBhV,KAAM2U,GAElC,ECnFI,SAAUM,GAAmB/L,GACjC,IAAKA,EACH,MAAO,CACLC,KAAM,aACN0G,QAAS,qBACTqF,QAAS,CAAEC,IAAKjM,IAIpB,MAAMkM,EACJlM,GAAKyI,QAAUzI,GAAKmM,YAAcnM,GAAKoM,UAAU3D,QAAUzI,GAAKoM,UAAUD,WACtEE,EAAwC,iBAApBH,EAA+BA,EAAkBI,OAAOJ,SAAoBxR,EAChG6R,EAAOvM,GAAKoM,UAAUI,MAAQxM,GAAKwM,MAAQxM,GAAKoM,UAAUG,MAAQvM,GAAKuM,KAEvEnG,EAAqB,GACC,iBAAjBpG,GAAK2G,SAAsBP,EAASrB,KAAK/E,EAAI2G,SArC1D,EAAyB4F,EAAWE,KAC7BF,IACD1J,MAAMC,QAAQyJ,EAAKG,gBACrBH,EAAKG,cAAc/G,QAASjP,GAA4B,iBAARA,GAAoB+V,EAAU1H,KAAKrO,IAEpD,iBAAtB6V,EAAKI,cACdF,EAAU1H,KAAKwH,EAAKI,cAElBJ,EAAKK,iBAAmB/J,MAAMC,QAAQyJ,EAAKK,gBAAgBC,SAC7DN,EAAKK,gBAAgBC,OAAOlH,QAASmH,IACd,iBAAVA,EAAoBL,EAAU1H,KAAK+H,GACrCA,GAAkC,iBAAlBA,EAAMnG,SAAsB8F,EAAU1H,KAAK+H,EAAMnG,WAG1E4F,GAAMM,QAAiC,iBAAhBN,EAAKM,QAC9B5R,OAAO8R,OAAOR,EAAKM,QAAQlH,QAASqH,IACf,iBAARA,EAAkBP,EAAU1H,KAAKiI,GACX,iBAAjBA,GAAKrG,SAAsB8F,EAAU1H,KAAKiI,EAAIrG,WAGpE,EAkBEsG,CAAgBV,EAAMnG,GAEtB,MAAM8G,EAAkBb,EAAa,mBAAmBA,KAAgB,iBAClE1F,EAAUP,EAASzN,OAAS,EAAIyN,EAASnK,KAAK,OAASiR,EAI7D,MAAO,CACLjN,KAHWoM,EAAa,QAAQA,EAAerM,GAAKC,MAAQ,aAI5D0G,UACAqF,QAAS,CACPK,aACAE,OACAN,IAAKjM,GAGX,CC7DO,MAEM8H,GAAc1M,EAAEE,OAAO,CAClC6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBC,eAAgBjS,EAAEkS,UAAU1G,WAAW2G,SAAQ,KA0BpCC,GAAkB,CAAAnW,KA9BX,gCA8BmByQ,GAAW2F,QAvB3C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3BoP,EAAYF,EAAOG,QAAUH,EAAOI,OAASJ,EAC7CK,EAAWH,GAAWI,QAAUJ,GAAWK,YACjD,GAAwB,mBAAbF,EACT,MAAUxS,MAAM,gDAQlB,aALMwS,EAAS7K,KAAK0K,EAAW,CAC7BT,QAASQ,EAAOR,QAChBE,eAAgBM,EAAON,iBAGlB,CACLa,SAAS,EACTvH,QAAS,SAASnI,EAAM2O,+BAE5B,CAAE,MAAOnN,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GC1Ba8H,GAAc1M,EAAEE,OAAO,CAClC6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBe,OAAQ/S,EAAE6K,SAASW,WACnBwH,OAAQhT,EAAEiT,MAAMjT,EAAE6K,UAAUW,WAC5BpB,WAAYpK,EAAEiT,MAAMjT,EAAE6K,UAAUW,aAqBrB0H,GAAgB,CAAAjX,KA3BT,8BA2BiByQ,GAAW2F,QAlBzC1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B+P,EAA+B,CACnCC,aAAcb,EAAOR,SAGnBQ,EAAOQ,SAAQI,EAAQJ,OAASR,EAAOQ,QACvCR,EAAOS,SAAQG,EAAQH,OAAST,EAAOS,QACvCT,EAAOnI,aAAY+I,EAAQ/I,WAAamI,EAAOnI,YAEnD,MAAM4G,QAAiBsB,EAAOG,OAAOY,IAAIF,GACzC,OAAOnC,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,YCcgB0O,GACdC,EACAC,EACAC,GAEA,MACMC,IADcH,EAASrF,KAAO,IAAvB9C,IACEuI,MAAM,wCACrB,IAAKD,EAAG,OAAO,KAEf,MAAME,EAAQF,EAAE,GACVG,EAAMJ,EAAKK,oBAAoBF,GACrC,OAAKC,EA2BE,CAAEnU,KAAM,QAASqU,KAtBD,CACrBrU,KAAM,cACNsU,MAAO,CAAEC,OAAQ,UACjB/I,QAAS,CACP,CACExL,KAAM,QACNsU,MAAO,CACLtU,KAAM,OACNwU,GAAIL,EAAIK,GACRC,WAAYN,EAAIM,YAAc,mBAdrB,IA4BnB,CCvEM,SAAUC,GACd/N,EACAoN,GAEA,IAAKpN,EAAM,MAAO,GAGlB,IAAKoN,EAAKY,mBAAqBZ,EAAKa,sBAClC,MAAO,CAAC,CAAE5U,KAAM,OAAQ2G,SAI1B,IAAIkO,EAAI,EACR,MAAMC,EAAiB,GAGjBC,EAAY,4CAGZC,EAAU,0BAEhB,KAAOH,EAAIlO,EAAK9I,QAAQ,CACtB,MAOMoX,EAAOC,GAPOnB,EAAKY,iBACrBQ,GAASJ,EAAWpO,EAAMkO,GAC1B,KACcd,EAAKa,sBACnBO,GAASH,EAASrO,EAAMkO,GACxB,MAGJ,IAAKI,EAAM,CACTH,EAAI7K,KAAK,CAAEjK,KAAM,OAAQ2G,KAAMA,EAAKyO,MAAMP,KAC1C,KACF,CAMA,GAHII,EAAKI,MAAQR,GACfC,EAAI7K,KAAK,CAAEjK,KAAM,OAAQ2G,KAAMA,EAAKyO,MAAMP,EAAGI,EAAKI,SAElC,YAAdJ,EAAKK,KAAoB,CAC3B,MAAMC,KAAEA,EAAIC,OAAEA,GAAWP,EACnBQ,EAASD,EAAO,IAAM,GACtBE,EAASF,EAAO,IAAM,GACxBC,GAAQX,EAAI7K,KAAK,CAAEjK,KAAM,OAAQ2G,KAAM8O,IAE3C,MAAME,EAAW5B,EAAK6B,iBAAiBF,GACnCC,EACFb,EAAI7K,KAAK,CACPjK,KAAM,UACNsU,MAAO,CAAEE,GAAImB,EAASnB,GAAI7N,KAAMgP,EAAShP,QAG3CmO,EAAI7K,KAAK,CAAEjK,KAAM,OAAQ2G,KAAM,IAAI+O,IAGrCb,EAAII,EAAKI,MAAQE,EAAK1X,OACtB,QACF,CAEA,GAAkB,UAAdoX,EAAKK,KAAkB,CACzB,MAAMC,KAAEA,EAAIC,OAAEA,GAAWP,EACnBY,EAAY,IAAIL,EAAO,MACvBG,EAAW5B,EAAK+B,eAAeD,GAErCf,EAAI7K,KAAK,CACPjK,KAAM,QACNsU,MAAOqB,EACH,CAAEE,UAAWF,EAASE,UAAWlP,KAAMgP,EAAShP,MAChD,CAAEkP,eAGRhB,EAAII,EAAKI,MAAQE,EAAK1X,OACtB,QACF,CACF,CAGA,MA+BF,CAAsBkY,IACpB,MAAMjB,EAAiB,GACvB,IAAK,MAAMkB,KAAKD,EAAO,CACrB,MAAME,EAAOnB,EAAIA,EAAIjX,OAAS,GACf,SAAXmY,EAAEhW,MAAkC,SAAfiW,GAAMjW,MAAoBiW,EAAKC,OAAUF,EAAEE,MAGlEpB,EAAI7K,KAAK+L,GAFTC,EAAKtP,MAAQsP,EAAKtP,MAAQ,KAAOqP,EAAErP,MAAQ,GAI/C,CACA,OAAOmO,CACT,EA1CSqB,CAAarB,EACtB,CAEA,SAASK,GACPiB,EACA/W,EACAgX,GAOAD,EAAGE,UAAYD,EACf,MAAMrC,EAAIoC,EAAGG,KAAKlX,GAClB,IAAK2U,EAAG,OAAO,KAGf,MAAMsB,EAAOc,EAAGI,OAAO5L,SAAS,KAAO,UAAY,QACnD,MAAO,CAAEyK,MAAOrB,EAAEqB,MAAOE,KAAMvB,EAAE,GAAIwB,OAAQxB,EAAEoB,MAAM,GAAgBE,OACvE,CAEA,SAASJ,GACPuB,EACAC,GAEA,OAAKD,EACAC,GACED,EAAEpB,MAASqB,EAAErB,MAAYqB,EADjBD,EADAC,CAGjB,CClHM,SAAUC,GAAsBtC,GACpC,MACMuC,GADOvC,EAAKwC,UAAY,IACX,GACnB,MAAoB,SAAhBD,GAAO5W,MAA+B4W,EAAM3Y,OAAS,IAAtByN,GACf,cAAhBkL,GAAO5W,OACE4W,EAAMC,UAAY,IAC1B9L,IAAK+L,GAAuB,SAAXA,EAAE9W,MAAyB8W,EAAE7Y,OAAS,IAAlByN,GAAwB,IAC7DvK,KAAK,KACW,IAAZuK,GAEF,EACT,CAEM,SAAUqL,GAAmBC,GACjC,MAAM3X,IAAW2X,GAAK,IAAZtL,IACPjF,cACAyJ,OACH,OAAK7Q,EACK,SAANA,GAAsB,SAANA,GAAsB,YAANA,GAAyB,YAANA,GAAyB,UAANA,EACjEA,EACC,WAANA,EAAuB,QACpB,KAJQ,IAKjB,CAEM,SAAU4X,GAAqBD,GACnC,MAAM3X,IAAW2X,GAAK,IAAZtL,IACPjF,cACAyJ,OACH,OAAK7Q,GAEG,YAANA,GACM,UAANA,GACM,WAANA,GACM,QAANA,GACM,SAANA,GACM,WAANA,EAPa,KASNA,CAEX,CCvBM,SAAU6X,GAAcL,EAAiB9C,GAC7C,MAAMe,EAAiB,GAEvB,IAAK,MAAMqC,KAASN,GAAY,GAC9B,GAAKM,GAAOnX,KAEZ,GAAmB,SAAfmX,EAAMnX,KAKV,GAAmB,WAAfmX,EAAMnX,KASV,GAAmB,aAAfmX,EAAMnX,KAOV,GAAmB,WAAfmX,EAAMnX,KASV,GAAmB,eAAfmX,EAAMnX,KASV,GAAmB,UAAfmX,EAAMnX,KAAV,CAKA,GAAmB,SAAfmX,EAAMnX,KAAiB,CACzB,MAAMoX,GAAcD,EAAM3I,KAAO,IAApB9C,GACPoI,EAAWuD,GAAWF,EAAMN,UAAY,GAAIO,GAG5CE,EAAa1D,GAAwBuD,EAAOrD,EAAUC,GAC5D,GAAIuD,EAAY,CACU,WAApBA,EAAWtX,KAAmB8U,EAAI7K,KAAKqN,EAAWjD,MAIpDS,EAAI7K,KAAK,CACPjK,KAAM,OACN2G,KAAMmN,EACNoC,MAAO,CAAC,CAAElW,KAAM,OAAQsU,MAAO,CAAE8C,YAGrC,QACF,CAIA,GAAIrD,EAAKwD,kBAAoBC,GAAW1D,EAAUsD,GAAO,CACvDtC,EAAI7K,KAAK,CAAEjK,KAAM,aAAcsU,MAAO,CAAE9F,IAAK4I,KAC7C,QACF,CAEAtC,EAAI7K,KAAK,CACPjK,KAAM,OACN2G,KAAMmN,EACNoC,MAAO,CAAC,CAAElW,KAAM,OAAQsU,MAAO,CAAE8C,YAEnC,QACF,CAGA,GAAmB,kBAAfD,EAAMnX,MAA2C,WAAfmX,EAAM5a,KAAmB,CAC7D,MAAMoK,EAAOgQ,GAAsBQ,IAAU,SACvCM,EAAQR,GAAqBE,EAAMO,YAAYD,QAAU,UAC/D3C,EAAI7K,KAAK,CACPjK,KAAM,SACNsU,MAAO,CAAE3N,OAAM8Q,WAEjB,QACF,CAGA,GAAmB,kBAAfN,EAAMnX,MAA2C,UAAfmX,EAAM5a,KAAkB,CAC5D,MAAMsZ,EAAY8B,GAAqBR,GACvCrC,EAAI7K,KAAK2N,GAAU/B,EAAW9B,IAC9B,QACF,CArDA,MAFEe,EAAI7K,KAAK,CAAEjK,KAAM,mBATjB8U,EAAI7K,KAAK,CACPjK,KAAM,OACN2G,MAAawQ,EAAMlZ,OAAS,IAAtByN,GACNwK,MAAO,CAAC,CAAElW,KAAM,gBAZlB8U,EAAI7K,QACC4N,GAASX,GAAcC,EAAMN,UAAY,GAAI9C,GAAO,CACrD/T,KAAM,iBATV8U,EAAI7K,QACC4N,GAASX,GAAcC,EAAMN,UAAY,GAAI9C,GAAO,CAAE/T,KAAM,aAVjE8U,EAAI7K,QACC4N,GAASX,GAAcC,EAAMN,UAAY,GAAI9C,GAAO,CACrD/T,KAAM,iBAPV8U,EAAI7K,QAAQyK,IAAqByC,EAAMlZ,OAAS,IAAtByN,GAA2BqI,IAoGzD,OAAOe,EAAIvS,OAAQyT,KAAmB,SAAXA,EAAEhW,MAAsC,MAAlBgW,EAAErP,MAAQ,KAC7D,CAEA,SAASkR,GACP9B,EACA+B,GAEA,OAAO/B,EAAMhL,IAAKiL,IAChB,GAAe,SAAXA,EAAEhW,KAAiB,OAAOgW,EAC9B,MAAME,EAAQF,EAAEE,MAAQ,IAAIF,EAAEE,MAAO4B,GAAQ,CAACA,GAC9C,MAAO,IAAK9B,EAAGE,UAEnB,CAEA,SAASmB,GAAWR,EAAiBxR,GACnC,MAAM0S,EAAmB,GACzB,IAAK,MAAMjB,KAAKD,GAAY,GACX,SAAXC,EAAE9W,MACc,eAAX8W,EAAE9W,KADY+X,EAAO9N,MAAY6M,EAAE7Y,OAAS,IAAlByN,IAGtB,aAAXoL,EAAE9W,MACS,WAAX8W,EAAE9W,MACS,WAAX8W,EAAE9W,MAEF+X,EAAO9N,KAAKoN,GAAWP,EAAED,UAAY,GAAI,KAI7C,OADUkB,EAAO5W,KAAK,KACVkE,CACd,CAEA,SAASmS,GAAW7Q,EAAcyQ,GAChC,MAAMX,GAAK9P,GAAQ,IAAIuJ,OACjBwG,GAAKU,GAAQ,IAAIlH,OACvB,OAAOuG,IAAMC,GAAK,gBAAgBsB,KAAKtB,EACzC,CAEA,SAASiB,GAAqBtD,GAQ5B,OANaA,EAAKwC,UAAY,IAGzB9L,IAAKJ,GAAuB,SAAXA,EAAE3K,MAAyB2K,EAAE1M,OAAS,IAAlByN,GAAwB,IAC7DvK,KAAK,IACL+O,QAAU,EAEjB,CAEA,SAAS0H,GAAU/B,EAAmB9B,GACpC,MAAMkE,EAAKpC,EAAUqC,WAAW,KAAOrC,EAAY,IAAIA,KACjDF,EAAW5B,EAAK+B,eAAemC,GACrC,OAAItC,EACK,CACL3V,KAAM,QACNsU,MAAO,CAAEuB,UAAWF,EAASE,UAAWlP,KAAMgP,EAAShP,OAEpD,CAAE3G,KAAM,QAASsU,MAAO,CAAEuB,UAAWoC,GAC9C,CCjLM,SAAUE,GAAQ9D,GACtB,OAAKA,EACe,iBAATA,EAA0BA,EACnB,SAAdA,EAAKrU,MACS,eAAdqU,EAAKrU,MAD+BqU,EAAKpW,OAAS,IAArByN,GAE7B3D,MAAMC,QAAQqM,EAAKwC,UAAkBxC,EAAKwC,SAAS9L,IAAIoN,IAAShX,KAAK,IAClE,GALW,EAMpB,CCIM,SAAUiX,GACd/D,EACAN,GAEA,IAAKM,GAAMrU,KAAM,OAAO,KAGxB,GAmFF,CAA8BqU,GACN,uBAAfA,GAAMrU,MApFkB,UAoFeqU,GAAM9X,KApFhD8b,CAAqBhE,GACvB,MAsFJ,EAA+BA,EAAWN,KACxC,MAAMO,EAAQD,EAAKqD,YAAc,CAAA,EAC3BY,EAAYvB,GAAmBzC,EAAMtU,OAAS,OAC9CzB,EAA+B,iBAAhB+V,EAAM/V,MAAqB+V,EAAM/V,WAAQqB,EAGxD2Y,GAAelE,EAAKwC,UAAY,IACnC9L,IAAK+L,GAAWsB,GAAatB,EAAG/C,IAChC9I,OACA1I,OAAOC,SAGV,MAAO,CACLxC,KAAM,QAENsU,MAAO,CAAEgE,eAAe/Z,EAAQ,CAAE+Z,YAAW/Z,SAAU,CAAE+Z,cACzD9M,QAAS+M,EAAY1a,OACjB0a,EACA,CAAC,CAAEvY,KAAM,YAAawL,QAAS,KAEvC,EA1GWgN,CAAsBnE,EAAMN,GAErC,OAAQM,EAAKrU,MACX,IAAK,UACH,MAAO,CACLA,KAAM,UACNsU,MAAO,CAAE3Y,MAAO8c,GAASpE,EAAKqE,OAAS,EAAG,EAAG,IAC7ClN,QAAS0L,GAAc7C,EAAKwC,UAAY,GAAI9C,IAGhD,IAAK,YAGH,ML9BA,CACJ4E,IAIA,MAAM9B,EAAW8B,EAAc9B,UAAY,GAC3C,GAAwB,IAApBA,EAAShZ,OAAc,OAAO,KAClC,MAAM+a,EAAO/B,EAAS,GACtB,GAAmB,UAAf+B,GAAM5Y,KAAkB,OAAO,KAGnC,MAAMwO,GAAaoK,EAAKpK,KAAO,IAAnB9C,GACZ,OAAK8C,EAEE,CACLxO,KAAM,cACNsU,MAAO,CAAEC,OAAQ,UACjB/I,QAAS,CACP,CACExL,KAAM,QACNsU,MAAO,CAAEtU,KAAM,WAAYwO,UARhB,IAYnB,EKKoBqK,CAA0BxE,IAGjC,CACLrU,KAAM,YACNwL,QAAS0L,GAAc7C,EAAKwC,UAAY,GAAI9C,IAIhD,IAAK,aACH,MAAO,CACL/T,KAAM,aACNwL,SAAU6I,EAAKwC,UAAY,IACxB9L,IAAK+L,GAAWsB,GAAatB,EAAG/C,IAChC9I,OACA1I,OAAOC,UAGd,IAAK,OACH,MChDA,EAAsBsW,EAAe/E,IAGvCA,EAAKgF,kBACJD,EAASjC,UAAY,IAAImC,KACvBC,GAAkC,kBAAfA,EAAGC,SAwB7B,EAAyBJ,EAAe/E,KAGtC,MAAMoF,EAAmB,GACzB,IAAIC,EAAM,EAEV,IAAK,MAAMH,KAAMH,EAASjC,UAAY,GAAI,CACxC,GAA0B,kBAAfoC,EAAGC,QAAuB,SACrCE,GAAO,EAEP,MAAMC,GAAUJ,EAAGpC,UAAY,IAC5B9L,IAAK+L,GAAWsB,GAAatB,EAAG/C,IAChC9I,OACA1I,OAAOC,SAGV2W,EAAMlP,KAAK,CACTjK,KAAM,WACNsU,MAAO,CACLgF,QAAS,QAAQF,EACjB7I,MAAO0I,EAAGC,QAAU,OAAS,QAE/B1N,QAAS6N,EAAOxb,OAASwb,EAAS,CAAC,CAAErZ,KAAM,YAAawL,QAAS,MAErE,CAEA,MAAO,CAAExL,KAAM,WAAYwL,QAAS2N,EACtC,EAhDyBI,CAAgBT,EAAU/E,GAE1C,CACL/T,KAAM8Y,EAASU,QAAU,cAAgB,aACzChO,SAAUsN,EAASjC,UAAY,IAAI9L,IAAKkO,GAI5C,EAAkBA,EAASlF,KAEzB,MAAMsF,GAAUJ,EAAGpC,UAAY,IAC5B9L,IAAK+L,GAAWsB,GAAatB,EAAG/C,IAChC9I,OACA1I,OAAOC,SAEV,MAAO,CACLxC,KAAM,WACNwL,QAAS6N,EAAOxb,OAASwb,EAAS,CAAC,CAAErZ,KAAM,YAAawL,QAAS,KAErE,EAfwDiO,CAASR,EAAIlF,KDoCxD2F,CAAYrF,EAAMN,GAE3B,IAAK,OAAQ,CACX,MAAM4F,EAqCZ,EAA+BA,EAAW5F,KACxC,MAAM5C,GAAOwI,GAAQ,IAAI5b,WAAWmS,OAAOzJ,cAC3C,OAAK0K,EAGD4C,EAAK6F,eAAyB,YAARzI,EAA0B,UE/FhD,CAAsBA,IAC1B,MAAM9R,EAAI8R,EAAIjB,OAAOzJ,cA8CrB,MA5CoC,CAClCoT,GAAI,aACJC,WAAY,aACZC,IAAK,aACLC,GAAI,aACJC,WAAY,aACZC,IAAK,aACLC,GAAI,SACJC,OAAQ,SACRC,GAAI,OACJC,KAAM,OACNC,GAAI,OACJC,KAAM,OACNC,IAAK,OACLC,MAAO,OACPC,IAAK,OACLC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,KAAM,OACNC,IAAK,MACLC,GAAI,KACJC,KAAM,OACNC,KAAM,OACNxE,EAAG,IACHyE,IAAK,MACL,MAAO,MACPC,GAAI,SACJC,OAAQ,SACRC,IAAK,MACLC,OAAQ,SACRC,MAAO,QACPC,GAAI,WACJC,SAAU,WACVC,QAAS,UACTC,IAAK,UACLC,WAAY,SACZC,SAAU,OACVC,IAAK,OAGI9c,IAAMA,CACnB,EFiDS+c,CAAYjL,GALF,IAMnB,EA7CmBkL,CAAsBhI,EAAKsF,KAAM5F,GAC9C,MAAO,CACL/T,KAAM,YACNsU,MAAO,CAAEgI,SAAU3C,GACnBnO,QAAS,CAAC,CAAExL,KAAM,OAAQ2G,MAAa0N,EAAKpW,OAAS,IAArByN,KAEpC,CAEA,IAAK,gBACH,MAAO,CAAE1L,KAAM,QAEjB,IAAK,QACH,MGhEA,EAAuBuc,EAAgBxI,KAmBpC,CAAE/T,KAAM,QAASwL,SAlBV+Q,EAAU1F,UAAY,IAAI9L,IAAI,CAACyR,EAAUC,KAe9C,CAAEzc,KAAM,WAAYwL,SAdZgR,EAAI3F,UAAY,IAAI9L,IAAK2R,IAG/B,CACL1c,KAH4B,IAAbyc,EAAiB,cAAgB,YAIhDjR,QAAS,CACP,CACExL,KAAM,YACNwL,QAAS0L,GAAcwF,EAAK7F,UAAY,GAAI9C,aHsD3C4I,CAAatI,EAAMN,GAG5B,IAAK,gBACH,MAAkB,WAAdM,EAAK9X,KAuFf,CAAgC8X,IAC9B,MACMoD,EAAQR,IADA5C,EAAKqD,YAAc,CAAA,GACQD,QAAU,UAGnD,MAAO,CACLzX,KAAM,YACNwL,QAAS,CACP,CACExL,KAAM,SACNsU,MAAO,CACL3N,KARKgQ,GAAsBtC,IAAS,SASpCoD,WAKV,EAxGyCmF,CAAuBvI,GACxC,UAAdA,EAAK9X,KA8Df,EAAmC8X,EAAWN,KAC5C,MAAMO,EAAQD,EAAKqD,YAAc,CAAA,EAC3BY,EAAYvB,GAAmBzC,EAAMtU,OAAS,OAC9CzB,EAA+B,iBAAhB+V,EAAM/V,MAAqB+V,EAAM/V,WAAQqB,EAG9D,MAAO,CACLI,KAAM,QACNsU,MAAO,CAAEgE,eAAe/Z,EAAQ,CAAEA,SAAU,CAAA,GAC5CiN,QAAS,CACP,CACExL,KAAM,YACNwL,QAAS0L,GAAc,CAAC,CAAElX,KAAM,OAAQ/B,MAPjC0Y,GAAsBtC,KAO2BN,KAIhE,EA9EwC8I,CAA0BxI,EAAMN,GAC3D+I,GAAQzI,EAAMN,GAEvB,QACE,OAAO+I,GAAQzI,EAAMN,GAE3B,CAEA,SAAS+I,GAAQzI,EAAWN,GAC1B,GAAiC,SAA7BA,EAAKgJ,oBAAgC,OAAO,KAChD,MAAMC,EAAI7E,GAAQ9D,GAClB,OAAK2I,EACE,CAAEhd,KAAM,YAAawL,QAAS,CAAC,CAAExL,KAAM,OAAQ2G,KAAMqW,KAD7C,IAEjB,CAEA,SAASvE,GAASzC,EAAW1D,EAAa2K,GACxC,MAAMC,EAAI1L,OAAO2L,SAASnH,GAAKoH,KAAKC,MAAMrH,GAAK1D,EAC/C,OAAO8K,KAAKH,IAAI3K,EAAK8K,KAAK9K,IAAI2K,EAAKC,GACrC,CIrFA,MAAMI,GAA2C,CAC/C1H,oBAAgBhW,EAChBwU,uBAAmBxU,EACnBkW,kBAAclW,EACd2X,kBAAkB,EAClBqC,eAAe,EACfhF,uBAAuB,EACvBD,kBAAkB,EAClBoE,iBAAiB,EACjBgE,oBAAqB,iBAGPQ,GACdzB,EACA0B,EAAgC,IAEhC,MAAMzJ,EAAuC,IAAKuJ,MAAaE,GACzD9Z,EAAQoY,GAAY,GAEpB2B,EAAYC,IACfC,IAAIC,GACJD,IAAIE,GACJF,IAAIG,GAEDC,EAAON,EAAU3W,MAAMpD,GACvBsa,EAAcP,EAAUQ,QAAQF,GAEtC,OADAG,GAAWF,GC7BP,EACJvb,EACAsR,KAEA,MAAMvI,EAAqB,GAE3B,IAAK,MAAM2L,KAAS1U,EAAKoU,UAAY,GAAI,CACvC,MAAMxC,EAAO+D,GAAajB,EAAOpD,GAC7BM,IACEtM,MAAMC,QAAQqM,GAAO7I,EAAQvB,QAAQoK,GACpC7I,EAAQvB,KAAKoK,GAEtB,CAGA,MCVI,EACJ8J,EACApK,KAEA,IAAKA,EAAKwD,iBAAkB,OAAO4G,EAEnC,MAAM3S,EAAU2S,EAAI3S,QAAQT,IAAKiL,GAInC,CAAwB3B,IAEtB,GAAkB,cAAdA,EAAKrU,KAAsB,OAAOqU,EAEtC,MAAMyC,EAAIzC,EAAK7I,SAAW,GAC1B,GAAiB,IAAbsL,EAAEjZ,OAAc,OAAOwW,EAE3B,MAAMuE,EAAO9B,EAAE,GACf,GAAmB,eAAf8B,GAAM5Y,KAAuB,OAAOqU,EAGxC,MAAM7F,EAAMoK,EAAKtE,OAAO9F,IACxB,OAAKA,EAEE,CAAC,CAAExO,KAAM,YAAasU,MAAO,CAAE9F,SAFrB6F,CAGnB,EAnByC+J,CAAepI,IAAI/K,OAC1D,MAAO,IAAKkT,EAAK3S,UACnB,EDES6S,CADa,CAAEnQ,QAAS,EAAGlO,KAAM,MAAOwL,WACtBuI,EAC3B,EDcSuK,CAAYN,EAAajK,EAClC,CAEA,SAASmK,GAAW7J,GAClB,IAAKA,IAAStM,MAAMC,QAAQqM,EAAKwC,UAAW,OAC5C,MAAM0H,EAAsB,GAC5B,IAAK,MAAMpH,KAAS9C,EAAKwC,SACH,eAAhBM,GAAOnX,OACS,SAAhBmX,GAAOnX,MAOXke,GAAW/G,GACXoH,EAAatU,KAAKkN,IAPhBoH,EAAatU,KAAK,CAChBjK,KAAM,OACN/B,OAAckZ,EAAMlZ,OAAS,IAAtByN,MAOb2I,EAAKwC,SAAW0H,CAClB,CGpDO,MCGMvR,GDH6B1M,EAAEE,OAAO,CACjD6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBkM,aAAcle,EAAEme,MAAM,CAACne,EAAE6K,SAAU7K,EAAEoe,WACrCpL,OAAQhT,EAAEqe,OAAOre,EAAEC,OAAOuL,WAC1BlH,OAAQtE,EACLqe,OAAOre,EAAEiT,MACRjT,EAAEE,OAAO,CACPoe,IAAKte,EAAEC,MAAMuL,WACbhB,IAAKxK,EAAEC,MAAMuL,WACb+S,OAAQve,EAAEC,MAAMuL,eAGnBA,WACHgT,QAASxe,EAAE6K,SAASW,aCcTiT,GAAsB,CAAAxiB,KAzBf,oCAyBuByQ,GAAW2F,QAtB/C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3Bsb,EAAyC,CAC7CxK,GAAI3B,EAAO2L,cAGT3L,EAAOS,SAAQ0L,EAAkB1L,OAAST,EAAOS,QACjDT,EAAOjO,SAAQoa,EAAkBpa,OAASiO,EAAOjO,QACjDiO,EAAOiM,UAASE,EAAkBF,QAAU,CAAErN,KAAM8L,GAAc1K,EAAOiM,WAE7E,MAAMxN,QAAiBsB,EAAOG,OAAOkM,WAAW,CAC9C5M,QAASQ,EAAOR,QAChB4M,WAAYD,IAGd,OAAO1N,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GCtBa8H,GCHyB1M,EAAEE,OAAO,CAC7C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBgB,OAAQhT,EAAEqe,OAAOre,EAAEC,OAAOuL,WAC1BlH,OAAQtE,EACLqe,OAAOre,EAAEiT,MACRjT,EAAEE,OAAO,CACPoe,IAAKte,EAAEC,MAAMuL,WACbhB,IAAKxK,EAAEC,MAAMuL,WACb+S,OAAQve,EAAEC,MAAMuL,WAChBoT,KAAM5e,EAAEC,MAAMuL,eAGjBA,WACHpB,WAAYpK,EAAEiT,MAAMjT,EAAEC,OAAOuL,WAC7BqT,YAAa7e,EAAEkS,UAAU1G,WAAW2G,SAAQ,GAC5C2M,gBAAiB9e,EAAE6K,SAASW,WAC5BuT,uBAAwB/e,EAAEkS,UAAU1G,WAAW2G,SAAQ,GACvD6M,qBAAsBhf,EAAEkS,UAAU1G,WAAW2G,SAAQ,KDY1C8M,GAAkB,CAAAhjB,KA5BX,gCA4BmByQ,GAAW2F,QAxB3C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B+P,EAA+B,CACnCpB,QAASQ,EAAOR,SAGdQ,EAAOS,SAAQG,EAAQH,OAAST,EAAOS,QACvCT,EAAOjO,SAAQ6O,EAAQ7O,OAASiO,EAAOjO,QACvCiO,EAAOnI,aAAY+I,EAAQ/I,WAAamI,EAAOnI,iBACjB,IAAvBmI,EAAOsM,cAA6B1L,EAAQ0L,YAActM,EAAOsM,aACxEtM,EAAOuM,kBAAiB3L,EAAQ2L,gBAAkBvM,EAAOuM,sBAChB,IAAlCvM,EAAOwM,yBAChB5L,EAAQ4L,uBAAyBxM,EAAOwM,6BACC,IAAhCxM,EAAOyM,uBAChB7L,EAAQ6L,qBAAuBzM,EAAOyM,sBAExC,MAAMhO,QAAiBsB,EAAOG,OAAOnO,OAAO6O,GAC5C,OAAOnC,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GEzBa8H,GCFyB1M,EAAEE,OAAO,CAC7C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBkN,SAAUlf,EAAEme,MAAM,CAChBne,EAAE6K,SACF7K,EAAEE,OAAO,CAAEif,UAAWnf,EAAE6K,SAASmH,IAAI,KACrChS,EAAEE,OAAO,CAAEkf,YAAapf,EAAE6K,SAASmH,IAAI,SDoB9BqN,GAAkB,CAAApjB,KAxBX,gCAwBmByQ,GAAW2F,QArB3C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GACjC,IAAI8b,EAEFA,EAD6B,iBAApB3M,EAAO2M,SACL,CAAEC,UAAW5M,EAAO2M,UAEpB3M,EAAO2M,SAGpB,MAAMlO,QAAiBsB,EAAOG,OAAO5J,OAAO,CAC1CkJ,QAASQ,EAAOR,QAChBmN,aAGF,OAAOlO,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GEpBa8H,GAAc1M,EAAEE,OAAO,CAClC6R,QAAS/R,EAAE6K,SAASmH,IAAI,KAiBbsN,GAAoB,CAAArjB,KApBb,kCAoBqByQ,GAAW2F,QAd7C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B4N,QAAiBsB,EAAOG,OAAO5J,OAAO,CAC1CkJ,QAASQ,EAAOR,QAChBmN,SAAU,CAAEC,UAAW,QAGzB,OAAOnO,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GChBa8H,GCHwB1M,EAAEE,OAAO,CAC5C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBb,KAAMnR,EAAE6K,SAASmH,IAAI,GACrBuN,WAAYvf,EACTE,OAAO,CACNR,KAAMM,EAAEwf,KAAK,CAAC,OAAQ,UACtB7hB,MAAOqC,EAAE6K,SAASmH,IAAI,KAEvBxG,aDmBQiU,GAAiB,CAAAxjB,KAzBV,+BAyBkByQ,GAAW2F,QAtB1C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3Bob,EAAe,CACnBrN,KAAM8L,GAAc1K,EAAOpB,OAGzBoB,EAAOgN,aACTf,EAAQe,WAAahN,EAAOgN,YAG9B,MAAMvO,QAAiBsB,EAAOG,OAAOiN,WAAW,CAC9C3N,QAASQ,EAAOR,QAChByM,YAGF,OAAOxN,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GEvBa8H,GCF0B1M,EAAEE,OAAO,CAC9C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxB+D,MAAO/V,EAAEoe,SAAS5S,WAAW2G,QAAQ,GACrCwN,WAAY3f,EAAEoe,SAAS5S,WAAW2G,QAAQ,IAC1CyN,QAAS5f,EAAE6K,SAASW,WACpBuH,OAAQ/S,EAAE6K,SAASW,aDgBRqU,GAAkB,CAAA5jB,KApBX,gCAoBmByQ,GAAW2F,QAjB3C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B4N,QAAiBsB,EAAOG,OAAOqN,YAAY,CAC/C/N,QAASQ,EAAOR,QAChBgE,MAAOxD,EAAOwD,MACd4J,WAAYpN,EAAOoN,WACnBC,QAASrN,EAAOqN,QAChB7M,OAAQR,EAAOQ,SAGjB,OAAO/B,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GEhBa8H,GCHwB1M,EAAEE,OAAO,CAC5C6f,KAAM/f,EAAEE,OAAO,CACb8f,aAAchgB,EAAEwf,KAAK,CACnB,SACA,aACA,aACA,gBACA,gBACA,mBACA,SACA,eACA,QACA,WACA,UACA,QACA,YAEFS,YAAajgB,EAAEE,OAAO,CACpBgU,GAAIlU,EAAE6K,SAASW,WACf5L,IAAKI,EAAE6K,SAASW,aAElB0U,aAAclgB,EAAEE,OAAO,CACrBgU,GAAIlU,EAAE6K,SAASW,WACf5L,IAAKI,EAAE6K,SAASW,aAElBgT,QAASxe,EACNE,OAAO,CACNiR,KAAMnR,EAAE6K,SAASW,WACjB+T,WAAYvf,EACTE,OAAO,CACNR,KAAMM,EAAEwf,KAAK,CAAC,OAAQ,UACtB7hB,MAAOqC,EAAE6K,SAASmH,IAAI,KAEvBxG,aAEJA,eDJM2U,GAAiB,CAAAlkB,KA7BV,+BA6BkByQ,GAAW2F,QA1B1C1J,MAAuB2J,EAAalP,KACzC,IACE,MACM2c,EADSrT,GAAYlG,MAAMpD,GACb2c,KACdK,EAAmC,CACvCJ,aAAcD,EAAKC,aACnBC,YAAaF,EAAKE,YAAY/L,IAAM6L,EAAKE,YAAYrgB,IACrDsgB,aAAcH,EAAKG,aAAahM,IAAM6L,EAAKG,aAAatgB,KAGtDmgB,EAAKvB,UACHuB,EAAKvB,QAAQrN,OACfiP,EAAY5B,QAAUvB,GAAc8C,EAAKvB,QAAQrN,OAE/C4O,EAAKvB,QAAQe,aACfa,EAAYb,WAAaQ,EAAKvB,QAAQe,aAI1C,MAAMvO,QAAiBsB,EAAOG,OAAOsN,KAAKK,GAC1C,OAAOpP,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GEzBa8H,GCJyB1M,EAAEE,OAAO,CAC7C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxBqO,KAAMrgB,EAAE6K,SAASmH,IAAI,GACrBzD,SAAUvO,EAAE6K,SAASW,WACrBgT,QAASxe,EAAE6K,SAASW,aD8BT8U,GAAkB,CAAArkB,KA/BX,0BA+BmByQ,GAAW2F,QA5B3C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3BkK,EAAW1M,EAAKsI,QAAQqJ,EAAO8N,MAC/BE,QAAmBzf,EAAGmC,SAASqK,GAC/BlI,EAAWxE,EAAK2E,SAAS+H,GAEzB0D,QAAiBsB,EAAOG,OAAO+N,cAAc,CACjDzO,QAASQ,EAAOR,QAChBsO,KAAM,CACJpkB,KAAMmJ,EACN8F,QAASqV,EACThS,SAAUgE,EAAOhE,UAAY,4BAE/BiQ,QAASjM,EAAOiM,UAGlB,OAAOxN,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,GAAIA,GAAOA,EAAIC,MAA4B,iBAAbD,EAAIC,MAC5B,CAAC,SAAU,UAAUyF,SAAS1F,EAAIC,MACpC,MAAU1E,MAAM,0BAA0ByE,EAAI2G,SAGlD,MAAMoF,GAAmB/L,EAC3B,CACF,GE7Ba8H,GAAc1M,EAAEE,OAAO,CAClC6R,QAAS/R,EAAE6K,SAASmH,IAAI,KAgBbyO,GAAqB,CAAAxkB,KAnBd,mCAmBsByQ,GAAW2F,QAb9C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B4N,QAAiBsB,EAAOG,OAAOiO,eAAe,CAClD3O,QAASQ,EAAOR,UAGlB,OAAOf,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GCfa8H,GAAc1M,EAAEE,OAAO,CAClC6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxB2O,aAAc3gB,EAAE6K,SAASmH,IAAI,KAoBlB4O,GAAuB,CAAA3kB,KAxBhB,qCAwBwByQ,GAAW2F,QAjBhD1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAMjC,aALMkP,EAAOG,OAAOoO,iBAAiB,CACnC9O,QAASQ,EAAOR,QAChB4O,aAAcpO,EAAOoO,eAGhB,CACL7N,SAAS,EACTvH,QAAS,cAAcnI,EAAMud,oCAEjC,CAAE,MAAO/b,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GCrBa8H,GCFwB1M,EAAEE,OAAO,CAC5C6R,QAAS/R,EAAE6K,SAASmH,IAAI,GACxB8O,UAAW9gB,EAAE6K,SAASmH,IAAI,GAC1BwM,QAASxe,EAAE6K,SAASW,WACpBuV,OAAQ/gB,EACLE,OAAO,CACNif,UAAWnf,EAAE6K,SAASmH,IAAI,KAE3BxG,WACHwV,WAAYhhB,EAAE6K,SAASW,WACvByV,SAAUjhB,EAAE6K,SAASW,aDiBV0V,GAAiB,CAAEjlB,KA1BZ,mBA0BkByQ,eAAa2F,QAvB5C1J,MAAuB2J,EAAalP,KACzC,IACE,MAAMmP,EAAS7F,GAAYlG,MAAMpD,GAC3B+d,EAA+B,CACnCL,UAAWvO,EAAOuO,WAGhBvO,EAAOiM,UAAS2C,EAAQ3C,QAAUjM,EAAOiM,SACzCjM,EAAOwO,SAAQI,EAAQJ,OAASxO,EAAOwO,QACvCxO,EAAOyO,aAAYG,EAAQC,QAAU7O,EAAOyO,YAC5CzO,EAAO0O,WAAUE,EAAQF,SAAW1O,EAAO0O,UAE/C,MAAMjQ,QAAiBsB,EAAOG,OAAO4O,WAAW,CAC9CtP,QAASQ,EAAOR,WACboP,IAGL,OAAOnQ,GAAUI,MAAQJ,CAC3B,CAAE,MAAOpM,GACP,MAAM+L,GAAmB/L,EAC3B,CACF,GERM0c,GAAc,CAClB,CAACpO,GAAcjX,MAAO,CACpBgC,MAAO,kBACPL,YAAa,0DACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACiS,GAAgBhjB,MAAO,CACtBgC,MAAO,oBACPL,YAAa,qEACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACoF,GAAgBnW,MAAO,CACtBgC,MAAO,oBACPL,YAAa,yDACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACyR,GAAoBxiB,MAAO,CAC1BgC,MAAO,wBACPL,YAAa,4DACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACqS,GAAgBpjB,MAAO,CACtBgC,MAAO,oBACPL,YAAa,2CACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACsS,GAAkBrjB,MAAO,CACxBgC,MAAO,sBACPL,YAAa,+CACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACyS,GAAexjB,MAAO,CACrBgC,MAAO,mBACPL,YAAa,yDACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAAC6S,GAAgB5jB,MAAO,CACtBgC,MAAO,oBACPL,YAAa,wDACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACmT,GAAelkB,MAAO,CACrBgC,MAAO,mBACPL,YAAa,0DACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACsT,GAAgBrkB,MAAO,CACtBgC,MAAO,sBACPL,YAAa,sCACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACyT,GAAmBxkB,MAAO,CACzBgC,MAAO,uBACPL,YAAa,mCACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAAC4T,GAAqB3kB,MAAO,CAC3BgC,MAAO,yBACPL,YAAa,yCACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnB,CAACkU,GAAejlB,MAAO,CACrBgC,MAAO,mBACPL,YAAa,iCACb4O,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,KAKdrE,eAAe4Y,GAAkBjZ,GACtC,MAAMlN,EAAM0B,EAAQC,IAAIwkB,IACxB,IAAIC,EACAC,EAAsD,KAE1D,IACED,ECjJE,MAIJ,IAAIE,EACJ,IACE,MAAMC,EAAMC,QAAQ,WACpBF,EACEC,GAAKD,gBACJC,EAAYxP,SAASuP,gBACrBC,EAAYxP,SACbwP,CACJ,CAAE,MAAO/c,GACP,MAAUzE,MACR,8EACSyE,EAEb,CAEA,MAAM8J,KAAEA,EAAME,MAAOiT,EAAW/S,OAAQgT,SpCuFxC,MAAMnmB,EAASgU,KAETnI,EADcqI,KACQ5N,OAAQ+N,GAAeA,EAAW7R,WAAa6R,EAAWrS,OACtF,GAAI6J,EAAQjK,OAAS,EACnB,MAAM,IAAI8S,GAA4B7I,GAExC,MAAO,CACLkH,KAAM/S,EAAO+S,KACbE,MAAOjT,EAAOiT,MACdE,OAAQnT,EAAOmT,OAEnB,EoClGwDiT,GAYtD,OAVa,IAAIL,EAAe,CAC9BhT,KAAMA,EACNsT,eAAgB,CACdC,MAAO,CACLrT,MAAOiT,EACPK,SAAUJ,KAMlB,EDiHiBK,EACf,CAAE,MAAOvd,GACP,KAAIA,aAAeyL,IAOjB,YADAjV,EAAIgS,KAAK,gEAAiE,CAAE7R,MAAOqJ,IALnF6c,EAAkB7c,EAClBxJ,EAAIgS,KAAK,gGAAiG,CACxG7R,MAAOqJ,GAMb,CAEA,MAAMwd,EAAgB,CACpBlP,GACA+L,GACA7M,GACAqM,GACAY,GACAC,GACAG,GACAI,GACAM,GACAG,GACAG,GACAG,GACAM,IAGF,IAAK,MAAMmB,KAAQD,EAAe,CAChC,MAAMzmB,EAAS2lB,GAAYe,EAAKpmB,MAChC,GAAKN,EAEL,UACQ2M,EAAO6E,aACXkV,EAAKpmB,KACL,CACEgC,MAAOtC,EAAOsC,MACdL,YAAajC,EAAOiC,YACpB8O,YAAatM,GAAaiiB,EAAK3V,aAC/BF,YAAa7Q,EAAO6Q,aAEtB7D,MAAOC,IACL,IAAK4Y,EACH,MACEC,GACIthB,MAAM,oEAGd,OAAOkiB,EAAKhQ,QAAQmP,EAAY5Y,KAGpCxN,EAAIknB,KAAK,wBAAwBD,EAAKpmB,KACxC,CAAE,MAAO2I,GACPxJ,EAAIG,MAAM,gCAAgC8mB,EAAKpmB,KAAQ,CAAEV,MAAOqJ,GAClE,CACF,CACF,CE9MO+D,eAAe4Z,GAAcja,QCL7BK,OAAsCL,IAC3CA,EAAO6E,aACL,oBACA,CACElP,MAAO,wBACPL,YACE,gFACF8O,YAAa,CAAA,EACbE,kBAActN,EACdkN,YAAa,CACXK,cAAc,EACdC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,IAGnBrE,UACE,MAAM6Z,EAAcpW,GAAQ3B,IAAK7C,GAAMA,EAAE7J,WAAW0kB,OACpD,MAAO,CACLvX,QAAS,CACP,CACExL,KAAM,OACN2G,KAAM,CACJ,SAASmJ,GAAYvT,KACrB,UAAUuT,GAAYvR,MACtB,YAAYuR,GAAY5B,QACxB,aAAY4U,EAAY3hB,KAAK,OAAS,WACtCA,KAAK,UAMnB,ED3BQ6hB,CAAuBpa,GAC7B,MAAMlN,EAAM0B,EAAQC,IAAIwlB,IACxB,UACQhB,GAAkBjZ,EAC1B,CAAE,MAAO1D,GACPxJ,EAAIG,MAAM,gCAAiCqJ,EAC7C,CACF,CEEM,MAAO+d,WAAwBhmB,EAUnC,KAAAqK,CAAMrJ,GAEJ,OADAjC,KAAKuL,GAAKtJ,EACHjC,IACT,CAEA,SAAA0U,CAAUzS,GAER,OADAjC,KAAKC,OAASgC,EACPjC,IACT,CAEA,gBAAAknB,CAAiBjlB,GAEf,OADAjC,KAAKmnB,cAAgBllB,EACdjC,IACT,CAEA,WAAAS,CAAoBa,GAClBC,MAAMD,EACR,CAEA,kBAAWoK,GACT,OAAO,IAAIub,EACb,CAEA,KAAAta,CAAMC,GACJ,MAAMC,EAAO7M,KAAK8M,YAClB,GAAID,EAAM,MAAUpI,MAAMoI,EAAK9K,YAC/B,IAIE,MAAMqlB,EAC0B,iBAAvBpnB,KAAKmnB,eACZnnB,KAAKmnB,cAAcvY,SAAS,KACxB,IAAIyY,EAAiB,IAAIC,EAAYtnB,KAAKmnB,eAAgB,CACxD1X,UAAM7L,IAER5D,KAAKmnB,cAGLzU,EAAWvO,OAAOgJ,OAAOnN,KAAKC,OAAQ,CAAEmN,MAAO,CAAA,IAG/Cma,EAASta,MACbua,EACA/lB,KAEA,MAAM/B,EAAMM,KAAKwB,OAAOC,GACxB/B,EAAI4M,QAAQ,uBAAuBtM,KAAKO,aAAainB,EAAIzlB,cACzD,MAAMuL,QAAmCC,QAAQC,QAC/CxN,KAAKuL,GAAGic,EAAK/lB,IAIf,OAFA/B,EAAI4M,QAAQ,YAAYtM,KAAKO,gCAC7Bb,EAAI8M,MAAM,4BAA4B3B,KAAK0B,UAAUe,EAAOF,QACrDE,GAGT,OACSV,EAAO6a,SACZznB,KAAKO,KACL6mB,EACA1U,EACA6U,EAUN,CAAE,MAAOxc,GAKP,MAJA3J,EAAQC,IAAIrB,MAAaH,MACvB,8BAA8BG,KAAKO,KACnCwK,GAEIA,CACR,CACF,EApFUvI,EAAA,CADTC,6BACgCwkB,GAAAvkB,UAAA,wBAEjCF,EAAA,CADCC,+BACyBwkB,GAAAvkB,UAAA,aAEhBF,EAAA,CADTC,6BACiDwkB,GAAAvkB,UAAA,iBClBpD,MAAMglB,GAAahiB,MAAsBR,EAAKC,KAAKwiB,UAAW,KAAM,UAC9DC,GAAgB1iB,EAAKC,KAAKuiB,GAAY,aACtCG,GAAc3iB,EAAKC,KAAKuiB,GAAY,WCQpCI,GAAY,IAAIC,QAUhB,MAAOC,WAAkBphB,EAE7B,UAAcgQ,GACZ,MAAMqR,EAVDH,GAAUnQ,IAUK3X,MACpB,IAAKioB,EAAK,MAAUxjB,MAAM,kCAC1B,OAAOwjB,CACT,CAEA,WAAAxnB,GACEc,OACF,CAEU,UAAM2mB,GACd,MAAMxoB,EAAMM,KAAKN,IAAI2B,IAAIrB,KAAKkoB,MAC9B,IAAK,MAAM/c,KAAUuF,GACnB,IACEhR,EAAIknB,KAAK,kBAAkBzb,EAAO9I,WAClC,MAAM6J,EAAIf,EAAOwB,MAAM3M,KAAK4W,QAC5BlX,EAAI4M,QACF,iBAAiBJ,EAAE3J,cAAc4I,EAAO9I,uBAE5C,CAAE,MAAO0I,GACPrL,EAAIG,MAAM,yBAAyBsL,EAAO9I,UAAa0I,EACzD,CAGF,UACQ8b,GAAc7mB,KAAK4W,QACzBlX,EAAI4M,QAAQ,4BACd,CAAE,MAAOvB,GACPrL,EAAIG,MAAM,2BAA4BkL,EACxC,CAEA,SDjDGkC,OAAmCL,EAAmBlN,KAE3DA,EAAIknB,KAAK,+CACT,MAAMuB,EAAgB/iB,EAAG6B,YAAY2gB,IAAerhB,OAAOoe,GAAQA,EAAKyD,SAAS,QAEjF,IAAK,MAAMzD,KAAQwD,EAAe,CAChC,MAAM5nB,EAAO2E,EAAK2E,SAAS8a,EAAM,OAC3B/S,EAAW1M,EAAKC,KAAKyiB,GAAejD,GAEpC0D,EAAkBpB,GAAgBvb,QACrCtJ,QAAQ7B,GACR+B,SAAS,aAAa/B,GACtByB,eAAe,yBAAyBzB,GACxC2mB,iBAAiB,WAAWtV,GAC5B8C,UAAU,CACT7B,SAAU,gBACV3Q,YAAa,gBAAgB3B,IAE9B+K,MAAM2B,MAAOua,IACZ,MAAMhY,EAAUpK,EAAG6D,aAAaue,EAAIc,SAAU,QAC9C,MAAO,CAAEC,SAAU,CAAC,CAAEf,IAAKA,EAAIzlB,WAAY4I,KAAM6E,EAASqD,SAAU,kBAAoBzF,MAAO,CAAA,KAGnG,IACEib,EAAgB1b,MAAMC,GACtBlN,EAAIknB,KAAK,wBAAwBrmB,EACnC,CAAE,MAAOV,GACPH,EAAIG,MAAM,+BAA+BU,KAASV,EACpD,CACF,CAGAH,EAAIknB,KAAK,gCACT,MAAM4B,EAAcpjB,EAAG6B,YAAY4gB,IAAathB,OAAOoe,GAAQA,EAAKyD,SAAS,QAE7E,IAAK,MAAMzD,KAAQ6D,EAAa,CAC9B,MAAMjoB,EAAO2E,EAAK2E,SAAS8a,EAAM,OAC3B/S,EAAW1M,EAAKC,KAAK0iB,GAAalD,GAElC8D,EAAgBrjB,EAAG6D,aAAa2I,EAAU,QAI1C8W,EAAgBrd,GAAcK,QACjCtJ,QAAQ7B,GACR+B,SAAS,WAAW/B,GACpByB,eAAe,sBAAsBzB,GACrCiL,cAAclH,EAAEE,OAAO,CAAA,IACvB8G,MAAM2B,MAAOC,IAGL,CACLoC,SAAU,CAAC,CAAEC,KAAM,OAAiBC,QAAS,CAAExL,KAAM,OAAiB2G,KAAM8d,KAC5Erb,MAAO,CAAA,KAIb,IACEsb,EAAc/b,MAAMC,GACpBlN,EAAIknB,KAAK,sBAAsBrmB,EACjC,CAAE,MAAOV,GACPH,EAAIG,MAAM,6BAA6BU,KAASV,EAClD,CACF,CACF,ECdY8oB,CAAoB3oB,KAAK4W,OAAQlX,GACvCA,EAAI4M,QAAQ,mCACd,CAAE,MAAOvB,GACPrL,EAAIG,MAAM,kCAAmCkL,EAC/C,CA4FF,CAEA,UAAM6d,CAAKC,EAA8C,SACvD,IAAInpB,EAAMM,KAAKN,IACfM,KAAKN,IAAI2B,IAAIrB,KAAK4oB,MAAMhC,KAAK,0B9D9ELkC,EAAiB1nB,EAAQuW,SACnD,IAAI9H,EACJ,IACEA,QApEF,IACIkZ,EADA/jB,EADa2iB,UAIjB,IACE,KAAO3iB,GAAWA,IAAYE,EAAK4F,MAAM9F,GAASyB,MAAM,CACtD,MAAMuiB,EAAY9jB,EAAKC,KAAKH,EAAS,gBACrC,GAAII,EAAGC,WAAW2jB,IAAc5jB,EAAG6jB,SAASD,GAAWE,cAAe,CACpEH,EAAiBC,EACjB,KACF,CACA,MAAMxjB,EAASN,EAAKO,QAAQT,GAC5B,GAAIQ,IAAWR,EAAS,MACxBA,EAAUQ,CACZ,CACF,CAAE,MAEF,CAEA,MAAM2jB,EAAoB,GAE1B,GAAIJ,EAAgB,CAClB,MAAMK,EAAWlkB,EAAKC,KAAK4jB,EAAgB,aAC3C,IACE,GAAI3jB,EAAGC,WAAW+jB,IAAahkB,EAAG6jB,SAASG,GAAUF,cAAe,CAClE,MAAMG,EAAOjkB,EAAG6B,YAAYmiB,GAC5B,IAAK,MAAME,KAAOD,EAAM,CACtB,MAAME,EAAUrkB,EAAKC,KAAKikB,EAAUE,GACpC,IACE,MAAME,EAActkB,EAAKC,KACvBokB,EACA,WACA,SACA,gBAEF,GACEnkB,EAAGC,WAAWmkB,IACdpkB,EAAG6jB,SAASO,GAAaC,SACzB,CACA,MAAMtU,EAAM/P,EAAG6D,aAAaugB,EAAa,SACnC3S,EAAShM,KAAKC,MAAMqK,GAC1B,GAAIpJ,MAAMC,QAAQ6K,GAChB,IAAK,MAAMxT,KAAKwT,EACG,iBAANxT,GAAkBA,EAAE6Q,OAAOrS,OAAS,GAC7CsnB,EAAQlb,KAAK5K,EAAE6Q,OAIvB,CACF,CAAE,MAEF,CACF,CACF,CACF,CAAE,MAEF,CACF,CAEA,OAAuB,IAAnBiV,EAAQtnB,OACH,qCAGFsnB,EADK/H,KAAKsI,MAAMtI,KAAKuI,SAAWR,EAAQtnB,QAEjD,EAKc+nB,EACZ,CAAE,MACA/Z,EAAU,oCACZ,CACA,MAAMga,EACJ,g7GAODC,MAAM,MACDC,EAAYF,EAAOrgB,OAAO,CAACyX,EAAK+I,IAAS5I,KAAKH,IAAIA,EAAK+I,EAAKnoB,QAAS,GAC3EgoB,EAAO5b,KAAK,MAAM4B,EAAQoa,SAASF,EAAY,IAC/CF,EAAOhb,QAAQ,CAACmb,EAAM3Q,KACpB,MAAMoC,EAAQ9a,EAAO0Y,EAAQ1Y,EAAOkB,SAAW,GACzCqoB,EAAQpB,EAAOlC,KAAKuD,KAAKrB,GAC/B,IAEEoB,EADYE,EAAMJ,GAAQ,IAAI7U,IAAIsG,GAAO9Q,KAE3C,CAAE,MAEAuf,GAAaF,GAAQ,IAAfta,GACR,GAEJ,E8DkDI2a,CAAYrqB,KAAKN,KAGK,UAAlBmpB,IACFznB,EAAQkpB,WAAWnqB,GAEnBT,EAAM0B,EAAQC,IAAIrB,KAAKS,YAAYF,OAGrC,MAAMgqB,IC1KSxe,MAAMC,QAAQ8H,GAAYnB,OACvCmB,GAAYnB,MACZ,CAACmB,GAAYnB,SACoB,IAAI5D,IAAK8J,IAC5C,MAAMjG,EAAwB,iBAAXiG,GAAGjG,IAAmBiG,EAAEjG,KAAaiG,GAAGjG,KAAO,IAAjBlD,GAC3CmD,EACmB,iBAAhBgG,GAAGhG,SAAwBgG,EAAEhG,UAAkBgG,GAAGhG,UAAY,IAAtBnD,GACjD,IAAIoD,EAAkB,GAMtB,OALI/G,MAAMC,QAAQ6M,GAAG/F,OAAQA,EAAQ+F,EAAE/F,MAAM/D,IAAK1L,GAAkBA,EAAPqM,IAChC,iBAAbmJ,GAAG/F,QACjBA,GAAe+F,EAAE/F,MAATpD,IACLoa,MAAM,KACN/a,IAAK1L,GAAMA,EAAE6Q,SACX,CAAEtB,MAAKC,WAAUC,WD+JlB0X,EAA6B,CACjCjqB,KAAMuT,GAAYvT,KAClBgC,MAAOuR,GAAYvR,MACnB4P,WAAY2B,GAAY3B,WACxBD,QAAS4B,GAAY5B,QACrBS,MAAO4X,GAgBH3T,EAAS,IAAI6T,EAAID,EAbQ,CAC7BE,a7DnKsB,mU6DoKtBC,aAAc,CACZC,QAAS,CAAA,EACTC,MAAO,CAEN,EACDC,QAAS,CAER,KAWL,OAlLJ,EAAkBle,EAAmBgK,KACnCkR,GAAUlF,IAAIhW,EAAQgK,EACxB,EA0KImU,CAAS/qB,KAAM4W,GAEdA,EAAeoU,QAAW9hB,IACzBlJ,KAAKN,IAAIG,MAAM,uBAAwBqJ,IAGjC2f,GACN,IAAK,QACHA,EAAgB,IAAIoC,EACpB,MACF,IAAK,OACHpC,EAAgB,IAAIqC,EAA8B,CAChDC,mBAAoB,IAAMC,IAC1BC,qBAAuB3pB,GACrBhC,EAAI4M,QAAQ,wBAAwB5K,GACtC4pB,gBAAkB5pB,GAChBhC,EAAI4M,QAAQ,mBAAmB5K,GACjC6pB,oBAAoB,EACpBC,gBAAY5nB,IAEd,MACF,QACE,KE3NwBtC,EF2NHunB,IExNV,iBAARvnB,GACc,mBAAbA,EAAImqB,MACW,mBAAdnqB,EAAIoqB,OACO,mBAAXpqB,EAAIqqB,GFsNP,MAAM,IAAIphB,EACR,2BAAkCse,GE7NxC,IAA0BvnB,EFkO5B,IACEtB,KAAKN,IAAIknB,KAAK,4CACR5mB,KAAKkoB,MACb,CAAE,MAAOhf,GAEP,MADAlJ,KAAKN,IAAIG,MAAM,0CAA0CqJ,GACnDA,CACR,OAEMlJ,KAAK4W,OAAOgV,QAAQ/C,GAC1BnpB,EAAIknB,KAAK,4BAA4BiC,EAAcpoB,YAAYF,sDACjE,EGpOF,MAAMsrB,IAAY,IAAIC,GACnBC,QAAQ,SACRC,OAAO,uBAAwB,iBAAkB,SACjD9pB,YAAY,6BACZ+pB,OAAOhf,MAAOuU,IACb,MAAM8H,EAAMze,KAAKC,MACf1F,EAAG6D,aAAa/D,EAAKC,KAAKS,QAAQS,MAAO,gBAAiB,UAGtD6L,EAAUoX,EAAIpX,SAEd4E,UAAEA,GAAc0K,EAChB9hB,GAAM,IAAIF,GAAmB6B,IAAI,cAEvC,GACO,UADCyV,EAKJ,MAAUrS,MAAM,+BAA+BqS,GAQnD,OAXIpX,EAAIknB,KAAK,mBAMblnB,EAAI8M,MACF,yBAAyB3B,KAAK0B,UAAUiV,UAAgB8H,EAAI/oB,gBAAgB2R,MAG/D,IAAI8V,IACLY,KAAK9R,MAGP,IAAIgV,GACjBC,QAAQ,aACR7pB,YACC,kFAED+pB,OAAOhf,MAAOuU,IACb,MAAM8H,EAAMze,KAAKC,MACf1F,EAAG6D,aAAa/D,EAAKC,KAAKS,QAAQS,MAAO,gBAAiB,UAGtD6L,EAAUoX,EAAIpX,QACR9Q,EAAQC,IAAI,aACpBmL,MACF,yBAAyB3B,KAAK0B,UAAUiV,UAAgB8H,EAAI/oB,gBAAgB2R,KAS9E,MACMga,EAAM3K,QAPZtU,WACE,MAAMkf,EAAmB,GACzB,UAAW,MAAMnW,KAASpQ,QAAQwmB,MAAOD,EAAOle,KAAKrJ,OAAOC,KAAKmR,IACjE,OAAOpR,OAAO+D,OAAOwjB,GAAQpqB,SAAS,OACxC,EAEiBsqB,GACa,CAC5BzS,eAAiBF,IAAM,CAAQlB,GAAIkB,EAAQ/O,KAAM,IAAI+O,IACrDtB,kBAAoBF,KAAaM,GAAIN,EAAOO,WAAY,kBAG1D7S,QAAQ0mB,OAAOC,MAAM1hB,KAAK0B,UAAU2f,EAAK,KAAM,GAAK,QAGxD,MAAMM,IAAU,IAAIV,GACjBvrB,KAAK,cACLwrB,QAAQ,cACR7pB,YAAY,8CAEfsqB,GAAQC,WAAWZ,IAGVW,GC3EG1hB,MAAMlF,QAAQM"}