@decaf-ts/mcp-server 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +5 -3
  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 -2
  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 +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.cjs","sources":["../src/utils/stdio-error-logger.ts","../src/constants.ts","../src/utils/constants.ts","../src/builders/builder.ts","../src/jira/schema-utils.ts","../src/utils/obfuscation.ts","../src/utils/project-root.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","constructor","context","conf","baseContext","super","log","level","msg","error","meta","confLvl","this","config","NumericLogLevels","stdioErrorLoggerFactory","_args","loggerName","name","ctor","resolveContextName","ReasoningLevel","EffortLevel","Cost","Paths","AssetCategory","Builder","Model","_log","Logging","for","arg","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","findPackageRoot","start","current","path","resolve","fs","existsSync","join","parent","dirname","entryPointRoot","process","argv","moduleDir","stack","lines","split","slice","line","match","filePath","startsWith","fileURLToPath","includes","getModuleDirFromStack","moduleRoot","projectRoot","cwd","resolveProjectPath","segments","findAssetsDir","startDir","libAssets","srcAssets","plainAssets","resolveAssetsDir","explicit","env","DECAF_ASSET_DIR","MCP_ASSET_DIR","ASSET_DIR","moduleAssets","__dirname","entry","fromEntry","roots","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","inject","ZodObject","prop","NamedPromptBuilder","setCategory","promptCategory","addPrefix","prefixes","push","addSuffix","suffixes","promptDef","assets","fromObject","toIgnoreProps","Set","Metadata","properties","k","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","summary","readPkg","dir","candidate","VERSION","version","PACKAGE_NAME","registerLibrary","DefaultMcpEnvironment","mcpId","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","token","ref","resolveAttachment","node","attrs","layout","id","collection","parseTextRuns","enableAtMentions","enableEmojiShortcodes","i","out","mentionRe","emojiRe","next","minMatch","findNext","index","kind","full","groups","prefix","handle","resolved","resolveMention","shortName","resolveEmoji","nodes","n","last","marks","coalesceText","re","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","textify","convertBlock","isContainerDirective","panelType","innerBlocks","convertPanelDirective","clampInt","depth","media","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","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","pkgPath","pkg","adf","chunks","stdin","readStdin","stdout","write","mainCmd","addCommand"],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.cjs","sources":["../src/utils/stdio-error-logger.ts","../src/constants.ts","../src/utils/constants.ts","../src/builders/builder.ts","../src/jira/schema-utils.ts","../src/utils/obfuscation.ts","../src/utils/project-root.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","constructor","context","conf","baseContext","super","log","level","msg","error","meta","confLvl","this","config","NumericLogLevels","stdioErrorLoggerFactory","_args","loggerName","name","ctor","resolveContextName","ReasoningLevel","EffortLevel","Cost","Paths","AssetCategory","Builder","Model","_log","Logging","for","arg","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","findPackageRoot","start","current","path","resolve","fs","existsSync","join","parent","dirname","entryPointRoot","process","argv","moduleDir","stack","lines","split","slice","line","match","filePath","startsWith","fileURLToPath","includes","getModuleDirFromStack","moduleRoot","projectRoot","cwd","resolveProjectPath","segments","findAssetsDir","startDir","libAssets","srcAssets","plainAssets","resolveAssetsDir","explicit","env","DECAF_ASSET_DIR","MCP_ASSET_DIR","ASSET_DIR","moduleAssets","__dirname","entry","fromEntry","roots","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","inject","ZodObject","prop","NamedPromptBuilder","setCategory","promptCategory","addPrefix","prefixes","push","addSuffix","suffixes","promptDef","assets","fromObject","toIgnoreProps","Set","Metadata","properties","k","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","summary","readPkg","dir","candidate","VERSION","version","PACKAGE_NAME","registerLibrary","DefaultMcpEnvironment","mcpId","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","token","ref","resolveAttachment","node","attrs","layout","id","collection","parseTextRuns","enableAtMentions","enableEmojiShortcodes","i","out","mentionRe","emojiRe","next","minMatch","findNext","index","kind","full","groups","prefix","handle","resolved","resolveMention","shortName","resolveEmoji","nodes","n","last","marks","coalesceText","re","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","textify","convertBlock","isContainerDirective","panelType","innerBlocks","convertPanelDirective","clampInt","depth","media","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","rawHost","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","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","pkgPath","pkg","adf","chunks","stdin","readStdin","stdout","write","mainCmd","addCommand"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Command as t}from"commander";import*as e from"fs";import r,{promises as s}from"fs";import{MiniLogger as n,NumericLogLevels as i,Logging as o,LoggedClass as a,toSnakeCase as c,sf as p,toPascalCase as l,LogLevel as u,LoggedEnvironment as d}from"@decaf-ts/logging";import{__decorate as m,__metadata as h}from"tslib";import{required as f,Model as y,list as g,minlength as b}from"@decaf-ts/decorator-validation";import{z as v,ZodObject as w}from"zod";import{injectable as S,inject as j}from"@decaf-ts/injectable-decorators";import{prop as x,Metadata as I}from"@decaf-ts/decoration";import*as k from"path";import A from"path";import{InternalError as E,SerializationError as T,ValidationError as N}from"@decaf-ts/db-decorators";import O from"crypto";import C from"zlib";import{fileURLToPath as H}from"url";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 n{constructor(t,e,r){super(t,e,r)}log(t,e,r,s){const n=this.config("level");i[n],i[t]}}const U=(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)};var L,K,z,Y,G;(t=>{t[t.NONE=0]="NONE",t[t.BASIC=1]="BASIC",t[t.ADVANCED=2]="ADVANCED",t[t.HIGH=3]="HIGH"})(L||(L={})),(t=>{t[t.NONE=0]="NONE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(K||(K={})),(t=>{t[t.FREE=0]="FREE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(z||(z={}));class Z extends y{get log(){return this._log||(this._log=o.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}}m([f(),h("design:type",String)],Z.prototype,"description",void 0),m([f(),h("design:type",String)],Z.prototype,"name",void 0),m([f(),h("design:type",String)],Z.prototype,"title",void 0);class V extends Z{constructor(t){super(t),this.reasoning=L.NONE,this.effort=K.NONE,this.cost=z.FREE}setReasoning(t){return this.reasoning=t,this}setEffort(t){return this.effort=t,this}setCost(t){return this.cost=t,this}}function Q(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 X(t,e="schema"){if(Q(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]=et(s)?s:v.any();return v.object(t)}}throw Error(`Registration error: provided a non-canonical ${e}. Export a ZodObject (z.object(...)).`)}function tt(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=Q(t);return e?"function"==typeof e.shape?e.shape():e.shape||void 0:void 0}function et(t){return!(!t||"object"!=typeof t||!t._def)}m([f(),h("design:type",Number)],V.prototype,"reasoning",void 0),m([f(),h("design:type",Number)],V.prototype,"effort",void 0),m([f(),h("design:type",Number)],V.prototype,"cost",void 0),(t=>{t.ASSETS="assets"})(Y||(Y={})),(t=>{t.PROMPT="prompts",t.DOCUMENTATION="documentation",t.CODE="code"})(G||(G={}));const rt=Buffer.from("DCAF1","ascii");function st(t){let e=A.resolve(t);for(;;){if(r.existsSync(A.join(e,"package.json")))return e;const t=A.dirname(e);if(t===e)break;e=t}}const nt=process.argv?.[1]?st(A.dirname(A.resolve(process.argv[1]))):void 0,it=(()=>{const t=Error().stack;if(!t)return;const e=t.split(/\r?\n/).slice(1);for(const t of e){const e=t.match(/\(?([^()]+?):\d+:\d+\)?/);if(!e)continue;let r=e[1];if(r.startsWith("file://"))try{r=H(r)}catch{continue}if(!r.includes("node:internal"))return A.dirname(r)}})(),ot=it?st(it):void 0,at=nt??ot??process.cwd();function ct(...t){return A.join(at,...t)}function pt(t){let r=t;for(;;){const t=k.join(r,"lib","assets");if(e.existsSync(t))return t;const s=k.join(r,"src","assets");if(e.existsSync(s))return s;const n=k.join(r,"assets");if(e.existsSync(n))return n;const i=k.dirname(r);if(i===r)break;r=i}}function lt(){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=pt(__dirname);if(r)return r;const s=process.argv?.[1];if(s){const t=pt(k.dirname(s));if(t)return t}const n=[at,process.env.INIT_CWD].filter(Boolean);for(const t of n){const e=pt(t);if(e)return e}return ct("assets")}let ut=class extends a{constructor(t){super(),this.basePath=t||lt()}listAssets(...t){const r=k.join(this.basePath,...t);return e.readdirSync(r)}listPrompts(){return this.listAssets(G.PROMPT)}getAsset(t,r="md",...s){const n=k.join(this.basePath,...s),i=(t,r=!1)=>{try{return r?(t=>{if(t.length<rt.length+16+12+16)throw Error("Invalid prompt payload (too short)");if(!t.subarray(0,rt.length).equals(rt))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=rt.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)=>O.scryptSync(t,e,32))(e,s),c=O.createDecipheriv("aes-256-gcm",a,n);c.setAuthTag(i);const p=Buffer.concat([c.update(o),c.final()]);return C.gunzipSync(p)})(e.readFileSync(t)).toString("utf-8"):e.readFileSync(t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}},o=i(k.join(n,`${t}.${r}`),"enc"===r);if(null!==o)return o;const a=i(k.join(n,t+".enc"),!0);if(null!==a)return a;throw Error("Asset not found: "+k.join(n,`${t}.${r}`))}getAllAssets(t,...e){return this.listAssets(t,...e).reduce((r,s)=>{const n=k.extname(s),i=k.basename(s,n),o=n.replace(/^\./,"")||void 0;return r[i]=this.getAsset(i,o??void 0,t,...e),r},{})}toPromptDef(t){const e=t=>"number"==typeof t?t:"string"==typeof t?(t=>{switch(t){case"none":return L.NONE;case"basic":return L.BASIC;case"advanced":return L.ADVANCED;case"high":return L.HIGH;case"medium":return K.MEDIUM;case"low":return z.LOW;case"free":return z.FREE;default:throw new E("Cannon convert unknown level "+t)}})(t.toLowerCase()):L.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(c(t),"json",G.PROMPT,...e);let s;try{s=JSON.parse(r)}catch(r){throw new T(`Failed to parse prompt ${t} in categories ${e}: ${r}`)}return this.toPromptDef(s)}getAllPrompts(...t){const e=this.getAllAssets(G.PROMPT,...t);return Object.entries(e).reduce((e,[r,s])=>{try{e[r]=JSON.parse(s)}catch(e){throw new T(`Failed to parse prompt ${r} in categories ${t}: ${e}`)}return e},e)}};ut=m([S(),h("design:paramtypes",[String])],ut);class dt extends V{constructor(t){super(t)}setCb(t){return this.cb=t,this}setArgsSchema(t){return this.argsSchema=t,this}static get builder(){return new dt}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 N("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 p(t,i)}patchPrompt(t,e,r,s){return dt.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 N(s.toString());try{this.argsSchema&&X(this.argsSchema,"argsSchema");const r=tt(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}}}m([j(ut),h("design:type",ut)],dt.prototype,"assets",void 0),m([f(),h("design:type",Object)],dt.prototype,"cb",void 0),m([f(),h("design:type",w)],dt.prototype,"argsSchema",void 0),m([x(),h("design:type",Object)],dt.prototype,"placeholders",void 0);class mt extends dt{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);y.fromObject(this,e);const r=new Set((I.properties(mt)||[]).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 N(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]=v.string().describe("The description for "+e),t),{});return this.setArgsSchema(v.object(o)),this.setCb((t,e)=>{const r=this.logFor(e).for(mt).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 E("Named prompt builders don't require callback")}setEffort(t){throw new E("Named prompt builders don't require callback")}setCost(t){throw new E("Named prompt builders don't require callback")}setDescription(t){throw new E("Named prompt builders don't require callback")}setTitle(t){throw new E("Named prompt builders don't require callback")}static get builder(){return new mt}}m([f(),h("design:type",String)],mt.prototype,"promptCategory",void 0),m([g(String),b(1),h("design:type",Array)],mt.prototype,"prefixes",void 0),m([b(1),g(String),h("design:type",Array)],mt.prototype,"suffixes",void 0);const ht=dt.builder.setName("example-prompt").setTitle("Example prompt").setDescription("Example prompt for testing").setArgsSchema(v.object({message:v.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}}}),ft=dt.builder.setName("interactive-jsdoc").setTitle("Interactive JSDoc prompt").setDescription("Interactive prompt for jogging JSDoc helpers").setArgsSchema(v.object({gist:v.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}}}),yt=Object.assign(ft,{name:ft.getName()});var gt;function bt(t,e=[],r=[]){const s=mt.builder.setCategory(gt.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"})(gt||(gt={}));const vt=[bt("class"),bt("constant"),bt("decorator"),bt("function"),bt("module"),bt("file"),bt("repo",[],["iterate"])],wt=v.object({className:v.string().describe("the class name to turn into a builder")}),St=[ht,yt,...vt,dt.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(wt).setReasoning(L.BASIC).setCb((t,e)=>(t.className=l(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 jt extends V{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 jt}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{this.inputSchema&&X(this.inputSchema,"inputSchema"),this.outputSchema&&X(this.outputSchema,"outputSchema");const e=tt(this.inputSchema),r=tt(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 o.for(this).warn(`Tool ${this.name} already registered - skipping duplicate registration`),{name:this.name};throw o.for(this).error("Error building tool",t),t}}}m([f(),h("design:type",Object)],jt.prototype,"annotations",void 0),m([f(),h("design:type",Object)],jt.prototype,"cb",void 0),m([f(),h("design:type",Function)],jt.prototype,"inputSchema",void 0);const xt=jt.builder.setName("example-tool").setTitle("Example tool").setDescription("A smoke tool used for quick testing").setInputSchema(v.object({})).setCb(async()=>({content:[{type:"text",text:"example tool ok"}],result:{status:"ok"}}));Object.assign(xt,{name:xt.getName()});const It=jt.builder.setName("file-summarizer").setTitle("File summarizer").setDescription("Summaries files for quick previews").setInputSchema(v.object({filePath:v.string().optional()})).setCb(async()=>({content:[{type:"text",text:"file summary stub"}],result:{summary:"file summary stub"}}));function kt(){try{let t=process.argv[1]?A.dirname(A.resolve(process.argv[1])):process.cwd();for(;;){const e=A.join(t,"package.json");if(r.existsSync(e))return JSON.parse(r.readFileSync(e,"utf-8"));const s=A.dirname(t);if(s===t)break;t=s}}catch{}return{}}Object.assign(It,{name:It.getName()});const At=kt().version??"0.0.0",Et=kt().name??"unknown";I.registerLibrary(Et,At);const Tt={mcpId:"decaf",name:"decaf-ts mcp server",title:"Decaf-TS MCP Server",description:"Provides precise coding assistance for the decaf-ts framework",version:At,websiteUrl:"https://decaf-ts.github.io",repositoryUrl:"https://github.com/decaf-ts/mcp-server",license:"AGPL-3.0",workingDir:at,assetDir:lt(),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:u.error},Nt=d.accumulate(Tt);function Ot(){const{host:t,email:e,apiKey:r,projectKey:s,issueType:n}=Nt.jira;return{host:t?.trim(),email:e?.trim(),apiKey:r?.trim(),projectKey:s?.trim(),issueType:n?.trim(),parentIssue:Nt.jira.parentIssue?.trim()}}function Ct(){const t=Ot();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 Ht(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}.`}o.setConfig(Nt);class Jt extends Error{constructor(t){const e=Ct(),r=(t=>{const e=Ct();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(Ht).join("\n")}`})(t);super(r),this.name="MissingJiraEnvironmentError",this.descriptors=e,this.missing=t,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,Jt)}}function _t(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 Dt=v.object({issueId:v.string().min(1),deleteSubtasks:v.boolean().optional().default(!0)}),Pt={name:"jira-issue-delete",inputSchema:Dt,runTool:async(t,e)=>{try{const r=Dt.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 _t(t)}}},Rt=v.object({issueId:v.string().min(1),expand:v.string().optional(),fields:v.array(v.string()).optional(),properties:v.array(v.string()).optional()}),$t={name:"jira-issue-read",inputSchema:Rt,runTool:async(t,e)=>{try{const r=Rt.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 _t(t)}}};function Mt(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 Ft(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=Bt(e.enableAtMentions?qt(n,t,r):null,e.enableEmojiShortcodes?qt(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 qt(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 Bt(t,e){return t?e&&t.index>e.index?e:t:e}function Wt(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 Ut(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 Lt(t){const e=((t??"")+"").toLowerCase().trim();return!e||"neutral"!==e&&"green"!==e&&"yellow"!==e&&"red"!==e&&"blue"!==e&&"purple"!==e?null:e}function Kt(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=Yt(s.children??[],t),i=Mt(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&&Gt(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=Wt(s)||"Status",e=Lt(s.attributes?.color)??"neutral";r.push({type:"status",attrs:{text:t,color:e}});continue}if("textDirective"===s.type&&"emoji"===s.name){const t=Zt(s);r.push(Vt(t,e));continue}}else r.push({type:"hardBreak"});else r.push({type:"text",text:(s.value??"")+"",marks:[{type:"code"}]});else r.push(...zt(Kt(s.children??[],e),{type:"strike"}));else r.push(...zt(Kt(s.children??[],e),{type:"em"}));else r.push(...zt(Kt(s.children??[],e),{type:"strong"}));else r.push(...Ft((s.value??"")+"",e));return r.filter(t=>!("text"===t.type&&""===(t.text??"")))}function zt(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 Yt(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(Yt(e.children??[],""));return r.join("")||e}function Gt(t,e){const r=(t??"").trim(),s=(e??"").trim();return r===s&&/^https?:\/\//i.test(s)}function Zt(t){return(t.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("").trim()||""}function Vt(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 Qt(t){return t?"string"==typeof t?t:"text"===t.type||"inlineCode"===t.type?(t.value??"")+"":Array.isArray(t.children)?t.children.map(Qt).join(""):"":""}function Xt(t,e){if(!t?.type)return null;if((t=>"containerDirective"===t?.type&&"panel"===t?.name)(t))return((t,e)=>{const r=t.attributes??{},s=Ut(r.type)??"info",n="string"==typeof r.title?r.title:void 0,i=(t.children??[]).map(t=>Xt(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:ee(t.depth??1,1,6)},content:Kt(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:Kt(t.children??[],e)};case"blockquote":return{type:"blockquote",content:(t.children??[]).map(t=>Xt(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=>Xt(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=>Xt(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:Kt(t.children??[],e)}]}))}))}))(t,e);case"leafDirective":return"status"===t.name?(t=>{const e=Lt((t.attributes??{}).color)??"neutral";return{type:"paragraph",content:[{type:"status",attrs:{text:Wt(t)||"Status",color:e}}]}})(t):"panel"===t.name?((t,e)=>{const r=t.attributes??{},s=Ut(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:Kt([{type:"text",value:Wt(t)}],e)}]}})(t,e):te(t,e);default:return te(t,e)}}function te(t,e){if("drop"===e.unknownNodeStrategy)return null;const r=Qt(t);return r?{type:"paragraph",content:[{type:"text",text:r}]}:null}function ee(t,e,r){const s=Number.isFinite(t)?Math.trunc(t):e;return Math.max(e,Math.min(r,s))}const re={resolveMention:void 0,resolveAttachment:void 0,resolveEmoji:void 0,enableSmartCards:!0,enableMermaid:!0,enableEmojiShortcodes:!0,enableAtMentions:!0,enableTaskLists:!0,unknownNodeStrategy:"text"};function se(t,e={}){const r={...re,...e},s=t??"",n=J().use(P).use(D).use(_),i=n.parse(s),o=n.runSync(i);return ne(o),((t,e)=>{const r=[];for(const s of t.children??[]){const t=Xt(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 ne(t){if(!t||!Array.isArray(t.children))return;const e=[];for(const r of t.children)"definition"!==r?.type&&("html"!==r?.type?(ne(r),e.push(r)):e.push({type:"text",value:(r.value??"")+""}));t.children=e}const ie=v.object({issueId:v.string().min(1),transitionId:v.union([v.string(),v.number()]),fields:v.record(v.any()).optional(),update:v.record(v.array(v.object({set:v.any().optional(),add:v.any().optional(),remove:v.any().optional()}))).optional(),comment:v.string().optional()}),oe={name:"jira-issue-transition",inputSchema:ie,runTool:async(t,e)=>{try{const r=ie.parse(e),s={id:r.transitionId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.comment&&(s.comment={body:se(r.comment)});const n=await t.issues.transition({issueId:r.issueId,transition:s});return n?.data??n}catch(t){throw _t(t)}}},ae=v.object({issueId:v.string().min(1),fields:v.record(v.any()).optional(),update:v.record(v.array(v.object({set:v.any().optional(),add:v.any().optional(),remove:v.any().optional(),edit:v.any().optional()}))).optional(),properties:v.array(v.any()).optional(),notifyUsers:v.boolean().optional().default(!0),issueTemplateId:v.string().optional(),overrideScreenSecurity:v.boolean().optional().default(!1),overrideEditableFlag:v.boolean().optional().default(!1)}),ce={name:"jira-issue-update",inputSchema:ae,runTool:async(t,e)=>{try{const r=ae.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 _t(t)}}},pe=v.object({issueId:v.string().min(1),assignee:v.union([v.string(),v.object({accountId:v.string().min(1)}),v.object({accountType:v.string().min(1)})])}),le={name:"jira-assign-issue",inputSchema:pe,runTool:async(t,e)=>{try{const r=pe.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 _t(t)}}},ue=v.object({issueId:v.string().min(1)}),de={name:"jira-unassign-issue",inputSchema:ue,runTool:async(t,e)=>{try{const r=ue.parse(e),s=await t.issues.assign({issueId:r.issueId,assignee:{accountId:"-1"}});return s?.data??s}catch(t){throw _t(t)}}},me=v.object({issueId:v.string().min(1),body:v.string().min(1),visibility:v.object({type:v.enum(["role","group"]),value:v.string().min(1)}).optional()}),he={name:"jira-comment-add",inputSchema:me,runTool:async(t,e)=>{try{const r=me.parse(e),s={body:se(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 _t(t)}}},fe=v.object({issueId:v.string().min(1),start:v.number().optional().default(0),maxResults:v.number().optional().default(50),orderBy:v.string().optional(),expand:v.string().optional()}),ye={name:"jira-comment-list",inputSchema:fe,runTool:async(t,e)=>{try{const r=fe.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 _t(t)}}},ge=v.object({link:v.object({relationship:v.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:v.object({id:v.string().optional(),key:v.string().optional()}),outwardIssue:v.object({id:v.string().optional(),key:v.string().optional()}),comment:v.object({body:v.string().optional(),visibility:v.object({type:v.enum(["role","group"]),value:v.string().min(1)}).optional()}).optional()})}),be={name:"jira-link-create",inputSchema:ge,runTool:async(t,e)=>{try{const r=ge.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=se(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 _t(t)}}},ve=v.object({issueId:v.string().min(1),file:v.string().min(1),mimeType:v.string().optional(),comment:v.string().optional()}),we={name:"jira-attach",inputSchema:ve,runTool:async(t,e)=>{try{const r=ve.parse(e),n=A.resolve(r.file),i=await s.readFile(n),o=A.basename(n),a=await t.issues.addAttachment({issueId:r.issueId,file:{name:o,content:i,mimeType:r.mimeType??"application/octet-stream"},comment:r.comment});return a?.data??a}catch(t){if(t&&t.code&&"string"==typeof t.code&&["ENOENT","EACCES"].includes(t.code))throw Error("Attachment file error: "+t.message);throw _t(t)}}},Se=v.object({issueId:v.string().min(1)}),je={name:"jira-attachment-list",inputSchema:Se,runTool:async(t,e)=>{try{const r=Se.parse(e),s=await t.issues.getAttachments({issueId:r.issueId});return s?.data??s}catch(t){throw _t(t)}}},xe=v.object({issueId:v.string().min(1),attachmentId:v.string().min(1)}),Ie={name:"jira-attachment-delete",inputSchema:xe,runTool:async(t,e)=>{try{const r=xe.parse(e);return await t.issues.deleteAttachment({issueId:r.issueId,attachmentId:r.attachmentId}),{success:!0,message:`Attachment ${e.attachmentId} deleted successfully`}}catch(t){throw _t(t)}}},ke=v.object({issueId:v.string().min(1),timeSpent:v.string().min(1),comment:v.string().optional(),author:v.object({accountId:v.string().min(1)}).optional(),startingOn:v.string().optional(),artifact:v.string().optional()}),Ae={name:"jira-worklog-add",inputSchema:ke,runTool:async(t,e)=>{try{const r=ke.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 _t(t)}}},Ee={[$t.name]:{title:"Jira Issue Read",description:"Read a Jira issue with expandable fields and properties",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ce.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}},[Pt.name]:{title:"Jira Issue Delete",description:"Delete a Jira issue and optionally remove its subtasks",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[oe.name]:{title:"Jira Issue Transition",description:"Transition a Jira issue while optionally adding a comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[le.name]:{title:"Jira Issue Assign",description:"Assign a Jira issue to a user or account",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[de.name]:{title:"Jira Issue Unassign",description:"Unassign the current owner from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[he.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}},[ye.name]:{title:"Jira Comment List",description:"List comments on a Jira issue with pagination support",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[be.name]:{title:"Jira Link Create",description:"Create an issue link relationship with optional comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[we.name]:{title:"Jira Attachment Add",description:"Attach a local file to a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[je.name]:{title:"Jira Attachment List",description:"List attachments on a Jira issue",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[Ie.name]:{title:"Jira Attachment Delete",description:"Delete an attachment from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[Ae.name]:{title:"Jira Worklog Add",description:"Log time spent on a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}}};async function Te(t){const e=o.for(Te);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=Ot(),e=Ct().filter(t=>t.required&&!t.value);if(e.length>0)throw new Jt(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 Jt))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=[$t,ce,Pt,oe,le,de,he,ye,be,we,je,Ie,Ae];for(const i of n){const n=Ee[i.name];if(n)try{await t.registerTool(i.name,{title:n.title,description:n.description,inputSchema:tt(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 Ne(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=St.map(t=>t.getName()).sort();return{content:[{type:"text",text:["Name: "+Nt.name,"Title: "+Nt.title,"Version: "+Nt.version,"Prompts: "+(t.join(", ")||"<none>")].join("\n")}]}})})(t);const e=o.for(Ne);try{await Te(t)}catch(t){e.error("Failed to register Jira tools",t)}}class Oe extends Z{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 Oe}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 o.for(this).error("Error registering resource "+this.name,t),t}}}m([f(),h("design:type",String)],Oe.prototype,"uriOrTemplate",void 0),m([f(),h("design:type",Function)],Oe.prototype,"cb",void 0),m([f(),h("design:type",Object)],Oe.prototype,"config",void 0);const Ce=lt()??k.join(__dirname,"..","assets"),He=k.join(Ce,"templates"),Je=k.join(Ce,"prompts"),_e=new WeakMap;class De extends a{get client(){const t=_e.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 St)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 Ne(this.client),t.verbose("Registered built-in tools")}catch(t){}try{await(async(t,r)=>{r.info("Registering agent templates as resources...");const s=e.readdirSync(He).filter(t=>t.endsWith(".md"));for(const n of s){const s=k.basename(n,".md"),i=k.join(He,n),o=Oe.builder.setName(s).setTitle("Template: "+s).setDescription("Resource template for "+s).setUriOtTemplate("file:///"+i).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{o.build(t),r.info("Registered template: "+s)}catch(t){r.error(`Failed to register template ${s}:`,t)}}r.info("Registering agent prompts...");const n=e.readdirSync(Je).filter(t=>t.endsWith(".md"));for(const s of n){const n=k.basename(s,".md"),i=k.join(Je,s),o=e.readFileSync(i,"utf8"),a=dt.builder.setName(n).setTitle("Prompt: "+n).setDescription("Dynamic prompt for "+n).setArgsSchema(v.object({})).setCb(async t=>({messages:[{role:"user",content:{type:"text",text:o}}],_meta:{}}));try{a.build(t),r.info("Registered prompt: "+n)}catch(t){r.error(`Failed to register prompt ${n}:`,t)}}})(this.client,t)}catch(t){}}async boot(t="stdio"){"stdio"===t&&o.setFactory(U),o.for(this.constructor.name);const e=((Array.isArray(Nt.icons)?Nt.icons:[Nt.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}}),r={name:Nt.name,title:Nt.title,websiteUrl:Nt.websiteUrl,version:Nt.version,icons:e},s=new M(r,{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)=>{_e.set(t,e)})(this,s),s.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=>{},onsessionclosed:t=>{},enableJsonResponse:!0,eventStore:void 0});break;default:if(!(n=t)||"object"!=typeof n||"function"!=typeof n.send&&"function"!=typeof n.close&&"function"!=typeof n.on)throw new E("Invalid transport type: "+t)}var n;try{await this.load()}catch(t){throw t}await this.client.connect(t)}}const Pe=(new t).command("start").option("--transport [String]","transport mode","stdio").description("starts decaf's mcp server").action(async t=>{const e=ct("package.json"),s=JSON.parse(r.readFileSync(e,"utf-8")),n=s.version,{transport:i}=t,o=(new W).for("mcp-server");if("stdio"!==i)throw Error("Unsupported transport mode: "+i);return o.info("Transport stdio"),o.debug(`running with options: ${JSON.stringify(t)} for ${s.name} version ${n}`),(new De).boot(i)});(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=ct("package.json"),s=JSON.parse(r.readFileSync(e,"utf-8")),n=s.version;o.for("md-to-ast").debug(`running with options: ${JSON.stringify(t)} for ${s.name} version ${n}`);const i=se(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(i,null,2)+"\n")});const Re=(new t).name("mcp-server").command("mcp-server").description("decaf mcp server and agentic functionality");Re.addCommand(Pe),Re.parse(process.argv);
1
+ import{Command as t}from"commander";import*as e from"fs";import r,{promises as s}from"fs";import{MiniLogger as n,NumericLogLevels as i,Logging as o,LoggedClass as a,toSnakeCase as c,sf as p,toPascalCase as l,LogLevel as u,LoggedEnvironment as d}from"@decaf-ts/logging";import{__decorate as m,__metadata as h}from"tslib";import{required as f,Model as y,list as g,minlength as b}from"@decaf-ts/decorator-validation";import{z as v,ZodObject as w}from"zod";import{injectable as S,inject as j}from"@decaf-ts/injectable-decorators";import{prop as x,Metadata as I}from"@decaf-ts/decoration";import*as k from"path";import A from"path";import{InternalError as E,SerializationError as T,ValidationError as N}from"@decaf-ts/db-decorators";import O from"crypto";import C from"zlib";import{fileURLToPath as H}from"url";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 n{constructor(t,e,r){super(t,e,r)}log(t,e,r,s){const n=this.config("level");i[n],i[t]}}const U=(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)};var L,K,z,Y,G;(t=>{t[t.NONE=0]="NONE",t[t.BASIC=1]="BASIC",t[t.ADVANCED=2]="ADVANCED",t[t.HIGH=3]="HIGH"})(L||(L={})),(t=>{t[t.NONE=0]="NONE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(K||(K={})),(t=>{t[t.FREE=0]="FREE",t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=3]="HIGH"})(z||(z={}));class Z extends y{get log(){return this._log||(this._log=o.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}}m([f(),h("design:type",String)],Z.prototype,"description",void 0),m([f(),h("design:type",String)],Z.prototype,"name",void 0),m([f(),h("design:type",String)],Z.prototype,"title",void 0);class V extends Z{constructor(t){super(t),this.reasoning=L.NONE,this.effort=K.NONE,this.cost=z.FREE}setReasoning(t){return this.reasoning=t,this}setEffort(t){return this.effort=t,this}setCost(t){return this.cost=t,this}}function Q(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 X(t,e="schema"){if(Q(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]=et(s)?s:v.any();return v.object(t)}}throw Error(`Registration error: provided a non-canonical ${e}. Export a ZodObject (z.object(...)).`)}function tt(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=Q(t);return e?"function"==typeof e.shape?e.shape():e.shape||void 0:void 0}function et(t){return!(!t||"object"!=typeof t||!t._def)}m([f(),h("design:type",Number)],V.prototype,"reasoning",void 0),m([f(),h("design:type",Number)],V.prototype,"effort",void 0),m([f(),h("design:type",Number)],V.prototype,"cost",void 0),(t=>{t.ASSETS="assets"})(Y||(Y={})),(t=>{t.PROMPT="prompts",t.DOCUMENTATION="documentation",t.CODE="code"})(G||(G={}));const rt=Buffer.from("DCAF1","ascii");function st(t){let e=A.resolve(t);for(;;){if(r.existsSync(A.join(e,"package.json")))return e;const t=A.dirname(e);if(t===e)break;e=t}}const nt=process.argv?.[1]?st(A.dirname(A.resolve(process.argv[1]))):void 0,it=(()=>{const t=Error().stack;if(!t)return;const e=t.split(/\r?\n/).slice(1);for(const t of e){const e=t.match(/\(?([^()]+?):\d+:\d+\)?/);if(!e)continue;let r=e[1];if(r.startsWith("file://"))try{r=H(r)}catch{continue}if(!r.includes("node:internal"))return A.dirname(r)}})(),ot=it?st(it):void 0,at=nt??ot??process.cwd();function ct(...t){return A.join(at,...t)}function pt(t){let r=t;for(;;){const t=k.join(r,"lib","assets");if(e.existsSync(t))return t;const s=k.join(r,"src","assets");if(e.existsSync(s))return s;const n=k.join(r,"assets");if(e.existsSync(n))return n;const i=k.dirname(r);if(i===r)break;r=i}}function lt(){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=pt(__dirname);if(r)return r;const s=process.argv?.[1];if(s){const t=pt(k.dirname(s));if(t)return t}const n=[at,process.env.INIT_CWD].filter(Boolean);for(const t of n){const e=pt(t);if(e)return e}return ct("assets")}let ut=class extends a{constructor(t){super(),this.basePath=t||lt()}listAssets(...t){const r=k.join(this.basePath,...t);return e.readdirSync(r)}listPrompts(){return this.listAssets(G.PROMPT)}getAsset(t,r="md",...s){const n=k.join(this.basePath,...s),i=(t,r=!1)=>{try{return r?(t=>{if(t.length<rt.length+16+12+16)throw Error("Invalid prompt payload (too short)");if(!t.subarray(0,rt.length).equals(rt))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=rt.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)=>O.scryptSync(t,e,32))(e,s),c=O.createDecipheriv("aes-256-gcm",a,n);c.setAuthTag(i);const p=Buffer.concat([c.update(o),c.final()]);return C.gunzipSync(p)})(e.readFileSync(t)).toString("utf-8"):e.readFileSync(t,"utf-8")}catch(t){if("ENOENT"===t.code)return null;throw t}},o=i(k.join(n,`${t}.${r}`),"enc"===r);if(null!==o)return o;const a=i(k.join(n,t+".enc"),!0);if(null!==a)return a;throw Error("Asset not found: "+k.join(n,`${t}.${r}`))}getAllAssets(t,...e){return this.listAssets(t,...e).reduce((r,s)=>{const n=k.extname(s),i=k.basename(s,n),o=n.replace(/^\./,"")||void 0;return r[i]=this.getAsset(i,o??void 0,t,...e),r},{})}toPromptDef(t){const e=t=>"number"==typeof t?t:"string"==typeof t?(t=>{switch(t){case"none":return L.NONE;case"basic":return L.BASIC;case"advanced":return L.ADVANCED;case"high":return L.HIGH;case"medium":return K.MEDIUM;case"low":return z.LOW;case"free":return z.FREE;default:throw new E("Cannon convert unknown level "+t)}})(t.toLowerCase()):L.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(c(t),"json",G.PROMPT,...e);let s;try{s=JSON.parse(r)}catch(r){throw new T(`Failed to parse prompt ${t} in categories ${e}: ${r}`)}return this.toPromptDef(s)}getAllPrompts(...t){const e=this.getAllAssets(G.PROMPT,...t);return Object.entries(e).reduce((e,[r,s])=>{try{e[r]=JSON.parse(s)}catch(e){throw new T(`Failed to parse prompt ${r} in categories ${t}: ${e}`)}return e},e)}};ut=m([S(),h("design:paramtypes",[String])],ut);class dt extends V{constructor(t){super(t)}setCb(t){return this.cb=t,this}setArgsSchema(t){return this.argsSchema=t,this}static get builder(){return new dt}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 N("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 p(t,i)}patchPrompt(t,e,r,s){return dt.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 N(s.toString());try{this.argsSchema&&X(this.argsSchema,"argsSchema");const r=tt(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}}}m([j(ut),h("design:type",ut)],dt.prototype,"assets",void 0),m([f(),h("design:type",Object)],dt.prototype,"cb",void 0),m([f(),h("design:type",w)],dt.prototype,"argsSchema",void 0),m([x(),h("design:type",Object)],dt.prototype,"placeholders",void 0);class mt extends dt{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);y.fromObject(this,e);const r=new Set((I.properties(mt)||[]).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 N(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]=v.string().describe("The description for "+e),t),{});return this.setArgsSchema(v.object(o)),this.setCb((t,e)=>{const r=this.logFor(e).for(mt).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 E("Named prompt builders don't require callback")}setEffort(t){throw new E("Named prompt builders don't require callback")}setCost(t){throw new E("Named prompt builders don't require callback")}setDescription(t){throw new E("Named prompt builders don't require callback")}setTitle(t){throw new E("Named prompt builders don't require callback")}static get builder(){return new mt}}m([f(),h("design:type",String)],mt.prototype,"promptCategory",void 0),m([g(String),b(1),h("design:type",Array)],mt.prototype,"prefixes",void 0),m([b(1),g(String),h("design:type",Array)],mt.prototype,"suffixes",void 0);const ht=dt.builder.setName("example-prompt").setTitle("Example prompt").setDescription("Example prompt for testing").setArgsSchema(v.object({message:v.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}}}),ft=dt.builder.setName("interactive-jsdoc").setTitle("Interactive JSDoc prompt").setDescription("Interactive prompt for jogging JSDoc helpers").setArgsSchema(v.object({gist:v.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}}}),yt=Object.assign(ft,{name:ft.getName()});var gt;function bt(t,e=[],r=[]){const s=mt.builder.setCategory(gt.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"})(gt||(gt={}));const vt=[bt("class"),bt("constant"),bt("decorator"),bt("function"),bt("module"),bt("file"),bt("repo",[],["iterate"])],wt=v.object({className:v.string().describe("the class name to turn into a builder")}),St=[ht,yt,...vt,dt.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(wt).setReasoning(L.BASIC).setCb((t,e)=>(t.className=l(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 jt extends V{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 jt}build(t){const e=this.hasErrors();if(e)throw Error(e.toString());try{this.inputSchema&&X(this.inputSchema,"inputSchema"),this.outputSchema&&X(this.outputSchema,"outputSchema");const e=tt(this.inputSchema),r=tt(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 o.for(this).warn(`Tool ${this.name} already registered - skipping duplicate registration`),{name:this.name};throw o.for(this).error("Error building tool",t),t}}}m([f(),h("design:type",Object)],jt.prototype,"annotations",void 0),m([f(),h("design:type",Object)],jt.prototype,"cb",void 0),m([f(),h("design:type",Function)],jt.prototype,"inputSchema",void 0);const xt=jt.builder.setName("example-tool").setTitle("Example tool").setDescription("A smoke tool used for quick testing").setInputSchema(v.object({})).setCb(async()=>({content:[{type:"text",text:"example tool ok"}],result:{status:"ok"}}));Object.assign(xt,{name:xt.getName()});const It=jt.builder.setName("file-summarizer").setTitle("File summarizer").setDescription("Summaries files for quick previews").setInputSchema(v.object({filePath:v.string().optional()})).setCb(async()=>({content:[{type:"text",text:"file summary stub"}],result:{summary:"file summary stub"}}));function kt(){try{let t=process.argv[1]?A.dirname(A.resolve(process.argv[1])):process.cwd();for(;;){const e=A.join(t,"package.json");if(r.existsSync(e))return JSON.parse(r.readFileSync(e,"utf-8"));const s=A.dirname(t);if(s===t)break;t=s}}catch{}return{}}Object.assign(It,{name:It.getName()});const At=kt().version??"0.0.0",Et=kt().name??"unknown";I.registerLibrary(Et,At);const Tt={mcpId:"decaf",name:"decaf-ts mcp server",title:"Decaf-TS MCP Server",description:"Provides precise coding assistance for the decaf-ts framework",version:At,websiteUrl:"https://decaf-ts.github.io",repositoryUrl:"https://github.com/decaf-ts/mcp-server",license:"AGPL-3.0",workingDir:at,assetDir:lt(),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:u.error},Nt=d.accumulate(Tt);function Ot(){const{host:t,email:e,apiKey:r,projectKey:s,issueType:n}=Nt.jira;return{host:t?.trim(),email:e?.trim(),apiKey:r?.trim(),projectKey:s?.trim(),issueType:n?.trim(),parentIssue:Nt.jira.parentIssue?.trim()}}function Ct(){const t=Ot();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 Ht(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}.`}o.setConfig(Nt);class Jt extends Error{constructor(t){const e=Ct(),r=(t=>{const e=Ct();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(Ht).join("\n")}`})(t);super(r),this.name="MissingJiraEnvironmentError",this.descriptors=e,this.missing=t,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,Jt)}}function _t(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 Dt=v.object({issueId:v.string().min(1),deleteSubtasks:v.boolean().optional().default(!0)}),Pt={name:"jira-issue-delete",inputSchema:Dt,runTool:async(t,e)=>{try{const r=Dt.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 _t(t)}}},Rt=v.object({issueId:v.string().min(1),expand:v.string().optional(),fields:v.array(v.string()).optional(),properties:v.array(v.string()).optional()}),$t={name:"jira-issue-read",inputSchema:Rt,runTool:async(t,e)=>{try{const r=Rt.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 _t(t)}}};function Mt(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 Ft(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=Bt(e.enableAtMentions?qt(n,t,r):null,e.enableEmojiShortcodes?qt(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 qt(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 Bt(t,e){return t?e&&t.index>e.index?e:t:e}function Wt(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 Ut(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 Lt(t){const e=((t??"")+"").toLowerCase().trim();return!e||"neutral"!==e&&"green"!==e&&"yellow"!==e&&"red"!==e&&"blue"!==e&&"purple"!==e?null:e}function Kt(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=Yt(s.children??[],t),i=Mt(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&&Gt(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=Wt(s)||"Status",e=Lt(s.attributes?.color)??"neutral";r.push({type:"status",attrs:{text:t,color:e}});continue}if("textDirective"===s.type&&"emoji"===s.name){const t=Zt(s);r.push(Vt(t,e));continue}}else r.push({type:"hardBreak"});else r.push({type:"text",text:(s.value??"")+"",marks:[{type:"code"}]});else r.push(...zt(Kt(s.children??[],e),{type:"strike"}));else r.push(...zt(Kt(s.children??[],e),{type:"em"}));else r.push(...zt(Kt(s.children??[],e),{type:"strong"}));else r.push(...Ft((s.value??"")+"",e));return r.filter(t=>!("text"===t.type&&""===(t.text??"")))}function zt(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 Yt(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(Yt(e.children??[],""));return r.join("")||e}function Gt(t,e){const r=(t??"").trim(),s=(e??"").trim();return r===s&&/^https?:\/\//i.test(s)}function Zt(t){return(t.children??[]).map(t=>"text"===t.type?(t.value??"")+"":"").join("").trim()||""}function Vt(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 Qt(t){return t?"string"==typeof t?t:"text"===t.type||"inlineCode"===t.type?(t.value??"")+"":Array.isArray(t.children)?t.children.map(Qt).join(""):"":""}function Xt(t,e){if(!t?.type)return null;if((t=>"containerDirective"===t?.type&&"panel"===t?.name)(t))return((t,e)=>{const r=t.attributes??{},s=Ut(r.type)??"info",n="string"==typeof r.title?r.title:void 0,i=(t.children??[]).map(t=>Xt(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:ee(t.depth??1,1,6)},content:Kt(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:Kt(t.children??[],e)};case"blockquote":return{type:"blockquote",content:(t.children??[]).map(t=>Xt(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=>Xt(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=>Xt(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:Kt(t.children??[],e)}]}))}))}))(t,e);case"leafDirective":return"status"===t.name?(t=>{const e=Lt((t.attributes??{}).color)??"neutral";return{type:"paragraph",content:[{type:"status",attrs:{text:Wt(t)||"Status",color:e}}]}})(t):"panel"===t.name?((t,e)=>{const r=t.attributes??{},s=Ut(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:Kt([{type:"text",value:Wt(t)}],e)}]}})(t,e):te(t,e);default:return te(t,e)}}function te(t,e){if("drop"===e.unknownNodeStrategy)return null;const r=Qt(t);return r?{type:"paragraph",content:[{type:"text",text:r}]}:null}function ee(t,e,r){const s=Number.isFinite(t)?Math.trunc(t):e;return Math.max(e,Math.min(r,s))}const re={resolveMention:void 0,resolveAttachment:void 0,resolveEmoji:void 0,enableSmartCards:!0,enableMermaid:!0,enableEmojiShortcodes:!0,enableAtMentions:!0,enableTaskLists:!0,unknownNodeStrategy:"text"};function se(t,e={}){const r={...re,...e},s=t??"",n=J().use(P).use(D).use(_),i=n.parse(s),o=n.runSync(i);return ne(o),((t,e)=>{const r=[];for(const s of t.children??[]){const t=Xt(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 ne(t){if(!t||!Array.isArray(t.children))return;const e=[];for(const r of t.children)"definition"!==r?.type&&("html"!==r?.type?(ne(r),e.push(r)):e.push({type:"text",value:(r.value??"")+""}));t.children=e}const ie=v.object({issueId:v.string().min(1),transitionId:v.union([v.string(),v.number()]),fields:v.record(v.any()).optional(),update:v.record(v.array(v.object({set:v.any().optional(),add:v.any().optional(),remove:v.any().optional()}))).optional(),comment:v.string().optional()}),oe={name:"jira-issue-transition",inputSchema:ie,runTool:async(t,e)=>{try{const r=ie.parse(e),s={id:r.transitionId};r.fields&&(s.fields=r.fields),r.update&&(s.update=r.update),r.comment&&(s.comment={body:se(r.comment)});const n=await t.issues.transition({issueId:r.issueId,transition:s});return n?.data??n}catch(t){throw _t(t)}}},ae=v.object({issueId:v.string().min(1),fields:v.record(v.any()).optional(),update:v.record(v.array(v.object({set:v.any().optional(),add:v.any().optional(),remove:v.any().optional(),edit:v.any().optional()}))).optional(),properties:v.array(v.any()).optional(),notifyUsers:v.boolean().optional().default(!0),issueTemplateId:v.string().optional(),overrideScreenSecurity:v.boolean().optional().default(!1),overrideEditableFlag:v.boolean().optional().default(!1)}),ce={name:"jira-issue-update",inputSchema:ae,runTool:async(t,e)=>{try{const r=ae.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 _t(t)}}},pe=v.object({issueId:v.string().min(1),assignee:v.union([v.string(),v.object({accountId:v.string().min(1)}),v.object({accountType:v.string().min(1)})])}),le={name:"jira-assign-issue",inputSchema:pe,runTool:async(t,e)=>{try{const r=pe.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 _t(t)}}},ue=v.object({issueId:v.string().min(1)}),de={name:"jira-unassign-issue",inputSchema:ue,runTool:async(t,e)=>{try{const r=ue.parse(e),s=await t.issues.assign({issueId:r.issueId,assignee:{accountId:"-1"}});return s?.data??s}catch(t){throw _t(t)}}},me=v.object({issueId:v.string().min(1),body:v.string().min(1),visibility:v.object({type:v.enum(["role","group"]),value:v.string().min(1)}).optional()}),he={name:"jira-comment-add",inputSchema:me,runTool:async(t,e)=>{try{const r=me.parse(e),s={body:se(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 _t(t)}}},fe=v.object({issueId:v.string().min(1),start:v.number().optional().default(0),maxResults:v.number().optional().default(50),orderBy:v.string().optional(),expand:v.string().optional()}),ye={name:"jira-comment-list",inputSchema:fe,runTool:async(t,e)=>{try{const r=fe.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 _t(t)}}},ge=v.object({link:v.object({relationship:v.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:v.object({id:v.string().optional(),key:v.string().optional()}),outwardIssue:v.object({id:v.string().optional(),key:v.string().optional()}),comment:v.object({body:v.string().optional(),visibility:v.object({type:v.enum(["role","group"]),value:v.string().min(1)}).optional()}).optional()})}),be={name:"jira-link-create",inputSchema:ge,runTool:async(t,e)=>{try{const r=ge.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=se(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 _t(t)}}},ve=v.object({issueId:v.string().min(1),file:v.string().min(1),mimeType:v.string().optional(),comment:v.string().optional()}),we={name:"jira-attach",inputSchema:ve,runTool:async(t,e)=>{try{const r=ve.parse(e),n=A.resolve(r.file),i=await s.readFile(n),o=A.basename(n),a=await t.issues.addAttachment({issueId:r.issueId,file:{name:o,content:i,mimeType:r.mimeType??"application/octet-stream"},comment:r.comment});return a?.data??a}catch(t){if(t&&t.code&&"string"==typeof t.code&&["ENOENT","EACCES"].includes(t.code))throw Error("Attachment file error: "+t.message);throw _t(t)}}},Se=v.object({issueId:v.string().min(1)}),je={name:"jira-attachment-list",inputSchema:Se,runTool:async(t,e)=>{try{const r=Se.parse(e),s=await t.issues.getAttachments({issueId:r.issueId});return s?.data??s}catch(t){throw _t(t)}}},xe=v.object({issueId:v.string().min(1),attachmentId:v.string().min(1)}),Ie={name:"jira-attachment-delete",inputSchema:xe,runTool:async(t,e)=>{try{const r=xe.parse(e);return await t.issues.deleteAttachment({issueId:r.issueId,attachmentId:r.attachmentId}),{success:!0,message:`Attachment ${e.attachmentId} deleted successfully`}}catch(t){throw _t(t)}}},ke=v.object({issueId:v.string().min(1),timeSpent:v.string().min(1),comment:v.string().optional(),author:v.object({accountId:v.string().min(1)}).optional(),startingOn:v.string().optional(),artifact:v.string().optional()}),Ae={name:"jira-worklog-add",inputSchema:ke,runTool:async(t,e)=>{try{const r=ke.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 _t(t)}}},Ee={[$t.name]:{title:"Jira Issue Read",description:"Read a Jira issue with expandable fields and properties",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[ce.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}},[Pt.name]:{title:"Jira Issue Delete",description:"Delete a Jira issue and optionally remove its subtasks",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[oe.name]:{title:"Jira Issue Transition",description:"Transition a Jira issue while optionally adding a comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[le.name]:{title:"Jira Issue Assign",description:"Assign a Jira issue to a user or account",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[de.name]:{title:"Jira Issue Unassign",description:"Unassign the current owner from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[he.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}},[ye.name]:{title:"Jira Comment List",description:"List comments on a Jira issue with pagination support",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[be.name]:{title:"Jira Link Create",description:"Create an issue link relationship with optional comment",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[we.name]:{title:"Jira Attachment Add",description:"Attach a local file to a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}},[je.name]:{title:"Jira Attachment List",description:"List attachments on a Jira issue",annotations:{readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1}},[Ie.name]:{title:"Jira Attachment Delete",description:"Delete an attachment from a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!0}},[Ae.name]:{title:"Jira Worklog Add",description:"Log time spent on a Jira issue",annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!0}}};async function Te(t){const e=o.for(Te);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=Ot(),e=Ct().filter(t=>t.required&&!t.value);if(e.length>0)throw new Jt(e);return{host:t.host,email:t.email,apiKey:t.apiKey}})();return new t({host:e.startsWith("http://")||e.startsWith("https://")?e:"https://"+e,authentication:{basic:{email:r,apiToken:s}}})})()}catch(t){if(!(t instanceof Jt))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=[$t,ce,Pt,oe,le,de,he,ye,be,we,je,Ie,Ae];for(const i of n){const n=Ee[i.name];if(n)try{await t.registerTool(i.name,{title:n.title,description:n.description,inputSchema:tt(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 Ne(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=St.map(t=>t.getName()).sort();return{content:[{type:"text",text:["Name: "+Nt.name,"Title: "+Nt.title,"Version: "+Nt.version,"Prompts: "+(t.join(", ")||"<none>")].join("\n")}]}})})(t);const e=o.for(Ne);try{await Te(t)}catch(t){e.error("Failed to register Jira tools",t)}}class Oe extends Z{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 Oe}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 o.for(this).error("Error registering resource "+this.name,t),t}}}m([f(),h("design:type",String)],Oe.prototype,"uriOrTemplate",void 0),m([f(),h("design:type",Function)],Oe.prototype,"cb",void 0),m([f(),h("design:type",Object)],Oe.prototype,"config",void 0);const Ce=lt()??k.join(__dirname,"..","assets"),He=k.join(Ce,"templates"),Je=k.join(Ce,"prompts"),_e=new WeakMap;class De extends a{get client(){const t=_e.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 St)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 Ne(this.client),t.verbose("Registered built-in tools")}catch(t){}try{await(async(t,r)=>{r.info("Registering agent templates as resources...");const s=e.readdirSync(He).filter(t=>t.endsWith(".md"));for(const n of s){const s=k.basename(n,".md"),i=k.join(He,n),o=Oe.builder.setName(s).setTitle("Template: "+s).setDescription("Resource template for "+s).setUriOtTemplate("file:///"+i).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{o.build(t),r.info("Registered template: "+s)}catch(t){r.error(`Failed to register template ${s}:`,t)}}r.info("Registering agent prompts...");const n=e.readdirSync(Je).filter(t=>t.endsWith(".md"));for(const s of n){const n=k.basename(s,".md"),i=k.join(Je,s),o=e.readFileSync(i,"utf8"),a=dt.builder.setName(n).setTitle("Prompt: "+n).setDescription("Dynamic prompt for "+n).setArgsSchema(v.object({})).setCb(async t=>({messages:[{role:"user",content:{type:"text",text:o}}],_meta:{}}));try{a.build(t),r.info("Registered prompt: "+n)}catch(t){r.error(`Failed to register prompt ${n}:`,t)}}})(this.client,t)}catch(t){}}async boot(t="stdio"){"stdio"===t&&o.setFactory(U),o.for(this.constructor.name);const e=((Array.isArray(Nt.icons)?Nt.icons:[Nt.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}}),r={name:Nt.name,title:Nt.title,websiteUrl:Nt.websiteUrl,version:Nt.version,icons:e},s=new M(r,{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)=>{_e.set(t,e)})(this,s),s.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=>{},onsessionclosed:t=>{},enableJsonResponse:!0,eventStore:void 0});break;default:if(!(n=t)||"object"!=typeof n||"function"!=typeof n.send&&"function"!=typeof n.close&&"function"!=typeof n.on)throw new E("Invalid transport type: "+t)}var n;try{await this.load()}catch(t){throw t}await this.client.connect(t)}}const Pe=(new t).command("start").option("--transport [String]","transport mode","stdio").description("starts decaf's mcp server").action(async t=>{const e=ct("package.json"),s=JSON.parse(r.readFileSync(e,"utf-8")),n=s.version,{transport:i}=t,o=(new W).for("mcp-server");if("stdio"!==i)throw Error("Unsupported transport mode: "+i);return o.info("Transport stdio"),o.debug(`running with options: ${JSON.stringify(t)} for ${s.name} version ${n}`),(new De).boot(i)});(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=ct("package.json"),s=JSON.parse(r.readFileSync(e,"utf-8")),n=s.version;o.for("md-to-ast").debug(`running with options: ${JSON.stringify(t)} for ${s.name} version ${n}`);const i=se(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(i,null,2)+"\n")});const Re=(new t).name("mcp-server").command("mcp-server").description("decaf mcp server and agentic functionality");Re.addCommand(Pe),Re.parse(process.argv);
2
2
  //# sourceMappingURL=mcp-server.js.map