{"adoption": {"forks": 286, "observed_at": "2026-08-28T04:07:39.408204+00:00", "stars": 3043}, "canonical_url": "https://ross.abutalabs.com/products/swirl-search", "card": {"archived": false, "artifact_type": "application", "description": "AI Search & RAG Without Moving Your Data. Get instant answers from your company's knowledge across 100+ apps while keeping data secure. Deploy in minutes, not months.", "domain": ["large-language-models", "erp", "developer-tools", "self-hosted"], "enriched": true, "function": ["search-engine", "rag", "llm-inference", "api-framework", "mcp", "self-hosted"], "health_score": 99, "homepage": "https://swirlaiconnect.com/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["swirlai/swirl-search"], "name": "swirlai/swirl-search", "platform": ["python", "self-hosted", "cloud"], "pushed_at": "2026-08-25T19:06:21+00:00", "repo": "swirlai/swirl-search", "stars": 3043, "tags": ["federated-search", "metasearch", "enterprise-search", "no-vector-db", "live-query", "permissions-aware", "django", "connectors", "ai-search", "rag-without-etl", "search", "retrieval-augmented-generation", "docker", "kubernetes", "web-server"], "topics": ["search", "search-engine", "federated-query", "federated-search", "ai-search", "bigquery", "large-language-models", "relevancy", "metasearch", "django", "gpt", "python", "rag", "unified-search", "retrieval-augmented-generation"], "urls": [], "use_cases": ["search across all company apps without moving data", "get AI answers with citations from internal knowledge", "federated enterprise search with source permissions enforced", "add RAG to company data without building a vector database or ETL", "let AI agents search enterprise data via MCP", "self-hosted AI search over Microsoft 365, SharePoint, and cloud file stores"], "what_it_is": "SWIRL is an open-source federated AI search and RAG platform that queries enterprise apps and data sources live, re-ranks results with a hybrid keyword/embedding/cross-encoder pipeline, and returns LLM-generated answers with citations - without copying data into a vector database. It is self-hosted via Docker/Kubernetes, enforces source-level permissions, and offers an MCP server so AI agents can search through it.", "when_to_avoid": ["you need to index and deeply analyze a static corpus offline rather than query live sources", "you want a lightweight embeddable search library rather than a deployable service", "you need features like the three-pass reranker, canonical answers, or the full 150+ connector library that are Enterprise-only"], "when_to_choose": ["you need secure, permission-aware search across many SaaS and enterprise sources", "you want to avoid standing up and governing a vector database or ETL pipelines", "you need self-hosted or air-gapped deployment with your own LLM choice", "you want agents (via MCP) to query company knowledge safely"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swirl-search", "repo": "swirlai/swirl-search", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:39.408204+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:29:12.647406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0205072784865da2e6cf65025845dfdf87ab3c7fe91e0be7cf48df74d327eb22", "fetched_at": "2026-08-28T04:07:39.408204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/swirlai/swirl-search"}, {"content_hash": "e81648d8f8113871bc1862a39832e865a0e527082fc530818080fbcede6825f7", "fetched_at": "2026-08-29T09:44:24.103236+00:00", "kind": "homepage", "missing": false, "url": "https://swirlaiconnect.com/"}, {"content_hash": "69786fdd80f55f07184ce2c2902ac6f71e557b547a02e90143264e585e7adf83", "fetched_at": "2026-08-29T09:44:24.114636+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/"}, {"content_hash": "9b5b96b9c4cbd4d5b6ec74b4221d37800bf722674836bb12d281739031d7b7ed", "fetched_at": "2026-08-29T09:44:24.146201+00:00", "kind": "site_page", "missing": false, "url": "https://docs.swirlaiconnect.com/claude-plugin"}, {"content_hash": "3c7f78428f41f39893b8d4064c8d775c7714eff1b428a80052211c5f79aa4230", "fetched_at": "2026-08-29T09:44:24.112540+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/releases"}, {"content_hash": "2edbcc96980208b64d6aa164f9131db761755924abb72b0047230e66d91e11e0", "fetched_at": "2026-08-29T09:44:24.116761+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/faq"}, {"content_hash": "f998ddb3dd288d270f2179b20381143125099f05c5a13e55486561bb2330e7fc", "fetched_at": "2026-08-29T09:44:24.118865+00:00", "kind": "site_page", "missing": false, "url": "https://swirlaiconnect.com/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 77}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1609, "days_push": 8, "days_rel": 72, "gap_med": 33.0, "n_releases_24m": 15}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}