rentahuman-mcp 2.2.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 +40 -15
- package/dist/serve.js +119 -17
- package/dist/types/index.d.ts +4 -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
|
|
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
|
|
@@ -315,6 +334,12 @@ reason, and uncertain cases stay pending for your manual review via
|
|
|
315
334
|
review and accept every application yourself. Ignored on `aiManaged` bounties,
|
|
316
335
|
whose managed engine owns applicant review.
|
|
317
336
|
|
|
337
|
+
On `micCheckRequired` bounties the deterministic gate scores the applicant's
|
|
338
|
+
mic recording: auto-accept requires an overall DNSMOS score of at least
|
|
339
|
+
`autoAcceptMinMicScore` (1-5, default 3.0 — the platform's pass boundary).
|
|
340
|
+
Set it at creation or change it later via `update_bounty` (`null` resets to
|
|
341
|
+
the default). Below the floor, applications wait for your manual review.
|
|
342
|
+
|
|
318
343
|
#### Microphone quality requirement
|
|
319
344
|
|
|
320
345
|
`create_bounty` and `update_bounty` accept `micCheckRequired` (boolean, default
|
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
|
-
evidence
|
|
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."
|
|
@@ -1659,6 +1682,14 @@ var CreateBountyRequest = Schema5.Struct({
|
|
|
1659
1682
|
autoAccept: Schema5.optional(Schema5.Boolean).annotations({
|
|
1660
1683
|
description: "Automatically review applicants as they apply. Deterministic checks (account standing, country eligibility, payout viability, your blocklist) always run; an AI review runs only when the application contains free-text screening answers that need judgment. Qualified applicants are accepted (the standard worker-confirmation window still applies unless skipAcceptanceConfirmation is set), clear mismatches are rejected with a reason, and uncertain cases stay pending for your manual review. Default true; pass false to review and accept every application yourself. Ignored for aiManaged bounties, whose managed engine owns applicant review."
|
|
1661
1684
|
}),
|
|
1685
|
+
autoAcceptMinMicScore: Schema5.optional(
|
|
1686
|
+
Schema5.Number.pipe(
|
|
1687
|
+
Schema5.greaterThanOrEqualTo(1),
|
|
1688
|
+
Schema5.lessThanOrEqualTo(5)
|
|
1689
|
+
)
|
|
1690
|
+
).annotations({
|
|
1691
|
+
description: "Minimum overall DNSMOS speech-quality score (1-5) an applicant\u2019s mic-check recording must reach for auto-accept on micCheckRequired bounties. Below the floor the application stays pending for your manual review (never auto-rejected). Default 3.0 \u2014 the platform\u2019s pass boundary. Only meaningful with micCheckRequired: true and autoAccept on."
|
|
1692
|
+
}),
|
|
1662
1693
|
identityRequired: Schema5.optional(Schema5.Boolean).annotations({
|
|
1663
1694
|
description: "Require applicants to pass an identity check (government ID) before applying. Verified once per account and reused across bounties. Default false."
|
|
1664
1695
|
}),
|
|
@@ -1888,7 +1919,10 @@ var UpdateBountyRequest = Schema5.Struct({
|
|
|
1888
1919
|
Schema5.lessThanOrEqualTo(500)
|
|
1889
1920
|
)
|
|
1890
1921
|
).annotations({
|
|
1891
|
-
description: "
|
|
1922
|
+
description: "Change the number of seats (humans needed). Cannot be set below spots already filled. On a wallet-funded bounty the pool is resized in place: extra seats are debited from the poster wallet, freed seats are refunded to it."
|
|
1923
|
+
}),
|
|
1924
|
+
walletImpactAcknowledged: Schema5.optional(Schema5.Boolean).annotations({
|
|
1925
|
+
description: "Acknowledges the wallet impact of a wallet-funded bounty edit. Any edit that debits the poster wallet (adding seats via spotsAvailable, or raising the price) is first refused with error_code wallet_impact_confirmation_required and the exact amount; retry the same request with this set to true to apply the charge. Admins editing a bounty they do not own must also pass it for any edit that debits or credits the poster wallet."
|
|
1892
1926
|
}),
|
|
1893
1927
|
keepApplicantsOnFill: Schema5.optional(Schema5.Boolean).annotations({
|
|
1894
1928
|
description: "When true, pending applicants are kept (not auto-rejected) once all seats fill, so you can draw from the same pool after reopening or adding seats. Default false."
|
|
@@ -1896,6 +1930,16 @@ var UpdateBountyRequest = Schema5.Struct({
|
|
|
1896
1930
|
autoAccept: Schema5.optional(Schema5.Boolean).annotations({
|
|
1897
1931
|
description: "Turn automatic applicant review on or off. When on, deterministic checks always run and an AI review runs only for free-text screening answers; qualified applicants are accepted, clear mismatches rejected, uncertain cases left pending. Applications received while off stay pending; toggling on affects future applications only. Ignored on aiManaged bounties."
|
|
1898
1932
|
}),
|
|
1933
|
+
autoAcceptMinMicScore: Schema5.optional(
|
|
1934
|
+
Schema5.NullOr(
|
|
1935
|
+
Schema5.Number.pipe(
|
|
1936
|
+
Schema5.greaterThanOrEqualTo(1),
|
|
1937
|
+
Schema5.lessThanOrEqualTo(5)
|
|
1938
|
+
)
|
|
1939
|
+
)
|
|
1940
|
+
).annotations({
|
|
1941
|
+
description: "Change the minimum overall DNSMOS mic score (1-5) for auto-accept on micCheckRequired bounties, or pass null to reset to the platform default (3.0). Affects future applications only."
|
|
1942
|
+
}),
|
|
1899
1943
|
completionCriteria: Schema5.optional(
|
|
1900
1944
|
Schema5.String.pipe(Schema5.minLength(10), Schema5.maxLength(2e3))
|
|
1901
1945
|
).annotations({
|
|
@@ -2131,6 +2175,9 @@ var PayEnterpriseBountyRequest = Schema5.Struct({
|
|
|
2131
2175
|
}),
|
|
2132
2176
|
conversationId: Schema5.optional(Schema5.String).annotations({
|
|
2133
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."
|
|
2134
2181
|
})
|
|
2135
2182
|
});
|
|
2136
2183
|
var GetBountyDatasetRequest = Schema5.Struct({
|
|
@@ -2274,6 +2321,7 @@ var BountyPublicResponse = Schema7.Struct({
|
|
|
2274
2321
|
micCheckRequired: Schema7.optional(Schema7.Boolean),
|
|
2275
2322
|
completionWindowHours: Schema7.optional(Schema7.Number),
|
|
2276
2323
|
autoAccept: Schema7.optional(Schema7.Boolean),
|
|
2324
|
+
autoAcceptMinMicScore: Schema7.optional(Schema7.Number),
|
|
2277
2325
|
requiredQualificationIds: Schema7.optional(Schema7.Array(Schema7.String)),
|
|
2278
2326
|
supportedCountries: Schema7.optional(Schema7.Array(Schema7.String)),
|
|
2279
2327
|
intakeClosedCountries: Schema7.optional(Schema7.Array(Schema7.String)),
|
|
@@ -2338,7 +2386,7 @@ var getBountySpec = {
|
|
|
2338
2386
|
};
|
|
2339
2387
|
var getBountyApplicationsSpec = {
|
|
2340
2388
|
name: "get_bounty_applications",
|
|
2341
|
-
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).",
|
|
2342
2390
|
input: GetBountyApplicationsRequest
|
|
2343
2391
|
};
|
|
2344
2392
|
var getBountyDatasetSpec = {
|
|
@@ -2348,7 +2396,7 @@ var getBountyDatasetSpec = {
|
|
|
2348
2396
|
};
|
|
2349
2397
|
var acceptApplicationSpec = {
|
|
2350
2398
|
name: "accept_application",
|
|
2351
|
-
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.",
|
|
2352
2400
|
input: AcceptApplicationRequest
|
|
2353
2401
|
};
|
|
2354
2402
|
var rejectApplicationSpec = {
|
|
@@ -2368,7 +2416,7 @@ var decideExtensionSpec = {
|
|
|
2368
2416
|
};
|
|
2369
2417
|
var updateBountySpec = {
|
|
2370
2418
|
name: "update_bounty",
|
|
2371
|
-
description: "Update ordinary one-shot bounty details. You can modify the title, description, price, application-cutoff deadline, location, requiredLinks, applicationDetails, lifecycleMessages, liveCaptureRequirement, reactivate hidden inactive bounties, and more. The deadline stops new applications and direct uploads; completionWindowHours controls post-acceptance completion timing. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. Live capture and required-link requirements can only be changed before applications are received. applicationDetails may be changed after applications are received; existing applications keep their original answers, while future applications use the latest fields. applicationDetails are application detail items for standard application bounties only; blank rows are ignored, uploads are capped at 3 fields, acknowledgments at 5 fields, and camera-only live_video at 1 required field. lifecycleMessages can define auto-message templates for acceptance, rejection, and submission review transitions. Admin-only ongoing bounty settings are intentionally not exposed through MCP. You can also pause/unpause a bounty (status 'paused'/'open'), close an unassigned bounty and return its unused funding (status 'closed'), increase seats via spotsAvailable, keep pending applicants on fill via keepApplicantsOnFill, and change the auto-reassign completion deadline via completionWindowHours (null disables; only affects seats confirmed after the edit), and toggle automatic applicant review via autoAccept (applications received while off stay pending; toggling on affects future applications only; ignored on aiManaged bounties). Use cancel_bounty for cancellation and refund handling. Work completion and payment are system-managed from escrow and payout evidence; status 'completed' and 'paid' cannot be set directly.",
|
|
2419
|
+
description: "Update ordinary one-shot bounty details. You can modify the title, description, price, application-cutoff deadline, location, requiredLinks, applicationDetails, lifecycleMessages, liveCaptureRequirement, reactivate hidden inactive bounties, and more. The deadline stops new applications and direct uploads; completionWindowHours controls post-acceptance completion timing. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. Live capture and required-link requirements can only be changed before applications are received. applicationDetails may be changed after applications are received; existing applications keep their original answers, while future applications use the latest fields. applicationDetails are application detail items for standard application bounties only; blank rows are ignored, uploads are capped at 3 fields, acknowledgments at 5 fields, and camera-only live_video at 1 required field. lifecycleMessages can define auto-message templates for acceptance, rejection, and submission review transitions. Admin-only ongoing bounty settings are intentionally not exposed through MCP. You can also pause/unpause a bounty (status 'paused'/'open'), close an unassigned bounty and return its unused funding (status 'closed'), increase seats via spotsAvailable, keep pending applicants on fill via keepApplicantsOnFill, and change the auto-reassign completion deadline via completionWindowHours (null disables; only affects seats confirmed after the edit), and toggle automatic applicant review via autoAccept (applications received while off stay pending; toggling on affects future applications only; ignored on aiManaged bounties) or adjust its mic-quality floor via autoAcceptMinMicScore (1-5, null resets to the 3.0 default). Use cancel_bounty for cancellation and refund handling. Work completion and payment are system-managed from escrow and payout evidence; status 'completed' and 'paid' cannot be set directly.",
|
|
2372
2420
|
input: UpdateBountyRequest
|
|
2373
2421
|
};
|
|
2374
2422
|
var cancelBountySpec = {
|
|
@@ -2388,7 +2436,7 @@ var boostBountyOutreachSpec = {
|
|
|
2388
2436
|
};
|
|
2389
2437
|
var payEnterpriseBountySpec = {
|
|
2390
2438
|
name: "pay_enterprise_bounty",
|
|
2391
|
-
description: "Pay a
|
|
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.",
|
|
2392
2440
|
input: PayEnterpriseBountyRequest,
|
|
2393
2441
|
annotations: {
|
|
2394
2442
|
title: "Pay enterprise bounty",
|
|
@@ -2829,6 +2877,33 @@ var MOCK_BOUNTIES = [
|
|
|
2829
2877
|
updatedAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1e3).toISOString()
|
|
2830
2878
|
}
|
|
2831
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
|
+
};
|
|
2832
2907
|
var MOCK_APPLICATIONS = [
|
|
2833
2908
|
{
|
|
2834
2909
|
id: "app_test_001",
|
|
@@ -2838,6 +2913,9 @@ var MOCK_APPLICATIONS = [
|
|
|
2838
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.",
|
|
2839
2914
|
availability: "Available today between 10am-4pm",
|
|
2840
2915
|
status: "pending",
|
|
2916
|
+
isBlockedByOwner: false,
|
|
2917
|
+
isPreferredByOwner: false,
|
|
2918
|
+
reviewSummary: MOCK_REVIEW_SUMMARY_WITH_HISTORY,
|
|
2841
2919
|
createdAt: new Date(Date.now() - 12 * 60 * 60 * 1e3).toISOString(),
|
|
2842
2920
|
updatedAt: new Date(Date.now() - 12 * 60 * 60 * 1e3).toISOString()
|
|
2843
2921
|
},
|
|
@@ -2849,6 +2927,9 @@ var MOCK_APPLICATIONS = [
|
|
|
2849
2927
|
coverLetter: "I can help with this package pickup. I have valid ID and am familiar with the USPS location.",
|
|
2850
2928
|
availability: "Tomorrow morning works best for me",
|
|
2851
2929
|
status: "pending",
|
|
2930
|
+
isBlockedByOwner: false,
|
|
2931
|
+
isPreferredByOwner: true,
|
|
2932
|
+
reviewSummary: MOCK_REVIEW_SUMMARY_EMPTY,
|
|
2852
2933
|
createdAt: new Date(Date.now() - 6 * 60 * 60 * 1e3).toISOString(),
|
|
2853
2934
|
updatedAt: new Date(Date.now() - 6 * 60 * 60 * 1e3).toISOString()
|
|
2854
2935
|
}
|
|
@@ -3206,6 +3287,12 @@ function toMcpTool(spec, run) {
|
|
|
3206
3287
|
}
|
|
3207
3288
|
|
|
3208
3289
|
// src/tools/handlers/bounties.ts
|
|
3290
|
+
var MOCK_HIRING_STATUSES = /* @__PURE__ */ new Set([
|
|
3291
|
+
"open",
|
|
3292
|
+
"pending_funding",
|
|
3293
|
+
"partially_filled"
|
|
3294
|
+
]);
|
|
3295
|
+
var mockHiringSpotsRemaining = (bounty) => MOCK_HIRING_STATUSES.has(bounty.status) ? Math.max(0, (bounty.spotsAvailable || 1) - (bounty.spotsFilled || 0)) : 0;
|
|
3209
3296
|
var handleCreateBounty = (args) => Effect9.gen(function* () {
|
|
3210
3297
|
const params = yield* decode(CreateBountyRequest)(args);
|
|
3211
3298
|
const identity2 = yield* Identity;
|
|
@@ -3243,6 +3330,7 @@ var handleCreateBounty = (args) => Effect9.gen(function* () {
|
|
|
3243
3330
|
// Default-on unless explicitly disabled; aiManaged bounties never
|
|
3244
3331
|
// store the flag (the managed engine owns applicant review).
|
|
3245
3332
|
...params.aiManaged ? {} : { autoAccept: params.autoAccept !== false },
|
|
3333
|
+
...params.autoAcceptMinMicScore !== void 0 && !params.aiManaged ? { autoAcceptMinMicScore: params.autoAcceptMinMicScore } : {},
|
|
3246
3334
|
requirements: params.requirements || [],
|
|
3247
3335
|
skillsNeeded: params.skillsNeeded || [],
|
|
3248
3336
|
identityRequired: params.identityRequired || false,
|
|
@@ -3295,6 +3383,7 @@ var handleCreateBounty = (args) => Effect9.gen(function* () {
|
|
|
3295
3383
|
currency: params.currency || "USD",
|
|
3296
3384
|
...params.aiManaged !== void 0 ? { aiManaged: params.aiManaged } : {},
|
|
3297
3385
|
...params.aiManaged ? {} : { autoAccept: params.autoAccept !== false },
|
|
3386
|
+
...params.autoAcceptMinMicScore !== void 0 && !params.aiManaged ? { autoAcceptMinMicScore: params.autoAcceptMinMicScore } : {},
|
|
3298
3387
|
status: "open",
|
|
3299
3388
|
applicationCount: 0,
|
|
3300
3389
|
viewCount: 0,
|
|
@@ -3391,7 +3480,7 @@ var handleListBounties = (args) => Effect9.gen(function* () {
|
|
|
3391
3480
|
}
|
|
3392
3481
|
const bountiesWithComputed = bounties2.map((b) => ({
|
|
3393
3482
|
...b,
|
|
3394
|
-
spotsRemaining: (b
|
|
3483
|
+
spotsRemaining: mockHiringSpotsRemaining(b)
|
|
3395
3484
|
}));
|
|
3396
3485
|
return ok({
|
|
3397
3486
|
success: true,
|
|
@@ -3432,7 +3521,7 @@ var getBountyTool = toMcpTool(
|
|
|
3432
3521
|
success: true,
|
|
3433
3522
|
bounty: {
|
|
3434
3523
|
...bounty,
|
|
3435
|
-
spotsRemaining: (bounty
|
|
3524
|
+
spotsRemaining: mockHiringSpotsRemaining(bounty)
|
|
3436
3525
|
},
|
|
3437
3526
|
mode: "mock"
|
|
3438
3527
|
});
|
|
@@ -3794,6 +3883,7 @@ var payEnterpriseBountyTool = toMcpTool(
|
|
|
3794
3883
|
);
|
|
3795
3884
|
return yield* api.post(`/bounties/${params.bountyId}/enterprise-pay`, {
|
|
3796
3885
|
...params.conversationId !== void 0 ? { conversationId: params.conversationId } : {},
|
|
3886
|
+
...params.acknowledgeRelease !== void 0 ? { acknowledgeRelease: params.acknowledgeRelease } : {},
|
|
3797
3887
|
...verification
|
|
3798
3888
|
});
|
|
3799
3889
|
})
|
|
@@ -3801,7 +3891,7 @@ var payEnterpriseBountyTool = toMcpTool(
|
|
|
3801
3891
|
var bountyTools = [
|
|
3802
3892
|
{
|
|
3803
3893
|
name: "create_bounty",
|
|
3804
|
-
description: "Create a one-shot task bounty for humans to apply to. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. **IMPORTANT: Always call with dryRun=true first** to preview the bounty. Dry-run `preview.fundingTotal` is the total funding requirement before any existing wallet balance is applied. Show that estimate to the operator before posting. Show the preview to the user and ask 'Here's your bounty \u2014 would you like to edit anything before posting?' Only call again with dryRun=false (or omitted) after the user confirms. **You MUST help the user define completionCriteria and evidenceTypes** \u2014 ask what 'done' looks like and what proof they need (text/data, photos, video, or links). For specialized standard-application tasks, configure applicationDetails so applicants provide application details before review. Blank rows are ignored; application upload fields are one file each and capped at 3 total; acknowledgment checkboxes are capped at 5 total and can be optional or required; and one required live_video field may contain a script applicants must record with the in-browser camera. For appearance-based bounties where the worker appears on camera or their presence is part of the deliverable (sign holding, UGC, sponsored posts, on-camera video, promo/GTM appearances), always include one required live_video field with a label asking the applicant to explain in two sentences why they are a good fit \u2014 this gates applications on a live self-recorded video so the poster sees each applicant before accepting. Do not ask for passwords, OTP/2FA codes, API keys, private keys, seed phrases, government IDs, bank/card details, exact home addresses, dates of birth, or other sensitive personal information. For direct-review collection bounties, use submissionMode='photo_upload', 'video_upload', or 'document_upload' with matching submission settings instead of applicationDetails. lifecycleMessages can define auto-message templates for acceptance, rejection, and submission review transitions. You can require applicants to provide specific links (LinkedIn, GitHub, resume, etc.) using the requiredLinks parameter. Requires RENTAHUMAN_API_KEY from the account owner. Standard accounts use available wallet balance first; if the wallet cannot cover the bounty, the response includes deposit_url and checkout_total (the hosted charge after wallet balance is applied) and the account owner must complete checkout before the bounty is visible. Supports multi-person bounties by setting spotsAvailable > 1. Set completionWindowHours (1-720) to give confirmed workers a completion deadline: overdue seats auto-release and reopen for other applicants; workers may request extensions you answer with decide_extension_request. Ongoing data-collection programs are managed separately and cannot be created through this tool. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating). Applicants are auto-reviewed by default (autoAccept, default true): deterministic checks always run and an AI review runs only for free-text screening answers \u2014 qualified applicants are accepted, clear mismatches rejected with a reason, uncertain cases left pending for manual review; pass autoAccept: false to review and accept every application yourself. BETA: pass aiManaged: true to have the platform fully manage the bounty \u2014 automated recruiting, vetting, submission review, payment release, and a final report. Fixed price USD only, 1-50 spots. Poll the bounty's managed run or subscribe to run.report_ready for the finished work.",
|
|
3894
|
+
description: "Create a one-shot task bounty for humans to apply to. To target an entire country, pass location with an ISO country code and isRemoteAllowed=false while omitting city and state. **IMPORTANT: Always call with dryRun=true first** to preview the bounty. Dry-run `preview.fundingTotal` is the total funding requirement before any existing wallet balance is applied. Show that estimate to the operator before posting. Show the preview to the user and ask 'Here's your bounty \u2014 would you like to edit anything before posting?' Only call again with dryRun=false (or omitted) after the user confirms. **You MUST help the user define completionCriteria and evidenceTypes** \u2014 ask what 'done' looks like and what proof they need (text/data, photos, video, or links). For specialized standard-application tasks, configure applicationDetails so applicants provide application details before review. Blank rows are ignored; application upload fields are one file each and capped at 3 total; acknowledgment checkboxes are capped at 5 total and can be optional or required; and one required live_video field may contain a script applicants must record with the in-browser camera. For appearance-based bounties where the worker appears on camera or their presence is part of the deliverable (sign holding, UGC, sponsored posts, on-camera video, promo/GTM appearances), always include one required live_video field with a label asking the applicant to explain in two sentences why they are a good fit \u2014 this gates applications on a live self-recorded video so the poster sees each applicant before accepting. Do not ask for passwords, OTP/2FA codes, API keys, private keys, seed phrases, government IDs, bank/card details, exact home addresses, dates of birth, or other sensitive personal information. For direct-review collection bounties, use submissionMode='photo_upload', 'video_upload', or 'document_upload' with matching submission settings instead of applicationDetails. lifecycleMessages can define auto-message templates for acceptance, rejection, and submission review transitions. You can require applicants to provide specific links (LinkedIn, GitHub, resume, etc.) using the requiredLinks parameter. Requires RENTAHUMAN_API_KEY from the account owner. Standard accounts use available wallet balance first; if the wallet cannot cover the bounty, the response includes deposit_url and checkout_total (the hosted charge after wallet balance is applied) and the account owner must complete checkout before the bounty is visible. Supports multi-person bounties by setting spotsAvailable > 1. Set completionWindowHours (1-720) to give confirmed workers a completion deadline: overdue seats auto-release and reopen for other applicants; workers may request extensions you answer with decide_extension_request. Ongoing data-collection programs are managed separately and cannot be created through this tool. Pass optional `idempotencyKey` to make this safe to retry (a replayed key returns the original result instead of duplicating). Applicants are auto-reviewed by default (autoAccept, default true): deterministic checks always run and an AI review runs only for free-text screening answers \u2014 qualified applicants are accepted, clear mismatches rejected with a reason, uncertain cases left pending for manual review; pass autoAccept: false to review and accept every application yourself; on micCheckRequired bounties, tune the mic-quality floor with autoAcceptMinMicScore (1-5, default 3.0). BETA: pass aiManaged: true to have the platform fully manage the bounty \u2014 automated recruiting, vetting, submission review, payment release, and a final report. Fixed price USD only, 1-50 spots. Poll the bounty's managed run or subscribe to run.report_ready for the finished work.",
|
|
3805
3895
|
inputSchema: toInputSchema(CreateBountyRequest),
|
|
3806
3896
|
handler: handleCreateBounty
|
|
3807
3897
|
},
|
|
@@ -4493,6 +4583,9 @@ var ConfirmDeliveryRequest = Schema12.Struct({
|
|
|
4493
4583
|
var ReleasePaymentRequest = Schema12.Struct({
|
|
4494
4584
|
escrowId: Schema12.String.pipe(Schema12.minLength(1)),
|
|
4495
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
|
+
}),
|
|
4496
4589
|
idempotencyKey: Schema12.optional(Schema12.String)
|
|
4497
4590
|
});
|
|
4498
4591
|
var CancelEscrowRequest = Schema12.Struct({
|
|
@@ -4621,7 +4714,7 @@ var escrowTools = [
|
|
|
4621
4714
|
},
|
|
4622
4715
|
{
|
|
4623
4716
|
name: "confirm_delivery",
|
|
4624
|
-
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.",
|
|
4625
4718
|
inputSchema: toInputSchema(ConfirmDeliveryRequest),
|
|
4626
4719
|
handler: (args) => Effect12.gen(function* () {
|
|
4627
4720
|
yield* requireApiKey;
|
|
@@ -4637,7 +4730,7 @@ var escrowTools = [
|
|
|
4637
4730
|
},
|
|
4638
4731
|
{
|
|
4639
4732
|
name: "release_payment",
|
|
4640
|
-
description: "Release
|
|
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.",
|
|
4641
4734
|
inputSchema: toInputSchema(ReleasePaymentRequest),
|
|
4642
4735
|
annotations: {
|
|
4643
4736
|
title: "Release payment",
|
|
@@ -4650,7 +4743,10 @@ var escrowTools = [
|
|
|
4650
4743
|
const config = yield* McpConfig;
|
|
4651
4744
|
const api = yield* ApiClient;
|
|
4652
4745
|
const params = yield* decode(ReleasePaymentRequest)(args);
|
|
4653
|
-
const body =
|
|
4746
|
+
const body = {
|
|
4747
|
+
...params.applicationId ? { applicationId: params.applicationId } : {},
|
|
4748
|
+
...params.acknowledgeRelease !== void 0 ? { acknowledgeRelease: params.acknowledgeRelease } : {}
|
|
4749
|
+
};
|
|
4654
4750
|
const result = yield* api.post(
|
|
4655
4751
|
config.escrowReleasePath(params.escrowId),
|
|
4656
4752
|
body
|
|
@@ -5247,6 +5343,12 @@ var HumanPublicResponse = Schema17.Struct({
|
|
|
5247
5343
|
qualificationBadgeSummaries: Schema17.optional(
|
|
5248
5344
|
Schema17.Array(QualificationBadgeSummaryResponse)
|
|
5249
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),
|
|
5250
5352
|
profileUrl: Schema17.optional(Schema17.String),
|
|
5251
5353
|
activityFreshness: Schema17.optional(ActivityFreshnessResponse),
|
|
5252
5354
|
identitySignals: Schema17.optional(IdentitySignals),
|
|
@@ -6782,7 +6884,7 @@ var getSubmissionSpec = {
|
|
|
6782
6884
|
};
|
|
6783
6885
|
var reviewSubmissionSpec = {
|
|
6784
6886
|
name: "review_submission",
|
|
6785
|
-
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.",
|
|
6786
6888
|
input: ReviewSubmissionRequest,
|
|
6787
6889
|
annotations: {
|
|
6788
6890
|
title: "Record evidence decision",
|
package/dist/types/index.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ declare const CreateBountyRequest: Schema.Struct<{
|
|
|
73
73
|
completionWindowHours: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>>;
|
|
74
74
|
keepApplicantsOnFill: Schema.optional<typeof Schema.Boolean>;
|
|
75
75
|
autoAccept: Schema.optional<typeof Schema.Boolean>;
|
|
76
|
+
autoAcceptMinMicScore: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
76
77
|
identityRequired: Schema.optional<typeof Schema.Boolean>;
|
|
77
78
|
micCheckRequired: Schema.optional<typeof Schema.Boolean>;
|
|
78
79
|
aiManaged: Schema.optional<Schema.Literal<[true]>>;
|
|
@@ -149,8 +150,10 @@ declare const UpdateBountyRequest: Schema.Struct<{
|
|
|
149
150
|
autoExpireGhosts: Schema.optional<typeof Schema.Boolean>;
|
|
150
151
|
completionWindowHours: Schema.optional<Schema.NullOr<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>>>;
|
|
151
152
|
spotsAvailable: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.Number>>>>;
|
|
153
|
+
walletImpactAcknowledged: Schema.optional<typeof Schema.Boolean>;
|
|
152
154
|
keepApplicantsOnFill: Schema.optional<typeof Schema.Boolean>;
|
|
153
155
|
autoAccept: Schema.optional<typeof Schema.Boolean>;
|
|
156
|
+
autoAcceptMinMicScore: Schema.optional<Schema.NullOr<Schema.filter<Schema.filter<typeof Schema.Number>>>>;
|
|
154
157
|
completionCriteria: Schema.optional<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
155
158
|
evidenceTypes: Schema.optional<Schema.filter<Schema.Array$<Schema.Literal<["text", "photo", "video", "link"]>>>>;
|
|
156
159
|
evidenceCriteria: Schema.optional<Schema.filter<typeof Schema.String>>;
|
|
@@ -300,6 +303,7 @@ declare const ConfirmDeliveryRequest: Schema.Struct<{
|
|
|
300
303
|
declare const ReleasePaymentRequest: Schema.Struct<{
|
|
301
304
|
escrowId: Schema.filter<typeof Schema.String>;
|
|
302
305
|
applicationId: Schema.optional<typeof Schema.String>;
|
|
306
|
+
acknowledgeRelease: Schema.optional<typeof Schema.Boolean>;
|
|
303
307
|
idempotencyKey: Schema.optional<typeof Schema.String>;
|
|
304
308
|
}>;
|
|
305
309
|
declare const CancelEscrowRequest: Schema.Struct<{
|