@ttctl/core 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,3 +1,4 @@
1
+ import type { DryRunPreview } from "../../../transport.js";
1
2
  /**
2
3
  * Skills-domain error codes. Mirrors `profile.basic.ProfileErrorCode`'s
3
4
  * shape (NO_VIEWER, GRAPHQL_ERROR, NETWORK_ERROR, USER_ERROR, VALIDATION_ERROR,
@@ -28,6 +29,23 @@ export type ProficiencyRating = "COMPETENT" | "STRONG" | "EXPERT" | "NOVICE";
28
29
  * the same boolean before calling `set()`).
29
30
  */
30
31
  export type SkillVisibility = boolean;
32
+ /**
33
+ * Catalog (or custom) skill the {@link ProfileSkillSet} is bound to.
34
+ *
35
+ * Declared as a *named* interface rather than an inline object literal so
36
+ * the write-read-symmetry gate's file-local BFS can traverse it: the gate
37
+ * builds the reachable echo-field set by walking named interface
38
+ * references, and an inline `{ id; name }` is invisible to that walk.
39
+ * With `SkillRef` named, `AddSkillFields.name` is correctly recognised as
40
+ * echoed at `ProfileSkillSet.skill.name` (Class B gap defense — see
41
+ * CLAUDE.md § Write-read symmetry gate).
42
+ */
43
+ export interface SkillRef {
44
+ /** Catalog `Skill` id (`V1-Skill-<n>`) or the server-synthesised id for a custom skill. */
45
+ id: string;
46
+ /** Display name of the skill. Echoes {@link AddSkillFields.name}. */
47
+ name: string;
48
+ }
31
49
  /**
32
50
  * Full skill set as exposed to consumers. Mirrors the GraphQL
33
51
  * `ProfileSkillSet` selection set we ask for, normalised so optional
@@ -40,10 +58,7 @@ export interface ProfileSkillSet {
40
58
  rating: ProficiencyRating | null;
41
59
  public: boolean;
42
60
  position: number | null;
43
- skill: {
44
- id: string;
45
- name: string;
46
- };
61
+ skill: SkillRef;
47
62
  connectionsCount: number;
48
63
  }
49
64
  /** Skill suggestion returned by `autocomplete`. */
@@ -88,25 +103,133 @@ export interface UpdateSkillResult {
88
103
  public: boolean | null;
89
104
  notices: string[];
90
105
  }
