()
| 54 | * has written the new object. |
| 55 | */ |
| 56 | export async function getNonCodemodeTools(): Promise<NonCodemodeTool[]> { |
| 57 | const now = Date.now() |
| 58 | if (fresh(nonCodemodeToolsEntry, now)) return nonCodemodeToolsEntry.value |
| 59 | |
| 60 | const obj = await env.SPEC_BUCKET.get('non-codemode-tools.json') |
| 61 | const value = obj |
| 62 | ? ((await obj.json()) as NonCodemodeTool[]) |
| 63 | : buildNonCodemodeTools((await getSpec()).paths) |
| 64 | nonCodemodeToolsEntry = { value, expiresAt: now + TTL_MS } |
| 65 | return value |
| 66 | } |
| 67 | |
| 68 | /** Name lookup used by lazy non-Code-Mode tools/call dispatch. */ |
| 69 | export async function getNonCodemodeToolMap(): Promise<Map<string, NonCodemodeTool>> { |
no test coverage detected