@teamso/teamso-mcp 0.0.0-stage → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +136 -0
- package/LICENSE +21 -0
- package/README.md +506 -2
- package/dist/client.d.ts +215 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +797 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +58 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/server.d.ts +28 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +58 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/account.d.ts +4 -0
- package/dist/tools/account.d.ts.map +1 -0
- package/dist/tools/account.js +34 -0
- package/dist/tools/account.js.map +1 -0
- package/dist/tools/api.d.ts +13 -0
- package/dist/tools/api.d.ts.map +1 -0
- package/dist/tools/api.js +982 -0
- package/dist/tools/api.js.map +1 -0
- package/dist/tools/approvals.d.ts +5 -0
- package/dist/tools/approvals.d.ts.map +1 -0
- package/dist/tools/approvals.js +120 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/communication.d.ts +4 -0
- package/dist/tools/communication.d.ts.map +1 -0
- package/dist/tools/communication.js +39 -0
- package/dist/tools/communication.js.map +1 -0
- package/dist/tools/employees.d.ts +5 -0
- package/dist/tools/employees.d.ts.map +1 -0
- package/dist/tools/employees.js +113 -0
- package/dist/tools/employees.js.map +1 -0
- package/dist/tools/help.d.ts +6 -0
- package/dist/tools/help.d.ts.map +1 -0
- package/dist/tools/help.js +171 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/index.d.ts +86 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +118 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/leave-support.d.ts +60 -0
- package/dist/tools/leave-support.d.ts.map +1 -0
- package/dist/tools/leave-support.js +185 -0
- package/dist/tools/leave-support.js.map +1 -0
- package/dist/tools/leave.d.ts +14 -0
- package/dist/tools/leave.d.ts.map +1 -0
- package/dist/tools/leave.js +388 -0
- package/dist/tools/leave.js.map +1 -0
- package/dist/tools/payroll.d.ts +5 -0
- package/dist/tools/payroll.d.ts.map +1 -0
- package/dist/tools/payroll.js +101 -0
- package/dist/tools/payroll.js.map +1 -0
- package/dist/tools/performance.d.ts +13 -0
- package/dist/tools/performance.d.ts.map +1 -0
- package/dist/tools/performance.js +592 -0
- package/dist/tools/performance.js.map +1 -0
- package/dist/tools/schemas.d.ts +2079 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +460 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/shared.d.ts +20 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +64 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/types.d.ts +545 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/api-endpoints.d.ts +130 -0
- package/dist/utils/api-endpoints.d.ts.map +1 -0
- package/dist/utils/api-endpoints.js +459 -0
- package/dist/utils/api-endpoints.js.map +1 -0
- package/dist/utils/dates.d.ts +27 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +102 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/format.d.ts +8 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +26 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/help-search.d.ts +25 -0
- package/dist/utils/help-search.d.ts.map +1 -0
- package/dist/utils/help-search.js +93 -0
- package/dist/utils/help-search.js.map +1 -0
- package/dist/utils/json-schema-dialect.d.ts +12 -0
- package/dist/utils/json-schema-dialect.d.ts.map +1 -0
- package/dist/utils/json-schema-dialect.js +146 -0
- package/dist/utils/json-schema-dialect.js.map +1 -0
- package/dist/utils/results.d.ts +27 -0
- package/dist/utils/results.d.ts.map +1 -0
- package/dist/utils/results.js +88 -0
- package/dist/utils/results.js.map +1 -0
- package/dist/utils/structured.d.ts +89 -0
- package/dist/utils/structured.d.ts.map +1 -0
- package/dist/utils/structured.js +307 -0
- package/dist/utils/structured.js.map +1 -0
- package/dist/utils/text.d.ts +12 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +46 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +86 -4
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { ApiCallRequest, ApiCallResponse, HelpBundle, HelpLanguage, TeamsoAnnouncementFeed, TeamsoApiEndpointDescription, TeamsoApiEndpointPage, TeamsoApiModule, TeamsoAuthorizedEmployee, TeamsoDayCalculation, TeamsoEnvelope, TeamsoEvaluationApproval, TeamsoFileDownload, TeamsoGoal, TeamsoGoalPage, TeamsoGoalRequest, TeamsoLeaveControl, TeamsoLeaveCreateRequest, TeamsoLeaveListParams, TeamsoLeavePage, TeamsoLeavePolicyAssignment, TeamsoLeaveTypeBalance, TeamsoPayslipListParams, TeamsoPayslipPage, TeamsoPendingTransaction, TeamsoPerformanceSettings, TeamsoPublicHolidayCalendar, TeamsoUser, TeamsoUserPage, TeamsoUserSummary, TeamsoWorkingDays } from './types.js';
|
|
2
|
+
export type * from './types.js';
|
|
3
|
+
export declare const CLIENT_HEADER = "X-Teamso-Client";
|
|
4
|
+
export declare const PROXY_CLIENT_IP_HEADER = "X-Teamso-Proxy-Client-Ip";
|
|
5
|
+
export declare const PROXY_TIMESTAMP_HEADER = "X-Teamso-Proxy-Timestamp";
|
|
6
|
+
export declare const PROXY_SIGNATURE_HEADER = "X-Teamso-Proxy-Signature";
|
|
7
|
+
/** With value `read`, the API lets the request reach only handlers that do not write (403 otherwise). */
|
|
8
|
+
export declare const MCP_INTENT_HEADER = "X-Teamso-Mcp-Intent";
|
|
9
|
+
export declare function isFailureMessageCode(messageCode: string | undefined): boolean;
|
|
10
|
+
export interface TrustedProxyContext {
|
|
11
|
+
/** The end user's IP address (IPv4 or IPv6 literal). */
|
|
12
|
+
clientIp: string;
|
|
13
|
+
/** Shared secret configured as `security.mcp-proxy.shared-secret` on the API (≥ 32 chars). */
|
|
14
|
+
sharedSecret: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TeamsoClientOptions {
|
|
17
|
+
/** Sign the caller IP so the API applies its IP allowlist and audit to the real caller. */
|
|
18
|
+
trustedProxy?: TrustedProxyContext;
|
|
19
|
+
/** Site the help bundle is downloaded from (default `https://teamso.com`). */
|
|
20
|
+
helpBaseUrl?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Public site used for every help link and image shown to users (default: `helpBaseUrl`).
|
|
23
|
+
* Set it when `helpBaseUrl` is an internal address (e.g. a loopback mirror), so that address
|
|
24
|
+
* never reaches tool output.
|
|
25
|
+
*/
|
|
26
|
+
helpPublicUrl?: string;
|
|
27
|
+
/** Custom fetch implementation (tests, instrumentation). Defaults to the global fetch. */
|
|
28
|
+
fetch?: typeof fetch;
|
|
29
|
+
/** Per-request timeout in milliseconds (default 30 000). */
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
/** How long a downloaded help bundle stays fresh, in milliseconds (default 10 minutes). */
|
|
32
|
+
helpCacheTtlMs?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Shared help bundle cache (see createHelpCache). A long-running server that creates a client per
|
|
35
|
+
* request passes one cache so the bundle is downloaded once per TTL instead of on every call.
|
|
36
|
+
*/
|
|
37
|
+
helpCache?: HelpCache;
|
|
38
|
+
/** Clock used for proxy timestamps and the help cache (tests). */
|
|
39
|
+
now?: () => number;
|
|
40
|
+
}
|
|
41
|
+
export interface ProxySignatureInput {
|
|
42
|
+
sharedSecret: string;
|
|
43
|
+
timestamp: string;
|
|
44
|
+
clientIp: string;
|
|
45
|
+
method: string;
|
|
46
|
+
/** Request path including the context path (`/v1/...`), without the query string. */
|
|
47
|
+
pathname: string;
|
|
48
|
+
accessToken: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* HMAC-SHA256 over `timestamp\nclientIp\nMETHOD\npathname\nsha256hex(token)`,
|
|
52
|
+
* lowercase hex. The API verifies the same message within ±60 seconds.
|
|
53
|
+
*/
|
|
54
|
+
export declare function signProxyRequest(input: ProxySignatureInput): string;
|
|
55
|
+
/**
|
|
56
|
+
* A failed Teamso API call. Teamso reports many failures with HTTP 200 and
|
|
57
|
+
* `code: 1`, so `status` alone does not tell success from failure: check
|
|
58
|
+
* `messageCode` (e.g. `OTP_NOT_DONE`, `ITEM_NOT_FOUND`, `PERMISSION_DENIED`).
|
|
59
|
+
*/
|
|
60
|
+
export declare class TeamsoApiError extends Error {
|
|
61
|
+
readonly status: number;
|
|
62
|
+
readonly messageCode?: string;
|
|
63
|
+
readonly apiMessage?: string;
|
|
64
|
+
readonly body: unknown;
|
|
65
|
+
constructor(status: number, messageCode: string | undefined, message: string | undefined, body: unknown);
|
|
66
|
+
/** `result` of the response envelope, when the API sent one. */
|
|
67
|
+
get result(): unknown;
|
|
68
|
+
}
|
|
69
|
+
/** A response body larger than the caller accepts; nothing of it is returned. */
|
|
70
|
+
export declare class TeamsoResponseTooLargeError extends Error {
|
|
71
|
+
readonly limitBytes: number;
|
|
72
|
+
/** Size announced by `Content-Length`, when known. */
|
|
73
|
+
readonly sizeBytes?: number;
|
|
74
|
+
constructor(limitBytes: number, sizeBytes?: number);
|
|
75
|
+
}
|
|
76
|
+
/** Help bundle cache shared between clients; keys are `<helpBaseUrl>\n<lang>`. */
|
|
77
|
+
export type HelpCache = Map<string, HelpCacheEntry>;
|
|
78
|
+
export declare function createHelpCache(): HelpCache;
|
|
79
|
+
export interface HelpCacheEntry {
|
|
80
|
+
bundle?: HelpBundle;
|
|
81
|
+
expiresAt: number;
|
|
82
|
+
pending?: Promise<HelpBundle>;
|
|
83
|
+
}
|
|
84
|
+
export declare class TeamsoClient {
|
|
85
|
+
#private;
|
|
86
|
+
readonly baseUrl: string;
|
|
87
|
+
readonly helpBaseUrl: string;
|
|
88
|
+
/** Origin of the help links and images in tool output. */
|
|
89
|
+
readonly helpPublicUrl: string;
|
|
90
|
+
private readonly fetchImpl;
|
|
91
|
+
private readonly timeoutMs;
|
|
92
|
+
private readonly helpCacheTtlMs;
|
|
93
|
+
private readonly now;
|
|
94
|
+
private readonly helpCache;
|
|
95
|
+
private readonly endpointCache;
|
|
96
|
+
constructor(accessToken: string, baseUrl?: string, options?: TeamsoClientOptions);
|
|
97
|
+
getMe(signal?: AbortSignal): Promise<TeamsoUser>;
|
|
98
|
+
listLeavePolicies(signal?: AbortSignal): Promise<TeamsoLeavePolicyAssignment[]>;
|
|
99
|
+
getLeavePolicyBalances(leavePolicyUserId: string, signal?: AbortSignal): Promise<TeamsoLeaveTypeBalance[]>;
|
|
100
|
+
getMyWorkingDays(signal?: AbortSignal): Promise<TeamsoWorkingDays>;
|
|
101
|
+
getMyPublicHolidays(signal?: AbortSignal): Promise<TeamsoPublicHolidayCalendar>;
|
|
102
|
+
/** Dates are `yyyy-MM-dd HH:mm` Turkey wall clock. */
|
|
103
|
+
calculateLeaveDays(params: {
|
|
104
|
+
workingDaysId: string;
|
|
105
|
+
publicHolidayId: string;
|
|
106
|
+
leaveTypeId: string;
|
|
107
|
+
startDate: string;
|
|
108
|
+
endDate: string;
|
|
109
|
+
}, signal?: AbortSignal): Promise<TeamsoDayCalculation>;
|
|
110
|
+
checkLeaveRequest(params: {
|
|
111
|
+
leaveTypeId: string;
|
|
112
|
+
addedDay: number;
|
|
113
|
+
startDate: string;
|
|
114
|
+
endDate: string;
|
|
115
|
+
leavePolicyUserId: string;
|
|
116
|
+
userId: string;
|
|
117
|
+
}, signal?: AbortSignal): Promise<TeamsoLeaveControl>;
|
|
118
|
+
createLeave(request: TeamsoLeaveCreateRequest, signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
119
|
+
listLeaves(params?: TeamsoLeaveListParams, signal?: AbortSignal): Promise<TeamsoLeavePage>;
|
|
120
|
+
deleteLeave(leaveId: string, signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
121
|
+
/**
|
|
122
|
+
* Records an approval decision. `answer` is stored as the decision note (the
|
|
123
|
+
* rejection reason); the API requires one, so approvals without a note send `-`.
|
|
124
|
+
*/
|
|
125
|
+
respondToLeave(leaveId: string, approve: boolean, answer?: string, signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
126
|
+
/** Sends a 6-digit SMS code to the caller's phone. Costs SMS credit. */
|
|
127
|
+
requestOtp(signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
128
|
+
/** Verifies the SMS code; the next OTP-protected call consumes the verification. */
|
|
129
|
+
verifyOtp(code: string, signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
130
|
+
listPendingTransactions(signal?: AbortSignal): Promise<TeamsoPendingTransaction[]>;
|
|
131
|
+
searchUsers(params: {
|
|
132
|
+
query: string;
|
|
133
|
+
page?: number;
|
|
134
|
+
size?: number;
|
|
135
|
+
}, signal?: AbortSignal): Promise<TeamsoUserPage>;
|
|
136
|
+
listAuthorizedEmployees(signal?: AbortSignal): Promise<TeamsoAuthorizedEmployee[]>;
|
|
137
|
+
getUserSummary(userId: string, signal?: AbortSignal): Promise<TeamsoUserSummary>;
|
|
138
|
+
getPerformanceSettings(signal?: AbortSignal): Promise<TeamsoPerformanceSettings>;
|
|
139
|
+
listMyGoals(params: {
|
|
140
|
+
periodName: string;
|
|
141
|
+
page?: number;
|
|
142
|
+
size?: number;
|
|
143
|
+
}, signal?: AbortSignal): Promise<TeamsoGoalPage>;
|
|
144
|
+
listAssignedGoals(params: {
|
|
145
|
+
periodName: string;
|
|
146
|
+
status?: string;
|
|
147
|
+
page?: number;
|
|
148
|
+
size?: number;
|
|
149
|
+
}, signal?: AbortSignal): Promise<TeamsoGoalPage>;
|
|
150
|
+
getGoal(goalId: string, signal?: AbortSignal): Promise<TeamsoGoal>;
|
|
151
|
+
createGoal(request: TeamsoGoalRequest, signal?: AbortSignal): Promise<TeamsoGoal>;
|
|
152
|
+
sendGoalsToApproval(goalIds: string[], signal?: AbortSignal): Promise<TeamsoEnvelope>;
|
|
153
|
+
/** `GET` on the API, but it changes the goal status. */
|
|
154
|
+
approveGoal(goalId: string, signal?: AbortSignal): Promise<TeamsoEnvelope<TeamsoGoal>>;
|
|
155
|
+
reviseAndApproveGoal(goalId: string, request: TeamsoGoalRequest, signal?: AbortSignal): Promise<TeamsoEnvelope<TeamsoGoal>>;
|
|
156
|
+
updateGoalActualValue(goalId: string, params: {
|
|
157
|
+
actualValue?: number;
|
|
158
|
+
actualText?: string;
|
|
159
|
+
}, signal?: AbortSignal): Promise<TeamsoEnvelope<TeamsoGoal>>;
|
|
160
|
+
updateManagerActualValue(goalId: string, params: {
|
|
161
|
+
managerActualValue?: number;
|
|
162
|
+
managerActualText?: string;
|
|
163
|
+
}, signal?: AbortSignal): Promise<TeamsoEnvelope<TeamsoGoal>>;
|
|
164
|
+
approveEvaluationProcess(params: {
|
|
165
|
+
periodName: string;
|
|
166
|
+
userId: string;
|
|
167
|
+
}, signal?: AbortSignal): Promise<TeamsoEnvelope<TeamsoEvaluationApproval>>;
|
|
168
|
+
getAnnouncements(signal?: AbortSignal): Promise<TeamsoAnnouncementFeed>;
|
|
169
|
+
listMyPayslips(params?: TeamsoPayslipListParams, signal?: AbortSignal): Promise<TeamsoPayslipPage>;
|
|
170
|
+
/** Raw PDF bytes. The API answers every failure with a bodyless 404. */
|
|
171
|
+
downloadPayslip(payslipId: string, signal?: AbortSignal): Promise<TeamsoFileDownload>;
|
|
172
|
+
/** Endpoints the caller may call (`GET /mcp-catalog/endpoints`); pages start at 1. */
|
|
173
|
+
listApiEndpoints(params?: {
|
|
174
|
+
q?: string;
|
|
175
|
+
module?: string;
|
|
176
|
+
method?: string;
|
|
177
|
+
page?: number;
|
|
178
|
+
size?: number;
|
|
179
|
+
lang?: HelpLanguage;
|
|
180
|
+
}, signal?: AbortSignal): Promise<TeamsoApiEndpointPage>;
|
|
181
|
+
/**
|
|
182
|
+
* Full description of one endpoint the caller may call (`GET /mcp-catalog/endpoint`). Unknown,
|
|
183
|
+
* hidden and not-allowed ids are `ITEM_NOT_FOUND`. Descriptions are cached for a minute per client.
|
|
184
|
+
*/
|
|
185
|
+
getApiEndpoint(id: string, lang?: HelpLanguage, signal?: AbortSignal): Promise<TeamsoApiEndpointDescription>;
|
|
186
|
+
/** Product modules with endpoint counts (`GET /mcp-catalog/modules`). */
|
|
187
|
+
listApiModules(lang?: HelpLanguage, signal?: AbortSignal): Promise<TeamsoApiModule[]>;
|
|
188
|
+
/**
|
|
189
|
+
* Calls one catalog endpoint. JSON answers are unwrapped (Teamso failures, including HTTP 200
|
|
190
|
+
* failure codes, throw `TeamsoApiError`); anything else comes back as a file. Bodies larger than
|
|
191
|
+
* `maxResponseBytes` throw `TeamsoResponseTooLargeError` without being buffered.
|
|
192
|
+
*/
|
|
193
|
+
callApi(request: ApiCallRequest, signal?: AbortSignal): Promise<ApiCallResponse>;
|
|
194
|
+
/**
|
|
195
|
+
* Public help-center bundle. Cached in memory; when a refresh fails the last
|
|
196
|
+
* good copy is served and the download is retried a minute later.
|
|
197
|
+
*/
|
|
198
|
+
getHelpBundle(lang: HelpLanguage): Promise<HelpBundle>;
|
|
199
|
+
private downloadHelpBundle;
|
|
200
|
+
private call;
|
|
201
|
+
private requestEnvelope;
|
|
202
|
+
private send;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Many Teamso exports answer `application/octet-stream`; the file name then tells what it is, so MCP
|
|
206
|
+
* clients can open an Excel or PDF instead of an unknown binary. A specific type from the API wins.
|
|
207
|
+
*/
|
|
208
|
+
export declare function fileMimeType(contentType: string, fileName?: string): string;
|
|
209
|
+
/**
|
|
210
|
+
* Free text that travels as a URL path segment. Tomcat and Spring Security
|
|
211
|
+
* reject encoded slashes, backslashes, semicolons and percent signs there, and
|
|
212
|
+
* a segment of only dots is path traversal, so those are replaced.
|
|
213
|
+
*/
|
|
214
|
+
export declare function pathSafeText(value: string): string;
|
|
215
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|