@ttctl/core 0.1.0-rc.3 → 0.1.0-rc.4

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/employment/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/employment/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
- import { ProfileError } from "../basic/index.js";
3
+ import { DRY_RUN_PROFILE_ID_PLACEHOLDER, ProfileError } from "../basic/index.js";
4
4
  import { applyUserErrorsAndSuccess, callTalentProfile, ensureNoTopLevelErrors, extractProfileId } from "../shared.js";
5
+ import { buildDryRunPreview } from "../../../transport.js";
5
6
  const EMPLOYMENT_FRAGMENT = `fragment Employment on Employment {
6
7
  id
7
8
  company
@@ -18,6 +19,8 @@ const EMPLOYMENT_FRAGMENT = `fragment Employment on Employment {
18
19
  reportingTo
19
20
  industries { nodes { id name } }
20
21
  primaryGeography { id code name }
22
+ employer { id }
23
+ skills { nodes { id name } }
21
24
  }`;
22
25
  const GET_WORK_EXPERIENCE_QUERY = `query GET_WORK_EXPERIENCE($profileId: ID!) {
23
26
  profile(id: $profileId) {
@@ -92,6 +95,12 @@ function mapEmploymentNode(node) {
92
95
  name: typeof geoRaw.name === "string" ? geoRaw.name : null,
93
96
  }
94
97
  : null;
98
+ const employerRaw = node["employer"];
99
+ const employerId = employerRaw && typeof employerRaw.id === "string" ? employerRaw.id : null;
100
+ const skillsConn = node["skills"];
101
+ const skills = Array.isArray(skillsConn?.nodes)
102
+ ? skillsConn.nodes.flatMap((s) => typeof s.id === "string" && typeof s.name === "string" ? [{ id: s.id, name: s.name }] : [])
103
+ : [];
95
104
  const rawItems = node["experienceItems"];
96
105
  return {
97
106
  id: typeof node["id"] === "string" ? node["id"] : "",
@@ -111,6 +120,8 @@ function mapEmploymentNode(node) {
111
120
  reportingTo: node["reportingTo"] ?? null,
112
121
  industries,
113
122
  primaryGeography,
123
+ employerId,
124
+ skills,
114
125
  };
115
126
  }
116
127
  /**
@@ -151,27 +162,98 @@ export async function show(token, id) {
151
162
  }
152
163
  /**
153
164
  * Create a new employment row. Wire format per Pattern 2: `{ profileId,
154
- * employment: EmploymentInput }`. `company` and `position` are required.
165
+ * employment: EmploymentInput }`.
166
+ *
167
+ * **employerId resolution (#395)**: the live `talent_profile/graphql`
168
+ * server requires `employment.employerId` (the catalog identifier),
169
+ * NOT the free-text `company` string. Pre-#395, `add({company, role,
170
+ * …})` sent only the company string and was rejected with
171
+ * `USER_ERROR: employment add rejected (employerId): You can't leave
172
+ * this empty`. The fix:
173
+ *
174
+ * 1. If `fields.employerId` is supplied → use it verbatim. This is
175
+ * the explicit-bypass path (`--employer-id` on CLI,
176
+ * `employerId` on MCP) — useful for replay scripts, the
177
+ * disambiguation fallback, or known-good ids.
178
+ * 2. Otherwise, fire {@link employerAutocomplete} against
179
+ * `fields.company`. Toptal's autocomplete is fuzzy / prefix-
180
+ * search (typing "Anthropic" returns 10 partial matches), so the
181
+ * practical cardinality is on EXACT NAME MATCH (case-insensitive
182
+ * trim):
183
+ * - exactly 1 exact match → use its id transparently
184
+ * - 2+ exact matches (catalog duplicates — e.g. multiple
185
+ * regional subsidiaries with the same display name) →
186
+ * `VALIDATION_ERROR` listing the duplicates + `--employer-id`
187
+ * nudge
188
+ * - 0 exact, 0 fuzzy → `VALIDATION_ERROR` nudging to the
189
+ * autocomplete CLI command or `--employer-id` bypass
190
+ * - 0 exact, ≥1 fuzzy → `VALIDATION_ERROR` listing the top-N
191
+ * closest candidates with `--employer-id` nudge (the user
192
+ * typed a prefix; surface the catalog's actual names)
193
+ *
194
+ * The static defaults at `experienceItems: []`, `skills: []`,
195
+ * `showViaToptal: true` are retained pre-#395 — they were established
196
+ * empirically via the #344 E2E to satisfy "Expected value to not be
197
+ * null" on those required fields. Reviewing them in this PR would
198
+ * be premature without a fresh live capture; they may be revisited in
199
+ * a follow-up that mirrors the basic.set #393 read-merge pattern for
200
+ * employment.add.
201
+ *
202
+ * **Dry-run path (#395)**: when `options.dryRun === true`, the
203
+ * employer resolution still runs (fires `employersAutocomplete` if
204
+ * `employerId` is absent) so the preview's `variables.input.employment`
205
+ * carries the resolved `employerId`, matching the wire shape the live
206
+ * mutation would transmit. The `CreateEmployment` mutation transport
207
+ * is NOT invoked. The placeholder
208
+ * {@link DRY_RUN_PROFILE_ID_PLACEHOLDER} stands in for `profileId`
209
+ * (which the apply-path resolves via `extractProfileId`).
155
210
  */
156
- export async function add(token, fields) {
211
+ export async function add(token, fields, options = {}) {
157
212
  if (!fields.company || !fields.position) {
158
213
  throw new ProfileError("VALIDATION_ERROR", "employment add requires --company and --role.");
159
214
  }
160
- const profileId = await extractProfileId(token);
161
- const before = await listByProfileId(token, profileId);
162
- const beforeIds = new Set(before.map((e) => e.id));
163
- // The wire requires `experienceItems`, `skills`, and `showViaToptal` to
164
- // be non-null on `CreateEmployment` (live API rejects with
165
- // "Expected value to not be null" otherwise). The synthesized SDL marks
166
- // `CreateEmploymentInput` as `{ _placeholder: String }` these defaults
167
- // were established empirically via the #344 E2E. Callers may still
168
- // override.
215
+ // Resolve employerId BEFORE branching on dryRun so the preview's
216
+ // wire shape matches what the live mutation would transmit (#395
217
+ // explicit AC). The autocomplete query is a read, not a mutation —
218
+ // it fires in both dry-run and apply paths.
219
+ const employerId = await resolveEmployerId(token, fields);
220
+ // The wire requires several non-null fields on `CreateEmployment`
221
+ // (live API rejects with "Expected value to not be null" / "You can't
222
+ // leave this empty" otherwise). The defaults below were established
223
+ // empirically through E2E iteration — DO NOT add pre-emptive defaults
224
+ // for fields the server hasn't explicitly demanded, since
225
+ // `CreateEmploymentInput` rejects unknown fields with
226
+ // "Field is not defined on EmploymentInput" (e.g. `toptalRelated`,
227
+ // `highlight` are valid on `UpdateEmploymentInput` but NOT on
228
+ // `CreateEmploymentInput`).
229
+ // - `experienceItems`, `skills`, `showViaToptal` — via the #344 E2E
230
+ // - `publicationPermit` — via the #395 live capture (2026-05-19)
231
+ // Callers may still override.
169
232
  const employment = {
170
233
  experienceItems: [],
171
234
  skills: [],
172
235
  showViaToptal: true,
236
+ publicationPermit: false,
173
237
  ...fields,
238
+ employerId,
174
239
  };
240
+ if (options.dryRun === true) {
241
+ return {
242
+ kind: "preview",
243
+ preview: buildDryRunPreview({
244
+ surface: "talent-profile",
245
+ authToken: token,
246
+ body: {
247
+ operationName: "CreateEmployment",
248
+ query: CREATE_EMPLOYMENT_MUTATION,
249
+ variables: { input: { profileId: DRY_RUN_PROFILE_ID_PLACEHOLDER, employment } },
250
+ },
251
+ }),
252
+ };
253
+ }
254
+ const profileId = await extractProfileId(token);
255
+ const before = await listByProfileId(token, profileId);
256
+ const beforeIds = new Set(before.map((e) => e.id));
175
257
  const res = await callTalentProfile(token, "CreateEmployment", CREATE_EMPLOYMENT_MUTATION, { input: { profileId, employment } }, "employment add");
176
258
  const payload = unwrapMutation(res, "createEmployment", "employment add");
177
259
  const after = payload.profile?.employments.nodes.filter((n) => n !== null).map(mapEmploymentNode) ??
@@ -180,17 +262,186 @@ export async function add(token, fields) {
180
262
  if (!created) {
181
263
  throw new ProfileError("UNKNOWN", "employment add returned success but no new row was found in the response.");
182
264
  }
183
- return created;
265
+ return { kind: "created", result: created };
266
+ }
267
+ /**
268
+ * Resolve `fields.employerId` for the create-employment flow (#395).
269
+ *
270
+ * - Explicit `fields.employerId` → returned verbatim (bypass).
271
+ * - Otherwise call {@link employerAutocomplete}; Toptal's autocomplete
272
+ * is fuzzy / prefix-search, so the practical cardinality is on
273
+ * **exact name match** (case-insensitive, trimmed):
274
+ * - 1 exact match → transparent use
275
+ * - 0 exact, 0 fuzzy → "No employer matched" nudge
276
+ * - 0 exact, ≥1 fuzzy → "No exact match; closest candidates"
277
+ * listing + `--employer-id` nudge (the user typed a prefix /
278
+ * substring; we surface the catalog's actual names so they can
279
+ * pick an id)
280
+ * - 2+ exact → disambiguation listing of the duplicates (the
281
+ * catalog has multiple records with the same display name —
282
+ * common for companies with city subsidiaries; the user must
283
+ * pick one)
284
+ *
285
+ * Errors all surface as `VALIDATION_ERROR` with actionable recovery
286
+ * text so the CLI / MCP layer can render them as user-facing
287
+ * messages without further classification.
288
+ */
289
+ async function resolveEmployerId(token, fields) {
290
+ if (fields.employerId !== undefined && fields.employerId !== "") {
291
+ return fields.employerId;
292
+ }
293
+ // `fields.company` is asserted non-empty by the caller (the add()
294
+ // pre-flight rejects an empty company / position).
295
+ const company = fields.company ?? "";
296
+ const matches = await employerAutocomplete(token, company);
297
+ const norm = company.trim().toLowerCase();
298
+ const exact = matches.filter((m) => m.name.trim().toLowerCase() === norm);
299
+ if (exact.length === 1) {
300
+ const only = exact[0];
301
+ if (only === undefined) {
302
+ // Defensive: exact.length === 1 but indexed read is undefined —
303
+ // a TypeScript noUncheckedIndexedAccess guard. Unreachable at
304
+ // runtime.
305
+ throw new ProfileError("UNKNOWN", "employer-autocomplete returned 1 exact match but indexing it yielded undefined.");
306
+ }
307
+ return only.id;
308
+ }
309
+ if (exact.length >= 2) {
310
+ // Multiple catalog records share the user-supplied exact name
311
+ // (common for global companies with regional subsidiaries listed
312
+ // separately). Surface only the exact-name duplicates — the fuzzy
313
+ // siblings would just add noise.
314
+ const list = exact.map(formatCandidate).join("\n");
315
+ throw new ProfileError("VALIDATION_ERROR", `Multiple employers matched "${company}" exactly (${exact.length.toString()} duplicates in the catalog):\n` +
316
+ `${list}\n` +
317
+ `Pass \`--employer-id <id>\` to disambiguate.`);
318
+ }
319
+ // exact.length === 0
320
+ if (matches.length === 0) {
321
+ throw new ProfileError("VALIDATION_ERROR", `No employer matched "${company}". Use ` +
322
+ `\`ttctl profile employment employer-autocomplete <query>\` to search the catalog, ` +
323
+ `or pass \`--employer-id <id>\` to bypass autocomplete.`);
324
+ }
325
+ // 0 exact, ≥1 fuzzy. Surface the catalog's actual names so the user
326
+ // can refine (or pick an id directly).
327
+ const top = matches.slice(0, 5);
328
+ const list = top.map(formatCandidate).join("\n");
329
+ throw new ProfileError("VALIDATION_ERROR", `No exact match for "${company}" in the employer catalog ` +
330
+ `(${matches.length.toString()} fuzzy match${matches.length === 1 ? "" : "es"}; showing top ${top.length.toString()}):\n` +
331
+ `${list}\n` +
332
+ `Refine the company string to the exact catalog name, or pass \`--employer-id <id>\` to bypass autocomplete.`);
333
+ }
334
+ function formatCandidate(m) {
335
+ const loc = [m.city, m.country].filter((v) => v !== null && v !== "").join(", ");
336
+ return ` - ${m.id} ${m.name}${loc ? ` (${loc})` : ""}`;
337
+ }
338
+ /**
339
+ * Placeholder string substituted into a dry-run `UpdateEmployment`
340
+ * preview's variables payload for fields that the apply-path resolves by
341
+ * reading the current row (`experienceItems`, `skills`, `showViaToptal`,
342
+ * `startDate` — the four required-non-null fields injected by the
343
+ * read-current+merge logic, #394). Surfaced verbatim so MCP consumers can
344
+ * see the structural shape of what will be sent without TTCtl having
345
+ * fired the read transport. Same posture as `basic.set`'s
346
+ * {@link DRY_RUN_PROFILE_ID_PLACEHOLDER} — preserves the zero-transport-
347
+ * in-dry-run invariant (#165 / #379) while honoring #394's AC that the
348
+ * preview shows the full merged shape.
349
+ */
350
+ export const DRY_RUN_EMPLOYMENT_MERGE_PLACEHOLDER = "<resolved at send-time by reading current state>";
351
+ /**
352
+ * Build the merged `EmploymentInput` to send for an `UpdateEmployment`
353
+ * mutation by reading the current row and overlaying user-supplied fields.
354
+ *
355
+ * The `talent_profile/graphql` server treats four `EmploymentInput` fields
356
+ * as required non-null on `UpdateEmployment` and rejects the whole
357
+ * variables payload with `"Expected value to not be null"` when they are
358
+ * absent (#394 — wire-broke meta-class #392). The four fields are
359
+ * `experienceItems`, `showViaToptal`, `startDate`, and `skills`. This
360
+ * helper injects them from the current state where the EMPLOYMENT_FRAGMENT
361
+ * surfaces them (`experienceItems`, `showViaToptal`, `startDate`) and
362
+ * defaults `skills: []` because the fragment does not currently select the
363
+ * read-side `skills` connection. Other fields are left undefined and
364
+ * omitted from the wire payload — the server keeps the existing value for
365
+ * any field absent from the input (the omission-is-preservation half of
366
+ * the merge contract; only the four required-non-null fields force-echo).
367
+ *
368
+ * **Known limitation (#394)**: `skills` defaults to `[]` because the
369
+ * current read fragment does not surface skills. Calling `update()` on a
370
+ * row that has skills will reset them to empty. A follow-up will extend
371
+ * the fragment to read skills and preserve them through the merge; for
372
+ * the test-account this is acceptable, and the bug fix here is for the
373
+ * minimal `{id, role}` repro that previously failed at the wire layer
374
+ * regardless of skills state.
375
+ *
376
+ * Exported so the MCP layer can build the same merged input for the
377
+ * dry-run preview (AC: "Dry-run preview shows the full merged input").
378
+ *
379
+ * @throws `ProfileError("VALIDATION_ERROR")` when `fields` is empty.
380
+ * @throws `ProfileError("VALIDATION_ERROR")` when `current.startDate` is
381
+ * `null` and the caller did not supply a `startDate` override — the
382
+ * wire requires a non-null `startDate` and we have nothing to send.
383
+ */
384
+ export function buildUpdateEmploymentInput(current, fields) {
385
+ if (Object.keys(fields).length === 0) {
386
+ throw new ProfileError("VALIDATION_ERROR", "employment update requires at least one field flag.");
387
+ }
388
+ const startDate = fields.startDate ?? current.startDate;
389
+ if (startDate === null) {
390
+ throw new ProfileError("VALIDATION_ERROR", `Cannot update employment "${current.id}": startDate is required and current value is null. Supply --from to set a year.`);
391
+ }
392
+ // Server-side Rails `.blank?` gates (USER_ERROR "You can't leave this
393
+ // empty") — surfaced by the #394 live capture (2026-05-19): when the
394
+ // caller omits these, the wire layer accepts the partial input but
395
+ // the Rails apply path rejects it. Inject from the current row so
396
+ // user-supplied fields can still override. Optional pass-throughs
397
+ // (primaryGeographyId / reportingTo) are only set when the current
398
+ // row has a non-null value — sending an explicit null would change
399
+ // the row's state, which would defeat "merge".
400
+ const merged = {
401
+ // Wire-required non-null (GraphQL `Expected value to not be null`):
402
+ experienceItems: current.experienceItems ?? [],
403
+ // Preserve current row's skills through the merge — server rejects
404
+ // `skills: []` with "is too short (minimum is 1 character)" on
405
+ // update (#394 live-capture finding 2026-05-19). The EMPLOYMENT_FRAGMENT
406
+ // now selects `skills { nodes { id name } }` so `current.skills` is
407
+ // populated; pre-#394 it was always `[]` and update() defaulted to
408
+ // empty, which is what the live wire was rejecting.
409
+ skills: current.skills,
410
+ showViaToptal: current.showViaToptal,
411
+ startDate,
412
+ // Rails `.blank?` gates:
413
+ company: current.company,
414
+ publicationPermit: current.publicationPermit ?? true,
415
+ // industryIds: catalog refs the wire requires present and non-empty
416
+ // on the apply path.
417
+ industryIds: current.industries.map((i) => i.id),
418
+ };
419
+ if (current.employerId !== null) {
420
+ merged.employerId = current.employerId;
421
+ }
422
+ if (current.primaryGeography !== null) {
423
+ merged.primaryGeographyId = current.primaryGeography.id;
424
+ }
425
+ if (current.reportingTo !== null) {
426
+ merged.reportingTo = current.reportingTo;
427
+ }
428
+ return { ...merged, ...fields };
184
429
  }
185
430
  /**
186
431
  * Update an existing employment row. Wire format per Pattern 1:
187
432
  * `{ employmentId, employment: EmploymentInput }`.
433
+ *
434
+ * Reads the current row first and merges the four required-non-null
435
+ * fields onto the wire input (see {@link buildUpdateEmploymentInput} for
436
+ * the merge contract and #394 for the originating wire-broke incident).
188
437
  */
189
438
  export async function update(token, id, fields) {
190
439
  if (Object.keys(fields).length === 0) {
191
440
  throw new ProfileError("VALIDATION_ERROR", "employment update requires at least one field flag.");
192
441
  }
193
- const res = await callTalentProfile(token, "UpdateEmployment", UPDATE_EMPLOYMENT_MUTATION, { input: { employmentId: id, employment: fields } }, "employment update");
442
+ const current = await show(token, id);
443
+ const employment = buildUpdateEmploymentInput(current, fields);
444
+ const res = await callTalentProfile(token, "UpdateEmployment", UPDATE_EMPLOYMENT_MUTATION, { input: { employmentId: id, employment } }, "employment update");
194
445
  const payload = unwrapMutation(res, "updateEmployment", "employment update");
195
446
  const updated = payload.profile?.employments.nodes
196
447
  .filter((n) => n !== null)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/employment/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/employment/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttctl/core",
3
- "version": "0.1.0-rc.3",
3
+ "version": "0.1.0-rc.4",
4
4
  "description": "Core library for Toptal Talent platform integration: API client, auth, services",
5
5
  "type": "module",
6
6
  "engines": {