Skip to content

Releases: DavideCarvalho/nestjs-agent

@dudousxd/nestjs-agent@1.39.1

Choose a tag to compare

Patch Changes

  • #403 22c8dd7 Thanks @DavideCarvalho! - Depend on zod ^4.6.6 instead of 3.25.76, which GHSA-mrhx-c7xc-m3w5 covers (zod before 4.6.6; no 3.x is patched). Your own tools can stay on Zod 3 or use Zod 4. If your app keeps Zod 3, the AI SDK converts this library's built-in tool schemas with its own older converter, so the executeSql input loses its description and minLength in the JSON Schema the model sees. The input is still validated.

@dudousxd/nestjs-agent-rag@0.14.4

Choose a tag to compare

Patch Changes

  • #403 22c8dd7 Thanks @DavideCarvalho! - RedisVectorStore.updateMetadata now takes the same per-document lock as replaceDocument and remove. Without it, a chunk they deleted mid-update came back as a hash holding only metadata.

@dudousxd/nestjs-agent-rag@0.14.3

Choose a tag to compare

Patch Changes

  • #402 bc17ff1 Thanks @DavideCarvalho! - RedisVectorStore.removeMany and removeWhere wait for a replaceDocument in progress, so they can't leave part of a document behind. RedisVectorStore.replaceDocument swaps a document in one script, so a search no longer sees both versions; a document of more than 256 chunks is still written in steps. In MemoryVectorStore, remove, removeMany and removeWhere take their turn with replaceDocument.

@dudousxd/nestjs-agent-data@0.4.30

Choose a tag to compare

Patch Changes

  • #403 22c8dd7 Thanks @DavideCarvalho! - Depend on zod ^4.6.6 instead of 3.25.76, which GHSA-mrhx-c7xc-m3w5 covers (zod before 4.6.6; no 3.x is patched). Your own tools can stay on Zod 3 or use Zod 4. If your app keeps Zod 3, the AI SDK converts this library's built-in tool schemas with its own older converter, so the executeSql input loses its description and minLength in the JSON Schema the model sees. The input is still validated.

@dudousxd/nestjs-agent-store-mikro-orm@0.42.0

Choose a tag to compare

Minor Changes

  • #399 9b9107f Thanks @DavideCarvalho! - RAG declared per model. RagRepository and RagModule (@dudousxd/nestjs-agent-rag/nestjs, with @nestjs/common as an optional peer) and the framework-free RagIndex: a scope a search can't omit or override, no indexing on save, embeddings before replacing chunks, reconcile for what no hook sees, and onUsage. provideRagDeleteSync in the MikroORM store removes chunks after the commit. Also new: vectorType: 'halfvec' on PgVectorStore, filter: (ctx) => ... on createRetrievalTool, and embedWithUsage on openAiEmbeddings.

@dudousxd/nestjs-agent-rag@0.14.2

Choose a tag to compare

Patch Changes

  • #401 e5f91f4 Thanks @DavideCarvalho! - RedisVectorStore.remove waits for a replaceDocument in progress, so it can't leave part of a document behind. MemoryVectorStore gains replaceDocument, which queues calls per document.

@dudousxd/nestjs-agent-rag@0.14.1

Choose a tag to compare

Patch Changes

  • #400 43d5ec7 Thanks @DavideCarvalho! - replaceDocument no longer leaves a mix of versions when the same document is replaced concurrently. PgVectorStore takes an advisory lock per document, which also stops the deadlocks. RedisVectorStore gains replaceDocument, with a per-document lease that needs SET and EVAL on the client.

@dudousxd/nestjs-agent-rag@0.14.0

Choose a tag to compare

Minor Changes

  • #399 9b9107f Thanks @DavideCarvalho! - RAG declared per model. RagRepository and RagModule (@dudousxd/nestjs-agent-rag/nestjs, with @nestjs/common as an optional peer) and the framework-free RagIndex: a scope a search can't omit or override, no indexing on save, embeddings before replacing chunks, reconcile for what no hook sees, and onUsage. provideRagDeleteSync in the MikroORM store removes chunks after the commit. Also new: vectorType: 'halfvec' on PgVectorStore, filter: (ctx) => ... on createRetrievalTool, and embedWithUsage on openAiEmbeddings.

  • #398 109aab9 Thanks @DavideCarvalho! - An undefined filter value now matches nothing, in every store. On pgvector it used to drop the key and match every row, so new FilteredRetriever(base, { tenantId: undefined }) returned all tenants and removeWhere({ tenantId: undefined }) deleted the table. removeWhere now throws UnsafeRemovalError with reason undefined-value. If you pass { lang: maybeUndefined } to mean "no filter", omit the key instead.

@dudousxd/nestjs-agent-rag-media@0.6.5

Choose a tag to compare

Patch Changes

  • #398 109aab9 Thanks @DavideCarvalho! - ingestMediaFile embeds before removing the previous chunks, so a provider failure no longer drops the document from the index.

@dudousxd/nestjs-agent@1.39.0

Choose a tag to compare

Minor Changes

  • #397 2b48120 Thanks @DavideCarvalho! - recordUsage can keep spend the app budgets on its own out of the agent quota, and the usage breakdown gets sharper (paired with @adonis-agora/agent).

    • countsTowardsQuota: false on AgentService.recordUsage (and RecordUsageInput) keeps a row out of the agent's quota: quotaToday / usageBetween / usageWindows skip it and no QuotaStore counter is bumped. It stays in the ledger, every report and usage.recorded (which carries countsTowardsQuota: false). Stored in the new agent_token_usage.counts_towards_quota (boolean, NOT NULL DEFAULT true), added by the Drizzle heal and the MikroORM heal (schema revision 6).
    • modelId is optional on recordUsage: absent, null or blank → 'unknown' (UNKNOWN_MODEL).
    • usageBreakdown takes a timestamp window ({ from, to }, to exclusive, usageRangeBounds) as well as UTC days, reports unpricedRows, and reprice: false reports recorded cost only.
    • Testing: two more USAGE_LEDGER_STORE_CONTRACT cases.

Patch Changes

  • Updated dependencies [2b48120]:
    • @dudousxd/nestjs-agent-core@0.61.0