@ttctl/mcp 0.1.0-rc.4 → 0.1.0-rc.5

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.
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { applications } from "@ttctl/core";
2
3
  import { type ToolRegistrationContext } from "./_shared.js";
3
4
  /**
4
5
  * Project an activity-item row into the trim "Interest Request" shape the
@@ -6,11 +7,28 @@ import { type ToolRegistrationContext } from "./_shared.js";
6
7
  * to integer days. Returns the same `id` so callers can drill into
7
8
  * `ttctl_applications_show` for the full detail view.
8
9
  *
10
+ * **`fixedRate` (#410)**: surfaces the recruiter-pinned Fixed rate the
11
+ * Toptal portal renders next to the IR. Lifted from the row's
12
+ * `availabilityRequest.metadata.offeredHourlyRate` via the core
13
+ * `applications.list()` projection. `null` when the AR carries no
14
+ * Fixed-rate offer (defensive — every recruiter-initiated IR observed
15
+ * in the wild has carried one).
16
+ *
9
17
  * @internal Exported for unit tests.
10
18
  */
11
19
  export interface InterestRequestRow {
12
20
  /** Activity-item id; pass to `ttctl_applications_show` for detail. */
13
21
  id: string;
22
+ /**
23
+ * **AvailabilityRequest id** (#411). The handle the write-side IR
24
+ * mutations (`ttctl_interest_requests_accept` /
25
+ * `ttctl_interest_requests_reject`) require. Distinct from `id`
26
+ * above, which is the activity-item id used by `_show`. `null` when
27
+ * the activity row carries no AR (theoretically possible if a row
28
+ * is classified into `ON_RECRUITER_REVIEW` without an underlying AR,
29
+ * though every observed IR in the wild has carried one).
30
+ */
31
+ availabilityRequestId: string | null;
14
32
  /** Server-rendered status label (e.g. "Job Interest Request"). */
15
33
  statusVerbose: string;
16
34
  /** Underlying job title (may be null if the wire elided it). */
@@ -23,6 +41,13 @@ export interface InterestRequestRow {
23
41
  lastUpdatedAt: string;
24
42
  /** Whole days between `lastUpdatedAt` and `now`; null if unparseable. */
25
43
  daysPending: number | null;
44
+ /**
45
+ * Recruiter-pinned Fixed rate (#410), in the standard Money shape.
46
+ * `null` when no Fixed-rate offer is present on the row. Use
47
+ * `fixedRate.decimal` for numeric comparison, `fixedRate.verbose` for
48
+ * pretty rendering (server-formatted, e.g. `"$77.00/hr"`).
49
+ */
50
+ fixedRate: applications.FixedRate | null;
26
51
  }
27
52
  /**
28
53
  * @internal Exported for unit tests.
@@ -40,6 +65,10 @@ export declare function projectRow(row: {
40
65
  fullName: string | null;
41
66
  } | null;
42
67
  };
68
+ availabilityRequest: {
69
+ id: string;
70
+ } | null;
71
+ fixedRate: applications.FixedRate | null;
43
72
  }, now: number): InterestRequestRow;
44
73
  /**
45
74
  * Register `ttctl_interest_requests_list` (#371) — a dedicated MCP affordance
@@ -1 +1 @@
1
- {"version":3,"file":"interest_requests.d.ts","sourceRoot":"","sources":["../../src/tools/interest_requests.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAuD,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AA0CjH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE;IACH,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC;CAC/F,EACD,GAAG,EAAE,MAAM,GACV,kBAAkB,CAcpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAmFnG"}
1
+ {"version":3,"file":"interest_requests.d.ts","sourceRoot":"","sources":["../../src/tools/interest_requests.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAuD,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AA0CjH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;OAQG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;OAKG;IACH,SAAS,EAAE,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE;IACH,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9F,mBAAmB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;CAC1C,EACD,GAAG,EAAE,MAAM,GACV,kBAAkB,CAgBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CA6FnG"}
@@ -52,12 +52,14 @@ export function projectRow(row, now) {
52
52
  : null;
53
53
  return {
54
54
  id: row.id,
55
+ availabilityRequestId: row.availabilityRequest?.id ?? null,
55
56
  statusVerbose: row.statusV2.verbose,
56
57
  jobTitle: row.job.title,
57
58
  clientName: row.job.client?.fullName ?? null,
58
59
  jobUrl: row.job.url,
59
60
  lastUpdatedAt: row.lastUpdatedAt,
60
61
  daysPending,
62
+ fixedRate: row.fixedRate,
61
63
  };
62
64
  }
63
65
  /**
@@ -160,6 +162,179 @@ export function registerInterestRequestsTools(server, ctx) {
160
162
  return mapInterestRequestsError(err);
161
163
  }
162
164
  });
165
+ // #411 — IR write surface. Three tools mirroring the talent-side
166
+ // ergonomic spec of #411: accept (→ confirm wire mutation), reject
167
+ // (→ reject wire mutation), reject-reasons (→ platform-config
168
+ // inventory). All three accept the **AvailabilityRequest id** as the
169
+ // handle (NOT the activity-item id); chain from
170
+ // `ttctl_interest_requests_list` rows via `availabilityRequestId`.
171
+ registerInterestRequestsAcceptTool(server, ctx);
172
+ registerInterestRequestsRejectTool(server, ctx);
173
+ registerInterestRequestsRejectReasonsTool(server, ctx);
174
+ }
175
+ function registerInterestRequestsAcceptTool(server, ctx) {
176
+ server.registerTool("ttctl_interest_requests_accept", {
177
+ title: "Accept an Interest Request",
178
+ description: [
179
+ "Accept (confirm) a Toptal Interest Request — the wire mutation",
180
+ "`ConfirmAvailabilityRequest` (mobile-gateway). Mirror of the",
181
+ '"View Job Interest Request → Respond" button on the Toptal portal.',
182
+ "",
183
+ "**DESTRUCTIVE** — accepting an IR transitions the AvailabilityRequest",
184
+ "from PENDING to CONFIRMED, creating a `JobApplication` for the underlying",
185
+ "job. There is no withdraw operation on the wire. Always preview with",
186
+ "`dryRun: true` first if uncertain.",
187
+ "",
188
+ "**Input id**: the `availabilityRequestId` from `ttctl_interest_requests_list`",
189
+ "rows (NOT the `id` field, which is the activity-item id used by `_show`).",
190
+ "Both ids are surfaced on the list output; pick `availabilityRequestId`.",
191
+ "",
192
+ "**Fields**:",
193
+ " - `id` (required): AvailabilityRequest id.",
194
+ " - `message` (optional): talent free-text accompanying the response.",
195
+ " Maps to the wire's `talentComment` field. Renders next to the",
196
+ ' "Respond" button in the recruiter\'s portal view.',
197
+ " - `rate` (optional): requested hourly rate, decimal string (e.g.",
198
+ ' `"80.00"`). Auto-filled from the AR\'s recruiter-pinned Fixed rate',
199
+ " when omitted. REQUIRED for FLEXIBLE / MARKETPLACE_FLEXIBLE ARs",
200
+ " (no recruiter-pinned rate to default to).",
201
+ " - `kind` (optional): AR kind (FIXED / FLEXIBLE / MARKETPLACE_FLEXIBLE).",
202
+ " Auto-detected from the AR's metadata `__typename` when omitted.",
203
+ "",
204
+ "Example user prompts:",
205
+ ' - "Accept Interest Request <id>." (uses recruiter-pinned rate by default)',
206
+ ' - "Accept IR <id> with the message \\"Available starting next Monday\\"."',
207
+ ' - "Accept Interest Request <id> at $90/hr." (override the Fixed rate)',
208
+ ].join("\n"),
209
+ inputSchema: {
210
+ id: z.string().describe("AvailabilityRequest id (NOT the activity-item id)"),
211
+ message: z.string().optional().describe("Optional talent free-text. Wire field: talentComment."),
212
+ rate: z
213
+ .string()
214
+ .optional()
215
+ .describe("Optional decimal hourly rate (e.g. '80.00'). Auto-filled from the AR's Fixed rate when omitted; required for FLEXIBLE / MARKETPLACE_FLEXIBLE ARs."),
216
+ kind: z
217
+ .enum([...applications.AVAILABILITY_REQUEST_KINDS])
218
+ .optional()
219
+ .describe("AR kind (auto-detected from metadata when omitted)"),
220
+ dryRun: DRY_RUN_FIELD,
221
+ },
222
+ }, async (args) => {
223
+ const auth = await ctx.resolveToolAuth();
224
+ if (!auth.ok)
225
+ return auth.response;
226
+ const input = {};
227
+ if (args.message !== undefined)
228
+ input.comment = args.message;
229
+ if (args.rate !== undefined)
230
+ input.requestedHourlyRate = args.rate;
231
+ if (args.kind !== undefined)
232
+ input.kind = args.kind;
233
+ try {
234
+ const outcome = await applications.confirm(auth.token, args.id, input, {
235
+ dryRun: args.dryRun === true,
236
+ });
237
+ if (outcome.kind === "preview") {
238
+ return dryRunResponse(outcome.preview);
239
+ }
240
+ return jsonResponse(outcome.result);
241
+ }
242
+ catch (err) {
243
+ return mapInterestRequestsError(err);
244
+ }
245
+ });
246
+ }
247
+ function registerInterestRequestsRejectTool(server, ctx) {
248
+ server.registerTool("ttctl_interest_requests_reject", {
249
+ title: "Reject an Interest Request",
250
+ description: [
251
+ "Reject (decline) a Toptal Interest Request — the wire mutation",
252
+ "`RejectAvailabilityRequest` (mobile-gateway). Mirror of the",
253
+ '"View Job Interest Request → Decline" form on the Toptal portal.',
254
+ "",
255
+ "**DESTRUCTIVE** — rejecting an IR transitions the AvailabilityRequest",
256
+ "to REJECTED (terminal, archived). No undo. Always preview with",
257
+ "`dryRun: true` first if uncertain.",
258
+ "",
259
+ "**Input id**: the `availabilityRequestId` from `ttctl_interest_requests_list`",
260
+ "rows (NOT the `id` field, which is the activity-item id used by `_show`).",
261
+ "",
262
+ "**Fields**:",
263
+ " - `id` (required): AvailabilityRequest id.",
264
+ " - `reason` (required): one of the `key` values from",
265
+ " `ttctl_interest_requests_reject_reasons`. The wire rejects unknown",
266
+ " keys with a top-level GraphQL error.",
267
+ " - `comment` (optional): accompanying free-text. Required when the",
268
+ " chosen reason has `isMandatory: true` on the inventory.",
269
+ "",
270
+ "Example user prompts:",
271
+ ' - "Decline Interest Request <id> with reason rate_too_low."',
272
+ ' - "Reject IR <id> as scope_mismatch, note: \\"Not aligned with my Python expertise.\\""',
273
+ ].join("\n"),
274
+ inputSchema: {
275
+ id: z.string().describe("AvailabilityRequest id (NOT the activity-item id)"),
276
+ reason: z
277
+ .string()
278
+ .describe("Decline reason key (see ttctl_interest_requests_reject_reasons for the inventory)"),
279
+ comment: z.string().optional().describe("Optional accompanying free-text (required for mandatory reasons)"),
280
+ dryRun: DRY_RUN_FIELD,
281
+ },
282
+ }, async (args) => {
283
+ const auth = await ctx.resolveToolAuth();
284
+ if (!auth.ok)
285
+ return auth.response;
286
+ const input = { reason: args.reason };
287
+ if (args.comment !== undefined)
288
+ input.comment = args.comment;
289
+ try {
290
+ const outcome = await applications.reject(auth.token, args.id, input, {
291
+ dryRun: args.dryRun === true,
292
+ });
293
+ if (outcome.kind === "preview") {
294
+ return dryRunResponse(outcome.preview);
295
+ }
296
+ return jsonResponse(outcome.result);
297
+ }
298
+ catch (err) {
299
+ return mapInterestRequestsError(err);
300
+ }
301
+ });
302
+ }
303
+ function registerInterestRequestsRejectReasonsTool(server, ctx) {
304
+ server.registerTool("ttctl_interest_requests_reject_reasons", {
305
+ title: "List Interest Request decline-reason inventory",
306
+ description: [
307
+ "List the Interest Request decline-reason inventory — the `key` /",
308
+ "`value` / `isMandatory` rows the portal's Decline form uses. Pass one",
309
+ "of the surfaced `key` values to `ttctl_interest_requests_reject`.",
310
+ "",
311
+ "Returns `{ fixed: [...], flexible: [...] }` — the portal renders only",
312
+ "the slice matching the AR's `kind`, so clients should likewise pick",
313
+ "the slice that matches the AR being declined.",
314
+ "",
315
+ "Read-only, idempotent. Server-localised (the `value` text matches the",
316
+ "session's locale).",
317
+ "",
318
+ "Example user prompts:",
319
+ ' - "What reasons can I decline Interest Requests with?"',
320
+ ' - "Show me the reject-reason inventory for Fixed-kind IRs."',
321
+ ].join("\n"),
322
+ inputSchema: { dryRun: DRY_RUN_FIELD },
323
+ }, async (args) => {
324
+ const auth = await ctx.resolveToolAuth();
325
+ if (!auth.ok)
326
+ return auth.response;
327
+ if (args.dryRun === true) {
328
+ return dryRunResponse(buildMcpDryRunPreview("AvailabilityRequestRejectReasons", "mobile-gateway", {}, auth.token));
329
+ }
330
+ try {
331
+ const reasons = await applications.rejectReasons(auth.token);
332
+ return jsonResponse(reasons);
333
+ }
334
+ catch (err) {
335
+ return mapInterestRequestsError(err);
336
+ }
337
+ });
163
338
  }
164
339
  function invalidOlderThanResponse(supplied) {
165
340
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"interest_requests.js","sourceRoot":"","sources":["../../src/tools/interest_requests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interest_requests.js","sourceRoot":"","sources":["../../src/tools/interest_requests.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"employment.d.ts","sourceRoot":"","sources":["../../../src/tools/profile/employment.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAyC,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAUpG;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAqU7F"}
1
+ {"version":3,"file":"employment.d.ts","sourceRoot":"","sources":["../../../src/tools/profile/employment.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAyC,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAUpG;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAgX7F"}
@@ -33,15 +33,30 @@ export function registerEmploymentTools(server, ctx) {
33
33
  description: "Add a new employment entry (company + role, with optional start/end years and `current` flag). " +
34
34
  "The `company` string is resolved to the server-side `employerId` via the employer-autocomplete catalog: " +
35
35
  "0 matches or 2+ matches return a VALIDATION_ERROR with disambiguation guidance. Pass an explicit `employerId` to " +
36
- "bypass autocomplete entirely. Dates accept ISO-8601 (YYYY-MM-DD) or year-only (YYYY); year only is stored.",
36
+ "bypass autocomplete entirely. Set `noEmployer: true` for a custom (non-catalog) workplace sends the free-text " +
37
+ "`company` with employerId:null and skips autocomplete (orthogonal to `website`; cannot be combined with `employerId`). " +
38
+ "`industryIds` (at least one required) attaches catalog industries to the entry — " +
39
+ "discover ids via `ttctl_profile_industries_autocomplete`. " +
40
+ "Dates accept ISO-8601 (YYYY-MM-DD) or year-only (YYYY); year only is stored.",
37
41
  inputSchema: {
38
- company: z.string().min(1).describe("company / employer name (resolved to employerId via autocomplete)"),
42
+ company: z
43
+ .string()
44
+ .min(1)
45
+ .describe("company / employer name (resolved to employerId via autocomplete unless noEmployer is set)"),
39
46
  role: z.string().min(1).describe("job title (mapped to position)"),
40
47
  employerId: z
41
48
  .string()
42
49
  .min(1)
43
50
  .optional()
44
51
  .describe("explicit employerId (bypasses autocomplete; use `ttctl_profile_employment_employer_autocomplete` to discover)"),
52
+ industryIds: z
53
+ .array(z.string())
54
+ .min(1)
55
+ .describe('Catalog Industry ids (at least one required). Discover via `ttctl_profile_industries_autocomplete` or `ttctl profile industries autocomplete "<query>"`.'),
56
+ noEmployer: z
57
+ .boolean()
58
+ .optional()
59
+ .describe("custom (non-catalog) workplace: send the free-text `company` with employerId:null and skip the employer-autocomplete catalog. Orthogonal to `website`; cannot be combined with `employerId`."),
45
60
  from: dateInput.optional().describe("start date — ISO-8601 or year"),
46
61
  to: dateInput.optional().describe("end date — ISO-8601 or year"),
47
62
  current: z.boolean().optional().describe("mark as current position (no end date)"),
@@ -59,10 +74,18 @@ export function registerEmploymentTools(server, ctx) {
59
74
  const fields = {
60
75
  company: input.company,
61
76
  position: input.role,
77
+ // industryIds is required by the schema (zod `.min(1)`). The
78
+ // live `CreateEmployment` wire rejects a blank industry set
79
+ // (#395 cascade); surfacing it as a required parameter mirrors
80
+ // `portfolio_add` and fails fast before the wire.
81
+ industryIds: input.industryIds,
62
82
  };
63
83
  if (input.employerId !== undefined) {
64
84
  fields.employerId = input.employerId;
65
85
  }
86
+ if (input.noEmployer === true) {
87
+ fields.noEmployer = true;
88
+ }
66
89
  try {
67
90
  if (input.from !== undefined)
68
91
  fields.startDate = parseDateInput(input.from, "from").year;
@@ -84,8 +107,10 @@ export function registerEmploymentTools(server, ctx) {
84
107
  // Per-#395: dry-run path is delegated to the core service so the
85
108
  // preview's `variables.input.employment.employerId` carries the
86
109
  // resolved id (not the raw `company` string). The autocomplete
87
- // read query fires in dry-run too — the CreateEmployment mutation
88
- // transport does not.
110
+ // read query fires in dry-run too — EXCEPT on the #401
111
+ // custom-workplace path (`noEmployer: true`), where core skips
112
+ // resolution entirely (zero network). The CreateEmployment
113
+ // mutation transport never fires in dry-run regardless.
89
114
  try {
90
115
  const outcome = await profile.employment.add(auth.token, fields, { dryRun: input.dryRun === true });
91
116
  if (outcome.kind === "preview") {
@@ -99,7 +124,8 @@ export function registerEmploymentTools(server, ctx) {
99
124
  });
100
125
  server.registerTool("ttctl_profile_employment_update", {
101
126
  title: "Update employment entry",
102
- description: "Update an existing employment entry by id. At least one field must be supplied. `description` is multi-paragraph free-text and splits on blank lines.",
127
+ description: "Update an existing employment entry by id. At least one field must be supplied. `description` is multi-paragraph free-text and splits on blank lines. " +
128
+ "`industryIds`, when supplied, replaces the entry's entire industry set (omit to preserve the current set) — discover ids via `ttctl_profile_industries_autocomplete`.",
103
129
  inputSchema: {
104
130
  id: z.string().min(1).describe("employment id (V1-Employment-NNN)"),
105
131
  company: z.string().optional(),
@@ -110,6 +136,11 @@ export function registerEmploymentTools(server, ctx) {
110
136
  website: z.url().optional(),
111
137
  description: z.string().optional(),
112
138
  highlight: z.boolean().optional(),
139
+ industryIds: z
140
+ .array(z.string())
141
+ .min(1)
142
+ .optional()
143
+ .describe("Catalog Industry ids — when supplied, replaces the entry's industry set (partial update; omit to preserve). Discover via `ttctl_profile_industries_autocomplete`."),
113
144
  dryRun: DRY_RUN_FIELD,
114
145
  },
115
146
  }, async (input) => {
@@ -141,6 +172,11 @@ export function registerEmploymentTools(server, ctx) {
141
172
  }
142
173
  if (input.highlight !== undefined)
143
174
  fields.highlight = input.highlight;
175
+ // Replace-on-supply: when present, the supplied catalog set wins
176
+ // over the merge placeholder (dry-run) / current-state projection
177
+ // (apply path, via `buildUpdateEmploymentInput`'s `...fields`).
178
+ if (input.industryIds !== undefined)
179
+ fields.industryIds = input.industryIds;
144
180
  if (input.dryRun === true) {
145
181
  // Dry-run preview shows the full merged shape — the wire-required
146
182
  // fields the apply path injects from current state appear as
@@ -152,15 +188,17 @@ export function registerEmploymentTools(server, ctx) {
152
188
  //
153
189
  // Field set mirrors `buildUpdateEmploymentInput` in
154
190
  // `services/profile/employment/index.ts`: GraphQL-required-non-null
155
- // (4) + Rails `.blank?` gates (company, publicationPermit) +
156
- // catalog refs (employerId, industryIds both injected
157
- // conditionally on current state in the apply path). The optional
158
- // catalog refs (primaryGeographyId, reportingTo) appear in the
159
- // preview only when the current row has them; here we surface them
160
- // as placeholders so the preview is non-misleading about the
161
- // potential shape.
191
+ // (5: experienceItems, position, skills, showViaToptal, startDate
192
+ // `position` added #407) + Rails `.blank?` gates (company,
193
+ // publicationPermit) + catalog refs (employerId, industryIds
194
+ // both injected conditionally on current state in the apply path).
195
+ // The optional catalog refs (primaryGeographyId, reportingTo)
196
+ // appear in the preview only when the current row has them; here
197
+ // we surface them as placeholders so the preview is non-misleading
198
+ // about the potential shape.
162
199
  const previewEmployment = {
163
200
  experienceItems: profile.employment.DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER,
201
+ position: profile.employment.DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER,
164
202
  skills: profile.employment.DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER,
165
203
  showViaToptal: profile.employment.DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER,
166
204
  startDate: profile.employment.DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER,
@@ -1 +1 @@
1
- {"version":3,"file":"employment.js","sourceRoot":"","sources":["../../../src/tools/profile/employment.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAgC,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,aAAa,GAAG,CAAC;KACpB,OAAO,EAAE;KACT,QAAQ,EAAE;KACV,QAAQ,CACP,+JAA+J,CAChK,CAAC;AAEJ;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,GAA4B;IACrF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,iGAAiG;YACjG,0GAA0G;YAC1G,mHAAmH;YACnH,4GAA4G;QAC9G,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YACxG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAClE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,QAAQ,CACP,+GAA+G,CAChH;YACH,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACpE,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAChE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACvD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wEAAwE,CAAC;YACrF,MAAM,EAAE,aAAa;SACtB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;QACrE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAEvC,MAAM,MAAM,GAAwC;YAClD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,IAAI;SACrB,CAAC;QACF,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACvC,CAAC;QACD,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YACzF,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,iEAAiE;QACjE,gEAAgE;QAChE,+DAA+D;QAC/D,kEAAkE;QAClE,sBAAsB;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;YACpG,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iCAAiC,EACjC;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,uJAAuJ;QACzJ,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC1B,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC/B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACjC,MAAM,EAAE,aAAa;SACtB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;QACxE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAEvC,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YACzF,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAChE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;YACtC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAEtE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,kEAAkE;YAClE,6DAA6D;YAC7D,+DAA+D;YAC/D,2DAA2D;YAC3D,kEAAkE;YAClE,kEAAkE;YAClE,uDAAuD;YACvD,EAAE;YACF,oDAAoD;YACpD,oEAAoE;YACpE,6DAA6D;YAC7D,wDAAwD;YACxD,kEAAkE;YAClE,+DAA+D;YAC/D,mEAAmE;YACnE,6DAA6D;YAC7D,mBAAmB;YACnB,MAAM,iBAAiB,GAA4B;gBACjD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBACxE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBAC/D,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBACtE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBAClE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBAChE,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBAC1E,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBACnE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,oCAAoC;gBACpE,GAAG,MAAM;aACV,CAAC;YACF,OAAO,cAAc,CACnB,qBAAqB,CACnB,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,EACpE,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9E,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iCAAiC,EACjC;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;KACxF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;QACxE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,kBAAkB,EAClB,gBAAgB,EAChB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EACrC,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACjE,OAAO,yBAAyB,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,sNAAsN;QACxN,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;KACxF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;QACtE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,qBAAqB,EACrB,gBAAgB,EAChB,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAC3D,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE;YACX,oJAAoJ;YACpJ,EAAE;YACF,oDAAoD;YACpD,+DAA+D;YAC/D,8CAA8C;YAC9C,wDAAwD;SACzD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;KACvC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;QACtE,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,qBAAqB,EACrB,gBAAgB,EAChB,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAC3D,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oCAAoC,EACpC;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACpC,MAAM,EAAE,aAAa;SACtB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;QAC3E,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,qBAAqB,EACrB,gBAAgB,EAChB,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAC5C,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gDAAgD,EAChD;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,wHAAwH;QAC1H,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC1E,MAAM,EAAE,aAAa;SACtB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;QACvF,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,4BAA4B,EAC5B,gBAAgB,EAChB,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAC3C,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxG,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"employment.js","sourceRoot":"","sources":["../../../src/tools/profile/employment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile_skills_add.d.ts","sourceRoot":"","sources":["../../src/tools/profile_skills_add.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAOL,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AAWtB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAmDlG"}
1
+ {"version":3,"file":"profile_skills_add.d.ts","sourceRoot":"","sources":["../../src/tools/profile_skills_add.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAML,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AAkBtB,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CA6ElG"}
@@ -3,46 +3,85 @@
3
3
  import { profile } from "@ttctl/core";
4
4
  import { z } from "zod";
5
5
  import { ttctlErrorToToolResponseOrNull } from "../errors.js";
6
- import { buildMcpDryRunPreview, domainErrorResponse, dryRunResponse, genericErrorResponse, isToolErrorResponse, jsonResponse, } from "./_shared.js";
6
+ import { domainErrorResponse, dryRunResponse, genericErrorResponse, isToolErrorResponse, jsonResponse, } from "./_shared.js";
7
7
  const TOOL_NAME = "ttctl_profile_skills_add";
8
8
  const DRY_RUN_FIELD = z
9
9
  .boolean()
10
10
  .optional()
11
11
  .describe("Preview the request without executing. Returns `{ ok: true, dryRun: true, preview }` with operationName + variables + redacted bearer header. Default: false.");
12
+ // `ProficiencyRating` includes `NOVICE` as a read-accepted legacy value;
13
+ // for writes the user-visible Toptal UI exposes only the three values
14
+ // below (empirically verified via live UI inspection 2026-05-19). The MCP
15
+ // tool restricts writes to the documented three; if Toptal restores
16
+ // `NOVICE` as a write-acceptable value, this enum will need extension.
17
+ const PROFICIENCY_RATING = z.enum(["COMPETENT", "STRONG", "EXPERT"]);
12
18
  export function registerProfileSkillsAddTool(server, ctx) {
13
19
  server.registerTool(TOOL_NAME, {
14
20
  title: "Add a skill to profile",
15
21
  description: [
16
- "Add a skill to the signed-in user's profile by its catalog name (e.g., `TypeScript`, `PostgreSQL`).",
17
- "Returns the new ProfileSkillSet with default rating/experience/visibility configure those via `ttctl_profile_skills_update`.",
22
+ "Add a skill to the signed-in user's profile.",
23
+ "Pass `name` to add a custom skill, or pair `name` with `skillId` (from `ttctl_profile_skills_autocomplete`) to bind to a catalog Skill.",
24
+ "Proficiency dimensions (`rating`, `experience`, `public`) all have sensible defaults — pass them only when overriding.",
25
+ "",
26
+ "Defaults applied when omitted:",
27
+ " - `rating`: COMPETENT (lowest user-visible rating)",
28
+ " - `experience`: 1",
29
+ " - `public`: false (private)",
18
30
  "",
19
31
  "Example user prompts that should map to this tool:",
20
- ' - "Add TypeScript to my Toptal skills."',
21
- ' - "Add PostgreSQL as a skill on my profile."',
32
+ ' - "Add TypeScript to my Toptal skills." → `{ name: "TypeScript" }`',
33
+ ' - "Add PostgreSQL at expert level with 5 years experience, public." → `{ name: "PostgreSQL", rating: "EXPERT", experience: 5, public: true }`',
22
34
  ].join("\n"),
23
35
  inputSchema: {
24
36
  name: z
25
37
  .string()
26
38
  .min(1)
27
- .describe('Skill catalog name to add. The server resolves the name to a Skill id; if the name is ambiguous (e.g., "Postgres" vs "PostgreSQL"), use `ttctl_profile_skills_autocomplete` first to disambiguate.'),
39
+ .describe("Skill name. Free-text creates a custom (non-catalog) Skill; pair with `skillId` to bind to a catalog Skill discovered via `ttctl_profile_skills_autocomplete`."),
40
+ rating: PROFICIENCY_RATING.optional().describe("Proficiency rating. One of COMPETENT | STRONG | EXPERT. Defaults to COMPETENT."),
41
+ experience: z
42
+ .number()
43
+ .int()
44
+ .min(0)
45
+ .optional()
46
+ .describe("Total experience on the skill (integer). Defaults to 1."),
47
+ public: z.boolean().optional().describe("Show the skill on the public profile. Defaults to false (private)."),
48
+ skillId: z
49
+ .string()
50
+ .min(1)
51
+ .optional()
52
+ .describe("Optional catalog Skill id (e.g., `V1-Skill-278891`) to bind this entry to a catalog skill. Discover via `ttctl_profile_skills_autocomplete`. Omit to create a custom (non-catalog) skill from `name`."),
28
53
  dryRun: DRY_RUN_FIELD,
29
54
  },
30
55
  }, async (input) => {
31
56
  const auth = await ctx.loadTokenForTool(TOOL_NAME);
32
57
  if (isToolErrorResponse(auth))
33
58
  return auth;
34
- if (input.dryRun === true) {
35
- return dryRunResponse(buildMcpDryRunPreview("ADD_PROFILE_SKILL_SET", "talent-profile", { input: { name: input.name.trim() } }, auth.token));
36
- }
59
+ const fields = { name: input.name };
60
+ if (input.rating !== undefined)
61
+ fields.rating = input.rating;
62
+ if (input.experience !== undefined)
63
+ fields.experience = input.experience;
64
+ if (input.public !== undefined)
65
+ fields.public = input.public;
66
+ if (input.skillId !== undefined)
67
+ fields.skillId = input.skillId;
37
68
  try {
38
- const result = await profile.skills.add(auth.token, input.name);
39
- return jsonResponse(result);
69
+ // Delegate to the core service for both dry-run and apply paths so
70
+ // the preview's wire shape is byte-for-byte the same as the live
71
+ // mutation would transmit (matches #395 employment.add pattern).
72
+ const outcome = await profile.skills.add(auth.token, fields, { dryRun: input.dryRun === true });
73
+ if (outcome.kind === "preview") {
74
+ return dryRunResponse(outcome.preview);
75
+ }
76
+ return jsonResponse(outcome.result);
40
77
  }
41
78
  catch (err) {
42
79
  const typed = ttctlErrorToToolResponseOrNull(err);
43
80
  if (typed !== null)
44
81
  return typed;
45
- if (err instanceof profile.skills.SkillsError) {
82
+ // `extractProfileId` (apply path) throws `profile.basic.ProfileError`,
83
+ // not `SkillsError` — match the sibling skills tools' combined check.
84
+ if (err instanceof profile.skills.SkillsError || err instanceof profile.basic.ProfileError) {
46
85
  return domainErrorResponse(TOOL_NAME, err);
47
86
  }
48
87
  return genericErrorResponse(TOOL_NAME, err);
@@ -1 +1 @@
1
- {"version":3,"file":"profile_skills_add.js","sourceRoot":"","sources":["../../src/tools/profile_skills_add.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,GAEb,MAAM,cAAc,CAAC;AAEtB,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAE7C,MAAM,aAAa,GAAG,CAAC;KACpB,OAAO,EAAE;KACT,QAAQ,EAAE;KACV,QAAQ,CACP,+JAA+J,CAChK,CAAC;AAEJ,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,GAA4B;IAC1F,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;YACX,qGAAqG;YACrG,gIAAgI;YAChI,EAAE;YACF,oDAAoD;YACpD,2CAA2C;YAC3C,gDAAgD;SACjD,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,oMAAoM,CACrM;YACH,MAAM,EAAE,aAAa;SACtB;KACF,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,cAAc,CACnB,qBAAqB,CACnB,uBAAuB,EACvB,gBAAgB,EAChB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EACtC,IAAI,CAAC,KAAK,CACX,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACjC,IAAI,GAAG,YAAY,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9C,OAAO,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"profile_skills_add.js","sourceRoot":"","sources":["../../src/tools/profile_skills_add.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttctl/mcp",
3
- "version": "0.1.0-rc.4",
3
+ "version": "0.1.0-rc.5",
4
4
  "description": "TTCtl MCP server exposing Toptal Talent operations to AI assistants",
5
5
  "type": "module",
6
6
  "engines": {
@@ -30,14 +30,14 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^25",
33
- "eslint": "^10.3.0",
33
+ "eslint": "^10.4.0",
34
34
  "typescript": "~6.0.3",
35
35
  "vitest": "^4.1.1"
36
36
  },
37
37
  "dependencies": {
38
38
  "@modelcontextprotocol/sdk": "^1.28.0",
39
39
  "zod": "^4.4.3",
40
- "@ttctl/core": "^0.1.0-rc.4"
40
+ "@ttctl/core": "^0.1.0-rc.5"
41
41
  },
42
42
  "scripts": {
43
43
  "clean": "rm -rf dist tsconfig.tsbuildinfo",