@ttctl/mcp 0.1.0-rc.6 → 0.1.0-rc.8

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.
@@ -187,19 +187,25 @@ export declare function emitMcpDebug(makeRecord: () => McpDebugRecord): void;
187
187
  */
188
188
  export declare function emitMcpAuthResolve(configPath: string, outcome: McpAuthResolveRecord["outcome"], hasToken: boolean): void;
189
189
  /**
190
- * Helper: redact tool args for {@link McpToolInvokeStartRecord}. Two-pass
191
- * defense:
190
+ * Helper: redact tool args for {@link McpToolInvokeStartRecord}.
191
+ * Three-pass defense:
192
192
  *
193
193
  * 1. `redactBody` from `@ttctl/core` replaces FIELD values whose key
194
194
  * matches `SECRET_BODY_FIELD_NAMES` (`password`, `token`, etc.).
195
- * 2. {@link scrubBearerPatternInStrings} walks the result and replaces
195
+ * 2. {@link redactMcpPiiFields} replaces FIELD values whose key
196
+ * matches {@link MCP_PII_FIELD_NAMES} — the MCP-local PII
197
+ * allowlist scoped to the application-funnel write-side surface
198
+ * (#446). Sibling to the credential pass; runs second so credential
199
+ * values are already redacted before the PII pass touches them.
200
+ * 3. {@link scrubBearerPatternInStrings} walks the result and replaces
196
201
  * any STRING value that matches the canonical bearer pattern
197
202
  * (`user_<24hex>_<20alnum>`). This catches the case where an LLM
198
203
  * client pastes a bearer-shaped value into a free-text arg like
199
- * `{ note: "user_abc..." }` that the field-name pass would miss.
204
+ * `{ note: "user_abc..." }` that neither field-name pass would
205
+ * catch.
200
206
  *
201
207
  * The MCP tool surface accepts arbitrary client-supplied JSON, so the
202
- * second pass is the load-bearing defense for bearer-absence in
208
+ * third pass is the load-bearing bearer-absence defense for
203
209
  * `args_redacted`. The transport-side `redactBody` doesn't need it
204
210
  * because GraphQL variables are typed and the bearer never appears in
205
211
  * any documented variable slot — MCP args have no such guarantee.
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -182,25 +182,106 @@ export function emitMcpAuthResolve(configPath, outcome, hasToken) {
182
182
  });
183
183
  }
184
184
  /**
185
- * Helper: redact tool args for {@link McpToolInvokeStartRecord}. Two-pass
186
- * defense:
185
+ * MCP-side PII field-name allowlist for the application-funnel
186
+ * write-side surface (#446). These keys flow into MCP tool args for
187
+ * `ttctl_applications_confirm` / `ttctl_jobs_apply` (and their data /
188
+ * questions / rate-insight siblings); they carry caller-supplied
189
+ * free-text material that should NOT appear in operator-facing
190
+ * diagnostic logs even when `TTCTL_DEBUG_MCP=1` is set on a debugging
191
+ * machine.
192
+ *
193
+ * Sibling to the credential-class `SECRET_BODY_FIELD_NAMES` in
194
+ * `@ttctl/core/lib/redact.ts` but kept MCP-local on purpose: the core
195
+ * set covers "fields whose values are secrets" (credentials, tokens);
196
+ * this set covers "fields whose values are user-supplied free-text".
197
+ * Mixing the two would conflate the credential-leak policy with the
198
+ * PII policy in the single core consumer that downstream tooling
199
+ * (e.g., `scripts/check-secret-leakage.ts`) keys off. The two passes
200
+ * compose at {@link redactToolArgs} so `args_redacted` is filtered
201
+ * through both before any record is emitted.
202
+ *
203
+ * Lowercased for case-insensitive matching (mirrors the
204
+ * `SECRET_BODY_FIELD_NAMES` convention).
205
+ *
206
+ * - `matcheranswers` / `matcherquestionsanswers` — `JobApply` /
207
+ * `ConfirmAvailabilityRequest` matcher-question Q&A arrays. The
208
+ * un-suffixed name is the user-facing CLI / MCP key shape per
209
+ * [ADR-008] § Decision Part 2; the `-questionsanswers` suffix is
210
+ * the wire variable name on the gateway mutations.
211
+ * - `expertiseanswers` / `expertisequestionsanswers` — expertise
212
+ * deep-dive Q&A arrays (same shape pair as matcher above).
213
+ * - `pitchdata` / `pitchinput` — caller-facing keys for the pitch
214
+ * payload. `pitchData` is the `ApplyInput` field name; `pitchInput`
215
+ * is the `ConfirmInput` field name and the `applications confirm`
216
+ * CLI flag's parsed payload.
217
+ * - `talentcard` — wire variable name for the same pitch payload on
218
+ * the `JobApply` mutation's `$talentCard` argument.
219
+ */
220
+ const MCP_PII_FIELD_NAMES = new Set([
221
+ "matcheranswers",
222
+ "matcherquestionsanswers",
223
+ "expertiseanswers",
224
+ "expertisequestionsanswers",
225
+ "pitchdata",
226
+ "pitchinput",
227
+ "talentcard",
228
+ ]);
229
+ /**
230
+ * Walk an arbitrary structure (object / array / scalar) and replace
231
+ * values of fields named in {@link MCP_PII_FIELD_NAMES} with
232
+ * {@link REDACTED}. Pure — does not mutate the input. Designed to
233
+ * compose AFTER `redactBody` from `@ttctl/core`: the credential-class
234
+ * pass runs first; any field already replaced with `***REDACTED***` is
235
+ * a non-matching scalar at this layer and passes through unchanged.
236
+ *
237
+ * The traversal mirrors `redactBody` (same shape — objects + arrays +
238
+ * scalar passthrough + case-insensitive key match) so the two passes
239
+ * compose with predictable semantics on nested structures.
240
+ */
241
+ function redactMcpPiiFields(input) {
242
+ if (input === null || input === undefined)
243
+ return input;
244
+ if (Array.isArray(input))
245
+ return input.map((item) => redactMcpPiiFields(item));
246
+ if (typeof input !== "object")
247
+ return input;
248
+ const out = {};
249
+ for (const [key, value] of Object.entries(input)) {
250
+ if (MCP_PII_FIELD_NAMES.has(key.toLowerCase())) {
251
+ out[key] = REDACTED;
252
+ }
253
+ else {
254
+ out[key] = redactMcpPiiFields(value);
255
+ }
256
+ }
257
+ return out;
258
+ }
259
+ /**
260
+ * Helper: redact tool args for {@link McpToolInvokeStartRecord}.
261
+ * Three-pass defense:
187
262
  *
188
263
  * 1. `redactBody` from `@ttctl/core` replaces FIELD values whose key
189
264
  * matches `SECRET_BODY_FIELD_NAMES` (`password`, `token`, etc.).
190
- * 2. {@link scrubBearerPatternInStrings} walks the result and replaces
265
+ * 2. {@link redactMcpPiiFields} replaces FIELD values whose key
266
+ * matches {@link MCP_PII_FIELD_NAMES} — the MCP-local PII
267
+ * allowlist scoped to the application-funnel write-side surface
268
+ * (#446). Sibling to the credential pass; runs second so credential
269
+ * values are already redacted before the PII pass touches them.
270
+ * 3. {@link scrubBearerPatternInStrings} walks the result and replaces
191
271
  * any STRING value that matches the canonical bearer pattern
192
272
  * (`user_<24hex>_<20alnum>`). This catches the case where an LLM
193
273
  * client pastes a bearer-shaped value into a free-text arg like
194
- * `{ note: "user_abc..." }` that the field-name pass would miss.
274
+ * `{ note: "user_abc..." }` that neither field-name pass would
275
+ * catch.
195
276
  *
196
277
  * The MCP tool surface accepts arbitrary client-supplied JSON, so the
197
- * second pass is the load-bearing defense for bearer-absence in
278
+ * third pass is the load-bearing bearer-absence defense for
198
279
  * `args_redacted`. The transport-side `redactBody` doesn't need it
199
280
  * because GraphQL variables are typed and the bearer never appears in
200
281
  * any documented variable slot — MCP args have no such guarantee.
201
282
  */
