
Security News
PolinRider: North Korea-Linked Supply Chain Campaign Expands Across Open Source Ecosystems
PolinRider expands across npm, Packagist, Go modules, and Chrome extensions, using hidden loaders to target developer environments.
@nestjs-ai/observation
Advanced tools
A TypeScript/NestJS port of Spring AI — bringing the same powerful AI abstraction layer to the Node.js ecosystem.
Last synced Spring AI commit: da8db657 (Remove Anthropic IT that no longer makes sense)
NestJS AI is a comprehensive TypeScript port of the Spring AI project, reimagined for the NestJS/Node.js ecosystem. It provides a unified abstraction layer for integrating Large Language Models (LLMs), vector stores, document readers, and RAG pipelines into NestJS applications.
The project faithfully mirrors Spring AI's module structure and API design while leveraging TypeScript idioms, RxJS reactive streams, and NestJS dependency injection.
ChatModel and EmbeddingModel interfaces across providers| Category | Technology |
|---|---|
| Language | TypeScript 6.x (strict mode) |
| Runtime | Node.js >= 20 |
| Framework | NestJS 11.x |
| Package Manager | pnpm 10.x |
| Build | Turborepo + tsc |
| Test | Vitest 4.x + TestContainers |
| Lint/Format | Biomejs 2.x |
| Reactive | RxJS 7.x |
| Validation | Zod 4.x |
Spring AI module porting status to NestJS AI. (~520 source files, ~180 test files ported across 22 packages)
| Category | Spring AI Module | nestjs-ai Package | Progress |
|---|---|---|---|
| Core | spring-ai-model | @nestjs-ai/model | 100% |
| spring-ai-client-chat | @nestjs-ai/client-chat | 100% | |
| spring-ai-commons | @nestjs-ai/commons | 100% | |
| spring-ai-retry | @nestjs-ai/retry | 100% | |
| spring-ai-template-st | @nestjs-ai/template-st | 100% | |
| spring-ai-observation | @nestjs-ai/observation | 100% | |
| spring-ai-test | @nestjs-ai/testing | 100% | |
| Model Providers | spring-ai-openai | @nestjs-ai/model-openai | 100% |
| spring-ai-openai-sdk | @nestjs-ai/model-openai-sdk | 100% | |
| spring-ai-google-genai | @nestjs-ai/model-google-genai | 100% | |
| spring-ai-transformers | @nestjs-ai/model-transformers | 100% | |
| spring-ai-anthropic | — | 0% | |
| spring-ai-azure-openai | — | 0% | |
| spring-ai-bedrock | — | 0% | |
| spring-ai-mistral-ai | — | 0% | |
| spring-ai-ollama | — | 0% | |
| RAG & Vector Stores | spring-ai-rag | @nestjs-ai/rag | 100% |
| spring-ai-vector-store | @nestjs-ai/vector-store | 100% | |
| spring-ai-redis-store | @nestjs-ai/vector-store-redis | 100% | |
| spring-ai-advisors-vector-store | @nestjs-ai/advisors-vector-store | 100% | |
| spring-ai-pgvector-store | — | 0% | |
| spring-ai-chroma-store | — | 0% | |
| spring-ai-pinecone-store | — | 0% | |
| spring-ai-milvus-store | — | 0% | |
| Document Readers | spring-ai-pdf-document-reader | @nestjs-ai/document-reader-pdf | 100% |
| spring-ai-markdown-document-reader | @nestjs-ai/document-reader-markdown | 100% | |
| spring-ai-tika-document-reader | @nestjs-ai/document-reader-tika | 100% | |
| (cheerio - NestJS specific) | @nestjs-ai/document-reader-cheerio | 100% | |
| Memory | spring-ai-model-chat-memory-redis | @nestjs-ai/model-chat-memory-repository-redis | 100% |
| spring-ai-model-chat-memory-jdbc | — | 0% | |
| spring-ai-model-chat-memory-cassandra | — | 0% | |
| Platform | spring-ai-autoconfigure | @nestjs-ai/platform | 100% |
| spring-ai-mcp | @nestjs-ai/mcp-common | 10% | |
| spring-ai-jsdbc | @nestjs-ai/jsdbc | 30% |
nestjs-ai/
├── packages/
│ ├── model/ # Core chat/embedding abstractions
│ ├── client-chat/ # High-level client API & advisors
│ ├── commons/ # Shared utilities & tokens
│ ├── platform/ # NestJS module integration
│ ├── rag/ # RAG pipeline
│ ├── vector-store/ # Vector store abstractions
│ ├── observation/ # OpenTelemetry integration
│ ├── retry/ # Retry utilities
│ ├── template-st/ # Prompt templating
│ ├── testing/ # Test utilities
│ ├── jsdbc/ # JDBC integration layer
│ ├── models/
│ │ ├── openai/ # OpenAI provider
│ │ ├── google-genai/ # Google GenAI provider
│ │ └── transformers/ # Hugging Face local embeddings
│ ├── mcp/
│ │ └── common/ # Model Context Protocol
│ ├── vector-stores/
│ │ └── redis-store/ # Redis vector store
│ ├── memory/
│ │ └── repository/
│ │ └── model-chat-memory-repository-redis/
│ ├── document-readers/
│ │ ├── pdf-reader/ # PDF.js reader
│ │ ├── markdown-reader/ # Markdown reader
│ │ ├── cheerio-reader/ # HTML/web scraping
│ │ └── tika-reader/ # Apache Tika reader
│ └── advisors/
│ └── advisors-vector-store/
├── docs/ # Antora documentation site
└── turbo.json # Turborepo configuration
pnpm install
pnpm build
pnpm test
pnpm lint
pnpm format
FAQs
OpenTelemetry observation support for NestJS AI
We found that @nestjs-ai/observation demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
PolinRider expands across npm, Packagist, Go modules, and Chrome extensions, using hidden loaders to target developer environments.

Security News
Open source attacks are accelerating as AI coding agents pull in dependencies faster, with less human review.

Research
/Security News
Malicious Chrome and Firefox extensions posed as free VPNs while stealing clipboard data through later extension updates.