{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-nanbingxyz--5ire","slug":"nanbingxyz--5ire","name":"5ire","type":"mcp","url":"https://5ire.app","page_url":"https://unfragile.ai/nanbingxyz--5ire","categories":["mcp-servers"],"tags":["knowledge-base","llms","mcp","mcp-client","model-context-protocol"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-nanbingxyz--5ire__cap_0","uri":"capability://text.generation.language.multi.provider.unified.ai.chat.with.streaming.responses","name":"multi-provider unified ai chat with streaming responses","description":"Provides a single chat interface that abstracts 12+ AI providers (OpenAI, Anthropic, Google, Mistral, Grok, DeepSeek, Ollama, Perplexity, Doubao, etc.) through a provider-agnostic chat service base architecture. Implements streaming responses via provider-specific SDK integrations, with per-conversation model and parameter configuration. Uses Zustand for state management and React 18.3.1 for real-time message rendering with token counting per provider's native implementation.","intents":["Switch between different AI models mid-project without rebuilding chat logic","Compare responses from multiple providers on the same prompt","Configure model parameters (temperature, max_tokens) per conversation","Stream responses in real-time to the UI as they arrive from the provider"],"best_for":["developers building AI applications who want provider flexibility","teams evaluating multiple LLM providers without vendor lock-in","power users comparing model outputs across providers"],"limitations":["Token counting accuracy varies by provider — some providers don't expose exact token counts, requiring client-side estimation","Streaming latency depends on provider's API response time; no local batching optimization","Provider-specific features (vision, function calling) require custom integration per provider"],"requires":["API keys for at least one supported provider (OpenAI, Anthropic, etc.)","Electron 31.7.1 runtime","Node.js v20.10.0 or higher"],"input_types":["text prompts","multi-turn conversation history","structured model parameters (temperature, max_tokens, top_p)"],"output_types":["streamed text responses","structured message objects with metadata (provider, model, tokens used)","token usage statistics"],"categories":["text-generation-language","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_1","uri":"capability://tool.use.integration.mcp.server.integration.with.multiple.transport.protocols","name":"mcp server integration with multiple transport protocols","description":"Integrates the Model Context Protocol (MCP) via three transport mechanisms: StdioTransport for local processes, SSETransport for HTTP server-sent events, and StreamableHTTPTransport for streaming HTTP. Manages MCP server lifecycle (startup, shutdown, reconnection) in the Electron main process, exposes tool schemas to the chat system, and routes tool execution requests through the MCP protocol with approval policies. Stores MCP server configurations in SQLite for persistence across sessions.","intents":["Connect local tools (file system, databases, APIs) to AI models via MCP servers","Execute remote tools hosted on HTTP servers without embedding them in the application","Manage tool approval workflows before execution (auto-approve, user-confirm, deny)","Discover and dynamically load tool schemas from MCP servers at runtime"],"best_for":["developers building AI agents that need access to external tools and APIs","teams running local MCP servers for file system or database operations","organizations deploying remote MCP servers for centralized tool management"],"limitations":["StdioTransport requires the MCP server process to be available locally — no automatic fallback if process crashes","SSETransport and StreamableHTTPTransport add network latency compared to stdio; no built-in retry logic for transient failures","Tool execution approval policies are UI-driven; no programmatic policy engine for complex authorization rules","MCP server discovery is manual configuration only — no auto-discovery mechanism"],"requires":["MCP server implementation (local or remote)","For StdioTransport: executable MCP server binary in PATH or specified directory","For SSETransport/StreamableHTTPTransport: HTTP server running MCP protocol","Electron 31.7.1 runtime"],"input_types":["MCP server configuration (transport type, endpoint, executable path)","tool invocation requests from chat system","tool parameters as JSON"],"output_types":["tool schemas (JSON schema format)","tool execution results","error messages with MCP protocol details"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_10","uri":"capability://text.generation.language.chat.editor.with.model.and.parameter.controls","name":"chat editor with model and parameter controls","description":"Implements a chat input editor with model and parameter controls (temperature, max_tokens, top_p, etc.) accessible per-conversation. Uses a text input component with support for multi-line input and keyboard shortcuts (Shift+Enter for newline, Enter to send). Provides a parameter panel with sliders and input fields for model-specific settings. Stores parameter configurations per conversation in SQLite, enabling different settings for different conversations. Integrates with the chat service to send prompts with the selected model and parameters.","intents":["Adjust model parameters (temperature, max_tokens) per conversation without global settings","Switch models mid-conversation without losing context","Use keyboard shortcuts for efficient message sending","Configure model-specific parameters (e.g., top_p for sampling) for different use cases"],"best_for":["power users experimenting with different model parameters","developers fine-tuning AI responses for specific tasks","teams comparing model behavior with different parameter settings"],"limitations":["Parameter controls are UI-based sliders; no programmatic parameter validation or constraints","Parameter changes apply only to new messages; no retroactive parameter adjustment for previous messages","No parameter presets or templates; users must manually configure parameters each time","Model switching mid-conversation doesn't re-process previous messages with the new model"],"requires":["React for UI rendering","SQLite for parameter storage","Chat service integration"],"input_types":["text input (user prompt)","model selection (dropdown)","parameter values (sliders, input fields)","keyboard events (Enter, Shift+Enter)"],"output_types":["formatted prompt with metadata","selected model and parameters","chat message sent to service"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_11","uri":"capability://data.processing.analysis.document.ingestion.pipeline.with.multi.format.support","name":"document ingestion pipeline with multi-format support","description":"Implements a document ingestion pipeline that processes PDF, DOCX, XLSX, and TXT files into embeddings. Extracts text from each format using format-specific parsers (PDF.js for PDFs, docx library for Word docs, xlsx library for spreadsheets). Chunks extracted text into overlapping segments (default chunk size ~512 tokens with overlap). Generates embeddings using bge-m3 model via @xenova/transformers for client-side inference. Stores embeddings in LanceDB with document metadata (filename, upload_date, file_size) in SQLite. Provides progress tracking for long-running ingestion operations.","intents":["Upload company documents (PDFs, Word docs, spreadsheets) for knowledge base indexing","Extract text from various document formats without external services","Generate embeddings locally without sending documents to cloud APIs","Track document ingestion progress for large files"],"best_for":["organizations with sensitive documents requiring local processing","teams building internal knowledge bases with diverse document formats","developers prototyping RAG systems with local embeddings"],"limitations":["bge-m3 embedding generation is CPU-intensive; ~2-5 seconds per document on CPU-only machines, longer for large documents","Text extraction quality varies by document format; PDFs with images or complex layouts may have extraction errors","Chunking strategy is fixed (512 tokens with overlap); no customization for different document types","No support for document metadata extraction (author, creation date, etc.) beyond filename and upload date","Large documents (>100MB) may cause memory issues during text extraction"],"requires":["Electron 31.7.1 runtime","@xenova/transformers for bge-m3 embeddings","LanceDB for vector storage","SQLite for metadata storage","Format-specific parsers (PDF.js, docx, xlsx libraries)"],"input_types":["document files (PDF, DOCX, XLSX, TXT)","document metadata (title, tags, optional)"],"output_types":["extracted text chunks","vector embeddings (bge-m3 format, 384-dimensional)","document metadata stored in SQLite","ingestion progress updates"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_2","uri":"capability://memory.knowledge.local.knowledge.base.with.rag.and.semantic.search","name":"local knowledge base with rag and semantic search","description":"Implements a local-first document ingestion pipeline that processes PDFs, DOCX, XLSX, and TXT files into embeddings using bge-m3 model (@xenova/transformers for client-side inference). Stores embeddings in LanceDB vector database with document metadata in SQLite. Provides semantic search across the knowledge base with citation tracking, integrating search results into chat context as RAG (Retrieval-Augmented Generation). Uses PGLite for optional in-process vector operations.","intents":["Upload and index company documents (PDFs, Word docs, spreadsheets) for AI-assisted search","Retrieve relevant document snippets automatically when asking questions about uploaded content","Cite sources in AI responses with links back to original documents","Keep knowledge base private and local without sending documents to external APIs"],"best_for":["enterprises with sensitive documents requiring local-only processing","teams building internal knowledge bases for domain-specific AI assistants","developers prototyping RAG systems without external vector database dependencies"],"limitations":["bge-m3 embedding model runs client-side, adding ~2-5 second latency per document during ingestion on CPU-only machines","LanceDB is embedded SQLite-based; no distributed indexing for very large document collections (100k+ documents)","Semantic search quality depends on bge-m3 model performance; no fine-tuning support for domain-specific embeddings","Citation tracking is document-level only; no sub-document (page/paragraph) granularity in citations"],"requires":["Electron 31.7.1 runtime","LanceDB (embedded, no external dependency)","SQLite via better-sqlite3","Supported document formats: PDF, DOCX, XLSX, TXT"],"input_types":["document files (PDF, DOCX, XLSX, TXT)","semantic search queries (natural language text)","document metadata (title, tags)"],"output_types":["vector embeddings (bge-m3 format, 384-dimensional)","search results with relevance scores","document citations with source references","RAG context injected into chat messages"],"categories":["memory-knowledge","search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_3","uri":"capability://tool.use.integration.dynamic.provider.and.model.discovery.with.encrypted.credential.storage","name":"dynamic provider and model discovery with encrypted credential storage","description":"Implements a provider management system that dynamically discovers available models from each provider's API (e.g., OpenAI's list_models endpoint). Stores provider configurations and API keys in Electron Store with encryption at rest. Supports custom provider configuration for self-hosted or alternative endpoints. Maintains a provider registry with per-provider token counting strategies and model metadata (context window, pricing). Allows runtime provider switching without application restart.","intents":["Automatically discover new models released by providers without manual configuration","Securely store API keys locally without exposing them in config files or logs","Configure custom endpoints for self-hosted models or private provider instances","Track token usage and costs per provider with accurate counting strategies"],"best_for":["developers managing multiple provider accounts and needing secure credential storage","teams using self-hosted LLM endpoints (Ollama, vLLM) alongside cloud providers","organizations requiring audit trails of API key access and provider usage"],"limitations":["Model discovery requires active API calls to each provider; no caching mechanism for discovered models, causing ~1-2 second delay on startup","Encryption is at-rest only; API keys are decrypted into memory during runtime, vulnerable to memory dumps","Custom provider configuration requires manual endpoint specification; no auto-detection of compatible endpoints","Token counting accuracy varies by provider — some providers don't expose token counts, requiring client-side estimation with potential drift"],"requires":["Electron 31.7.1 runtime","Electron Store for encrypted storage","API keys for at least one supported provider","Network connectivity for model discovery"],"input_types":["provider API keys (string)","custom provider endpoint URLs","provider configuration (name, base URL, auth method)"],"output_types":["list of available models per provider","provider metadata (context window, pricing, capabilities)","token usage statistics","encrypted credential storage"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_4","uri":"capability://safety.moderation.tool.execution.with.approval.policies.and.sandboxed.execution","name":"tool execution with approval policies and sandboxed execution","description":"Implements a tool execution system where MCP tools are exposed to the AI model, but execution is gated by configurable approval policies (auto-approve, user-confirm, deny). Tool invocation requests from the model are intercepted in the chat service, validated against the approval policy, and either executed immediately or presented to the user for confirmation. Execution happens in the Electron main process with access to the MCP server, maintaining a tool execution audit log in SQLite.","intents":["Allow AI models to call tools while maintaining user control over what gets executed","Require user confirmation before executing potentially dangerous operations (file deletion, API calls)","Audit all tool executions with timestamps and parameters for compliance","Auto-approve safe tools (read-only operations) while requiring confirmation for risky ones"],"best_for":["developers building AI agents that need safety guardrails for tool execution","teams requiring audit trails of all tool invocations for compliance","organizations deploying AI assistants with user-facing tool access"],"limitations":["Approval policies are static per MCP server; no dynamic policy evaluation based on tool parameters or context","User confirmation UI is modal and blocking; no async approval workflows for long-running operations","Tool execution audit log is local SQLite only; no integration with external audit systems","No sandboxing of tool execution itself — tools run with full Electron main process permissions"],"requires":["MCP server with tool definitions","Electron 31.7.1 runtime","SQLite for audit logging"],"input_types":["tool invocation requests from AI model (tool name, parameters)","approval policy configuration (auto-approve, user-confirm, deny)","user confirmation responses"],"output_types":["tool execution results","audit log entries (timestamp, tool name, parameters, result, user action)","approval decision (approved/denied)"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_5","uri":"capability://automation.workflow.cross.platform.desktop.application.with.electron.three.process.architecture","name":"cross-platform desktop application with electron three-process architecture","description":"Built on Electron 31.7.1 with a three-process model: Main Process (Node.js) manages application lifecycle and system integration, Renderer Process (Chromium + React 18.3.1) handles UI rendering, and Preload Script provides sandboxed context bridge for secure IPC. Uses Fluent UI components for native OS appearance (Windows, macOS, Linux). Implements persistent state management with Zustand for UI state and SQLite (better-sqlite3) for application data, with optional Supabase sync for cloud backup.","intents":["Run a native desktop AI assistant on Windows, macOS, and Linux without web browser dependency","Maintain local data storage with optional cloud sync for multi-device access","Integrate with OS-level features (file dialogs, notifications, system tray)","Keep sensitive data (API keys, documents) local by default with optional cloud backup"],"best_for":["developers building cross-platform desktop applications with AI capabilities","teams requiring local-first data storage with optional cloud sync","organizations needing native OS integration (file system, notifications)"],"limitations":["Electron bundle size is ~150-200MB; slower startup time (~2-3 seconds) compared to native apps","IPC between processes adds ~5-10ms latency per message; high-frequency operations (real-time chat) may experience jank","Preload script sandboxing limits what Node.js APIs are exposed to renderer; custom integrations require main process handlers","Optional Supabase sync requires external service; no built-in conflict resolution for offline edits"],"requires":["Electron 31.7.1 runtime","Node.js v20.10.0 or higher","React 18.3.1 for UI development","Fluent UI for component library"],"input_types":["user interactions (clicks, text input, file selection)","system events (file system changes, network status)","IPC messages from main process"],"output_types":["rendered UI (React components)","system notifications","file system operations","IPC messages to main process"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_6","uri":"capability://data.processing.analysis.token.counting.and.usage.analytics.with.cost.estimation","name":"token counting and usage analytics with cost estimation","description":"Implements per-provider token counting strategies that abstract provider-specific token counting APIs (OpenAI's tiktoken, Anthropic's token counter, etc.). Tracks token usage per message, conversation, and provider in SQLite. Calculates estimated costs based on provider pricing models (input/output token rates). Displays real-time token usage in the chat UI and provides usage analytics dashboard. Handles token counting for both prompts and completions with fallback estimation for providers without native token counting.","intents":["Monitor API costs in real-time to avoid unexpected bills from high-token-usage conversations","Compare cost-efficiency between providers for the same task","Understand token usage patterns to optimize prompts and reduce costs","Set usage alerts or limits to prevent runaway spending"],"best_for":["developers managing multiple AI provider accounts with cost concerns","teams optimizing LLM usage for production deployments","organizations requiring cost tracking per user or project"],"limitations":["Token counting accuracy varies by provider — some providers don't expose exact token counts, requiring client-side estimation with ~5-10% error margin","Cost estimation uses static pricing; no support for dynamic pricing or volume discounts","Usage analytics are local SQLite only; no integration with external billing systems","Token counting happens post-response; no pre-response cost estimation before sending prompts"],"requires":["SQLite for usage tracking","Provider-specific token counting libraries (tiktoken for OpenAI, etc.)","Provider pricing data (manually configured or fetched from provider APIs)"],"input_types":["chat messages (prompts and completions)","provider configuration (pricing rates)","token counting strategy per provider"],"output_types":["token counts (input, output, total)","cost estimates (USD or other currency)","usage analytics (tokens per conversation, cost per provider)","usage statistics in UI"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_7","uri":"capability://text.generation.language.multi.language.ui.with.localization.system","name":"multi-language ui with localization system","description":"Implements a localization system using i18n (internationalization) with JSON-based translation files stored in public/locales/{language}/translation.json. Supports English and Chinese (Simplified) with extensible architecture for additional languages. Uses React context or Zustand for language state management, enabling runtime language switching without application restart. Translation keys are namespaced by feature (chat, tools, settings, etc.) for maintainability.","intents":["Provide UI in multiple languages without code changes","Switch languages at runtime without restarting the application","Maintain translation consistency across UI components","Enable community contributions for additional language translations"],"best_for":["teams building applications for international audiences","open-source projects seeking community translations","organizations supporting multiple regional markets"],"limitations":["JSON-based translations require manual key management; no automated extraction of untranslated strings","No support for pluralization or gender-specific translations in the current implementation","Right-to-left (RTL) languages not supported; UI layout is left-to-right only","Translation updates require application rebuild; no runtime translation loading from external sources"],"requires":["i18n library (implementation details not specified in DeepWiki)","JSON translation files in public/locales/{language}/translation.json","React for UI rendering"],"input_types":["translation keys (strings)","language preference (string code, e.g., 'en', 'zh')","translation parameters (for dynamic content)"],"output_types":["translated UI text","language-specific formatting (dates, numbers, currency)"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_8","uri":"capability://memory.knowledge.conversation.management.and.chat.history.persistence","name":"conversation management and chat history persistence","description":"Implements a conversation management system that stores chat history in SQLite with per-conversation metadata (title, created_at, updated_at, provider, model). Supports conversation creation, deletion, renaming, and archiving. Maintains message history with role (user/assistant), content, and metadata (tokens, provider, model). Provides conversation search and filtering by date, provider, or model. Integrates with Zustand state management for UI state (current conversation, message list) and SQLite for persistent storage.","intents":["Save and retrieve chat conversations across application sessions","Organize conversations by topic, provider, or date","Search through conversation history to find previous discussions","Compare different models or providers on the same topic by referencing past conversations"],"best_for":["users who need persistent chat history for reference and organization","teams collaborating on AI-assisted projects with shared conversation history","developers building AI applications with conversation persistence requirements"],"limitations":["Conversation search is full-text only; no semantic search across conversation content","No built-in conversation sharing or export (except manual copy-paste)","Conversation metadata is limited to title, timestamps, provider, model; no custom tags or categories","SQLite storage is local only; no built-in multi-device sync (optional Supabase sync available separately)"],"requires":["SQLite for conversation storage","Zustand for state management","React for UI rendering"],"input_types":["conversation title (string)","messages (user/assistant content)","provider and model configuration","search queries"],"output_types":["conversation list with metadata","message history for selected conversation","search results","conversation statistics (message count, token usage)"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-nanbingxyz--5ire__cap_9","uri":"capability://text.generation.language.real.time.message.rendering.with.streaming.support","name":"real-time message rendering with streaming support","description":"Implements streaming message rendering in React that displays AI responses character-by-character as they arrive from the provider. Uses React state updates to append chunks to the message content, with optimized re-rendering to avoid jank. Supports markdown rendering with syntax highlighting for code blocks. Handles message metadata display (tokens, model, provider, timestamp). Integrates with the chat service to receive streaming chunks and update UI in real-time.","intents":["Display AI responses as they stream in real-time for immediate feedback","Render markdown and code blocks with syntax highlighting in chat messages","Show message metadata (tokens used, model, provider) inline with messages","Handle long responses without blocking the UI"],"best_for":["users expecting real-time feedback from AI responses","developers building responsive chat interfaces","applications with long-form AI outputs (code generation, documentation)"],"limitations":["Streaming rendering causes frequent React re-renders; may cause jank on low-end machines with many concurrent messages","Markdown parsing and syntax highlighting add ~50-100ms latency per message; no lazy rendering for off-screen messages","Message metadata display is inline only; no collapsible details panel for token counts and provider info","No support for streaming structured data (JSON, tables); only text and markdown"],"requires":["React 18.3.1 for component rendering","Markdown parser (implementation details not specified)","Syntax highlighter for code blocks (implementation details not specified)"],"input_types":["streaming text chunks from provider","message metadata (tokens, model, provider, timestamp)","markdown content"],"output_types":["rendered React components","formatted markdown with syntax highlighting","message metadata display"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":48,"verified":false,"data_access_risk":"high","permissions":["API keys for at least one supported provider (OpenAI, Anthropic, etc.)","Electron 31.7.1 runtime","Node.js v20.10.0 or higher","MCP server implementation (local or remote)","For StdioTransport: executable MCP server binary in PATH or specified directory","For SSETransport/StreamableHTTPTransport: HTTP server running MCP protocol","React for UI rendering","SQLite for parameter storage","Chat service integration","@xenova/transformers for bge-m3 embeddings"],"failure_modes":["Token counting accuracy varies by provider — some providers don't expose exact token counts, requiring client-side estimation","Streaming latency depends on provider's API response time; no local batching optimization","Provider-specific features (vision, function calling) require custom integration per provider","StdioTransport requires the MCP server process to be available locally — no automatic fallback if process crashes","SSETransport and StreamableHTTPTransport add network latency compared to stdio; no built-in retry logic for transient failures","Tool execution approval policies are UI-driven; no programmatic policy engine for complex authorization rules","MCP server discovery is manual configuration only — no auto-discovery mechanism","Parameter controls are UI-based sliders; no programmatic parameter validation or constraints","Parameter changes apply only to new messages; no retroactive parameter adjustment for previous messages","No parameter presets or templates; users must manually configure parameters each time","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.5851420736903379,"quality":0.49,"ecosystem":0.55,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.062Z","last_scraped_at":"2026-05-03T13:56:59.048Z","last_commit":"2026-03-18T09:40:08Z"},"community":{"stars":5192,"forks":406,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=nanbingxyz--5ire","compare_url":"https://unfragile.ai/compare?artifact=nanbingxyz--5ire"}},"signature":"rwIn7O2kurZrbY3pCekQmtWZLRTwSOQ7i8Uj9+/M4jAhcPjidn75DF3TF73Oq8oaXer1Qs/jEPQSiK+D3Fe4CQ==","signedAt":"2026-06-21T08:54:20.324Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/nanbingxyz--5ire","artifact":"https://unfragile.ai/nanbingxyz--5ire","verify":"https://unfragile.ai/api/v1/verify?slug=nanbingxyz--5ire","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}