rentahuman-mcp 2.3.0 → 3.0.0
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/README.md +34 -15
- package/dist/serve.js +84 -12
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -159,8 +159,8 @@ These tools sign payments locally; the private key never leaves your machine, an
|
|
|
159
159
|
- **create_escrow_checkout**: Fund an accepted bounty application or conversation payment offer. Accepts optional `idempotencyKey` and returns a deterministic `status`. `requires_payment` includes `checkoutTotal` next to `checkoutUrl` (what checkout charges; it includes a platform fee).
|
|
160
160
|
- **get_escrow**: Inspect a specific escrow, including status, amounts, fees, parties, and audit history.
|
|
161
161
|
- **list_escrows**: List escrows you created as the poster. Filter by `applicationId`, `bountyId`, optional `humanId`, or status.
|
|
162
|
-
- **confirm_delivery**: Confirm work was delivered so payment can be completed or released.
|
|
163
|
-
- **release_payment**: Release active funded escrow to the worker and complete the task after explicit user payment direction.
|
|
162
|
+
- **confirm_delivery**: Confirm work was delivered so payment can be completed or released. Refused unless the escrow is bound to an accepted application or a live booking.
|
|
163
|
+
- **release_payment**: Release active funded escrow to the worker and complete the task after explicit user payment direction. For ordinary bounty jobs, review the evidence first and pass `acknowledgeRelease: true`; without it HTTP 409 `release_acknowledgement_required` returns `amountCents`, `workerPayoutCents` and `worker`. Accepts optional `applicationId` binding check.
|
|
164
164
|
- **cancel_escrow**: Cancel an unfunded or funded escrow and refund the payer.
|
|
165
165
|
- **open_dispute**: Freeze an eligible escrow for admin review.
|
|
166
166
|
- **get_earnings_balance**: Check withdrawable, held, disputed, and withdrawn earnings for the authenticated account.
|
|
@@ -198,14 +198,14 @@ worker (`escrow_recipient_mismatch`).
|
|
|
198
198
|
- **get_bounty**: Get detailed bounty information including spots filled/remaining
|
|
199
199
|
- **update_bounty**: Modify an ordinary one-shot bounty or close it while unassigned. Work Completed and Paid are synchronized from escrow evidence and cannot be set directly. Figure ongoing-operator-only bounty settings are intentionally omitted from MCP.
|
|
200
200
|
- **cancel_bounty**: Cancel one of your bounties by ID with a required canonical reason and `details` only when the reason is `other`; this feedback is private and never shown to workers
|
|
201
|
-
- **get_bounty_applications**: View applications for your bounty, including uploaded media URLs (`imageUrls`, `videoUrls`, `documentUrls`) on upload-collection bounties
|
|
201
|
+
- **get_bounty_applications**: View applications for your bounty, including uploaded media URLs (`imageUrls`, `videoUrls`, `documentUrls`) on upload-collection bounties. Each application carries `isBlockedByOwner` and `isPreferredByOwner`; call `prefer_human` / `block_human` with the application's `humanId` to favorite or block an applicant while reviewing (blocking is future-only and never removes an accepted worker). Each application also carries `reviewSummary` (`averageRating` 1-5 or `null`, `reviewCount`, up to 3 `recentReviews` with `rating`, `comment`, `escrowVerified`, `reviewerName`, `createdAt`); `averageRating: null` with `reviewCount: 0` means no review history yet, not a low score
|
|
202
202
|
- **get_bounty_dataset**: List download URLs for every accepted upload on one of your upload-collection bounties
|
|
203
203
|
- **accept_application**: Accept a human's application (supports accepting multiple for multi-person bounties). Accepts optional `idempotencyKey`.
|
|
204
204
|
- **reject_application**: Reject an application
|
|
205
|
-
- **pay_enterprise_bounty**: Pay a completed legacy enterprise bounty from the owner wallet after explicit user payment direction. Applies only to older bounties created under the retired enterprise deferred-billing tier; new bounties are always escrow-funded and use release_payment instead.
|
|
205
|
+
- **pay_enterprise_bounty**: Pay a completed legacy enterprise bounty from the owner wallet after explicit user payment direction. Applies only to older bounties created under the retired enterprise deferred-billing tier; new bounties are always escrow-funded and use release_payment instead. Same approval and `acknowledgeRelease` rules as `release_payment`.
|
|
206
206
|
- **get_bounty_submissions**: List evidence submissions for one of your bounties. Automated findings are advisory.
|
|
207
207
|
- **get_submission**: Get one evidence submission, including uploaded files and the advisory check report.
|
|
208
|
-
- **review_submission**: Approve, reject, or request a redo
|
|
208
|
+
- **review_submission**: Approve, reject, or request a redo while the job is `evidence_in_review`. Returns `jobState`, `nextAction` and the redo `attempt` counter; does not release payment. Redo is capped at 3 cycles per job; reject is terminal and files a dispute.
|
|
209
209
|
|
|
210
210
|
To target every eligible worker in one country, pass `location` with the ISO
|
|
211
211
|
country code and `isRemoteAllowed: false`, omitting `city` and `state`. The
|
|
@@ -215,16 +215,30 @@ same shape works with `update_bounty`. Platform-blocked countries are rejected.
|
|
|
215
215
|
location: { country: "US", isRemoteAllowed: false }
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
-
For ordinary accepted one-shot bounties,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
agent cannot inspect a file, it
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
218
|
+
For ordinary accepted one-shot bounties, the worker marks the task complete by
|
|
219
|
+
submitting post-acceptance evidence, which opens the poster's four-day review
|
|
220
|
+
window (`jobState: evidence_in_review`). To review it, the agent loads the
|
|
221
|
+
bounty criteria with `get_bounty`, lists and opens the canonical submission,
|
|
222
|
+
and inspects every uploaded file before calling `review_submission`. Automated
|
|
223
|
+
`recommendation` values stay advisory. If the agent cannot inspect a file, it
|
|
224
|
+
must report that limitation instead of deciding. Review decisions require
|
|
225
|
+
explicit user choice or explicit criteria-based delegation and do not move
|
|
226
|
+
money.
|
|
227
|
+
|
|
228
|
+
- `approve` moves the job to `approved_awaiting_release`; `release_payment`
|
|
229
|
+
(or `pay_enterprise_bounty`) then needs `acknowledgeRelease: true`.
|
|
230
|
+
- `request_redo` (reason required) moves it to `changes_requested` and the
|
|
231
|
+
worker resubmits; at most 3 redo cycles per job, then only approve or reject
|
|
232
|
+
remain (`redo_limit_reached`).
|
|
233
|
+
- `reject` (reason required) is terminal for the evidence loop: a dispute is
|
|
234
|
+
filed immediately (`rejected_disputed`) and the worker cannot resubmit.
|
|
235
|
+
|
|
236
|
+
Releasing escrow without the acknowledgement returns HTTP 409
|
|
237
|
+
`release_acknowledgement_required` with `amountCents`, `workerPayoutCents` and
|
|
238
|
+
`worker`. The owner may release escrow before the review is closed; the
|
|
239
|
+
seven-day auto-release and `pay_enterprise_bounty` require an approved
|
|
240
|
+
submission (`evidence_approval_required` otherwise). Platform admins cannot
|
|
241
|
+
authorize payment.
|
|
228
242
|
|
|
229
243
|
### Human-written text
|
|
230
244
|
|
|
@@ -291,6 +305,11 @@ in-chat + email reminder at the half-way point; past the deadline the seat is
|
|
|
291
305
|
automatically released, the application is expired, escrow returns to your
|
|
292
306
|
funding source, and the listing reopens for other applicants.
|
|
293
307
|
|
|
308
|
+
Omit `completionWindowHours` for work anchored to a specific future event,
|
|
309
|
+
shift, or appointment. The clock starts when the worker confirms their seat,
|
|
310
|
+
not at the scheduled start time, so a shorter window could release the worker
|
|
311
|
+
before the work can begin.
|
|
312
|
+
|
|
294
313
|
Workers may request more time. Pending requests appear on
|
|
295
314
|
`get_bounty_applications` as `completionExtension` with `status: "requested"`
|
|
296
315
|
(an open request pauses the auto-release for up to 24 hours). Answer with the
|
package/dist/serve.js
CHANGED
|
@@ -908,6 +908,20 @@ refund unused budget, and produce a final report. Managed bounties require a
|
|
|
908
908
|
fixed USD price and 1\u201350 spots and cannot use \`mode: 'auto'\`. Poll the bounty's
|
|
909
909
|
managed run or subscribe to \`run.report_ready\` for the finished work.
|
|
910
910
|
|
|
911
|
+
### Review Applicants with Prefer and Block
|
|
912
|
+
|
|
913
|
+
Every application returned by \`get_bounty_applications\` carries two flags
|
|
914
|
+
describing your relationship with that applicant: \`isBlockedByOwner\` and
|
|
915
|
+
\`isPreferredByOwner\`. Use them while reviewing, and act from the same view:
|
|
916
|
+
- \`prefer_human(humanId)\` with the application's \`humanId\` favorites a strong
|
|
917
|
+
applicant: preferred humans are notified first for all your future bounties
|
|
918
|
+
and any block on them is removed
|
|
919
|
+
- \`block_human(humanId)\` keeps a poor fit off your future bounties and out of
|
|
920
|
+
your outreach, and removes them from your preferred list
|
|
921
|
+
- Blocking is future-only. It never removes a worker who was already accepted;
|
|
922
|
+
use \`reject_application\` for the application in front of you
|
|
923
|
+
- Always ask the user before blocking or preferring on their behalf
|
|
924
|
+
|
|
911
925
|
### Start a Conversation
|
|
912
926
|
|
|
913
927
|
Use \`start_conversation\` only when the account is eligible for direct messaging:
|
|
@@ -1013,10 +1027,19 @@ completion and evidence criteria, then \`get_bounty_submissions\` and
|
|
|
1013
1027
|
are advisory; never turn them into the verdict. Only call \`review_submission\`
|
|
1014
1028
|
when the user explicitly chooses approve/reject/redo or explicitly delegates
|
|
1015
1029
|
criteria-based decisions. If a file cannot be inspected, disclose that limit
|
|
1016
|
-
instead of deciding.
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1030
|
+
instead of deciding.
|
|
1031
|
+
|
|
1032
|
+
The job moves through a small state machine, returned as \`jobState\` on review
|
|
1033
|
+
responses: the worker marks the task complete with evidence
|
|
1034
|
+
(\`evidence_in_review\`), the owner approves (\`approved_awaiting_release\`),
|
|
1035
|
+
requests a redo (\`changes_requested\`, at most 3 cycles per job, then only
|
|
1036
|
+
approve or reject remain) or rejects (\`rejected_disputed\`: a dispute is filed
|
|
1037
|
+
immediately and the worker cannot resubmit). \`release_payment\` and
|
|
1038
|
+
\`pay_enterprise_bounty\` are separate irreversible financial actions and must
|
|
1039
|
+
only follow explicit user payment direction. For these jobs they require
|
|
1040
|
+
\`acknowledgeRelease: true\` (and \`pay_enterprise_bounty\` an approved
|
|
1041
|
+
submission); a 409 names the amount and the worker so you can confirm with the
|
|
1042
|
+
user and retry. Review the evidence before directing payment.
|
|
1020
1043
|
|
|
1021
1044
|
## Support
|
|
1022
1045
|
|
|
@@ -1651,7 +1674,7 @@ var CreateBountyRequest = Schema5.Struct({
|
|
|
1651
1674
|
Schema5.lessThanOrEqualTo(720)
|
|
1652
1675
|
)
|
|
1653
1676
|
).annotations({
|
|
1654
|
-
description: "Auto-reassign completion deadline: hours a worker has to complete the task after confirming their seat (1-720). Workers are reminded at half the window; when the deadline passes the seat is automatically released and the listing reopens for other applicants. Workers may request an extension, which you approve, deny, or replace with your own via POST /bounties/{id}/applications/{appId}/extension/decision. For AI-managed bounties this overrides the default 6-hour work window. Omit for no completion deadline."
|
|
1677
|
+
description: "Auto-reassign completion deadline: hours a worker has to complete the task after confirming their seat (1-720). Workers are reminded at half the window; when the deadline passes the seat is automatically released and the listing reopens for other applicants. Workers may request an extension, which you approve, deny, or replace with your own via POST /bounties/{id}/applications/{appId}/extension/decision. For AI-managed bounties this overrides the default 6-hour work window. Omit for no completion deadline \u2014 and always omit for tasks anchored to a specific future date or time slot (events, shifts, appointments): the clock starts at seat confirmation, so a window shorter than the wait would release every worker before the task could start."
|
|
1655
1678
|
}),
|
|
1656
1679
|
keepApplicantsOnFill: Schema5.optional(Schema5.Boolean).annotations({
|
|
1657
1680
|
description: "When true, pending applicants are kept (not auto-rejected) once all seats fill, so you can reuse the applicant pool after reopening or adding seats. Default false."
|
|
@@ -2152,6 +2175,9 @@ var PayEnterpriseBountyRequest = Schema5.Struct({
|
|
|
2152
2175
|
}),
|
|
2153
2176
|
conversationId: Schema5.optional(Schema5.String).annotations({
|
|
2154
2177
|
description: "Conversation for the completed application. Required when the bounty has more than one conversation."
|
|
2178
|
+
}),
|
|
2179
|
+
acknowledgeRelease: Schema5.optional(Schema5.Boolean).annotations({
|
|
2180
|
+
description: "Required for ordinary bounty jobs in the evidence review flow: pass true to confirm the release pays the worker and is final. Without it the API answers HTTP 409 release_acknowledgement_required with the amount and the worker."
|
|
2155
2181
|
})
|
|
2156
2182
|
});
|
|
2157
2183
|
var GetBountyDatasetRequest = Schema5.Struct({
|
|
@@ -2360,7 +2386,7 @@ var getBountySpec = {
|
|
|
2360
2386
|
};
|
|
2361
2387
|
var getBountyApplicationsSpec = {
|
|
2362
2388
|
name: "get_bounty_applications",
|
|
2363
|
-
description: "View applications for a bounty. See who applied, their cover letters, and availability. Supports cursor-based pagination (pass the `cursor` from a previous response to get the next page).",
|
|
2389
|
+
description: "View applications for a bounty. See who applied, their cover letters, and availability. Each application includes `isBlockedByOwner` and `isPreferredByOwner`, your relationship with that applicant. To favorite or block an applicant while reviewing, call `prefer_human` or `block_human` with the application's `humanId` (blocking is future-only: it never removes a worker you already accepted). Each application includes `reviewSummary` (`averageRating` 1-5 or null, `reviewCount`, and up to 3 `recentReviews` with rating, comment, escrowVerified, reviewerName, createdAt) from the applicant's past jobs. `averageRating: null` with `reviewCount: 0` means no review history yet: treat it as unknown, not as a low score. Weigh `reviewSummary` alongside `identitySignals` before calling accept_application. Supports cursor-based pagination (pass the `cursor` from a previous response to get the next page).",
|
|
2364
2390
|
input: GetBountyApplicationsRequest
|
|
2365
2391
|
};
|
|
2366
2392
|
var getBountyDatasetSpec = {
|
|
@@ -2370,7 +2396,7 @@ var getBountyDatasetSpec = {
|
|
|
2370
2396
|
};
|
|
2371
2397
|
var acceptApplicationSpec = {
|
|
2372
2398
|
name: "accept_application",
|
|
2373
|
-
description: "Accept a human's application for your bounty. REQUIRES a funded escrow for this specific application \u2014 call create_escrow_checkout first to fund it, otherwise this returns 402 Payment Required. Once funded, accepting creates a booking and locks the escrow until work is delivered. For multi-person bounties, fund and accept each applicant separately. Other applications are auto-rejected only when the bounty is fully filled. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating).",
|
|
2399
|
+
description: "Accept a human's application for your bounty. REQUIRES a funded escrow for this specific application \u2014 call create_escrow_checkout first to fund it, otherwise this returns 402 Payment Required. Once funded, accepting creates a booking and locks the escrow until work is delivered. For multi-person bounties, fund and accept each applicant separately. Other applications are auto-rejected only when the bounty is fully filled. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating). Check the applicant's `reviewSummary` from get_bounty_applications before accepting; a null averageRating means no history, not a bad record.",
|
|
2374
2400
|
input: AcceptApplicationRequest
|
|
2375
2401
|
};
|
|
2376
2402
|
var rejectApplicationSpec = {
|
|
@@ -2410,7 +2436,7 @@ var boostBountyOutreachSpec = {
|
|
|
2410
2436
|
};
|
|
2411
2437
|
var payEnterpriseBountySpec = {
|
|
2412
2438
|
name: "pay_enterprise_bounty",
|
|
2413
|
-
description: "Pay an accepted worker on a legacy enterprise bounty (older bounties created under the retired enterprise deferred-billing tier) from the owner wallet. New bounties are always escrow-funded; use release_payment for them. This is an irreversible financial action: call it only when the user explicitly directs payment.
|
|
2439
|
+
description: "Pay an accepted worker on a legacy enterprise bounty (older bounties created under the retired enterprise deferred-billing tier) from the owner wallet. New bounties are always escrow-funded; use release_payment for them. This is an irreversible financial action: call it only when the user explicitly directs payment. For jobs in the evidence review flow the submitted evidence must be approved first and acknowledgeRelease must be true; otherwise HTTP 409 returns the code, the amount and the worker. If the user asks for evidence review instead of payment, use get_bounty, get_submission, and review_submission. The amount, worker, and wallet are loaded from stored records. Insufficient wallet funds return 402 and are safe to retry after topping up. Owner or bounty-owning agent only; platform admins cannot pay.",
|
|
2414
2440
|
input: PayEnterpriseBountyRequest,
|
|
2415
2441
|
annotations: {
|
|
2416
2442
|
title: "Pay enterprise bounty",
|
|
@@ -2851,6 +2877,33 @@ var MOCK_BOUNTIES = [
|
|
|
2851
2877
|
updatedAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1e3).toISOString()
|
|
2852
2878
|
}
|
|
2853
2879
|
];
|
|
2880
|
+
var MOCK_REVIEW_SUMMARY_WITH_HISTORY = {
|
|
2881
|
+
averageRating: 4.5,
|
|
2882
|
+
reviewCount: 2,
|
|
2883
|
+
recentReviews: [
|
|
2884
|
+
{
|
|
2885
|
+
id: "review_test_001",
|
|
2886
|
+
rating: 5,
|
|
2887
|
+
comment: "Picked up and delivered same day with photo proof.",
|
|
2888
|
+
escrowVerified: true,
|
|
2889
|
+
reviewerName: "Logistics Agent",
|
|
2890
|
+
createdAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1e3).toISOString()
|
|
2891
|
+
},
|
|
2892
|
+
{
|
|
2893
|
+
id: "review_test_002",
|
|
2894
|
+
rating: 4,
|
|
2895
|
+
comment: "Reliable and communicative, arrived a few minutes late.",
|
|
2896
|
+
escrowVerified: false,
|
|
2897
|
+
reviewerName: "Errand Agent",
|
|
2898
|
+
createdAt: new Date(Date.now() - 20 * 24 * 60 * 60 * 1e3).toISOString()
|
|
2899
|
+
}
|
|
2900
|
+
]
|
|
2901
|
+
};
|
|
2902
|
+
var MOCK_REVIEW_SUMMARY_EMPTY = {
|
|
2903
|
+
averageRating: null,
|
|
2904
|
+
reviewCount: 0,
|
|
2905
|
+
recentReviews: []
|
|
2906
|
+
};
|
|
2854
2907
|
var MOCK_APPLICATIONS = [
|
|
2855
2908
|
{
|
|
2856
2909
|
id: "app_test_001",
|
|
@@ -2860,6 +2913,9 @@ var MOCK_APPLICATIONS = [
|
|
|
2860
2913
|
coverLetter: "I'm available today and can pick up the package. I'm located near the downtown USPS and have done this many times before.",
|
|
2861
2914
|
availability: "Available today between 10am-4pm",
|
|
2862
2915
|
status: "pending",
|
|
2916
|
+
isBlockedByOwner: false,
|
|
2917
|
+
isPreferredByOwner: false,
|
|
2918
|
+
reviewSummary: MOCK_REVIEW_SUMMARY_WITH_HISTORY,
|
|
2863
2919
|
createdAt: new Date(Date.now() - 12 * 60 * 60 * 1e3).toISOString(),
|
|
2864
2920
|
updatedAt: new Date(Date.now() - 12 * 60 * 60 * 1e3).toISOString()
|
|
2865
2921
|
},
|
|
@@ -2871,6 +2927,9 @@ var MOCK_APPLICATIONS = [
|
|
|
2871
2927
|
coverLetter: "I can help with this package pickup. I have valid ID and am familiar with the USPS location.",
|
|
2872
2928
|
availability: "Tomorrow morning works best for me",
|
|
2873
2929
|
status: "pending",
|
|
2930
|
+
isBlockedByOwner: false,
|
|
2931
|
+
isPreferredByOwner: true,
|
|
2932
|
+
reviewSummary: MOCK_REVIEW_SUMMARY_EMPTY,
|
|
2874
2933
|
createdAt: new Date(Date.now() - 6 * 60 * 60 * 1e3).toISOString(),
|
|
2875
2934
|
updatedAt: new Date(Date.now() - 6 * 60 * 60 * 1e3).toISOString()
|
|
2876
2935
|
}
|
|
@@ -3824,6 +3883,7 @@ var payEnterpriseBountyTool = toMcpTool(
|
|
|
3824
3883
|
);
|
|
3825
3884
|
return yield* api.post(`/bounties/${params.bountyId}/enterprise-pay`, {
|
|
3826
3885
|
...params.conversationId !== void 0 ? { conversationId: params.conversationId } : {},
|
|
3886
|
+
...params.acknowledgeRelease !== void 0 ? { acknowledgeRelease: params.acknowledgeRelease } : {},
|
|
3827
3887
|
...verification
|
|
3828
3888
|
});
|
|
3829
3889
|
})
|
|
@@ -4523,6 +4583,9 @@ var ConfirmDeliveryRequest = Schema12.Struct({
|
|
|
4523
4583
|
var ReleasePaymentRequest = Schema12.Struct({
|
|
4524
4584
|
escrowId: Schema12.String.pipe(Schema12.minLength(1)),
|
|
4525
4585
|
applicationId: Schema12.optional(Schema12.String),
|
|
4586
|
+
acknowledgeRelease: Schema12.optional(Schema12.Boolean).annotations({
|
|
4587
|
+
description: "Required for ordinary bounty jobs in the evidence review flow: pass true to confirm the release pays the worker and is final. Without it the API answers HTTP 409 release_acknowledgement_required with the amount and the worker."
|
|
4588
|
+
}),
|
|
4526
4589
|
idempotencyKey: Schema12.optional(Schema12.String)
|
|
4527
4590
|
});
|
|
4528
4591
|
var CancelEscrowRequest = Schema12.Struct({
|
|
@@ -4651,7 +4714,7 @@ var escrowTools = [
|
|
|
4651
4714
|
},
|
|
4652
4715
|
{
|
|
4653
4716
|
name: "confirm_delivery",
|
|
4654
|
-
description: "Confirm that a worker has satisfactorily completed the task. Transitions the escrow from 'delivered' to 'completed' (or 'warranty_hold' if a warranty plan is active).
|
|
4717
|
+
description: "Confirm that a worker has satisfactorily completed the task. Transitions the escrow from 'delivered' to 'completed' (or 'warranty_hold' if a warranty plan is active). Refused with HTTP 409 unless the escrow is bound to an accepted application or a live booking and, for ordinary bounties, finalized evidence exists. This is separate from release_payment. Requires RENTAHUMAN_API_KEY to be set.",
|
|
4655
4718
|
inputSchema: toInputSchema(ConfirmDeliveryRequest),
|
|
4656
4719
|
handler: (args) => Effect12.gen(function* () {
|
|
4657
4720
|
yield* requireApiKey;
|
|
@@ -4667,7 +4730,7 @@ var escrowTools = [
|
|
|
4667
4730
|
},
|
|
4668
4731
|
{
|
|
4669
4732
|
name: "release_payment",
|
|
4670
|
-
description: "Release an active funded escrow to the worker and complete the task. This is an irreversible financial action: call it only when the user explicitly directs payment.
|
|
4733
|
+
description: "Release an active funded escrow to the worker and complete the task. This is an irreversible financial action: call it only when the user explicitly directs payment. For ordinary bounty jobs, review the worker's evidence with review_submission before paying, and pass acknowledgeRelease: true after confirming the amount and worker with the user; without it HTTP 409 release_acknowledgement_required returns the next action, amountCents, workerPayoutCents and worker. If the user asks to review evidence instead, call get_bounty and get_submission, inspect every file, then use review_submission. Optionally pass `applicationId` to assert the intended application; a mismatch is refused to prevent paying the wrong worker. Requires RENTAHUMAN_API_KEY.",
|
|
4671
4734
|
inputSchema: toInputSchema(ReleasePaymentRequest),
|
|
4672
4735
|
annotations: {
|
|
4673
4736
|
title: "Release payment",
|
|
@@ -4680,7 +4743,10 @@ var escrowTools = [
|
|
|
4680
4743
|
const config = yield* McpConfig;
|
|
4681
4744
|
const api = yield* ApiClient;
|
|
4682
4745
|
const params = yield* decode(ReleasePaymentRequest)(args);
|
|
4683
|
-
const body =
|
|
4746
|
+
const body = {
|
|
4747
|
+
...params.applicationId ? { applicationId: params.applicationId } : {},
|
|
4748
|
+
...params.acknowledgeRelease !== void 0 ? { acknowledgeRelease: params.acknowledgeRelease } : {}
|
|
4749
|
+
};
|
|
4684
4750
|
const result = yield* api.post(
|
|
4685
4751
|
config.escrowReleasePath(params.escrowId),
|
|
4686
4752
|
body
|
|
@@ -5277,6 +5343,12 @@ var HumanPublicResponse = Schema17.Struct({
|
|
|
5277
5343
|
qualificationBadgeSummaries: Schema17.optional(
|
|
5278
5344
|
Schema17.Array(QualificationBadgeSummaryResponse)
|
|
5279
5345
|
),
|
|
5346
|
+
/**
|
|
5347
|
+
* True when the worker holds an active verified-human-writer credential
|
|
5348
|
+
* (a no-AI humanization screening sample classified Human). Lets them skip
|
|
5349
|
+
* the sample on later humanization bounties.
|
|
5350
|
+
*/
|
|
5351
|
+
writingVerified: Schema17.optional(Schema17.Boolean),
|
|
5280
5352
|
profileUrl: Schema17.optional(Schema17.String),
|
|
5281
5353
|
activityFreshness: Schema17.optional(ActivityFreshnessResponse),
|
|
5282
5354
|
identitySignals: Schema17.optional(IdentitySignals),
|
|
@@ -6812,7 +6884,7 @@ var getSubmissionSpec = {
|
|
|
6812
6884
|
};
|
|
6813
6885
|
var reviewSubmissionSpec = {
|
|
6814
6886
|
name: "review_submission",
|
|
6815
|
-
description: "Record a decision on a worker's evidence submission. Only call after the user explicitly chooses a decision or explicitly delegates criteria-based evidence decisions to you. First call get_bounty and get_submission, compare the stated completion/evidence criteria with every uploaded file, and do not decide if you cannot inspect a file. `action` is 'approve', 'reject', or 'request_redo'; `response` is required for reject and request_redo. Automated `recommendation` and findings are advisory only and must never be treated as the verdict. This tool does not move money. Owner only, with an action-bound agent signature.",
|
|
6887
|
+
description: "Record a decision on a worker's evidence submission. Only call after the user explicitly chooses a decision or explicitly delegates criteria-based evidence decisions to you. First call get_bounty and get_submission, compare the stated completion/evidence criteria with every uploaded file, and do not decide if you cannot inspect a file. `action` is 'approve', 'reject', or 'request_redo'; `response` is required for reject and request_redo. Available only while the job is evidence_in_review (the worker marked the task complete with evidence); other states return HTTP 409 job_state_conflict. Every response includes `jobState` (the allowed next actions) and `attempt` {used, max}: request_redo is capped at 3 cycles per job, after which HTTP 409 redo_limit_reached leaves only approve or reject. reject is terminal for the evidence loop and immediately files a dispute on the escrow; the worker cannot resubmit. Automated `recommendation` and findings are advisory only and must never be treated as the verdict. This tool does not move money: after approve, use release_payment with acknowledgeRelease: true. Owner only, with an action-bound agent signature.",
|
|
6816
6888
|
input: ReviewSubmissionRequest,
|
|
6817
6889
|
annotations: {
|
|
6818
6890
|
title: "Record evidence decision",
|
package/dist/types/index.d.ts
CHANGED
|
@@ -303,6 +303,7 @@ declare const ConfirmDeliveryRequest: Schema.Struct<{
|
|
|
303
303
|
declare const ReleasePaymentRequest: Schema.Struct<{
|
|
304
304
|
escrowId: Schema.filter<typeof Schema.String>;
|
|
305
305
|
applicationId: Schema.optional<typeof Schema.String>;
|
|
306
|
+
acknowledgeRelease: Schema.optional<typeof Schema.Boolean>;
|
|
306
307
|
idempotencyKey: Schema.optional<typeof Schema.String>;
|
|
307
308
|
}>;
|
|
308
309
|
declare const CancelEscrowRequest: Schema.Struct<{
|