106
+ /**
107
+ * Caller-facing input shape for {@link add}.
108
+ *
109
+ * **Required**: `name`. **Optional with defaults**: `rating` ("COMPETENT"),
110
+ * `experience` (1), `public` (false). The defaults exist so the AC
111
+ * `{name: "<skill>"}` succeeds against the live wire (the server rejects
112
+ * with "Expected value to not be null" on any of `rating` / `experience` /
113
+ * `public` if omitted). Callers wanting a different proficiency can either
114
+ * pass it here OR add the skill with the defaults and follow up with
115
+ * {@link set}.
116
+ *
117
+ * **Optional bypass**: `skillId`. When supplied, the server binds the new
118
+ * `ProfileSkillSet` to the catalog `Skill` identified by this id (e.g.,
119
+ * `"V1-Skill-278891"`). Sourced via {@link autocomplete}. When omitted,
120
+ * the server treats `name` as a free-text custom skill and creates a
121
+ * non-catalog `Skill` to back the new `ProfileSkillSet` — this is the
122
+ * captured "custom skill" path. Both are valid wire shapes.
123
+ *
124
+ * **Per the wire capture** (`research/captures/web/inputs/
125
+ * ADD_PROFILE_SKILL_SET.json`): the wire format is
126
+ * `{ profileId, skillSet: { name, rating, experience, public, [id] } }` —
127
+ * Pattern 2 with parent id; the inner `skillSet.id` is the CATALOG skill
128
+ * id (`V1-Skill-<n>`), NOT the resulting `ProfileSkillSet` id (which is
129
+ * `V1-ProfileSkillSet-<n>` and only exists in the response).
130
+ *
131
+ * **Name → id resolution is intentionally out of scope** of {@link add}:
132
+ * callers wanting the autocomplete-resolution UX (analogous to
133
+ * `employment.add`'s `--company` → `employerId` flow) consume
134
+ * {@link autocomplete} explicitly and pass the resolved id via
135
+ * `skillId`. A follow-up issue tracks wiring transparent resolution into
136
+ * `add` itself.
137
+ */
138
+ export interface AddSkillFields {
139
+ name: string;
140
+ /** Proficiency rating. Defaults to `"COMPETENT"`. */
141
+ rating?: ProficiencyRating;
142
+ /** Total experience on the skill. Defaults to `1`. Passed verbatim to the wire (the existing `set` flow uses the same convention). */
143
+ experience?: number;
144
+ /** Profile visibility. Defaults to `false` (private). */
145
+ public?: boolean;
146
+ skillId?: string;
147
+ }
148
+ /**
149
+ * Options accepted by {@link add}. `dryRun` mirrors the option-shape
150
+ * established by `basic.set` (#393 / SetOptions) and `employment.add`
151
+ * (#395 / AddOptions) so the cross-service surface stays uniform —
152
+ * callers branch on the {@link AddSkillOutcome} `kind` discriminator
153
+ * regardless of which mutation they're invoking.
154
+ *
155
+ * Unlike `employment.add`, the {@link add} dry-run path is zero-network:
156
+ * no autocomplete read is fired during dry-run (the caller supplies the
157
+ * `skillId` directly if needed). The placeholder
158
+ * {@link DRY_RUN_PROFILE_ID_PLACEHOLDER} stands in for `profileId` so
159
+ * `extractProfileId` is also skipped.
160
+ */
161
+ export interface AddSkillOptions {
162
+ dryRun?: boolean;
163
+ }
164
+ /**
165
+ * Discriminated outcome of an {@link add} call when the apply-path
166
+ * succeeded — the newly created `ProfileSkillSet`.
167
+ */
168
+ export interface AddSkillOutcomeCreated {
169
+ kind: "created";
170
+ result: ProfileSkillSet;
171
+ }
172
+ /**
173
+ * Discriminated outcome of an {@link add} call invoked with
174
+ * `dryRun: true` — the structured preview of the request that WOULD
175
+ * have been sent. No mutation OR autocomplete-read was fired.
176
+ */
177
+ export interface AddSkillOutcomePreview {
178
+ kind: "preview";
179
+ preview: DryRunPreview;
180
+ }
181
+ /**
182
+ * Discriminated-union return type for {@link add}. Apply-path callers
183
+ * branch on `outcome.kind === "created"`; dry-run callers branch on
184
+ * `"preview"`. Symmetric with `basic.set`'s `SetOutcome` (#393) and
185
+ * `employment.add`'s `AddOutcome` (#395).
186
+ */
187
+ export type AddSkillOutcome = AddSkillOutcomeCreated | AddSkillOutcomePreview;
91
188
  /**
92
189
  * Add a skill to the signed-in user's profile. Identifies the skill by
93
- * its catalog name (e.g. `"TypeScript"`); the server resolves the name to
94
- * a `Skill` id under the hood and returns the newly-attached
95
- * `ProfileSkillSet` with default `rating`/`experience`/`public` values.
190
+ * its `name` (e.g. `"TypeScript"`) plus the proficiency dimensions the
191
+ * live wire requires (`rating`, `experience`, `public`).
192
+ *
193
+ * **Wire shape** (per `research/captures/web/inputs/ADD_PROFILE_SKILL_SET.json`):
194
+ * `{ input: { profileId, skillSet: { name, rating, experience, public, [id] } } }` —
195
+ * Pattern 2 with parent id. The inner `skillSet.id` is the catalog
196
+ * `Skill` id (V1-Skill-<n>); omit it to create a custom (non-catalog)
197
+ * skill from the `name` string.
198
+ *
199
+ * **Defaults** (so `add(token, { name })` succeeds out of the box):
200
+ * - `rating: "COMPETENT"` (least-claim default; user can upgrade via `set`)
201
+ * - `experience: 1`
202
+ * - `public: false` (privacy default)
203
+ *
204
+ * **Bug history (#396)**: pre-#396, `add(token, name)` sent the invented
205
+ * shape `{ input: { name } }`. The server rejected with
206
+ * `name (Field is not defined), profileId (required), skillSet (required)`
207
+ * — the schema for `AddProfileSkillSetInput` was a gap
208
+ * (`{ _placeholder: String }` at `schema.graphql:893`) and the shape had
209
+ * to be derived from live capture. #396 commits the capture, fixes the
210
+ * wire shape, and bumps the signature to a `{ fields, options }` form
211
+ * mirroring `employment.add` (#395) and `basic.set` (#393).
96
212
  *
97
- * Use {@link autocomplete} first if the caller needs to disambiguate
98
- * between candidate skills (e.g., "Postgres" vs "PostgreSQL"). Once the
99
- * skill is added, configure proficiency via {@link set}.
213
+ * **Dry-run path**: zero-network. `extractProfileId` is skipped (the
214
+ * placeholder `DRY_RUN_PROFILE_ID_PLACEHOLDER` stands in); the
215
+ * `ADD_PROFILE_SKILL_SET` mutation transport is NOT fired. Use this to
216
+ * preview the wire shape end-to-end before committing to the live call.
100
217
  *
101
218
  * Errors:
102
- * - `SkillsError` `VALIDATION_ERROR` when `name` is empty or whitespace-only.
219
+ * - `SkillsError` `VALIDATION_ERROR` when `fields.name` is empty or
220
+ * whitespace-only.
103
221
  * - `SkillsError` `USER_ERROR` when the server reports a domain failure
104
- * (e.g., skill already on profile, name not in catalog).
222
+ * (e.g., skill already on profile, invalid catalog id, server-side
223
+ * policy rejection).
224
+ * - `ProfileError` `NO_VIEWER` from the `extractProfileId(token)`
225
+ * round-trip propagates verbatim — apply path only (dry-run skips
226
+ * the round-trip). Surfaces with the same actionable message as
227
+ * `ttctl profile show`.
105
228
  * - `AuthRevokedError`, `Cf403Error`, plus the standard
106
229
  * `GRAPHQL_ERROR`/`NETWORK_ERROR`/`UNKNOWN` codes from the shared
107
230
  * transport-error path.
108
231
  */