202
283
  export function redactToolArgs(args) {
203
- return scrubBearerPatternInStrings(redactBody(args));
284
+ return scrubBearerPatternInStrings(redactMcpPiiFields(redactBody(args)));
204
285
  }
205
286
  /**
206
287
  * Walk an arbitrary structure (object / array / scalar) and replace any
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { type ToolRegistrationContext } from "./_shared.js";
3
3
  /**
4
- * Register the three `ttctl_applications_*` MCP tools per the #15 spec.
4
+ * Register the seven `ttctl_applications_*` MCP tools per #15 / #439 / #440 / #442 / #470.
5
5
  * Tool names use the `ttctl_` prefix and the canonical CLI path joined
6
6
  * with `_` per project naming policy:
7
7
  *
8
8
  * - `ttctl_applications_list`
9
9
  * - `ttctl_applications_show`
10
10
  * - `ttctl_applications_stats`
11
+ * - `ttctl_applications_interview_show` (#439, sub-namespace leaf)
12
+ * - `ttctl_applications_interview_notes_show` (#440, sub-sub-namespace leaf)
13
+ * - `ttctl_applications_interview_guide_show` (#470, sub-sub-namespace leaf)
14
+ * - `ttctl_applications_availability_request_show` (#442, sub-namespace leaf)
11
15
  *
12
16
  * Each tool maps 1:1 to a CLI leaf — the schemas describe the same set
13
17
  * of fields. The list tool's `keywords` and `statusGroups` mirror the
@@ -1 +1 @@
1
- {"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../src/tools/applications.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,OAAO,EAA8D,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAsExH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CA8J/F"}
1
+ {"version":3,"file":"applications.d.ts","sourceRoot":"","sources":["../../src/tools/applications.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,OAAO,EAA8D,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAsExH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAqW/F"}
@@ -45,13 +45,17 @@ function buildApplicationsPageInfo(page) {
45
45
  };
46
46
  }
47
47
  /**
48
- * Register the three `ttctl_applications_*` MCP tools per the #15 spec.
48
+ * Register the seven `ttctl_applications_*` MCP tools per #15 / #439 / #440 / #442 / #470.
49
49
  * Tool names use the `ttctl_` prefix and the canonical CLI path joined
50
50
  * with `_` per project naming policy:
51
51
  *
52
52
  * - `ttctl_applications_list`
53
53
  * - `ttctl_applications_show`
54
54
  * - `ttctl_applications_stats`
55
+ * - `ttctl_applications_interview_show` (#439, sub-namespace leaf)
56
+ * - `ttctl_applications_interview_notes_show` (#440, sub-sub-namespace leaf)
57
+ * - `ttctl_applications_interview_guide_show` (#470, sub-sub-namespace leaf)
58
+ * - `ttctl_applications_availability_request_show` (#442, sub-namespace leaf)
55
59
  *
56
60
  * Each tool maps 1:1 to a CLI leaf — the schemas describe the same set
57
61
  * of fields. The list tool's `keywords` and `statusGroups` mirror the
@@ -181,6 +185,189 @@ export function registerApplicationsTools(server, ctx) {
181
185
  return mapApplicationsError(err);
182
186
  }
183
187
  });
188
+ // #439 — Interview detail (sibling sub-namespace `applications.interviews.show`).
189
+ // Read-only; mirrors the CLI `ttctl applications interview show <id>`.
190
+ // Dry-run path emits a single-op `Interview` preview. Apply path calls
191
+ // `applications.interviews.show(token, id)` and surfaces the projected
192
+ // {@link applications.InterviewDetail} as the JSON payload.
193
+ server.registerTool("ttctl_applications_interview_show", {
194
+ title: "Show one interview detail",
195
+ description: [
196
+ "Fetch a single interview by id (the TalentInterview id, NOT the activity item id).",
197
+ "Returns the full interview detail: status, kind (EXTERNAL/INTERNAL), scheduled slots,",
198
+ "method (Zoom / phone / etc.), interviewer contacts, talent notes, and prep-guide id.",
199
+ "",
200
+ "Discover the id via `ttctl_applications_show` — the activity-row detail includes",
201
+ "an `interview.id` field when one is associated.",
202
+ "",
203
+ "Example user prompts:",
204
+ ' - "Show me the details of interview int_abc123."',
205
+ ' - "Who am I interviewing with, and when?" (use the interview id from the activity row)',
206
+ ].join("\n"),
207
+ inputSchema: {
208
+ id: z.string().describe("Interview id (the TalentInterview id)"),
209
+ dryRun: DRY_RUN_FIELD,
210
+ },
211
+ }, async (args) => {
212
+ const auth = await ctx.resolveToolAuth();
213
+ if (!auth.ok)
214
+ return auth.response;
215
+ if (args.dryRun === true) {
216
+ return dryRunResponse(buildMcpDryRunPreview("Interview", "mobile-gateway", { id: args.id }, auth.token));
217
+ }
218
+ try {
219
+ const item = await applications.interviews.show(auth.token, args.id);
220
+ return successResponse(item);
221
+ }
222
+ catch (err) {
223
+ return mapApplicationsError(err);
224
+ }
225
+ });
226
+ // #440 — Interview prep notes (sub-sub-namespace
227
+ // `applications.interviews.notes.show`). Read-only; mirrors the CLI
228
+ // `ttctl applications interview notes show <jobId>`. **Input is the
229
+ // JOB id, NOT the interview id** — the portal-side
230
+ // `GetInterviewNotes` op takes `$jobId: ID!` and traverses
231
+ // `viewer.job(id).activityItem.interview.{id, kind, talentNotes}`.
232
+ // Dry-run path emits a single-op `GetInterviewNotes` preview against
233
+ // the mobile-gateway surface (portal + mobile share the same backend
234
+ // — same dispatch as #447 / #448).
235
+ server.registerTool("ttctl_applications_interview_notes_show", {
236
+ title: "Read the talent's prep notes for an interview",
237
+ description: [
238
+ "Fetch the talent's prep notes for the interview attached to a given job.",
239
+ "",
240
+ "Input is the JOB id (the TalentJob id), NOT the interview id. Discover the",
241
+ "job id via `ttctl_applications_interview_show` (the `job.id` field on the",
242
+ "interview detail) or `ttctl_applications_show` (the `job.id` field on the",
243
+ "activity row).",
244
+ "",
245
+ "Returns the projected notes payload: the job id (echo), the interview id",
246
+ "and kind (EXTERNAL/INTERNAL) when one is attached, and the list of",
247
+ "talent-authored prep notes grouped by InterviewGuideSection identifier.",
248
+ "",
249
+ "Example user prompts:",
250
+ ' - "Show me my prep notes for the interview on job job_xyz789."',
251
+ ' - "What did I write down for the upcoming interview?" (after fetching the job id from `ttctl_applications_interview_show`)',
252
+ ].join("\n"),
253
+ inputSchema: {
254
+ id: z
255
+ .string()
256
+ .describe("TalentJob id (NOT the interview id — discover via ttctl_applications_interview_show → job.id)"),
257
+ dryRun: DRY_RUN_FIELD,
258
+ },
259
+ }, async (args) => {
260
+ const auth = await ctx.resolveToolAuth();
261
+ if (!auth.ok)
262
+ return auth.response;
263
+ if (args.dryRun === true) {
264
+ return dryRunResponse(buildMcpDryRunPreview("GetInterviewNotes", "mobile-gateway", { jobId: args.id }, auth.token));
265
+ }
266
+ try {
267
+ const item = await applications.interviews.notes.show(auth.token, args.id);
268
+ return successResponse(item);
269
+ }
270
+ catch (err) {
271
+ return mapApplicationsError(err);
272
+ }
273
+ });
274
+ // #470 — Interview prep guide (sub-sub-namespace
275
+ // `applications.interviews.guide.show`). Read-only; mirrors the CLI
276
+ // `ttctl applications interview guide show <interviewId>`. Input is
277
+ // the INTERVIEW id — the wire op (`InterviewGuide`) takes
278
+ // `$interviewId: ID!` and traverses `viewer.interview(id).guide.{
279
+ // id, sections[...]}`. Dry-run path emits a single-op `InterviewGuide`
280
+ // preview against the mobile-gateway surface.
281
+ server.registerTool("ttctl_applications_interview_guide_show", {
282
+ title: "Read the interview-prep guide content for one interview",
283
+ description: [
284
+ "Fetch the interview-prep guide content (sections + tips) for one interview.",
285
+ "",
286
+ "Input is the INTERVIEW id (the TalentInterview id), NOT the guide id. Discover",
287
+ "it via `ttctl_applications_interview_show` (the `guideId` field on the interview",
288
+ "detail is the back-pointer; the guide CONTENT lives behind this tool).",
289
+ "",
290
+ "Returns the projected guide: the interview id (echo), the guide id (when one is",
291
+ "attached), and the list of sections. Each section carries an identifier",
292
+ "(`InterviewGuideSectionIdentifierEnum`: STRENGTHS, GAPS, JOB_HIGHLIGHTS,",
293
+ "POTENTIAL_QUESTIONS, PRO_TIPS, ASK_YOUR_CLIENT), title, optional subtitle, and",
294
+ "a list of tips. Each tip carries an identifier",
295
+ "(`InterviewGuideTipIdentifierEnum`: 12 members including STANDARD_QUESTIONS,",
296
+ "CAMERA_ON, BE_PRESENTABLE, GAP_ANALYSIS, …), title, and TWO content fields:",
297
+ "`content` (job/talent-personalized markdown body) and `hardcodedContent`",
298
+ "(generic template body shipped with every guide).",
299
+ "",
300
+ "Example user prompts:",
301
+ ' - "Show me the prep guide for interview int_abc123."',
302
+ ' - "What should I prepare for the upcoming interview?" (use the interview id from `ttctl_applications_interview_show`)',
303
+ ' - "Are there any pro-tips for this interview?"',
304
+ ].join("\n"),
305
+ inputSchema: {
306
+ id: z
307
+ .string()
308
+ .describe("TalentInterview id (NOT the guide id — discover via ttctl_applications_interview_show)"),
309
+ dryRun: DRY_RUN_FIELD,
310
+ },
311
+ }, async (args) => {
312
+ const auth = await ctx.resolveToolAuth();
313
+ if (!auth.ok)
314
+ return auth.response;
315
+ if (args.dryRun === true) {
316
+ return dryRunResponse(buildMcpDryRunPreview("InterviewGuide", "mobile-gateway", { id: args.id }, auth.token));
317
+ }
318
+ try {
319
+ const item = await applications.interviews.guide.show(auth.token, args.id);
320
+ return successResponse(item);
321
+ }
322
+ catch (err) {
323
+ return mapApplicationsError(err);
324
+ }
325
+ });
326
+ // #442 — Availability-request detail (sibling sub-namespace
327
+ // `applications.availabilityRequests.show`). Read-only; mirrors the
328
+ // CLI `ttctl applications availability-request show <id>`. The id is
329
+ // the `AvailabilityRequest.id` — the SAME id `ttctl_applications_confirm`
330
+ // / `_reject` accept, NOT the activity-item id. Dry-run path emits a
331
+ // single-op `AvailabilityRequest` preview. Apply path calls
332
+ // `applications.availabilityRequests.show(token, id)` and surfaces
333
+ // the projected {@link applications.AvailabilityRequestDetail} as the
334
+ // JSON payload.
335
+ server.registerTool("ttctl_applications_availability_request_show", {
336
+ title: "Show one availability-request detail",
337
+ description: [
338
+ "Fetch a single availability request (Toptal portal label: 'Interest Request') by id —",
339
+ "the AvailabilityRequest id, NOT the activity item id. Returns the full detail:",
340
+ "status, kind (FIXED / FLEXIBLE / MARKETPLACE_FLEXIBLE), the recruiter-pinned Fixed",
341
+ "hourly rate (when applicable), the recruiter's comment, lifecycle timestamps",
342
+ "(created / updated / answered), and the job.",
343
+ "",
344
+ "Discover the id via `ttctl_applications_show` — the activity-row detail includes",
345
+ "an `availabilityRequest.id` field when one is associated. It is the same id the",
346
+ "`ttctl applications confirm` / `reject` CLI commands accept (sibling write-side leaves).",
347
+ "",
348
+ "Example user prompts:",
349
+ ' - "Show me the details of availability request ar_abc123."',
350
+ ' - "What rate is the recruiter offering on this interest request?" (use the AR id from the activity row)',
351
+ ].join("\n"),
352
+ inputSchema: {
353
+ id: z.string().describe("AvailabilityRequest id (NOT the activity-item id)"),
354
+ dryRun: DRY_RUN_FIELD,
355
+ },
356
+ }, async (args) => {
357
+ const auth = await ctx.resolveToolAuth();
358
+ if (!auth.ok)
359
+ return auth.response;
360
+ if (args.dryRun === true) {
361
+ return dryRunResponse(buildMcpDryRunPreview("AvailabilityRequest", "mobile-gateway", { id: args.id }, auth.token));
362
+ }
363
+ try {
364
+ const item = await applications.availabilityRequests.show(auth.token, args.id);
365
+ return successResponse(item);
366
+ }
367
+ catch (err) {
368
+ return mapApplicationsError(err);
369
+ }
370
+ });
184
371
  server.registerTool("ttctl_applications_stats", {
185
372
  title: "Per-status-group activity counts",
186
373
  description: [
@@ -1 +1 @@
1
- {"version":3,"file":"applications.js","sourceRoot":"","sources":["../../src/tools/applications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applications.js","sourceRoot":"","sources":["../../src/tools/applications.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,12 @@ export type { ToolRegistrationContext } from "./_shared.js";
17
17
  * 4 `profile.reviews` (#76, one tool per file) = 56 profile tools, plus
18
18
  * 3 `applications` (#15) + 1 `interest_requests` (#371) + 8 `engagements`
19
19
  * (#147 + #155 + #156) + 5 `availability` (#146 amended) + 13 `jobs` (#148)
20
- * + 3 `timesheet` (#13) = 89 tools total.
20
+ * + 4 `jobs.apply` (#436 apply + 3 pre-apply reads) +
21
+ * 1 `jobs.apply_similar_answers` (#452 — opt-in suggestion read) +
22
+ * 3 `timesheet` (#13) — partial Wave-3 snapshot, not exhaustive.
23
+ * Canonical inventory: `tools/__tests__/registration.test.ts`'s
24
+ * `EXPECTED_TOOLS` list (currently 112 tools; includes additions from
25
+ * #195, #341, #342, #343, #374, #411, #149 not enumerated above).
21
26
  *
22
27
  * Post-#113: takes a `ToolRegistrationContext` carrying the per-session
23
28
  * auth resolvers bound to the config path captured at `buildServer()`
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAuC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAwFtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAuC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CA0FtF"}
@@ -53,7 +53,12 @@ import { registerProfileSkillsUpdateTool } from "./profile_skills_update.js";
53
53
  * 4 `profile.reviews` (#76, one tool per file) = 56 profile tools, plus
54
54
  * 3 `applications` (#15) + 1 `interest_requests` (#371) + 8 `engagements`
55
55
  * (#147 + #155 + #156) + 5 `availability` (#146 amended) + 13 `jobs` (#148)
56
- * + 3 `timesheet` (#13) = 89 tools total.
56
+ * + 4 `jobs.apply` (#436 apply + 3 pre-apply reads) +
57
+ * 1 `jobs.apply_similar_answers` (#452 — opt-in suggestion read) +
58
+ * 3 `timesheet` (#13) — partial Wave-3 snapshot, not exhaustive.
59
+ * Canonical inventory: `tools/__tests__/registration.test.ts`'s
60
+ * `EXPECTED_TOOLS` list (currently 112 tools; includes additions from
61
+ * #195, #341, #342, #343, #374, #411, #149 not enumerated above).
57
62
  *
58
63
  * Post-#113: takes a `ToolRegistrationContext` carrying the per-session
59
64
  * auth resolvers bound to the config path captured at `buildServer()`
@@ -119,12 +124,14 @@ export function registerAllTools(server, ctx) {
119
124
  // show/set + allocated-hours show/set. Per-engagement time-off (= engagement
120
125
  // breaks) stays on `engagements` and is NOT mirrored here.
121
126
  registerAvailabilityTools(server, ctx);
122
- // jobs — 13 leaves (#148). Browse opportunities (list/show/saved/viewed/
123
- // not-interested-list) + interest mutations (save/unsave/mark-viewed/
124
- // not-interested/clear-interest) + search-subscription management
125
- // (list/save/remove — single-subscription model per R2). Per the AC, MCP
126
- // tool names use canonical `jobs_*` prefix only (no `opportunities_*`
127
- // aliasing).
127
+ // jobs — 17 leaves (#148 + #436). Browse opportunities (list/show/saved/
128
+ // viewed/not-interested-list) + interest mutations (save/unsave/
129
+ // mark-viewed/not-interested/clear-interest) + search-subscription
130
+ // management (list/save/remove — single-subscription model per R2) +
131
+ // apply-funnel (#436): three pre-apply read tools (apply_data,
132
+ // apply_questions, apply_rate_insight) + the DESTRUCTIVE,
133
+ // consent-gated `apply` mutation. Per the AC, MCP tool names use
134
+ // canonical `jobs_*` prefix only (no `opportunities_*` aliasing).
128
135
  registerJobsTools(server, ctx);
129
136
  // payments — 7 leaves (#149). Read-only payouts (list/show) and
130
137
  // configured payment methods (list/show); rate sub-namespace mixes a
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -200,11 +200,41 @@ function registerInterestRequestsAcceptTool(server, ctx) {
200
200
  " (no recruiter-pinned rate to default to).",
201
201
  " - `kind` (optional): AR kind (FIXED / FLEXIBLE / MARKETPLACE_FLEXIBLE).",
202
202
  " Auto-detected from the AR's metadata `__typename` when omitted.",
203
+ " - `matcherAnswers` (optional): array of matcher-question answers.",
204
+ " Each item is `{ id: string, answer: string }` per the recovered",
205
+ " `JobPositionAnswerInput` shape (#438 Stage-2). `id` references a",
206
+ " `matcherQuestions[].identifier` from `ttctl_applications_show <activityId>`.",
207
+ " Validated against `z.array(JobPositionAnswerInputSchema().strict())` —",
208
+ " extra unknown keys reject with a field-path error.",
209
+ " - `expertiseAnswers` (optional): array of expertise-question answers.",
210
+ " Each item is `{ questionId: string, other: string|null, subjectId: string|null }`",
211
+ " per the recovered `JobExpertiseAnswerInput` shape. Note the asymmetric",
212
+ " id-field name vs matcher: `questionId` here, `id` for matcher.",
213
+ " `questionId` references an `expertiseQuestions[].identifier` from",
214
+ " `ttctl_applications_show <activityId>`.",
215
+ " - `pitchData` (optional): a `PitchInput` object — see the recovered",
216
+ " `PitchInputSchema` for the field surface (arrays of typed `PitchItem*Input`",
217
+ " plus the opaque `mentorship` position).",
203
218
  "",
204
219
  "Example user prompts:",
205
220
  ' - "Accept Interest Request <id>." (uses recruiter-pinned rate by default)',
206
221
  ' - "Accept IR <id> with the message \\"Available starting next Monday\\"."',
207
222
  ' - "Accept Interest Request <id> at $90/hr." (override the Fixed rate)',
223
+ "",
224
+ "Example call with question answers and a pitch:",
225
+ " ```json",
226
+ " {",
227
+ ' "id": "<availabilityRequestId>",',
228
+ ' "matcherAnswers": [',
229
+ ' { "id": "MQ-1", "answer": "..." },',
230
+ ' { "id": "MQ-2", "answer": "..." }',
231
+ " ],",
232
+ ' "expertiseAnswers": [',
233
+ ' { "questionId": "EQ-1", "other": null, "subjectId": "Skill:1" }',
234
+ " ],",
235
+ ' "pitchData": { "skillPitchItems": [{ "skillId": "S1" }] }',
236
+ " }",
237
+ " ```",
208
238
  ].join("\n"),
209
239
  inputSchema: {
210
240
  id: z.string().describe("AvailabilityRequest id (NOT the activity-item id)"),
@@ -217,6 +247,19 @@ function registerInterestRequestsAcceptTool(server, ctx) {
217
247
  .enum([...applications.AVAILABILITY_REQUEST_KINDS])
218
248
  .optional()
219
249
  .describe("AR kind (auto-detected from metadata when omitted)"),
250
+ matcherAnswers: z
251
+ .array(applications.JobPositionAnswerInputSchema().strict())
252
+ .optional()
253
+ .describe("Optional matcher-questions answers. Array of `{ id: string, answer: string }` objects (`JobPositionAnswerInput[]`); `id` references `matcherQuestions[].identifier` from `ttctl_applications_show <activityId>`. Forwarded as the wire's `matcherQuestionsAnswers` variable. Validated against the recovered Zod shape per #438 — extra keys reject."),
254
+ expertiseAnswers: z
255
+ .array(applications.JobExpertiseAnswerInputSchema().strict())
256
+ .optional()
257
+ .describe("Optional expertise-questions answers. Array of `{ questionId: string, other: string|null, subjectId: string|null }` objects (`JobExpertiseAnswerInput[]`); `questionId` references `expertiseQuestions[].identifier` from `ttctl_applications_show <activityId>`. Forwarded as the wire's `expertiseQuestionsAnswers` variable. Validated against the recovered Zod shape per #438."),
258
+ pitchData: applications
259
+ .PitchInputSchema()
260
+ .strict()
261
+ .optional()
262
+ .describe("Optional `PitchInput` object — see the recovered `PitchInputSchema` for the field surface. Forwarded as the wire's `pitchInput` variable. Validated against the recovered Zod shape per #438; extra keys reject."),
220
263
  dryRun: DRY_RUN_FIELD,
221
264
  },
222
265
  }, async (args) => {
@@ -230,6 +273,12 @@ function registerInterestRequestsAcceptTool(server, ctx) {
230
273
  input.requestedHourlyRate = args.rate;
231
274
  if (args.kind !== undefined)
232
275
  input.kind = args.kind;
276
+ if (args.matcherAnswers !== undefined)
277
+ input.matcherQuestionsAnswers = args.matcherAnswers;
278
+ if (args.expertiseAnswers !== undefined)
279
+ input.expertiseQuestionsAnswers = args.expertiseAnswers;
280
+ if (args.pitchData !== undefined)
281
+ input.pitchInput = args.pitchData;
233
282
  try {
234
283
  const outcome = await applications.confirm(auth.token, args.id, input, {
235
284
  dryRun: args.dryRun === true,