submit_and_pay_job
Submit a job to an elisym provider, pay the listed price upfront, and wait for the result. Handles free and paid providers, validates payment recipients, and returns a still-processing notice if the result is delayed.
Instructions
Full customer flow: submit job -> auto-pay -> wait for result. Validates that the payment recipient matches the provider card. If payment succeeded but no result arrives within the wait window, this returns a non-error "still processing" notice with the event ID (NOT a failure) - re-poll get_job_result later (results persist on the relays; for long jobs, poll periodically, e.g. from a subagent). Handles both free and paid providers automatically. If max_price_lamports is not set and the capability is paid, this returns the advertised price for confirmation WITHOUT submitting a job - re-call with max_price_lamports set to approve payments up to that limit (this is a confirmation, not an error). COST: input is sent inline in the tool call, so a large input pays output tokens on the calling LLM. For files or git diffs, prefer submit_and_pay_job_from_file or submit_diff_review respectively. This pays the listed price up front; when the capability advertises delegation, submit_delegated_job bills a metered card for actual usage instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | ||
| capability | No | general | |
| session_id | No | Conversation control. Omit for automatic session management (providers advertising context support get a conversation auto-started on first contact; an ongoing conversation triggers a continue/new/one-off question before anything is published). Pass "new" to force a fresh conversation, "none" to force a stateless one-off, or a session_id from a previous result to continue that conversation. The provider answers with the conversation context of prior exchanges under the same id. | |
| kind_offset | No | ||
| timeout_secs | No | ||
| provider_npub | Yes | ||
| max_price_lamports | No |