@ttctl/mcp 0.1.0-rc.7 → 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.
- package/dist/diagnostic.d.ts +11 -5
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +87 -6
- package/dist/diagnostic.js.map +1 -1
- package/dist/tools/applications.d.ts +5 -1
- package/dist/tools/applications.d.ts.map +1 -1
- package/dist/tools/applications.js +188 -1
- package/dist/tools/applications.js.map +1 -1
- package/dist/tools/index.d.ts +6 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interest_requests.js +49 -0
- package/dist/tools/interest_requests.js.map +1 -1
- package/dist/tools/jobs.d.ts +5 -1
- package/dist/tools/jobs.d.ts.map +1 -1
- package/dist/tools/jobs.js +435 -2
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/payments.d.ts +4 -2
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +74 -2
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/profile_reviews_submit_for_review.d.ts +9 -0
- package/dist/tools/profile_reviews_submit_for_review.d.ts.map +1 -1
- package/dist/tools/profile_reviews_submit_for_review.js +23 -2
- package/dist/tools/profile_reviews_submit_for_review.js.map +1 -1
- package/package.json +2 -2
package/dist/diagnostic.d.ts
CHANGED
|
@@ -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}.
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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.
|
package/dist/diagnostic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAmDA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3D;;;;;;;;GAQG;AACH,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,KAAK,EAAE,qBAAqB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,IAAI,GAAG,iBAAiB,GAAG,cAAc,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,KAAK,EAAE,qBAAqB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACtB,wBAAwB,GACxB,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;AAmCnE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAExE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,cAAc,GAAG,IAAI,CAKnE;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,EACxC,QAAQ,EAAE,OAAO,GAChB,IAAI,CAwBN;
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostic.js
CHANGED
|
@@ -182,25 +182,106 @@ export function emitMcpAuthResolve(configPath, outcome, hasToken) {
|
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
185
|
-
*
|
|
186
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
package/dist/diagnostic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../src/diagnostic.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC;AAwJ7D;;;;;;;;;;;;;GAaG;AACH,MAAM,aAAa,GAAwB,CAAC,MAAsB,EAAQ,EAAE;IAC1E,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;QAC9D,0CAA0C;IAC5C,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,IAAI,aAAa,GAAwB,aAAa,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA2B;IAChE,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,aAAa,GAAG,aAAa,CAAC;IAC9B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,UAAgC;IAC3D,mEAAmE;IACnE,wDAAwD;IACxD,IAAI,aAAa,KAAK,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO;IAC9D,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,OAAwC,EACxC,QAAiB;IAEjB,IAAI,aAAa,KAAK,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO;IAC9D,IAAI,QAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5C,iEAAiE;IACjE,uEAAuE;IACvE,8BAA8B;IAC9B,2CAA2C;IAC3C,qEAAqE;IACrE,gDAAgD;IAChD,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC;IACjG,IAAI,QAAQ,KAAK,IAAI;QAAE,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,aAAa,CAAC;QACZ,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,KAAK,EAAE,kBAAkB;QACzB,QAAQ;QACR,WAAW;QACX,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED
|
|
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
|
|
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
|
|
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
|
|
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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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -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
|
-
* +
|
|
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
|
|
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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
-
* +
|
|
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 —
|
|
123
|
-
// not-interested-list) + interest mutations (save/unsave/
|
|
124
|
-
// not-interested/clear-interest) + search-subscription
|
|
125
|
-
// (list/save/remove — single-subscription model per R2)
|
|
126
|
-
//
|
|
127
|
-
//
|
|
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
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,oCAAoC;AAKpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,6CAA6C,EAAE,MAAM,4CAA4C,CAAC;AAC3G,OAAO,EAAE,gDAAgD,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,iDAAiD,EAAE,MAAM,gDAAgD,CAAC;AACnH,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,0CAA0C,EAAE,MAAM,uCAAuC,CAAC;AACnG,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,wCAAwC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,yCAAyC,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAI7E
|
|
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,
|