@ttctl/mcp 0.1.0-rc.1 → 0.1.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +28 -0
  2. package/dist/tools/_shared.d.ts +16 -14
  3. package/dist/tools/_shared.d.ts.map +1 -1
  4. package/dist/tools/_shared.js +31 -20
  5. package/dist/tools/_shared.js.map +1 -1
  6. package/dist/tools/applications.d.ts +10 -0
  7. package/dist/tools/applications.d.ts.map +1 -1
  8. package/dist/tools/applications.js +87 -9
  9. package/dist/tools/applications.js.map +1 -1
  10. package/dist/tools/engagements.d.ts.map +1 -1
  11. package/dist/tools/engagements.js +44 -2
  12. package/dist/tools/engagements.js.map +1 -1
  13. package/dist/tools/index.d.ts +3 -2
  14. package/dist/tools/index.d.ts.map +1 -1
  15. package/dist/tools/index.js +12 -3
  16. package/dist/tools/index.js.map +1 -1
  17. package/dist/tools/interest_requests.d.ts +77 -0
  18. package/dist/tools/interest_requests.d.ts.map +1 -0
  19. package/dist/tools/interest_requests.js +219 -0
  20. package/dist/tools/interest_requests.js.map +1 -0
  21. package/dist/tools/jobs.d.ts +18 -3
  22. package/dist/tools/jobs.d.ts.map +1 -1
  23. package/dist/tools/jobs.js +177 -39
  24. package/dist/tools/jobs.js.map +1 -1
  25. package/dist/tools/payments.d.ts.map +1 -1
  26. package/dist/tools/payments.js +51 -2
  27. package/dist/tools/payments.js.map +1 -1
  28. package/dist/tools/profile/certifications.d.ts.map +1 -1
  29. package/dist/tools/profile/certifications.js +26 -0
  30. package/dist/tools/profile/certifications.js.map +1 -1
  31. package/dist/tools/profile/education.d.ts.map +1 -1
  32. package/dist/tools/profile/education.js +26 -4
  33. package/dist/tools/profile/education.js.map +1 -1
  34. package/dist/tools/profile/employment.d.ts.map +1 -1
  35. package/dist/tools/profile/employment.js +26 -4
  36. package/dist/tools/profile/employment.js.map +1 -1
  37. package/dist/tools/profile/industries.d.ts +9 -1
  38. package/dist/tools/profile/industries.d.ts.map +1 -1
  39. package/dist/tools/profile/industries.js +28 -3
  40. package/dist/tools/profile/industries.js.map +1 -1
  41. package/dist/tools/profile/resume.d.ts.map +1 -1
  42. package/dist/tools/profile/resume.js +0 -2
  43. package/dist/tools/profile/resume.js.map +1 -1
  44. package/dist/tools/profile/shared.d.ts +12 -11
  45. package/dist/tools/profile/shared.d.ts.map +1 -1
  46. package/dist/tools/profile/shared.js +9 -8
  47. package/dist/tools/profile/shared.js.map +1 -1
  48. package/dist/tools/profile_basic_photo_upload.d.ts.map +1 -1
  49. package/dist/tools/profile_basic_photo_upload.js +0 -2
  50. package/dist/tools/profile_basic_photo_upload.js.map +1 -1
  51. package/dist/tools/profile_basic_show.d.ts +53 -8
  52. package/dist/tools/profile_basic_show.d.ts.map +1 -1
  53. package/dist/tools/profile_basic_show.js +57 -13
  54. package/dist/tools/profile_basic_show.js.map +1 -1
  55. package/dist/tools/profile_basic_update.d.ts.map +1 -1
  56. package/dist/tools/profile_basic_update.js +0 -2
  57. package/dist/tools/profile_basic_update.js.map +1 -1
  58. package/dist/tools/profile_external_show.d.ts +15 -0
  59. package/dist/tools/profile_external_show.d.ts.map +1 -0
  60. package/dist/tools/profile_external_show.js +59 -0
  61. package/dist/tools/profile_external_show.js.map +1 -0
  62. package/dist/tools/timesheet.d.ts +15 -5
  63. package/dist/tools/timesheet.d.ts.map +1 -1
  64. package/dist/tools/timesheet.js +89 -6
  65. package/dist/tools/timesheet.js.map +1 -1
  66. package/package.json +2 -2
  67. package/dist/tools/output-schemas.d.ts +0 -115
  68. package/dist/tools/output-schemas.d.ts.map +0 -1
  69. package/dist/tools/output-schemas.js +0 -130
  70. package/dist/tools/output-schemas.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import { z } from "zod";
