Full Code of andrewyng/context-hub for AI

main 596506ebb4d5 cached
1784 files
16.4 MB
4.4M tokens
168 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (17,646K chars total). Download the full file to get everything.
Repository: andrewyng/context-hub
Branch: main
Commit: 596506ebb4d5
Files: 1784
Total size: 16.4 MB

Directory structure:
gitextract_x79fttdt/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ci.yml
│       ├── deploy-content.yml
│       └── publish.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── cli/
│   ├── .npmignore
│   ├── README.md
│   ├── bin/
│   │   ├── chub
│   │   └── chub-mcp
│   ├── package.json
│   ├── skills/
│   │   └── get-api-docs/
│   │       └── SKILL.md
│   ├── src/
│   │   ├── commands/
│   │   │   ├── annotate.js
│   │   │   ├── build.js
│   │   │   ├── cache.js
│   │   │   ├── feedback.js
│   │   │   ├── get.js
│   │   │   ├── search.js
│   │   │   └── update.js
│   │   ├── index.js
│   │   ├── lib/
│   │   │   ├── analytics.js
│   │   │   ├── annotations.js
│   │   │   ├── bm25.js
│   │   │   ├── cache.js
│   │   │   ├── config.js
│   │   │   ├── frontmatter.js
│   │   │   ├── identity.js
│   │   │   ├── normalize.js
│   │   │   ├── output.js
│   │   │   ├── registry.js
│   │   │   ├── telemetry.js
│   │   │   └── welcome.js
│   │   └── mcp/
│   │       ├── server.js
│   │       ├── stdio-lifecycle.js
│   │       └── tools.js
│   ├── test/
│   │   ├── e2e.test.js
│   │   ├── fixtures/
│   │   │   ├── acme/
│   │   │   │   └── docs/
│   │   │   │       ├── versioned-api/
│   │   │   │       │   ├── v1/
│   │   │   │       │   │   └── DOC.md
│   │   │   │       │   └── v2/
│   │   │   │       │       └── DOC.md
│   │   │   │       └── widgets/
│   │   │   │           ├── DOC.md
│   │   │   │           └── references/
│   │   │   │               └── advanced.md
│   │   │   ├── multilang/
│   │   │   │   └── docs/
│   │   │   │       └── client/
│   │   │   │           ├── go/
│   │   │   │           │   └── DOC.md
│   │   │   │           ├── javascript/
│   │   │   │           │   └── DOC.md
│   │   │   │           └── python/
│   │   │   │               └── DOC.md
│   │   │   └── testskills/
│   │   │       └── skills/
│   │   │           └── deploy/
│   │   │               └── SKILL.md
│   │   └── lib/
│   │       ├── bm25.test.js
│   │       ├── frontmatter.test.js
│   │       └── normalize.test.js
│   └── tests/
│       ├── commands/
│       │   ├── build.test.js
│       │   ├── get.test.js
│       │   ├── go-lang.test.js
│       │   └── search.test.js
│       ├── lib/
│       │   ├── analytics.test.js
│       │   ├── bm25.test.js
│       │   ├── cache.test.js
│       │   ├── config.test.js
│       │   ├── frontmatter.test.js
│       │   ├── normalize.test.js
│       │   ├── registry.multisource.test.js
│       │   ├── registry.search-behavior.test.js
│       │   ├── registry.test.js
│       │   └── welcome.test.js
│       └── mcp/
│           ├── stdio-lifecycle.test.js
│           └── tools.test.js
├── content/
│   ├── accelerate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiofiles/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiohttp/
│   │   └── docs/
│   │       ├── cors/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiohttp-cors/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiomysql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiosignal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiosqlite/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── airtable/
│   │   └── docs/
│   │       └── database/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── albumentations/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── alembic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── altair/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── amplitude/
│   │   └── docs/
│   │       └── analytics/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── amqp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── angular/
│   │   └── docs/
│   │       └── core/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── annotated-types/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ansible/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── antd/
│   │   └── docs/
│   │       └── antd/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── anthropic/
│   │   └── docs/
│   │       ├── claude-api/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── anyio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── apache-airflow/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-airbyte/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-amazon/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-beam/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-cassandra/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-druid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-flink/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-hdfs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-hive/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-impala/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-kafka/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-kylin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-livy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-pig/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-pinot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-spark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-sqoop/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apprise/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-asana/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-atlassian-jira/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-celery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cloudant/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cncf-kubernetes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cohere/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-compat/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-io/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-sql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-daskexecutor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-datadog/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-dbt-cloud/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-dingding/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-discord/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-edge3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-elasticsearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-exasol/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-fab/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-facebook/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-fivetran/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-ftp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-github/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-google/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-grpc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-hashicorp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-http/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-imap/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-influxdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-jdbc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-jira/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-mssql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-psrp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-winrm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-mongo/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-mysql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-neo4j/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-odbc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-openfaas/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-openlineage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-opensearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-opsgenie/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-oracle/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-pagerduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-papermill/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-pinecone/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-plexus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-postgres/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-presto/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-qdrant/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-qubole/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-salesforce/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-samba/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-segment/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sendgrid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sftp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-singularity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-smtp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sqlite/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-ssh/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-tableau/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-telegram/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-teradata/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-trino/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-vertica/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-weaviate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-yandex/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── providers-zendesk/
│   │           └── python/
│   │               └── DOC.md
│   ├── apache-beam/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── appdirs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── applitools/
│   │   └── docs/
│   │       └── eyes-playwright/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── apscheduler/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ariadne/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── arq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── arrow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── asana/
│   │   └── docs/
│   │       └── tasks/
│   │           └── DOC.md
│   ├── assemblyai/
│   │   └── docs/
│   │       └── transcription/
│   │           └── DOC.md
│   ├── async-timeout/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── asyncpg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── atlassian/
│   │   └── docs/
│   │       └── confluence/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── attrs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── auth0/
│   │   └── docs/
│   │       └── identity/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── authlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── autogen/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               ├── DOC.md
│   │               └── references/
│   │                   ├── agents.md
│   │                   └── group-chat.md
│   ├── autopep8/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── av/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aws/
│   │   └── docs/
│   │       ├── acm/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── aiobotocore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── amplify/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── api-gateway/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── apigatewayv2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── application-auto-scaling/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── apprunner/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appstream/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appsync/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── athena/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── auto-scaling/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── backup/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── batch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── bedrock/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── bedrock-runtime/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── boto3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── boto3-stubs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── botocore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── budgets/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── chime-sdk-messaging/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cleanrooms/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cli/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cloudformation/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudfront/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudfront-signer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudtrail/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudwatch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codebuild/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codecommit/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codedeploy/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codepipeline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognito-identity/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognito-identity-provider/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── comprehend/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── compute-optimizer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── config-service/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── connect/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── controltower/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cost-explorer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── credential-providers/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── datasync/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── deadline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── docdb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ec2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ecr/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ecs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── efs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eks/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elastic-load-balancing-v2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elasticache/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elasticsearch-service/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── emr/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── entityresolution/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eventbridge/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── firehose/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── forecast/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── fsx/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── glue/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── guardduty/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── health/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── healthlake/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iam/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── inspector2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot-data-plane/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot-events/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ivs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── keyspaces/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── kinesis/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── kms/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lambda/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lex-runtime-v2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lib-dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lib-storage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── license-manager/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lightsail/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── location/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── macie2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── managedblockchain/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── marketplace-catalog/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediaconnect/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediaconvert/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── medialive/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediapackage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediastore/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── memorydb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-endpoint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-retry/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-signing/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-stack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mwaa/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-accessanalyzer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-acm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-amplify/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-apigateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-apprunner/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-appstream/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-appsync/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-athena/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-autoscaling/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-backup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-agent/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-agent-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cleanrooms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudformation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudfront/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudwatch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-codebuild/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-codepipeline/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cognito-identity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cognito-idp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-comprehend/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-config/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-connect/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-datasync/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-dynamodb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ec2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ecr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ecs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-efs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-eks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-elasticache/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-elbv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-emr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-events/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-evidently/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-firehose/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-forecast/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-fsx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-glue/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-guardduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-iam/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-inspector2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-iot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ivs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-kinesis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-kms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lambda/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lex-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lightsail/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-logs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-macie2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-mediaconvert/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-memorydb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-mwaa/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-neptune/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-opensearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-organizations/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-personalize/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-pinpoint/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-pipes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-polly/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-proton/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-qbusiness/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-qldb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-rds/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-redshift/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-rekognition/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-route53/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-route53resolver/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-s3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sagemaker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-scheduler/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-secretsmanager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-securityhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-securitylake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-servicediscovery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ses/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sesv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sqs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ssm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sso/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sso-admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-stepfunctions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sts/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-textract/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-timestream-write/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-transcribe/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-transfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-translate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-wafv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-workspaces/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── neptune/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── network-firewall/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── omics/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── opensearch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── organizations/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── payment-cryptography/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── personalize/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── pinpoint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── polly/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── proton/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── qldb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ram/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── rds/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── redshift/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── rekognition/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── route-53/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── route53-recovery-control-config/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── s3-presigned-post/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3-request-presigner/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3transfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sagemaker/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── secrets-manager/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── service-catalog/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── service-quotas/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ses/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sfn/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── shield/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── smithy-client/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sns/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sqs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ssm/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sts/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── support/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── textract/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── timestream-query/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── timestream-write/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── transcribe/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── transfer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── translate/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── types/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-base64/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-utf8/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── verifiedpermissions/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── wafv2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── workspaces/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── xray/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── axios/
│   │   └── docs/
│   │       └── axios/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── azure/
│   │   └── docs/
│   │       ├── abort-controller/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-form-recognizer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-formrecognizer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-language-text/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-ml/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-text-analytics/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-textanalytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── app-configuration/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appconfiguration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── arm-appservice/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-compute/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-containerservice/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-cosmosdb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-deviceprovisioningservices/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-keyvault/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-maps/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-monitor/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-network/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-resources/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-sql/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-storage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognitiveservices-speech/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── common/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── communication-chat/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── communication-common/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── communication-email/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── communication-sms/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── container-registry/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── containerregistry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core-auth/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── core-rest-pipeline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── core-util/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cosmos/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── data-tables/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── digital-twins-core/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── digitaltwins-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── event-hubs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eventhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── eventhubs-checkpointstore-blob/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── identity/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-certificates/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-keys/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-secrets/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── logger/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── maps-render/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── maps-route/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── maps-search/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-applicationinsights/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-authorization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cdn/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cognitiveservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-communication/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-compute/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-containerinstance/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-containerservice/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cosmosdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datafactory/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datalake-analytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datalake-store/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-devtestlabs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-dns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-eventgrid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-eventhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-frontdoor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-hdinsight/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-iothub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-keyvault/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-kusto/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-loganalytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-logic/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-machinelearningservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-managedservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-managementgroups/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-maps/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-marketplaceordering/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-media/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-monitor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-netapp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-network/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-notificationhubs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-policyinsights/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-privatedns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-rdbms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-recoveryservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-recoveryservicesbackup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-relay/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resource/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resource-policy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resourcegraph/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-search/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-security/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-servicebus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-servicefabric/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-signalr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-sql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-sqlvirtualmachine/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-storage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-subscription/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-trafficmanager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-web/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitor-opentelemetry/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitor-query/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── notification-hubs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── search-documents/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-bus/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── servicebus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-blob/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-file-datalake/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-file-share/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-queue/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── web-pubsub/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── babel/
│   │   └── docs/
│   │       ├── helper-environment-visitor/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-module-imports/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-plugin-utils/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-string-parser/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-validator-identifier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-decorators/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-pipeline-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-record-and-tuple/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-class-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-dynamic-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-import-meta/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-jsx/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-optional-chaining/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-top-level-await/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-typescript/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-arrow-functions/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-async-to-generator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-block-scoping/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-class-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-classes/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-destructuring/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-dynamic-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-exponentiation-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-export-namespace-from/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-for-of/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-json-strings/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-logical-assignment-operators/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-modules-commonjs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-nullish-coalescing-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-numeric-separator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-object-rest-spread/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-optional-chaining/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-parameters/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-private-methods/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-regenerator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-runtime/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-shorthand-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-spread/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-template-literals/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-typeof-symbol/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── plugin-transform-unicode-regex/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── backoff/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bandit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bcrypt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── beautifulsoup4/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bentoml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── billiard/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── binance/
│   │   └── docs/
│   │       └── trading/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── bitsandbytes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── black/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bokeh/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bottle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── braintree/
│   │   └── docs/
│   │       └── gateway/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── build/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cachetools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cairosvg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── camelot-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cartopy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cassandra-driver/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── catboost/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cattrs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cbor2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── celery/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cerberus/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── certifi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cffi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cfgv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── chalk/
│   │   └── docs/
│   │       └── chalk/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── charset-normalizer/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── chokidar/
│   │   └── docs/
│   │       └── chokidar/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── chromadb/
│   │   └── docs/
│   │       ├── embeddings-db/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clearml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clerk/
│   │   └── docs/
│   │       └── auth/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── click/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── click-plugins/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clickhouse-connect/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cloudflare/
│   │   └── docs/
│   │       ├── workers/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── workers-runtime/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── cloudpickle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cockroachdb/
│   │   └── docs/
│   │       └── distributed-db/
│   │           └── DOC.md
│   ├── cohere/
│   │   └── docs/
│   │       ├── llm/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── colorama/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── colorlog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── comet-ml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── commander/
│   │   └── docs/
│   │       └── commander/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── commitizen/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── confluent-kafka/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cookiecutter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── copier/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── crewai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── croniter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cryptography/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cssselect/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cypress/
│   │   └── docs/
│   │       └── cypress/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── cython/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cytoolz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dagster/
│   │   └── docs/
│   │       ├── airbyte/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── aws/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dagit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dbt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── duckdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── fivetran/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gcp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── graphql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── k8s/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mlflow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pagerduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pandas/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── polars/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── postgres/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── spark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── wandb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── webserver/
│   │           └── python/
│   │               └── DOC.md
│   ├── dash/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dask/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── databases/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dataclasses-json/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datadog/
│   │   └── docs/
│   │       ├── monitoring/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datahub/
│   │   └── docs/
│   │       └── sdk/
│   │           └── python/
│   │               ├── DOC.md
│   │               └── references/
│   │                   ├── assertions.md
│   │                   ├── entities.md
│   │                   ├── lineage.md
│   │                   └── search.md
│   ├── datasets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datashader/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dateparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dbt-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── debug/
│   │   └── docs/
│   │       └── debug/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── decorator/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── deepgram/
│   │   └── docs/
│   │       └── speech/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── deepl/
│   │   └── docs/
│   │       └── translation/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── deepseek/
│   │   └── docs/
│   │       └── llm/
│   │           └── DOC.md
│   ├── deepspeed/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── deprecated/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── detect-secrets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── diffusers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dill/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── directus/
│   │   └── docs/
│   │       └── headless-cms/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── dirty-equals/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── discord/
│   │   └── docs/
│   │       └── bot/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── diskcache/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── django/
│   │   └── docs/
│   │       ├── allauth/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── axes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cacheops/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-beat/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-results/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── channels/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── compressor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cors-headers/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── countries/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── crispy-forms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── csp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── debug-toolbar/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── environ/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── extensions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── filter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── guardian/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── haystack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── health-check/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── import-export/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── model-utils/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mptt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ninja/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── oauth-toolkit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── phonenumber-field/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── polymorphic/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── q2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-simplejwt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-spectacular/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-yasg/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-knox/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── silk/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── simple-history/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storages/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── taggit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── treebeard/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── waffle/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── webpack-loader/
│   │           └── python/
│   │               └── DOC.md
│   ├── dlt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docker/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docling/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docutils/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dramatiq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── duckdb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dvc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dynaconf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── edubase/
│   │   └── docs/
│   │       └── api/
│   │           ├── DOC.md
│   │           └── references/
│   │               ├── permissions.md
│   │               ├── question-types.md
│   │               ├── quiz-sets.md
│   │               ├── scoring.md
│   │               ├── tagging.md
│   │               ├── users.md
│   │               └── webhooks.md
│   ├── einops/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── elasticsearch/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── search/
│   │           └── DOC.md
│   ├── elevenlabs/
│   │   └── docs/
│   │       └── text-to-speech/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── email-validator/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── emotion/
│   │   └── docs/
│   │       └── react/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── esbuild/
│   │   └── docs/
│   │       └── esbuild/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── eslint/
│   │   └── docs/
│   │       ├── eslint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-airbnb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-next/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-prettier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-standard/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-import-resolver-typescript/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-deprecation/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-jest/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-jsx-a11y/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-n/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-prettier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-promise/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-react/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-react-hooks/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-security/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-simple-import-sort/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-sonarjs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-storybook/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-tailwindcss/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-testing-library/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-unicorn/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-unused-imports/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── eslint-plugin-vitest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── evaluate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── eventlet/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── evidently/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── exceptiongroup/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── express/
│   │   └── docs/
│   │       └── express/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── fabric/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── factory-boy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── faiss-cpu/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── faker/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── falcon/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fast-xml-parser/
│   │   └── docs/
│   │       └── fast-xml-parser/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── fastapi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-cache2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-limiter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-mail/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-pagination/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-users/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastmcp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── feast/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── feedparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── filelock/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fiona/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fire/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── firebase/
│   │   └── docs/
│   │       ├── admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── auth/
│   │           └── DOC.md
│   ├── flake8/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── flask/
│   │   └── docs/
│   │       ├── admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── babel/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── caching/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-helper/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cors/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dance/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── jwt-extended/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── limiter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── login/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mail/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── marshmallow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── migrate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── opentelemetry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── restful/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── restx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── security-too/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── smorest/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── socketio/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sqlalchemy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── testing/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── wtf/
│   │           └── python/
│   │               └── DOC.md
│   ├── flax/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── flit-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── folium/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fpdf2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── freezegun/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── frozenlist/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fsspec/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gatsby/
│   │   └── docs/
│   │       └── gatsby/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── gemini/
│   │   └── docs/
│   │       ├── deep-research/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── genai/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── gensim/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── geopandas/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── geopy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gevent/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── github/
│   │   └── docs/
│   │       └── octokit/
│   │           └── DOC.md
│   ├── github3-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── glob/
│   │   └── docs/
│   │       └── glob/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── google/
│   │   └── docs/
│   │       ├── access-context-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── aiplatform/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── alloydb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-gateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-python-client/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── appengine-admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── appengine-logging/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── artifact-registry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── asset/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── assured-workloads/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── auth/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── auth-httplib2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── automl/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── beyondcorp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── beyondcorp-appconnections/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-connection/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-datatransfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-migration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-reservation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-storage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigtable/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── billing/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── binary-authorization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── build/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── certificate-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── channel/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── compute/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── config-connector/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── contact-center-insights/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── container/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── data-fusion/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datacatalog/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataflow/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataform/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataplex/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataproc/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataproc-metastore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datastore/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datastream/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── debug-agent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── deploy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dialogflow/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── discoveryengine/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dlp/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── documentai/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── error-reporting/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── essential-contacts/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── eventarc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── filestore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── firestore/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── functions/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── generativeai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-backup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-connect-gateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-hub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-multicloud/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gsuiteaddons/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iam/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iap/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ids/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── kms/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── language/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── life-sciences/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── logging/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── managed-identities/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── media-translation/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── memcache/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── migrationcenter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitoring/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-connectivity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-management/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-security/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-services/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── notebooks/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── optimization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── orchestration-airflow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── os-config/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── os-login/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── phishing-protection/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── policy-troubleshooter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── private-ca/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── private-catalog/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── profiler/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── public-ca/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pubsub/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rapidmigrationassessment/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recaptcha-enterprise/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recommendations-ai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recommender/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resource-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resource-settings/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resumable-media/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── retail/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── run/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── scheduler/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── secret-manager/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── security-center/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── securitycenter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-control/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-directory/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-management/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-usage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── shell/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── source-context/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── spanner/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── speech/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── talent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── tasks/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── tpu/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── trace/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── trace-agent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── translate/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vertexai/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── video-intelligence/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── videointelligence/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vision/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vm-migration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vmwareengine/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vpc-access/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── webrisk/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── websecurityscanner/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── workflows/
│   │           └── python/
│   │               └── DOC.md
│   ├── googleapis-common-protos/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── got/
│   │   └── docs/
│   │       └── got/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── gql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gradio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── graphene/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── great-expectations/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── groq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── grpcio/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── status/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── tools/
│   │           └── python/
│   │               └── DOC.md
│   ├── guidance/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gunicorn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── h11/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── h3/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hamilton/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hatch/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hatchling/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── haystack-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── holoviews/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── html5lib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httpcore/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httplib2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httpx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hubspot/
│   │   └── docs/
│   │       └── crm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── huey/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── huggingface/
│   │   └── docs/
│   │       ├── hub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── transformers/
│   │           └── DOC.md
│   ├── humanfriendly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── humanize/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hvplot/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hydra-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hypothesis/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── identify/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── idna/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── imageio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── importlib-metadata/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── importlib-resources/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── influxdb-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── iniconfig/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── instructor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── intercom/
│   │   └── docs/
│   │       └── messaging/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── intercom-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── invoke/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ipykernel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ipywidgets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── isodate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── isort/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── itsdangerous/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jax/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jest/
│   │   └── docs/
│   │       └── jest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── jinja2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jira/
│   │   └── docs/
│   │       └── issues/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── jiter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jmespath/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── joblib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jsonschema/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jsonschema-specifications/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyter-server/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyterhub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyterlab/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kafka/
│   │   └── docs/
│   │       └── streaming/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── kedro/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── keras/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kombu/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kornia/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kubernetes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lancedb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── landingai/
│   │   ├── docs/
│   │   │   └── ade/
│   │   │       ├── api/
│   │   │       │   └── DOC.md
│   │   │       ├── python/
│   │   │       │   └── DOC.md
│   │   │       └── typescript/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       └── ade/
│   │           ├── document-extraction/
│   │           │   ├── .env-sample
│   │           │   ├── .gitignore
│   │           │   ├── SKILL.md
│   │           │   └── references/
│   │           │       ├── chunk-types.md
│   │           │       ├── extraction-schemas.md
│   │           │       ├── file-formats.md
│   │           │       ├── troubleshooting.md
│   │           │       └── use-cases.md
│   │           └── document-workflows/
│   │               ├── SKILL.md
│   │               └── references/
│   │                   ├── batch-processing.md
│   │                   ├── database-integration.md
│   │                   ├── rag-pipelines.md
│   │                   ├── schema-catalog.md
│   │                   ├── table-stitching.md
│   │                   └── visualization.md
│   ├── langchain/
│   │   └── docs/
│   │       ├── community/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-community/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-openai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langfuse/
│   │   └── docs/
│   │       └── observability/
│   │           └── python/
│   │               └── DOC.md
│   ├── langgraph/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langserve/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langsmith/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── launchdarkly/
│   │   └── docs/
│   │       └── feature-flags/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── launchdarkly-server-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── librosa/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lightgbm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lightning/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── linear/
│   │   └── docs/
│   │       └── tracker/
│   │           └── DOC.md
│   ├── litellm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── litestar/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── livekit/
│   │   └── docs/
│   │       └── realtime/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── llama-index/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── localstack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── locust/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lodash/
│   │   └── docs/
│   │       └── lodash/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── loguru/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lru-cache/
│   │   └── docs/
│   │       └── lru-cache/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── luigi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lxml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mage-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mailchimp/
│   │   └── docs/
│   │       └── marketing/
│   │           └── DOC.md
│   ├── mako/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── markupsafe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── marshmallow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── matplotlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── maturin/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mccabe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mcp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mediapipe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── meilisearch/
│   │   └── docs/
│   │       └── search/
│   │           └── DOC.md
│   ├── mem0ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── metaflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── micromatch/
│   │   └── docs/
│   │       └── micromatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── microsoft/
│   │   └── docs/
│   │       └── onedrive/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── minimatch/
│   │   └── docs/
│   │       └── minimatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── mistralai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mkdirp/
│   │   └── docs/
│   │       └── mkdirp/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── mkdocs/
│   │   └── docs/
│   │       ├── material/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mlflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mocha/
│   │   └── docs/
│   │       └── mocha/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── modal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mongodb/
│   │   └── docs/
│   │       └── atlas/
│   │           └── DOC.md
│   ├── mongoengine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── more-itertools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── motor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── msal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── msgpack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mui/
│   │   └── docs/
│   │       └── material/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── multidict/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── multiprocess/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mypy/
│   │   └── docs/
│   │       ├── extensions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nanoid/
│   │   └── docs/
│   │       └── nanoid/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nbconvert/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nbdev/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nbformat/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── neo4j/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── neptune/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── networkx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── newrelic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── next/
│   │   └── docs/
│   │       └── next/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nicegui/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nltk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── node-fetch/
│   │   └── docs/
│   │       └── node-fetch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nodeenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── notebook/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── notion/
│   │   └── docs/
│   │       └── workspace-api/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── nox/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── numba/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── numpy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nuxt/
│   │   └── docs/
│   │       └── nuxt/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── oauthlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── okta/
│   │   └── docs/
│   │       └── identity/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── olakai/
│   │   ├── docs/
│   │   │   ├── cli/
│   │   │   │   └── javascript/
│   │   │   │       └── DOC.md
│   │   │   └── sdk/
│   │   │       ├── javascript/
│   │   │       │   └── DOC.md
│   │   │       └── python/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       ├── integrate/
│   │       │   └── SKILL.md
│   │       └── new-project/
│   │           └── SKILL.md
│   ├── omegaconf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── onnx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── onnxruntime/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── openai/
│   │   └── docs/
│   │       ├── chat/
│   │       │   ├── go/
│   │       │   │   └── DOC.md
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opencv-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── openpyxl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opensearch-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opentelemetry/
│   │   └── docs/
│   │       ├── api/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── exporter-otlp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── exporter-prometheus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-django/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-fastapi/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-flask/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-requests/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── sdk/
│   │           └── python/
│   │               └── DOC.md
│   ├── optuna/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── orjson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── packaging/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pandas/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pandera/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── panel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── papermill/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── paramiko/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── passlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── paypal/
│   │   └── docs/
│   │       └── checkout/
│   │           └── DOC.md
│   ├── pdf2image/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdfplumber/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdoc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdpyras/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── peewee/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── peft/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pendulum/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── petl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── phidata/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── phonenumbers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── picocolors/
│   │   └── docs/
│   │       └── picocolors/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── picomatch/
│   │   └── docs/
│   │       └── picomatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── pika/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pillow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pinecone/
│   │   └── docs/
│   │       └── sdk/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── pinecone-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pip/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pip-tools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pipdeptree/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── plaid/
│   │   └── docs/
│   │       └── banking/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── platformdirs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── playwright/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── playwright/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── playwright-community/
│   │   └── skills/
│   │       └── login-flows/
│   │           └── SKILL.md
│   ├── plotly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── plotnine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pluggy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── poetry/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── polars/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── polyfactory/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pony/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── postcss/
│   │   └── docs/
│   │       └── postcss/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── postgrest/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── posthog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── postmark/
│   │   └── docs/
│   │       └── transactional-email/
│   │           └── DOC.md
│   ├── pre-commit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── prefect/
│   │   └── docs/
│   │       ├── aws/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dbt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── email/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gcp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── github/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gitlab/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── kubernetes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── shell/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── sqlalchemy/
│   │           └── python/
│   │               └── DOC.md
│   ├── prettier/
│   │   └── docs/
│   │       └── prettier/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── prettytable/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── prisma/
│   │   └── docs/
│   │       └── orm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── prometheus-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── protobuf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psutil/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psycopg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psycopg2-binary/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pulumi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── puppeteer/
│   │   └── docs/
│   │       └── puppeteer/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── pyarrow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyasn1-modules/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pycodestyle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pycparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic/
│   │   └── docs/
│   │       ├── ai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── extra-types/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── settings/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyflakes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygithub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygments/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyjwt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pylint/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymemcache/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymongo/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymupdf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymysql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pynacl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyo3-pack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyparsing/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyproj/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyramid/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyright/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyspark/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest/
│   │   └── docs/
│   │       ├── asyncio/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bdd/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── benchmark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cov/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── django/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── env/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── flask/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── html/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── httpx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── lazy-fixture/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mock/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── randomly/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snapshot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sugar/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── timeout/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── xdist/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-asyncio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-bdd/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-cov/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-django/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-env/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-flask/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-httpx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-mock/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-randomly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-sugar/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-timeout/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-xdist/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-dateutil/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-docx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-dotenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-jose/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-json-logger/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-multipart/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-pptx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-slugify/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyyaml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── qdrant/
│   │   └── docs/
│   │       └── vector-search/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── qdrant-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rabbitmq/
│   │   └── docs/
│   │       └── message-queue/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── rasterio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ray/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── razorpay/
│   │   └── docs/
│   │       └── payments/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── react/
│   │   └── docs/
│   │       ├── react/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── react-dom/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── redis/
│   │   └── docs/
│   │       ├── key-value/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── redux/
│   │   └── docs/
│   │       ├── redux/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── toolkit/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── referencing/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── reflex/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── regex/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── replicate/
│   │   └── docs/
│   │       ├── model-hosting/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── reportlab/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── requests/
│   │   └── docs/
│   │       ├── oauthlib/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── resend/
│   │   └── docs/
│   │       └── email/
│   │           └── DOC.md
│   ├── resolve/
│   │   └── docs/
│   │       └── resolve/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── responses/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── respx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── retrying/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rich/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rimraf/
│   │   └── docs/
│   │       └── rimraf/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── rollup/
│   │   └── docs/
│   │       └── rollup/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── rpds-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rsa/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ruff/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── s3fs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── safetensors/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── safety/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── salesforce/
│   │   └── docs/
│   │       └── crm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── salt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sanic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── schedule/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scikit-learn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scipy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scrapy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── seaborn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── selenium/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── semantic-kernel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── semver/
│   │   └── docs/
│   │       └── semver/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── sendgrid/
│   │   └── docs/
│   │       ├── email-api/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sentence-transformers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sentry/
│   │   └── docs/
│   │       └── error-tracking/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── sentry-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── setuptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sgqlc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── shapely/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── shopify/
│   │   └── docs/
│   │       └── storefront/
│   │           └── DOC.md
│   ├── shortuuid/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── simmer/
│   │   └── docs/
│   │       └── sdk/
│   │           └── python/
│   │               └── DOC.md
│   ├── simplejson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── singer-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── six/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── slack/
│   │   └── docs/
│   │       └── workspace/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── slack-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── slowapi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── smart-open/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── smolagents/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sniffio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── snowflake/
│   │   └── docs/
│   │       ├── cortex-ai-functions/
│   │       │   └── DOC.md
│   │       ├── cortex-analyst/
│   │       │   └── DOC.md
│   │       ├── cortex-code/
│   │       │   ├── DOC.md
│   │       │   └── references/
│   │       │       ├── commands.md
│   │       │       ├── configuration.md
│   │       │       ├── mcp-and-agents.md
│   │       │       └── snowflake-tools.md
│   │       ├── cortex-code-snowsight/
│   │       │   └── DOC.md
│   │       ├── cortex-search/
│   │       │   └── DOC.md
│   │       ├── snowflake-notebooks/
│   │       │   └── DOC.md
│   │       └── snowpark-python/
│   │           └── DOC.md
│   ├── soda-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── solara/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sourceparts/
│   │   ├── docs/
│   │   │   └── parts-mcp/
│   │   │       └── python/
│   │   │           ├── DOC.md
│   │   │           └── references/
│   │   │               ├── tools.md
│   │   │               └── workflows.md
│   │   └── skills/
│   │       └── electronics-sourcing/
│   │           └── SKILL.md
│   ├── spacy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sphinx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sphinx-rtd-theme/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── splitio-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqladmin/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlalchemy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlalchemy-utils/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlmodel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlparse/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── square/
│   │   └── docs/
│   │       └── payments/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── starlette/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── statsmodels/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── strawberry-graphql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── streamlit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── stripe/
│   │   └── docs/
│   │       ├── api/
│   │       │   └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── payments/
│   │           └── DOC.md
│   ├── structlog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── styled-components/
│   │   └── docs/
│   │       └── styled-components/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── stytch/
│   │   └── docs/
│   │       └── auth/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── supabase/
│   │   └── docs/
│   │       ├── client/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── supervisor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── svelte/
│   │   └── docs/
│   │       └── svelte/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── sympy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tabula-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tabulate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tailwindcss/
│   │   └── docs/
│   │       └── tailwindcss/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── taskiq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tavily/
│   │   ├── docs/
│   │   │   └── sdk/
│   │   │       ├── javascript/
│   │   │       │   └── DOC.md
│   │   │       └── python/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       └── tavily-best-practices/
│   │           ├── SKILL.md
│   │           └── references/
│   │               ├── crawl.md
│   │               ├── extract.md
│   │               ├── integrations.md
│   │               ├── research.md
│   │               ├── sdk.md
│   │               └── search.md
│   ├── tenacity/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tensorflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── textual/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tiktoken/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── time-machine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── timm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── together/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tokenizers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── toml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tomli/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tomli-w/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── toolz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torch/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchaudio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchmetrics/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchvision/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tornado/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tortoise-orm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tox/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tqdm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── transformers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── trio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── trl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── turso/
│   │   └── docs/
│   │       └── libsql/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── twilio/
│   │   └── docs/
│   │       ├── messaging/
│   │       │   ├── python/
│   │       │   │   └── DOC.md
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── twine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── twisted/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── typer/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-pyyaml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-requests/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-setuptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── typescript/
│   │   └── docs/
│   │       ├── async/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── aws-lambda/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── axios/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-core/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-generator/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-template/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-traverse/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bcrypt/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bcryptjs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bluebird/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── body-parser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── chai/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── chalk/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cheerio/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── classnames/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── clean-css/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color-convert/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color-name/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── commander/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── compression/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── connect/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cookie-parser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cors/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cross-spawn/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── crypto-js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cssnano/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── d3/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── debug/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ejs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── electron/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── eslint/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── estree/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── exceljs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── express/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── express-session/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── fs-extra/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── geojson/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── glob/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── got/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── graphql/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── handlebars/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── hapi-hapi/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── helmet/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── highlight.js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── html-minifier-terser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── http-errors/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── inquirer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jest/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jimp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jsdom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jsonwebtoken/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── koa/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── leaflet/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── less/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.clonedeep/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.debounce/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.flatten/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.isequal/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.merge/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.omit/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.pick/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.throttle/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── luxon/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mapbox-gl/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── marked/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── minimatch/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mkdirp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mocha/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mongodb/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mongoose/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── morgan/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ms/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── multer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mysql/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── node/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── node-fetch/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── nodemailer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── nunjucks/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── papaparse/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── passport/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pdfkit/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pg/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prettier/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prismjs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prop-types/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pug/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── puppeteer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── qs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-beautiful-dnd/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-color/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-datepicker/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-dom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-modal/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-redux/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-router/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-router-dom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-select/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-transition-group/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-virtualized/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── request/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── restify/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── rimraf/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sass/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── selenium-webdriver/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── semver/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── serve-static/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sharp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── shelljs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sinon/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── socket.io/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── stylus/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── superagent/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── supertest/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── tar/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── terser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── three/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── topojson-specification/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── tslib/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── typescript/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── unzipper/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── uuid/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack-env/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack-sources/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ws/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── xml2js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── yargs/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── typescript-eslint/
│   │   └── docs/
│   │       ├── eslint-plugin/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── parser/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── typing-extensions/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ujson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ultralytics/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── undici/
│   │   └── docs/
│   │       └── undici/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── unsloth/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── urllib3/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uuid/
│   │   └── docs/
│   │       └── uuid/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── uv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uvicorn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uvloop/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vcrpy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vercel/
│   │   └── docs/
│   │       └── platform/
│   │           └── DOC.md
│   ├── vine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── virtualenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vite/
│   │   └── docs/
│   │       └── vite/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── vitest/
│   │   └── docs/
│   │       └── vitest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── vllm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── voila/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vue/
│   │   └── docs/
│   │       └── vue/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── wand/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wandb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── watchdog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── weasyprint/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── weaviate/
│   │   └── docs/
│   │       └── vector-db/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── weaviate-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── webpack/
│   │   └── docs/
│   │       ├── compression-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── copy-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── css-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── dotenv-webpack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── file-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── fork-ts-checker-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── html-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── less-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mini-css-extract-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── postcss-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── raw-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sass-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── source-map-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── style-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── terser-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ts-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── url-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-bundle-analyzer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-cli/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-dev-middleware/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-dev-server/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-merge/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── workbox-webpack-plugin/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── websocket-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── websockets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── werkzeug/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wheel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── whitenoise/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wrapt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xarray/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xgboost/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xlsxwriter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── yapf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── yargs/
│   │   └── docs/
│   │       └── yargs/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── yarl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── zendesk/
│   │   └── docs/
│   │       └── support/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── zenml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── zipp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   └── zustand/
│       └── docs/
│           └── zustand/
│               └── javascript/
│                   └── DOC.md
├── docs/
│   ├── byod-guide.md
│   ├── cli-reference.md
│   ├── content-guide.md
│   ├── design.md
│   ├── features/
│   │   ├── agent-annotations.md
│   │   └── search-ranking.md
│   ├── feedback-and-annotations.md
│   └── private-content.md
├── llms.txt
└── package.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug Report
about: Report a bug in Context Hub CLI
labels: bug
---

## Description

A clear description of the bug.

## Steps to Reproduce

1. Run `chub ...`
2. ...

## Expected Behavior

What should happen.

## Actual Behavior

What actually happens.

## Environment

- OS: (e.g., macOS 15, Ubuntu 24.04)
- Node.js version: (e.g., 22.0.0)
- chub version: (run `chub --version`)


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature Request
about: Suggest a new feature or improvement
labels: enhancement
---

## Problem

What problem does this solve? What's the current limitation?

## Proposed Solution

Describe the feature or change you'd like.

## Alternatives Considered

Any alternative approaches you've thought about.

## Additional Context

Any relevant links, screenshots, or examples.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## What

Brief description of the change.

## Why

What problem does this solve?

## Testing

- [ ] `npm test` passes
- [ ] `chub build sample-content/ --validate-only` succeeds
- [ ] Manual testing done (describe below)

## Notes

Any additional context for reviewers.


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18, 20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - run: rm -f package-lock.json && npm install
      - run: cd cli && npm test
      - run: node cli/bin/chub build content/ --validate-only
      - run: cd cli && npm audit --audit-level=high


================================================
FILE: .github/workflows/deploy-content.yml
================================================
name: Deploy Content to CDN

on:
  push:
    branches: [main]
    paths:
      - 'content/**'

  # Allow manual trigger
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 22

      - run: rm -f package-lock.json && npm install

      # Validate content first
      - name: Validate content
        run: node cli/bin/chub build content/ --validate-only

      # Build registry + search index + content tree
      - name: Build content
        run: node cli/bin/chub build content/ -o dist/ --base-url https://cdn.aichub.org/v1

      # Sync to S3
      - name: Deploy to S3
        run: aws s3 sync dist/ s3://${{ secrets.CDN_BUCKET_NAME }}/v1/ --delete
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_REGION: ${{ secrets.AWS_REGION }}

      # Invalidate CloudFront cache
      - name: Invalidate CloudFront cache
        run: |
          aws cloudfront create-invalidation \
            --distribution-id ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }} \
            --paths "/v1/*"
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_REGION: ${{ secrets.AWS_REGION }}


================================================
FILE: .github/workflows/publish.yml
================================================
name: Publish to npm

on:
  release:
    types: [created]

jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          registry-url: 'https://registry.npmjs.org'
      - run: npm install
      - run: cd cli && npm test
      - run: cd cli && npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}


================================================
FILE: .gitignore
================================================
node_modules/
.DS_Store
dist/
*.log
.env
.env.*
coverage/
.chub/
*.tgz


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

## Our Standards

Examples of behavior that contributes to a positive environment:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior:

* The use of sexualized language or imagery and unwelcome sexual attention
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information without explicit permission
* Other conduct which could reasonably be considered inappropriate

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by [opening a GitHub issue](https://github.com/andrewyng/context-hub/issues/new).

All complaints will be reviewed and investigated promptly and fairly.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Context Hub

Thank you for your interest in contributing to Context Hub! This guide covers both code contributions and documentation/skill contributions.

## Development Setup

### Prerequisites

- Node.js >= 18.0.0
- npm (comes with Node.js)

### Getting Started

```bash
git clone https://github.com/andrewyng/context-hub.git
cd context-hub
npm install
```

### Running the CLI locally

```bash
node cli/bin/chub --help
node cli/bin/chub build content/ --validate-only
```

### Running Tests

```bash
cd cli
npm test              # run all tests
npm run test:watch    # watch mode
npm run test:coverage # with coverage
```

## Code Contributions

### Pull Request Process

1. Fork the repo and create a branch from `main`
2. Make your changes
3. Add or update tests as needed
4. Ensure all tests pass: `cd cli && npm test`
5. Validate the build: `node cli/bin/chub build content/ --validate-only`
6. Submit a pull request

### Code Style

- ES modules (`import`/`export`, not `require`)
- No build step — native Node.js ES modules
- Minimal dependencies — prefer Node.js built-ins
- Dual-mode output: every command supports `--json` for machine-readable output

### Project Structure

```
cli/
  bin/chub              # Executable entry point
  src/
    index.js            # CLI setup (Commander)
    commands/           # Command implementations
    lib/                # Core utilities
  tests/                # Vitest tests
content/                # Public content registry source
docs/                   # Design docs
```

## Content Contributions

Context Hub is only as useful as its content. Contributing curated documentation or skills is one of the most impactful ways to help.

### Contributing a Doc

1. Create a directory under `<author>/docs/<name>/`
2. Add a `DOC.md` with YAML frontmatter:

```yaml
---
name: my-api
description: Short description of what this doc covers
metadata:
  languages: "python,javascript"
  versions: "1.0.0"
  source: community
  tags: "api,rest"
  updated-on: "2026-02-22"
---
# Content here...
```

3. Add reference files in a `references/` subdirectory if needed
4. Validate: `chub build <content-dir> --validate-only`

### Contributing a Skill

1. Create a directory under `<author>/skills/<name>/`
2. Add a `SKILL.md` with YAML frontmatter:

```yaml
---
name: my-skill
description: What this skill teaches agents to do
metadata:
  source: community
  tags: "automation,testing"
  updated-on: "2026-02-22"
---
# Skill content here...
```

### Content Quality Guidelines

- Write for LLMs: clear structure, code examples, explicit parameter names
- Use progressive disclosure: entry point (DOC.md/SKILL.md) should be < 500 lines
- Put detailed references in companion files with relative links
- Keep content up to date with the latest API versions
- Include practical code examples, not just API signatures

## Reporting Issues

- **Bugs**: Use the [bug report template](https://github.com/andrewyng/context-hub/issues/new?template=bug_report.md)
- **Features**: Use the [feature request template](https://github.com/andrewyng/context-hub/issues/new?template=feature_request.md)
- **Security**: See [SECURITY.md](SECURITY.md)

## License

By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2026 Context Hub Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# Context Hub

Coding agents hallucinate APIs and forget what they learn in a session. Context Hub gives them curated, versioned docs, plus the ability to get smarter with every task. All content is open and maintained as markdown in this repo — you can inspect exactly what your agent reads, and contribute back. 

[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![npm](https://img.shields.io/npm/v/@aisuite/chub)](https://www.npmjs.com/package/@aisuite/chub)
[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)

## Quick Start

```bash
npm install -g @aisuite/chub
chub search openai                 # find what's available
chub get openai/chat --lang py     # fetch current docs (Python version) 
```

## How It Works

Chub is designed for your coding agent to use (not for you to use!). You can prompt your agent to use it (e.g., "Use the CLI command chub to get the latest API documentation for calling OpenAI. Run 'chub help' to understand how it works.") Or by creating an agent skill to use Chub using [SKILL.md](cli/skills/get-api-docs/SKILL.md), and ideally prompting your agent to remember to use this skill. (If you are using Claude Code, create the directory ~/.claude/skills/get-api-docs and put SKILL.md there.) 

**Most of the time, it's simple — search, fetch, use:**

```bash
chub search "stripe payments"        # find relevant docs
chub get stripe/api --lang js        # fetch the doc
# Agent reads the doc, writes correct code. Done.
```

**When the agent discovers a gap**, it can annotate locally for next time:

```bash
chub annotate stripe/api "Needs raw body for webhook verification"

# Next session, the annotation appears automatically on chub get.
```

**Feedback flows back to authors** — `chub feedback stripe/api up` or `down` — vote the docs up or down so they can get better for everyone over time.

## Content Types

Versioned, language-specific. "What to know."

```bash
chub get openai/chat --lang py       # Python variant
chub get openai/chat --lang js       # JavaScript variant
```

More content types than API documentation (such as agent skills) are on the roadmap. 

## Commands

| Command | Purpose |
|---------|---------|
| `chub search [query]` | Search docs and skills (no query = list all) |
| `chub get <id> [--lang py\|js]` | Fetch docs or skills by ID |
| `chub annotate <id> <note>` | Attach a note to a doc or skill |
| `chub annotate <id> --clear` | Remove annotations |
| `chub annotate --list` | List all annotations |
| `chub feedback <id> <up\|down>` | Upvote or downvote a doc (sent to maintainers) |

For the full list of commands, flags, and piping patterns, see the [CLI Reference](docs/cli-reference.md).

## Self-Improving Agents

Context Hub is designed for a loop where agents get better over time.

**Annotations** are local notes that agents attach to docs. They persist across sessions and appear automatically on future fetches — so agents learn from past experience. See [Feedback and Annotations](docs/feedback-and-annotations.md).

**Feedback** (up/down ratings with optional labels) goes to doc authors, who update the content based on what's working and what isn't. The docs get better for everyone — not just your local annotations.

```
  Without Context Hub                          With Context Hub
  ───────────────────                          ─────────────────
  Search the web                               Fetch curated docs
  Noisy results                                Higher chance of code working
  Code breaks                                  Agent notes any gaps/workarounds
  Effort in fixing                             ↗ Even smarter next session
  Knowledge forgotten
  ↻ Repeat next session
```

## Key Features

### Incremental Fetch

Docs can have multiple reference files beyond the main entry point. Fetch only what you need — no wasted tokens. Use `--file` to grab specific references, or `--full` for everything. See the [CLI Reference](docs/cli-reference.md).

### Annotations & Feedback

Annotations are local notes that agents attach to docs — they persist across sessions and appear automatically on future fetches. Feedback (up/down ratings) goes to doc authors to improve the content for everyone. See [Feedback and Annotations](docs/feedback-and-annotations.md).

## Contributing

Anyone can contribute docs and skills — API providers, framework authors, and the community. Content is plain markdown with YAML frontmatter, submitted as pull requests. See the [Content Guide](docs/content-guide.md) for the format and structure.

Agent feedback (up/down ratings from real usage) flows back to authors, helping surface what needs fixing and improving overall quality over time.

## License

[MIT](LICENSE)


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Reporting a Vulnerability

If you discover a security vulnerability, please report it by [opening a GitHub issue](https://github.com/andrewyng/context-hub/issues/new) with the label `security`.

Include:

1. A description of the vulnerability
2. Steps to reproduce
3. Potential impact
4. Suggested fix (if any)

We will respond promptly and aim to provide a fix within 7 days for critical issues.

## Supported Versions

| Version | Supported |
|---------|-----------|
| 0.1.x   | Yes       |

## Scope

This policy covers the `@aisuite/chub` CLI package and the Context Hub API at `api.aichub.org`.

## Telemetry & Privacy

Context Hub collects optional, anonymous telemetry (disabled with `telemetry: false` in `~/.chub/config.yaml`). No personally identifiable information is collected. See [DESIGN.md](docs/design.md) for details on the hashed machine identifier.


================================================
FILE: cli/.npmignore
================================================
tests/
*.test.js
coverage/
.DS_Store


================================================
FILE: cli/README.md
================================================
# Context Hub CLI

Install the CLI and give your AI agent access to curated, versioned documentation.

## Install

```bash
npm install -g @aisuite/chub
```

## Use as an Agent Skill

The CLI ships with a skill that teaches agents to fetch docs automatically instead of guessing from training data. Install it into your agent tool of choice:

### Claude Code

Copy the skill into your project:

```bash
mkdir -p .claude/skills
cp $(npm root -g)/@aisuite/chub/skills/get-api-docs/SKILL.md .claude/skills/get-api-docs.md
```

Or install it globally (applies to all projects):

```bash
mkdir -p ~/.claude/skills
cp $(npm root -g)/@aisuite/chub/skills/get-api-docs/SKILL.md ~/.claude/skills/get-api-docs.md
```

### Cursor

Copy the skill into your project's rules directory:

```bash
mkdir -p .cursor/rules
cp $(npm root -g)/@aisuite/chub/skills/get-api-docs/SKILL.md .cursor/rules/get-api-docs.md
```

### Other Agent Tools

The skill is a standard markdown file at `skills/get-api-docs/SKILL.md`. Copy it to wherever your agent tool reads custom instructions from.

## Commands

```bash
chub search "stripe"                 # find docs
chub get stripe/api                  # fetch a doc
chub get stripe/api --lang js        # specific language
chub get stripe/api --version 19.1.0 # specific version
chub annotate stripe/api "note"      # local annotation
chub feedback stripe/api up          # rate a doc
```

For the full command reference, see [CLI Reference](../docs/cli-reference.md).


================================================
FILE: cli/bin/chub
================================================
#!/usr/bin/env node
import '../src/index.js';


================================================
FILE: cli/bin/chub-mcp
================================================
#!/usr/bin/env node
import '../src/mcp/server.js';


================================================
FILE: cli/package.json
================================================
{
  "name": "@aisuite/chub",
  "version": "0.1.3",
  "description": "CLI for Context Hub - search and retrieve LLM-optimized docs and skills",
  "type": "module",
  "bin": {
    "chub": "./bin/chub",
    "chub-mcp": "./bin/chub-mcp"
  },
  "files": [
    "bin/",
    "src/",
    "dist/",
    "skills/"
  ],
  "engines": {
    "node": ">=18.0.0"
  },
  "keywords": [
    "ai",
    "llm",
    "documentation",
    "agent",
    "cli",
    "context",
    "skills",
    "mcp"
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/andrewyng/context-hub"
  },
  "bugs": {
    "url": "https://github.com/andrewyng/context-hub/issues"
  },
  "homepage": "https://github.com/andrewyng/context-hub#readme",
  "scripts": {
    "prepublish": "node bin/chub build ../content -o dist --base-url https://cdn.aichub.org/v1",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.27.1",
    "chalk": "^5.3.0",
    "commander": "^12.0.0",
    "posthog-node": "^5.24.17",
    "tar": "^7.5.8",
    "yaml": "^2.3.0",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "vitest": "^4.0.18"
  }
}


================================================
FILE: cli/skills/get-api-docs/SKILL.md
================================================
---
name: get-api-docs
description: >
  Use this skill when you need documentation for a third-party library, SDK, or API
  before writing code that uses it — for example, "use the OpenAI API", "call the
  Stripe API", "use the Anthropic SDK", "query Pinecone", or any time the user asks
  you to write code against an external service and you need current API reference.
  Fetch the docs with chub before answering, rather than relying on training knowledge.
---

# Get API Docs via chub

When you need documentation for a library or API, fetch it with the `chub` CLI
rather than guessing from training data. This gives you the current, correct API.

## Step 1 — Find the right doc ID

```bash
chub search "<library name>" --json
```

Pick the best-matching `id` from the results (e.g. `openai/chat`, `anthropic/sdk`,
`stripe/api`). If nothing matches, try a broader term.

## Step 2 — Fetch the docs

```bash
chub get <id> --lang py    # or --lang js, --lang ts
```

Omit `--lang` if the doc has only one language variant — it will be auto-selected.

## Step 3 — Use the docs

Read the fetched content and use it to write accurate code or answer the question.
Do not rely on memorized API shapes — use what the docs say.

## Step 4 — Annotate what you learned

After completing the task, if you discovered something not in the doc — a gotcha,
workaround, version quirk, or project-specific detail — save it so future sessions
start smarter:

```bash
chub annotate <id> "Webhook verification requires raw body — do not parse before verifying"
```

Annotations are local, persist across sessions, and appear automatically on future
`chub get` calls. Keep notes concise and actionable. Don't repeat what's already in
the doc.

## Step 5 — Give feedback

Always rate the doc after using it. This helps authors fix outdated or incorrect
docs and prioritize improvements. Include a label and a brief comment explaining
what was good or what needs fixing — specific feedback is the most valuable.

```bash
chub feedback <id> up --label accurate "Clear examples, models are current"
chub feedback <id> down --label outdated "Lists gpt-4o as latest but gpt-5.4 is out"
```

Available labels: `outdated`, `inaccurate`, `incomplete`, `wrong-examples`,
`wrong-version`, `poorly-structured`, `accurate`, `well-structured`, `helpful`,
`good-examples`.

If you notice the doc has wrong model names, deprecated APIs, missing features,
or incorrect code patterns, always leave a downvote with details so it can be fixed.

## Quick reference

| Goal | Command |
|------|---------|
| List everything | `chub search` |
| Find a doc | `chub search "stripe"` |
| Exact id detail | `chub search stripe/api` |
| Fetch Python docs | `chub get stripe/api --lang py` |
| Fetch JS docs | `chub get openai/chat --lang js` |
| Save to file | `chub get anthropic/sdk --lang py -o docs.md` |
| Fetch multiple | `chub get openai/chat stripe/api --lang py` |
| Save a note | `chub annotate stripe/api "needs raw body"` |
| List notes | `chub annotate --list` |
| Rate a doc | `chub feedback stripe/api up` |

## Notes

- `chub search` with no query lists everything available
- IDs are `<author>/<name>` — confirm the ID from search before fetching
- If multiple languages exist and you don't pass `--lang`, chub will tell you which are available


================================================
FILE: cli/src/commands/annotate.js
================================================
import chalk from 'chalk';
import { readAnnotation, writeAnnotation, clearAnnotation, listAnnotations } from '../lib/annotations.js';
import { output, error, info } from '../lib/output.js';

export function registerAnnotateCommand(program) {
  program
    .command('annotate [id] [note]')
    .description('Attach agent notes to a doc or skill')
    .option('--clear', 'Remove annotation for this entry')
    .option('--list', 'List all annotations')
    .action((id, note, opts) => {
      const globalOpts = program.optsWithGlobals();

      if (opts.list) {
        const annotations = listAnnotations();
        output(
          annotations,
          (data) => {
            if (data.length === 0) {
              console.log('No annotations.');
              return;
            }
            for (const a of data) {
              console.log(`${chalk.bold(a.id)} ${chalk.dim(`(${a.updatedAt})`)}`);
              console.log(`  ${a.note}`);
              console.log();
            }
          },
          globalOpts
        );
        return;
      }

      if (!id) {
        error('Missing required argument: <id>. Run: chub annotate <id> <note> | chub annotate <id> --clear | chub annotate --list', globalOpts);
      }

      if (opts.clear) {
        const removed = clearAnnotation(id);
        output(
          { id, cleared: removed },
          (data) => {
            if (data.cleared) {
              console.log(`Annotation cleared for ${chalk.bold(id)}.`);
            } else {
              console.log(`No annotation found for ${chalk.bold(id)}.`);
            }
          },
          globalOpts
        );
        return;
      }

      if (!note) {
        // Show existing annotation
        const existing = readAnnotation(id);
        if (existing) {
          output(
            existing,
            (data) => {
              console.log(`${chalk.bold(data.id)} ${chalk.dim(`(${data.updatedAt})`)}`);
              console.log(data.note);
            },
            globalOpts
          );
        } else {
          output(
            { id, note: null },
            () => console.log(`No annotation for ${chalk.bold(id)}.`),
            globalOpts
          );
        }
        return;
      }

      const data = writeAnnotation(id, note);
      output(
        data,
        (d) => console.log(`Annotation saved for ${chalk.bold(d.id)}.`),
        globalOpts
      );
    });
}


================================================
FILE: cli/src/commands/build.js
================================================
import { existsSync, readFileSync, readdirSync, statSync, writeFileSync, mkdirSync, cpSync } from 'node:fs';
import { join, relative, dirname, basename } from 'node:path';
import chalk from 'chalk';
import { parseFrontmatter } from '../lib/frontmatter.js';
import { info } from '../lib/output.js';
import { trackEvent } from '../lib/analytics.js';
import { buildIndex } from '../lib/bm25.js';

/**
 * Normalize a path to use forward slashes so registry.json is
 * consistent regardless of which OS ran the build.
 */
function toPosix(p) {
  return p.split('\\').join('/');
}

/**
 * Recursively find all DOC.md and SKILL.md files under a directory.
 */
function findEntryFiles(dir, base = dir) {
  const results = [];
  for (const entry of readdirSync(dir, { withFileTypes: true })) {
    const full = join(dir, entry.name);
    if (entry.isDirectory()) {
      results.push(...findEntryFiles(full, base));
    } else if (entry.name === 'DOC.md' || entry.name === 'SKILL.md') {
      results.push({ path: full, relPath: relative(base, full), type: entry.name === 'SKILL.md' ? 'skill' : 'doc' });
    }
  }
  return results;
}

/**
 * Get all files in a directory (relative to that directory).
 */
function listDirFiles(dir) {
  const results = [];
  const walk = (d) => {
    for (const entry of readdirSync(d, { withFileTypes: true })) {
      const full = join(d, entry.name);
      if (entry.isDirectory()) walk(full);
      else results.push(toPosix(relative(dir, full)));
    }
  };
  walk(dir);
  return results;
}

/**
 * Compute total size of all files in a directory.
 */
function dirSize(dir) {
  let total = 0;
  const walk = (d) => {
    for (const entry of readdirSync(d, { withFileTypes: true })) {
      const full = join(d, entry.name);
      if (entry.isDirectory()) walk(full);
      else total += statSync(full).size;
    }
  };
  walk(dir);
  return total;
}

/**
 * Process an author directory with auto-discovery.
 */
function discoverAuthor(authorDir, authorName, contentDir) {
  const entryFiles = findEntryFiles(authorDir);
  const docs = new Map(); // name → { description, source, tags, languages: Map<lang, versions[]> }
  const skills = new Map(); // name → skill entry
  const warnings = [];
  const errors = [];

  for (const ef of entryFiles) {
    const content = readFileSync(ef.path, 'utf8');
    const { attributes } = parseFrontmatter(content);

    if (!attributes.name) {
      errors.push(`${ef.relPath}: missing 'name' in frontmatter`);
      continue;
    }
    if (!attributes.description) {
      warnings.push(`${ef.relPath}: missing 'description' in frontmatter`);
    }

    const meta = attributes.metadata || {};
    const name = attributes.name;
    const description = attributes.description || '';
    const source = meta.source || 'community';
    const tags = meta.tags ? meta.tags.split(',').map((t) => t.trim()) : [];
    const updatedOn = meta['updated-on'] || new Date().toISOString().split('T')[0];
    const entryDir = dirname(ef.path);
    const entryPath = toPosix(relative(contentDir, entryDir));
    const files = listDirFiles(entryDir);
    const size = dirSize(entryDir);

    if (!meta.source) {
      warnings.push(`${ef.relPath}: missing 'metadata.source', defaulting to 'community'`);
    }

    if (ef.type === 'skill') {
      // Skills are flat — no language/version
      if (skills.has(name)) {
        errors.push(`${ef.relPath}: duplicate skill name '${name}'`);
        continue;
      }
      skills.set(name, {
        id: `${authorName}/${name}`,
        name,
        description,
        source,
        tags,
        path: entryPath,
        files,
        size,
        lastUpdated: updatedOn,
      });
    } else {
      // Docs need language and version
      const languages = meta.languages
        ? meta.languages.split(',').map((l) => l.trim().toLowerCase())
        : null;
      const versions = meta.versions
        ? meta.versions.split(',').map((v) => v.trim())
        : null;

      if (!languages || languages.length === 0) {
        errors.push(`${ef.relPath}: missing 'metadata.languages' in frontmatter`);
        continue;
      }
      if (!versions || versions.length === 0) {
        errors.push(`${ef.relPath}: missing 'metadata.versions' in frontmatter`);
        continue;
      }

      if (!docs.has(name)) {
        docs.set(name, { description, source, tags, languages: new Map() });
      }

      const doc = docs.get(name);

      for (const lang of languages) {
        if (!doc.languages.has(lang)) {
          doc.languages.set(lang, []);
        }
        for (const ver of versions) {
          doc.languages.get(lang).push({
            version: ver,
            path: entryPath,
            files,
            size,
            lastUpdated: updatedOn,
          });
        }
      }
    }
  }

  // Convert docs map to array format
  const docsArray = [];
  for (const [name, doc] of docs) {
    const languages = [];
    for (const [lang, versions] of doc.languages) {
      // Sort versions descending (simple string sort, good enough for semver)
      versions.sort((a, b) => b.version.localeCompare(a.version, undefined, { numeric: true }));
      languages.push({
        language: lang,
        versions,
        recommendedVersion: versions[0].version,
      });
    }
    docsArray.push({
      id: `${authorName}/${name}`,
      name,
      description: doc.description,
      source: doc.source,
      tags: doc.tags,
      languages,
    });
  }

  return {
    docs: docsArray,
    skills: [...skills.values()],
    warnings,
    errors,
  };
}

export function registerBuildCommand(program) {
  program
    .command('build <content-dir>')
    .description('Build registry.json from a content directory')
    .option('-o, --output <dir>', 'Output directory')
    .option('--base-url <url>', 'Base URL for CDN deployment')
    .option('--validate-only', 'Validate without writing output')
    .action((contentDir, opts) => {
      const globalOpts = program.optsWithGlobals();

      if (!existsSync(contentDir)) {
        process.stderr.write(`Error: Content directory not found: ${contentDir}\n`);
        process.exit(1);
      }

      const outputDir = opts.output || join(contentDir, 'dist');
      const allDocs = [];
      const allSkills = [];
      const allWarnings = [];
      const allErrors = [];

      // List top-level directories (author directories)
      const topLevel = readdirSync(contentDir, { withFileTypes: true })
        .filter((e) => e.isDirectory() && e.name !== 'dist' && !e.name.startsWith('.'));

      for (const authorEntry of topLevel) {
        const authorDir = join(contentDir, authorEntry.name);
        const authorRegistry = join(authorDir, 'registry.json');

        if (existsSync(authorRegistry)) {
          // Author provides registry.json — use it directly
          try {
            const reg = JSON.parse(readFileSync(authorRegistry, 'utf8'));
            // Prefix paths with author dir name
            if (reg.docs) {
              for (const doc of reg.docs) {
                if (!doc.id) doc.id = `${authorEntry.name}/${doc.name}`;
                else if (!doc.id.includes('/')) doc.id = `${authorEntry.name}/${doc.id}`;
                for (const lang of doc.languages || []) {
                  for (const ver of lang.versions || []) {
                    ver.path = `${authorEntry.name}/${ver.path}`;
                  }
                }
                allDocs.push(doc);
              }
            }
            if (reg.skills) {
              for (const skill of reg.skills) {
                if (!skill.id) skill.id = `${authorEntry.name}/${skill.name}`;
                else if (!skill.id.includes('/')) skill.id = `${authorEntry.name}/${skill.id}`;
                skill.path = `${authorEntry.name}/${skill.path}`;
                allSkills.push(skill);
              }
            }
            info(`${authorEntry.name}: loaded registry.json`);
          } catch (err) {
            allErrors.push(`${authorEntry.name}/registry.json: ${err.message}`);
          }
        } else {
          // Auto-discover
          const result = discoverAuthor(authorDir, authorEntry.name, contentDir);
          allDocs.push(...result.docs);
          allSkills.push(...result.skills);
          allWarnings.push(...result.warnings);
          allErrors.push(...result.errors);
        }
      }

      // Check for id collisions (should be rare since ids are author/name)
      const docIds = new Map();
      for (const doc of allDocs) {
        if (docIds.has(doc.id)) {
          allErrors.push(`Duplicate doc id '${doc.id}'`);
        }
        docIds.set(doc.id, true);
      }
      const skillIds = new Map();
      for (const skill of allSkills) {
        if (skillIds.has(skill.id)) {
          allErrors.push(`Duplicate skill id '${skill.id}'`);
        }
        skillIds.set(skill.id, true);
      }

      // Print warnings
      for (const w of allWarnings) {
        process.stderr.write(chalk.yellow(`Warning: ${w}\n`));
      }

      // Print errors
      if (allErrors.length > 0) {
        for (const e of allErrors) {
          process.stderr.write(chalk.red(`Error: ${e}\n`));
        }
        process.exit(1);
      }

      const registry = {
        version: '1.0.0',
        generated: new Date().toISOString(),
        docs: allDocs,
        skills: allSkills,
      };

      if (opts.baseUrl) {
        registry.base_url = opts.baseUrl;
      }

      if (opts.validateOnly) {
        const summary = { docs: allDocs.length, skills: allSkills.length, warnings: allWarnings.length };
        if (globalOpts.json) {
          console.log(JSON.stringify(summary));
        } else {
          console.log(chalk.green(`Valid: ${summary.docs} docs, ${summary.skills} skills, ${summary.warnings} warnings`));
        }
        return;
      }

      // Write output
      mkdirSync(outputDir, { recursive: true });
      writeFileSync(join(outputDir, 'registry.json'), JSON.stringify(registry, null, 2));

      // Build and write BM25 search index
      const allEntries = [
        ...allDocs.map((d) => ({ ...d, _type: 'doc' })),
        ...allSkills.map((s) => ({ ...s, _type: 'skill' })),
      ];
      const searchIndex = buildIndex(allEntries);
      writeFileSync(join(outputDir, 'search-index.json'), JSON.stringify(searchIndex));

      // Copy content tree
      for (const authorEntry of topLevel) {
        const src = join(contentDir, authorEntry.name);
        const dest = join(outputDir, authorEntry.name);
        // Skip registry.json in author dirs
        cpSync(src, dest, {
          recursive: true,
          filter: (s) => basename(s) !== 'registry.json',
        });
      }

      const summary = { docs: allDocs.length, skills: allSkills.length, warnings: allWarnings.length };
      trackEvent('build', { doc_count: allDocs.length, skill_count: allSkills.length }).catch(() => {});
      if (globalOpts.json) {
        console.log(JSON.stringify({ ...summary, output: outputDir }));
      } else {
        console.log(chalk.green(`Built: ${summary.docs} docs, ${summary.skills} skills → ${outputDir}`));
      }
    });
}


================================================
FILE: cli/src/commands/cache.js
================================================
import chalk from 'chalk';
import { getCacheStats, clearCache } from '../lib/cache.js';
import { output } from '../lib/output.js';

export function registerCacheCommand(program) {
  const cache = program
    .command('cache')
    .description('Manage the local cache');

  cache
    .command('status')
    .description('Show cache information')
    .action(() => {
      const globalOpts = program.optsWithGlobals();
      const stats = getCacheStats();

      output(stats, (s) => {
        if (!s.exists || s.sources.length === 0) {
          console.log(chalk.yellow('No cache found. Run `chub update` to initialize.'));
          return;
        }
        console.log(chalk.bold('Cache Status\n'));
        for (const src of s.sources) {
          if (src.type === 'local') {
            console.log(`  ${chalk.bold(src.name)} ${chalk.dim('(local)')}`);
            console.log(`    Path: ${src.path}`);
          } else {
            console.log(`  ${chalk.bold(src.name)} ${chalk.dim('(remote)')}`);
            console.log(`    Registry: ${src.hasRegistry ? chalk.green('yes') : chalk.red('no')}`);
            console.log(`    Last updated: ${src.lastUpdated || 'never'}`);
            console.log(`    Full bundle: ${src.fullBundle ? 'yes' : 'no'}`);
            console.log(`    Cached files: ${src.fileCount}`);
            console.log(`    Size: ${(src.dataSize / 1024).toFixed(1)} KB`);
          }
        }
      }, globalOpts);
    });

  cache
    .command('clear')
    .description('Clear cached data')
    .option('--force', 'Skip confirmation')
    .action((opts) => {
      const globalOpts = program.optsWithGlobals();
      clearCache();
      output(
        { status: 'cleared' },
        () => console.log(chalk.green('Cache cleared.')),
        globalOpts
      );
    });
}


================================================
FILE: cli/src/commands/feedback.js
================================================
import chalk from 'chalk';
import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';
import { getEntry } from '../lib/registry.js';
import { sendFeedback, isFeedbackEnabled, isTelemetryEnabled, getTelemetryUrl } from '../lib/telemetry.js';
import { getOrCreateClientId } from '../lib/identity.js';
import { output, error } from '../lib/output.js';
import { trackEvent } from '../lib/analytics.js';

const __dirname = dirname(fileURLToPath(import.meta.url));

const VALID_LABELS = [
  'accurate', 'well-structured', 'helpful', 'good-examples',
  'outdated', 'inaccurate', 'incomplete', 'wrong-examples',
  'wrong-version', 'poorly-structured',
];

function collect(val, acc) {
  acc.push(val);
  return acc;
}

export function registerFeedbackCommand(program) {
  program
    .command('feedback [id] [rating] [comment]')
    .description('Rate a doc or skill (up/down)')
    .option('--type <type>', 'Explicit type: doc or skill')
    .option('--lang <language>', 'Language variant of the doc')
    .option('--doc-version <version>', 'Version of the doc')
    .option('--file <file>', 'Specific file within the entry (e.g. references/streaming.md)')
    .option('--label <label>', 'Feedback label (repeatable: --label outdated --label wrong-examples)', collect, [])
    .option('--agent <name>', 'AI coding tool name')
    .option('--model <model>', 'LLM model name')
    .option('--status', 'Show feedback and telemetry status')
    .action(async (id, rating, comment, opts) => {
      const globalOpts = program.optsWithGlobals();

      // --status flag
      if (opts.status) {
        const feedbackEnabled = isFeedbackEnabled();
        const telemetryEnabled = isTelemetryEnabled();
        if (globalOpts.json) {
          let clientId = null;
          try { clientId = await getOrCreateClientId(); } catch {}
          console.log(JSON.stringify({
            feedback: feedbackEnabled,
            telemetry: telemetryEnabled,
            client_id_prefix: clientId ? clientId.slice(0, 8) : null,
            endpoint: getTelemetryUrl(),
            valid_labels: VALID_LABELS,
          }));
        } else {
          console.log(`Feedback:  ${feedbackEnabled ? chalk.green('enabled') : chalk.red('disabled')}`);
          console.log(`Telemetry: ${telemetryEnabled ? chalk.green('enabled') : chalk.red('disabled')}`);
          try {
            const cid = await getOrCreateClientId();
            console.log(`Client ID: ${cid.slice(0, 8)}...`);
          } catch {}
          console.log(`Endpoint:  ${getTelemetryUrl()}`);
          console.log(`Labels:    ${VALID_LABELS.join(', ')}`);
        }
        return;
      }

      // BUG #1 FIX: Validation errors respect --json flag
      if (!id || !rating) {
        error('Missing required arguments: <id> and <rating>. Run: chub feedback <id> <up|down> [comment]', globalOpts);
      }

      if (rating !== 'up' && rating !== 'down') {
        error('Rating must be "up" or "down".', globalOpts);
      }

      if (!isFeedbackEnabled()) {
        output(
          { status: 'skipped', reason: 'feedback_disabled' },
          () => console.log(chalk.yellow('Feedback is disabled. Enable with: feedback: true in ~/.chub/config.yaml')),
          globalOpts
        );
        return;
      }

      // BUG #2 FIX: Only auto-detect type if --type not explicitly set
      let entryType = opts.type || null;
      let docLang = opts.lang || undefined;
      let docVersion = opts.docVersion || undefined;
      let source;
      try {
        const result = getEntry(id);
        if (result.entry) {
          if (!entryType) {
            entryType = result.entry.languages ? 'doc' : 'skill';
          }
          source = result.entry._source;

          // If doc and user didn't specify lang/version, try to infer from entry
          if (result.entry.languages && !docLang && result.entry.languages.length === 1) {
            docLang = result.entry.languages[0].language;
          }
          if (result.entry.languages && !docVersion) {
            const lang = result.entry.languages.find((l) => l.language === docLang) || result.entry.languages[0];
            if (lang) docVersion = lang.recommendedVersion;
          }
        }
      } catch {
        // Registry not loaded — use explicit flags
      }
      if (!entryType) entryType = 'doc'; // Final fallback

      // Parse labels (--label is repeatable, collected into an array)
      let labels;
      if (opts.label && opts.label.length > 0) {
        labels = opts.label.map((l) => l.trim().toLowerCase()).filter((l) => VALID_LABELS.includes(l));
        if (labels.length === 0) labels = undefined;
      }

      // Read CLI version
      let cliVersion;
      try {
        const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
        cliVersion = pkg.version;
      } catch {}

      const result = await sendFeedback(id, entryType, rating, {
        comment,
        docLang,
        docVersion,
        targetFile: opts.file,
        labels,
        agent: opts.agent,
        model: opts.model,
        cliVersion,
        source,
      });

      if (result.status === 'sent') {
        trackEvent('feedback_sent', { entry_id: id, rating, entry_type: entryType }).catch(() => {});
      }

      output(result, (data) => {
        if (data.status === 'sent') {
          const parts = [chalk.green(`Feedback recorded for ${id}`)];
          if (docLang) parts.push(chalk.dim(`lang=${docLang}`));
          if (docVersion) parts.push(chalk.dim(`version=${docVersion}`));
          if (opts.file) parts.push(chalk.dim(`file=${opts.file}`));
          console.log(parts.join(' '));
        } else if (data.status === 'error') {
          process.stderr.write(chalk.red(`Failed to send feedback: ${data.reason || `HTTP ${data.code}`}\n`));
        }
      }, globalOpts);
    });
}


================================================
FILE: cli/src/commands/get.js
================================================
import { writeFileSync, mkdirSync } from 'node:fs';
import { dirname, join } from 'node:path';
import chalk from 'chalk';
import { getEntry, resolveDocPath, resolveEntryFile } from '../lib/registry.js';
import { fetchDoc, fetchDocFull } from '../lib/cache.js';
import { output, error, info } from '../lib/output.js';
import { trackEvent } from '../lib/analytics.js';
import { readAnnotation } from '../lib/annotations.js';

/**
 * Fetch one or more entries by ID. Auto-detects doc vs skill per entry.
 */
async function fetchEntries(ids, opts, globalOpts) {
  const results = [];

  for (const id of ids) {
    const fetchStart = Date.now();

    // Search both docs and skills — auto-detect type
    const result = getEntry(id);

    if (result.ambiguous) {
      error(
        `Multiple entries match "${id}". Use a source prefix:\n  ${result.alternatives.map((a) => `chub get ${a}`).join('\n  ')}`,
        globalOpts
      );
    }

    if (!result.entry) {
      await trackEvent('doc_not_found', { entry_id: id });
      error(`No doc or skill found with id "${id}".`, globalOpts);
    }

    const entry = result.entry;
    const type = entry.languages ? 'doc' : 'skill';
    const resolved = resolveDocPath(entry, opts.lang, opts.version);

    if (!resolved) {
      if (opts.lang && entry.languages) {
        const available = entry.languages.map((l) => l.language).join(', ');
        error(`Language "${opts.lang}" is not available for "${id}". Available languages: ${available}.`, globalOpts);
      } else {
        error(`No content found for "${id}".`, globalOpts);
      }
    }

    if (resolved.versionNotFound) {
      error(
        `Version "${resolved.requested}" not found for "${id}". Available versions: ${resolved.available.join(', ')}`,
        globalOpts
      );
    }

    if (resolved.needsLanguage) {
      error(
        `Multiple languages available for "${id}": ${resolved.available.join(', ')}. Specify --lang.`,
        globalOpts
      );
    }

    const entryFile = resolveEntryFile(resolved, type);
    if (entryFile.error) {
      error(`No content available for "${id}". Check that the source contains a valid DOC.md or SKILL.md, or run \`chub update\` to refresh remote registries.`, globalOpts);
    }

    // Determine which reference files exist (beyond DOC.md/SKILL.md)
    const entryFileName = type === 'skill' ? 'SKILL.md' : 'DOC.md';
    const refFiles = resolved.files.filter((f) => f !== entryFileName);

    try {
      if (opts.file) {
        // --file mode: fetch specific file(s) by path
        const requested = opts.file.split(',').map((f) => f.trim());
        const invalid = requested.filter((f) => !resolved.files.includes(f));
        if (invalid.length > 0) {
          const available = refFiles.length > 0 ? refFiles.join(', ') : '(none)';
          error(`File "${invalid[0]}" not found in ${id}. Available: ${available}`, globalOpts);
        }
        if (requested.length === 1) {
          const content = await fetchDoc(resolved.source, join(resolved.path, requested[0]));
          results.push({ id: entry.id, type, content, path: join(resolved.path, requested[0]), source: entry._source, fetchStart, fetchDone: Date.now() });
        } else {
          const allFiles = await fetchDocFull(resolved.source, resolved.path, requested);
          results.push({ id: entry.id, type, files: allFiles, path: resolved.path, source: entry._source, fetchStart, fetchDone: Date.now() });
        }
      } else if (opts.full && resolved.files.length > 0) {
        const allFiles = await fetchDocFull(resolved.source, resolved.path, resolved.files);
        results.push({ id: entry.id, type, files: allFiles, path: resolved.path, source: entry._source, fetchStart, fetchDone: Date.now() });
      } else {
        const content = await fetchDoc(resolved.source, entryFile.filePath);
        results.push({ id: entry.id, type, content, path: entryFile.filePath, additionalFiles: refFiles, source: entry._source, fetchStart, fetchDone: Date.now() });
      }
    } catch (err) {
      await trackEvent('fetch_error', {
        entry_id: entry.id,
        error_type: err.code || err.name || 'unknown',
      });
      error(`Failed to load "${id}": ${err.message}`, globalOpts);
    }
  }

  // Track fetches
  for (const r of results) {
    trackEvent(r.type === 'doc' ? 'doc_fetched' : 'skill_fetched', {
      entry_id: r.id,
      full: !!opts.full,
      file: opts.file || undefined,
      lang: opts.lang || undefined,
      source: r.source || undefined,
      duration_ms: r.fetchDone - r.fetchStart,
    }).catch(() => {});
  }

  // Output
  if (opts.output) {
    if (opts.full) {
      for (const r of results) {
        if (r.files) {
          const baseDir = ids.length > 1 ? join(opts.output, r.id) : opts.output;
          mkdirSync(baseDir, { recursive: true });
          for (const f of r.files) {
            const outPath = join(baseDir, f.name);
            mkdirSync(dirname(outPath), { recursive: true });
            writeFileSync(outPath, f.content);
          }
          info(`Written ${r.files.length} files to ${baseDir}`);
        } else {
          const outPath = join(opts.output, `${r.id}.md`);
          mkdirSync(dirname(outPath), { recursive: true });
          writeFileSync(outPath, r.content);
          info(`Written to ${outPath}`);
        }
      }
    } else {
      const isDir = opts.output.endsWith('/') || opts.output.endsWith('\\');
      if (isDir && results.length > 1) {
        mkdirSync(opts.output, { recursive: true });
        for (const r of results) {
          const outPath = join(opts.output, `${r.id}.md`);
          mkdirSync(dirname(outPath), { recursive: true });
          writeFileSync(outPath, r.content);
          info(`Written to ${outPath}`);
        }
      } else {
        const outPath = isDir ? join(opts.output, `${results[0].id}.md`) : opts.output;
        mkdirSync(dirname(outPath), { recursive: true });
        const combined = results.map((r) => r.content).join('\n\n---\n\n');
        writeFileSync(outPath, combined);
        info(`Written to ${outPath}`);
      }
    }
    if (globalOpts.json) {
      console.log(JSON.stringify(results.map((r) => ({ id: r.id, type: r.type, path: opts.output }))));
    }
  } else {
    if (results.length === 1 && !results[0].files) {
      const r = results[0];
      const extraFiles = r.additionalFiles || [];
      const annotation = readAnnotation(r.id);
      const jsonData = { id: r.id, type: r.type, content: r.content, path: r.path };
      if (extraFiles.length > 0) jsonData.additionalFiles = extraFiles;
      if (annotation) jsonData.annotation = annotation;
      output(
        jsonData,
        (data) => {
          process.stdout.write(data.content);
          if (annotation) {
            process.stdout.write(`\n\n---\n[Agent note — ${annotation.updatedAt}]\n${annotation.note}\n`);
          }
          const langFlag = opts.lang ? ` --lang ${opts.lang}` : '';
          process.stdout.write(`\n\n---\nAfter using this doc, share your experience:\n`);
          process.stdout.write(`  chub feedback ${r.id} up${langFlag}\n`);
          process.stdout.write(`  chub feedback ${r.id} down${langFlag} --label outdated\n`);
          process.stdout.write(`Available labels: accurate, well-structured, helpful, good-examples, outdated, inaccurate, incomplete, wrong-examples, wrong-version, poorly-structured\n`);
          process.stdout.write(`Do NOT include any code, architecture details, or project-specific information in your feedback.\n`);
          if (extraFiles.length > 0) {
            const fileList = extraFiles.map((f) => `  ${f}`).join('\n');
            const example = `chub get ${r.id} --file ${extraFiles[0]}`;
            process.stdout.write(`\n\n---\nAdditional files available (use --file to fetch):\n${fileList}\nExample: ${example}\n`);
          }
        },
        globalOpts
      );
    } else {
      const parts = results.flatMap((r) => {
        if (r.files) {
          return r.files.map((f) => `# FILE: ${f.name}\n\n${f.content}`);
        }
        return [r.content];
      });
      const combined = parts.join('\n\n---\n\n');
      output(
        results.map((r) => ({ id: r.id, type: r.type, path: r.path })),
        () => process.stdout.write(combined),
        globalOpts
      );
    }
  }
}

export function registerGetCommand(program) {
  program
    .command('get <ids...>')
    .description('Fetch docs or skills by ID (auto-detects type)')
    .option('--lang <language>', 'Language variant (required for docs): py, js, ts, rb, cs (or full names: python, javascript, typescript, ruby, csharp)')
    .option('--version <version>', 'Specific version (for docs)')
    .option('-o, --output <path>', 'Write to file or directory')
    .option('--full', 'Fetch all files (not just entry point)')
    .option('--file <paths>', 'Fetch specific file(s) by path (comma-separated)')
    .action(async (ids, opts) => {
      const globalOpts = program.optsWithGlobals();
      await fetchEntries(ids, opts, globalOpts);
    });
}


================================================
FILE: cli/src/commands/search.js
================================================
import chalk from 'chalk';
import { searchEntries, listEntries, getEntry, getDisplayId, isMultiSource } from '../lib/registry.js';
import { displayLanguage } from '../lib/normalize.js';
import { output } from '../lib/output.js';
import { trackEvent } from '../lib/analytics.js';

function formatEntryList(entries) {
  const multi = isMultiSource();
  for (const entry of entries) {
    const id = getDisplayId(entry);
    const source = entry.source ? chalk.dim(`[${entry.source}]`) : '';
    const sourceName = multi ? chalk.cyan(`(${entry._source})`) : '';
    const type = entry._type === 'skill' ? chalk.magenta('[skill]') : chalk.blue('[doc]');
    const langs = (entry.languages || []).map((l) => displayLanguage(l.language)).join(', ');
    const desc = entry.description
      ? entry.description.length > 60
        ? entry.description.slice(0, 57) + '...'
        : entry.description
      : '';
    console.log(`  ${chalk.bold(id)}  ${type}  ${chalk.dim(langs)}  ${source} ${sourceName}`.trimEnd());
    if (desc) console.log(`       ${chalk.dim(desc)}`);
  }
}

function formatEntryDetail(entry) {
  console.log(chalk.bold(entry.name));
  if (isMultiSource()) console.log(`  Source: ${entry._source}`);
  if (entry.source) console.log(`  Quality: ${entry.source}`);
  if (entry.description) console.log(`  ${chalk.dim(entry.description)}`);
  if (entry.tags?.length) console.log(`  Tags: ${entry.tags.join(', ')}`);
  console.log();
  if (entry.languages) {
    for (const lang of entry.languages) {
      console.log(`  ${chalk.bold(displayLanguage(lang.language))}`);
      console.log(`    Recommended: ${lang.recommendedVersion}`);
      for (const v of lang.versions || []) {
        const size = v.size ? ` (${(v.size / 1024).toFixed(1)} KB)` : '';
        console.log(`    ${v.version}${size}  updated: ${v.lastUpdated}`);
      }
    }
  } else {
    // Skill — flat structure
    const size = entry.size ? ` (${(entry.size / 1024).toFixed(1)} KB)` : '';
    console.log(`  Path: ${entry.path}${size}`);
    if (entry.lastUpdated) console.log(`  Updated: ${entry.lastUpdated}`);
    if (entry.files?.length) console.log(`  Files: ${entry.files.join(', ')}`);
  }
}

export function registerSearchCommand(program) {
  program
    .command('search [query]')
    .description('Search docs and skills (no query lists all)')
    .option('--tags <tags>', 'Filter by tags (comma-separated)')
    .option('--lang <language>', 'Filter by language')
    .option('--limit <n>', 'Max results', '20')
    .action((query, opts) => {
      const globalOpts = program.optsWithGlobals();
      const limit = parseInt(opts.limit, 10);
      const normalizedQuery = typeof query === 'string' ? query.trim().replace(/\s+/g, ' ') : query;

      // No query: list all
      if (!normalizedQuery) {
        const entries = listEntries(opts).slice(0, limit);
        output({ results: entries, total: entries.length }, (data) => {
          if (data.results.length === 0) {
            console.log(chalk.yellow('No entries found.'));
            return;
          }
          console.log(chalk.bold(`${data.total} entries:\n`));
          formatEntryList(data.results);
        }, globalOpts);
        return;
      }

      // Exact id match: show detail
      const result = getEntry(normalizedQuery);
      if (result.ambiguous) {
        output(
          { error: 'ambiguous', alternatives: result.alternatives },
          () => {
            console.log(chalk.yellow(`Multiple entries with id "${normalizedQuery}". Be specific:`));
            for (const alt of result.alternatives) {
              console.log(`  ${chalk.bold(alt)}`);
            }
          },
          globalOpts
        );
        return;
      }
      if (result.entry) {
        output(result.entry, formatEntryDetail, globalOpts);
        return;
      }

      // Fuzzy search
      const searchStart = Date.now();
      const results = searchEntries(normalizedQuery, opts).slice(0, limit);
      const duration_ms = Date.now() - searchStart;
      const resultIds = results.map((e) => e.id || e.name || 'unknown');
      trackEvent('search', {
        query: normalizedQuery.slice(0, 1000),
        query_length: normalizedQuery.length,
        result_count: results.length,
        results: resultIds,
        duration_ms,
        has_tags: !!opts.tags,
        has_lang: !!opts.lang,
        tags: opts.tags || undefined,
        lang: opts.lang || undefined,
      }).catch(() => {});
      output({ results, total: results.length, query: normalizedQuery }, (data) => {
        if (data.results.length === 0) {
          console.log(chalk.yellow(`No results for "${normalizedQuery}".`));
          return;
        }
        console.log(chalk.bold(`${data.total} results for "${normalizedQuery}":\n`));
        formatEntryList(data.results);
      }, globalOpts);
    });
}


================================================
FILE: cli/src/commands/update.js
================================================
import chalk from 'chalk';
import { fetchAllRegistries, fetchFullBundle } from '../lib/cache.js';
import { loadConfig } from '../lib/config.js';
import { output, info } from '../lib/output.js';

export function registerUpdateCommand(program) {
  program
    .command('update')
    .description('Refresh the cached registry index')
    .option('--force', 'Force re-download even if cache is fresh')
    .option('--full', 'Download the full bundle for offline use')
    .action(async (opts) => {
      const globalOpts = program.optsWithGlobals();
      const config = loadConfig();

      try {
        if (opts.full) {
          // Download full bundle for each remote source
          for (const source of config.sources) {
            if (source.path) {
              info(`Skipping local source: ${source.name}`);
              continue;
            }
            info(`Downloading full bundle for ${source.name}...`);
            await fetchFullBundle(source.name);
          }
          output(
            { status: 'ok', mode: 'full' },
            () => console.log(chalk.green('Full bundle(s) downloaded and extracted.')),
            globalOpts
          );
        } else {
          info('Updating registries...');
          const errors = await fetchAllRegistries(opts.force || true);
          if (errors.length > 0) {
            for (const e of errors) {
              process.stderr.write(chalk.yellow(`Warning: ${e.source}: ${e.error}\n`));
            }
          }
          const updated = config.sources.filter((s) => !s.path).length - errors.length;
          output(
            { status: 'ok', mode: 'registry', updated, errors },
            () => console.log(chalk.green(`Registry updated (${updated} remote source(s)).`)),
            globalOpts
          );
        }
      } catch (err) {
        output(
          { error: err.message },
          () => console.error(chalk.red(`Update failed: ${err.message}`)),
          globalOpts
        );
        process.exit(1);
      }
    });
}


================================================
FILE: cli/src/index.js
================================================
import chalk from 'chalk';
import { Command } from 'commander';
import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';
import { ensureRegistry } from './lib/cache.js';
import { registerUpdateCommand } from './commands/update.js';
import { registerCacheCommand } from './commands/cache.js';
import { registerSearchCommand } from './commands/search.js';
import { registerGetCommand } from './commands/get.js';
import { registerBuildCommand } from './commands/build.js';
import { registerFeedbackCommand } from './commands/feedback.js';
import { registerAnnotateCommand } from './commands/annotate.js';
import { trackEvent, shutdownAnalytics, setCliVersion } from './lib/analytics.js';
import { error } from './lib/output.js';
import { showWelcomeIfNeeded } from './lib/welcome.js';

const __dirname = dirname(fileURLToPath(import.meta.url));
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8'));
setCliVersion(pkg.version);

function printUsage() {
  console.log(`
${chalk.bold('chub')} — Context Hub CLI v${pkg.version}
Search and retrieve LLM-optimized docs and skills.

${chalk.bold.underline('Getting Started')}

  ${chalk.dim('$')} chub update                                ${chalk.dim('# download the registry')}
  ${chalk.dim('$')} chub search                                ${chalk.dim('# list everything available')}
  ${chalk.dim('$')} chub search "stripe"                       ${chalk.dim('# fuzzy search')}
  ${chalk.dim('$')} chub search stripe/payments                ${chalk.dim('# exact id → full detail')}
  ${chalk.dim('$')} chub get stripe/api                        ${chalk.dim('# print doc to terminal')}
  ${chalk.dim('$')} chub get stripe/api -o doc.md              ${chalk.dim('# save to file')}
  ${chalk.dim('$')} chub get openai/chat --lang py             ${chalk.dim('# specific language')}
  ${chalk.dim('$')} chub get pw-community/login-flows          ${chalk.dim('# fetch a skill')}
  ${chalk.dim('$')} chub get openai/chat stripe/api            ${chalk.dim('# fetch multiple')}

${chalk.bold.underline('Learn & Improve')}

  After using a doc, save what you learned so future sessions start smarter:

  ${chalk.dim('$')} chub annotate stripe/api "Webhook needs raw body"   ${chalk.dim('# persists across sessions')}
  ${chalk.dim('$')} chub annotate --list                                 ${chalk.dim('# see all saved notes')}
  ${chalk.dim('$')} chub annotate stripe/api --clear                     ${chalk.dim('# remove a note')}

  Always rate docs after using them — helps authors fix issues and prioritize:

  ${chalk.dim('$')} chub feedback stripe/api up --label accurate "Clear examples"
  ${chalk.dim('$')} chub feedback stripe/api down --label outdated "Missing v3 API"

${chalk.bold.underline('Commands')}

  ${chalk.bold('search')} [query]              Search docs and skills (no query = list all)
  ${chalk.bold('get')} <ids...>                 Fetch docs or skills by ID
  ${chalk.bold('annotate')} [id] [note]        Save a note — appears on future fetches
  ${chalk.bold('feedback')} <id> <up|down>     Rate a doc (helps authors improve it)
  ${chalk.bold('update')}                      Refresh the cached registry
  ${chalk.bold('cache')} status|clear          Manage the local cache
  ${chalk.bold('build')} <content-dir>        Build registry from content directory

${chalk.bold.underline('Flags')}

  --json                 Structured JSON output (for agents and piping)
  --tags <csv>           Filter by tags (e.g. docs, skill, openai, browser)
  --lang <language>      Language variant (required for docs): py | js | ts | rb | cs (or full name)
  --full                 Fetch all files, not just the entry point
  -o, --output <path>    Write content to file or directory

${chalk.bold.underline('Agent Piping Patterns')}

  ${chalk.dim('# Get the top result id')}
  ${chalk.dim('$')} chub search "stripe" --json | jq -r '.results[0].id'

  ${chalk.dim('# Search → pick → fetch → save')}
  ${chalk.dim('$')} ID=$(chub search "stripe" --json | jq -r '.results[0].id')
  ${chalk.dim('$')} chub get "$ID" --lang js -o .context/stripe.md

  ${chalk.dim('# Fetch multiple at once')}
  ${chalk.dim('$')} chub get openai/chat stripe/api -o .context/

${chalk.bold.underline('Multi-Source Config')} ${chalk.dim('(~/.chub/config.yaml)')}

  ${chalk.dim('sources:')}
  ${chalk.dim('  - name: community')}
  ${chalk.dim('    url: https://cdn.aichub.org/v1')}
  ${chalk.dim('  - name: internal')}
  ${chalk.dim('    path: /path/to/local/docs')}

  ${chalk.dim('# On id collision, use source: prefix: chub get internal:openai/chat')}
`);
}

const program = new Command();

program
  .name('chub')
  .description('Context Hub - search and retrieve LLM-optimized docs and skills')
  .version(pkg.version, '-V, --cli-version')
  .option('--json', 'Output as JSON (machine-readable)')
  .action(() => {
    printUsage();
  });

// Commands that don't need registry
const SKIP_REGISTRY = ['update', 'cache', 'build', 'feedback', 'annotate', 'help'];

program.hook('preAction', async (thisCommand) => {
  const globalOpts = thisCommand.optsWithGlobals?.() || {};
  showWelcomeIfNeeded(globalOpts);

  const cmdName = thisCommand.args?.[0] || thisCommand.name();
  if (cmdName !== 'chub') {
    // Only initialize identity and track if telemetry is enabled
    // Respects CHUB_TELEMETRY=0 — no client_id file created, no events sent
    try {
      const { isTelemetryEnabled } = await import('./lib/telemetry.js');
      if (isTelemetryEnabled()) {
        const { getOrCreateClientId, isFirstRun } = await import('./lib/identity.js');
        await getOrCreateClientId();

        // Fire-and-forget — don't block command on PostHog network I/O
        trackEvent('command_run', { command: cmdName }).catch(() => {});
        if (isFirstRun()) {
          trackEvent('first_run', { command: cmdName }).catch(() => {});
        }
      }
    } catch {
      // Identity/telemetry failure — silently skip, don't block the command
    }
  }
  if (SKIP_REGISTRY.includes(cmdName)) return;
  if (thisCommand.parent?.name() === 'cache') return;
  // Don't fetch registry for default action (no command)
  if (cmdName === 'chub') return;
  try {
    await ensureRegistry();
  } catch (err) {
    await trackEvent('command_error', { command: cmdName, error_type: 'registry_unavailable' });
    error(`Registry not available: ${err.message}. Run \`chub update\` to refresh remote registries, or check that local source paths in ~/.chub/config.yaml are correct.`, globalOpts);
  }
});

registerUpdateCommand(program);
registerCacheCommand(program);
registerSearchCommand(program);
registerGetCommand(program);
registerBuildCommand(program);
registerFeedbackCommand(program);
registerAnnotateCommand(program);

program.parse();

// Flush analytics before exit (best-effort)
process.on('beforeExit', () => shutdownAnalytics().catch(() => {}));


================================================
FILE: cli/src/lib/analytics.js
================================================
/**
 * PostHog Cloud analytics for general CLI usage tracking.
 *
 * Tracks: command usage, search patterns, doc/skill popularity, errors.
 * Does NOT track feedback ratings (those go to the custom API via telemetry.js).
 *
 * Respects telemetry opt-out: `telemetry: false` in config or CHUB_TELEMETRY=0.
 * Feedback has a separate opt-out: `feedback: false` in config or CHUB_FEEDBACK=0.
 */

import { isTelemetryEnabled } from './telemetry.js';

// PostHog project API key (public — standard for client-side analytics)
const POSTHOG_KEY = 'phc_tO9mXIgcCuBccfN2Ut0quf6UFsd06u3Y6g1kqMaYdQX';
const POSTHOG_HOST = 'https://us.i.posthog.com';

let _posthog = null;
let _initFailed = false;

/**
 * Lazily initialize PostHog client. Returns null if telemetry is disabled
 * or posthog-node is not installed.
 */
async function getClient() {
  if (_initFailed) return null;
  if (_posthog) return _posthog;

  if (!isTelemetryEnabled()) {
    _initFailed = true;
    return null;
  }

  try {
    const { PostHog } = await import('posthog-node');
    _posthog = new PostHog(POSTHOG_KEY, {
      host: POSTHOG_HOST,
      flushAt: 1,        // Send immediately (CLI is short-lived)
      flushInterval: 0,  // Don't batch
    });
    return _posthog;
  } catch {
    // posthog-node not installed — skip analytics silently
    _initFailed = true;
    return null;
  }
}

/**
 * Track an analytics event. Fire-and-forget — never throws, never blocks.
 *
 * @param {string} event - Event name (e.g., 'command_run', 'search', 'doc_fetched')
 * @param {object} properties - Event properties
 */
export async function trackEvent(event, properties = {}) {
  try {
    const client = await getClient();
    if (!client) return;

    const { getOrCreateClientId } = await import('./identity.js');
    const distinctId = await getOrCreateClientId();

    client.capture({
      distinctId,
      event,
      properties: {
        ...properties,
        platform: process.platform,
        node_version: process.version,
        cli_version: _cliVersion || undefined,
      },
    });

    // Flush immediately since CLI process exits soon
    await client.flush();
  } catch {
    // Silent fail — analytics should never disrupt CLI
  }
}

let _cliVersion;
/**
 * Set the CLI version for inclusion in all events.
 * Called once from index.js at startup.
 */
export function setCliVersion(version) {
  _cliVersion = version;
}

/**
 * Shut down the PostHog client gracefully.
 * Call this before process exit if possible.
 */
export async function shutdownAnalytics() {
  if (_posthog) {
    try {
      await _posthog.shutdown();
    } catch {
      // Silent
    }
  }
}


================================================
FILE: cli/src/lib/annotations.js
================================================
import { readFileSync, writeFileSync, mkdirSync, unlinkSync, readdirSync } from 'node:fs';
import { join } from 'node:path';
import { getChubDir } from './config.js';

function getAnnotationsDir() {
  return join(getChubDir(), 'annotations');
}

function annotationPath(entryId) {
  const safe = entryId.replace(/\//g, '--');
  return join(getAnnotationsDir(), `${safe}.json`);
}

export function readAnnotation(entryId) {
  try {
    return JSON.parse(readFileSync(annotationPath(entryId), 'utf8'));
  } catch {
    return null;
  }
}

export function writeAnnotation(entryId, note) {
  const dir = getAnnotationsDir();
  mkdirSync(dir, { recursive: true });
  const data = {
    id: entryId,
    note,
    updatedAt: new Date().toISOString(),
  };
  writeFileSync(annotationPath(entryId), JSON.stringify(data, null, 2));
  return data;
}

export function clearAnnotation(entryId) {
  try {
    unlinkSync(annotationPath(entryId));
    return true;
  } catch {
    return false;
  }
}

export function listAnnotations() {
  const dir = getAnnotationsDir();
  try {
    const files = readdirSync(dir).filter((f) => f.endsWith('.json'));
    return files.map((f) => {
      try {
        return JSON.parse(readFileSync(join(dir, f), 'utf8'));
      } catch {
        return null;
      }
    }).filter(Boolean);
  } catch {
    return [];
  }
}


================================================
FILE: cli/src/lib/bm25.js
================================================
/**
 * BM25 search implementation for Context Hub.
 * Index is built at `chub build` time, scoring happens at search time.
 * Tokenizer is shared between build and search to ensure consistency.
 */

const STOP_WORDS = new Set([
  'a', 'an', 'and', 'are', 'as', 'at', 'be', 'by', 'for', 'from',
  'has', 'have', 'in', 'is', 'it', 'its', 'of', 'on', 'or', 'that',
  'the', 'to', 'was', 'were', 'will', 'with', 'this', 'but', 'not',
  'you', 'your', 'can', 'do', 'does', 'how', 'if', 'may', 'no',
  'so', 'than', 'too', 'very', 'just', 'about', 'into', 'over',
  'such', 'then', 'them', 'these', 'those', 'through', 'under',
  'use', 'using', 'used',
]);

// BM25 default parameters
const DEFAULT_K1 = 1.5;
const DEFAULT_B = 0.75;

// Field weights for multi-field scoring
const FIELD_WEIGHTS = {
  id: 4.0,
  name: 3.0,
  tags: 2.0,
  description: 1.0,
};

function getDefaultParams() {
  return { k1: DEFAULT_K1, b: DEFAULT_B };
}

function isSearchableToken(token) {
  return (token.length > 1 || /^\d+$/.test(token)) && !STOP_WORDS.has(token);
}

export function compactIdentifier(text) {
  return String(text || '')
    .toLowerCase()
    .replace(/[^a-z0-9]/g, '');
}

function splitAlphaNumeric(text) {
  return text
    .replace(/([a-z])(\d)/g, '$1 $2')
    .replace(/(\d)([a-z])/g, '$1 $2');
}

/**
 * Tokenize text into lowercase terms with stop word removal.
 * Must be used identically at build time and search time.
 */
export function tokenize(text) {
  if (!text) return [];
  return text
    .toLowerCase()
    .replace(/[^a-z0-9\s-]/g, ' ')
    .split(/[\s-]+/)
    .filter(isSearchableToken);
}

/**
 * Tokenize identifiers more aggressively than free text so package ids
 * still match joined/split variants like "nodefetch" and "auth 0".
 */
export function tokenizeIdentifier(text) {
  if (!text) return [];

  const tokens = new Set(tokenize(text));
  const raw = String(text);
  const compact = compactIdentifier(raw);
  const segments = new Set([
    ...raw.split('/').map((segment) => compactIdentifier(segment)),
    ...raw.split(/[\/_.\s-]+/).map((segment) => compactIdentifier(segment)),
  ]);

  if (isSearchableToken(compact)) {
    tokens.add(compact);
  }

  for (const token of tokenize(splitAlphaNumeric(compact))) {
    tokens.add(token);
  }

  for (const segment of segments) {
    if (!segment) continue;
    if (isSearchableToken(segment)) {
      tokens.add(segment);
    }
    for (const token of tokenize(splitAlphaNumeric(segment))) {
      tokens.add(token);
    }
  }

  return [...tokens];
}

function buildInvertedIndex(documents) {
  const invertedIndex = Object.create(null);

  for (const [docIndex, doc] of documents.entries()) {
    const allTerms = new Set([
      ...(doc.tokens.id || []),
      ...(doc.tokens.name || []),
      ...(doc.tokens.description || []),
      ...(doc.tokens.tags || []),
    ]);

    for (const term of allTerms) {
      if (!invertedIndex[term]) invertedIndex[term] = [];
      invertedIndex[term].push(docIndex);
    }
  }

  return invertedIndex;
}

export function buildIndexFromDocuments(documents, params = getDefaultParams()) {
  const dfMap = Object.create(null); // document frequency per term (across all fields)
  const fieldLengths = { id: [], name: [], description: [], tags: [] };

  for (const doc of documents) {
    const idTokens = doc.tokens.id || [];
    const nameTokens = doc.tokens.name || [];
    const descTokens = doc.tokens.description || [];
    const tagTokens = doc.tokens.tags || [];

    fieldLengths.id.push(idTokens.length);
    fieldLengths.name.push(nameTokens.length);
    fieldLengths.description.push(descTokens.length);
    fieldLengths.tags.push(tagTokens.length);

    const allTerms = new Set([...idTokens, ...nameTokens, ...descTokens, ...tagTokens]);
    for (const term of allTerms) {
      dfMap[term] = (dfMap[term] || 0) + 1;
    }
  }

  const N = documents.length;
  const idf = Object.create(null);
  for (const [term, df] of Object.entries(dfMap)) {
    idf[term] = Math.log((N - df + 0.5) / (df + 0.5) + 1);
  }

  const avg = (arr) => arr.length === 0 ? 0 : arr.reduce((a, b) => a + b, 0) / arr.length;
  return {
    version: '1.0.0',
    algorithm: 'bm25',
    params,
    totalDocs: N,
    avgFieldLengths: {
      id: avg(fieldLengths.id),
      name: avg(fieldLengths.name),
      description: avg(fieldLengths.description),
      tags: avg(fieldLengths.tags),
    },
    idf,
    documents,
    invertedIndex: buildInvertedIndex(documents),
  };
}

/**
 * Build a BM25 search index from registry entries.
 * Called during `chub build`.
 *
 * @param {Array} entries - Combined docs and skills from registry
 * @returns {Object} The search index
 */
export function buildIndex(entries) {
  const documents = [];

  for (const entry of entries) {
    const idTokens = tokenizeIdentifier(entry.id);
    const nameTokens = tokenize(entry.name);
    const descTokens = tokenize(entry.description || '');
    const tagTokens = (entry.tags || []).flatMap((t) => tokenize(t));

    documents.push({
      id: entry.id,
      tokens: {
        id: idTokens,
        name: nameTokens,
        description: descTokens,
        tags: tagTokens,
      },
    });
  }
  return buildIndexFromDocuments(documents);
}

/**
 * Compute BM25 score for a single field.
 */
function scoreField(queryTerms, fieldTokens, idf, avgFieldLen, k1, b) {
  if (fieldTokens.length === 0) return 0;

  // Build term frequency map for this field
  const tf = Object.create(null);
  for (const t of fieldTokens) {
    tf[t] = (tf[t] || 0) + 1;
  }

  let score = 0;
  const dl = fieldTokens.length;

  for (const term of queryTerms) {
    const termFreq = tf[term] || 0;
    if (termFreq === 0) continue;

    const termIdf = idf[term] || 0;
    const numerator = termFreq * (k1 + 1);
    const denominator = termFreq + k1 * (1 - b + b * (dl / (avgFieldLen || 1)));
    score += termIdf * (numerator / denominator);
  }

  return score;
}

function getCandidateDocIndexes(queryTerms, index) {
  if (!index.invertedIndex) {
    return index.documents.map((_, docIndex) => docIndex);
  }

  const candidateIndexes = new Set();
  for (const term of new Set(queryTerms)) {
    const postings = index.invertedIndex[term];
    if (!postings) continue;
    for (const docIndex of postings) {
      candidateIndexes.add(docIndex);
    }
  }

  return [...candidateIndexes];
}

function runSearch(query, index, opts = {}) {
  const queryTerms = tokenize(query);
  const totalDocs = index.documents.length;

  if (queryTerms.length === 0) {
    return {
      results: [],
      stats: {
        totalDocs,
        candidateDocCount: 0,
        scoredDocCount: 0,
        matchedDocCount: 0,
        usedInvertedIndex: !!index.invertedIndex,
      },
    };
  }

  const { k1, b } = index.params;
  const results = [];
  const candidateDocIndexes = getCandidateDocIndexes(queryTerms, index);

  for (const docIndex of candidateDocIndexes) {
    const doc = index.documents[docIndex];
    let totalScore = 0;

    for (const [field, weight] of Object.entries(FIELD_WEIGHTS)) {
      const fieldTokens = doc.tokens[field] || [];
      const avgLen = index.avgFieldLengths[field] || 1;
      const fieldScore = scoreField(queryTerms, fieldTokens, index.idf, avgLen, k1, b);
      totalScore += fieldScore * weight;
    }

    if (totalScore > 0) {
      results.push({ id: doc.id, score: totalScore });
    }
  }

  results.sort((a, b) => b.score - a.score);
  const limitedResults = opts.limit ? results.slice(0, opts.limit) : results;

  return {
    results: limitedResults,
    stats: {
      totalDocs,
      candidateDocCount: candidateDocIndexes.length,
      scoredDocCount: candidateDocIndexes.length,
      matchedDocCount: results.length,
      usedInvertedIndex: !!index.invertedIndex,
    },
  };
}

/**
 * Search the BM25 index with a query string.
 *
 * @param {string} query - The search query
 * @param {Object} index - The pre-built BM25 index
 * @param {Object} opts - Options: { limit }
 * @returns {Array} Sorted results: [{ id, score }]
 */
export function search(query, index, opts = {}) {
  return runSearch(query, index, opts).results;
}

export function searchWithStats(query, index, opts = {}) {
  return runSearch(query, index, opts);
}


================================================
FILE: cli/src/lib/cache.js
================================================
import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync, readdirSync, statSync } from 'node:fs';
import { join, dirname } from 'node:path';
import { pipeline } from 'node:stream/promises';
import { createWriteStream } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { getChubDir, loadConfig } from './config.js';

const __dirname = dirname(fileURLToPath(import.meta.url));

/**
 * Path to bundled content shipped with the npm package.
 * Contains registry.json + doc files built from content/ at publish time.
 */
function getBundledDir() {
  return join(__dirname, '..', '..', 'dist');
}

function getSourceDir(sourceName) {
  return join(getChubDir(), 'sources', sourceName);
}

function getSourceDataDir(sourceName) {
  return join(getSourceDir(sourceName), 'data');
}

function getSourceMetaPath(sourceName) {
  return join(getSourceDir(sourceName), 'meta.json');
}

function getSourceRegistryPath(sourceName) {
  return join(getSourceDir(sourceName), 'registry.json');
}

function getSourceSearchIndexPath(sourceName) {
  return join(getSourceDir(sourceName), 'search-index.json');
}

function readMeta(sourceName) {
  try {
    return JSON.parse(readFileSync(getSourceMetaPath(sourceName), 'utf8'));
  } catch {
    return {};
  }
}

function writeMeta(sourceName, meta) {
  const dir = getSourceDir(sourceName);
  mkdirSync(dir, { recursive: true });
  writeFileSync(getSourceMetaPath(sourceName), JSON.stringify(meta, null, 2));
}

function isSourceCacheFresh(sourceName) {
  const meta = readMeta(sourceName);
  if (!meta.lastUpdated && meta.lastUpdated !== 0) return false;
  const config = loadConfig();
  const age = (Date.now() - meta.lastUpdated) / 1000;
  return age < config.refresh_interval;
}

function isTimestampFresh(timestamp) {
  if (timestamp === undefined || timestamp === null) return false;
  const config = loadConfig();
  const age = (Date.now() - timestamp) / 1000;
  return age < config.refresh_interval;
}

function hasFreshSearchIndexState(sourceName) {
  if (existsSync(getSourceSearchIndexPath(sourceName))) {
    return true;
  }

  const meta = readMeta(sourceName);
  return meta.searchIndexAvailable === false && isTimestampFresh(meta.searchIndexCheckedAt);
}

function shouldFetchRemoteRegistry(sourceName, force = false) {
  if (force) return true;
  return !(
    isSourceCacheFresh(sourceName)
    && existsSync(getSourceRegistryPath(sourceName))
    && hasFreshSearchIndexState(sourceName)
  );
}

async function fetchRemoteText(url) {
  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), 30000);
  try {
    const res = await fetch(url, { signal: controller.signal });
    if (!res.ok) {
      throw new Error(`${res.status} ${res.statusText}`);
    }
    return await res.text();
  } finally {
    clearTimeout(timeout);
  }
}

/**
 * Fetch registry for a single remote source.
 */
async function fetchRemoteRegistry(source, force = false) {
  if (!shouldFetchRemoteRegistry(source.name, force)) {
    return;
  }

  const registryUrl = `${source.url}/registry.json`;
  let registryText;
  try {
    registryText = await fetchRemoteText(registryUrl);
  } catch (err) {
    throw new Error(`Failed to fetch registry from ${source.name}: ${err.message}`);
  }

  const dir = getSourceDir(source.name);
  mkdirSync(dir, { recursive: true });
  writeFileSync(getSourceRegistryPath(source.name), registryText);

  const searchIndexUrl = `${source.url}/search-index.json`;
  const searchIndexCheckedAt = Date.now();
  let searchIndexAvailable;
  try {
    const searchIndexText = await fetchRemoteText(searchIndexUrl);
    writeFileSync(getSourceSearchIndexPath(source.name), searchIndexText);
    searchIndexAvailable = true;
  } catch (err) {
    // Avoid serving a stale local search index after a registry refresh.
    rmSync(getSourceSearchIndexPath(source.name), { force: true });
    if (err.message?.startsWith('404 ')) {
      searchIndexAvailable = false;
    }
  }

  const nextMeta = {
    ...readMeta(source.name),
    lastUpdated: Date.now(),
  };
  delete nextMeta.searchIndexAvailable;
  delete nextMeta.searchIndexCheckedAt;

  if (searchIndexAvailable !== undefined) {
    nextMeta.searchIndexAvailable = searchIndexAvailable;
    nextMeta.searchIndexCheckedAt = searchIndexCheckedAt;
  }

  writeMeta(source.name, nextMeta);
}

/**
 * Fetch registries for all configured sources.
 */
export async function fetchAllRegistries(force = false) {
  const config = loadConfig();
  const errors = [];

  for (const source of config.sources) {
    if (source.path) continue; // Local sources don't need fetching
    try {
      await fetchRemoteRegistry(source, force);
    } catch (err) {
      errors.push({ source: source.name, error: err.message });
    }
  }

  return errors;
}

/**
 * Download full bundle for a remote source.
 */
export async function fetchFullBundle(sourceName) {
  const config = loadConfig();
  const source = config.sources.find((s) => s.name === sourceName);
  if (!source || source.path) {
    throw new Error(`Source "${sourceName}" is not a remote source.`);
  }

  const url = `${source.url}/bundle.tar.gz`;
  const tmpPath = join(getSourceDir(sourceName), 'bundle.tar.gz');

  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), 30000);
  let res;
  try {
    res = await fetch(url, { signal: controller.signal });
  } finally {
    clearTimeout(timeout);
  }
  if (!res.ok) {
    throw new Error(`Failed to fetch bundle from ${sourceName}: ${res.status} ${res.statusText}`);
  }

  const dir = getSourceDir(sourceName);
  mkdirSync(dir, { recursive: true });
  await pipeline(res.body, createWriteStream(tmpPath));

  const { extract } = await import('tar');
  const dataDir = getSourceDataDir(sourceName);
  mkdirSync(dataDir, { recursive: true });
  await extract({ file: tmpPath, cwd: dataDir });

  // Copy registry.json from extracted bundle if present
  const extractedRegistry = join(dataDir, 'registry.json');
  if (existsSync(extractedRegistry)) {
    const regData = readFileSync(extractedRegistry, 'utf8');
    writeFileSync(getSourceRegistryPath(sourceName), regData);
  }

  const extractedSearchIndex = join(dataDir, 'search-index.json');
  if (existsSync(extractedSearchIndex)) {
    const searchIndexData = readFileSync(extractedSearchIndex, 'utf8');
    writeFileSync(getSourceSearchIndexPath(sourceName), searchIndexData);
  } else {
    rmSync(getSourceSearchIndexPath(sourceName), { force: true });
  }

  writeMeta(sourceName, { ...readMeta(sourceName), lastUpdated: Date.now(), fullBundle: true });
  rmSync(tmpPath, { force: true });
}

/**
 * Fetch a single doc. Source object must have name + (url or path).
 */
export async function fetchDoc(source, docPath) {
  // Local source: read directly
  if (source.path) {
    const localPath = join(source.path, docPath);
    if (!existsSync(localPath)) {
      throw new Error(`File not found: ${localPath}`);
    }
    return readFileSync(localPath, 'utf8');
  }

  // Remote source: check cache first
  const cachedPath = join(getSourceDataDir(source.name), docPath);
  if (existsSync(cachedPath)) {
    return readFileSync(cachedPath, 'utf8');
  }

  // Check bundled content (shipped with npm package)
  const bundledPath = join(getBundledDir(), docPath);
  if (existsSync(bundledPath)) {
    return readFileSync(bundledPath, 'utf8');
  }

  // Fetch from CDN (optional — only if source has a URL)
  const url = `${source.url}/${docPath}`;
  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), 30000);
  let res;
  try {
    res = await fetch(url, { signal: controller.signal });
  } finally {
    clearTimeout(timeout);
  }
  if (!res.ok) {
    throw new Error(`Failed to fetch ${docPath} from ${source.name}: ${res.status} ${res.statusText}`);
  }

  const content = await res.text();

  // Cache locally
  const dir = dirname(cachedPath);
  mkdirSync(dir, { recursive: true });
  writeFileSync(cachedPath, content);

  return content;
}

/**
 * Fetch all files in an entry directory.
 * Returns array of { name, content }.
 */
export async function fetchDocFull(source, basePath, files) {
  const results = [];
  for (const file of files) {
    const filePath = `${basePath}/${file}`;
    const content = await fetchDoc(source, filePath);
    results.push({ name: file, content });
  }
  return results;
}

/**
 * Load cached/local registry for a single source.
 */
export function loadSourceRegistry(source) {
  if (source.path) {
    // Local source: read registry.json from the folder
    const regPath = join(source.path, 'registry.json');
    if (!existsSync(regPath)) return null;
    return JSON.parse(readFileSync(regPath, 'utf8'));
  }

  // Remote source: read from cache
  const regPath = getSourceRegistryPath(source.name);
  if (!existsSync(regPath)) return null;
  return JSON.parse(readFileSync(regPath, 'utf8'));
}

/**
 * Load BM25 search index for a single source (if available).
 */
export function loadSearchIndex(source) {
  const basePath = source.path || getSourceDir(source.name);
  const indexPath = join(basePath, 'search-index.json');
  if (!existsSync(indexPath)) return null;
  try {
    return JSON.parse(readFileSync(indexPath, 'utf8'));
  } catch {
    return null;
  }
}

/**
 * Get cache stats.
 */
export function getCacheStats() {
  const chubDir = getChubDir();
  if (!existsSync(chubDir)) {
    return { exists: false, sources: [] };
  }

  const config = loadConfig();
  const sourceStats = [];

  for (const source of config.sources) {
    if (source.path) {
      sourceStats.push({ name: source.name, type: 'local', path: source.path });
      continue;
    }

    const meta = readMeta(source.name);
    const dataDir = getSourceDataDir(source.name);
    let dataSize = 0;
    let fileCount = 0;

    if (existsSync(dataDir)) {
      const walk = (dir) => {
        for (const entry of readdirSync(dir, { withFileTypes: true })) {
          const full = join(dir, entry.name);
          if (entry.isDirectory()) walk(full);
          else { dataSize += statSync(full).size; fileCount++; }
        }
      };
      walk(dataDir);
    }

    sourceStats.push({
      name: source.name,
      type: 'remote',
      hasRegistry: existsSync(getSourceRegistryPath(source.name)),
      lastUpdated: meta.lastUpdated ? new Date(meta.lastUpdated).toISOString() : null,
      fullBundle: meta.fullBundle || false,
      fileCount,
      dataSize,
    });
  }

  return { exists: true, sources: sourceStats };
}

/**
 * Clear the cache (preserves config.yaml).
 */
export function clearCache() {
  const chubDir = getChubDir();
  const configPath = join(chubDir, 'config.yaml');
  let configContent = null;
  if (existsSync(configPath)) {
    configContent = readFileSync(configPath, 'utf8');
  }

  rmSync(chubDir, { recursive: true, force: true });

  if (configContent) {
    mkdirSync(chubDir, { recursive: true });
    writeFileSync(configPath, configContent);
  }
}

/**
 * Ensure at least one registry is available.
 */
export async function ensureRegistry() {
  const config = loadConfig();

  // Check if any source has a registry available
  let hasAny = false;
  for (const source of config.sources) {
    if (source.path) {
      const regPath = join(source.path, 'registry.json');
      if (existsSync(regPath)) { hasAny = true; break; }
    } else {
      if (existsSync(getSourceRegistryPath(source.name))) { hasAny = true; break; }
    }
  }

  if (hasAny) {
    // Auto-refresh stale remote registries (best-effort)
    for (const source of config.sources) {
      if (source.path) continue;
      if (shouldFetchRemoteRegistry(source.name)) {
        try { await fetchRemoteRegistry(source); } catch { /* use stale */ }
      }
    }
    return;
  }

  // No registries at all — try bundled content first, then network
  const bundledRegistry = join(getBundledDir(), 'registry.json');
  if (existsSync(bundledRegistry)) {
    // Seed cache from bundled content (ships with npm package)
    const defaultDir = getSourceDir('default');
    mkdirSync(defaultDir, { recursive: true });
    writeFileSync(getSourceRegistryPath('default'), readFileSync(bundledRegistry, 'utf8'));
    const bundledSearchIndex = join(getBundledDir(), 'search-index.json');
    if (existsSync(bundledSearchIndex)) {
      writeFileSync(getSourceSearchIndexPath('default'), readFileSync(bundledSearchIndex, 'utf8'));
    }
    writeMeta('default', { lastUpdated: 0, bundledSeed: true }); // lastUpdated=0 → stale, so chub update will refresh
    return;
  }

  // No bundled content either — must download from remote
  await fetchAllRegistries(true);
}


================================================
FILE: cli/src/lib/config.js
================================================
import { readFileSync } from 'node:fs';
import { join } from 'node:path';
import { homedir } from 'node:os';
import { parse as parseYaml } from 'yaml';

const DEFAULT_CDN_URL = 'https://cdn.aichub.org/v1';
const DEFAULT_TELEMETRY_URL = 'https://api.aichub.org/v1';

const DEFAULTS = {
  output_dir: '.context',
  refresh_interval: 21600,
  output_format: 'human',
  source: 'official,maintainer,community',
  telemetry: true,
  feedback: true,
  telemetry_url: DEFAULT_TELEMETRY_URL,
};

let _config = null;

export function getChubDir() {
  return process.env.CHUB_DIR || join(homedir(), '.chub');
}

export function loadConfig() {
  if (_config) return _config;

  let fileConfig = {};
  const configPath = join(getChubDir(), 'config.yaml');
  try {
    const raw = readFileSync(configPath, 'utf8');
    fileConfig = parseYaml(raw) || {};
  } catch {
    // No config file, use defaults
  }

  // Build sources list
  let sources;
  if (fileConfig.sources && Array.isArray(fileConfig.sources)) {
    sources = fileConfig.sources;
  } else {
    // Backward compat: single cdn_url becomes a single source
    const url = process.env.CHUB_BUNDLE_URL || fileConfig.cdn_url || DEFAULT_CDN_URL;
    sources = [{ name: 'default', url }];
  }

  _config = {
    sources,
    output_dir: fileConfig.output_dir || DEFAULTS.output_dir,
    refresh_interval: fileConfig.refresh_interval ?? DEFAULTS.refresh_interval,
    output_format: fileConfig.output_format || DEFAULTS.output_format,
    source: fileConfig.source || DEFAULTS.source,
    telemetry: fileConfig.telemetry !== undefined ? fileConfig.telemetry : DEFAULTS.telemetry,
    feedback: fileConfig.feedback !== undefined ? fileConfig.feedback : DEFAULTS.feedback,
    telemetry_url: fileConfig.telemetry_url || DEFAULTS.telemetry_url,
  };

  return _config;
}


================================================
FILE: cli/src/lib/frontmatter.js
================================================
import { parse as parseYaml } from 'yaml';

/**
 * Parse YAML frontmatter from markdown content.
 * Returns { attributes, body } where attributes is the parsed YAML object.
 */
export function parseFrontmatter(content) {
  const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
  if (!match) return { attributes: {}, body: content };
  return {
    attributes: parseYaml(match[1]) || {},
    body: match[2],
  };
}


================================================
FILE: cli/src/lib/identity.js
================================================
import { createHash } from 'node:crypto';
import { execSync } from 'node:child_process';
import { platform } from 'node:os';
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
import { join } from 'node:path';
import { getChubDir } from './config.js';

let _cachedClientId = null;

/**
 * Get the platform-native machine UUID.
 */
function getMachineUUID() {
  const plat = platform();

  if (plat === 'darwin') {
    return execSync(
      `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`,
      { encoding: 'utf8' }
    ).trim();
  }

  if (plat === 'linux') {
    try {
      return readFileSync('/etc/machine-id', 'utf8').trim();
    } catch {
      return readFileSync('/var/lib/dbus/machine-id', 'utf8').trim();
    }
  }

  if (plat === 'win32') {
    const output = execSync(
      'reg query "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography" /v MachineGuid',
      { encoding: 'utf8' }
    );
    const match = output.match(/MachineGuid\s+REG_SZ\s+(.+)/);
    if (match) return match[1].trim();
    throw new Error('Could not parse MachineGuid from registry');
  }

  throw new Error(`Unsupported platform: ${plat}`);
}

/**
 * Get or create a stable, anonymous client ID.
 * Checks ~/.chub/client_id for a cached 64-char hex string.
 * If not found, hashes the machine UUID with SHA-256 and saves it.
 */
export async function getOrCreateClientId() {
  if (_cachedClientId) return _cachedClientId;

  const chubDir = getChubDir();
  const idPath = join(chubDir, 'client_id');

  // Try to read existing client id
  try {
    const existing = readFileSync(idPath, 'utf8').trim();
    if (/^[0-9a-f]{64}$/.test(existing)) {
      _cachedClientId = existing;
      return existing;
    }
  } catch {
    // File doesn't exist or is unreadable
  }

  // Generate from machine UUID — this is a first-time user
  const uuid = getMachineUUID();
  const hash = createHash('sha256').update(uuid).digest('hex');

  // Ensure directory exists
  if (!existsSync(chubDir)) {
    mkdirSync(chubDir, { recursive: true });
  }

  writeFileSync(idPath, hash, 'utf8');
  _cachedClientId = hash;
  _isFirstRun = true;
  return hash;
}

let _isFirstRun = false;

/**
 * Returns true if this is the first time the CLI has run on this machine.
 * Only valid after getOrCreateClientId() has been called.
 */
export function isFirstRun() {
  return _isFirstRun;
}

/**
 * Auto-detect the AI coding tool from environment variables.
 */
export function detectAgent() {
  if (process.env.CLAUDE_CODE || process.env.CLAUDE_SESSION_ID) return 'claude-code';
  if (process.env.CURSOR_SESSION_ID || process.env.CURSOR_TRACE_ID) return 'cursor';
  if (process.env.CODEX_HOME || process.env.CODEX_SESSION) return 'codex';
  if (process.env.WINDSURF_SESSION) return 'windsurf';
  if (process.env.AIDER_MODEL || process.env.AIDER) return 'aider';
  if (process.env.CLINE_SESSION) return 'cline';
  if (process.env.GITHUB_COPILOT) return 'copilot';
  return 'unknown';
}

/**
 * Detect the version of the AI coding tool, if available.
 */
export function detectAgentVersion() {
  return process.env.CLAUDE_CODE_VERSION || process.env.CURSOR_VERSION || undefined;
}


================================================
FILE: cli/src/lib/normalize.js
================================================
const ALIASES = {
  js: 'javascript',
  ts: 'typescript',
  py: 'python',
  rb: 'ruby',
  cs: 'csharp',
};

const DISPLAY = {
  javascript: 'js',
  typescript: 'ts',
  python: 'py',
  ruby: 'rb',
  csharp: 'cs',
};

export function normalizeLanguage(lang) {
  if (!lang) return null;
  const lower = lang.toLowerCase();
  return ALIASES[lower] || lower;
}

export function displayLanguage(lang) {
  return DISPLAY[lang] || lang;
}


================================================
FILE: cli/src/lib/output.js
================================================
/**
 * Dual-mode output: human-friendly (default) or JSON (--json flag).
 *
 * Every command calls `output(data, humanFormatter, opts)`.
 * - In JSON mode: prints JSON to stdout, nothing else.
 * - In human mode: calls humanFormatter(data) which prints with chalk.
 */
export function output(data, humanFormatter, opts) {
  if (opts?.json) {
    console.log(JSON.stringify(data, null, 2));
  } else {
    humanFormatter(data);
  }
}

/**
 * Print a message to stderr (for confirmations when -o is used).
 */
export function info(msg) {
  process.stderr.write(msg + '\n');
}

/**
 * Print an error and exit.
 */
export function error(msg, opts) {
  if (opts?.json) {
    console.log(JSON.stringify({ error: msg }));
  } else {
    process.stderr.write(`Error: ${msg}\n`);
  }
  process.exit(1);
}


================================================
FILE: cli/src/lib/registry.js
================================================
import { loadSourceRegistry, loadSearchIndex } from './cache.js';
import { loadConfig } from './config.js';
import { normalizeLanguage } from './normalize.js';
import { buildIndexFromDocuments, compactIdentifier, search as bm25Search, tokenize } from './bm25.js';

let _merged = null;
let _searchIndex = null;

function getSearchLookupId(sourceName, entryId) {
  return `${sourceName}:${entryId}`;
}

function normalizeQuery(query) {
  return String(query || '')
    .trim()
    .replace(/\s+/g, ' ');
}

function splitCompactSegments(text) {
  return [...new Set([
    ...String(text || '').split('/').map((segment) => compactIdentifier(segment)),
    ...String(text || '').split(/[\/_.\s-]+/).map((segment) => compactIdentifier(segment)),
  ])].filter(Boolean);
}

function levenshteinDistance(a, b, maxDistance = Infinity) {
  if (a === b) return 0;
  if (!a.length) return b.length;
  if (!b.length) return a.length;
  if (Math.abs(a.length - b.length) > maxDistance) return maxDistance + 1;

  let previous = Array.from({ length: b.length + 1 }, (_, idx) => idx);
  let current = new Array(b.length + 1);

  for (let i = 1; i <= a.length; i++) {
    current[0] = i;
    let rowMin = current[0];

    for (let j = 1; j <= b.length; j++) {
      const substitutionCost = a[i - 1] === b[j - 1] ? 0 : 1;
      current[j] = Math.min(
        previous[j] + 1,
        current[j - 1] + 1,
        previous[j - 1] + substitutionCost,
      );
      rowMin = Math.min(rowMin, current[j]);
    }

    if (rowMin > maxDistance) return maxDistance + 1;
    [previous, current] = [current, previous];
  }

  return previous[b.length];
}

function scoreCompactCandidate(queryCompact, candidateCompact, weights) {
  if (!queryCompact || !candidateCompact) return 0;
  if (candidateCompact === queryCompact) return weights.exact;
  if (queryCompact.length < 3) return 0;

  const lengthPenalty = Math.abs(candidateCompact.length - queryCompact.length);
  const lengthRatio = Math.min(candidateCompact.length, queryCompact.length)
    / Math.max(candidateCompact.length, queryCompact.length);

  if ((candidateCompact.startsWith(queryCompact) || queryCompact.startsWith(candidateCompact)) && lengthRatio >= 0.6) {
    return Math.max(weights.prefix - lengthPenalty, 0);
  }

  if ((candidateCompact.includes(queryCompact) || queryCompact.includes(candidateCompact)) && lengthRatio >= 0.75) {
    return Math.max(weights.contains - lengthPenalty, 0);
  }

  if (queryCompact.length < 5) return 0;

  const maxDistance = queryCompact.length <= 5 ? 1 : queryCompact.length <= 8 ? 2 : 3;
  const distance = levenshteinDistance(queryCompact, candidateCompact, maxDistance);
  if (distance > maxDistance) return 0;

  return Math.max(weights.fuzzy - (distance * 20) - lengthPenalty, 0);
}

function scoreEntryLexicalVariant(entry, queryCompact) {
  if (queryCompact.length < 2) return 0;

  const nameCompact = compactIdentifier(entry.name);
  const idCompact = compactIdentifier(entry.id);
  const idSegments = splitCompactSegments(entry.id);
  const nameSegments = splitCompactSegments(entry.name);

  let best = 0;

  best = Math.max(best, scoreCompactCandidate(queryCompact, nameCompact, {
    exact: 620,
    prefix: 560,
    contains: 520,
    fuzzy: 500,
  }));

  best = Math.max(best, scoreCompactCandidate(queryCompact, idCompact, {
    exact: 600,
    prefix: 540,
    contains: 500,
    fuzzy: 470,
  }));

  for (let idx = 0; idx < idSegments.length; idx++) {
    const segment = idSegments[idx];
    const segmentScore = scoreCompactCandidate(queryCompact, segment, {
      exact: 580,
      prefix: 530,
      contains: 490,
      fuzzy: 460,
    });
    if (segmentScore === 0) continue;

    let bonus = 0;
    const isFirst = idx === 0;
    const isLast = idx === idSegments.length - 1;
    if (isFirst) bonus += 10;
    if (isLast) bonus += 10;
    if (queryCompact === idSegments[0]) bonus += 60;
    if (queryCompact === idSegments[idSegments.length - 1]) bonus += 25;
    if (idSegments.length > 1 && queryCompact === idSegments[0] && queryCompact === idSegments[idSegments.length - 1]) {
      bonus += 40;
    }

    best = Math.max(best, segmentScore + bonus);
  }

  for (const segment of nameSegments) {
    best = Math.max(best, scoreCompactCandidate(queryCompact, segment, {
      exact: 560,
      prefix: 520,
      contains: 480,
      fuzzy: 450,
    }));
  }

  return best;
}

function scoreEntryLexicalBoost(entry, normalizedQuery, rescueTerms = []) {
  const queryCompacts = [...new Set([
    compactIdentifier(normalizedQuery),
    ...rescueTerms.map((term) => compactIdentifier(term)),
  ])].filter((queryCompact) => queryCompact.length >= 2);

  let best = 0;
  for (const queryCompact of queryCompacts) {
    best = Math.max(best, scoreEntryLexicalVariant(entry, queryCompact));
  }
  return best;
}

function getMissingQueryTerms(normalizedQuery) {
  if (!_searchIndex?.invertedIndex) {
    return [];
  }

  return tokenize(normalizedQuery).filter((term) => !_searchIndex.invertedIndex[term]?.length);
}

function shouldRunGlobalLexicalScan(normalizedQuery, resultByKey) {
  if (!_searchIndex || resultByKey.size === 0) {
    return true;
  }

  if (!_searchIndex.invertedIndex) {
    return false;
  }

  const queryTerms = tokenize(normalizedQuery);
  if (queryTerms.length < 2) {
    return false;
  }

  return getMissingQueryTerms(normalizedQuery).length > 0;
}

function namespaceSearchIndex(index, sourceName) {
  return {
    ...index,
    documents: (index.documents || []).map((doc) => ({
      ...doc,
      id: getSearchLookupId(sourceName, doc.id),
    })),
  };
}

/**
 * Load and merge entries from all configured sources.
 * Returns { docs: [...], skills: [...] } with each entry tagged with _source/_sourceObj.
 */
function getMerged() {
  if (_merged) return _merged;

  const config = loadConfig();
  const allDocs = [];
  const allSkills = [];
  const searchIndexes = [];

  for (const source of config.sources) {
    const registry = loadSourceRegistry(source);
    if (!registry) continue;

    // Load BM25 search index if available
    const idx = loadSearchIndex(source);
    if (idx) searchIndexes.push(namespaceSearchIndex(idx, source.name));

    // Support both new format (docs/skills) and old format (entries)
    if (registry.docs) {
      for (const doc of registry.docs) {
        allDocs.push({ ...doc, id: doc.id || doc.name, _source: source.name, _sourceObj: source });
      }
    }
    if (registry.skills) {
      for (const skill of registry.skills) {
        allSkills.push({ ...skill, id: skill.id || skill.name, _source: source.name, _sourceObj: source });
      }
    }

    // Backward compat: old entries[] format
    if (registry.entries) {
      for (const entry of registry.entries) {
        const tagged = { ...entry, _source: source.name, _sourceObj: source };
        const provides = entry.languages?.[0]?.versions?.[0]?.provides || [];
        if (provides.includes('skill')) {
          allSkills.push(tagged);
        }
        if (provides.includes('doc') || provides.length === 0) {
          allDocs.push(tagged);
        }
      }
    }
  }

  // Merge search indexes (combine documents and recompute IDF)
  if (searchIndexes.length > 0) {
    if (searchIndexes.length === 1) {
      const [singleIndex] = searchIndexes;
      _searchIndex = singleIndex.invertedIndex
        ? singleIndex
        : buildIndexFromDocuments(singleIndex.documents, singleIndex.params);
    } else {
      const allDocuments = searchIndexes.flatMap((idx) => idx.documents);
      _searchIndex = buildIndexFromDocuments(allDocuments, searchIndexes[0].params);
    }
  }

  _merged = { docs: allDocs, skills: allSkills };
  return _merged;
}

/**
 * Get all entries (docs + skills combined) for listing/searching.
 */
function getAllEntries() {
  const { docs, skills } = getMerged();
  // Tag each with _type for display
  const taggedDocs = docs.map((d) => ({ ...d, _type: 'doc' }));
  const taggedSkills = skills.map((s) => ({ ...s, _type: 'skill' }));
  // Deduplicate: if same id+source appears in both, keep both but mark as bundled
  return [...taggedDocs, ...taggedSkills];
}

/**
 * Filter entries by the global source trust policy.
 */
function applySourceFilter(entries) {
  const config = loadConfig();
  const allowed = config.source.split(',').map((s) => s.trim().toLowerCase());
  return entries.filter((e) => !e.source || allowed.includes(e.source.toLowerCase()));
}

/**
 * Apply tag and language filters.
 */
function applyFilters(entries, filters) {
  let result = entries;

  if (filters.tags) {
    const filterTags = filters.tags.split(',').map((t) => t.trim().toLowerCase());
    result = result.filter((e) =>
      filterTags.every((ft) => e.tags?.some((t) => t.toLowerCase() === ft))
    );
  }
  if (filters.lang) {
    const lang = normalizeLanguage(filters.lang);
    result = result.filter((e) =>
      e.languages?.some((l) => l.language === lang)
    );
  }

  return result;
}

/**
 * Check if an id has collisions across sources.
 */
function getEntriesById(id, entries) {
  return entries.filter((e) => e.id === id);
}

/**
 * Check if we're in multi-source mode.
 */
export function isMultiSource() {
  const config = loadConfig();
  return config.sources.length > 1;
}

/**
 * Get the display id for an entry — namespaced only on collision.
 */
export function getDisplayId(entry) {
  if (!isMultiSource()) return entry.id;
  const all = applySourceFilter(getAllEntries());
  const matches = getEntriesById(entry.id, all).filter((e) => e._type === entry._type);
  if (matches.length > 1) return `${entry._source}:${entry.id}`;
  return entry.id;
}

/**
 * Search entries by query string. Searches both docs and skills.
 * Uses BM25 when a search index is available, falls back to keyword matching.
 */
export function searchEntries(query, filters = {}) {
  const normalizedQuery = normalizeQuery(query);
  const entries = applySourceFilter(getAllEntries());

  // Deduplicate: same id+source appearing as both doc and skill → show once
  const seen = new Set();
  const deduped = [];
  for (const entry of entries) {
    const key = `${entry._source}:${entry.id}`;
    if (!seen.has(key)) {
      seen.add(key);
      deduped.push(entry);
    }
  }

  // Build entry lookup by id
  const entryById = new Map();
  for (const entry of deduped) {
    entryById.set(getSearchLookupId(entry._source, entry.id), entry);
  }

  if (!normalizedQuery) {
    return applyFilters(deduped, filters).map((entry) => ({ ...entry, _score: 0 }));
  }

  const resultByKey = new Map();

  if (_searchIndex) {
    // BM25 search
    for (const match of bm25Search(normalizedQuery, _searchIndex)) {
      const entry = entryById.get(match.id);
      if (!entry) continue;
      const key = getSearchLookupId(entry._source, entry.id);
      resultByKey.set(key, { entry, score: match.score });
    }
  } else {
    // Fallback: keyword matching
    const q = normalizedQuery.toLowerCase();
    const words = q.split(/\s+/);

    for (const entry of deduped) {
      let score = 0;

      if (entry.id === q) score += 100;
      else if (entry.id.includes(q)) score += 50;

      const nameLower = entry.name.toLowerCase();
      if (nameLower === q) score += 80;
      else if (nameLower.includes(q)) score += 40;

      for (const word of words) {
        if (entry.id.includes(word)) score += 10;
        if (nameLower.includes(word)) score += 10;
        if (entry.description?.toLowerCase().includes(word)) score += 5;
        if (entry.tags?.some((t) => t.toLowerCase().includes(word))) score += 15;
      }

      if (score > 0) {
        const key = getSearchLookupId(entry._source, entry.id);
        resultByKey.set(key, { entry, score });
      }
    }
  }

  const lexicalCandidates = !shouldRunGlobalLexicalScan(normalizedQuery, resultByKey)
    ? [...new Set([...resultByKey.values()].map(({ entry }) => entry))]
    : deduped;
  const rescueTerms = resultByKey.size > 0
    ? getMissingQueryTerms(normalizedQuery).filter((term) => term.length >= 5)
    : [];

  for (const entry of lexicalCandidates) {
    const boost = scoreEntryLexicalBoost(entry, normalizedQuery, rescueTerms);
    if (boost === 0) continue;

    const key = getSearchLookupId(entry._source, entry.id);
    const current = resultByKey.get(key);
    if (current) {
      current.score += boost;
    } else {
      resultByKey.set(key, { entry, score: boost });
    }
  }

  let results = [...resultByKey.values()];

  const filtered = applyFilters(results.map((r) => r.entry), filters);
  const filteredSet = new Set(filtered);
  results = results.filter((r) => filteredSet.has(r.entry));

  results.sort((a, b) => b.score - a.score);
  return results.map((r) => ({ ...r.entry, _score: r.score }));
}

/**
 * Get entry by id or source/id, from a specific type array.
 * type: "doc" or "skill". If null, searches both.
 */
export function getEntry(idOrNamespacedId, type = null) {
  const normalizedId = normalizeQuery(idOrNamespacedId);
  const { docs, skills } = getMerged();
  let pool;
  if (type === 'doc') pool = applySourceFilter(docs);
  else if (type === 'skill') pool = applySourceFilter(skills);
  else pool = applySourceFilter([...docs, ...skills]);

  // Check for source:id format (colon separates source from id)
  if (normalizedId.includes(':')) {
    const colonIdx = normalizedId.indexOf(':');
    const sourceName = normalizedId.slice(0, colonIdx);
    const id = normalizedId.slice(colonIdx + 1);
    const entry = pool.find((e) => e._source === sourceName && e.id === id);
    return entry ? { entry, ambiguous: false } : { entry: null, ambiguous: false };
  }

  // Bare id (may contain slashes like author/name)
  const matches = pool.filter((e) => e.id === normalizedId);
  if (matches.length === 0) return { entry: null, ambiguous: false };
  if (matches.length === 1) return { entry: matches[0], ambiguous: false };

  // Ambiguous — multiple sources have this id
  return {
    entry: null,
    ambiguous: true,
    alternatives: matches.map((e) => `${e._source}:${e.id}`),
  };
}

/**
 * List entries with optional filters. Searches both docs and skills, deduped.
 */
export function listEntries(filters = {}) {
  const entries = applySourceFilter(getAllEntries());
  // Deduplicate
  const seen = new Set();
  const deduped = [];
  for (const entry of entries) {
    const key = `${entry._source}:${entry.id}`;
    if (!seen.has(key)) {
      seen.add(key);
      deduped.push(entry);
    }
  }
  return applyFilters(deduped, filters);
}

/**
 * Resolve the doc path + source for a doc entry.
 * Returns { source, path, files } or null.
 * If language is null and multiple languages exist, returns { needsLanguage: true, available: [...] }.
 */
export function resolveDocPath(entry, language, version) {
  const lang = language ? normalizeLanguage(language) : null;

  // Skills are flat — no language/version nesting
  if (!entry.languages) {
    // This is a skill entry — path is directly on the entry
    if (!entry.path) return null;
    return {
      source: entry._sourceObj,
      path: entry.path,
      files: entry.files || [],
    };
  }

  let langObj = null;
  if (lang) {
    langObj = entry.languages.find((l) => l.language === lang);
  } else {
    return {
      needsLanguage: true,
      available: entry.languages.map((l) => l.language),
    };
  }

  if (!langObj) return null;

  let verObj = null;
  if (version) {
    verObj = langObj.versions?.find((v) => v.version === version);
    if (!verObj) {
      return {
        versionNotFound: true,
        requested: version,
        available: langObj.versions?.map((v) => v.version) || [],
      };
    }
  } else {
    const rec = langObj.recommendedVersion;
    verObj = langObj.versions?.find((v) => v.version === rec) || langObj.versions?.[0];
  }

  if (!verObj?.path) return null;
  return {
    source: entry._sourceObj,
    path: verObj.path,
    files: verObj.files || [],
  };
}

/**
 * Given a resolved path and a type ("doc" or "skill"), return the entry file path.
 */
export function resolveEntryFile(resolved, type) {
  if (!resolved || resolved.needsLanguage || resolved.versionNotFound) return { error: 'unresolved' };

  const fileName = type === 'skill' ? 'SKILL.md' : 'DOC.md';

  return {
    filePath: `${resolved.path}/${fileName}`,
    basePath: resolved.path,
    files: resolved.files,
  };
}


================================================
FILE: cli/src/lib/telemetry.js
================================================
import { loadConfig } from './config.js';

const DEFAULT_TELEMETRY_URL = 'https://api.aichub.org/v1';

export function isTelemetryEnabled() {
  if (process.env.CHUB_TELEMETRY === '0' || process.env.CHUB_TELEMETRY === 'false') return false;
  const config = loadConfig();
  return config.telemetry !== false;
}

export function isFeedbackEnabled() {
  if (process.env.CHUB_FEEDBACK === '0' || process.env.CHUB_FEEDBACK === 'false') return false;
  const config = loadConfig();
  return config.feedback !== false;
}

export function getTelemetryUrl() {
  const url = process.env.CHUB_TELEMETRY_URL;
  if (url) return url;
  const config = loadConfig();
  return config.telemetry_url || DEFAULT_TELEMETRY_URL;
}

/**
 * Send feedback to the API.
 *
 * @param {string} entryId - e.g. "openai/chat"
 * @param {string} entryType - "doc" or "skill"
 * @param {string} rating - "up" or "down"
 * @param {object} opts - Additional context
 * @param {string} [opts.comment]
 * @param {string} [opts.docLang] - Language variant fetched
 * @param {string} [opts.docVersion] - Version fetched
 * @param {string} [opts.targetFile] - Specific file within the entry
 * @param {string[]} [opts.labels] - Structured feedback labels
 * @param {string} [opts.agent] - Agent name override
 * @param {string} [opts.model] - LLM model override
 * @param {string} [opts.cliVersion]
 * @param {string} [opts.source] - Registry source name
 */
export async function sendFeedback(entryId, entryType, rating, opts = {}) {
  if (!isFeedbackEnabled()) return { status: 'skipped', reason: 'feedback_disabled' };

  const { getOrCreateClientId, detectAgent, detectAgentVersion } = await import('./identity.js');
  const clientId = await getOrCreateClientId();
  const telemetryUrl = getTelemetryUrl();

  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), 3000);

  try {
    const res = await fetch(`${telemetryUrl}/feedback`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-Client-ID': clientId,
      },
      body: JSON.stringify({
        entry_id: entryId,
        entry_type: entryType,
        rating,
        // Doc-specific dimensions
        doc_lang: opts.docLang || undefined,
        doc_version: opts.docVersion || undefined,
        target_file: opts.targetFile || undefined,
        // Structured feedback
        labels: opts.labels || undefined,
        comment: opts.comment || undefined,
        // Agent info
        agent: {
          name: opts.agent || detectAgent(),
          version: detectAgentVersion(),
          model: opts.model || undefined,
        },
        // Context
        cli_version: opts.cliVersion || undefined,
        source: opts.source || undefined,
      }),
      signal: controller.signal,
    });
    clearTimeout(timeout);

    if (res.ok) {
      const data = await res.json();
      return { status: 'sent', feedback_id: data.feedback_id || data.id };
    }
    return { status: 'error', code: res.status };
  } catch (err) {
    clearTimeout(timeout);
    return { status: 'error', reason: 'network' };
  }
}


================================================
FILE: cli/src/lib/welcome.js
================================================
import { existsSync, writeFileSync, mkdirSync } from 'node:fs';
import { join } from 'node:path';
import chalk from 'chalk';
import { getChubDir } from './config.js';

const WELCOME_MARKER = '.welcome_shown';

/**
 * Show the first-run welcome notice if it hasn't been shown yet.
 * Creates a marker file so it only displays once.
 */
export function showWelcomeIfNeeded(opts = {}) {
  if (opts.json) return;
  if (!process.stdout.isTTY || !process.stderr.isTTY) return;

  const chubDir = getChubDir();
  const markerPath = join(chubDir, WELCOME_MARKER);
  const configPath = join(chubDir, 'config.yaml');

  if (existsSync(markerPath)) return;

  // Print to stderr so it doesn't interfere with JSON/piped output
  console.error(`
${chalk.bold('Welcome to Context Hub (chub)!')} Chub helps your AI coding agents make API calls correctly, by providing \
the latest documentation.

By using chub, you agree to the Terms of Service at ${chalk.underline('https://www.aichub.org/tos.html')}

Chub asks agents to provide feedback on documentation, and this feedback is used to improve docs for the developer \
community. If you wish to disable this feedback, add ${chalk.bold('"feedback: false"')} to ${chalk.bold(configPath)}. See \
${chalk.underline('https://github.com/andrewyng/context-hub')} for details.
`);

  try {
    if (!existsSync(chubDir)) {
      mkdirSync(chubDir, { recursive: true });
    }
    writeFileSync(markerPath, new Date().toISOString(), 'utf8');
  } catch {
    // Best-effort — don't block CLI if marker can't be written
  }
}


================================================
FILE: cli/src/mcp/server.js
================================================
/**
 * Context Hub MCP Server.
 *
 * Exposes chub search, get, list, annotate, and feedback as MCP tools
 * for use with Claude Code, Cursor, and other MCP-compatible agents.
 */

import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
import { ensureRegistry } from '../lib/cache.js';
import { listEntries } from '../lib/registry.js';
import { handleSearch, handleGet, handleList, handleAnnotate, handleFeedback } from './tools.js';
import { attachStdioShutdownHandlers } from './stdio-lifecycle.js';

// Prevent console.log from corrupting the stdio JSON-RPC protocol.
// Any transitive dependency (e.g. posthog-node) that calls console.log
// would break the MCP transport without this redirect.
const _stderr = process.stderr;
console.log = (...args) => _stderr.write(args.join(' ') + '\n');
console.warn = (...args) => _stderr.write('[warn] ' + args.join(' ') + '\n');
console.info = (...args) => _stderr.write('[info] ' + args.join(' ') + '\n');
console.debug = (...args) => _stderr.write('[debug] ' + args.join(' ') + '\n');

// Read package version
const __dirname = dirname(fileURLToPath(import.meta.url));
const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));

// Create server
const server = new McpServer({
  name: 'chub',
  version: pkg.version,
});

// --- Register Tools ---

server.tool(
  'chub_search',
  'Search Context Hub for docs and skills by query, tags, or language',
  {
    query: z.string().optional().describe('Search query. Omit to list all entries.'),
    tags: z.string().optional().describe('Comma-separated tag filter (e.g. "openai,chat")'),
    lang: z.string().optional().describe('Filter by language (e.g. "python", "js")'),
    limit: z.number().int().min(1).max(100).optional().describe('Max results (default 20)'),
  },
  async (args) => handleSearch(args),
);

server.tool(
  'chub_get',
  'Fetch the content of a doc or skill by ID from Context Hub',
  {
    id: z.string().describe('Entry ID (e.g. "openai/chat", "stripe/api"). Use source:id for disambiguation.'),
    lang: z.string().optional().describe('Language variant (e.g. "python", "js"). Auto-selected if only one.'),
    version: z.string().optional().describe('Specific version (e.g. "1.52.0"). Defaults to recommended.'),
    full: z.boolean().optional().describe('Fetch all files, not just the entry point (default false)'),
    file: z.string().optional().describe('Fetch a specific file by path (e.g. "references/streaming.md")'),
  },
  async (args) => handleGet(args),
);

server.tool(
  'chub_list',
  'List all available docs and skills in Context Hub',
  {
    tags: z.string().optional().describe('Comma-separated tag filter'),
    lang: z.string().optional().describe('Filter by language'),
    limit: z.number().int().min(1).max(500).optional().describe('Max entries (default 50)'),
  },
  async (args) => handleList(args),
);

server.tool(
  'chub_annotate',
  'Read, write, clear, or list agent annotations. Modes: (1) list=true to list all, (2) id+note to write, (3) id+clear=true to delete, (4) id alone to read. Annotations persist locally across sessions.',
  {
    id: z.string().optional().describe('Entry ID to annotate (e.g. "openai/chat"). Required unless using list mode.'),
    note: z.string().optional().describe('Annotation text to save. Omit to read existing annotation.'),
    clear: z.boolean().optional().describe('Remove the annotation for this entry (default false)'),
    list: z.boolean().optional().describe('List all annotations (default false). When true, id is not needed.'),
  },
  async (args) => handleAnnotate(args),
);

server.tool(
  'chub_feedback',
  'Send quality feedback (thumbs up/down) for a doc or skill to help authors improve content',
  {
    id: z.string().describe('Entry ID to rate (e.g. "openai/chat")'),
    rating: z.enum(['up', 'down']).describe('Thumbs up or down'),
    comment: z.string().optional().describe('Optional comment explaining the rating'),
    type: z.enum(['doc', 'skill']).optional().describe('Entry type. Auto-detected if omitted.'),
    lang: z.string().optional().describe('Language variant rated'),
    version: z.string().optional().describe('Version rated'),
    file: z.string().optional().describe('Specific file rated'),
    labels: z.array(z.enum([
      'accurate', 'well-structured', 'helpful', 'good-examples',
      'outdated', 'inaccurate', 'incomplete', 'wrong-examples',
      'wrong-version', 'poorly-structured',
    ])).optional().describe('Structured feedback labels'),
  },
  async (args) => handleFeedback(args),
);

// --- Register Resource ---

server.resource(
  'registry',
  'chub://registry',
  {
    title: 'Context Hub Registry',
    description: 'Browse the full Context Hub registry of docs and skills',
    mimeType: 'application/json',
  },
  async (uri) => {
    try {
      const entries = listEntries({});
      const simplified = entries.map((entry) => ({
        id: entry.id,
        name: entry.name,
        type: entry._type || (entry.languages ? 'doc' : 'skill'),
        description: entry.description,
        tags: entry.tags || [],
        ...(entry.languages
          ? {
            languages: entry.languages.map((l) => ({
              language: l.language,
              versions: l.versions?.map((v) => v.version) || [],
              recommended: l.recommendedVersion,
            })),
          }
          : {}),
      }));
      return {
        contents: [{
          uri: uri.href,
          mimeType: 'application/json',
          text: JSON.stringify({ entries: simplified, total: simplified.length }, null, 2),
        }],
      };
    } catch (err) {
      console.warn(`Registry resource error: ${err.message}`);
      return {
        contents: [{
          uri: uri.href,
          mimeType: 'application/json',
          text: JSON.stringify({ error: 'Registry not loaded. Run "chub update" first.' }),
        }],
      };
    }
  },
);

// --- Process Safety ---

// Prevent the server from crashing on unhandled errors (long-lived process)
process.on('uncaughtException', (err) => {
  _stderr.write(`[chub-mcp] Uncaught exception: ${err.message}\n`);
});
process.on('unhandledRejection', (reason) => {
  _stderr.write(`[chub-mcp] Unhandled rejection: ${reason}\n`);
});

// --- Start Server ---

// Best-effort registry load — server starts even if this fails
try {
  await ensureRegistry();
} catch (err) {
  _stderr.write(`[chub-mcp] Warning: Registry not loaded: ${err.message}\n`);
}

const transport = new StdioServerTransport();
await server.connect(transport);

// Exit promptly when MCP host disconnects stdio.
// Must be after server.connect() so StdioServerTransport's data handler
// is already wired — otherwise stdin.resume() discards incoming bytes.
attachStdioShutdownHandlers({ stderr: _stderr });

_stderr.write(`[chub-mcp] Server started (v${pkg.version})\n`);


================================================
FILE: cli/src/mcp/stdio-lifecycle.js
================================================
/**
 * Attach stdio lifecycle guards so chub-mcp exits cleanly when the parent
 * MCP host goes away (EOF / closed pipe).
 */
export function attachStdioShutdownHandlers({
  stdin = process.stdin,
  stdout = process.stdout,
  stderr = process.stderr,
  onShutdown = () => process.exit(0),
} = {}) {
  let shuttingDown = false;

  const shutdown = (reason) => {
    if (shuttingDown) return;
    shuttingDown = true;

    try {
      stderr.write(`[chub-mcp] ${reason}\n`);
    } catch {
      // ignore stderr write errors during shutdown
    }

    onShutdown(0);
  };

  const onStdinEnd = () => shutdown('Stdin closed; exiting.');
  const onStdinClose = () => shutdown('Stdin stream closed; exiting.');
  const onStdinError = (err) => {
    const detail = err?.code || err?.message || 'unknown';
    shutdown(`Stdin error (${detail}); exiting.`);
  };
  const onStdoutError = (err) => {
    if (err?.code === 'EPIPE') {
      shutdown('Stdout pipe closed (EPIPE); exiting.');
    }
  };

  stdin.on('end', onStdinEnd);
  stdin.on('close', onStdinClose);
  stdin.on('error', onStdinError);
  stdout.on('error', onStdoutError);

  // Keep stdin flowing so EOF/end is observed reliably across hosts.
  if (typeof stdin.resume === 'function') {
    stdin.resume();
  }

  return () => {
    stdin.off('end', onStdinEnd);
    stdin.off('close', onStdinClose);
    stdin.off('error', onStdinError);
    stdout.off('error', onStdoutError);
  };
}


================================================
FILE: cli/src/mcp/tools.js
================================================
/**
 * MCP tool handler implementations.
 * Each handler wraps existing lib/ functions and returns MCP-compatible results.
 */

import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join, resolve, relative } from 'node:path';
import { searchEntries, getEntry, listEntries, resolveDocPath, resolveEntryFile } from '../lib/registry.js';
import { fetchDoc, fetchDocFull } from '../lib/cache.js';
import { readAnnotation, writeAnnotation, clearAnnotation, listAnnotations } from '../lib/annotations.js';
import { sendFeedback, isFeedbackEnabled } from '../lib/telemetry.js';
import { trackEvent, setCliVersion } from '../lib/analytics.js';

const __dirname = dirname(fileURLToPath(import.meta.url));
let _cliVersion;
function getCliVersion() {
  if (_cliVersion) return _cliVersion;
  try {
    const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
    _cliVersion = pkg.version;
    setCliVersion(_cliVersion);
  } catch {
    _cliVersion = 'unknown';
  }
  return _cliVersion;
}
// Initialize cli_version for analytics on module load
getCliVersion();

function textResult(data) {
  return {
    content: [{ type: 'text', text: typeof data === 'string' ? data : JSON.stringify(data, null, 2) }],
  };
}

function errorResult(message, details = {}) {
  return {
    content: [{ type: 'text', text: JSON.stringify({ error: message, ...details }, null, 2) }],
    isError: true,
  };
}

/**
 * Simplify an entry for agent-friendly output (strip internal fields).
 */
function simplifyEntry(entry) {
  const result = {
    id: entry.id,
    name: entry.name,
    type: entry._type || (entry.languages ? 'doc' : 'skill'),
    description: entry.description,
    tags: entry.tags || [],
  };
  if (entry.languages) {
    result.languages = entry.languages.map((l) => l.language);
  }
  return result;
}

// --- Tool Handlers ---

export async function handleSearch({ query, tags, lang, limit = 20 }) {
  try {
    const start = Date.now();
    let entries;
    if (query) {
      entries = searchEntries(query, { tags, lang });
    } else {
      entries = listEntries({ tags, lang });
    }
    const sliced = entries.slice(0, limit);
    if (query) {
      trackEvent('search', {
        query: query.slice(0, 1000),
        query_length: query.length,
        result_count: sliced.length,
        results: sliced.map((e) => e.id || e.name || 'unknown'),
        duration_ms: Date.now() - start,
        has_tags: !!tags,
        has_lang: !!lang,
        tags: tags || undefined,
        lang: lang || undefined,
        via: 'mcp',
      }).catch(() => {});
    }
    return textResult({
      results: sliced.map(simplifyEntry),
      total: entries.length,
      showing: sliced.length,
    });
  } catch (err) {
    return errorResult(`Search failed: ${err.message}`);
  }
}

export async function handleGet({ id, lang, version, full = false, file }) {
  const start = Date.now();
  try {
    // Validate file parameter early (before entry lookup) to reject path traversal
    if (file) {
      const normalizedFile = resolve('/', file).slice(1);
      if (normalizedFile !== file || file.includes('..')) {
        return errorResult(`Invalid file path: "${file}". Path traversal is not allowed.`);
      }
    }

    const result = getEntry(id);

    if (result.ambiguous) {
      return errorResult(`Ambiguous entry ID "${id}". Be specific:`, {
        alternatives: result.alternatives,
      });
    }

    if (!result.entry) {
      trackEvent('doc_not_found', { entry_id: id, via: 'mcp' }).catch(() => {});
      return errorResult(`Entry "${id}" not found.`, {
        suggestion: 'Use chub_search to find available entries.',
      });
    }

    const entry = result.entry;
    const type = entry.languages ? 'doc' : 'skill';
    const resolved = resolveDocPath(entry, lang, version);

    if (!resolved) {
      return errorResult(`Could not resolve path for "${id}".`);
    }

    if (resolved.versionNotFound) {
      return errorResult(`Version "${resolved.requested}" not found for "${id}".`, {
        available: resolved.available,
      });
    }

    if (resolved.needsLanguage) {
      return errorResult(`Multiple languages available for "${id}". Specify the lang parameter.`, {
        available: resolved.available,
      });
    }

    const entryFile = resolveEntryFile(resolved, type);
    if (entryFile.error) {
      return errorResult(`"${id}": ${entryFile.error}`);
    }

    let content;

    if (file) {
      // Fetch a specific file
      if (!resolved.files.includes(file)) {
        const entryFileName = type === 'skill' ? 'SKILL.md' : 'DOC.md';
        const available = resolved.files.filter((f) => f !== entryFileName);
        return errorResult(`File "${file}" not found in ${id}.`, {
          available: available.length > 0 ? available : '(none)',
        });
      }
      content = await fetchDoc(resolved.source, join(resolved.path, file));
    } else if (full && resolved.files.length > 0) {
      // Fetch all files
      const allFiles = await fetchDocFull(resolved.source, resolved.path, resolved.files);
      content = allFiles.map((f) => `# FILE: ${f.name}\n\n${f.content}`).join('\n\n---\n\n');
    } else {
      // Fetch entry point only
      content = await fetchDoc(resolved.source, entryFile.filePath);
    }

    // Append annotation if present
    const annotation = readAnnotation(entry.id);
    if (annotation) {
      content += `\n\n---\n[Agent note — ${annotation.updatedAt}]\n${annotation.note}\n`;
    }

    const entryType = entry.languages ? 'doc' : 'skill';
    const duration_ms = Date.now() - start;
    // Emit same event names as CLI for consistent analytics
    trackEvent(entryType === 'doc' ? 'doc_fetched' : 'skill_fetched', {
      entry_id: entry.id,
      full,
      file: file || undefined,
      lang: lang || undefined,
      source: entry._source || undefined,
      duration_ms,
      via: 'mcp',
    }).catch(() => {});

    return textResult(content);
  } catch (err) {
    trackEvent('fetch_error', { entry_id: id, via: 'mcp', error_type: err.code || err.name || 'unknown' }).catch(() => {});
    return errorResult(`Failed to fetch "${id}": ${err.message}`);
  }
}

export async function handleList({ tags, lang, limit = 50 }) {
  try {
    const entries = listEntries({ tags, lang });
    const sliced = entries.slice(0, limit);
    return textResult({
      entries: sliced.map(simplifyEntry),
      total: entries.length,
      showing: sliced.length,
    });
  } catch (err) {
    return errorResult(`List failed: ${err.message}`);
  }
}

export async function handleAnnotate({ id, note, clear = false, list = false }) {
  try {
    if (list) {
      const annotations = listAnnotations();
      return textResult({ annotations, total: annotations.length });
    }

    if (!id) {
      return errorResult('Missing required parameter: id. Provide an entry ID or use list mode.');
    }

    // Validate entry ID to prevent path traversal or filesystem abuse
    if (id.length > 200) {
      return errorResult('Entry ID too long (max 200 characters).');
    }
    if (!/^[a-zA-Z0-9._\-\/]+$/.test(id)) {
      return errorResult('Entry ID contains invalid characters. Use only alphanumeric, hyphens, underscores, dots, and slashes.');
    }

    if (clear) {
      const removed = clearAnnotation(id);
      return textResult({
        status: removed ? 'cleared' : 'not_found',
        id,
      });
    }

    if (note) {
      const saved = writeAnnotation(id, note);
      return textResult({ status: 'saved', annotation: saved });
    }

    // Read mode
    const annotation = readAnnotation(id);
    if (annotation) {
      return textResult({ annotation });
    }
    return textResult({ status: 'no_annotation', id });
  } catch (err) {
    return errorResult(`Annotation failed: ${err.message}`);
  }
}

export async function handleFeedback({ id, rating, comment, type, lang, version, file, labels }) {
  try {
    if (!isFeedbackEnabled()) {
      return textResult({ status: 'skipped', reason: 'feedback_disabled' });
    }

    // Auto-detect entry type if not provided
    let entryType = type;
    if (!entryType) {
      try {
        const result = getEntry(id);
        if (result.entry) {
          entryType = result.entry.languages ? 'doc' : 'skill';
        }
      } catch {
        // Fall through with undefined type
      }
      entryType = entryType || 'doc';
    }

    const result = await sendFeedback(id, entryType, rating, {
      comment,
      docLang: lang,
      docVersion: version,
      targetFile: file,
      labels,
      agent: 'mcp-server',
      cliVersion: getCliVersion(),
    });

    return textResult(result);
  } catch (err) {
    return errorResult(`Feedback failed: ${err.message}`);
  }
}


================================================
FILE: cli/test/e2e.test.js
================================================
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { execFileSync, spawnSync } from 'node:child_process';
import { existsSync, readFileSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import { tmpdir } from 'node:os';

const __dirname = dirname(fileURLToPath(import.meta.url));
const CLI = join(__dirname, '..', 'bin', 'chub');
const FIXTURES = join(__dirname, 'fixtures');
const BUILD_OUTPUT = join(FIXTURES, 'dist');
const CLI_TEST_TIMEOUT = 15000;
const TEST_ENV = { ...process.env, NO_COLOR: '1', CHUB_TELEMETRY: '0', CHUB_FEEDBACK: '0' };

let tmpChubDir;

const itCli = (name, fn) => it(name, { timeout: CLI_TEST_TIMEOUT }, fn);

function chub(args, { expectError = false } = {}) {
  try {
    const result = execFileSync('node', [CLI, ...args], {
      encoding: 'utf8',
      env: { ...TEST_ENV, CHUB_DIR: tmpChubDir },
      timeout: CLI_TEST_TIMEOUT,
    });
    return result;
  } catch (err) {
    if (expectError) return err.stderr || err.stdout || err.message;
    throw err;
  }
}

function chubJSON(args) {
  const out = chub([...args, '--json']);
  return JSON.parse(out);
}

describe('chub CLI e2e', () => {
  beforeAll(() => {
    // Use an isolated temp directory so we never touch ~/.chub
    tmpChubDir = mkdtempSync(join(tmpdir(), 'chub-e2e-'));

    // Build fixtures
    chub(['build', FIXTURES]);

    // Point config at fixture build output (local source only)
    writeFileSync(join(tmpChubDir, 'config.yaml'), `sources:\n  - name: test\n    path: ${BUILD_OUTPUT}\n\nsource: official,maintainer,community\ntelemetry: false\nfeedback: false\n`);
  }, CLI_TEST_TIMEOUT);

  afterAll(() => {
    // Clean up temp dir and build output
    rmSync(tmpChubDir, { recursive: true, force: true });
    rmSync(BUILD_OUTPUT, { recursive: true, force: true });
  });

  describe('build', () => {
    itCli('keeps first-run JSON output clean', () => {
      const freshChubDir = mkdtempSync(join(tmpdir(), 'chub-e2e-json-'));
      try {
        writeFileSync(join(freshChubDir, 'config.yaml'), `sources:\n  - name: test\n    path: ${BUILD_OUTPUT}\n\nsource: official,maintainer,community\ntelemetry: false\nfeedback: false\n`);
        const result = spawnSync('node', [CLI, 'build', FIXTURES, '--validate-only', '--json'], {
          encoding: 'utf8',
          env: { ...TEST_ENV, CHUB_DIR: freshChubDir },
          timeout: CLI_TEST_TIMEOUT,
        });

        expect(result.status).toBe(0);
        expect(() => JSON.parse(result.stdout)).not.toThrow();
        expect(result.stderr).toBe('');
      } finally {
        rmSync(freshChubDir, { recursive: true, force: true });
      }
    });

    itCli('produces registry.json', () => {
      expect(existsSync(join(BUILD_OUTPUT, 'registry.json'))).toBe(true);
    });

    itCli('registry has correct counts', () => {
      const reg = JSON.parse(readFileSync(join(BUILD_OUTPUT, 'registry.json'), 'utf8'));
      expect(reg.docs.length).toBe(3); // acme/widgets + acme/versioned-api + multilang/client
      expect(reg.skills.length).toBe(1); // testskills/deploy
    });

    itCli('copies content files to output', () => {
      expect(existsSync(join(BUILD_OUTPUT, 'acme', 'docs', 'widgets', 'DOC.md'))).toBe(true);
      expect(existsSync(join(BUILD_OUTPUT, 'acme', 'docs', 'widgets', 'references', 'advanced.md'))).toBe(true);
    });

    itCli('validates with --validate-only', () => {
      const out = chub(['build', FIXTURES, '--validate-only']);
      expect(out).toContain('3 docs');
      expect(out).toContain('1 skills');
    });

    itCli('errors on missing content dir', () => {
      const out = chub(['build', '/nonexistent/path'], { expectError: true });
      expect(out).toContain('Content directory not found');
    });
  });

  describe('search', () => {
    itCli('lists all entries', () => {
      const data = chubJSON(['search']);
      expect(data.total).toBe(4); // 3 docs + 1 skill
    });

    itCli('fuzzy search finds by name', () => {
      const data = chubJSON(['search', 'widget']);
      expect(data.results.length).toBe(1);
      expect(data.results[0].id).toBe('acme/widgets');
    });

    itCli('fuzzy search finds by description', () => {
      const data = chubJSON(['search', 'deployment']);
      expect(data.results.length).toBe(1);
      expect(data.results[0].id).toBe('testskills/deploy');
    });

    itCli('exact id shows detail', () => {
      const data = chubJSON(['search', 'acme/widgets']);
      // Exact match returns the entry directly, not wrapped in results[]
      expect(data.id).toBe('acme/widgets');
      expect(data.languages).toBeDefined();
    });

    itCli('filters by tag', () => {
      const data = chubJSON(['search', '--tags', 'automation']);
      expect(data.results.length).toBe(1);
      expect(data.results[0].id).toBe('testskills/deploy');
    });

    itCli('returns empty for no match', () => {
      const data = chubJSON(['search', 'nonexistentthing']);
      expect(data.results.length).toBe(0);
    });
  });

  describe('get', () => {
    itCli('fetches single-language doc with --lang', () => {
      const out = chub(['get', 'acme/widgets', '--lang', 'js']);
      expect(out).toContain('# Acme Widgets API');
      expect(out).toContain('npm install @acme/widgets');
    });

    itCli('errors on single-lang doc without --lang', () => {
      const out = chub(['get', 'acme/widgets'], { expectError: true });
      expect(out).toContain('--lang');
    });

    itCli('fetches multi-language doc with --lang', () => {
      const out = chub(['get', 'multilang/client', '--lang', 'py']);
      expect(out).toContain('# Multilang Client — Python');
      expect(out).toContain('from multilang import Client');
    });

    itCli('fetches js variant with --lang js', () => {
      const out = chub(['get', 'multilang/client', '--lang', 'js']);
      expect(out).toContain('# Multilang Client — JavaScript');
      expect(out).toContain("import { Client } from 'multilang'");
    });

    itCli('errors on multi-lang without --lang', () => {
      const out = chub(['get', 'multilang/client'], { expectError: true });
      expect(out).toContain('Multiple languages');
      expect(out).toContain('--lang');
    });

    itCli('errors on nonexistent entry', () => {
      const out = chub(['get', 'fake/thing'], { expectError: true });
      expect(out).toContain('No doc or skill found');
    });

    itCli('fetches --full with all files', () => {
      const out = chub(['get', 'acme/widgets', '--lang', 'js', '--full']);
      expect(out).toContain('FILE: DOC.md');
      expect(out).toContain('FILE: references/advanced.md');
      expect(out).toContain('Batch Operations');
    });

    itCli('writes to file with -o', () => {
      const tmpFile = join(BUILD_OUTPUT, '_test_output.md');
      chub(['get', 'acme/widgets', '--lang', 'js', '-o', tmpFile]);
      expect(existsSync(tmpFile)).toBe(true);
      const content = readFileSync(tmpFile, 'utf8');
      expect(content).toContain('# Acme Widgets API');
      rmSync(tmpFile, { force: true });
    });

    itCli('fetches skill content', () => {
      const out = chub(['get', 'testskills/deploy']);
      expect(out).toContain('# Deploy Skill');
      expect(out).toContain('Automate deployments');
    });

    itCli('shows footer with additional files when they exist', () => {
      const out = chub(['get', 'acme/widgets', '--lang', 'js']);
      expect(out).toContain('Additional files available');
      expect(out).toContain('references/advanced.md');
      expect(out).toContain('--file');
    });

    itCli('no footer when entry has only one file', () => {
      const out = chub(['get', 'multilang/client', '--lang', 'js']);
      expect(out).not.toContain('Additional files available');
    });

    itCli('fetches specific file with --file', () => {
      const out = chub(['get', 'acme/widgets', '--lang', 'js', '--file', 'references/advanced.md']);
      expect(out).toContain('Batch Operations');
      expect(out).not.toContain('# Acme Widgets API');
    });

    itCli('errors on nonexistent --file with available list', () => {
      const out = chub(['get', 'acme/widgets', '--lang', 'js', '--file', 'nonexistent.md'], { expectError: true });
      expect(out).toContain('not found in acme/widgets');
      expect(out).toContain('references/advanced.md');
    });

    itCli('--json includes additionalFiles array', () => {
      const data = chubJSON(['get', 'acme/widgets', '--lang', 'js']);
      expect(data.additionalFiles).toContain('references/advanced.md');
    });

    itCli('--json omits additionalFiles when none exist', () => {
      const data = chubJSON(['get', 'multilang/client', '--lang', 'js']);
      expect(data.additionalFiles).toBeUndefined();
    });

    // Multi-version tests
    itCli('build groups multi-version docs correctly', () => {
      const reg = JSON.parse(readFileSync(join(BUILD_OUTPUT, 'registry.json'), 'utf8'));
      const doc = reg.docs.find((d) => d.id === 'acme/versioned-api');
      expect(doc).toBeDefined();
      const jsLang = doc.languages.find((l) => l.language === 'javascript');
      expect(jsLang.versions.length).toBe(2);
      expect(jsLang.versions.map((v) => v.version)).toContain('2.0.0');
      expect(jsLang.versions.map((v) => v.version)).toContain('1.0.0');
      expect(jsLang.recommendedVersion).toBe('2.0.0');
    });

    itCli('fetches recommended (latest) version by default', () => {
      const out = chub(['get', 'acme/versioned-api', '--lang', 'js']);
      expect(out).toContain('Versioned API v2');
      expect(out).toContain('version 2.0.0');
    });

    itCli('fetches specific version with --version', () => {
      const out = chub(['get', 'acme/versioned-api', '--lang', 'js', '--version', '1.0.0']);
      expect(out).toContain('Versioned API v1');
      expect(out).toContain('version 1.0.0');
    });

    itCli('errors on nonexistent version with available list', () => {
      const out = chub(['get', 'acme/versioned-api', '--lang', 'js', '--version', '99.0.0'], { expectError: true });
      expect(out).toContain('Version "99.0.0" not found');
      expect(out).toContain('2.0.0');
      expect(out).toContain('1.0.0');
    });
  });

  describe('annotate', () => {
    itCli('saves and displays annotation on get', () => {
      chub(['annotate', 'acme/widgets', 'Use batch mode for large datasets']);
      const out = chub(['get', 'acme/widgets', '--lang', 'js']);
      expect(out).toContain('Agent note');
      expect(out).toContain('Use batch mode for large datasets');
    });

    itCli('replaces annotation on re-annotate', () => {
      chub(['annotate', 'acme/widgets', 'Updated: use streaming instead']);
      const out = chub(['get', 'acme/widgets', '--lang', 'js']);
      expect(out).toContain('use streaming instead');
      expect(out).not.toContain('batch mode');
    });

    itCli('shows annotation with chub annotate <id> (no note)', () => {
      const out = chub(['annotate', 'acme/widgets']);
      expect(out).toContain('use streaming instead');
    });

    itCli('clears annotation', () => {
      chub(['annotate', 'acme/widgets', '--clear']);
      const out = chub(['get', 'acme/widgets', '--lang', 'js']);
      expect(out).not.toContain('Agent note');
    });

    itCli('no annotation section when none set', () => {
      const out = chub(['get', 'multilang/client', '--lang', 'js']);
      expect(out).not.toContain('Agent note');
    });

    itCli('--list shows all annotations', () => {
      chub(['annotate', 'acme/widgets', 'Note A']);
      chub(['annotate', 'multilang/client', 'Note B']);
      const data = chubJSON(['annotate', '--list']);
      expect(data.length).toBe(2);
      const ids = data.map((a) => a.id);
      expect(ids).toContain('acme/widgets');
      expect(ids).toContain('multilang/client');
      // Clean up
      chub(['annotate', 'acme/widgets', '--clear']);
      chub(['annotate', 'multilang/client', '--clear']);
    });

    itCli('--json includes annotation in get output', () => {
      chub(['annotate', 'acme/widgets', 'JSON test note']);
      const data = chubJSON(['get', 'acme/widgets', '--lang', 'js']);
      expect(data.annotation).toBeDefined();
      expect(data.annotation.note).toBe('JSON test note');
      expect(data.annotation.id).toBe('acme/widgets');
      // Clean up
      chub(['annotate', 'acme/widgets', '--clear']);
    });

    itCli('--json omits annotation when none set', () => {
      const data = chubJSON(['get', 'acme/widgets', '--lang', 'js']);
      expect(data.annotation).toBeUndefined();
    });
  });

  describe('json output', () => {
    itCli('search --json returns valid JSON with total', () => {
      const data = chubJSON(['search']);
      expect(typeof data.total).toBe('number');
      expect(Array.isArray(data.results)).toBe(true);
    });

    itCli('build --json returns valid JSON', () => {
      const data = chubJSON(['build', FIXTURES, '--validate-only']);
      expect(typeof data.docs).toBe('number');
      expect(typeof data.skills).toBe('number');
    });
  });
});


================================================
FILE: cli/test/fixtures/acme/docs/versioned-api/v1/DOC.md
================================================
---
name: versioned-api
description: "A test API with multiple versions"
metadata:
  languages: "javascript"
  versions: "1.0.0"
  revision: 1
  updated-on: "2025-01-01"
  source: community
  tags: "test,versioned"
---
# Versioned API v1

This is version 1.0.0 of the API documentation.

## Usage

```javascript
const client = new AcmeClient({ version: 'v1' });
```


================================================
FILE: cli/test/fixtures/acme/docs/versioned-api/v2/DOC.md
================================================
---
name: versioned-api
description: "A test API with multiple versions"
metadata:
  languages: "javascript"
  versions: "2.0.0"
  revision: 1
  updated-on: "2025-06-01"
  source: community
  tags: "test,versioned"
---
# Versioned API v2

This is version 2.0.0 of the API documentation.

## Usage

```javascript
const client = new AcmeClient({ version: 'v2' });
```


================================================
FILE: cli/test/fixtures/acme/docs/widgets/DOC.md
================================================
---
name: widgets
description: "Acme widget API for creating and managing widgets"
metadata:
  languages: "javascript"
  versions: "2.0.0"
  updated-on: "2026-01-01"
  source: maintainer
  tags: "acme,widgets,api"
---

# Acme Widgets API

Create and manage widgets with the Acme SDK.

## Installation

```bash
npm install @acme/widgets
```

## Quick Start

```javascript
import { Acme } from '@acme/widgets';
const client = new Acme({ apiKey: process.env.ACME_KEY });
const widget = await client.widgets.create({ name: 'My Widget' });
```

## See Also

- [Advanced usage](references/advanced.md)


================================================
FILE: cli/test/fixtures/acme/docs/widgets/references/advanced.md
================================================
# Advanced Widget Usage

## Batch Operations

```javascript
const widgets = await client.widgets.createMany([
  { name: 'Widget A' },
  { name: 'Widget B' },
]);
```

## Error Handling

```javascript
try {
  await client.widgets.create({ name: '' });
} catch (err) {
  console.error(err.code, err.message);
}
```


================================================
FILE: cli/test/fixtures/multilang/docs/client/go/DOC.md
================================================
---
name: client
description: "Multilang client SDK"
metadata:
  languages: "go"
  versions: "1.0.0"
  updated-on: "2026-01-01"
  source: community
  tags: "multilang,client"
---

# Multilang Client — Go

```go
import "multilang"

client := multilang.NewClient(multilang.WithAPIKey("sk-test"))
```


================================================
FILE: cli/test/fixtures/multilang/docs/client/javascript/DOC.md
================================================
---
name: client
description: "Multilang client SDK"
metadata:
  languages: "javascript"
  versions: "1.0.0"
  updated-on: "2026-01-01"
  source: community
  tags: "multilang,client"
---

# Multilang Client — JavaScript

```javascript
import { Client } from 'multilang';
const client = new Client({ apiKey: 'sk-test' });
```


================================================
FILE: cli/test/fixtures/multilang/docs/client/python/DOC.md
================================================
---
name: client
description: "Multilang client SDK"
metadata:
  languages: "python"
  versions: "1.0.0"
  updated-on: "2026-01-01"
  source: community
  tags: "multilang,client"
---

# Multilang Client — Python

```python
from multilang import Client
client = Client(api_key="sk-test")
```


================================================
FILE: cli/test/fixtures/testskills/skills/deploy/SKILL.md
================================================
---
name: deploy
description: "Deployment automation skill for CI/CD pipelines"
metadata:
  updated-on: "2026-01-01"
  source: community
  tags: "deploy,ci,automation"
---

# Deploy Skill

Automate deployments with this skill.

## Steps

1. Build the project
2. Run tests
3. Deploy to production


================================================
FILE: cli/test/lib/bm25.test.js
================================================
import { describe, it, expect } from 'vitest';
import { tokenize, buildIndex, search } from '../../src/lib/bm25.js';

describe('bm25', () => {
  describe('tokenize', () => {
    it('lowercases and splits on whitespace', () => {
      expect(tokenize('Hello World')).toEqual(['hello', 'world']);
    });

    it('removes stop words', () => {
      expect(tokenize('the quick and brown fox')).toEqual(['quick', 'brown', 'fox']);
    });

    it('removes punctuation', () => {
      expect(tokenize('hello, world! foo-bar')).toEqual(['hello', 'world', 'foo', 'bar']);
    });

    it('removes single-character tokens', () => {
      expect(tokenize('a b cd ef')).toEqual(['cd', 'ef']);
    });

    it('returns empty array for empty/null input', () => {
      expect(tokenize('')).toEqual([]);
      expect(tokenize(null)).toEqual([]);
      expect(tokenize(undefined)).toEqual([]);
    });
  });

  describe('buildIndex', () => {
    const entries = [
      { id: 'stripe/api', name: 'api', description: 'Payment processing platform', tags: ['stripe', 'payments'] },
      { id: 'openai/chat', name: 'chat', description: 'Chat completions API', tags: ['openai', 'ai', 'chat'] },
      { id: 'redis/cache', name: 'cache', description: 'In-memory data store', tags: ['redis', 'cache', 'database'] },
    ];

    it('builds index with correct structure', () => {
      const index = buildIndex(entries);
      expect(index.version).toBe('1.0.0');
      expect(index.algorithm).toBe('bm25');
      expect(index.totalDocs).toBe(3);
      expect(index.documents).toHaveLength(3);
      expect(index.params).toEqual({ k1: 1.5, b: 0.75 });
    });

    it('tokenizes all fields', () => {
      const index = buildIndex(entries);
      const stripeDoc = index.documents.find((d) => d.id === 'stripe/api');
      expect(stripeDoc.tokens.name).toEqual(['api']);
      expect(stripeDoc.tokens.description).toContain('payment');
      expect(stripeDoc.tokens.description).toContain('processing');
      expect(stripeDoc.tokens.tags).toContain('stripe');
      expect(stripeDoc.tokens.tags).toContain('payments');
    });

    it('computes IDF values', () => {
      const index = buildIndex(entries);
      expect(index.idf).toBeDefined();
      // 'payment' appears in 1 of 3 docs — should have higher IDF than 'api' if it appeared in more
      expect(index.idf['payment']).toBeGreaterThan(0);
    });

    it('computes average field lengths', () => {
      const index = buildIndex(entries);
      expect(index.avgFieldLengths.name).toBeGreaterThan(0);
      expect(index.avgFieldLengths.description).toBeGreaterThan(0);
      expect(index.avgFieldLengths.tags).toBeGreaterThan(0);
    });

    it('handles empty entries array', () => {
      const index = buildIndex([]);
      expect(index.totalDocs).toBe(0);
      expect(index.documents).toHaveLength(0);
    });
  });

  describe('search', () => {
    const entries = [
      { id: 'stripe/api', name: 'api', description: 'Payment processing platform with billing', tags: ['stripe', 'payments', 'billing'] },
      { id: 'openai/chat', name: 'chat', description: 'Chat completions API for language models', tags: ['openai', 'ai', 'chat'] },
      { id: 'redis/cache', name: 'cache', description: 'In-memory data store for caching', tags: ['redis', 'cache', 'database'] },
      { id: 'square/payments', name: 'payments', description: 'Payment processing for commerce', tags: ['square', 'payments', 'commerce'] },
    ];

    const index = buildIndex(entries);

    it('finds entries by keyword match', () => {
      const results = search('payment', index);
      expect(results.length).toBeGreaterThan(0);
      const ids = results.map((r) => r.id);
      expect(ids).toContain('stripe/api');
      expect(ids).toContain('square/payments');
    });

    it('ranks exact name match higher', () => {
      const results = search('payments', index);
      // 'square/payments' has 'payments' as its name — should rank high
      expect(results[0].id).toBe('square/payments');
    });

    it('finds by tag', () => {
      const results = search('database', index);
      expect(results.length).toBeGreaterThan(0);
      expect(results[0].id).toBe('redis/cache');
    });

    it('finds by description terms', () => {
      const results = search('language models', index);
      expect(results.length).toBeGreaterThan(0);
      expect(results[0].id).toBe('openai/chat');
    });

    it('returns empty for no match', () => {
      const results = search('nonexistent thing', index);
      expect(results).toHaveLength(0);
    });

    it('handles multi-word queries', () => {
      const results = search('payment processing', index);
      expect(results.length).toBeGreaterThan(0);
      // Both stripe and square have 'payment processing' in description
      const ids = results.map((r) => r.id);
      expect(ids).toContain('stripe/api');
      expect(ids).toContain('square/payments');
    });

    it('respects limit option', () => {
      const results = search('payment', index, { limit: 1 });
      expect(results).toHaveLength(1);
    });

    it('returns empty for stop-words-only query', () => {
      const results = search('the and is', index);
      expect(results).toHaveLength(0);
    });
  });

  describe('search quality report', () => {
    const entries = [
      { id: 'stripe/api', name: 'api', description: 'Payment processing platform with billing and subscriptions', tags: ['stripe', 'payments', 'billing'] },
      { id: 'square/payments', name: 'payments', description: 'Payment processing for commerce and point of sale', tags: ['square', 'payments', 'commerce'] },
      { id: 'openai/chat', name: 'chat', description: 'Chat completions API for language models and AI assistants', tags: ['openai', 'ai', 'chat', 'llm'] },
      { id: 'redis/cache', name: 'cache', description: 'In-memory data store for caching and session management', tags: ['redis', 'cache', 'database'] },
      { id: 'mongodb/driver', name: 'driver', description: 'Document database driver for storing and querying JSON data', tags: ['mongodb', 'database', 'nosql'] },
      { id: 'auth0/identity', name: 'identity', description: 'Authentication and authorization platform with SSO and MFA', tags: ['auth0', 'auth', 'identity', 'sso'] },
      { id: 'clerk/auth', name: 'auth', description: 'User authentication with social login and session management', tags: ['clerk', 'auth', 'login'] },
      { id: 'playwright/testing', name: 'testing', description: 'Browser automation for end-to-end testing of web applications', tags: ['playwright', 'testing', 'browser', 'automation'] },
      { id: 'sentry/errors', name: 'errors', description: 'Error monitoring and performance tracking for production apps', tags: ['sentry', 'errors', 'monitoring'] },
      { id: 'twilio/messaging', name: 'messaging', description: 'SMS and messaging API for sending notifications', tags: ['twilio', 'sms', 'messaging'] },
    ];

    const index = buildIndex(entries);

    const queries = [
      'payment processing',
      'database',
      'authentication login',
      'browser testing',
      'error monitoring',
      'send SMS',
      'AI language model',
      'caching',
      'subscriptions billing',
      'JSON document store',
    ];

    it('generates visual search quality report', () => {
      const lines = ['\n  ┌─────────────────────────────────────────────────────────────────┐'];
      lines.push('  │                    BM25 SEARCH QUALITY REPORT                  │');
      lines.push('  └─────────────────────────────────────────────────────────────────┘\n');

      for (const query of queries) {
        const results = search(query, index);
        lines.push(`  Query: "${query}"`);
        if (results.length === 0) {
          lines.push('    (no results)');
        } else {
          for (const r of results.slice(0, 5)) {
            const bar = '█'.repeat(Math.min(Math.round(r.score * 2), 30));
            lines.push(`    ${r.score.toFixed(2).padStart(6)}  ${bar}  ${r.id}`);
          }
        }
        lines.push('');
      }

      // Print to console so it's visible in test output
      console.log(lines.join('\n'));

      // The test itself just verifies search runs without error
      expect(true).toBe(true);
    });
  });
});


================================================
FILE: cli/test/lib/frontmatter.test.js
================================================
import { describe, it, expect } from 'vitest';
import { parseFrontmatter } from '../../src/lib/frontmatter.js';

describe('parseFrontmatter', () => {
  it('parses valid YAML frontmatter', () => {
    const content = `---
name: test
description: A test entry
metadata:
  languages: "python"
  versions: "1.0.0"
---

# Test Content

Body text here.`;

    const { attributes, body } = parseFrontmatter(content);
    expect(attributes.name).toBe('test');
    expect(attributes.description).toBe('A test entry');
    expect(attributes.metadata.languages).toBe('python');
    expect(attributes.metadata.versions).toBe('1.0.0');
    expect(body).toContain('# Test Content');
    expect(body).toContain('Body text here.');
  });

  it('returns empty attributes when no frontmatter', () => {
    const content = '# Just a heading\n\nSome content.';
    const { attributes, body } = parseFrontmatter(content);
    expect(attributes).toEqual({});
    expect(body).toBe(content);
  });

  it('handles frontmatter with no metadata field', () => {
    const content = `---
name: simple
description: No metadata
---

Content.`;

    const { attributes } = parseFrontmatter(content);
    expect(attributes.name).toBe('simple');
    expect(attributes.metadata).toBeUndefined();
  });

  it('handles empty frontmatter block', () => {
    const content = `---
---

Content.`;

    const { attributes, body } = parseFrontmatter(content);
    expect(attributes).toEqual({});
    expect(body).toContain('Content.');
  });
});


================================================
FILE: cli/test/lib/normalize.test.js
================================================
import { describe, it, expect } from 'vitest';
import { normalizeLanguage, displayLanguage } from '../../src/lib/normalize.js';

describe('normalizeLanguage', () => {
  it('normalizes short aliases to full names', () => {
    expect(normalizeLanguage('py')).toBe('python');
    expect(normalizeLanguage('js')).toBe('javascript');
    expect(normalizeLanguage('ts')).toBe('typescript');
    expect(normalizeLanguage('rb')).toBe('ruby');
    expect(normalizeLanguage('cs')).toBe('csharp');
  });

  it('passes through full language names', () => {
    expect(normalizeLanguage('python')).toBe('python');
    expect(normalizeLanguage('javascript')).toBe('javascript');
    expect(normalizeLanguage('typescript')).toBe('typescript');
  });

  it('is case-insensitive', () => {
    expect(normalizeLanguage('PY')).toBe('python');
    expect(normalizeLanguage('JS')).toBe('javascript');
    expect(normalizeLanguage('Python')).toBe('python');
  });

  it('returns null for null/undefined', () => {
    expect(normalizeLanguage(null)).toBeNull();
    expect(normalizeLanguage(undefined)).toBeNull();
  });

  it('passes through unknown languages as lowercase', () => {
    expect(normalizeLanguage('rust')).toBe('rust');
    expect(normalizeLanguage('Go')).toBe('go');
  });
});

describe('displayLanguage', () => {
  it('converts full names to short display forms', () => {
    expect(displayLanguage('javascript')).toBe('js');
    expect(displayLanguage('typescript')).toBe('ts');
    expect(displayLanguage('python')).toBe('py');
  });

  it('passes through unknown languages', () => {
    expect(displayLanguage('rust')).toBe('rust');
    expect(displayLanguage('go')).toBe('go');
  });
});


================================================
FILE: cli/tests/commands/build.test.js
================================================
import { describe, it, expect } from 'vitest';
import { execFileSync } from 'node:child_process';
import { mkdtempSync, readFileSync, rmSync } from 'node:fs';
import { tmpdir } from 'node:os';
import { join } from 'node:path';

const CLI_BIN = join(import.meta.dirname, '..', '..', 'bin', 'chub');
const FIXTURES = join(import.meta.dirname, '..', '..', 'test', 'fixtures');
const BUILD_TEST_TIMEOUT = 15000;
const itBuild = (name, fn) => it(name, { timeout: BUILD_TEST_TIMEOUT }, fn);
const TEST_ENV = { ...process.env, CHUB_TELEMETRY: '0', CHUB_FEEDBACK: '0' };

describe('chub build', () => {
  itBuild('validates test fixtures and finds docs and skills', () => {
    const result = execFileSync(
      process.execPath,
      [CLI_BIN, 'build', FIXTURES, '--validate-only', '--json'],
      { encoding: 'utf8', env: TEST_ENV },
    );

    const parsed = JSON.parse(result.trim());
    expect(parsed).toHaveProperty('docs');
    expect(parsed).toHaveProperty('skills');
    expect(parsed).toHaveProperty('warnings');
    expect(parsed.docs).toBeGreaterThanOrEqual(1);
    expect(parsed.skills).toBeGreaterThanOrEqual(1);
  });

  itBuild('finds expected docs and skills in fixtures', () => {
    const result = execFileSync(
      process.execPath,
      [CLI_BIN, 'build', FIXTURES, '--validate-only', '--json'],
      { encoding: 'utf8', env: TEST_ENV },
    );

    const parsed = JSON.parse(result.trim());
    // test/fixtures has 3 docs (acme/widgets, acme/versioned-api, multilang/client) and 1 skill (testskills/deploy)
    expect(parsed.docs).toBe(3);
    expect(parsed.skills).toBe(1);
  });

  itBuild('writes a search index with an inverted index', () => {
    const outputDir = mkdtempSync(join(tmpdir(), 'chub-build-'));

    try {
      execFileSync(
        process.execPath,
        [CLI_BIN, 'build', FIXTURES, '--json', '-o', outputDir],
        { encoding: 'utf8', env: TEST_ENV },
      );

      const searchIndex = JSON.parse(readFileSync(join(outputDir, 'search-index.json'), 'utf8'));
      expect(searchIndex).toHaveProperty('invertedIndex');
      expect(searchIndex.invertedIndex).toHaveProperty('widget');
    } finally {
      rmSync(outputDir, { recursive: true, force: true });
    }
  });

  itBuild('exits with error for nonexistent directory', () => {
    let threw = false;
    try {
      execFileSync(
        process.execPath,
        [CLI_BIN, 'build', '/tmp/nonexistent-dir-xyz-12345', '--validate-only', '--json'],
        { encoding: 'utf8', stdio: 'pipe', env: TEST_ENV },
      );
    } catch (err) {
      threw = true;
      expect(err.status).not.toBe(0);
      expect(err.stderr.toString()).toContain('not found');
    }
    expect(threw).toBe(true);
  });
});


================================================
FILE: cli/tests/commands/get.test.js
================================================
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';

// Mock analytics module — must be before any import that uses it
const trackCalls = [];
vi.mock('../../src/lib/analytics.js', () => ({
  trackEvent: vi.fn(async (event, props) => { trackCalls.push([event, props]); }),
  setCliVersion: vi.fn(),
  shutdownAnalytics: vi.fn(async () => {}),
}));

// Mock cache.fetchDoc so we can simulate network errors
const mockFetchDoc = vi.fn();
const mockFetchDocFull = vi.fn();
vi.mock('../../src/lib/cache.js', async (importOriginal) => {
  const actual = await importOriginal();
  return {
    ...actual,
    fetchDoc: (...args) => mockFetchDoc.getMockImplementation() ? mockFetchDoc(...args) : actual.fetchDoc(...args),
    fetchDocFull: (...args) => mockFetchDocFull.getMockImplementation() ? mockFetchDocFull(...args) : actual.fetchDocFull(...args),
  };
});

import { handleGet, handleSearch } from '../../src/mcp/tools.js';

function parseResult(result) {
  return JSON.parse(result.content[0].text);
}

describe('get command telemetry', () => {
  beforeEach(() => {
    trackCalls.length = 0;
  });

  it('emits doc_not_found with entry_id when entry does not exist', async () => {
    await handleGet({ id: 'nonexistent/entry-xyz-999' });

    const call = trackCalls.find(([event]) => event === 'doc_not_found');
    expect(call).toBeDefined();
    expect(call[1].entry_id).toBe('nonexistent/entry-xyz-999');
    expect(call[1]).toHaveProperty('via', 'mcp');
    expect(call[1]).not.toHaveProperty('error_message');
  });

  it('emits doc_fetched with duration_ms on successful fetch', async () => {
    const searchResult = await handleSearch({ limit: 1 });
    const data = parseResult(searchResult);
    if (data.results.length === 0) return;

    const entry = data.results[0];
    const lang = entry.languages?.[0];
    trackCalls.length = 0;
    await handleGet({ id: entry.id, lang });

    const fetchCall = trackCalls.find(
      ([event]) => event === 'doc_fetched' || event === 'skill_fetched'
    );
    if (fetchCall) {
      const props = fetchCall[1];
      expect(props).toHaveProperty('entry_id');
      expect(props).toHaveProperty('duration_ms');
      expect(typeof props.duration_ms).toBe('number');
      expect(props.duration_ms).toBeGreaterThanOrEqual(0);
      expect(props).toHaveProperty('via', 'mcp');
      expect(props).not.toHaveProperty('error_message');
    }
  });

  it('duration_ms is reasonable per entry', async () => {
    const searchResult = await handleSearch({ limit: 2 });
    const data = parseResult(searchResult);
    if (data.results.length < 1) return;

    for (const entry of data.results) {
      trackCalls.length = 0;
      const lang = entry.languages?.[0];
      await handleGet({ id: entry.id, lang });

      const fetchCall = trackCalls.find(
        ([event]) => event === 'doc_fetched' || event === 'skill_fetched'
      );
      if (fetchCall) {
        expect(fetchCall[1].duration_ms).toBeGreaterThanOrEqual(0);
        expect(fetchCall[1].duration_ms).toBeLessThan(10000);
      }
    }
  });

  it('never sends error_message in any telemetry event', async () => {
    await handleSearch({ query: 'test' });
    await handleGet({ id: 'nonexistent/entry-999' });

    for (const [, props] of trackCalls) {
      expect(props).not.toHaveProperty('error_message');
    }
  });

  it('fetch_error contains error_type but not error_message', async () => {
    // Make fetchDoc throw to hit the catch path that emits fetch_error
    mockFetchDoc.mockImplementation(async () => {
      const e = new Error('connect ECONNREFUSED');
      e.code = 'ECONNREFUSED';
      throw e;
    });

    try {
      const searchResult = await handleSearch({ limit: 1 });
      const data = parseResult(searchResult);
      if (data.results.length === 0) return;

      const entry = data.results[0];
      const lang = entry.languages?.[0];
      trackCalls.length = 0;
      await handleGet({ id: entry.id, lang });

      const errorCall = trackCalls.find(([event]) => event === 'fetch_error');
      expect(errorCall).toBeDefined();
      expect(errorCall[1]).toHaveProperty('error_type', 'ECONNREFUSED');
      expect(errorCall[1]).toHaveProperty('via', 'mcp');
      expect(errorCall[1]).not.toHaveProperty('error_message');
    } finally {
      mockFetchDoc.mockReset();
    }
  });
});


================================================
FILE: cli/tests/commands/go-lang.test.js
================================================
/**
 * Tests for `--lang go` support in context-hub.
 *
 * Covers:
 *  1. content/openai/docs/chat/go/DOC.md — frontmatter correctness
 *  2. resolveDocPath() — correctly resolves a Go language entry
 *  3. resolveDocPath() — returns error for unknown language
 *  4. chub build — validates the Go fixture via CLI
 *  5. chub build --validate-only --json — Go fixture counts as a doc language variant
 */

import { describe, it, expect } from 'vitest';
import { readFileSync, mkdtempSync } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
import { execFileSync } from 'node:child_process';
import { parseFrontmatter } from '../../src/lib/frontmatter.js';
import { resolveDocPath } from '../../src/lib/registry.js';

const REPO_ROOT = join(import.meta.dirname, '..', '..', '..');
const CLI_BIN = join(import.meta.dirname, '..', '..', 'bin', 'chub');
const FIXTURES = join(import.meta.dirname, '..', '..', 'test', 'fixtures');
const GO_DOC_PATH = join(REPO_ROOT, 'content', 'openai', 'docs', 'chat', 'go', 'DOC.md');
const GO_FIXTURE_PATH = join(FIXTURES, 'multilang', 'docs', 'client', 'go', 'DOC.md');
const BUILD_TEST_TIMEOUT = 15000;
const itBuild = (name, fn) => it(name, { timeout: BUILD_TEST_TIMEOUT }, fn);
const TEST_ENV = { ...process.env, CHUB_TELEMETRY: '0', CHUB_FEEDBACK: '0' };

// ---------------------------------------------------------------------------
// 1. Content file — frontmatter validation
// ---------------------------------------------------------------------------
describe('content/openai/docs/chat/go/DOC.md — frontmatter', () => {
  it('file exists and is readable', () => {
    const raw = readFileSync(GO_DOC_PATH, 'utf8');
    expect(raw.length).toBeGreaterThan(100);
  });

  it('has required name field equal to "chat"', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(attributes.name).toBe('chat');
  });

  it('has required description field', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(typeof attributes.description).toBe('string');
    expect(attributes.description.length).toBeGreaterThan(10);
  });

  it('declares language as "go"', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(attributes.metadata.languages).toBe('go');
  });

  it('has a versions field (SDK version string)', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(typeof attributes.metadata.versions).toBe('string');
    expect(attributes.metadata.versions.length).toBeGreaterThan(0);
  });

  it('has an updated-on date in YYYY-MM-DD format', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(attributes.metadata['updated-on']).toMatch(/^\d{4}-\d{2}-\d{2}$/);
  });

  it('has a valid source value', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    const validSources = ['official', 'maintainer', 'community'];
    expect(validSources).toContain(attributes.metadata.source);
  });

  it('has tags including "go" or "openai"', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    const tags = attributes.metadata.tags || '';
    expect(tags).toMatch(/openai|go/);
  });

  it('body contains openai.F() — the critical Go SDK pattern', () => {
    const { body } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(body).toContain('openai.F(');
  });

  it('body contains go import statement', () => {
    const { body } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(body).toContain('github.com/openai/openai-go');
  });

  it('body contains a code block', () => {
    const { body } = parseFrontmatter(readFileSync(GO_DOC_PATH, 'utf8'));
    expect(body).toContain('```go');
  });
});

// ---------------------------------------------------------------------------
// 2. Go fixture — frontmatter validation
// ---------------------------------------------------------------------------
describe('test fixture: multilang/docs/client/go/DOC.md', () => {
  it('fixture file exists', () => {
    const raw = readFileSync(GO_FIXTURE_PATH, 'utf8');
    expect(raw.length).toBeGreaterThan(0);
  });

  it('fixture name matches sibling variants (must be "client")', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_FIXTURE_PATH, 'utf8'));
    expect(attributes.name).toBe('client');
  });

  it('fixture declares language "go"', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_FIXTURE_PATH, 'utf8'));
    expect(attributes.metadata.languages).toBe('go');
  });

  it('fixture has same description as python/js variants', () => {
    const { attributes } = parseFrontmatter(readFileSync(GO_FIXTURE_PATH, 'utf8'));
    expect(attributes.description).toBe('Multilang client SDK');
  });
});

// ---------------------------------------------------------------------------
// 3. resolveDocPath() — Go language resolution logic
// ---------------------------------------------------------------------------
describe('resolveDocPath() — Go language support', () => {
  const makeEntry = (languages) => ({
    name: 'chat',
    languages,
    _sourceObj: { name: 'default', url: 'https://cdn.example.com/v1' },
  });

  it('resolves "go" language variant when present', () => {
    const entry = makeEntry([
      { language: 'python', versions: [{ version: '2.0', path: 'openai/chat/python', files: ['DOC.md'] }], recommendedVersion: '2.0' },
      { language: 'javascript', versions: [{ version: '6.0', path: 'openai/chat/javascript', files: ['DOC.md'] }], recommendedVersion: '6.0' },
      { language: 'go', versions: [{ version: '1.3.0', path: 'openai/chat/go', files: ['DOC.md'] }], recommendedVersion: '1.3.0' },
    ]);

    const result = resolveDocPath(entry, 'go', null);
    expect(result).not.toBeNull();
    expect(result.path).toBe('openai/chat/go');
    expect(result.files).toContain('DOC.md');
  });

  it('returns needsLanguage when lang is null and multiple languages exist including go', () => {
    const entry = makeEntry([
      { language: 'python', versions: [{ version: '2.0', path: 'p/python', files: ['DOC.md'] }], recommendedVersion: '2.0' },
      { language: 'go', versions: [{ version: '1.3.0', path: 'p/go', files: ['DOC.md'] }], recommendedVersion: '1.3.0' },
    ]);

    const result = resolveDocPath(entry, null, null);
    expect(result).not.toBeNull();
    expect(result.needsLanguage).toBe(true);
    expect(result.available).toContain('go');
    expect(result.available).toContain('python');
  });

  it('returns error-like result when "go" is requested but not available', () => {
    const entry = makeEntry([
      { language: 'python', versions: [{ version: '2.0', path: 'p/python', files: ['DOC.md'] }], recommendedVersion: '2.0' },
      { language: 'javascript', versions: [{ version: '6.0', path: 'p/js', files: ['DOC.md'] }], recommendedVersion: '6.0' },
    ]);

    const result = resolveDocPath(entry, 'go', null);
    // Should return null or a languageNotFound indicator — not a valid path
    if (result !== null) {
      expect(result.path).toBeUndefined();
    } else {
      expect(result).toBeNull();
    }
  });

  it('resolves "go" at a specific version', () => {
    const entry = makeEntry([
      {
        language: 'go',
        versions: [
          { version: '1.3.0', path: 'openai/chat/go', files: ['DOC.md'] },
          { version: '1.0.0', path: 'openai/chat/go-v1', files: ['DOC.md'] },
        ],
        recommendedVersion: '1.3.0',
      },
    ]);

    const result = resolveDocPath(entry, 'go', '1.0.0');
    expect(result).not.toBeNull();
    expect(result.path).toBe('openai/chat/go-v1');
  });

  it('resolves recommended version when lang=go and version=null', () => {
    const entry = makeEntry([
      {
        language: 'go',
        versions: [
          { version: '1.3.0', path: 'openai/chat/go', files: ['DOC.md'] },
          { version: '1.0.0', path: 'openai/chat/go-v1', files: ['DOC.md'] },
        ],
        recommendedVersion: '1.3.0',
      },
    ]);

    const result = resolveDocPath(entry, 'go', null);
    expect(result).not.toBeNull();
    expect(result.path).toBe('openai/chat/go');
  });
});

// ---------------------------------------------------------------------------
// 4. CLI integration — build validates Go fixture without errors
// ---------------------------------------------------------------------------
describe('chub build — Go fixture integration', () => {
  itBuild('validates the multilang fixture (including Go variant) without errors', () => {
    const result = execFileSync(
      process.execPath,
      [CLI_BIN, 'build', FIXTURES, '--validate-only', '--json'],
      { encoding: 'utf8', env: TEST_ENV },
    );

    const parsed = JSON.parse(result.trim());
    expect(parsed.warnings).toBe(0);
    expect(parsed.docs).toBeGreaterThanOrEqual(1);
  });

  itBuild('doc count includes Go as part of the multilang entry (not a new doc)', () => {
    // The multilang/client entry now has 3 language variants: python, javascript, go.
    // It should still count as 1 doc entry (language variants share the same name).
    const result = execFileSync(
      process.execPath,
      [CLI_BIN, 'build', FIXTURES, '--validate-only', '--json'],
      { encoding: 'utf8', env: TEST_ENV },
    );

    const parsed = JSON.parse(result.trim());
    // 3 doc entries: acme/widgets, acme/versioned-api, multilang/client (with py+js+go)
    expect(parsed.docs).toBe(3);
  });

  itBuild('exits cleanly (exit code 0) with Go fixture present', () => {
    let threw = false;
    try {
      execFileSync(
        process.execPath,
        [CLI_BIN, 'build', FIXTURES, '--validate-only'],
        { encoding: 'utf8', stdio: 'pipe', env: TEST_ENV },
      );
    } catch {
      threw = true;
    }
    expect(threw).toBe(false);
  });
});

// ---------------------------------------------------------------------------
// 5. Build → registry round-trip: go appears in built registry.json
// ---------------------------------------------------------------------------
describe('chub build — Go appears in built registry.json', () => {
  itBuild('go language is present in registry after building content/', () => {
    const tmpDir = mkdtempSync(join(tmpdir(), 'chub-go-test-'));

    execFileSync(
      process.execPath,
      [CLI_BIN, 'build', join(REPO_ROOT, 'content'), '-o', tmpDir],
      { encoding: 'utf8', env: TEST_ENV },
    );

    const registry = JSON.parse(readFileSync(join(tmpDir, 'registry.json'), 'utf8'));
    const chat = registry.docs.find((d) => d.id === 'openai/chat');
    expect(chat).toBeDefined();
    const langs = chat.languages.map((l) => l.language);
    expect(langs).toContain('go');
  });
});


================================================
FILE: cli/tests/commands/search.test.js
================================================
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { Command } from 'commander';

// Mock all dependencies before importing the module under test
vi.mock('../../src/lib/registry.js', () => ({
  searchEntries: vi.fn(() => []),
  listEntries: vi.fn(() => []),
  getEntry: vi.fn(() => ({})),
  getDisplayId: vi.fn((e) => e.id || e.name),
  isMultiSource: vi.fn(() => false),
}));
vi.mock('../../src/lib/normalize.js', () => ({
  displayLanguage: vi.fn((l) => l),
}));
vi.mock('../../src/lib/output.js', () => ({
  output: vi.fn((data, formatter, opts) => {
    if (opts?.json) {
      console.log(JSON.stringify(data));
    } else {
      formatter(data);
    }
  }),
}));
vi.mock('../../src/lib/analytics.js', () => ({
  trackEvent: vi.fn(() => Promise.resolve()),
}));

const { searchEntries, listEntries, getEntry, getDisplayId, isMultiSource } = await import('../../src/lib/registry.js');
const { trackEvent } = await import('../../src/lib/analytics.js');
const { output } = await import('../../src/lib/output.js');
const { registerSearchCommand } = await import('../../src/commands/search.js');

// Helper to invoke the command via Commander
async function runSearch(args = [], globalArgs = []) {
  const program = new Command();
  program.exitOverride();
  program.option('--json', 'JSON output');
  registerSearchCommand(program);
  await program.parseAsync(['node', 'test', ...globalArgs, 'search', ...args]);
}

// Sample entries for reuse
const docEntry = {
  id: 'acme/widgets',
  name: 'Widgets',
  _type: 'doc',
  _source: 'acme',
  description: 'Widget management library',
  tags: ['ui', 'components'],
  languages: [
    {
      language: 'javascript',
      recommendedVersion: '2.0',
      versions: [{ version: '2.0', size: 10240, lastUpdated: '2025-01-01' }],
    },
  ],
};

const skillEntry = {
  id: 'testskills/deploy',
  name: 'Deploy',
  _type: 'skill',
  _source: 'testskills',
  description: 'Deployment automation skill',
  tags: ['devops'],
  path: 'skills/deploy',
  size: 2048,
  lastUpdated: '2025-06-01',
  files: ['deploy.sh', 'config.yml'],
};

const longDescEntry = {
  id: 'verbose/thing',
  name: 'Verbose',
  _type: 'doc',
  _source: 'verbose',
  description: 'This is an extremely long description that definitely exceeds the sixty character truncation limit for list display',
  languages: [],
};

describe('search command', () => {
  let logSpy;

  beforeEach(() => {
    vi.clearAllMocks();
    logSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
  });

  afterEach(() => {
    logSpy.mockRestore();
  });

  // ── Path 1: No query (list all) ──────────────────────────────

  describe('no query — list all', () => {
    it('calls listEntries with parsed filter options', async () => {
      listEntries.mockReturnValue([]);
      await runSearch(['--tags', 'ui', '--lang', 'js']);
      expect(listEntries).toHaveBeenCalledWith(
        expect.objectContaining({ tags: 'ui', lang: 'js' }),
      );
    });

    it('prints "No entries found." when list is empty', async () => {
      listEntries.mockReturnValue([]);
      await runSearch([]);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('No entries found.'));
    });

    it('prints entry count and formatted list when entries exist', async () => {
      listEntries.mockReturnValue([docEntry, skillEntry]);
      await runSearch([]);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('2 entries:'));
    });

    it('respects --limit option to slice results', async () => {
      listEntries.mockReturnValue([docEntry, skillEntry, longDescEntry]);
      await runSearch(['--limit', '1']);
      // output() should receive only 1 entry
      expect(output).toHaveBeenCalledWith(
        expect.objectContaining({ total: 1 }),
        expect.any(Function),
        expect.anything(),
      );
    });

    it('defaults limit to 20', async () => {
      const manyEntries = Array.from({ length: 25 }, (_, i) => ({
        ...docEntry,
        id: `entry-${i}`,
      }));
      listEntries.mockReturnValue(manyEntries);
      await runSearch([]);
      expect(output).toHaveBeenCalledWith(
        expect.objectContaining({ total: 20 }),
        expect.any(Function),
        expect.anything(),
      );
    });

    it('passes json: true through output() in JSON mode', async () => {
      listEntries.mockReturnValue([docEntry]);
      await runSearch([], ['--json']);
      expect(output).toHaveBeenCalledWith(
        expect.anything(),
        expect.any(Function),
        expect.objectContaining({ json: true }),
      );
    });
  });

  // ── Path 2: Exact ID match ───────────────────────────────────

  describe('exact ID match', () => {
    it('shows detail view for single match', async () => {
      getEntry.mockReturnValue({ entry: docEntry });
      await runSearch(['acme/widgets']);
      expect(output).toHaveBeenCalledWith(
        docEntry,
        expect.any(Function),
        expect.anything(),
      );
    });

    it('prints entry name, description, tags in detail view', async () => {
      getEntry.mockReturnValue({ entry: docEntry });
      await runSearch(['acme/widgets']);
      // The formatter passed to output will be called — verify console output
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Widgets'));
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('ui, components'));
    });

    it('prints alternatives for ambiguous match', async () => {
      getEntry.mockReturnValue({
        ambiguous: true,
        alternatives: ['src1/widgets', 'src2/widgets'],
      });
      await runSearch(['widgets']);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('src1/widgets'));
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('src2/widgets'));
    });

    it('does NOT fall through to fuzzy search on exact match', async () => {
      getEntry.mockReturnValue({ entry: docEntry });
      await runSearch(['acme/widgets']);
      expect(searchEntries).not.toHaveBeenCalled();
    });

    it('does NOT fall through to fuzzy search on ambiguous match', async () => {
      getEntry.mockReturnValue({
        ambiguous: true,
        alternatives: ['a', 'b'],
      });
      await runSearch(['widgets']);
      expect(searchEntries).not.toHaveBeenCalled();
    });
  });

  // ── Path 3: Fuzzy search ─────────────────────────────────────

  describe('fuzzy search', () => {
    beforeEach(() => {
      getEntry.mockReturnValue({});
    });

    it('calls searchEntries when getEntry returns no match', async () => {
      searchEntries.mockReturnValue([docEntry]);
      await runSearch(['widget']);
      expect(searchEntries).toHaveBeenCalledWith('widget', expect.anything());
    });

    it('normalizes whitespace before lookup and search', async () => {
      searchEntries.mockReturnValue([docEntry]);
      await runSearch(['  widget   api  ']);
      expect(getEntry).toHaveBeenCalledWith('widget api');
      expect(searchEntries).toHaveBeenCalledWith('widget api', expect.anything());
    });

    it('fires analytics event with correct properties', async () => {
      searchEntries.mockReturnValue([docEntry]);
      await runSearch(['widget', '--tags', 'ui']);
      expect(trackEvent).toHaveBeenCalledWith('search', expect.objectContaining({
        query: 'widget',
        query_length: 6,
        result_count: 1,
        has_tags: true,
        has_lang: false,
      }));
    });

    it('does not fail when trackEvent rejects', async () => {
      searchEntries.mockReturnValue([docEntry]);
      trackEvent.mockReturnValue(Promise.reject(new Error('network')));
      // Should not throw
      await runSearch(['widget']);
      expect(trackEvent).toHaveBeenCalled();
    });

    it('prints "No results for..." when empty', async () => {
      searchEntries.mockReturnValue([]);
      await runSearch(['xyznonexist']);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('No results for'));
    });

    it('prints result count and query in header', async () => {
      searchEntries.mockReturnValue([docEntry, skillEntry]);
      await runSearch(['widget']);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('2 results for "widget"'));
    });

    it('respects --limit on fuzzy results', async () => {
      searchEntries.mockReturnValue([docEntry, skillEntry, longDescEntry]);
      await runSearch(['widget', '--limit', '2']);
      expect(output).toHaveBeenCalledWith(
        expect.objectContaining({ total: 2 }),
        expect.any(Function),
        expect.anything(),
      );
    });
  });

  // ── Formatting ───────────────────────────────────────────────

  describe('formatEntryList', () => {
    it('shows source label when isMultiSource() is true', async () => {
      isMultiSource.mockReturnValue(true);
      listEntries.mockReturnValue([docEntry]);
      await runSearch([]);
      // Source name should appear in output
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('acme'));
    });

    it('truncates descriptions longer than 60 chars', async () => {
      listEntries.mockReturnValue([longDescEntry]);
      await runSearch([]);
      const descCall = logSpy.mock.calls.find((c) =>
        typeof c[0] === 'string' && c[0].includes('...'),
      );
      expect(descCall).toBeTruthy();
      // The truncated portion should be 57 chars + '...'
      const descLine = descCall[0];
      expect(descLine).toContain('...');
      expect(descLine).not.toContain('truncation limit for list display');
    });
  });

  describe('formatEntryDetail', () => {
    it('prints language versions for doc entries', async () => {
      getEntry.mockReturnValue({ entry: docEntry });
      await runSearch(['acme/widgets']);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('javascript'));
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('2.0'));
    });

    it('prints path and files for skill entries', async () => {
      getEntry.mockReturnValue({ entry: skillEntry });
      await runSearch(['testskills/deploy']);
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('skills/deploy'));
      expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('deploy.sh, config.yml'));
    });
  });
});


================================================
FILE: cli/tests/lib/analytics.test.js
================================================
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { mkdtempSync, rmSync } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from
Download .txt
gitextract_x79fttdt/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ci.yml
│       ├── deploy-content.yml
│       └── publish.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── cli/
│   ├── .npmignore
│   ├── README.md
│   ├── bin/
│   │   ├── chub
│   │   └── chub-mcp
│   ├── package.json
│   ├── skills/
│   │   └── get-api-docs/
│   │       └── SKILL.md
│   ├── src/
│   │   ├── commands/
│   │   │   ├── annotate.js
│   │   │   ├── build.js
│   │   │   ├── cache.js
│   │   │   ├── feedback.js
│   │   │   ├── get.js
│   │   │   ├── search.js
│   │   │   └── update.js
│   │   ├── index.js
│   │   ├── lib/
│   │   │   ├── analytics.js
│   │   │   ├── annotations.js
│   │   │   ├── bm25.js
│   │   │   ├── cache.js
│   │   │   ├── config.js
│   │   │   ├── frontmatter.js
│   │   │   ├── identity.js
│   │   │   ├── normalize.js
│   │   │   ├── output.js
│   │   │   ├── registry.js
│   │   │   ├── telemetry.js
│   │   │   └── welcome.js
│   │   └── mcp/
│   │       ├── server.js
│   │       ├── stdio-lifecycle.js
│   │       └── tools.js
│   ├── test/
│   │   ├── e2e.test.js
│   │   ├── fixtures/
│   │   │   ├── acme/
│   │   │   │   └── docs/
│   │   │   │       ├── versioned-api/
│   │   │   │       │   ├── v1/
│   │   │   │       │   │   └── DOC.md
│   │   │   │       │   └── v2/
│   │   │   │       │       └── DOC.md
│   │   │   │       └── widgets/
│   │   │   │           ├── DOC.md
│   │   │   │           └── references/
│   │   │   │               └── advanced.md
│   │   │   ├── multilang/
│   │   │   │   └── docs/
│   │   │   │       └── client/
│   │   │   │           ├── go/
│   │   │   │           │   └── DOC.md
│   │   │   │           ├── javascript/
│   │   │   │           │   └── DOC.md
│   │   │   │           └── python/
│   │   │   │               └── DOC.md
│   │   │   └── testskills/
│   │   │       └── skills/
│   │   │           └── deploy/
│   │   │               └── SKILL.md
│   │   └── lib/
│   │       ├── bm25.test.js
│   │       ├── frontmatter.test.js
│   │       └── normalize.test.js
│   └── tests/
│       ├── commands/
│       │   ├── build.test.js
│       │   ├── get.test.js
│       │   ├── go-lang.test.js
│       │   └── search.test.js
│       ├── lib/
│       │   ├── analytics.test.js
│       │   ├── bm25.test.js
│       │   ├── cache.test.js
│       │   ├── config.test.js
│       │   ├── frontmatter.test.js
│       │   ├── normalize.test.js
│       │   ├── registry.multisource.test.js
│       │   ├── registry.search-behavior.test.js
│       │   ├── registry.test.js
│       │   └── welcome.test.js
│       └── mcp/
│           ├── stdio-lifecycle.test.js
│           └── tools.test.js
├── content/
│   ├── accelerate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiofiles/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiohttp/
│   │   └── docs/
│   │       ├── cors/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiohttp-cors/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiomysql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiosignal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aiosqlite/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── airtable/
│   │   └── docs/
│   │       └── database/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── albumentations/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── alembic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── altair/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── amplitude/
│   │   └── docs/
│   │       └── analytics/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── amqp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── angular/
│   │   └── docs/
│   │       └── core/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── annotated-types/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ansible/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── antd/
│   │   └── docs/
│   │       └── antd/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── anthropic/
│   │   └── docs/
│   │       ├── claude-api/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── anyio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── apache-airflow/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-airbyte/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-amazon/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-beam/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-cassandra/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-druid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-flink/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-hdfs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-hive/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-impala/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-kafka/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-kylin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-livy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-pig/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-pinot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-spark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apache-sqoop/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-apprise/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-asana/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-atlassian-jira/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-celery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cloudant/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cncf-kubernetes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-cohere/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-compat/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-io/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-common-sql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-daskexecutor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-datadog/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-dbt-cloud/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-dingding/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-discord/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-edge3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-elasticsearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-exasol/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-fab/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-facebook/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-fivetran/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-ftp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-github/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-google/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-grpc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-hashicorp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-http/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-imap/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-influxdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-jdbc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-jira/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-mssql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-psrp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-microsoft-winrm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-mongo/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-mysql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-neo4j/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-odbc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-openfaas/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-openlineage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-opensearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-opsgenie/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-oracle/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-pagerduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-papermill/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-pinecone/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-plexus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-postgres/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-presto/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-qdrant/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-qubole/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-salesforce/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-samba/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-segment/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sendgrid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sftp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-singularity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-smtp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-sqlite/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-ssh/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-tableau/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-telegram/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-teradata/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-trino/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-vertica/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-weaviate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── providers-yandex/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── providers-zendesk/
│   │           └── python/
│   │               └── DOC.md
│   ├── apache-beam/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── appdirs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── applitools/
│   │   └── docs/
│   │       └── eyes-playwright/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── apscheduler/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ariadne/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── arq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── arrow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── asana/
│   │   └── docs/
│   │       └── tasks/
│   │           └── DOC.md
│   ├── assemblyai/
│   │   └── docs/
│   │       └── transcription/
│   │           └── DOC.md
│   ├── async-timeout/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── asyncpg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── atlassian/
│   │   └── docs/
│   │       └── confluence/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── attrs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── auth0/
│   │   └── docs/
│   │       └── identity/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── authlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── autogen/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               ├── DOC.md
│   │               └── references/
│   │                   ├── agents.md
│   │                   └── group-chat.md
│   ├── autopep8/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── av/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── aws/
│   │   └── docs/
│   │       ├── acm/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── aiobotocore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── amplify/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── api-gateway/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── apigatewayv2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── application-auto-scaling/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── apprunner/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appstream/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appsync/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── athena/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── auto-scaling/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── backup/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── batch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── bedrock/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── bedrock-runtime/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── boto3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── boto3-stubs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── botocore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── budgets/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── chime-sdk-messaging/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cleanrooms/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cli/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cloudformation/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudfront/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudfront-signer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudtrail/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cloudwatch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codebuild/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codecommit/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codedeploy/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── codepipeline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognito-identity/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognito-identity-provider/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── comprehend/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── compute-optimizer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── config-service/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── connect/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── controltower/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cost-explorer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── credential-providers/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── datasync/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── deadline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── docdb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ec2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ecr/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ecs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── efs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eks/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elastic-load-balancing-v2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elasticache/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── elasticsearch-service/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── emr/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── entityresolution/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eventbridge/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── firehose/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── forecast/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── fsx/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── glue/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── guardduty/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── health/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── healthlake/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iam/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── inspector2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot-data-plane/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── iot-events/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ivs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── keyspaces/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── kinesis/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── kms/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lambda/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lex-runtime-v2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lib-dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lib-storage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── license-manager/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── lightsail/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── location/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── macie2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── managedblockchain/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── marketplace-catalog/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediaconnect/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediaconvert/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── medialive/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediapackage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mediastore/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── memorydb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-endpoint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-retry/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-signing/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── middleware-stack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mwaa/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-accessanalyzer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-acm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-amplify/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-apigateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-apprunner/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-appstream/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-appsync/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-athena/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-autoscaling/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-backup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-agent/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-agent-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-bedrock-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cleanrooms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudformation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudfront/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cloudwatch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-codebuild/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-codepipeline/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cognito-identity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-cognito-idp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-comprehend/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-config/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-connect/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-datasync/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-dynamodb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ec2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ecr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ecs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-efs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-eks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-elasticache/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-elbv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-emr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-events/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-evidently/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-firehose/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-forecast/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-fsx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-glue/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-guardduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-iam/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-inspector2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-iot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ivs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-kinesis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-kms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lambda/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lex-runtime/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-lightsail/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-logs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-macie2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-mediaconvert/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-memorydb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-mwaa/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-neptune/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-opensearch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-organizations/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-personalize/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-pinpoint/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-pipes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-polly/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-proton/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-qbusiness/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-qldb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-rds/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-redshift/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-rekognition/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-route53/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-route53resolver/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-s3/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sagemaker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-scheduler/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-secretsmanager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-securityhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-securitylake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-servicediscovery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ses/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sesv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sqs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-ssm/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sso/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sso-admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-stepfunctions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-sts/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-textract/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-timestream-write/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-transcribe/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-transfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-translate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-wafv2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mypy-boto3-workspaces/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── neptune/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── network-firewall/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── omics/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── opensearch/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── organizations/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── payment-cryptography/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── personalize/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── pinpoint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── polly/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── proton/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── qldb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ram/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── rds/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── redshift/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── rekognition/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── route-53/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── route53-recovery-control-config/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── s3-presigned-post/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3-request-presigner/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── s3transfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sagemaker/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── secrets-manager/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── service-catalog/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── service-quotas/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ses/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sfn/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── shield/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── smithy-client/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sns/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sqs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ssm/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sts/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── support/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── textract/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── timestream-query/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── timestream-write/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── transcribe/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── transfer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── translate/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── types/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-base64/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-dynamodb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── util-utf8/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── verifiedpermissions/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── wafv2/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── workspaces/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── xray/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── axios/
│   │   └── docs/
│   │       └── axios/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── azure/
│   │   └── docs/
│   │       ├── abort-controller/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-form-recognizer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-formrecognizer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-language-text/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-ml/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ai-text-analytics/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ai-textanalytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── app-configuration/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── appconfiguration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── arm-appservice/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-compute/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-containerservice/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-cosmosdb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-deviceprovisioningservices/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-keyvault/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-maps/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-monitor/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-network/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-resources/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-sql/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── arm-storage/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cognitiveservices-speech/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── common/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── communication-chat/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── communication-common/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── communication-email/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── communication-sms/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── container-registry/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── containerregistry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core-auth/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── core-rest-pipeline/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── core-util/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── cosmos/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── data-tables/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── digital-twins-core/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── digitaltwins-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── event-hubs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eventhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── eventhubs-checkpointstore-blob/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── identity/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-certificates/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-keys/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── keyvault-secrets/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── logger/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── maps-render/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── maps-route/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── maps-search/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-applicationinsights/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-authorization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cdn/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cognitiveservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-communication/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-compute/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-containerinstance/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-containerservice/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-cosmosdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datafactory/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datalake-analytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-datalake-store/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-devtestlabs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-dns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-eventgrid/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-eventhub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-frontdoor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-hdinsight/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-iothub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-keyvault/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-kusto/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-loganalytics/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-logic/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-machinelearningservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-managedservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-managementgroups/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-maps/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-marketplaceordering/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-media/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-monitor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-netapp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-network/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-notificationhubs/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-policyinsights/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-privatedns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-rdbms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-recoveryservices/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-recoveryservicesbackup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-relay/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resource/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resource-policy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-resourcegraph/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-search/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-security/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-servicebus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-servicefabric/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-signalr/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-sql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-sqlvirtualmachine/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-storage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-subscription/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-trafficmanager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mgmt-web/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitor-opentelemetry/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitor-query/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── notification-hubs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── search-documents/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-bus/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── servicebus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-blob/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-file-datalake/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-file-share/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage-queue/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── web-pubsub/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── babel/
│   │   └── docs/
│   │       ├── helper-environment-visitor/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-module-imports/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-plugin-utils/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-string-parser/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── helper-validator-identifier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-decorators/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-pipeline-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-proposal-record-and-tuple/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-class-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-dynamic-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-import-meta/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-jsx/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-optional-chaining/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-top-level-await/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-syntax-typescript/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-arrow-functions/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-async-to-generator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-block-scoping/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-class-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-classes/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-destructuring/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-dynamic-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-exponentiation-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-export-namespace-from/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-for-of/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-json-strings/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-logical-assignment-operators/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-modules-commonjs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-nullish-coalescing-operator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-numeric-separator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-object-rest-spread/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-optional-chaining/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-parameters/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-private-methods/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-regenerator/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-runtime/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-shorthand-properties/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-spread/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-template-literals/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── plugin-transform-typeof-symbol/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── plugin-transform-unicode-regex/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── backoff/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bandit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bcrypt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── beautifulsoup4/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bentoml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── billiard/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── binance/
│   │   └── docs/
│   │       └── trading/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── bitsandbytes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── black/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bokeh/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── bottle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── braintree/
│   │   └── docs/
│   │       └── gateway/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── build/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cachetools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cairosvg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── camelot-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cartopy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cassandra-driver/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── catboost/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cattrs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cbor2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── celery/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cerberus/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── certifi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cffi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cfgv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── chalk/
│   │   └── docs/
│   │       └── chalk/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── charset-normalizer/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── chokidar/
│   │   └── docs/
│   │       └── chokidar/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── chromadb/
│   │   └── docs/
│   │       ├── embeddings-db/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clearml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clerk/
│   │   └── docs/
│   │       └── auth/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── click/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── click-plugins/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── clickhouse-connect/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cloudflare/
│   │   └── docs/
│   │       ├── workers/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── workers-runtime/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── cloudpickle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cockroachdb/
│   │   └── docs/
│   │       └── distributed-db/
│   │           └── DOC.md
│   ├── cohere/
│   │   └── docs/
│   │       ├── llm/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── colorama/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── colorlog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── comet-ml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── commander/
│   │   └── docs/
│   │       └── commander/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── commitizen/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── confluent-kafka/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cookiecutter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── copier/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── crewai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── croniter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cryptography/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cssselect/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cypress/
│   │   └── docs/
│   │       └── cypress/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── cython/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── cytoolz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dagster/
│   │   └── docs/
│   │       ├── airbyte/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── aws/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dagit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dbt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── duckdb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── fivetran/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gcp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── graphql/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── k8s/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mlflow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pagerduty/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pandas/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── polars/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── postgres/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── spark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── wandb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── webserver/
│   │           └── python/
│   │               └── DOC.md
│   ├── dash/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dask/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── databases/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dataclasses-json/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datadog/
│   │   └── docs/
│   │       ├── monitoring/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datahub/
│   │   └── docs/
│   │       └── sdk/
│   │           └── python/
│   │               ├── DOC.md
│   │               └── references/
│   │                   ├── assertions.md
│   │                   ├── entities.md
│   │                   ├── lineage.md
│   │                   └── search.md
│   ├── datasets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── datashader/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dateparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dbt-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── debug/
│   │   └── docs/
│   │       └── debug/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── decorator/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── deepgram/
│   │   └── docs/
│   │       └── speech/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── deepl/
│   │   └── docs/
│   │       └── translation/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── deepseek/
│   │   └── docs/
│   │       └── llm/
│   │           └── DOC.md
│   ├── deepspeed/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── deprecated/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── detect-secrets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── diffusers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dill/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── directus/
│   │   └── docs/
│   │       └── headless-cms/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── dirty-equals/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── discord/
│   │   └── docs/
│   │       └── bot/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── diskcache/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── django/
│   │   └── docs/
│   │       ├── allauth/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── axes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cacheops/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-beat/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-results/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── channels/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── compressor/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cors-headers/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── countries/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── crispy-forms/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── csp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── debug-toolbar/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── environ/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── extensions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── filter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── guardian/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── haystack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── health-check/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── import-export/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── model-utils/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mptt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ninja/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── oauth-toolkit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── phonenumber-field/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── polymorphic/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── q2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-simplejwt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-spectacular/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-framework-yasg/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rest-knox/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── silk/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── simple-history/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storages/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── taggit/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── treebeard/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── waffle/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── webpack-loader/
│   │           └── python/
│   │               └── DOC.md
│   ├── dlt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docker/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docling/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── docutils/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dramatiq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── duckdb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dvc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── dynaconf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── edubase/
│   │   └── docs/
│   │       └── api/
│   │           ├── DOC.md
│   │           └── references/
│   │               ├── permissions.md
│   │               ├── question-types.md
│   │               ├── quiz-sets.md
│   │               ├── scoring.md
│   │               ├── tagging.md
│   │               ├── users.md
│   │               └── webhooks.md
│   ├── einops/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── elasticsearch/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── search/
│   │           └── DOC.md
│   ├── elevenlabs/
│   │   └── docs/
│   │       └── text-to-speech/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── email-validator/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── emotion/
│   │   └── docs/
│   │       └── react/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── esbuild/
│   │   └── docs/
│   │       └── esbuild/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── eslint/
│   │   └── docs/
│   │       ├── eslint/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-airbnb/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-next/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-prettier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-config-standard/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-import-resolver-typescript/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-deprecation/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-import/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-jest/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-jsx-a11y/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-n/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-prettier/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-promise/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-react/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-react-hooks/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-security/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-simple-import-sort/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-sonarjs/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-storybook/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-tailwindcss/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-testing-library/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-unicorn/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── eslint-plugin-unused-imports/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── eslint-plugin-vitest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── evaluate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── eventlet/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── evidently/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── exceptiongroup/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── express/
│   │   └── docs/
│   │       └── express/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── fabric/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── factory-boy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── faiss-cpu/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── faker/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── falcon/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fast-xml-parser/
│   │   └── docs/
│   │       └── fast-xml-parser/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── fastapi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-cache2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-limiter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-mail/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-pagination/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastapi-users/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fastmcp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── feast/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── feedparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── filelock/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fiona/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fire/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── firebase/
│   │   └── docs/
│   │       ├── admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── auth/
│   │           └── DOC.md
│   ├── flake8/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── flask/
│   │   └── docs/
│   │       ├── admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── babel/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── caching/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── celery-helper/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cors/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dance/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── jwt-extended/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── limiter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── login/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mail/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── marshmallow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── migrate/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── opentelemetry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── restful/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── restx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── security-too/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── smorest/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── socketio/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sqlalchemy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── testing/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── wtf/
│   │           └── python/
│   │               └── DOC.md
│   ├── flax/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── flit-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── folium/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fpdf2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── freezegun/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── frozenlist/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── fsspec/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gatsby/
│   │   └── docs/
│   │       └── gatsby/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── gemini/
│   │   └── docs/
│   │       ├── deep-research/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── genai/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── gensim/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── geopandas/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── geopy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gevent/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── github/
│   │   └── docs/
│   │       └── octokit/
│   │           └── DOC.md
│   ├── github3-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── glob/
│   │   └── docs/
│   │       └── glob/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── google/
│   │   └── docs/
│   │       ├── access-context-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── aiplatform/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── alloydb/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-gateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── api-python-client/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── appengine-admin/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── appengine-logging/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── artifact-registry/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── asset/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── assured-workloads/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── auth/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── auth-httplib2/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── automl/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── batch/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── beyondcorp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── beyondcorp-appconnections/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-connection/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-datatransfer/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-migration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-reservation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigquery-storage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bigtable/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── billing/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── binary-authorization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── build/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── certificate-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── channel/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── compute/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── config-connector/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── contact-center-insights/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── container/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── data-fusion/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datacatalog/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataflow/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataform/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataplex/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataproc/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dataproc-metastore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datastore/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── datastream/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── debug-agent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── deploy/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dialogflow/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── discoveryengine/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dlp/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dns/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── documentai/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── error-reporting/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── essential-contacts/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── eventarc/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── filestore/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── firestore/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── functions/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── generativeai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-backup/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-connect-gateway/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-hub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gke-multicloud/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gsuiteaddons/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iam/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iap/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── ids/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── iot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── kms/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── language/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── life-sciences/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── logging/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── managed-identities/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── media-translation/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── memcache/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── migrationcenter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── monitoring/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-connectivity/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-management/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-security/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── network-services/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── notebooks/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── optimization/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── orchestration-airflow/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── os-config/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── os-login/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── phishing-protection/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── policy-troubleshooter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── private-ca/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── private-catalog/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── profiler/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── public-ca/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── pubsub/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── rapidmigrationassessment/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recaptcha-enterprise/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recommendations-ai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── recommender/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resource-manager/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resource-settings/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── resumable-media/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── retail/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── run/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── scheduler/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── secret-manager/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── security-center/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── securitycenter/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-control/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-directory/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-management/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── service-usage/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── shell/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── source-context/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── spanner/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── speech/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── storage/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── talent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── tasks/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── tpu/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── trace/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── trace-agent/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── translate/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vertexai/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── video-intelligence/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── videointelligence/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vision/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vm-migration/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vmwareengine/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── vpc-access/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── webrisk/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── websecurityscanner/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── workflows/
│   │           └── python/
│   │               └── DOC.md
│   ├── googleapis-common-protos/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── got/
│   │   └── docs/
│   │       └── got/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── gql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gradio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── graphene/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── great-expectations/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── groq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── grpcio/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── status/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── tools/
│   │           └── python/
│   │               └── DOC.md
│   ├── guidance/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── gunicorn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── h11/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── h3/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hamilton/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hatch/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hatchling/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── haystack-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── holoviews/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── html5lib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httpcore/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httplib2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── httpx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hubspot/
│   │   └── docs/
│   │       └── crm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── huey/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── huggingface/
│   │   └── docs/
│   │       ├── hub/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── transformers/
│   │           └── DOC.md
│   ├── humanfriendly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── humanize/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hvplot/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hydra-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── hypothesis/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── identify/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── idna/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── imageio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── importlib-metadata/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── importlib-resources/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── influxdb-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── iniconfig/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── instructor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── intercom/
│   │   └── docs/
│   │       └── messaging/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── intercom-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── invoke/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ipykernel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ipywidgets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── isodate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── isort/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── itsdangerous/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jax/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jest/
│   │   └── docs/
│   │       └── jest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── jinja2/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jira/
│   │   └── docs/
│   │       └── issues/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── jiter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jmespath/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── joblib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jsonschema/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jsonschema-specifications/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyter-server/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyterhub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── jupyterlab/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kafka/
│   │   └── docs/
│   │       └── streaming/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── kedro/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── keras/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kombu/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kornia/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── kubernetes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lancedb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── landingai/
│   │   ├── docs/
│   │   │   └── ade/
│   │   │       ├── api/
│   │   │       │   └── DOC.md
│   │   │       ├── python/
│   │   │       │   └── DOC.md
│   │   │       └── typescript/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       └── ade/
│   │           ├── document-extraction/
│   │           │   ├── .env-sample
│   │           │   ├── .gitignore
│   │           │   ├── SKILL.md
│   │           │   └── references/
│   │           │       ├── chunk-types.md
│   │           │       ├── extraction-schemas.md
│   │           │       ├── file-formats.md
│   │           │       ├── troubleshooting.md
│   │           │       └── use-cases.md
│   │           └── document-workflows/
│   │               ├── SKILL.md
│   │               └── references/
│   │                   ├── batch-processing.md
│   │                   ├── database-integration.md
│   │                   ├── rag-pipelines.md
│   │                   ├── schema-catalog.md
│   │                   ├── table-stitching.md
│   │                   └── visualization.md
│   ├── langchain/
│   │   └── docs/
│   │       ├── community/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── openai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-community/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langchain-openai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langfuse/
│   │   └── docs/
│   │       └── observability/
│   │           └── python/
│   │               └── DOC.md
│   ├── langgraph/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langserve/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── langsmith/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── launchdarkly/
│   │   └── docs/
│   │       └── feature-flags/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── launchdarkly-server-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── librosa/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lightgbm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lightning/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── linear/
│   │   └── docs/
│   │       └── tracker/
│   │           └── DOC.md
│   ├── litellm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── litestar/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── livekit/
│   │   └── docs/
│   │       └── realtime/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── llama-index/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── localstack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── locust/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lodash/
│   │   └── docs/
│   │       └── lodash/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── loguru/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lru-cache/
│   │   └── docs/
│   │       └── lru-cache/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── luigi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── lxml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mage-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mailchimp/
│   │   └── docs/
│   │       └── marketing/
│   │           └── DOC.md
│   ├── mako/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── markupsafe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── marshmallow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── matplotlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── maturin/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mccabe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mcp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mediapipe/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── meilisearch/
│   │   └── docs/
│   │       └── search/
│   │           └── DOC.md
│   ├── mem0ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── metaflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── micromatch/
│   │   └── docs/
│   │       └── micromatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── microsoft/
│   │   └── docs/
│   │       └── onedrive/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── minimatch/
│   │   └── docs/
│   │       └── minimatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── mistralai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mkdirp/
│   │   └── docs/
│   │       └── mkdirp/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── mkdocs/
│   │   └── docs/
│   │       ├── material/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mlflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mocha/
│   │   └── docs/
│   │       └── mocha/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── modal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mongodb/
│   │   └── docs/
│   │       └── atlas/
│   │           └── DOC.md
│   ├── mongoengine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── more-itertools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── motor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── msal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── msgpack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mui/
│   │   └── docs/
│   │       └── material/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── multidict/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── multiprocess/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── mypy/
│   │   └── docs/
│   │       ├── extensions/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nanoid/
│   │   └── docs/
│   │       └── nanoid/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nbconvert/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nbdev/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nbformat/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── neo4j/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── neptune/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── networkx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── newrelic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── next/
│   │   └── docs/
│   │       └── next/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nicegui/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nltk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── node-fetch/
│   │   └── docs/
│   │       └── node-fetch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── nodeenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── notebook/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── notion/
│   │   └── docs/
│   │       └── workspace-api/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── nox/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── numba/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── numpy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── nuxt/
│   │   └── docs/
│   │       └── nuxt/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── oauthlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── okta/
│   │   └── docs/
│   │       └── identity/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── olakai/
│   │   ├── docs/
│   │   │   ├── cli/
│   │   │   │   └── javascript/
│   │   │   │       └── DOC.md
│   │   │   └── sdk/
│   │   │       ├── javascript/
│   │   │       │   └── DOC.md
│   │   │       └── python/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       ├── integrate/
│   │       │   └── SKILL.md
│   │       └── new-project/
│   │           └── SKILL.md
│   ├── omegaconf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── onnx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── onnxruntime/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── openai/
│   │   └── docs/
│   │       ├── chat/
│   │       │   ├── go/
│   │       │   │   └── DOC.md
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opencv-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── openpyxl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opensearch-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── opentelemetry/
│   │   └── docs/
│   │       ├── api/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── exporter-otlp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── exporter-prometheus/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-django/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-fastapi/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-flask/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── instrumentation-requests/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── sdk/
│   │           └── python/
│   │               └── DOC.md
│   ├── optuna/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── orjson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── packaging/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pandas/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pandera/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── panel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── papermill/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── paramiko/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── passlib/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── paypal/
│   │   └── docs/
│   │       └── checkout/
│   │           └── DOC.md
│   ├── pdf2image/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdfplumber/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdoc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pdpyras/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── peewee/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── peft/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pendulum/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── petl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── phidata/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── phonenumbers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── picocolors/
│   │   └── docs/
│   │       └── picocolors/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── picomatch/
│   │   └── docs/
│   │       └── picomatch/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── pika/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pillow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pinecone/
│   │   └── docs/
│   │       └── sdk/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── pinecone-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pip/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pip-tools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pipdeptree/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── plaid/
│   │   └── docs/
│   │       └── banking/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── platformdirs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── playwright/
│   │   └── docs/
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── playwright/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── playwright-community/
│   │   └── skills/
│   │       └── login-flows/
│   │           └── SKILL.md
│   ├── plotly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── plotnine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pluggy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── poetry/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── polars/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── polyfactory/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pony/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── postcss/
│   │   └── docs/
│   │       └── postcss/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── postgrest/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── posthog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── postmark/
│   │   └── docs/
│   │       └── transactional-email/
│   │           └── DOC.md
│   ├── pre-commit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── prefect/
│   │   └── docs/
│   │       ├── aws/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── azure/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── databricks/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── dbt/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── docker/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── email/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gcp/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── github/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── gitlab/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── kubernetes/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── shell/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── slack/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snowflake/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── sqlalchemy/
│   │           └── python/
│   │               └── DOC.md
│   ├── prettier/
│   │   └── docs/
│   │       └── prettier/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── prettytable/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── prisma/
│   │   └── docs/
│   │       └── orm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── prometheus-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── protobuf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psutil/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psycopg/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── psycopg2-binary/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pulumi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── puppeteer/
│   │   └── docs/
│   │       └── puppeteer/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── pyarrow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyasn1-modules/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pycodestyle/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pycparser/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic/
│   │   └── docs/
│   │       ├── ai/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── core/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── extra-types/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── settings/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic-ai/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydantic-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pydub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyflakes/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygal/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygithub/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pygments/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyjwt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pylint/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymemcache/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymongo/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymupdf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pymysql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pynacl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyo3-pack/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyparsing/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyproj/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyramid/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyright/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyspark/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest/
│   │   └── docs/
│   │       ├── asyncio/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── bdd/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── benchmark/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── cov/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── django/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── env/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── flask/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── html/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── httpx/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── lazy-fixture/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── mock/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── randomly/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── snapshot/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── sugar/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       ├── timeout/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── xdist/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-asyncio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-bdd/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-cov/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-django/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-env/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-flask/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-httpx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-mock/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-randomly/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-sugar/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-timeout/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytest-xdist/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-dateutil/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-docx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-dotenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-jose/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-json-logger/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-multipart/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-pptx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── python-slugify/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pytz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── pyyaml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── qdrant/
│   │   └── docs/
│   │       └── vector-search/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── qdrant-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rabbitmq/
│   │   └── docs/
│   │       └── message-queue/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── rasterio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ray/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── razorpay/
│   │   └── docs/
│   │       └── payments/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── react/
│   │   └── docs/
│   │       ├── react/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── react-dom/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── redis/
│   │   └── docs/
│   │       ├── key-value/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── redux/
│   │   └── docs/
│   │       ├── redux/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── toolkit/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── referencing/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── reflex/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── regex/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── replicate/
│   │   └── docs/
│   │       ├── model-hosting/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── reportlab/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── requests/
│   │   └── docs/
│   │       ├── oauthlib/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── resend/
│   │   └── docs/
│   │       └── email/
│   │           └── DOC.md
│   ├── resolve/
│   │   └── docs/
│   │       └── resolve/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── responses/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── respx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── retrying/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rich/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rimraf/
│   │   └── docs/
│   │       └── rimraf/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── rollup/
│   │   └── docs/
│   │       └── rollup/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── rpds-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── rsa/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ruff/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── s3fs/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── safetensors/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── safety/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── salesforce/
│   │   └── docs/
│   │       └── crm/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── salt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sanic/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── schedule/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scikit-learn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scipy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── scrapy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── seaborn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── selenium/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── semantic-kernel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── semver/
│   │   └── docs/
│   │       └── semver/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── sendgrid/
│   │   └── docs/
│   │       ├── email-api/
│   │       │   ├── javascript/
│   │       │   │   └── DOC.md
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sentence-transformers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sentry/
│   │   └── docs/
│   │       └── error-tracking/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── sentry-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── setuptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sgqlc/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── shapely/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── shopify/
│   │   └── docs/
│   │       └── storefront/
│   │           └── DOC.md
│   ├── shortuuid/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── simmer/
│   │   └── docs/
│   │       └── sdk/
│   │           └── python/
│   │               └── DOC.md
│   ├── simplejson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── singer-python/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── six/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── slack/
│   │   └── docs/
│   │       └── workspace/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── slack-sdk/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── slowapi/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── smart-open/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── smolagents/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sniffio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── snowflake/
│   │   └── docs/
│   │       ├── cortex-ai-functions/
│   │       │   └── DOC.md
│   │       ├── cortex-analyst/
│   │       │   └── DOC.md
│   │       ├── cortex-code/
│   │       │   ├── DOC.md
│   │       │   └── references/
│   │       │       ├── commands.md
│   │       │       ├── configuration.md
│   │       │       ├── mcp-and-agents.md
│   │       │       └── snowflake-tools.md
│   │       ├── cortex-code-snowsight/
│   │       │   └── DOC.md
│   │       ├── cortex-search/
│   │       │   └── DOC.md
│   │       ├── snowflake-notebooks/
│   │       │   └── DOC.md
│   │       └── snowpark-python/
│   │           └── DOC.md
│   ├── soda-core/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── solara/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sourceparts/
│   │   ├── docs/
│   │   │   └── parts-mcp/
│   │   │       └── python/
│   │   │           ├── DOC.md
│   │   │           └── references/
│   │   │               ├── tools.md
│   │   │               └── workflows.md
│   │   └── skills/
│   │       └── electronics-sourcing/
│   │           └── SKILL.md
│   ├── spacy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sphinx/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sphinx-rtd-theme/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── splitio-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqladmin/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlalchemy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlalchemy-utils/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlmodel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── sqlparse/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── square/
│   │   └── docs/
│   │       └── payments/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── starlette/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── statsmodels/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── strawberry-graphql/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── streamlit/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── stripe/
│   │   └── docs/
│   │       ├── api/
│   │       │   └── DOC.md
│   │       ├── package/
│   │       │   └── python/
│   │       │       └── DOC.md
│   │       └── payments/
│   │           └── DOC.md
│   ├── structlog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── styled-components/
│   │   └── docs/
│   │       └── styled-components/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── stytch/
│   │   └── docs/
│   │       └── auth/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── supabase/
│   │   └── docs/
│   │       ├── client/
│   │       │   └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── supervisor/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── svelte/
│   │   └── docs/
│   │       └── svelte/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── sympy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tabula-py/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tabulate/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tailwindcss/
│   │   └── docs/
│   │       └── tailwindcss/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── taskiq/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tavily/
│   │   ├── docs/
│   │   │   └── sdk/
│   │   │       ├── javascript/
│   │   │       │   └── DOC.md
│   │   │       └── python/
│   │   │           └── DOC.md
│   │   └── skills/
│   │       └── tavily-best-practices/
│   │           ├── SKILL.md
│   │           └── references/
│   │               ├── crawl.md
│   │               ├── extract.md
│   │               ├── integrations.md
│   │               ├── research.md
│   │               ├── sdk.md
│   │               └── search.md
│   ├── tenacity/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tensorflow/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── textual/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tiktoken/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── time-machine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── timm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── together/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tokenizers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── toml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tomli/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tomli-w/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── toolz/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torch/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchaudio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchmetrics/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── torchvision/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tornado/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tortoise-orm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tox/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── tqdm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── transformers/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── trio/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── trl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── turso/
│   │   └── docs/
│   │       └── libsql/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── twilio/
│   │   └── docs/
│   │       ├── messaging/
│   │       │   ├── python/
│   │       │   │   └── DOC.md
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── twine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── twisted/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── typer/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-pyyaml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-requests/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── types-setuptools/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── typescript/
│   │   └── docs/
│   │       ├── async/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── aws-lambda/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── axios/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-core/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-generator/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-template/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── babel-traverse/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bcrypt/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bcryptjs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── bluebird/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── body-parser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── chai/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── chalk/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cheerio/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── classnames/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── clean-css/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color-convert/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── color-name/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── commander/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── compression/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── connect/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cookie-parser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cors/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cross-spawn/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── crypto-js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── cssnano/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── d3/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── debug/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ejs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── electron/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── eslint/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── estree/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── exceljs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── express/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── express-session/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── fs-extra/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── geojson/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── glob/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── got/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── graphql/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── handlebars/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── hapi-hapi/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── helmet/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── highlight.js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── html-minifier-terser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── http-errors/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── inquirer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jest/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jimp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jsdom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── jsonwebtoken/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── koa/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── leaflet/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── less/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.clonedeep/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.debounce/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.flatten/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.isequal/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.merge/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.omit/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.pick/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── lodash.throttle/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── luxon/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mapbox-gl/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── marked/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── minimatch/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mkdirp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mocha/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mongodb/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mongoose/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── morgan/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ms/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── multer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── mysql/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── node/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── node-fetch/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── nodemailer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── nunjucks/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── papaparse/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── passport/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pdfkit/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pg/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prettier/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prismjs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── prop-types/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── pug/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── puppeteer/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── qs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-beautiful-dnd/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-color/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-datepicker/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-dom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-modal/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-redux/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-router/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-router-dom/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-select/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-transition-group/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── react-virtualized/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── redis/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── request/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── restify/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── rimraf/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sass/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── selenium-webdriver/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── semver/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── serve-static/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sharp/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── shelljs/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── sinon/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── socket.io/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── stylus/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── superagent/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── supertest/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── tar/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── terser/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── three/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── topojson-specification/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── tslib/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── typescript/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── unzipper/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── uuid/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack-env/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── webpack-sources/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── ws/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       ├── xml2js/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── yargs/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── typescript-eslint/
│   │   └── docs/
│   │       ├── eslint-plugin/
│   │       │   └── typescript/
│   │       │       └── DOC.md
│   │       └── parser/
│   │           └── typescript/
│   │               └── DOC.md
│   ├── typing-extensions/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ujson/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── ultralytics/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── undici/
│   │   └── docs/
│   │       └── undici/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── unsloth/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── urllib3/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uuid/
│   │   └── docs/
│   │       └── uuid/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── uv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uvicorn/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── uvloop/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vcrpy/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vercel/
│   │   └── docs/
│   │       └── platform/
│   │           └── DOC.md
│   ├── vine/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── virtualenv/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vite/
│   │   └── docs/
│   │       └── vite/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── vitest/
│   │   └── docs/
│   │       └── vitest/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── vllm/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── voila/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── vue/
│   │   └── docs/
│   │       └── vue/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── wand/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wandb/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── watchdog/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── weasyprint/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── weaviate/
│   │   └── docs/
│   │       └── vector-db/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── weaviate-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── webpack/
│   │   └── docs/
│   │       ├── compression-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── copy-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── css-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── dotenv-webpack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── file-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── fork-ts-checker-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── html-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── less-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── mini-css-extract-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── postcss-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── raw-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── sass-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── source-map-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── style-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── terser-webpack-plugin/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── ts-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── url-loader/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-bundle-analyzer/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-cli/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-dev-middleware/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-dev-server/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       ├── webpack-merge/
│   │       │   └── javascript/
│   │       │       └── DOC.md
│   │       └── workbox-webpack-plugin/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── websocket-client/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── websockets/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── werkzeug/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wheel/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── whitenoise/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── wrapt/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xarray/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xgboost/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── xlsxwriter/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── yapf/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── yargs/
│   │   └── docs/
│   │       └── yargs/
│   │           └── javascript/
│   │               └── DOC.md
│   ├── yarl/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── zendesk/
│   │   └── docs/
│   │       └── support/
│   │           ├── javascript/
│   │           │   └── DOC.md
│   │           └── python/
│   │               └── DOC.md
│   ├── zenml/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   ├── zipp/
│   │   └── docs/
│   │       └── package/
│   │           └── python/
│   │               └── DOC.md
│   └── zustand/
│       └── docs/
│           └── zustand/
│               └── javascript/
│                   └── DOC.md
├── docs/
│   ├── byod-guide.md
│   ├── cli-reference.md
│   ├── content-guide.md
│   ├── design.md
│   ├── features/
│   │   ├── agent-annotations.md
│   │   └── search-ranking.md
│   ├── feedback-and-annotations.md
│   └── private-content.md
├── llms.txt
└── package.json
Download .txt
SYMBOL INDEX (168 symbols across 34 files)

FILE: cli/src/commands/annotate.js
  function registerAnnotateCommand (line 5) | function registerAnnotateCommand(program) {

FILE: cli/src/commands/build.js
  function toPosix (line 13) | function toPosix(p) {
  function findEntryFiles (line 20) | function findEntryFiles(dir, base = dir) {
  function listDirFiles (line 36) | function listDirFiles(dir) {
  function dirSize (line 52) | function dirSize(dir) {
  function discoverAuthor (line 68) | function discoverAuthor(authorDir, authorName, contentDir) {
  function registerBuildCommand (line 191) | function registerBuildCommand(program) {

FILE: cli/src/commands/cache.js
  function registerCacheCommand (line 5) | function registerCacheCommand(program) {

FILE: cli/src/commands/feedback.js
  constant VALID_LABELS (line 13) | const VALID_LABELS = [
  function collect (line 19) | function collect(val, acc) {
  function registerFeedbackCommand (line 24) | function registerFeedbackCommand(program) {

FILE: cli/src/commands/get.js
  function fetchEntries (line 13) | async function fetchEntries(ids, opts, globalOpts) {
  function registerGetCommand (line 201) | function registerGetCommand(program) {

FILE: cli/src/commands/search.js
  function formatEntryList (line 7) | function formatEntryList(entries) {
  function formatEntryDetail (line 25) | function formatEntryDetail(entry) {
  function registerSearchCommand (line 50) | function registerSearchCommand(program) {

FILE: cli/src/commands/update.js
  function registerUpdateCommand (line 6) | function registerUpdateCommand(program) {

FILE: cli/src/index.js
  function printUsage (line 22) | function printUsage() {
  constant SKIP_REGISTRY (line 106) | const SKIP_REGISTRY = ['update', 'cache', 'build', 'feedback', 'annotate...

FILE: cli/src/lib/analytics.js
  constant POSTHOG_KEY (line 14) | const POSTHOG_KEY = 'phc_tO9mXIgcCuBccfN2Ut0quf6UFsd06u3Y6g1kqMaYdQX';
  constant POSTHOG_HOST (line 15) | const POSTHOG_HOST = 'https://us.i.posthog.com';
  function getClient (line 24) | async function getClient() {
  function trackEvent (line 54) | async function trackEvent(event, properties = {}) {
  function setCliVersion (line 85) | function setCliVersion(version) {
  function shutdownAnalytics (line 93) | async function shutdownAnalytics() {

FILE: cli/src/lib/annotations.js
  function getAnnotationsDir (line 5) | function getAnnotationsDir() {
  function annotationPath (line 9) | function annotationPath(entryId) {
  function readAnnotation (line 14) | function readAnnotation(entryId) {
  function writeAnnotation (line 22) | function writeAnnotation(entryId, note) {
  function clearAnnotation (line 34) | function clearAnnotation(entryId) {
  function listAnnotations (line 43) | function listAnnotations() {

FILE: cli/src/lib/bm25.js
  constant STOP_WORDS (line 7) | const STOP_WORDS = new Set([
  constant DEFAULT_K1 (line 18) | const DEFAULT_K1 = 1.5;
  constant DEFAULT_B (line 19) | const DEFAULT_B = 0.75;
  constant FIELD_WEIGHTS (line 22) | const FIELD_WEIGHTS = {
  function getDefaultParams (line 29) | function getDefaultParams() {
  function isSearchableToken (line 33) | function isSearchableToken(token) {
  function compactIdentifier (line 37) | function compactIdentifier(text) {
  function splitAlphaNumeric (line 43) | function splitAlphaNumeric(text) {
  function tokenize (line 53) | function tokenize(text) {
  function tokenizeIdentifier (line 66) | function tokenizeIdentifier(text) {
  function buildInvertedIndex (line 98) | function buildInvertedIndex(documents) {
  function buildIndexFromDocuments (line 118) | function buildIndexFromDocuments(documents, params = getDefaultParams()) {
  function buildIndex (line 170) | function buildIndex(entries) {
  function scoreField (line 195) | function scoreField(queryTerms, fieldTokens, idf, avgFieldLen, k1, b) {
  function getCandidateDocIndexes (line 220) | function getCandidateDocIndexes(queryTerms, index) {
  function runSearch (line 237) | function runSearch(query, index, opts = {}) {
  function search (line 297) | function search(query, index, opts = {}) {
  function searchWithStats (line 301) | function searchWithStats(query, index, opts = {}) {

FILE: cli/src/lib/cache.js
  function getBundledDir (line 14) | function getBundledDir() {
  function getSourceDir (line 18) | function getSourceDir(sourceName) {
  function getSourceDataDir (line 22) | function getSourceDataDir(sourceName) {
  function getSourceMetaPath (line 26) | function getSourceMetaPath(sourceName) {
  function getSourceRegistryPath (line 30) | function getSourceRegistryPath(sourceName) {
  function getSourceSearchIndexPath (line 34) | function getSourceSearchIndexPath(sourceName) {
  function readMeta (line 38) | function readMeta(sourceName) {
  function writeMeta (line 46) | function writeMeta(sourceName, meta) {
  function isSourceCacheFresh (line 52) | function isSourceCacheFresh(sourceName) {
  function isTimestampFresh (line 60) | function isTimestampFresh(timestamp) {
  function hasFreshSearchIndexState (line 67) | function hasFreshSearchIndexState(sourceName) {
  function shouldFetchRemoteRegistry (line 76) | function shouldFetchRemoteRegistry(sourceName, force = false) {
  function fetchRemoteText (line 85) | async function fetchRemoteText(url) {
  function fetchRemoteRegistry (line 102) | async function fetchRemoteRegistry(source, force = false) {
  function fetchAllRegistries (line 152) | async function fetchAllRegistries(force = false) {
  function fetchFullBundle (line 171) | async function fetchFullBundle(sourceName) {
  function fetchDoc (line 224) | async function fetchDoc(source, docPath) {
  function fetchDocFull (line 274) | async function fetchDocFull(source, basePath, files) {
  function loadSourceRegistry (line 287) | function loadSourceRegistry(source) {
  function loadSearchIndex (line 304) | function loadSearchIndex(source) {
  function getCacheStats (line 318) | function getCacheStats() {
  function clearCache (line 366) | function clearCache() {
  function ensureRegistry (line 385) | async function ensureRegistry() {

FILE: cli/src/lib/config.js
  constant DEFAULT_CDN_URL (line 6) | const DEFAULT_CDN_URL = 'https://cdn.aichub.org/v1';
  constant DEFAULT_TELEMETRY_URL (line 7) | const DEFAULT_TELEMETRY_URL = 'https://api.aichub.org/v1';
  constant DEFAULTS (line 9) | const DEFAULTS = {
  function getChubDir (line 21) | function getChubDir() {
  function loadConfig (line 25) | function loadConfig() {

FILE: cli/src/lib/frontmatter.js
  function parseFrontmatter (line 7) | function parseFrontmatter(content) {

FILE: cli/src/lib/identity.js
  function getMachineUUID (line 13) | function getMachineUUID() {
  function getOrCreateClientId (line 49) | async function getOrCreateClientId() {
  function isFirstRun (line 87) | function isFirstRun() {
  function detectAgent (line 94) | function detectAgent() {
  function detectAgentVersion (line 108) | function detectAgentVersion() {

FILE: cli/src/lib/normalize.js
  constant ALIASES (line 1) | const ALIASES = {
  constant DISPLAY (line 9) | const DISPLAY = {
  function normalizeLanguage (line 17) | function normalizeLanguage(lang) {
  function displayLanguage (line 23) | function displayLanguage(lang) {

FILE: cli/src/lib/output.js
  function output (line 8) | function output(data, humanFormatter, opts) {
  function info (line 19) | function info(msg) {
  function error (line 26) | function error(msg, opts) {

FILE: cli/src/lib/registry.js
  function getSearchLookupId (line 9) | function getSearchLookupId(sourceName, entryId) {
  function normalizeQuery (line 13) | function normalizeQuery(query) {
  function splitCompactSegments (line 19) | function splitCompactSegments(text) {
  function levenshteinDistance (line 26) | function levenshteinDistance(a, b, maxDistance = Infinity) {
  function scoreCompactCandidate (line 56) | function scoreCompactCandidate(queryCompact, candidateCompact, weights) {
  function scoreEntryLexicalVariant (line 82) | function scoreEntryLexicalVariant(entry, queryCompact) {
  function scoreEntryLexicalBoost (line 142) | function scoreEntryLexicalBoost(entry, normalizedQuery, rescueTerms = []) {
  function getMissingQueryTerms (line 155) | function getMissingQueryTerms(normalizedQuery) {
  function shouldRunGlobalLexicalScan (line 163) | function shouldRunGlobalLexicalScan(normalizedQuery, resultByKey) {
  function namespaceSearchIndex (line 180) | function namespaceSearchIndex(index, sourceName) {
  function getMerged (line 194) | function getMerged() {
  function getAllEntries (line 257) | function getAllEntries() {
  function applySourceFilter (line 269) | function applySourceFilter(entries) {
  function applyFilters (line 278) | function applyFilters(entries, filters) {
  function getEntriesById (line 300) | function getEntriesById(id, entries) {
  function isMultiSource (line 307) | function isMultiSource() {
  function getDisplayId (line 315) | function getDisplayId(entry) {
  function searchEntries (line 327) | function searchEntries(query, filters = {}) {
  function getEntry (line 425) | function getEntry(idOrNamespacedId, type = null) {
  function listEntries (line 458) | function listEntries(filters = {}) {
  function resolveDocPath (line 478) | function resolveDocPath(entry, language, version) {
  function resolveEntryFile (line 530) | function resolveEntryFile(resolved, type) {

FILE: cli/src/lib/telemetry.js
  constant DEFAULT_TELEMETRY_URL (line 3) | const DEFAULT_TELEMETRY_URL = 'https://api.aichub.org/v1';
  function isTelemetryEnabled (line 5) | function isTelemetryEnabled() {
  function isFeedbackEnabled (line 11) | function isFeedbackEnabled() {
  function getTelemetryUrl (line 17) | function getTelemetryUrl() {
  function sendFeedback (line 41) | async function sendFeedback(entryId, entryType, rating, opts = {}) {

FILE: cli/src/lib/welcome.js
  constant WELCOME_MARKER (line 6) | const WELCOME_MARKER = '.welcome_shown';
  function showWelcomeIfNeeded (line 12) | function showWelcomeIfNeeded(opts = {}) {

FILE: cli/src/mcp/stdio-lifecycle.js
  function attachStdioShutdownHandlers (line 5) | function attachStdioShutdownHandlers({

FILE: cli/src/mcp/tools.js
  function getCliVersion (line 17) | function getCliVersion() {
  function textResult (line 31) | function textResult(data) {
  function errorResult (line 37) | function errorResult(message, details = {}) {
  function simplifyEntry (line 47) | function simplifyEntry(entry) {
  function handleSearch (line 63) | async function handleSearch({ query, tags, lang, limit = 20 }) {
  function handleGet (line 97) | async function handleGet({ id, lang, version, full = false, file }) {
  function handleList (line 195) | async function handleList({ tags, lang, limit = 50 }) {
  function handleAnnotate (line 209) | async function handleAnnotate({ id, note, clear = false, list = false }) {
  function handleFeedback (line 252) | async function handleFeedback({ id, rating, comment, type, lang, version...

FILE: cli/test/e2e.test.js
  constant CLI (line 9) | const CLI = join(__dirname, '..', 'bin', 'chub');
  constant FIXTURES (line 10) | const FIXTURES = join(__dirname, 'fixtures');
  constant BUILD_OUTPUT (line 11) | const BUILD_OUTPUT = join(FIXTURES, 'dist');
  constant CLI_TEST_TIMEOUT (line 12) | const CLI_TEST_TIMEOUT = 15000;
  constant TEST_ENV (line 13) | const TEST_ENV = { ...process.env, NO_COLOR: '1', CHUB_TELEMETRY: '0', C...
  function chub (line 19) | function chub(args, { expectError = false } = {}) {
  function chubJSON (line 33) | function chubJSON(args) {

FILE: cli/tests/commands/build.test.js
  constant CLI_BIN (line 7) | const CLI_BIN = join(import.meta.dirname, '..', '..', 'bin', 'chub');
  constant FIXTURES (line 8) | const FIXTURES = join(import.meta.dirname, '..', '..', 'test', 'fixtures');
  constant BUILD_TEST_TIMEOUT (line 9) | const BUILD_TEST_TIMEOUT = 15000;
  constant TEST_ENV (line 11) | const TEST_ENV = { ...process.env, CHUB_TELEMETRY: '0', CHUB_FEEDBACK: '...

FILE: cli/tests/commands/get.test.js
  function parseResult (line 25) | function parseResult(result) {

FILE: cli/tests/commands/go-lang.test.js
  constant REPO_ROOT (line 20) | const REPO_ROOT = join(import.meta.dirname, '..', '..', '..');
  constant CLI_BIN (line 21) | const CLI_BIN = join(import.meta.dirname, '..', '..', 'bin', 'chub');
  constant FIXTURES (line 22) | const FIXTURES = join(import.meta.dirname, '..', '..', 'test', 'fixtures');
  constant GO_DOC_PATH (line 23) | const GO_DOC_PATH = join(REPO_ROOT, 'content', 'openai', 'docs', 'chat',...
  constant GO_FIXTURE_PATH (line 24) | const GO_FIXTURE_PATH = join(FIXTURES, 'multilang', 'docs', 'client', 'g...
  constant BUILD_TEST_TIMEOUT (line 25) | const BUILD_TEST_TIMEOUT = 15000;
  constant TEST_ENV (line 27) | const TEST_ENV = { ...process.env, CHUB_TELEMETRY: '0', CHUB_FEEDBACK: '...

FILE: cli/tests/commands/search.test.js
  function runSearch (line 34) | async function runSearch(args = [], globalArgs = []) {

FILE: cli/tests/lib/analytics.test.js
  method constructor (line 44) | constructor() {}
  method capture (line 45) | capture(event) { capturedEvents.push(event); }
  method flush (line 46) | async flush() {}
  method shutdown (line 47) | async shutdown() {}
  method constructor (line 67) | constructor() {}
  method capture (line 68) | capture(event) { capturedEvents.push(event); }
  method flush (line 69) | async flush() {}
  method shutdown (line 70) | async shutdown() {}

FILE: cli/tests/lib/cache.test.js
  constant BUNDLED_DIR (line 6) | const BUNDLED_DIR = join(import.meta.dirname, '..', '..', 'dist');
  function restoreBundledDir (line 11) | function restoreBundledDir() {

FILE: cli/tests/lib/registry.multisource.test.js
  constant ORIGINAL_CHUB_DIR (line 7) | const ORIGINAL_CHUB_DIR = process.env.CHUB_DIR;
  function writeSource (line 10) | function writeSource(root, quality, description, tags = []) {
  function loadRegistryWithSources (line 57) | async function loadRegistryWithSources(sourceRoots) {

FILE: cli/tests/lib/registry.search-behavior.test.js
  constant ORIGINAL_CHUB_DIR (line 7) | const ORIGINAL_CHUB_DIR = process.env.CHUB_DIR;
  function writeSource (line 10) | function writeSource(root, docs) {
  function loadRegistry (line 31) | async function loadRegistry(docs) {

FILE: cli/tests/lib/welcome.test.js
  constant TEST_DIR (line 6) | const TEST_DIR = join('/tmp', 'test-chub');

FILE: cli/tests/mcp/stdio-lifecycle.test.js
  function makeStream (line 5) | function makeStream() {

FILE: cli/tests/mcp/tools.test.js
  function parseResult (line 31) | function parseResult(result) {
Copy disabled (too large) Download .json
Condensed preview — 1784 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,071K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 388,
    "preview": "---\nname: Bug Report\nabout: Report a bug in Context Hub CLI\nlabels: bug\n---\n\n## Description\n\nA clear description of the "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 382,
    "preview": "---\nname: Feature Request\nabout: Suggest a new feature or improvement\nlabels: enhancement\n---\n\n## Problem\n\nWhat problem "
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 270,
    "preview": "## What\n\nBrief description of the change.\n\n## Why\n\nWhat problem does this solve?\n\n## Testing\n\n- [ ] `npm test` passes\n- "
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 529,
    "preview": "name: CI\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  test:\n    runs-on: ubuntu-lates"
  },
  {
    "path": ".github/workflows/deploy-content.yml",
    "chars": 1455,
    "preview": "name: Deploy Content to CDN\n\non:\n  push:\n    branches: [main]\n    paths:\n      - 'content/**'\n\n  # Allow manual trigger\n"
  },
  {
    "path": ".github/workflows/publish.yml",
    "chars": 511,
    "preview": "name: Publish to npm\n\non:\n  release:\n    types: [created]\n\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    permissions:\n"
  },
  {
    "path": ".gitignore",
    "chars": 71,
    "preview": "node_modules/\n.DS_Store\ndist/\n*.log\n.env\n.env.*\ncoverage/\n.chub/\n*.tgz\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 2051,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3307,
    "preview": "# Contributing to Context Hub\n\nThank you for your interest in contributing to Context Hub! This guide covers both code c"
  },
  {
    "path": "LICENSE",
    "chars": 1081,
    "preview": "MIT License\n\nCopyright (c) 2026 Context Hub Contributors\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "README.md",
    "chars": 4782,
    "preview": "# Context Hub\n\nCoding agents hallucinate APIs and forget what they learn in a session. Context Hub gives them curated, v"
  },
  {
    "path": "SECURITY.md",
    "chars": 890,
    "preview": "# Security Policy\n\n## Reporting a Vulnerability\n\nIf you discover a security vulnerability, please report it by [opening "
  },
  {
    "path": "cli/.npmignore",
    "chars": 37,
    "preview": "tests/\n*.test.js\ncoverage/\n.DS_Store\n"
  },
  {
    "path": "cli/README.md",
    "chars": 1488,
    "preview": "# Context Hub CLI\n\nInstall the CLI and give your AI agent access to curated, versioned documentation.\n\n## Install\n\n```ba"
  },
  {
    "path": "cli/bin/chub",
    "chars": 46,
    "preview": "#!/usr/bin/env node\nimport '../src/index.js';\n"
  },
  {
    "path": "cli/bin/chub-mcp",
    "chars": 51,
    "preview": "#!/usr/bin/env node\nimport '../src/mcp/server.js';\n"
  },
  {
    "path": "cli/package.json",
    "chars": 1219,
    "preview": "{\n  \"name\": \"@aisuite/chub\",\n  \"version\": \"0.1.3\",\n  \"description\": \"CLI for Context Hub - search and retrieve LLM-optim"
  },
  {
    "path": "cli/skills/get-api-docs/SKILL.md",
    "chars": 3315,
    "preview": "---\nname: get-api-docs\ndescription: >\n  Use this skill when you need documentation for a third-party library, SDK, or AP"
  },
  {
    "path": "cli/src/commands/annotate.js",
    "chars": 2419,
    "preview": "import chalk from 'chalk';\nimport { readAnnotation, writeAnnotation, clearAnnotation, listAnnotations } from '../lib/ann"
  },
  {
    "path": "cli/src/commands/build.js",
    "chars": 11175,
    "preview": "import { existsSync, readFileSync, readdirSync, statSync, writeFileSync, mkdirSync, cpSync } from 'node:fs';\nimport { jo"
  },
  {
    "path": "cli/src/commands/cache.js",
    "chars": 1802,
    "preview": "import chalk from 'chalk';\nimport { getCacheStats, clearCache } from '../lib/cache.js';\nimport { output } from '../lib/o"
  },
  {
    "path": "cli/src/commands/feedback.js",
    "chars": 5933,
    "preview": "import chalk from 'chalk';\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { di"
  },
  {
    "path": "cli/src/commands/get.js",
    "chars": 9090,
    "preview": "import { writeFileSync, mkdirSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport chalk from 'chalk'"
  },
  {
    "path": "cli/src/commands/search.js",
    "chars": 4857,
    "preview": "import chalk from 'chalk';\nimport { searchEntries, listEntries, getEntry, getDisplayId, isMultiSource } from '../lib/reg"
  },
  {
    "path": "cli/src/commands/update.js",
    "chars": 2019,
    "preview": "import chalk from 'chalk';\nimport { fetchAllRegistries, fetchFullBundle } from '../lib/cache.js';\nimport { loadConfig } "
  },
  {
    "path": "cli/src/index.js",
    "chars": 6972,
    "preview": "import chalk from 'chalk';\nimport { Command } from 'commander';\nimport { readFileSync } from 'node:fs';\nimport { fileURL"
  },
  {
    "path": "cli/src/lib/analytics.js",
    "chars": 2659,
    "preview": "/**\n * PostHog Cloud analytics for general CLI usage tracking.\n *\n * Tracks: command usage, search patterns, doc/skill p"
  },
  {
    "path": "cli/src/lib/annotations.js",
    "chars": 1344,
    "preview": "import { readFileSync, writeFileSync, mkdirSync, unlinkSync, readdirSync } from 'node:fs';\nimport { join } from 'node:pa"
  },
  {
    "path": "cli/src/lib/bm25.js",
    "chars": 8256,
    "preview": "/**\n * BM25 search implementation for Context Hub.\n * Index is built at `chub build` time, scoring happens at search tim"
  },
  {
    "path": "cli/src/lib/cache.js",
    "chars": 12707,
    "preview": "import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync, readdirSync, statSync } from 'node:fs';\nimport { jo"
  },
  {
    "path": "cli/src/lib/config.js",
    "chars": 1812,
    "preview": "import { readFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport { pa"
  },
  {
    "path": "cli/src/lib/frontmatter.js",
    "chars": 436,
    "preview": "import { parse as parseYaml } from 'yaml';\n\n/**\n * Parse YAML frontmatter from markdown content.\n * Returns { attributes"
  },
  {
    "path": "cli/src/lib/identity.js",
    "chars": 3203,
    "preview": "import { createHash } from 'node:crypto';\nimport { execSync } from 'node:child_process';\nimport { platform } from 'node:"
  },
  {
    "path": "cli/src/lib/normalize.js",
    "chars": 431,
    "preview": "const ALIASES = {\n  js: 'javascript',\n  ts: 'typescript',\n  py: 'python',\n  rb: 'ruby',\n  cs: 'csharp',\n};\n\nconst DISPLA"
  },
  {
    "path": "cli/src/lib/output.js",
    "chars": 796,
    "preview": "/**\n * Dual-mode output: human-friendly (default) or JSON (--json flag).\n *\n * Every command calls `output(data, humanFo"
  },
  {
    "path": "cli/src/lib/registry.js",
    "chars": 16388,
    "preview": "import { loadSourceRegistry, loadSearchIndex } from './cache.js';\nimport { loadConfig } from './config.js';\nimport { nor"
  },
  {
    "path": "cli/src/lib/telemetry.js",
    "chars": 3128,
    "preview": "import { loadConfig } from './config.js';\n\nconst DEFAULT_TELEMETRY_URL = 'https://api.aichub.org/v1';\n\nexport function i"
  },
  {
    "path": "cli/src/lib/welcome.js",
    "chars": 1551,
    "preview": "import { existsSync, writeFileSync, mkdirSync } from 'node:fs';\nimport { join } from 'node:path';\nimport chalk from 'cha"
  },
  {
    "path": "cli/src/mcp/server.js",
    "chars": 7119,
    "preview": "/**\n * Context Hub MCP Server.\n *\n * Exposes chub search, get, list, annotate, and feedback as MCP tools\n * for use with"
  },
  {
    "path": "cli/src/mcp/stdio-lifecycle.js",
    "chars": 1443,
    "preview": "/**\n * Attach stdio lifecycle guards so chub-mcp exits cleanly when the parent\n * MCP host goes away (EOF / closed pipe)"
  },
  {
    "path": "cli/src/mcp/tools.js",
    "chars": 8825,
    "preview": "/**\n * MCP tool handler implementations.\n * Each handler wraps existing lib/ functions and returns MCP-compatible result"
  },
  {
    "path": "cli/test/e2e.test.js",
    "chars": 13168,
    "preview": "import { describe, it, expect, beforeAll, afterAll } from 'vitest';\nimport { execFileSync, spawnSync } from 'node:child_"
  },
  {
    "path": "cli/test/fixtures/acme/docs/versioned-api/v1/DOC.md",
    "chars": 366,
    "preview": "---\nname: versioned-api\ndescription: \"A test API with multiple versions\"\nmetadata:\n  languages: \"javascript\"\n  versions:"
  },
  {
    "path": "cli/test/fixtures/acme/docs/versioned-api/v2/DOC.md",
    "chars": 366,
    "preview": "---\nname: versioned-api\ndescription: \"A test API with multiple versions\"\nmetadata:\n  languages: \"javascript\"\n  versions:"
  },
  {
    "path": "cli/test/fixtures/acme/docs/widgets/DOC.md",
    "chars": 596,
    "preview": "---\nname: widgets\ndescription: \"Acme widget API for creating and managing widgets\"\nmetadata:\n  languages: \"javascript\"\n "
  },
  {
    "path": "cli/test/fixtures/acme/docs/widgets/references/advanced.md",
    "chars": 313,
    "preview": "# Advanced Widget Usage\n\n## Batch Operations\n\n```javascript\nconst widgets = await client.widgets.createMany([\n  { name: "
  },
  {
    "path": "cli/test/fixtures/multilang/docs/client/go/DOC.md",
    "chars": 298,
    "preview": "---\nname: client\ndescription: \"Multilang client SDK\"\nmetadata:\n  languages: \"go\"\n  versions: \"1.0.0\"\n  updated-on: \"2026"
  },
  {
    "path": "cli/test/fixtures/multilang/docs/client/javascript/DOC.md",
    "chars": 325,
    "preview": "---\nname: client\ndescription: \"Multilang client SDK\"\nmetadata:\n  languages: \"javascript\"\n  versions: \"1.0.0\"\n  updated-o"
  },
  {
    "path": "cli/test/fixtures/multilang/docs/client/python/DOC.md",
    "chars": 291,
    "preview": "---\nname: client\ndescription: \"Multilang client SDK\"\nmetadata:\n  languages: \"python\"\n  versions: \"1.0.0\"\n  updated-on: \""
  },
  {
    "path": "cli/test/fixtures/testskills/skills/deploy/SKILL.md",
    "chars": 296,
    "preview": "---\nname: deploy\ndescription: \"Deployment automation skill for CI/CD pipelines\"\nmetadata:\n  updated-on: \"2026-01-01\"\n  s"
  },
  {
    "path": "cli/test/lib/bm25.test.js",
    "chars": 8301,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { tokenize, buildIndex, search } from '../../src/lib/bm25.js';\n\nde"
  },
  {
    "path": "cli/test/lib/frontmatter.test.js",
    "chars": 1505,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { parseFrontmatter } from '../../src/lib/frontmatter.js';\n\ndescrib"
  },
  {
    "path": "cli/test/lib/normalize.test.js",
    "chars": 1688,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { normalizeLanguage, displayLanguage } from '../../src/lib/normali"
  },
  {
    "path": "cli/tests/commands/build.test.js",
    "chars": 2713,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { execFileSync } from 'node:child_process';\nimport { mkdtempSync, "
  },
  {
    "path": "cli/tests/commands/get.test.js",
    "chars": 4361,
    "preview": "import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';\n\n// Mock analytics module — must be before any"
  },
  {
    "path": "cli/tests/commands/go-lang.test.js",
    "chars": 10886,
    "preview": "/**\n * Tests for `--lang go` support in context-hub.\n *\n * Covers:\n *  1. content/openai/docs/chat/go/DOC.md — frontmatt"
  },
  {
    "path": "cli/tests/commands/search.test.js",
    "chars": 10317,
    "preview": "import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';\nimport { Command } from 'commander';\n\n// Mock "
  },
  {
    "path": "cli/tests/lib/analytics.test.js",
    "chars": 4480,
    "preview": "import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';\nimport { mkdtempSync, rmSync } from 'node:fs';"
  },
  {
    "path": "cli/tests/lib/bm25.test.js",
    "chars": 2961,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { buildIndex, searchWithStats } from '../../src/lib/bm25.js';\n\ndes"
  },
  {
    "path": "cli/tests/lib/cache.test.js",
    "chars": 9531,
    "preview": "import { afterEach, describe, expect, it, vi } from 'vitest';\nimport { existsSync, mkdtempSync, mkdirSync, readFileSync,"
  },
  {
    "path": "cli/tests/lib/config.test.js",
    "chars": 1610,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { getChubDir, loadConfig } from '../../src/lib/config.js';\nimport "
  },
  {
    "path": "cli/tests/lib/frontmatter.test.js",
    "chars": 2040,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { parseFrontmatter } from '../../src/lib/frontmatter.js';\n\ndescrib"
  },
  {
    "path": "cli/tests/lib/normalize.test.js",
    "chars": 2003,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { normalizeLanguage, displayLanguage } from '../../src/lib/normali"
  },
  {
    "path": "cli/tests/lib/registry.multisource.test.js",
    "chars": 3985,
    "preview": "import { afterEach, describe, expect, it, vi } from 'vitest';\nimport { mkdtempSync, mkdirSync, rmSync, writeFileSync } f"
  },
  {
    "path": "cli/tests/lib/registry.search-behavior.test.js",
    "chars": 3958,
    "preview": "import { afterEach, describe, expect, it, vi } from 'vitest';\nimport { mkdtempSync, mkdirSync, rmSync, writeFileSync } f"
  },
  {
    "path": "cli/tests/lib/registry.test.js",
    "chars": 6839,
    "preview": "import { describe, it, expect } from 'vitest';\nimport { searchEntries, getEntry, resolveDocPath, resolveEntryFile } from"
  },
  {
    "path": "cli/tests/lib/welcome.test.js",
    "chars": 3301,
    "preview": "import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';\nimport { existsSync, writeFileSync, mkdirSync "
  },
  {
    "path": "cli/tests/mcp/stdio-lifecycle.test.js",
    "chars": 2966,
    "preview": "import { describe, it, expect, vi } from 'vitest';\nimport { EventEmitter } from 'node:events';\nimport { attachStdioShutd"
  },
  {
    "path": "cli/tests/mcp/tools.test.js",
    "chars": 11932,
    "preview": "import { describe, it, expect, vi, afterEach, beforeAll, afterAll } from 'vitest';\nimport { mkdtempSync, rmSync } from '"
  },
  {
    "path": "content/accelerate/docs/package/python/DOC.md",
    "chars": 10101,
    "preview": "---\nname: package\ndescription: \"Hugging Face Accelerate for distributed PyTorch training and inference in Python\"\nmetada"
  },
  {
    "path": "content/aiofiles/docs/package/python/DOC.md",
    "chars": 6934,
    "preview": "---\nname: package\ndescription: \"aiofiles package guide for asyncio-friendly local file I/O in Python\"\nmetadata:\n  langua"
  },
  {
    "path": "content/aiohttp/docs/cors/python/DOC.md",
    "chars": 6838,
    "preview": "---\nname: cors\ndescription: \"aiohttp-cors package guide for adding CORS policies to aiohttp.web apps\"\nmetadata:\n  langua"
  },
  {
    "path": "content/aiohttp/docs/package/python/DOC.md",
    "chars": 11093,
    "preview": "---\nname: package\ndescription: \"aiohttp package guide for Python - async HTTP client/server, web apps, and websockets\"\nm"
  },
  {
    "path": "content/aiohttp-cors/docs/package/python/DOC.md",
    "chars": 7341,
    "preview": "---\nname: package\ndescription: \"aiohttp-cors package guide for adding CORS policies to aiohttp.web apps\"\nmetadata:\n  lan"
  },
  {
    "path": "content/aiomysql/docs/package/python/DOC.md",
    "chars": 10630,
    "preview": "---\nname: package\ndescription: \"aiomysql package guide for asyncio-based MySQL and MariaDB access in Python\"\nmetadata:\n "
  },
  {
    "path": "content/aiosignal/docs/package/python/DOC.md",
    "chars": 4642,
    "preview": "---\nname: package\ndescription: \"aiosignal package guide for Python async signal registration and dispatch\"\nmetadata:\n  l"
  },
  {
    "path": "content/aiosqlite/docs/package/python/DOC.md",
    "chars": 8892,
    "preview": "---\nname: package\ndescription: \"aiosqlite package guide for Python async SQLite access with asyncio\"\nmetadata:\n  languag"
  },
  {
    "path": "content/airtable/docs/database/javascript/DOC.md",
    "chars": 31750,
    "preview": "---\nname: database\ndescription: \"Airtable JavaScript SDK (airtable.js) — use the official airtable npm package for Airta"
  },
  {
    "path": "content/airtable/docs/database/python/DOC.md",
    "chars": 41274,
    "preview": "---\nname: database\ndescription: \"Airtable Python SDK (pyairtable) — use the official pyairtable package for Airtable API"
  },
  {
    "path": "content/albumentations/docs/package/python/DOC.md",
    "chars": 9457,
    "preview": "---\nname: package\ndescription: \"Albumentations image augmentation library for Python computer vision pipelines\"\nmetadata"
  },
  {
    "path": "content/alembic/docs/package/python/DOC.md",
    "chars": 11045,
    "preview": "---\nname: package\ndescription: \"Alembic package guide for Python database schema migrations with SQLAlchemy\"\nmetadata:\n "
  },
  {
    "path": "content/altair/docs/package/python/DOC.md",
    "chars": 9191,
    "preview": "---\nname: package\ndescription: \"Altair Python package guide for declarative charts with Vega-Lite 6\"\nmetadata:\n  languag"
  },
  {
    "path": "content/amplitude/docs/analytics/javascript/DOC.md",
    "chars": 24068,
    "preview": "---\nname: analytics\ndescription: \"Amplitude Analytics JavaScript SDK for browser-based event tracking and product analyt"
  },
  {
    "path": "content/amplitude/docs/analytics/python/DOC.md",
    "chars": 23999,
    "preview": "---\nname: analytics\ndescription: \"Amplitude Analytics Python SDK for server-side event tracking and product analytics\"\nm"
  },
  {
    "path": "content/amqp/docs/package/python/DOC.md",
    "chars": 7780,
    "preview": "---\nname: package\ndescription: \"amqp Python client for AMQP 0-9-1 brokers with direct connection, channel, publish, and "
  },
  {
    "path": "content/angular/docs/core/typescript/DOC.md",
    "chars": 6350,
    "preview": "---\nname: core\ndescription: \"Angular core runtime for standalone components, dependency injection, signals, and lifecycl"
  },
  {
    "path": "content/annotated-types/docs/package/python/DOC.md",
    "chars": 9163,
    "preview": "---\nname: package\ndescription: \"annotated-types for Python - reusable typing.Annotated metadata for bounds, lengths, pre"
  },
  {
    "path": "content/ansible/docs/package/python/DOC.md",
    "chars": 7556,
    "preview": "---\nname: package\ndescription: \"Ansible community package guide for Python-based automation with inventories, playbooks,"
  },
  {
    "path": "content/antd/docs/antd/javascript/DOC.md",
    "chars": 9709,
    "preview": "---\nname: antd\ndescription: \"Ant Design React UI library for app layout, forms, data display, feedback, theming, and loc"
  },
  {
    "path": "content/anthropic/docs/claude-api/javascript/DOC.md",
    "chars": 12937,
    "preview": "---\nname: claude-api\ndescription: \"Claude AI assistant API for text generation, analysis, conversation, streaming, tool "
  },
  {
    "path": "content/anthropic/docs/claude-api/python/DOC.md",
    "chars": 8744,
    "preview": "---\nname: claude-api\ndescription: \"Claude AI assistant API for text generation, analysis, conversation, streaming, tool "
  },
  {
    "path": "content/anthropic/docs/package/python/DOC.md",
    "chars": 8533,
    "preview": "---\nname: package\ndescription: \"Anthropic Python package guide for the Claude SDK: install, auth, messages, streaming, a"
  },
  {
    "path": "content/anyio/docs/package/python/DOC.md",
    "chars": 8778,
    "preview": "---\nname: package\ndescription: \"AnyIO package guide for Python structured concurrency across asyncio and Trio\"\nmetadata:"
  },
  {
    "path": "content/apache-airflow/docs/package/python/DOC.md",
    "chars": 10183,
    "preview": "---\nname: package\ndescription: \"Apache Airflow workflow orchestration platform for authoring, scheduling, and monitoring"
  },
  {
    "path": "content/apache-airflow/docs/providers-airbyte/python/DOC.md",
    "chars": 7747,
    "preview": "---\nname: providers-airbyte\ndescription: \"Apache Airflow provider for triggering and monitoring Airbyte connection syncs"
  },
  {
    "path": "content/apache-airflow/docs/providers-amazon/python/DOC.md",
    "chars": 8451,
    "preview": "---\nname: providers-amazon\ndescription: \"Apache Airflow provider for AWS integrations such as S3, Athena, and Secrets Ma"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-beam/python/DOC.md",
    "chars": 7923,
    "preview": "---\nname: providers-apache-beam\ndescription: \"Apache Airflow provider for launching Apache Beam pipelines from DAGs\"\nmet"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-cassandra/python/DOC.md",
    "chars": 7819,
    "preview": "---\nname: providers-apache-cassandra\ndescription: \"Apache Airflow provider for connecting DAGs to Apache Cassandra with "
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-druid/python/DOC.md",
    "chars": 7251,
    "preview": "---\nname: providers-apache-druid\ndescription: \"Apache Airflow Druid provider for submitting ingestion specs, running Dru"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-flink/python/DOC.md",
    "chars": 7058,
    "preview": "---\nname: providers-apache-flink\ndescription: \"Apache Airflow provider for deploying Apache Flink applications to Kubern"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-hdfs/python/DOC.md",
    "chars": 8665,
    "preview": "---\nname: providers-apache-hdfs\ndescription: \"Apache Airflow HDFS provider for HDFS and WebHDFS hooks and sensors\"\nmetad"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-hive/python/DOC.md",
    "chars": 8882,
    "preview": "---\nname: providers-apache-hive\ndescription: \"Apache Airflow Hive provider for Hive CLI, HiveServer2, and metastore-driv"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-impala/python/DOC.md",
    "chars": 8434,
    "preview": "---\nname: providers-apache-impala\ndescription: \"Apache Airflow Impala provider for Airflow-managed Impala connections, S"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-kafka/python/DOC.md",
    "chars": 12015,
    "preview": "---\nname: providers-apache-kafka\ndescription: \"Apache Airflow Kafka provider for producing to topics, consuming messages"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-kylin/python/DOC.md",
    "chars": 8179,
    "preview": "---\nname: providers-apache-kylin\ndescription: \"Apache Airflow Kylin provider for running Kylin SQL and cube jobs from DA"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-livy/python/DOC.md",
    "chars": 9688,
    "preview": "---\nname: providers-apache-livy\ndescription: \"Apache Airflow provider for submitting and monitoring Apache Livy batch jo"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-pig/python/DOC.md",
    "chars": 8859,
    "preview": "---\nname: providers-apache-pig\ndescription: \"Apache Airflow Pig provider for running Pig Latin through the local pig CLI"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-pinot/python/DOC.md",
    "chars": 10319,
    "preview": "---\nname: providers-apache-pinot\ndescription: \"Apache Airflow Pinot provider for Airflow-managed Pinot SQL queries and P"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-spark/python/DOC.md",
    "chars": 7745,
    "preview": "---\nname: providers-apache-spark\ndescription: \"Apache Airflow Spark provider for submitting Spark applications from DAGs"
  },
  {
    "path": "content/apache-airflow/docs/providers-apache-sqoop/python/DOC.md",
    "chars": 10996,
    "preview": "---\nname: providers-apache-sqoop\ndescription: \"Apache Airflow Sqoop provider for running Sqoop 1 imports and exports fro"
  },
  {
    "path": "content/apache-airflow/docs/providers-apprise/python/DOC.md",
    "chars": 9318,
    "preview": "---\nname: providers-apprise\ndescription: \"Apache Airflow provider for routing DAG and task notifications through Apprise"
  },
  {
    "path": "content/apache-airflow/docs/providers-asana/python/DOC.md",
    "chars": 10634,
    "preview": "---\nname: providers-asana\ndescription: \"Apache Airflow provider for Asana connections, task operators, and hook-based ta"
  },
  {
    "path": "content/apache-airflow/docs/providers-atlassian-jira/python/DOC.md",
    "chars": 12903,
    "preview": "---\nname: providers-atlassian-jira\ndescription: \"Apache Airflow provider for Jira connections, hooks, operators, sensors"
  },
  {
    "path": "content/apache-airflow/docs/providers-celery/python/DOC.md",
    "chars": 6445,
    "preview": "---\nname: providers-celery\ndescription: \"Apache Airflow Celery provider for CeleryExecutor-based task execution, workers"
  },
  {
    "path": "content/apache-airflow/docs/providers-cloudant/python/DOC.md",
    "chars": 9042,
    "preview": "---\nname: providers-cloudant\ndescription: \"Apache Airflow IBM Cloudant provider for Cloudant connections and hook-based "
  },
  {
    "path": "content/apache-airflow/docs/providers-cncf-kubernetes/python/DOC.md",
    "chars": 9947,
    "preview": "---\nname: providers-cncf-kubernetes\ndescription: \"Apache Airflow Kubernetes provider for launching pods from DAGs and ac"
  },
  {
    "path": "content/apache-airflow/docs/providers-cohere/python/DOC.md",
    "chars": 8981,
    "preview": "---\nname: providers-cohere\ndescription: \"Apache Airflow Cohere provider for generating embeddings with Airflow operators"
  },
  {
    "path": "content/apache-airflow/docs/providers-common-compat/python/DOC.md",
    "chars": 8417,
    "preview": "---\nname: providers-common-compat\ndescription: \"Apache Airflow compatibility provider for shared sdk, standard operator,"
  },
  {
    "path": "content/apache-airflow/docs/providers-common-io/python/DOC.md",
    "chars": 8742,
    "preview": "---\nname: providers-common-io\ndescription: \"Apache Airflow common.io provider for cross-filesystem transfers and object-"
  },
  {
    "path": "content/apache-airflow/docs/providers-common-sql/python/DOC.md",
    "chars": 10575,
    "preview": "---\nname: providers-common-sql\ndescription: \"Apache Airflow common SQL provider for reusable SQL operators, data quality"
  },
  {
    "path": "content/apache-airflow/docs/providers-daskexecutor/python/DOC.md",
    "chars": 7905,
    "preview": "---\nname: providers-daskexecutor\ndescription: \"Apache Airflow Dask executor provider for running Airflow 2 tasks on a Da"
  },
  {
    "path": "content/apache-airflow/docs/providers-databricks/python/DOC.md",
    "chars": 5822,
    "preview": "---\nname: providers-databricks\ndescription: \"Apache Airflow Databricks provider for submitting Jobs runs and triggering "
  },
  {
    "path": "content/apache-airflow/docs/providers-datadog/python/DOC.md",
    "chars": 8829,
    "preview": "---\nname: providers-datadog\ndescription: \"Apache Airflow Datadog provider guide for configuring a Datadog connection, se"
  },
  {
    "path": "content/apache-airflow/docs/providers-dbt-cloud/python/DOC.md",
    "chars": 8695,
    "preview": "---\nname: providers-dbt-cloud\ndescription: \"Apache Airflow provider for triggering and monitoring dbt Cloud job runs fro"
  },
  {
    "path": "content/apache-airflow/docs/providers-dingding/python/DOC.md",
    "chars": 7567,
    "preview": "---\nname: providers-dingding\ndescription: \"Apache Airflow DingTalk provider for sending custom robot messages with Dingd"
  },
  {
    "path": "content/apache-airflow/docs/providers-discord/python/DOC.md",
    "chars": 9684,
    "preview": "---\nname: providers-discord\ndescription: \"Apache Airflow Discord provider for sending webhook messages from DAG tasks, P"
  },
  {
    "path": "content/apache-airflow/docs/providers-docker/python/DOC.md",
    "chars": 7592,
    "preview": "---\nname: providers-docker\ndescription: \"Apache Airflow Docker provider for running containerized tasks with DockerOpera"
  },
  {
    "path": "content/apache-airflow/docs/providers-edge3/python/DOC.md",
    "chars": 9224,
    "preview": "---\nname: providers-edge3\ndescription: \"Apache Airflow Edge3 provider for running tasks on remote edge workers over HTTP"
  },
  {
    "path": "content/apache-airflow/docs/providers-elasticsearch/python/DOC.md",
    "chars": 9116,
    "preview": "---\nname: providers-elasticsearch\ndescription: \"Apache Airflow Elasticsearch provider for SQL and Python hook access plu"
  },
  {
    "path": "content/apache-airflow/docs/providers-exasol/python/DOC.md",
    "chars": 9547,
    "preview": "---\nname: providers-exasol\ndescription: \"Apache Airflow Exasol provider for Airflow connections, SQL tasks, and ExasolHo"
  },
  {
    "path": "content/apache-airflow/docs/providers-fab/python/DOC.md",
    "chars": 9784,
    "preview": "---\nname: providers-fab\ndescription: \"Apache Airflow FAB provider for Flask AppBuilder auth, RBAC roles, user management"
  },
  {
    "path": "content/apache-airflow/docs/providers-facebook/python/DOC.md",
    "chars": 9076,
    "preview": "---\nname: providers-facebook\ndescription: \"Apache Airflow provider for configuring Facebook Ads connections and using Fa"
  },
  {
    "path": "content/apache-airflow/docs/providers-fivetran/python/DOC.md",
    "chars": 6376,
    "preview": "---\nname: providers-fivetran\ndescription: \"Airflow provider for triggering and monitoring Fivetran connector syncs from "
  },
  {
    "path": "content/apache-airflow/docs/providers-ftp/python/DOC.md",
    "chars": 8144,
    "preview": "---\nname: providers-ftp\ndescription: \"Apache Airflow FTP provider for Airflow connections and hook-based file transfers "
  },
  {
    "path": "content/apache-airflow/docs/providers-github/python/DOC.md",
    "chars": 8414,
    "preview": "---\nname: providers-github\ndescription: \"Apache Airflow provider for GitHub connections, hooks, and DAG tasks that call "
  },
  {
    "path": "content/apache-airflow/docs/providers-google/python/DOC.md",
    "chars": 7327,
    "preview": "---\nname: providers-google\ndescription: \"Apache Airflow Google provider for running Google Cloud workflows with Airflow "
  },
  {
    "path": "content/apache-airflow/docs/providers-grpc/python/DOC.md",
    "chars": 7895,
    "preview": "---\nname: providers-grpc\ndescription: \"Apache Airflow gRPC provider for calling protobuf-defined gRPC services from DAGs"
  },
  {
    "path": "content/apache-airflow/docs/providers-hashicorp/python/DOC.md",
    "chars": 8160,
    "preview": "---\nname: providers-hashicorp\ndescription: \"Apache Airflow HashiCorp provider for Vault connections, secret reads and wr"
  },
  {
    "path": "content/apache-airflow/docs/providers-http/python/DOC.md",
    "chars": 8362,
    "preview": "---\nname: providers-http\ndescription: \"Apache Airflow HTTP provider for calling HTTP and REST endpoints with hooks, oper"
  },
  {
    "path": "content/apache-airflow/docs/providers-imap/python/DOC.md",
    "chars": 8661,
    "preview": "---\nname: providers-imap\ndescription: \"Apache Airflow IMAP provider guide for configuring IMAP connections and reading m"
  },
  {
    "path": "content/apache-airflow/docs/providers-influxdb/python/DOC.md",
    "chars": 8284,
    "preview": "---\nname: providers-influxdb\ndescription: \"Apache Airflow InfluxDB provider for Flux queries and hook-based InfluxDB wor"
  },
  {
    "path": "content/apache-airflow/docs/providers-jdbc/python/DOC.md",
    "chars": 9530,
    "preview": "---\nname: providers-jdbc\ndescription: \"Apache Airflow JDBC provider for Airflow connections, SQL tasks, and JdbcHook-bas"
  },
  {
    "path": "content/apache-airflow/docs/providers-jira/python/DOC.md",
    "chars": 8204,
    "preview": "---\nname: providers-jira\ndescription: \"Apache Airflow provider for Jira connections, hooks, and DAG tasks that create or"
  },
  {
    "path": "content/apache-airflow/docs/providers-microsoft-azure/python/DOC.md",
    "chars": 8053,
    "preview": "---\nname: providers-microsoft-azure\ndescription: \"Apache Airflow provider for Microsoft Azure integrations such as Blob "
  },
  {
    "path": "content/apache-airflow/docs/providers-microsoft-mssql/python/DOC.md",
    "chars": 6682,
    "preview": "---\nname: providers-microsoft-mssql\ndescription: \"Apache Airflow Microsoft SQL Server provider for Airflow connections, "
  },
  {
    "path": "content/apache-airflow/docs/providers-microsoft-psrp/python/DOC.md",
    "chars": 10623,
    "preview": "---\nname: providers-microsoft-psrp\ndescription: \"Apache Airflow provider for running remote Windows commands and PowerSh"
  },
  {
    "path": "content/apache-airflow/docs/providers-microsoft-winrm/python/DOC.md",
    "chars": 9602,
    "preview": "---\nname: providers-microsoft-winrm\ndescription: \"Apache Airflow WinRM provider for running commands on Windows hosts th"
  },
  {
    "path": "content/apache-airflow/docs/providers-mongo/python/DOC.md",
    "chars": 7380,
    "preview": "---\nname: providers-mongo\ndescription: \"Apache Airflow provider for connecting DAGs to MongoDB with Airflow connections,"
  },
  {
    "path": "content/apache-airflow/docs/providers-mysql/python/DOC.md",
    "chars": 5736,
    "preview": "---\nname: providers-mysql\ndescription: \"Apache Airflow MySQL provider guide for configuring MySQL connections and using "
  },
  {
    "path": "content/apache-airflow/docs/providers-neo4j/python/DOC.md",
    "chars": 7296,
    "preview": "---\nname: providers-neo4j\ndescription: \"Apache Airflow Neo4j provider for Airflow connections and Neo4j hook-based DAG t"
  },
  {
    "path": "content/apache-airflow/docs/providers-odbc/python/DOC.md",
    "chars": 7415,
    "preview": "---\nname: providers-odbc\ndescription: \"Apache Airflow ODBC provider for Airflow connections, SQL tasks, and OdbcHook wor"
  },
  {
    "path": "content/apache-airflow/docs/providers-openfaas/python/DOC.md",
    "chars": 9068,
    "preview": "---\nname: providers-openfaas\ndescription: \"Apache Airflow provider for deploying, updating, deleting, and invoking OpenF"
  },
  {
    "path": "content/apache-airflow/docs/providers-openlineage/python/DOC.md",
    "chars": 10592,
    "preview": "---\nname: providers-openlineage\ndescription: \"Apache Airflow OpenLineage provider for emitting lineage events from DAGs "
  },
  {
    "path": "content/apache-airflow/docs/providers-opensearch/python/DOC.md",
    "chars": 6253,
    "preview": "---\nname: providers-opensearch\ndescription: \"Apache Airflow OpenSearch provider for Airflow connections and OpenSearch h"
  },
  {
    "path": "content/apache-airflow/docs/providers-opsgenie/python/DOC.md",
    "chars": 6688,
    "preview": "---\nname: providers-opsgenie\ndescription: \"Apache Airflow provider for creating and closing Opsgenie alerts from DAGs\"\nm"
  },
  {
    "path": "content/apache-airflow/docs/providers-oracle/python/DOC.md",
    "chars": 9975,
    "preview": "---\nname: providers-oracle\ndescription: \"Apache Airflow Oracle provider for Airflow connections, SQL tasks, and OracleHo"
  },
  {
    "path": "content/apache-airflow/docs/providers-pagerduty/python/DOC.md",
    "chars": 8363,
    "preview": "---\nname: providers-pagerduty\ndescription: \"Apache Airflow provider for sending PagerDuty Events API alerts and callback"
  },
  {
    "path": "content/apache-airflow/docs/providers-papermill/python/DOC.md",
    "chars": 7116,
    "preview": "---\nname: providers-papermill\ndescription: \"Apache Airflow Papermill provider for running parameterized Jupyter notebook"
  },
  {
    "path": "content/apache-airflow/docs/providers-pinecone/python/DOC.md",
    "chars": 8974,
    "preview": "---\nname: providers-pinecone\ndescription: \"Apache Airflow Pinecone provider for creating indexes, ingesting vectors, and"
  },
  {
    "path": "content/apache-airflow/docs/providers-plexus/python/DOC.md",
    "chars": 8637,
    "preview": "---\nname: providers-plexus\ndescription: \"Apache Airflow provider for authenticating to Plexus with Airflow Variables and"
  },
  {
    "path": "content/apache-airflow/docs/providers-postgres/python/DOC.md",
    "chars": 6868,
    "preview": "---\nname: providers-postgres\ndescription: \"Apache Airflow PostgreSQL provider for Airflow connections, SQL tasks, and Po"
  },
  {
    "path": "content/apache-airflow/docs/providers-presto/python/DOC.md",
    "chars": 7768,
    "preview": "---\nname: providers-presto\ndescription: \"Apache Airflow Presto provider for Presto connections, SQL tasks, and hook-base"
  },
  {
    "path": "content/apache-airflow/docs/providers-qdrant/python/DOC.md",
    "chars": 10470,
    "preview": "---\nname: providers-qdrant\ndescription: \"Apache Airflow Qdrant provider for configuring Qdrant connections, ingesting ve"
  },
  {
    "path": "content/apache-airflow/docs/providers-qubole/python/DOC.md",
    "chars": 9455,
    "preview": "---\nname: providers-qubole\ndescription: \"Apache Airflow Qubole provider for running Qubole commands, checks, and sensors"
  },
  {
    "path": "content/apache-airflow/docs/providers-redis/python/DOC.md",
    "chars": 6878,
    "preview": "---\nname: providers-redis\ndescription: \"Apache Airflow Redis provider for Redis connections, hook-based tasks, and publi"
  },
  {
    "path": "content/apache-airflow/docs/providers-salesforce/python/DOC.md",
    "chars": 8625,
    "preview": "---\nname: providers-salesforce\ndescription: \"Apache Airflow provider for configuring Salesforce connections and using Sa"
  },
  {
    "path": "content/apache-airflow/docs/providers-samba/python/DOC.md",
    "chars": 9754,
    "preview": "---\nname: providers-samba\ndescription: \"Apache Airflow Samba provider for SMB connections, hook-based file access, and G"
  },
  {
    "path": "content/apache-airflow/docs/providers-segment/python/DOC.md",
    "chars": 7537,
    "preview": "---\nname: providers-segment\ndescription: \"Apache Airflow Segment provider for sending Identify and Track calls from DAG "
  },
  {
    "path": "content/apache-airflow/docs/providers-sendgrid/python/DOC.md",
    "chars": 6861,
    "preview": "---\nname: providers-sendgrid\ndescription: \"Apache Airflow SendGrid provider for configuring Airflow email delivery throu"
  },
  {
    "path": "content/apache-airflow/docs/providers-sftp/python/DOC.md",
    "chars": 6352,
    "preview": "---\nname: providers-sftp\ndescription: \"Apache Airflow SFTP provider for Airflow connections, hook-based file transfer, a"
  },
  {
    "path": "content/apache-airflow/docs/providers-singularity/python/DOC.md",
    "chars": 7660,
    "preview": "---\nname: providers-singularity\ndescription: \"Apache Airflow Singularity provider for running container commands with Si"
  },
  {
    "path": "content/apache-airflow/docs/providers-slack/python/DOC.md",
    "chars": 7737,
    "preview": "---\nname: providers-slack\ndescription: \"Apache Airflow Slack provider guide for posting messages, sending webhooks, and "
  },
  {
    "path": "content/apache-airflow/docs/providers-smtp/python/DOC.md",
    "chars": 6722,
    "preview": "---\nname: providers-smtp\ndescription: \"Apache Airflow SMTP provider for Airflow email backends, EmailOperator tasks, Smt"
  },
  {
    "path": "content/apache-airflow/docs/providers-snowflake/python/DOC.md",
    "chars": 7359,
    "preview": "---\nname: providers-snowflake\ndescription: \"Apache Airflow Snowflake provider for Snowflake connections, SQL tasks, and "
  },
  {
    "path": "content/apache-airflow/docs/providers-sqlite/python/DOC.md",
    "chars": 7422,
    "preview": "---\nname: providers-sqlite\ndescription: \"Apache Airflow SQLite provider for Airflow connections, SQL tasks, and SqliteHo"
  },
  {
    "path": "content/apache-airflow/docs/providers-ssh/python/DOC.md",
    "chars": 11040,
    "preview": "---\nname: providers-ssh\ndescription: \"Apache Airflow SSH provider for SSH connections, remote command execution, tunnels"
  },
  {
    "path": "content/apache-airflow/docs/providers-tableau/python/DOC.md",
    "chars": 11598,
    "preview": "---\nname: providers-tableau\ndescription: \"Apache Airflow Tableau provider guide for configuring Tableau connections and "
  },
  {
    "path": "content/apache-airflow/docs/providers-telegram/python/DOC.md",
    "chars": 6672,
    "preview": "---\nname: providers-telegram\ndescription: \"Apache Airflow Telegram provider for sending bot messages from DAGs with Tele"
  },
  {
    "path": "content/apache-airflow/docs/providers-teradata/python/DOC.md",
    "chars": 11608,
    "preview": "---\nname: providers-teradata\ndescription: \"Apache Airflow Teradata provider for Airflow connections, SQL tasks, stored p"
  },
  {
    "path": "content/apache-airflow/docs/providers-trino/python/DOC.md",
    "chars": 9624,
    "preview": "---\nname: providers-trino\ndescription: \"Apache Airflow Trino provider for Airflow connections, SQL tasks, and Python tas"
  },
  {
    "path": "content/apache-airflow/docs/providers-vertica/python/DOC.md",
    "chars": 8271,
    "preview": "---\nname: providers-vertica\ndescription: \"Apache Airflow Vertica provider for Airflow connections, SQL tasks, and Vertic"
  },
  {
    "path": "content/apache-airflow/docs/providers-weaviate/python/DOC.md",
    "chars": 12557,
    "preview": "---\nname: providers-weaviate\ndescription: \"Apache Airflow Weaviate provider for Airflow-managed Weaviate connections, co"
  },
  {
    "path": "content/apache-airflow/docs/providers-yandex/python/DOC.md",
    "chars": 10983,
    "preview": "---\nname: providers-yandex\ndescription: \"Apache Airflow Yandex provider for Yandex Cloud connections, Yandex Query tasks"
  },
  {
    "path": "content/apache-airflow/docs/providers-zendesk/python/DOC.md",
    "chars": 7835,
    "preview": "---\nname: providers-zendesk\ndescription: \"Apache Airflow Zendesk provider for configuring a Zendesk connection and using"
  },
  {
    "path": "content/apache-beam/docs/package/python/DOC.md",
    "chars": 8892,
    "preview": "---\nname: package\ndescription: \"Apache Beam Python SDK for building batch and streaming pipelines locally or on distribu"
  },
  {
    "path": "content/appdirs/docs/package/python/DOC.md",
    "chars": 6778,
    "preview": "---\nname: package\ndescription: \"appdirs package guide for Python projects that need platform-specific data, config, cach"
  },
  {
    "path": "content/applitools/docs/eyes-playwright/javascript/DOC.md",
    "chars": 8708,
    "preview": "---\nname: eyes-playwright\ndescription: \"Applitools Eyes SDK for Playwright - Expert integration guide for visual AI test"
  },
  {
    "path": "content/apscheduler/docs/package/python/DOC.md",
    "chars": 8860,
    "preview": "---\nname: package\ndescription: \"APScheduler Python package guide for in-process job scheduling with cron, interval, date"
  },
  {
    "path": "content/ariadne/docs/package/python/DOC.md",
    "chars": 5894,
    "preview": "---\nname: package\ndescription: \"Ariadne package guide for Python GraphQL servers using SDL schemas, resolvers, and ASGI "
  },
  {
    "path": "content/arq/docs/package/python/DOC.md",
    "chars": 9767,
    "preview": "---\nname: package\ndescription: \"arq Python package guide for async Redis-backed job queues and workers\"\nmetadata:\n  lang"
  },
  {
    "path": "content/arrow/docs/package/python/DOC.md",
    "chars": 6519,
    "preview": "---\nname: package\ndescription: \"Arrow Python package guide for creating, parsing, shifting, formatting, and localizing d"
  },
  {
    "path": "content/asana/docs/tasks/DOC.md",
    "chars": 34626,
    "preview": "---\nname: tasks\ndescription: \"Asana API coding guide for tasks, project management, and workflow\"\nmetadata:\n  languages:"
  },
  {
    "path": "content/assemblyai/docs/transcription/DOC.md",
    "chars": 27613,
    "preview": "---\nname: transcription\ndescription: \"AssemblyAI JavaScript SDK coding guide for speech-to-text transcription\"\nmetadata:"
  },
  {
    "path": "content/async-timeout/docs/package/python/DOC.md",
    "chars": 5574,
    "preview": "---\nname: package\ndescription: \"async-timeout compatibility timeout context manager for asyncio code on Python 3.8+\"\nmet"
  },
  {
    "path": "content/asyncpg/docs/package/python/DOC.md",
    "chars": 11849,
    "preview": "---\nname: package\ndescription: \"asyncpg package guide for asyncio PostgreSQL connections, pools, transactions, and type "
  },
  {
    "path": "content/atlassian/docs/confluence/javascript/DOC.md",
    "chars": 29970,
    "preview": "---\nname: confluence\ndescription: \"Confluence Cloud API coding guidelines for JavaScript/TypeScript using the confluence"
  },
  {
    "path": "content/atlassian/docs/confluence/python/DOC.md",
    "chars": 37671,
    "preview": "---\nname: confluence\ndescription: \"Confluence Cloud API coding guidelines for Python using the atlassian-python-api libr"
  },
  {
    "path": "content/attrs/docs/package/python/DOC.md",
    "chars": 6583,
    "preview": "---\nname: package\ndescription: \"attrs package guide for Python declarative classes, validators, converters, and serializ"
  },
  {
    "path": "content/auth0/docs/identity/javascript/DOC.md",
    "chars": 20452,
    "preview": "---\nname: identity\ndescription: \"Auth0 JavaScript/Node.js SDK for OAuth, OIDC, and identity management in server-side ap"
  },
  {
    "path": "content/auth0/docs/identity/python/DOC.md",
    "chars": 26891,
    "preview": "---\nname: identity\ndescription: \"Auth0 Python SDK for OAuth, OIDC, and identity management in server-side applications\"\n"
  }
]

// ... and 1584 more files (download for full content)

About this extraction

This page contains the full source code of the andrewyng/context-hub GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1784 files (16.4 MB), approximately 4.4M tokens, and a symbol index with 168 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!