Initial commit: Complete Hive distributed AI orchestration platform
This comprehensive implementation includes: - FastAPI backend with MCP server integration - React/TypeScript frontend with Vite - PostgreSQL database with Redis caching - Grafana/Prometheus monitoring stack - Docker Compose orchestration - Full MCP protocol support for Claude Code integration Features: - Agent discovery and management across network - Visual workflow editor and execution engine - Real-time task coordination and monitoring - Multi-model support with specialized agents - Distributed development task allocation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										148
									
								
								mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										148
									
								
								mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js
									
									
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,148 @@ | ||||
| import { pctEncChar, pctDecChars, unescapeComponent } from "../uri"; | ||||
| import punycode from "punycode"; | ||||
| import { merge, subexp, toUpperCase, toArray } from "../util"; | ||||
| const O = {}; | ||||
| const isIRI = true; | ||||
| //RFC 3986 | ||||
| const UNRESERVED$$ = "[A-Za-z0-9\\-\\.\\_\\~" + (isIRI ? "\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF" : "") + "]"; | ||||
| const HEXDIG$$ = "[0-9A-Fa-f]"; //case-insensitive | ||||
| const PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)); //expanded | ||||
| //RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; = | ||||
| //const ATEXT$$ = "[A-Za-z0-9\\!\\#\\$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]"; | ||||
| //const WSP$$ = "[\\x20\\x09]"; | ||||
| //const OBS_QTEXT$$ = "[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F]";  //(%d1-8 / %d11-12 / %d14-31 / %d127) | ||||
| //const QTEXT$$ = merge("[\\x21\\x23-\\x5B\\x5D-\\x7E]", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext | ||||
| //const VCHAR$$ = "[\\x21-\\x7E]"; | ||||
| //const WSP$$ = "[\\x20\\x09]"; | ||||
| //const OBS_QP$ = subexp("\\\\" + merge("[\\x00\\x0D\\x0A]", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext | ||||
| //const FWS$ = subexp(subexp(WSP$$ + "*" + "\\x0D\\x0A") + "?" + WSP$$ + "+"); | ||||
| //const QUOTED_PAIR$ = subexp(subexp("\\\\" + subexp(VCHAR$$ + "|" + WSP$$)) + "|" + OBS_QP$); | ||||
| //const QUOTED_STRING$ = subexp('\\"' + subexp(FWS$ + "?" + QCONTENT$) + "*" + FWS$ + "?" + '\\"'); | ||||
| const ATEXT$$ = "[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]"; | ||||
| const QTEXT$$ = "[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]"; | ||||
| const VCHAR$$ = merge(QTEXT$$, "[\\\"\\\\]"); | ||||
| const DOT_ATOM_TEXT$ = subexp(ATEXT$$ + "+" + subexp("\\." + ATEXT$$ + "+") + "*"); | ||||
| const QUOTED_PAIR$ = subexp("\\\\" + VCHAR$$); | ||||
| const QCONTENT$ = subexp(QTEXT$$ + "|" + QUOTED_PAIR$); | ||||
| const QUOTED_STRING$ = subexp('\\"' + QCONTENT$ + "*" + '\\"'); | ||||
| //RFC 6068 | ||||
| const DTEXT_NO_OBS$$ = "[\\x21-\\x5A\\x5E-\\x7E]"; //%d33-90 / %d94-126 | ||||
| const SOME_DELIMS$$ = "[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"; | ||||
| const QCHAR$ = subexp(UNRESERVED$$ + "|" + PCT_ENCODED$ + "|" + SOME_DELIMS$$); | ||||
| const DOMAIN$ = subexp(DOT_ATOM_TEXT$ + "|" + "\\[" + DTEXT_NO_OBS$$ + "*" + "\\]"); | ||||
| const LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + "|" + QUOTED_STRING$); | ||||
| const ADDR_SPEC$ = subexp(LOCAL_PART$ + "\\@" + DOMAIN$); | ||||
| const TO$ = subexp(ADDR_SPEC$ + subexp("\\," + ADDR_SPEC$) + "*"); | ||||
| const HFNAME$ = subexp(QCHAR$ + "*"); | ||||
| const HFVALUE$ = HFNAME$; | ||||
| const HFIELD$ = subexp(HFNAME$ + "\\=" + HFVALUE$); | ||||
| const HFIELDS2$ = subexp(HFIELD$ + subexp("\\&" + HFIELD$) + "*"); | ||||
| const HFIELDS$ = subexp("\\?" + HFIELDS2$); | ||||
| const MAILTO_URI = new RegExp("^mailto\\:" + TO$ + "?" + HFIELDS$ + "?$"); | ||||
| const UNRESERVED = new RegExp(UNRESERVED$$, "g"); | ||||
| const PCT_ENCODED = new RegExp(PCT_ENCODED$, "g"); | ||||
| const NOT_LOCAL_PART = new RegExp(merge("[^]", ATEXT$$, "[\\.]", '[\\"]', VCHAR$$), "g"); | ||||
| const NOT_DOMAIN = new RegExp(merge("[^]", ATEXT$$, "[\\.]", "[\\[]", DTEXT_NO_OBS$$, "[\\]]"), "g"); | ||||
| const NOT_HFNAME = new RegExp(merge("[^]", UNRESERVED$$, SOME_DELIMS$$), "g"); | ||||
| const NOT_HFVALUE = NOT_HFNAME; | ||||
| const TO = new RegExp("^" + TO$ + "$"); | ||||
| const HFIELDS = new RegExp("^" + HFIELDS2$ + "$"); | ||||
| function decodeUnreserved(str) { | ||||
|     const decStr = pctDecChars(str); | ||||
|     return (!decStr.match(UNRESERVED) ? str : decStr); | ||||
| } | ||||
| const handler = { | ||||
|     scheme: "mailto", | ||||
|     parse: function (components, options) { | ||||
|         const mailtoComponents = components; | ||||
|         const to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(",") : []); | ||||
|         mailtoComponents.path = undefined; | ||||
|         if (mailtoComponents.query) { | ||||
|             let unknownHeaders = false; | ||||
|             const headers = {}; | ||||
|             const hfields = mailtoComponents.query.split("&"); | ||||
|             for (let x = 0, xl = hfields.length; x < xl; ++x) { | ||||
|                 const hfield = hfields[x].split("="); | ||||
|                 switch (hfield[0]) { | ||||
|                     case "to": | ||||
|                         const toAddrs = hfield[1].split(","); | ||||
|                         for (let x = 0, xl = toAddrs.length; x < xl; ++x) { | ||||
|                             to.push(toAddrs[x]); | ||||
|                         } | ||||
|                         break; | ||||
|                     case "subject": | ||||
|                         mailtoComponents.subject = unescapeComponent(hfield[1], options); | ||||
|                         break; | ||||
|                     case "body": | ||||
|                         mailtoComponents.body = unescapeComponent(hfield[1], options); | ||||
|                         break; | ||||
|                     default: | ||||
|                         unknownHeaders = true; | ||||
|                         headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options); | ||||
|                         break; | ||||
|                 } | ||||
|             } | ||||
|             if (unknownHeaders) | ||||
|                 mailtoComponents.headers = headers; | ||||
|         } | ||||
|         mailtoComponents.query = undefined; | ||||
|         for (let x = 0, xl = to.length; x < xl; ++x) { | ||||
|             const addr = to[x].split("@"); | ||||
|             addr[0] = unescapeComponent(addr[0]); | ||||
|             if (!options.unicodeSupport) { | ||||
|                 //convert Unicode IDN -> ASCII IDN | ||||
|                 try { | ||||
|                     addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase()); | ||||
|                 } | ||||
|                 catch (e) { | ||||
|                     mailtoComponents.error = mailtoComponents.error || "Email address's domain name can not be converted to ASCII via punycode: " + e; | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 addr[1] = unescapeComponent(addr[1], options).toLowerCase(); | ||||
|             } | ||||
|             to[x] = addr.join("@"); | ||||
|         } | ||||
|         return mailtoComponents; | ||||
|     }, | ||||
|     serialize: function (mailtoComponents, options) { | ||||
|         const components = mailtoComponents; | ||||
|         const to = toArray(mailtoComponents.to); | ||||
|         if (to) { | ||||
|             for (let x = 0, xl = to.length; x < xl; ++x) { | ||||
|                 const toAddr = String(to[x]); | ||||
|                 const atIdx = toAddr.lastIndexOf("@"); | ||||
|                 const localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar); | ||||
|                 let domain = toAddr.slice(atIdx + 1); | ||||
|                 //convert IDN via punycode | ||||
|                 try { | ||||
|                     domain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain)); | ||||
|                 } | ||||
|                 catch (e) { | ||||
|                     components.error = components.error || "Email address's domain name can not be converted to " + (!options.iri ? "ASCII" : "Unicode") + " via punycode: " + e; | ||||
|                 } | ||||
|                 to[x] = localPart + "@" + domain; | ||||
|             } | ||||
|             components.path = to.join(","); | ||||
|         } | ||||
|         const headers = mailtoComponents.headers = mailtoComponents.headers || {}; | ||||
|         if (mailtoComponents.subject) | ||||
|             headers["subject"] = mailtoComponents.subject; | ||||
|         if (mailtoComponents.body) | ||||
|             headers["body"] = mailtoComponents.body; | ||||
|         const fields = []; | ||||
|         for (const name in headers) { | ||||
|             if (headers[name] !== O[name]) { | ||||
|                 fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + | ||||
|                     "=" + | ||||
|                     headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)); | ||||
|             } | ||||
|         } | ||||
|         if (fields.length) { | ||||
|             components.query = fields.join("&"); | ||||
|         } | ||||
|         return components; | ||||
|     } | ||||
| }; | ||||
| export default handler; | ||||
| //# sourceMappingURL=mailto.js.map | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins