@sjunepark/landprice 0.0.1 → 0.0.3

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 (39) hide show
  1. package/LICENSE.md +35 -27
  2. package/README.md +6 -3
  3. package/dist/app/get-available-years.d.ts +14 -0
  4. package/dist/app/get-standard-land-price-detail.d.ts +14 -0
  5. package/dist/app/list-areas.d.ts +14 -0
  6. package/dist/app/search-individual-land-prices.d.ts +14 -0
  7. package/dist/app/search-standard-land-prices.d.ts +14 -0
  8. package/dist/capabilities/get-available-years/contract.d.ts +78 -0
  9. package/dist/capabilities/get-available-years/execute.d.ts +7 -0
  10. package/dist/capabilities/get-available-years/provider.d.ts +7 -0
  11. package/dist/capabilities/get-standard-land-price-detail/contract.d.ts +152 -0
  12. package/dist/capabilities/get-standard-land-price-detail/execute.d.ts +5 -0
  13. package/dist/capabilities/get-standard-land-price-detail/provider.d.ts +5 -0
  14. package/dist/capabilities/list-areas/contract.d.ts +106 -0
  15. package/dist/capabilities/list-areas/execute.d.ts +5 -0
  16. package/dist/capabilities/list-areas/provider.d.ts +5 -0
  17. package/dist/capabilities/request-validation.d.ts +14 -0
  18. package/dist/capabilities/search-individual-land-prices/contract.d.ts +279 -0
  19. package/dist/capabilities/search-individual-land-prices/execute.d.ts +5 -0
  20. package/dist/capabilities/search-individual-land-prices/provider.d.ts +5 -0
  21. package/dist/capabilities/search-standard-land-prices/contract.d.ts +194 -0
  22. package/dist/capabilities/search-standard-land-prices/execute.d.ts +5 -0
  23. package/dist/capabilities/search-standard-land-prices/provider.d.ts +5 -0
  24. package/dist/capabilities/types.d.ts +143 -0
  25. package/dist/cli.js +23979 -54
  26. package/dist/pi-extension.d.ts +6 -0
  27. package/dist/pi-extension.js +21740 -0
  28. package/dist/pi.d.ts +33 -0
  29. package/dist/pi.js +21736 -0
  30. package/dist/sources/realtyprice/constants.d.ts +2 -0
  31. package/dist/sources/realtyprice/endpoints.d.ts +14 -0
  32. package/dist/sources/realtyprice/fetch.d.ts +2 -0
  33. package/dist/sources/realtyprice/metadata.d.ts +2 -0
  34. package/dist/sources/realtyprice/provider.d.ts +6 -0
  35. package/dist/sources/realtyprice/source-helpers.d.ts +19 -0
  36. package/dist/toolset.d.ts +216 -0
  37. package/dist/toolset.js +21694 -0
  38. package/package.json +20 -5
  39. package/TERMS.md +0 -38
package/LICENSE.md CHANGED
@@ -1,47 +1,55 @@
1
- # Landprice Proprietary License Agreement
1
+ Elastic License 2.0
2
2
 
3
- Copyright (c) 2026 Sejun Park. All rights reserved.
3
+ URL: https://www.elastic.co/licensing/elastic-license
4
4
 
5
- This Landprice Proprietary License Agreement (the "Agreement") governs your access to and use of the Landprice software, including the CLI, bundled files, documentation, updates, and related materials (the "Software").
5
+ Acceptance
6
6
 
7
- ## 1. License Grant
7
+ By using the software, you agree to all of the terms and conditions below.
8
8
 
9
- Subject to this Agreement and the accompanying Terms, Sejun Park grants you a limited, revocable, non-exclusive, non-transferable, non-sublicensable license to install and use the Software for personal use or internal business use.
9
+ Copyright License
10
10
 
11
- No ownership rights are transferred. All rights not expressly granted are reserved.
11
+ The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations and conditions below.
12
12
 
13
- ## 2. Restrictions
13
+ Limitations
14
14
 
15
- You must not, and must not permit others to:
15
+ You may not provide the software to third parties as a hosted or managed service, where the service provides users with access to any substantial set of the features or functionality of the software.
16
16
 
17
- - copy, redistribute, publish, sublicense, rent, lease, sell, resell, or otherwise transfer the Software;
18
- - host, expose, wrap, or provide the Software as a service, API, managed service, or hosted tool for third parties;
19
- - modify, adapt, translate, create derivative works from, or publish modified versions of the Software;
20
- - reverse engineer, decompile, disassemble, deobfuscate, or otherwise attempt to derive source code, algorithms, or internal implementation details, except to the extent applicable law expressly permits despite this restriction;
21
- - remove, alter, bypass, or interfere with license notices, access controls, usage controls, authentication, telemetry, rate limits, or other protection mechanisms;
22
- - use the Software to build, train, benchmark, support, or operate a competing product or service;
23
- - use the Software for automated abuse, excessive traffic generation, scraping abuse, service disruption, security testing without authorization, or any unlawful purpose.
17
+ You may not move, change, disable, or circumvent the license key functionality in the software, and you may not remove or obscure any functionality in the software that is protected by the license key.
24
18
 
25
- ## 3. Commercial Use
19
+ You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensor's trademarks is subject to applicable law.
26
20
 
