@portone/mcp-server 0.16.0 → 0.17.0
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.
- package/README.md +3 -0
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/server/index.js +1216 -123
package/server/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __export = (target, all) => {
|
|
4
|
-
for (var
|
|
5
|
-
__defProp(target,
|
|
4
|
+
for (var name17 in all)
|
|
5
|
+
__defProp(target, name17, { get: all[name17], enumerable: true });
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
// src/index.ts
|
|
@@ -15,7 +15,7 @@ import { GraphQLClient } from "graphql-request";
|
|
|
15
15
|
// package.json
|
|
16
16
|
var package_default = {
|
|
17
17
|
name: "@portone/mcp-server",
|
|
18
|
-
version: "0.
|
|
18
|
+
version: "0.17.0",
|
|
19
19
|
description: "\uD3EC\uD2B8\uC6D0 \uC0AC\uC6A9\uC790\uB97C \uC704\uD55C MCP (Model Context Protocol) \uC11C\uBC84\uC785\uB2C8\uB2E4. \uD3EC\uD2B8\uC6D0 \uAC1C\uBC1C\uC790\uC13C\uD130, \uD5EC\uD504\uC13C\uD130 \uB4F1 \uACF5\uC2DD \uBB38\uC11C \uB0B4\uC6A9\uC744 LLM(Large Language Model)\uC5D0 \uC81C\uACF5\uD574 \uC815\uD655\uD55C \uC815\uBCF4\uB97C \uBC14\uD0D5\uC73C\uB85C \uC0AC\uC6A9\uC790\uC758 \uC5F0\uB3D9 \uBC0F \uC9C8\uC758\uB97C \uB3D5\uB3C4\uB85D \uD569\uB2C8\uB2E4.",
|
|
20
20
|
main: "server/index.js",
|
|
21
21
|
type: "module",
|
|
@@ -671,6 +671,9 @@ var TokenProvider = class {
|
|
|
671
671
|
"CHANNEL_UPDATE",
|
|
672
672
|
"STORE_READ",
|
|
673
673
|
"MERCHANT_READ"
|
|
674
|
+
// 거래대사(getReconciliationsByFilter / getSettlementSummaries /
|
|
675
|
+
// getSettlementStatistics) 조회는 위 기존 스코프로 게이트웨이 접근이
|
|
676
|
+
// 가능함을 실환경에서 확인했습니다. 별도 스코프는 필요하지 않습니다.
|
|
674
677
|
].join(" ")
|
|
675
678
|
);
|
|
676
679
|
url.searchParams.set("code_challenge", codeChallenge);
|
|
@@ -1745,14 +1748,1089 @@ function init4(tokenProvider, client) {
|
|
|
1745
1748
|
};
|
|
1746
1749
|
}
|
|
1747
1750
|
|
|
1748
|
-
// src/tools/
|
|
1749
|
-
var
|
|
1750
|
-
__export(
|
|
1751
|
+
// src/tools/getReconciliationsByFilter.ts
|
|
1752
|
+
var getReconciliationsByFilter_exports = {};
|
|
1753
|
+
__export(getReconciliationsByFilter_exports, {
|
|
1751
1754
|
config: () => config5,
|
|
1752
1755
|
init: () => init5,
|
|
1753
1756
|
name: () => name5
|
|
1754
1757
|
});
|
|
1758
|
+
import { match as match8 } from "ts-pattern";
|
|
1759
|
+
import z12 from "zod";
|
|
1760
|
+
|
|
1761
|
+
// src/tools/request/getReconciliations.ts
|
|
1762
|
+
import { parse as parse3 } from "graphql";
|
|
1763
|
+
import { gql as gql3 } from "graphql-request";
|
|
1764
|
+
import { match as match7, P as P6 } from "ts-pattern";
|
|
1755
1765
|
import z11 from "zod";
|
|
1766
|
+
var ErrorResponse3 = z11.object({
|
|
1767
|
+
__typename: z11.string(),
|
|
1768
|
+
message: z11.string().nullable()
|
|
1769
|
+
});
|
|
1770
|
+
var ReconciliationStatus = z11.enum([
|
|
1771
|
+
"MATCHED",
|
|
1772
|
+
"NOT_MATCHED",
|
|
1773
|
+
"INCOMPARABLE",
|
|
1774
|
+
"NOT_COLLECTED"
|
|
1775
|
+
]);
|
|
1776
|
+
var ReconciliationActionType = z11.enum([
|
|
1777
|
+
"APPROVAL",
|
|
1778
|
+
"FULL_CANCEL",
|
|
1779
|
+
"PARTIAL_CANCEL",
|
|
1780
|
+
"UNCLASSIFIED_CANCEL",
|
|
1781
|
+
"POST_CORRECTION"
|
|
1782
|
+
]);
|
|
1783
|
+
var ReconciliationPaymentMethodType = z11.enum([
|
|
1784
|
+
"CARD",
|
|
1785
|
+
"CHARGE",
|
|
1786
|
+
"TRANSFER",
|
|
1787
|
+
"ARS",
|
|
1788
|
+
"GIFT_CERTIFICATE",
|
|
1789
|
+
"MOBILE",
|
|
1790
|
+
"VIRTUAL_ACCOUNT",
|
|
1791
|
+
"ETC",
|
|
1792
|
+
"EASY_PAY_ETC",
|
|
1793
|
+
"EASY_PAY_PAYCO",
|
|
1794
|
+
"EASY_PAY_SAMSUNGPAY",
|
|
1795
|
+
"EASY_PAY_SSGPAY",
|
|
1796
|
+
"EASY_PAY_KAKAOPAY",
|
|
1797
|
+
"EASY_PAY_NAVERPAY",
|
|
1798
|
+
"EASY_PAY_CHAI",
|
|
1799
|
+
"EASY_PAY_LPAY",
|
|
1800
|
+
"EASY_PAY_KPAY",
|
|
1801
|
+
"EASY_PAY_TOSSPAY",
|
|
1802
|
+
"EASY_PAY_LGPAY",
|
|
1803
|
+
"EASY_PAY_APPLEPAY",
|
|
1804
|
+
"EASY_PAY_PINPAY",
|
|
1805
|
+
"EASY_PAY_SKPAY",
|
|
1806
|
+
"EASY_PAY_WECHATPAY",
|
|
1807
|
+
"EASY_PAY_PAYPAL",
|
|
1808
|
+
"EASY_PAY_ALIPAY",
|
|
1809
|
+
"EASY_PAY_TOSS_BRANDPAY",
|
|
1810
|
+
"EASY_PAY_KB_APP",
|
|
1811
|
+
"EASY_PAY_TMONEYPAY",
|
|
1812
|
+
"EASY_PAY_HYPHEN",
|
|
1813
|
+
"EASY_PAY_OK_CASHBAG",
|
|
1814
|
+
"EASY_PAY_BENEPIA"
|
|
1815
|
+
]);
|
|
1816
|
+
var ReconciliationNotMatchedReason = z11.enum([
|
|
1817
|
+
"PAYMENT_AMOUNT_NOT_MATCHED",
|
|
1818
|
+
"TAX_FREE_AMOUNT_NOT_MATCHED",
|
|
1819
|
+
"VAT_AMOUNT_NOT_MATCHED",
|
|
1820
|
+
"ESCROW_NOT_MATCHED",
|
|
1821
|
+
"INSTALLMENT_MONTH_NOT_MATCHED",
|
|
1822
|
+
"PAYMENT_DATE_NOT_MATCHED"
|
|
1823
|
+
]);
|
|
1824
|
+
var ReconciliationIncomparableReason = z11.enum([
|
|
1825
|
+
"NO_MATCHING_PORTONE_TRANSACTION",
|
|
1826
|
+
"CHANNEL_MISMATCH",
|
|
1827
|
+
"RECONCILIATION_SKIPPED",
|
|
1828
|
+
"PG_COLLECTION_FAILED",
|
|
1829
|
+
"PG_DATA_MISSING",
|
|
1830
|
+
"UNKNOWN"
|
|
1831
|
+
]);
|
|
1832
|
+
var ReconciliationPgProvider = z11.enum([
|
|
1833
|
+
"KAKAOPAY",
|
|
1834
|
+
"NICEPAY",
|
|
1835
|
+
"NAVERPAY",
|
|
1836
|
+
"UPLUS",
|
|
1837
|
+
"TOSSPAYMENTS",
|
|
1838
|
+
"TOSSPAY",
|
|
1839
|
+
"PAYCO",
|
|
1840
|
+
"KCP",
|
|
1841
|
+
"DANAL",
|
|
1842
|
+
"EXIMBAY",
|
|
1843
|
+
"INICIS",
|
|
1844
|
+
"HECTO",
|
|
1845
|
+
"KSNET",
|
|
1846
|
+
"KPN",
|
|
1847
|
+
"HYPHEN"
|
|
1848
|
+
]);
|
|
1849
|
+
var SortOrder = z11.enum(["DESC", "ASC"]);
|
|
1850
|
+
var Settlement = z11.object(
|
|
1851
|
+
nullableObject({
|
|
1852
|
+
feeAmount: z11.number(),
|
|
1853
|
+
feeVatAmount: z11.number(),
|
|
1854
|
+
settlementAmount: z11.number(),
|
|
1855
|
+
settlementCurrency: z11.string(),
|
|
1856
|
+
settlementDate: z11.string()
|
|
1857
|
+
})
|
|
1858
|
+
);
|
|
1859
|
+
var PaymentMethod = z11.object({
|
|
1860
|
+
__typename: z11.string(),
|
|
1861
|
+
paymentMethodType: z11.string().nullable().optional(),
|
|
1862
|
+
installmentMonth: z11.number().nullable().optional(),
|
|
1863
|
+
name: z11.string().nullable().optional()
|
|
1864
|
+
}).partial();
|
|
1865
|
+
var PgSpecifier = z11.object(
|
|
1866
|
+
nullableObject({
|
|
1867
|
+
pgMerchantId: z11.string(),
|
|
1868
|
+
pgProvider: z11.string()
|
|
1869
|
+
})
|
|
1870
|
+
);
|
|
1871
|
+
var ReconciliationNode = z11.object({
|
|
1872
|
+
__typename: z11.string(),
|
|
1873
|
+
plainId: z11.string(),
|
|
1874
|
+
actionType: z11.string(),
|
|
1875
|
+
pgSpecifier: PgSpecifier.nullable(),
|
|
1876
|
+
merchantPlainId: z11.string(),
|
|
1877
|
+
paymentAmount: z11.number(),
|
|
1878
|
+
taxFreeAmount: z11.number(),
|
|
1879
|
+
vatAmount: z11.number(),
|
|
1880
|
+
supplyAmount: z11.number(),
|
|
1881
|
+
anomalyAmount: z11.number().nullable().optional(),
|
|
1882
|
+
paidAt: z11.string(),
|
|
1883
|
+
isEscrow: z11.boolean().nullable(),
|
|
1884
|
+
paymentCurrency: z11.string(),
|
|
1885
|
+
paymentMethod: PaymentMethod.nullable(),
|
|
1886
|
+
settlement: Settlement.nullable(),
|
|
1887
|
+
// 상태별 구체 필드 (필수형 / optional 형이 타입마다 다름)
|
|
1888
|
+
pgTxId: z11.string().nullable().optional(),
|
|
1889
|
+
pgTxIdOptional: z11.string().nullable().optional(),
|
|
1890
|
+
transactionPlainId: z11.string().nullable().optional(),
|
|
1891
|
+
transactionPlainIdOptional: z11.string().nullable().optional(),
|
|
1892
|
+
paymentPlainId: z11.string().nullable().optional(),
|
|
1893
|
+
paymentPlainIdOptional: z11.string().nullable().optional(),
|
|
1894
|
+
orderName: z11.string().nullable().optional(),
|
|
1895
|
+
orderNameOptional: z11.string().nullable().optional(),
|
|
1896
|
+
storePlainId: z11.string().nullable().optional(),
|
|
1897
|
+
storePlainIdOptional: z11.string().nullable().optional(),
|
|
1898
|
+
notMatchedReasons: z11.array(z11.string()).nullable().optional(),
|
|
1899
|
+
// INCOMPARABLE(대사 불가) 사유. 게이트웨이는 내부의 backward_incomparable
|
|
1900
|
+
// 상태/사유를 INCOMPARABLE + 이 단일 reason 으로 병합해 노출합니다.
|
|
1901
|
+
// enum 드리프트 방지를 위해 문자열로 수용합니다.
|
|
1902
|
+
reason: z11.string().nullable().optional()
|
|
1903
|
+
}).partial({
|
|
1904
|
+
pgSpecifier: true,
|
|
1905
|
+
isEscrow: true,
|
|
1906
|
+
paymentMethod: true,
|
|
1907
|
+
settlement: true
|
|
1908
|
+
});
|
|
1909
|
+
var CursorPageInfo = z11.object({
|
|
1910
|
+
startCursor: z11.string(),
|
|
1911
|
+
endCursor: z11.string(),
|
|
1912
|
+
hasPreviousPage: z11.boolean(),
|
|
1913
|
+
hasNextPage: z11.boolean()
|
|
1914
|
+
});
|
|
1915
|
+
var ReconciliationsPayload = z11.object({
|
|
1916
|
+
edges: z11.array(z11.object({ node: ReconciliationNode, cursor: z11.string() })),
|
|
1917
|
+
pageInfo: CursorPageInfo
|
|
1918
|
+
});
|
|
1919
|
+
var GetReconciliationsResponse = z11.object({
|
|
1920
|
+
merchant: z11.object({
|
|
1921
|
+
reconciliation: z11.object({
|
|
1922
|
+
paymentReconciliations: ReconciliationsPayload
|
|
1923
|
+
})
|
|
1924
|
+
}).or(ErrorResponse3)
|
|
1925
|
+
}).transform(({ merchant }) => {
|
|
1926
|
+
if ("__typename" in merchant) return merchant;
|
|
1927
|
+
return merchant.reconciliation.paymentReconciliations;
|
|
1928
|
+
});
|
|
1929
|
+
var getReconciliationsQuery = parse3(gql3`
|
|
1930
|
+
query GetReconciliations(
|
|
1931
|
+
$dateCondition: ReconciliationDateConditionInput!
|
|
1932
|
+
$searchCondition: PaymentReconciliationSearchConditionInput
|
|
1933
|
+
$filter: PaymentReconciliationFilterInput
|
|
1934
|
+
$order: PaymentReconciliationOrderInput
|
|
1935
|
+
$first: Int!
|
|
1936
|
+
$after: String
|
|
1937
|
+
) {
|
|
1938
|
+
merchant {
|
|
1939
|
+
...ErrorFragment
|
|
1940
|
+
... on Merchant {
|
|
1941
|
+
reconciliation {
|
|
1942
|
+
paymentReconciliations(
|
|
1943
|
+
dateCondition: $dateCondition
|
|
1944
|
+
searchCondition: $searchCondition
|
|
1945
|
+
filter: $filter
|
|
1946
|
+
order: $order
|
|
1947
|
+
first: $first
|
|
1948
|
+
after: $after
|
|
1949
|
+
) {
|
|
1950
|
+
edges {
|
|
1951
|
+
cursor
|
|
1952
|
+
node {
|
|
1953
|
+
__typename
|
|
1954
|
+
plainId
|
|
1955
|
+
actionType
|
|
1956
|
+
pgSpecifier {
|
|
1957
|
+
pgMerchantId
|
|
1958
|
+
pgProvider
|
|
1959
|
+
}
|
|
1960
|
+
merchantPlainId
|
|
1961
|
+
paymentAmount
|
|
1962
|
+
taxFreeAmount
|
|
1963
|
+
vatAmount
|
|
1964
|
+
supplyAmount
|
|
1965
|
+
paidAt
|
|
1966
|
+
isEscrow
|
|
1967
|
+
paymentCurrency
|
|
1968
|
+
paymentMethod {
|
|
1969
|
+
__typename
|
|
1970
|
+
... on ReconciliationPaymentMethodCard {
|
|
1971
|
+
installmentMonth
|
|
1972
|
+
}
|
|
1973
|
+
... on ReconciliationPaymentMethodEasyPay {
|
|
1974
|
+
paymentMethodType
|
|
1975
|
+
}
|
|
1976
|
+
... on ReconciliationPaymentMethodEtc {
|
|
1977
|
+
name
|
|
1978
|
+
}
|
|
1979
|
+
}
|
|
1980
|
+
settlement {
|
|
1981
|
+
feeAmount
|
|
1982
|
+
feeVatAmount
|
|
1983
|
+
settlementAmount
|
|
1984
|
+
settlementCurrency
|
|
1985
|
+
settlementDate
|
|
1986
|
+
}
|
|
1987
|
+
... on PaymentReconciliationMatched {
|
|
1988
|
+
pgTxId
|
|
1989
|
+
transactionPlainId
|
|
1990
|
+
paymentPlainId
|
|
1991
|
+
orderName
|
|
1992
|
+
storePlainId
|
|
1993
|
+
}
|
|
1994
|
+
... on PaymentReconciliationNotMatched {
|
|
1995
|
+
pgTxId
|
|
1996
|
+
anomalyAmount
|
|
1997
|
+
transactionPlainId
|
|
1998
|
+
paymentPlainId
|
|
1999
|
+
orderName
|
|
2000
|
+
storePlainId
|
|
2001
|
+
notMatchedReasons
|
|
2002
|
+
}
|
|
2003
|
+
... on PaymentReconciliationIncomparable {
|
|
2004
|
+
pgTxId
|
|
2005
|
+
anomalyAmount
|
|
2006
|
+
reason
|
|
2007
|
+
paymentPlainIdOptional
|
|
2008
|
+
orderNameOptional
|
|
2009
|
+
}
|
|
2010
|
+
... on PaymentReconciliationNotCollected {
|
|
2011
|
+
pgTxIdOptional
|
|
2012
|
+
anomalyAmount
|
|
2013
|
+
transactionPlainIdOptional
|
|
2014
|
+
paymentPlainIdOptional
|
|
2015
|
+
orderNameOptional
|
|
2016
|
+
storePlainIdOptional
|
|
2017
|
+
}
|
|
2018
|
+
... on PaymentReconciliationPostCorrection {
|
|
2019
|
+
pgTxIdOptional
|
|
2020
|
+
anomalyAmount
|
|
2021
|
+
transactionPlainIdOptional
|
|
2022
|
+
paymentPlainIdOptional
|
|
2023
|
+
orderNameOptional
|
|
2024
|
+
storePlainIdOptional
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
pageInfo {
|
|
2029
|
+
startCursor
|
|
2030
|
+
endCursor
|
|
2031
|
+
hasPreviousPage
|
|
2032
|
+
hasNextPage
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
}
|
|
2039
|
+
|
|
2040
|
+
fragment ErrorFragment on Error {
|
|
2041
|
+
__typename
|
|
2042
|
+
message
|
|
2043
|
+
}
|
|
2044
|
+
`);
|
|
2045
|
+
var ReconciliationFilter = z11.object({
|
|
2046
|
+
storeIds: z11.array(z11.string()),
|
|
2047
|
+
channelKeys: z11.array(z11.string()),
|
|
2048
|
+
pgSpecifiers: z11.array(
|
|
2049
|
+
z11.object({
|
|
2050
|
+
pgMerchantId: z11.string(),
|
|
2051
|
+
pgProvider: ReconciliationPgProvider
|
|
2052
|
+
})
|
|
2053
|
+
),
|
|
2054
|
+
paymentMethodTypes: z11.array(ReconciliationPaymentMethodType),
|
|
2055
|
+
paymentReconciliationStatuses: z11.array(ReconciliationStatus),
|
|
2056
|
+
actionTypes: z11.array(ReconciliationActionType),
|
|
2057
|
+
transactionCurrencies: z11.array(z11.string()),
|
|
2058
|
+
settlementCurrencies: z11.array(z11.string())
|
|
2059
|
+
}).partial();
|
|
2060
|
+
var ReconciliationSearchCondition = z11.object({
|
|
2061
|
+
paymentPlainId: z11.string(),
|
|
2062
|
+
transactionPlainId: z11.string(),
|
|
2063
|
+
pgTxId: z11.string(),
|
|
2064
|
+
orderName: z11.string()
|
|
2065
|
+
}).partial();
|
|
2066
|
+
var ReconciliationOrder = z11.object({
|
|
2067
|
+
settlementDate: SortOrder,
|
|
2068
|
+
transactionDate: SortOrder,
|
|
2069
|
+
transactionAmount: SortOrder,
|
|
2070
|
+
anomalyAmount: SortOrder,
|
|
2071
|
+
settlementAmount: SortOrder
|
|
2072
|
+
}).partial();
|
|
2073
|
+
async function getReconciliations({
|
|
2074
|
+
client,
|
|
2075
|
+
authorization,
|
|
2076
|
+
dateType,
|
|
2077
|
+
from,
|
|
2078
|
+
until,
|
|
2079
|
+
filter,
|
|
2080
|
+
searchCondition,
|
|
2081
|
+
order,
|
|
2082
|
+
first,
|
|
2083
|
+
after
|
|
2084
|
+
}) {
|
|
2085
|
+
const dateRange = { from, until };
|
|
2086
|
+
const dateCondition = dateType === "SETTLEMENT" ? { settlementDateRange: dateRange } : { transactionDateRange: dateRange };
|
|
2087
|
+
try {
|
|
2088
|
+
const response = await client.request({
|
|
2089
|
+
document: getReconciliationsQuery,
|
|
2090
|
+
requestHeaders: {
|
|
2091
|
+
authorization
|
|
2092
|
+
},
|
|
2093
|
+
variables: {
|
|
2094
|
+
dateCondition,
|
|
2095
|
+
searchCondition,
|
|
2096
|
+
filter,
|
|
2097
|
+
order,
|
|
2098
|
+
first,
|
|
2099
|
+
after
|
|
2100
|
+
}
|
|
2101
|
+
});
|
|
2102
|
+
const parsed = await GetReconciliationsResponse.parseAsync(response);
|
|
2103
|
+
return match7(parsed).returnType().with({ __typename: P6.nonNullable }, ({ __typename, message }) => ({
|
|
2104
|
+
type: "error",
|
|
2105
|
+
data: {
|
|
2106
|
+
message,
|
|
2107
|
+
type: __typename
|
|
2108
|
+
}
|
|
2109
|
+
})).otherwise((data) => ({
|
|
2110
|
+
type: "success",
|
|
2111
|
+
data
|
|
2112
|
+
}));
|
|
2113
|
+
} catch (error) {
|
|
2114
|
+
if (error instanceof Error) {
|
|
2115
|
+
return {
|
|
2116
|
+
type: "error",
|
|
2117
|
+
data: error
|
|
2118
|
+
};
|
|
2119
|
+
} else {
|
|
2120
|
+
return {
|
|
2121
|
+
type: "error",
|
|
2122
|
+
data: {
|
|
2123
|
+
message: `\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.`,
|
|
2124
|
+
cause: error
|
|
2125
|
+
}
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2131
|
+
// src/tools/utils/dateRange.ts
|
|
2132
|
+
var LOOKBACK_MONTHS = 6;
|
|
2133
|
+
var MAX_RANGE_MONTHS = 3;
|
|
2134
|
+
function validateReconciliationDateRange(from, to) {
|
|
2135
|
+
const fromDate = /* @__PURE__ */ new Date(`${from}T00:00:00Z`);
|
|
2136
|
+
const toDate = /* @__PURE__ */ new Date(`${to}T00:00:00Z`);
|
|
2137
|
+
if (Number.isNaN(fromDate.getTime()) || Number.isNaN(toDate.getTime())) {
|
|
2138
|
+
return "\uB0A0\uC9DC \uD615\uC2DD\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 (YYYY-MM-DD).";
|
|
2139
|
+
}
|
|
2140
|
+
if (toDate < fromDate) {
|
|
2141
|
+
return "\uC870\uD68C \uC885\uB8CC\uC77C(to)\uC740 \uC2DC\uC791\uC77C(from)\uBCF4\uB2E4 \uBE60\uB97C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.";
|
|
2142
|
+
}
|
|
2143
|
+
const now = /* @__PURE__ */ new Date();
|
|
2144
|
+
const earliest = new Date(
|
|
2145
|
+
Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate())
|
|
2146
|
+
);
|
|
2147
|
+
earliest.setUTCMonth(earliest.getUTCMonth() - LOOKBACK_MONTHS);
|
|
2148
|
+
if (fromDate < earliest) {
|
|
2149
|
+
return `\uC870\uD68C \uC2DC\uC791\uC77C(from)\uC740 \uCD5C\uADFC ${LOOKBACK_MONTHS}\uAC1C\uC6D4 \uC774\uB0B4\uC5EC\uC57C \uD569\uB2C8\uB2E4. ${earliest.toISOString().slice(0, 10)} \uC774\uD6C4\uB85C \uC9C0\uC815\uD574\uC8FC\uC138\uC694.`;
|
|
2150
|
+
}
|
|
2151
|
+
const maxTo = new Date(fromDate);
|
|
2152
|
+
maxTo.setUTCMonth(maxTo.getUTCMonth() + MAX_RANGE_MONTHS);
|
|
2153
|
+
if (toDate > maxTo) {
|
|
2154
|
+
return `\uC870\uD68C \uAD6C\uAC04\uC740 \uCD5C\uB300 ${MAX_RANGE_MONTHS}\uAC1C\uC6D4\uAE4C\uC9C0 \uAC00\uB2A5\uD569\uB2C8\uB2E4. from(${from}) \uAE30\uC900 ${maxTo.toISOString().slice(0, 10)} \uC774\uB0B4\uB85C to\uB97C \uC9C0\uC815\uD574\uC8FC\uC138\uC694.`;
|
|
2155
|
+
}
|
|
2156
|
+
return null;
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
// src/tools/getReconciliationsByFilter.ts
|
|
2160
|
+
var name5 = "getReconciliationsByFilter";
|
|
2161
|
+
var DateString = z12.string().regex(/^\d{4}-\d{2}-\d{2}$/, "YYYY-MM-DD \uD615\uC2DD\uC758 \uB0A0\uC9DC\uC5EC\uC57C \uD569\uB2C8\uB2E4.");
|
|
2162
|
+
var Settlement2 = z12.object({
|
|
2163
|
+
feeAmount: z12.number().describe("PG \uC218\uC218\uB8CC"),
|
|
2164
|
+
feeVatAmount: z12.number().describe("PG \uC218\uC218\uB8CC \uBD80\uAC00\uC138"),
|
|
2165
|
+
settlementAmount: z12.number().describe("\uC815\uC0B0 \uAE08\uC561"),
|
|
2166
|
+
settlementCurrency: z12.string().describe("\uC815\uC0B0 \uD1B5\uD654"),
|
|
2167
|
+
settlementDate: z12.string().describe("\uC815\uC0B0\uC77C")
|
|
2168
|
+
}).partial();
|
|
2169
|
+
var Reconciliation = z12.object({
|
|
2170
|
+
id: z12.string().describe("\uAC70\uB798\uB300\uC0AC \uC544\uC774\uB514"),
|
|
2171
|
+
status: z12.string().describe(
|
|
2172
|
+
"\uB300\uC0AC \uC0C1\uD0DC (MATCHED/NOT_MATCHED/INCOMPARABLE/NOT_COLLECTED/POST_CORRECTION)"
|
|
2173
|
+
),
|
|
2174
|
+
actionType: z12.string().describe("\uACB0\uC81C \uC0C1\uD0DC (\uC2B9\uC778/\uCDE8\uC18C/\uD6C4\uBCF4\uC815)"),
|
|
2175
|
+
pgProvider: z12.string().describe("\uB300\uC0AC\uC6A9 PG\uC0AC"),
|
|
2176
|
+
pgMerchantId: z12.string().describe("PG\uC0AC \uAC00\uB9F9\uC810 \uC2DD\uBCC4 \uC544\uC774\uB514"),
|
|
2177
|
+
pgTxId: z12.string().describe("PG\uC0AC \uAC70\uB798 \uC544\uC774\uB514"),
|
|
2178
|
+
paymentAmount: z12.number().describe("\uACB0\uC81C \uAE08\uC561"),
|
|
2179
|
+
supplyAmount: z12.number().describe("\uACF5\uAE09\uAC00\uC561"),
|
|
2180
|
+
vatAmount: z12.number().describe("\uBD80\uAC00\uC138"),
|
|
2181
|
+
taxFreeAmount: z12.number().describe("\uBA74\uC138\uAC00\uC561"),
|
|
2182
|
+
anomalyAmount: z12.number().describe("\uAC70\uB798\uC774\uC0C1 \uAE08\uC561"),
|
|
2183
|
+
paidAt: z12.string().describe("\uACB0\uC81C\uC77C"),
|
|
2184
|
+
paymentCurrency: z12.string().describe("\uACB0\uC81C \uD1B5\uD654"),
|
|
2185
|
+
isEscrow: z12.boolean().describe("\uC5D0\uC2A4\uD06C\uB85C \uC5EC\uBD80"),
|
|
2186
|
+
paymentMethodType: z12.string().describe("\uACB0\uC81C \uC218\uB2E8 \uC885\uB958(__typename \uAE30\uBC18)"),
|
|
2187
|
+
transactionId: z12.string().describe("\uD3EC\uD2B8\uC6D0 \uACB0\uC81C \uC544\uC774\uB514"),
|
|
2188
|
+
paymentId: z12.string().describe("\uACE0\uAC1D\uC0AC \uACB0\uC81C \uC544\uC774\uB514"),
|
|
2189
|
+
orderName: z12.string().describe("\uC8FC\uBB38\uBA85"),
|
|
2190
|
+
storeId: z12.string().describe("\uD558\uC704 \uC0C1\uC810 \uC544\uC774\uB514"),
|
|
2191
|
+
notMatchedReasons: z12.array(z12.string()).describe("\uB300\uC0AC \uBD88\uC77C\uCE58 \uC0AC\uC720 \uBAA9\uB85D (NOT_MATCHED \uC778 \uACBD\uC6B0)"),
|
|
2192
|
+
incomparableReason: z12.string().describe(
|
|
2193
|
+
"\uB300\uC0AC \uBD88\uAC00 \uC0AC\uC720 (INCOMPARABLE \uC778 \uACBD\uC6B0). \uB0B4\uBD80 backward_incomparable \uC0AC\uC720(PG_COLLECTION_FAILED/PG_DATA_MISSING \uB4F1)\uB3C4 \uC774 \uAC12\uC73C\uB85C \uBCD1\uD569\uB418\uC5B4 \uC81C\uACF5\uB429\uB2C8\uB2E4."
|
|
2194
|
+
),
|
|
2195
|
+
settlement: Settlement2.describe("\uC815\uC0B0 \uC815\uBCF4")
|
|
2196
|
+
}).partial();
|
|
2197
|
+
var OutputSchema5 = z12.object({
|
|
2198
|
+
items: Reconciliation.array().describe("\uC870\uD68C\uB41C \uAC70\uB798\uB300\uC0AC \uBAA9\uB85D"),
|
|
2199
|
+
hasNextPage: z12.boolean().describe("\uB2E4\uC74C \uD398\uC774\uC9C0 \uC874\uC7AC \uC5EC\uBD80"),
|
|
2200
|
+
endCursor: z12.string().describe("\uB2E4\uC74C \uD398\uC774\uC9C0 \uC870\uD68C\uC5D0 \uC0AC\uC6A9\uD560 \uCEE4\uC11C (after \uB85C \uC804\uB2EC)")
|
|
2201
|
+
});
|
|
2202
|
+
var InputSchema4 = z12.object({
|
|
2203
|
+
store: z12.string().optional().describe(
|
|
2204
|
+
"\uC870\uD68C\uD560 \uD558\uC704 \uC0C1\uC810 \uC544\uC774\uB514. \uC0DD\uB7B5\uD558\uBA74 \uACE0\uAC1D\uC0AC \uB0B4 \uBAA8\uB4E0 \uD558\uC704 \uC0C1\uC810\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4."
|
|
2205
|
+
),
|
|
2206
|
+
dateType: z12.enum(["SETTLEMENT", "TRANSACTION"]).default("TRANSACTION").describe("from/to \uB85C \uC81C\uC57D\uD560 \uAE30\uC900 (\uC815\uC0B0\uC77C / \uACB0\uC81C\uC77C)"),
|
|
2207
|
+
from: DateString.describe("\uC870\uD68C \uC2DC\uC791\uC77C (YYYY-MM-DD)"),
|
|
2208
|
+
to: DateString.describe("\uC870\uD68C \uC885\uB8CC\uC77C (YYYY-MM-DD)"),
|
|
2209
|
+
statuses: z12.array(ReconciliationStatus).optional().describe(
|
|
2210
|
+
"\uD3EC\uD568\uD560 \uB300\uC0AC \uC0C1\uD0DC \uBAA9\uB85D. \uBD88\uC77C\uCE58 \uAC74\uB9CC \uBCF4\uB824\uBA74 [NOT_MATCHED] \uB85C \uC9C0\uC815\uD569\uB2C8\uB2E4."
|
|
2211
|
+
),
|
|
2212
|
+
actionTypes: z12.array(ReconciliationActionType).optional().describe("\uD3EC\uD568\uD560 \uACB0\uC81C \uC0C1\uD0DC \uBAA9\uB85D"),
|
|
2213
|
+
paymentMethodTypes: z12.array(ReconciliationPaymentMethodType).optional().describe("\uD3EC\uD568\uD560 \uACB0\uC81C \uC218\uB2E8 \uBAA9\uB85D"),
|
|
2214
|
+
transactionCurrencies: z12.array(z12.string().length(3).toUpperCase()).optional().describe("\uD3EC\uD568\uD560 \uACB0\uC81C \uD1B5\uD654 \uBAA9\uB85D (\uC138 \uC790\uB9AC \uD1B5\uD654 \uCF54\uB4DC)"),
|
|
2215
|
+
settlementCurrencies: z12.array(z12.string().length(3).toUpperCase()).optional().describe("\uD3EC\uD568\uD560 \uC815\uC0B0 \uD1B5\uD654 \uBAA9\uB85D (\uC138 \uC790\uB9AC \uD1B5\uD654 \uCF54\uB4DC)"),
|
|
2216
|
+
paymentId: z12.string().optional().describe("\uACE0\uAC1D\uC0AC \uACB0\uC81C \uC544\uC774\uB514 \uAC80\uC0C9"),
|
|
2217
|
+
transactionId: z12.string().optional().describe("\uD3EC\uD2B8\uC6D0 \uACB0\uC81C \uC544\uC774\uB514 \uAC80\uC0C9"),
|
|
2218
|
+
pgTxId: z12.string().optional().describe("PG\uC0AC \uAC70\uB798 \uC544\uC774\uB514 \uAC80\uC0C9"),
|
|
2219
|
+
orderName: z12.string().optional().describe("\uC8FC\uBB38\uBA85 \uAC80\uC0C9"),
|
|
2220
|
+
first: z12.number().min(1).max(100).default(20).describe("\uC870\uD68C\uD560 \uAC74 \uC218 (\uCD5C\uB300 100)"),
|
|
2221
|
+
after: z12.string().optional().describe("\uC774\uC804 \uD398\uC774\uC9C0\uC758 \uB9C8\uC9C0\uB9C9 \uCEE4\uC11C (endCursor \uAC12)")
|
|
2222
|
+
});
|
|
2223
|
+
var config5 = {
|
|
2224
|
+
title: "\uAC70\uB798\uB300\uC0AC \uAC74\uBCC4 \uB0B4\uC5ED \uC870\uD68C",
|
|
2225
|
+
description: `\uD2B9\uC815 \uD558\uC704 \uC0C1\uC810(store)\uC758 \uAC70\uB798\uB300\uC0AC(\uC815\uC0B0/\uAC70\uB798 \uB300\uC0AC) \uAC74\uBCC4 \uB0B4\uC5ED\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4.
|
|
2226
|
+
|
|
2227
|
+
\uAC01 \uAC74\uC740 \uB2E4\uC74C \uC0C1\uD0DC \uC911 \uD558\uB098\uB97C \uAC00\uC9D1\uB2C8\uB2E4:
|
|
2228
|
+
MATCHED(\uB300\uC0AC \uC131\uACF5), NOT_MATCHED(\uB300\uC0AC \uBD88\uC77C\uCE58), INCOMPARABLE(\uB300\uC0AC \uBD88\uAC00), NOT_COLLECTED(PG \uC815\uBCF4 \uBBF8\uC218\uC9D1), POST_CORRECTION(\uD6C4\uBCF4\uC815)
|
|
2229
|
+
(\uB0B4\uBD80\uC801\uC73C\uB85C \uAD6C\uBD84\uB418\uB294 \uC5ED\uBC29\uD5A5 \uB300\uC0AC \uBD88\uAC00(backward incomparable)\uB294 INCOMPARABLE \uB85C \uD569\uCCD0\uC838 \uC81C\uACF5\uB429\uB2C8\uB2E4.)
|
|
2230
|
+
|
|
2231
|
+
\uB300\uC0AC \uBD88\uC77C\uCE58 \uC0C1\uC138\uB294 statuses=[NOT_MATCHED] \uB85C \uC870\uD68C \uD6C4 \uAC01 \uAC74\uC758 notMatchedReasons \uB97C \uD655\uC778\uD569\uB2C8\uB2E4.
|
|
2232
|
+
\uB300\uC0AC \uBD88\uAC00 \uC0AC\uC720\uB294 INCOMPARABLE \uAC74\uC758 incomparableReason \uD544\uB4DC\uC5D0\uC11C \uD655\uC778\uD569\uB2C8\uB2E4.
|
|
2233
|
+
\uB0A0\uC9DC\uB294 \uBC18\uB4DC\uC2DC YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD558\uBA70, dateType \uC73C\uB85C \uC815\uC0B0\uC77C/\uACB0\uC81C\uC77C \uAE30\uC900\uC744 \uC120\uD0DD\uD569\uB2C8\uB2E4.
|
|
2234
|
+
\uC870\uD68C \uAE30\uAC04 \uC81C\uC57D: from \uC740 \uCD5C\uADFC 6\uAC1C\uC6D4 \uC774\uB0B4\uC5EC\uC57C \uD558\uACE0, \uD55C \uBC88\uC5D0 \uC870\uD68C \uAC00\uB2A5\uD55C \uAD6C\uAC04\uC740 \uCD5C\uB300 3\uAC1C\uC6D4\uC785\uB2C8\uB2E4.
|
|
2235
|
+
store \uC544\uC774\uB514\uB294 list_stores \uB3C4\uAD6C\uB85C \uBA3C\uC800 \uC870\uD68C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`,
|
|
2236
|
+
inputSchema: InputSchema4.shape,
|
|
2237
|
+
outputSchema: OutputSchema5.shape
|
|
2238
|
+
};
|
|
2239
|
+
function normalize(node) {
|
|
2240
|
+
const status = match8(node.__typename).with("PaymentReconciliationMatched", () => "MATCHED").with("PaymentReconciliationNotMatched", () => "NOT_MATCHED").with("PaymentReconciliationIncomparable", () => "INCOMPARABLE").with("PaymentReconciliationNotCollected", () => "NOT_COLLECTED").with("PaymentReconciliationPostCorrection", () => "POST_CORRECTION").otherwise((t) => t);
|
|
2241
|
+
return {
|
|
2242
|
+
id: node.plainId,
|
|
2243
|
+
status,
|
|
2244
|
+
actionType: node.actionType,
|
|
2245
|
+
pgProvider: node.pgSpecifier?.pgProvider ?? void 0,
|
|
2246
|
+
pgMerchantId: node.pgSpecifier?.pgMerchantId ?? void 0,
|
|
2247
|
+
pgTxId: node.pgTxId ?? node.pgTxIdOptional ?? void 0,
|
|
2248
|
+
paymentAmount: node.paymentAmount,
|
|
2249
|
+
supplyAmount: node.supplyAmount,
|
|
2250
|
+
vatAmount: node.vatAmount,
|
|
2251
|
+
taxFreeAmount: node.taxFreeAmount,
|
|
2252
|
+
anomalyAmount: node.anomalyAmount ?? void 0,
|
|
2253
|
+
paidAt: node.paidAt,
|
|
2254
|
+
paymentCurrency: node.paymentCurrency,
|
|
2255
|
+
isEscrow: node.isEscrow ?? void 0,
|
|
2256
|
+
paymentMethodType: node.paymentMethod?.paymentMethodType ?? node.paymentMethod?.__typename ?? void 0,
|
|
2257
|
+
transactionId: node.transactionPlainId ?? node.transactionPlainIdOptional ?? void 0,
|
|
2258
|
+
paymentId: node.paymentPlainId ?? node.paymentPlainIdOptional ?? void 0,
|
|
2259
|
+
orderName: node.orderName ?? node.orderNameOptional ?? void 0,
|
|
2260
|
+
storeId: node.storePlainId ?? node.storePlainIdOptional ?? void 0,
|
|
2261
|
+
notMatchedReasons: node.notMatchedReasons ?? void 0,
|
|
2262
|
+
incomparableReason: node.reason ?? void 0,
|
|
2263
|
+
settlement: node.settlement ? {
|
|
2264
|
+
feeAmount: node.settlement.feeAmount ?? void 0,
|
|
2265
|
+
feeVatAmount: node.settlement.feeVatAmount ?? void 0,
|
|
2266
|
+
settlementAmount: node.settlement.settlementAmount ?? void 0,
|
|
2267
|
+
settlementCurrency: node.settlement.settlementCurrency ?? void 0,
|
|
2268
|
+
settlementDate: node.settlement.settlementDate ?? void 0
|
|
2269
|
+
} : void 0
|
|
2270
|
+
};
|
|
2271
|
+
}
|
|
2272
|
+
function init5(tokenProvider, client) {
|
|
2273
|
+
return async ({
|
|
2274
|
+
store,
|
|
2275
|
+
dateType,
|
|
2276
|
+
from,
|
|
2277
|
+
to,
|
|
2278
|
+
statuses,
|
|
2279
|
+
actionTypes,
|
|
2280
|
+
paymentMethodTypes,
|
|
2281
|
+
transactionCurrencies,
|
|
2282
|
+
settlementCurrencies,
|
|
2283
|
+
paymentId,
|
|
2284
|
+
transactionId,
|
|
2285
|
+
pgTxId,
|
|
2286
|
+
orderName,
|
|
2287
|
+
first,
|
|
2288
|
+
after
|
|
2289
|
+
}) => {
|
|
2290
|
+
const dateRangeError = validateReconciliationDateRange(from, to);
|
|
2291
|
+
if (dateRangeError != null) {
|
|
2292
|
+
return toolErrorResult({
|
|
2293
|
+
type: "error",
|
|
2294
|
+
data: { message: dateRangeError }
|
|
2295
|
+
});
|
|
2296
|
+
}
|
|
2297
|
+
const token = await getToken(tokenProvider);
|
|
2298
|
+
if (token.type === "error") {
|
|
2299
|
+
return toolErrorResult(token);
|
|
2300
|
+
}
|
|
2301
|
+
const searchCondition = paymentId == null && transactionId == null && pgTxId == null && orderName == null ? void 0 : {
|
|
2302
|
+
paymentPlainId: paymentId,
|
|
2303
|
+
transactionPlainId: transactionId,
|
|
2304
|
+
pgTxId,
|
|
2305
|
+
orderName
|
|
2306
|
+
};
|
|
2307
|
+
const result = await getReconciliations({
|
|
2308
|
+
client,
|
|
2309
|
+
authorization: token.data,
|
|
2310
|
+
dateType,
|
|
2311
|
+
from,
|
|
2312
|
+
until: to,
|
|
2313
|
+
searchCondition,
|
|
2314
|
+
filter: {
|
|
2315
|
+
storeIds: store == null ? void 0 : [store],
|
|
2316
|
+
paymentReconciliationStatuses: statuses,
|
|
2317
|
+
actionTypes,
|
|
2318
|
+
paymentMethodTypes,
|
|
2319
|
+
transactionCurrencies,
|
|
2320
|
+
settlementCurrencies
|
|
2321
|
+
},
|
|
2322
|
+
first,
|
|
2323
|
+
after
|
|
2324
|
+
});
|
|
2325
|
+
if (result.type === "error") {
|
|
2326
|
+
return toolErrorResult(result);
|
|
2327
|
+
}
|
|
2328
|
+
try {
|
|
2329
|
+
const structuredContent = {
|
|
2330
|
+
items: result.data.edges.map((edge) => normalize(edge.node)),
|
|
2331
|
+
hasNextPage: result.data.pageInfo.hasNextPage,
|
|
2332
|
+
endCursor: result.data.pageInfo.endCursor
|
|
2333
|
+
};
|
|
2334
|
+
return {
|
|
2335
|
+
content: [
|
|
2336
|
+
{ type: "text", text: JSON.stringify(structuredContent, null, 2) }
|
|
2337
|
+
],
|
|
2338
|
+
structuredContent
|
|
2339
|
+
};
|
|
2340
|
+
} catch {
|
|
2341
|
+
return {
|
|
2342
|
+
content: [{ type: "text", text: "\uC11C\uBC84\uB85C\uBD80\uD130 \uC798\uBABB\uB41C \uC751\uB2F5 \uC218\uC2E0" }],
|
|
2343
|
+
isError: true
|
|
2344
|
+
};
|
|
2345
|
+
}
|
|
2346
|
+
};
|
|
2347
|
+
}
|
|
2348
|
+
|
|
2349
|
+
// src/tools/getSettlementStatistics.ts
|
|
2350
|
+
var getSettlementStatistics_exports = {};
|
|
2351
|
+
__export(getSettlementStatistics_exports, {
|
|
2352
|
+
config: () => config6,
|
|
2353
|
+
init: () => init6,
|
|
2354
|
+
name: () => name6
|
|
2355
|
+
});
|
|
2356
|
+
import z14 from "zod";
|
|
2357
|
+
|
|
2358
|
+
// src/tools/request/getSettlements.ts
|
|
2359
|
+
import { parse as parse4 } from "graphql";
|
|
2360
|
+
import { gql as gql4 } from "graphql-request";
|
|
2361
|
+
import { match as match9, P as P7 } from "ts-pattern";
|
|
2362
|
+
import z13 from "zod";
|
|
2363
|
+
var ErrorResponse4 = z13.object({
|
|
2364
|
+
__typename: z13.string(),
|
|
2365
|
+
message: z13.string().nullable()
|
|
2366
|
+
});
|
|
2367
|
+
var SettlementFilter = z13.object({
|
|
2368
|
+
storeIds: z13.array(z13.string()),
|
|
2369
|
+
pgSpecifiers: z13.array(
|
|
2370
|
+
z13.object({
|
|
2371
|
+
pgMerchantId: z13.string(),
|
|
2372
|
+
pgProvider: ReconciliationPgProvider
|
|
2373
|
+
})
|
|
2374
|
+
)
|
|
2375
|
+
}).partial();
|
|
2376
|
+
var SettlementAggregate = z13.object({
|
|
2377
|
+
settlementAmount: z13.number(),
|
|
2378
|
+
settlementCount: z13.number(),
|
|
2379
|
+
feeAmount: z13.number(),
|
|
2380
|
+
feeVatAmount: z13.number(),
|
|
2381
|
+
cancelAmount: z13.number(),
|
|
2382
|
+
cancelCount: z13.number(),
|
|
2383
|
+
transactionAmount: z13.number(),
|
|
2384
|
+
postCorrectionCount: z13.number(),
|
|
2385
|
+
postCorrectionAmount: z13.number()
|
|
2386
|
+
});
|
|
2387
|
+
var SettlementDetail = z13.object({
|
|
2388
|
+
storePlainId: z13.string().nullable(),
|
|
2389
|
+
pgSpecifier: z13.object(
|
|
2390
|
+
nullableObject({ pgMerchantId: z13.string(), pgProvider: z13.string() })
|
|
2391
|
+
),
|
|
2392
|
+
settlementAmount: z13.number(),
|
|
2393
|
+
settlementCount: z13.number(),
|
|
2394
|
+
feeAmount: z13.number(),
|
|
2395
|
+
feeVatAmount: z13.number(),
|
|
2396
|
+
cancelAmount: z13.number(),
|
|
2397
|
+
cancelCount: z13.number(),
|
|
2398
|
+
transactionAmount: z13.number(),
|
|
2399
|
+
postCorrectionCount: z13.number(),
|
|
2400
|
+
postCorrectionAmount: z13.number()
|
|
2401
|
+
}).partial({ storePlainId: true, pgSpecifier: true });
|
|
2402
|
+
var SettlementSummaryNode = z13.object({
|
|
2403
|
+
date: z13.string(),
|
|
2404
|
+
settlementCurrency: z13.string(),
|
|
2405
|
+
transactionCurrency: z13.string(),
|
|
2406
|
+
aggregate: SettlementAggregate,
|
|
2407
|
+
details: z13.array(SettlementDetail)
|
|
2408
|
+
});
|
|
2409
|
+
var CursorPageInfo2 = z13.object({
|
|
2410
|
+
startCursor: z13.string(),
|
|
2411
|
+
endCursor: z13.string(),
|
|
2412
|
+
hasPreviousPage: z13.boolean(),
|
|
2413
|
+
hasNextPage: z13.boolean()
|
|
2414
|
+
});
|
|
2415
|
+
var SettlementSummariesPayload = z13.object({
|
|
2416
|
+
edges: z13.array(z13.object({ node: SettlementSummaryNode, cursor: z13.string() })),
|
|
2417
|
+
pageInfo: CursorPageInfo2
|
|
2418
|
+
});
|
|
2419
|
+
var GetSettlementSummariesResponse = z13.object({
|
|
2420
|
+
merchant: z13.object({
|
|
2421
|
+
reconciliation: z13.object({
|
|
2422
|
+
paymentReconciliationSettlementSummaries: SettlementSummariesPayload
|
|
2423
|
+
})
|
|
2424
|
+
}).or(ErrorResponse4)
|
|
2425
|
+
}).transform(({ merchant }) => {
|
|
2426
|
+
if ("__typename" in merchant) return merchant;
|
|
2427
|
+
return merchant.reconciliation.paymentReconciliationSettlementSummaries;
|
|
2428
|
+
});
|
|
2429
|
+
var getSettlementSummariesQuery = parse4(gql4`
|
|
2430
|
+
query GetSettlementSummaries(
|
|
2431
|
+
$dateRange: DateRangeInput!
|
|
2432
|
+
$filter: PaymentReconciliationSettlementSummaryFilterInput
|
|
2433
|
+
$first: Int!
|
|
2434
|
+
$after: String
|
|
2435
|
+
) {
|
|
2436
|
+
merchant {
|
|
2437
|
+
...ErrorFragment
|
|
2438
|
+
... on Merchant {
|
|
2439
|
+
reconciliation {
|
|
2440
|
+
paymentReconciliationSettlementSummaries(
|
|
2441
|
+
dateRange: $dateRange
|
|
2442
|
+
filter: $filter
|
|
2443
|
+
first: $first
|
|
2444
|
+
after: $after
|
|
2445
|
+
) {
|
|
2446
|
+
edges {
|
|
2447
|
+
cursor
|
|
2448
|
+
node {
|
|
2449
|
+
date
|
|
2450
|
+
settlementCurrency
|
|
2451
|
+
transactionCurrency
|
|
2452
|
+
aggregate {
|
|
2453
|
+
settlementAmount
|
|
2454
|
+
settlementCount
|
|
2455
|
+
feeAmount
|
|
2456
|
+
feeVatAmount
|
|
2457
|
+
cancelAmount
|
|
2458
|
+
cancelCount
|
|
2459
|
+
transactionAmount
|
|
2460
|
+
postCorrectionCount
|
|
2461
|
+
postCorrectionAmount
|
|
2462
|
+
}
|
|
2463
|
+
details {
|
|
2464
|
+
storePlainId
|
|
2465
|
+
pgSpecifier {
|
|
2466
|
+
pgMerchantId
|
|
2467
|
+
pgProvider
|
|
2468
|
+
}
|
|
2469
|
+
settlementAmount
|
|
2470
|
+
settlementCount
|
|
2471
|
+
feeAmount
|
|
2472
|
+
feeVatAmount
|
|
2473
|
+
cancelAmount
|
|
2474
|
+
cancelCount
|
|
2475
|
+
transactionAmount
|
|
2476
|
+
postCorrectionCount
|
|
2477
|
+
postCorrectionAmount
|
|
2478
|
+
}
|
|
2479
|
+
}
|
|
2480
|
+
}
|
|
2481
|
+
pageInfo {
|
|
2482
|
+
startCursor
|
|
2483
|
+
endCursor
|
|
2484
|
+
hasPreviousPage
|
|
2485
|
+
hasNextPage
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
}
|
|
2491
|
+
}
|
|
2492
|
+
|
|
2493
|
+
fragment ErrorFragment on Error {
|
|
2494
|
+
__typename
|
|
2495
|
+
message
|
|
2496
|
+
}
|
|
2497
|
+
`);
|
|
2498
|
+
async function getSettlementSummaries({
|
|
2499
|
+
client,
|
|
2500
|
+
authorization,
|
|
2501
|
+
from,
|
|
2502
|
+
until,
|
|
2503
|
+
filter,
|
|
2504
|
+
first,
|
|
2505
|
+
after
|
|
2506
|
+
}) {
|
|
2507
|
+
try {
|
|
2508
|
+
const response = await client.request({
|
|
2509
|
+
document: getSettlementSummariesQuery,
|
|
2510
|
+
requestHeaders: { authorization },
|
|
2511
|
+
variables: { dateRange: { from, until }, filter, first, after }
|
|
2512
|
+
});
|
|
2513
|
+
const parsed = await GetSettlementSummariesResponse.parseAsync(response);
|
|
2514
|
+
return match9(parsed).returnType().with({ __typename: P7.nonNullable }, ({ __typename, message }) => ({
|
|
2515
|
+
type: "error",
|
|
2516
|
+
data: { message, type: __typename }
|
|
2517
|
+
})).otherwise((data) => ({ type: "success", data }));
|
|
2518
|
+
} catch (error) {
|
|
2519
|
+
return toRequestError(error);
|
|
2520
|
+
}
|
|
2521
|
+
}
|
|
2522
|
+
var SettlementStatistic = z13.object({
|
|
2523
|
+
amount: z13.number(),
|
|
2524
|
+
count: z13.number(),
|
|
2525
|
+
pendingAmount: z13.number(),
|
|
2526
|
+
pendingCount: z13.number(),
|
|
2527
|
+
currency: z13.string()
|
|
2528
|
+
});
|
|
2529
|
+
var DailySettlementStatistics = z13.object({
|
|
2530
|
+
date: z13.string(),
|
|
2531
|
+
statistics: z13.array(SettlementStatistic)
|
|
2532
|
+
});
|
|
2533
|
+
var SettlementStatisticsPayload = z13.object({
|
|
2534
|
+
__typename: z13.literal("PaymentReconciliationSettlementStatisticsPayload"),
|
|
2535
|
+
rangeTotalStatistics: z13.array(SettlementStatistic),
|
|
2536
|
+
dailyStatistics: z13.array(DailySettlementStatistics)
|
|
2537
|
+
});
|
|
2538
|
+
var GetSettlementStatisticsResponse = z13.object({
|
|
2539
|
+
merchant: z13.object({
|
|
2540
|
+
reconciliation: z13.object({
|
|
2541
|
+
// Output 는 union 이므로 payload 또는 error typename 을 가짐
|
|
2542
|
+
paymentReconciliationSettlementStatistics: SettlementStatisticsPayload.or(ErrorResponse4)
|
|
2543
|
+
})
|
|
2544
|
+
}).or(ErrorResponse4)
|
|
2545
|
+
}).transform(({ merchant }) => {
|
|
2546
|
+
if ("__typename" in merchant) return merchant;
|
|
2547
|
+
return merchant.reconciliation.paymentReconciliationSettlementStatistics;
|
|
2548
|
+
});
|
|
2549
|
+
var getSettlementStatisticsQuery = parse4(gql4`
|
|
2550
|
+
query GetSettlementStatistics(
|
|
2551
|
+
$dateRange: DateRangeInput!
|
|
2552
|
+
$filter: PaymentReconciliationSettlementStatisticsFilterInput
|
|
2553
|
+
) {
|
|
2554
|
+
merchant {
|
|
2555
|
+
...ErrorFragment
|
|
2556
|
+
... on Merchant {
|
|
2557
|
+
reconciliation {
|
|
2558
|
+
paymentReconciliationSettlementStatistics(
|
|
2559
|
+
dateRange: $dateRange
|
|
2560
|
+
filter: $filter
|
|
2561
|
+
) {
|
|
2562
|
+
__typename
|
|
2563
|
+
...ErrorFragment
|
|
2564
|
+
... on PaymentReconciliationSettlementStatisticsPayload {
|
|
2565
|
+
rangeTotalStatistics {
|
|
2566
|
+
amount
|
|
2567
|
+
count
|
|
2568
|
+
pendingAmount
|
|
2569
|
+
pendingCount
|
|
2570
|
+
currency
|
|
2571
|
+
}
|
|
2572
|
+
dailyStatistics {
|
|
2573
|
+
date
|
|
2574
|
+
statistics {
|
|
2575
|
+
amount
|
|
2576
|
+
count
|
|
2577
|
+
pendingAmount
|
|
2578
|
+
pendingCount
|
|
2579
|
+
currency
|
|
2580
|
+
}
|
|
2581
|
+
}
|
|
2582
|
+
}
|
|
2583
|
+
}
|
|
2584
|
+
}
|
|
2585
|
+
}
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
|
|
2589
|
+
fragment ErrorFragment on Error {
|
|
2590
|
+
__typename
|
|
2591
|
+
message
|
|
2592
|
+
}
|
|
2593
|
+
`);
|
|
2594
|
+
async function getSettlementStatistics({
|
|
2595
|
+
client,
|
|
2596
|
+
authorization,
|
|
2597
|
+
from,
|
|
2598
|
+
until,
|
|
2599
|
+
filter
|
|
2600
|
+
}) {
|
|
2601
|
+
try {
|
|
2602
|
+
const response = await client.request({
|
|
2603
|
+
document: getSettlementStatisticsQuery,
|
|
2604
|
+
requestHeaders: { authorization },
|
|
2605
|
+
variables: { dateRange: { from, until }, filter }
|
|
2606
|
+
});
|
|
2607
|
+
const parsed = await GetSettlementStatisticsResponse.parseAsync(response);
|
|
2608
|
+
if ("rangeTotalStatistics" in parsed) {
|
|
2609
|
+
return { type: "success", data: parsed };
|
|
2610
|
+
}
|
|
2611
|
+
return {
|
|
2612
|
+
type: "error",
|
|
2613
|
+
data: { message: parsed.message, type: parsed.__typename }
|
|
2614
|
+
};
|
|
2615
|
+
} catch (error) {
|
|
2616
|
+
return toRequestError(error);
|
|
2617
|
+
}
|
|
2618
|
+
}
|
|
2619
|
+
function toRequestError(error) {
|
|
2620
|
+
if (error instanceof Error) {
|
|
2621
|
+
return { type: "error", data: error };
|
|
2622
|
+
}
|
|
2623
|
+
return {
|
|
2624
|
+
type: "error",
|
|
2625
|
+
data: { message: `\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.`, cause: error }
|
|
2626
|
+
};
|
|
2627
|
+
}
|
|
2628
|
+
|
|
2629
|
+
// src/tools/getSettlementStatistics.ts
|
|
2630
|
+
var name6 = "getSettlementStatistics";
|
|
2631
|
+
var DateString2 = z14.string().regex(/^\d{4}-\d{2}-\d{2}$/, "YYYY-MM-DD \uD615\uC2DD\uC758 \uB0A0\uC9DC\uC5EC\uC57C \uD569\uB2C8\uB2E4.");
|
|
2632
|
+
var Statistic = z14.object({
|
|
2633
|
+
currency: z14.string().describe("\uD1B5\uD654"),
|
|
2634
|
+
amount: z14.number().describe("\uC815\uC0B0 \uAE08\uC561"),
|
|
2635
|
+
count: z14.number().describe("\uC815\uC0B0 \uAC74 \uC218"),
|
|
2636
|
+
pendingAmount: z14.number().describe("\uC815\uC0B0 \uC608\uC815 \uAE08\uC561"),
|
|
2637
|
+
pendingCount: z14.number().describe("\uC815\uC0B0 \uC608\uC815 \uAC74 \uC218")
|
|
2638
|
+
});
|
|
2639
|
+
var DailyStatistics = z14.object({
|
|
2640
|
+
date: z14.string().describe("\uC815\uC0B0\uC77C"),
|
|
2641
|
+
statistics: Statistic.array().describe("\uD574\uB2F9 \uC77C\uC790\uC758 \uD1B5\uD654\uBCC4 \uD1B5\uACC4")
|
|
2642
|
+
});
|
|
2643
|
+
var OutputSchema6 = z14.object({
|
|
2644
|
+
rangeTotalStatistics: Statistic.array().describe(
|
|
2645
|
+
"\uAC80\uC0C9 \uAD6C\uAC04 \uB0B4 \uD1B5\uD654\uBCC4 \uD569\uC0B0 \uD1B5\uACC4"
|
|
2646
|
+
),
|
|
2647
|
+
dailyStatistics: DailyStatistics.array().describe("\uC77C\uBCC4 \uC815\uC0B0 \uD1B5\uACC4")
|
|
2648
|
+
});
|
|
2649
|
+
var InputSchema5 = z14.object({
|
|
2650
|
+
store: z14.string().optional().describe(
|
|
2651
|
+
"\uC870\uD68C\uD560 \uD558\uC704 \uC0C1\uC810 \uC544\uC774\uB514. \uC0DD\uB7B5\uD558\uBA74 \uACE0\uAC1D\uC0AC \uB0B4 \uBAA8\uB4E0 \uD558\uC704 \uC0C1\uC810\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4."
|
|
2652
|
+
),
|
|
2653
|
+
from: DateString2.describe("\uC815\uC0B0\uC77C \uC870\uD68C \uC2DC\uC791\uC77C (YYYY-MM-DD)"),
|
|
2654
|
+
to: DateString2.describe("\uC815\uC0B0\uC77C \uC870\uD68C \uC885\uB8CC\uC77C (YYYY-MM-DD)")
|
|
2655
|
+
});
|
|
2656
|
+
var config6 = {
|
|
2657
|
+
title: "\uAC70\uB798\uB300\uC0AC \uC815\uC0B0 \uD1B5\uACC4 \uC870\uD68C",
|
|
2658
|
+
description: `\uD2B9\uC815 \uD558\uC704 \uC0C1\uC810(store)\uC758 \uAC70\uB798\uB300\uC0AC \uC815\uC0B0 \uD1B5\uACC4\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4.
|
|
2659
|
+
|
|
2660
|
+
\uAC80\uC0C9 \uAD6C\uAC04 \uB0B4 \uD1B5\uD654\uBCC4 \uD569\uC0B0 \uD1B5\uACC4(\uC815\uC0B0/\uC815\uC0B0\uC608\uC815 \uAE08\uC561\xB7\uAC74\uC218)\uC640 \uC77C\uBCC4 \uD1B5\uACC4\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4.
|
|
2661
|
+
\uB0A0\uC9DC\uB294 \uBC18\uB4DC\uC2DC YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD569\uB2C8\uB2E4.
|
|
2662
|
+
\uC870\uD68C \uAE30\uAC04 \uC81C\uC57D: from \uC740 \uCD5C\uADFC 6\uAC1C\uC6D4 \uC774\uB0B4\uC5EC\uC57C \uD558\uACE0, \uD55C \uBC88\uC5D0 \uC870\uD68C \uAC00\uB2A5\uD55C \uAD6C\uAC04\uC740 \uCD5C\uB300 3\uAC1C\uC6D4\uC785\uB2C8\uB2E4.
|
|
2663
|
+
store \uC544\uC774\uB514\uB294 list_stores \uB3C4\uAD6C\uB85C \uBA3C\uC800 \uC870\uD68C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`,
|
|
2664
|
+
inputSchema: InputSchema5.shape,
|
|
2665
|
+
outputSchema: OutputSchema6.shape
|
|
2666
|
+
};
|
|
2667
|
+
function init6(tokenProvider, client) {
|
|
2668
|
+
return async ({ store, from, to }) => {
|
|
2669
|
+
const dateRangeError = validateReconciliationDateRange(from, to);
|
|
2670
|
+
if (dateRangeError != null) {
|
|
2671
|
+
return toolErrorResult({
|
|
2672
|
+
type: "error",
|
|
2673
|
+
data: { message: dateRangeError }
|
|
2674
|
+
});
|
|
2675
|
+
}
|
|
2676
|
+
const token = await getToken(tokenProvider);
|
|
2677
|
+
if (token.type === "error") {
|
|
2678
|
+
return toolErrorResult(token);
|
|
2679
|
+
}
|
|
2680
|
+
const result = await getSettlementStatistics({
|
|
2681
|
+
client,
|
|
2682
|
+
authorization: token.data,
|
|
2683
|
+
from,
|
|
2684
|
+
until: to,
|
|
2685
|
+
filter: { storeIds: store == null ? void 0 : [store] }
|
|
2686
|
+
});
|
|
2687
|
+
if (result.type === "error") {
|
|
2688
|
+
return toolErrorResult(result);
|
|
2689
|
+
}
|
|
2690
|
+
const structuredContent = {
|
|
2691
|
+
rangeTotalStatistics: result.data.rangeTotalStatistics,
|
|
2692
|
+
dailyStatistics: result.data.dailyStatistics
|
|
2693
|
+
};
|
|
2694
|
+
return {
|
|
2695
|
+
content: [
|
|
2696
|
+
{ type: "text", text: JSON.stringify(structuredContent, null, 2) }
|
|
2697
|
+
],
|
|
2698
|
+
structuredContent
|
|
2699
|
+
};
|
|
2700
|
+
};
|
|
2701
|
+
}
|
|
2702
|
+
|
|
2703
|
+
// src/tools/getSettlementSummaries.ts
|
|
2704
|
+
var getSettlementSummaries_exports = {};
|
|
2705
|
+
__export(getSettlementSummaries_exports, {
|
|
2706
|
+
config: () => config7,
|
|
2707
|
+
init: () => init7,
|
|
2708
|
+
name: () => name7
|
|
2709
|
+
});
|
|
2710
|
+
import z15 from "zod";
|
|
2711
|
+
var name7 = "getSettlementSummaries";
|
|
2712
|
+
var DateString3 = z15.string().regex(/^\d{4}-\d{2}-\d{2}$/, "YYYY-MM-DD \uD615\uC2DD\uC758 \uB0A0\uC9DC\uC5EC\uC57C \uD569\uB2C8\uB2E4.");
|
|
2713
|
+
var Aggregate = z15.object({
|
|
2714
|
+
settlementAmount: z15.number().describe("\uC815\uC0B0 \uAE08\uC561"),
|
|
2715
|
+
settlementCount: z15.number().describe("\uC815\uC0B0 \uAC74 \uC218"),
|
|
2716
|
+
feeAmount: z15.number().describe("PG \uC218\uC218\uB8CC"),
|
|
2717
|
+
feeVatAmount: z15.number().describe("PG \uC218\uC218\uB8CC \uBD80\uAC00\uC138"),
|
|
2718
|
+
cancelAmount: z15.number().describe("\uCDE8\uC18C \uAE08\uC561"),
|
|
2719
|
+
cancelCount: z15.number().describe("\uCDE8\uC18C \uAC74 \uC218"),
|
|
2720
|
+
transactionAmount: z15.number().describe("\uAC70\uB798 \uD569\uACC4 \uAE08\uC561"),
|
|
2721
|
+
postCorrectionCount: z15.number().describe("\uD6C4\uBCF4\uC815 \uAC74 \uC218"),
|
|
2722
|
+
postCorrectionAmount: z15.number().describe("\uD6C4\uBCF4\uC815 \uAE08\uC561")
|
|
2723
|
+
});
|
|
2724
|
+
var Detail = Aggregate.extend({
|
|
2725
|
+
storeId: z15.string().optional().describe("\uD558\uC704 \uC0C1\uC810 \uC544\uC774\uB514"),
|
|
2726
|
+
pgProvider: z15.string().optional().describe("\uB300\uC0AC\uC6A9 PG\uC0AC"),
|
|
2727
|
+
pgMerchantId: z15.string().optional().describe("PG\uC0AC \uAC00\uB9F9\uC810 \uC2DD\uBCC4 \uC544\uC774\uB514")
|
|
2728
|
+
});
|
|
2729
|
+
var Summary = z15.object({
|
|
2730
|
+
date: z15.string().describe("\uC815\uC0B0\uC77C"),
|
|
2731
|
+
settlementCurrency: z15.string().describe("\uC815\uC0B0 \uD1B5\uD654"),
|
|
2732
|
+
transactionCurrency: z15.string().describe("\uACB0\uC81C \uD1B5\uD654"),
|
|
2733
|
+
aggregate: Aggregate.describe("\uC815\uC0B0\uB0B4\uC5ED \uD569\uC0B0 \uB370\uC774\uD130"),
|
|
2734
|
+
details: Detail.array().describe("\uC0C1\uC810/PG \uBCC4 \uC0C1\uC138 \uB370\uC774\uD130")
|
|
2735
|
+
});
|
|
2736
|
+
var OutputSchema7 = z15.object({
|
|
2737
|
+
items: Summary.array().describe("\uC77C\uBCC4 \uC815\uC0B0 \uC694\uC57D \uBAA9\uB85D"),
|
|
2738
|
+
hasNextPage: z15.boolean().describe("\uB2E4\uC74C \uD398\uC774\uC9C0 \uC874\uC7AC \uC5EC\uBD80"),
|
|
2739
|
+
endCursor: z15.string().describe("\uB2E4\uC74C \uD398\uC774\uC9C0 \uC870\uD68C\uC5D0 \uC0AC\uC6A9\uD560 \uCEE4\uC11C")
|
|
2740
|
+
});
|
|
2741
|
+
var InputSchema6 = z15.object({
|
|
2742
|
+
store: z15.string().optional().describe(
|
|
2743
|
+
"\uC870\uD68C\uD560 \uD558\uC704 \uC0C1\uC810 \uC544\uC774\uB514. \uC0DD\uB7B5\uD558\uBA74 \uACE0\uAC1D\uC0AC \uB0B4 \uBAA8\uB4E0 \uD558\uC704 \uC0C1\uC810\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4."
|
|
2744
|
+
),
|
|
2745
|
+
from: DateString3.describe("\uC815\uC0B0\uC77C \uC870\uD68C \uC2DC\uC791\uC77C (YYYY-MM-DD)"),
|
|
2746
|
+
to: DateString3.describe("\uC815\uC0B0\uC77C \uC870\uD68C \uC885\uB8CC\uC77C (YYYY-MM-DD)"),
|
|
2747
|
+
first: z15.number().min(1).max(100).default(31).describe("\uC870\uD68C\uD560 \uC77C \uC218 (\uCD5C\uB300 100)"),
|
|
2748
|
+
after: z15.string().optional().describe("\uC774\uC804 \uD398\uC774\uC9C0\uC758 \uB9C8\uC9C0\uB9C9 \uCEE4\uC11C")
|
|
2749
|
+
});
|
|
2750
|
+
var config7 = {
|
|
2751
|
+
title: "\uAC70\uB798\uB300\uC0AC \uC815\uC0B0 \uC694\uC57D \uC870\uD68C",
|
|
2752
|
+
description: `\uD2B9\uC815 \uD558\uC704 \uC0C1\uC810(store)\uC758 \uAC70\uB798\uB300\uC0AC \uC815\uC0B0 \uC694\uC57D\uC744 \uC815\uC0B0\uC77C \uAE30\uC900 \uC77C\uBCC4\uB85C \uC870\uD68C\uD569\uB2C8\uB2E4.
|
|
2753
|
+
|
|
2754
|
+
\uAC01 \uC77C\uC790\uBCC4\uB85C \uC815\uC0B0 \uAE08\uC561/\uAC74\uC218, PG \uC218\uC218\uB8CC, \uCDE8\uC18C, \uD6C4\uBCF4\uC815 \uD569\uC0B0\uCE58\uC640 \uC0C1\uC810\xB7PG\uBCC4 \uC0C1\uC138 \uB0B4\uC5ED\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.
|
|
2755
|
+
\uB0A0\uC9DC\uB294 \uBC18\uB4DC\uC2DC YYYY-MM-DD \uD615\uC2DD\uC73C\uB85C \uC785\uB825\uD569\uB2C8\uB2E4.
|
|
2756
|
+
\uC870\uD68C \uAE30\uAC04 \uC81C\uC57D: from \uC740 \uCD5C\uADFC 6\uAC1C\uC6D4 \uC774\uB0B4\uC5EC\uC57C \uD558\uACE0, \uD55C \uBC88\uC5D0 \uC870\uD68C \uAC00\uB2A5\uD55C \uAD6C\uAC04\uC740 \uCD5C\uB300 3\uAC1C\uC6D4\uC785\uB2C8\uB2E4.
|
|
2757
|
+
store \uC544\uC774\uB514\uB294 list_stores \uB3C4\uAD6C\uB85C \uBA3C\uC800 \uC870\uD68C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`,
|
|
2758
|
+
inputSchema: InputSchema6.shape,
|
|
2759
|
+
outputSchema: OutputSchema7.shape
|
|
2760
|
+
};
|
|
2761
|
+
function init7(tokenProvider, client) {
|
|
2762
|
+
return async ({ store, from, to, first, after }) => {
|
|
2763
|
+
const dateRangeError = validateReconciliationDateRange(from, to);
|
|
2764
|
+
if (dateRangeError != null) {
|
|
2765
|
+
return toolErrorResult({
|
|
2766
|
+
type: "error",
|
|
2767
|
+
data: { message: dateRangeError }
|
|
2768
|
+
});
|
|
2769
|
+
}
|
|
2770
|
+
const token = await getToken(tokenProvider);
|
|
2771
|
+
if (token.type === "error") {
|
|
2772
|
+
return toolErrorResult(token);
|
|
2773
|
+
}
|
|
2774
|
+
const result = await getSettlementSummaries({
|
|
2775
|
+
client,
|
|
2776
|
+
authorization: token.data,
|
|
2777
|
+
from,
|
|
2778
|
+
until: to,
|
|
2779
|
+
filter: { storeIds: store == null ? void 0 : [store] },
|
|
2780
|
+
first,
|
|
2781
|
+
after
|
|
2782
|
+
});
|
|
2783
|
+
if (result.type === "error") {
|
|
2784
|
+
return toolErrorResult(result);
|
|
2785
|
+
}
|
|
2786
|
+
try {
|
|
2787
|
+
const structuredContent = {
|
|
2788
|
+
items: result.data.edges.map(({ node }) => ({
|
|
2789
|
+
date: node.date,
|
|
2790
|
+
settlementCurrency: node.settlementCurrency,
|
|
2791
|
+
transactionCurrency: node.transactionCurrency,
|
|
2792
|
+
aggregate: node.aggregate,
|
|
2793
|
+
details: node.details.map((detail) => ({
|
|
2794
|
+
storeId: detail.storePlainId ?? void 0,
|
|
2795
|
+
pgProvider: detail.pgSpecifier?.pgProvider ?? void 0,
|
|
2796
|
+
pgMerchantId: detail.pgSpecifier?.pgMerchantId ?? void 0,
|
|
2797
|
+
settlementAmount: detail.settlementAmount,
|
|
2798
|
+
settlementCount: detail.settlementCount,
|
|
2799
|
+
feeAmount: detail.feeAmount,
|
|
2800
|
+
feeVatAmount: detail.feeVatAmount,
|
|
2801
|
+
cancelAmount: detail.cancelAmount,
|
|
2802
|
+
cancelCount: detail.cancelCount,
|
|
2803
|
+
transactionAmount: detail.transactionAmount,
|
|
2804
|
+
postCorrectionCount: detail.postCorrectionCount,
|
|
2805
|
+
postCorrectionAmount: detail.postCorrectionAmount
|
|
2806
|
+
}))
|
|
2807
|
+
})),
|
|
2808
|
+
hasNextPage: result.data.pageInfo.hasNextPage,
|
|
2809
|
+
endCursor: result.data.pageInfo.endCursor
|
|
2810
|
+
};
|
|
2811
|
+
return {
|
|
2812
|
+
content: [
|
|
2813
|
+
{ type: "text", text: JSON.stringify(structuredContent, null, 2) }
|
|
2814
|
+
],
|
|
2815
|
+
structuredContent
|
|
2816
|
+
};
|
|
2817
|
+
} catch {
|
|
2818
|
+
return {
|
|
2819
|
+
content: [{ type: "text", text: "\uC11C\uBC84\uB85C\uBD80\uD130 \uC798\uBABB\uB41C \uC751\uB2F5 \uC218\uC2E0" }],
|
|
2820
|
+
isError: true
|
|
2821
|
+
};
|
|
2822
|
+
}
|
|
2823
|
+
};
|
|
2824
|
+
}
|
|
2825
|
+
|
|
2826
|
+
// src/tools/listDocs.ts
|
|
2827
|
+
var listDocs_exports = {};
|
|
2828
|
+
__export(listDocs_exports, {
|
|
2829
|
+
config: () => config8,
|
|
2830
|
+
init: () => init8,
|
|
2831
|
+
name: () => name8
|
|
2832
|
+
});
|
|
2833
|
+
import z16 from "zod";
|
|
1756
2834
|
|
|
1757
2835
|
// src/tools/utils/markdown.ts
|
|
1758
2836
|
function formatDocumentMetadata(doc) {
|
|
@@ -1772,8 +2850,8 @@ function formatDocumentMetadata(doc) {
|
|
|
1772
2850
|
}
|
|
1773
2851
|
|
|
1774
2852
|
// src/tools/listDocs.ts
|
|
1775
|
-
var
|
|
1776
|
-
var
|
|
2853
|
+
var name8 = "listPortoneDocs";
|
|
2854
|
+
var config8 = {
|
|
1777
2855
|
title: "\uD3EC\uD2B8\uC6D0 \uBB38\uC11C \uBAA9\uB85D \uC870\uD68C",
|
|
1778
2856
|
description: `\uD2B9\uC815 \uACBD\uB85C \uD558\uC704\uC5D0 \uC788\uB294 \uBAA8\uB4E0 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C \uBAA9\uB85D\uC744 \uD2B8\uB9AC \uD615\uD0DC\uB85C \uC870\uD68C\uD569\uB2C8\uB2E4.
|
|
1779
2857
|
\uBAA9\uB85D\uC5D0\uB294 \uBB38\uC11C \uACBD\uB85C, \uC81C\uBAA9, \uC124\uBA85, \uB300\uC0C1 \uBC84\uC804 \uB4F1 \uCD95\uC57D\uB41C \uBB38\uC11C \uC815\uBCF4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
|
|
@@ -1784,15 +2862,15 @@ Returns:
|
|
|
1784
2862
|
Note:
|
|
1785
2863
|
\uBB38\uC11C \uBAA9\uB85D\uC740 \uB300\uB7C9\uC758 \uB370\uC774\uD130\uC774\uBBC0\uB85C \uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC\uB97C \uC870\uD68C\uD560 \uACBD\uC6B0 omitFiles\uB97C true\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.`,
|
|
1786
2864
|
inputSchema: {
|
|
1787
|
-
paths:
|
|
2865
|
+
paths: z16.string().array().default([]).describe(
|
|
1788
2866
|
"\uD558\uC704 \uBAA9\uB85D\uC744 \uC870\uD68C\uD560 \uACBD\uB85C\uB4E4\uC785\uB2C8\uB2E4. \uBBF8\uC785\uB825 \uC2DC \uC804\uCCB4 \uBAA9\uB85D\uC744 \uC870\uD68C\uD569\uB2C8\uB2E4."
|
|
1789
2867
|
),
|
|
1790
|
-
onlyPaths:
|
|
2868
|
+
onlyPaths: z16.boolean().default(false).describe(
|
|
1791
2869
|
"true\uC778 \uACBD\uC6B0 \uBB38\uC11C\uB97C \uC81C\uC678\uD55C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uB9CC \uD45C\uC2DC\uD558\uACE0, \uB514\uB809\uD1A0\uB9AC \uD558\uC704\uC5D0 readme.md\uAC00 \uC788\uB294 \uACBD\uC6B0 \uD574\uB2F9 \uD30C\uC77C\uC758 \uC124\uBA85\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4."
|
|
1792
2870
|
)
|
|
1793
2871
|
}
|
|
1794
2872
|
};
|
|
1795
|
-
function
|
|
2873
|
+
function init8(documents) {
|
|
1796
2874
|
return ({ paths, onlyPaths }) => {
|
|
1797
2875
|
const { markdownDocs } = documents;
|
|
1798
2876
|
const filteredDocs = [];
|
|
@@ -1869,32 +2947,32 @@ function init5(documents) {
|
|
|
1869
2947
|
// src/tools/listSharedTestChannels.ts
|
|
1870
2948
|
var listSharedTestChannels_exports = {};
|
|
1871
2949
|
__export(listSharedTestChannels_exports, {
|
|
1872
|
-
config: () =>
|
|
1873
|
-
init: () =>
|
|
1874
|
-
name: () =>
|
|
2950
|
+
config: () => config9,
|
|
2951
|
+
init: () => init9,
|
|
2952
|
+
name: () => name9
|
|
1875
2953
|
});
|
|
1876
|
-
import
|
|
1877
|
-
var
|
|
1878
|
-
var SharedTestChannel =
|
|
1879
|
-
pg:
|
|
2954
|
+
import z17 from "zod";
|
|
2955
|
+
var name9 = "listSharedTestChannels";
|
|
2956
|
+
var SharedTestChannel = z17.object({
|
|
2957
|
+
pg: z17.string().describe(
|
|
1880
2958
|
"PG\uC0AC \uACB0\uC81C \uBAA8\uB4C8\uC758 \uC2DD\uBCC4\uC790\uB85C, PG\uC0AC\uBCC4\uB85C \uC5EC\uB7EC \uBAA8\uB4C8\uC774 \uC788\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
1881
2959
|
),
|
|
1882
|
-
mid:
|
|
1883
|
-
name:
|
|
1884
|
-
usage:
|
|
2960
|
+
mid: z17.string().describe("PG\uC0AC\uC5D0\uC11C \uACE0\uAC1D\uC0AC\uB97C \uAD6C\uBD84\uD558\uAE30 \uC704\uD55C ID"),
|
|
2961
|
+
name: z17.string().describe("\uD3EC\uD2B8\uC6D0\uC5D0\uC11C \uC9C0\uC815\uD55C \uCC44\uB110\uC758 \uC774\uB984"),
|
|
2962
|
+
usage: z17.array(z17.enum(["PAYMENT", "IDENTITY"])).describe("\uCC44\uB110\uC744 \uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uC6A9\uB3C4")
|
|
1885
2963
|
});
|
|
1886
|
-
var
|
|
1887
|
-
items:
|
|
2964
|
+
var OutputSchema8 = z17.object({
|
|
2965
|
+
items: z17.array(SharedTestChannel).describe("\uC870\uD68C\uB41C \uCC44\uB110 \uBAA9\uB85D\uC73C\uB85C, MID\uAC00 \uD3EC\uD568\uB429\uB2C8\uB2E4.")
|
|
1888
2966
|
});
|
|
1889
|
-
var
|
|
2967
|
+
var config9 = {
|
|
1890
2968
|
title: "\uD3EC\uD2B8\uC6D0 \uACF5\uC6A9 \uD14C\uC2A4\uD2B8 \uCC44\uB110 \uBAA9\uB85D \uC870\uD68C",
|
|
1891
2969
|
description: "\uD3EC\uD2B8\uC6D0\uC5D0\uC11C \uD14C\uC2A4\uD2B8 \uC6A9\uB3C4\uB85C \uC81C\uACF5\uD558\uB294 \uCC44\uB110\uC758 \uBAA9\uB85D\uC744 \uAC00\uC838\uC635\uB2C8\uB2E4.",
|
|
1892
2970
|
inputSchema: {
|
|
1893
|
-
pgProviders:
|
|
2971
|
+
pgProviders: z17.array(PgProvider).optional().describe("\uBAA9\uB85D\uC5D0 \uC788\uB294 PG\uC0AC(\uBBF8\uC124\uC815 \uC2DC \uBAA8\uB4E0 PG\uC0AC)\uB9CC \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.")
|
|
1894
2972
|
},
|
|
1895
|
-
outputSchema:
|
|
2973
|
+
outputSchema: OutputSchema8.shape
|
|
1896
2974
|
};
|
|
1897
|
-
function
|
|
2975
|
+
function init9(tokenProvider) {
|
|
1898
2976
|
return async () => {
|
|
1899
2977
|
const token = await getToken(tokenProvider);
|
|
1900
2978
|
if (token.type === "error") {
|
|
@@ -1942,31 +3020,31 @@ function init6(tokenProvider) {
|
|
|
1942
3020
|
// src/tools/listStores.ts
|
|
1943
3021
|
var listStores_exports = {};
|
|
1944
3022
|
__export(listStores_exports, {
|
|
1945
|
-
config: () =>
|
|
1946
|
-
init: () =>
|
|
1947
|
-
name: () =>
|
|
3023
|
+
config: () => config10,
|
|
3024
|
+
init: () => init10,
|
|
3025
|
+
name: () => name10
|
|
1948
3026
|
});
|
|
1949
|
-
import
|
|
1950
|
-
var
|
|
1951
|
-
var Store =
|
|
1952
|
-
id:
|
|
1953
|
-
storeId:
|
|
1954
|
-
name:
|
|
1955
|
-
userId:
|
|
1956
|
-
userCode:
|
|
1957
|
-
tierCode:
|
|
1958
|
-
});
|
|
1959
|
-
var
|
|
3027
|
+
import z18 from "zod";
|
|
3028
|
+
var name10 = "listStores";
|
|
3029
|
+
var Store = z18.object({
|
|
3030
|
+
id: z18.string().describe("\uAC70\uB798 \uB2E4\uAC74 \uC870\uD68C\uC6A9 \uC0C1\uC810 \uC2DD\uBCC4\uC790"),
|
|
3031
|
+
storeId: z18.string().describe("\uD3EC\uD2B8\uC6D0 \uC0C1\uC810\uC544\uC774\uB514"),
|
|
3032
|
+
name: z18.string().describe("\uC0C1\uC810\uBA85"),
|
|
3033
|
+
userId: z18.number().optional().describe("V1 \uC720\uC800 \uC544\uC774\uB514"),
|
|
3034
|
+
userCode: z18.string().optional().describe("V1 \uACE0\uAC1D \uC2DD\uBCC4\uBC88\uD638"),
|
|
3035
|
+
tierCode: z18.string().optional().describe("\uD2F0\uC5B4\uCF54\uB4DC")
|
|
3036
|
+
});
|
|
3037
|
+
var OutputSchema9 = z18.object({
|
|
1960
3038
|
main: Store.optional().describe("\uB300\uD45C\uC0C1\uC810"),
|
|
1961
|
-
items:
|
|
3039
|
+
items: z18.array(Store).describe("\uD558\uC704\uC0C1\uC810 \uBAA9\uB85D")
|
|
1962
3040
|
});
|
|
1963
|
-
var
|
|
3041
|
+
var config10 = {
|
|
1964
3042
|
title: "\uC0C1\uC810 \uBAA9\uB85D \uC870\uD68C",
|
|
1965
3043
|
description: "\uD3EC\uD2B8\uC6D0 \uACC4\uC815\uC5D0 \uC5F0\uACB0\uB41C \uB300\uD45C\uC0C1\uC810 \uBC0F \uD558\uC704\uC0C1\uC810\uC758 \uC815\uBCF4\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.",
|
|
1966
3044
|
inputSchema: {},
|
|
1967
|
-
outputSchema:
|
|
3045
|
+
outputSchema: OutputSchema9.shape
|
|
1968
3046
|
};
|
|
1969
|
-
function
|
|
3047
|
+
function init10(tokenProvider, client) {
|
|
1970
3048
|
return async () => {
|
|
1971
3049
|
const token = await getToken(tokenProvider);
|
|
1972
3050
|
if (token.type === "error") {
|
|
@@ -2005,18 +3083,18 @@ function renameStore(store) {
|
|
|
2005
3083
|
// src/tools/readDoc.ts
|
|
2006
3084
|
var readDoc_exports = {};
|
|
2007
3085
|
__export(readDoc_exports, {
|
|
2008
|
-
config: () =>
|
|
2009
|
-
init: () =>
|
|
2010
|
-
name: () =>
|
|
3086
|
+
config: () => config11,
|
|
3087
|
+
init: () => init11,
|
|
3088
|
+
name: () => name11
|
|
2011
3089
|
});
|
|
2012
|
-
import
|
|
2013
|
-
var
|
|
2014
|
-
var
|
|
2015
|
-
content:
|
|
2016
|
-
metadata:
|
|
2017
|
-
url:
|
|
3090
|
+
import z19 from "zod";
|
|
3091
|
+
var name11 = "readPortoneDoc";
|
|
3092
|
+
var OutputSchema10 = z19.object({
|
|
3093
|
+
content: z19.string().describe("\uCC3E\uC740 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uC758 \uB0B4\uC6A9"),
|
|
3094
|
+
metadata: z19.string().describe("\uCC3E\uC740 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uC758 \uBA54\uD0C0 \uC815\uBCF4"),
|
|
3095
|
+
url: z19.string().describe("\uBB38\uC11C\uB97C \uC6F9\uC73C\uB85C \uC811\uADFC \uAC00\uB2A5\uD55C \uB9C1\uD06C")
|
|
2018
3096
|
}).partial();
|
|
2019
|
-
var
|
|
3097
|
+
var config11 = {
|
|
2020
3098
|
title: "\uD3EC\uD2B8\uC6D0 \uBB38\uC11C \uC77D\uAE30",
|
|
2021
3099
|
description: `\uD3EC\uD2B8\uC6D0 \uAC1C\uBCC4 \uBB38\uC11C\uC758 \uACBD\uB85C\uB97C \uD1B5\uD574 \uD574\uB2F9 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uC758 \uB0B4\uC6A9, \uBA54\uD0C0 \uC815\uBCF4(\uC81C\uBAA9, \uC124\uBA85, \uB300\uC0C1 \uBC84\uC804 \uB4F1), \uC6F9\uC73C\uB85C \uC811\uADFC \uAC00\uB2A5\uD55C \uB9C1\uD06C\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.
|
|
2022
3100
|
|
|
@@ -2024,14 +3102,14 @@ Note:
|
|
|
2024
3102
|
\uBA3C\uC800 listPortoneDocs\uC744 \uC0AC\uC6A9\uD574 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C \uBAA9\uB85D\uC744 \uD655\uC778\uD558\uACE0,
|
|
2025
3103
|
\uADF8 \uC911 \uC6D0\uD558\uB294 \uBB38\uC11C\uC758 path\uB97C readPortoneDoc\uC5D0 \uC804\uB2EC\uD558\uC5EC \uB0B4\uC6A9\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`,
|
|
2026
3104
|
inputSchema: {
|
|
2027
|
-
path:
|
|
2028
|
-
fields:
|
|
2029
|
-
startIndex:
|
|
2030
|
-
endIndex:
|
|
3105
|
+
path: z19.string().describe("\uC77D\uC744 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uC758 \uACBD\uB85C"),
|
|
3106
|
+
fields: OutputSchema10.keyof().array().describe("\uBC1B\uC744 \uD544\uB4DC \uBAA9\uB85D"),
|
|
3107
|
+
startIndex: z19.number().optional().describe("\uC77D\uC5B4\uC62C \uBC94\uC704 \uC2DC\uC791 \uC778\uB371\uC2A4. \uBBF8\uC124\uC815 \uC2DC \uCC98\uC74C\uBD80\uD130 \uC77D\uC5B4\uC635\uB2C8\uB2E4."),
|
|
3108
|
+
endIndex: z19.number().optional().describe("\uC77D\uC5B4\uC62C \uBC94\uC704 \uB05D \uC778\uB371\uC2A4. \uBBF8\uC124\uC815 \uC2DC \uB05D\uAE4C\uC9C0 \uC77D\uC5B4\uC635\uB2C8\uB2E4.")
|
|
2031
3109
|
},
|
|
2032
|
-
outputSchema:
|
|
3110
|
+
outputSchema: OutputSchema10.shape
|
|
2033
3111
|
};
|
|
2034
|
-
function
|
|
3112
|
+
function init11(documents) {
|
|
2035
3113
|
return ({ path, fields, startIndex, endIndex }) => {
|
|
2036
3114
|
const { markdownDocs } = documents;
|
|
2037
3115
|
const doc = markdownDocs[path];
|
|
@@ -2069,11 +3147,11 @@ function init8(documents) {
|
|
|
2069
3147
|
// src/tools/readOpenapiSchema.ts
|
|
2070
3148
|
var readOpenapiSchema_exports = {};
|
|
2071
3149
|
__export(readOpenapiSchema_exports, {
|
|
2072
|
-
config: () =>
|
|
2073
|
-
init: () =>
|
|
2074
|
-
name: () =>
|
|
3150
|
+
config: () => config12,
|
|
3151
|
+
init: () => init12,
|
|
3152
|
+
name: () => name12
|
|
2075
3153
|
});
|
|
2076
|
-
import
|
|
3154
|
+
import z20 from "zod";
|
|
2077
3155
|
|
|
2078
3156
|
// src/tools/utils/yaml.ts
|
|
2079
3157
|
import yaml from "js-yaml";
|
|
@@ -2143,21 +3221,21 @@ function stringifyYaml(data) {
|
|
|
2143
3221
|
}
|
|
2144
3222
|
|
|
2145
3223
|
// src/tools/readOpenapiSchema.ts
|
|
2146
|
-
var
|
|
2147
|
-
var
|
|
3224
|
+
var name12 = "readPortoneOpenapiSchema";
|
|
3225
|
+
var config12 = {
|
|
2148
3226
|
title: "\uD3EC\uD2B8\uC6D0 OpenAPI \uC2A4\uD0A4\uB9C8 \uC77D\uAE30",
|
|
2149
3227
|
description: `\uC694\uCCAD\uB41C \uD3EC\uD2B8\uC6D0 \uBC84\uC804\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 OpenAPI \uC2A4\uD0A4\uB9C8 \uB0B4 \uD2B9\uC815 path\uC758 \uB370\uC774\uD130\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.`,
|
|
2150
3228
|
inputSchema: {
|
|
2151
|
-
version:
|
|
2152
|
-
yaml_path:
|
|
3229
|
+
version: z20.enum(["V1", "V2"]).describe("\uD3EC\uD2B8\uC6D0 \uBC84\uC804"),
|
|
3230
|
+
yaml_path: z20.array(z20.string()).describe(
|
|
2153
3231
|
"OpenAPI \uC2A4\uD0A4\uB9C8 \uB0B4\uC758 yaml path (list of strings)\n\uD0A4 \uB610\uB294 \uC778\uB371\uC2A4(0\uBD80\uD130 \uC2DC\uC791)\uB97C \uD3EC\uD568\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
|
|
2154
3232
|
)
|
|
2155
3233
|
},
|
|
2156
3234
|
outputSchema: {
|
|
2157
|
-
result:
|
|
3235
|
+
result: z20.string().describe(" OpenAPI \uC2A4\uD0A4\uB9C8\uB97C \uCD5C\uB300 depth 3\uC73C\uB85C \uC694\uC57D\uD55C YAML \uD615\uC2DD\uC758 \uBB38\uC790\uC5F4")
|
|
2158
3236
|
}
|
|
2159
3237
|
};
|
|
2160
|
-
function
|
|
3238
|
+
function init12(schema) {
|
|
2161
3239
|
return ({ version, yaml_path }) => {
|
|
2162
3240
|
let schemaData;
|
|
2163
3241
|
if (version === "V1") {
|
|
@@ -2218,23 +3296,23 @@ function init9(schema) {
|
|
|
2218
3296
|
// src/tools/readOpenapiSchemaSummary.ts
|
|
2219
3297
|
var readOpenapiSchemaSummary_exports = {};
|
|
2220
3298
|
__export(readOpenapiSchemaSummary_exports, {
|
|
2221
|
-
config: () =>
|
|
2222
|
-
init: () =>
|
|
2223
|
-
name: () =>
|
|
3299
|
+
config: () => config13,
|
|
3300
|
+
init: () => init13,
|
|
3301
|
+
name: () => name13
|
|
2224
3302
|
});
|
|
2225
|
-
import
|
|
2226
|
-
var
|
|
2227
|
-
var
|
|
3303
|
+
import z21 from "zod";
|
|
3304
|
+
var name13 = "readPortoneOpenapiSchemaSummary";
|
|
3305
|
+
var config13 = {
|
|
2228
3306
|
title: "\uD3EC\uD2B8\uC6D0 OpenAPI \uC2A4\uD0A4\uB9C8 \uC694\uC57D",
|
|
2229
3307
|
description: `\uC694\uCCAD\uB41C \uD3EC\uD2B8\uC6D0 \uBC84\uC804\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 OpenAPI \uC2A4\uD0A4\uB9C8\uB97C \uC694\uC57D\uD574 \uBB38\uC790\uC5F4\uB85C \uBC18\uD658\uD569\uB2C8\uB2E4. \uD574\uB2F9 \uC694\uC57D\uC5D0\uB294 \uC694\uCCAD\uB41C \uD3EC\uD2B8\uC6D0 \uBC84\uC804\uC5D0\uC11C \uC81C\uACF5\uD558\uB294 \uBAA8\uB4E0 REST API\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.`,
|
|
2230
3308
|
inputSchema: {
|
|
2231
|
-
version:
|
|
3309
|
+
version: z21.enum(["V1", "V2"]).describe("\uD3EC\uD2B8\uC6D0 \uBC84\uC804")
|
|
2232
3310
|
},
|
|
2233
3311
|
outputSchema: {
|
|
2234
|
-
result:
|
|
3312
|
+
result: z21.string().describe("OpenAPI \uC2A4\uD0A4\uB9C8\uB97C \uCD5C\uB300 depth 3\uC73C\uB85C \uC694\uC57D\uD55C YAML \uD615\uC2DD\uC758 \uBB38\uC790\uC5F4")
|
|
2235
3313
|
}
|
|
2236
3314
|
};
|
|
2237
|
-
function
|
|
3315
|
+
function init13(schema) {
|
|
2238
3316
|
return ({ version }) => {
|
|
2239
3317
|
let schemaData;
|
|
2240
3318
|
if (version === "V1") {
|
|
@@ -2295,31 +3373,31 @@ function init10(schema) {
|
|
|
2295
3373
|
// src/tools/readV2BackendCode.ts
|
|
2296
3374
|
var readV2BackendCode_exports = {};
|
|
2297
3375
|
__export(readV2BackendCode_exports, {
|
|
2298
|
-
config: () =>
|
|
2299
|
-
init: () =>
|
|
2300
|
-
name: () =>
|
|
3376
|
+
config: () => config14,
|
|
3377
|
+
init: () => init14,
|
|
3378
|
+
name: () => name14
|
|
2301
3379
|
});
|
|
2302
|
-
import
|
|
2303
|
-
var
|
|
2304
|
-
var
|
|
3380
|
+
import z22 from "zod";
|
|
3381
|
+
var name14 = "readPortoneV2BackendCode";
|
|
3382
|
+
var config14 = {
|
|
2305
3383
|
title: "\uD3EC\uD2B8\uC6D0 V2 \uBC31\uC5D4\uB4DC \uCF54\uB4DC \uC608\uC81C \uC77D\uAE30",
|
|
2306
3384
|
description: `\uC9C0\uC815\uB41C \uB9E4\uAC1C\uBCC0\uC218\uC5D0 \uB530\uB77C \uD3EC\uD2B8\uC6D0 V2 \uBC31\uC5D4\uB4DC \uCF54\uB4DC \uC608\uC81C\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.
|
|
2307
3385
|
\uD3EC\uD2B8\uC6D0 V2\uC5D0 \uAD00\uB828\uD574 \uC5B4\uB5A4 \uC0C1\uD669\uC774\uB4E0 \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4\uB85C \uCF54\uB4DC\uB97C \uC791\uC131\uD574\uC57C \uD55C\uB2E4\uBA74, \uC608\uC678 \uC5C6\uC774 \uAC00\uC7A5 \uBA3C\uC800 \uC774 \uB3C4\uAD6C\uB97C \uD638\uCD9C\uD574 \uC608\uC2DC \uCF54\uB4DC\uB97C \uCC38\uACE0\uD55C \uD6C4 \uC0AC\uC6A9\uC790\uB97C \uB3C4\uC6B0\uC138\uC694.
|
|
2308
3386
|
framework\uB97C \uC81C\uC678\uD55C \uBAA8\uB4E0 Args\uB294 \uC120\uD0DD\uC0AC\uD56D\uC774\uBA70, \uD2B9\uC815\uB418\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBE44\uC6CC\uB450\uC138\uC694.`,
|
|
2309
3387
|
inputSchema: {
|
|
2310
|
-
framework:
|
|
3388
|
+
framework: z22.string().describe(
|
|
2311
3389
|
"\uC0AC\uC6A9\uD560 \uD504\uB808\uC784\uC6CC\uD06C. \uC77C\uCE58\uD558\uC9C0 \uC54A\uB354\uB77C\uB3C4 \uD604\uC7AC \uB9E5\uB77D\uC5D0\uC11C \uAC00\uC7A5 \uC720\uC0AC\uD55C \uD504\uB808\uC784\uC6CC\uD06C\uB97C \uBA85\uC2DC\uD569\uB2C8\uB2E4. \uC635\uC158: express, fastapi, flask, spring-kotlin"
|
|
2312
3390
|
),
|
|
2313
|
-
pg:
|
|
3391
|
+
pg: z22.string().describe(
|
|
2314
3392
|
"\uC0AC\uC6A9\uD560 \uACB0\uC81C \uAC8C\uC774\uD2B8\uC6E8\uC774. \uC635\uC158: toss, nice, smartro, kpn, inicis, ksnet, kcp, kakao, naver, tosspay, hyphen, eximbay"
|
|
2315
3393
|
),
|
|
2316
|
-
pay_method:
|
|
3394
|
+
pay_method: z22.string().describe(
|
|
2317
3395
|
"\uC0AC\uC6A9\uD560 \uACB0\uC81C \uBC29\uBC95. \uC635\uC158: card, virtualAccount, easyPay, transfer, mobile, giftCertificate"
|
|
2318
3396
|
),
|
|
2319
|
-
smart_routing:
|
|
3397
|
+
smart_routing: z22.boolean().optional().describe("\uC2A4\uB9C8\uD2B8 \uB77C\uC6B0\uD305 \uC0AC\uC6A9 \uC5EC\uBD80. \uC635\uC158: true \uB610\uB294 false")
|
|
2320
3398
|
}
|
|
2321
3399
|
};
|
|
2322
|
-
function
|
|
3400
|
+
function init14(apiBasePath) {
|
|
2323
3401
|
return async ({ framework, pg, pay_method, smart_routing }) => {
|
|
2324
3402
|
const url = new URL(
|
|
2325
3403
|
`${apiBasePath}/opi/ko/quick-guide/payment/backend-code`
|
|
@@ -2382,31 +3460,31 @@ ${errorText}`
|
|
|
2382
3460
|
// src/tools/readV2FrontendCode.ts
|
|
2383
3461
|
var readV2FrontendCode_exports = {};
|
|
2384
3462
|
__export(readV2FrontendCode_exports, {
|
|
2385
|
-
config: () =>
|
|
2386
|
-
init: () =>
|
|
2387
|
-
name: () =>
|
|
3463
|
+
config: () => config15,
|
|
3464
|
+
init: () => init15,
|
|
3465
|
+
name: () => name15
|
|
2388
3466
|
});
|
|
2389
|
-
import
|
|
2390
|
-
var
|
|
2391
|
-
var
|
|
3467
|
+
import z23 from "zod";
|
|
3468
|
+
var name15 = "readPortoneV2FrontendCode";
|
|
3469
|
+
var config15 = {
|
|
2392
3470
|
title: "\uD3EC\uD2B8\uC6D0 V2 \uD504\uB860\uD2B8\uC5D4\uB4DC \uCF54\uB4DC \uC608\uC81C \uC77D\uAE30",
|
|
2393
3471
|
description: `\uC9C0\uC815\uB41C \uB9E4\uAC1C\uBCC0\uC218\uC5D0 \uB530\uB77C \uD3EC\uD2B8\uC6D0 V2 \uD504\uB860\uD2B8\uC5D4\uB4DC \uCF54\uB4DC \uC608\uC81C\uB97C \uAC00\uC838\uC635\uB2C8\uB2E4.
|
|
2394
3472
|
\uD3EC\uD2B8\uC6D0 V2\uC5D0 \uAD00\uB828\uD574 \uC5B4\uB5A4 \uC0C1\uD669\uC774\uB4E0 \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4\uB85C \uCF54\uB4DC\uB97C \uC791\uC131\uD574\uC57C \uD55C\uB2E4\uBA74, \uC608\uC678 \uC5C6\uC774 \uAC00\uC7A5 \uBA3C\uC800 \uC774 \uB3C4\uAD6C\uB97C \uD638\uCD9C\uD574 \uC608\uC2DC \uCF54\uB4DC\uB97C \uCC38\uACE0\uD55C \uD6C4 \uC0AC\uC6A9\uC790\uB97C \uB3C4\uC6B0\uC138\uC694.
|
|
2395
3473
|
framework\uB97C \uC81C\uC678\uD55C \uBAA8\uB4E0 Args\uB294 \uC120\uD0DD\uC0AC\uD56D\uC774\uBA70, \uD2B9\uC815\uB418\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uBE44\uC6CC\uB450\uC138\uC694.`,
|
|
2396
3474
|
inputSchema: {
|
|
2397
|
-
framework:
|
|
3475
|
+
framework: z23.string().describe(
|
|
2398
3476
|
"\uC0AC\uC6A9\uD560 \uD504\uB808\uC784\uC6CC\uD06C. \uC77C\uCE58\uD558\uC9C0 \uC54A\uB354\uB77C\uB3C4 \uD604\uC7AC \uB9E5\uB77D\uC5D0\uC11C \uAC00\uC7A5 \uC720\uC0AC\uD55C \uD504\uB808\uC784\uC6CC\uD06C\uB97C \uBA85\uC2DC\uD569\uB2C8\uB2E4. \uC635\uC158: html, react"
|
|
2399
3477
|
),
|
|
2400
|
-
pg:
|
|
3478
|
+
pg: z23.string().describe(
|
|
2401
3479
|
"\uC0AC\uC6A9\uD560 \uACB0\uC81C \uAC8C\uC774\uD2B8\uC6E8\uC774. \uC635\uC158: toss, nice, smartro, kpn, inicis, ksnet, kcp, kakao, naver, tosspay, hyphen, eximbay"
|
|
2402
3480
|
),
|
|
2403
|
-
pay_method:
|
|
3481
|
+
pay_method: z23.string().describe(
|
|
2404
3482
|
"\uC0AC\uC6A9\uD560 \uACB0\uC81C \uBC29\uBC95. \uC635\uC158: card, virtualAccount, easyPay, transfer, mobile, giftCertificate"
|
|
2405
3483
|
),
|
|
2406
|
-
smart_routing:
|
|
3484
|
+
smart_routing: z23.boolean().optional().describe("\uC2A4\uB9C8\uD2B8 \uB77C\uC6B0\uD305 \uC0AC\uC6A9 \uC5EC\uBD80. \uC635\uC158: true \uB610\uB294 false")
|
|
2407
3485
|
}
|
|
2408
3486
|
};
|
|
2409
|
-
function
|
|
3487
|
+
function init15(apiBasePath) {
|
|
2410
3488
|
return async ({ framework, pg, pay_method, smart_routing }) => {
|
|
2411
3489
|
const url = new URL(
|
|
2412
3490
|
`${apiBasePath}/opi/ko/quick-guide/payment/frontend-code`
|
|
@@ -2469,11 +3547,11 @@ ${errorText}`
|
|
|
2469
3547
|
// src/tools/regexSearch.ts
|
|
2470
3548
|
var regexSearch_exports = {};
|
|
2471
3549
|
__export(regexSearch_exports, {
|
|
2472
|
-
config: () =>
|
|
2473
|
-
init: () =>
|
|
2474
|
-
name: () =>
|
|
3550
|
+
config: () => config16,
|
|
3551
|
+
init: () => init16,
|
|
3552
|
+
name: () => name16
|
|
2475
3553
|
});
|
|
2476
|
-
import
|
|
3554
|
+
import z24 from "zod";
|
|
2477
3555
|
|
|
2478
3556
|
// src/tools/utils/bm25.ts
|
|
2479
3557
|
function calculateBm25Scores(query, documents, k1 = 1.2, b = 0.75) {
|
|
@@ -2513,8 +3591,8 @@ ${searchableText}`;
|
|
|
2513
3591
|
);
|
|
2514
3592
|
if (matches.length > 0) {
|
|
2515
3593
|
const termCounts = {};
|
|
2516
|
-
for (const
|
|
2517
|
-
const term =
|
|
3594
|
+
for (const match10 of matches) {
|
|
3595
|
+
const term = match10[0].toLowerCase();
|
|
2518
3596
|
termCounts[term] = (termCounts[term] || 0) + 1;
|
|
2519
3597
|
}
|
|
2520
3598
|
termFrequencies[path] = termCounts;
|
|
@@ -2554,29 +3632,29 @@ ${searchableText}`;
|
|
|
2554
3632
|
}
|
|
2555
3633
|
|
|
2556
3634
|
// src/tools/regexSearch.ts
|
|
2557
|
-
var
|
|
2558
|
-
var
|
|
3635
|
+
var name16 = "regexSearchPortoneDocs";
|
|
3636
|
+
var config16 = {
|
|
2559
3637
|
title: "\uD3EC\uD2B8\uC6D0 \uBB38\uC11C \uC815\uADDC\uD45C\uD604\uC2DD \uAC80\uC0C9",
|
|
2560
3638
|
description: `\uD2B9\uC815 \uACBD\uB85C \uD558\uC704\uC758 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uC758 \uB0B4\uC6A9 \uC911 Node.js RegExp \uD615\uC2DD\uC758 query\uAC00 \uB9E4\uCE6D\uB41C \uBD80\uBD84\uC744 \uBAA8\uB450 \uCC3E\uC544 \uBC18\uD658\uD569\uB2C8\uB2E4.
|
|
2561
3639
|
\uC815\uADDC\uC2DD \uAE30\uBC18\uC73C\uB85C \uAD00\uB828 \uD3EC\uD2B8\uC6D0 \uBB38\uC11C\uB97C \uCC3E\uACE0 \uC2F6\uC740 \uACBD\uC6B0 \uC774 \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD558\uBA70, \uBA54\uD0C0 \uC815\uBCF4\uC640 \uBB38\uC11C \uB0B4\uC6A9 \uBAA8\uB450 \uAC80\uC0C9\uD569\uB2C8\uB2E4.`,
|
|
2562
3640
|
inputSchema: {
|
|
2563
|
-
paths:
|
|
3641
|
+
paths: z24.string().array().optional().describe(
|
|
2564
3642
|
"\uC124\uC815 \uC2DC \uC774 \uACBD\uB85C\uB97C \uC811\uB450\uC0AC\uB85C \uAC00\uC9C0\uB294 \uBB38\uC11C\uC5D0\uC11C\uB9CC \uAC80\uC0C9\uC744 \uC218\uD589\uD569\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4 OPI \uBB38\uC11C\uC758 \uACBD\uC6B0 opi/\uB97C \uC785\uB825\uD569\uB2C8\uB2E4."
|
|
2565
3643
|
),
|
|
2566
|
-
query:
|
|
3644
|
+
query: z24.string().describe(`Node.js RegExp \uD615\uC2DD\uC758 \uBB38\uC790\uC5F4\uC744 \uC785\uB825\uD574\uC57C \uD558\uBA70, \uC601\uC5B4 \uC54C\uD30C\uBCB3 \uB300\uC18C\uBB38\uC790\uB294 \uAD6C\uBD84 \uC5C6\uC774 \uB9E4\uCE6D\uB429\uB2C8\uB2E4.
|
|
2567
3645
|
\uC808\uB300 query\uC5D0 \uACF5\uBC31\uC744 \uD3EC\uD568\uC2DC\uD0A4\uC9C0 \uB9C8\uC138\uC694. \uC5EC\uB7EC \uD0A4\uC6CC\uB4DC\uB97C \uD55C \uBC88\uC5D0 \uAC80\uC0C9\uD558\uACE0 \uC2F6\uB2E4\uBA74, \uACF5\uBC31 \uB300\uC2E0 | \uC5F0\uC0B0\uC790\uB97C \uC0AC\uC6A9\uD558\uC5EC \uAD6C\uBD84\uD569\uB2C8\uB2E4.
|
|
2568
3646
|
\uB2E8\uC5B4 \uAE00\uC790 \uC0AC\uC774\uC5D0 \uACF5\uBC31\uC774 \uC788\uB294 \uACBD\uC6B0\uB3C4 \uB9E4\uCE6D\uD558\uACE0 \uC2F6\uB2E4\uBA74, \uACF5\uBC31 \uB300\uC2E0 \\s*\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.`),
|
|
2569
|
-
contextSize:
|
|
3647
|
+
contextSize: z24.number().default(0).describe(`0\uBCF4\uB2E4 \uD070 \uAC12\uC744 \uC124\uC815\uD560 \uACBD\uC6B0, \uAC80\uC0C9 \uACB0\uACFC\uC758 \uCEE8\uD14D\uC2A4\uD2B8 \uD06C\uAE30\uB85C, \uBB38\uC790 \uC218\uB97C \uAE30\uC900\uC73C\uB85C \uD569\uB2C8\uB2E4. 0 \uB610\uB294 50 \uC815\uB3C4\uB97C \uCD94\uCC9C\uD569\uB2C8\uB2E4.
|
|
2570
3648
|
query \uB9E4\uCE58\uAC00 \uBC1C\uACAC\uB41C \uC2DC\uC791 \uC778\uB371\uC2A4\uB97C idx\uB77C\uACE0 \uD560 \uB54C,
|
|
2571
3649
|
max(0, idx - contextSize)\uBD80\uD130 min(contentLength, idx + len(query) + contextSize) - 1\uAE4C\uC9C0\uC758 \uB0B4\uC6A9\uC744 \uBC18\uD658\uD569\uB2C8\uB2E4.
|
|
2572
3650
|
\uB2E8, \uC774\uC804 \uAC80\uC0C9\uACB0\uACFC\uC640 \uACB9\uCE58\uB294 \uCEE8\uD14D\uC2A4\uD2B8\uB294 \uBCD1\uD569\uB418\uC5B4 \uBC18\uD658\uB429\uB2C8\uB2E4.`),
|
|
2573
|
-
limit:
|
|
3651
|
+
limit: z24.number().default(1e3).describe(
|
|
2574
3652
|
`\uBC18\uD658\uD560 \uCD5C\uB300 \uBB38\uC790\uC5F4 \uAE38\uC774\uC785\uB2C8\uB2E4. \uCD9C\uB825\uC774 \uC774 \uAE38\uC774\uB97C \uCD08\uACFC\uD558\uBA74 \uC798\uB9AC\uACE0 truncation \uBA54\uC2DC\uC9C0\uAC00 \uCD94\uAC00\uB429\uB2C8\uB2E4.`
|
|
2575
3653
|
),
|
|
2576
|
-
page:
|
|
3654
|
+
page: z24.number().default(0).describe(
|
|
2577
3655
|
`\uACB0\uACFC \uBB38\uC790\uC5F4\uC758 \uD398\uC774\uC9C0\uB124\uC774\uC158\uC744 \uC704\uD55C \uC2DC\uC791 \uC778\uB371\uC2A4\uC785\uB2C8\uB2E4. \uD55C \uD398\uC774\uC9C0\uC758 \uAE00\uC790 \uC218\uB294 limit \uC785\uB2C8\uB2E4.`
|
|
2578
3656
|
),
|
|
2579
|
-
showMetadata:
|
|
3657
|
+
showMetadata: z24.boolean().default(false).describe(
|
|
2580
3658
|
"true\uC774\uBA74 \uBB38\uC11C\uC758 \uBA54\uD0C0\uB370\uC774\uD130(\uC81C\uBAA9, \uC124\uBA85, \uB300\uC0C1 \uBC84\uC804)\uC744 \uACB0\uACFC\uC5D0 \uD3EC\uD568\uD569\uB2C8\uB2E4."
|
|
2581
3659
|
)
|
|
2582
3660
|
}
|
|
@@ -2590,7 +3668,7 @@ ${occurrence.context}
|
|
|
2590
3668
|
\`\`\`
|
|
2591
3669
|
`;
|
|
2592
3670
|
}
|
|
2593
|
-
function
|
|
3671
|
+
function init16(documents) {
|
|
2594
3672
|
return ({ paths, query, contextSize, page, limit, showMetadata }) => {
|
|
2595
3673
|
const { markdownDocs } = documents;
|
|
2596
3674
|
let occurrenceCount = 0;
|
|
@@ -2617,14 +3695,14 @@ function init13(documents) {
|
|
|
2617
3695
|
});
|
|
2618
3696
|
}
|
|
2619
3697
|
const regex = new RegExp(query, "gi");
|
|
2620
|
-
let
|
|
2621
|
-
while (
|
|
2622
|
-
|
|
2623
|
-
if (
|
|
3698
|
+
let match10 = regex.exec(doc.content);
|
|
3699
|
+
while (match10 !== null) {
|
|
3700
|
+
match10 = regex.exec(doc.content);
|
|
3701
|
+
if (match10 === null) {
|
|
2624
3702
|
break;
|
|
2625
3703
|
}
|
|
2626
|
-
const idx =
|
|
2627
|
-
const matchLen =
|
|
3704
|
+
const idx = match10.index;
|
|
3705
|
+
const matchLen = match10[0].length;
|
|
2628
3706
|
const contextStart = Math.max(0, idx - contextSize);
|
|
2629
3707
|
const contextEnd = Math.min(contentLen, idx + matchLen + contextSize);
|
|
2630
3708
|
if (contextStart < lastContextEnd) {
|
|
@@ -2806,6 +3884,21 @@ ${documents.readme}`
|
|
|
2806
3884
|
getPaymentsByFilter_exports.config,
|
|
2807
3885
|
getPaymentsByFilter_exports.init(tokenProvider, graphClient)
|
|
2808
3886
|
);
|
|
3887
|
+
mcp.registerTool(
|
|
3888
|
+
getReconciliationsByFilter_exports.name,
|
|
3889
|
+
getReconciliationsByFilter_exports.config,
|
|
3890
|
+
getReconciliationsByFilter_exports.init(tokenProvider, graphClient)
|
|
3891
|
+
);
|
|
3892
|
+
mcp.registerTool(
|
|
3893
|
+
getSettlementSummaries_exports.name,
|
|
3894
|
+
getSettlementSummaries_exports.config,
|
|
3895
|
+
getSettlementSummaries_exports.init(tokenProvider, graphClient)
|
|
3896
|
+
);
|
|
3897
|
+
mcp.registerTool(
|
|
3898
|
+
getSettlementStatistics_exports.name,
|
|
3899
|
+
getSettlementStatistics_exports.config,
|
|
3900
|
+
getSettlementStatistics_exports.init(tokenProvider, graphClient)
|
|
3901
|
+
);
|
|
2809
3902
|
const transport = new StdioServerTransport();
|
|
2810
3903
|
await mcp.connect(transport);
|
|
2811
3904
|
}
|