🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@nestjs-ai/rag

Package Overview
Dependencies
Maintainers
2
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nestjs-ai/rag - npm Package Compare versions

Comparing version
0.0.2
to
0.1.0
+14
-0
CHANGELOG.md
# @nestjs-ai/rag
## 0.1.0
### Minor Changes
- ed9c6e0: Migrate CJS to ESM
### Patch Changes
- Updated dependencies [ed9c6e0]
- @nestjs-ai/client-chat@0.1.0
- @nestjs-ai/commons@0.1.0
- @nestjs-ai/model@0.1.0
- @nestjs-ai/vector-store@0.1.0
## 0.0.2

@@ -4,0 +18,0 @@

+1
-1

@@ -1,2 +0,2 @@

export { RetrievalAugmentationAdvisor, type RetrievalAugmentationAdvisorProps, } from "./retrieval-augmentation-advisor";
export { RetrievalAugmentationAdvisor, type RetrievalAugmentationAdvisorProps, } from "./retrieval-augmentation-advisor.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,GACvC,MAAM,kCAAkC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,GACvC,MAAM,qCAAqC,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,6 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.RetrievalAugmentationAdvisor = void 0;
var retrieval_augmentation_advisor_1 = require("./retrieval-augmentation-advisor");
Object.defineProperty(exports, "RetrievalAugmentationAdvisor", { enumerable: true, get: function () { return retrieval_augmentation_advisor_1.RetrievalAugmentationAdvisor; } });
export { RetrievalAugmentationAdvisor, } from "./retrieval-augmentation-advisor.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,mFAG0C;AAFxC,8IAAA,4BAA4B,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advisor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,4BAA4B,GAE7B,MAAM,qCAAqC,CAAC"}
import { type AdvisorChain, BaseAdvisor, type ChatClientRequest, ChatClientResponse } from "@nestjs-ai/client-chat";
import { type QueryAugmenter } from "../generation";
import type { DocumentPostProcessor } from "../postretrieval";
import type { QueryExpander, QueryTransformer } from "../preretrieval";
import { type DocumentJoiner, type DocumentRetriever } from "../retrieval";
import { type QueryAugmenter } from "../generation/index.js";
import type { DocumentPostProcessor } from "../postretrieval/index.js";
import type { QueryExpander, QueryTransformer } from "../preretrieval/index.js";
import { type DocumentJoiner, type DocumentRetriever } from "../retrieval/index.js";
export interface RetrievalAugmentationAdvisorProps {

@@ -7,0 +7,0 @@ queryTransformers?: QueryTransformer[] | null;

@@ -1,1 +0,1 @@

{"version":3,"file":"retrieval-augmentation-advisor.d.ts","sourceRoot":"","sources":["../../src/advisor/retrieval-augmentation-advisor.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,iBAAiB,EACtB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,iCAAiC;IAChD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,0BAA0B;IAE1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,KAAK,EAAE,iCAAiC;IAkCrC,MAAM,CACnB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,YAAY,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAuD7B;;;OAGG;YACW,oBAAoB;IAOnB,KAAK,CAClB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,YAAY,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IAsB9B,IAAa,SAAS,IAAI,WAAW,CAAC,WAAW,CAAC,CAEjD;IAED,IAAa,KAAK,IAAI,MAAM,CAE3B;CACF"}
{"version":3,"file":"retrieval-augmentation-advisor.d.ts","sourceRoot":"","sources":["../../src/advisor/retrieval-augmentation-advisor.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,iBAAiB,EACtB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,iCAAiC;IAChD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;IACxD,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,0BAA0B;IAE1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,KAAK,EAAE,iCAAiC;IAkCrC,MAAM,CACnB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,YAAY,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAuD7B;;;OAGG;YACW,oBAAoB;IAOnB,KAAK,CAClB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,YAAY,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IAsB9B,IAAa,SAAS,IAAI,WAAW,CAAC,WAAW,CAAC,CAEjD;IAED,IAAa,KAAK,IAAI,MAAM,CAE3B;CACF"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,13 +16,8 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RetrievalAugmentationAdvisor = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const client_chat_1 = require("@nestjs-ai/client-chat");
const model_1 = require("@nestjs-ai/model");
const generation_1 = require("../generation");
const query_1 = require("../query");
const retrieval_1 = require("../retrieval");
import assert from "node:assert/strict";
import { BaseAdvisor, ChatClientResponse, } from "@nestjs-ai/client-chat";
import { ChatResponse } from "@nestjs-ai/model";
import { ContextualQueryAugmenter, } from "../generation/index.js";
import { Query } from "../query.js";
import { ConcatenationDocumentJoiner, } from "../retrieval/index.js";
/**

@@ -34,3 +28,3 @@ * Advisor that implements common Retrieval Augmented Generation (RAG) flows using the

*/
class RetrievalAugmentationAdvisor extends client_chat_1.BaseAdvisor {
export class RetrievalAugmentationAdvisor extends BaseAdvisor {
static DOCUMENT_CONTEXT = "rag_document_context";

@@ -47,6 +41,6 @@ _queryTransformers;

super();
(0, strict_1.default)(props.documentRetriever != null, "documentRetriever cannot be null");
assert(props.documentRetriever != null, "documentRetriever cannot be null");
if (props.queryTransformers != null) {
for (const queryTransformer of props.queryTransformers) {
(0, strict_1.default)(queryTransformer != null, "queryTransformers cannot contain null elements");
assert(queryTransformer != null, "queryTransformers cannot contain null elements");
}

@@ -56,3 +50,3 @@ }

for (const documentPostProcessor of props.documentPostProcessors) {
(0, strict_1.default)(documentPostProcessor != null, "documentPostProcessors cannot contain null elements");
assert(documentPostProcessor != null, "documentPostProcessors cannot contain null elements");
}

@@ -64,7 +58,7 @@ }

this._documentJoiner =
props.documentJoiner ?? new retrieval_1.ConcatenationDocumentJoiner();
props.documentJoiner ?? new ConcatenationDocumentJoiner();
this._documentPostProcessors = props.documentPostProcessors ?? [];
this._queryAugmenter =
props.queryAugmenter ?? new generation_1.ContextualQueryAugmenter();
this._scheduler = props.scheduler ?? client_chat_1.BaseAdvisor.DEFAULT_SCHEDULER;
props.queryAugmenter ?? new ContextualQueryAugmenter();
this._scheduler = props.scheduler ?? BaseAdvisor.DEFAULT_SCHEDULER;
this._order = props.order ?? 0;

@@ -76,3 +70,3 @@ }

const text = chatClientRequest.prompt.userMessage.text;
const originalQuery = query_1.Query.builder()
const originalQuery = Query.builder()
.text(text ?? "")

@@ -121,4 +115,4 @@ .history(chatClientRequest.prompt.instructions)

const chatResponseBuilder = chatClientResponse.chatResponse == null
? model_1.ChatResponse.builder().generations([])
: model_1.ChatResponse.builder().from(chatClientResponse.chatResponse);
? ChatResponse.builder().generations([])
: ChatResponse.builder().from(chatClientResponse.chatResponse);
const ctx = chatClientResponse.context.get(RetrievalAugmentationAdvisor.DOCUMENT_CONTEXT);

@@ -128,3 +122,3 @@ if (ctx != null) {

}
return client_chat_1.ChatClientResponse.builder()
return ChatClientResponse.builder()
.chatResponse(chatResponseBuilder.build())

@@ -141,3 +135,2 @@ .context(chatClientResponse.context)

}
exports.RetrievalAugmentationAdvisor = RetrievalAugmentationAdvisor;
//# sourceMappingURL=retrieval-augmentation-advisor.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"retrieval-augmentation-advisor.js","sourceRoot":"","sources":["../../src/advisor/retrieval-augmentation-advisor.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"retrieval-augmentation-advisor.js","sourceRoot":"","sources":["../../src/advisor/retrieval-augmentation-advisor.ts"],"names":[],"mappings":"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"}

@@ -1,5 +0,5 @@

import { type Document } from "@nestjs-ai/commons";
import type { Document } from "@nestjs-ai/commons";
import { PromptTemplate } from "@nestjs-ai/model";
import { Query } from "../../query";
import { QueryAugmenter } from "./query-augmenter";
import { Query } from "../../query.js";
import { QueryAugmenter } from "./query-augmenter.js";
export interface ContextualQueryAugmenterProps {

@@ -6,0 +6,0 @@ promptTemplate?: PromptTemplate | null;

@@ -1,1 +0,1 @@

{"version":3,"file":"contextual-query-augmenter.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/contextual-query-augmenter.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,QAAQ,EAA8B,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,6BAA6B;IAC5C,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,0BAA0B,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;CAChE;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAiB7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAIzD;IAEJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAS;IAE5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAMhC;IAElB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,0BAA0B,EAAE,cAAc,CAAC;IAEpD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC;gBAElD,KAAK,GAAE,6BAAkC;IAqB5C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;IAuB5D,OAAO,CAAC,4BAA4B;CAYrC"}
{"version":3,"file":"contextual-query-augmenter.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/contextual-query-augmenter.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,6BAA6B;IAC5C,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,0BAA0B,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;CAChE;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAiB7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAIzD;IAEJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAS;IAE5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAMhC;IAElB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,0BAA0B,EAAE,cAAc,CAAC;IAEpD,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC;gBAElD,KAAK,GAAE,6BAAkC;IAqB5C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;IAuB5D,OAAO,CAAC,4BAA4B;CAYrC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,14 +16,9 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ContextualQueryAugmenter = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const node_os_1 = __importDefault(require("node:os"));
const commons_1 = require("@nestjs-ai/commons");
const model_1 = require("@nestjs-ai/model");
const query_1 = require("../../query");
const util_1 = require("../../util");
const query_augmenter_1 = require("./query-augmenter");
import assert from "node:assert/strict";
import os from "node:os";
import { PromptTemplate } from "@nestjs-ai/model";
import { LoggerFactory } from "@nestjs-port/core";
import { Query } from "../../query.js";
import { PromptAssert } from "../../util/index.js";
import { QueryAugmenter } from "./query-augmenter.js";
/**

@@ -42,5 +36,5 @@ * Augments the user query with contextual data from the content of the provided

*/
class ContextualQueryAugmenter extends query_augmenter_1.QueryAugmenter {
logger = commons_1.LoggerFactory.getLogger(ContextualQueryAugmenter.name);
static DEFAULT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`Context information is below.
export class ContextualQueryAugmenter extends QueryAugmenter {
logger = LoggerFactory.getLogger(ContextualQueryAugmenter.name);
static DEFAULT_PROMPT_TEMPLATE = new PromptTemplate(`Context information is below.

@@ -61,3 +55,3 @@ ---------------------

Answer:`);
static DEFAULT_EMPTY_CONTEXT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`The user query is outside your knowledge base.
static DEFAULT_EMPTY_CONTEXT_PROMPT_TEMPLATE = new PromptTemplate(`The user query is outside your knowledge base.
Politely inform the user that you can't answer it.`);

@@ -68,3 +62,3 @@ static DEFAULT_ALLOW_EMPTY_CONTEXT = false;

.filter((text) => text != null)
.join(node_os_1.default.EOL);
.join(os.EOL);
promptTemplate;

@@ -87,7 +81,7 @@ emptyContextPromptTemplate;

ContextualQueryAugmenter.DEFAULT_DOCUMENT_FORMATTER;
util_1.PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "query", "context");
PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "query", "context");
}
augment(query, documents) {
(0, strict_1.default)(query, "query cannot be null");
(0, strict_1.default)(documents, "documents cannot be null");
assert(query, "query cannot be null");
assert(documents, "documents cannot be null");
this.logger.debug("Augmenting query with contextual data");

@@ -105,3 +99,3 @@ if (documents.length === 0) {

// 3. Augment user prompt with document context.
return new query_1.Query(this.promptTemplate.render(promptParameters));
return new Query(this.promptTemplate.render(promptParameters));
}

@@ -114,6 +108,5 @@ augmentQueryWhenEmptyContext(query) {

this.logger.debug("Empty context is not allowed. Returning a specific query for empty context.");
return new query_1.Query(this.emptyContextPromptTemplate.render());
return new Query(this.emptyContextPromptTemplate.render());
}
}
exports.ContextualQueryAugmenter = ContextualQueryAugmenter;
//# sourceMappingURL=contextual-query-augmenter.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"contextual-query-augmenter.js","sourceRoot":"","sources":["../../../src/generation/augmentation/contextual-query-augmenter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AACxC,sDAAyB;AACzB,gDAA+E;AAC/E,4CAAkD;AAClD,uCAAoC;AACpC,qCAA0C;AAC1C,uDAAmD;AASnD;;;;;;;;;;;GAWG;AACH,MAAa,wBAAyB,SAAQ,gCAAc;IACzC,MAAM,GAAW,uBAAa,CAAC,SAAS,CACvD,wBAAwB,CAAC,IAAI,CAC9B,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,sBAAc,CAClE;;;;;;;;;;;;;;;QAeI,CACL,CAAC;IAEM,MAAM,CAAU,qCAAqC,GAC3D,IAAI,sBAAc,CAChB;mDAC6C,CAC9C,CAAC;IAEI,MAAM,CAAU,2BAA2B,GAAG,KAAK,CAAC;IAEpD,MAAM,CAAU,0BAA0B,GAAG,CACnD,SAAqB,EACb,EAAE,CACV,SAAS;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACtB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;SAC9C,IAAI,CAAC,iBAAE,CAAC,GAAG,CAAC,CAAC;IAET,cAAc,CAAiB;IAE/B,0BAA0B,CAAiB;IAE3C,iBAAiB,CAAU;IAE3B,iBAAiB,CAAoC;IAE9D,YAAY,QAAuC,EAAE;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc,IAAI,wBAAwB,CAAC,uBAAuB,CAAC;QAC3E,IAAI,CAAC,0BAA0B;YAC7B,KAAK,CAAC,0BAA0B;gBAChC,wBAAwB,CAAC,qCAAqC,CAAC;QACjE,IAAI,CAAC,iBAAiB;YACpB,KAAK,CAAC,iBAAiB;gBACvB,wBAAwB,CAAC,2BAA2B,CAAC;QACvD,IAAI,CAAC,iBAAiB;YACpB,KAAK,CAAC,iBAAiB;gBACvB,wBAAwB,CAAC,0BAA0B,CAAC;QAEtD,mBAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,OAAO,EACP,SAAS,CACV,CAAC;IACJ,CAAC;IAEQ,OAAO,CAAC,KAAY,EAAE,SAAqB;QAClD,IAAA,gBAAM,EAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QACtC,IAAA,gBAAM,EAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,qCAAqC;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE1D,+BAA+B;QAC/B,MAAM,gBAAgB,GAA4B;YAChD,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,OAAO,EAAE,eAAe;SACzB,CAAC;QAEF,gDAAgD;QAChD,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,4BAA4B,CAAC,KAAY;QAC/C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yDAAyD,CAC1D,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6EAA6E,CAC9E,CAAC;QACF,OAAO,IAAI,aAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;;AAvGH,4DAwGC"}
{"version":3,"file":"contextual-query-augmenter.js","sourceRoot":"","sources":["../../../src/generation/augmentation/contextual-query-augmenter.ts"],"names":[],"mappings":"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"}

@@ -1,3 +0,3 @@

export { ContextualQueryAugmenter, type ContextualQueryAugmenterProps, } from "./contextual-query-augmenter";
export { QueryAugmenter } from "./query-augmenter";
export { ContextualQueryAugmenter, type ContextualQueryAugmenterProps, } from "./contextual-query-augmenter.js";
export { QueryAugmenter } from "./query-augmenter.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,8 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryAugmenter = exports.ContextualQueryAugmenter = void 0;
var contextual_query_augmenter_1 = require("./contextual-query-augmenter");
Object.defineProperty(exports, "ContextualQueryAugmenter", { enumerable: true, get: function () { return contextual_query_augmenter_1.ContextualQueryAugmenter; } });
var query_augmenter_1 = require("./query-augmenter");
Object.defineProperty(exports, "QueryAugmenter", { enumerable: true, get: function () { return query_augmenter_1.QueryAugmenter; } });
export { ContextualQueryAugmenter, } from "./contextual-query-augmenter.js";
export { QueryAugmenter } from "./query-augmenter.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generation/augmentation/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2EAGsC;AAFpC,sIAAA,wBAAwB,OAAA;AAG1B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generation/augmentation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,wBAAwB,GAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
import type { Document } from "@nestjs-ai/commons";
import type { Query } from "../../query";
import type { Query } from "../../query.js";
export declare abstract class QueryAugmenter {

@@ -4,0 +4,0 @@ abstract augment(query: Query, documents: Document[]): Query;

@@ -1,1 +0,1 @@

{"version":3,"file":"query-augmenter.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/query-augmenter.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,8BAAsB,cAAc;IAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;IAE5D,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;CAGlD"}
{"version":3,"file":"query-augmenter.d.ts","sourceRoot":"","sources":["../../../src/generation/augmentation/query-augmenter.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,cAAc;IAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;IAE5D,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK;CAGlD"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryAugmenter = void 0;
class QueryAugmenter {
export class QueryAugmenter {
apply(query, documents) {

@@ -25,3 +22,2 @@ return this.augment(query, documents);

}
exports.QueryAugmenter = QueryAugmenter;
//# sourceMappingURL=query-augmenter.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"query-augmenter.js","sourceRoot":"","sources":["../../../src/generation/augmentation/query-augmenter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,MAAsB,cAAc;IAGlC,KAAK,CAAC,KAAY,EAAE,SAAqB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAND,wCAMC"}
{"version":3,"file":"query-augmenter.js","sourceRoot":"","sources":["../../../src/generation/augmentation/query-augmenter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,OAAgB,cAAc;IAGlC,KAAK,CAAC,KAAY,EAAE,SAAqB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF"}

@@ -1,2 +0,2 @@

export * from "./augmentation";
export * from "./augmentation/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAgBA,cAAc,gBAAgB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAgBA,cAAc,yBAAyB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,18 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./augmentation"), exports);
export * from "./augmentation/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,iDAA+B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,yBAAyB,CAAC"}

@@ -1,8 +0,8 @@

export * from "./advisor";
export * from "./generation";
export * from "./postretrieval";
export * from "./preretrieval";
export { Query, QueryBuilder } from "./query";
export * from "./retrieval";
export * from "./util";
export * from "./advisor/index.js";
export * from "./generation/index.js";
export * from "./postretrieval/index.js";
export * from "./preretrieval/index.js";
export { Query, QueryBuilder } from "./query.js";
export * from "./retrieval/index.js";
export * from "./util/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9C,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,27 +16,9 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryBuilder = exports.Query = void 0;
__exportStar(require("./advisor"), exports);
__exportStar(require("./generation"), exports);
__exportStar(require("./postretrieval"), exports);
__exportStar(require("./preretrieval"), exports);
var query_1 = require("./query");
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return query_1.QueryBuilder; } });
__exportStar(require("./retrieval"), exports);
__exportStar(require("./util"), exports);
export * from "./advisor/index.js";
export * from "./generation/index.js";
export * from "./postretrieval/index.js";
export * from "./preretrieval/index.js";
export { Query, QueryBuilder } from "./query.js";
export * from "./retrieval/index.js";
export * from "./util/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,+CAA6B;AAC7B,kDAAgC;AAChC,iDAA+B;AAC/B,iCAA8C;AAArC,8FAAA,KAAK,OAAA;AAAE,qGAAA,YAAY,OAAA;AAC5B,8CAA4B;AAC5B,yCAAuB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
import type { Document } from "@nestjs-ai/commons";
import type { Query } from "../../query";
import type { Query } from "../../query.js";
export declare abstract class DocumentPostProcessor {

@@ -4,0 +4,0 @@ abstract process(query: Query, documents: Document[]): Document[];

@@ -1,1 +0,1 @@

{"version":3,"file":"document-post-processor.d.ts","sourceRoot":"","sources":["../../../src/postretrieval/document/document-post-processor.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,8BAAsB,qBAAqB;IACzC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;IAEjE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;CAGvD"}
{"version":3,"file":"document-post-processor.d.ts","sourceRoot":"","sources":["../../../src/postretrieval/document/document-post-processor.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,qBAAqB;IACzC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;IAEjE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;CAGvD"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentPostProcessor = void 0;
class DocumentPostProcessor {
export class DocumentPostProcessor {
apply(query, documents) {

@@ -25,3 +22,2 @@ return this.process(query, documents);

}
exports.DocumentPostProcessor = DocumentPostProcessor;
//# sourceMappingURL=document-post-processor.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"document-post-processor.js","sourceRoot":"","sources":["../../../src/postretrieval/document/document-post-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,MAAsB,qBAAqB;IAGzC,KAAK,CAAC,KAAY,EAAE,SAAqB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF;AAND,sDAMC"}
{"version":3,"file":"document-post-processor.js","sourceRoot":"","sources":["../../../src/postretrieval/document/document-post-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,OAAgB,qBAAqB;IAGzC,KAAK,CAAC,KAAY,EAAE,SAAqB;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;CACF"}

@@ -1,2 +0,2 @@

export { DocumentPostProcessor } from "./document-post-processor";
export { DocumentPostProcessor } from "./document-post-processor.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postretrieval/document/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postretrieval/document/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,6 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentPostProcessor = void 0;
var document_post_processor_1 = require("./document-post-processor");
Object.defineProperty(exports, "DocumentPostProcessor", { enumerable: true, get: function () { return document_post_processor_1.DocumentPostProcessor; } });
export { DocumentPostProcessor } from "./document-post-processor.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postretrieval/document/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postretrieval/document/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}

@@ -1,2 +0,2 @@

export * from "./document";
export * from "./document/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postretrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,YAAY,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/postretrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,qBAAqB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,18 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./document"), exports);
export * from "./document/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postretrieval/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,6CAA2B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/postretrieval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,qBAAqB,CAAC"}

@@ -1,2 +0,2 @@

export * from "./query";
export * from "./query/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preretrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,SAAS,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preretrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,kBAAkB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,18 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./query"), exports);
export * from "./query/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/preretrieval/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,0CAAwB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/preretrieval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,kBAAkB,CAAC"}

@@ -1,3 +0,3 @@

export { MultiQueryExpander, type MultiQueryExpanderProps, } from "./multi-query-expander";
export { QueryExpander } from "./query-expander";
export { MultiQueryExpander, type MultiQueryExpanderProps, } from "./multi-query-expander.js";
export { QueryExpander } from "./query-expander.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,8 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryExpander = exports.MultiQueryExpander = void 0;
var multi_query_expander_1 = require("./multi-query-expander");
Object.defineProperty(exports, "MultiQueryExpander", { enumerable: true, get: function () { return multi_query_expander_1.MultiQueryExpander; } });
var query_expander_1 = require("./query-expander");
Object.defineProperty(exports, "QueryExpander", { enumerable: true, get: function () { return query_expander_1.QueryExpander; } });
export { MultiQueryExpander, } from "./multi-query-expander.js";
export { QueryExpander } from "./query-expander.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,+DAGgC;AAF9B,0HAAA,kBAAkB,OAAA;AAGpB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
import type { ChatClient } from "@nestjs-ai/client-chat";
import { PromptTemplate } from "@nestjs-ai/model";
import type { Query } from "../../../query";
import { QueryExpander } from "./query-expander";
import type { Query } from "../../../query.js";
import { QueryExpander } from "./query-expander.js";
export interface MultiQueryExpanderProps {

@@ -24,5 +24,2 @@ chatClientBuilder: ChatClient.Builder;

* ```
*
* @author Thomas Vitale
* @since 1.0.0
*/

@@ -29,0 +26,0 @@ export declare class MultiQueryExpander extends QueryExpander {

@@ -1,1 +0,1 @@

{"version":3,"file":"multi-query-expander.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/multi-query-expander.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAc7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAQ;IAExD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IAEtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,KAAK,EAAE,uBAAuB;IAmB3B,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CA+CtD"}
{"version":3,"file":"multi-query-expander.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/multi-query-expander.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAc7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAQ;IAExD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IAEtD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,KAAK,EAAE,uBAAuB;IAmB3B,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CA+CtD"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MultiQueryExpander = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const model_1 = require("@nestjs-ai/model");
const util_1 = require("../../../util");
const query_expander_1 = require("./query-expander");
import assert from "node:assert/strict";
import { PromptTemplate } from "@nestjs-ai/model";
import { LoggerFactory, StringUtils } from "@nestjs-port/core";
import { PromptAssert } from "../../../util/index.js";
import { QueryExpander } from "./query-expander.js";
/**

@@ -41,9 +35,6 @@ * Uses a large language model to expand a query into multiple semantically diverse

* ```
*
* @author Thomas Vitale
* @since 1.0.0
*/
class MultiQueryExpander extends query_expander_1.QueryExpander {
logger = commons_1.LoggerFactory.getLogger(MultiQueryExpander.name);
static DEFAULT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`You are an expert at information retrieval and search optimization.
export class MultiQueryExpander extends QueryExpander {
logger = LoggerFactory.getLogger(MultiQueryExpander.name);
static DEFAULT_PROMPT_TEMPLATE = new PromptTemplate(`You are an expert at information retrieval and search optimization.
Your task is to generate {number} different versions of the given query.

@@ -69,3 +60,3 @@

super();
(0, strict_1.default)(props.chatClientBuilder, "chatClientBuilder cannot be null");
assert(props.chatClientBuilder, "chatClientBuilder cannot be null");
this.chatClient = props.chatClientBuilder.build();

@@ -78,6 +69,6 @@ this.promptTemplate =

props.numberOfQueries ?? MultiQueryExpander.DEFAULT_NUMBER_OF_QUERIES;
util_1.PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "number", "query");
PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "number", "query");
}
async expand(query) {
(0, strict_1.default)(query, "query cannot be null");
assert(query, "query cannot be null");
this.logger.debug("Generating {} query variants", this.numberOfQueries);

@@ -103,3 +94,3 @@ const response = await this.chatClient

const queries = queryVariants
.filter(commons_1.StringUtils.hasText)
.filter(StringUtils.hasText)
.map((queryText) => query.mutate().text(queryText).build());

@@ -113,3 +104,2 @@ if (this.includeOriginal) {

}
exports.MultiQueryExpander = MultiQueryExpander;
//# sourceMappingURL=multi-query-expander.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"multi-query-expander.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/multi-query-expander.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"multi-query-expander.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/multi-query-expander.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

import type { Query } from "../../../query";
import type { Query } from "../../../query.js";
export declare abstract class QueryExpander {

@@ -3,0 +3,0 @@ abstract expand(query: Query): Promise<Query[]>;

@@ -1,1 +0,1 @@

{"version":3,"file":"query-expander.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/query-expander.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,aAAa;IACjC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/C,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAGtC"}
{"version":3,"file":"query-expander.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/query-expander.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,8BAAsB,aAAa;IACjC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/C,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAGtC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryExpander = void 0;
class QueryExpander {
export class QueryExpander {
apply(query) {

@@ -25,3 +22,2 @@ return this.expand(query);

}
exports.QueryExpander = QueryExpander;
//# sourceMappingURL=query-expander.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"query-expander.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/query-expander.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,MAAsB,aAAa;IAGjC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF;AAND,sCAMC"}
{"version":3,"file":"query-expander.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/expansion/query-expander.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,OAAgB,aAAa;IAGjC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF"}

@@ -1,3 +0,3 @@

export * from "./expansion";
export * from "./transformation";
export * from "./expansion/index.js";
export * from "./transformation/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preretrieval/query/index.ts"],"names":[],"mappings":"AAgBA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preretrieval/query/index.ts"],"names":[],"mappings":"AAgBA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,19 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./expansion"), exports);
__exportStar(require("./transformation"), exports);
export * from "./expansion/index.js";
export * from "./transformation/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preretrieval/query/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,mDAAiC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preretrieval/query/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
import type { ChatClient } from "@nestjs-ai/client-chat";
import { PromptTemplate } from "@nestjs-ai/model";
import type { Query } from "../../../query";
import { QueryTransformer } from "./query-transformer";
import type { Query } from "../../../query.js";
import { QueryTransformer } from "./query-transformer.js";
export interface CompressionQueryTransformerProps {

@@ -6,0 +6,0 @@ chatClientBuilder: ChatClient.Builder;

@@ -1,1 +0,1 @@

{"version":3,"file":"compression-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/compression-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAe,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;GAMG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAY7C;IAEF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE5B,KAAK,EAAE,gCAAgC;IAgBpC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IA4BtD,OAAO,CAAC,yBAAyB;CAclC"}
{"version":3,"file":"compression-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/compression-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAe,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;GAMG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAY7C;IAEF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE5B,KAAK,EAAE,gCAAgC;IAgBpC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IA4BtD,OAAO,CAAC,yBAAyB;CAclC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CompressionQueryTransformer = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const model_1 = require("@nestjs-ai/model");
const util_1 = require("../../../util");
const query_transformer_1 = require("./query-transformer");
import assert from "node:assert/strict";
import { MessageType, PromptTemplate } from "@nestjs-ai/model";
import { LoggerFactory, StringUtils } from "@nestjs-port/core";
import { PromptAssert } from "../../../util/index.js";
import { QueryTransformer } from "./query-transformer.js";
/**

@@ -35,5 +29,5 @@ * Uses a large language model to compress a conversation history and a follow-up query

*/
class CompressionQueryTransformer extends query_transformer_1.QueryTransformer {
logger = commons_1.LoggerFactory.getLogger(CompressionQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`Given the following conversation history and a follow-up query, your task is to synthesize
export class CompressionQueryTransformer extends QueryTransformer {
logger = LoggerFactory.getLogger(CompressionQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new PromptTemplate(`Given the following conversation history and a follow-up query, your task is to synthesize
a concise, standalone query that incorporates the context from the history.

@@ -53,3 +47,3 @@ Ensure the standalone query is clear, specific, and maintains the user's intent.

super();
(0, strict_1.default)(props.chatClientBuilder, "chatClientBuilder cannot be null");
assert(props.chatClientBuilder, "chatClientBuilder cannot be null");
this.chatClient = props.chatClientBuilder.build();

@@ -59,6 +53,6 @@ this.promptTemplate =

CompressionQueryTransformer.DEFAULT_PROMPT_TEMPLATE;
util_1.PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "history", "query");
PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "history", "query");
}
async transform(query) {
(0, strict_1.default)(query, "query cannot be null");
assert(query, "query cannot be null");
this.logger.debug("Compressing conversation history and follow-up query into a standalone query");

@@ -73,3 +67,3 @@ const compressedQueryText = await this.chatClient

.content();
if (!commons_1.StringUtils.hasText(compressedQueryText)) {
if (!StringUtils.hasText(compressedQueryText)) {
this.logger.warn("Query compression result is null/empty. Returning the input query unchanged.");

@@ -85,4 +79,4 @@ return query;

return history
.filter((message) => message.messageType === model_1.MessageType.USER ||
message.messageType === model_1.MessageType.ASSISTANT)
.filter((message) => message.messageType === MessageType.USER ||
message.messageType === MessageType.ASSISTANT)
.map((message) => `${message.messageType}: ${message.text}`)

@@ -92,3 +86,2 @@ .join("\n");

}
exports.CompressionQueryTransformer = CompressionQueryTransformer;
//# sourceMappingURL=compression-query-transformer.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"compression-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/compression-query-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,gDAA6E;AAE7E,4CAA+D;AAE/D,wCAA6C;AAC7C,2DAAuD;AAOvD;;;;;;GAMG;AACH,MAAa,2BAA4B,SAAQ,oCAAgB;IAC9C,MAAM,GAAW,uBAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,sBAAc,CAClE;;;;;;;;;;kBAUc,CACf,CAAC;IAEO,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAExC,YAAY,KAAuC;QACjD,KAAK,EAAE,CAAC;QACR,IAAA,gBAAM,EAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc;gBACpB,2BAA2B,CAAC,uBAAuB,CAAC;QAEtD,mBAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,IAAA,gBAAM,EAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8EAA8E,CAC/E,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC9C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAC/D,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,qBAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8EAA8E,CAC/E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IAEO,yBAAyB,CAAC,OAAkB;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO;aACX,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,WAAW,KAAK,mBAAW,CAAC,IAAI;YACxC,OAAO,CAAC,WAAW,KAAK,mBAAW,CAAC,SAAS,CAChD;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;;AAhFH,kEAiFC"}
{"version":3,"file":"compression-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/compression-query-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D;;;;;;GAMG;AACH,MAAM,OAAO,2BAA4B,SAAQ,gBAAgB;IAC9C,MAAM,GAAW,aAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,cAAc,CAClE;;;;;;;;;;kBAUc,CACf,CAAC;IAEO,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAExC,YAAY,KAAuC;QACjD,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc;gBACpB,2BAA2B,CAAC,uBAAuB,CAAC;QAEtD,YAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8EAA8E,CAC/E,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC9C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAC/D,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8EAA8E,CAC/E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IAEO,yBAAyB,CAAC,OAAkB;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO;aACX,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI;YACxC,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,CAChD;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC"}

@@ -1,5 +0,5 @@

export { CompressionQueryTransformer, type CompressionQueryTransformerProps, } from "./compression-query-transformer";
export { QueryTransformer } from "./query-transformer";
export { RewriteQueryTransformer, type RewriteQueryTransformerProps, } from "./rewrite-query-transformer";
export { TranslationQueryTransformer, type TranslationQueryTransformerProps, } from "./translation-query-transformer";
export { CompressionQueryTransformer, type CompressionQueryTransformerProps, } from "./compression-query-transformer.js";
export { QueryTransformer } from "./query-transformer.js";
export { RewriteQueryTransformer, type RewriteQueryTransformerProps, } from "./rewrite-query-transformer.js";
export { TranslationQueryTransformer, type TranslationQueryTransformerProps, } from "./translation-query-transformer.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,2BAA2B,EAC3B,KAAK,gCAAgC,GACtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,2BAA2B,EAC3B,KAAK,gCAAgC,GACtC,MAAM,iCAAiC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,2BAA2B,EAC3B,KAAK,gCAAgC,GACtC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,KAAK,gCAAgC,GACtC,MAAM,oCAAoC,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,6 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.TranslationQueryTransformer = exports.RewriteQueryTransformer = exports.QueryTransformer = exports.CompressionQueryTransformer = void 0;
var compression_query_transformer_1 = require("./compression-query-transformer");
Object.defineProperty(exports, "CompressionQueryTransformer", { enumerable: true, get: function () { return compression_query_transformer_1.CompressionQueryTransformer; } });
var query_transformer_1 = require("./query-transformer");
Object.defineProperty(exports, "QueryTransformer", { enumerable: true, get: function () { return query_transformer_1.QueryTransformer; } });
var rewrite_query_transformer_1 = require("./rewrite-query-transformer");
Object.defineProperty(exports, "RewriteQueryTransformer", { enumerable: true, get: function () { return rewrite_query_transformer_1.RewriteQueryTransformer; } });
var translation_query_transformer_1 = require("./translation-query-transformer");
Object.defineProperty(exports, "TranslationQueryTransformer", { enumerable: true, get: function () { return translation_query_transformer_1.TranslationQueryTransformer; } });
export { CompressionQueryTransformer, } from "./compression-query-transformer.js";
export { QueryTransformer } from "./query-transformer.js";
export { RewriteQueryTransformer, } from "./rewrite-query-transformer.js";
export { TranslationQueryTransformer, } from "./translation-query-transformer.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iFAGyC;AAFvC,4IAAA,2BAA2B,OAAA;AAG7B,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,yEAGqC;AAFnC,oIAAA,uBAAuB,OAAA;AAGzB,iFAGyC;AAFvC,4IAAA,2BAA2B,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,2BAA2B,GAE5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,uBAAuB,GAExB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,GAE5B,MAAM,oCAAoC,CAAC"}

@@ -1,2 +0,2 @@

import type { Query } from "../../../query";
import type { Query } from "../../../query.js";
export declare abstract class QueryTransformer {

@@ -3,0 +3,0 @@ abstract transform(query: Query): Promise<Query>;

@@ -1,1 +0,1 @@

{"version":3,"file":"query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/query-transformer.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,gBAAgB;IACpC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAGpC"}
{"version":3,"file":"query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/query-transformer.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,8BAAsB,gBAAgB;IACpC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAGpC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryTransformer = void 0;
class QueryTransformer {
export class QueryTransformer {
apply(query) {

@@ -25,3 +22,2 @@ return this.transform(query);

}
exports.QueryTransformer = QueryTransformer;
//# sourceMappingURL=query-transformer.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/query-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,MAAsB,gBAAgB;IAGpC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AAND,4CAMC"}
{"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/query-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,OAAgB,gBAAgB;IAGpC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
import type { ChatClient } from "@nestjs-ai/client-chat";
import { PromptTemplate } from "@nestjs-ai/model";
import type { Query } from "../../../query";
import { QueryTransformer } from "./query-transformer";
import type { Query } from "../../../query.js";
import { QueryTransformer } from "./query-transformer.js";
export interface RewriteQueryTransformerProps {

@@ -17,4 +17,2 @@ chatClientBuilder: ChatClient.Builder;

*
* @author Thomas Vitale
* @since 1.0.0
* @see https://arxiv.org/pdf/2305.14283

@@ -21,0 +19,0 @@ */

@@ -1,1 +0,1 @@

{"version":3,"file":"rewrite-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/rewrite-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,4BAA4B;IAC3C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAQ7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAkB;IAExD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAExB,KAAK,EAAE,4BAA4B;IAiBhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4BvD"}
{"version":3,"file":"rewrite-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/rewrite-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,4BAA4B;IAC3C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAQ7C;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAkB;IAExD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAExB,KAAK,EAAE,4BAA4B;IAiBhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4BvD"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RewriteQueryTransformer = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const model_1 = require("@nestjs-ai/model");
const util_1 = require("../../../util");
const query_transformer_1 = require("./query-transformer");
import assert from "node:assert/strict";
import { PromptTemplate } from "@nestjs-ai/model";
import { LoggerFactory, StringUtils } from "@nestjs-port/core";
import { PromptAssert } from "../../../util/index.js";
import { QueryTransformer } from "./query-transformer.js";
/**

@@ -35,9 +29,7 @@ * Uses a large language model to rewrite a user query to provide better results when

*
* @author Thomas Vitale
* @since 1.0.0
* @see https://arxiv.org/pdf/2305.14283
*/
class RewriteQueryTransformer extends query_transformer_1.QueryTransformer {
logger = commons_1.LoggerFactory.getLogger(RewriteQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`Given a user query, rewrite it to provide better results when querying a {target}.
export class RewriteQueryTransformer extends QueryTransformer {
logger = LoggerFactory.getLogger(RewriteQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new PromptTemplate(`Given a user query, rewrite it to provide better results when querying a {target}.
Remove any irrelevant information, and ensure the query is concise and specific.

@@ -55,3 +47,3 @@

super();
(0, strict_1.default)(props.chatClientBuilder, "chatClientBuilder cannot be null");
assert(props.chatClientBuilder, "chatClientBuilder cannot be null");
this.chatClient = props.chatClientBuilder.build();

@@ -62,6 +54,6 @@ this.promptTemplate =

props.targetSearchSystem ?? RewriteQueryTransformer.DEFAULT_TARGET;
util_1.PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "target", "query");
PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "target", "query");
}
async transform(query) {
(0, strict_1.default)(query, "query cannot be null");
assert(query, "query cannot be null");
this.logger.debug("Rewriting query to optimize for querying a {}.", this.targetSearchSystem);

@@ -76,3 +68,3 @@ const rewrittenQueryText = await this.chatClient

.content();
if (!commons_1.StringUtils.hasText(rewrittenQueryText)) {
if (!StringUtils.hasText(rewrittenQueryText)) {
this.logger.warn("Query rewrite result is null/empty. Returning the input query unchanged.");

@@ -84,3 +76,2 @@ return query;

}
exports.RewriteQueryTransformer = RewriteQueryTransformer;
//# sourceMappingURL=rewrite-query-transformer.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"rewrite-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/rewrite-query-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,gDAA6E;AAC7E,4CAAkD;AAElD,wCAA6C;AAC7C,2DAAuD;AAQvD;;;;;;;;;;GAUG;AACH,MAAa,uBAAwB,SAAQ,oCAAgB;IAC1C,MAAM,GAAW,uBAAa,CAAC,SAAS,CACvD,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,sBAAc,CAClE;;;;;;iBAMa,CACd,CAAC;IAEM,MAAM,CAAU,cAAc,GAAG,cAAc,CAAC;IAE/C,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAE/B,kBAAkB,CAAS;IAEpC,YAAY,KAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAA,gBAAM,EAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc,IAAI,uBAAuB,CAAC,uBAAuB,CAAC;QAC1E,IAAI,CAAC,kBAAkB;YACrB,KAAK,CAAC,kBAAkB,IAAI,uBAAuB,CAAC,cAAc,CAAC;QAErE,mBAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,QAAQ,EACR,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,IAAA,gBAAM,EAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gDAAgD,EAChD,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC7C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;aACxC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,qBAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0EAA0E,CAC3E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;IACzD,CAAC;;AAnEH,0DAoEC"}
{"version":3,"file":"rewrite-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/rewrite-query-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IAC1C,MAAM,GAAW,aAAa,CAAC,SAAS,CACvD,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,cAAc,CAClE;;;;;;iBAMa,CACd,CAAC;IAEM,MAAM,CAAU,cAAc,GAAG,cAAc,CAAC;IAE/C,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAE/B,kBAAkB,CAAS;IAEpC,YAAY,KAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAEpE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc,IAAI,uBAAuB,CAAC,uBAAuB,CAAC;QAC1E,IAAI,CAAC,kBAAkB;YACrB,KAAK,CAAC,kBAAkB,IAAI,uBAAuB,CAAC,cAAc,CAAC;QAErE,YAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,QAAQ,EACR,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gDAAgD,EAChD,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC7C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;aACxC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0EAA0E,CAC3E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;IACzD,CAAC"}
import type { ChatClient } from "@nestjs-ai/client-chat";
import { PromptTemplate } from "@nestjs-ai/model";
import type { Query } from "../../../query";
import { QueryTransformer } from "./query-transformer";
import type { Query } from "../../../query.js";
import { QueryTransformer } from "./query-transformer.js";
export interface TranslationQueryTransformerProps {

@@ -6,0 +6,0 @@ chatClientBuilder: ChatClient.Builder;

@@ -1,1 +0,1 @@

{"version":3,"file":"translation-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/translation-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAS7C;IAEF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,KAAK,EAAE,gCAAgC;IAqBpC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4BvD"}
{"version":3,"file":"translation-query-transformer.d.ts","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/translation-query-transformer.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,gCAAgC;IAC/C,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,2BAA4B,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAS7C;IAEF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,KAAK,EAAE,gCAAgC;IAqBpC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4BvD"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TranslationQueryTransformer = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const model_1 = require("@nestjs-ai/model");
const util_1 = require("../../../util");
const query_transformer_1 = require("./query-transformer");
import assert from "node:assert/strict";
import { PromptTemplate } from "@nestjs-ai/model";
import { LoggerFactory, StringUtils } from "@nestjs-port/core";
import { PromptAssert } from "../../../util/index.js";
import { QueryTransformer } from "./query-transformer.js";
/**

@@ -46,5 +40,5 @@ * Uses a large language model to translate a query to a target language that is supported

*/
class TranslationQueryTransformer extends query_transformer_1.QueryTransformer {
logger = commons_1.LoggerFactory.getLogger(TranslationQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new model_1.PromptTemplate(`Given a user query, translate it to {targetLanguage}.
export class TranslationQueryTransformer extends QueryTransformer {
logger = LoggerFactory.getLogger(TranslationQueryTransformer.name);
static DEFAULT_PROMPT_TEMPLATE = new PromptTemplate(`Given a user query, translate it to {targetLanguage}.
If the query is already in {targetLanguage}, return it unchanged.

@@ -62,4 +56,4 @@ If you don't know the language of the query, return it unchanged.

super();
(0, strict_1.default)(props.chatClientBuilder, "chatClientBuilder cannot be null");
(0, strict_1.default)(commons_1.StringUtils.hasText(props.targetLanguage), "targetLanguage cannot be null or empty");
assert(props.chatClientBuilder, "chatClientBuilder cannot be null");
assert(StringUtils.hasText(props.targetLanguage), "targetLanguage cannot be null or empty");
this.chatClient = props.chatClientBuilder.build();

@@ -70,6 +64,6 @@ this.promptTemplate =

this.targetLanguage = props.targetLanguage;
util_1.PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "targetLanguage", "query");
PromptAssert.templateHasRequiredPlaceholders(this.promptTemplate, "targetLanguage", "query");
}
async transform(query) {
(0, strict_1.default)(query, "query cannot be null");
assert(query, "query cannot be null");
this.logger.debug("Translating query to target language: {}", this.targetLanguage);

@@ -84,3 +78,3 @@ const translatedQueryText = await this.chatClient

.content();
if (!commons_1.StringUtils.hasText(translatedQueryText)) {
if (!StringUtils.hasText(translatedQueryText)) {
this.logger.warn("Query translation result is null/empty. Returning the input query unchanged.");

@@ -92,3 +86,2 @@ return query;

}
exports.TranslationQueryTransformer = TranslationQueryTransformer;
//# sourceMappingURL=translation-query-transformer.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"translation-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/translation-query-transformer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,gDAA6E;AAC7E,4CAAkD;AAElD,wCAA6C;AAC7C,2DAAuD;AAQvD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,2BAA4B,SAAQ,oCAAgB;IAC9C,MAAM,GAAW,uBAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,sBAAc,CAClE;;;;;;;kBAOc,CACf,CAAC;IAEO,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAE/B,cAAc,CAAS;IAEhC,YAAY,KAAuC;QACjD,KAAK,EAAE,CAAC;QACR,IAAA,gBAAM,EAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QACpE,IAAA,gBAAM,EACJ,qBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EACzC,wCAAwC,CACzC,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc;gBACpB,2BAA2B,CAAC,uBAAuB,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAE3C,mBAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,IAAA,gBAAM,EAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0CAA0C,EAC1C,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC9C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC;aAC5C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,qBAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8EAA8E,CAC/E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;;AAtEH,kEAuEC"}
{"version":3,"file":"translation-query-transformer.js","sourceRoot":"","sources":["../../../../src/preretrieval/query/transformation/translation-query-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAe,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,2BAA4B,SAAQ,gBAAgB;IAC9C,MAAM,GAAW,aAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEM,MAAM,CAAU,uBAAuB,GAAG,IAAI,cAAc,CAClE;;;;;;;kBAOc,CACf,CAAC;IAEO,UAAU,CAAa;IAEvB,cAAc,CAAiB;IAE/B,cAAc,CAAS;IAEhC,YAAY,KAAuC;QACjD,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QACpE,MAAM,CACJ,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EACzC,wCAAwC,CACzC,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,cAAc;YACjB,KAAK,CAAC,cAAc;gBACpB,2BAA2B,CAAC,uBAAuB,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAE3C,YAAY,CAAC,+BAA+B,CAC1C,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,KAAY;QACnC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0CAA0C,EAC1C,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC9C,MAAM,EAAE;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI;aACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aAClC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC;aAC5C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAC9B;aACA,IAAI,EAAE;aACN,OAAO,EAAE,CAAC;QAEb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8EAA8E,CAC/E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC"}

@@ -1,1 +0,1 @@

{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,qBAAa,KAAK;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAAO,EAAO,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAiBvC,MAAM,IAAI,YAAY;IAOtB,MAAM,CAAC,OAAO,IAAI,YAAY;CAG/B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IACjC,OAAO,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAWpC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK/C,KAAK,IAAI,KAAK;CAOf"}
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,qBAAa,KAAK;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAAO,EAAO,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAiBvC,MAAM,IAAI,YAAY;IAOtB,MAAM,CAAC,OAAO,IAAI,YAAY;CAG/B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAE/C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IACjC,OAAO,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAWpC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK/C,KAAK,IAAI,KAAK;CAOf"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,10 +16,5 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryBuilder = exports.Query = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
class Query {
import assert from "node:assert/strict";
import { StringUtils } from "@nestjs-port/core";
export class Query {
text;

@@ -30,10 +24,10 @@ history;

constructor(text, history = [], context = {}) {
(0, strict_1.default)(commons_1.StringUtils.hasText(text), "text cannot be null or empty");
(0, strict_1.default)(history != null, "history cannot be null");
assert(StringUtils.hasText(text), "text cannot be null or empty");
assert(history != null, "history cannot be null");
for (const message of history) {
(0, strict_1.default)(message != null, "history elements cannot be null");
assert(message != null, "history elements cannot be null");
}
(0, strict_1.default)(context != null, "context cannot be null");
assert(context != null, "context cannot be null");
for (const key of Object.keys(context)) {
(0, strict_1.default)(key != null, "context keys cannot be null");
assert(key != null, "context keys cannot be null");
}

@@ -54,4 +48,3 @@ this.text = text;

}
exports.Query = Query;
class QueryBuilder {
export class QueryBuilder {
_text = null;

@@ -77,7 +70,6 @@ _history = [];

build() {
(0, strict_1.default)(typeof this._text === "string" && this._text.trim().length > 0, "text cannot be null or empty");
assert(typeof this._text === "string" && this._text.trim().length > 0, "text cannot be null or empty");
return new Query(this._text, this._history, this._context);
}
}
exports.QueryBuilder = QueryBuilder;
//# sourceMappingURL=query.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AACxC,gDAAiD;AAGjD,MAAa,KAAK;IACP,IAAI,CAAS;IACb,OAAO,CAAY;IACnB,OAAO,CAA0B;IAE1C,YACE,IAAY,EACZ,UAAqB,EAAE,EACvB,UAAmC,EAAE;QAErC,IAAA,gBAAM,EAAC,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAClE,IAAA,gBAAM,EAAC,OAAO,IAAI,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAA,gBAAM,EAAC,OAAO,IAAI,IAAI,EAAE,iCAAiC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAA,gBAAM,EAAC,OAAO,IAAI,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IAAA,gBAAM,EAAC,GAAG,IAAI,IAAI,EAAE,6BAA6B,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,YAAY,EAAE;aACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;CACF;AAnCD,sBAmCC;AAED,MAAa,YAAY;IACf,KAAK,GAAkB,IAAI,CAAC;IAC5B,QAAQ,GAAc,EAAE,CAAC;IACzB,QAAQ,GAA4B,EAAE,CAAC;IAE/C,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAID,OAAO,CAAC,cAAmC,EAAE,GAAG,IAAe;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAgC;QACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAA,gBAAM,EACJ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAC9D,8BAA8B,CAC/B,CAAC;QACF,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACF;AAlCD,oCAkCC"}
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,KAAK;IACP,IAAI,CAAS;IACb,OAAO,CAAY;IACnB,OAAO,CAA0B;IAE1C,YACE,IAAY,EACZ,UAAqB,EAAE,EACvB,UAAmC,EAAE;QAErC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,iCAAiC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,wBAAwB,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,6BAA6B,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,YAAY,EAAE;aACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;aACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACf,KAAK,GAAkB,IAAI,CAAC;IAC5B,QAAQ,GAAc,EAAE,CAAC;IACzB,QAAQ,GAA4B,EAAE,CAAC;IAE/C,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAID,OAAO,CAAC,cAAmC,EAAE,GAAG,IAAe;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAAgC;QACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,CACJ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAC9D,8BAA8B,CAC/B,CAAC;QACF,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACF"}

@@ -1,3 +0,3 @@

export * from "./join";
export * from "./search";
export * from "./join/index.js";
export * from "./search/index.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retrieval/index.ts"],"names":[],"mappings":"AAgBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,19 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./join"), exports);
__exportStar(require("./search"), exports);
export * from "./join/index.js";
export * from "./search/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/retrieval/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,2CAAyB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/retrieval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
import type { Document } from "@nestjs-ai/commons";
import type { Query } from "../../query";
import { DocumentJoiner } from "./document-joiner";
import type { Query } from "../../query.js";
import { DocumentJoiner } from "./document-joiner.js";
/**

@@ -5,0 +5,0 @@ * Combines documents retrieved based on multiple queries and from multiple data sources

@@ -1,1 +0,1 @@

{"version":3,"file":"concatenation-document-joiner.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/concatenation-document-joiner.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,cAAc;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEO,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;CA8BvE"}
{"version":3,"file":"concatenation-document-joiner.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/concatenation-document-joiner.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,cAAc;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAErB;IAEO,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;CA8BvE"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,10 +16,5 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConcatenationDocumentJoiner = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const document_joiner_1 = require("./document-joiner");
import assert from "node:assert/strict";
import { LoggerFactory } from "@nestjs-port/core";
import { DocumentJoiner } from "./document-joiner.js";
/**

@@ -32,11 +26,11 @@ * Combines documents retrieved based on multiple queries and from multiple data sources

*/
class ConcatenationDocumentJoiner extends document_joiner_1.DocumentJoiner {
logger = commons_1.LoggerFactory.getLogger(ConcatenationDocumentJoiner.name);
export class ConcatenationDocumentJoiner extends DocumentJoiner {
logger = LoggerFactory.getLogger(ConcatenationDocumentJoiner.name);
join(documentsForQuery) {
(0, strict_1.default)(documentsForQuery, "documentsForQuery cannot be null");
assert(documentsForQuery, "documentsForQuery cannot be null");
for (const key of documentsForQuery.keys()) {
(0, strict_1.default)(key != null, "documentsForQuery cannot contain null keys");
assert(key != null, "documentsForQuery cannot contain null keys");
}
for (const value of documentsForQuery.values()) {
(0, strict_1.default)(value != null, "documentsForQuery cannot contain null values");
assert(value != null, "documentsForQuery cannot contain null values");
}

@@ -62,3 +56,2 @@ this.logger.debug("Joining documents by concatenation");

}
exports.ConcatenationDocumentJoiner = ConcatenationDocumentJoiner;
//# sourceMappingURL=concatenation-document-joiner.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"concatenation-document-joiner.js","sourceRoot":"","sources":["../../../src/retrieval/join/concatenation-document-joiner.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,gDAAgE;AAEhE,uDAAmD;AAEnD;;;;;GAKG;AACH,MAAa,2BAA4B,SAAQ,gCAAc;IAC5C,MAAM,GAAW,uBAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEO,IAAI,CAAC,iBAA2C;QACvD,IAAA,gBAAM,EAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAA,gBAAM,EAAC,GAAG,IAAI,IAAI,EAAE,4CAA4C,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAA,gBAAM,EAAC,KAAK,IAAI,IAAI,EAAE,8CAA8C,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAExD,4EAA4E;QAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEzC,KAAK,MAAM,aAAa,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;gBACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC9B,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAnCD,kEAmCC"}
{"version":3,"file":"concatenation-document-joiner.js","sourceRoot":"","sources":["../../../src/retrieval/join/concatenation-document-joiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAe,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAAc;IAC5C,MAAM,GAAW,aAAa,CAAC,SAAS,CACvD,2BAA2B,CAAC,IAAI,CACjC,CAAC;IAEO,IAAI,CAAC,iBAA2C;QACvD,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,4CAA4C,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,8CAA8C,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAExD,4EAA4E;QAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;QAEzC,KAAK,MAAM,aAAa,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;gBACtC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC9B,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
import type { Document } from "@nestjs-ai/commons";
import type { Query } from "../../query";
import type { Query } from "../../query.js";
export declare abstract class DocumentJoiner {

@@ -4,0 +4,0 @@ abstract join(documentsForQuery: Map<Query, Document[][]>): Document[];

@@ -1,1 +0,1 @@

{"version":3,"file":"document-joiner.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/document-joiner.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,8BAAsB,cAAc;IAClC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;IAEtE,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;CAG/D"}
{"version":3,"file":"document-joiner.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/document-joiner.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,cAAc;IAClC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;IAEtE,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE;CAG/D"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentJoiner = void 0;
class DocumentJoiner {
export class DocumentJoiner {
apply(documentsForQuery) {

@@ -25,3 +22,2 @@ return this.join(documentsForQuery);

}
exports.DocumentJoiner = DocumentJoiner;
//# sourceMappingURL=document-joiner.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"document-joiner.js","sourceRoot":"","sources":["../../../src/retrieval/join/document-joiner.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,MAAsB,cAAc;IAGlC,KAAK,CAAC,iBAA2C;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;CACF;AAND,wCAMC"}
{"version":3,"file":"document-joiner.js","sourceRoot":"","sources":["../../../src/retrieval/join/document-joiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,OAAgB,cAAc;IAGlC,KAAK,CAAC,iBAA2C;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;CACF"}

@@ -1,3 +0,3 @@

export { ConcatenationDocumentJoiner } from "./concatenation-document-joiner";
export { DocumentJoiner } from "./document-joiner";
export { ConcatenationDocumentJoiner } from "./concatenation-document-joiner.js";
export { DocumentJoiner } from "./document-joiner.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retrieval/join/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,8 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentJoiner = exports.ConcatenationDocumentJoiner = void 0;
var concatenation_document_joiner_1 = require("./concatenation-document-joiner");
Object.defineProperty(exports, "ConcatenationDocumentJoiner", { enumerable: true, get: function () { return concatenation_document_joiner_1.ConcatenationDocumentJoiner; } });
var document_joiner_1 = require("./document-joiner");
Object.defineProperty(exports, "DocumentJoiner", { enumerable: true, get: function () { return document_joiner_1.DocumentJoiner; } });
export { ConcatenationDocumentJoiner } from "./concatenation-document-joiner.js";
export { DocumentJoiner } from "./document-joiner.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/retrieval/join/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iFAA8E;AAArE,4IAAA,2BAA2B,OAAA;AACpC,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/retrieval/join/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
import type { Document } from "@nestjs-ai/commons";
import type { Query } from "../../query";
import type { Query } from "../../query.js";
export declare abstract class DocumentRetriever {

@@ -4,0 +4,0 @@ abstract retrieve(query: Query): Promise<Document[]>;

@@ -1,1 +0,1 @@

{"version":3,"file":"document-retriever.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/document-retriever.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEpD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAGzC"}
{"version":3,"file":"document-retriever.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/document-retriever.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEpD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAGzC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,5 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DocumentRetriever = void 0;
class DocumentRetriever {
export class DocumentRetriever {
apply(query) {

@@ -25,3 +22,2 @@ return this.retrieve(query);

}
exports.DocumentRetriever = DocumentRetriever;
//# sourceMappingURL=document-retriever.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"document-retriever.js","sourceRoot":"","sources":["../../../src/retrieval/search/document-retriever.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,MAAsB,iBAAiB;IAGrC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;AAND,8CAMC"}
{"version":3,"file":"document-retriever.js","sourceRoot":"","sources":["../../../src/retrieval/search/document-retriever.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,OAAgB,iBAAiB;IAGrC,KAAK,CAAC,KAAY;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}

@@ -1,3 +0,3 @@

export { DocumentRetriever } from "./document-retriever";
export { VectorStoreDocumentRetriever, type VectorStoreDocumentRetrieverProps, } from "./vector-store-document-retriever";
export { DocumentRetriever } from "./document-retriever.js";
export { VectorStoreDocumentRetriever, type VectorStoreDocumentRetrieverProps, } from "./vector-store-document-retriever.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,GACvC,MAAM,mCAAmC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,4BAA4B,EAC5B,KAAK,iCAAiC,GACvC,MAAM,sCAAsC,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,8 +16,4 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.VectorStoreDocumentRetriever = exports.DocumentRetriever = void 0;
var document_retriever_1 = require("./document-retriever");
Object.defineProperty(exports, "DocumentRetriever", { enumerable: true, get: function () { return document_retriever_1.DocumentRetriever; } });
var vector_store_document_retriever_1 = require("./vector-store-document-retriever");
Object.defineProperty(exports, "VectorStoreDocumentRetriever", { enumerable: true, get: function () { return vector_store_document_retriever_1.VectorStoreDocumentRetriever; } });
export { DocumentRetriever } from "./document-retriever.js";
export { VectorStoreDocumentRetriever, } from "./vector-store-document-retriever.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/retrieval/search/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,qFAG2C;AAFzC,+IAAA,4BAA4B,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/retrieval/search/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,4BAA4B,GAE7B,MAAM,sCAAsC,CAAC"}
import type { Document } from "@nestjs-ai/commons";
import { Filter, type VectorStore } from "@nestjs-ai/vector-store";
import type { Query } from "../../query";
import { DocumentRetriever } from "./document-retriever";
import type { Query } from "../../query.js";
import { DocumentRetriever } from "./document-retriever.js";
export interface VectorStoreDocumentRetrieverProps {

@@ -6,0 +6,0 @@ vectorStore: VectorStore;

@@ -1,1 +0,1 @@

{"version":3,"file":"vector-store-document-retriever.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/vector-store-document-retriever.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,MAAM,EAGN,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,CAAC,EACb,MAAM,CAAC,UAAU,GACjB,CAAC,MAAM,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAChC,IAAI,CAAC;CACV;AAED,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,oCAAoC;IAErE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAEvD,KAAK,EAAE,iCAAiC;IA6B3C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYpD,OAAO,CAAC,8BAA8B;CAgBvC"}
{"version":3,"file":"vector-store-document-retriever.d.ts","sourceRoot":"","sources":["../../../src/retrieval/search/vector-store-document-retriever.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,MAAM,EAGN,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,CAAC,EACb,MAAM,CAAC,UAAU,GACjB,CAAC,MAAM,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAChC,IAAI,CAAC;CACV;AAED,qBAAa,4BAA6B,SAAQ,iBAAiB;IACjE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,oCAAoC;IAErE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAEvD,KAAK,EAAE,iCAAiC;IA6B3C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYpD,OAAO,CAAC,8BAA8B;CAgBvC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.VectorStoreDocumentRetriever = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
const commons_1 = require("@nestjs-ai/commons");
const vector_store_1 = require("@nestjs-ai/vector-store");
const document_retriever_1 = require("./document-retriever");
class VectorStoreDocumentRetriever extends document_retriever_1.DocumentRetriever {
import assert from "node:assert/strict";
import { Filter, FilterExpressionTextParser, SearchRequest, } from "@nestjs-ai/vector-store";
import { StringUtils } from "@nestjs-port/core";
import { DocumentRetriever } from "./document-retriever.js";
export class VectorStoreDocumentRetriever extends DocumentRetriever {
static FILTER_EXPRESSION = "vector_store_filter_expression";

@@ -35,8 +29,8 @@ _vectorStore;

super();
(0, strict_1.default)(props.vectorStore != null, "vectorStore cannot be null");
assert(props.vectorStore != null, "vectorStore cannot be null");
const similarityThreshold = props.similarityThreshold ??
vector_store_1.SearchRequest.SIMILARITY_THRESHOLD_ACCEPT_ALL;
(0, strict_1.default)(similarityThreshold >= 0.0, "similarityThreshold must be equal to or greater than 0.0");
const topK = props.topK ?? vector_store_1.SearchRequest.DEFAULT_TOP_K;
(0, strict_1.default)(topK > 0, "topK must be greater than 0");
SearchRequest.SIMILARITY_THRESHOLD_ACCEPT_ALL;
assert(similarityThreshold >= 0.0, "similarityThreshold must be equal to or greater than 0.0");
const topK = props.topK ?? SearchRequest.DEFAULT_TOP_K;
assert(topK > 0, "topK must be greater than 0");
let filterExpression = () => null;

@@ -56,5 +50,5 @@ if (typeof props.filterExpression === "function") {

retrieve(query) {
(0, strict_1.default)(query != null, "query cannot be null");
assert(query != null, "query cannot be null");
const requestFilterExpression = this.computeRequestFilterExpression(query);
const searchRequest = vector_store_1.SearchRequest.builder()
const searchRequest = SearchRequest.builder()
.query(query.text)

@@ -70,8 +64,8 @@ .filterExpression(requestFilterExpression)

if (contextFilterExpression != null) {
if (contextFilterExpression instanceof vector_store_1.Filter.Expression) {
if (contextFilterExpression instanceof Filter.Expression) {
return contextFilterExpression;
}
const textFilterExpression = contextFilterExpression.toString();
if (commons_1.StringUtils.hasText(textFilterExpression)) {
return new vector_store_1.FilterExpressionTextParser().parse(textFilterExpression);
if (StringUtils.hasText(textFilterExpression)) {
return new FilterExpressionTextParser().parse(textFilterExpression);
}

@@ -82,3 +76,2 @@ }

}
exports.VectorStoreDocumentRetriever = VectorStoreDocumentRetriever;
//# sourceMappingURL=vector-store-document-retriever.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"vector-store-document-retriever.js","sourceRoot":"","sources":["../../../src/retrieval/search/vector-store-document-retriever.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAExC,gDAAiD;AACjD,0DAKiC;AAEjC,6DAAyD;AAYzD,MAAa,4BAA6B,SAAQ,sCAAiB;IACjE,MAAM,CAAU,iBAAiB,GAAG,gCAAgC,CAAC;IAEpD,YAAY,CAAc;IAC1B,oBAAoB,CAAS;IAC7B,KAAK,CAAS;IACd,iBAAiB,CAAiC;IAEnE,YAAY,KAAwC;QAClD,KAAK,EAAE,CAAC;QACR,IAAA,gBAAM,EAAC,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE,4BAA4B,CAAC,CAAC;QAEhE,MAAM,mBAAmB,GACvB,KAAK,CAAC,mBAAmB;YACzB,4BAAa,CAAC,+BAA+B,CAAC;QAChD,IAAA,gBAAM,EACJ,mBAAmB,IAAI,GAAG,EAC1B,0DAA0D,CAC3D,CAAC;QAEF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,4BAAa,CAAC,aAAa,CAAC;QACvD,IAAA,gBAAM,EAAC,IAAI,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAEhD,IAAI,gBAAgB,GAAmC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClE,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YACjD,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,0BAA0B,GAAG,KAAK,CAAC,gBAAgB,CAAC;YAC1D,gBAAgB,GAAG,GAAG,EAAE,CAAC,0BAA0B,IAAI,IAAI,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAEQ,QAAQ,CAAC,KAAY;QAC5B,IAAA,gBAAM,EAAC,KAAK,IAAI,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAC9C,MAAM,uBAAuB,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,4BAAa,CAAC,OAAO,EAAE;aAC1C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aACjB,gBAAgB,CAAC,uBAAuB,CAAC;aACzC,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,CAAC;aAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAChB,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAEO,8BAA8B,CACpC,KAAY;QAEZ,MAAM,uBAAuB,GAC3B,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;QAChE,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;YACpC,IAAI,uBAAuB,YAAY,qBAAM,CAAC,UAAU,EAAE,CAAC;gBACzD,OAAO,uBAAuB,CAAC;YACjC,CAAC;YACD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAC;YAChE,IAAI,qBAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,yCAA0B,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;;AAhEH,oEAiEC"}
{"version":3,"file":"vector-store-document-retriever.js","sourceRoot":"","sources":["../../../src/retrieval/search/vector-store-document-retriever.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,2 @@

export { PromptAssert } from "./prompt-assert";
export { PromptAssert } from "./prompt-assert.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,6 +16,3 @@ * Copyright 2023-present the original author or authors.

*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptAssert = void 0;
var prompt_assert_1 = require("./prompt-assert");
Object.defineProperty(exports, "PromptAssert", { enumerable: true, get: function () { return prompt_assert_1.PromptAssert; } });
export { PromptAssert } from "./prompt-assert.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}

@@ -1,2 +0,1 @@

"use strict";
/*

@@ -17,12 +16,7 @@ * Copyright 2023-present the original author or authors.

*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptAssert = void 0;
const strict_1 = __importDefault(require("node:assert/strict"));
class PromptAssert {
import assert from "node:assert/strict";
export class PromptAssert {
static templateHasRequiredPlaceholders(promptTemplate, ...placeholders) {
(0, strict_1.default)(promptTemplate != null, "promptTemplate cannot be null");
(0, strict_1.default)(placeholders.length > 0, "placeholders cannot be null or empty");
assert(promptTemplate != null, "promptTemplate cannot be null");
assert(placeholders.length > 0, "placeholders cannot be null or empty");
const missingPlaceholders = [];

@@ -39,3 +33,2 @@ for (const placeholder of placeholders) {

}
exports.PromptAssert = PromptAssert;
//# sourceMappingURL=prompt-assert.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"prompt-assert.js","sourceRoot":"","sources":["../../src/util/prompt-assert.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAEH,gEAAwC;AAGxC,MAAsB,YAAY;IAChC,MAAM,CAAC,+BAA+B,CACpC,cAA8B,EAC9B,GAAG,YAAsB;QAEzB,IAAA,gBAAM,EAAC,cAAc,IAAI,IAAI,EAAE,+BAA+B,CAAC,CAAC;QAChE,IAAA,gBAAM,EAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAExE,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,sEAAsE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AArBD,oCAqBC"}
{"version":3,"file":"prompt-assert.js","sourceRoot":"","sources":["../../src/util/prompt-assert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAGxC,MAAM,OAAgB,YAAY;IAChC,MAAM,CAAC,+BAA+B,CACpC,cAA8B,EAC9B,GAAG,YAAsB;QAEzB,MAAM,CAAC,cAAc,IAAI,IAAI,EAAE,+BAA+B,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAExE,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,sEAAsE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
{
"name": "@nestjs-ai/rag",
"version": "0.0.2",
"version": "0.1.0",
"private": false,
"description": "Retrieval Augmented Generation (RAG) support for NestJS AI",
"keywords": [
"ai",
"nestjs",
"rag"
],
"homepage": "https://nestjs-port.github.io/nestjs-ai",
"license": "Apache-2.0",
"repository": {

@@ -12,8 +18,7 @@ "type": "git",

},
"keywords": [
"nestjs",
"ai",
"rag"
"files": [
"dist",
"CHANGELOG.md"
],
"license": "Apache-2.0",
"type": "module",
"main": "./dist/index.js",

@@ -24,21 +29,22 @@ "types": "./dist/index.d.ts",

"types": "./dist/index.d.ts",
"require": "./dist/index.js"
"default": "./dist/index.js"
}
},
"devDependencies": {
"@nestjs-port/core": "^0.0.4",
"@nestjs-ai/client-chat": "0.1.0",
"@nestjs-ai/commons": "0.1.0",
"@nestjs-ai/model": "0.1.0",
"@nestjs-ai/vector-store": "0.1.0"
},
"peerDependencies": {
"@nestjs-ai/client-chat": "*",
"@nestjs-ai/commons": "*",
"@nestjs-ai/model": "*",
"@nestjs-ai/vector-store": "*"
"@nestjs-port/core": "^0.0.4",
"@nestjs-ai/client-chat": "^0.1.0",
"@nestjs-ai/commons": "^0.1.0",
"@nestjs-ai/model": "^0.1.0",
"@nestjs-ai/vector-store": "^0.1.0"
},
"devDependencies": {
"@nestjs-ai/client-chat": "0.0.2",
"@nestjs-ai/commons": "0.0.2",
"@nestjs-ai/model": "0.0.2",
"@nestjs-ai/vector-store": "0.0.2"
"engines": {
"node": ">=22.12.0"
},
"files": [
"dist",
"CHANGELOG.md"
],
"scripts": {

@@ -45,0 +51,0 @@ "build": "pnpm clean && tsc -p tsconfig.build.json",

+198
-61

@@ -5,3 +5,3 @@ # NestJS AI

**Last synced Spring AI commit:** `da8db657` (Remove Anthropic IT that no longer makes sense)
**Last synced Spring AI commit:** `d3e495d2` (Expose conversationHistoryEnabled getter in ToolCallAdvisor.Builder)

@@ -14,2 +14,8 @@ ## Overview

## Documentation & Resources
- 📖 **Reference Documentation**: [https://nestjs-port.github.io/nestjs-ai](https://nestjs-port.github.io/nestjs-ai)
- 💡 **Example Applications**: [nestjs-port/nestjs-ai-examples](https://github.com/nestjs-port/nestjs-ai-examples)
- 🔗 **Upstream Project**: [Spring AI](https://github.com/spring-projects/spring-ai) — the Java/Spring project this port tracks
## Key Features

@@ -30,55 +36,175 @@

| 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 |
| Category | Technology |
| --------------- | ------------------------------------------------------------------------------ |
| Language | TypeScript 6.x (strict mode) |
| Runtime | Node.js >= 22.12 |
| Module format | ESM only |
| Framework | NestJS 11.x |
| Package Manager | pnpm 10.x |
| Build | Turborepo + tsc |
| Test | Vitest 4.x + TestContainers |
| Lint/Format | Oxlint + Oxfmt |
| Reactive | RxJS 7.x |
| Validation | [Standard Schema](https://standardschema.dev/) (zod / valibot / arktype / ...) |
## Porting Progress
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% |
| **Model Providers** | spring-ai-openai | `@nestjs-ai/model-openai` | 100% |
| | spring-ai-google-genai | `@nestjs-ai/model-google-genai` | 100% |
| | spring-ai-transformers | `@nestjs-ai/model-transformers` | 100% |
| | spring-ai-anthropic | `@nestjs-ai/model-anthropic` | 100% |
| | 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 | `@nestjs-ai/model-chat-memory-repository-jsdbc` | 100% |
| | 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-mcp-annotations | `@nestjs-ai/mcp-annotations` | 5% |
| 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% |
## Differences from Spring AI
NestJS AI mirrors Spring AI's module structure and API design, but adapts the following areas to fit the Node.js / TypeScript ecosystem.
### 1. Standard Schema instead of reflection-based JSON Schema
Spring AI derives JSON Schema for tool/function calling from Java classes via reflection. Node.js reflection is limited, so NestJS AI accepts any schema that implements [**Standard Schema**](https://standardschema.dev/) as the source of truth for tool parameters and structured output. Standard Schema is a vendor-neutral interface (`~standard.validate()` + `~standard.jsonSchema`) that [zod](https://github.com/colinhacks/zod), [valibot](https://github.com/fabian-hiller/valibot), [arktype](https://github.com/arktypeio/arktype), [effect](https://github.com/Effect-TS/effect), and others implement out of the box, so you can pick whichever library you prefer. The schema is both the runtime validator and the JSON Schema fed to the model.
```typescript
import { Tool } from "@nestjs-ai/model";
import { z } from "zod"; // or valibot, arktype, ... — any Standard-Schema-compatible library works
class WeatherTools {
@Tool({
description: "Get current weather for a city",
parameters: z.object({
city: z.string(),
unit: z.enum(["celsius", "fahrenheit"]).optional(),
}),
})
getWeather(input: { city: string; unit?: "celsius" | "fahrenheit" }) {
return fetchWeather(input.city, input.unit);
}
}
```
Structured output works the same way — pass a Standard Schema to `.entity()`:
```typescript
const sentiment = await chatClient
.prompt("Classify: I love this product!")
.call()
.entity(z.object({ sentiment: z.enum(["positive", "negative", "neutral"]) }));
```
### 2. NestJS dynamic modules instead of Spring Boot auto-configuration
Spring AI wires beans through `@EnableAutoConfiguration` and `application.properties`. NestJS AI uses NestJS dynamic modules — `forRoot()`, `forFeature()`, `forFeatureAsync()` — so configuration is explicit in your module graph.
```typescript
import { Module } from "@nestjs/common";
import { NestAiModule } from "@nestjs-ai/platform";
import { OpenAiChatModelModule } from "@nestjs-ai/model-openai";
import { ChatClientModule } from "@nestjs-ai/client-chat";
@Module({
imports: [
NestAiModule.forRoot(),
OpenAiChatModelModule.forFeature({
apiKey: process.env.OPENAI_API_KEY,
options: { model: "gpt-4o-mini", temperature: 0.7 },
}),
ChatClientModule.forFeature(),
],
})
export class AppModule {}
```
For dynamic configuration (e.g., `ConfigService`), use the async variant:
```typescript
OpenAiChatModelModule.forFeatureAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
apiKey: config.getOrThrow("OPENAI_API_KEY"),
options: { model: config.get("OPENAI_MODEL", "gpt-4o-mini") },
}),
});
```
### 3. Props objects instead of builder-only configuration
Spring AI's options classes are constructed via `.builder()...build()`. NestJS AI keeps the builder available (via `.builder()` / `.mutate()`) but options constructors accept a **plain props object (JSON literal)**, which matches TypeScript idioms and avoids fluent-chain ceremony.
```typescript
import { OpenAiChatOptions } from "@nestjs-ai/model-openai";
// Props style (preferred)
const options = new OpenAiChatOptions({
model: "gpt-4o-mini",
temperature: 0.7,
maxTokens: 1024,
});
// Builder style (still supported, useful for partial mutation)
const tuned = OpenAiChatOptions.builder()
.temperature(0.9)
.maxTokens(2048)
.build();
```
### 4. ChatClient `prompt()` accepts both fluent API and JSON literal
Spring AI's `ChatClient.prompt()` is fluent. NestJS AI's `prompt()` is overloaded so you can pick whichever style fits the call site — a bare string, a `Prompt` instance, a props object, or the fluent chain.
```typescript
// Fluent API (Spring AI-style)
await chatClient
.prompt()
.system("You are a helpful assistant.")
.user("Summarize TypeScript in one sentence.")
.call()
.content();
// String shorthand
await chatClient
.prompt("Summarize TypeScript in one sentence.")
.call()
.content();
// JSON literal props — most ergonomic when options are dynamic
await chatClient
.prompt({
system: "You are a helpful assistant.",
user: "Summarize TypeScript in one sentence.",
options: OpenAiChatOptions.builder().temperature(0.3),
})
.call()
.content();
```
All four forms return the same `ChatClientRequestSpec`, so `.call()`, `.stream()`, `.entity(zodSchema)`, and advisor/tool composition work uniformly.
## Project Structure

@@ -90,18 +216,18 @@

│ ├── model/ # Core chat/embedding abstractions
│ ├── client-chat/ # High-level client API & advisors
│ ├── client-chat/ # High-level fluent ChatClient API
│ ├── commons/ # Shared utilities & tokens
│ ├── platform/ # NestJS module integration
│ ├── platform/ # NestJS module integration (NestAiModule)
│ ├── 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
│ ├── template-st/ # StringTemplate-based prompt templating
│ ├── integration-tests/ # Cross-package integration test suite
│ ├── models/
│ │ ├── openai/ # OpenAI provider
│ │ ├── google-genai/ # Google GenAI provider
│ │ ├── google-genai/ # Google GenAI (Gemini / Vertex AI) provider
│ │ ├── anthropic/ # Anthropic (Claude) provider
│ │ └── transformers/ # Hugging Face local embeddings
│ ├── mcp/
│ │ └── common/ # Model Context Protocol
│ │ ├── common/ # Model Context Protocol core
│ │ └── annotations/ # MCP annotations (WIP)
│ ├── vector-stores/

@@ -111,5 +237,6 @@ │ │ └── redis-store/ # Redis vector store

│ │ └── repository/
│ │ └── model-chat-memory-repository-redis/
│ │ ├── model-chat-memory-repository-redis/ # Redis-backed chat memory
│ │ └── model-chat-memory-repository-jsdbc/ # SQL-backed chat memory (MySQL/Postgres/Oracle/SQL Server/SQLite)
│ ├── document-readers/
│ │ ├── pdf-reader/ # PDF.js reader
│ │ ├── pdf-reader/ # PDF reader
│ │ ├── markdown-reader/ # Markdown reader

@@ -119,3 +246,3 @@ │ │ ├── cheerio-reader/ # HTML/web scraping

│ └── advisors/
│ └── advisors-vector-store/
│ └── advisors-vector-store/ # Vector-store-backed advisors
├── docs/ # Antora documentation site

@@ -129,5 +256,7 @@ └── turbo.json # Turborepo configuration

- Node.js >= 20.0.0
- Node.js >= 22.12.0 (required for `require(esm)` support so ESM-only packages can be consumed from CJS)
- pnpm >= 10.0.0
All packages are published as **ESM only**. Consumer apps running Node.js 22.12+ can import them from either ESM or CJS code.
### Installation

@@ -157,1 +286,9 @@

```
## License
NestJS AI is released under the [Apache License 2.0](./LICENSE), matching the license of the upstream [Spring AI](https://github.com/spring-projects/spring-ai) project.
## Acknowledgments
NestJS AI would not exist without the foundational work of the [Spring AI](https://github.com/spring-projects/spring-ai) team and contributors. This project is a faithful TypeScript/NestJS port of Spring AI's abstractions, module structure, and API design — all credit for the original architecture and research belongs to them.