109
- export declare function add(token: string, name: string): Promise<ProfileSkillSet>;
232
+ export declare function add(token: string, fields: AddSkillFields, options?: AddSkillOptions): Promise<AddSkillOutcome>;
110
233
  /**
111
234
  * Remove a skill from the signed-in user's profile by its ProfileSkillSet
112
235
  * id (NOT the Skill catalog id). Removal cascades to any connections the
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/profile/skills/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-only
2
2
  // Copyright (C) 2026 Oleksii PELYKH
3
3
  import { callGatewayShared } from "../../_shared/transport.js";
4
+ import { buildDryRunPreview } from "../../../transport.js";
5
+ import { DRY_RUN_PROFILE_ID_PLACEHOLDER } from "../basic/index.js";
6
+ import { extractProfileId } from "../shared.js";
4
7
  export class SkillsError extends Error {
5
8
  code;
6
9
  name = "SkillsError";
@@ -162,30 +165,81 @@ function raiseUserErrors(operation, errors) {
162
165
  // -----------------------------------------------------------------------
163
166
  /**
164
167
  * Add a skill to the signed-in user's profile. Identifies the skill by
165
- * its catalog name (e.g. `"TypeScript"`); the server resolves the name to
166
- * a `Skill` id under the hood and returns the newly-attached
167
- * `ProfileSkillSet` with default `rating`/`experience`/`public` values.
168
+ * its `name` (e.g. `"TypeScript"`) plus the proficiency dimensions the
169
+ * live wire requires (`rating`, `experience`, `public`).
168
170
  *
169
- * Use {@link autocomplete} first if the caller needs to disambiguate
170
- * between candidate skills (e.g., "Postgres" vs "PostgreSQL"). Once the
171
- * skill is added, configure proficiency via {@link set}.
171
+ * **Wire shape** (per `research/captures/web/inputs/ADD_PROFILE_SKILL_SET.json`):
172
+ * `{ input: { profileId, skillSet: { name, rating, experience, public, [id] } } }` —
173
+ * Pattern 2 with parent id. The inner `skillSet.id` is the catalog
174
+ * `Skill` id (V1-Skill-<n>); omit it to create a custom (non-catalog)
175
+ * skill from the `name` string.
176
+ *
177
+ * **Defaults** (so `add(token, { name })` succeeds out of the box):
178
+ * - `rating: "COMPETENT"` (least-claim default; user can upgrade via `set`)
179
+ * - `experience: 1`
180
+ * - `public: false` (privacy default)
181
+ *
182
+ * **Bug history (#396)**: pre-#396, `add(token, name)` sent the invented
183
+ * shape `{ input: { name } }`. The server rejected with
184
+ * `name (Field is not defined), profileId (required), skillSet (required)`
185
+ * — the schema for `AddProfileSkillSetInput` was a gap
186
+ * (`{ _placeholder: String }` at `schema.graphql:893`) and the shape had
187
+ * to be derived from live capture. #396 commits the capture, fixes the
188
+ * wire shape, and bumps the signature to a `{ fields, options }` form
189
+ * mirroring `employment.add` (#395) and `basic.set` (#393).
190
+ *
191
+ * **Dry-run path**: zero-network. `extractProfileId` is skipped (the
192
+ * placeholder `DRY_RUN_PROFILE_ID_PLACEHOLDER` stands in); the
193
+ * `ADD_PROFILE_SKILL_SET` mutation transport is NOT fired. Use this to
194
+ * preview the wire shape end-to-end before committing to the live call.
172
195
  *
173
196
  * Errors:
174
- * - `SkillsError` `VALIDATION_ERROR` when `name` is empty or whitespace-only.
197
+ * - `SkillsError` `VALIDATION_ERROR` when `fields.name` is empty or
198
+ * whitespace-only.
175
199
  * - `SkillsError` `USER_ERROR` when the server reports a domain failure
176
- * (e.g., skill already on profile, name not in catalog).
200
+ * (e.g., skill already on profile, invalid catalog id, server-side
201
+ * policy rejection).
202
+ * - `ProfileError` `NO_VIEWER` from the `extractProfileId(token)`
203
+ * round-trip propagates verbatim — apply path only (dry-run skips
204
+ * the round-trip). Surfaces with the same actionable message as
205
+ * `ttctl profile show`.
177
206
  * - `AuthRevokedError`, `Cf403Error`, plus the standard
178
207
  * `GRAPHQL_ERROR`/`NETWORK_ERROR`/`UNKNOWN` codes from the shared
179
208
  * transport-error path.
180
209
  */
