diff --git a/apps/sim/blocks/blocks/pinecone.ts b/apps/sim/blocks/blocks/pinecone.ts index 3d01b42f702..b481f3c8862 100644 --- a/apps/sim/blocks/blocks/pinecone.ts +++ b/apps/sim/blocks/blocks/pinecone.ts @@ -514,6 +514,15 @@ export const PineconeBlock: BlockConfig = { if (params.deleteAll != null && params.deleteAll !== '') { result.deleteAll = params.deleteAll === true || params.deleteAll === 'true' } + if (params.options != null && params.options !== '') { + const options = Array.isArray(params.options) + ? params.options + : typeof params.options === 'string' + ? JSON.parse(params.options) + : [] + result.includeValues = options.includes('includeValues') + result.includeMetadata = options.includes('includeMetadata') + } return result }, }, diff --git a/apps/sim/tools/pinecone/search_vector.test.ts b/apps/sim/tools/pinecone/search_vector.test.ts new file mode 100644 index 00000000000..258b2cd761c --- /dev/null +++ b/apps/sim/tools/pinecone/search_vector.test.ts @@ -0,0 +1,24 @@ +/** + * @vitest-environment node + */ +import { describe, expect, it } from 'vitest' +import { searchVectorTool } from '@/tools/pinecone/search_vector' + +const baseParams = { + apiKey: 'test-key', + indexHost: 'https://example.pinecone.io', + vector: [0.1, 0.2], +} + +describe('Pinecone vector search output options', () => { + it.each([ + [{}, false, false], + [{ includeValues: true }, true, false], + [{ includeMetadata: true }, false, true], + [{ includeValues: true, includeMetadata: true }, true, true], + ])('sends the selected options (%j)', (options, includeValues, includeMetadata) => { + const body = searchVectorTool.request.body?.({ ...baseParams, ...options }) + + expect(body).toMatchObject({ includeValues, includeMetadata }) + }) +}) diff --git a/apps/sim/tools/pinecone/search_vector.ts b/apps/sim/tools/pinecone/search_vector.ts index c4854a40ab4..c664b8252e9 100644 --- a/apps/sim/tools/pinecone/search_vector.ts +++ b/apps/sim/tools/pinecone/search_vector.ts @@ -76,8 +76,8 @@ export const searchVectorTool: ToolConfig