27
- Internal business use is permitted under this Agreement. External commercial exploitation, including resale, paid hosting, managed access, bundling in a commercial product, or use in a competing offering, requires prior written permission.
21
+ Patents
28
22
 
29
- ## 4. Third-Party Services and Data
23
+ The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
30
24
 
31
- The Software may access public RealtyPrice web pages and third-party services. You are responsible for complying with applicable laws, third-party terms, rate limits, and acceptable-use rules. This Agreement does not grant rights to third-party data, websites, APIs, or services.
25
+ Notices
32
26
 
33
- ## 5. Termination
27
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms.
34
28
 
35
- This license terminates automatically if you violate this Agreement or the accompanying Terms. Upon termination, you must stop using the Software and delete all copies under your control.
29
+ If you modify the software, you must include in any modified copies of the software prominent notices stating that you have modified the software.
36
30
 
37
- ## 6. No Warranty
31
+ No Other Rights
38
32
 
39
- The Software is provided "as is" and "as available," without warranties of any kind, whether express, implied, statutory, or otherwise, including warranties of merchantability, fitness for a particular purpose, title, non-infringement, accuracy, availability, or uninterrupted operation.
33
+ These terms do not imply any licenses other than those expressly granted in these terms.
40
34
 
41
- ## 7. Limitation of Liability
35
+ Termination
42
36
 
43
- To the maximum extent permitted by law, Sejun Park will not be liable for any indirect, incidental, special, consequential, exemplary, or punitive damages, or for lost profits, lost revenue, lost data, business interruption, or procurement of substitute services, arising from or related to the Software or this Agreement.
37
+ If you use the software in violation of these terms, such use is not licensed, and your licenses will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your licenses will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your licenses to terminate automatically and permanently.
44
38
 
45
- ## 8. Changes
39
+ No Liability
46
40
 
47
- This Agreement may be updated from time to time. Continued use of the Software after an updated Agreement is published means you accept the updated Agreement.
41
+ As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.
42
+
43
+ Definitions
44
+
45
+ The licensor is the entity offering these terms, and the software is the software the licensor makes available under these terms, including any portion of it.
46
+
47
+ you refers to the individual or entity agreeing to these terms.
48
+
49
+ your company is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. control means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
50
+
51
+ your licenses are all the licenses granted to you for the software under these terms.
52
+
53
+ use means anything you do with the software requiring one of your licenses.
54
+
55
+ trademark means trademarks, service marks, and similar rights.
package/README.md CHANGED
@@ -35,7 +35,7 @@ landprice search-individual-land-prices --years 2026,2025,2024 --district-code 4
35
35
  landprice <command> --help
36
36
  ```
37
37
 
38
- 명령 성공은 표준 출력에 하나의 JSON 응답 객체로 출력됩니다. 명령 실패는 표준 에러에 JSON 실패 객체를 출력하고 0이 아닌 종료 코드로 끝납니다. 도움말 출력은 사람이 읽기 쉬운 텍스트로 유지됩니다.
38
+ 명령 성공은 표준 출력에 하나의 JSON 응답 객체로 출력됩니다. 명령 실패도 표준 출력에 하나의 JSON 실패 객체를 출력하고 0이 아닌 종료 코드로 끝납니다. 도움말 출력은 사람이 읽기 쉬운 텍스트로 유지됩니다.
39
39
 
40
40
  현재 제공하는 주요 작업은 다음과 같습니다.
41
41
 
@@ -74,7 +74,7 @@ landprice get-standard-land-price-detail --reference '{"year":2026,"regCode":"11
74
74
 
75
75
  명령 추가, 선택 입력 필드 추가, 결과 필드 추가, 경고나 메타데이터 추가는 호환 가능한 변경입니다.
76
76
 
77
- 현재 표준 통합 지점은 CLI입니다. 별도의 패키지 API, Pi 어댑터, MCP 서버는 아직 공개 계약으로 제공하지 않습니다.
77
+ 표준 통합 지점은 CLI, 런타임 중립 TypeScript toolset, Pi 어댑터입니다. toolset은 `@sjunepark/landprice/toolset`에서, Pi 어댑터는 `@sjunepark/landprice/pi`에서 가져올 수 있습니다. MCP 서버는 공개 계약으로 제공하지 않습니다.
78
78
 
79
79
  ## 주의사항
80
80
 
@@ -85,7 +85,7 @@ landprice get-standard-land-price-detail --reference '{"year":2026,"regCode":"11
85
85
 
86
86
  ## 라이선스
87
87
 
88
- Landprice는 오픈소스가 아닌 독점 소프트웨어입니다. npm 패키지 메타데이터는 `UNLICENSED`이며, 사용 조건은 [`LICENSE.md`](./LICENSE.md)와 [`TERMS.md`](./TERMS.md)따릅니다.
88
+ Elastic License 2.0. 자세한 내용은 [`LICENSE.md`](./LICENSE.md)를 참고하세요.
89
89
 
90
90
  ## 개발
91
91
 
@@ -95,6 +95,9 @@ bun run typecheck
95
95
  bun test
96
96
  bun run build
97
97
  node dist/cli.js get-available-years
98
+
99
+ # Package surfaces after build
100
+ node -e "import('./dist/toolset.js').then(({ createLandpriceToolset }) => console.log(createLandpriceToolset().listOperations().length))"
98
101
  ```
