Skip to content

Commit da18c79

Browse files
committed
improvement(latex): guard lookup tool responses against upstream errors
1 parent 81bf092 commit da18c79

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

apps/sim/tools/latex/get_package.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export const latexGetPackageTool: ToolConfig<LatexGetPackageParams, LatexGetPack
2727

2828
transformResponse: async (response: Response) => {
2929
const data = (await response.json()) as {
30+
error?: string
3031
package?: {
3132
package?: string
3233
installed?: boolean
@@ -42,10 +43,12 @@ export const latexGetPackageTool: ToolConfig<LatexGetPackageParams, LatexGetPack
4243
}
4344

4445
const pkg = data.package
45-
if (!pkg?.package) {
46+
if (!response.ok || data.error || !pkg?.package) {
4647
return {
4748
success: false,
48-
error: 'Package not found',
49+
error:
50+
data.error ||
51+
(response.ok ? 'Package not found' : `LaTeX package lookup failed (${response.status})`),
4952
output: {
5053
package: {
5154
name: '',

apps/sim/tools/latex/list_fonts.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,22 @@ export const latexListFontsTool: ToolConfig<LatexListFontsParams, LatexListFonts
3636

3737
transformResponse: async (response: Response, params?: LatexListFontsParams) => {
3838
const data = (await response.json()) as {
39+
error?: string
3940
fonts?: Array<{
4041
family?: string
4142
name?: string
4243
styles?: string[]
4344
}>
4445
}
4546

47+
if (!response.ok || data.error) {
48+
return {
49+
success: false,
50+
error: data.error || `LaTeX font listing failed (${response.status})`,
51+
output: { fonts: [], totalMatches: 0 },
52+
}
53+
}
54+
4655
const query = (params?.query ?? '').trim().toLowerCase()
4756
const matches = (data.fonts ?? []).filter((font) => {
4857
if (!query) return true

apps/sim/tools/latex/search_packages.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export const latexSearchPackagesTool: ToolConfig<
4343

4444
transformResponse: async (response: Response, params?: LatexSearchPackagesParams) => {
4545
const data = (await response.json()) as {
46+
error?: string
4647
packages?: Array<{
4748
name?: string
4849
shortdesc?: string
@@ -51,6 +52,14 @@ export const latexSearchPackagesTool: ToolConfig<
5152
}>
5253
}
5354

55+
if (!response.ok || data.error) {
56+
return {
57+
success: false,
58+
error: data.error || `LaTeX package search failed (${response.status})`,
59+
output: { packages: [], totalMatches: 0 },
60+
}
61+
}
62+
5463
const query = (params?.query ?? '').trim().toLowerCase()
5564
if (!query) {
5665
return {

0 commit comments

Comments
 (0)