From bankr-x402-sdk-dev
Manages async jobs in Bankr x402 SDK: submit prompts, poll status, check completion, cancel jobs, batch process, handle retries and timeouts.
npx claudepluginhub bankrbot/claude-plugins --plugin bankr-x402-sdk-devThis skill uses the workspace's default tool permissions.
Manage asynchronous jobs: submit, poll, check status, cancel, and batch operations.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Manage asynchronous jobs: submit, poll, check status, cancel, and batch operations.
| Method | Description | Use Case |
|---|---|---|
promptAndWait() | Submit and wait for result | Recommended for most cases |
prompt() | Submit, return immediately | Background processing |
pollJob() | Poll until job completes | Manual job tracking |
getJobStatus() | Check status once | Custom polling logic |
cancelJob() | Cancel pending/processing job | Stop unwanted jobs |
pending → processing → completed
↘ failed
↘ cancelled
| State | Cancellable | Description |
|---|---|---|
| pending | Yes | Awaiting processing |
| processing | Yes | Actively processing |
| completed | No | Finished successfully |
| failed | No | Encountered error |
| cancelled | No | Cancelled by user |
const result = await client.promptAndWait({
prompt: "Swap 0.1 ETH to USDC",
timeout: 60000,
});
if (result.status === "completed") {
console.log(result.response);
}
// Submit without waiting
const { jobId } = await client.prompt({ prompt: "What are trending tokens?" });
// Check status later
const status = await client.getJobStatus(jobId);
// Or poll until complete
const result = await client.pollJob({ jobId, timeout: 60000 });
const { jobId } = await client.prompt({ prompt: "..." });
await client.cancelJob(jobId);
const prompts = ["Price of ETH", "Price of BTC", "Price of SOL"];
// Submit all in parallel
const jobs = await Promise.all(
prompts.map(prompt => client.prompt({ prompt }))
);
// Wait for all to complete
const results = await Promise.all(
jobs.map(job => client.pollJob({ jobId: job.jobId }))
);
| Operation | Typical Time | Recommended Timeout |
|---|---|---|
| Price queries | 2-5s | 15s |
| Balance checks | 2-5s | 15s |
| Token swaps | 5-15s | 60s |
| Cross-chain bridges | 10-30s | 120s |
| NFT operations | 5-15s | 60s |