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:
		
							
								
								
									
										122
									
								
								mcp-server/node_modules/zod/v4/locales/fi.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								mcp-server/node_modules/zod/v4/locales/fi.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | ||||
| import * as util from "../core/util.js"; | ||||
| const error = () => { | ||||
|     const Sizable = { | ||||
|         string: { unit: "merkkiä", subject: "merkkijonon" }, | ||||
|         file: { unit: "tavua", subject: "tiedoston" }, | ||||
|         array: { unit: "alkiota", subject: "listan" }, | ||||
|         set: { unit: "alkiota", subject: "joukon" }, | ||||
|         number: { unit: "", subject: "luvun" }, | ||||
|         bigint: { unit: "", subject: "suuren kokonaisluvun" }, | ||||
|         int: { unit: "", subject: "kokonaisluvun" }, | ||||
|         date: { unit: "", subject: "päivämäärän" }, | ||||
|     }; | ||||
|     function getSizing(origin) { | ||||
|         return Sizable[origin] ?? null; | ||||
|     } | ||||
|     const parsedType = (data) => { | ||||
|         const t = typeof data; | ||||
|         switch (t) { | ||||
|             case "number": { | ||||
|                 return Number.isNaN(data) ? "NaN" : "number"; | ||||
|             } | ||||
|             case "object": { | ||||
|                 if (Array.isArray(data)) { | ||||
|                     return "array"; | ||||
|                 } | ||||
|                 if (data === null) { | ||||
|                     return "null"; | ||||
|                 } | ||||
|                 if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) { | ||||
|                     return data.constructor.name; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return t; | ||||
|     }; | ||||
|     const Nouns = { | ||||
|         regex: "säännöllinen lauseke", | ||||
|         email: "sähköpostiosoite", | ||||
|         url: "URL-osoite", | ||||
|         emoji: "emoji", | ||||
|         uuid: "UUID", | ||||
|         uuidv4: "UUIDv4", | ||||
|         uuidv6: "UUIDv6", | ||||
|         nanoid: "nanoid", | ||||
|         guid: "GUID", | ||||
|         cuid: "cuid", | ||||
|         cuid2: "cuid2", | ||||
|         ulid: "ULID", | ||||
|         xid: "XID", | ||||
|         ksuid: "KSUID", | ||||
|         datetime: "ISO-aikaleima", | ||||
|         date: "ISO-päivämäärä", | ||||
|         time: "ISO-aika", | ||||
|         duration: "ISO-kesto", | ||||
|         ipv4: "IPv4-osoite", | ||||
|         ipv6: "IPv6-osoite", | ||||
|         cidrv4: "IPv4-alue", | ||||
|         cidrv6: "IPv6-alue", | ||||
|         base64: "base64-koodattu merkkijono", | ||||
|         base64url: "base64url-koodattu merkkijono", | ||||
|         json_string: "JSON-merkkijono", | ||||
|         e164: "E.164-luku", | ||||
|         jwt: "JWT", | ||||
|         template_literal: "templaattimerkkijono", | ||||
|     }; | ||||
|     return (issue) => { | ||||
|         switch (issue.code) { | ||||
|             case "invalid_type": | ||||
|                 return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`; | ||||
|             case "invalid_value": | ||||
|                 if (issue.values.length === 1) | ||||
|                     return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`; | ||||
|                 return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, "|")}`; | ||||
|             case "too_big": { | ||||
|                 const adj = issue.inclusive ? "<=" : "<"; | ||||
|                 const sizing = getSizing(issue.origin); | ||||
|                 if (sizing) { | ||||
|                     return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim(); | ||||
|                 } | ||||
|                 return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`; | ||||
|             } | ||||
|             case "too_small": { | ||||
|                 const adj = issue.inclusive ? ">=" : ">"; | ||||
|                 const sizing = getSizing(issue.origin); | ||||
|                 if (sizing) { | ||||
|                     return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim(); | ||||
|                 } | ||||
|                 return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`; | ||||
|             } | ||||
|             case "invalid_format": { | ||||
|                 const _issue = issue; | ||||
|                 if (_issue.format === "starts_with") | ||||
|                     return `Virheellinen syöte: täytyy alkaa "${_issue.prefix}"`; | ||||
|                 if (_issue.format === "ends_with") | ||||
|                     return `Virheellinen syöte: täytyy loppua "${_issue.suffix}"`; | ||||
|                 if (_issue.format === "includes") | ||||
|                     return `Virheellinen syöte: täytyy sisältää "${_issue.includes}"`; | ||||
|                 if (_issue.format === "regex") { | ||||
|                     return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`; | ||||
|                 } | ||||
|                 return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`; | ||||
|             } | ||||
|             case "not_multiple_of": | ||||
|                 return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`; | ||||
|             case "unrecognized_keys": | ||||
|                 return `${issue.keys.length > 1 ? "Tuntemattomat avaimet" : "Tuntematon avain"}: ${util.joinValues(issue.keys, ", ")}`; | ||||
|             case "invalid_key": | ||||
|                 return "Virheellinen avain tietueessa"; | ||||
|             case "invalid_union": | ||||
|                 return "Virheellinen unioni"; | ||||
|             case "invalid_element": | ||||
|                 return "Virheellinen arvo joukossa"; | ||||
|             default: | ||||
|                 return `Virheellinen syöte`; | ||||
|         } | ||||
|     }; | ||||
| }; | ||||
| export default function () { | ||||
|     return { | ||||
|         localeError: error(), | ||||
|     }; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins