smart-web-mcp 0.19.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/README.md +55 -5
  3. package/dist/cli.js +0 -0
  4. package/dist/dev.js +0 -0
  5. package/dist/index.js +0 -0
  6. package/dist/korea/coupang.js +116 -32
  7. package/dist/korea/coupang.js.map +1 -1
  8. package/dist/korea/fine-dust.d.ts +7 -0
  9. package/dist/korea/fine-dust.js +49 -1
  10. package/dist/korea/fine-dust.js.map +1 -1
  11. package/dist/korea/food-safety.d.ts +4 -1
  12. package/dist/korea/food-safety.js +119 -13
  13. package/dist/korea/food-safety.js.map +1 -1
  14. package/dist/korea/geeknews.js +2 -1
  15. package/dist/korea/geeknews.js.map +1 -1
  16. package/dist/korea/law.d.ts +8 -0
  17. package/dist/korea/law.js +53 -3
  18. package/dist/korea/law.js.map +1 -1
  19. package/dist/korea/proxy-client.d.ts +1 -0
  20. package/dist/korea/proxy-client.js +103 -8
  21. package/dist/korea/proxy-client.js.map +1 -1
  22. package/dist/korea/public-restroom.d.ts +7 -4
  23. package/dist/korea/public-restroom.js +71 -12
  24. package/dist/korea/public-restroom.js.map +1 -1
  25. package/dist/korea/real-estate.d.ts +7 -0
  26. package/dist/korea/real-estate.js +72 -5
  27. package/dist/korea/real-estate.js.map +1 -1
  28. package/dist/korea/stock.js +49 -20
  29. package/dist/korea/stock.js.map +1 -1
  30. package/dist/korea/weather.js +5 -0
  31. package/dist/korea/weather.js.map +1 -1
  32. package/dist/mcp-server.js +16 -10
  33. package/dist/mcp-server.js.map +1 -1
  34. package/dist/settings.d.ts +2 -0
  35. package/dist/settings.js +1 -0
  36. package/dist/settings.js.map +1 -1
  37. package/dist/smartcrawl-export.d.ts +36 -0
  38. package/dist/smartcrawl-export.js +74 -7
  39. package/dist/smartcrawl-export.js.map +1 -1
  40. package/dist/smartcrawl.js +19 -1
  41. package/dist/smartcrawl.js.map +1 -1
  42. package/dist/smartfetch/archive-fallback.js +18 -0
  43. package/dist/smartfetch/archive-fallback.js.map +1 -1
  44. package/dist/smartfetch/pipeline.js +5 -3
  45. package/dist/smartfetch/pipeline.js.map +1 -1
  46. package/dist/smartfetch/providers/cp-common.js +16 -3
  47. package/dist/smartfetch/providers/cp-common.js.map +1 -1
  48. package/dist/smartfetch/providers/naver-blog.js +49 -7
  49. package/dist/smartfetch/providers/naver-blog.js.map +1 -1
  50. package/dist/smartfetch/providers/naver-cafe.js +26 -7
  51. package/dist/smartfetch/providers/naver-cafe.js.map +1 -1
  52. package/dist/smartfetch/providers/wikidocs.js +42 -11
  53. package/dist/smartfetch/providers/wikidocs.js.map +1 -1
  54. package/dist/smartfetch.js +5 -2
  55. package/dist/smartfetch.js.map +1 -1
  56. package/dist/smartsearch.js +59 -0
  57. package/dist/smartsearch.js.map +1 -1
  58. package/package.json +20 -2
@@ -2,6 +2,11 @@
2
2
  * Fine dust / air quality (에어코리아) via k-skill-proxy
3
3
  * Proxy endpoint: GET /v1/fine-dust/report?regionHint=서울 강남구
4
4
  */