2
- /**
3
- * MCP `outputSchema` definitions for the top-10 write-capable tools
4
- * (#226). Each schema mirrors the TypeScript return type from
5
- * `@ttctl/core` so LLM clients reading the tool registry can validate
6
- * the structured payload they receive.
7
- *
8
- * Each schema describes the SUCCESS-path payload only. Dry-run responses
9
- * use the uniform `{ ok, dryRun, preview }` envelope advertised via the
10
- * tool description (see `_shared.ts` § `dryRunResponse`) and intentionally
11
- * carry NO `structuredContent` — the SDK skips `outputSchema` validation
12
- * when `structuredContent` is absent (per `@modelcontextprotocol/sdk`
13
- * `_validateOutput`), so dry-run paths bypass success-shape validation
14
- * cleanly.
15
- *
16
- * The MCP SDK's `normalizeObjectSchema` accepts only ZodObject shapes for
17
- * `outputSchema`; unions and discriminated unions are silently dropped.
18
- * Therefore each schema below is a single `z.object()` describing the
19
- * apply-path payload — sufficient for the AC ("LLM clients can validate
20
- * tool output against the schema").
21
- */
22
- /**
23
- * Shape returned by `profile.basic.set()` on the apply path —
24
- * mirrors `UpdateProfileResult` from `@ttctl/core`.
25
- */
26
- export declare const profileBasicUpdateOutputSchema: z.ZodObject<{
27
- profile: z.ZodObject<{
28
- id: z.ZodString;
29
- about: z.ZodNullable<z.ZodString>;
30
- quote: z.ZodNullable<z.ZodString>;
31
- }, z.core.$strip>;
32
- notice: z.ZodNullable<z.ZodString>;
33
- }, z.core.$strip>;
34
- /**
35
- * Shape returned by `profile.basic.photoUpload()` — mirrors `PhotoUrl`
36
- * from `@ttctl/core`.
37
- */
38
- export declare const profileBasicPhotoUploadOutputSchema: z.ZodObject<{
39
- default: z.ZodNullable<z.ZodString>;
40
- original: z.ZodNullable<z.ZodString>;
41
- small: z.ZodNullable<z.ZodString>;
42
- cropped: z.ZodNullable<z.ZodObject<{
43
- x: z.ZodNumber;
44
- y: z.ZodNumber;
45
- width: z.ZodNumber;
46
- height: z.ZodNumber;
47
- }, z.core.$strip>>;
48
- isResolutionSatisfied: z.ZodBoolean;
49
- }, z.core.$strip>;
50
- /**
51
- * Shape returned by `profile.resume.upload()` — mirrors
52
- * `UploadResumeResult` from `@ttctl/core`.
53
- */
54
- export declare const profileResumeUploadOutputSchema: z.ZodObject<{
55
- success: z.ZodBoolean;
56
- }, z.core.$strip>;
57
- /**
58
- * Shape returned by `profile.education.add()` / `update()` — mirrors
59
- * `Education` from `@ttctl/core`.
60
- */
61
- export declare const profileEducationRowOutputSchema: z.ZodObject<{
62
- id: z.ZodString;
63
- institution: z.ZodString;
64
- degree: z.ZodString;
65
- fieldOfStudy: z.ZodNullable<z.ZodString>;
66
- location: z.ZodNullable<z.ZodString>;
67
- title: z.ZodNullable<z.ZodString>;
68
- yearFrom: z.ZodNullable<z.ZodNumber>;
69
- yearTo: z.ZodNullable<z.ZodNumber>;
70
- highlight: z.ZodBoolean;
71
- }, z.core.$strip>;
72
- /**
73
- * Shape returned by the `*_remove` tools' structured-content slot —
74
- * `{ id, removed: true }`. The `text` content slot retains the
75
- * human-readable confirmation; `structuredContent` exposes a typed
76
- * acknowledgment.
77
- */
78
- export declare const profileRowRemoveOutputSchema: z.ZodObject<{
79
- id: z.ZodString;
80
- removed: z.ZodLiteral<true>;
81
- }, z.core.$strip>;
82
- /**
83
- * Shape returned by `profile.employment.add()` / `update()` — mirrors
84
- * `Employment` from `@ttctl/core`.
85
- */
86
- export declare const profileEmploymentRowOutputSchema: z.ZodObject<{
87
- id: z.ZodString;
88
- company: z.ZodString;
89
- position: z.ZodString;
90
- companyWebsite: z.ZodNullable<z.ZodString>;
91
- noWebsite: z.ZodBoolean;
92
- startDate: z.ZodNullable<z.ZodNumber>;
93
- endDate: z.ZodNullable<z.ZodNumber>;
94
- experienceItems: z.ZodNullable<z.ZodArray<z.ZodString>>;
95
- highlight: z.ZodBoolean;
96
- showViaToptal: z.ZodBoolean;
97
- toptalRelated: z.ZodBoolean;
98
- }, z.core.$strip>;
99
- /**
100
- * Shape returned by `profile.industries.update()` — mirrors
101
- * `IndustryProfile` from `@ttctl/core`.
102
- */
103
- export declare const profileIndustriesRowOutputSchema: z.ZodObject<{
104
- id: z.ZodString;
105
- title: z.ZodString;
106
- about: z.ZodNullable<z.ZodString>;
107
- domainArea: z.ZodNullable<z.ZodString>;
108
- }, z.core.$strip>;
109
- /**
110
- * Tool names (frozen) that the test suite asserts must carry a populated
111
- * `outputSchema`. Adding a new write-capable tool: append its name here
112
- * and define the schema above.
113
- */
114
- export declare const TOOLS_WITH_OUTPUT_SCHEMA: readonly ["ttctl_profile_basic_update", "ttctl_profile_basic_photo_upload", "ttctl_profile_resume_upload", "ttctl_profile_education_add", "ttctl_profile_education_update", "ttctl_profile_education_remove", "ttctl_profile_employment_add", "ttctl_profile_employment_update", "ttctl_profile_employment_remove", "ttctl_profile_industries_update"];
115
- //# sourceMappingURL=output-schemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/output-schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;iBAOzC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;iBAa9C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;iBAE1C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;iBAU1C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;iBAY3C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gCAAgC;;;;;iBAK3C,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wVAW3B,CAAC"}
@@ -1,130 +0,0 @@
1
- // SPDX-License-Identifier: AGPL-3.0-only
2
- // Copyright (C) 2026 Oleksii PELYKH
3
- import { z } from "zod";
4
- /**
5
- * MCP `outputSchema` definitions for the top-10 write-capable tools
6
- * (#226). Each schema mirrors the TypeScript return type from
7
- * `@ttctl/core` so LLM clients reading the tool registry can validate
8
- * the structured payload they receive.
9
- *
10
- * Each schema describes the SUCCESS-path payload only. Dry-run responses
11
- * use the uniform `{ ok, dryRun, preview }` envelope advertised via the
12
- * tool description (see `_shared.ts` § `dryRunResponse`) and intentionally
13
- * carry NO `structuredContent` — the SDK skips `outputSchema` validation
14
- * when `structuredContent` is absent (per `@modelcontextprotocol/sdk`
15
- * `_validateOutput`), so dry-run paths bypass success-shape validation
16
- * cleanly.
17
- *
18
- * The MCP SDK's `normalizeObjectSchema` accepts only ZodObject shapes for
19
- * `outputSchema`; unions and discriminated unions are silently dropped.
20
- * Therefore each schema below is a single `z.object()` describing the
21
- * apply-path payload — sufficient for the AC ("LLM clients can validate
22
- * tool output against the schema").
23
- */
24
- /**
25
- * Shape returned by `profile.basic.set()` on the apply path —
26
- * mirrors `UpdateProfileResult` from `@ttctl/core`.
27
- */
28
- export const profileBasicUpdateOutputSchema = z.object({
29
- profile: z.object({
30
- id: z.string(),
31
- about: z.string().nullable(),
32
- quote: z.string().nullable(),
33
- }),
34
- notice: z.string().nullable(),
35
- });
36
- /**
37
- * Shape returned by `profile.basic.photoUpload()` — mirrors `PhotoUrl`
38
- * from `@ttctl/core`.
39
- */
40
- export const profileBasicPhotoUploadOutputSchema = z.object({
41
- default: z.string().nullable(),
42
- original: z.string().nullable(),
43
- small: z.string().nullable(),
44
- cropped: z
45
- .object({
46
- x: z.number(),
47
- y: z.number(),
48
- width: z.number(),
49
- height: z.number(),
50
- })
51
- .nullable(),
52
- isResolutionSatisfied: z.boolean(),
53
- });
54
- /**
55
- * Shape returned by `profile.resume.upload()` — mirrors
56
- * `UploadResumeResult` from `@ttctl/core`.
57
- */
58
- export const profileResumeUploadOutputSchema = z.object({
59
- success: z.boolean(),
60
- });
61
- /**
62
- * Shape returned by `profile.education.add()` / `update()` — mirrors
63
- * `Education` from `@ttctl/core`.
64
- */
65
- export const profileEducationRowOutputSchema = z.object({
66
- id: z.string(),
67
- institution: z.string(),
68
- degree: z.string(),
69
- fieldOfStudy: z.string().nullable(),
70
- location: z.string().nullable(),
71
- title: z.string().nullable(),
72
- yearFrom: z.number().nullable(),
73
- yearTo: z.number().nullable(),
74
- highlight: z.boolean(),
75
- });
76
- /**
77
- * Shape returned by the `*_remove` tools' structured-content slot —
78
- * `{ id, removed: true }`. The `text` content slot retains the
79
- * human-readable confirmation; `structuredContent` exposes a typed
80
- * acknowledgment.
81
- */
82
- export const profileRowRemoveOutputSchema = z.object({
83
- id: z.string(),
84
- removed: z.literal(true),
85
- });
86
- /**
87
- * Shape returned by `profile.employment.add()` / `update()` — mirrors
88
- * `Employment` from `@ttctl/core`.
89
- */
90
- export const profileEmploymentRowOutputSchema = z.object({
91
- id: z.string(),
92
- company: z.string(),
93
- position: z.string(),
94
- companyWebsite: z.string().nullable(),
95
- noWebsite: z.boolean(),
96
- startDate: z.number().nullable(),
97
- endDate: z.number().nullable(),
98
- experienceItems: z.array(z.string()).nullable(),
99
- highlight: z.boolean(),
100
- showViaToptal: z.boolean(),
101
- toptalRelated: z.boolean(),
102
- });
103
- /**
104
- * Shape returned by `profile.industries.update()` — mirrors
105
- * `IndustryProfile` from `@ttctl/core`.
106
- */
107
- export const profileIndustriesRowOutputSchema = z.object({
108
- id: z.string(),
109
- title: z.string(),
110
- about: z.string().nullable(),
111
- domainArea: z.string().nullable(),
112
- });
113
- /**
114
- * Tool names (frozen) that the test suite asserts must carry a populated
115
- * `outputSchema`. Adding a new write-capable tool: append its name here
116
- * and define the schema above.
117
- */
118
- export const TOOLS_WITH_OUTPUT_SCHEMA = [
119
- "ttctl_profile_basic_update",
120
- "ttctl_profile_basic_photo_upload",
121
- "ttctl_profile_resume_upload",
122
- "ttctl_profile_education_add",
123
- "ttctl_profile_education_update",
124
- "ttctl_profile_education_remove",
125
- "ttctl_profile_employment_add",
126
- "ttctl_profile_employment_update",
127
- "ttctl_profile_employment_remove",
128
- "ttctl_profile_industries_update",
129
- ];
130
- //# sourceMappingURL=output-schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../../src/tools/output-schemas.ts"],"names":[],"mappings":"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"}