99
102
 
100
103
  릴리스 자동화와 필요한 저장소 설정은 [docs/release.md](docs/release.md)를 참고하세요.
@@ -0,0 +1,14 @@
1
+ import { type ToolRunContext } from "../capabilities/types.ts";
2
+ import { type GetAvailableYearsResult } from "../capabilities/get-available-years/contract.ts";
3
+ import type { GetAvailableYearsProvider } from "../capabilities/get-available-years/provider.ts";
4
+ export declare const getAvailableYearsOperationName: "get-available-years";
5
+ export declare const getAvailableYearsInputJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
6
+ export declare const getAvailableYearsResultJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
7
+ export type GetAvailableYearsOperation = {
8
+ readonly name: typeof getAvailableYearsOperationName;
9
+ readonly inputJsonSchema: typeof getAvailableYearsInputJsonSchema;
10
+ readonly resultJsonSchema: typeof getAvailableYearsResultJsonSchema;
11
+ readonly execute: (input: Record<string, unknown>, context?: ToolRunContext) => Promise<GetAvailableYearsResult>;
12
+ };
13
+ export declare const createGetAvailableYearsOperation: (provider: GetAvailableYearsProvider) => GetAvailableYearsOperation;
14
+ export declare const defaultGetAvailableYearsOperation: GetAvailableYearsOperation;
@@ -0,0 +1,14 @@
1
+ import { type ToolRunContext } from "../capabilities/types.ts";
2
+ import { type GetStandardLandPriceDetailResult } from "../capabilities/get-standard-land-price-detail/contract.ts";
3
+ import type { GetStandardLandPriceDetailProvider } from "../capabilities/get-standard-land-price-detail/provider.ts";
4
+ export declare const getStandardLandPriceDetailOperationName: "get-standard-land-price-detail";
5
+ export declare const getStandardLandPriceDetailInputJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
6
+ export declare const getStandardLandPriceDetailResultJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
7
+ export type GetStandardLandPriceDetailOperation = {
8
+ readonly name: typeof getStandardLandPriceDetailOperationName;
9
+ readonly inputJsonSchema: typeof getStandardLandPriceDetailInputJsonSchema;
10
+ readonly resultJsonSchema: typeof getStandardLandPriceDetailResultJsonSchema;
11
+ readonly execute: (input: Record<string, unknown>, context?: ToolRunContext) => Promise<GetStandardLandPriceDetailResult>;
12
+ };
13
+ export declare const createGetStandardLandPriceDetailOperation: (provider: GetStandardLandPriceDetailProvider) => GetStandardLandPriceDetailOperation;
14
+ export declare const defaultGetStandardLandPriceDetailOperation: GetStandardLandPriceDetailOperation;
@@ -0,0 +1,14 @@
1
+ import { type ToolRunContext } from "../capabilities/types.ts";
2
+ import { type ListAreasResult } from "../capabilities/list-areas/contract.ts";
3
+ import type { ListAreasProvider } from "../capabilities/list-areas/provider.ts";
4
+ export declare const listAreasOperationName: "list-areas";
5
+ export declare const listAreasInputJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
6
+ export declare const listAreasResultJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
7
+ export type ListAreasOperation = {
8
+ readonly name: typeof listAreasOperationName;
9
+ readonly inputJsonSchema: typeof listAreasInputJsonSchema;
10
+ readonly resultJsonSchema: typeof listAreasResultJsonSchema;
11
+ readonly execute: (input: Record<string, unknown>, context?: ToolRunContext) => Promise<ListAreasResult>;
12
+ };
13
+ export declare const createListAreasOperation: (provider: ListAreasProvider) => ListAreasOperation;
14
+ export declare const defaultListAreasOperation: ListAreasOperation;
@@ -0,0 +1,14 @@
1
+ import { type ToolRunContext } from "../capabilities/types.ts";
2
+ import { type SearchIndividualLandPricesResult } from "../capabilities/search-individual-land-prices/contract.ts";
3
+ import type { SearchIndividualLandPricesProvider } from "../capabilities/search-individual-land-prices/provider.ts";
4
+ export declare const searchIndividualLandPricesOperationName: "search-individual-land-prices";
5
+ export declare const searchIndividualLandPricesInputJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
6
+ export declare const searchIndividualLandPricesResultJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
7
+ export type SearchIndividualLandPricesOperation = {
8
+ readonly name: typeof searchIndividualLandPricesOperationName;
9
+ readonly inputJsonSchema: typeof searchIndividualLandPricesInputJsonSchema;
10
+ readonly resultJsonSchema: typeof searchIndividualLandPricesResultJsonSchema;
11
+ readonly execute: (input: Record<string, unknown>, context?: ToolRunContext) => Promise<SearchIndividualLandPricesResult>;
12
+ };
13
+ export declare const createSearchIndividualLandPricesOperation: (provider: SearchIndividualLandPricesProvider) => SearchIndividualLandPricesOperation;
14
+ export declare const defaultSearchIndividualLandPricesOperation: SearchIndividualLandPricesOperation;
@@ -0,0 +1,14 @@
1
+ import { type ToolRunContext } from "../capabilities/types.ts";
2
+ import { type SearchStandardLandPricesResult } from "../capabilities/search-standard-land-prices/contract.ts";
3
+ import type { SearchStandardLandPricesProvider } from "../capabilities/search-standard-land-prices/provider.ts";
4
+ export declare const searchStandardLandPricesOperationName: "search-standard-land-prices";
5
+ export declare const searchStandardLandPricesInputJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
6
+ export declare const searchStandardLandPricesResultJsonSchema: import("effect/JSONSchema").JsonSchema7Root;
7
+ export type SearchStandardLandPricesOperation = {
8
+ readonly name: typeof searchStandardLandPricesOperationName;
9
+ readonly inputJsonSchema: typeof searchStandardLandPricesInputJsonSchema;
10
+ readonly resultJsonSchema: typeof searchStandardLandPricesResultJsonSchema;
11
+ readonly execute: (input: Record<string, unknown>, context?: ToolRunContext) => Promise<SearchStandardLandPricesResult>;
12
+ };
13
+ export declare const createSearchStandardLandPricesOperation: (provider: SearchStandardLandPricesProvider) => SearchStandardLandPricesOperation;
14
+ export declare const defaultSearchStandardLandPricesOperation: SearchStandardLandPricesOperation;
@@ -0,0 +1,78 @@
1
+ import { Schema } from "effect";
2
+ import { type SuccessEnvelope } from "../types.ts";
3
+ export declare const GetAvailableYearsInputSchema: Schema.Struct<{
4
+ responseDetail: Schema.optional<Schema.Literal<["concise", "raw"]>>;
5
+ }>;
6
+ export type GetAvailableYearsRawInput = typeof GetAvailableYearsInputSchema.Encoded;
7
+ export declare const YearRangeSchema: Schema.Struct<{
8
+ startYear: typeof Schema.Int;
9
+ endYear: typeof Schema.Int;
10
+ years: Schema.Array$<typeof Schema.Int>;
11
+ }>;
12
+ export type YearRange = typeof YearRangeSchema.Type;
13
+ export declare const GetAvailableYearsResultPayloadSchema: Schema.Struct<{
14
+ standardLandSearchYears: Schema.Struct<{
15
+ startYear: typeof Schema.Int;
16
+ endYear: typeof Schema.Int;
17
+ years: Schema.Array$<typeof Schema.Int>;
18
+ }>;
19
+ noticeDateSearchYears: Schema.Struct<{
20
+ startYear: typeof Schema.Int;
21
+ endYear: typeof Schema.Int;
22
+ years: Schema.Array$<typeof Schema.Int>;
23
+ }>;
24
+ sourceObserved: typeof Schema.Boolean;
25
+ raw: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
26
+ }>;
27
+ export type GetAvailableYearsResultPayload = typeof GetAvailableYearsResultPayloadSchema.Type;
28
+ export declare const GetAvailableYearsResultSchema: Schema.Struct<{
29
+ result: Schema.Struct<{
30
+ standardLandSearchYears: Schema.Struct<{
31
+ startYear: typeof Schema.Int;
32
+ endYear: typeof Schema.Int;
33
+ years: Schema.Array$<typeof Schema.Int>;
34
+ }>;
35
+ noticeDateSearchYears: Schema.Struct<{
36
+ startYear: typeof Schema.Int;
37
+ endYear: typeof Schema.Int;
38
+ years: Schema.Array$<typeof Schema.Int>;
39
+ }>;
40
+ sourceObserved: typeof Schema.Boolean;
41
+ raw: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
42
+ }>;
43
+ metadata: Schema.Struct<{
44
+ sourceSystem: Schema.Literal<["realtyprice"]>;
45
+ sourcePage: Schema.Literal<["https://www.realtyprice.kr/notice/gsstandard/search.htm", "https://www.realtyprice.kr/notice/gsindividual/search.htm"]>;
46
+ endpoint: typeof Schema.String;
47
+ query: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
48
+ retrievedAt: typeof Schema.String;
49
+ completeness: Schema.Literal<["complete", "empty", "partial", "unknown"]>;
50
+ sourceBehavior: typeof Schema.String;
51
+ }>;
52
+ references: Schema.Array$<Schema.Struct<{
53
+ type: Schema.Literal<["sourcePage", "endpoint", "area", "standardLandRecord", "individualLandRecord", "detail"]>;
54
+ sourceUrl: typeof Schema.String;
55
+ standardLandReference: Schema.optional<Schema.Struct<{
56
+ year: Schema.refine<number, typeof Schema.Number>;
57
+ regCode: Schema.SchemaClass<string, string, never>;
58
+ eubCode: Schema.SchemaClass<string, string, never>;
59
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
60
+ bun1: Schema.SchemaClass<string, string, never>;
61
+ bun2: Schema.SchemaClass<string, string, never>;
62
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
63
+ }>>;
64
+ individualLandReference: Schema.optional<Schema.Struct<{
65
+ year: Schema.refine<number, typeof Schema.Number>;
66
+ regCode: Schema.SchemaClass<string, string, never>;
67
+ eubCode: Schema.SchemaClass<string, string, never>;
68
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
69
+ bun1: Schema.SchemaClass<string, string, never>;
70
+ bun2: Schema.SchemaClass<string, string, never>;
71
+ }>>;
72
+ }>>;
73
+ warnings: Schema.Array$<Schema.Union<[typeof Schema.String, Schema.Struct<{
74
+ code: typeof Schema.String;
75
+ message: typeof Schema.String;
76
+ }>]>>;
77
+ }>;
78
+ export type GetAvailableYearsResult = SuccessEnvelope<GetAvailableYearsResultPayload>;
@@ -0,0 +1,7 @@
1
+ import { type ResponseDetail, type ToolRunContext } from "../types.ts";
2
+ import type { GetAvailableYearsResult } from "./contract.ts";
3
+ import type { GetAvailableYearsProvider } from "./provider.ts";
4
+ export declare const resolveGetAvailableYearsRequest: (input: Record<string, unknown>) => {
5
+ readonly responseDetail: ResponseDetail;
6
+ };
7
+ export declare const executeGetAvailableYears: (input: Record<string, unknown>, provider: GetAvailableYearsProvider, context?: ToolRunContext) => Promise<GetAvailableYearsResult>;
@@ -0,0 +1,7 @@
1
+ import type { ResponseDetail, ToolRunContext } from "../types.ts";
2
+ import type { GetAvailableYearsResult } from "./contract.ts";
3
+ export type GetAvailableYearsProvider = {
4
+ readonly getAvailableYears: (request: {
5
+ readonly responseDetail: ResponseDetail;
6
+ }, context?: ToolRunContext) => Promise<GetAvailableYearsResult>;
7
+ };
@@ -0,0 +1,152 @@
1
+ import { Schema } from "effect";
2
+ import { type ResponseDetail, type StandardLandReference, type SuccessEnvelope } from "../types.ts";
3
+ export declare const GetStandardLandPriceDetailInputSchema: Schema.Struct<{
4
+ standardLandReference: Schema.Struct<{
5
+ year: Schema.refine<number, typeof Schema.Number>;
6
+ regCode: Schema.SchemaClass<string, string, never>;
7
+ eubCode: Schema.SchemaClass<string, string, never>;
8
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
9
+ bun1: Schema.SchemaClass<string, string, never>;
10
+ bun2: Schema.SchemaClass<string, string, never>;
11
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
12
+ }>;
13
+ responseDetail: Schema.optional<Schema.Literal<["concise", "raw"]>>;
14
+ }>;
15
+ export type GetStandardLandPriceDetailRawInput = typeof GetStandardLandPriceDetailInputSchema.Encoded;
16
+ export type GetStandardLandPriceDetailRequest = {
17
+ readonly standardLandReference: StandardLandReference;
18
+ readonly responseDetail: ResponseDetail;
19
+ };
20
+ export declare const ReferencePriceDataSchema: Schema.Struct<{
21
+ kind: Schema.NullOr<typeof Schema.String>;
22
+ address: Schema.NullOr<typeof Schema.String>;
23
+ zoning: Schema.NullOr<typeof Schema.String>;
24
+ landAreaDisplay: Schema.NullOr<typeof Schema.String>;
25
+ buildingYear: Schema.NullOr<typeof Schema.String>;
26
+ buildingAreaDisplay: Schema.NullOr<typeof Schema.String>;
27
+ date: Schema.NullOr<typeof Schema.String>;
28
+ priceDisplay: Schema.NullOr<typeof Schema.String>;
29
+ }>;
30
+ export type ReferencePriceData = typeof ReferencePriceDataSchema.Type;
31
+ export declare const StandardLandPriceDetailSchema: Schema.Struct<{
32
+ standardLandReference: Schema.Struct<{
33
+ year: Schema.refine<number, typeof Schema.Number>;
34
+ regCode: Schema.SchemaClass<string, string, never>;
35
+ eubCode: Schema.SchemaClass<string, string, never>;
36
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
37
+ bun1: Schema.SchemaClass<string, string, never>;
38
+ bun2: Schema.SchemaClass<string, string, never>;
39
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
40
+ }>;
41
+ address: Schema.NullOr<typeof Schema.String>;
42
+ roadAddress: Schema.NullOr<typeof Schema.String>;
43
+ areaSquareMeters: Schema.optional<typeof Schema.Number>;
44
+ areaDisplay: Schema.NullOr<typeof Schema.String>;
45
+ previousOfficialPricePerSquareMeter: Schema.optional<typeof Schema.Number>;
46
+ officialPricePerSquareMeter: Schema.optional<typeof Schema.Number>;
47
+ locationDescription: Schema.NullOr<typeof Schema.String>;
48
+ surroundingEnvironment: Schema.NullOr<typeof Schema.String>;
49
+ landCategory: Schema.NullOr<typeof Schema.String>;
50
+ zoning: Schema.NullOr<typeof Schema.String>;
51
+ district: Schema.NullOr<typeof Schema.String>;
52
+ planningFacility: Schema.NullOr<typeof Schema.String>;
53
+ constraintRatio: Schema.NullOr<typeof Schema.String>;
54
+ roadFrontage: Schema.NullOr<typeof Schema.String>;
55
+ shape: Schema.NullOr<typeof Schema.String>;
56
+ elevation: Schema.NullOr<typeof Schema.String>;
57
+ useStatus: Schema.NullOr<typeof Schema.String>;
58
+ representativeParcel: Schema.optional<typeof Schema.Boolean>;
59
+ hazardAccess: Schema.NullOr<typeof Schema.String>;
60
+ referencePriceData: Schema.Struct<{
61
+ kind: Schema.NullOr<typeof Schema.String>;
62
+ address: Schema.NullOr<typeof Schema.String>;
63
+ zoning: Schema.NullOr<typeof Schema.String>;
64
+ landAreaDisplay: Schema.NullOr<typeof Schema.String>;
65
+ buildingYear: Schema.NullOr<typeof Schema.String>;
66
+ buildingAreaDisplay: Schema.NullOr<typeof Schema.String>;
67
+ date: Schema.NullOr<typeof Schema.String>;
68
+ priceDisplay: Schema.NullOr<typeof Schema.String>;
69
+ }>;
70
+ valuationOpinion: Schema.NullOr<typeof Schema.String>;
71
+ raw: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
72
+ }>;
73
+ export type StandardLandPriceDetail = typeof StandardLandPriceDetailSchema.Type;
74
+ export declare const GetStandardLandPriceDetailResultSchema: Schema.Struct<{
75
+ result: Schema.Struct<{
76
+ standardLandReference: Schema.Struct<{
77
+ year: Schema.refine<number, typeof Schema.Number>;
78
+ regCode: Schema.SchemaClass<string, string, never>;
79
+ eubCode: Schema.SchemaClass<string, string, never>;
80
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
81
+ bun1: Schema.SchemaClass<string, string, never>;
82
+ bun2: Schema.SchemaClass<string, string, never>;
83
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
84
+ }>;
85
+ address: Schema.NullOr<typeof Schema.String>;
86
+ roadAddress: Schema.NullOr<typeof Schema.String>;
87
+ areaSquareMeters: Schema.optional<typeof Schema.Number>;
88
+ areaDisplay: Schema.NullOr<typeof Schema.String>;
89
+ previousOfficialPricePerSquareMeter: Schema.optional<typeof Schema.Number>;
90
+ officialPricePerSquareMeter: Schema.optional<typeof Schema.Number>;
91
+ locationDescription: Schema.NullOr<typeof Schema.String>;
92
+ surroundingEnvironment: Schema.NullOr<typeof Schema.String>;
93
+ landCategory: Schema.NullOr<typeof Schema.String>;
94
+ zoning: Schema.NullOr<typeof Schema.String>;
95
+ district: Schema.NullOr<typeof Schema.String>;
96
+ planningFacility: Schema.NullOr<typeof Schema.String>;
97
+ constraintRatio: Schema.NullOr<typeof Schema.String>;
98
+ roadFrontage: Schema.NullOr<typeof Schema.String>;
99
+ shape: Schema.NullOr<typeof Schema.String>;
100
+ elevation: Schema.NullOr<typeof Schema.String>;
101
+ useStatus: Schema.NullOr<typeof Schema.String>;
102
+ representativeParcel: Schema.optional<typeof Schema.Boolean>;
103
+ hazardAccess: Schema.NullOr<typeof Schema.String>;
104
+ referencePriceData: Schema.Struct<{
105
+ kind: Schema.NullOr<typeof Schema.String>;
106
+ address: Schema.NullOr<typeof Schema.String>;
107
+ zoning: Schema.NullOr<typeof Schema.String>;
108
+ landAreaDisplay: Schema.NullOr<typeof Schema.String>;
109
+ buildingYear: Schema.NullOr<typeof Schema.String>;
110
+ buildingAreaDisplay: Schema.NullOr<typeof Schema.String>;
111
+ date: Schema.NullOr<typeof Schema.String>;
112
+ priceDisplay: Schema.NullOr<typeof Schema.String>;
113
+ }>;
114
+ valuationOpinion: Schema.NullOr<typeof Schema.String>;
115
+ raw: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
116
+ }>;
117
+ metadata: Schema.Struct<{
118
+ sourceSystem: Schema.Literal<["realtyprice"]>;
119
+ sourcePage: Schema.Literal<["https://www.realtyprice.kr/notice/gsstandard/search.htm", "https://www.realtyprice.kr/notice/gsindividual/search.htm"]>;
120
+ endpoint: typeof Schema.String;
121
+ query: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
122
+ retrievedAt: typeof Schema.String;
123
+ completeness: Schema.Literal<["complete", "empty", "partial", "unknown"]>;
124
+ sourceBehavior: typeof Schema.String;
125
+ }>;
126
+ references: Schema.Array$<Schema.Struct<{
127
+ type: Schema.Literal<["sourcePage", "endpoint", "area", "standardLandRecord", "individualLandRecord", "detail"]>;
128
+ sourceUrl: typeof Schema.String;
129
+ standardLandReference: Schema.optional<Schema.Struct<{
130
+ year: Schema.refine<number, typeof Schema.Number>;
131
+ regCode: Schema.SchemaClass<string, string, never>;
132
+ eubCode: Schema.SchemaClass<string, string, never>;
133
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
134
+ bun1: Schema.SchemaClass<string, string, never>;
135
+ bun2: Schema.SchemaClass<string, string, never>;
136
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
137
+ }>>;
138
+ individualLandReference: Schema.optional<Schema.Struct<{
139
+ year: Schema.refine<number, typeof Schema.Number>;
140
+ regCode: Schema.SchemaClass<string, string, never>;
141
+ eubCode: Schema.SchemaClass<string, string, never>;
142
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
143
+ bun1: Schema.SchemaClass<string, string, never>;
144
+ bun2: Schema.SchemaClass<string, string, never>;
145
+ }>>;
146
+ }>>;
147
+ warnings: Schema.Array$<Schema.Union<[typeof Schema.String, Schema.Struct<{
148
+ code: typeof Schema.String;
149
+ message: typeof Schema.String;
150
+ }>]>>;
151
+ }>;
152
+ export type GetStandardLandPriceDetailResult = SuccessEnvelope<StandardLandPriceDetail>;
@@ -0,0 +1,5 @@
1
+ import { type ToolRunContext } from "../types.ts";
2
+ import type { GetStandardLandPriceDetailRequest, GetStandardLandPriceDetailResult } from "./contract.ts";
3
+ import type { GetStandardLandPriceDetailProvider } from "./provider.ts";
4
+ export declare const resolveGetStandardLandPriceDetailRequest: (input: Record<string, unknown>) => GetStandardLandPriceDetailRequest;
5
+ export declare const executeGetStandardLandPriceDetail: (input: Record<string, unknown>, provider: GetStandardLandPriceDetailProvider, context?: ToolRunContext) => Promise<GetStandardLandPriceDetailResult>;
@@ -0,0 +1,5 @@
1
+ import type { ToolRunContext } from "../types.ts";
2
+ import type { GetStandardLandPriceDetailRequest, GetStandardLandPriceDetailResult } from "./contract.ts";
3
+ export type GetStandardLandPriceDetailProvider = {
4
+ readonly getStandardLandPriceDetail: (request: GetStandardLandPriceDetailRequest, context?: ToolRunContext) => Promise<GetStandardLandPriceDetailResult>;
5
+ };
@@ -0,0 +1,106 @@
1
+ import { Schema } from "effect";
2
+ import { type AreaLevel, type AreaSurface, type ResponseDetail, type SearchMode, type SuccessEnvelope } from "../types.ts";
3
+ export declare const ListAreasInputSchema: Schema.Struct<{
4
+ year: typeof Schema.Int;
5
+ searchMode: Schema.optional<Schema.Literal<["current-address", "notice-date"]>>;
6
+ surface: Schema.optional<Schema.Literal<["standard-land", "individual-land"]>>;
7
+ level: Schema.Literal<["sido", "district", "legal-dong"]>;
8
+ sidoCode: Schema.optional<typeof Schema.String>;
9
+ districtCode: Schema.optional<typeof Schema.String>;
10
+ responseDetail: Schema.optional<Schema.Literal<["concise", "raw"]>>;
11
+ }>;
12
+ export type ListAreasRawInput = typeof ListAreasInputSchema.Encoded;
13
+ export type ListAreasRequest = {
14
+ readonly year: number;
15
+ readonly searchMode: SearchMode;
16
+ readonly surface: AreaSurface;
17
+ readonly level: AreaLevel;
18
+ readonly sidoCode?: string;
19
+ readonly districtCode?: string;
20
+ readonly responseDetail: ResponseDetail;
21
+ };
22
+ export declare const AreaSchema: Schema.Struct<{
23
+ code: typeof Schema.String;
24
+ name: typeof Schema.String;
25
+ sidoCode: Schema.optional<typeof Schema.String>;
26
+ districtCode: Schema.optional<typeof Schema.String>;
27
+ legalDongCode: Schema.optional<typeof Schema.String>;
28
+ source: Schema.Record$<typeof Schema.String, typeof Schema.String>;
29
+ }>;
30
+ export type Area = typeof AreaSchema.Type;
31
+ export declare const ListAreasResultPayloadSchema: Schema.Struct<{
32
+ year: typeof Schema.Int;
33
+ searchMode: Schema.Literal<["current-address", "notice-date"]>;
34
+ surface: Schema.Literal<["standard-land", "individual-land"]>;
35
+ level: Schema.Literal<["sido", "district", "legal-dong"]>;
36
+ parent: Schema.Struct<{
37
+ sidoCode: Schema.optional<typeof Schema.String>;
38
+ districtCode: Schema.optional<typeof Schema.String>;
39
+ }>;
40
+ areas: Schema.Array$<Schema.Struct<{
41
+ code: typeof Schema.String;
42
+ name: typeof Schema.String;
43
+ sidoCode: Schema.optional<typeof Schema.String>;
44
+ districtCode: Schema.optional<typeof Schema.String>;
45
+ legalDongCode: Schema.optional<typeof Schema.String>;
46
+ source: Schema.Record$<typeof Schema.String, typeof Schema.String>;
47
+ }>>;
48
+ raw: Schema.optional<typeof Schema.Any>;
49
+ }>;
50
+ export type ListAreasResultPayload = typeof ListAreasResultPayloadSchema.Type;
51
+ export declare const ListAreasResultSchema: Schema.Struct<{
52
+ result: Schema.Struct<{
53
+ year: typeof Schema.Int;
54
+ searchMode: Schema.Literal<["current-address", "notice-date"]>;
55
+ surface: Schema.Literal<["standard-land", "individual-land"]>;
56
+ level: Schema.Literal<["sido", "district", "legal-dong"]>;
57
+ parent: Schema.Struct<{
58
+ sidoCode: Schema.optional<typeof Schema.String>;
59
+ districtCode: Schema.optional<typeof Schema.String>;
60
+ }>;
61
+ areas: Schema.Array$<Schema.Struct<{
62
+ code: typeof Schema.String;
63
+ name: typeof Schema.String;
64
+ sidoCode: Schema.optional<typeof Schema.String>;
65
+ districtCode: Schema.optional<typeof Schema.String>;
66
+ legalDongCode: Schema.optional<typeof Schema.String>;
67
+ source: Schema.Record$<typeof Schema.String, typeof Schema.String>;
68
+ }>>;
69
+ raw: Schema.optional<typeof Schema.Any>;
70
+ }>;
71
+ metadata: Schema.Struct<{
72
+ sourceSystem: Schema.Literal<["realtyprice"]>;
73
+ sourcePage: Schema.Literal<["https://www.realtyprice.kr/notice/gsstandard/search.htm", "https://www.realtyprice.kr/notice/gsindividual/search.htm"]>;
74
+ endpoint: typeof Schema.String;
75
+ query: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
76
+ retrievedAt: typeof Schema.String;
77
+ completeness: Schema.Literal<["complete", "empty", "partial", "unknown"]>;
78
+ sourceBehavior: typeof Schema.String;
79
+ }>;
80
+ references: Schema.Array$<Schema.Struct<{
81
+ type: Schema.Literal<["sourcePage", "endpoint", "area", "standardLandRecord", "individualLandRecord", "detail"]>;
82
+ sourceUrl: typeof Schema.String;
83
+ standardLandReference: Schema.optional<Schema.Struct<{
84
+ year: Schema.refine<number, typeof Schema.Number>;
85
+ regCode: Schema.SchemaClass<string, string, never>;
86
+ eubCode: Schema.SchemaClass<string, string, never>;
87
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
88
+ bun1: Schema.SchemaClass<string, string, never>;
89
+ bun2: Schema.SchemaClass<string, string, never>;
90
+ standardLandNumber: Schema.optional<Schema.SchemaClass<string, string, never>>;
91
+ }>>;
92
+ individualLandReference: Schema.optional<Schema.Struct<{
93
+ year: Schema.refine<number, typeof Schema.Number>;
94
+ regCode: Schema.SchemaClass<string, string, never>;
95
+ eubCode: Schema.SchemaClass<string, string, never>;
96
+ sourceSanFlag: Schema.SchemaClass<string, string, never>;
97
+ bun1: Schema.SchemaClass<string, string, never>;
98
+ bun2: Schema.SchemaClass<string, string, never>;
99
+ }>>;
100
+ }>>;
101
+ warnings: Schema.Array$<Schema.Union<[typeof Schema.String, Schema.Struct<{
102
+ code: typeof Schema.String;
103
+ message: typeof Schema.String;
104
+ }>]>>;
105
+ }>;
106
+ export type ListAreasResult = SuccessEnvelope<ListAreasResultPayload>;
@@ -0,0 +1,5 @@
1
+ import { type ToolRunContext } from "../types.ts";
2
+ import type { ListAreasRequest, ListAreasResult } from "./contract.ts";
3
+ import type { ListAreasProvider } from "./provider.ts";
4
+ export declare const resolveListAreasRequest: (input: Record<string, unknown>) => ListAreasRequest;
5
+ export declare const executeListAreas: (input: Record<string, unknown>, provider: ListAreasProvider, context?: ToolRunContext) => Promise<ListAreasResult>;
@@ -0,0 +1,5 @@
1
+ import type { ToolRunContext } from "../types.ts";
2
+ import type { ListAreasRequest, ListAreasResult } from "./contract.ts";
3
+ export type ListAreasProvider = {
4
+ readonly listAreas: (request: ListAreasRequest, context?: ToolRunContext) => Promise<ListAreasResult>;
5
+ };
@@ -0,0 +1,14 @@
1
+ import { type AreaLevel, type AreaSurface, type ResponseDetail, type SearchMode } from "./types.ts";
2
+ export declare function assertObjectInput(input: unknown): asserts input is Record<string, unknown>;
3
+ export declare const assertNoUnknownKeys: (input: Record<string, unknown>, allowedKeys: ReadonlySet<string>) => void;
4
+ export declare const readOptionalResponseDetail: (input: Record<string, unknown>) => ResponseDetail;
5
+ export declare const readOptionalSearchMode: (input: Record<string, unknown>) => SearchMode;
6
+ export declare const readOptionalAreaSurface: (input: Record<string, unknown>) => AreaSurface;
7
+ export declare const readRequiredAreaLevel: (input: Record<string, unknown>) => AreaLevel;
8
+ export declare const readRequiredInteger: (input: Record<string, unknown>, key: string) => number;
9
+ export declare const readOptionalInteger: (input: Record<string, unknown>, key: string, defaultValue: number) => number;
10
+ export declare const readOptionalIntegerArray: (input: Record<string, unknown>, key: string) => readonly number[] | undefined;
11
+ export declare const readOptionalString: (input: Record<string, unknown>, key: string) => string | undefined;
12
+ export declare const readRequiredString: (input: Record<string, unknown>, key: string) => string;
13
+ export declare const assertDigits: (key: string, value: string, length: number) => void;
14
+ export declare const assertMinInteger: (key: string, value: number, min: number) => void;