jp_lit_search_guides_cases
Search reference cases to find similar questions, answer processes, and reference materials for advancing your research.
Instructions
レファレンス協同データベースのレファレンス事例を検索する。類似質問、回答プロセス、参考資料を調査の次の一手の材料として参照するためのツール
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| page | No | ||
| lib_id | No | ||
| lib_group | No | ||
| force_refresh | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| type | Yes | ||
| page | Yes | ||
| limit | Yes | ||
| total | Yes | ||
| items | Yes | ||
| raw | Yes | ||
| cache | No |
Implementation Reference
- Main handler function that parses input, calls crdClient.searchCases() with caching, validates output via guidesCasesOutputSchema, and returns structured content.
export function createJpLitSearchGuidesCasesTool( crdClient: CrdClient, cache: FileCache = createFileCache(), sessions: SessionStore = createSessionStore() ) { return async (input: unknown) => { const parsed = guidesCasesInputSchema.parse(input); const { force_refresh, ...cacheableInput } = parsed; const result = await runCachedTool<GuidesCasesOutput>({ tool: "jp_lit_search_guides_cases", input: cacheableInput as Record<string, unknown>, cache, sessions, bypassCache: force_refresh, live: async () => guidesCasesOutputSchema.parse( await crdClient.searchCases({ query: parsed.query, limit: parsed.limit, page: parsed.page, lib_id: parsed.lib_id, lib_group: parsed.lib_group }) ) }); const structuredContent = guidesCasesOutputSchema.parse( withToolCache(result.structuredContent as Record<string, unknown>, result) ); return { content: [{ type: "text" as const, text: JSON.stringify(structuredContent, null, 2) }], structuredContent }; }; }