181
- export async function add(token, name) {
182
- const trimmed = name.trim();
183
- if (trimmed.length === 0) {
210
+ export async function add(token, fields, options = {}) {
211
+ const name = fields.name.trim();
212
+ if (name.length === 0) {
184
213
  throw new SkillsError("VALIDATION_ERROR", "Skill name is required.");
185
214
  }
186
- const data = await callTalentProfile(token, "ADD_PROFILE_SKILL_SET", ADD_PROFILE_SKILL_SET_MUTATION, {
187
- input: { name: trimmed },
188
- });
215
+ // Build the `skillSet` wire-input verbatim per the capture. Defaults
216
+ // are applied here (not at the call sites) so every caller — CLI,
217
+ // MCP, internal — converges on the same wire shape.
218
+ const skillSet = {
219
+ name,
220
+ rating: fields.rating ?? "COMPETENT",
221
+ experience: fields.experience ?? 1,
222
+ public: fields.public ?? false,
223
+ };
224
+ if (fields.skillId !== undefined) {
225
+ skillSet.id = fields.skillId;
226
+ }
227
+ if (options.dryRun === true) {
228
+ return {
229
+ kind: "preview",
230
+ preview: buildDryRunPreview({
231
+ surface: "talent-profile",
232
+ authToken: token,
233
+ body: {
234
+ operationName: "ADD_PROFILE_SKILL_SET",
235
+ query: ADD_PROFILE_SKILL_SET_MUTATION,
236
+ variables: { input: { profileId: DRY_RUN_PROFILE_ID_PLACEHOLDER, skillSet } },
237
+ },
238
+ }),
239
+ };
240
+ }
241
+ const profileId = await extractProfileId(token);
242
+ const data = await callTalentProfile(token, "ADD_PROFILE_SKILL_SET", ADD_PROFILE_SKILL_SET_MUTATION, { input: { profileId, skillSet } });
189
243
  const payload = data.addProfileSkillSet;
190
244
  if (!payload) {
191
245
  throw new SkillsError("UNKNOWN", "ADD_PROFILE_SKILL_SET response had no `data.addProfileSkillSet` field");
@@ -197,7 +251,7 @@ export async function add(token, name) {
197
251
  if (!payload.skillSet) {
198
252
  throw new SkillsError("UNKNOWN", "Skill add succeeded but response had no `skillSet` payload");
199
253
  }
200
- return normaliseSkillSet(payload.skillSet);
254
+ return { kind: "created", result: normaliseSkillSet(payload.skillSet) };
201
255
  }
202
256
  // -----------------------------------------------------------------------
203
257
  // rm(skillSetId)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/skills/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/profile/skills/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.4",
3
+ "version": "0.1.0-rc.5",
4
4
  "description": "Core library for Toptal Talent platform integration: API client, auth, services",
5
5
  "type": "module",
6
6
  "engines": {
@@ -37,7 +37,7 @@
37
37
  "devDependencies": {
38
38
  "@types/node": "^25",
39
39
  "@types/proper-lockfile": "^4.1.4",
40
- "eslint": "^10.3.0",
40
+ "eslint": "^10.4.0",
41
41
  "graphql": "^16.14.0",
42
42
  "typescript": "~6.0.3",
43
43
  "vitest": "^4.1.1"
@@ -45,7 +45,7 @@
45
45
  "dependencies": {
46
46
  "node-wreq": "^2.2.1",
47
47
  "proper-lockfile": "^4.1.2",
48
- "undici": "^8.2.0",
48
+ "undici": "^8.3.0",
49
49
  "yaml": "^2.9.0",
50
50
  "zod": "^4.4.3"
51
51
  },