@smartytalent/mcp-tools 0.1.33-dev.35 → 0.1.33-dev.37

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.
Files changed (2) hide show
  1. package/dist/tools.json +849 -31
  2. package/package.json +1 -1
package/dist/tools.json CHANGED
@@ -16316,10 +16316,41 @@
16316
16316
  "inputSchema": {
16317
16317
  "type": "object",
16318
16318
  "properties": {
16319
+ "filterStatus": {
16320
+ "type": "string",
16321
+ "description": "Filter by template status.",
16322
+ "enum": [
16323
+ "draft",
16324
+ "active",
16325
+ "archived",
16326
+ "failed",
16327
+ "pending"
16328
+ ]
16329
+ },
16330
+ "filterCreatedFrom": {
16331
+ "type": "string",
16332
+ "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
16333
+ },
16334
+ "filterCreatedTo": {
16335
+ "type": "string",
16336
+ "description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
16337
+ },
16338
+ "filterModifiedFrom": {
16339
+ "type": "string",
16340
+ "description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
16341
+ },
16342
+ "filterModifiedTo": {
16343
+ "type": "string",
16344
+ "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
16345
+ },
16319
16346
  "pageSize": {
16320
16347
  "type": "integer",
16321
16348
  "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
16322
16349
  },
16350
+ "pageNumber": {
16351
+ "type": "integer",
16352
+ "description": "Specifies the page number to retrieve. Used for traditional pagination."
16353
+ },
16323
16354
  "pageAfter": {
16324
16355
  "type": "string",
16325
16356
  "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
@@ -16362,21 +16393,23 @@
16362
16393
  },
16363
16394
  "attributes": {
16364
16395
  "title": "AssessmentAttributesSchema",
16396
+ "description": "Template-only attributes for an assessment. The candidate's run of an\nassessment (answers, scores, evaluation, proctoring) lives on the\nAttempt resource - see AttemptAttributesSchema.",
16365
16397
  "type": "object",
16366
16398
  "properties": {
16367
16399
  "status": {
16368
16400
  "type": "string",
16401
+ "description": "Template lifecycle. Candidate-side state (inProgress/submitted/\nevaluated/etc.) lives on attempts. `pending` is a transient state\nset when the AI Generate Step Function is in flight - the row\nflips to `active` once questions land.",
16369
16402
  "enum": [
16370
- "pending",
16371
- "in_progress",
16372
- "completed",
16373
- "evaluated",
16374
- "expired",
16375
- "failed"
16403
+ "draft",
16404
+ "active",
16405
+ "archived",
16406
+ "failed",
16407
+ "pending"
16376
16408
  ]
16377
16409
  },
16378
16410
  "duration": {
16379
- "type": "integer"
16411
+ "type": "integer",
16412
+ "description": "Time limit for the candidate to complete the assessment, in minutes. Defaults to 30."
16380
16413
  },
16381
16414
  "antiCheatingLevel": {
16382
16415
  "type": "string",
@@ -16386,17 +16419,170 @@
16386
16419
  "RIGOROUS"
16387
16420
  ]
16388
16421
  },
16389
- "totalScore": {
16390
- "type": "number"
16391
- },
16392
16422
  "passingScore": {
16393
- "type": "number"
16394
- },
16395
- "passed": {
16396
- "type": "boolean"
16423
+ "type": "number",
16424
+ "description": "Score threshold (0-100) for `evaluation.passed=true` on attempts of this template. Defaults to 60."
16397
16425
  },
16398
16426
  "languageCode": {
16399
- "type": "string"
16427
+ "type": "string",
16428
+ "description": "Default language tag used when the candidate UI doesn't specify one (e.g. 'en-US', 'pl-PL')."
16429
+ },
16430
+ "name": {
16431
+ "type": "object",
16432
+ "description": "Multilingual template name. Keys are locale tags, values are the localized title.",
16433
+ "additionalProperties": {
16434
+ "type": "string"
16435
+ }
16436
+ },
16437
+ "description": {
16438
+ "type": "object",
16439
+ "description": "Multilingual template description shown to the candidate before they start.",
16440
+ "additionalProperties": {
16441
+ "type": "string"
16442
+ }
16443
+ },
16444
+ "questions": {
16445
+ "type": "array",
16446
+ "description": "Question bank. See QuestionSchema for per-type schemas.",
16447
+ "items": {
16448
+ "title": "QuestionSchema",
16449
+ "description": "A single assessment question. Eight question types - the optional\nfields below are interpreted based on `type`. See\n`Question.value` shapes in AnswerSchema for what the candidate\nsends back per type.\n\nSECURITY: `answerKey`, `scoringRubric`, and `options[].isCorrect`\nare stripped server-side before responses are returned to candidates\nvia /v1/guest/attempts/* - they are recruiter-only fields.",
16450
+ "type": "object",
16451
+ "required": [
16452
+ "questionId",
16453
+ "type"
16454
+ ],
16455
+ "properties": {
16456
+ "questionId": {
16457
+ "type": "string",
16458
+ "description": "Stable identifier (e.g. 'q1'). Candidates' answers reference this."
16459
+ },
16460
+ "type": {
16461
+ "type": "string",
16462
+ "enum": [
16463
+ "single-choice",
16464
+ "multiple-choice",
16465
+ "scale",
16466
+ "open-text",
16467
+ "ranking",
16468
+ "situational-judgment",
16469
+ "file-upload",
16470
+ "video-recording"
16471
+ ]
16472
+ },
16473
+ "category": {
16474
+ "type": "string",
16475
+ "description": "Free-form tag for analytics (e.g. 'soft-skills', 'hard-skills', 'general')."
16476
+ },
16477
+ "difficulty": {
16478
+ "type": "string",
16479
+ "enum": [
16480
+ "easy",
16481
+ "medium",
16482
+ "hard"
16483
+ ]
16484
+ },
16485
+ "points": {
16486
+ "type": "number",
16487
+ "description": "Maximum score for this question. Defaults to 1."
16488
+ },
16489
+ "required": {
16490
+ "type": "boolean"
16491
+ },
16492
+ "text": {
16493
+ "type": "object",
16494
+ "description": "Multilingual question text.",
16495
+ "additionalProperties": {
16496
+ "type": "string"
16497
+ }
16498
+ },
16499
+ "options": {
16500
+ "type": "array",
16501
+ "description": "Choices for single-choice / multiple-choice / ranking /\nsituational-judgment. Canonical shape is\n`{ id, text: { locale: string }, isCorrect?: bool }`. Bare\nlocale-map options exist in legacy data but are deprecated.",
16502
+ "items": {
16503
+ "type": "object",
16504
+ "properties": {
16505
+ "id": {
16506
+ "type": "string",
16507
+ "description": "Stable option id - candidates' answers reference this."
16508
+ },
16509
+ "text": {
16510
+ "type": "object",
16511
+ "additionalProperties": {
16512
+ "type": "string"
16513
+ }
16514
+ },
16515
+ "isCorrect": {
16516
+ "type": "boolean",
16517
+ "description": "Recruiter-only. Stripped server-side from guest responses."
16518
+ }
16519
+ }
16520
+ }
16521
+ },
16522
+ "scaleMin": {
16523
+ "type": "integer",
16524
+ "description": "Lower bound for `scale` type questions."
16525
+ },
16526
+ "scaleMax": {
16527
+ "type": "integer",
16528
+ "description": "Upper bound for `scale` type questions."
16529
+ },
16530
+ "scaleLabels": {
16531
+ "type": "object",
16532
+ "description": "Optional labels per step value, multilingual.\n`{ \"1\": { \"en-US\": \"Strongly disagree\" }, \"5\": { \"en-US\": \"Strongly agree\" } }`.",
16533
+ "additionalProperties": {
16534
+ "type": "object",
16535
+ "additionalProperties": {
16536
+ "type": "string"
16537
+ }
16538
+ }
16539
+ },
16540
+ "placeholder": {
16541
+ "type": "object",
16542
+ "description": "Multilingual placeholder text for `open-text` questions.",
16543
+ "additionalProperties": {
16544
+ "type": "string"
16545
+ }
16546
+ },
16547
+ "scenario": {
16548
+ "type": "object",
16549
+ "description": "Multilingual scenario body for `situational-judgment` questions.",
16550
+ "additionalProperties": {
16551
+ "type": "string"
16552
+ }
16553
+ },
16554
+ "acceptedFormats": {
16555
+ "type": "array",
16556
+ "description": "Accepted MIME or extension list for `file-upload` (e.g. ['.pdf', '.png']).",
16557
+ "items": {
16558
+ "type": "string"
16559
+ }
16560
+ },
16561
+ "maxDuration": {
16562
+ "type": "integer",
16563
+ "description": "Maximum recording length in seconds for `video-recording`."
16564
+ },
16565
+ "maxAttempts": {
16566
+ "type": "integer",
16567
+ "description": "Maximum recording retakes the candidate may use on `video-recording`."
16568
+ },
16569
+ "explanation": {
16570
+ "type": "object",
16571
+ "description": "Multilingual explanation shown post-submission on review screens.",
16572
+ "additionalProperties": {
16573
+ "type": "string"
16574
+ }
16575
+ },
16576
+ "answerKey": {
16577
+ "type": "string",
16578
+ "description": "Recruiter-only. The correct option id for `single-choice`. NEVER\nreturned by /v1/guest/attempts/* endpoints."
16579
+ },
16580
+ "scoringRubric": {
16581
+ "type": "string",
16582
+ "description": "Recruiter-only. Free-form scoring rubric the AI evaluator uses\nfor `open-text`. NEVER returned by guest endpoints."
16583
+ }
16584
+ }
16585
+ }
16400
16586
  },
16401
16587
  "timestamps": {
16402
16588
  "title": "ResourceTimestampsSchema",
@@ -16522,21 +16708,23 @@
16522
16708
  },
16523
16709
  "attributes": {
16524
16710
  "title": "AssessmentAttributesSchema",
16711
+ "description": "Template-only attributes for an assessment. The candidate's run of an\nassessment (answers, scores, evaluation, proctoring) lives on the\nAttempt resource - see AttemptAttributesSchema.",
16525
16712
  "type": "object",
16526
16713
  "properties": {
16527
16714
  "status": {
16528
16715
  "type": "string",
16716
+ "description": "Template lifecycle. Candidate-side state (inProgress/submitted/\nevaluated/etc.) lives on attempts. `pending` is a transient state\nset when the AI Generate Step Function is in flight - the row\nflips to `active` once questions land.",
16529
16717
  "enum": [
16530
- "pending",
16531
- "in_progress",
16532
- "completed",
16533
- "evaluated",
16534
- "expired",
16535
- "failed"
16718
+ "draft",
16719
+ "active",
16720
+ "archived",
16721
+ "failed",
16722
+ "pending"
16536
16723
  ]
16537
16724
  },
16538
16725
  "duration": {
16539
- "type": "integer"
16726
+ "type": "integer",
16727
+ "description": "Time limit for the candidate to complete the assessment, in minutes. Defaults to 30."
16540
16728
  },
16541
16729
  "antiCheatingLevel": {
16542
16730
  "type": "string",
@@ -16546,17 +16734,170 @@
16546
16734
  "RIGOROUS"
16547
16735
  ]
16548
16736
  },
16549
- "totalScore": {
16550
- "type": "number"
16551
- },
16552
16737
  "passingScore": {
16553
- "type": "number"
16554
- },
16555
- "passed": {
16556
- "type": "boolean"
16738
+ "type": "number",
16739
+ "description": "Score threshold (0-100) for `evaluation.passed=true` on attempts of this template. Defaults to 60."
16557
16740
  },
16558
16741
  "languageCode": {
16559
- "type": "string"
16742
+ "type": "string",
16743
+ "description": "Default language tag used when the candidate UI doesn't specify one (e.g. 'en-US', 'pl-PL')."
16744
+ },
16745
+ "name": {
16746
+ "type": "object",
16747
+ "description": "Multilingual template name. Keys are locale tags, values are the localized title.",
16748
+ "additionalProperties": {
16749
+ "type": "string"
16750
+ }
16751
+ },
16752
+ "description": {
16753
+ "type": "object",
16754
+ "description": "Multilingual template description shown to the candidate before they start.",
16755
+ "additionalProperties": {
16756
+ "type": "string"
16757
+ }
16758
+ },
16759
+ "questions": {
16760
+ "type": "array",
16761
+ "description": "Question bank. See QuestionSchema for per-type schemas.",
16762
+ "items": {
16763
+ "title": "QuestionSchema",
16764
+ "description": "A single assessment question. Eight question types - the optional\nfields below are interpreted based on `type`. See\n`Question.value` shapes in AnswerSchema for what the candidate\nsends back per type.\n\nSECURITY: `answerKey`, `scoringRubric`, and `options[].isCorrect`\nare stripped server-side before responses are returned to candidates\nvia /v1/guest/attempts/* - they are recruiter-only fields.",
16765
+ "type": "object",
16766
+ "required": [
16767
+ "questionId",
16768
+ "type"
16769
+ ],
16770
+ "properties": {
16771
+ "questionId": {
16772
+ "type": "string",
16773
+ "description": "Stable identifier (e.g. 'q1'). Candidates' answers reference this."
16774
+ },
16775
+ "type": {
16776
+ "type": "string",
16777
+ "enum": [
16778
+ "single-choice",
16779
+ "multiple-choice",
16780
+ "scale",
16781
+ "open-text",
16782
+ "ranking",
16783
+ "situational-judgment",
16784
+ "file-upload",
16785
+ "video-recording"
16786
+ ]
16787
+ },
16788
+ "category": {
16789
+ "type": "string",
16790
+ "description": "Free-form tag for analytics (e.g. 'soft-skills', 'hard-skills', 'general')."
16791
+ },
16792
+ "difficulty": {
16793
+ "type": "string",
16794
+ "enum": [
16795
+ "easy",
16796
+ "medium",
16797
+ "hard"
16798
+ ]
16799
+ },
16800
+ "points": {
16801
+ "type": "number",
16802
+ "description": "Maximum score for this question. Defaults to 1."
16803
+ },
16804
+ "required": {
16805
+ "type": "boolean"
16806
+ },
16807
+ "text": {
16808
+ "type": "object",
16809
+ "description": "Multilingual question text.",
16810
+ "additionalProperties": {
16811
+ "type": "string"
16812
+ }
16813
+ },
16814
+ "options": {
16815
+ "type": "array",
16816
+ "description": "Choices for single-choice / multiple-choice / ranking /\nsituational-judgment. Canonical shape is\n`{ id, text: { locale: string }, isCorrect?: bool }`. Bare\nlocale-map options exist in legacy data but are deprecated.",
16817
+ "items": {
16818
+ "type": "object",
16819
+ "properties": {
16820
+ "id": {
16821
+ "type": "string",
16822
+ "description": "Stable option id - candidates' answers reference this."
16823
+ },
16824
+ "text": {
16825
+ "type": "object",
16826
+ "additionalProperties": {
16827
+ "type": "string"
16828
+ }
16829
+ },
16830
+ "isCorrect": {
16831
+ "type": "boolean",
16832
+ "description": "Recruiter-only. Stripped server-side from guest responses."
16833
+ }
16834
+ }
16835
+ }
16836
+ },
16837
+ "scaleMin": {
16838
+ "type": "integer",
16839
+ "description": "Lower bound for `scale` type questions."
16840
+ },
16841
+ "scaleMax": {
16842
+ "type": "integer",
16843
+ "description": "Upper bound for `scale` type questions."
16844
+ },
16845
+ "scaleLabels": {
16846
+ "type": "object",
16847
+ "description": "Optional labels per step value, multilingual.\n`{ \"1\": { \"en-US\": \"Strongly disagree\" }, \"5\": { \"en-US\": \"Strongly agree\" } }`.",
16848
+ "additionalProperties": {
16849
+ "type": "object",
16850
+ "additionalProperties": {
16851
+ "type": "string"
16852
+ }
16853
+ }
16854
+ },
16855
+ "placeholder": {
16856
+ "type": "object",
16857
+ "description": "Multilingual placeholder text for `open-text` questions.",
16858
+ "additionalProperties": {
16859
+ "type": "string"
16860
+ }
16861
+ },
16862
+ "scenario": {
16863
+ "type": "object",
16864
+ "description": "Multilingual scenario body for `situational-judgment` questions.",
16865
+ "additionalProperties": {
16866
+ "type": "string"
16867
+ }
16868
+ },
16869
+ "acceptedFormats": {
16870
+ "type": "array",
16871
+ "description": "Accepted MIME or extension list for `file-upload` (e.g. ['.pdf', '.png']).",
16872
+ "items": {
16873
+ "type": "string"
16874
+ }
16875
+ },
16876
+ "maxDuration": {
16877
+ "type": "integer",
16878
+ "description": "Maximum recording length in seconds for `video-recording`."
16879
+ },
16880
+ "maxAttempts": {
16881
+ "type": "integer",
16882
+ "description": "Maximum recording retakes the candidate may use on `video-recording`."
16883
+ },
16884
+ "explanation": {
16885
+ "type": "object",
16886
+ "description": "Multilingual explanation shown post-submission on review screens.",
16887
+ "additionalProperties": {
16888
+ "type": "string"
16889
+ }
16890
+ },
16891
+ "answerKey": {
16892
+ "type": "string",
16893
+ "description": "Recruiter-only. The correct option id for `single-choice`. NEVER\nreturned by /v1/guest/attempts/* endpoints."
16894
+ },
16895
+ "scoringRubric": {
16896
+ "type": "string",
16897
+ "description": "Recruiter-only. Free-form scoring rubric the AI evaluator uses\nfor `open-text`. NEVER returned by guest endpoints."
16898
+ }
16899
+ }
16900
+ }
16560
16901
  },
16561
16902
  "timestamps": {
16562
16903
  "title": "ResourceTimestampsSchema",
@@ -16589,7 +16930,16 @@
16589
16930
  "description": "Delete Assessment",
16590
16931
  "inputSchema": {
16591
16932
  "type": "object",
16592
- "properties": {}
16933
+ "properties": {
16934
+ "permanentDelete": {
16935
+ "type": "string",
16936
+ "description": "When `true`, hard-delete the row. Otherwise sets status to archived.",
16937
+ "enum": [
16938
+ "true",
16939
+ "false"
16940
+ ]
16941
+ }
16942
+ }
16593
16943
  },
16594
16944
  "_meta": {
16595
16945
  "method": "DELETE",
@@ -16610,6 +16960,474 @@
16610
16960
  "operationId": "assessmentOptions"
16611
16961
  }
16612
16962
  },
16963
+ {
16964
+ "name": "create_attempt",
16965
+ "description": "Create Attempt",
16966
+ "inputSchema": {
16967
+ "type": "object",
16968
+ "required": [
16969
+ "data"
16970
+ ],
16971
+ "properties": {
16972
+ "data": {
16973
+ "type": "object",
16974
+ "required": [
16975
+ "type",
16976
+ "relationships"
16977
+ ],
16978
+ "properties": {
16979
+ "type": {
16980
+ "type": "string",
16981
+ "enum": [
16982
+ "attempts"
16983
+ ]
16984
+ },
16985
+ "attributes": {
16986
+ "type": "object",
16987
+ "properties": {
16988
+ "languageCode": {
16989
+ "type": "string"
16990
+ },
16991
+ "durationMinutes": {
16992
+ "type": "number"
16993
+ },
16994
+ "expiresAt": {
16995
+ "type": "string",
16996
+ "format": "date-time"
16997
+ }
16998
+ }
16999
+ },
17000
+ "relationships": {
17001
+ "type": "object",
17002
+ "required": [
17003
+ "assessment",
17004
+ "candidate"
17005
+ ],
17006
+ "properties": {
17007
+ "assessment": {
17008
+ "type": "object"
17009
+ },
17010
+ "candidate": {
17011
+ "type": "object"
17012
+ },
17013
+ "job": {
17014
+ "type": "object"
17015
+ }
17016
+ }
17017
+ }
17018
+ }
17019
+ }
17020
+ }
17021
+ },
17022
+ "_meta": {
17023
+ "method": "POST",
17024
+ "path": "/v1/attempts",
17025
+ "operationId": "createAttempt"
17026
+ }
17027
+ },
17028
+ {
17029
+ "name": "list_attempts",
17030
+ "description": "List Attempts",
17031
+ "inputSchema": {
17032
+ "type": "object",
17033
+ "properties": {
17034
+ "filterStatus": {
17035
+ "type": "string",
17036
+ "description": "Filter by attempt status.",
17037
+ "enum": [
17038
+ "pending",
17039
+ "inProgress",
17040
+ "submitted",
17041
+ "evaluated",
17042
+ "reviewed",
17043
+ "anonymized",
17044
+ "failed"
17045
+ ]
17046
+ },
17047
+ "filterAssessmentId": {
17048
+ "type": "string",
17049
+ "description": "Filter by assessment template id."
17050
+ },
17051
+ "filterCandidateId": {
17052
+ "type": "string",
17053
+ "description": "Filter by candidate id."
17054
+ },
17055
+ "filterCreatedFrom": {
17056
+ "type": "string",
17057
+ "description": "Filters results to include only those created from the specified date and time. The value must be in ISO 8601 format."
17058
+ },
17059
+ "filterCreatedTo": {
17060
+ "type": "string",
17061
+ "description": "Filters results to include only those created up to the specified date and time. The value must be in ISO 8601 format."
17062
+ },
17063
+ "filterModifiedFrom": {
17064
+ "type": "string",
17065
+ "description": "Filters results to include only those modified from the specified date and time. The value must be in ISO 8601 format."
17066
+ },
17067
+ "filterModifiedTo": {
17068
+ "type": "string",
17069
+ "description": "Filters results to include only those modified up to the specified date and time. The value must be in ISO 8601 format."
17070
+ },
17071
+ "pageSize": {
17072
+ "type": "integer",
17073
+ "description": "Specifies the number of items to retrieve per page. The maximum value is 100."
17074
+ },
17075
+ "pageNumber": {
17076
+ "type": "integer",
17077
+ "description": "Specifies the page number to retrieve. Used for traditional pagination."
17078
+ },
17079
+ "pageAfter": {
17080
+ "type": "string",
17081
+ "description": "Opaque base64-encoded cursor returned by a previous list response, used for forward cursor-based pagination. Pass the value verbatim; do not decode or mutate it."
17082
+ },
17083
+ "pageBefore": {
17084
+ "type": "string",
17085
+ "description": "Returns the data encoded in Base64 format, used for cursor-based pagination"
17086
+ }
17087
+ }
17088
+ },
17089
+ "_meta": {
17090
+ "method": "GET",
17091
+ "path": "/v1/attempts",
17092
+ "operationId": "listAttempts"
17093
+ }
17094
+ },
17095
+ {
17096
+ "name": "attempts_options",
17097
+ "description": "Attempts Options",
17098
+ "inputSchema": {
17099
+ "type": "object",
17100
+ "properties": {}
17101
+ },
17102
+ "_meta": {
17103
+ "method": "OPTIONS",
17104
+ "path": "/v1/attempts",
17105
+ "operationId": "attemptsOptions"
17106
+ }
17107
+ },
17108
+ {
17109
+ "name": "show_attempt",
17110
+ "description": "Show Attempt",
17111
+ "inputSchema": {
17112
+ "type": "object",
17113
+ "properties": {}
17114
+ },
17115
+ "_meta": {
17116
+ "method": "GET",
17117
+ "path": "/v1/attempts/{attemptId}",
17118
+ "operationId": "showAttempt"
17119
+ }
17120
+ },
17121
+ {
17122
+ "name": "update_attempt",
17123
+ "description": "Update Attempt",
17124
+ "inputSchema": {
17125
+ "type": "object",
17126
+ "required": [
17127
+ "data"
17128
+ ],
17129
+ "properties": {
17130
+ "data": {
17131
+ "type": "object",
17132
+ "required": [
17133
+ "type",
17134
+ "id"
17135
+ ],
17136
+ "properties": {
17137
+ "type": {
17138
+ "type": "string",
17139
+ "enum": [
17140
+ "attempts"
17141
+ ]
17142
+ },
17143
+ "id": {
17144
+ "type": "string"
17145
+ },
17146
+ "attributes": {
17147
+ "type": "object"
17148
+ },
17149
+ "relationships": {
17150
+ "type": "object"
17151
+ }
17152
+ }
17153
+ }
17154
+ }
17155
+ },
17156
+ "_meta": {
17157
+ "method": "PATCH",
17158
+ "path": "/v1/attempts/{attemptId}",
17159
+ "operationId": "updateAttempt"
17160
+ }
17161
+ },
17162
+ {
17163
+ "name": "delete_attempt",
17164
+ "description": "Delete Attempt",
17165
+ "inputSchema": {
17166
+ "type": "object",
17167
+ "properties": {
17168
+ "permanentDelete": {
17169
+ "type": "string",
17170
+ "description": "permanentDelete parameter",
17171
+ "enum": [
17172
+ "true",
17173
+ "false"
17174
+ ]
17175
+ }
17176
+ }
17177
+ },
17178
+ "_meta": {
17179
+ "method": "DELETE",
17180
+ "path": "/v1/attempts/{attemptId}",
17181
+ "operationId": "deleteAttempt"
17182
+ }
17183
+ },
17184
+ {
17185
+ "name": "attempt_options",
17186
+ "description": "Attempt Options",
17187
+ "inputSchema": {
17188
+ "type": "object",
17189
+ "properties": {}
17190
+ },
17191
+ "_meta": {
17192
+ "method": "OPTIONS",
17193
+ "path": "/v1/attempts/{attemptId}",
17194
+ "operationId": "attemptOptions"
17195
+ }
17196
+ },
17197
+ {
17198
+ "name": "reevaluate_attempt",
17199
+ "description": "Reevaluate Attempt",
17200
+ "inputSchema": {
17201
+ "type": "object",
17202
+ "properties": {}
17203
+ },
17204
+ "_meta": {
17205
+ "method": "POST",
17206
+ "path": "/v1/attempts/{attemptId}/reevaluate",
17207
+ "operationId": "reevaluateAttempt"
17208
+ }
17209
+ },
17210
+ {
17211
+ "name": "reevaluate_attempt_options",
17212
+ "description": "Reevaluate Options",
17213
+ "inputSchema": {
17214
+ "type": "object",
17215
+ "properties": {}
17216
+ },
17217
+ "_meta": {
17218
+ "method": "OPTIONS",
17219
+ "path": "/v1/attempts/{attemptId}/reevaluate",
17220
+ "operationId": "reevaluateAttemptOptions"
17221
+ }
17222
+ },
17223
+ {
17224
+ "name": "start_guest_attempt",
17225
+ "description": "Start Guest Attempt",
17226
+ "inputSchema": {
17227
+ "type": "object",
17228
+ "required": [
17229
+ "data",
17230
+ "meta"
17231
+ ],
17232
+ "properties": {
17233
+ "data": {
17234
+ "type": "object",
17235
+ "required": [
17236
+ "type",
17237
+ "id"
17238
+ ],
17239
+ "properties": {
17240
+ "type": {
17241
+ "type": "string",
17242
+ "enum": [
17243
+ "attempts"
17244
+ ]
17245
+ },
17246
+ "id": {
17247
+ "type": "string"
17248
+ }
17249
+ }
17250
+ },
17251
+ "meta": {
17252
+ "title": "GuestMetaSchema",
17253
+ "description": "Auth context for unauthenticated /v1/guest/attempts/* writes.\ntenantId scopes the call; accessToken is the per-attempt token\nissued at create time. Token mismatch returns 404 (intentionally\nindistinguishable from \"attempt not found\" so we don't leak\nattempt existence).",
17254
+ "type": "object",
17255
+ "required": [
17256
+ "tenantId",
17257
+ "accessToken"
17258
+ ],
17259
+ "properties": {
17260
+ "tenantId": {
17261
+ "type": "string"
17262
+ },
17263
+ "accessToken": {
17264
+ "type": "string"
17265
+ }
17266
+ }
17267
+ }
17268
+ }
17269
+ },
17270
+ "_meta": {
17271
+ "method": "POST",
17272
+ "path": "/v1/guest/attempts",
17273
+ "operationId": "startGuestAttempt"
17274
+ }
17275
+ },
17276
+ {
17277
+ "name": "guest_attempts_options",
17278
+ "description": "Guest Attempts Options",
17279
+ "inputSchema": {
17280
+ "type": "object",
17281
+ "properties": {}
17282
+ },
17283
+ "_meta": {
17284
+ "method": "OPTIONS",
17285
+ "path": "/v1/guest/attempts",
17286
+ "operationId": "guestAttemptsOptions"
17287
+ }
17288
+ },
17289
+ {
17290
+ "name": "show_guest_attempt",
17291
+ "description": "Show Guest Attempt",
17292
+ "inputSchema": {
17293
+ "type": "object",
17294
+ "properties": {
17295
+ "tenantId": {
17296
+ "type": "string",
17297
+ "description": "tenantId parameter"
17298
+ },
17299
+ "token": {
17300
+ "type": "string",
17301
+ "description": "token parameter"
17302
+ }
17303
+ },
17304
+ "required": [
17305
+ "tenantId",
17306
+ "token"
17307
+ ]
17308
+ },
17309
+ "_meta": {
17310
+ "method": "GET",
17311
+ "path": "/v1/guest/attempts/{attemptId}",
17312
+ "operationId": "showGuestAttempt"
17313
+ }
17314
+ },
17315
+ {
17316
+ "name": "update_guest_attempt",
17317
+ "description": "Update Guest Attempt",
17318
+ "inputSchema": {
17319
+ "type": "object",
17320
+ "required": [
17321
+ "data",
17322
+ "meta"
17323
+ ],
17324
+ "properties": {
17325
+ "data": {
17326
+ "type": "object",
17327
+ "required": [
17328
+ "type",
17329
+ "id"
17330
+ ],
17331
+ "properties": {
17332
+ "type": {
17333
+ "type": "string",
17334
+ "enum": [
17335
+ "attempts"
17336
+ ]
17337
+ },
17338
+ "id": {
17339
+ "type": "string"
17340
+ },
17341
+ "attributes": {
17342
+ "type": "object",
17343
+ "properties": {
17344
+ "answers": {
17345
+ "type": "array",
17346
+ "description": "Per-question answer objects. Free-form because question types vary (multiple-choice, free-text, file upload, code editor).",
17347
+ "items": {
17348
+ "type": "object",
17349
+ "properties": {
17350
+ "questionId": {
17351
+ "type": "string"
17352
+ },
17353
+ "answer": {
17354
+ "description": "Candidate's answer - string, number, array of selected option ids, etc. Validation against the template's question type happens at evaluation time."
17355
+ },
17356
+ "files": {
17357
+ "type": "array",
17358
+ "description": "Optional file uploads attached to this answer.",
17359
+ "items": {
17360
+ "type": "object",
17361
+ "properties": {
17362
+ "fileKey": {
17363
+ "type": "string"
17364
+ },
17365
+ "fileName": {
17366
+ "type": "string"
17367
+ },
17368
+ "contentType": {
17369
+ "type": "string"
17370
+ },
17371
+ "size": {
17372
+ "type": "integer"
17373
+ }
17374
+ }
17375
+ }
17376
+ }
17377
+ }
17378
+ }
17379
+ },
17380
+ "proctoring": {
17381
+ "type": "object"
17382
+ },
17383
+ "status": {
17384
+ "type": "string",
17385
+ "enum": [
17386
+ "submitted"
17387
+ ]
17388
+ }
17389
+ }
17390
+ }
17391
+ }
17392
+ },
17393
+ "meta": {
17394
+ "title": "GuestMetaSchema",
17395
+ "description": "Auth context for unauthenticated /v1/guest/attempts/* writes.\ntenantId scopes the call; accessToken is the per-attempt token\nissued at create time. Token mismatch returns 404 (intentionally\nindistinguishable from \"attempt not found\" so we don't leak\nattempt existence).",
17396
+ "type": "object",
17397
+ "required": [
17398
+ "tenantId",
17399
+ "accessToken"
17400
+ ],
17401
+ "properties": {
17402
+ "tenantId": {
17403
+ "type": "string"
17404
+ },
17405
+ "accessToken": {
17406
+ "type": "string"
17407
+ }
17408
+ }
17409
+ }
17410
+ }
17411
+ },
17412
+ "_meta": {
17413
+ "method": "PATCH",
17414
+ "path": "/v1/guest/attempts/{attemptId}",
17415
+ "operationId": "updateGuestAttempt"
17416
+ }
17417
+ },
17418
+ {
17419
+ "name": "guest_attempt_options",
17420
+ "description": "Guest Attempt Options",
17421
+ "inputSchema": {
17422
+ "type": "object",
17423
+ "properties": {}
17424
+ },
17425
+ "_meta": {
17426
+ "method": "OPTIONS",
17427
+ "path": "/v1/guest/attempts/{attemptId}",
17428
+ "operationId": "guestAttemptOptions"
17429
+ }
17430
+ },
16613
17431
  {
16614
17432
  "name": "list_actions",
16615
17433
  "description": "List Actions",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartytalent/mcp-tools",
3
- "version": "0.1.33-dev.35",
3
+ "version": "0.1.33-dev.37",
4
4
  "description": "MCP tool definitions for SmartyTalent API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",