5
+ export type FineDustDataError = {
6
+ code: string;
7
+ status: number;
8
+ message: string;
9
+ };
5
10
  export type FineDustResult = {
6
11
  source: "fine-dust";
7
12
  station: string;
@@ -15,6 +20,8 @@ export type FineDustResult = {
15
20
  retrieval_method: string;
16
21
  candidate_stations?: string[];
17
22
  ambiguous?: boolean;
23
+ warning?: string;
24
+ data_error?: FineDustDataError;
18
25
  };
19
26
  export declare function runFineDust(options: {
20
27
  regionHint?: string;
@@ -17,6 +17,24 @@ function gradeLabel(raw) {
17
17
  const s = String(raw ?? "");
18
18
  return GRADE_MAP[s] ?? s;
19
19
  }
20
+ function compactDiagnosticMessage(message) {
21
+ try {
22
+ const parsed = JSON.parse(message);
23
+ if (parsed && typeof parsed === "object" && "message" in parsed) {
24
+ const nested = parsed.message;
25
+ if (typeof nested === "string" && nested.trim())
26
+ return compactDiagnosticMessage(nested);
27
+ }
28
+ }
29
+ catch {
30
+ // Fall through to generic compaction.
31
+ }
32
+ return message
33
+ .replace(/<[^>]+>/g, " ")
34
+ .replace(/\s+/g, " ")
35
+ .trim()
36
+ .slice(0, 220);
37
+ }
20
38
  export async function runFineDust(options) {
21
39
  const { regionHint, stationName, timeoutMs = 15000 } = options;
22
40
  const params = {};
@@ -31,7 +49,24 @@ export async function runFineDust(options) {
31
49
  }
32
50
  const result = await proxyGet("/v1/fine-dust/report", params, timeoutMs);
33
51
  if (!result.ok) {
34
- return { ok: false, message: `Fine dust lookup failed: ${result.message}` };
52
+ return {
53
+ source: "fine-dust",
54
+ station: stationName ?? "",
55
+ region_hint: regionHint ?? stationName ?? "",
56
+ queried_at: new Date().toISOString(),
57
+ pm10: "",
58
+ pm10_grade: "",
59
+ pm25: "",
60
+ pm25_grade: "",
61
+ overall_grade: "",
62
+ retrieval_method: "proxy",
63
+ warning: "에어코리아 미세먼지 데이터를 지금 불러올 수 없습니다. 잠시 후 다시 시도하세요.",
64
+ data_error: {
65
+ code: result.code,
66
+ status: result.status,
67
+ message: compactDiagnosticMessage(result.message),
68
+ },
69
+ };
35
70
  }
36
71
  const d = result.data;
37
72
  // Ambiguous location — multiple candidates returned
@@ -66,6 +101,19 @@ export async function runFineDust(options) {
66
101
  };
67
102
  }
68
103
  export function renderFineDust(result) {
104
+ if (result.warning) {
105
+ const status = result.data_error?.status ? ` / HTTP ${result.data_error.status}` : "";
106
+ const lines = [
107
+ `# 미세먼지 — ${result.station || result.region_hint || "조회 불가"}`,
108
+ result.warning,
109
+ "",
110
+ "k-skill-proxy 또는 에어코리아 상류 서비스가 호출 한도나 일시적인 프록시 오류를 반환했을 수 있습니다. 잠시 후 다시 시도하거나 지역/측정소 이름을 확인해 주세요.",
111
+ ];
112
+ if (result.data_error) {
113
+ lines.push(`진단: ${result.data_error.code}${status} - ${result.data_error.message}`);
114
+ }
115
+ return lines.join("\n");
116
+ }
69
117
  if (result.ambiguous) {
70
118
  const lines = [`# 미세먼지 — 위치 확인 필요`, `"${result.region_hint}"에 해당하는 측정소가 여러 개입니다.`, ""];
71
119
  lines.push("측정소 후보:");
@@ -1 +1 @@
1
- {"version":3,"file":"fine-dust.js","sourceRoot":"","sources":["../../src/korea/fine-dust.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fine-dust.js","sourceRoot":"","sources":["../../src/korea/fine-dust.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Food safety info (식약처/식품안전나라) via k-skill-proxy
3
- * Endpoints: /v1/mfds/food-safety/recall, /v1/mfds/food-safety/unfit, /v1/mfds/food-safety/functional-ingredient
3
+ * Endpoints: /v1/mfds/food-safety/search, /v1/mfds/food-safety/inspection-fail, /v1/mfds/food-safety/health-food-ingredient
4
4
  */
5
5
  export type FoodSafetyResult = {
6
6
  source: "food-safety";
@@ -8,6 +8,9 @@ export type FoodSafetyResult = {
8
8
  query: string;
9
9
  total: number;
10
10
  items: Record<string, unknown>[];
11
+ warnings?: string[];
12
+ note?: string;
13
+ proxy?: unknown;
11
14
  };
12
15
  export declare function runFoodSafety(options: {
13
16
  action: "recall" | "unfit" | "functional-ingredient";
@@ -1,24 +1,35 @@
1
1
  /**
2
2
  * Food safety info (식약처/식품안전나라) via k-skill-proxy
3
- * Endpoints: /v1/mfds/food-safety/recall, /v1/mfds/food-safety/unfit, /v1/mfds/food-safety/functional-ingredient
3
+ * Endpoints: /v1/mfds/food-safety/search, /v1/mfds/food-safety/inspection-fail, /v1/mfds/food-safety/health-food-ingredient
4
4
  */
5
5
  import { proxyGet } from "./proxy-client.js";
6
6
  export async function runFoodSafety(options) {
7
7
  const { action, query, limit = 20, timeoutMs = 20000 } = options;
8
8
  const pathMap = {
9
- recall: "/v1/mfds/food-safety/recall",
10
- unfit: "/v1/mfds/food-safety/unfit",
11
- "functional-ingredient": "/v1/mfds/food-safety/functional-ingredient",
9
+ recall: "/v1/mfds/food-safety/search",
10
+ unfit: "/v1/mfds/food-safety/inspection-fail",
11
+ "functional-ingredient": "/v1/mfds/food-safety/health-food-ingredient",
12
12
  };
13
13
  const path = pathMap[action];
14
14
  if (!path)
15
15
  return { ok: false, message: `Unknown action: ${action}` };
16
- const result = await proxyGet(path, { q: query, limit: String(limit) }, timeoutMs);
16
+ const result = await proxyGet(path, { query, limit: String(limit) }, timeoutMs);
17
17
  if (!result.ok)
18
18
  return { ok: false, message: `Food safety lookup failed: ${result.message}` };
19
- const items = (result.data["items"] ?? result.data["list"] ?? []);
20
- const total = typeof result.data["total"] === "number" ? result.data["total"] : items.length;
21
- return { source: "food-safety", action, query, total, items };
19
+ const rawItems = toRecordArray(result.data["items"]);
20
+ const items = action === "recall" ? preferRecallSource(rawItems) : rawItems;
21
+ const total = typeof result.data["total"] === "number" && items.length === rawItems.length ? result.data["total"] : items.length;
22
+ const warnings = toStringArray(result.data["warnings"]);
23
+ const note = asText(result.data["note"]);
24
+ const proxy = result.data["proxy"];
25
+ const foodSafetyResult = { source: "food-safety", action, query, total, items };
26
+ if (warnings)
27
+ foodSafetyResult.warnings = warnings;
28
+ if (note)
29
+ foodSafetyResult.note = note;
30
+ if (proxy !== undefined)
31
+ foodSafetyResult.proxy = proxy;
32
+ return foodSafetyResult;
22
33
  }
23
34
  export function renderFoodSafety(result) {
24
35
  const actionLabel = {
@@ -33,18 +44,113 @@ export function renderFoodSafety(result) {
33
44
  `검색어: "${result.query}" | 총 ${result.total}건`,
34
45
  "",
35
46
  ];
47
+ if (result.warnings && result.warnings.length > 0)
48
+ lines.push(`주의: ${result.warnings.join("; ")}`);
49
+ if (result.note)
50
+ lines.push(`참고: ${result.note}`);
51
+ if ((result.warnings && result.warnings.length > 0) || result.note)
52
+ lines.push("");
36
53
  if (result.items.length === 0) {
37
54
  lines.push("조회 결과가 없습니다.");
38
55
  return lines.join("\n");
39
56
  }
40
57
  for (const item of result.items.slice(0, 20)) {
41
- const name = String(item["prdlst_nm"] ?? item["item_name"] ?? item["name"] ?? item["PRDUCT_NM"] ?? "?");
42
- const maker = String(item["bssh_nm"] ?? item["entp_name"] ?? item["ENTP_NM"] ?? "");
43
- const reason = String(item["recalls_reason"] ?? item["unfit_reason"] ?? item["reason"] ?? item["RECALL_REASON"] ?? "");
44
- const date = String(item["recalls_dt"] ?? item["dt"] ?? item["DATE"] ?? "");
45
- lines.push(`- **${name}**${maker ? ` (${maker})` : ""}${reason ? ` — ${reason}` : ""}${date ? ` [${date}]` : ""}`);
58
+ lines.push(renderFoodSafetyItem(result.action, item));
46
59
  }
47
60
  lines.push("\n_식약처/식품안전나라 공식 데이터 기준_");
48
61
  return lines.join("\n");
49
62
  }
63
+ function toRecordArray(value) {
64
+ if (!Array.isArray(value))
65
+ return [];
66
+ return value.filter((item) => typeof item === "object" && item !== null && !Array.isArray(item));
67
+ }
68
+ function toStringArray(value) {
69
+ if (!Array.isArray(value))
70
+ return undefined;
71
+ const strings = value.map((item) => asText(item)).filter((item) => item.length > 0);
72
+ return strings.length > 0 ? strings : undefined;
73
+ }
74
+ function preferRecallSource(items) {
75
+ const recallItems = items.filter((item) => {
76
+ const source = asText(item["source"]).toLowerCase();
77
+ return source.includes("recall") || source.includes("회수");
78
+ });
79
+ return recallItems.length > 0 ? recallItems : items;
80
+ }
81
+ function renderFoodSafetyItem(action, item) {
82
+ if (action === "unfit")
83
+ return renderUnfitItem(item);
84
+ if (action === "functional-ingredient")
85
+ return renderFunctionalIngredientItem(item);
86
+ return renderRecallItem(item);
87
+ }
88
+ function renderRecallItem(item) {
89
+ const name = field(item, ["product_name", "prdlst_nm", "item_name", "name", "PRDUCT_NM"]) || "?";
90
+ const company = field(item, ["company_name", "bssh_nm", "entp_name", "ENTP_NM"]);
91
+ const reason = field(item, ["reason", "recalls_reason", "unfit_reason", "RECALL_REASON"]);
92
+ const date = field(item, ["created_at", "recalls_dt", "dt", "DATE"]);
93
+ const category = field(item, ["category", "product_category", "prdlst_report_no"]);
94
+ const distributionDeadline = field(item, ["distribution_deadline", "consume_by", "expiration_date"]);
95
+ const details = [
96
+ reason,
97
+ labeled("분류", category),
98
+ labeled("유통기한", distributionDeadline),
99
+ ].filter(Boolean);
100
+ return `- **${name}**${company ? ` (${company})` : ""}${details.length > 0 ? ` — ${details.join("; ")}` : ""}${date ? ` [${date}]` : ""}`;
101
+ }
102
+ function renderUnfitItem(item) {
103
+ const name = field(item, ["product_name", "prdlst_nm", "item_name", "name", "PRDUCT_NM"]) || "?";
104
+ const category = field(item, ["product_category", "category"]);
105
+ const company = field(item, ["company_name", "bssh_nm", "entp_name", "ENTP_NM"]);
106
+ const failItem = field(item, ["fail_item", "unfit_item", "test_item"]);
107
+ const standard = field(item, ["standard", "criteria", "std"]);
108
+ const testResult = field(item, ["test_result", "result"]);
109
+ const date = field(item, ["created_at", "dt", "DATE"]);
110
+ const inspectionAgency = field(item, ["inspection_agency", "agency"]);
111
+ const context = [category, company].filter(Boolean).join(", ");
112
+ const details = [
113
+ labeled("부적합항목", failItem),
114
+ labeled("기준", standard),
115
+ labeled("결과", testResult),
116
+ labeled("기관", inspectionAgency),
117
+ ].filter(Boolean);
118
+ return `- **${name}**${context ? ` (${context})` : ""}${details.length > 0 ? ` — ${details.join("; ")}` : ""}${date ? ` [${date}]` : ""}`;
119
+ }
120
+ function renderFunctionalIngredientItem(item) {
121
+ const name = field(item, ["ingredient_name", "raw_material_name", "name"]) || "?";
122
+ const approvalNumber = field(item, ["approval_number", "recognition_number", "report_no"]);
123
+ const functionality = field(item, ["functionality", "function", "functional_content"]);
124
+ const dailyIntake = field(item, ["daily_intake", "daily_intake_amount", "intake_amount"]) || rangeField(item, "daily_intake_low", "daily_intake_high") || rangeField(item, "daily_intake_min", "daily_intake_max");
125
+ const precautions = field(item, ["precautions", "intake_precautions", "caution"]);
126
+ const details = [
127
+ functionality,
128
+ labeled("일일섭취량", dailyIntake),
129
+ labeled("주의", precautions),
130
+ ].filter(Boolean);
131
+ return `- **${name}**${approvalNumber ? ` (${approvalNumber})` : ""}${details.length > 0 ? ` — ${details.join("; ")}` : ""}`;
132
+ }
133
+ function field(item, keys) {
134
+ for (const key of keys) {
135
+ const value = asText(item[key]);
136
+ if (value)
137
+ return value;
138
+ }
139
+ return "";
140
+ }
141
+ function rangeField(item, minKey, maxKey) {
142
+ const min = asText(item[minKey]);
143
+ const max = asText(item[maxKey]);
144
+ if (min && max)
145
+ return `${min}~${max}`;
146
+ return min || max;
147
+ }
148
+ function labeled(label, value) {
149
+ return value ? `${label}: ${value}` : "";
150
+ }
151
+ function asText(value) {
152
+ if (value === null || value === undefined)
153
+ return "";
154
+ return String(value).trim();
155
+ }
50
156
  //# sourceMappingURL=food-safety.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"food-safety.js","sourceRoot":"","sources":["../../src/korea/food-safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"food-safety.js","sourceRoot":"","sources":["../../src/korea/food-safety.ts"],"names":[],"mappings":"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"}
@@ -124,7 +124,8 @@ export async function runGeeknews(options) {
124
124
  };
125
125
  }
126
126
  export function renderGeeknews(result) {
127
- const lines = [`# GeekNews (${result.total} items)`];
127
+ const countLabel = result.items.length < result.total ? `${result.items.length} of ${result.total}` : `${result.total}`;
128
+ const lines = [`# GeekNews (${countLabel} items)`];
128
129
  if (result.query)
129
130
  lines.push(`Query: ${result.query}`);
130
131
  lines.push("");
@@ -1 +1 @@
1
- {"version":3,"file":"geeknews.js","sourceRoot":"","sources":["../../src/korea/geeknews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geeknews.js","sourceRoot":"","sources":["../../src/korea/geeknews.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,13 @@ export type LawArticle = {
18
18
  article: string;
19
19
  content: string;
20
20
  };
21
+ export type LawUnavailable = {
22
+ code: "beopmang_origin_unavailable";
23
+ status: number;
24
+ reason: "origin_530";
25
+ message: string;
26
+ next_action: string;
27
+ };
21
28
  export type LawSearchResult = {
22
29
  source: "korean-law";
23
30
  action: "search" | "get-text" | "search-precedents";
@@ -26,6 +33,7 @@ export type LawSearchResult = {
26
33
  items?: LawItem[];
27
34
  article?: LawArticle;
28
35
  precedents?: Record<string, unknown>[];
36
+ unavailable?: LawUnavailable;
29
37
  };
30
38
  export declare function runLaw(options: {
31
39
  action: "search" | "get-text" | "search-precedents";
package/dist/korea/law.js CHANGED
@@ -5,13 +5,46 @@
5
5
  */
6
6
  import { httpGet } from "./proxy-client.js";
7
7
  const BEOPMANG_BASE = "https://api.beopmang.org/api/v4";
8
+ function isOriginUnavailable(error) {
9
+ return error.status === 530 ||
10
+ error.code === "http_530" ||
11
+ /error code:\s*1033/i.test(error.message) ||
12
+ /(?:upstream[- ]origin|origin)\s*530/i.test(error.message);
13
+ }
14
+ function unavailableResult(action, query, error) {
15
+ return {
16
+ source: "korean-law",
17
+ action,
18
+ query,
19
+ total: 0,
20
+ unavailable: {
21
+ code: "beopmang_origin_unavailable",
22
+ status: error.status,
23
+ reason: "origin_530",
24
+ message: "법망 upstream origin is temporarily unavailable.",
25
+ next_action: "잠시 후 재시도하거나, api.beopmang.org 복구 전까지 다른 공식 한국 법령 정보 출처를 사용하세요.",
26
+ },
27
+ };
28
+ }
29
+ function normalizePrecedent(item) {
30
+ return {
31
+ id: String(item["case_id"] ?? item["precedent_id"] ?? item["id"] ?? ""),
32
+ title: String(item["title"] ?? item["case_title"] ?? item["case_name"] ?? item["name"] ?? ""),
33
+ case_number: String(item["case_number"] ?? item["case_no"] ?? item["number"] ?? ""),
34
+ court: String(item["court"] ?? item["court_name"] ?? ""),
35
+ date: String(item["date"] ?? item["judgment_date"] ?? item["judgement_date"] ?? ""),
36
+ summary: String(item["summary"] ?? item["snippet"] ?? item["abstract"] ?? ""),
37
+ };
38
+ }
8
39
  export async function runLaw(options) {
9
40
  const { action, query, law_id, article, limit = 10, timeoutMs = 20000 } = options;
10
41
  if (action === "search") {
11
42
  if (!query)
12
43
  return { ok: false, message: "검색어(query)가 필요합니다." };
13
- const url = `${BEOPMANG_BASE}/law?action=search&q=${encodeURIComponent(query)}&limit=${limit}`;
44
+ const url = `${BEOPMANG_BASE}/law?action=search&mode=keyword&q=${encodeURIComponent(query)}&limit=${limit}`;
14
45
  const result = await httpGet(url, {}, timeoutMs);
46
+ if (!result.ok && isOriginUnavailable(result))
47
+ return unavailableResult(action, query, result);
15
48
  if (!result.ok)
16
49
  return { ok: false, message: `Law search failed: ${result.message}` };
17
50
  const items = (result.data["laws"] ?? result.data["items"] ?? result.data["results"] ?? [])
@@ -33,6 +66,8 @@ export async function runLaw(options) {
33
66
  params.set("article", article);
34
67
  const url = `${BEOPMANG_BASE}/law?${params.toString()}`;
35
68
  const result = await httpGet(url, {}, timeoutMs);
69
+ if (!result.ok && isOriginUnavailable(result))
70
+ return unavailableResult(action, article ?? "전문", result);
36
71
  if (!result.ok)
37
72
  return { ok: false, message: `Law text lookup failed: ${result.message}` };
38
73
  const d = result.data;
@@ -47,14 +82,29 @@ export async function runLaw(options) {
47
82
  // search-precedents
48
83
  if (!query)
49
84
  return { ok: false, message: "검색어(query)가 필요합니다." };
50
- const url = `${BEOPMANG_BASE}/tools?action=search_precedents&q=${encodeURIComponent(query)}&limit=${limit}`;
85
+ const url = `${BEOPMANG_BASE}/case?action=search&q=${encodeURIComponent(query)}&limit=${limit}`;
51
86
  const result = await httpGet(url, {}, timeoutMs);
87
+ if (!result.ok && isOriginUnavailable(result))
88
+ return unavailableResult(action, query, result);
52
89
  if (!result.ok)
53
90
  return { ok: false, message: `Precedent search failed: ${result.message}` };
54
- const precedents = (result.data["precedents"] ?? result.data["items"] ?? []);
91
+ const precedents = (result.data["cases"] ?? result.data["precedents"] ?? result.data["items"] ?? result.data["results"] ?? [])
92
+ .map(normalizePrecedent);
55
93
  return { source: "korean-law", action: "search-precedents", query, total: precedents.length, precedents };
56
94
  }
57
95
  export function renderLaw(result) {
96
+ if (result.unavailable) {
97
+ const label = result.action === "search-precedents" ? "판례 검색" : result.action === "get-text" ? "법령 본문 조회" : "법령 검색";
98
+ return [
99
+ `# ${label} — "${result.query}"`,
100
+ "",
101
+ "법망(api.beopmang.org)을 일시적으로 사용할 수 없습니다.",
102
+ `원인: ${result.unavailable.reason} (${result.unavailable.code})`,
103
+ `권장 다음 조치: ${result.unavailable.next_action}`,
104
+ "",
105
+ "_법망(api.beopmang.org) upstream 상태 기준_",
106
+ ].join("\n");
107
+ }
58
108
  if (result.action === "search") {
59
109
  const lines = [`# 법령 검색 — "${result.query}"`, `${result.total}건`, ""];
60
110
  for (const item of result.items ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"law.js","sourceRoot":"","sources":["../../src/korea/law.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"law.js","sourceRoot":"","sources":["../../src/korea/law.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export type KrResult<T> = {
15
15
  } | KrError;
16
16
  export declare function proxyGet<T = unknown>(path: string, params?: Record<string, string>, timeoutMs?: number): Promise<KrResult<T>>;
17
17
  export declare function httpGetText(url: string, headers?: Record<string, string>, timeoutMs?: number): Promise<KrResult<string>>;
18
+ export declare function httpGetDecodedText(url: string, headers?: Record<string, string>, timeoutMs?: number, encodings?: string[]): Promise<KrResult<string>>;
18
19
  export declare function httpGet<T = unknown>(url: string, headers?: Record<string, string>, timeoutMs?: number): Promise<KrResult<T>>;
19
20
  export declare function httpPost<T = unknown>(url: string, body: string, headers?: Record<string, string>, timeoutMs?: number): Promise<KrResult<T>>;
20
21
  export declare function formatError(err: KrError): string;