mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
- Restore the universal JSDoc rule the rewrite dropped (module doc comment + semantic JSDoc on every export), in root AGENTS.md § Type safety and documentation — the generated-catalog RFC cites it as the rule the generator enforces at the source. - Repoint the six remaining citations of moved content that the section-name grep missed (rule-title quotes and prose references): agent-loop agent.ts, acp index.ts, acp turns.spec.ts, the Exa e2e header, the real-api-e2e RFC, the doc-sync-enforcement RFC amendment, and rfc/implemented/AGENTS.md's section-name casing. - Fix two docs/testing.md overstatements: the unit tier also runs examples/*/tests specs, and keyless-by-nature examples have no with-key smoke. - Displacement trims keep root AGENTS.md at 1,498/1,500.
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { ExaSearchProvider, EXA_DEFAULT_BASE_URL, EXA_DEFAULT_HIGHLIGHTS_PER_RESULT, EXA_DEFAULT_SEARCH_TYPE } from '@deepseek-ai/dsh-web-search-exa'
|
|
|
|
/**
|
|
* Real-API smoke for the Exa search provider. Self-skips without `$EXA_API_KEY`
|
|
* (CI has no secrets), per the with-key e2e policy in docs/testing.md.
|
|
*/
|
|
const apiKey = process.env.EXA_API_KEY
|
|
const maybe = apiKey !== undefined && apiKey.length > 0 ? describe : describe.skip
|
|
|
|
maybe('ExaSearchProvider real API', () => {
|
|
it('returns sources for a live query', async () => {
|
|
const provider = new ExaSearchProvider({
|
|
apiKey: apiKey!,
|
|
baseURL: process.env.EXA_BASE_URL ?? EXA_DEFAULT_BASE_URL,
|
|
searchType: EXA_DEFAULT_SEARCH_TYPE,
|
|
highlightsPerResult: EXA_DEFAULT_HIGHLIGHTS_PER_RESULT,
|
|
})
|
|
const result = await provider.search({ query: 'DeepSeek coding agent', maxResults: 5 })
|
|
expect(result.providerId).toBe('exa')
|
|
expect(result.sources.length).toBeGreaterThan(0)
|
|
for (const source of result.sources) expect(source.url).toMatch(/^https?:\/\//)
|
|
}, 30_000)
|
|
})
|