diff --git a/packages/pi-extension/README.md b/packages/pi-extension/README.md index 1034ff1..95743e3 100644 --- a/packages/pi-extension/README.md +++ b/packages/pi-extension/README.md @@ -142,7 +142,7 @@ pnpm --filter @parallel-web/pi-extension typecheck ## Notes - The extension uses the `parallel-web` TypeScript SDK directly. -- Search requests use Parallel SDK `basic` mode. +- Search requests use Parallel SDK `fast` mode. - Search requests include `client_model` when Pi has an active model selected. - Search and extract requests reuse a generated `session_id` for the life of the current Pi session. - The login flow tries to open your browser automatically. diff --git a/packages/pi-extension/package.json b/packages/pi-extension/package.json index a900c66..d694a67 100644 --- a/packages/pi-extension/package.json +++ b/packages/pi-extension/package.json @@ -17,7 +17,7 @@ "README.md" ], "dependencies": { - "parallel-web": "0.5.0", + "parallel-web": "1.3.0", "typebox": "^1.1.37" }, "peerDependencies": { diff --git a/packages/pi-extension/src/__tests__/parallel-client.test.ts b/packages/pi-extension/src/__tests__/parallel-client.test.ts new file mode 100644 index 0000000..b59cfda --- /dev/null +++ b/packages/pi-extension/src/__tests__/parallel-client.test.ts @@ -0,0 +1,40 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { runParallelSearch } from '../parallel-client.js'; + +afterEach(() => { + vi.unstubAllGlobals(); +}); + +describe('runParallelSearch', () => { + it('uses fast mode for interactive Pi searches', async () => { + const fetchMock = vi.fn( + async () => + new Response( + JSON.stringify({ + search_id: 'search_test', + results: [], + warnings: null, + usage: [], + }), + { + status: 200, + headers: { 'content-type': 'application/json' }, + } + ) + ); + vi.stubGlobal('fetch', fetchMock); + + await runParallelSearch('test-key', { + objective: 'Find current Parallel Search documentation', + search_queries: ['Parallel Search modes'], + }); + + const [url, init] = fetchMock.mock.calls[0]!; + expect(url).toBe('https://api.parallel.ai/v1/search'); + expect(JSON.parse(init?.body as string)).toMatchObject({ + objective: 'Find current Parallel Search documentation', + search_queries: ['Parallel Search modes'], + mode: 'fast', + }); + }); +}); diff --git a/packages/pi-extension/src/parallel-client.ts b/packages/pi-extension/src/parallel-client.ts index 6c242a1..ec74218 100644 --- a/packages/pi-extension/src/parallel-client.ts +++ b/packages/pi-extension/src/parallel-client.ts @@ -36,7 +36,7 @@ export async function runParallelSearch( { objective: input.objective, search_queries: input.search_queries, - mode: 'advanced', + mode: 'fast', client_model: input.client_model, session_id: input.session_id, }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8838fa..f5b6d7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -141,8 +141,8 @@ importers: specifier: '>=0.83.0' version: 0.84.1(@modelcontextprotocol/sdk@1.30.0(supports-color@7.2.0)(zod@4.3.6))(supports-color@7.2.0)(ws@8.21.3)(zod@4.3.6) parallel-web: - specifier: 0.5.0 - version: 0.5.0 + specifier: 1.3.0 + version: 1.3.0 typebox: specifier: ^1.1.37 version: 1.1.37