Call this server's tools from your browser. Nothing to install.
https://agents.writerslogic.com/mcp
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
abandoned-compound-miner
Abandoned Compound & Uncommercialized Trial Miner — Finds shelved drug and biologic candidates worth a second look. Give a disease or target (mines ClinicalTrials.gov for terminated, withdrawn and suspended trials and for completed Phase 1/2 non-industry trials with no later industry Phase 2/3/4 trial), a compound you already have in mind (drug name or ChEMBL id), a trial (NCT id), or a desired material property (literature mode, no trials). Every
A ClinicalTrials.gov trial id (e.g. "NCT01257048"). The compound it tested is reviewed as with `compound`.
A compound you already have in mind, as a drug name or ChEMBL id (e.g. "edaravone", "CHEMBL290916"). Returns whether it is an abandoned, safe-to-pursue candidate or why it was excluded (marketed, safety signal, active development). Replaces the condition search.
Dossiers to produce (default 4, max 8). Model cost is at most one fast call per candidate.
Desired material property (e.g. "high ionic conductivity solid electrolyte"). Mines the literature indexes; no trials are involved.
Include completed Phase 1/2 non-industry trials with no later industry Phase 2/3/4 trial of the same intervention. Default true.
Disease, condition or biological target (e.g. "amyotrophic lateral sclerosis", "BACE1"). Mines stopped and completed-without-follow-up clinical trials.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
claude mcp add --transport http writerslogic-agents https://agents.writerslogic.com/mcp
Tools (262)
abandoned-compound-miner
Abandoned Compound & Uncommercialized Trial Miner — Finds shelved drug and biologic candidates worth a second look. Give a disease or target (mines ClinicalTrials.gov for terminated, withdrawn and suspended trials and for completed Phase 1/2 non-industry trials with no later industry Phase 2/3/4 trial), a compound you already have in mind (drug name or ChEMBL id), a trial (NCT id), or a desired material property (literature mode, no trials). Every
Argument
Type
Description
nctId
string
A ClinicalTrials.gov trial id (e.g. "NCT01257048"). The compound it tested is reviewed as with `compound`.
compound
string
A compound you already have in mind, as a drug name or ChEMBL id (e.g. "edaravone", "CHEMBL290916"). Returns whether it is an abandoned, safe-to-pursue candidate or why it was excluded (marketed, safety signal, active development). Replaces the condition search.
maxCandidates
integer
Dossiers to produce (default 4, max 8). Model cost is at most one fast call per candidate.
materialProperty
string
Desired material property (e.g. "high ionic conductivity solid electrolyte"). Mines the literature indexes; no trials are involved.
includeCompletedNoFollowUp
boolean
Include completed Phase 1/2 non-industry trials with no later industry Phase 2/3/4 trial of the same intervention. Default true.
biologicalTargetOrCondition
string
Disease, condition or biological target (e.g. "amyotrophic lateral sclerosis", "BACE1"). Mines stopped and completed-without-follow-up clinical trials.
Input schema (JSON)
{
"type": "object",
"properties": {
"nctId": {
"type": "string",
"pattern": "^(?:NCT|nct)\\d{8}$",
"description": "A ClinicalTrials.gov trial id (e.g. \"NCT01257048\"). The compound it tested is reviewed as with `compound`."
},
"compound": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "A compound you already have in mind, as a drug name or ChEMBL id (e.g. \"edaravone\", \"CHEMBL290916\"). Returns whether it is an abandoned, safe-to-pursue candidate or why it was excluded (marketed, safety signal, active development). Replaces the condition search."
},
"maxCandidates": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Dossiers to produce (default 4, max 8). Model cost is at most one fast call per candidate."
},
"materialProperty": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Desired material property (e.g. \"high ionic conductivity solid electrolyte\"). Mines the literature indexes; no trials are involved."
},
"includeCompletedNoFollowUp": {
"type": "boolean",
"description": "Include completed Phase 1/2 non-industry trials with no later industry Phase 2/3/4 trial of the same intervention. Default true."
},
"biologicalTargetOrCondition": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Disease, condition or biological target (e.g. \"amyotrophic lateral sclerosis\", \"BACE1\"). Mines stopped and completed-without-follow-up clinical trials."
}
},
"additionalProperties": false
}
acceptance-receipt
Signed acceptance receipt: which deterministic tests a delivered output passed — Runs your deterministic acceptance tests (equals, exists, absent, type, contains, length and number ranges, one-of, sha256, a JSON Schema subset) against a sub-agent's or vendor's JSON output at JSON Pointer paths, and returns per-test results plus a hub-signed receipt over the output hash, the tests hash and the results. Use it before paying for delegated work or releasing the next step. It certi
Argument
Type
Description
label
string
Free text bound into the receipt, e.g. the task id.
tests*
array
output*
any
The delivered JSON (at most 262144 bytes as JCS).
Input schema (JSON)
{
"type": "object",
"required": [
"output",
"tests"
],
"properties": {
"label": {
"type": "string",
"maxLength": 200,
"description": "Free text bound into the receipt, e.g. the task id."
},
"tests": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"kind"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,64}$"
},
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"kind": {
"enum": [
"equals",
"not-equals",
"exists",
"absent",
"type",
"contains",
"length-between",
"number-between",
"one-of",
"sha256",
"schema"
],
"type": "string"
},
"path": {
"type": "string",
"maxLength": 500,
"description": "RFC 6901 JSON Pointer into output; empty or omitted = the whole output."
},
"value": {
"description": "equals/not-equals/contains: the JSON value; type: a JSON type name; one-of: an array; sha256: lowercase hex; schema: a hub-subset JSON Schema."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"output": {
"description": "The delivered JSON (at most 262144 bytes as JCS)."
}
},
"additionalProperties": false
}
accessibility-patcher
ADA / WCAG Lawsuit Shield & DOM Auto-Patcher — Returns a FAIL / REVIEW / PASS verdict for a page's HTML (pasted or fetched from a URL) against the WCAG failures most cited in ADA demand letters: alt text, form labels, unnamed buttons and links, lang, headings, landmarks, skip links, zoom. Each issue carries a CSS selector, source line and fix, with a top-five list, a SARIF 2.1.0 log, a litigation risk score, per-element patched HTML and an int
Age in complete years on a date and the exact dates a minimum or maximum age is reached (leap-day births) — For up to 100 people, computes age in complete years and months on a caller asOf date, the date they reach each minimum age (the birthday) and the first day they exceed each maximum age, and checks min/max age requirements; 29 February births need a declared common-year rule (28 February or 1 March) because jurisdictions differ. Built for an agent checking eligibility (18+, under 65, 21 to buy). I
Argument
Type
Description
asOf*
string
items*
array
leapDayRule
string
In common years a 29 February birthday is observed on 28 February or on 1 March depending on the legal context you apply; you must choose. Required if any birth date is 29 February.
Input schema (JSON)
{
"type": "object",
"required": [
"asOf",
"items"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"birthDate"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64
},
"birthDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxAgeYears": {
"type": "integer",
"maximum": 150,
"minimum": 0,
"description": "Inclusive: age must still be at most this many complete years."
},
"minAgeYears": {
"type": "integer",
"maximum": 150,
"minimum": 0
}
}
},
"maxItems": 100,
"minItems": 1
},
"leapDayRule": {
"enum": [
"feb-28",
"mar-1"
],
"type": "string",
"description": "In common years a 29 February birthday is observed on 28 February or on 1 March depending on the legal context you apply; you must choose. Required if any birth date is 29 February."
}
},
"additionalProperties": false
}
ai-bom-license-resolver
AI-BOM License Chain Resolver for Hugging Face Models — Walks the Hugging Face lineage of up to 10 models (base_model chain, training datasets; at most 30 nodes, 4 generations) and applies a curated, hash-pinned table of license clauses (Apache-2.0, MIT, CC-BY, CC-BY-NC, CC-BY-SA, OpenRAIL variants, Llama 2 / 3 / 3.1 / 3.2 / 3.3, Gemma, Mistral Research License) to each intended use: commercial or not, API, weights or on-prem, fine-tuning, monthly acti
Argument
Type
Description
uses*
array
Intended uses to decide, each evaluated independently.
models*
array
Hugging Face model repo ids (owner/name) used together in the system.
datasets
array
Extra Hugging Face dataset repo ids; datasets named on the model cards are followed automatically.
dataset_terms
string
advisory (default): a dataset license restriction yields UNDETERMINED because it is unsettled whether it binds trained weights. binding: treat it as binding and report CONFLICT.
Input schema (JSON)
{
"type": "object",
"required": [
"models",
"uses"
],
"properties": {
"uses": {
"type": "array",
"items": {
"type": "object",
"required": [
"commercial",
"distribution"
],
"properties": {
"id": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Label echoed in the result; defaults to use-1, use-2, ..."
},
"fine_tune": {
"type": "boolean",
"description": "You will fine-tune, merge, quantize or otherwise modify the models. Default false."
},
"commercial": {
"type": "boolean",
"description": "Any commercial activity, revenue, or business operations connected to the use."
},
"distribution": {
"enum": [
"api",
"weights",
"on_prem"
],
"type": "string",
"description": "api: hosted service, weights stay with you. weights: you redistribute model weights. on_prem: internal use only."
},
"jurisdiction": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country of the licensee's domicile or principal place of business, e.g. DE. Required for regional clauses."
},
"fields_of_use": {
"type": "array",
"items": {
"enum": [
"medical_advice",
"law_enforcement_justice",
"military",
"automated_legal_decisions"
],
"type": "string"
},
"maxItems": 4,
"description": "Sensitive fields the use touches; checked against field-of-use clauses."
},
"trains_other_models": {
"type": "boolean",
"description": "Outputs of these models will train or improve a different model that is not a derivative of the same family (distillation). Default false."
},
"monthly_active_users": {
"type": "integer",
"maximum": 10000000000000,
"minimum": 0,
"description": "Monthly active users of your products and affiliates; compared with user-count thresholds such as Llama's 700 million. Required to evaluate those clauses."
}
},
"additionalProperties": false
},
"maxItems": 6,
"minItems": 1,
"description": "Intended uses to decide, each evaluated independently."
},
"models": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10,
"minItems": 1,
"description": "Hugging Face model repo ids (owner/name) used together in the system."
},
"datasets": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10,
"description": "Extra Hugging Face dataset repo ids; datasets named on the model cards are followed automatically."
},
"dataset_terms": {
"enum": [
"advisory",
"binding"
],
"type": "string",
"description": "advisory (default): a dataset license restriction yields UNDETERMINED because it is unsettled whether it binds trained weights. binding: treat it as binding and report CONFLICT."
}
},
"additionalProperties": false
}
allergen-flag
Allergen flags in an ingredient list (EU Annex II, US FALCPA + FASTER Act) — Scans an ingredient list for terms tied to the 14 allergens of EU Regulation 1169/2011 Annex II and the 9 US major food allergens (FALCPA plus sesame under the FASTER Act), for an agent or buyer checking a label or recipe. Returns each matched span with its character offsets, the allergen, the regime that lists it, and whether it sits in a 'may contain' clause. Pass the allergens a label declares
Argument
Type
Description
declared
array
Allergen keys the label declares. Any detected, non-precautionary allergen missing from this list fails. For jurisdictions=eu, wheat and gluten-cereal cover each other (one Annex II entry).
extraTerms
array
Caller synonyms (for example a brand's own ingredient name), matched as literal words.
ingredients*
string
Ingredient list or label text, at most 20000 characters.
jurisdictions
string
Which list(s) to apply. Default both. EU adds celery, mustard, lupin, molluscs, sulphites and gluten cereals (rye, barley, oats); the US list has no such entries.
Input schema (JSON)
{
"type": "object",
"required": [
"ingredients"
],
"properties": {
"declared": {
"type": "array",
"items": {
"enum": [
"milk",
"egg",
"fish",
"crustacean",
"mollusc",
"peanut",
"tree-nut",
"wheat",
"gluten-cereal",
"soy",
"sesame",
"celery",
"mustard",
"lupin",
"sulphites"
],
"type": "string"
},
"maxItems": 15,
"description": "Allergen keys the label declares. Any detected, non-precautionary allergen missing from this list fails. For jurisdictions=eu, wheat and gluten-cereal cover each other (one Annex II entry)."
},
"extraTerms": {
"type": "array",
"items": {
"type": "object",
"required": [
"term",
"allergen"
],
"properties": {
"term": {
"type": "string",
"maxLength": 60,
"description": "Extra term, at most 6 words."
},
"allergen": {
"enum": [
"milk",
"egg",
"fish",
"crustacean",
"mollusc",
"peanut",
"tree-nut",
"wheat",
"gluten-cereal",
"soy",
"sesame",
"celery",
"mustard",
"lupin",
"sulphites"
],
"type": "string"
}
}
},
"maxItems": 100,
"description": "Caller synonyms (for example a brand's own ingredient name), matched as literal words."
},
"ingredients": {
"type": "string",
"maxLength": 20000,
"description": "Ingredient list or label text, at most 20000 characters."
},
"jurisdictions": {
"enum": [
"eu",
"us",
"both"
],
"type": "string",
"description": "Which list(s) to apply. Default both. EU adds celery, mustard, lupin, molluscs, sulphites and gluten cereals (rye, barley, oats); the US list has no such entries."
}
},
"additionalProperties": false
}
allocate
Split a money amount into parts that sum exactly to the total — Splits one signed amount into up to 500 parts by weights (or equal parts), in integer minor units of its currency, for an agent dividing a bill, a refund, a fee or a tax. Each share is rounded under the declared mode, then the leftover minor units are assigned by the declared remainder policy, so the parts always sum to the total exactly. Negative totals (refunds) are supported; zero-weight parts
Argument
Type
Description
parts
integer
Equal split into this many parts.
total*
string
Decimal string such as "-12.50" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats.
weights
array
Non-negative decimal-string weights, e.g. ["1","1","2"] or percentages. Give weights or parts.
currency
string
ISO 4217 alphabetic code, upper case.
exponent
integer
Override the ISO 4217 exponent; required for codes not on the list.
rounding
string
Rounding of each share before the residual is moved. Default half-even. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity.
remainder
string
appointment-fit
Does this appointment fit: opening hours in the venue's zone, closed days, existing bookings with buffers, minimum notice — Checks one proposed appointment (instant + duration) against a venue's local opening hours per weekday, closed dates or a named holiday calendar, up to 500 existing bookings with a buffer on each side, and a minimum notice measured from a caller-supplied asOf; every violated rule is returned as a witness with the conflicting booking or hour block. Local hours are resolved in the venue's IANA zone
Argument
Type
Description
asOf
string
Reference instant for minimum notice.
hours*
array
start*
string
weekend
array
Ignored for hours; with a named calendar only its holidays are used.
bookings
array
calendar
string
Optional named holiday calendar for closed days (unsupported outside its range). Without it only holidays/weekend you list apply; hours decide the weekdays.
holidays
array
Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry).
timeZone*
approval-invalidation
Does a change to the approved thing invalidate the approval under a materiality policy? — Compares what a human or system approved with what is about to be executed (a quote, order, plan, diff summary: any JSON) under a caller-supplied materiality policy: per-path rules exact / ignore / numeric tolerance (absolute or percent) / no-increase / no-decrease, with the longest matching path winning and a default for unlisted paths. Also covers quote revisions (approved revision number must e
Argument
Type
Description
asOf
string
RFC 3339 instant for the expiry check; no clock is read.
policy
object
current*
any
The version about to be executed (JSON).
approved*
any
The approved snapshot (JSON).
approvedAt
string
RFC 3339 instant.
currentRevision
integer
validForSeconds
integer
approvedRevision
integer
requireSameRevision
arbitrage-lawyer
Cross-Platform Arbitrage & Resolution Rules Lawyer — Finds fine-print divergences between two prediction markets (e.g. Polymarket vs Kalshi), prices basis risk after fees, and returns verdict.action ARBITRAGE_SAFE / LOW_ANNUALIZED_YIELD / BASIS_RISK_TRAP / NO_EDGE / INSUFFICIENT_EVIDENCE with edge in bps, the probability both legs lose, days to resolution, annualized return and Kelly hedge size capped by top-of-book depth. Each market can be given a
Argument
Type
Description
marketA*
object
marketB*
object
minEdgeBps
number
Default 100 (1%).
bankrollUsd
number
Used to convert the Kelly fraction to USD.
minAnnualizedReturnPct
number
Minimum annualized risk-adjusted return, in percent, for verdict.action ARBITRAGE_SAFE (default 5). Below it the action is LOW_ANNUALIZED_YIELD. Applied only when both end dates are known.
Input schema (JSON)
{
"type": "object",
"required": [
"marketA",
"marketB"
],
"properties": {
"marketA": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"feeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Trading fee on this leg in bps of notional."
},
"market": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Polymarket slug, market URL or conditionId, or a Kalshi ticker or URL. Fills platform, title, resolution rules, best-ask prices, per-leg fees and end date from the live market; any field you also pass overrides it. Without market, platform, title, resolutionRules, yesPrice and noPrice are required."
},
"endDate": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO date this market resolves; sets days to resolution and the annualized return."
},
"noPrice": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Best ask for one No share in USD (0-1)."
},
"noFeeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Fee in bps of notional for buying No here; overrides feeBps for that leg."
},
"platform": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "e.g. Polymarket, Kalshi"
},
"yesPrice": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Best ask for one Yes share in USD (0-1)."
},
"yesFeeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Fee in bps of notional for buying Yes here; overrides feeBps for that leg."
},
"description": {
"type": "string",
"maxLength": 5000
},
"resolutionRules": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Exact resolution rules and fine print."
}
},
"additionalProperties": false
},
"marketB": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"feeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Trading fee on this leg in bps of notional."
},
"market": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Polymarket slug, market URL or conditionId, or a Kalshi ticker or URL. Fills platform, title, resolution rules, best-ask prices, per-leg fees and end date from the live market; any field you also pass overrides it. Without market, platform, title, resolutionRules, yesPrice and noPrice are required."
},
"endDate": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO date this market resolves; sets days to resolution and the annualized return."
},
"noPrice": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Best ask for one No share in USD (0-1)."
},
"noFeeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Fee in bps of notional for buying No here; overrides feeBps for that leg."
},
"platform": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "e.g. Polymarket, Kalshi"
},
"yesPrice": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Best ask for one Yes share in USD (0-1)."
},
"yesFeeBps": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Fee in bps of notional for buying Yes here; overrides feeBps for that leg."
},
"description": {
"type": "string",
"maxLength": 5000
},
"resolutionRules": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Exact resolution rules and fine print."
}
},
"additionalProperties": false
},
"minEdgeBps": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Default 100 (1%)."
},
"bankrollUsd": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Used to convert the Kelly fraction to USD."
},
"minAnnualizedReturnPct": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Minimum annualized risk-adjusted return, in percent, for verdict.action ARBITRAGE_SAFE (default 5). Below it the action is LOW_ANNUALIZED_YIELD. Applied only when both end dates are known."
}
},
"additionalProperties": false
}
archive-preflight
Archive extraction preflight: zip-slip, duplicate destinations, symlink conflicts — Checks a manifest of up to 2000 archive entries (path, type, link target, sizes) before extraction, for an agent that unpacks zip, tar or OOXML files: ../ traversal (also through backslashes), absolute, drive-letter and UNC paths, entries that write through a symlink, symlink and hardlink targets that leave the root, duplicate destinations, case-only and NFC/NFD collisions, Windows reserved names,
Argument
Type
Description
limits
object
entries*
array
At most 200000 characters of paths and link targets in total.
targets
array
Filesystems to check collisions and name rules for. Default: windows, macos and linux.
destinationRoot
string
Extraction directory; counted towards total path length.
Input schema (JSON)
{
"type": "object",
"required": [
"entries"
],
"properties": {
"limits": {
"type": "object",
"properties": {
"maxEntries": {
"type": "integer",
"minimum": 0
},
"maxTotalBytes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"maxExpansionRatio": {
"type": "number",
"minimum": 0
}
}
},
"entries": {
"type": "array",
"items": {
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"maxLength": 1024,
"minLength": 1,
"description": "Entry name exactly as stored in the archive."
},
"size": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Uncompressed size in bytes."
},
"type": {
"enum": [
"file",
"dir",
"symlink",
"hardlink"
],
"type": "string",
"description": "Default: dir when the name ends with /, else file."
},
"linkTarget": {
"type": "string",
"maxLength": 1024,
"description": "Required for symlink and hardlink entries."
},
"compressedSize": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
},
"maxItems": 2000,
"minItems": 1,
"description": "At most 200000 characters of paths and link targets in total."
},
"targets": {
"type": "array",
"items": {
"enum": [
"windows",
"macos",
"linux"
],
"type": "string"
},
"maxItems": 3,
"description": "Filesystems to check collisions and name rules for. Default: windows, macos and linux."
},
"destinationRoot": {
"type": "string",
"maxLength": 1024,
"description": "Extraction directory; counted towards total path length."
}
},
"additionalProperties": false
}
artifact-invalidator
Which derived artifacts must be rechecked after these inputs changed? (bounded dependency graph) — Given a dependency graph of artifacts (each lists the artifact ids it was derived from) and the ids that changed, returns every artifact that transitively depends on a change, in an order safe to recompute (inputs before dependents), and the artifacts that are unaffected. A cycle or an unknown input id is a defect in the graph and returns fail with the cycle path. Changed ids that are unknown fail
arXiv-to-Production Code & Hyperparameter Compiler — Fetches an arXiv paper's full text (ar5iv), selects method, pseudocode, hyperparameter tables and ablations, and returns a core-algorithm summary, hyperparameters each with a source pointer and a verbatim quote verified against the text, ablation warnings with evidence sentences, and one self-contained TypeScript or Python file that is compile/syntax-checked and literal-checked against the extract
Argument
Type
Description
arxivId
string
arXiv id or URL, e.g. 1706.03762 or https://arxiv.org/abs/1706.03762.
searchQuery
string
Title or keywords; the top arXiv hit is used. Provide exactly one of arxivId or searchQuery.
targetLanguage*
string
Input schema (JSON)
{
"type": "object",
"required": [
"targetLanguage"
],
"properties": {
"arxivId": {
"type": "string",
"maxLength": 120,
"description": "arXiv id or URL, e.g. 1706.03762 or https://arxiv.org/abs/1706.03762."
},
"searchQuery": {
"type": "string",
"maxLength": 300,
"description": "Title or keywords; the top arXiv hit is used. Provide exactly one of arxivId or searchQuery."
},
"targetLanguage": {
"enum": [
"typescript",
"python"
],
"type": "string"
}
},
"additionalProperties": false
}
assumption-conflict
Find assumptions that disagree across agents (currency, timezone, version, customer id, ...) — Takes assumptions that several agents or steps hold about the same fact (key, value, who) and reports every key where the values differ, naming the conflicting pairs and whether they differ only by case or whitespace (a formatting difference) or in substance (USD vs EUR, a different id, a different version). Optionally requires each listed agent to state each required key; a missing statement is u
Check that what a message says is attached matches the attachments actually supplied — Compares a message's wording with its attachment list: 'see attached' with nothing attached, a named file (report.pdf) that is not in the list, a kind of file mentioned (the spreadsheet, a screenshot, the PDF) that no attachment matches by extension or MIME type, and a stated count ('two files') that differs from the list; attachments the text never mentions are listed. Mentions inside a negation
Forensic AI-trajectory & prose craft auditor — Deterministic prose forensics: word echoes within 50 words, repeated 3-6-grams, sentence-starter runs, hedge/filter/passive/nominalization density, burstiness, MATTR, Flesch-Kincaid, vocabulary fingerprints, AI syntactic tics (Not X. Y. pivots, verbless fragments, autonomous body parts), optional revision-history trajectory, and an editorial humanization map whose quotes are verified verbatim. Eve
Argument
Type
Description
text*
string
Plain-text prose to audit (English).
genre
string
Context for the editorial pass only.
revisionHistory
array
Earlier drafts of the same text with ISO-8601 timestamps; adds a revision trajectory as process evidence.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 300000,
"minLength": 1,
"description": "Plain-text prose to audit (English)."
},
"genre": {
"enum": [
"fiction",
"memoir",
"essay",
"journalism",
"academic",
"business",
"other"
],
"type": "string",
"description": "Context for the editorial pass only."
},
"revisionHistory": {
"type": "array",
"items": {
"type": "object",
"required": [
"timestamp",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200000
},
"timestamp": {
"type": "string",
"maxLength": 40,
"minLength": 4,
"description": "ISO-8601 date-time."
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "Earlier drafts of the same text with ISO-8601 timestamps; adds a revision trajectory as process evidence."
}
},
"additionalProperties": false
}
audit-public-record
OnRecord statutory clock & redaction auditor — Audits an agency's public-records response and leads with a decision (late, redaction problems, incomplete, pending or no violation found). Computes the statutory response deadline and days late (California CPRA, with the court-day calendar and § 7922.535 extension rules), flags redactions without an exemption citation, passages redacted in one document but readable in another, referenced attachme
Argument
Type
Description
asOfDate
string
Observation date when responseDate is omitted; defaults to today (UTC).
documents*
array
agencyName
string
Agency that received the request; fills the follow-up letter.
requestDate*
string
Date the agency received the request (YYYY-MM-DD or RFC 3339; read in the offset written).
jurisdiction*
string
OnRecord jurisdiction code. Only "CA_CPRA" (alias "US-CA") has a statute table; any other value returns clock "unknown_jurisdiction" while document checks still run.
responseDate
string
Date of the agency's determination/response. Omit if none yet.
requesterName
string
Your name, for the follow-up letter signature.
bid-coverage
Bid coverage: uncovered lines, substitutions, partial quantities and conditional bundles — Checks which required lines of a tender or RFQ are covered by the bids received (up to 200 lines, 30 bidders, 2000 offers), for an agent comparing responses. A line is covered when firm offers (exact item, no condition, no bundle) sum to the required quantity; substitute offers, offers bound to a bundle (all-or-nothing across the lines in that bundle) and offers with a stated condition are reporte
Argument
Type
Description
bids*
array
lines*
array
Input schema (JSON)
{
"type": "object",
"required": [
"lines",
"bids"
],
"properties": {
"bids": {
"type": "array",
"items": {
"type": "object",
"required": [
"bidder",
"offers"
],
"properties": {
"bidder": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"offers": {
"type": "array",
"items": {
"type": "object",
"required": [
"line",
"quantity"
],
"properties": {
"line": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"bundle": {
"type": "string",
"maxLength": 80,
"description": "Bundle id: the offer holds only if the bidder is awarded every line carrying the same bundle id."
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"condition": {
"type": "string",
"maxLength": 200,
"description": "Any stated condition (minimum spend, lead time, award of another lot)."
},
"substitute": {
"type": "boolean",
"description": "The bidder offers a different item than specified."
}
},
"additionalProperties": false
},
"maxItems": 400
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"quantity"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
}
},
"additionalProperties": false
}
booking-change-penalty
Which cancellation or change tier applies at this moment, and what does it cost? — Given a booking start, the moment of change, the booking amount and a tiered policy whose deadlines are either elapsed hours before start ('48 hours') or local calendar days at a local time ('18:00 the day before' in the venue's zone, DST-correct), returns the applicable tier, its deadline instants, the penalty in minor units under your stated rounding, and when the next tier begins; checks an ass
Argument
Type
Description
tiers*
array
startAt*
string
changeAt*
string
The moment of cancellation/change; never read from the clock.
currency*
string
rounding*
string
Applied to percentage penalties.
timeZone
string
Needed for daysBefore tiers.
noShowTier
string
Tier name charged when changeAt is after startAt; default the most severe tier.
amountMinor*
integer
business-deadline
Business-day deadline (clear days, cutoffs, DST) on a named or caller calendar — Computes the date (and optionally the instant) a business-day deadline falls on, for an agent drafting or checking a contract, notice, SLA or partner response window: '10 clear business days' (both endpoints excluded) or 'within 10 business days' (end day counted), forward or backward, with an after-cutoff roll, caller or named holiday calendar and a DST-aware deadline time. Named calendars (US fe
Argument
Type
Description
days*
integer
start*
string
Local date YYYY-MM-DD, or local date-time YYYY-MM-DDTHH:MM[:SS] (the notice/receipt moment). Never read from the clock.
cutoff
string
Local HH:MM. With a date-time start (direction after), a start strictly later than the cutoff, or on a non-business day, is deemed received on the next business day. 17:00 exactly is on time. Without cutoff there is no roll.
weekend
array
Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend.
calendar*
string
Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list).
counting*
string
clear: days strictly between start and deadline, so the deadline is business day N+1. elapsed: the deadline is business day N after start (the end day is counted).
cache-key-check
Check that a result-cache key contains every input that changes the result, and nothing volatile — Given the inputs of a cached computation (each declared as influencing the output or not, optionally volatile) and the list of inputs the cache key is built from, finds influential inputs missing from the key (stale or wrong hits), volatile inputs inside it (the cache never hits), unknown-influence inputs left out, and, for private results, a missing tenant dimension (cross-tenant leak). When valu
Argument
Type
Description
scope
string
Namespace mixed into the digest.
inputs*
array
private
boolean
The result is per-tenant or per-user.
keyParts*
array
Names of the inputs the key is built from.
tenantInput
string
Name of the input that identifies the tenant or user; required in the key when private.
Input schema (JSON)
{
"type": "object",
"required": [
"inputs",
"keyParts"
],
"properties": {
"scope": {
"type": "string",
"maxLength": 200,
"description": "Namespace mixed into the digest."
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"influencesOutput"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"value": {
"description": "Optional value, used only to compute the key digest."
},
"volatile": {
"type": "boolean",
"description": "Changes on every call (timestamp, request id, nonce)."
},
"influencesOutput": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"private": {
"type": "boolean",
"description": "The result is per-tenant or per-user."
},
"keyParts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Names of the inputs the key is built from."
},
"tenantInput": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Name of the input that identifies the tenant or user; required in the key when private."
}
},
"additionalProperties": false
}
calendar-convert
Convert dates between Gregorian and Hijri (named variants), Hebrew, Persian, Ethiopian; Western and Orthodox Easter — Converts a Gregorian date (or a Hebrew, Persian, Ethiopian or Hijri date) to the other calendars via the runtime's ICU, always naming the Hijri variant (Umm al-Qura, tabular civil, tabular astronomical-epoch, ICU astronomical) and flagging when variants disagree on the day; with mode easter, returns Western (Gregorian computus) and Orthodox (Julian computus, with its Gregorian equivalent) Easter a
Argument
Type
Description
to
array
Calendars to convert into; hijri-all returns Umm al-Qura, tabular civil and ICU astronomical (add islamic-tbla explicitly; it differs from civil by its epoch) and fails when they disagree. Default: all non-Hijri plus hijri-all.
date
string
convert: Gregorian date. Exactly one of date or from.
from
object
mode*
string
years
array
easter: Gregorian years.
feasts
boolean
easter: also list Ash Wednesday, Good Friday, Ascension, Pentecost and other moveable feasts.
Input schema (JSON)
{
"type": "object",
"required": [
"mode"
],
"properties": {
"to": {
"type": "array",
"items": {
"enum": [
"hebrew",
"persian",
"ethiopic",
"islamic-umalqura",
"islamic-civil",
"islamic-tbla",
"islamic-icu",
"hijri-all"
],
"type": "string"
},
"maxItems": 8,
"description": "Calendars to convert into; hijri-all returns Umm al-Qura, tabular civil and ICU astronomical (add islamic-tbla explicitly; it differs from civil by its epoch) and fails when they disagree. Default: all non-Hijri plus hijri-all."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "convert: Gregorian date. Exactly one of date or from."
},
"from": {
"type": "object",
"required": [
"calendar",
"year",
"month",
"day"
],
"properties": {
"day": {
"type": "integer",
"maximum": 30,
"minimum": 1
},
"year": {
"type": "integer",
"maximum": 9999,
"minimum": 1
},
"month": {
"type": "integer",
"maximum": 13,
"minimum": 1,
"description": "Numeric month. Hebrew follows ICU: Tishri=1; leap years have Adar I=6, Adar II=7, Nisan=8 ... Elul=13; common years have Adar=6, Nisan=7 ... Elul=12."
},
"calendar": {
"enum": [
"hebrew",
"persian",
"ethiopic",
"islamic-umalqura",
"islamic-civil",
"islamic-tbla",
"islamic-icu"
],
"type": "string"
}
}
},
"mode": {
"enum": [
"convert",
"easter"
],
"type": "string"
},
"years": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2999,
"minimum": 1583
},
"maxItems": 60,
"minItems": 1,
"description": "easter: Gregorian years."
},
"feasts": {
"type": "boolean",
"description": "easter: also list Ash Wednesday, Good Friday, Ascension, Pentecost and other moveable feasts."
}
},
"additionalProperties": false
}
calibration-coverage
Calibration certificate vs intended use: range, uncertainty and validity — Checks whether an instrument's calibration certificate covers an intended measurement, for an agent about to rely on a reading or accept a calibrated device. Three checks: the intended range [min, max] lies inside the calibrated ranges (touching or overlapping ranges are joined); the stated expanded uncertainty of every calibrated range used is no larger than the required uncertainty; the calibrat
Argument
Type
Description
use*
object
asOf*
string
The reference date for validity; required, never defaulted to today.
certificate*
object
Input schema (JSON)
{
"type": "object",
"required": [
"certificate",
"use",
"asOf"
],
"properties": {
"use": {
"type": "object",
"required": [
"min",
"max",
"unit"
],
"properties": {
"max": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"min": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"usedOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date of the measurement, when different from asOf."
},
"requiredUncertainty": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Largest acceptable expanded uncertainty, absolute, in `unit`."
}
},
"additionalProperties": false
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "The reference date for validity; required, never defaulted to today."
},
"certificate": {
"type": "object",
"required": [
"unit",
"ranges",
"calibratedOn"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"ranges": {
"type": "array",
"items": {
"type": "object",
"required": [
"min",
"max"
],
"properties": {
"max": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"min": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"uncertainty": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Expanded uncertainty over this range, absolute, in `unit`."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1
},
"validUntil": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date on the certificate, inclusive."
},
"calibratedOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calendar date YYYY-MM-DD."
},
"intervalMonths": {
"type": "integer",
"maximum": 120,
"minimum": 1,
"description": "Calibration interval when no due date is printed."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
calldata-decode
Decode EVM calldata, return data, revert data or event logs against an ABI — Decodes hex calldata (selector plus arguments), function return data, revert data or an event log against a caller-supplied ABI using ethers, for agents inspecting a transaction before signing or after it fails. Handles tuples, nested and dynamic arrays, bytes and strings, and the built-in Error(string) and Panic(uint256) reverts; a strict re-encode check flags trailing bytes, dirty padding and no
Argument
Type
Description
abi*
array
Fragments of the contract ABI (JSON objects or human-readable strings).
data*
string
0x-prefixed hex, whole bytes; up to 20000 bytes.
mode
string
Default call: data is selector plus arguments.
topics
array
mode event: 0x topics, topic0 first.
function
string
mode return: function name or signature.
Input schema (JSON)
{
"type": "object",
"required": [
"abi",
"data"
],
"properties": {
"abi": {
"type": "array",
"items": {
"description": "JSON ABI fragment object or human-readable signature string."
},
"maxItems": 200,
"minItems": 1,
"description": "Fragments of the contract ABI (JSON objects or human-readable strings)."
},
"data": {
"type": "string",
"maxLength": 40002,
"description": "0x-prefixed hex, whole bytes; up to 20000 bytes."
},
"mode": {
"enum": [
"call",
"return",
"error",
"event"
],
"type": "string",
"description": "Default call: data is selector plus arguments."
},
"topics": {
"type": "array",
"items": {
"type": "string",
"maxLength": 66
},
"maxItems": 4,
"description": "mode event: 0x topics, topic0 first."
},
"function": {
"type": "string",
"maxLength": 200,
"description": "mode return: function name or signature."
}
},
"additionalProperties": false
}
carton-fit
Pack items into the smallest fitting carton (bounded heuristic) — Checks whether up to 50 box-shaped items (axis-aligned, 90-degree rotations, optional this-side-up lock, optional weights) fit into any of up to 20 candidate cartons, and recommends the smallest-volume carton for which a packing was found, with coordinates for every item. For shipping and fulfilment agents sizing a parcel. The packing is a greedy extreme-point HEURISTIC with a fixed step cap, not
Argument
Type
Description
boxes*
array
At most 20. Use inner dimensions.
items*
array
At most 50 item lines and 50 units in total (sum of qty).
Input schema (JSON)
{
"type": "object",
"required": [
"items",
"boxes"
],
"properties": {
"boxes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"l",
"w",
"h"
],
"properties": {
"h": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Inner height."
},
"l": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Inner length."
},
"w": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Inner width."
},
"id": {
"type": "string",
"maxLength": 64,
"description": "Carton id (unique)."
},
"maxWeight": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Maximum content weight; requires every item to carry a weight."
}
}
},
"maxItems": 20,
"minItems": 1,
"description": "At most 20. Use inner dimensions."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"l",
"w",
"h"
],
"properties": {
"h": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Height (the vertical axis when thisSideUp)."
},
"l": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Length, at most 3 decimals."
},
"w": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Width."
},
"id": {
"type": "string",
"maxLength": 64,
"description": "Item id (unique)."
},
"qty": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Copies of this item (default 1)."
},
"weight": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Weight in one unit shared with maxWeight."
},
"thisSideUp": {
"type": "boolean",
"description": "Keep h vertical (only rotation about the vertical axis allowed)."
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "At most 50 item lines and 50 units in total (sum of qty)."
}
},
"additionalProperties": false
}
cash-rounding
Cash rounding to the smallest payable coin (CHF, CAD, SEK, AUD or a caller rule) — Rounds up to 100 final cash totals to the smallest payable increment, for an agent computing what a customer actually pays in cash or the change owed. Built-in rules exist only for currencies with an official source: CHF 0.05 (Münzverordnung SR 941.101), CAD 0.05 (Government of Canada), SEK 1 (Lag 1970:1029), AUD 0.05 (Consumer Protection WA); any other currency needs a caller increment. Rounds th
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"tender": {
"enum": [
"cash",
"electronic"
],
"type": "string",
"description": "Default cash."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Tie mode only: an exact tie between two payable amounts under a caller increment or a built-in rule that states no tie rule. Any other amount rounds to the nearest payable amount, and a tie rule the cited source states (SEK) wins. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"increment": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Caller rule: smallest payable amount in major units, e.g. \"0.05\". Overrides the built-in rule."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
causalReferee
Causal Claim Referee — Referees a causal claim against an observational table (JSON rows, CSV text, or a published contingency table with counts) and leads with a verdict, confidence, whether the claim holds, the crude and adjusted effects with bootstrap intervals, and a concrete next step. Underneath: crude and stratified effects, Mantel-Haenszel pooling, Simpson's-paradox detection, d-separation and backdoor/front-doo
Argument
Type
Description
csv
string
Alternative to data: CSV text with a header line (comma, semicolon or tab separated; quoted fields allowed; at most 20000 data rows). Numeric cells become numbers.
dag
object
Your causal DAG (formal input: no LLM is called to build the graph or, by default, the report). Omit to have one proposed by two independent model samples, which is then an assumption.
bins
integer
Quantile bins for numeric covariates, default 4.
data
array
Observational table as an array of row objects (at most 20000 rows). Cells are string, number, boolean or null; rows missing a used variable are dropped. Provide this or csv.
seed
integer
Seed for bootstrap and Monte Carlo; default derived from the input hash.
alpha
number
Significance level for the permutation test and the (1-alpha) bootstrap interval, default 0.05.
claim*
chargeback-fighter
E-Commerce Chargeback Representment Builder — Tells a merchant whether to fight or accept a card dispute: scores win probability against the network rubric for the reason code (Visa, Mastercard, Amex, Discover), runs deterministic Visa CE3.0 eligibility and invalid-dispute checks, computes expected recovery net of the contest fee and days to the deadline, and returns a processor-ready submission (summary under 4,000 characters, evidence field
Argument
Type
Description
network*
string
evidence*
object
reasonCode*
string
e.g. 10.4, 13.1, 13.3 (Visa); 4837, 4853, 4855 (Mastercard).
disputeDate
string
orderDetails*
object
disputeFeeUsd
number
Fee your processor charges to contest the dispute and does not return on a loss; used to net the expected value.
responseDeadline
string
Deadline shown in your processor's dispute dashboard (YYYY-MM-DD); days remaining are computed from it.
Input schema (JSON)
chat-deep
Chat completion, deep tier (12k in, 2k out) — OpenAI-style chat completion served by the hub's provider router (strongest available model, up to 12000 input tokens and 2048 output tokens per call), with a signed receipt that binds the provider, model, token usage and the hashes of your messages and the reply. Supports optional strict json_schema output returned both parsed and as a string. Does not stream, call tools or functions, accept imag
Argument
Type
Description
model
string
Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model.
top_p
number
Accepted and ignored.
messages*
array
Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions.
max_tokens
integer
Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400.
temperature
number
Accepted and ignored.
response_format
object
Either {"type":"text"} (default) or {"type":"json_schema","json_schema":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.
Input schema (JSON)
chat-fast
Chat completion, fast tier (8k in, 1k out) — OpenAI-style chat completion served by the hub's provider router (small, fast model, up to 8000 input tokens and 1024 output tokens per call), with a signed receipt that binds the provider, model, token usage and the hashes of your messages and the reply. Supports optional strict json_schema output returned both parsed and as a string. Does not stream, call tools or functions, accept images, or us
Argument
Type
Description
model
string
Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model.
top_p
number
Accepted and ignored.
messages*
array
Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions.
max_tokens
integer
Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400.
temperature
number
Accepted and ignored.
response_format
object
Either {"type":"text"} (default) or {"type":"json_schema","json_schema":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.
Input schema (JSON)
chat-standard
Chat completion, standard tier (12k in, 2k out) — OpenAI-style chat completion served by the hub's provider router (mid-size general model, up to 12000 input tokens and 2048 output tokens per call), with a signed receipt that binds the provider, model, token usage and the hashes of your messages and the reply. Supports optional strict json_schema output returned both parsed and as a string. Does not stream, call tools or functions, accept images,
Argument
Type
Description
model
string
Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model.
top_p
number
Accepted and ignored.
messages*
array
Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions.
max_tokens
integer
Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400.
temperature
number
Accepted and ignored.
response_format
object
Either {"type":"text"} (default) or {"type":"json_schema","json_schema":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.
Input schema (JSON)
checksum
Identifier check digits: IBAN, ISBN, GTIN, VIN, ISIN, LEI and more, in a batch — Validates the format and check digit of up to 100 identifiers per call, for an agent about to put an IBAN, ISBN, GTIN/EAN/UPC, container number, VIN, ISIN, CUSIP, SEDOL, LEI, IMO number, BIC or Luhn number into a payment, order or record. Each item is {kind, value}; with kind omitted the engine proposes candidate kinds and answers unknown if two kinds both validate. Reports the normalized form (lo
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"kind": {
"enum": [
"iban",
"iso6346",
"gtin",
"isbn10",
"isbn13",
"issn",
"vin",
"isin",
"cusip",
"sedol",
"lei",
"imo",
"bic",
"luhn"
],
"type": "string",
"description": "iban, iso6346 (container), gtin (8/12/13/14), isbn10, isbn13, issn, vin, isin, cusip, sedol, lei, imo, bic (ISO 9362 format only), luhn. Omit to auto-detect (luhn is never auto-detected)."
},
"value": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"strict": {
"type": "boolean",
"description": "VIN only: report a check-digit mismatch as fail even outside US/Canada/Mexico, where position 9 is not mandatory."
}
}
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
chess-move
Chess move legality, SAN/UCI conversion and next FEN — Checks whether a move (or a sequence of moves) is legal from a FEN position under the FIDE Laws of Chess, for agents that play, annotate or verify chess games. Accepts UCI or SAN, returns the normalized move, the new FEN, check / checkmate / stalemate / insufficient-material flags and, if asked, every legal move; an illegal move names the reason (castling_through_check, ep_exposes_king, moves_into
Argument
Type
Description
items*
array
1 to 50 positions, at most 400 moves in total.
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"fen"
],
"properties": {
"fen": {
"type": "string",
"maxLength": 100,
"description": "Position as a 6-field FEN, or \"startpos\"."
},
"list": {
"type": "boolean",
"description": "Also return every legal move (UCI and SAN) in the final position. At most 20 items per call."
},
"move": {
"type": "string",
"maxLength": 16,
"description": "One move to check from the position, UCI (e2e4, e7e8q, e1g1) or SAN (Nf3, exd5, e8=Q, O-O)."
},
"moves": {
"type": "array",
"items": {
"type": "string",
"maxLength": 16,
"description": "UCI or SAN move."
},
"maxItems": 200,
"description": "Moves played one after another from the position; stops at the first that is not legal. Use either move or moves."
},
"expectFen": {
"type": "string",
"maxLength": 100,
"description": "Optional claim: the FEN you expect after the move(s). Compared on placement, side, castling and capturable en passant (4 or 6 fields)."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "1 to 50 positions, at most 400 moves in total."
}
},
"additionalProperties": false
}
chord-check
Chord check: identify, spell, key membership, transpose — Names a chord from its notes, spells a chord symbol into notes, tests whether a chord is diatonic to a key, or transposes a chord symbol, using pitch-class arithmetic over a fixed table of 21 chord qualities, for agents handling lead sheets and music metadata. Rule-based and labelled: when several readings are equally valid (C E G A is C6 or Am7/C) or no quality in the table matches, it returns un
Accidentals for a natural root when transposing. Default sharps; a root written with # or b keeps its kind.
operation*
string
semitones
integer
For transpose: semitones up (negative down).
expectChord
string
Optional claimed chord symbol to verify (identify, transpose).
expectNotes
array
Optional claimed notes in order, to verify (spell).
chunk-boundaries
Split text into chunks under a hard token cap without cutting a table, sentence or code fence — Plans chunk boundaries for text an agent must feed to a model in pieces: every chunk is at most maxTokens in the named tokenizer (o200k_base or cl100k_base, verified by counting each finished chunk), boundaries fall only between sentences, blocks, whole Markdown or HTML tables and whole code fences, headings stay with the text that follows, and the chunks tile the input exactly (concatenating the
Argument
Type
Description
text*
string
Text to chunk (Markdown, plain text or HTML tables).
maxTokens*
integer
Hard cap per chunk.
tokenizer*
string
o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted.
includeText
boolean
Also return each chunk's text. Default false (slice by span).
Input schema (JSON)
{
"type": "object",
"required": [
"text",
"maxTokens",
"tokenizer"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Text to chunk (Markdown, plain text or HTML tables)."
},
"maxTokens": {
"type": "integer",
"maximum": 1000000,
"minimum": 32,
"description": "Hard cap per chunk."
},
"tokenizer": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted."
},
"includeText": {
"type": "boolean",
"description": "Also return each chunk's text. Default false (slice by span)."
}
},
"additionalProperties": false
}
cidr-math
CIDR math: IPv4 and IPv6 overlap, adjacency, merge, subtract, membership — Computes exact CIDR relations for agents planning networks, firewall rules or allow-lists: for up to 200 IPv4/IPv6 blocks it reports which pairs are equal, nested, partially overlapping or merely adjacent, the minimal merged CIDR list, a subtraction (blocks minus exclusions), address membership with the most specific match, or each block's first/last address, count and host-bits-set errors. It doe
Argument
Type
Description
op*
string
inspect: normalize each range and flag host bits set. relations: pairwise equal/contains/overlap/adjacent/disjoint (pass only when no two ranges intersect). merge: minimal CIDR cover of the union. subtract: ranges minus exclude. contains: which ranges contain each address (pass only when every address is covered).
ranges*
array
CIDR (10.0.0.0/8, 2001:db8::/32), a bare address (a /32 or /128), or an inclusive range 10.0.0.1-10.0.0.9.
exclude
array
Only for op=subtract.
addresses
array
Only for op=contains.
normalizeMapped
boolean
Treat ::ffff:a.b.c.d (and prefixes of 96 bits or longer inside ::ffff:0:0/96) as the IPv4 block a.b.c.d. Default false.
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"ranges"
],
"properties": {
"op": {
"enum": [
"inspect",
"relations",
"merge",
"subtract",
"contains"
],
"type": "string",
"description": "inspect: normalize each range and flag host bits set. relations: pairwise equal/contains/overlap/adjacent/disjoint (pass only when no two ranges intersect). merge: minimal CIDR cover of the union. subtract: ranges minus exclude. contains: which ranges contain each address (pass only when every address is covered)."
},
"ranges": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"minItems": 1,
"description": "CIDR (10.0.0.0/8, 2001:db8::/32), a bare address (a /32 or /128), or an inclusive range 10.0.0.1-10.0.0.9."
},
"exclude": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"description": "Only for op=subtract."
},
"addresses": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 500,
"description": "Only for op=contains."
},
"normalizeMapped": {
"type": "boolean",
"description": "Treat ::ffff:a.b.c.d (and prefixes of 96 bits or longer inside ::ffff:0:0/96) as the IPv4 block a.b.c.d. Default false."
}
},
"additionalProperties": false
}
citation-audit
Citation Audit — Bibliography in, evidence audit out: reference-verifier checks every reference (fabricated, mis-cited, retracted, corrected); the top DOI-bearing references (corrections first, then the most cited in the manuscript) get a replication-auditor pass on the sentence that cites them; when a target is contested, paper-contradictions compares it with the studies against it. The contradiction check is opt
Argument
Type
Description
topK
integer
References to audit for replication (default 2).
claim
string
The claim the bibliography supports; used for the replication and contradiction checks instead of the citing sentence.
latex
string
LaTeX source with a thebibliography environment (\bibitem) or embedded filecontents .bib; \cite commands supply citation contexts and are checked against the entries.
bibtex
string
BibTeX/BibLaTeX text (the contents of a .bib file).
pdfUrl
string
Public PDF URL. Text extraction is best-effort (Word and Google Docs exports work best).
arxivId
string
arXiv id or URL; references are read from the ar5iv HTML (.ltx_bibitem), falling back to the PDF.
manuscript
string
Optional manuscript text (LaTeX or plain) that supplies citation contexts: \cite keys, [n] numbers or Author (year) citations.
citation-span
Locate quoted text in a source with exact offsets, or classify it as normalized, elided, paraphrased or absent — Finds each quote an agent attributes to a source text and returns where it sits: exact offsets in UTF-16, code points, UTF-8 bytes and graphemes, so the span slices back to the matched text. Tries an exact match, then a match tolerant of whitespace, curly vs straight quotes, dash types, ellipses, invisible characters and Unicode forms (NFC/NFD, ligatures), naming which normalizations were needed,
Argument
Type
Description
quotes*
array
Up to 50 quotes, 40000 characters in total.
source*
string
Text the quotes are claimed to come from.
tolerate
array
Normalizations that still count as a match. Default: all six.
exactOnly
boolean
Count only byte-identical matches as pass; normalized matches become fail. Default false.
minLength
integer
Quotes shorter than this many characters (after trimming quote marks) are too-short and give unknown. Default 8.
ignoreCase
boolean
Also tolerate case differences (reported as a normalization). Default false.
Input schema (JSON)
{
"type": "object",
"required": [
"source",
"quotes"
],
"properties": {
"quotes": {
"type": "array",
"items": {
"type": "object",
"required": [
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"description": "Echoed back."
},
"text": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The quoted text."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "Up to 50 quotes, 40000 characters in total."
},
"source": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Text the quotes are claimed to come from."
},
"tolerate": {
"type": "array",
"items": {
"enum": [
"whitespace",
"quotes",
"dashes",
"ellipsis",
"invisible",
"unicode"
],
"type": "string"
},
"maxItems": 6,
"description": "Normalizations that still count as a match. Default: all six."
},
"exactOnly": {
"type": "boolean",
"description": "Count only byte-identical matches as pass; normalized matches become fail. Default false."
},
"minLength": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Quotes shorter than this many characters (after trimming quote marks) are too-short and give unknown. Default 8."
},
"ignoreCase": {
"type": "boolean",
"description": "Also tolerate case differences (reported as a normalization). Default false."
}
},
"additionalProperties": false
}
clarification-impact
Prediction-Market Clarification Impact Pricer — Prices a prediction-market rules clarification as a trade. Given an open Polymarket market (slug, URL or conditionId; Kalshi ticker supported), reads the posted clarification (Additional context) from the UMA adapter on Polygon, or takes your clarificationText to price a pending or hypothetical one. Finds the real-world outcomes whose resolution changed, quotes each changed clause verbatim, shifts
Argument
Type
Description
market*
string
Polymarket market slug, polymarket.com URL or conditionId; or a Kalshi market ticker (rules from the public trade-api v2).
feeRate
number
Taker fee coefficient: fee = shares * feeRate * p * (1 - p). Defaults to the market's Gamma feeSchedule rate (0 when fees are disabled); Kalshi defaults to 0.07 times the series fee_multiplier from /series.
sizeUsd
number
Intended order size in USD (default 100).
position
object
priorYes
number
Override for the pre-clarification fair P(YES); default is the Polymarket CLOB price history just before the clarification, falling back to the current YES order-book mid.
minEdgeBps
number
Minimum edge after fees and slippage, in bps of cost (default 100).
minMoveBps
number
clause-tag
Rule-based clause tagging (obligation, prohibition, permission, condition, topic) — Tags each contract-style clause you supply with the modal force it expresses (obligation, prohibition, permission, recommendation) and topic cues (definition, condition, termination, payment, confidentiality, liability, governing law, notice, assignment), with the matched cue and its offset. For an agent that must triage many clauses before a human or model reads them. Fixed cue phrases only (plus
Argument
Type
Description
expect
array
Tags a clause must carry; a missing one fails.
clauses*
array
Up to 100000 characters in total.
extraCues
array
Your own cue phrases, matched as literal word sequences.
Certificate of analysis vs specification: pass, fail or indeterminate per clause — Checks the values on a certificate of analysis or test report against specification limits clause by clause (up to 200 clauses), for an agent accepting a lot or a supplier's material. Each clause has a parameter, an optional min and max and a unit; each result has a value, an optional reported uncertainty and an optional less-than or greater-than qualifier ("<0.01"). rule simple (default): the rep
Argument
Type
Description
rule
string
clauses*
array
results*
array
conversions
array
Caller-supplied unit conversions; none are built in.
Input schema (JSON)
{
"type": "object",
"required": [
"clauses",
"results"
],
"properties": {
"rule": {
"enum": [
"simple",
"guard-banded"
],
"type": "string"
},
"clauses": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"parameter"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"max": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"min": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"parameter": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"parameter",
"value"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"value": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"parameter": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"qualifier": {
"enum": [
"<",
">"
],
"type": "string",
"description": "Censored result: the true value is below / above `value`."
},
"uncertainty": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Expanded uncertainty U (absolute, same unit as value) so the interval is value +/- U."
}
},
"additionalProperties": false
},
"maxItems": 400
},
"conversions": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"factor"
],
"properties": {
"to": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"from": {
"type": "string",
"maxLength": 24,
"minLength": 1
},
"factor": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "value in `to` = value in `from` x factor."
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "Caller-supplied unit conversions; none are built in."
}
},
"additionalProperties": false
}
company-identity
Company identity: name, domain, LEI, VAT, CIK or ticker to one verified legal entity — Resolves a company name, web domain, LEI, EU VAT number, SEC CIK or stock ticker to one legal entity using official free registries in a single call: GLEIF (legal name, other names, addresses, jurisdiction, registry id, direct and ultimate parent), the SEC ticker table (CIK, ticker), the EU VIES VAT service, and Companies House officers when the operator has configured a key. Deterministic matchin
Argument
Type
Description
cik
integer
SEC Central Index Key.
lei
string
20-character LEI; check digits are validated (ISO 17442).
vat
object
name
string
Company name, with or without legal form.
domain
string
Company web domain; only used to guess a name and to prefer matching candidates. It is never fetched.
ticker
string
Stock ticker, matched case-insensitively against the SEC table.
country
string
ISO 3166-1 alpha-2 hint; raises the score of candidates registered in that country.
max_candidates
integer
How many ranked candidates to return.
compensation-coverage
Check that every write step in a multi-step plan has an undo step, and give the rollback order — For an agent plan made of steps with declared effects (read or write), checks every write in the plan, run or not, has a compensation step that exists, is itself a write, is not its own compensation, and that the dependencies have no cycle; flags writes declared irreversible; and, given which steps have completed, returns the compensations to run in reverse completion order. Does not judge whether
Argument
Type
Description
steps*
array
completed
array
Step ids completed so far, in completion order. Only used for rollbackOrder and to say an irreversible write has already run; coverage is always checked for the whole plan.
Input schema (JSON)
{
"type": "object",
"required": [
"steps"
],
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"effect"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"effect": {
"enum": [
"read",
"write"
],
"type": "string"
},
"dependsOn": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 20
},
"compensation": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Id of the step that undoes this one."
},
"irreversible": {
"type": "boolean",
"description": "Declared impossible to undo (send email, wire transfer)."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"completed": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 100,
"description": "Step ids completed so far, in completion order. Only used for rollbackOrder and to say an irreversible write has already run; coverage is always checked for the whole plan."
}
},
"additionalProperties": false
}
competitor-battlecard
SaaS Pricing & Competitor Battlecard Spy — Reads up to 3 competitor sites (homepage and pricing page, fetched in parallel) and returns a deal battlecard in under a minute: a verdict headline with confidence, pricing tiers whose amounts are checked against the page text, a scenario cost comparison computed in code, hidden fees and limits, landmine questions, objection handling, wedge features and a talk track. If a site or model step fails
Argument
Type
Description
scenario
object
Optional deal size used to compute monthly and annual cost per verified tier: seats for per-seat prices, monthlyVolume for usage prices.
competitorUrls*
array
Competitor homepage or pricing URLs. A same-site pricing page is discovered automatically.
sentence (default) scores at sentence boundaries; ngram scores every sliding window of ngramSize words.
text*
string
The chapter or passage to score.
topN
integer
How many lowest-score spans to return (default 10).
minChars
integer
Minimum characters per candidate span (default 18).
ngramSize
integer
Words per window when mode is ngram (default 5).
reference
string
Optional reference corpus to prepend before compression. When absent, the built-in 50 KB generic-prose corpus is used unless useBuiltInReference is false.
useBuiltInReference
boolean
Pass false to score with no reference corpus (local redundancy only). Default true.
config-migration
Migrate a v1 config to a v2 schema with an explicit mapping, and list what was dropped or defaulted — Applies a declared mapping (from pointer, to pointer, optional transform such as string-to-number or a value map) to a v1 JSON config, carries over unmapped keys the v2 schema declares, fills schema defaults, validates the result against the v2 JSON Schema 2020-12 and returns the migrated config plus three exact lists: dropped (v1 values that landed nowhere, with their JSON pointers), defaulted (v
Argument
Type
Description
v1*
any
The old config (any JSON value).
mapping*
array
v2Schema*
any
The new config's schema. Full JSON Schema 2020-12 (local $ref only).
applyDefaults
boolean
Fill missing v2 properties from schema defaults (default true).
carryDeclared
boolean
Copy unmapped v1 values to the same pointer when v2 declares that property (default true).
Input schema (JSON)
{
"type": "object",
"required": [
"v1",
"v2Schema",
"mapping"
],
"properties": {
"v1": {
"description": "The old config (any JSON value)."
},
"mapping": {
"type": "array",
"items": {
"type": "object",
"required": [
"from"
],
"properties": {
"to": {
"type": "string",
"maxLength": 300,
"description": "JSON pointer in v2; omit with drop true."
},
"drop": {
"type": "boolean",
"description": "Acknowledge that this v1 value is intentionally discarded."
},
"from": {
"type": "string",
"maxLength": 300,
"description": "JSON pointer in v1."
},
"valueMap": {
"description": "Object of {stringified old value: new value} for transform value-map."
},
"transform": {
"enum": [
"none",
"string-to-number",
"number-to-string",
"string-to-boolean",
"boolean-to-string",
"to-array",
"first-of-array",
"value-map"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 100
},
"v2Schema": {
"description": "The new config's schema. Full JSON Schema 2020-12 (local $ref only)."
},
"applyDefaults": {
"type": "boolean",
"description": "Fill missing v2 properties from schema defaults (default true)."
},
"carryDeclared": {
"type": "boolean",
"description": "Copy unmapped v1 values to the same pointer when v2 declares that property (default true)."
}
},
"additionalProperties": false
}
confirmation-state
Classify a confirmation message as submitted, pending, reserved or completed from caller or default phrases — Reads a confirmation page, email or API message and decides which state it states: submitted, pending, reserved or completed, using phrase lists the caller supplies (preferred, because wording is provider-specific) plus an optional default English list. Matches are whole-word, case- and typography-insensitive, returned with offsets in UTF-16, code points, UTF-8 bytes and graphemes, and a match ins
Argument
Type
Description
text*
string
Confirmation text.
rules
array
Caller phrase lists; with these present the defaults are off unless useDefaults is true.
precedence
array
When several states match, the first one listed wins. Without it a conflict is unknown.
useDefaults
boolean
Include the default English phrases. Default true only when rules is absent.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Confirmation text."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": [
"state",
"phrases"
],
"properties": {
"state": {
"enum": [
"submitted",
"pending",
"reserved",
"completed"
],
"type": "string"
},
"phrases": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 30
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Caller phrase lists; with these present the defaults are off unless useDefaults is true."
},
"precedence": {
"type": "array",
"items": {
"enum": [
"submitted",
"pending",
"reserved",
"completed"
],
"type": "string"
},
"maxItems": 4,
"description": "When several states match, the first one listed wins. Without it a conflict is unknown."
},
"useDefaults": {
"type": "boolean",
"description": "Include the default English phrases. Default true only when rules is absent."
}
},
"additionalProperties": false
}
constraint-carryover
Check that earlier constraints (numbers, dates, codes, quoted terms, negations) survive into a later plan or summary — Takes the constraints an agent was given (budget caps, deadlines, identifiers, prohibitions) and a later artifact (plan, summary, handoff, tool arguments) and reports for each constraint whether its concrete atoms still appear: numbers with their unit or currency, ISO dates, codes, quoted terms, or caller-listed anchor strings, with offsets. For a negated constraint it also reports whether the clo
Argument
Type
Description
target*
string
The later artifact that must still honor the constraints.
constraints*
array
Up to 50; 20000 characters of constraint text in total.
Input schema (JSON)
{
"type": "object",
"required": [
"constraints",
"target"
],
"properties": {
"target": {
"type": "string",
"maxLength": 60000,
"minLength": 1,
"description": "The later artifact that must still honor the constraints."
},
"constraints": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Echoed back."
},
"text": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "The constraint in plain words."
},
"anchors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Exact strings that must appear (case-insensitive); replaces atom extraction for this constraint."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "Up to 50; 20000 characters of constraint text in total."
}
},
"additionalProperties": false
}
context-pack
Pick context blocks that fit a token budget, keeping mandatory blocks and their dependencies — Chooses which context items an agent should put into a prompt without exceeding a token budget: every mandatory item and everything it depends on is always included, then optional items by descending priority (each with the dependencies it pulls in) while they fit. Token counts come from the caller or from o200k_base / cl100k_base; any other tokenizer name returns unsupported (there is no Claude t
Argument
Type
Description
items*
array
Up to 500 items, 300000 characters of text in total.
budget*
integer
Maximum total tokens (including perItemOverhead per included item).
tokenizer
string
o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted.
perItemOverhead
integer
Tokens added per included item for separators or wrappers. Default 0.
Input schema (JSON)
{
"type": "object",
"required": [
"items",
"budget"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Unique id."
},
"text": {
"type": "string",
"maxLength": 100000,
"description": "Content to count when tokens is not given."
},
"tokens": {
"type": "integer",
"maximum": 100000000,
"minimum": 0,
"description": "Caller-supplied token count; always accepted and used in preference to counting text."
},
"priority": {
"type": "number",
"maximum": 1000000,
"minimum": -1000000,
"description": "Higher is packed first among optional items. Default 0."
},
"dependsOn": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 50,
"description": "Ids that must be included whenever this item is."
},
"mandatory": {
"type": "boolean",
"description": "Always included, with its dependencies; if they cannot fit the result is fail."
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1,
"description": "Up to 500 items, 300000 characters of text in total."
},
"budget": {
"type": "integer",
"maximum": 100000000,
"minimum": 1,
"description": "Maximum total tokens (including perItemOverhead per included item)."
},
"tokenizer": {
"type": "string",
"maxLength": 64,
"description": "o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted."
},
"perItemOverhead": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Tokens added per included item for separators or wrappers. Default 0."
}
},
"additionalProperties": false
}
contract-auditor
Smart Contract Auditor — Source-level security review of Solidity: pass/warn/fail verdict, 0-100 risk score, severity-ranked findings with exact file:line, exploit scenario and a fix, plus a SARIF 2.1.0 log. Accepts raw code, a list of files, or an on-chain address (verified source is read from Sourcify). A deterministic detector pass (reentrancy ordering, tx.origin, delegatecall, unchecked calls, weak randomness, pre-0.8
Argument
Type
Description
code
string
Raw Solidity source (one or more files concatenated). Provide exactly one of code, files or address.
files
array
Alternative to code: Solidity files with repository-relative paths. Findings report the file and line, and the SARIF log points at them.
address
string
Alternative to code: an on-chain contract address. Its verified source is read from Sourcify (no API key); unverified contracts return 404.
chainId
integer
EVM chain id for address; default 1 (Ethereum mainnet).
contractName
string
Contract to focus on when several are present.
Input schema (JSON)
{
"type": "object",
"properties": {
"code": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Raw Solidity source (one or more files concatenated). Provide exactly one of code, files or address."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"content": {
"type": "string",
"maxLength": 100000
}
},
"additionalProperties": false
},
"maxItems": 40,
"description": "Alternative to code: Solidity files with repository-relative paths. Findings report the file and line, and the SARIF log points at them."
},
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Alternative to code: an on-chain contract address. Its verified source is read from Sourcify (no API key); unverified contracts return 404."
},
"chainId": {
"type": "integer",
"maximum": 2147483647,
"minimum": 1,
"description": "EVM chain id for address; default 1 (Ethereum mainnet)."
},
"contractName": {
"type": "string",
"maxLength": 200,
"description": "Contract to focus on when several are present."
}
},
"additionalProperties": false
}
contract-terminator
Dark Pattern Contract & Subscription Exit Lawyer — Paste a contract or Terms URL and get the decision first: send notice by a computed date, or the window has passed. Quotes auto-renewal, notice-window and early-termination traps verbatim, computes the renewal and last-notice dates in code, estimates the renewal cost you avoid from your fee, maps the exit to ROSCA, state automatic-renewal laws and EU/UK consumer law with links, and drafts a notice
Argument
Type
Description
termsUrl
string
Terms of Service or cancellation policy URL. Provide termsUrl or contractText.
annualFee
number
What you pay per year, USD, if billed annually. Use monthlyFee or annualFee.
monthlyFee
number
What you pay per month, USD. Used to compute the dollars at stake.
vendorName*
string
contractText
string
customerName
string
customerType
string
signupMethod
string
reasonForExit
contrast-fix
WCAG 2.2 contrast check with the minimal OKLCH lightness fix and colour-blind pair check — Checks up to 50 foreground/background hex pairs against a WCAG 2.2 contrast threshold (4.5 AA text, 3 large text and UI, 7 AAA, or your own) on the unrounded ratio, so 4.499 fails and exactly 4.5 passes, and for a failing pair returns the closest colour by OKLCH lightness (chroma and hue held, gamut-clipped, 8-bit) that meets it. Optionally simulates protanomaly, deuteranomaly and tritanomaly (Mac
Which colour to move for a failing pair (default foreground); none skips the fix.
threshold
number
Overrides level: the minimum contrast ratio.
cvdSeverity
number
Enables the colour-vision-deficiency check at this severity, 0 to 1 (1.0 is dichromacy); between the published 0.1 steps the matrices are interpolated.
cvdMinDeltaE
number
Smallest OKLab distance counted as distinguishable (default 0.05, a heuristic, not a standard).
Input schema (JSON)
{
"type": "object",
"required": [
"pairs"
],
"properties": {
"level": {
"enum": [
"aa-normal",
"aa-large",
"aaa-normal",
"aaa-large",
"non-text"
],
"type": "string",
"description": "aa-normal 4.5 (default), aa-large 3, aaa-normal 7, aaa-large 4.5, non-text 3 (WCAG 2.2 SC 1.4.3, 1.4.6, 1.4.11)."
},
"pairs": {
"type": "array",
"items": {
"type": "object",
"required": [
"foreground",
"background"
],
"properties": {
"label": {
"type": "string",
"maxLength": 80,
"description": "Caller label echoed back."
},
"background": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"maxLength": 7,
"description": "#rgb or #rrggbb."
},
"foreground": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"maxLength": 7,
"description": "#rgb or #rrggbb (strict hex; no names, no alpha)."
},
"claimedRatio": {
"type": "number",
"maximum": 21,
"minimum": 1,
"description": "A ratio the caller asserts; compared to the unrounded ratio with a 0.01 tolerance."
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "Foreground/background pairs."
},
"fixTarget": {
"enum": [
"foreground",
"background",
"none"
],
"type": "string",
"description": "Which colour to move for a failing pair (default foreground); none skips the fix."
},
"threshold": {
"type": "number",
"maximum": 21,
"minimum": 1,
"description": "Overrides level: the minimum contrast ratio."
},
"cvdSeverity": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Enables the colour-vision-deficiency check at this severity, 0 to 1 (1.0 is dichromacy); between the published 0.1 steps the matrices are interpolated."
},
"cvdMinDeltaE": {
"type": "number",
"maximum": 2,
"minimum": 0,
"description": "Smallest OKLab distance counted as distinguishable (default 0.05, a heuristic, not a standard)."
}
},
"additionalProperties": false
}
conversation-prune
Choose which old messages to drop to hit a token target without touching the cached prompt prefix — Given a conversation, the index of the last message inside the provider's cached prefix, and a token target, returns which messages to drop: whole tool call plus tool result pairs (so no result is left without its call) and messages the caller marked droppable, oldest first or largest first, never inside the cached prefix, never the most recent keepRecent messages, never pinned ones. Everything up
Argument
Type
Description
messages*
array
Up to 500; 400000 characters of content in total.
strategy
string
Order in which droppable units are removed. Default oldest-first.
tokenizer
string
o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted.
keepRecent
integer
Most recent messages that are never dropped. Default 4.
targetTokens*
integer
Total tokens to get at or under.
cacheBreakpoint*
integer
Index of the last message inside the cached prefix; -1 when nothing is cached.
Input schema (JSON)
{
"type": "object",
"required": [
"messages",
"cacheBreakpoint",
"targetTokens"
],
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100
},
"kind": {
"enum": [
"text",
"tool_call",
"tool_result"
],
"type": "string",
"description": "tool_call: assistant message holding a tool call; tool_result: its output. Pairs are matched by toolCallId. Default text."
},
"role": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "user, assistant, tool, system, ..."
},
"pinned": {
"type": "boolean",
"description": "Never dropped."
},
"tokens": {
"type": "integer",
"maximum": 100000000,
"minimum": 0,
"description": "Caller-supplied token count; always accepted."
},
"content": {
"type": "string",
"maxLength": 100000,
"description": "Message text, used only to count tokens when tokens is absent."
},
"droppable": {
"type": "boolean",
"description": "A text message that may be dropped (tool pairs are droppable by default)."
},
"toolCallId": {
"type": "string",
"maxLength": 200,
"description": "Pairs a tool_call with its tool_result."
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1,
"description": "Up to 500; 400000 characters of content in total."
},
"strategy": {
"enum": [
"oldest-first",
"largest-first"
],
"type": "string",
"description": "Order in which droppable units are removed. Default oldest-first."
},
"tokenizer": {
"type": "string",
"maxLength": 64,
"description": "o200k_base or cl100k_base. Any other name (including Claude models) returns status unsupported for items that need counting; caller token counts are always accepted."
},
"keepRecent": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Most recent messages that are never dropped. Default 4."
},
"targetTokens": {
"type": "integer",
"maximum": 100000000,
"minimum": 0,
"description": "Total tokens to get at or under."
},
"cacheBreakpoint": {
"type": "integer",
"maximum": 499,
"minimum": -1,
"description": "Index of the last message inside the cached prefix; -1 when nothing is cached."
}
},
"additionalProperties": false
}
cors-preflight
CORS preflight decision from Fetch spec — Takes a browser request shape (origin, method, headers, credentials flag) and a server CORS policy (allow-origin, allow-methods, allow-headers, allow-credentials, expose-headers, max-age) and returns the exact decision a browser would make per the Fetch Living Standard §3.2 and §4.10: whether a preflight OPTIONS is required, whether the main request is allowed, which response headers the script ca
Argument
Type
Description
policy*
object
request*
object
Input schema (JSON)
{
"type": "object",
"required": [
"request",
"policy"
],
"properties": {
"policy": {
"type": "object",
"properties": {
"maxAge": {
"type": "integer",
"description": "Access-Control-Max-Age in seconds."
},
"allowOrigin": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 100
}
],
"description": "The Access-Control-Allow-Origin value, as a string ('*' or an origin) or an array of permitted origins the server echoes from."
},
"allowHeaders": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 100,
"description": "Access-Control-Allow-Headers (case-insensitive). '*' is accepted (ignored with credentials)."
},
"allowMethods": {
"type": "array",
"items": {
"type": "string",
"maxLength": 20
},
"maxItems": 20,
"description": "Access-Control-Allow-Methods. '*' is accepted (ignored with credentials)."
},
"exposeHeaders": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 100,
"description": "Access-Control-Expose-Headers."
},
"allowCredentials": {
"type": "boolean",
"description": "Access-Control-Allow-Credentials: true."
}
}
},
"request": {
"type": "object",
"required": [
"origin",
"method"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"description": "Target URL, optional. Not used in the Fetch decision; carried through for logging."
},
"method": {
"type": "string",
"maxLength": 20,
"description": "HTTP method of the main request (not the preflight), e.g. 'POST'."
},
"origin": {
"type": "string",
"maxLength": 200,
"description": "The ASCII serialization of the request's origin, e.g. 'https://app.example.com'. 'null' for opaque origins."
},
"headers": {
"type": "object",
"description": "Request headers the main request will send. Names are case-insensitive."
},
"withCredentials": {
"type": "boolean",
"description": "True if the request uses credentials mode 'include'."
}
}
}
},
"additionalProperties": false
}
cover-claim
DeFi Cover Claim Adjudicator — Predicts whether a DeFi cover claim (Nexus Mutual or any provider's wording) will be approved and for how much. Reads the wording, postmortems and the claimant's transactions, quantifies net token loss with Chainlink prices at the loss block, maps facts to covered events, exclusions and conditions with verbatim verified clauses, cites similar past claims, and returns verdict.action (FILE / FILE_WI
Argument
Type
Description
cover*
object
wording*
object
The cover wording: a Nexus Mutual product (id or name), a URL (HTML or PDF), or pasted text. At least one.
claimant*
string
Address that suffered the loss (the Impacted Account).
incident
object
claimDate
string
ISO 8601 date the claim is (to be) filed; default now.
deductible
object
Overrides any deductible found in the wording. Amount in cover-asset units; percentages 0-100.
claimedLoss
object
Loss the claimant asserts, in cover-asset units. Used for the payout only when no on-chain loss can be established; always reported as unverified.
transactions
cra-exploit-clock
CRA Exploited-Vulnerability Evidence and Art. 14 Deadline Clock — Takes a CycloneDX or SPDX JSON SBOM (or a purl list), asks OSV.dev for the advisories that affect each exact component version (OSV evaluates the version ranges per ecosystem), then checks each CVE against the CISA Known Exploited Vulnerabilities catalog and the ENISA EUVD exploited-vulnerability index, and adds FIRST EPSS scores. Returns a per-component verdict, the evidence with source URLs and
Argument
Type
Description
sbom
any
CycloneDX 1.4-1.6 or SPDX 2.2/2.3 JSON SBOM, as an object or a JSON string, up to 5 MB. Components need a purl with a version (SPDX: a purl externalRef). Exactly one of sbom or purls.
purls
array
Alternative to sbom: versioned package URLs, e.g. pkg:maven/org.apache.logging.log4j/[email protected]. Ecosystems: npm, pypi, maven, golang, cargo, nuget, gem, composer, hex, pub, swift.
product
object
Your product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).
issue_record
boolean
Default false. When true, adds a standalone awareness_record (evidence snapshot, SBOM digest, evaluation time; signed with the hub attestation key when configured) for you to retain. It does not switch off the hub's standard signed response credential, which every response carries and which already binds the output and input digests to a timestamp.
awareness_time
string
When the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it.
cra-readiness
EU CRA Readiness Check — Repository or manifests in, EU Cyber Resilience Act Art. 14 position out: dependency-advisor resolves every declared package to its locked version (deterministic, no model), those versions go to cra-exploit-clock as package URLs (OSV, CISA KEV, EPSS, EUVD), and each actively exploited component is joined back to the manifest that declares it with the fixed versions and the advisor's findings. Repo
Argument
Type
Description
ref
string
Branch, tag or commit; defaults to the default branch.
repo
string
Public GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head).
files
array
Alternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths.
product
object
Your product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).
ecosystems
array
Restrict the analysis; default all detected.
repoLicense
string
SPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent.
awareness_time
string
When the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it.
credential-coverage
Do licences, certificates or insurance policies cover a required period without gaps? — Given a required date range (a contract term, a project, a shipment window) and up to 200 credentials each valid from a date to a date (both inclusive), reports the merged covered ranges, every uncovered gap with its first and last day and length, and whether each checkpoint date is covered; a credential ending the day before the next starts is contiguous. Built for an agent verifying insurance, l
Argument
Type
Description
required*
object
checkpoints
array
Specific dates that must be covered (delivery date, audit date).
credentials*
array
toleratedGapDays
integer
Gaps up to this many days are reported but do not fail (a grace period you are entitled to).
Input schema (JSON)
{
"type": "object",
"required": [
"required",
"credentials"
],
"properties": {
"required": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Inclusive last day."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
}
}
},
"checkpoints": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxItems": 100,
"description": "Specific dates that must be covered (delivery date, audit date)."
},
"credentials": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"validFrom",
"validTo"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64
},
"validTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Inclusive last valid day."
},
"validFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
}
}
},
"maxItems": 200
},
"toleratedGapDays": {
"type": "integer",
"maximum": 365,
"minimum": 0,
"description": "Gaps up to this many days are reported but do not fail (a grace period you are entitled to)."
}
},
"additionalProperties": false
}
cron-explain
Cron parse, humanize and next N runs — Parses a POSIX 5-field or Quartz 6/7-field cron expression (plus macros @yearly/@monthly/@weekly/@daily/@hourly), returns a plain-English summary and the next N scheduled runs in a given IANA timezone, and reports if the expression never fires or lands on a DST-ambiguous wall-clock. Handles step syntax, named months and days, Quartz '?'/L/W/# extensions, and the POSIX dom-OR-dow rule when both fie
Argument
Type
Description
after
string
ISO-8601 instant: find runs strictly after this. Defaults to 1970-01-01T00:00:00Z.
count
integer
How many future runs to return, 1-50. Default 5.
flavor
string
Which cron dialect. Defaults to posix (5 fields) or quartz (6/7 fields) based on token count.
timezone
string
IANA timezone name, e.g. 'America/Los_Angeles'. Defaults to UTC.
expression*
string
The cron expression or macro, e.g. '*/15 9-17 * * 1-5' or '@weekly'.
Input schema (JSON)
{
"type": "object",
"required": [
"expression"
],
"properties": {
"after": {
"type": "string",
"maxLength": 40,
"description": "ISO-8601 instant: find runs strictly after this. Defaults to 1970-01-01T00:00:00Z."
},
"count": {
"type": "integer",
"description": "How many future runs to return, 1-50. Default 5."
},
"flavor": {
"enum": [
"posix",
"quartz"
],
"type": "string",
"description": "Which cron dialect. Defaults to posix (5 fields) or quartz (6/7 fields) based on token count."
},
"timezone": {
"type": "string",
"maxLength": 60,
"description": "IANA timezone name, e.g. 'America/Los_Angeles'. Defaults to UTC."
},
"expression": {
"type": "string",
"maxLength": 200,
"description": "The cron expression or macro, e.g. '*/15 9-17 * * 1-5' or '@weekly'."
}
},
"additionalProperties": false
}
cross-field-rules
Check caller-declared rules across fields of a JSON record: end after start, conditional required, exactly one of — Evaluates up to 100 rules you declare over one JSON document and reports, per rule, pass, fail or unknown with the JSON pointer of every violating field and the actual value class (absent, null, empty string, value). Rule kinds: compare (>, >=, <, <=, ==, != on numbers, exact decimals, RFC 3339 dates or date-times, strings), required-if, forbidden-if, exactly-one, at-most-one, at-least-one, all-or
Argument
Type
Description
data*
any
The JSON document the rules apply to.
rules*
array
onMissing
string
Missing or null compare operand: unknown (default), fail or skip.
Find dangling and duplicated cross-references (Section 3.2, Table 4, Figure 2, [7]) in a document — Scans a document for the targets it defines (numbered headings, Table/Figure/Listing/Equation captions at line start, Appendix/Annex headings, [n] bibliography entries, [^id] footnote definitions) and the references it makes to them ('see Section 3.2', 'Tables 2 and 4', 'Figures 3 to 5', '[7]', '[^note]'), and reports references with no target, targets defined twice, and targets never referenced,
Argument
Type
Description
text*
string
Document text (plain text or Markdown).
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 150000,
"minLength": 1,
"description": "Document text (plain text or Markdown)."
}
},
"additionalProperties": false
}
crosstalk-deliberate
Crosstalk epistemic swarm & falsification engine — Stress-tests a research question instead of answering it once. Classifies the domain, generates up to 3 independent hypotheses, attacks each with an adversarial falsification pass, checks live literature on arXiv and OpenAlex (plus any papers you supply by arXiv id or DOI; every record content-addressed by sha256), then synthesizes a calibrated answer. The output leads with a headline (status, ans
Argument
Type
Description
papers
array
Up to 5 papers you already have, as arXiv ids or URLs (2201.11903, arxiv.org/abs/...) or DOIs (10.xxxx/..., doi.org URLs). They are fetched and become citable evidence records alongside the live literature search.
context
string
Optional background, constraints, data or prior attempts.
question*
string
The question or claim to deliberate.
maxHypotheses
integer
Independent hypotheses to generate and attack (default 3).
Input schema (JSON)
{
"type": "object",
"required": [
"question"
],
"properties": {
"papers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 4
},
"maxItems": 5,
"description": "Up to 5 papers you already have, as arXiv ids or URLs (2201.11903, arxiv.org/abs/...) or DOIs (10.xxxx/..., doi.org URLs). They are fetched and become citable evidence records alongside the live literature search."
},
"context": {
"type": "string",
"maxLength": 8000,
"description": "Optional background, constraints, data or prior attempts."
},
"question": {
"type": "string",
"maxLength": 4000,
"minLength": 3,
"description": "The question or claim to deliberate."
},
"maxHypotheses": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Independent hypotheses to generate and attack (default 3)."
}
},
"additionalProperties": false
}
csp-audit
Content-Security-Policy audit — Parses a Content-Security-Policy header or <meta> value and reports every clause that weakens it: 'unsafe-inline' without nonces or hashes, 'unsafe-eval', wildcard hosts, data:/blob: in script-src, scheme-only https:, duplicate directives (second is discarded), missing base-uri or object-src 'none', open frame-ancestors or form-action, and the strict-dynamic cases that silently ignore host sources
Argument
Type
Description
policy*
string
The full Content-Security-Policy value (not the header line).
deployTarget
string
Reserved for future harsher checks in enforce mode.
Input schema (JSON)
{
"type": "object",
"required": [
"policy"
],
"properties": {
"policy": {
"type": "string",
"maxLength": 8000,
"description": "The full Content-Security-Policy value (not the header line)."
},
"deployTarget": {
"enum": [
"report-only",
"enforce"
],
"type": "string",
"description": "Reserved for future harsher checks in enforce mode."
}
},
"additionalProperties": false
}
csv-dialect
Detect a CSV file's delimiter, quote, header row and broken header names — Detects the delimiter (comma, semicolon, tab, pipe), quote character, line terminator, BOM, header row offset (preamble lines above the header) and whether a header exists in CSV text, parsed per RFC 4180 so quoted delimiters and CRLF inside quoted fields are handled. Returns every candidate dialect with its score, each ragged row with its physical line, and header repairs (empty, duplicate or BOM
Argument
Type
Description
text*
string
CSV text, up to 200000 characters. Detection samples the first 50000; structure checks cover all of it.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200000,
"description": "CSV text, up to 200000 characters. Detection samples the first 50000; structure checks cover all of it."
}
},
"additionalProperties": false
}
csv-roundtrip
Will this CSV survive a typed round trip and a spreadsheet: leading zeros, big ids, dates, formulas, empty vs null — Parses CSV text (RFC 4180, caller dialect) against a column type map and reports, per cell with row, column, physical line and byte offset, everything that would change on a parse-serialize-parse round trip or when opened in Excel or Sheets: leading zeros stripped, integers beyond 2^53 or 15 significant digits, scientific-notation and date coercion ("1E5", "1-2", "MARCH1"), formula injection (= +
Argument
Type
Description
text*
string
CSV text, up to 200000 characters.
types
any
Object mapping column name to one of string, identifier, integer, decimal, boolean, date, datetime (max 200). Unlisted columns are "string". Use "identifier" for digit strings that must keep leading zeros.
dialect
object
nullToken
string
Text that means null (e.g. "NULL", "\\N"). Default: none, so only an unquoted empty field is null.
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200000,
"description": "CSV text, up to 200000 characters."
},
"types": {
"description": "Object mapping column name to one of string, identifier, integer, decimal, boolean, date, datetime (max 200). Unlisted columns are \"string\". Use \"identifier\" for digit strings that must keep leading zeros."
},
"dialect": {
"type": "object",
"properties": {
"quote": {
"type": "string",
"maxLength": 1,
"description": "Default '\"'."
},
"header": {
"type": "boolean",
"description": "First row is a header (default true). Without one, columns are named 0, 1, 2..."
},
"delimiter": {
"type": "string",
"maxLength": 1,
"description": "Default \",\"."
}
},
"additionalProperties": false
},
"nullToken": {
"type": "string",
"maxLength": 20,
"description": "Text that means null (e.g. \"NULL\", \"\\\\N\"). Default: none, so only an unquoted empty field is null."
},
"spreadsheet": {
"type": "boolean",
"description": "Check Excel/Sheets coercion hazards (default true)."
}
},
"additionalProperties": false
}
date-claim-check
Does this date fall on the claimed weekday? (batch, year boundaries and leap days) — Checks up to 200 claims 'Monday 2026-12-28' against the proleptic Gregorian calendar and reports the real weekday, whether the date exists (2026-02-29 does not), and the nearest date carrying the claimed weekday; a claim 'Friday, 13 March' without a year returns the years in a range where it holds. Built for an agent verifying dates in a document, email or itinerary. Gregorian only (no Julian date
Can this plan of steps finish inside the remaining time, in the expected case and the worst case? — Takes steps with expected and worst-case durations, dependencies (steps with no dependency between them run in parallel), retries with backoff, and the time remaining, and computes the critical path for both cases. Verdict guaranteed (worst case fits: pass), likely (only the expected case fits: unknown) or infeasible (even the expected case does not fit: fail), with the slack and the critical-path
Argument
Type
Description
steps*
array
overheadMs
integer
Fixed time to reserve for settlement, serialization, etc.
remainingMs*
integer
Time left to the hard deadline, measured by the caller.
Input schema (JSON)
{
"type": "object",
"required": [
"steps",
"remainingMs"
],
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"expectedMs",
"worstMs"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"after": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 20,
"description": "Step ids that must finish first."
},
"retries": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "Retries after a failed attempt; the worst case runs them all."
},
"worstMs": {
"type": "integer",
"maximum": 86400000,
"minimum": 0,
"description": "Worst-case duration of one attempt. Must be at least expectedMs."
},
"backoffMs": {
"type": "integer",
"maximum": 3600000,
"minimum": 0,
"description": "Wait before each retry (constant)."
},
"expectedMs": {
"type": "integer",
"maximum": 86400000,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"overheadMs": {
"type": "integer",
"maximum": 3600000,
"minimum": 0,
"description": "Fixed time to reserve for settlement, serialization, etc."
},
"remainingMs": {
"type": "integer",
"maximum": 604800000,
"minimum": 0,
"description": "Time left to the hard deadline, measured by the caller."
}
},
"additionalProperties": false
}
dedup-window
Group webhook deliveries by identity within a time window and decide: process, dedupe, retry, reconcile or abstain — Given previously seen deliveries (identity, receivedAt, payload or digest, handling outcome) and a new incoming one, finds earlier deliveries with the same identity inside the window and returns process (none), dedupe (same payload already processed), retry (earlier ones all failed), reconcile (an earlier one is in flight or unknown, or the same identity arrives with a different payload) or abstai
Argument
Type
Description
history*
array
incoming*
object
windowMode
string
from-first (default): a group's window starts at its first delivery. sliding: each delivery extends the window.
windowSeconds*
integer
Input schema (JSON)
{
"type": "object",
"required": [
"history",
"incoming",
"windowSeconds"
],
"properties": {
"history": {
"type": "array",
"items": {
"type": "object",
"required": [
"identity",
"receivedAt"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"outcome": {
"enum": [
"processed",
"failed",
"in-flight",
"unknown"
],
"type": "string",
"description": "What happened when this delivery was handled (history only)."
},
"payload": {
"description": "Event body; hashed with RFC 8785 canonical JSON to detect conflicting duplicates."
},
"identity": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Delivery identity: the provider's event id, or a key built from the fields that define the event."
},
"receivedAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant."
},
"payloadDigest": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Alternative to payload: a digest the caller computed."
}
},
"additionalProperties": false
},
"maxItems": 500
},
"incoming": {
"type": "object",
"required": [
"identity",
"receivedAt"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"outcome": {
"enum": [
"processed",
"failed",
"in-flight",
"unknown"
],
"type": "string",
"description": "What happened when this delivery was handled (history only)."
},
"payload": {
"description": "Event body; hashed with RFC 8785 canonical JSON to detect conflicting duplicates."
},
"identity": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Delivery identity: the provider's event id, or a key built from the fields that define the event."
},
"receivedAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant."
},
"payloadDigest": {
"type": "string",
"maxLength": 128,
"minLength": 8,
"description": "Alternative to payload: a digest the caller computed."
}
},
"additionalProperties": false
},
"windowMode": {
"enum": [
"from-first",
"sliding"
],
"type": "string",
"description": "from-first (default): a group's window starts at its first delivery. sliding: each delivery extends the window."
},
"windowSeconds": {
"type": "integer",
"maximum": 2592000,
"minimum": 1
}
},
"additionalProperties": false
}
deictic-check
Find unresolved references (that one, the former, tomorrow, next week) and return clarification questions — Scans a user or tool message for phrases that cannot be understood without context: demonstratives ('that one', 'the latter'), back-references ('as before', 'the usual'), and relative dates or times ('tomorrow', 'next Friday', 'end of month', 'soon'), each with offsets and a clarification question. Given a caller anchor (asOf instant plus IANA time zone) it resolves only unambiguous day offsets (t
Argument
Type
Description
text*
string
Message to check.
anchor
object
Reference time for resolving unambiguous relative dates.
candidates
array
Items recently in play; echoed on reference slots for the caller to ask with. Never chosen automatically.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Message to check."
},
"anchor": {
"type": "object",
"required": [
"asOf",
"timeZone"
],
"properties": {
"asOf": {
"type": "string",
"maxLength": 40,
"description": "ISO 8601 instant with Z/offset, or a plain YYYY-MM-DD local date."
},
"timeZone": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "IANA zone, e.g. Europe/Berlin."
}
},
"description": "Reference time for resolving unambiguous relative dates.",
"additionalProperties": false
},
"candidates": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 20,
"description": "Items recently in play; echoed on reference slots for the caller to ask with. Never chosen automatically."
}
},
"additionalProperties": false
}
delegation-contract-check
Check that a sub-agent delegation states objective, acceptance criteria, budget, evidence and stop conditions — Checks the brief an agent is about to hand to another agent: the required parts are present and non-empty (objective, acceptance criteria, a budget with at least one positive numeric bound, required evidence, stop conditions; output format if required), nothing is duplicated, and acceptance criteria are not made only of vague wording (a small labelled word list: good, appropriate, if possible ...)
Argument
Type
Description
budget
object
require
array
Parts that must be present. Default: objective, acceptanceCriteria, budget, evidenceRequired, stopConditions.
objective
string
outputFormat
string
stopConditions
array
When the delegate must stop and report (done, blocked, budget spent).
evidenceRequired
array
What the delegate must return as proof (links, test output, file paths).
Dependency Underuse & Replacement Advisor — Audits the dependencies of a public GitHub repo, commit or pull request (or uploaded manifests and sources) and returns a pass/warn/fail verdict, a 0-100 risk score, the top findings with manifest file:line and the fix, and a SARIF 2.1.0 log for GitHub code scanning. Parses JS/TS, Python and Rust imports with a tokenizer-level scanner and maps them to declared npm, PyPI and crates.io dependencies.
Argument
Type
Description
ref
string
Branch, tag or commit; defaults to the default branch.
mode
string
deterministic makes no model call; auto makes at most one, only for symbols the curated table cannot decide.
repo
string
Public GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head).
files
array
Alternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths.
ecosystems
array
Restrict the analysis; default all detected.
repoLicense
string
SPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent.
Input schema (JSON)
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"maxLength": 200,
"description": "Branch, tag or commit; defaults to the default branch."
},
"mode": {
"enum": [
"auto",
"deterministic"
],
"type": "string",
"description": "deterministic makes no model call; auto makes at most one, only for symbols the curated table cannot decide."
},
"repo": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Public GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head)."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"content": {
"type": "string",
"maxLength": 400000
}
},
"additionalProperties": false
},
"maxItems": 600,
"description": "Alternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths."
},
"ecosystems": {
"type": "array",
"items": {
"enum": [
"npm",
"pypi",
"cargo"
],
"type": "string"
},
"maxItems": 3,
"description": "Restrict the analysis; default all detected."
},
"repoLicense": {
"type": "string",
"maxLength": 100,
"description": "SPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent."
}
},
"additionalProperties": false
}
dev-pipeline-toolkit
Developer pipeline toolkit: 9 deterministic CI/CD checks — One endpoint, nine deterministic CI/CD primitives, each a sub-millisecond algorithmic check with cited specs: jwt-verify (RFC 7515/7518/8725), cron-explain (POSIX + Quartz), openapi-breaking-change (OAS 3.1 diff), webhook-verify (Stripe/GitHub/Shopify/Slack/Twilio/Linear/Clerk/SendGrid), csp-audit (CSP Level 3), cors-preflight (Fetch spec §3.2/§4.10), x509-inspect (RFC 5280/6125), graphql-cost (Gr
Argument
Type
Description
args*
object
The chosen tool's own input object. Validated against that tool's schema before the call is billed.
tool*
string
Which deterministic primitive to run. See the individual agents' schemas at /api/v1/<tool> for the args shape.
Input schema (JSON)
{
"type": "object",
"required": [
"tool",
"args"
],
"properties": {
"args": {
"type": "object",
"description": "The chosen tool's own input object. Validated against that tool's schema before the call is billed."
},
"tool": {
"enum": [
"cors-preflight",
"cron-explain",
"csp-audit",
"graphql-cost",
"jwt-verify",
"license-identify",
"openapi-breaking-change",
"webhook-verify",
"x509-inspect"
],
"type": "string",
"description": "Which deterministic primitive to run. See the individual agents' schemas at /api/v1/<tool> for the args shape."
}
},
"additionalProperties": false
}
dice-roll
Verifiable dice roll from a seed, with a re-derivable transcript — Rolls dice notation (for example 4d6kh3+2) from a caller seed with a documented SHA-256 counter-mode stream and returns every die, the kept/dropped marks and a full draw transcript, for agents and referees that need a roll anyone can re-derive. Optionally checks a claimed total or claimed faces against the re-derived roll. Does NOT provide unpredictable randomness: the seed is public input, so any
Argument
Type
Description
seed*
string
Caller seed string. Public: the outcome is a pure function of notation and seed.
notation*
string
Dice notation: terms of NdM (N 1-100, M 2-1000) or integers joined by + and -; optional kh/kl/dh/dl with a count on a group. At most 20 groups and 1000 dice.
expectRolls
array
Optional claimed faces in notation order, before keep/drop marks.
expectTotal
integer
Optional claimed total to verify.
includeTranscript
boolean
Default true. False drops blocks and draws (the transcript digest stays).
Input schema (JSON)
{
"type": "object",
"required": [
"notation",
"seed"
],
"properties": {
"seed": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Caller seed string. Public: the outcome is a pure function of notation and seed."
},
"notation": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Dice notation: terms of NdM (N 1-100, M 2-1000) or integers joined by + and -; optional kh/kl/dh/dl with a count on a group. At most 20 groups and 1000 dice."
},
"expectRolls": {
"type": "array",
"items": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "A claimed face."
},
"maxItems": 1000,
"description": "Optional claimed faces in notation order, before keep/drop marks."
},
"expectTotal": {
"type": "integer",
"maximum": 100000000,
"minimum": -100000000,
"description": "Optional claimed total to verify."
},
"includeTranscript": {
"type": "boolean",
"description": "Default true. False drops blocks and draws (the transcript digest stays)."
}
},
"additionalProperties": false
}
diff-gatekeeper
PR / Dependency Breaking-Change & Exploit Gatekeeper — Merge gate for a pull request: pass/warn/fail verdict, 0-100 risk score, the top findings with file:line and a fix, drop-in patches, GitHub Checks annotations and a SARIF 2.1.0 log. Accepts a raw unified diff, a GitHub PR, commit or compare URL, or per-file patches. Deterministic scanners (secrets, SQL and command injection, weak crypto, risky package.json changes) run beside a model review for bu
Argument
Type
Description
files
array
Alternative to gitDiff: changed files with their patch hunks, as returned by GitHub's pull request files API.
prUrl
string
Alternative to gitDiff: a public GitHub pull request, commit or compare URL (github.com/owner/repo/pull/123). Its .diff is downloaded; a diff over 300,000 characters is cut at a file boundary and the rest reported as unreviewed.
context
string
What the PR is supposed to do.
gitDiff
string
Raw unified diff (git diff output). Provide exactly one of gitDiff, prUrl or files.
packageJsonDiff
string
Input schema (JSON)
{
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"patch"
],
"properties": {
"path": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"patch": {
"type": "string",
"maxLength": 300000
},
"status": {
"enum": [
"added",
"modified",
"removed",
"renamed"
],
"type": "string"
},
"previousPath": {
"type": "string",
"maxLength": 500
}
},
"additionalProperties": false
},
"maxItems": 300,
"description": "Alternative to gitDiff: changed files with their patch hunks, as returned by GitHub's pull request files API."
},
"prUrl": {
"type": "string",
"maxLength": 300,
"minLength": 20,
"description": "Alternative to gitDiff: a public GitHub pull request, commit or compare URL (github.com/owner/repo/pull/123). Its .diff is downloaded; a diff over 300,000 characters is cut at a file boundary and the rest reported as unreviewed."
},
"context": {
"type": "string",
"maxLength": 4000,
"description": "What the PR is supposed to do."
},
"gitDiff": {
"type": "string",
"maxLength": 300000,
"minLength": 1,
"description": "Raw unified diff (git diff output). Provide exactly one of gitDiff, prUrl or files."
},
"packageJsonDiff": {
"type": "string",
"maxLength": 50000
}
},
"additionalProperties": false
}
dispute-ev
UMA Dispute EV Desk — For a Polymarket market inside its roughly two-hour UMA challenge window, reads the live proposal on Polygon (adapter, optimistic oracle, bond, finalFee, expiry), judges P(proposal wrong or too early) against the literal rules with an ensemble plus red-team pass and verified quotes (full-game sports markets are decided by code with no model when Gamma's timestamps show the answer came before the g
Argument
Type
Description
market*
string
Polymarket slug, market/event URL, conditionId or questionID.
params
object
prices
object
Current prices of the first and second listed outcomes, USD per share.
position
object
Your holding in this market.
proposal
object
Overrides for on-chain proposal fields (what-if or replay). Omit to read the live proposal.
evidenceUrls
array
Public pages to treat as evidence.
Input schema (JSON)
{
"type": "object",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Polymarket slug, market/event URL, conditionId or questionID."
},
"params": {
"type": "object",
"properties": {
"gasUsd": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Total dispute transaction cost in USD; overrides the estimate."
},
"polUsd": {
"type": "number",
"maximum": 1000000,
"minimum": 0
},
"minEdgeUsd": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Minimum EV edge for DISPUTE, default 2."
},
"gasPriceGwei": {
"type": "number",
"maximum": 100000,
"minimum": 0
},
"aprOpportunity": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Annual opportunity cost of capital, default 0.15."
},
"otherDisputeProb": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "P(someone else disputes a wrong proposal if you abstain), default 0.3 (an unmeasured assumption; it only affects callers holding a position)."
},
"safetyMarginMinutes": {
"type": "number",
"maximum": 600,
"minimum": 0,
"description": "Submit-by margin before the window closes, default 10."
}
},
"additionalProperties": false
},
"prices": {
"type": "object",
"required": [
"first",
"second"
],
"properties": {
"first": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"second": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"description": "Current prices of the first and second listed outcomes, USD per share.",
"additionalProperties": false
},
"position": {
"type": "object",
"required": [
"outcome",
"shares",
"avgPrice"
],
"properties": {
"shares": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
},
"outcome": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Outcome label held, e.g. Yes, No or a team name."
},
"avgPrice": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Average entry price per share, USD."
}
},
"description": "Your holding in this market.",
"additionalProperties": false
},
"proposal": {
"type": "object",
"properties": {
"bondUsd": {
"type": "number",
"maximum": 1000000000,
"minimum": 0
},
"outcome": {
"enum": [
"first",
"second",
"half"
],
"type": "string",
"description": "Proposed answer: first listed outcome (UMA price 1), second (price 0) or 50/50."
},
"finalFeeUsd": {
"type": "number",
"maximum": 1000000000,
"minimum": 0
},
"expirationTime": {
"type": "string",
"maxLength": 40,
"description": "ISO-8601 UTC time the challenge window closes."
}
},
"description": "Overrides for on-chain proposal fields (what-if or replay). Omit to read the live proposal.",
"additionalProperties": false
},
"evidenceUrls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 3,
"description": "Public pages to treat as evidence."
}
},
"additionalProperties": false
}
doc-to-markdown
Document to Markdown with per-page hashes and offsets — Converts a PDF (text layer), DOCX, XLSX or PPTX file, or normalizes an HTML, Markdown, text, CSV or JSON file, into Markdown (or plain text) for an agent that must read or cite a document. Give an https URL or up to 4 MB as base64. Returns the content plus one unit per page, sheet or slide with its exact character range in the content and a SHA-256 of that unit's text, so later quote and citation
Argument
Type
Description
url
string
https URL of the document. Provide this or content_base64.
pages
string
Page, sheet or slide selection such as "1-5,8", at most 200 pages. Default: the first 200.
format
string
markdown (default) or text (Markdown syntax removed).
describe
boolean
Also suggest a file name, tags and a summary with a language model. Default false.
filename
string
Original file name; helps format detection and is kept as the extension of the suggested name.
max_chars
integer
Output cap in characters, cut at a unit boundary. Default 120000.
content_base64
string
Standard padded base64 of the file, at most 4 MB decoded. Provide this or url.
Input schema (JSON)
dockerfile-cache-lint
Dockerfile build-cache and reproducibility lint — Parses a Dockerfile (continuations, escape directive, heredocs, flags, stages) and reports instruction orderings that defeat the layer cache or make rebuilds drift, for agents writing or reviewing container builds. Cache: COPY of the whole context before a dependency or package install, apt-get update in its own RUN, per-build ARG/ENV values (build date, git sha) declared before later RUN steps. R
Argument
Type
Description
basePin
string
tag (default): flag only missing or :latest tags. digest: flag every base image not pinned by @sha256.
include
array
Rule categories that decide the status. Default cache and reproducibility.
dockerfile*
string
Dockerfile text, at most 5000 lines and 128 stages.
Input schema (JSON)
{
"type": "object",
"required": [
"dockerfile"
],
"properties": {
"basePin": {
"enum": [
"tag",
"digest"
],
"type": "string",
"description": "tag (default): flag only missing or :latest tags. digest: flag every base image not pinned by @sha256."
},
"include": {
"type": "array",
"items": {
"enum": [
"cache",
"reproducibility",
"hygiene"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Rule categories that decide the status. Default cache and reproducibility."
},
"dockerfile": {
"type": "string",
"maxLength": 100000,
"description": "Dockerfile text, at most 5000 lines and 128 stages."
}
},
"additionalProperties": false
}
document-supersession
Is this document still current, or superseded by a newer one? — Given the target document id, the supplied set of documents (id, effective date, which ids each one supersedes, withdrawn flag) and a reference date, reports whether the target is superseded or withdrawn as of that date, following supersession chains, and names the superseding document and its date. For an agent about to rely on a standard, price list, policy or datasheet revision. It can only see
Argument
Type
Description
asOf*
string
Reference date: a superseding document counts only if effective on or before it.
target*
string
Id of the document being relied on.
documents*
array
The documents the caller knows of, including the target.
listComplete
boolean
The caller asserts documents holds every document that could supersede the target. Required for a pass.
Input schema (JSON)
{
"type": "object",
"required": [
"target",
"documents",
"asOf"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "Reference date: a superseding document counts only if effective on or before it."
},
"target": {
"type": "string",
"maxLength": 200,
"description": "Id of the document being relied on."
},
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Document id."
},
"withdrawn": {
"type": "boolean",
"description": "Withdrawn without replacement."
},
"supersedes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"description": "Id this document replaces."
},
"maxItems": 50
},
"effectiveDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1,
"description": "The documents the caller knows of, including the target."
},
"listComplete": {
"type": "boolean",
"description": "The caller asserts documents holds every document that could supersede the target. Required for a pass."
}
},
"additionalProperties": false
}
doi-check
DOI check: exists, retracted, or fabricated (batch of 20) — Checks up to 20 DOIs in one call against Crossref (including its Retraction Watch notices), OpenAlex and the doi.org Handle registry. Per DOI: FOUND with title and year, RETRACTED, EXPRESSION_OF_CONCERN, CORRECTED, REGISTERED_NOT_INDEXED, NOT_REGISTERED (no such DOI anywhere: likely fabricated), INVALID_DOI or UNVERIFIED. For research agents and RAG pipelines that cite papers: run every DOI throug
Argument
Type
Description
dois*
array
Bare DOIs, doi: prefixes or https://doi.org/ URLs.
Check whether a saved interaction recipe still applies to the current version of a page — Compares a recipe (ordered steps naming selectors from an earlier dom-skeleton call), the saved skeleton elements those selectors came from, and the current page HTML. Per step it reports matched (same selector, same tag, type, role and name), changed (selector still exists but the element differs), moved (the same element now has a different selector, given as newSelector), ambiguous (several cur
List the interactive elements of an HTML page with stable CSS selectors — Reduces an HTML document to the elements an agent can act on: links with href, buttons, inputs (not type=hidden), selects, textareas, [role], [onclick], contenteditable, each with tag, type, role, best-effort accessible name (including label associations) and a CSS selector that matches exactly that element, preferring a stable id, then a data-testid-style attribute, name, aria-label, then a struc
Argument
Type
Description
html*
string
HTML source.
dedupe
boolean
Collapse elements with identical tag, type, role, name and href. Default true.
DST gap and overlap check for local times and stated offsets in an IANA zone — Checks up to 100 local date-times (YYYY-MM-DDTHH:MM) or offset timestamps against an IANA time zone and reports whether each wall time exists once, never (spring-forward gap) or twice (fall-back overlap), with every real instant and the offset in force; also lists a zone's offset transitions in a year. Built for an agent scheduling a meeting, cron job or deadline in someone else's zone. Uses the r
Argument
Type
Description
items*
array
transitionsIn
object
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"timeZone"
],
"properties": {
"local": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$",
"maxLength": 30,
"description": "Wall time without offset. Exactly one of local or timestamp."
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64
},
"timestamp": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36,
"description": "RFC 3339 timestamp with offset; checked for consistency with the zone's offset at that instant; Z names UTC and makes no local claim, so it is never a mismatch."
}
}
},
"maxItems": 100,
"minItems": 1
},
"transitionsIn": {
"type": "object",
"required": [
"timeZone",
"year"
],
"properties": {
"year": {
"type": "integer",
"maximum": 2199,
"minimum": 1900
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64
}
}
}
},
"additionalProperties": false
}
duplicate-key-audit
Duplicate JSON object keys found in raw text, before a parser drops them — Scans raw JSON text (RFC 8259) for repeated object member names at any depth, including inside arrays and keys spelled differently but equal after unescaping ("a" vs "\u0061"), and reports each with its JSON pointer, UTF-8 byte offset, line, column and the value every occurrence carried, plus whether the values conflict. Also reports a leading BOM, unpaired surrogates, __proto__ keys and the exact
Argument
Type
Description
text*
string
Raw JSON text, up to 200000 characters and 64 levels of nesting.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200000,
"description": "Raw JSON text, up to 200000 characters and 64 levels of nesting."
}
},
"additionalProperties": false
}
edit-anchor-check
Check that an edit's old-string occurs exactly once in a file, with match contexts — Counts how many times an old-string occurs in a supplied file text (as a replace-in-file tool would see it) and returns each match's offset, line, column and surrounding lines, for an agent about to issue an edit. pass: exactly one literal match, even counting overlapping ones. unknown: several matches, or one match that overlaps another occurrence of the same text (ambiguous; contexts show how to
Argument
Type
Description
file*
string
File text, at most 524288 UTF-8 bytes and 100000 lines.
oldString*
string
contextLines
integer
Lines of context before and after each listed match. Default 2.
Input schema (JSON)
{
"type": "object",
"required": [
"file",
"oldString"
],
"properties": {
"file": {
"type": "string",
"maxLength": 524288,
"description": "File text, at most 524288 UTF-8 bytes and 100000 lines."
},
"oldString": {
"type": "string",
"maxLength": 65536,
"minLength": 1
},
"contextLines": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "Lines of context before and after each listed match. Default 2."
}
},
"additionalProperties": false
}
electrical-calc
Electrical arithmetic and resistor colour codes — Computes Ohm's law and power from any two of V, I, R, P; series and parallel resistance with optional tolerance bounds; a voltage divider (with optional load); an LED series resistor rounded up to a preferred E-series value; conductor voltage drop from a caller-supplied resistivity; decodes or encodes 3 to 6 band IEC 60062 resistor colour codes; and tests whether a value is an official E3 to E192
colour-decode: 3 to 6 colours read from the head end.
claim
object
Optional map from an output value name (e.g. resistance, vout, minResistance) to the number you expect.
power
number
ohm: watts.
rLoad
number
divider: optional load across r2, ohms.
series
enum-canonicalize
Map free-text values onto a closed set of allowed values, or abstain — Maps each input string onto one member of a closed caller-supplied set using, in order: exact match, caller aliases, a deterministic normal form (Unicode NFKC, case and accent folding, punctuation and underscore collapse), then bounded edit distance (optimal string alignment, so a swapped pair of letters costs 1). Returns the canonical value, the method, the distance and the nearest candidates; it
Argument
Type
Description
values*
array
Strings to canonicalize.
aliases
array
Caller synonyms; each canonical must be in allowed.
allowed*
array
The closed set of canonical values.
maxDistance
integer
Largest edit distance accepted (default 2). The effective limit is also capped at one third of the normalized input length.
caseSensitive
boolean
Skip case, accent and punctuation folding (only NFKC and whitespace collapse). Default false.
Input schema (JSON)
{
"type": "object",
"required": [
"values",
"allowed"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"minItems": 1,
"description": "Strings to canonicalize."
},
"aliases": {
"type": "array",
"items": {
"type": "object",
"required": [
"alias",
"canonical"
],
"properties": {
"alias": {
"type": "string",
"maxLength": 100
},
"canonical": {
"type": "string",
"maxLength": 100
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "Caller synonyms; each canonical must be in allowed."
},
"allowed": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 500,
"minItems": 1,
"description": "The closed set of canonical values."
},
"maxDistance": {
"type": "integer",
"maximum": 5,
"minimum": 0,
"description": "Largest edit distance accepted (default 2). The effective limit is also capped at one third of the normalized input length."
},
"caseSensitive": {
"type": "boolean",
"description": "Skip case, accent and punctuation folding (only NFKC and whitespace collapse). Default false."
}
},
"additionalProperties": false
}
evidence-bundle-check
Check that every claim in an evidence bundle has enough independent, fresh, quote-verified support — Checks a bundle an agent assembled before answering: each claim must be backed by at least N evidence items from distinct source groups, each item's quote must actually appear in the supplied text (with offsets), publication dates must be within the caller's maximum age relative to a caller-supplied asOf, and duplicates are collapsed. Does not fetch URLs or judge whether a source is reliable or wh
Argument
Type
Description
asOf
string
Reference instant (ISO 8601) for age checks; required with maxAgeDays. The check never reads the clock.
claims*
array
Claims to support.
evidence*
array
Up to 300 items; 300000 characters of text in total.
maxAgeDays
integer
Evidence published longer ago than this (relative to asOf) is stale.
requireQuotes
boolean
Evidence without a verifiable quote does not count as support. Default true.
Input schema (JSON)
{
"type": "object",
"required": [
"claims",
"evidence"
],
"properties": {
"asOf": {
"type": "string",
"maxLength": 40,
"description": "Reference instant (ISO 8601) for age checks; required with maxAgeDays. The check never reads the clock."
},
"claims": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Unique id."
},
"text": {
"type": "string",
"maxLength": 2000
},
"minEvidence": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Distinct source groups needed. Default 1."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Claims to support."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"claimIds"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Unique id."
},
"url": {
"type": "string",
"maxLength": 2000
},
"text": {
"type": "string",
"maxLength": 50000,
"description": "Source text the quote should appear in."
},
"quote": {
"type": "string",
"maxLength": 2000,
"description": "Verbatim excerpt claimed from text."
},
"claimIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 50,
"description": "Claims this item is offered for."
},
"publishedAt": {
"type": "string",
"maxLength": 40,
"description": "ISO 8601 date or date-time."
},
"sourceGroup": {
"type": "string",
"maxLength": 200,
"description": "Independent-source key (publisher/owner). Overrides the host reduction."
}
},
"additionalProperties": false
},
"maxItems": 300,
"description": "Up to 300 items; 300000 characters of text in total."
},
"maxAgeDays": {
"type": "integer",
"maximum": 36500,
"minimum": 0,
"description": "Evidence published longer ago than this (relative to asOf) is stale."
},
"requireQuotes": {
"type": "boolean",
"description": "Evidence without a verifiable quote does not count as support. Default true."
}
},
"additionalProperties": false
}
evidence-scope-mismatch
Check that evidence covers the scope of the claim it is used for (geography, population, period, version, basis, unit) — Compares the scope descriptors of a claim and of the evidence offered for it, per dimension: geography and population (every claimed item must be equal to, or contained in a broader evidence item according to the caller's taxonomy), period (the evidence period must contain the claimed period; partial or no overlap is a mismatch), and version, basis and unit (must be equal after normalization). Des
Argument
Type
Description
claim*
object
Scope of the claim being made.
evidence*
object
Scope of the evidence offered.
taxonomy
array
Containment facts for geography and population (40,000 characters in total), e.g. {broader:'United States', narrower:['California','Texas']}. Transitive.
Which GPS, serial-number and owner EXIF tags an image carries (keys only) — Lists which privacy-relevant EXIF tags exist in a JPEG, TIFF, PNG (eXIf) or WebP (EXIF) image, for an agent that is about to publish, upload or forward a photo. Reports tag ids and names for GPS, body and lens serial numbers, camera owner, artist, unique image id, device, software, timestamps and thumbnails; values are never returned. Input is the image as base64 (up to 96 KiB, enough for the meta
Argument
Type
Description
data*
string
Padded base64 of the image file or its first 96 KiB (the metadata block must be inside it).
forbid
array
Categories whose presence fails the check. Default gps, serial, owner.
Input schema (JSON)
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"maxLength": 131072,
"description": "Padded base64 of the image file or its first 96 KiB (the metadata block must be inside it)."
},
"forbid": {
"type": "array",
"items": {
"enum": [
"gps",
"serial",
"owner",
"unique-id",
"device",
"software",
"datetime",
"description",
"makernote",
"thumbnail",
"copyright"
],
"type": "string"
},
"maxItems": 11,
"description": "Categories whose presence fails the check. Default gps, serial, owner."
}
},
"additionalProperties": false
}
exposure-calc
Photographic exposure value: solve aperture, shutter, ISO or EV, with equivalent exposures — Given any three of aperture (f-number), shutter time in seconds, ISO and scene EV at ISO 100, solves the fourth from EV = log2(N^2/t) and EV_S = EV_100 + log2(S/100), names the nearest one-third-stop f-number, and lists the equivalent shutter time at each f-number from f/1 to f/32. Given all four, checks that they agree within a tolerance in stops. Built for camera, lighting and image-generation a
Argument
Type
Description
iso
number
ISO speed S.
ev100
number
Scene light as exposure value at ISO 100.
aperture
number
f-number N.
shutterSeconds
number
Exposure time t in seconds.
toleranceStops
number
When all four are given: largest EV100 disagreement accepted (default 0.05).
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"iso": {
"type": "number",
"maximum": 10000000,
"minimum": 1,
"description": "ISO speed S."
},
"ev100": {
"type": "number",
"maximum": 30,
"minimum": -10,
"description": "Scene light as exposure value at ISO 100."
},
"aperture": {
"type": "number",
"maximum": 256,
"minimum": 0.5,
"description": "f-number N."
},
"shutterSeconds": {
"type": "number",
"maximum": 3600,
"minimum": 0.000001,
"description": "Exposure time t in seconds."
},
"toleranceStops": {
"type": "number",
"maximum": 3,
"minimum": 0,
"description": "When all four are given: largest EV100 disagreement accepted (default 0.05)."
}
},
"additionalProperties": false
}
farmland-soil-report
Farmland Soil, Water & Drought Report — Before buying, leasing or planting a US parcel, reads the USDA NRCS soil survey at a point (lat/lon or US address): map unit, prime farmland class, land capability class and subclass, drainage, hydric rating, flooding and ponding frequency, water table and bedrock depth, slope, pH, organic matter, available water capacity (percent-weighted across components) and building-site ratings with shrink-s
Argument
Type
Description
lat
number
WGS84 latitude. Give lat with lon, or address.
lon
number
WGS84 longitude.
use
string
Intended use to rate. Omit to rate all four.
address
string
US street address, geocoded by the US Census geocoder.
Input schema (JSON)
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "WGS84 latitude. Give lat with lon, or address."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "WGS84 longitude."
},
"use": {
"enum": [
"cropland",
"pasture",
"orchard",
"building_site"
],
"type": "string",
"description": "Intended use to rate. Omit to rate all four."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 5,
"description": "US street address, geocoded by the US Census geocoder."
}
},
"additionalProperties": false
}
filing-integrity-check
SEC Filing Integrity Check: XBRL Footing, Tie-Outs, Revisions — Before a figure from a US 10-K or 10-Q is quoted, re-checks it with exact integer arithmetic on SEC XBRL data: balance sheet identity (including noncontrolling and temporary equity), net income bridge, cash flow to balance sheet cash tie-out with restricted cash and roll-forward, EPS recomputation, every calculation-linkbase relationship the filing declares, and same-period values that a later 10-
Argument
Type
Description
cik
string
SEC CIK, digits only.
checks
array
Checks to run; default all six.
period
string
FY selects the 10-K; Q1 to Q3 select 10-Qs (there is no Q4 filing).
ticker
string
Exchange ticker, e.g. AAPL or BRK.B. Give exactly one of ticker or cik.
accession
string
Accession number of a 10-K or 10-Q, e.g. 0000320193-25-000079. Give this or fiscal_year with period.
fiscal_year
integer
Fiscal year of the filing's DocumentFiscalYearFocus.
rounding_mode
string
exact: any nonzero difference fails. reported_precision (default): differences within half a unit of the filing's reporting scale per rounded figure pass and are flagged.
Input schema (JSON)
fiscal-period
Fiscal year, quarter and period for a date: month-aligned or 52/53-week (4-4-5, 4-5-4, 5-4-4) calendars — Maps up to 100 dates to a fiscal year, quarter, period and week for a caller-defined fiscal calendar: a month-aligned year (starts on day 1 of a named month) or a 52/53-week year ending on a given weekday last in or closest to a month end, in a 4-4-5, 4-5-4 or 5-4-4 pattern with the 53rd week appended to the final period; detects 53-week years and checks an asserted fiscal year, quarter or period.
Argument
Type
Description
type*
string
items*
array
endRule
string
52-53-week: last endWeekday in endMonth, or the endWeekday closest to endMonth's last day.
pattern
string
52-53-week: weeks per period within each quarter.
endMonth
integer
52-53-week: month near whose end the year ends.
yearLabel*
string
start: the fiscal year is named for the calendar year it begins in. end: for the calendar year it ends in (US federal FY2027 begins 2026-10-01).
endWeekday
integer
52-53-week: weekday the year ends on, 0=Sunday.
startMonth
fleet-memory
Fleet memory: your agents' shared observations of endpoints, rate limits, IVR paths and ambiguous submissions — Lets every agent in your fleet record what it observed and read what the others saw, with freshness: endpoint brownouts and latency, rate-limit behaviour, IVR menu paths that worked, whether an ambiguous submission was later accepted or rejected, fixes for an error signature, stale feeds, page recipes, merchant workflow failures, document reputation. record() appends timestamped observations for a
Argument
Type
Description
op*
string
subject*
string
What was observed, e.g. api.stripe.com:POST:/v1/refunds, +18005551234:billing, or an error fingerprint.
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
namespace*
string
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
sinceHours
integer
query window; default 168 (7 days).
float-stability
Floating-point stability of an expression over variable ranges — Evaluates a real-valued expression in binary64 (or binary32) on a deterministic grid over the caller's variable ranges and compares each point with a certified arbitrary-precision reference, reporting the decimal digits lost, the worst input, and overflow, underflow or NaN. Recognises and rewrites exp(x)-1, 1-cos(x), log(1+x), sqrt(a)-sqrt(b), a^2-b^2, the quadratic formula, sqrt(x^2+y^2) and log-
Argument
Type
Description
precision
string
Arithmetic of the code under test. Default binary64.
variables*
array
Range of every free variable.
expression*
string
Expression in the declared variables, e.g. 'exp(x) - 1'. Operators + - * / ^ (or **); functions sqrt exp expm1 log log1p log2 log10 sin cos tan atan sinh cosh tanh abs pow hypot min max; constants pi, e.
alternative
string
Optional algebraically equal expression to score on the same grid.
maxDigitsLost
integer
Fail above this many lost digits. Default 4.
Input schema (JSON)
{
"type": "object",
"required": [
"expression",
"variables"
],
"properties": {
"precision": {
"enum": [
"binary64",
"binary32"
],
"type": "string",
"description": "Arithmetic of the code under test. Default binary64."
},
"variables": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"description": "Largest value."
},
"min": {
"type": "number",
"description": "Smallest value the variable takes (finite binary64)."
},
"name": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 32
},
"scale": {
"enum": [
"linear",
"log"
],
"type": "string",
"description": "Grid spacing. Default: log when 0 < min and max/min >= 1000, else linear (with probes near 0 when the range contains it)."
}
}
},
"maxItems": 6,
"minItems": 1,
"description": "Range of every free variable."
},
"expression": {
"type": "string",
"maxLength": 500,
"description": "Expression in the declared variables, e.g. 'exp(x) - 1'. Operators + - * / ^ (or **); functions sqrt exp expm1 log log1p log2 log10 sin cos tan atan sinh cosh tanh abs pow hypot min max; constants pi, e."
},
"alternative": {
"type": "string",
"maxLength": 500,
"description": "Optional algebraically equal expression to score on the same grid."
},
"maxDigitsLost": {
"type": "integer",
"maximum": 16,
"minimum": 0,
"description": "Fail above this many lost digits. Default 4."
}
},
"additionalProperties": false
}
font-convert
Font converter: TTF/OTF, WOFF and WOFF2 containers, with the font's own embedding permission checked — Repackages a font you supply as base64 (up to 2 MB) between the sfnt (.ttf/.otf), WOFF and WOFF2 containers, for an agent or build step that needs a web font in a particular format: every table is carried over unchanged, the result is read back and its table digest compared with the source, and the font's own OS/2 embedding bits are checked first (a restricted font fails and nothing is returned).
Argument
Type
Description
to*
string
Target container. sfnt is the plain .ttf/.otf file.
fontBase64*
string
Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB.
Input schema (JSON)
{
"type": "object",
"required": [
"fontBase64",
"to"
],
"properties": {
"to": {
"enum": [
"sfnt",
"woff",
"woff2"
],
"type": "string",
"description": "Target container. sfnt is the plain .ttf/.otf file."
},
"fontBase64": {
"type": "string",
"maxLength": 2796204,
"minLength": 8,
"description": "Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB."
}
},
"additionalProperties": false
}
font-coverage
Font coverage: does this font have glyphs for this text, and does it fit the box — Reads a TrueType or OpenType font you supply as base64 (up to 2 MB) and a text of up to 5000 characters, for an agent about to render text in a fixed font: lists every code point with no glyph in the cmap (formats 4 and 12) and sums the hmtx advance widths to test a width in pixels. Every offset is bounds-checked. It does not apply kerning, ligatures or shaping (combining marks and complex scripts
Argument
Type
Description
text*
string
fontBase64*
string
Base64 of a .ttf or .otf file (sfnt, not WOFF).
fontSizePx
number
Needed for a width check.
maxWidthPx
number
Box width; the widest line (split on \n) must fit.
Input schema (JSON)
{
"type": "object",
"required": [
"fontBase64",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 5000,
"minLength": 1
},
"fontBase64": {
"type": "string",
"maxLength": 2796204,
"minLength": 8,
"description": "Base64 of a .ttf or .otf file (sfnt, not WOFF)."
},
"fontSizePx": {
"type": "number",
"maximum": 2000,
"minimum": 1,
"description": "Needed for a width check."
},
"maxWidthPx": {
"type": "number",
"maximum": 100000,
"minimum": 0,
"description": "Box width; the widest line (split on \\n) must fit."
}
},
"additionalProperties": false
}
font-face-css
@font-face block generated from the font file: family, weight, style, stretch and unicode-range read from the font — Reads a font you supply as base64 (up to 2 MB, any of TTF, OTF, WOFF, WOFF2) and writes an @font-face rule for the URLs you will serve it from, for an agent or build step generating CSS: font-family from the name table, font-weight from OS/2 (or the fvar wght range of a variable font), font-style, font-stretch, and unicode-range from the cmap. Names and URLs are escaped as CSS strings. It does not
Argument
Type
Description
family
string
Overrides the family name read from the font.
sources*
array
One entry per file you serve, best format first.
fontBase64*
string
Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB.
fontDisplay
string
Default swap.
includeUnicodeRange
boolean
Default true; omitted automatically for fonts with more than 300 cmap ranges.
Input schema (JSON)
{
"type": "object",
"required": [
"fontBase64",
"sources"
],
"properties": {
"family": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Overrides the family name read from the font."
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"format"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Where you will serve this file; written into url(). Quotes, backslashes and control characters are escaped."
},
"format": {
"enum": [
"woff2",
"woff",
"truetype",
"opentype"
],
"type": "string",
"description": "The format() hint for that file."
}
},
"additionalProperties": false
},
"maxItems": 4,
"minItems": 1,
"description": "One entry per file you serve, best format first."
},
"fontBase64": {
"type": "string",
"maxLength": 2796204,
"minLength": 8,
"description": "Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB."
},
"fontDisplay": {
"enum": [
"auto",
"block",
"swap",
"fallback",
"optional"
],
"type": "string",
"description": "Default swap."
},
"includeUnicodeRange": {
"type": "boolean",
"description": "Default true; omitted automatically for fonts with more than 300 cmap ranges."
}
},
"additionalProperties": false
}
font-glyph-svg
Font to SVG: a line of text drawn as SVG paths from the font's own TrueType outlines — Reads a TrueType-outline font you supply as base64 (up to 2 MB; TTF, WOFF or WOFF2) and returns up to 200 characters of single-line text as an SVG made of <path> outlines (one per distinct glyph, placed with <use>), plus each glyph's path data in font units (y up), for an agent producing a logo, icon label or image that must not depend on the font being installed. Composite glyphs and their transf
Argument
Type
Description
text*
string
One line; line breaks are not laid out.
fontBase64*
string
Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB.
fontSizePx
number
Default 100.
Input schema (JSON)
{
"type": "object",
"required": [
"fontBase64",
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One line; line breaks are not laid out."
},
"fontBase64": {
"type": "string",
"maxLength": 2796204,
"minLength": 8,
"description": "Base64 of a .ttf, .otf, .woff or .woff2 file (not a .ttc collection), up to 2 MB."
},
"fontSizePx": {
"type": "number",
"maximum": 1000,
"minimum": 1,
"description": "Default 100."
}
},
"additionalProperties": false
}
footnote-attach
Attach footnote texts to their in-text markers from page layout coordinates — Given footnote markers (label, page, x, y) and footnote texts (label, page, x, y) extracted from a laid-out document, pairs each marker with its note by label and page, pairing repeated labels on one page in reading order, optionally letting a note continue on the next page, and reports unattached markers, orphan notes, ambiguous groups (different counts for the same label) and notes placed above
Argument
Type
Description
notes*
array
yAxis
string
Direction of increasing y: down (PDF.js, screen) or up (PDF user space). Default down.
markers*
array
allowNextPage
boolean
A note may sit on the page after its marker. Default false.
Cross-Lingual Dark Science Arbitrage Scout — Finds scientific work that exists only in non-English literature. Give an English topic, a technical bottleneck, or a paper you know (seedPaper: DOI or arXiv id); the scout plans native-terminology searches in up to 6 languages (default zh, ja, de, fr, ko) across OpenAlex, Crossref, HAL, J-STAGE and Europe PMC, drops works that already have an English twin, and returns up to 8 ranked discoveries.
Argument
Type
Description
toDate
string
Latest publication date (inclusive).
fromDate
string
Earliest publication date. Default: 10 years before the call.
seedPaper
string
An English-language paper you already know, as a DOI (bare or doi.org URL) or arXiv id/URL. Its title becomes the research topic (or is added to it) so the scout finds non-English work on the same problem.
maxResults
integer
Discoveries to return (default 5, max 8).
researchTopic
string
English research topic, e.g. "sulfide solid electrolytes for all-solid-state lithium batteries".
targetLanguages
array
ISO 639-1 codes of non-English languages to mine (max 6). Default zh, ja, de, fr, ko.
technicalBottleneck
string
English description of an unsolved technical bottleneck. Provide this, researchTopic or seedPaper (or several).
form-finder
Government Form & Procedure Finder (California, San Diego) — Given a plain-language situation (for example a city took belongings in an encampment sweep, a parking ticket, a contractor overcharge), returns the official government or court forms and procedures that apply, each with its official URL, issuer, how and where to file, fee, and the filing deadline computed from a reference date where a rule sets one. Covers California statewide plus the City and C
Argument
Type
Description
as_of
string
Reference date YYYY-MM-DD, taken as the trigger of each forward deadline rule (incident date, citation date, notice mailing date); each match names its trigger. Rules that count back from a future event (hearing, election) are returned without a date. Omit to get the rules without due dates.
situation*
string
Plain-language description of what happened or what the person wants to do.
max_results
integer
Default 5.
jurisdiction*
object
Input schema (JSON)
{
"type": "object",
"required": [
"situation",
"jurisdiction"
],
"properties": {
"as_of": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Reference date YYYY-MM-DD, taken as the trigger of each forward deadline rule (incident date, citation date, notice mailing date); each match names its trigger. Rules that count back from a future event (hearing, election) are returned without a date. Omit to get the rules without due dates."
},
"situation": {
"type": "string",
"maxLength": 2000,
"minLength": 10,
"description": "Plain-language description of what happened or what the person wants to do."
},
"max_results": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Default 5."
},
"jurisdiction": {
"type": "object",
"required": [
"state"
],
"properties": {
"city": {
"type": "string",
"maxLength": 100,
"description": "e.g. San Diego. A city of San Diego implies San Diego County."
},
"state": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Uppercase two-letter state code. Only CA has entries."
},
"county": {
"type": "string",
"maxLength": 100,
"description": "e.g. San Diego. Omit if unknown."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
formula-weight
Formula weight from a chemical formula (Hill notation, IUPAC/CIAAW weights) — Parses a chemical formula (parentheses, brackets, hydrate dots such as CuSO4·5H2O, an ignored charge) for a chemist or an agent that must check a molar mass, and returns the Hill-notation formula, the formula weight in g/mol from the CIAAW abridged standard atomic weights summed exactly in decimal arithmetic, and mass fractions. Pass claimedWeight and tolerance to check a stated molar mass. Elemen
Argument
Type
Description
mode
string
formula (default) computes the weight; smiles validates syntax only.
smiles
string
A single SMILES string without a name, at most 200 characters (mode smiles).
formula
string
Chemical formula, at most 200 characters. Element symbols are case-sensitive (Co is cobalt, CO is carbon monoxide). Hydrate separators: . · • *. A trailing charge such as ^2+, 2- after a bracket, or a bare + or - is ignored.
tolerance
number
Allowed absolute difference from claimedWeight in g/mol. Default 0.01.
claimedWeight
number
Stated molar mass to check, g/mol.
elementWeights
array
Caller-chosen weights; they take precedence over the table and are the only way to weigh elements without a standard atomic weight.
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"mode": {
"enum": [
"formula",
"smiles"
],
"type": "string",
"description": "formula (default) computes the weight; smiles validates syntax only."
},
"smiles": {
"type": "string",
"maxLength": 200,
"description": "A single SMILES string without a name, at most 200 characters (mode smiles)."
},
"formula": {
"type": "string",
"maxLength": 200,
"description": "Chemical formula, at most 200 characters. Element symbols are case-sensitive (Co is cobalt, CO is carbon monoxide). Hydrate separators: . · • *. A trailing charge such as ^2+, 2- after a bracket, or a bare + or - is ignored."
},
"tolerance": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Allowed absolute difference from claimedWeight in g/mol. Default 0.01."
},
"claimedWeight": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Stated molar mass to check, g/mol."
},
"elementWeights": {
"type": "array",
"items": {
"type": "object",
"required": [
"symbol",
"weight"
],
"properties": {
"symbol": {
"type": "string",
"maxLength": 3,
"description": "Element symbol."
},
"weight": {
"type": "number",
"maximum": 1000,
"minimum": 0.0001,
"description": "Atomic weight to use, g/mol."
}
}
},
"maxItems": 20,
"description": "Caller-chosen weights; they take precedence over the table and are the only way to weigh elements without a standard atomic weight."
}
},
"additionalProperties": false
}
future-work-miner
Open Research Opportunity Miner — Leads with a verdict (OPEN_GAPS_FOUND, NO_CLEAR_OPEN_GAPS or NO_GAPS_EXTRACTED), a confidence, a headline naming the top gap with its quoted evidence, and the next step. Collects papers for a topic or seed list (arXiv ids or URLs, DOIs, PMIDs; arXiv and OpenAlex search), reads full text from ar5iv or Europe PMC, and extracts future-work, limitation and open-question sentences in code with exact se
Argument
Type
Description
mode
string
fast: zero model calls (lexical clustering and lexical addressed-check). full (default): one clustering call and one judging call, bounded to one status level.
field
string
Field or discipline keyword added to the topic search, e.g. "machine learning".
query
string
Research topic, e.g. "parameter-efficient fine-tuning of language models".
seeds
array
Seed papers you already have: arXiv ids or URLs (2106.09685, arXiv:1706.03762, arxiv.org/abs/...), DOIs or doi.org URLs, or PMIDs (PMID:12345678 or a PubMed URL). Always analysed, not date-filtered.
toDate
string
Only topic-search papers published on or before this date (YYYY-MM-DD).
fromDate
string
Only topic-search papers published on or after this date (YYYY-MM-DD).
maxPapers
integer
Papers to analyse, at most 25 (default 10); seeds count toward it.
geo-axis-check
Coordinate axis-order and unit check from a CRS and its area of use — Checks up to 1000 coordinate pairs (or one bounding box) against the EPSG coordinate system you name, for agents handling GIS or map data: it flags longitude/latitude swaps, degrees supplied where metres are expected (or the reverse), values outside the CRS's area of use, and inverted bounds, with the point index and values. It does not reproject, geocode, validate geometry topology or datum, or j
Argument
Type
Description
crs*
string
EPSG code in any common form (EPSG:4326, 4326, urn:ogc:def:crs:EPSG::4326) or CRS84. See versions for the snapshot of known codes; others return unknown unless areaOfUse is supplied.
bounds
array
[minFirst, minSecond, maxFirst, maxSecond] in the data's own order; its two corners are checked like points and min must not exceed max.
areaOfUse
array
[south, west, north, east] degrees; overrides the snapshot for a geographic CRS or supplies one for an unknown geographic code.
coordinates
array
[first, second] pairs exactly as they appear in the data.
declaredOrder
string
What the data claims: lon-lat or easting-northing means the first value is the east axis; lat-lon or northing-easting means north first. Default: the CRS's EPSG authority order (CRS84: lon-lat).
Input schema (JSON)
{
"type": "object",
"required": [
"crs"
],
"properties": {
"crs": {
"type": "string",
"maxLength": 80,
"description": "EPSG code in any common form (EPSG:4326, 4326, urn:ogc:def:crs:EPSG::4326) or CRS84. See versions for the snapshot of known codes; others return unknown unless areaOfUse is supplied."
},
"bounds": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4,
"description": "[minFirst, minSecond, maxFirst, maxSecond] in the data's own order; its two corners are checked like points and min must not exceed max."
},
"areaOfUse": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 4,
"minItems": 4,
"description": "[south, west, north, east] degrees; overrides the snapshot for a geographic CRS or supplies one for an unknown geographic code."
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2
},
"maxItems": 1000,
"description": "[first, second] pairs exactly as they appear in the data."
},
"declaredOrder": {
"enum": [
"lon-lat",
"lat-lon",
"easting-northing",
"northing-easting"
],
"type": "string",
"description": "What the data claims: lon-lat or easting-northing means the first value is the east axis; lat-lon or northing-easting means north first. Default: the CRS's EPSG authority order (CRS84: lon-lat)."
}
},
"additionalProperties": false
}
geo-distance
Great-circle and WGS-84 ellipsoidal distance between coordinates — Computes the haversine (IUGG mean-radius sphere) and Vincenty inverse (WGS-84 ellipsoid) distance in metres plus initial and final bearings for up to 100 coordinate pairs, and optionally checks a claimed distance within a tolerance. Vincenty is millimetre-accurate except for nearly antipodal pairs, where it does not converge: those pairs return vincentyMeters null, status unknown and the haversine
Argument
Type
Description
pairs*
array
Coordinate pairs.
claimBasis
string
Which distance claimedMeters is compared against (default vincenty).
GraphQL depth and static complexity score — Parses a GraphQL document (query, mutation or subscription) per the June 2018 spec and returns depth, field count, alias count, fragment list, cycle detection and a static complexity score. Complexity uses the common 'Σ field-score × list-multiplier' model: a listFields config maps parent-type + field-name to either a constant multiplier or a field argument name to read (e.g. 'first', 'limit'), wi
Argument
Type
Description
query*
string
The GraphQL document text.
maxDepth
integer
Fail if depth exceeds this. Default 15.
variables
object
Variable values, used only to resolve list-argument multipliers like first: $first.
listFields
object
Per-type field multiplier config. See description for shape.
maxComplexity
integer
Fail if complexity exceeds this. Default 1000.
operationName
string
Pick this operation; defaults to the first.
defaultListMultiplier
integer
Fallback multiplier for list fields not declared in listFields. Default 10.
Input schema (JSON)
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 200000,
"description": "The GraphQL document text."
},
"maxDepth": {
"type": "integer",
"description": "Fail if depth exceeds this. Default 15."
},
"variables": {
"type": "object",
"description": "Variable values, used only to resolve list-argument multipliers like first: $first."
},
"listFields": {
"type": "object",
"description": "Per-type field multiplier config. See description for shape."
},
"maxComplexity": {
"type": "integer",
"description": "Fail if complexity exceeds this. Default 1000."
},
"operationName": {
"type": "string",
"maxLength": 100,
"description": "Pick this operation; defaults to the first."
},
"defaultListMultiplier": {
"type": "integer",
"description": "Fallback multiplier for list fields not declared in listFields. Default 10."
}
},
"additionalProperties": false
}
gtin-hierarchy
GTIN hierarchy: GTIN-8/12/13/14 forms, GS1 prefix, packaging-level link — Takes up to 100 GTINs and, for an agent reconciling a product feed or order lines, validates each check digit, converts it to the 14-digit form, reads the indicator digit and GS1 Prefix (restricted-circulation, ISBN/ISSN range, coupon), and, when a parent GTIN is given, checks the two share one base item (the packaging-level link). It does not look up the brand owner, the product or the country of
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"gtin"
],
"properties": {
"gtin": {
"type": "string",
"maxLength": 32,
"minLength": 1
},
"parent": {
"type": "string",
"maxLength": 32,
"description": "Another GTIN that should be a packaging level of the same base item (for example the case GTIN-14 of a consumer unit)."
}
}
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
hash-receipt
Signed hash receipt (Merkle batch, RFC 9162) — Timestamped, signed receipt for up to 256 SHA-256 hashes in one call: an RFC 9162 Merkle root, a per-hash inclusion proof, and the hub's W3C VC + EIP-191 signatures over both. For agents that need third-party evidence of what they did and when (action logs, generated files, prompts, tool outputs) without sending the data itself. Pure code, no model; verify free at /api/v1/verify-provenance.
Argument
Type
Description
label
string
Optional caller label (run id, job id) included in the signed receipt.
hashes*
array
SHA-256 digests, 64 hex characters each. Hash your data locally; only the digests are sent.
proofs
boolean
Return an inclusion proof per hash. Default true.
Input schema (JSON)
{
"type": "object",
"required": [
"hashes"
],
"properties": {
"label": {
"type": "string",
"maxLength": 200,
"description": "Optional caller label (run id, job id) included in the signed receipt."
},
"hashes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 64
},
"maxItems": 256,
"minItems": 1,
"description": "SHA-256 digests, 64 hex characters each. Hash your data locally; only the digests are sent."
},
"proofs": {
"type": "boolean",
"description": "Return an inclusion proof per hash. Default true."
}
},
"additionalProperties": false
}
heal-scraper
Self-Healing Scraper & DOM-to-JSON Compiler — Synthesizes durable CSS selectors (Cheerio; no XPath) for a target JSON schema, proves them against the live DOM in-request, and returns the extracted data plus a ready-to-run TypeScript Cheerio extractor.
Argument
Type
Description
url
string
Page to fetch. Provide url or html.
html
string
Raw HTML to use instead of fetching.
targetSchema*
object
JSON Schema of the fields to extract: an object whose properties are string/number/integer/boolean (or arrays of those), or an array whose items are such an object for list pages. The pattern keyword is not allowed.
previousBrokenSelectors
object
Map of field name to the CSS selector that stopped working.
Input schema (JSON)
{
"type": "object",
"required": [
"targetSchema"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"description": "Page to fetch. Provide url or html."
},
"html": {
"type": "string",
"maxLength": 1500000,
"description": "Raw HTML to use instead of fetching."
},
"targetSchema": {
"type": "object",
"description": "JSON Schema of the fields to extract: an object whose properties are string/number/integer/boolean (or arrays of those), or an array whose items are such an object for list pages. The pattern keyword is not allowed."
},
"previousBrokenSelectors": {
"type": "object",
"description": "Map of field name to the CSS selector that stopped working."
}
},
"additionalProperties": false
}
hedge-extract
Extract hedging and certainty cues (may, probably, clearly, approximately) from text with offsets — Finds hedge and booster cues in an agent's or source's text using a fixed English lexicon (modals, epistemic verbs, adverbs and adjectives, approximators, shield phrases, certainty boosters) plus caller-supplied phrases, and returns each cue with its category, the sentence it sits in, and offsets in UTF-16, code points, UTF-8 bytes and graphemes. Rule-based and English only: a cue is a word match,
HTTP cacheability, CORS and redirect-loop explainer — Explains from supplied response headers (and optionally the request's headers, a CORS request, and a redirect chain) whether a shared and a private HTTP cache may store the response (RFC 9111 section 3), its freshness lifetime and basis (s-maxage, max-age, Expires minus Date, or the 10% Last-Modified heuristic), Vary, invalid max-age or Expires, the CORS check and preflight outcome per the Fetch S
Classify an HTTP response as success, retry, reconcile or stop, with the wait it asks for — Classifies one HTTP response (method, status, headers) as success / retry / reconcile / stop for an agent that just called an API, and reads the wait from Retry-After (RFC 9110: delay-seconds or any of the three HTTP-date formats) or from a vendor delay header whose dialect the caller declares (seconds, milliseconds, epoch seconds, epoch milliseconds, HTTP-date). Caller-supplied vendor rules (stat
Argument
Type
Description
asOf
string
RFC 3339 instant; needed to turn an HTTP-date or epoch delay into seconds.
method*
string
status*
integer
headers
array
Response headers as name/value pairs (names compared case-insensitively).
delayHeader
object
Which header carries the wait and in what dialect. Default is Retry-After under RFC 9110.
IAM policy action minimizer: wildcards to the required action list — Takes an AWS IAM policy JSON and the exact list of actions a task needs (up to 300), and returns the policy with each Allow statement's Action narrowed to just those actions, plus what the original over-grants: wildcards, unused actions, Allow+NotAction, required actions no statement grants, and required actions an unconditional Deny blocks. For an agent that is about to attach or propose a policy
Argument
Type
Description
policy*
any
The IAM policy document as a JSON object or JSON string. At most 60,000 characters.
knownActions
array
Optional catalog of real actions (from the AWS service reference JSON), used to count what each wildcard grants.
requiredActions*
array
Concrete actions the task needs, e.g. s3:GetObject. No wildcards.
Input schema (JSON)
{
"type": "object",
"required": [
"policy",
"requiredActions"
],
"properties": {
"policy": {
"description": "The IAM policy document as a JSON object or JSON string. At most 60,000 characters."
},
"knownActions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128
},
"maxItems": 3000,
"description": "Optional catalog of real actions (from the AWS service reference JSON), used to count what each wildcard grants."
},
"requiredActions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"minLength": 3
},
"maxItems": 300,
"minItems": 1,
"description": "Concrete actions the task needs, e.g. s3:GetObject. No wildcards."
}
},
"additionalProperties": false
}
id-block
Monotonic id blocks: the next invoice or ticket numbers for a fleet of agents — Hands out strictly increasing integer blocks from a named sequence (1-1000 ids per call) so parallel agents never issue the same invoice, ticket or order number. Numbers are never reused. Not gapless: a block an agent reserves and never uses stays a gap, and if your call's payment fails after the block is written the same requestId returns that same block on retry. Legally gapless series must be a
Argument
Type
Description
op*
string
count
integer
Ids to reserve; default 1.
start
integer
First id of a new sequence; ignored once it exists. Default 1.
sequence*
string
Sequence name, e.g. invoice:2026.
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
Input schema (JSON)
id-kind
Identify an identifier's kind: UUID version, ULID, KSUID, snowflake, Stripe/GitHub/AWS prefix, EVM address, email, E.164 — Classifies up to 100 identifier strings by format and, where it can be read, decodes the embedded timestamp, for an agent that must not pass an id of the wrong kind to a payment, ledger or API call. Recognises UUID (RFC 9562 version and variant, nil and max), ULID, KSUID, Discord and Twitter snowflakes, EIP-55 EVM addresses (checksum verified), email (WHATWG syntax and RFC 5321 length limits), E.1
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"expect": {
"enum": [
"uuid",
"ulid",
"ksuid",
"snowflake",
"evm-address",
"email",
"e164",
"stripe-object-id",
"github-token",
"aws-iam-unique-id"
],
"type": "string",
"description": "The kind the caller needs. Then the answer is pass if the value is a valid id of that kind, fail otherwise."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
idempotency-fingerprint
Derive a stable idempotency fingerprint from declared identity fields and flag volatile fields — Hashes the fields you declare as the identity of an operation (JSON Pointers into each request) with RFC 8785 canonical JSON and SHA-256, so retries of the same operation get the same fingerprint regardless of key order, and flags the ways that breaks: an identity field missing, an identity field also declared volatile, identity values that look like timestamps, epoch times or UUIDs (heuristic), a
Argument
Type
Description
scope
string
Mixed into the hash (for example operation name and tenant) so equal bodies in different scopes get different fingerprints.
identity*
array
JSON Pointers whose values define the operation's identity.
requests*
array
volatile
array
JSON Pointers declared to change per attempt (timestamps, nonces, request ids).
Input schema (JSON)
{
"type": "object",
"required": [
"requests",
"identity"
],
"properties": {
"scope": {
"type": "string",
"maxLength": 200,
"description": "Mixed into the hash (for example operation name and tenant) so equal bodies in different scopes get different fingerprints."
},
"identity": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 50,
"minItems": 1,
"description": "JSON Pointers whose values define the operation's identity."
},
"requests": {
"type": "array",
"items": {
"description": "A request (body, or {method,url,body}) as JSON; several attempts of the same intended operation."
},
"maxItems": 20,
"minItems": 1
},
"volatile": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 50,
"description": "JSON Pointers declared to change per attempt (timestamps, nonces, request ids)."
}
},
"additionalProperties": false
}
idempotency-registry
Idempotency registry: has key K already been done? Claim it, complete it, read the stored result — Shared memory for side-effecting operations across agents and retries. begin(key) answers proceed (you hold a short claim), wait (another owner is mid-flight), already_completed (returns the stored result pointer), or fingerprint_mismatch (same key, different operation). complete(key) records the result pointer; abandon(key) lets someone retry. The claim expires, so a crashed worker does not block
Argument
Type
Description
op*
string
key*
string
Idempotency key, e.g. refund:ch_123:2026-11-04.
owner
string
Worker id; required for begin, complete and abandon.
result
object
complete: where the outcome lives (do not store payloads here).
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
inbox-create
Receive-only inbox for agents without a public endpoint — Creates a receive-only inbox for an AI agent that has no public endpoint: a webhook URL that accepts POST or PUT, and (when the operator has configured inbound email) a unique email address. Pair with inbox-poll to read what arrived. It never sends email or calls out, does not store attachments, does not verify senders (no SPF/DKIM), and message content is untrusted third-party data. Inboxes live
Argument
Type
Description
label
string
Optional name for your own bookkeeping.
tenantId
string
Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid.
Input schema (JSON)
{
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 64,
"description": "Optional name for your own bookkeeping."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid."
}
},
"additionalProperties": false
}
inbox-poll
Read messages from a receive-only agent inbox — Returns the emails and webhook deliveries that arrived in an inbox you created with inbox-create, oldest first, with sender, subject, selected headers, a plain-text body (up to 64 KB per message in the response) and a sha256 of the stored body. Filter by since (inclusive), kind, limit up to 100; mark_consumed hides the returned messages from later polls unless include_consumed is true. It does not
Argument
Type
Description
kind
string
Default all.
limit
integer
Default 50.
since
any
Only messages received at or after this time: epoch milliseconds or ISO 8601 (UTC when no offset). Inclusive, so dedupe by id or use mark_consumed.
inbox_id*
string
tenantId
string
Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid.
mark_consumed
boolean
Mark the returned messages consumed. Default false.
include_consumed
boolean
Also return consumed messages. Default false.
Input schema (JSON)
{
"type": "object",
"required": [
"inbox_id"
],
"properties": {
"kind": {
"enum": [
"all",
"email",
"webhook"
],
"type": "string",
"description": "Default all."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Default 50."
},
"since": {
"anyOf": [
{
"type": "integer",
"maximum": 8640000000000000,
"minimum": 0
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Only messages received at or after this time: epoch milliseconds or ISO 8601 (UTC when no offset). Inclusive, so dedupe by id or use mark_consumed."
},
"inbox_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid."
},
"mark_consumed": {
"type": "boolean",
"description": "Mark the returned messages consumed. Default false."
},
"include_consumed": {
"type": "boolean",
"description": "Also return consumed messages. Default false."
}
},
"additionalProperties": false
}
infrastructure-pipeline-brief
Grid, Tower & Infrastructure Pipeline Near a Site — Screens a US site (latitude/longitude or Census-geocoded address) within a radius (default 10, max 50 miles) using primary public data: operating and planned generators and storage from EIA Form 860M, active interconnection-queue entries from MISO, CAISO, NYISO and ERCOT matched at county level, FCC Antenna Structure Registration towers, and HIFLD transmission lines and substations. Code computes
Argument
Type
Description
focus
string
Which screening signals to emphasise. Default general.
address
string
US street address, geocoded with the Census Bureau geocoder. Used when latitude/longitude are absent.
latitude
number
WGS84 latitude of the site (United States and territories). Give latitude and longitude together, or address.
longitude
number
WGS84 longitude of the site.
radius_miles
number
Search radius in miles (default 10, clamped to at most 50).
window_years
integer
Window for capacity added within the radius (default 3 years).
Input schema (JSON)
{
"type": "object",
"properties": {
"focus": {
"enum": [
"data_center",
"logistics",
"telecom",
"solar_storage",
"general"
],
"type": "string",
"description": "Which screening signals to emphasise. Default general."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 5,
"description": "US street address, geocoded with the Census Bureau geocoder. Used when latitude/longitude are absent."
},
"latitude": {
"type": "number",
"maximum": 72,
"minimum": 17,
"description": "WGS84 latitude of the site (United States and territories). Give latitude and longitude together, or address."
},
"longitude": {
"type": "number",
"maximum": -64,
"minimum": -180,
"description": "WGS84 longitude of the site."
},
"radius_miles": {
"type": "number",
"maximum": 200,
"minimum": 0.5,
"description": "Search radius in miles (default 10, clamped to at most 50)."
},
"window_years": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Window for capacity added within the radius (default 3 years)."
}
},
"additionalProperties": false
}
instruction-data-split
Label spans of a prompt as pasted data or instructions, and flag instruction-like text inside the data — Splits an agent's input into data regions (code fences, block quotes, XML-style wrappers such as <document>, BEGIN/END markers, triple quotes, email headers with body, JSON blocks) and the text around them, labels each sentence outside the data as instruction (leading imperative verb or polite request) or unknown, and lists injection-style phrases found anywhere in the text ('ignore previous instr
Argument
Type
Description
text*
string
The full prompt or tool result to split.
dataTags
array
Extra XML-style tag names (letters, digits, underscore) whose content is data.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "The full prompt or tool result to split."
},
"dataTags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 20,
"description": "Extra XML-style tag names (letters, digits, underscore) whose content is data."
}
},
"additionalProperties": false
}
invoice-audit
Invoice arithmetic audit: line extensions, discounts, supplied tax, totals, with the drift in minor units — Recomputes up to 500 invoice lines in exact decimal arithmetic and compares them with the stated amounts, for an agent about to approve, pay or reconcile an invoice. Checks: quantity x unit price less discount equals the line amount; tax is taken as supplied (tax amounts are summed, never looked up) and, where a rate is given, tax equals rate x line amount under the declared rounding scope (per li
Argument
Type
Description
lines*
array
stated
object
currency
string
ISO 4217 alphabetic code, upper case.
exponent
integer
rounding
string
Default half-up. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity.
taxRounding
string
line (default): each line's tax is rounded on its own. invoice: tax is rounded once per distinct rate on the sum of the line amounts, and compared with the supplied tax sum for that rate.
toleranceMinor
integer
Largest absolute drift in minor units still treated as a match. Default 0.
join-cardinality
Row multiplication, unmatched keys and uniqueness violations before a table join — Takes the join keys of two tables (every row's key, or distinct keys with row counts) and computes the exact output row count of an inner, left, right or full equi-join with SQL NULL semantics, the observed cardinality (one-to-one, one-to-many, many-to-one, many-to-many), the keys that multiply rows the most, unmatched keys on each side and the first duplicate row when a side was assumed unique. I
Argument
Type
Description
left*
object
right*
object
expect
object
joinType*
string
normalize
object
Normalization your pipeline applies to string keys before joining.
Input schema (JSON)
{
"type": "object",
"required": [
"left",
"right",
"joinType"
],
"properties": {
"left": {
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": {
"description": "One row's join key: a string, number or boolean, null for SQL NULL, or an array of those for a composite key."
},
"maxItems": 20000,
"description": "Join key of every row, in table order."
},
"counts": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"count"
],
"properties": {
"key": {
"description": "A join key (scalar, null, or array for composite)."
},
"count": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 5000,
"description": "Key summary: how many rows carry each distinct key."
},
"nullRows": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "With counts: rows whose key is NULL."
}
},
"additionalProperties": false
},
"right": {
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": {
"description": "One row's join key: a string, number or boolean, null for SQL NULL, or an array of those for a composite key."
},
"maxItems": 20000,
"description": "Join key of every row, in table order."
},
"counts": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"count"
],
"properties": {
"key": {
"description": "A join key (scalar, null, or array for composite)."
},
"count": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 5000,
"description": "Key summary: how many rows carry each distinct key."
},
"nullRows": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "With counts: rows whose key is NULL."
}
},
"additionalProperties": false
},
"expect": {
"type": "object",
"properties": {
"leftUnique": {
"type": "boolean",
"description": "Left keys (non-NULL) must be distinct."
},
"rightUnique": {
"type": "boolean",
"description": "Right keys (non-NULL) must be distinct."
},
"maxOutputRows": {
"type": "integer",
"maximum": 9000000000000000,
"minimum": 0
},
"everyLeftMatched": {
"type": "boolean"
},
"everyRightMatched": {
"type": "boolean"
},
"noRowMultiplication": {
"type": "boolean",
"description": "The output must not have more rows than the preserved side."
}
},
"additionalProperties": false
},
"joinType": {
"enum": [
"inner",
"left",
"right",
"full"
],
"type": "string"
},
"normalize": {
"type": "object",
"properties": {
"trim": {
"type": "boolean"
},
"caseFold": {
"type": "boolean"
}
},
"description": "Normalization your pipeline applies to string keys before joining.",
"additionalProperties": false
}
},
"additionalProperties": false
}
json-patch-conflict
Conflicts between two to four RFC 6902 JSON Patches made against the same document — Takes one base document and 2 to 4 JSON Patch (RFC 6902) operation lists written against it and reports, per pair, whether they commute: same-path writes, ancestor/descendant overlaps, array-index shifts (an insert or remove moves the elements a later patch addressed by index), concurrent `-` appends whose final order depends on application order, `test` operations invalidated by another patch, an
Argument
Type
Description
patches*
array
document*
any
The base document both patches were written against (any JSON value).
JWT lint: alg none, crit, key-URL headers, expiry, audience (decode only) — Decodes a compact JWT (never verifies the signature) and checks it against RFC 7519 and RFC 8725 for an agent about to trust or forward it: alg none or missing, crit and key-supplying headers (jku, x5u, jwk), kid injection shape, duplicate claims, and exp, nbf, iat against a caller-supplied time, plus optional expected algorithms, issuer and audience. Without asOf the time claims are not judged an
Argument
Type
Description
asOf
integer
Reference instant, epoch seconds. Required to judge exp/nbf/iat.
JWT signature and claims verification — Verifies a JWS-compact JWT: signature over `base64url(header).base64url(payload)` with Web Crypto under the exact algorithm in the token's `alg` header (HS256/384/512, RS256/384/512, PS256/384/512, ES256/384/512, EdDSA). Refuses 'none' unconditionally and rejects any alg not in the caller's allowedAlgorithms. Validates exp/nbf with a configurable clock-skew tolerance (default 60s), iss equality, a
Argument
Type
Description
key*
object
token*
string
The JWS-compact JWT: three base64url parts joined by '.'.
issuer
string
Require payload.iss to equal this.
nowIso
string
Override 'now' for deterministic tests.
audience
string
Require payload.aud to include this.
toleranceSeconds
integer
Clock-skew tolerance for exp/nbf. Default 60s.
allowedAlgorithms*
array
Algorithms the caller accepts; verification fails if the header's alg is not here.
Input schema (JSON)
{
"type": "object",
"required": [
"token",
"key",
"allowedAlgorithms"
],
"properties": {
"key": {
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"enum": [
"hmac-secret",
"pem-spki",
"jwk"
],
"type": "string"
},
"value": {
"description": "The key material: a string for hmac-secret and pem-spki, a JWK object for jwk."
}
}
},
"token": {
"type": "string",
"maxLength": 16000,
"description": "The JWS-compact JWT: three base64url parts joined by '.'."
},
"issuer": {
"type": "string",
"maxLength": 200,
"description": "Require payload.iss to equal this."
},
"nowIso": {
"type": "string",
"maxLength": 40,
"description": "Override 'now' for deterministic tests."
},
"audience": {
"type": "string",
"maxLength": 200,
"description": "Require payload.aud to include this."
},
"toleranceSeconds": {
"type": "integer",
"description": "Clock-skew tolerance for exp/nbf. Default 60s."
},
"allowedAlgorithms": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "Algorithms the caller accepts; verification fails if the header's alg is not here."
}
},
"additionalProperties": false
}
k8s-crosscheck
Kubernetes manifest cross-reference check — Parses up to 20 Kubernetes YAML manifests and checks that they agree with each other, for an agent that generated or edited manifests before kubectl apply: Service selectors against pod template labels (with the nearest near-miss), named targetPorts against containerPort names, Service port naming, Deployment selector against its template labels, Ingress backends against Services, and ConfigMap/Se
Argument
Type
Description
manifests*
array
YAML text, multi-document allowed. At most 24000 characters in total (the parser costs about 1 ms per 1,000 characters).
closedWorld
boolean
Declare that the manifests are the complete set: a reference to an object that is not supplied then fails instead of staying unverified.
Input schema (JSON)
{
"type": "object",
"required": [
"manifests"
],
"properties": {
"manifests": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200000
},
"maxItems": 20,
"minItems": 1,
"description": "YAML text, multi-document allowed. At most 24000 characters in total (the parser costs about 1 ms per 1,000 characters)."
},
"closedWorld": {
"type": "boolean",
"description": "Declare that the manifests are the complete set: a reference to an object that is not supplied then fails instead of staying unverified."
}
},
"additionalProperties": false
}
lead-enrichment
Autonomous Lead Enrichment — Scrapes a company homepage, deduces its value proposition and buyer persona, and drafts a targeted B2B cold email.
Argument
Type
Description
url*
string
Company homepage URL; https:// is assumed if omitted.
senderContext
string
What you sell, used to tailor the pitch.
Input schema (JSON)
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 3,
"description": "Company homepage URL; https:// is assumed if omitted."
},
"senderContext": {
"type": "string",
"maxLength": 2000,
"description": "What you sell, used to tailor the pitch."
}
},
"additionalProperties": false
}
lease
Short lease with fencing tokens: claim a task for N seconds, renew, release — Lets many agents agree which one works on a task: acquire a named resource for 1-3600 s, renew it while working, release it when done. Every new acquisition returns a strictly larger fencing token; pass it to the downstream store and reject writes carrying a smaller one, so a paused holder whose lease expired cannot clobber its successor. Re-acquiring as the current holder extends the lease with t
Argument
Type
Description
op*
string
token
integer
Fencing token from acquire; required for renew and release.
holder
string
Your worker id. Required for acquire, renew and release.
resource*
string
Task or resource name, e.g. invoice:INV-1009 or deploy:prod.
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
legal-cite-verifier
Legal citation and quotation verifier (US case law) — Extracts US reporter citations from a brief (U.S., S. Ct., L. Ed., F., F.2d, F.3d, F.4th, F. Supp., state and regional reporters) and checks each against Harvard's Caselaw Access Project and, when the operator has configured a token, the CourtListener Citation Lookup API. Reports FOUND, MISMATCH (case name, year or circuit differs), NOT_FOUND, AMBIGUOUS, or UNCHECKED with the reason, and never mar
Argument
Type
Description
text
string
Brief or memo text. Citations and their case names, court and year are extracted from it.
quotes
array
Quotations to find verbatim in the cited opinion.
citations
array
Citations to check instead of, or in addition to, text.
propositions
array
max_citations
integer
Distinct reporter citations to check. Default 40.
check_propositions
boolean
Default false. Runs one optional model call that may only point at a verified passage.
Input schema (JSON)
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 64000,
"minLength": 1,
"description": "Brief or memo text. Citations and their case names, court and year are extracted from it."
},
"quotes": {
"type": "array",
"items": {
"type": "object",
"required": [
"citation",
"quote"
],
"properties": {
"quote": {
"type": "string",
"maxLength": 4000,
"minLength": 12
},
"citation": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "Reporter citation the quote is attributed to."
}
},
"additionalProperties": false
},
"maxItems": 40,
"description": "Quotations to find verbatim in the cited opinion."
},
"citations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"maxItems": 60,
"description": "Citations to check instead of, or in addition to, text."
},
"propositions": {
"type": "array",
"items": {
"type": "object",
"required": [
"citation",
"proposition"
],
"properties": {
"citation": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"proposition": {
"type": "string",
"maxLength": 600,
"minLength": 10
}
},
"additionalProperties": false
},
"maxItems": 10
},
"max_citations": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Distinct reporter citations to check. Default 40."
},
"check_propositions": {
"type": "boolean",
"description": "Default false. Runs one optional model call that may only point at a verified passage."
}
},
"additionalProperties": false
}
license-identify
SPDX license identification from LICENSE text — Normalizes a LICENSE file (SPDX varietal substitutions: whitespace, case, quotes, bullets, copyright lines) and matches it against distinctive phrases of 32 common SPDX licenses (MIT, MIT-0, Apache-2.0, BSD-2/3/4-Clause, 0BSD, GPL-2/3 +/- or-later, LGPL-2.1/3.0 +/- or-later, AGPL-3.0 +/- or-later, MPL-2.0, ISC, Unlicense, CC0-1.0, Zlib, Artistic-2.0, EPL-2.0, BSL-1.0, WTFPL, Python-2.0, PostgreSQL
Literary Agent Scout: quoted wish-list matches with query status and fee checks — For an author with a book to query, finds literary agents and agencies on the agencies' own websites, reads their guidelines and agent bios, and ranks them against your pitch. Every fit claim carries a sentence quoted verbatim from the agent's page (quotes not found on the page are dropped), each agent shows whether the page says queries are open or closed with the retrieval time, and any agency p
Argument
Type
Description
pages
array
Agency submission, wish-list or agent-bio pages you already found. They are read and checked like the ones found by search.
discover
boolean
Search the web for more agencies (default true). Set false to check only the pages you supplied.
manuscript*
object
max_results
integer
Default 5.
Input schema (JSON)
{
"type": "object",
"required": [
"manuscript"
],
"properties": {
"pages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 8,
"description": "Agency submission, wish-list or agent-bio pages you already found. They are read and checked like the ones found by search."
},
"discover": {
"type": "boolean",
"description": "Search the web for more agencies (default true). Set false to check only the pages you supplied."
},
"manuscript": {
"type": "object",
"required": [
"category",
"pitch"
],
"properties": {
"comps": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 5,
"description": "Recent comparable titles."
},
"genre": {
"type": "string",
"maxLength": 80,
"description": "For example \"domestic suspense\" or \"cozy fantasy\"."
},
"pitch": {
"type": "string",
"maxLength": 3000,
"minLength": 40,
"description": "Logline or short synopsis; no manuscript text is needed."
},
"category": {
"enum": [
"adult_fiction",
"adult_nonfiction",
"memoir",
"young_adult",
"middle_grade",
"picture_book",
"graphic_novel"
],
"type": "string",
"description": "Where the book sits on a bookshelf."
},
"word_count": {
"type": "integer",
"maximum": 1000000,
"minimum": 1
}
},
"additionalProperties": false
},
"max_results": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Default 5."
}
},
"additionalProperties": false
}
llm-watermark-detector
Detect LLM text watermark evidence: green-list z-test for a key you hold, plus invisible-character markers — Tests whether text carries watermark evidence, for a pipeline that must decide whether to trust or label content. Two independent checks: (1) a green-list z-test (Kirchenbauer et al. 2023) over green flags you supply, or over token ids and a key using this endpoint's own HMAC-SHA256 scheme, returning the z-score and exact binomial p-value; (2) an invisible-character scan of the text for zero-width
Argument
Type
Description
key
string
Secret key for tokenIds. Used for this call only and never stored or echoed.
text
string
Text to scan for invisible markers.
gamma
number
Expected green fraction under no watermark. Default 0.25.
scheme
string
Scheme for tokenIds; default and only value.
tokenIds
array
Token ids in order (at most 5000). Green membership is computed from the key with the hmac-sha256-green-1 scheme; each distinct consecutive pair is scored once.
minTokens
integer
Fewer scored tokens than this is unknown. Default 25.
greenFlags
array
One 0/1 per scored token: 1 when your own detector's green list contains the token. Deduplicate repeated n-grams yourself if your scheme requires it.
locale-number
Parse locale-formatted money text (1.234,56, 1,00,000, accounting parentheses) without guessing — Parses up to 100 number or money strings such as "1.234,56", "1,00,000", "(1,234.50)", "¥1,000" or "CHF 1'234.50" into canonical decimal strings, for an agent reading amounts from documents, emails or tables. With a BCP 47 locale it applies that locale's CLDR separators (read from Intl.NumberFormat); without one it lists every valid reading and an ambiguous string such as "1,234" returns unknown w
Resolve git conflict markers in package-lock.json or a YAML lockfile — Takes a lockfile (package-lock.json or a YAML lockfile such as pnpm-lock.yaml) containing git merge-conflict markers, rebuilds both sides, and merges them key by key (using the diff3 base when present), returning the resolved file or the exact conflicting key paths with both values, for agents rebasing or merging branches. An optional prefer=ours|theirs applies one explicit policy to the remaining
Argument
Type
Description
format
string
Default auto: JSON when the file starts with { or [.
prefer
string
Policy for keys changed on both sides. Default none: report them.
content*
string
Whole file text; YAML at most 100000 characters.
Input schema (JSON)
{
"type": "object",
"required": [
"content"
],
"properties": {
"format": {
"enum": [
"auto",
"json",
"yaml"
],
"type": "string",
"description": "Default auto: JSON when the file starts with { or [."
},
"prefer": {
"enum": [
"none",
"ours",
"theirs"
],
"type": "string",
"description": "Policy for keys changed on both sides. Default none: report them."
},
"content": {
"type": "string",
"maxLength": 200000,
"description": "Whole file text; YAML at most 100000 characters."
}
},
"additionalProperties": false
}
log-collapse
Collapse a log into error signatures with counts and first/last occurrence — Groups the records of a log or CI output by signature: timestamps, UUIDs, IPs, hex ids, quoted values and numbers are replaced by placeholders, stack-trace continuation lines are attached to their record and contribute their first frames, and each signature reports its count, severity, first and last line, first and last timestamp (as written, when the line starts with an ISO 8601 timestamp) and a
Argument
Type
Description
text*
string
Log text, at most 8000 lines.
topN
integer
Signatures returned, by count. Default 20.
minSeverity
string
Ignore records below this severity. Default: keep all.
signatureFrames
integer
Continuation lines (stack frames) that are part of the signature. Default 3.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 300000,
"minLength": 1,
"description": "Log text, at most 8000 lines."
},
"topN": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Signatures returned, by count. Default 20."
},
"minSeverity": {
"enum": [
"fatal",
"error",
"warn",
"info",
"debug",
"trace",
"unknown"
],
"type": "string",
"description": "Ignore records below this severity. Default: keep all."
},
"signatureFrames": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "Continuation lines (stack frames) that are part of the signature. Default 3."
}
},
"additionalProperties": false
}
lossy-conversion
Does this value survive conversion to another numeric or spreadsheet type? Range, precision, leading zeros, E notation — Takes raw JSON literals (as written, so 9007199254740993, 1e400, -0, "007" and 0.10 are judged on their digits, not on a parsed double) and target types (binary64, binary32, int8..int64, uint8..uint64, PostgreSQL numeric(p,s), Arrow decimal128/decimal256, Parquet decimal, Excel cell, pandas int64) and reports for each pair whether the value is exact, lossy (rounded, truncated, leading zeros or sig
Argument
Type
Description
pairs
array
Identifier or text values before and after a round trip through another system.
samples
array
Raw JSON scalar literals exactly as written, e.g. 9007199254740993, "007", 1e400, 0.10, null.
Choose which inventory lots to pick (FIFO, FEFO, LIFO, fewest lots) — Allocates a demand quantity across up to 200 inventory lots under a stated policy (FIFO by received date, FEFO by expiry, LIFO, or fewest lots), excluding held, expired, short-shelf-life and wrong-location lots, in whole case multiples if asked. For warehouse and order agents. Returns the pick plan, the shortfall and a reason for every excluded lot. A caller asOf date is required (the check never
Argument
Type
Description
asOf*
string
Reference date, YYYY-MM-DD. An expiry date is the last usable day: a lot expiring on asOf has 0 days left.
lots*
array
At most 200.
demand*
integer
Units wanted (whole units).
policy*
string
FIFO: oldest received first. FEFO: earliest expiry first. LIFO: newest received first. MIN_LOTS: fewest lots (largest usable first; ties by earlier expiry, then id).
pickMultiple
integer
Each lot contributes whole multiples of this case size (default 1).
allowOverpick
boolean
With pickMultiple, allow the last pick to round the total up to a whole case (default false: leave the remainder as shortfall).
allowedLocations
array
magic-bytes
File type vs leading bytes (magic numbers, disguised HTML, truncation) — Compares a claimed file type (MIME type and/or file name) with the first bytes of the file, for an agent that is about to open, parse or forward a download. Detects PNG, JPEG, GIF, WebP, ZIP and OOXML (docx/xlsx/pptx), GZIP, PDF, MP4 (ftyp), ELF, PE, RAR, BMP, ICO and HTML, flags an HTML login or error page saved as a PDF/image/archive, and reports truncation from end-of-file markers when the last
Argument
Type
Description
head*
string
Standard padded base64 of the first bytes of the file (up to 32768 bytes decoded).
tail
string
Optional base64 of the last bytes (up to 4096 decoded), used for end-of-file markers when head is not the whole file.
complete
boolean
True when head is the entire file; end-of-file markers are then checked on it.
totalSize
integer
Optional total file size in bytes, for size-field comparisons (RIFF, MP4 boxes, ZIP directory).
claimedMime
string
Claimed Content-Type, parameters ignored.
claimedName
string
File name or path; the last extension is the claim.
Input schema (JSON)
{
"type": "object",
"required": [
"head"
],
"properties": {
"head": {
"type": "string",
"maxLength": 43692,
"description": "Standard padded base64 of the first bytes of the file (up to 32768 bytes decoded)."
},
"tail": {
"type": "string",
"maxLength": 5464,
"description": "Optional base64 of the last bytes (up to 4096 decoded), used for end-of-file markers when head is not the whole file."
},
"complete": {
"type": "boolean",
"description": "True when head is the entire file; end-of-file markers are then checked on it."
},
"totalSize": {
"type": "integer",
"maximum": 1000000000000,
"minimum": 0,
"description": "Optional total file size in bytes, for size-field comparisons (RIFF, MP4 boxes, ZIP directory)."
},
"claimedMime": {
"type": "string",
"maxLength": 255,
"description": "Claimed Content-Type, parameters ignored."
},
"claimedName": {
"type": "string",
"maxLength": 255,
"description": "File name or path; the last extension is the claim."
}
},
"additionalProperties": false
}
manual-applicability
Does this manual or procedure apply to this unit? — Checks whether a manual, service bulletin or procedure applies to a specific unit by comparing the scope the document declares (models, firmware or revision range, serial range, exclusions) with the unit's facts the caller supplies. Versions written as dotted digits (2.10.1) compare numerically per segment. For an agent about to follow a repair or configuration procedure. Applicable only when ever
Argument
Type
Description
unit*
array
The unit's facts: key is the field name.
excludes
array
Scope the document excludes: each entry that matches makes it inapplicable.
applicability*
array
Scope the document declares: every entry must match.
Input schema (JSON)
{
"type": "object",
"required": [
"applicability",
"unit"
],
"properties": {
"unit": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "When this was observed (ISO date or instant)."
},
"value": {
"description": "Observed JSON value. Omitted means the fact is present with no value; false or null means observed absent."
},
"source": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "The unit's facts: key is the field name."
},
"excludes": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive upper bound, same comparison rules as min."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive lower bound. Numbers compare numerically; two dotted-digit strings (1.10.2) compare segment by segment."
},
"field": {
"type": "string",
"maxLength": 100,
"description": "Unit attribute, for example model, firmware, serial, revision."
},
"oneOf": {
"type": "array",
"items": {
"description": "Allowed JSON value."
},
"maxItems": 50,
"description": "The evidence value must equal one of these."
},
"equals": {
"description": "The evidence value must equal this JSON value (deep equality)."
}
},
"additionalProperties": false
},
"maxItems": 100,
"description": "Scope the document excludes: each entry that matches makes it inapplicable."
},
"applicability": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive upper bound, same comparison rules as min."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive lower bound. Numbers compare numerically; two dotted-digit strings (1.10.2) compare segment by segment."
},
"field": {
"type": "string",
"maxLength": 100,
"description": "Unit attribute, for example model, firmware, serial, revision."
},
"oneOf": {
"type": "array",
"items": {
"description": "Allowed JSON value."
},
"maxItems": 50,
"description": "The evidence value must equal one of these."
},
"equals": {
"description": "The evidence value must equal this JSON value (deep equality)."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Scope the document declares: every entry must match."
}
},
"additionalProperties": false
}
manuscript-check
Manuscript Pre-submission Check — Verifies every reference in a manuscript against Crossref, OpenAlex, arXiv and Europe PMC (fabricated, mis-cited, retracted) and runs deterministic prose forensics on the same text. Runs reference-verifier ($0.50) + audit-prose-forensics ($1.00) in one paid call for 20% less than buying them separately. Charged only when every member succeeds.
Argument
Type
Description
genre
string
Context for the editorial pass only.
bibtex
string
BibTeX/BibLaTeX text (the contents of a .bib file).
manuscript*
string
Full manuscript text including its reference list.
references
string
Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago).
Input schema (JSON)
{
"type": "object",
"required": [
"manuscript"
],
"properties": {
"genre": {
"enum": [
"fiction",
"memoir",
"essay",
"journalism",
"academic",
"business",
"other"
],
"type": "string",
"description": "Context for the editorial pass only."
},
"bibtex": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "BibTeX/BibLaTeX text (the contents of a .bib file)."
},
"manuscript": {
"type": "string",
"maxLength": 300000,
"minLength": 1,
"description": "Full manuscript text including its reference list."
},
"references": {
"type": "string",
"maxLength": 200000,
"minLength": 10,
"description": "Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago)."
}
},
"additionalProperties": false
}
markdown-syntax-shaper
Normalize sloppy model-generated Markdown to one house style, leaving code untouched — Rewrites Markdown from a language model into a consistent style and reports each edit by line: restores the space in '##Title', converts '*', '+' and '•' bullets to your chosen marker, strips trailing whitespace (keeping two-space hard breaks), collapses runs of blank lines, puts blank lines around headings and fenced blocks, closes a fence left open at the end, and ends the file with one newline.
Argument
Type
Description
bullet
string
Marker for unordered lists. Default '-'.
markdown*
string
Markdown to normalize.
finalNewline
boolean
End with exactly one newline. Default true.
fixHeadingSpace
boolean
Restore the space in '##Title'. A lowercase '#tag' at level 1 is treated as a hashtag and left alone. Default true.
closeUnclosedFence
boolean
Append the closing fence when the document ends inside one. Default true.
collapseBlankLines
boolean
Collapse runs of blank lines and drop leading and trailing blanks. Default true.
blankLinesAroundBlocks
boolean
Insert a blank line around headings and top-level fenced blocks. Default true.
market-predictor
Prediction Market Analyzer — Independent probability that a Polymarket or Kalshi market resolves Yes, checked against the live book. Pass a market (slug, URL, conditionId or Kalshi ticker) and/or news text: the agent reads the rules, end date and best asks, estimates 0-100 with live web search (falling back to model knowledge if search is slow), and returns verdict.action BUY_YES / BUY_NO / NO_TRADE with edge in bps after tak
Argument
Type
Description
text
string
News excerpt or event description. Required unless market is given; with market, extra evidence you want weighed.
market
string
Polymarket slug, market URL or conditionId, or a Kalshi ticker or URL. Reads the question, rules, end date and live best asks; marketPriceYes then defaults to the book mid. A resolved market returns its outcome without a model call.
question
string
Exact market question; inferred when omitted (read from the market when market is given).
minEdgePct
number
Minimum edge after taker fees, in percentage points, before verdict.action is BUY_YES or BUY_NO (default 5). A low-confidence estimate never produces a BUY.
bankrollUsd
number
Converts the quarter-Kelly fraction into verdict.size_usd.
marketPriceYes
number
Current implied Yes probability, used to compute edge. Percent (0-100) by default; a value strictly between 0 and 1 is read as a 0-1 market price (Polymarket/Kalshi style) unless marketPriceScale says otherwise.
market-session
Is the exchange in its core session at this instant? (NYSE holidays and 13:00 early closes, or a caller calendar) — For up to 50 caller-supplied instants, reports whether the NYSE core session (09:30-16:00 America/New_York, 13:00 on early-close days) is open, the reason when closed (weekend, named holiday, before open, after close), that day's open and close instants and the next open; or the same for a caller venue (zone, open, close, holidays, early closes). NYSE data is a dated snapshot of nyse.com covering
Argument
Type
Description
open
string
venue caller only, local HH:MM.
close
string
venue caller only, local HH:MM, after open.
venue*
string
expect
string
If given, status is fail for any instant whose state differs.
weekend
array
Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend.
holidays
array
Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry).
instants*
array
RFC 3339 timestamps with Z or offset.
timeZone
string
mcp-tool-pin
MCP tool pin: detect changed tool definitions (rug pulls) and hidden Unicode — Send an MCP server's tools/list result (up to 200 tools) and, after the first call, the hashes you approved. Returns a reproducible manifest hash, a per-tool hash, which tools were added, removed or changed since approval (silent description and schema edits are how MCP rug pulls and tool poisoning land), and Unicode smuggling findings in every name, description and schema string. Call it at sessi
Argument
Type
Description
tools*
array
The tools array from an MCP tools/list response, as received.
approvedTools
object
Map of tool name to the per-tool hash you approved; enables the added/removed/changed diff.
approvedManifestHash
string
manifestHash from the call you approved.
Input schema (JSON)
{
"type": "object",
"required": [
"tools"
],
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"annotations": {
"type": "object"
},
"description": {
"type": "string",
"maxLength": 20000
},
"inputSchema": {
"type": "object"
},
"outputSchema": {
"type": "object"
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "The tools array from an MCP tools/list response, as received."
},
"approvedTools": {
"type": "object",
"description": "Map of tool name to the per-tool hash you approved; enables the added/removed/changed diff."
},
"approvedManifestHash": {
"type": "string",
"maxLength": 64,
"minLength": 64,
"description": "manifestHash from the call you approved."
}
},
"additionalProperties": false
}
medical-bill-auditor
Medical Bill Upcoding & Overcharge Slasher — Paste an itemized hospital or physician bill and get a decision first: dispute it or not, the estimated dollars above a defensible price, and a dispute letter ready to send. Flags E/M upcoding, NCCI unbundling, duplicates and unit errors line by line, prices professional claims against the CMS physician fee schedule, checks the No Surprises Act self-pay dispute deadline, and lists the letter's pla
Argument
Type
Description
billText
string
Alternative to lineItems: paste the itemized bill, one line item per line, e.g. "99285 EMERGENCY DEPT VISIT LVL 5 1 $3,250.00". Lines with a CPT/HCPCS code and a dollar amount are read in code; send exactly one of lineItems or billText.
coverage
string
Determines which No Surprises Act protections can apply.
claimType
string
Physician (CMS-1500) or hospital/facility (UB-04) bill. Medicare physician fee schedule benchmarks apply only to professional claims.
lineItems
array
patientName
string
facilityName
string
facilityType*
string
patientState
mesh-check
STL mesh check: open edges, non-manifold edges, inverted normals — Checks a binary or ASCII STL mesh of up to 4000 triangles for a 3D-printing or CAD agent: open (boundary) edges, edges shared by more than two triangles, inconsistent winding, degenerate and duplicate triangles, normals that disagree with the vertex order, and an inside-out (negative signed volume) closed mesh, with triangle indices as witnesses. Input is base64 of the STL file (up to 200084 bytes
Argument
Type
Description
data*
string
Padded base64 of the STL file, binary or ASCII.
weldTolerance
number
Vertices closer than this (grid-snapped, model units) are treated as the same vertex. Default 0: exact float32 equality.
Input schema (JSON)
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"maxLength": 266780,
"description": "Padded base64 of the STL file, binary or ASCII."
},
"weldTolerance": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Vertices closer than this (grid-snapped, model units) are treated as the same vertex. Default 0: exact float32 equality."
}
},
"additionalProperties": false
}
metar-parse
METAR / SPECI decoder with flight category — Decodes up to 20 METAR or SPECI aviation weather reports (US and ICAO forms: wind with gusts and variable direction, visibility in statute miles or metres, CAVOK, RVR, present weather, cloud layers, temperature/dew point, altimeter, trend, RMK remarks) into structured fields and computes the FAA flight category (LIFR/IFR/MVFR/VFR). Every token it cannot decode is returned with its character offset
Argument
Type
Description
claims
array
Optional claims to verify against the decoded report.
reports*
array
Reports to decode.
Input schema (JSON)
{
"type": "object",
"required": [
"reports"
],
"properties": {
"claims": {
"type": "array",
"items": {
"type": "object",
"required": [
"report"
],
"properties": {
"report": {
"type": "integer",
"maximum": 19,
"minimum": 0,
"description": "Index into reports."
},
"dewpointC": {
"type": "number",
"description": "Claimed dew point, Celsius."
},
"windSpeed": {
"type": "number",
"description": "Claimed mean wind speed in the report's own unit."
},
"temperatureC": {
"type": "number",
"description": "Claimed air temperature, Celsius."
},
"flightCategory": {
"enum": [
"LIFR",
"IFR",
"MVFR",
"VFR"
],
"type": "string"
}
}
},
"maxItems": 100,
"description": "Optional claims to verify against the decoded report."
},
"reports": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000,
"description": "One METAR or SPECI report, optionally ending in '='."
},
"maxItems": 20,
"minItems": 1,
"description": "Reports to decode."
}
},
"additionalProperties": false
}
metered-price
Tiered usage pricing: graduated or volume tiers, included quantity, package units, minimum charge — Prices a usage quantity against up to 50 tiers, graduated (each tier prices only its own units) or volume (the tier holding the whole quantity prices all of it), for an agent checking a usage bill or quoting a plan. Order of operations: subtract the included quantity, convert to billing packages (per N units, rounded up, down or not at all), price the tiers, add flat fees, apply the minimum charge
Argument
Type
Description
per
string
Units per billing package (default 1). Tiers are expressed in packages.
mode*
string
tiers*
array
minimum
string
Minimum charge in major units, applied after the tiers.
currency
string
ISO 4217 alphabetic code, upper case.
exponent
integer
included
string
Free quantity subtracted before packaging and tiers (never below zero).
quantity*
string
Decimal string such as "-12.50" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats.
metric-comparability
Whether two metric definitions measure the same thing, and which fields differ — Compares two structured metric definitions field by field (numerator, denominator, aggregation, weighting, population, filters, exclusions, period grain and calendar, timezone, currency, FX and tax basis, unit) and returns which differences make the numbers not comparable, which are adjustable with raw data, and which fields are missing from one side. In drift mode a is the old and b the new defin
Argument
Type
Description
a*
object
b*
object
mode
string
drift: a is the previous definition and b the current one under the same name.
Run up to 20 micro checks under one payment ($0.02) — Bundles up to 20 calls to any pure micro check (catalog entries that are neither stateful nor network-reading, e.g. checksum, patch-anchor, allocate, business-deadline) into one x402 settlement, so a full batch costs $0.001 per check. Every call is validated before payment; one invalid call rejects the batch with its index. The request is capped at 128kb and a CPU weight of 40 (an ordinary check w
Migration DDL: data-loss and rollback hazards per dialect — Classifies each statement of a PostgreSQL, MySQL or SQLite migration (up to 20000 characters) as reversible, needing a backup, needing the original definition, or irreversible, for agents that write or review schema migrations. Flags DROP TABLE/COLUMN, TRUNCATE, unbounded DELETE/UPDATE, lossy type changes, NOT NULL or constraints that fail on existing rows, table-rewrite and lock hazards, and MySQ
Grant Milestone Verifier with Signed Release Attestation — Decides whether a grantee met a milestone before a DAO releases the next tranche or stream. Checks GitHub as of the due date (commits, tags, releases, CI, files), npm/PyPI/crates.io publish times, Snapshot proposal state, on-chain deployments (bytecode selector scan through proxies, Sourcify, creation transaction), and URLs; judges the rest with an ensemble plus a skeptical reviewer, reads Sablier
Argument
Type
Description
payout
object
evidence*
object
milestone*
object
releasePolicy
object
Input schema (JSON)
{
"type": "object",
"required": [
"milestone",
"evidence"
],
"properties": {
"payout": {
"type": "object",
"required": [
"protocol",
"chain",
"amountTotal"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"polygon",
"arbitrum",
"optimism"
],
"type": "string"
},
"lockup": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "SablierLockup address; required to disambiguate when several versions hold the stream id."
},
"protocol": {
"enum": [
"sablier",
"superfluid",
"transfer"
],
"type": "string"
},
"streamId": {
"type": "string",
"pattern": "^[0-9]{1,78}$"
},
"recipient": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"amountTotal": {
"type": "string",
"pattern": "^[0-9]{1,78}$",
"description": "Tranche value in token base units."
}
},
"additionalProperties": false
},
"evidence": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"maxLength": 200,
"description": "Branch, tag or commit, or a commit range base...head."
},
"urls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500,
"minLength": 8
},
"maxItems": 8
},
"repoUrl": {
"type": "string",
"maxLength": 200,
"description": "https://github.com/<owner>/<repo>. A link copied from GitHub also works: .../tree/<branch>, .../releases/tag/<tag> or .../commit/<sha> sets ref when ref is omitted."
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"polygon",
"arbitrum",
"optimism"
],
"type": "string"
},
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"expectedFunctions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"maxItems": 24,
"description": "Function signatures, e.g. transfer(address,uint256)."
}
},
"additionalProperties": false
},
"maxItems": 8
}
},
"additionalProperties": false
},
"milestone": {
"type": "object",
"required": [
"title",
"acceptanceCriteria",
"dueDate"
],
"properties": {
"title": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"dueDate": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO 8601 date or timestamp. A date means end of that day UTC. GitHub, registry, Snapshot and contract checks are evaluated as of this instant."
},
"windowStart": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "Optional ISO 8601 start of the milestone period. Needed to decide \"commits/releases/packages during the period\" criteria; without it those are left to the judge."
},
"acceptanceCriteria": {
"type": "array",
"items": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"maxItems": 12,
"minItems": 1
}
},
"additionalProperties": false
},
"releasePolicy": {
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"all_or_nothing",
"proportional"
],
"type": "string",
"description": "Default all_or_nothing."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
minor-units
ISO 4217 minor units: decimal amount to integer minor units and back — Converts up to 200 money amounts between decimal strings and integer minor units (cents, yen, fils) using the ISO 4217 exponent from the SIX Group list, for an agent about to send an amount to a payment API. Returns the exponent, the integer minor amount and the canonical decimal string; JPY is 0, KWD and BHD are 3, CLF is 4. An amount with more fraction digits than the currency allows fails with
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"currency"
],
"properties": {
"minor": {
"type": "integer",
"maximum": 999999999999999,
"minimum": -999999999999999,
"description": "Integer minor units to convert to a decimal string."
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal amount to convert to minor units. Give amount or minor, or neither to look up the exponent."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0,
"description": "Override for currencies absent from ISO 4217 list one or without a minor unit. Wins over the list."
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Only used when amount has more fraction digits than the exponent. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
}
},
"additionalProperties": false
}
mutation-intent
Diff a before/after JSON write for deletes, null-vs-omit and emptied arrays against protected paths — Compares the JSON document an agent read (before) with the one it is about to write (after) and lists every change by JSON Pointer: removed members, null turned into omitted (and the reverse), arrays emptied or shrunk, objects emptied, type changes. Fails when a change touches a protected path or is destructive and not listed in allowDestructive; use it before a PUT, PATCH or bulk update. Arrays a
Argument
Type
Description
after*
any
JSON value about to be written.
before*
any
JSON value as last read.
protectedPaths
array
JSON Pointers that must not change at all; a "*" token matches any one key or index.
allowDestructive
array
JSON Pointers ("*" wildcard) under which deletes, emptied containers and type changes are intended.
Input schema (JSON)
{
"type": "object",
"required": [
"before",
"after"
],
"properties": {
"after": {
"description": "JSON value about to be written."
},
"before": {
"description": "JSON value as last read."
},
"protectedPaths": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 100,
"description": "JSON Pointers that must not change at all; a \"*\" token matches any one key or index."
},
"allowDestructive": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 100,
"description": "JSON Pointers (\"*\" wildcard) under which deletes, emptied containers and type changes are intended."
}
},
"additionalProperties": false
}
naive-timestamp-hazard
Which timestamps are anchored? Flags naive local times, zone abbreviations, date-only, epoch units and d/m ambiguity — Classifies up to 200 timestamp strings as anchored (RFC 3339 with Z or offset), naive local (no offset), date-only, epoch seconds or milliseconds, zone abbreviation, ambiguous numeric date, or unparseable, and lists the hazard of each; with assumedTimeZone it also reports whether a naive time falls in a DST gap or overlap there, every instant it could mean, and offsets that contradict the zone. Bu
Argument
Type
Description
timestamps*
array
assumedTimeZone
string
IANA zone the producer is believed to use; used for gap/overlap and offset-consistency checks.
Input schema (JSON)
{
"type": "object",
"required": [
"timestamps"
],
"properties": {
"timestamps": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 200,
"minItems": 1
},
"assumedTimeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64,
"description": "IANA zone the producer is believed to use; used for gap/overlap and offset-consistency checks."
}
},
"additionalProperties": false
}
negation-scope
Find negation cues and the words they cover; report whether given terms fall inside a negation scope — Applies NegEx-style rules (the English termset of negspacy, MIT, derived from NegEx) to text: finds negation cues, pseudo-negations such as 'not only', and scope terminators such as 'but', and returns each cue's scope window with offsets in UTF-16, code points, UTF-8 bytes and graphemes. Given target terms, reports per occurrence whether it is negated, not negated by the rules, or unknown (near a
Argument
Type
Description
text*
string
Text to analyze.
window
integer
Words a cue covers (NegEx uses 5). Default 5.
targets
array
Terms to classify (literal, case-insensitive, whole words).
Number and cheque-amount words: English (US, UK, Indian lakh/crore) — Spells out a number or a money amount in English words for a cheque, contract or invoice, for an agent that must write the amount in words next to the figures. Locales: en-US ("one hundred twenty-three"), en-GB ("one hundred and twenty-three"), en-IN (lakh and crore, "one crore twenty lakh"). With a currency it returns the integer words, the minor-unit fraction as digits over 10^exponent ("56/100"
Open Badges 2.0 / 3.0 credential verifier — Verifies an Open Badges credential end to end and says what could and could not be confirmed. Accepts an Open Badges 3.0 credential (JSON with an eddsa-jcs-2022 proof, or a VC-JWT signed with EdDSA, ES256 or RS256), an Open Badges 2.0 assertion (hosted, or signed as an RS256 JWS), a hosted-assertion URL, or a baked PNG or SVG image. Checks the 2.0/3.0 required fields, the issuance and expiry windo
Argument
Type
Description
jws
string
A compact JWS: an Open Badges 3.0 VC-JWT or an Open Badges 2.0 signed assertion.
url
string
https URL of a hosted Open Badges 2.0 assertion or a hosted 3.0 credential.
image
string
A baked badge image, base64 (data URLs accepted): a PNG with an openbadges iTXt chunk, or an SVG with an openbadges:assertion or openbadges:credential element. Up to 6 MB decoded.
credential
any
The credential or assertion as a JSON object (or the same as a JSON string, or a compact JWS string).
recipientIdentity
string
Optional: the recipient's email or other identity to compare against the badge's recipient, including salted sha256$ and md5$ hashes.
Input schema (JSON)
{
"type": "object",
"properties": {
"jws": {
"type": "string",
"maxLength": 1000000,
"description": "A compact JWS: an Open Badges 3.0 VC-JWT or an Open Badges 2.0 signed assertion."
},
"url": {
"type": "string",
"maxLength": 2000,
"description": "https URL of a hosted Open Badges 2.0 assertion or a hosted 3.0 credential."
},
"image": {
"type": "string",
"maxLength": 8500000,
"description": "A baked badge image, base64 (data URLs accepted): a PNG with an openbadges iTXt chunk, or an SVG with an openbadges:assertion or openbadges:credential element. Up to 6 MB decoded."
},
"credential": {
"description": "The credential or assertion as a JSON object (or the same as a JSON string, or a compact JWS string)."
},
"recipientIdentity": {
"type": "string",
"maxLength": 320,
"minLength": 1,
"description": "Optional: the recipient's email or other identity to compare against the badge's recipient, including salted sha256$ and md5$ hashes."
}
},
"additionalProperties": false
}
openapi-breaking-change
OpenAPI 3.x breaking-change diff — Diffs two OpenAPI 3.x documents and classifies every delta as breaking, compatible or informational. Breaking: removed path/operation/response status/media type, type/format/pattern tightening, enum value removed, required property added, request body became required, maximum lowered or minimum raised, nullable removed. Compatible: additions (new paths, optional params, enum values, response statu
Slice one operation out of an OpenAPI 3.0 or 3.1 document with every component it needs — Extracts one operation (path plus HTTP method, matching templated paths like /pets/{id}) from an OpenAPI 3.0.x or 3.1.x document, given as JSON, YAML or a parsed object, and returns a smaller valid OpenAPI document holding that operation, its path-level parameters and servers, and the transitive closure of every local $ref it uses: schemas, parameters, requestBodies, responses, headers, examples,
Argument
Type
Description
path*
string
Concrete or templated path, e.g. /pets/{petId} or /pets/42.
spec
any
The OpenAPI document as a JSON object (use specText for YAML).
method*
string
specText
string
The OpenAPI document as JSON text (up to 400000 characters) or YAML text (up to 50000 characters).
Input schema (JSON)
{
"type": "object",
"required": [
"path",
"method"
],
"properties": {
"path": {
"type": "string",
"maxLength": 500,
"description": "Concrete or templated path, e.g. /pets/{petId} or /pets/42."
},
"spec": {
"description": "The OpenAPI document as a JSON object (use specText for YAML)."
},
"method": {
"enum": [
"get",
"put",
"post",
"delete",
"options",
"head",
"patch",
"trace"
],
"type": "string"
},
"specText": {
"type": "string",
"maxLength": 400000,
"description": "The OpenAPI document as JSON text (up to 400000 characters) or YAML text (up to 50000 characters)."
}
},
"additionalProperties": false
}
pacing-intensity-evaluator
Plot a prose intensity curve per sentence and flag where a tense passage loses velocity — Scores each sentence of narrative prose for pace from sentence length, share of one-syllable words, exclamation and question marks and, if you supply a word list, action-word share; smooths the scores into an intensity curve; and reports stalls, the spans where intensity falls well below an earlier peak. For a writing tool or editor agent checking an action or tension scene. A fixed-weight heurist
Argument
Type
Description
text*
string
Prose to score.
expect
string
tense: fail if the curve never reaches peakThreshold. any (default): only stalls after a peak can fail.
window
integer
Sentences in the trailing moving average. Default 3.
stallDrop
number
Fall below the running peak that counts as a stall. Default 0.25 on the 0-1 intensity scale.
actionWords
array
Your own action-word list. Without it the action component is left out and the other weights are renormalized.
minSentences
integer
Fewer scored sentences is unknown. Default 8.
peakThreshold
number
Smoothed intensity a passage must reach before a later fall can be a stall. Default 0.55.
pack-size
Pack sizes, MOQ, order increments, overbuy cap and price breakpoints: what to actually order — Finds the cheapest valid order quantity for a requested number of units across up to 50 supplier options, for an agent buying parts or consumables sold in packs. Each option has a pack size (units per pack or notation such as "6x100", "case of 12", "12/case", "case of 6 inners"), an optional minimum order quantity, an order increment and price breakpoints; the order is rounded up to a multiple of
Argument
Type
Description
options*
array
requested*
integer
Units needed.
overbuyCapPercent
string
Reject orders exceeding the request by more than this percent.
Input schema (JSON)
{
"type": "object",
"required": [
"requested",
"options"
],
"properties": {
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"moq": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Minimum order quantity in units."
},
"increment": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Orders must be a multiple of this many units (default: the pack size)."
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Base price per unit."
},
"innerUnits": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Units per inner pack, for notations that count inner packs."
},
"breakpoints": {
"type": "array",
"items": {
"type": "object",
"required": [
"minQty",
"unitPrice"
],
"properties": {
"minQty": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Price per unit from minQty units upward (the highest breakpoint reached applies)."
},
"packNotation": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "e.g. \"6x100\", \"case of 12\", \"12/case\", \"case of 6 inners\"."
},
"unitsPerPack": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Settles an ambiguous packNotation; a value that matches no reading of the notation fails."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1
},
"requested": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Units needed."
},
"overbuyCapPercent": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Reject orders exceeding the request by more than this percent."
}
},
"additionalProperties": false
}
package-exists
Package exists on npm, PyPI or crates.io (hallucinated dependency check) — Checks whether up to 10 package names (optionally with a version) exist in the live npm, PyPI or crates.io registry, for coding agents about to add a dependency they may have invented. Per package: exists, latest version, deprecated or yanked flag, and for a missing name the closest names the registry's own search returns (npm, crates.io; PyPI has no search API). Reads registry metadata only: neve
Argument
Type
Description
items*
array
At most 5 items for crates.io (its API policy allows one request per second).
Page capture: screenshot or PDF of a public URL — Renders one public web page in a real browser (Cloudflare Browser Run, JavaScript enabled) and returns a PNG or JPEG screenshot or a PDF as base64 with its sha256, for agents that need to see or archive a page. Does not log in, click or fill forms, does not capture private or internal hosts, and returns an error rather than a capture larger than 6 MB.
Argument
Type
Description
url*
string
Public http(s) URL.
output
string
viewport
object
Default 1280x800.
full_page
boolean
Capture the full scroll height (screenshots only; a PDF is always the whole page).
Page contents: URL to clean Markdown or text — Fetches one public web page and returns its main content as clean GitHub-flavored Markdown or plain text, with title, canonical URL, language, absolute links and content hashes, for agents that feed pages to a model. Deterministic, no model. Does not run JavaScript (client-rendered pages come back sparse), does not follow links, does not consult robots.txt, and drops navigation, footers, sidebars
Argument
Type
Description
url*
string
Public http(s) URL.
format
string
max_chars
integer
Content is cut to this many characters; truncated says whether it was.
include_links
boolean
Keep Markdown links and return a links list (at most 200).
include_tables
boolean
Convert data tables to GFM tables; false drops them.
Input schema (JSON)
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 8,
"description": "Public http(s) URL."
},
"format": {
"enum": [
"markdown",
"text"
],
"type": "string",
"default": "markdown"
},
"max_chars": {
"type": "integer",
"default": 60000,
"maximum": 200000,
"minimum": 1000,
"description": "Content is cut to this many characters; truncated says whether it was."
},
"include_links": {
"type": "boolean",
"default": true,
"description": "Keep Markdown links and return a links list (at most 200)."
},
"include_tables": {
"type": "boolean",
"default": true,
"description": "Convert data tables to GFM tables; false drops them."
}
},
"additionalProperties": false
}
pagination-loop
Detect repeated cursors, duplicate-only pages and no progress in a pagination scan — Takes the pages an agent has fetched so far (cursor used, next cursor returned, item ids) and finds the failures that make a scan loop or lie: a next cursor already used, a page whose items were all seen before, a page that returned nothing new yet offers another cursor, a scan that has not ended. Optionally takes declared ordering and cursor assumptions and lists the omission risks they imply (of
Argument
Type
Description
pages*
array
declared
object
Input schema (JSON)
{
"type": "object",
"required": [
"pages"
],
"properties": {
"pages": {
"type": "array",
"items": {
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 2000,
"description": "Stable item ids on this page, in returned order."
},
"cursor": {
"type": "string",
"maxLength": 500,
"description": "Cursor used to request this page; omit for the first page."
},
"nextCursor": {
"type": "string",
"maxLength": 500,
"description": "Cursor returned for the next page; omit or empty when the API reports no more."
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
},
"declared": {
"type": "object",
"properties": {
"ordering": {
"enum": [
"stable-unique-key",
"stable-nonunique-key",
"unstable",
"unknown"
],
"type": "string",
"description": "How the API orders results."
},
"cursorKind": {
"enum": [
"opaque",
"offset",
"keyset"
],
"type": "string"
},
"mutatedDuringScan": {
"type": "boolean",
"description": "Whether items may have been inserted or deleted while paging."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
paperContradictions
Paper Contradiction Finder — Takes 2 to 4 papers (DOI, arXiv id, PMID or their URLs) on a shared question and answers whether their reported numbers conflict: a verdict (CONTRADICTION_FOUND / NO_CONTRADICTION_FOUND / INCONCLUSIVE) with confidence, a one-line headline, the decisive quotes side by side and a next step, then the full evidence. Fetches the best available text (ar5iv, Europe PMC full text, else abstract), extracts
Argument
Type
Description
mode
string
full (default): one model call judges whether candidate claim pairs measure the same quantity in comparable populations. fast: no model call; only pairs with identical normalized outcome phrases are tested.
claim
string
Optional claim or question to focus on; claims about it are paired first.
papers*
array
2 to 4 papers on a shared question, each a DOI (bare, doi: or doi.org URL), an arXiv id or arxiv.org URL, or a PMID (bare, PMID:n, or a pubmed.ncbi.nlm.nih.gov or europepmc.org URL).
Input schema (JSON)
{
"type": "object",
"required": [
"papers"
],
"properties": {
"mode": {
"enum": [
"full",
"fast"
],
"type": "string",
"description": "full (default): one model call judges whether candidate claim pairs measure the same quantity in comparable populations. fast: no model call; only pairs with identical normalized outcome phrases are tested."
},
"claim": {
"type": "string",
"maxLength": 2000,
"minLength": 3,
"description": "Optional claim or question to focus on; claims about it are paired first."
},
"papers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"maxItems": 4,
"minItems": 2,
"description": "2 to 4 papers on a shared question, each a DOI (bare, doi: or doi.org URL), an arXiv id or arxiv.org URL, or a PMID (bare, PMID:n, or a pubmed.ncbi.nlm.nih.gov or europepmc.org URL)."
}
},
"additionalProperties": false
}
patch-anchor
Apply a unified-diff hunk or search/replace edit to a file by content, refusing ambiguity — Applies unified-diff hunks (wrong line numbers are fine) or search/replace blocks to a supplied file text and returns the patched text, for an agent whose edit tool failed or whose diff has drifted line numbers. Each hunk is located by its content against the original file, trying exact, trailing-whitespace, outer-whitespace then collapsed-whitespace matching; the rung used is reported per hunk. I
Argument
Type
Description
diff
string
Single-file unified diff, at most 64 hunks and 400 anchor lines each. Header counts and line numbers are ignored except as a reported hint. Give either diff or edits.
file*
string
Current file text, at most 524288 UTF-8 bytes and 100000 lines. A leading BOM is preserved.
edits
array
Search/replace blocks, matched as whole lines against the original file; all are located before any is applied.
Input schema (JSON)
{
"type": "object",
"required": [
"file"
],
"properties": {
"diff": {
"type": "string",
"maxLength": 262144,
"description": "Single-file unified diff, at most 64 hunks and 400 anchor lines each. Header counts and line numbers are ignored except as a reported hint. Give either diff or edits."
},
"file": {
"type": "string",
"maxLength": 524288,
"description": "Current file text, at most 524288 UTF-8 bytes and 100000 lines. A leading BOM is preserved."
},
"edits": {
"type": "array",
"items": {
"type": "object",
"required": [
"search",
"replace"
],
"properties": {
"line": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Optional line hint, reported as lineShift and never used to break ties."
},
"search": {
"type": "string",
"maxLength": 65536
},
"replace": {
"type": "string",
"maxLength": 65536,
"description": "Empty string deletes the matched lines."
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1,
"description": "Search/replace blocks, matched as whole lines against the original file; all are located before any is applied."
}
},
"additionalProperties": false
}
patent-design-around
Patent Design-Around & Freedom-to-Operate Architect — Paste patent claims or give a patent number. Splits the independent claims into lettered limitations in code, charts your product against each one (literal and doctrine of equivalents), scores claims under the all-elements rule, and proposes 3 engineering design-arounds that each remove a limitation of every independent claim, checked in code. Leads with a decision and optional dollar exposure. A
Argument
Type
Description
jurisdiction
string
Defaults to US.
patentNumber
string
Publication number such as US7629993B2. Used to read the claims from Google Patents when patentClaimsText is omitted.
annualRevenueUsd
number
Annual revenue that depends on the product; sizes the dollar exposure in the headline.
patentClaimsText
string
Numbered claims (at least the independent claims). Optional when patentNumber is given: the claims are then read from Google Patents.
assumedRoyaltyPct
number
Assumed running royalty as a percent of revenue, for the exposure illustration.
proposedProductDescription*
string
Input schema (JSON)
{
"type": "object",
"required": [
"proposedProductDescription"
],
"properties": {
"jurisdiction": {
"type": "string",
"maxLength": 40,
"description": "Defaults to US."
},
"patentNumber": {
"type": "string",
"maxLength": 40,
"description": "Publication number such as US7629993B2. Used to read the claims from Google Patents when patentClaimsText is omitted."
},
"annualRevenueUsd": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Annual revenue that depends on the product; sizes the dollar exposure in the headline."
},
"patentClaimsText": {
"type": "string",
"maxLength": 50000,
"minLength": 20,
"description": "Numbered claims (at least the independent claims). Optional when patentNumber is given: the claims are then read from Google Patents."
},
"assumedRoyaltyPct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Assumed running royalty as a percent of revenue, for the exposure illustration."
},
"proposedProductDescription": {
"type": "string",
"maxLength": 20000,
"minLength": 20
}
},
"additionalProperties": false
}
patent-strategy
Patent Strategy Pack — Both sides of a blocking patent in one call: pre-priority-date prior art charted against every claim element, and an all-elements freedom-to-operate map with three engineering design-arounds. Runs prior-art-invalidator ($1.00) + patent-design-around ($2.00) in one paid call for 20% less than buying them separately. Charged only when every member succeeds.
Argument
Type
Description
jurisdiction
string
Defaults to US.
patentNumber
string
Publication number such as US7629993B2. Used to read the claims from Google Patents when patentClaimsText is omitted.
priorityDate
string
Earliest effective filing/priority date, YYYY-MM-DD. Only works published strictly before it count. Optional when patentNumber is given; a supplied date wins over the Google Patents date and a disagreement is reported.
annualRevenueUsd
number
Annual revenue that depends on the product; sizes the dollar exposure in the headline.
patentClaimsText
string
Numbered claims (at least the independent claims). Optional when patentNumber is given: the claims are then read from Google Patents.
assumedRoyaltyPct
number
Assumed running royalty as a percent of revenue, for the exposure illustration.
proposedProductDescription
path-portability
File path portability check across Windows, macOS and Linux — Checks up to 500 relative file paths for names that break or collide on Windows, macOS or Linux: Windows reserved device names (CON.txt, NUL.tar.gz, COM¹), reserved characters, trailing dots and spaces, component and total length limits, and distinct paths that become one file through case folding or NFC/NFD normalization. For an agent that writes files from an archive, a generated tree or a repo
Argument
Type
Description
paths*
array
Relative paths with "/" separators. At most 200000 characters in total.
targets
array
Default: windows, macos and linux.
destinationRoot
string
Directory the paths will be created under; counted towards the total path length.
Input schema (JSON)
{
"type": "object",
"required": [
"paths"
],
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4096,
"minLength": 1
},
"maxItems": 500,
"minItems": 1,
"description": "Relative paths with \"/\" separators. At most 200000 characters in total."
},
"targets": {
"type": "array",
"items": {
"enum": [
"windows",
"macos",
"linux"
],
"type": "string"
},
"maxItems": 3,
"description": "Default: windows, macos and linux."
},
"destinationRoot": {
"type": "string",
"maxLength": 1024,
"description": "Directory the paths will be created under; counted towards the total path length."
}
},
"additionalProperties": false
}
path-rules
Which gitignore, CODEOWNERS or glob rule matches a path — Evaluates up to 25 file paths against the text of a .gitignore, a CODEOWNERS file or a list of glob patterns and reports, per path, whether it matched, the winning rule's line and pattern, and why (last match wins, directory-only rules, negation, a re-include blocked by an excluded parent directory, CODEOWNERS owner lists). Optional per-path expectations turn it into a pass/fail check, and CODEOWN
Privilege expansion between two manifests: npm, Chrome extension, Android — Compares an old and a new manifest and reports every way the new one gains privilege, for agents reviewing dependency bumps and extension or app updates. npm package.json: new or changed install-time lifecycle scripts, gypfile, bin entries and URL/git/file dependencies (including overrides). Chrome manifest.json: added permissions with Chrome's own warning text, host access not covered by the old
Argument
Type
Description
kind*
string
Manifest format of both documents.
after*
string
New manifest text.
before*
string
Old manifest text (package.json, manifest.json or AndroidManifest.xml).
threshold
string
any (default): every added permission fails. sensitive: ignore Chrome permissions without a warning and Android normal permissions.
Input schema (JSON)
{
"type": "object",
"required": [
"kind",
"before",
"after"
],
"properties": {
"kind": {
"enum": [
"npm",
"chrome-extension",
"android"
],
"type": "string",
"description": "Manifest format of both documents."
},
"after": {
"type": "string",
"maxLength": 100000,
"description": "New manifest text."
},
"before": {
"type": "string",
"maxLength": 100000,
"description": "Old manifest text (package.json, manifest.json or AndroidManifest.xml)."
},
"threshold": {
"enum": [
"any",
"sensitive"
],
"type": "string",
"description": "any (default): every added permission fails. sensitive: ignore Chrome permissions without a warning and Android normal permissions."
}
},
"additionalProperties": false
}
Does this text fit: SMS segments, X posts, store listings, ad and push limits — Checks up to 50 texts per call against a platform limit, for an agent writing a message, post, store listing, ad or push payload that must not be truncated or split. sms: GSM 7 bit vs UCS-2 and the exact segment boundaries per 3GPP TS 23.038 (extension characters cost 2 septets and never straddle a segment; an emoji is 2 UTF-16 units). x: weighted length per the open-source twitter-text config v3
Proof-of-delivery sufficiency against a required evidence list — Checks whether the proof-of-delivery evidence supplied (signature, photo, timestamp, GPS fix, recipient name, scan ...) satisfies the carrier or contract requirement list the caller gives: every required item, plus optional 'at least k of these' groups, with value bounds (for example GPS accuracy at most 30 m) and maximum age. For an agent assembling a delivery dispute or a payment release. Return
Argument
Type
Description
asOf
string
Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock.
anyOf
array
Alternative groups: at least atLeast (default 1) of the keys must be present.
evidence*
array
Proof elements the caller holds.
required*
array
Evidence every proof must contain (key plus optional bounds).
Input schema (JSON)
{
"type": "object",
"required": [
"required",
"evidence"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock."
},
"anyOf": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"keys"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"description": "Group id."
},
"keys": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"description": "Evidence key."
},
"maxItems": 20,
"minItems": 1
},
"atLeast": {
"type": "integer",
"maximum": 20,
"minimum": 1
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Alternative groups: at least atLeast (default 1) of the keys must be present."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "When this was observed (ISO date or instant)."
},
"value": {
"description": "Observed JSON value. Omitted means the fact is present with no value; false or null means observed absent."
},
"source": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "Proof elements the caller holds."
},
"required": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100,
"description": "Evidence key this need reads."
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive upper bound, same comparison rules as min."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive lower bound. Numbers compare numerically; two dotted-digit strings (1.10.2) compare segment by segment."
},
"oneOf": {
"type": "array",
"items": {
"description": "Allowed JSON value."
},
"maxItems": 50,
"description": "The evidence value must equal one of these."
},
"equals": {
"description": "The evidence value must equal this JSON value (deep equality)."
},
"maxAgeDays": {
"type": "number",
"maximum": 36500,
"minimum": 0,
"description": "Evidence must be dated (asOf on the evidence item) and at most this many days before the request asOf."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Evidence every proof must contain (key plus optional bounds)."
}
},
"additionalProperties": false
}
policy-gate
Policy gate with a signed receipt: your JsonLogic rules vs a proposed tool call or payment — Evaluates your own policy (JsonLogic rules, each allow or deny, deny-overrides or first-match, default deny) against a proposed tool call, payment or action, and returns allow or deny, the rule id that decided, and a receipt signed by the hub over the hashes of the policy, the request and the decision. The receipt is the product: another agent or an auditor can verify offline which rule allowed th
Argument
Type
Description
policy*
any
JsonLogic: { rules: [{ id, effect: allow|deny, when: <JsonLogic>, description? }] (at most 100), combining?: deny-overrides|first-match, defaultEffect?: deny|allow }. A string for cedar/rego.
request*
any
The proposed action as JSON (at most 65536 bytes), e.g. { tool, args, amountUsd, payee }. Rules read it with { "var": "args.amountUsd" }.
language
string
Default jsonlogic. cedar and rego return unsupported.
Input schema (JSON)
{
"type": "object",
"required": [
"policy",
"request"
],
"properties": {
"policy": {
"description": "JsonLogic: { rules: [{ id, effect: allow|deny, when: <JsonLogic>, description? }] (at most 100), combining?: deny-overrides|first-match, defaultEffect?: deny|allow }. A string for cedar/rego."
},
"request": {
"description": "The proposed action as JSON (at most 65536 bytes), e.g. { tool, args, amountUsd, payee }. Rules read it with { \"var\": \"args.amountUsd\" }."
},
"language": {
"enum": [
"jsonlogic",
"cedar",
"rego"
],
"type": "string",
"description": "Default jsonlogic. cedar and rego return unsupported."
}
},
"additionalProperties": false
}
pre-merge-review
Pre-merge Review Pack — One unified diff in, one merge decision out: the PR exploit gatekeeper (bug hunter, patch synthesizer, secret/dependency/SAST scans) plus the adversarial Unicode / Trojan Source gate. Runs diff-gatekeeper ($0.50) + unicode-safety-gate ($0.25) in one paid call for 20% less than buying them separately. Charged only when every member succeeds.
Case-law precedent search (CourtListener, US) — Finds US court opinions most on point for a legal question or fact pattern: searches CourtListener's case-law index (optionally limited to courts and filing dates), reads the top opinions, and returns the best matches with a holding passage verified verbatim against the opinion text, plus citation, court, date, precedential status and a source hash. A second skeptical pass flags matches that look
Argument
Type
Description
courts
array
CourtListener court ids such as "scotus", "ca9", "cal", "calctapp". Omit to search all courts.
question*
string
The legal issue and key facts. Quote a phrase to require it verbatim in the search.
filed_after
string
Earliest filing date, YYYY-MM-DD.
max_results
integer
Default 5.
filed_before
string
Latest filing date, YYYY-MM-DD.
include_excerpts
boolean
Default true. When false, the holding passage text is omitted from the output (quote_verified and quote_offset are still reported).
Input schema (JSON)
{
"type": "object",
"required": [
"question"
],
"properties": {
"courts": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]{2,20}$"
},
"maxItems": 10,
"description": "CourtListener court ids such as \"scotus\", \"ca9\", \"cal\", \"calctapp\". Omit to search all courts."
},
"question": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "The legal issue and key facts. Quote a phrase to require it verbatim in the search."
},
"filed_after": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Earliest filing date, YYYY-MM-DD."
},
"max_results": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Default 5."
},
"filed_before": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Latest filing date, YYYY-MM-DD."
},
"include_excerpts": {
"type": "boolean",
"description": "Default true. When false, the holding passage text is omitted from the output (quote_verified and quote_offset are still reported)."
}
},
"additionalProperties": false
}
price-change-attribution
Attribute a total's change to quantity, price, FX, added and removed lines (sums exactly) — Explains why a total moved between two versions of a quote, order or invoice (up to 300 lines each), for an agent that must say how much of the change came from quantity, unit price, exchange rate, new lines and dropped lines. Lines are matched by key. Matched lines are decomposed by sequential substitution in the declared factor order (default quantity, then price, then fx), so the effects sum to
Argument
Type
Description
fx
object
Multiplier from line currency to reporting currency, before and after. Default 1 and 1.
after*
array
order
array
Substitution order of the factors; each at most once. Default [quantity, price, fx].
before*
array
currency
string
ISO 4217 alphabetic code, upper case.
exponent
integer
rounding
string
Default half-even. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity.
statedAfterTotal
print-box
PDF page box check: trim, bleed and safe area from supplied boxes — Checks the five PDF page boxes you supply (MediaBox, CropBox, BleedBox, TrimBox, ArtBox, in points) for a print job: applies the ISO 32000-1 defaults and media-box clipping, measures bleed on each side of the trim box, and tests the content box against a safe margin inside the trim, for agents that prepare or accept print-ready PDFs. It does not read a PDF file, check fonts, colour, image resoluti
Argument
Type
Description
userUnit
number
The page's UserUnit (default 1): the size of one user space unit in 1/72 inch.
pageBoxes*
object
mediaBox is required; the others are optional and default per ISO 32000-1 (cropBox to mediaBox; bleedBox, trimBox, artBox to cropBox).
contentBox
array
Bounding box of the live content, same coordinates as the page boxes. If absent the ArtBox (when supplied) is used.
requirements
object
Input schema (JSON)
{
"type": "object",
"required": [
"pageBoxes"
],
"properties": {
"userUnit": {
"type": "number",
"maximum": 1000,
"minimum": 0.0001,
"description": "The page's UserUnit (default 1): the size of one user space unit in 1/72 inch."
},
"pageBoxes": {
"type": "object",
"required": [
"mediaBox"
],
"properties": {
"artBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "[x1 y1 x2 y2] in default user space units; any two diagonal corners."
},
"cropBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "[x1 y1 x2 y2] in default user space units; any two diagonal corners."
},
"trimBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "[x1 y1 x2 y2] in default user space units; any two diagonal corners."
},
"bleedBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "[x1 y1 x2 y2] in default user space units; any two diagonal corners."
},
"mediaBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "[x1 y1 x2 y2] in default user space units; any two diagonal corners."
}
},
"description": "mediaBox is required; the others are optional and default per ISO 32000-1 (cropBox to mediaBox; bleedBox, trimBox, artBox to cropBox).",
"additionalProperties": false
},
"contentBox": {
"type": "array",
"items": {
"type": "number",
"maximum": 10000000,
"minimum": -10000000
},
"maxItems": 4,
"minItems": 4,
"description": "Bounding box of the live content, same coordinates as the page boxes. If absent the ArtBox (when supplied) is used."
},
"requirements": {
"type": "object",
"properties": {
"unit": {
"enum": [
"pt",
"mm",
"in"
],
"type": "string",
"description": "Unit of minBleed and safeMargin; default mm. pt means points (1/72 inch) of user space after UserUnit."
},
"minBleed": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Smallest allowed distance from trim to bleed box on every side."
},
"safeMargin": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Smallest allowed distance from trim to live content on every side."
},
"tolerancePt": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Slack in points before a shortfall counts (default 0.01) so 3 mm written as 8.5 pt is not a failure."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
print-estimate
Print resolution, bleed and uncompressed bitmap size arithmetic — Given an image's pixel size and a print size (inches, millimetres or centimetres) plus optional bleed, margin and target ppi, returns the effective ppi over trim plus bleed, whether it meets the target, the pixel count a target ppi needs, the largest print size a target ppi allows, the safe area, and the exact uncompressed bitmap size. Built for print-on-demand, layout and image-prep agents; the t
Argument
Type
Description
unit
string
Unit for print size, bleed and margin (default in).
bleed
number
Bleed added on each side of the trim, in unit (default 0).
margin
number
Safe margin inside the trim on each side, in unit (default 0).
widthPx*
integer
Image width in pixels.
channels
integer
Channels per pixel for the raw size (default 3).
heightPx*
integer
Image height in pixels.
targetPpi
number
The resolution you require, in pixels per inch.
printWidth
number
Trim width in unit.
prior-art-invalidator
Global Prior-Art Patent Invalidator — Screens a patent's claims against scholarly literature published before the priority date (arXiv, OpenAlex, Europe PMC, Crossref, HAL, J-STAGE; English, Chinese, Japanese, German; not patent databases). Give claims plus a priority date, or a patent number to read them from Google Patents. Claims are split into elements in code; every claim-chart quote is verified verbatim against the title or abst
Argument
Type
Description
patentNumber
string
Publication number such as US7629993B2. Claims, priority date and cited art are read from Google Patents when the claims or the date are omitted, and the date is cross-checked otherwise. Required unless both patentClaimsText and priorityDate are given.
priorityDate
string
Earliest effective filing/priority date, YYYY-MM-DD. Only works published strictly before it count. Optional when patentNumber is given; a supplied date wins over the Google Patents date and a disagreement is reported.
patentClaimsText
string
Claims to attack, numbered as in the patent (e.g. "1. A method ..."). Optional when patentNumber is given: the independent claims are then read from Google Patents. A dependent claim is charted with every element of its parents.
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"patentNumber": {
"type": "string",
"maxLength": 40,
"description": "Publication number such as US7629993B2. Claims, priority date and cited art are read from Google Patents when the claims or the date are omitted, and the date is cross-checked otherwise. Required unless both patentClaimsText and priorityDate are given."
},
"priorityDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Earliest effective filing/priority date, YYYY-MM-DD. Only works published strictly before it count. Optional when patentNumber is given; a supplied date wins over the Google Patents date and a disagreement is reported."
},
"patentClaimsText": {
"type": "string",
"maxLength": 20000,
"minLength": 20,
"description": "Claims to attack, numbered as in the patent (e.g. \"1. A method ...\"). Optional when patentNumber is given: the independent claims are then read from Google Patents. A dependent claim is charted with every element of its parents."
}
},
"additionalProperties": false
}
pronunciation-apply
Pronunciation lexicon to SSML phoneme and sub tags — Applies your pronunciation lexicon (up to 200 terms, each an IPA string or a spoken alias) to a text of up to 20000 characters and returns SSML 1.1 with <phoneme alphabet="ipa"> or <sub alias> around each whole-word match, XML-escaped, for an agent preparing text for a text-to-speech engine. Matching is whole-word, longest term first, left to right, deterministic. It does not guess pronunciations,
Property Hazard & Site Risk Report — Before an agent recommends, underwrites or screens a US property, reads free public federal hazard data for a street address or lat/lon: Census geocode, FEMA National Flood Hazard Layer flood zone, SFHA status and base flood elevation, USGS ASCE 7-22 seismic design values, FEMA National Risk Index tract ratings (wildfire, hurricane, tornado and more), OpenFEMA county disaster declarations for 10 y
Argument
Type
Description
lat
number
Latitude in WGS84 degrees; give with lon instead of address.
lon
number
Longitude in WGS84 degrees; give with lat.
address
string
US street address with city and state or ZIP, e.g. 1111 Lincoln Rd, Miami Beach, FL 33139. Give this or lat with lon.
intended_use
string
Optional. Reweights the score: residential counts environmental proximity 1.5x, industrial 0.5x, development counts flood and seismic 1.5x.
Input schema (JSON)
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in WGS84 degrees; give with lon instead of address."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in WGS84 degrees; give with lat."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 5,
"description": "US street address with city and state or ZIP, e.g. 1111 Lincoln Rd, Miami Beach, FL 33139. Give this or lat with lon."
},
"intended_use": {
"enum": [
"residential",
"commercial",
"industrial",
"development"
],
"type": "string",
"description": "Optional. Reweights the score: residential counts environmental proximity 1.5x, industrial 0.5x, development counts flood and seismic 1.5x."
}
},
"additionalProperties": false
}
property-violations-history
Property Code-Violation & Lien History (Open-Data Cities) — Before buying, leasing or insuring a US property, reads the city's own open-data code-enforcement records for one address (or a NYC BBL/BIN) and returns normalized violations with date opened, category, description, open/closed status, source severity class and record URL; deterministic counts by status, category and year; days since the latest violation; the longest repeat-citation streak (citati
Argument
Type
Description
bbl
string
NYC borough-block-lot, 10 digits.
bin
string
NYC building identification number, 7 digits.
zip
string
ZIP code (informational; not used to widen a match).
city
string
City, when not inside address. For NYC a borough name (Brooklyn, Queens, ...) narrows the match.
state
string
Two-letter state, when not inside address.
address
string
US street address with city and state, e.g. '447 21st Ave, San Francisco, CA 94121'. Give exactly one of address, bbl or bin.
lookback_years
integer
Years of history to read (default 10).
Input schema (JSON)
{
"type": "object",
"properties": {
"bbl": {
"type": "string",
"pattern": "^[1-5][0-9]{9}$",
"description": "NYC borough-block-lot, 10 digits."
},
"bin": {
"type": "string",
"pattern": "^[1-5][0-9]{6}$",
"description": "NYC building identification number, 7 digits."
},
"zip": {
"type": "string",
"maxLength": 10,
"description": "ZIP code (informational; not used to widen a match)."
},
"city": {
"type": "string",
"maxLength": 60,
"description": "City, when not inside address. For NYC a borough name (Brooklyn, Queens, ...) narrows the match."
},
"state": {
"type": "string",
"maxLength": 2,
"description": "Two-letter state, when not inside address."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 5,
"description": "US street address with city and state, e.g. '447 21st Ave, San Francisco, CA 94121'. Give exactly one of address, bbl or bin."
},
"lookback_years": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Years of history to read (default 10)."
}
},
"additionalProperties": false
}
proration
Proration and day-count fractions (30/360, ACT/365F, ACT/360, ACT/ACT ISDA) on half-open date ranges — Computes the year fraction of up to 100 half-open date ranges [start, end) under a named ISDA day-count convention, and optionally the prorated charge, for an agent billing a partial period or accruing interest. Conventions follow Section 4.16 of the 2006 ISDA Definitions: 30/360, 30E/360, 30E/360 (ISDA), Actual/365 (Fixed), Actual/360, Actual/Actual (ISDA), 1/1. `end` is the day immediately follo
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"convention"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Exclusive end: the day after the last day included. Must not precede start."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calendar date YYYY-MM-DD."
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Optional amount to prorate (annual amount without `period`; period amount with it)."
},
"period": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calendar date YYYY-MM-DD."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calendar date YYYY-MM-DD."
}
},
"description": "Full billing period [start, end); the charge is amount x fraction(range) / fraction(period).",
"additionalProperties": false
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Rounding of the charge to the currency's minor unit. Default half-up. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"convention": {
"enum": [
"1/1",
"30/360",
"30E/360",
"30E/360-ISDA",
"ACT/365F",
"ACT/360",
"ACT/ACT-ISDA",
"ACT/ACT-ICMA"
],
"type": "string"
},
"terminationDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Termination date of the transaction; only used by 30E/360-ISDA."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
qualifier-compare
Requested vs quoted specification attributes: met, not met or not comparable — Compares up to 200 requested attribute requirements with the values a supplier quoted (voltage, grade, finish, tolerance, brand, certification), for an agent checking that a quote matches the request before buying. Requirements are eq, ne, gte, lte, gt, lt, between (value..max), in (a list) or present; numeric comparisons use exact decimals, an optional tolerance, and the caller's unit conversions
Argument
Type
Description
items*
array
conversions
array
Caller-supplied unit conversions; none are built in.
Would this request fit in the remaining quota, given a snapshot and pending reservations? (snapshot-bound) — Computes available quota from a caller-supplied snapshot (limit, used, reserved) minus the unexpired pending reservations and says whether a requested amount fits. This is a read of the numbers you supply as of snapshotAt: it reserves nothing, so concurrent consumers can still use the quota before you do, and every response says so. A stale snapshot gives unknown, not pass; a window that ended at
Argument
Type
Description
asOf*
string
RFC 3339 instant of the decision (no clock is read).
quota*
object
pending
array
request*
object
snapshotAt*
string
RFC 3339 instant the quota numbers were read.
maxSnapshotAgeSeconds
integer
Input schema (JSON)
{
"type": "object",
"required": [
"quota",
"request",
"snapshotAt",
"asOf"
],
"properties": {
"asOf": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant of the decision (no clock is read)."
},
"quota": {
"type": "object",
"required": [
"limit",
"used"
],
"properties": {
"used": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"reserved": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Amount already reserved and counted outside `pending`."
},
"windowEndsAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 end of the quota window the snapshot belongs to."
}
},
"additionalProperties": false
},
"pending": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"amount"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"amount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expiresAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339; a reservation expiring at or before asOf no longer holds quota. Omit for a hold that does not expire."
}
},
"additionalProperties": false
},
"maxItems": 200
},
"request": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
},
"snapshotAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant the quota numbers were read."
},
"maxSnapshotAgeSeconds": {
"type": "integer",
"maximum": 31536000,
"minimum": 0
}
},
"additionalProperties": false
}
quote-normalize
Normalise supplier quotes to one comparable unit price (currency, unit of measure, tax, discount) — Converts up to 200 quoted prices to a net price per base unit in one currency, for an agent comparing supplier quotes. Each line: price for `per` units of a unit of measure, optional tax-inclusive flag and rate, optional percentage discount, any currency. Uses only the caller's exchange rates and unit factors (1 uom = factor base units); a currency without a rate, a unit without a factor, or a tax
Argument
Type
Description
lines*
array
baseUom
string
Name of the base unit prices are normalised to (default "unit").
fxRates
array
uomFactors
array
targetCurrency*
string
ISO 4217 alphabetic code, upper case.
Input schema (JSON)
{
"type": "object",
"required": [
"targetCurrency",
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"currency",
"price"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"per": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Quantity the price covers (default 1), e.g. \"1000\" for a per-thousand price."
},
"uom": {
"type": "string",
"maxLength": 16,
"minLength": 1,
"description": "Unit of measure of `per`; the base unit when omitted."
},
"price": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Quoted price in major units of `currency`, for `per` units of `uom`."
},
"taxRate": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Percent, e.g. \"20\"."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"taxIncluded": {
"type": "boolean",
"description": "True if the price already includes tax; then taxRate is required."
},
"discountPercent": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Percent discount off the net price."
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
},
"baseUom": {
"type": "string",
"maxLength": 16,
"minLength": 1,
"description": "Name of the base unit prices are normalised to (default \"unit\")."
},
"fxRates": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"rate"
],
"properties": {
"from": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"rate": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Target-currency units per one unit of `from`."
}
},
"additionalProperties": false
},
"maxItems": 50
},
"uomFactors": {
"type": "array",
"items": {
"type": "object",
"required": [
"uom",
"factor"
],
"properties": {
"uom": {
"type": "string",
"maxLength": 16,
"minLength": 1
},
"factor": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Base units in one `uom`."
}
},
"additionalProperties": false
},
"maxItems": 50
},
"targetCurrency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
}
},
"additionalProperties": false
}
recipe-scale
Recipe scaling with caller-declared non-linear rules — Scales up to 60 ingredient quantities by a servings ratio or a factor for an agent resizing a recipe or batch formula, applying per-ingredient rules the caller declares: linear (the labelled default), power exponent, fixed amounts, min/max clamps and rounding steps, with an optional display unit via unit-convert. Reports what rounding did (relative drift, rounds-to-zero). It does NOT know which in
Argument
Type
Description
factor
number
Scale factor, instead of fromServings/toServings.
density
object
Default density for displayUnit conversions that cross mass and volume.
toServings
number
Servings wanted.
ingredients*
array
Ingredients with quantity, unit and optional scaling rule.
fromServings
number
Servings the recipe is written for.
maxRelativeDrift
number
Fail an ingredient when rounding moves it by more than this fraction (0.1 = 10%).
Input schema (JSON)
{
"type": "object",
"required": [
"ingredients"
],
"properties": {
"factor": {
"type": "number",
"maximum": 1000,
"minimum": 0.001,
"description": "Scale factor, instead of fromServings/toServings."
},
"density": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 40,
"description": "Mass per volume unit expression, e.g. g/mL, kg/m3, lb/ft3, oz/cup_us."
},
"value": {
"type": "number",
"maximum": 1000000000,
"minimum": 1e-9,
"description": "Caller-supplied mass per volume. Never looked up: no ingredient density table is shipped."
}
},
"description": "Default density for displayUnit conversions that cross mass and volume.",
"additionalProperties": false
},
"toServings": {
"type": "number",
"maximum": 1000000,
"minimum": 0.000001,
"description": "Servings wanted."
},
"ingredients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"quantity",
"unit"
],
"properties": {
"max": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Upper clamp applied after the rule."
},
"min": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Lower clamp applied after the rule."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Ingredient name, echoed back."
},
"rule": {
"enum": [
"linear",
"power",
"fixed"
],
"type": "string",
"description": "How the quantity scales. Default linear (quantity x factor): the labelled default, not a culinary claim. power: quantity x factor^exponent. fixed: stays at fixedQuantity (or the written quantity)."
},
"unit": {
"type": "string",
"maxLength": 40,
"description": "Unit of the quantity: a unit-convert expression (g, cup_us, tbsp_metric) or any counted unit (egg, clove) that is only scaled, never converted."
},
"claimed": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Optional claimed scaled quantity (after rounding); a mismatch fails."
},
"density": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 40,
"description": "Mass per volume unit expression, e.g. g/mL, kg/m3, lb/ft3, oz/cup_us."
},
"value": {
"type": "number",
"maximum": 1000000000,
"minimum": 1e-9,
"description": "Caller-supplied mass per volume. Never looked up: no ingredient density table is shipped."
}
},
"description": "Per-ingredient density for displayUnit, overriding the top-level one.",
"additionalProperties": false
},
"roundTo": {
"type": "number",
"maximum": 1000000,
"minimum": 0.000001,
"description": "Round to a multiple of this step (0.25 cup, 1 egg)."
},
"exponent": {
"type": "number",
"maximum": 2,
"minimum": 0,
"description": "Exponent for rule power, caller-supplied (no culinary constants are built in)."
},
"quantity": {
"type": "number",
"maximum": 1000000000,
"minimum": 1e-9,
"description": "Quantity in the recipe as written."
},
"roundMode": {
"enum": [
"nearest",
"up",
"down"
],
"type": "string",
"description": "Default nearest, ties up."
},
"displayUnit": {
"type": "string",
"maxLength": 40,
"description": "Also report the scaled quantity in this unit (needs a density to cross mass and volume)."
},
"relTolerance": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Relative tolerance for claimed. Default 1e-9."
},
"fixedQuantity": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Quantity for rule fixed. Defaults to the written quantity."
}
},
"additionalProperties": false
},
"maxItems": 60,
"minItems": 1,
"description": "Ingredients with quantity, unit and optional scaling rule."
},
"fromServings": {
"type": "number",
"maximum": 1000000,
"minimum": 0.000001,
"description": "Servings the recipe is written for."
},
"maxRelativeDrift": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Fail an ingredient when rounding moves it by more than this fraction (0.1 = 10%)."
}
},
"additionalProperties": false
}
reconcile-ledger
Exact Ledger Reconciler — Explains which charges, refunds and fees make up a Stripe, PayPal or bank payout, with an exact solver instead of a model: subset-sum over integer minor units (meet-in-the-middle, DP, branch-and-bound) across candidate fee schedules (percentage + fixed, tiers, caps), withholding, FX rates and rounding conventions (half-up, half-even, truncate; per line or on the total). Paste a Stripe balance or p
Argument
Type
Description
text
object
Messy source text for collections not given structurally. A CSV with a header (Stripe balance or payout-reconciliation export, PayPal activity export, bank statement) is parsed by code with no model, and so are headerless lines with one amount each (date, id, amount, currency, and wording that names one kind, such as Payment or Refund); anything else goes to a fast-tier LLM that must quote every row verbatim.
items
array
Ledger lines. Amounts are signed (refunds and disputes negative) strings in major units, e.g. "1234.56".
limits
object
fxRates
array
Direct rates only (1 from = rate to). The latest rate dated on or before the reference date applies; an undated rate is the fallback.
crossCheck
boolean
Run two independent LLM translations and keep only rows both produced (default true).
maxLagDays
integer
An item may settle at most this many days after its date.
recurrence-expand
Expand an RRULE or 5-field cron into concrete occurrences with DST handling, exclusions and conflict detection — Expands an RFC 5545 RRULE (FREQ DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, COUNT, UNTIL, BYDAY with ordinals, BYMONTHDAY, BYMONTH, BYSETPOS, WKST; DTSTART with TZID; EXDATE) or a crontab(5) expression into up to 366 occurrences in a time zone, with the UTC instant of each, DST gap or overlap flags, caller blackout dates, a plain-English reading, and optionally the occurrences where it collides with a
Argument
Type
Description
to
string
Local end of the window, inclusive.
from
string
Local start of the output window; required for cron, default DTSTART for rrule.
kind*
string
rule*
string
rrule: 'DTSTART;TZID=America/New_York:19970902T090000\nRRULE:FREQ=DAILY;COUNT=10\nEXDATE;TZID=America/New_York:19970903T090000' or just 'FREQ=...' with dtstart. cron: '*/15 9-17 * * 1-5' (dom and dow both restricted match if either does).
limit
integer
Maximum occurrences returned (default 20).
other
object
A second rule to compare; conflicts are occurrences whose intervals overlap (equal instants when both durations are 0).
dtstart
string
Local DTSTART when the rule text has none.
redact-text
Selective PII redaction with a self-check — Redacts detected personal data at the level you choose and rescans the output with the same rules. This self-check does not prove that all personal data is gone. Pick a level: 1 government identifiers (SSN, ITIN, EIN, UK NINO, Canadian SIN, driver's license, passport), 2 adds dates of birth, 3 adds street addresses and phone numbers, 4 adds person names and email addresses. Then switch single cate
Argument
Type
Description
keep
array
Strings that must never be redacted, such as your own email address or company name. Case-insensitive, whole match.
text*
string
The document text to redact (plain text, Markdown, CSV, JSON or HTML source).
level
integer
Cumulative preset, default 1. 1: government identifiers (SSN, ITIN, EIN, UK NINO, Canadian SIN, driver's license, passport); 2: level 1 plus dates of birth; 3: level 2 plus street addresses and phone numbers; 4: level 3 plus person names and email addresses.
style
string
label (default): [REDACTED:SSN]. generic: [REDACTED]. numbered: [PERSON_1], same value same number. last4: [REDACTED:SSN:*6789] for numeric identifiers; this discloses the last four characters.
terms
array
Words or phrases to redact wherever they appear (business names, project names, people you already know). Case-insensitive.
exclude
array
Categories to remove from the level preset.
redirect-credential-check
Redirect chain credential-leak check — Walks a supplied HTTP redirect chain (up to 25 hops of status + Location) for an agent or HTTP client author and reports, per hop, which of the request's header names (Authorization, Cookie, Proxy-Authorization, API-key-like, Referer) are stripped or still forwarded, the method after the hop (301/302 POST to GET, 303, 307/308), whether the hop crosses origin, scheme, or registrable domain, an http
Argument
Type
Description
hops*
array
method
string
Initial request method. Default GET.
requestUrl*
string
Initial absolute URL.
publicSuffixes
array
Extra public suffixes for registrable-domain decisions.
requestHeaderNames*
array
Names of headers on the initial request. Never send values.
clientStripsOnCrossOrigin
array
Header names your client deletes on an origin change. Default: ["authorization"], the Fetch Standard rule.
Bibliography Reference Verifier — Checks every reference in a bibliography against Crossref, OpenAlex, arXiv and Europe PMC and leads with a verdict (FIX_REQUIRED, REVIEW_RECOMMENDED, INCOMPLETE or ALL_VERIFIED), a confidence, a one-line headline, the next step and a prioritized fix list. Input: BibTeX, LaTeX \bibitem, a plain-text list (APA, IEEE, Vancouver), an arXiv id (read via ar5iv), a PDF URL, or just a list of DOIs, arXiv
Argument
Type
Description
latex
string
LaTeX source with a thebibliography environment (\bibitem) or embedded filecontents .bib; \cite commands supply citation contexts and are checked against the entries.
bibtex
string
BibTeX/BibLaTeX text (the contents of a .bib file).
pdfUrl
string
Public PDF URL. Text extraction is best-effort (Word and Google Docs exports work best).
arxivId
string
arXiv id or URL; references are read from the ar5iv HTML (.ltx_bibitem), falling back to the PDF.
manuscript
string
Optional manuscript text (LaTeX or plain) that supplies citation contexts: \cite keys, [n] numbers or Author (year) citations.
references
string
Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago).
identifiers
array
Bare identifiers instead of a bibliography: up to 150 DOIs (bare, doi: or doi.org URL), arXiv ids or URLs, or PMIDs (bare, PMID: or PubMed URL), mixed freely. Each is resolved and checked for retraction, correction and a published version of record.
regex-check
Regex catastrophic-backtracking check, then test cases only if proven safe — Statically analyses an ECMAScript regular expression (up to 500 characters) for catastrophic backtracking (nested or overlapping quantifiers, ambiguous alternation in a loop, backreferences, lookarounds) for agents that write or accept regexes. Runs the caller's test subjects (up to 20, 1000 characters each) only when the pattern is proven polynomially bounded and the subject is short enough for t
Argument
Type
Description
cases
array
Subjects to test; at most 10000 characters in total.
Regional Economy & Trade Brief — Given a US state, county or metro (name, FIPS or CBSA), an industry (NAICS code or description) and a role (retailer, logistics, cfo, lender, other), reads BLS LAUS and QCEW, FRED (state employment, house prices, goods exports and imports, regional CPI), Census Building Permits and USAspending live, then computes levels, year-over-year and three-year changes, location quotient, z-scores against th
Argument
Type
Description
role*
string
Who the brief is for.
region*
string
A US state, county or metropolitan area by name ("Ohio", "Travis County, TX", "Phoenix metro"), state FIPS (39), county FIPS (48453) or metro CBSA code (38060).
industry*
string
NAICS code (44-45, 722, 4841) or a plain description ("restaurants", "trucking").
regionType
string
Disambiguates a name that is both a county and a metro or state.
lookbackYears
integer
Years of history used for z-scores (default 5).
Input schema (JSON)
{
"type": "object",
"required": [
"region",
"industry",
"role"
],
"properties": {
"role": {
"enum": [
"retailer",
"logistics",
"cfo",
"lender",
"other"
],
"type": "string",
"description": "Who the brief is for."
},
"region": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "A US state, county or metropolitan area by name (\"Ohio\", \"Travis County, TX\", \"Phoenix metro\"), state FIPS (39), county FIPS (48453) or metro CBSA code (38060)."
},
"industry": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "NAICS code (44-45, 722, 4841) or a plain description (\"restaurants\", \"trucking\")."
},
"regionType": {
"enum": [
"state",
"county",
"metro"
],
"type": "string",
"description": "Disambiguates a name that is both a county and a metro or state."
},
"lookbackYears": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Years of history used for z-scores (default 5)."
}
},
"additionalProperties": false
}
regulatory-change-brief
Regulatory Change Brief (Federal Register, EDGAR, Dockets) — Given an industry or topic and optional agencies, CFR parts, terms and companies, pulls recent US regulatory changes from official free sources: Federal Register final and proposed rules (with effective dates, comment deadlines and official URLs), SEC EDGAR 8-K items and other filings for named companies, and CourtListener dockets and opinions when the operator has a token. Days remaining are comp
Argument
Type
Description
focus
string
Weights ranking and the impact assessment toward operations, reporting or enforcement.
terms
array
Federal Register search phrases, e.g. "data breach notification".
agencies
array
Agency names, acronyms or Federal Register slugs, e.g. "SEC", "Environmental Protection Agency".
industry
string
Industry or topic, e.g. "community banks offering consumer credit". Used to plan searches and to judge impact.
cfr_parts
array
CFR parts, e.g. "17 CFR 240" or "40 CFR 60".
companies
array
Company names, tickers or CIKs whose recent SEC filings (8-K items, 10-K/Q) to list.
sic_codes
array
SIC codes; industry context only, registrants are not enumerated by SIC.
replication-auditor
Scientific Consensus & Replication Failure Auditor — Give a DOI, arXiv id, PMID, URL, title or a free-text claim and get a verdict-first screen of whether the finding has been retracted, contradicted or failed to replicate: ROBUST / CONTESTED / UNREPLICABLE_HYPE / INSUFFICIENT_EVIDENCE with a 0-100 replicationRiskScore, confidence, a DO_NOT_RELY / VERIFY_BEFORE_RELYING / RELY_WITH_CAVEATS action, a one-line headline and a next step. Checks Crossref,
Argument
Type
Description
doi
string
DOI of the paper to audit (bare, doi: or doi.org URL). Takes precedence over paperTitleOrDoi.
url
string
A doi.org, arxiv.org or pubmed.ncbi.nlm.nih.gov URL for the paper.
pmid
string
PubMed id (digits) or pubmed.ncbi.nlm.nih.gov URL. Mapped to the DOI through Europe PMC.
arxivId
string
arXiv id or arxiv.org URL (2106.09685, arXiv:1706.03762, hep-th/9901001). Resolved through Semantic Scholar and OpenAlex.
paperTitleOrDoi
string
DOI (10.xxxx/..., bare or doi.org URL), arXiv or PubMed URL, or title of the paper to audit.
scientificClaim
string
Free-text claim; the originating and closely related works are located by search. Used as context when a paper is also given.
Input schema (JSON)
{
"type": "object",
"properties": {
"doi": {
"type": "string",
"maxLength": 300,
"minLength": 7,
"description": "DOI of the paper to audit (bare, doi: or doi.org URL). Takes precedence over paperTitleOrDoi."
},
"url": {
"type": "string",
"maxLength": 500,
"minLength": 8,
"description": "A doi.org, arxiv.org or pubmed.ncbi.nlm.nih.gov URL for the paper."
},
"pmid": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "PubMed id (digits) or pubmed.ncbi.nlm.nih.gov URL. Mapped to the DOI through Europe PMC."
},
"arxivId": {
"type": "string",
"maxLength": 80,
"minLength": 4,
"description": "arXiv id or arxiv.org URL (2106.09685, arXiv:1706.03762, hep-th/9901001). Resolved through Semantic Scholar and OpenAlex."
},
"paperTitleOrDoi": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "DOI (10.xxxx/..., bare or doi.org URL), arXiv or PubMed URL, or title of the paper to audit."
},
"scientificClaim": {
"type": "string",
"maxLength": 2000,
"minLength": 10,
"description": "Free-text claim; the originating and closely related works are located by search. Used as context when a paper is also given."
}
},
"additionalProperties": false
}
requirement-coverage
Checklist coverage: caller requirements against caller evidence — Evaluates a checklist of requirements the caller defines (each made of needs on evidence keys: present, equals, one of, min/max, maximum age) against evidence the caller supplies, and returns met / unmet / unknown per requirement with the exact need and value that decided it. For an agent that must prove a task's acceptance criteria were covered before it reports done. Does not judge whether the p
Argument
Type
Description
asOf
string
Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock.
evidence*
array
Observed facts. Several items may share a key (conflicts surface as unknown).
requirements*
array
The checklist.
Input schema (JSON)
{
"type": "object",
"required": [
"requirements",
"evidence"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "When this was observed (ISO date or instant)."
},
"value": {
"description": "Observed JSON value. Omitted means the fact is present with no value; false or null means observed absent."
},
"source": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "Observed facts. Several items may share a key (conflicts surface as unknown)."
},
"requirements": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"needs"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100
},
"mode": {
"enum": [
"all",
"any",
"atLeast"
],
"type": "string",
"description": "How the needs combine. Default all; with forbid:true the default is any (the requirement is unmet as soon as one listed need applies), and all means only the conjunction is prohibited."
},
"text": {
"type": "string",
"maxLength": 500,
"description": "Free text echoed in witnesses."
},
"needs": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100,
"description": "Evidence key this need reads."
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive upper bound, same comparison rules as min."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive lower bound. Numbers compare numerically; two dotted-digit strings (1.10.2) compare segment by segment."
},
"oneOf": {
"type": "array",
"items": {
"description": "Allowed JSON value."
},
"maxItems": 50,
"description": "The evidence value must equal one of these."
},
"equals": {
"description": "The evidence value must equal this JSON value (deep equality)."
},
"maxAgeDays": {
"type": "number",
"maximum": 36500,
"minimum": 0,
"description": "Evidence must be dated (asOf on the evidence item) and at most this many days before the request asOf."
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1
},
"forbid": {
"type": "boolean",
"description": "The needs describe a prohibited condition; the requirement holds only when they are all shown not to apply."
},
"atLeast": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "With mode atLeast: how many needs must hold."
},
"optional": {
"type": "boolean",
"description": "Reported, never changes the status."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "The checklist."
}
},
"additionalProperties": false
}
result-cache
Content-addressed result cache shared by your agents (short TTL) — Caches a result under the SHA-256 of the canonical (JCS) request, so every agent in your fleet that makes the same request reuses one answer for up to an hour. get returns hit with the value and age, or a miss (status unknown). Scoped to your wallet or tenantId, never shared across customers, so nobody else can poison your cache.
Argument
Type
Description
op*
string
value
any
put: the JSON result, at most 16384 bytes serialized.
request*
any
Any JSON identifying the computation; it is canonicalized (RFC 8785) and hashed.
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
namespace
string
Default: default.
ttlSeconds
integer
put: default 300.
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"request"
],
"properties": {
"op": {
"enum": [
"get",
"put"
],
"type": "string"
},
"value": {
"description": "put: the JSON result, at most 16384 bytes serialized."
},
"request": {
"description": "Any JSON identifying the computation; it is canonicalized (RFC 8785) and hashed."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"namespace": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,64}$",
"description": "Default: default."
},
"ttlSeconds": {
"type": "integer",
"maximum": 3600,
"minimum": 1,
"description": "put: default 300."
}
},
"additionalProperties": false
}
retry-admissibility
Decide whether a failed HTTP call may be retried, must be reconciled, or must not be repeated — Given a request's method, how it ended (response status, timeout, reset, refused), idempotency-key evidence and optional caller policy, returns retry / do-not-retry / reconcile / unknown for an agent deciding what to do after a failed tool or API call. Encodes RFC 9110 method idempotency, the proxy and retry-of-a-retry rules and Retry-After parsing; a timeout or reset is never read as success or a
Argument
Type
Description
asOf
string
RFC 3339 instant; needed only to turn a Retry-After HTTP-date into seconds.
actor
string
ended*
string
How the attempt ended.
method*
string
HTTP method, case-sensitive (GET, POST, ...).
policy
object
status
integer
Required when ended is 'response'.
attempt
integer
1-based number of the attempt that just ended. Default 1.
automatic
boolean
True when the retry would be issued automatically (library or proxy) rather than by a deliberate decision.
robots-check
robots.txt (RFC 9309) rule reading with llms.txt and AI-use signals — Reads a supplied robots.txt the RFC 9309 way for an agent deciding whether to fetch up to 25 paths as one product-token user agent: group selection (merged groups, "*" fallback), longest-match with the Allow-wins-tie rule, "*" and "$" patterns, percent-encoding normalization, fetch-status handling (4xx = no rules, 5xx = disallow all), the rule and line that decided each path. It also lints a suppl
Argument
Type
Description
paths*
array
Path plus optional query beginning with /, or a full http(s) URL (path and query are used).
headers
array
Response headers of the page: X-Robots-Tag, tdm-reservation, tdm-policy.
llmsTxt
string
purpose
string
ai-training also treats noai, noimageai and tdm-reservation: 1 as restrictions. Default crawl.
metaTags
array
HTML meta elements: robots, googlebot, tdm-reservation, tdm-policy.
robotsTxt
string
robots.txt body, at most 512,000 UTF-8 bytes (500 KiB).
userAgent*
string
Product token only (letters, underscore, hyphen), e.g. "Googlebot"; no version.
fetchStatus
schema-compat
Breaking-change diff between two JSON Schemas or OpenAPI documents, and whether cached calls still validate — Compares an old and a new JSON Schema 2020-12 (or two OpenAPI 3.0/3.1 documents) and lists each change with its path, keyword, old and new value, whether it narrows or widens what is accepted, and whether it breaks clients: newly required properties, removed or retyped properties, removed enum values, tightened limits, additionalProperties flips, removed operations, removed or newly required param
Argument
Type
Description
kind*
string
role
string
json-schema only: request (default) or response; OpenAPI compares each side in its own role.
after*
any
The new schema, or new OpenAPI document. Full JSON Schema 2020-12 (local $ref only).
calls
array
before*
any
The old schema, or old OpenAPI document. Full JSON Schema 2020-12 (local $ref only).
Input schema (JSON)
{
"type": "object",
"required": [
"before",
"after",
"kind"
],
"properties": {
"kind": {
"enum": [
"json-schema",
"openapi"
],
"type": "string"
},
"role": {
"enum": [
"request",
"response"
],
"type": "string",
"description": "json-schema only: request (default) or response; OpenAPI compares each side in its own role."
},
"after": {
"description": "The new schema, or new OpenAPI document. Full JSON Schema 2020-12 (local $ref only)."
},
"calls": {
"type": "array",
"items": {
"type": "object",
"required": [
"arguments"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80
},
"arguments": {
"description": "Cached call arguments (JSON schema: validated against the root; OpenAPI: against the operation's JSON request body)."
},
"operation": {
"type": "object",
"required": [
"path",
"method"
],
"properties": {
"path": {
"type": "string",
"maxLength": 500
},
"method": {
"enum": [
"get",
"put",
"post",
"delete",
"options",
"head",
"patch",
"trace"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"maxItems": 50
},
"before": {
"description": "The old schema, or old OpenAPI document. Full JSON Schema 2020-12 (local $ref only)."
}
},
"additionalProperties": false
}
schema-repair
Repair a JSON value toward a schema using only the coercions the caller declares — Validates a JSON value against a caller-supplied JSON Schema 2020-12 and applies only the coercions you list (for example string-to-integer for "42", trim-strings, enum-case, apply-defaults, drop-additional) when each one strictly reduces the number of schema errors. Every change is returned with its JSON pointer, the rule, the old and new value; every error that remains is returned with its exact
Argument
Type
Description
value*
any
The JSON value to repair.
schema*
any
The schema the value must satisfy. Full JSON Schema 2020-12 (local $ref only).
coercions*
array
Coercions you allow. Empty means validate only.
Input schema (JSON)
{
"type": "object",
"required": [
"schema",
"value",
"coercions"
],
"properties": {
"value": {
"description": "The JSON value to repair."
},
"schema": {
"description": "The schema the value must satisfy. Full JSON Schema 2020-12 (local $ref only)."
},
"coercions": {
"type": "array",
"items": {
"enum": [
"string-to-number",
"string-to-integer",
"string-to-boolean",
"number-to-string",
"boolean-to-string",
"trim-strings",
"enum-case",
"empty-string-to-null",
"null-to-default",
"apply-defaults",
"drop-additional",
"wrap-in-array",
"unwrap-single-element-array"
],
"type": "string"
},
"maxItems": 13,
"minItems": 0,
"description": "Coercions you allow. Empty means validate only."
}
},
"additionalProperties": false
}
schema-witness
One valid and one invalid example for each constraint in a JSON Schema — Walks a caller-supplied JSON Schema 2020-12 and, for every constraint keyword (type, enum, const, minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, minLength, maxLength, pattern, format, minItems, maxItems, uniqueItems, required, minProperties, maxProperties, additionalProperties false, dependentRequired), returns the JSON pointer of the constraint, an example that satisfies it and
Argument
Type
Description
schema*
any
The schema to generate examples for. Full JSON Schema 2020-12 (local $ref only).
maxConstraints
integer
Stop after this many constraints (default 100).
Input schema (JSON)
{
"type": "object",
"required": [
"schema"
],
"properties": {
"schema": {
"description": "The schema to generate examples for. Full JSON Schema 2020-12 (local $ref only)."
},
"maxConstraints": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Stop after this many constraints (default 100)."
}
},
"additionalProperties": false
}
score-state
Score state for tennis, golf handicap differentials and cricket overs — Replays a tennis point sequence (ITF Rules of Tennis: games, deuce, tie-breaks, match tie-break, who serves), computes a golf Score Differential and Handicap Index (World Handicap System), or tallies a cricket innings ball by ball (overs.balls, wides and no-balls, maidens, wickets), for agents that must verify a reported score. Optionally checks a claimed score against the replay and names the fir
Argument
Type
Description
golf
object
For sport=golf: a round, a list of differentials, or both.
sport*
string
Selects which block below is read.
tennis
object
For sport=tennis.
cricket
object
For sport=cricket: one innings, ball by ball.
Input schema (JSON)
{
"type": "object",
"required": [
"sport"
],
"properties": {
"golf": {
"type": "object",
"properties": {
"claim": {
"type": "object",
"properties": {
"handicapIndex": {
"type": "number",
"description": "Claimed Handicap Index."
},
"scoreDifferential": {
"type": "number",
"description": "Claimed Score Differential."
}
},
"additionalProperties": false
},
"round": {
"type": "object",
"required": [
"courseRating",
"slopeRating"
],
"properties": {
"pcc": {
"type": "number",
"maximum": 3,
"minimum": -1,
"description": "Playing Conditions Calculation adjustment, -1.0 to +3.0 (Rule 5.1a). Default 0."
},
"holes": {
"type": "array",
"items": {
"type": "object",
"required": [
"par",
"gross",
"strokes"
],
"properties": {
"par": {
"type": "integer",
"maximum": 6,
"minimum": 3,
"description": "Hole par."
},
"gross": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Gross strokes."
},
"strokes": {
"type": "integer",
"maximum": 4,
"minimum": -2,
"description": "Handicap strokes received (negative for a plus handicap)."
}
},
"additionalProperties": false
},
"maxItems": 18,
"description": "Exactly 18 holes; each score is limited to net double bogey (par + 2 + strokes), or par + 5 before a Handicap Index exists."
},
"holesPlayed": {
"enum": [
9,
18
],
"type": "integer",
"description": "Default 18. 9 returns unsupported."
},
"slopeRating": {
"type": "integer",
"maximum": 155,
"minimum": 55,
"description": "Slope Rating."
},
"courseRating": {
"type": "number",
"maximum": 90,
"minimum": 20,
"description": "Course Rating."
},
"indexEstablished": {
"type": "boolean",
"description": "Default true. False: limit holes to par + 5 (Rule 3.1a)."
},
"adjustedGrossScore": {
"type": "integer",
"maximum": 300,
"minimum": 18,
"description": "18-hole adjusted gross score. Give this or holes."
}
},
"additionalProperties": false
},
"differentials": {
"type": "array",
"items": {
"type": "number",
"maximum": 80,
"minimum": -20,
"description": "A Score Differential."
},
"maxItems": 40,
"minItems": 1,
"description": "Scoring record, oldest first; the most recent 20 are used."
},
"lowHandicapIndex": {
"type": "number",
"maximum": 54,
"minimum": -10,
"description": "Low Handicap Index (365 days), used only to detect that the soft cap would apply."
}
},
"description": "For sport=golf: a round, a list of differentials, or both.",
"additionalProperties": false
},
"sport": {
"enum": [
"tennis",
"golf",
"cricket"
],
"type": "string",
"description": "Selects which block below is read."
},
"tennis": {
"type": "object",
"required": [
"points"
],
"properties": {
"noAd": {
"type": "boolean",
"description": "Appendix VI No-Ad: a deciding point at deuce. Default false."
},
"claim": {
"type": "object",
"properties": {
"games": {
"type": "array",
"items": {
"type": "integer",
"maximum": 20,
"minimum": 0,
"description": "games or sets"
},
"maxItems": 2,
"minItems": 2,
"description": "Games in the current set [a, b] (0-0 after a set ends)."
},
"server": {
"enum": [
"a",
"b"
],
"type": "string",
"description": "Who serves the next point."
},
"winner": {
"enum": [
"a",
"b"
],
"type": "string"
},
"setsWon": {
"type": "array",
"items": {
"type": "integer",
"maximum": 20,
"minimum": 0,
"description": "games or sets"
},
"maxItems": 2,
"minItems": 2,
"description": "Sets won [a, b]."
}
},
"description": "Optional claims to verify against the replay.",
"additionalProperties": false
},
"bestOf": {
"enum": [
3,
5
],
"type": "integer",
"description": "Default 3."
},
"points": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Point winners from the first point of the match, one character each: \"a\" or \"b\" (players, not server/receiver). Up to 2000."
},
"finalSet": {
"enum": [
"tiebreak",
"advantage",
"super-tiebreak-10"
],
"type": "string",
"description": "tiebreak (default): 7-point tie-break at 6-6 in every set. advantage: no tie-break in the final set. super-tiebreak-10: a 10-point tie-break replaces the final set (Appendix VI)."
},
"firstServer": {
"enum": [
"a",
"b"
],
"type": "string",
"description": "Who serves the first game. Default a."
}
},
"description": "For sport=tennis.",
"additionalProperties": false
},
"cricket": {
"type": "object",
"required": [
"events"
],
"properties": {
"claim": {
"type": "object",
"properties": {
"runs": {
"type": "integer",
"minimum": 0,
"description": "Claimed total runs."
},
"overs": {
"type": "string",
"maxLength": 8,
"description": "Claimed overs.balls, for example \"3.4\"."
},
"maidens": {
"type": "integer",
"maximum": 200,
"minimum": 0,
"description": "Claimed maiden overs."
},
"wickets": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "Claimed wickets."
},
"validBalls": {
"type": "integer",
"maximum": 1200,
"minimum": 0,
"description": "Claimed valid balls bowled."
},
"inningsOver": {
"type": "boolean",
"description": "Claimed that the innings has ended (needs maxOvers or all wickets down)."
}
},
"additionalProperties": false
},
"events": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"runs": {
"type": "integer",
"maximum": 12,
"minimum": 0,
"description": "ball: runs scored. wide/noball: runs in addition to the 1-run penalty. Default 0."
},
"type": {
"enum": [
"ball",
"wide",
"noball",
"dead"
],
"type": "string",
"description": "ball: a valid delivery. wide / noball: delivery that does not count (Laws 21, 22). dead: called dead before the striker could play it (Law 17.3.2.1)."
},
"wicket": {
"type": "boolean",
"description": "A batter was dismissed on this delivery."
},
"runsKind": {
"enum": [
"bat",
"bye",
"legbye"
],
"type": "string",
"description": "Whose runs: default bat. Not for wides."
}
},
"additionalProperties": false
},
"maxItems": 1000,
"minItems": 1,
"description": "Deliveries in order."
},
"maxOvers": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Innings limit in overs, if any."
},
"maxWickets": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Wickets that end the innings. Default 10."
}
},
"description": "For sport=cricket: one innings, ball by ball.",
"additionalProperties": false
}
},
"additionalProperties": false
}
screen-tokens
Batch Token Trap Screen — Runs the on-chain bytecode honeypot / rug screen on up to 10 Base tokens in one paid call, at 40% less than 10 single calls. Tokens the screen rejects as invalid input are reported per token; a chain or upstream outage fails the whole call so the payment is not settled.
Version range check: npm, PEP 440, Cargo, Maven — Parses a dependency version range in npm (node-semver), PEP 440 specifier, Cargo requirement or Maven range syntax and tests up to 100 candidate versions against it, for agents that write or review manifests. Returns per-version satisfies/violates with the failing comparator, the normalized range, the sorted versions and the highest match; pre-release, caret on 0.x, epoch and local-version rules f
Argument
Type
Description
range*
string
The range: npm '^1.2.3 || >=2', PEP 440 '>=1.0,<2', Cargo '>=1.2, <1.5', Maven '[1.0,2.0)'.
versions
array
Candidate versions to test; omit to only validate the range.
{
"type": "object",
"required": [
"ecosystem",
"range"
],
"properties": {
"range": {
"type": "string",
"maxLength": 300,
"description": "The range: npm '^1.2.3 || >=2', PEP 440 '>=1.0,<2', Cargo '>=1.2, <1.5', Maven '[1.0,2.0)'."
},
"versions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 100,
"description": "Candidate versions to test; omit to only validate the range."
},
"ecosystem": {
"enum": [
"npm",
"pep440",
"cargo",
"maven"
],
"type": "string",
"description": "Which range syntax and version ordering to apply."
},
"prereleases": {
"type": "boolean",
"description": "npm includePrerelease / PEP 440 prereleases=true. Default false (ecosystem default exclusion applies)."
}
},
"additionalProperties": false
}
sentinel-values
Placeholder values hiding as data: caller-declared sentinels and likely candidates — Scans columns of values for sentinels. Values you declare in a dictionary (for example -1 means unknown in column age) are reported as asserted hits with their row paths. Other values that look like missing-data markers are reported separately as candidates, never asserted: the pandas default NA strings, spreadsheet error values, whitespace-only text, placeholder words, zero and epoch dates, fixed
Argument
Type
Description
columns*
array
dictionary
array
Values you know are sentinels.
Input schema (JSON)
{
"type": "object",
"required": [
"columns"
],
"properties": {
"columns": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"values"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"values": {
"type": "array",
"items": {
"description": "A cell: string, number, boolean or null."
},
"maxItems": 2000
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1
},
"dictionary": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"description": "The sentinel value (string, number or boolean); matched by type and value."
},
"column": {
"type": "string",
"maxLength": 100,
"description": "Limit the entry to this column; omit for all columns."
},
"meaning": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"maxItems": 100,
"description": "Values you know are sentinels."
}
},
"additionalProperties": false
}
sequence-identifier
Integer Sequence Identifier — Identifies an integer sequence from terms (a JSON array or pasted text), an OEIS A-number, a safe-parsed formula or recurrence, or a description, and leads with a verdict, confidence, A-number, formula, next terms and a next step. Searches the OEIS directly, then superseeker-style (differences, partial sums, gcd, ratios, binomial, Euler, leading terms, plus a search without the last two terms to f
Argument
Type
Description
count
integer
How many terms to expand from the formula; default 20.
start
integer
Index n of the first expanded term; default 0.
terms
array
Integer terms, 4 to 60, each at most 40 digits. Pass values beyond 2^53 as decimal strings.
aNumber
string
Alternative to terms: an OEIS A-number (A000108) or oeis.org URL. The entry is fetched and its data searched for related sequences; returns its name, formulas and next terms.
explain
boolean
Ask a model for a one-sentence explanation drawn only from the matched OEIS entry; its quote is verified in code, otherwise the entry name is returned. Default false.
formula
string
Alternative to terms: a closed form in n such as "binomial(2*n,n)/(n+1)", or a recurrence such as "a(n) = a(n-1) + a(n-2)" (with initialTerms). Operators + - * / % ^, functions binomial fact abs gcd min max floor mod. Evaluated by a safe parser, never eval; every term must be an integer.
settlement-date
Settlement date for a trade date: US equities T+1 on NYSE and Federal Reserve days, or T+n on a caller calendar — Computes the settlement date for a trade date under US equities T+1 (17 CFR 240.15c6-1, compliance date 2024-05-28) counting only days when the NYSE and the Federal Reserve Banks are open, or T+n on a named or caller calendar, and checks an asserted settlement date. The settlement-day rule (NYSE and Reserve Banks both open, so Columbus Day and Veterans Day are skipped) is our inference, not a publ
Argument
Type
Description
weekend
array
Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend.
calendar
string
Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list).
holidays
array
Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry).
cycleDays
integer
custom only.
tradeDate*
string
settlement*
string
us-equities: T+1 since 2024-05-28 on the us-equities-settlement calendar (2026-2028). custom: cycleDays on calendar/holidays/weekend.
claimedSettlementDate
string
shelf-life-check
Is this lot still within shelf life on a given date? (unopened and after-opening limits, minimum remaining days) — For up to 100 lots, computes the expiry date from manufacture/fill date + shelf life (days, weeks, months, years; month arithmetic clamps to month end) and from opened date + after-opening life, takes the earlier, and checks it against a caller asOf date and an optional minimum remaining days at receipt; flags a labelled expiry that disagrees with the computed one. The last day of life is the expi
Shell quoting for bash, PowerShell and cmd.exe with a parse-back check — Turns up to 50 literal strings into a safely quoted argument for bash/sh (POSIX single-quote method), PowerShell (single-quoted literal) and cmd.exe, for agents that build a command line from untrusted or free-form text, and parses each result back with a model of that shell's rules to prove it yields the original string. It returns `unsupported` for strings cmd.exe cannot carry safely (line break
Argument
Type
Description
values*
array
Literal argument values; at most 100000 characters in total.
targets
array
Shells to quote for; default all three. Status is unsupported when any requested target cannot carry a value.
Input schema (JSON)
{
"type": "object",
"required": [
"values"
],
"properties": {
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4096
},
"maxItems": 50,
"minItems": 1,
"description": "Literal argument values; at most 100000 characters in total."
},
"targets": {
"type": "array",
"items": {
"enum": [
"bash",
"powershell",
"cmd"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Shells to quote for; default all three. Status is unsupported when any requested target cannot carry a value."
}
},
"additionalProperties": false
}
site-access-check
Site access: caller access rules against observed site facts — Checks whether an intended action on a website (read, crawl, submit, log in, ...) satisfies the access rules the caller supplies (robots rule read, terms clause, login present, rate-limit budget, captcha seen) against facts the caller observed, and says which rule blocked it or which fact is missing. For an agent deciding whether to proceed or ask. It is a reading of the caller's rules, not legal
Argument
Type
Description
asOf
string
Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock.
rules*
array
Access rules: needs that must hold, or with forbid:true, conditions that must not apply.
action*
string
The intended action, matched against each rule's appliesTo.
evidence*
array
Observed site facts.
Input schema (JSON)
{
"type": "object",
"required": [
"action",
"rules",
"evidence"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "Reference instant (ISO date or instant) for evidence age; required only when a need sets maxAgeDays. The check never reads the clock."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"needs"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100
},
"mode": {
"enum": [
"all",
"any",
"atLeast"
],
"type": "string",
"description": "How the needs combine. Default all; with forbid:true the default is any (the requirement is unmet as soon as one listed need applies), and all means only the conjunction is prohibited."
},
"text": {
"type": "string",
"maxLength": 500,
"description": "Free text echoed in witnesses."
},
"needs": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100,
"description": "Evidence key this need reads."
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive upper bound, same comparison rules as min."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Inclusive lower bound. Numbers compare numerically; two dotted-digit strings (1.10.2) compare segment by segment."
},
"oneOf": {
"type": "array",
"items": {
"description": "Allowed JSON value."
},
"maxItems": 50,
"description": "The evidence value must equal one of these."
},
"equals": {
"description": "The evidence value must equal this JSON value (deep equality)."
},
"maxAgeDays": {
"type": "number",
"maximum": 36500,
"minimum": 0,
"description": "Evidence must be dated (asOf on the evidence item) and at most this many days before the request asOf."
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1
},
"forbid": {
"type": "boolean",
"description": "The needs describe a prohibited condition; the requirement holds only when they are all shown not to apply."
},
"atLeast": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "With mode atLeast: how many needs must hold."
},
"optional": {
"type": "boolean",
"description": "Reported, never changes the status."
},
"appliesTo": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"description": "Action this rule governs."
},
"maxItems": 20,
"description": "Omit to apply to every action."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Access rules: needs that must hold, or with forbid:true, conditions that must not apply."
},
"action": {
"type": "string",
"maxLength": 60,
"description": "The intended action, matched against each rule's appliesTo."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"maxLength": 100
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$",
"maxLength": 40,
"description": "When this was observed (ISO date or instant)."
},
"value": {
"description": "Observed JSON value. Omitted means the fact is present with no value; false or null means observed absent."
},
"source": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "Observed site facts."
}
},
"additionalProperties": false
}
slot-intersect
Common free time across participants: intersect availability windows, report who blocks — Intersects up to 20 participants' free windows (up to 200 each, half-open RFC 3339 intervals with Z or offsets, so mixed time zones are fine) into the common slots at least minMinutes long, optionally clipped to a search window; when nothing fits, names the participants whose removal would create a slot. Built for an agent scheduling a meeting from already-fetched availability. It does not read ca
SMT Contract & Policy Logic Prover — Answers a yes/no logic question about contract clauses, IAM/OPA policies or business rules with a solver-backed result and a plain-language headline and next step. Takes clauses or pasted text (or a formal IR directly with zero LLM calls), formalizes them into typed Boolean, integer and rational constraints, then answers "is P possible", "does invariant I always hold" or "are any clauses contradic
Argument
Type
Description
ir
object
Formal IR, solved with zero LLM calls: {variables:[{name,type:bool|int|real,min?,max?}], constraints:[{id,expr,source?}], query:{mode:possible|always|consistency,formula?,source?}}. Expressions are JSON ASTs: {op:"var",name}, {op:"num",value:"3/4"}, {op:"true"|"false"}, and {op,args} for not, and, or, implies, iff, ite, =, !=, <, <=, >, >=, add, sub, neg, mul (one side constant). Numbers are exact strings.
text
string
Alternative to clauses: the contract, policy or rules pasted as plain text. It is split into clauses by blank lines and numbered or bulleted lines (ids C1.2 or S3). Use clauses when you need your own ids. Requires query.
query
string
The question, e.g. "Can an unauthorized user ever approve a payout over $10,000?" or "Are any clauses mutually contradictory?". Required with clauses.
budget
object
Optional lower step budgets.
clauses
array
Natural-language contract clauses, IAM/OPA policy statements or business rules, each with a caller-chosen id. Mutually exclusive with ir.
Input schema (JSON)
solar-position
Sun position, sunrise and sunset for a place and instant (NOAA equations) — Computes sun elevation, azimuth, declination, equation of time, sunrise, solar noon and sunset (UTC) for a latitude/longitude and up to 100 caller-supplied instants using the NOAA Global Monitoring Laboratory solar calculator equations (Meeus). Polar day and polar night return sunrise and sunset as null with a reason, not an error. Reads no clock: every instant comes from the caller. Does not mode
Argument
Type
Description
asOf*
string
ISO 8601 instant with Z or numeric offset; the call never reads the clock.
claim
object
Optional claim about the asOf instant to check; tolerances default to 0.5 deg and 2 minutes.
instants
array
Further instants, same place.
latitude*
number
Degrees north, -90 to 90.
longitude*
number
Degrees east, -180 to 180.
utcOffsetMinutes
integer
Offset from UTC used to define the local calendar day for sunrise/sunset (default 0).
Input schema (JSON)
{
"type": "object",
"required": [
"latitude",
"longitude",
"asOf"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,3})?)?(Z|[+-]\\d{2}:\\d{2})$",
"maxLength": 40,
"description": "ISO 8601 instant with Z or numeric offset; the call never reads the clock."
},
"claim": {
"type": "object",
"properties": {
"sunset": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,3})?)?(Z|[+-]\\d{2}:\\d{2})$",
"maxLength": 40,
"description": "Claimed sunset, ISO 8601 with Z or offset."
},
"sunrise": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,3})?)?(Z|[+-]\\d{2}:\\d{2})$",
"maxLength": 40,
"description": "Claimed sunrise, ISO 8601 with Z or offset."
},
"azimuthDeg": {
"type": "number",
"maximum": 360,
"minimum": 0,
"description": "Claimed azimuth, degrees clockwise from north."
},
"toleranceDeg": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Angle tolerance in degrees."
},
"toleranceMinutes": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Time tolerance in minutes."
},
"elevationRefractedDeg": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Claimed apparent elevation including refraction."
}
},
"description": "Optional claim about the asOf instant to check; tolerances default to 0.5 deg and 2 minutes."
},
"instants": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,3})?)?(Z|[+-]\\d{2}:\\d{2})$",
"maxLength": 40,
"description": "ISO 8601 instant with Z or offset."
},
"maxItems": 99,
"description": "Further instants, same place."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Degrees north, -90 to 90."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Degrees east, -180 to 180."
},
"utcOffsetMinutes": {
"type": "integer",
"maximum": 840,
"minimum": -720,
"description": "Offset from UTC used to define the local calendar day for sunrise/sunset (default 0)."
}
},
"additionalProperties": false
}
spdx-policy
SPDX license expression parse and policy check — Parses up to 50 SPDX license expressions (AND, OR, WITH exceptions, + or-later, LicenseRef) and evaluates each against a caller policy (allow list, deny list, allowed exceptions, OSI/FSF flags, copyleft tier) for agents vetting dependency licenses. Returns the canonical expression, per-license flags from the pinned SPDX License List, the verdict, and which licenses satisfy an OR. Does not detect l
Argument
Type
Description
deny
array
SPDX ids that always fail.
allow
array
If non-empty, only these SPDX ids pass (GPL-2.0-only and GPL-2.0 are the same entry; GPL-2.0+ means or-later and must be listed as such).
expressions*
array
SPDX expressions, e.g. 'MIT OR (GPL-2.0-only WITH Classpath-exception-2.0)'.
denyCopyleft
string
Id-family heuristic: strong = GPL/AGPL/SSPL/EUPL/OSL/CC-BY-SA; any adds LGPL/MPL/EPL/CDDL and similar.
allowDeprecated
boolean
Default true: deprecated ids only add a witness. false: they fail.
allowExceptions
array
If non-empty, only these WITH exception ids pass.
requireFsfLibre
boolean
Fail licenses without isFsfLibre in the SPDX list.
speech-normalize
Normalize numbers, currency, phone numbers and units for text-to-speech — Rewrites digits in up to 20000 characters of text into spoken words for a TTS engine, for locales en-US and en-GB: cardinals, ordinals, years (with a preceding cue such as "in" or a month) and decades, decimals, percentages, currency with ISO 4217 minor units ("$12.50" -> "twelve dollars and fifty cents"), phone numbers read digit by digit, and SI/common units with locale spelling (meter/metre). O
Argument
Type
Description
text*
string
locale
string
BCP 47 tag. en-US (default) and en-GB are supported; anything else returns unsupported.
Spend ledger with reservations: one budget for a tree of agents — A budget shared by a task tree, in integer minor units. reserve() atomically holds an amount if the remaining budget covers it (expired holds are freed automatically); commit() records what was actually spent, up to the hold; release() frees a hold. These are real reservations, not a snapshot: two workers cannot both reserve the last dollar. It records spending; it does not move money.
Argument
Type
Description
op*
string
ledger*
string
Ledger name, e.g. task:research-42.
currency
string
open: currency or token code, e.g. USD or USDC.
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
ttlSeconds
integer
reserve: hold lifetime; default 600.
amountMinor
sql-check
SQL guard: single statement, read-only, table allowlist — Checks one SQL string (up to 20000 characters; PostgreSQL, MySQL, SQLite or generic) before an agent executes it: exactly one statement, read-only (SELECT/VALUES/SHOW/EXPLAIN without side effects), and every table it reads or writes on a caller allowlist. Tokenizer-level: comments, string literals, quoted identifiers and dollar quoting cannot hide a second statement; reports statement kind, refere
Argument
Type
Description
sql*
string
dialect
string
Lexical rules; default ansi.
readOnly
boolean
Default true: anything but a plain read fails.
transpileTo
string
Always answered unsupported.
allowedTables
array
Allowed tables, lower-cased match: 'users', 'public.users' or 'public.*'. Unqualified and qualified names are different entries.
State Machine Model Checker — Returns PASS, FAIL or INCONCLUSIVE for a finite state machine, protocol, or concurrent routine, with the shortest failing path as readable process.transition steps and a next step. Accepts a formal spec (no LLM), a plain-language workflow, or source code (translated to a spec by an LLM, with every transition quoted from the source and two independent translations compared). A pure TypeScript expli
Argument
Type
Description
code
string
Source code of a state machine, protocol, or concurrent routine; translated to a spec by an LLM, with each transition carrying its verbatim source span.
spec
object
Formal spec (zero LLM calls). {vars:{name:{type:'bool'|'int'|'enum'|'array',min,max,values,size|keys,of,init}}, processes:[{name,instances?,fairness?:'none'|'weak'|'strong',transitions:[{name,guard?,updates:[{var,at?,value}]}]}], initWhere?, terminal?, progress?, invariants:[{name,expr}], liveness:[{name,kind:'eventually'|'alwaysEventually'|'leadsTo',p,q?}]}. Expressions are JSON nodes ({var,at?}, {sym}, {param}, {op,args}, forall/exists) or infix strings such as "pc[self] == wait && !flag[1 - self]"; nothing is evaluated as code.
options
object
properties
array
Properties to check, in plain language (with description or code only).
description
string
Natural-language workflow or protocol; translated to a spec by an LLM, with each transition quoted from the text.
Input schema (JSON)
storage-charge-clock
Storage, demurrage or detention charge: free-time end date, chargeable days and tiered amount — Counts days between a received date and a released date for storage, demurrage, detention or parking charges: you state whether the receipt day and the release day count, how free days are counted (calendar or business days on a named or caller calendar), and a tiered per-day rate schedule by chargeable day number; returns the last free day, chargeable days, a per-tier breakdown and the total in m
Argument
Type
Description
tiers*
array
weekend
array
Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend.
calendar
string
Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list).
currency*
string
freeDays*
integer
holidays
array
Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry).
receivedOn*
string
subtitle-lint
Subtitle lint: SRT and WebVTT overlaps, duration, reading speed, line length — Parses an SRT or WebVTT file (up to 400000 characters, 4000 cues) and checks every cue for an agent about to deliver or burn in captions: end after start, overlaps and out-of-order cues, minimum gap, minimum and maximum duration, lines per cue, characters per line and characters per second (markup tags are not counted). Rules come from a named profile (netflix-en-adult, netflix-en-children, values
Argument
Type
Description
text*
string
The whole .srt or .vtt file.
custom
object
Your own rules; these override profile values.
format
string
Default: vtt if the text starts with WEBVTT, else srt.
profile
string
netflix-en-adult: 42 chars/line, 2 lines, 20 cps, 5/6 s to 7 s, 2-frame gap. netflix-en-children: same at 17 cps.
frameRate
number
Needed to turn a minimum gap in frames into milliseconds.
SVG layout check: clipping, overlaps and empty shapes from supplied geometry — Checks up to 200 SVG shapes you describe (rect, circle, ellipse, line, polygon, polyline, text, or a path's bounding box) against the viewBox and viewport the way an SVG renderer would: finds shapes clipped or entirely outside the drawn region, shapes that render nothing (zero or negative size, unstroked line), partial overlaps between shapes, and a zero, negative or malformed viewBox, for agents
Argument
Type
Description
width
number
Viewport width in px (the svg width attribute).
checks
array
Subset of clip, empty, overlap; default all. Overlap reports partial overlaps only; a shape fully inside another (a label on a card) is listed as nested and never fails.
height
number
Viewport height in px.
shapes*
array
Shapes in user coordinates (no transform). rect: x,y,width,height. circle: cx,cy,r. ellipse: cx,cy,rx,ry. line: x1,y1,x2,y2,strokeWidth. polygon/polyline: points. text: x,y,text,fontSize,textAnchor. bbox: bbox [minX,minY,maxX,maxY] for a path you measured yourself.
Syllable counts per line, caller dictionary first, labelled English heuristic second — Counts syllables per word and per line for English text, using your dictionary entries first and otherwise a rule-based estimator (vowel groups, silent e, -ed/-es, consonant+le). Optionally checks each line against a target pattern such as 5-7-5. Where the rules cannot decide (vowel pairs like ia/io/eo, acronyms, numerals, non-Latin scripts) the word is a range or abstains, and a line whose count
Is this export in the npm package's published type declarations — Checks that up to 20 named exports (functions, classes, constants, types, default) exist in the .d.ts files published for an exact npm package version, read from jsDelivr, for coding agents that may be calling an API that does not exist. Follows export lists and relative export-star re-exports within the package (at most 7 files) and reports when the export surface cannot be fully enumerated. Neve
Argument
Type
Description
entry
string
package.json exports key, default '.'.
package*
string
npm package name.
symbols*
array
version*
string
Exact version or dist-tag (jsDelivr resolves it).
typesPath
string
Declaration file path inside the package, overriding package.json resolution.
Detect near-duplicate passages (syndicated or copied text) so repeated sources are not counted as independent — Compares up to 30 passages an agent collected and reports which pairs share word-shingle content (Jaccard and containment), grouping them into clusters of probable copies so the number of independent sources can be stated honestly. Does not establish who copied whom, does not detect paraphrase or translation, and does not fetch anything; a high similarity is a hint that sources are not independent
Argument
Type
Description
passages*
array
Up to 30; 300000 characters in total.
shingleWords
integer
Words per shingle. Default 5.
jaccardThreshold
number
Pairs at or above this Jaccard similarity are flagged. Default 0.5.
containmentThreshold
number
Pairs where this share of the smaller passage's shingles appear in the other are flagged (catches an excerpt of a longer copy). Default 0.8.
Input schema (JSON)
{
"type": "object",
"required": [
"passages"
],
"properties": {
"passages": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Unique id."
},
"url": {
"type": "string",
"maxLength": 2000
},
"text": {
"type": "string",
"maxLength": 50000,
"minLength": 1,
"description": "Passage text."
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 2,
"description": "Up to 30; 300000 characters in total."
},
"shingleWords": {
"type": "integer",
"maximum": 12,
"minimum": 2,
"description": "Words per shingle. Default 5."
},
"jaccardThreshold": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "Pairs at or above this Jaccard similarity are flagged. Default 0.5."
},
"containmentThreshold": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "Pairs where this share of the smaller passage's shingles appear in the other are flagged (catches an excerpt of a longer copy). Default 0.8."
}
},
"additionalProperties": false
}
tariff-engineer
Global Customs & Tariff Engineering Optimizer — Classifies a product under the HTS with GRI reasoning and verifies the code and general (MFN) rate against the live USITC schedule, flags when a specific sibling subheading may outrank the chosen residual one, separates lower-duty options from reclassification risk with dollar exposure, lists lawful physical tariff-engineering changes, and drafts an accurate commercial invoice description. Leads w
Argument
Type
Description
productUrl
string
Public product or spec-sheet page. Its text is read to supplement productDescription; if it cannot be read the request still succeeds and says so in warnings.
intendedUse*
string
productName*
string
originCountry*
string
currentHtsCode
string
customsValueUsd
number
Entered value, used to estimate duty and savings.
destinationCountry*
string
materialsBreakdown*
array
tax-id-format
VAT / tax-id format and check digit (AT, BE, DE, DK, FI) — Checks the structure and check digit of up to 100 EU VAT numbers per call (Austria, Belgium, Germany, Denmark, Finland), for an agent about to put a supplier or customer VAT number on an invoice or into a record. Every other country answers unsupported rather than guessing a pattern. It never says whether the number is registered or active (that needs VIES or the national register), and a pass is
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "With or without the country prefix; spaces, dots and hyphens are ignored."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166 alpha-2 (EU VAT prefix). Optional when the value carries its prefix."
}
}
},
"maxItems": 100,
"minItems": 1
}
},
"additionalProperties": false
}
temporal-constraints
Are these timing constraints satisfiable? Earliest/latest time per event, or the conflicting constraints — Solves a simple temporal network: up to 40 named time points, up to 200 difference constraints 'b is between min and max minutes after a' and optional fixed instants, relative to a caller origin instant. When consistent it returns each point's earliest and latest feasible instant (where bounded); when not, it returns the cycle of constraints that contradict each other, with the total impossible sl
Argument
Type
Description
fixed
array
origin*
string
Instant that point 'origin' (an implicit extra point) is at; all minutes are relative to it.
Interpret a test run: pass, no-tests, skipped, flaky, infra-failure from runner, exit code and counts — Reads a finished test run (runner, exit code, optional version, flags, caller-parsed counts, optional go test output, optional per-attempt exit codes) and says whether tests actually passed, ran nothing, were all skipped, passed only on retry, or never ran properly (timeout, signal, internal error). Encodes only exit-code semantics the runners document: pytest 0-5, node:test, mocha (failure count
Argument
Type
Description
flags
object
counts
object
Counts parsed by the caller from the runner's own report.
output
string
go test output (only ok, FAIL, --- FAIL and panic: lines are read).
runner*
string
signal
string
Terminating signal name, e.g. SIGKILL.
version
string
Runner version, e.g. 10.4.0. Needed only for version-gated flags.
exitCode
integer
Process exit status. Omit when the process was killed by a signal or timed out.
timedOut
boolean
True when the harness gave up waiting.
text-offsets
Convert text offsets between UTF-16, code points, UTF-8 bytes and graphemes, and locate hidden Unicode — Reports the length of a string in UTF-16 code units, Unicode code points, UTF-8 bytes and extended grapheme clusters (Intl.Segmenter), converts up to 200 ranges given in any one of those units into all four, and flags ranges that fall inside a surrogate pair, a multi-byte UTF-8 character or a grapheme cluster. It also runs the unicode-check rules (bidi controls, zero-width and invisible characters
Argument
Type
Description
kind
string
How the unicode rules treat the string. Default text.
scan
boolean
Run the hidden-Unicode rules. Default true.
text*
string
The string.
ranges
array
Half-open ranges to convert; each is read in its own unit.
DST hazards for hourly and daily buckets in a zone: skipped hours, repeated hours, 23- and 25-hour days — For a time zone and a date range of up to 1100 days, lists every offset transition and what it does to local bucketing: the hourly labels that never occur (spring-forward), the hourly labels that occur twice and would merge two real hours when grouped by local time (fall-back), and the 23-, 24.5- or 25-hour days; optionally checks up to 500 caller hourly labels (YYYY-MM-DDTHH:00) for non-existent
Argument
Type
Description
to*
string
Last local date, inclusive.
from*
string
First local date, inclusive.
labels
array
Local hour labels to check, e.g. 2026-03-08T02:00.
SMPTE timecode conversion: drop-frame and non-drop, frames, exact seconds — Converts up to 200 timecodes, frame counts or times between SMPTE HH:MM:SS:FF (non-drop), HH:MM:SS;FF (drop-frame, 29.97 and 59.94), frame numbers and exact rational seconds, for an agent editing video, captions or logs at a stated frame rate. Rates are integers, a rational like 30000/1001, or the named 23.976, 29.97, 59.94, 119.88; any other decimal is rejected, never rounded. Integer arithmetic
Argument
Type
Description
rate*
string
24, 25, 30, 50, 60, 24000/1001, or the names 23.976, 29.97, 59.94, 119.88.
Shared token bucket: many agents, one upstream rate limit — One rate limiter shared by every agent in your fleet. take(cost) atomically spends tokens if available and returns allowed plus remaining, or refuses with retryAfterMs until enough tokens refill. capacity and refillPerSecond are fixed when the bucket is first used; a call with different settings is refused so two fleets cannot silently disagree. Use a requestId so a retried take is not charged twi
Argument
Type
Description
op*
string
cost
number
Tokens to spend; default 1.
bucket*
string
Bucket name, e.g. openai:org-123:rpm.
capacity*
number
tenantId
string
Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant.
requestId
string
Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect).
refillPerSecond
token-due-diligence
Token Due Diligence Pack — Honeypot / rug screening from live Base bytecode plus a Solidity audit of the token's verified source. Source is fetched from Sourcify (following EIP-1967/zeppelinos proxies to the implementation) when not supplied; unverified tokens are refused before any charge. Runs token-trap-detector ($0.25) + contract-auditor ($1.00) in one paid call for 20% less than buying them separately. Charged only whe
Argument
Type
Description
sourceCode
string
Solidity source; fetched from Sourcify when omitted.
contractName
string
Contract to focus on when several are present.
tokenAddress*
string
Token contract address on Base.
Input schema (JSON)
{
"type": "object",
"required": [
"tokenAddress"
],
"properties": {
"sourceCode": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Solidity source; fetched from Sourcify when omitted."
},
"contractName": {
"type": "string",
"maxLength": 200,
"description": "Contract to focus on when several are present."
},
"tokenAddress": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Token contract address on Base."
}
},
"additionalProperties": false
}
token-trap-detector
On-Chain Bytecode & Unverified Token Trap Detector — Reads live Base bytecode, proxy slots (EIP-1967/beacon/zeppelinos/EIP-1822/EIP-1167), ERC-20 state, and privileged selectors to score honeypot and rug risk in code: SAFE | CAUTION | HONEYPOT_RUG | INSUFFICIENT_EVIDENCE. Adds honeypot.is buy/sell simulation and GoPlus tax and honeypot flags, disclosed per source, and degrades to a lower-confidence bytecode-only score when they fail.
Token and Vault Exit Ladder — One decision on holding a Base token and a vault position: token-trap-detector (live bytecode, proxy slots, honeypot simulation) and vault-exit-lawyer (redeem limits, queue, admin powers, eth_call simulation) run in parallel; contract-auditor then audits the token's verified source at the proxy implementation the trap step read, and is skipped on a honeypot or unverified source. Returns the worst
Argument
Type
Description
exit*
object
Exactly one of shares or assets, as base-unit integer strings. shares may be "max" (needs holder).
chain*
string
Chain the vault lives on.
vault*
string
ERC-4626 or ERC-7540 vault address.
holder
string
Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits.
docsUrls
array
Public documentation pages whose redemption claims are checked against the contract.
tokenAddress*
string
Token contract address on Base.
Input schema (JSON)
{
"type": "object",
"required": [
"tokenAddress",
"chain",
"vault",
"exit"
],
"properties": {
"exit": {
"type": "object",
"properties": {
"assets": {
"type": "string",
"pattern": "^[0-9]{1,78}$",
"description": "Underlying assets to receive (base units)."
},
"shares": {
"type": "string",
"pattern": "^([0-9]{1,78}|max)$",
"description": "Vault shares to redeem (base units), or \"max\" for the holder's whole balance."
}
},
"description": "Exactly one of shares or assets, as base-unit integer strings. shares may be \"max\" (needs holder).",
"additionalProperties": false
},
"chain": {
"enum": [
"ethereum",
"base",
"polygon",
"arbitrum",
"optimism"
],
"type": "string",
"description": "Chain the vault lives on."
},
"vault": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "ERC-4626 or ERC-7540 vault address."
},
"holder": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits."
},
"docsUrls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 4,
"description": "Public documentation pages whose redemption claims are checked against the contract."
},
"tokenAddress": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Token contract address on Base."
}
},
"additionalProperties": false
}
tolerance-stack
One-dimensional tolerance stack-up (worst-case and RSS) — Computes the minimum and maximum of a linear dimensional stack (the gap) from signed contributions with symmetric, unequal-bilateral, unilateral or min/max limits, both by exact worst-case arithmetic and by root-sum-square, names the dominant contributor and tests the gap against a required minimum and/or maximum. For mechanical designers and agents checking clearances. It does not do 2D or 3D sta
Argument
Type
Description
unit
string
Label for the single unit all numbers share (not converted).
method
string
Which result decides status against the requirement (default worst-case). Both are always reported.
dimensions*
array
At most 100. Give nominal with tol, or nominal with plus and/or minus (unilateral: one of them), or min and max.
sigmaLevel
number
RSS: each tolerance is this many sigma (default 3).
reportSigma
number
RSS: report the gap at this many sigma (default equals sigmaLevel).
requirement
object
Allowed gap range.
Input schema (JSON)
{
"type": "object",
"required": [
"dimensions"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 16,
"description": "Label for the single unit all numbers share (not converted)."
},
"method": {
"enum": [
"worst-case",
"rss"
],
"type": "string",
"description": "Which result decides status against the requirement (default worst-case). Both are always reported."
},
"dimensions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"max": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000,
"description": "Largest allowed size (limits form, with min)."
},
"min": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000,
"description": "Smallest allowed size (limits form, with max)."
},
"tol": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Symmetric bilateral tolerance (nominal ± tol)."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Label used in witnesses."
},
"plus": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Upper deviation magnitude."
},
"sign": {
"enum": [
1,
-1
],
"type": "integer",
"description": "+1 adds the dimension to the gap (default), -1 subtracts it."
},
"minus": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Lower deviation magnitude."
},
"nominal": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000,
"description": "Nominal size."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "At most 100. Give nominal with tol, or nominal with plus and/or minus (unilateral: one of them), or min and max."
},
"sigmaLevel": {
"type": "number",
"maximum": 10,
"minimum": 0.5,
"description": "RSS: each tolerance is this many sigma (default 3)."
},
"reportSigma": {
"type": "number",
"maximum": 10,
"minimum": 0.5,
"description": "RSS: report the gap at this many sigma (default equals sigmaLevel)."
},
"requirement": {
"type": "object",
"properties": {
"max": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000,
"description": "Gap must be at most this."
},
"min": {
"type": "number",
"maximum": 1000000000,
"minimum": -1000000000,
"description": "Gap must be at least this."
}
},
"description": "Allowed gap range."
}
},
"additionalProperties": false
}
transcribe-url
Transcribe an audio or video file URL (Whisper, timestamps, SRT, VTT) — Transcribes a public audio or video FILE URL (podcast enclosure, meeting recording, voice memo; mp3, wav, mp4/m4a, ogg, webm, flac; up to 25 MB and 30 minutes) with Whisper large-v3-turbo on Cloudflare Workers AI. Returns timestamped segments plus SRT and VTT subtitles and the plain text, bound to the media's SHA-256. Does NOT accept YouTube, Spotify or any streaming page (the URL must be the medi
Argument
Type
Description
url*
string
https URL of the audio or video file itself.
formats
array
Outputs to include; default all.
language
string
ISO 639-1 language code of the speech (for example en); detected when omitted.
max_minutes
integer
Reject audio longer than this, default 30.
Input schema (JSON)
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"pattern": "^https://",
"maxLength": 2048,
"minLength": 8,
"description": "https URL of the audio or video file itself."
},
"formats": {
"type": "array",
"items": {
"enum": [
"segments",
"srt",
"vtt",
"text"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "Outputs to include; default all."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}$",
"description": "ISO 639-1 language code of the speech (for example en); detected when omitted."
},
"max_minutes": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Reject audio longer than this, default 30."
}
},
"additionalProperties": false
}
transcript-validator
Check tool-call / tool-result pairing and ordering in an LLM transcript (Anthropic, OpenAI Chat, OpenAI Responses) — Validates a message list before it is sent to Anthropic Messages, OpenAI Chat Completions or OpenAI Responses: every tool call paired with its result, results in the right place and role, ids present and unique. Built for an agent that edits, truncates or replays its own history and would otherwise get a 400. Only rules stated in the providers' documentation fail the check; anything else suspiciou
Argument
Type
Description
messages*
array
provider*
string
expectComplete
boolean
Default true: a trailing tool call without a result is a defect. Set false when the transcript is mid-loop and results are still pending.
Input schema (JSON)
{
"type": "object",
"required": [
"provider",
"messages"
],
"properties": {
"messages": {
"type": "array",
"items": {
"description": "A provider-shaped message (anthropic, openai-chat) or input item (openai-responses)."
},
"maxItems": 500,
"minItems": 1
},
"provider": {
"enum": [
"anthropic",
"openai-chat",
"openai-responses"
],
"type": "string"
},
"expectComplete": {
"type": "boolean",
"description": "Default true: a trailing tool call without a result is a defect. Set false when the transcript is mid-loop and results are still pending."
}
},
"additionalProperties": false
}
translation-invariants
Check that numbers, units, part numbers, tolerance signs, dates, placeholders and URLs survive translation — For aligned source and target segments, extracts the tokens a translation must not change (numbers with attached units or %, ISO dates, part numbers and versions, tolerance and comparison operators such as ± ≤ ≥, placeholders like {0} or %s, URLs and emails) and reports any that are missing, added or altered, with offsets in both texts in UTF-16, code points, UTF-8 bytes and graphemes. Numbers are
Argument
Type
Description
kinds
array
Token kinds to check. Default all.
segments*
array
Up to 200; 100000 characters in total.
sourceDecimal
string
Decimal mark of the source locale. Default auto (both readings tried).
Unicode smuggling check for strings (prompts, tool args, URLs) — Checks up to 100 strings in one call against the 19 deterministic rules of unicode-safety-check: bidi controls (Trojan Source), invisible and zero-width characters, tag-character and variation-selector payloads, homoglyph and mixed-script hosts or names. Built for an agent's hot path: run it on a prompt, a tool argument, a URL or a model output before acting on it. Returns BLOCK / REVIEW / NO_FIND
Argument
Type
Description
kind
string
text (default): prose, only critical findings block. identifier or url: high findings such as mixed-script names also block.
strings*
array
Up to 200000 characters in total.
Input schema (JSON)
{
"type": "object",
"required": [
"strings"
],
"properties": {
"kind": {
"enum": [
"text",
"identifier",
"url"
],
"type": "string",
"description": "text (default): prose, only critical findings block. identifier or url: high findings such as mixed-script names also block."
},
"strings": {
"type": "array",
"items": {
"type": "string",
"maxLength": 10000
},
"maxItems": 100,
"minItems": 1,
"description": "Up to 200000 characters in total."
}
},
"additionalProperties": false
}
unicode-safety-gate
Adversarial Unicode & Trojan Source gatekeeper — Scans a public GitHub repo, a pull request, a unified diff or a list of files for adversarial Unicode with the 19 rules (USC001-USC019) of dcondrey/unicode-safety-check: bidi controls (Trojan Source), invisible and default-ignorable characters, variation-selector and tag-character payloads (Glassworm), private-use code points, homoglyph and mixed-script identifiers, confusable collisions, misplace
Argument
Type
Description
ref
string
Branch, tag or commit for repo; defaults to the default branch.
diff
string
Unified diff (git diff output). Only added lines are scanned; findings carry new-file line numbers.
repo
string
Alternative to files and diff: a public GitHub repository, owner/repo or https://github.com/owner/repo[/tree/ref]. Read from its source archive; files are scanned shallowest first up to the character cap and the rest are listed as skipped.
files
array
Files to scan in full. Provide exactly one of files, diff, repo or prUrl; total content is capped at 1000000 characters.
prUrl
string
Alternative to files and diff: a public GitHub pull request, commit or compare URL. Only added lines are scanned.
scanExcluded
boolean
Also scan paths the upstream scanner skips (node_modules/, vendor/, dist/, build/, .lock, .min.js, images, archives). Default false.
union-branch
Which oneOf / anyOf branch a JSON value matches, or why several or none do — Evaluates a JSON value against every branch of a oneOf or anyOf in a caller-supplied JSON Schema 2020-12 (or OpenAPI schema converted to it) and reports which branches match, the exact errors of each branch that fails with the JSON pointer of each offending value, the closest branch, and which branch an OpenAPI `discriminator` points to. For agents debugging why a tool or API payload is rejected w
Argument
Type
Description
at
string
JSON pointer to the subschema holding the union ("" for the root, "/properties/pet" for a nested one).
value*
any
The JSON value to classify.
schema*
any
The root schema; $ref targets are resolved inside it. Full JSON Schema 2020-12 (local $ref only).
keyword
string
Required only when the subschema has both.
Input schema (JSON)
{
"type": "object",
"required": [
"schema",
"value"
],
"properties": {
"at": {
"type": "string",
"maxLength": 500,
"description": "JSON pointer to the subschema holding the union (\"\" for the root, \"/properties/pet\" for a nested one)."
},
"value": {
"description": "The JSON value to classify."
},
"schema": {
"description": "The root schema; $ref targets are resolved inside it. Full JSON Schema 2020-12 (local $ref only)."
},
"keyword": {
"enum": [
"oneOf",
"anyOf"
],
"type": "string",
"description": "Required only when the subschema has both."
}
},
"additionalProperties": false
}
unit-convert
Exact unit conversion with dimensional analysis (NIST SP 811) — Converts up to 100 values between units for an agent that needs the exact factor and a refusal when the units do not match: SI and NIST SP 811 length, mass, time, volume, pressure, energy, power, temperature, with compound expressions like kg*m/s^2. Rejects incompatible dimensions, converts absolute temperatures affinely through kelvin and temperature differences linearly, and converts mass to vol
Argument
Type
Description
items*
array
Conversions to run.
density
object
Default density for items that cross mass and volume.
precision
integer
Significant digits of the reported value. Default 12.
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 80,
"description": "Target unit expression."
},
"from": {
"type": "string",
"maxLength": 80,
"description": "Unit expression: symbols, SI prefixes, * / ^ and parentheses, e.g. m/s^2, kg*m/s2, degF, cup_us, lb/ft3. Bare cup/tbsp/tsp/gal/pt/qt/floz/cal/hp/ton are ambiguous and answer unknown with the candidates."
},
"kind": {
"enum": [
"absolute",
"difference"
],
"type": "string",
"description": "absolute (default): a temperature reading, converted affinely through kelvin. difference: a temperature interval, converted linearly."
},
"label": {
"type": "string",
"maxLength": 80,
"description": "Free label echoed back."
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"pattern": "^-?\\d{1,30}(\\.\\d{1,30})?([eE][+-]?\\d{1,3})?$",
"maxLength": 50
}
],
"description": "A finite number, or a decimal string when the digits must stay exact (\"236.5882365\"). Magnitude at most 1e15."
},
"claimed": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"pattern": "^-?\\d{1,30}(\\.\\d{1,30})?([eE][+-]?\\d{1,3})?$",
"maxLength": 50
}
],
"description": "Optional claimed result in the target unit; a mismatch beyond relTolerance fails with expected vs actual."
},
"density": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 40,
"description": "Mass per volume unit expression, e.g. g/mL, kg/m3, lb/ft3, oz/cup_us."
},
"value": {
"type": "number",
"maximum": 1000000000,
"minimum": 1e-9,
"description": "Caller-supplied mass per volume. Never looked up: no ingredient density table is shipped."
}
},
"description": "Per-item density, overriding the top-level one. Required to cross mass and volume (cups to grams).",
"additionalProperties": false
},
"relTolerance": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Relative tolerance for claimed. Default 1e-9."
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Conversions to run."
},
"density": {
"type": "object",
"required": [
"value",
"unit"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 40,
"description": "Mass per volume unit expression, e.g. g/mL, kg/m3, lb/ft3, oz/cup_us."
},
"value": {
"type": "number",
"maximum": 1000000000,
"minimum": 1e-9,
"description": "Caller-supplied mass per volume. Never looked up: no ingredient density table is shipped."
}
},
"description": "Default density for items that cross mass and volume.",
"additionalProperties": false
},
"precision": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Significant digits of the reported value. Default 12."
}
},
"additionalProperties": false
}
update-dialect
What do omitted, null, [] and "" mean in this PATCH body under merge-patch, JSON Patch or a declared dialect? — For an agent about to send a PATCH or update body: states, per field, what omitted / null / [] / "" mean under the declared dialect (RFC 7396 merge patch, RFC 6902 JSON Patch, or caller-declared semantics) and checks the body against stated intents such as 'clear this field', 'leave this alone' or 'set to empty array'. With a target document it applies the patch and compares the result; without on
Argument
Type
Description
target
any
Current document, if available. Enables applying the patch and exact checks.
dialect*
string
merge-patch = RFC 7396, json-patch = RFC 6902 (payload is an array of operations), caller = semantics in callerSemantics.
intents
array
payload*
any
The PATCH body.
callerSemantics
object
Required when dialect is 'caller': what each payload form means in that API.
Input schema (JSON)
{
"type": "object",
"required": [
"dialect",
"payload"
],
"properties": {
"target": {
"description": "Current document, if available. Enables applying the patch and exact checks."
},
"dialect": {
"enum": [
"merge-patch",
"json-patch",
"caller"
],
"type": "string",
"description": "merge-patch = RFC 7396, json-patch = RFC 6902 (payload is an array of operations), caller = semantics in callerSemantics."
},
"intents": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"expect"
],
"properties": {
"path": {
"type": "string",
"maxLength": 300,
"description": "JSON Pointer into the document."
},
"value": {
"description": "Required when expect is 'value'."
},
"expect": {
"enum": [
"unchanged",
"absent",
"null",
"empty-array",
"empty-string",
"value"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 100
},
"payload": {
"description": "The PATCH body."
},
"callerSemantics": {
"type": "object",
"required": [
"omitted",
"null",
"emptyArray",
"emptyString"
],
"properties": {
"null": {
"enum": [
"clear",
"set-null",
"keep",
"invalid"
],
"type": "string"
},
"omitted": {
"enum": [
"keep",
"clear"
],
"type": "string"
},
"emptyArray": {
"enum": [
"clear",
"replace",
"keep"
],
"type": "string"
},
"emptyString": {
"enum": [
"clear",
"set",
"keep"
],
"type": "string"
}
},
"description": "Required when dialect is 'caller': what each payload form means in that API.",
"additionalProperties": false
}
},
"additionalProperties": false
}
url-canonicalize
URL canonicalizer and lookalike-host check — Canonicalizes up to 50 absolute http(s) URLs for an agent about to fetch, dedupe or click them: WHATWG-parsed lowercase host, default port and fragment and userinfo removed, dot segments and unreserved percent-escapes normalized, tracking parameters (utm_*, gclid, fbclid and the Mozilla strip list plus yours) removed, and flags userinfo@host tricks, backslash and multiple-@ authorities, obfuscated
Argument
Type
Description
urls*
array
Absolute URLs including the scheme.
sortQuery
boolean
Sort remaining query segments for a dedupe key. Off by default: order can matter to servers.
publicSuffixes
array
Extra public suffixes (e.g. "co.xx") used for registrable-domain decisions.
extraTrackingParams
array
Extra query parameter names to strip (case-insensitive).
Input schema (JSON)
{
"type": "object",
"required": [
"urls"
],
"properties": {
"urls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2048
},
"maxItems": 50,
"minItems": 1,
"description": "Absolute URLs including the scheme."
},
"sortQuery": {
"type": "boolean",
"description": "Sort remaining query segments for a dedupe key. Off by default: order can matter to servers."
},
"publicSuffixes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"description": "Extra public suffixes (e.g. \"co.xx\") used for registrable-domain decisions."
},
"extraTrackingParams": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50,
"description": "Extra query parameter names to strip (case-insensitive)."
}
},
"additionalProperties": false
}
vault-exit-lawyer
Vault Exit Lawyer — Before moving treasury funds out of an ERC-4626 or ERC-7540 vault: reads the chain at one pinned block and returns how much can exit now, the haircut vs convertToAssets, partial-exit maximum, liquidity coverage, queue/cooldown timing, admin-power flags (upgrade, pause, multisig threshold, timelock), and a verdict EXIT_NOW_FULL / EXIT_PARTIAL / QUEUED / BLOCKED / UNKNOWN. With a holder it simulates
Argument
Type
Description
exit*
object
Exactly one of shares or assets, as base-unit integer strings. shares may be "max" (needs holder).
chain*
string
Chain the vault lives on.
vault*
string
ERC-4626 or ERC-7540 vault address.
holder
string
Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits.
docsUrls
array
Public documentation pages whose redemption claims are checked against the contract.
Input schema (JSON)
{
"type": "object",
"required": [
"chain",
"vault",
"exit"
],
"properties": {
"exit": {
"type": "object",
"properties": {
"assets": {
"type": "string",
"pattern": "^[0-9]{1,78}$",
"description": "Underlying assets to receive (base units)."
},
"shares": {
"type": "string",
"pattern": "^([0-9]{1,78}|max)$",
"description": "Vault shares to redeem (base units), or \"max\" for the holder's whole balance."
}
},
"description": "Exactly one of shares or assets, as base-unit integer strings. shares may be \"max\" (needs holder).",
"additionalProperties": false
},
"chain": {
"enum": [
"ethereum",
"base",
"polygon",
"arbitrum",
"optimism"
],
"type": "string",
"description": "Chain the vault lives on."
},
"vault": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "ERC-4626 or ERC-7540 vault address."
},
"holder": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Address that holds the shares. Enables an exact eth_call redeem simulation and per-holder limits."
},
"docsUrls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 4,
"description": "Public documentation pages whose redemption claims are checked against the contract."
}
},
"additionalProperties": false
}
vin-decode
VIN decode: manufacturer (WMI), model year, check digit — Decodes up to 50 VINs per call for an agent handling a vehicle listing, claim or order: validates the 17 characters and letters I/O/Q, the position-9 check digit (49 CFR 565.15), the world manufacturer identifier from a bundled NHTSA vPIC snapshot, and the model year from position 10. Position 10 repeats every 30 years: pass vehicleClass light (position 7 resolves the century) or asOf, otherwise b
Argument
Type
Description
items*
array
Input schema (JSON)
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"vin"
],
"properties": {
"vin": {
"type": "string",
"maxLength": 32,
"minLength": 1
},
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Reference date (YYYY-MM-DD) used to drop model years more than one year after it. No clock is read."
},
"vehicleClass": {
"enum": [
"light",
"other"
],
"type": "string",
"description": "light: passenger car, MPV or truck up to 4536 kg GVWR (position 7 fixes the model-year century). other: all other vehicles."
}
}
},
"maxItems": 50,
"minItems": 1
}
},
"additionalProperties": false
}
warm-memory
WARM verifiable agent memory — Persistent memory for AI agents as a pay-per-call API, no database to run. op=remember stores subject-predicate-object facts (or extracts them from free text; only facts whose subject and object appear verbatim are kept); a newer value for the same subject and predicate supersedes the old one, and the history stays queryable. op=recall searches by BM25 keyword ranking or exact triple pattern, now
Argument
Type
Description
op*
string
asOf
any
Epoch milliseconds or an ISO 8601 date/time (UTC when no offset).
said
string
text
string
remember: free text; facts are extracted by a fast model and kept only if subject and object occur verbatim.
facts
array
limit
integer
query
string
source
string
remember: provenance label for facts extracted from text.
history
string
recall: only facts current at asOf (default) or every status.
web-search
Web search: licensed Exa/Brave results with snippets — Runs a web search through a licensed search API (Exa or Brave) and returns up to 10 ranked results with title, URL, snippet, highlights and published date, for agents that need current links. Does not scrape search engines, does not fetch or summarize the result pages (use page-contents for that), and does not use a model.
Argument
Type
Description
site
string
Restrict to a domain, for example example.com.
query*
string
Search query.
provider
string
auto uses Exa when configured, else Brave.
date_from
string
Only results published on or after this date, YYYY-MM-DD.
num_results
integer
include_text
boolean
Ask the provider for highlights/extra snippet text per result.
Input schema (JSON)
{
"type": "object",
"required": [
"query"
],
"properties": {
"site": {
"type": "string",
"maxLength": 253,
"description": "Restrict to a domain, for example example.com."
},
"query": {
"type": "string",
"maxLength": 400,
"minLength": 1,
"description": "Search query."
},
"provider": {
"enum": [
"auto",
"exa",
"brave"
],
"type": "string",
"default": "auto",
"description": "auto uses Exa when configured, else Brave."
},
"date_from": {
"type": "string",
"maxLength": 10,
"description": "Only results published on or after this date, YYYY-MM-DD."
},
"num_results": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"include_text": {
"type": "boolean",
"default": false,
"description": "Ask the provider for highlights/extra snippet text per result."
}
},
"additionalProperties": false
}
webhook-verify
Verify webhook signatures from 8 providers — Constant-time verification of inbound webhook signatures from Stripe, GitHub, Shopify, Slack, Twilio, Linear, Clerk (Svix) and SendGrid HMAC, each using the exact signing string that provider documents. Every scheme uses Web Crypto HMAC with a timing-safe compare and, where the provider signs a timestamp, a configurable clock-skew tolerance (default 300s) to block replay. Returns the verdict and t
Argument
Type
Description
url
string
Full request URL. Required for Twilio, ignored elsewhere.
nowIso
string
Override 'now' for deterministic tests; ISO-8601 instant.
secret*
string
The signing secret; for Clerk/Svix a 'whsec_<base64>' value is accepted.
source*
string
headers*
object
Request headers as sent by the provider (string values). Names are case-insensitive.
rawBody*
string
The exact request body bytes as a string. Reparsed JSON will not match; send the raw bytes.
formParams
object
Form parameters parsed from a Twilio POST (string values); order does not matter.
week-number
Week number and week-year for dates under ISO 8601, US or custom rules (53-week years) — Returns the week number, week-year, number of weeks in that year and the week's first and last day for up to 200 dates under ISO 8601 (Monday start, week 1 holds 4 January), the US convention (Sunday start, week 1 holds 1 January) or a custom weekStart/minimalDays rule, and checks an asserted week or week-year (2027-01-01 is ISO 2026-W53). Built for an agent reading or writing week-based dates in
Argument
Type
Description
items*
array
system*
string
iso: weekStart Monday, minimalDays 4. us: weekStart Sunday, minimalDays 1. custom: give weekStart and minimalDays.
weekStart
integer
0=Sunday..6=Saturday (custom).
minimalDays
integer
Days of the new year the first week must contain (custom).
Is there a compatible PyPI wheel for this Python and platform — Lists the wheels PyPI offers for a package release and picks those compatible with a given CPython version, OS, CPU architecture and libc (glibc or musl version, or macOS version), best match first, for agents choosing base images or debugging 'building from source' installs. Applies PEP 425/600/656 tag ordering, abi3, legacy manylinux aliases, Requires-Python and yanked files. CPython only (no Py
Argument
Type
Description
python*
string
CPython major.minor, e.g. 3.12.
package*
string
PyPI project name.
version
string
Release; default latest.
platform*
object
freeThreaded
boolean
Free-threaded build (cp313t): abi3 wheels do not apply.
Is this state transition allowed by the caller's workflow definition, and what is allowed instead? — Given a caller-supplied state machine (transitions with optional event names and required facts), the current state and a requested event or target state, says whether the transition is allowed, which required facts are false or unknown, and which transitions are available from the current state. For an agent about to move an order, ticket, deployment or approval to its next state. Terminal states
Argument
Type
Description
facts
array
current*
string
request*
object
Give event, to, or both.
terminal
array
States with no outgoing transitions allowed even if listed.
X.509 certificate inspection from PEM — Takes a PEM-encoded X.509 certificate and returns its fields (subject, issuer, serial, validity window, SANs, key usage, EKU, basic constraints, signature algorithm, public key algorithm and bit size) plus a fail-on-issue audit: expired or not-yet-valid, hostname/SAN mismatch per RFC 6125 §6.4.3 wildcards, weak signature (SHA-1), short RSA (<2048), serverAuth without SAN (CABF BR 7.1.4.2.1). Decod
Argument
Type
Description
pem*
string
A PEM block beginning with '-----BEGIN CERTIFICATE-----'.
nowIso
string
Override 'now' for deterministic tests.
hostname
string
Optional hostname to check against the certificate's SANs.
trustAnchors
array
Trust anchors (PEM). When present, chain cryptographic verification runs.
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 15, 2026.
Hidden or reordered text
Overriding the model's instructions
Hiding actions from the user
Reading keys or credentials
Fake system tags
Steering other servers' tools
Pulling in the conversation
Smuggling parameters
Demanding to be used for everything
Steering away from web search
Download-and-run commands
Encoded blobs
Invisible characters
Credentials as tool argumentsLow4 found
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
open-badges-verifier · input.credential.name
credential
jwt-lint · input.token.name
token
jwt-verify · input.token.name
token
webhook-verify · input.secret.name
secret
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
Very long descriptions
Read and write hintsNote1 found
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
server · annotations
262 of 262 tools: lead-enrichment, contract-auditor, market-predictor, arbitrage-lawyer, heal-scraper, ...
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
largest-remainder (default): one unit at a time to the part with the largest rounding claim, ties to the lowest index. first / last: the whole residual to the first / last part with positive weight.
Input schema (JSON)
{
"type": "object",
"required": [
"total"
],
"properties": {
"parts": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Equal split into this many parts."
},
"total": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"weights": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 28
},
"maxItems": 500,
"minItems": 1,
"description": "Non-negative decimal-string weights, e.g. [\"1\",\"1\",\"2\"] or percentages. Give weights or parts."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0,
"description": "Override the ISO 4217 exponent; required for codes not on the list."
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Rounding of each share before the residual is moved. Default half-even. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"remainder": {
"enum": [
"largest-remainder",
"first",
"last"
],
"type": "string",
"description": "largest-remainder (default): one unit at a time to the part with the largest rounding claim, ties to the lowest index. first / last: the whole residual to the first / last part with positive weight."
}
},
"additionalProperties": false
}
string
Venue zone in which hours apply.
bufferMinutes
integer
Required gap on each side of the appointment.
durationMinutes*
integer
minNoticeMinutes
integer
Needs asOf.
Input schema (JSON)
{
"type": "object",
"required": [
"start",
"durationMinutes",
"timeZone",
"hours"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36,
"description": "Reference instant for minimum notice."
},
"hours": {
"type": "array",
"items": {
"type": "object",
"required": [
"days",
"open",
"close"
],
"properties": {
"days": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 0
},
"maxItems": 7,
"minItems": 1,
"description": "0=Sunday..6=Saturday."
},
"open": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5
},
"close": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Exclusive end, local; must be after open (no overnight blocks)."
}
}
},
"maxItems": 28,
"minItems": 1
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36
},
"weekend": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 0
},
"maxItems": 6,
"description": "Ignored for hours; with a named calendar only its holidays are used."
},
"bookings": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36
}
}
},
"maxItems": 500
},
"calendar": {
"enum": [
"us-federal",
"us-federal-reserve",
"nyse",
"us-equities-settlement",
"uk-england-and-wales",
"uk-scotland",
"uk-northern-ireland",
"weekends-only",
"caller"
],
"type": "string",
"description": "Optional named holiday calendar for closed days (unsupported outside its range). Without it only holidays/weekend you list apply; hours decide the weekdays."
},
"holidays": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxItems": 400,
"description": "Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64,
"description": "Venue zone in which hours apply."
},
"bufferMinutes": {
"type": "integer",
"maximum": 1440,
"minimum": 0,
"description": "Required gap on each side of the appointment."
},
"durationMinutes": {
"type": "integer",
"maximum": 1440,
"minimum": 1
},
"minNoticeMinutes": {
"type": "integer",
"maximum": 525600,
"minimum": 0,
"description": "Needs asOf."
}
},
"additionalProperties": false
}
boolean
Default true when either revision is given (a missing partner gives unknown): an approval for another revision does not cover this one. Send false to ignore the revisions.
Input schema (JSON)
{
"type": "object",
"required": [
"approved",
"current"
],
"properties": {
"asOf": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant for the expiry check; no clock is read."
},
"policy": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"rule"
],
"properties": {
"abs": {
"type": "number",
"maximum": 1000000000000000,
"minimum": 0,
"description": "numeric-tolerance: allowed absolute difference."
},
"pct": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "numeric-tolerance: allowed difference as percent of the approved value. Either bound being met is enough."
},
"path": {
"type": "string",
"maxLength": 300,
"description": "JSON Pointer prefix; \"*\" matches one token."
},
"rule": {
"enum": [
"exact",
"ignore",
"numeric-tolerance",
"no-increase",
"no-decrease"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 100
},
"default": {
"enum": [
"material",
"ignore"
],
"type": "string",
"description": "Rule for paths no field rule covers. Default material (any change invalidates)."
}
},
"additionalProperties": false
},
"current": {
"description": "The version about to be executed (JSON)."
},
"approved": {
"description": "The approved snapshot (JSON)."
},
"approvedAt": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant."
},
"currentRevision": {
"type": "integer",
"maximum": 1000000000,
"minimum": 0
},
"validForSeconds": {
"type": "integer",
"maximum": 315360000,
"minimum": 0
},
"approvedRevision": {
"type": "integer",
"maximum": 1000000000,
"minimum": 0
},
"requireSameRevision": {
"type": "boolean",
"description": "Default true when either revision is given (a missing partner gives unknown): an approval for another revision does not cover this one. Send false to ignore the revisions."
}
},
"additionalProperties": false
}
extensionNotices
array
gapThresholdDays
integer
Report gaps between dated events longer than this (default 30).
requestReference
string
The agency's request or tracking number, for the follow-up letter.
Input schema (JSON)
{
"type": "object",
"required": [
"jurisdiction",
"requestDate",
"documents"
],
"properties": {
"asOfDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ].*)?$",
"maxLength": 40,
"description": "Observation date when responseDate is omitted; defaults to today (UTC)."
},
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"text"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"text": {
"type": "string",
"maxLength": 1500000
}
},
"additionalProperties": false
},
"maxItems": 40,
"minItems": 1
},
"agencyName": {
"type": "string",
"maxLength": 200,
"description": "Agency that received the request; fills the follow-up letter."
},
"requestDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ].*)?$",
"maxLength": 40,
"description": "Date the agency received the request (YYYY-MM-DD or RFC 3339; read in the offset written)."
},
"jurisdiction": {
"type": "string",
"maxLength": 40,
"minLength": 2,
"description": "OnRecord jurisdiction code. Only \"CA_CPRA\" (alias \"US-CA\") has a statute table; any other value returns clock \"unknown_jurisdiction\" while document checks still run."
},
"responseDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ].*)?$",
"maxLength": 40,
"description": "Date of the agency's determination/response. Omit if none yet."
},
"requesterName": {
"type": "string",
"maxLength": 200,
"description": "Your name, for the follow-up letter signature."
},
"extensionNotices": {
"type": "array",
"items": {
"type": "object",
"required": [
"noticeDate",
"expectedDate",
"reason",
"noticeSource"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 80,
"description": "One of SEPARATE_FIELD_FACILITIES, VOLUMINOUS_RECORDS, INTERAGENCY_CONSULTATION, DATA_COMPILATION, CYBERATTACK_SYSTEMS_UNAVAILABLE, DECLARED_EMERGENCY_OPERATIONAL_IMPACT."
},
"noticeDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ].*)?$",
"maxLength": 40
},
"expectedDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ].*)?$",
"maxLength": 40,
"description": "Date the agency says its determination will be dispatched."
},
"noticeSource": {
"type": "string",
"maxLength": 500,
"description": "Identifier of the written notice (letter, portal message). Empty makes the extension defective."
}
},
"additionalProperties": false
},
"maxItems": 5
},
"gapThresholdDays": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"description": "Report gaps between dated events longer than this (default 30)."
},
"requestReference": {
"type": "string",
"maxLength": 100,
"description": "The agency's request or tracking number, for the follow-up letter."
}
},
"additionalProperties": false
}
claimedPenaltyMinor
integer
Input schema (JSON)
{
"type": "object",
"required": [
"startAt",
"changeAt",
"amountMinor",
"currency",
"tiers",
"rounding"
],
"properties": {
"tiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 64
},
"daysBefore": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "...later than the local date of start minus this many days at atLocalTime."
},
"penaltyBps": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Percent of the amount in basis points. Exactly one of penaltyBps or penaltyMinor."
},
"atLocalTime": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "With daysBefore."
},
"hoursBefore": {
"type": "integer",
"maximum": 87600,
"minimum": 0,
"description": "This tier applies when the change is later than start minus this many hours. Exactly one of hoursBefore or daysBefore."
},
"penaltyMinor": {
"type": "integer",
"maximum": 1000000000000,
"minimum": 0
}
}
},
"maxItems": 12,
"minItems": 1
},
"startAt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36
},
"changeAt": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|z|[+-]\\d{2}:?\\d{2})$",
"maxLength": 36,
"description": "The moment of cancellation/change; never read from the clock."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"maxLength": 3
},
"rounding": {
"enum": [
"half-up",
"floor",
"ceil"
],
"type": "string",
"description": "Applied to percentage penalties."
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64,
"description": "Needed for daysBefore tiers."
},
"noShowTier": {
"type": "string",
"maxLength": 64,
"description": "Tier name charged when changeAt is after startAt; default the most severe tier."
},
"amountMinor": {
"type": "integer",
"maximum": 1000000000000,
"minimum": 0
},
"claimedPenaltyMinor": {
"type": "integer",
"maximum": 1000000000000,
"minimum": 0
}
},
"additionalProperties": false
}
holidays
array
Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry).
timeZone
string
IANA zone for deadlineTime.
direction
string
Default after. before counts backward from start (for 'at least N days before the hearing').
deadlineTime
string
Local HH:MM at which the deadline expires on the deadline date; needs timeZone to produce an instant.
disambiguation
string
How to read a deadline time that falls in a DST gap (earlier: before-gap offset reading backward; later: shifted forward) or overlap (earlier/later occurrence). Without it, a gap or overlap returns unknown with both candidates.
claimedDeadline
string
A deadline date someone asserted; the check fails with the computed date if it differs.
Input schema (JSON)
{
"type": "object",
"required": [
"start",
"days",
"counting",
"calendar"
],
"properties": {
"days": {
"type": "integer",
"maximum": 3650,
"minimum": 0
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}([Tt ]\\d{2}:\\d{2}(:\\d{2})?)?$",
"maxLength": 19,
"description": "Local date YYYY-MM-DD, or local date-time YYYY-MM-DDTHH:MM[:SS] (the notice/receipt moment). Never read from the clock."
},
"cutoff": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Local HH:MM. With a date-time start (direction after), a start strictly later than the cutoff, or on a non-business day, is deemed received on the next business day. 17:00 exactly is on time. Without cutoff there is no roll."
},
"weekend": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 0
},
"maxItems": 6,
"description": "Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend."
},
"calendar": {
"enum": [
"us-federal",
"us-federal-reserve",
"nyse",
"us-equities-settlement",
"uk-england-and-wales",
"uk-scotland",
"uk-northern-ireland",
"weekends-only",
"caller"
],
"type": "string",
"description": "Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list)."
},
"counting": {
"enum": [
"clear",
"elapsed"
],
"type": "string",
"description": "clear: days strictly between start and deadline, so the deadline is business day N+1. elapsed: the deadline is business day N after start (the end day is counted)."
},
"holidays": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxItems": 400,
"description": "Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64,
"description": "IANA zone for deadlineTime."
},
"direction": {
"enum": [
"after",
"before"
],
"type": "string",
"description": "Default after. before counts backward from start (for 'at least N days before the hearing')."
},
"deadlineTime": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"maxLength": 5,
"description": "Local HH:MM at which the deadline expires on the deadline date; needs timeZone to produce an instant."
},
"disambiguation": {
"enum": [
"earlier",
"later"
],
"type": "string",
"description": "How to read a deadline time that falls in a DST gap (earlier: before-gap offset reading backward; later: shifted forward) or overlap (earlier/later occurrence). Without it, a gap or overlap returns unknown with both candidates."
},
"claimedDeadline": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "A deadline date someone asserted; the check fails with the computed date if it differs."
}
},
"additionalProperties": false
}
string
The causal claim being refereed, in plain language.
Ask a model to write the executive report in prose (numbers verified in code, template fallback). Default false: the report is a deterministic template over the computed results.
treatment*
string
Column with exactly two distinct values.
covariates*
array
Candidate adjustment variables (at most 12). Numeric ones with more than `bins` distinct values are cut at deterministic quantile edges; others must have at most 20 levels.
countColumn
string
Name of a column holding how many times each row repeats, so a published contingency table can be sent as a few aggregate rows (counts must be non-negative integers; the expanded table is capped at the row limit).
outcomeType
string
Force the outcome type; inferred from the number of distinct values otherwise.
descriptions
object
Optional one-line description per variable, used only to propose the DAG.
successValue
any
Outcome value that counts as success for a binary outcome; same default rule.
treatedValue
any
Treatment value that counts as treated; required unless the values are numeric or boolean (then the larger is treated).
bootstrapReps
integer
claimDirection
string
Direction of the claimed effect of treated vs control; default nonzero.
permutationSamples
integer
Used only when the exact enumeration would exceed 1000000 label assignments.
Input schema (JSON)
{
"type": "object",
"required": [
"treatment",
"outcome",
"covariates",
"claim"
],
"properties": {
"csv": {
"type": "string",
"maxLength": 3000000,
"minLength": 10,
"description": "Alternative to data: CSV text with a header line (comma, semicolon or tab separated; quoted fields allowed; at most 20000 data rows). Numeric cells become numbers."
},
"dag": {
"type": "object",
"required": [
"edges"
],
"properties": {
"edges": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"maxLength": 100
},
"from": {
"type": "string",
"maxLength": 100
}
},
"additionalProperties": false
},
"maxItems": 200,
"description": "Directed edges from cause to effect between the treatment, outcome, covariates and unobserved nodes."
},
"unobserved": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 10,
"description": "Latent variables that appear in edges (for example an unmeasured confounder)."
}
},
"description": "Your causal DAG (formal input: no LLM is called to build the graph or, by default, the report). Omit to have one proposed by two independent model samples, which is then an assumption.",
"additionalProperties": false
},
"bins": {
"type": "integer",
"maximum": 10,
"minimum": 2,
"description": "Quantile bins for numeric covariates, default 4."
},
"data": {
"type": "array",
"items": {
"type": "object"
},
"maxItems": 20000,
"minItems": 2,
"description": "Observational table as an array of row objects (at most 20000 rows). Cells are string, number, boolean or null; rows missing a used variable are dropped. Provide this or csv."
},
"seed": {
"type": "integer",
"maximum": 4294967295,
"minimum": 0,
"description": "Seed for bootstrap and Monte Carlo; default derived from the input hash."
},
"alpha": {
"type": "number",
"maximum": 0.2,
"minimum": 0.001,
"description": "Significance level for the permutation test and the (1-alpha) bootstrap interval, default 0.05."
},
"claim": {
"type": "string",
"maxLength": 2000,
"minLength": 3,
"description": "The causal claim being refereed, in plain language."
},
"outcome": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Binary column (risk difference, risk ratio, odds ratio) or numeric column (mean difference)."
},
"llmReport": {
"type": "boolean",
"description": "Ask a model to write the executive report in prose (numbers verified in code, template fallback). Default false: the report is a deterministic template over the computed results."
},
"treatment": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Column with exactly two distinct values."
},
"covariates": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 12,
"description": "Candidate adjustment variables (at most 12). Numeric ones with more than `bins` distinct values are cut at deterministic quantile edges; others must have at most 20 levels."
},
"countColumn": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Name of a column holding how many times each row repeats, so a published contingency table can be sent as a few aggregate rows (counts must be non-negative integers; the expanded table is capped at the row limit)."
},
"outcomeType": {
"enum": [
"binary",
"continuous"
],
"type": "string",
"description": "Force the outcome type; inferred from the number of distinct values otherwise."
},
"descriptions": {
"type": "object",
"description": "Optional one-line description per variable, used only to propose the DAG."
},
"successValue": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
],
"description": "Outcome value that counts as success for a binary outcome; same default rule."
},
"treatedValue": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
],
"description": "Treatment value that counts as treated; required unless the values are numeric or boolean (then the larger is treated)."
},
"bootstrapReps": {
"type": "integer",
"maximum": 2000,
"minimum": 100
},
"claimDirection": {
"enum": [
"positive",
"negative",
"nonzero"
],
"type": "string",
"description": "Direction of the claimed effect of treated vs control; default nonzero."
},
"permutationSamples": {
"type": "integer",
"maximum": 200000,
"minimum": 1000,
"description": "Used only when the exact enumeration would exceed 1000000 label assignments."
}
},
"additionalProperties": false
}
{
"type": "object",
"required": [
"messages"
],
"properties": {
"model": {
"type": "string",
"maxLength": 200,
"description": "Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model."
},
"top_p": {
"type": "number",
"description": "Accepted and ignored."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"enum": [
"system",
"user",
"assistant"
],
"type": "string"
},
"content": {
"type": "string",
"maxLength": 100000,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1,
"description": "Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions."
},
"max_tokens": {
"type": "integer",
"minimum": 1,
"description": "Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400."
},
"temperature": {
"type": "number",
"description": "Accepted and ignored."
},
"response_format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"json_schema"
],
"type": "string"
},
"json_schema": {
"type": "object",
"required": [
"name",
"schema"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"schema": {
"type": "object",
"description": "Strict JSON Schema for the reply."
},
"strict": {
"type": "boolean",
"description": "Accepted for OpenAI compatibility; strict mode is always on."
}
},
"additionalProperties": false
}
},
"description": "Either {\"type\":\"text\"} (default) or {\"type\":\"json_schema\",\"json_schema\":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.",
"additionalProperties": false
}
},
"additionalProperties": false
}
{
"type": "object",
"required": [
"messages"
],
"properties": {
"model": {
"type": "string",
"maxLength": 200,
"description": "Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model."
},
"top_p": {
"type": "number",
"description": "Accepted and ignored."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"enum": [
"system",
"user",
"assistant"
],
"type": "string"
},
"content": {
"type": "string",
"maxLength": 100000,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1,
"description": "Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions."
},
"max_tokens": {
"type": "integer",
"minimum": 1,
"description": "Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400."
},
"temperature": {
"type": "number",
"description": "Accepted and ignored."
},
"response_format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"json_schema"
],
"type": "string"
},
"json_schema": {
"type": "object",
"required": [
"name",
"schema"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"schema": {
"type": "object",
"description": "Strict JSON Schema for the reply."
},
"strict": {
"type": "boolean",
"description": "Accepted for OpenAI compatibility; strict mode is always on."
}
},
"additionalProperties": false
}
},
"description": "Either {\"type\":\"text\"} (default) or {\"type\":\"json_schema\",\"json_schema\":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.",
"additionalProperties": false
}
},
"additionalProperties": false
}
{
"type": "object",
"required": [
"messages"
],
"properties": {
"model": {
"type": "string",
"maxLength": 200,
"description": "Accepted and ignored: the hub routes by tier (the resource you paid for). Echoed as requested_model."
},
"top_p": {
"type": "number",
"description": "Accepted and ignored."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"required": [
"role",
"content"
],
"properties": {
"role": {
"enum": [
"system",
"user",
"assistant"
],
"type": "string"
},
"content": {
"type": "string",
"maxLength": 100000,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1,
"description": "Conversation, oldest first; the last message must have role user. At most 200000 characters in total. System messages are joined into the instructions."
},
"max_tokens": {
"type": "integer",
"minimum": 1,
"description": "Upper bound on the reply in tokens; defaults to 1024. A value above the tier cap is rejected with 400."
},
"temperature": {
"type": "number",
"description": "Accepted and ignored."
},
"response_format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"text",
"json_schema"
],
"type": "string"
},
"json_schema": {
"type": "object",
"required": [
"name",
"schema"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"schema": {
"type": "object",
"description": "Strict JSON Schema for the reply."
},
"strict": {
"type": "boolean",
"description": "Accepted for OpenAI compatibility; strict mode is always on."
}
},
"additionalProperties": false
}
},
"description": "Either {\"type\":\"text\"} (default) or {\"type\":\"json_schema\",\"json_schema\":{name,schema}}. The schema is always enforced strictly: root object, every property required, additionalProperties false, keywords limited to type, description, properties, required, additionalProperties, items, enum.",
"additionalProperties": false
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [
"operation"
],
"properties": {
"key": {
"type": "object",
"required": [
"tonic"
],
"properties": {
"mode": {
"enum": [
"major",
"minor",
"harmonic-minor"
],
"type": "string",
"description": "Default major. minor is natural minor."
},
"tonic": {
"type": "string",
"maxLength": 3,
"description": "Key tonic, e.g. A or Eb."
}
},
"description": "For key-membership.",
"additionalProperties": false
},
"chord": {
"type": "string",
"maxLength": 24,
"description": "Chord symbol, root A-G with optional #/b, quality suffix, optional /bass: Cmaj7, F#m7b5, Bb/D."
},
"notes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 6,
"description": "Note name such as C, Eb, F#, Bbb, C##, optionally with octave (C4). Bass is the lowest note when every note has an octave, else the first."
},
"maxItems": 8,
"minItems": 2,
"description": "For identify: 2 to 8 notes."
},
"prefer": {
"enum": [
"sharps",
"flats"
],
"type": "string",
"description": "Accidentals for a natural root when transposing. Default sharps; a root written with # or b keeps its kind."
},
"operation": {
"enum": [
"identify",
"spell",
"key-membership",
"transpose"
],
"type": "string"
},
"semitones": {
"type": "integer",
"maximum": 48,
"minimum": -48,
"description": "For transpose: semitones up (negative down)."
},
"expectChord": {
"type": "string",
"maxLength": 24,
"description": "Optional claimed chord symbol to verify (identify, transpose)."
},
"expectNotes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4,
"description": "A claimed note name."
},
"maxItems": 8,
"description": "Optional claimed notes in order, to verify (spell)."
}
},
"additionalProperties": false
}
references
string
Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago).
identifiers
array
Bare identifiers instead of a bibliography: up to 150 DOIs (bare, doi: or doi.org URL), arXiv ids or URLs, or PMIDs (bare, PMID: or PubMed URL), mixed freely. Each is resolved and checked for retraction, correction and a published version of record.
Input schema (JSON)
{
"type": "object",
"properties": {
"topK": {
"type": "integer",
"maximum": 2,
"minimum": 1,
"description": "References to audit for replication (default 2)."
},
"claim": {
"type": "string",
"maxLength": 2000,
"minLength": 10,
"description": "The claim the bibliography supports; used for the replication and contradiction checks instead of the citing sentence."
},
"latex": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "LaTeX source with a thebibliography environment (\\bibitem) or embedded filecontents .bib; \\cite commands supply citation contexts and are checked against the entries."
},
"bibtex": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "BibTeX/BibLaTeX text (the contents of a .bib file)."
},
"pdfUrl": {
"type": "string",
"maxLength": 2000,
"minLength": 8,
"description": "Public PDF URL. Text extraction is best-effort (Word and Google Docs exports work best)."
},
"arxivId": {
"type": "string",
"maxLength": 80,
"minLength": 4,
"description": "arXiv id or URL; references are read from the ar5iv HTML (.ltx_bibitem), falling back to the PDF."
},
"manuscript": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "Optional manuscript text (LaTeX or plain) that supplies citation contexts: \\cite keys, [n] numbers or Author (year) citations."
},
"references": {
"type": "string",
"maxLength": 200000,
"minLength": 10,
"description": "Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago)."
},
"identifiers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"maxItems": 150,
"minItems": 1,
"description": "Bare identifiers instead of a bibliography: up to 150 DOIs (bare, doi: or doi.org URL), arXiv ids or URLs, or PMIDs (bare, PMID: or PubMed URL), mixed freely. Each is resolved and checked for retraction, correction and a published version of record."
}
},
"additionalProperties": false
}
Fair-value move below which the answer is NO_MATERIAL_CHANGE (default 100).
bankrollUsd
number
Used to turn the Kelly fraction into dollars.
rulesBefore
string
Rules text before the change. Overrides the on-chain read; defaults to the creation-time rules plus earlier updates.
kellyFraction
number
Fraction of full Kelly to stake (default 0.25).
clarificationText
string
The clarification / Additional context text. Overrides the on-chain read.
Input schema (JSON)
{
"type": "object",
"required": [
"market"
],
"properties": {
"market": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Polymarket market slug, polymarket.com URL or conditionId; or a Kalshi market ticker (rules from the public trade-api v2)."
},
"feeRate": {
"type": "number",
"maximum": 0.25,
"minimum": 0,
"description": "Taker fee coefficient: fee = shares * feeRate * p * (1 - p). Defaults to the market's Gamma feeSchedule rate (0 when fees are disabled); Kalshi defaults to 0.07 times the series fee_multiplier from /series."
},
"sizeUsd": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Intended order size in USD (default 100)."
},
"position": {
"type": "object",
"required": [
"outcome",
"shares",
"avgPrice"
],
"properties": {
"shares": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
},
"outcome": {
"enum": [
"YES",
"NO"
],
"type": "string",
"description": "Held side; YES is the market's first outcome."
},
"avgPrice": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"priorYes": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Override for the pre-clarification fair P(YES); default is the Polymarket CLOB price history just before the clarification, falling back to the current YES order-book mid."
},
"minEdgeBps": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Minimum edge after fees and slippage, in bps of cost (default 100)."
},
"minMoveBps": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Fair-value move below which the answer is NO_MATERIAL_CHANGE (default 100)."
},
"bankrollUsd": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Used to turn the Kelly fraction into dollars."
},
"rulesBefore": {
"type": "string",
"maxLength": 20000,
"description": "Rules text before the change. Overrides the on-chain read; defaults to the creation-time rules plus earlier updates."
},
"kellyFraction": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Fraction of full Kelly to stake (default 0.25)."
},
"clarificationText": {
"type": "string",
"maxLength": 10000,
"description": "The clarification / Additional context text. Overrides the on-chain read."
}
},
"additionalProperties": false
}
include_parents
boolean
Look up GLEIF direct and ultimate parents.
Input schema (JSON)
{
"type": "object",
"properties": {
"cik": {
"type": "integer",
"maximum": 9999999999,
"minimum": 1,
"description": "SEC Central Index Key."
},
"lei": {
"type": "string",
"maxLength": 20,
"minLength": 20,
"description": "20-character LEI; check digits are validated (ISO 17442)."
},
"vat": {
"type": "object",
"required": [
"country",
"number"
],
"properties": {
"number": {
"type": "string",
"maxLength": 24,
"minLength": 2,
"description": "VAT number without the country prefix."
},
"country": {
"enum": [
"AT",
"BE",
"BG",
"CY",
"CZ",
"DE",
"DK",
"EE",
"EL",
"ES",
"FI",
"FR",
"HR",
"HU",
"IE",
"IT",
"LT",
"LU",
"LV",
"MT",
"NL",
"PL",
"PT",
"RO",
"SE",
"SI",
"SK",
"XI"
],
"type": "string",
"description": "VIES country code (Greece is EL, Northern Ireland XI)."
}
},
"additionalProperties": false
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Company name, with or without legal form."
},
"domain": {
"type": "string",
"maxLength": 253,
"description": "Company web domain; only used to guess a name and to prefer matching candidates. It is never fetched."
},
"ticker": {
"type": "string",
"maxLength": 10,
"minLength": 1,
"description": "Stock ticker, matched case-insensitively against the SEC table."
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "ISO 3166-1 alpha-2 hint; raises the score of candidates registered in that country."
},
"max_candidates": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "How many ranked candidates to return."
},
"include_parents": {
"type": "boolean",
"default": true,
"description": "Look up GLEIF direct and ultimate parents."
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"mode": {
"enum": [
"sentence",
"ngram"
],
"type": "string",
"description": "sentence (default) scores at sentence boundaries; ngram scores every sliding window of ngramSize words."
},
"text": {
"type": "string",
"maxLength": 200000,
"minLength": 20,
"description": "The chapter or passage to score."
},
"topN": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many lowest-score spans to return (default 10)."
},
"minChars": {
"type": "integer",
"maximum": 400,
"minimum": 8,
"description": "Minimum characters per candidate span (default 18)."
},
"ngramSize": {
"type": "integer",
"maximum": 7,
"minimum": 3,
"description": "Words per window when mode is ngram (default 5)."
},
"reference": {
"type": "string",
"maxLength": 200000,
"description": "Optional reference corpus to prepend before compression. When absent, the built-in 50 KB generic-prose corpus is used unless useBuiltInReference is false."
},
"useBuiltInReference": {
"type": "boolean",
"description": "Pass false to score with no reference corpus (local redundancy only). Default true."
}
},
"additionalProperties": false
}
*
string
userJurisdiction*
string
e.g. California, New York, EU (Germany), UK.
accountIdentifier
string
contractStartDate
string
earlyTerminationFeeUsd
number
Early-termination fee the vendor says you owe, USD, if any.
Input schema (JSON)
{
"type": "object",
"required": [
"vendorName",
"userJurisdiction",
"reasonForExit"
],
"properties": {
"termsUrl": {
"type": "string",
"maxLength": 2048,
"description": "Terms of Service or cancellation policy URL. Provide termsUrl or contractText."
},
"annualFee": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "What you pay per year, USD, if billed annually. Use monthlyFee or annualFee."
},
"monthlyFee": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "What you pay per month, USD. Used to compute the dollars at stake."
},
"vendorName": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"contractText": {
"type": "string",
"maxLength": 200000
},
"customerName": {
"type": "string",
"maxLength": 200
},
"customerType": {
"enum": [
"consumer",
"business"
],
"type": "string"
},
"signupMethod": {
"enum": [
"online",
"phone",
"in_person"
],
"type": "string"
},
"reasonForExit": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"userJurisdiction": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "e.g. California, New York, EU (Germany), UK."
},
"accountIdentifier": {
"type": "string",
"maxLength": 200
},
"contractStartDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"earlyTerminationFeeUsd": {
"type": "number",
"maximum": 100000000,
"minimum": 0,
"description": "Early-termination fee the vendor says you owe, USD, if any."
}
},
"additionalProperties": false
}
array
Transactions in which the claimant lost (or deposited, or recovered) funds.
Input schema (JSON)
{
"type": "object",
"required": [
"wording",
"claimant",
"cover"
],
"properties": {
"cover": {
"type": "object",
"required": [
"amount",
"asset",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO 8601 cover end."
},
"asset": {
"type": "string",
"maxLength": 20,
"minLength": 2,
"description": "Cover asset symbol, e.g. ETH, USDC, DAI, cbBTC."
},
"start": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO 8601 cover start."
},
"amount": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Cover amount in units of the cover asset."
}
},
"additionalProperties": false
},
"wording": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"minLength": 8,
"description": "Public URL of any provider's wording (PDF, HTML or text)."
},
"text": {
"type": "string",
"maxLength": 60000,
"minLength": 200,
"description": "Wording text; overrides the other fields."
},
"productId": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Nexus Mutual product id (api.nexusmutual.io/v2/products)."
},
"productName": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Nexus Mutual product or product-type name, e.g. \"Single Protocol Cover\"."
}
},
"description": "The cover wording: a Nexus Mutual product (id or name), a URL (HTML or PDF), or pasted text. At least one.",
"additionalProperties": false
},
"claimant": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Address that suffered the loss (the Impacted Account)."
},
"incident": {
"type": "object",
"properties": {
"occurredAt": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO 8601 time the loss event began, if known."
},
"description": {
"type": "string",
"maxLength": 20000,
"minLength": 10
},
"postmortemUrls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000,
"minLength": 8
},
"maxItems": 4
}
},
"additionalProperties": false
},
"claimDate": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO 8601 date the claim is (to be) filed; default now."
},
"deductible": {
"type": "object",
"properties": {
"basis": {
"enum": [
"from_loss",
"from_capped_loss"
],
"type": "string",
"description": "from_loss (default, Nexus clause 6): min(loss - deductible, cover). from_capped_loss: min(loss, cover) - deductible."
},
"amount": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
},
"percentOfLoss": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"percentOfCover": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"description": "Overrides any deductible found in the wording. Amount in cover-asset units; percentages 0-100.",
"additionalProperties": false
},
"claimedLoss": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
}
},
"description": "Loss the claimant asserts, in cover-asset units. Used for the payout only when no on-chain loss can be established; always reported as unverified.",
"additionalProperties": false
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"required": [
"chain",
"hash"
],
"properties": {
"hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
},
"chain": {
"enum": [
"ethereum",
"base",
"polygon",
"arbitrum",
"optimism"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 12,
"description": "Transactions in which the claimant lost (or deposited, or recovered) funds."
}
},
"additionalProperties": false
}
fix_available_at
string
When a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date.
Input schema (JSON)
{
"type": "object",
"properties": {
"sbom": {
"anyOf": [
{
"type": "object"
},
{
"type": "string",
"maxLength": 5000000
}
],
"description": "CycloneDX 1.4-1.6 or SPDX 2.2/2.3 JSON SBOM, as an object or a JSON string, up to 5 MB. Components need a purl with a version (SPDX: a purl externalRef). Exactly one of sbom or purls."
},
"purls": {
"type": "array",
"items": {
"type": "string",
"maxLength": 400,
"minLength": 8
},
"maxItems": 1000,
"description": "Alternative to sbom: versioned package URLs, e.g. pkg:maven/org.apache.logging.log4j/[email protected]. Ecosystems: npm, pypi, maven, golang, cargo, nuget, gem, composer, hex, pub, swift."
},
"product": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"version": {
"type": "string",
"maxLength": 100
}
},
"description": "Your product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).",
"additionalProperties": false
},
"issue_record": {
"type": "boolean",
"description": "Default false. When true, adds a standalone awareness_record (evidence snapshot, SBOM digest, evaluation time; signed with the hub attestation key when configured) for you to retain. It does not switch off the hub's standard signed response credential, which every response carries and which already binds the output and input digests to a timestamp."
},
"awareness_time": {
"type": "string",
"maxLength": 40,
"description": "When the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it."
},
"fix_available_at": {
"type": "string",
"maxLength": 40,
"description": "When a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date."
}
},
"additionalProperties": false
}
fix_available_at
string
When a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date.
Input schema (JSON)
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"maxLength": 200,
"description": "Branch, tag or commit; defaults to the default branch."
},
"repo": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Public GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head)."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"content": {
"type": "string",
"maxLength": 400000
}
},
"additionalProperties": false
},
"maxItems": 600,
"description": "Alternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths."
},
"product": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"version": {
"type": "string",
"maxLength": 100
}
},
"description": "Your product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).",
"additionalProperties": false
},
"ecosystems": {
"type": "array",
"items": {
"enum": [
"npm",
"pypi",
"cargo"
],
"type": "string"
},
"maxItems": 3,
"description": "Restrict the analysis; default all detected."
},
"repoLicense": {
"type": "string",
"maxLength": 100,
"description": "SPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent."
},
"awareness_time": {
"type": "string",
"maxLength": 40,
"description": "When the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it."
},
"fix_available_at": {
"type": "string",
"maxLength": 40,
"description": "When a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date."
}
},
"additionalProperties": false
}
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "https URL of the document. Provide this or content_base64."
},
"pages": {
"type": "string",
"maxLength": 1000,
"description": "Page, sheet or slide selection such as \"1-5,8\", at most 200 pages. Default: the first 200."
},
"format": {
"enum": [
"markdown",
"text"
],
"type": "string",
"description": "markdown (default) or text (Markdown syntax removed)."
},
"describe": {
"type": "boolean",
"description": "Also suggest a file name, tags and a summary with a language model. Default false."
},
"filename": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Original file name; helps format detection and is kept as the extension of the suggested name."
},
"max_chars": {
"type": "integer",
"maximum": 400000,
"minimum": 1000,
"description": "Output cap in characters, cut at a unit boundary. Default 120000."
},
"content_base64": {
"type": "string",
"maxLength": 5592408,
"minLength": 1,
"description": "Standard padded base64 of the file, at most 4 MB decoded. Provide this or url."
}
},
"additionalProperties": false
}
string
led-resistor (default E24) and e-series: preferred-value series.
tcrPpm
number
colour-encode with 6 bands: temperature coefficient in ppm/K.
areaMm2
number
line-drop: conductor cross-section in mm^2.
current
number
ohm, led-resistor, line-drop: amperes.
lengthM
number
line-drop: one-way length in metres.
voltage
number
ohm: volts.
bandCount
integer
colour-encode: 3, 4 (default), 5 or 6 bands. 5 and 6 bands carry three digits.
roundTrip
boolean
line-drop: count out and return conductors (default true).
resistance
number
ohm: ohms. colour-encode and e-series: the value in ohms.
resistances
array
series/parallel: ohms, at most 100.
tolerancePct
number
series/parallel: shared tolerance percent for min/max bounds. colour-encode: tolerance percent to encode.
line-drop: fail when the drop exceeds this percent of supplyVoltage.
resistivityOhmM
number
line-drop: conductor resistivity in ohm-metres, supplied by the caller (not looked up).
claimTolerancePct
number
Relative tolerance for claim values, percent (default 0: exact).
Input schema (JSON)
{
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"enum": [
"ohm",
"series",
"parallel",
"divider",
"led-resistor",
"line-drop",
"colour-decode",
"colour-encode",
"e-series"
],
"type": "string",
"description": "ohm | series | parallel | divider | led-resistor | line-drop | colour-decode | colour-encode | e-series."
},
"r1": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "divider: top resistor, ohms."
},
"r2": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "divider: bottom resistor, ohms."
},
"vin": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "divider: input volts."
},
"bands": {
"type": "array",
"items": {
"type": "string",
"maxLength": 12,
"description": "Colour name, head end first (IEC 60062 table)."
},
"maxItems": 6,
"minItems": 3,
"description": "colour-decode: 3 to 6 colours read from the head end."
},
"claim": {
"type": "object",
"description": "Optional map from an output value name (e.g. resistance, vout, minResistance) to the number you expect."
},
"power": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "ohm: watts."
},
"rLoad": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "divider: optional load across r2, ohms."
},
"series": {
"enum": [
"E3",
"E6",
"E12",
"E24",
"E48",
"E96",
"E192"
],
"type": "string",
"description": "led-resistor (default E24) and e-series: preferred-value series."
},
"tcrPpm": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "colour-encode with 6 bands: temperature coefficient in ppm/K."
},
"areaMm2": {
"type": "number",
"maximum": 1000000000000000,
"minimum": 0,
"description": "line-drop: conductor cross-section in mm^2."
},
"current": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "ohm, led-resistor, line-drop: amperes."
},
"lengthM": {
"type": "number",
"maximum": 1000000000000000,
"minimum": 0,
"description": "line-drop: one-way length in metres."
},
"voltage": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "ohm: volts."
},
"bandCount": {
"type": "integer",
"maximum": 6,
"minimum": 3,
"description": "colour-encode: 3, 4 (default), 5 or 6 bands. 5 and 6 bands carry three digits."
},
"roundTrip": {
"type": "boolean",
"description": "line-drop: count out and return conductors (default true)."
},
"resistance": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "ohm: ohms. colour-encode and e-series: the value in ohms."
},
"resistances": {
"type": "array",
"items": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "number"
},
"maxItems": 100,
"description": "series/parallel: ohms, at most 100."
},
"tolerancePct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "series/parallel: shared tolerance percent for min/max bounds. colour-encode: tolerance percent to encode."
},
"supplyVoltage": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "led-resistor: supply volts. line-drop: optional, enables dropPercent."
},
"forwardVoltage": {
"type": "number",
"maximum": 1000000000000000,
"minimum": -1000000000000000,
"description": "led-resistor: LED forward volts."
},
"maxDropPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "line-drop: fail when the drop exceeds this percent of supplyVoltage."
},
"resistivityOhmM": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "line-drop: conductor resistivity in ohm-metres, supplied by the caller (not looked up)."
},
"claimTolerancePct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Relative tolerance for claim values, percent (default 0: exact)."
}
},
"additionalProperties": false
}
{
"type": "object",
"properties": {
"cik": {
"type": "string",
"pattern": "^[0-9]{1,10}$",
"maxLength": 10,
"minLength": 1,
"description": "SEC CIK, digits only."
},
"checks": {
"type": "array",
"items": {
"enum": [
"balance_identity",
"net_income_tie_out",
"cash_tie_out",
"eps_recomputation",
"restatement_scan",
"calculation_footing"
],
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"description": "Checks to run; default all six."
},
"period": {
"enum": [
"FY",
"Q1",
"Q2",
"Q3"
],
"type": "string",
"description": "FY selects the 10-K; Q1 to Q3 select 10-Qs (there is no Q4 filing)."
},
"ticker": {
"type": "string",
"maxLength": 12,
"minLength": 1,
"description": "Exchange ticker, e.g. AAPL or BRK.B. Give exactly one of ticker or cik."
},
"accession": {
"type": "string",
"maxLength": 20,
"minLength": 18,
"description": "Accession number of a 10-K or 10-Q, e.g. 0000320193-25-000079. Give this or fiscal_year with period."
},
"fiscal_year": {
"type": "integer",
"maximum": 2100,
"minimum": 2009,
"description": "Fiscal year of the filing's DocumentFiscalYearFocus."
},
"rounding_mode": {
"enum": [
"exact",
"reported_precision"
],
"type": "string",
"description": "exact: any nonzero difference fails. reported_precision (default): differences within half a unit of the filing's reporting scale per rounded figure pass and are flagged."
}
},
"additionalProperties": false
}
integer
month-aligned: month in which the fiscal year starts, on day 1.
Input schema (JSON)
{
"type": "object",
"required": [
"type",
"yearLabel",
"items"
],
"properties": {
"type": {
"enum": [
"month-aligned",
"52-53-week"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"claimedPeriod": {
"type": "integer",
"maximum": 12,
"minimum": 1
},
"claimedQuarter": {
"type": "integer",
"maximum": 4,
"minimum": 1
},
"claimedFiscalYear": {
"type": "integer",
"maximum": 3000,
"minimum": 1000
}
}
},
"maxItems": 100,
"minItems": 1
},
"endRule": {
"enum": [
"last",
"closest"
],
"type": "string",
"description": "52-53-week: last endWeekday in endMonth, or the endWeekday closest to endMonth's last day."
},
"pattern": {
"enum": [
"4-4-5",
"4-5-4",
"5-4-4"
],
"type": "string",
"description": "52-53-week: weeks per period within each quarter."
},
"endMonth": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "52-53-week: month near whose end the year ends."
},
"yearLabel": {
"enum": [
"start",
"end"
],
"type": "string",
"description": "start: the fiscal year is named for the calendar year it begins in. end: for the calendar year it ends in (US federal FY2027 begins 2026-10-01)."
},
"endWeekday": {
"type": "integer",
"maximum": 6,
"minimum": 0,
"description": "52-53-week: weekday the year ends on, 0=Sunday."
},
"startMonth": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "month-aligned: month in which the fiscal year starts, on day 1."
}
},
"additionalProperties": false
}
observations
array
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"namespace",
"subject"
],
"properties": {
"op": {
"enum": [
"record",
"query"
],
"type": "string"
},
"subject": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "What was observed, e.g. api.stripe.com:POST:/v1/refunds, +18005551234:billing, or an error fingerprint."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"namespace": {
"enum": [
"endpoint-health",
"rate-limit",
"ivr-path",
"submission-outcome",
"failure-fix",
"feed-staleness",
"page-recipe",
"merchant-workflow",
"document-reputation",
"custom"
],
"type": "string"
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
},
"sinceHours": {
"type": "integer",
"maximum": 720,
"minimum": 1,
"description": "query window; default 168 (7 days)."
},
"observations": {
"type": "array",
"items": {
"type": "object",
"required": [
"outcome",
"observedAt"
],
"properties": {
"by": {
"type": "string",
"maxLength": 64,
"description": "Recording worker id."
},
"unit": {
"type": "string",
"maxLength": 16
},
"value": {
"type": "number",
"description": "Optional measurement, e.g. latency ms or hold minutes."
},
"detail": {
"type": "string",
"maxLength": 500,
"description": "e.g. the menu path 1,3,2 or the fix applied. Do not store personal data."
},
"outcome": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,64}$",
"description": "e.g. ok, timeout, 429, accepted, rejected, path-worked."
},
"observedAt": {
"type": "string",
"maxLength": 40,
"description": "ISO 8601 with offset; within the last 30 days."
}
},
"additionalProperties": false
},
"maxItems": 50
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"properties": {
"toDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Latest publication date (inclusive)."
},
"fromDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Earliest publication date. Default: 10 years before the call."
},
"seedPaper": {
"type": "string",
"maxLength": 300,
"minLength": 5,
"description": "An English-language paper you already know, as a DOI (bare or doi.org URL) or arXiv id/URL. Its title becomes the research topic (or is added to it) so the scout finds non-English work on the same problem."
},
"maxResults": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Discoveries to return (default 5, max 8)."
},
"researchTopic": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "English research topic, e.g. \"sulfide solid electrolytes for all-solid-state lithium batteries\"."
},
"targetLanguages": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"maxItems": 6,
"description": "ISO 639-1 codes of non-English languages to mine (max 6). Default zh, ja, de, fr, ko."
},
"technicalBottleneck": {
"type": "string",
"maxLength": 1000,
"minLength": 3,
"description": "English description of an unsolved technical bottleneck. Provide this, researchTopic or seedPaper (or several)."
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"properties": {
"mode": {
"enum": [
"fast",
"full"
],
"type": "string",
"description": "fast: zero model calls (lexical clustering and lexical addressed-check). full (default): one clustering call and one judging call, bounded to one status level."
},
"field": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Field or discipline keyword added to the topic search, e.g. \"machine learning\"."
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 3,
"description": "Research topic, e.g. \"parameter-efficient fine-tuning of language models\"."
},
"seeds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 5
},
"maxItems": 25,
"description": "Seed papers you already have: arXiv ids or URLs (2106.09685, arXiv:1706.03762, arxiv.org/abs/...), DOIs or doi.org URLs, or PMIDs (PMID:12345678 or a PubMed URL). Always analysed, not date-filtered."
},
"toDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"minLength": 10,
"description": "Only topic-search papers published on or before this date (YYYY-MM-DD)."
},
"fromDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"minLength": 10,
"description": "Only topic-search papers published on or after this date (YYYY-MM-DD)."
},
"maxPapers": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Papers to analyse, at most 25 (default 10); seeds count toward it."
}
},
"additionalProperties": false
}
{
"type": "object",
"required": [
"op",
"sequence"
],
"properties": {
"op": {
"enum": [
"next",
"peek"
],
"type": "string"
},
"count": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Ids to reserve; default 1."
},
"start": {
"type": "integer",
"maximum": 9007199254740990,
"minimum": 0,
"description": "First id of a new sequence; ignored once it exists. Default 1."
},
"sequence": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "Sequence name, e.g. invoice:2026."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
}
},
"additionalProperties": false
}
fingerprint
string
Hash of the operation's identity fields; a later begin with a different fingerprint is refused.
claimSeconds
integer
How long a begin claim lasts; default 300.
retentionHours
integer
How long a completed key is remembered; default 24.
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"key"
],
"properties": {
"op": {
"enum": [
"begin",
"complete",
"abandon",
"get"
],
"type": "string"
},
"key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "Idempotency key, e.g. refund:ch_123:2026-11-04."
},
"owner": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Worker id; required for begin, complete and abandon."
},
"result": {
"type": "object",
"properties": {
"digest": {
"type": "string",
"maxLength": 128
},
"pointer": {
"type": "string",
"maxLength": 500
},
"summary": {
"type": "string",
"maxLength": 500
}
},
"description": "complete: where the outcome lives (do not store payloads here).",
"additionalProperties": false
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
},
"fingerprint": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Hash of the operation's identity fields; a later begin with a different fingerprint is refused."
},
"claimSeconds": {
"type": "integer",
"maximum": 3600,
"minimum": 1,
"description": "How long a begin claim lasts; default 300."
},
"retentionHours": {
"type": "integer",
"maximum": 168,
"minimum": 1,
"description": "How long a completed key is remembered; default 24."
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"quantity",
"unitPrice",
"amount"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Stated net line amount after the line discount."
},
"taxRate": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Tax rate in percent, e.g. \"7.5\". With taxAmount it is checked. A non-zero rate without taxAmount cannot be checked: the result is unknown, and no tax is inferred."
},
"discount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Line discount as a positive amount in major units."
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"taxAmount": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Tax on this line as supplied."
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Price per unit in major units; sub-cent precision allowed."
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
},
"stated": {
"type": "object",
"properties": {
"total": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Grand total; checked against subtotal + taxTotal."
},
"subtotal": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"taxTotal": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"discountTotal": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Sum of line discounts."
}
},
"additionalProperties": false
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Default half-up. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"taxRounding": {
"enum": [
"line",
"invoice"
],
"type": "string",
"description": "line (default): each line's tax is rounded on its own. invoice: tax is rounded once per distinct rate on the sum of the line amounts, and compared with the supplied tax sum for that rate."
},
"toleranceMinor": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Largest absolute drift in minor units still treated as a match. Default 0."
}
},
"additionalProperties": false
}
ttlSeconds
integer
Lease length; default 30.
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"resource"
],
"properties": {
"op": {
"enum": [
"acquire",
"renew",
"release",
"get"
],
"type": "string"
},
"token": {
"type": "integer",
"minimum": 1,
"description": "Fencing token from acquire; required for renew and release."
},
"holder": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Your worker id. Required for acquire, renew and release."
},
"resource": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "Task or resource name, e.g. invoice:INV-1009 or deploy:prod."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
},
"ttlSeconds": {
"type": "integer",
"maximum": 3600,
"minimum": 1,
"description": "Lease length; default 30."
}
},
"additionalProperties": false
}
zThreshold
number
z at or above which the result is fail. Default 4 (Kirchenbauer et al.).
Input schema (JSON)
{
"type": "object",
"required": [],
"properties": {
"key": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Secret key for tokenIds. Used for this call only and never stored or echoed."
},
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Text to scan for invisible markers."
},
"gamma": {
"type": "number",
"maximum": 0.99,
"minimum": 0.01,
"description": "Expected green fraction under no watermark. Default 0.25."
},
"scheme": {
"enum": [
"hmac-sha256-green-1"
],
"type": "string",
"description": "Scheme for tokenIds; default and only value."
},
"tokenIds": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"maxItems": 5000,
"description": "Token ids in order (at most 5000). Green membership is computed from the key with the hmac-sha256-green-1 scheme; each distinct consecutive pair is scored once."
},
"minTokens": {
"type": "integer",
"maximum": 1000,
"minimum": 5,
"description": "Fewer scored tokens than this is unknown. Default 25."
},
"greenFlags": {
"type": "array",
"items": {
"type": "integer",
"maximum": 1,
"minimum": 0
},
"maxItems": 100000,
"description": "One 0/1 per scored token: 1 when your own detector's green list contains the token. Deduplicate repeated n-grams yourself if your scheme requires it."
},
"zThreshold": {
"type": "number",
"maximum": 10,
"minimum": 1,
"description": "z at or above which the result is fail. Default 4 (Kirchenbauer et al.)."
}
},
"additionalProperties": false
}
If set, lots elsewhere (or without a location) are excluded.
minShelfLifeDays
integer
Exclude lots with fewer than this many days left at asOf (needs expiry on every non-held lot).
Input schema (JSON)
{
"type": "object",
"required": [
"asOf",
"demand",
"policy",
"lots"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Reference date, YYYY-MM-DD. An expiry date is the last usable day: a lot expiring on asOf has 0 days left."
},
"lots": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"qty"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"description": "Lot id (unique)."
},
"qty": {
"type": "integer",
"maximum": 1000000000,
"minimum": 0,
"description": "Units on hand."
},
"hold": {
"type": "boolean",
"description": "Quality or admin hold: never picked."
},
"expiry": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Last usable day, YYYY-MM-DD."
},
"location": {
"type": "string",
"maxLength": 64,
"description": "Location label."
},
"received": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10,
"description": "Date received, YYYY-MM-DD."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "At most 200."
},
"demand": {
"type": "integer",
"maximum": 1000000000,
"minimum": 0,
"description": "Units wanted (whole units)."
},
"policy": {
"enum": [
"FIFO",
"FEFO",
"LIFO",
"MIN_LOTS"
],
"type": "string",
"description": "FIFO: oldest received first. FEFO: earliest expiry first. LIFO: newest received first. MIN_LOTS: fewest lots (largest usable first; ties by earlier expiry, then id)."
},
"pickMultiple": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Each lot contributes whole multiples of this case size (default 1)."
},
"allowOverpick": {
"type": "boolean",
"description": "With pickMultiple, allow the last pick to round the total up to a whole case (default false: leave the remainder as shortfall)."
},
"allowedLocations": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"description": "Location label."
},
"maxItems": 50,
"description": "If set, lots elsewhere (or without a location) are excluded."
},
"minShelfLifeDays": {
"type": "integer",
"maximum": 36500,
"minimum": 0,
"description": "Exclude lots with fewer than this many days left at asOf (needs expiry on every non-held lot)."
}
},
"additionalProperties": false
}
stripTrailingWhitespace
boolean
Default true; a two-space hard break before more paragraph text is kept.
Input schema (JSON)
{
"type": "object",
"required": [
"markdown"
],
"properties": {
"bullet": {
"enum": [
"-",
"*",
"+"
],
"type": "string",
"description": "Marker for unordered lists. Default '-'."
},
"markdown": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Markdown to normalize."
},
"finalNewline": {
"type": "boolean",
"description": "End with exactly one newline. Default true."
},
"fixHeadingSpace": {
"type": "boolean",
"description": "Restore the space in '##Title'. A lowercase '#tag' at level 1 is treated as a hashtag and left alone. Default true."
},
"closeUnclosedFence": {
"type": "boolean",
"description": "Append the closing fence when the document ends inside one. Default true."
},
"collapseBlankLines": {
"type": "boolean",
"description": "Collapse runs of blank lines and drop leading and trailing blanks. Default true."
},
"blankLinesAroundBlocks": {
"type": "boolean",
"description": "Insert a blank line around headings and top-level fenced blocks. Default true."
},
"stripTrailingWhitespace": {
"type": "boolean",
"description": "Default true; a two-space hard break before more paragraph text is kept."
}
},
"additionalProperties": false
}
marketPriceScale
string
Force the unit of marketPriceYes: percent (35 = 35%) or fraction (0.35 = 35%).
Input schema (JSON)
{
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "News excerpt or event description. Required unless market is given; with market, extra evidence you want weighed."
},
"market": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Polymarket slug, market URL or conditionId, or a Kalshi ticker or URL. Reads the question, rules, end date and live best asks; marketPriceYes then defaults to the book mid. A resolved market returns its outcome without a model call."
},
"question": {
"type": "string",
"maxLength": 500,
"description": "Exact market question; inferred when omitted (read from the market when market is given)."
},
"minEdgePct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Minimum edge after taker fees, in percentage points, before verdict.action is BUY_YES or BUY_NO (default 5). A low-confidence estimate never produces a BUY."
},
"bankrollUsd": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Converts the quarter-Kelly fraction into verdict.size_usd."
},
"marketPriceYes": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Current implied Yes probability, used to compute edge. Percent (0-100) by default; a value strictly between 0 and 1 is read as a 0-1 market price (Polymarket/Kalshi style) unless marketPriceScale says otherwise."
},
"marketPriceScale": {
"enum": [
"percent",
"fraction"
],
"type": "string",
"description": "Force the unit of marketPriceYes: percent (35 = 35%) or fraction (0.35 = 35%)."
}
},
"additionalProperties": false
}
What actually happened: symptoms, duration, tests, treatment.
accountNumber
string
billReceivedDate
string
Date the initial bill was received; used for the 120-day dispute deadline.
goodFaithEstimateAmount
number
Good Faith Estimate received (self-pay).
Input schema (JSON)
{
"type": "object",
"required": [
"facilityType"
],
"properties": {
"billText": {
"type": "string",
"maxLength": 30000,
"minLength": 10,
"description": "Alternative to lineItems: paste the itemized bill, one line item per line, e.g. \"99285 EMERGENCY DEPT VISIT LVL 5 1 $3,250.00\". Lines with a CPT/HCPCS code and a dollar amount are read in code; send exactly one of lineItems or billText."
},
"coverage": {
"enum": [
"uninsured_self_pay",
"in_network",
"out_of_network",
"medicare",
"medicaid",
"unknown"
],
"type": "string",
"description": "Determines which No Surprises Act protections can apply."
},
"claimType": {
"enum": [
"professional",
"facility"
],
"type": "string",
"description": "Physician (CMS-1500) or hospital/facility (UB-04) bill. Medicare physician fee schedule benchmarks apply only to professional claims."
},
"lineItems": {
"type": "array",
"items": {
"type": "object",
"required": [
"cptOrHcpcsCode",
"description",
"chargedAmount",
"units"
],
"properties": {
"units": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"modifiers": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9]{2}$"
},
"maxItems": 4
},
"description": {
"type": "string",
"maxLength": 500
},
"revenueCode": {
"type": "string",
"pattern": "^\\d{3,4}$"
},
"serviceDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"chargedAmount": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Total billed for this line, USD."
},
"cptOrHcpcsCode": {
"type": "string",
"pattern": "^[A-Za-z0-9]{5}$",
"description": "5-character CPT or HCPCS Level II code."
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
},
"patientName": {
"type": "string",
"maxLength": 200
},
"facilityName": {
"type": "string",
"maxLength": 200
},
"facilityType": {
"enum": [
"emergency_room",
"urgent_care",
"outpatient_hospital",
"inpatient_hospital",
"ambulatory_surgery_center",
"physician_office",
"laboratory",
"imaging_center",
"other"
],
"type": "string"
},
"patientState": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"visitSummary": {
"type": "string",
"maxLength": 4000,
"description": "What actually happened: symptoms, duration, tests, treatment."
},
"accountNumber": {
"type": "string",
"maxLength": 100
},
"billReceivedDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the initial bill was received; used for the 120-day dispute deadline."
},
"goodFaithEstimateAmount": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Good Faith Estimate received (self-pay)."
}
},
"additionalProperties": false
}
rounding
string
Final rounding to the minor unit. Default half-up. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity.
packageRounding
string
How a partial package is billed when per > 1. Default up.
Input schema (JSON)
{
"type": "object",
"required": [
"quantity",
"mode",
"tiers"
],
"properties": {
"per": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Units per billing package (default 1). Tiers are expressed in packages."
},
"mode": {
"enum": [
"graduated",
"volume"
],
"type": "string"
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"unitPrice"
],
"properties": {
"upTo": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Inclusive upper bound in billing units. Omit on the last tier for unlimited."
},
"flatFee": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Fee in major units charged with this tier."
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Price per billing unit in major units; sub-cent precision allowed."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1
},
"minimum": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Minimum charge in major units, applied after the tiers."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0
},
"included": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Free quantity subtracted before packaging and tiers (never below zero)."
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Final rounding to the minor unit. Default half-up. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"packageRounding": {
"enum": [
"up",
"down",
"none"
],
"type": "string",
"description": "How a partial package is billed when per > 1. Default up."
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "Prose to score."
},
"expect": {
"enum": [
"any",
"tense"
],
"type": "string",
"description": "tense: fail if the curve never reaches peakThreshold. any (default): only stalls after a peak can fail."
},
"window": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Sentences in the trailing moving average. Default 3."
},
"stallDrop": {
"type": "number",
"maximum": 0.9,
"minimum": 0.05,
"description": "Fall below the running peak that counts as a stall. Default 0.25 on the 0-1 intensity scale."
},
"actionWords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact word, matched case-insensitively."
},
"maxItems": 500,
"description": "Your own action-word list. Without it the action component is left out and the other weights are renormalized."
},
"minSentences": {
"type": "integer",
"maximum": 100,
"minimum": 2,
"description": "Fewer scored sentences is unknown. Default 8."
},
"peakThreshold": {
"type": "number",
"maximum": 0.95,
"minimum": 0.1,
"description": "Smoothed intensity a passage must reach before a later fall can be a stall. Default 0.55."
}
},
"additionalProperties": false
}
*
string
Input schema (JSON)
{
"type": "object",
"required": [
"proposedProductDescription"
],
"properties": {
"jurisdiction": {
"type": "string",
"maxLength": 40,
"description": "Defaults to US."
},
"patentNumber": {
"type": "string",
"maxLength": 40,
"description": "Publication number such as US7629993B2. Used to read the claims from Google Patents when patentClaimsText is omitted."
},
"priorityDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Earliest effective filing/priority date, YYYY-MM-DD. Only works published strictly before it count. Optional when patentNumber is given; a supplied date wins over the Google Patents date and a disagreement is reported."
},
"annualRevenueUsd": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0,
"description": "Annual revenue that depends on the product; sizes the dollar exposure in the headline."
},
"patentClaimsText": {
"type": "string",
"maxLength": 50000,
"minLength": 20,
"description": "Numbered claims (at least the independent claims). Optional when patentNumber is given: the claims are then read from Google Patents."
},
"assumedRoyaltyPct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Assumed running royalty as a percent of revenue, for the exposure illustration."
},
"proposedProductDescription": {
"type": "string",
"maxLength": 20000,
"minLength": 20
}
},
"additionalProperties": false
}
string
Optional stated total of `after` to verify.
statedBeforeTotal
string
Optional stated total of `before` (reporting currency) to verify.
Input schema (JSON)
{
"type": "object",
"required": [
"before",
"after"
],
"properties": {
"fx": {
"type": "object",
"required": [
"before",
"after"
],
"properties": {
"after": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"before": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
}
},
"description": "Multiplier from line currency to reporting currency, before and after. Default 1 and 1.",
"additionalProperties": false
},
"after": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"quantity",
"unitPrice"
],
"properties": {
"key": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
}
},
"additionalProperties": false
},
"maxItems": 300,
"minItems": 0
},
"order": {
"type": "array",
"items": {
"enum": [
"quantity",
"price",
"fx"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"description": "Substitution order of the factors; each at most once. Default [quantity, price, fx]."
},
"before": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"quantity",
"unitPrice"
],
"properties": {
"key": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"quantity": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
},
"unitPrice": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."
}
},
"additionalProperties": false
},
"maxItems": 300,
"minItems": 0
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 alphabetic code, upper case."
},
"exponent": {
"type": "integer",
"maximum": 8,
"minimum": 0
},
"rounding": {
"enum": [
"half-up",
"half-down",
"half-even",
"up",
"down",
"ceiling",
"floor"
],
"type": "string",
"description": "Default half-even. half-up: ties away from zero. half-down: ties toward zero. half-even: ties to the even neighbour. up: away from zero. down: toward zero. ceiling: toward +infinity. floor: toward -infinity."
},
"statedAfterTotal": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Optional stated total of `after` to verify."
},
"statedBeforeTotal": {
"type": "string",
"pattern": "^-?\\d{1,15}(\\.\\d{1,12})?$",
"maxLength": 30,
"description": "Optional stated total of `before` (reporting currency) to verify."
}
},
"additionalProperties": false
}
printHeight
number
Trim height in unit.
ppiTolerance
number
Accepted ppi difference for claimedEffectivePpi (default 0.5).
bitsPerChannel
integer
Bits per channel (default 8).
claimedRawBytes
integer
An uncompressed byte count you assert.
claimedEffectivePpi
number
An effective ppi you assert; checked against the computed value.
Input schema (JSON)
{
"type": "object",
"required": [
"widthPx",
"heightPx"
],
"properties": {
"unit": {
"enum": [
"in",
"mm",
"cm"
],
"type": "string",
"description": "Unit for print size, bleed and margin (default in)."
},
"bleed": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Bleed added on each side of the trim, in unit (default 0)."
},
"margin": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Safe margin inside the trim on each side, in unit (default 0)."
},
"widthPx": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Image width in pixels."
},
"channels": {
"type": "integer",
"maximum": 8,
"minimum": 1,
"description": "Channels per pixel for the raw size (default 3)."
},
"heightPx": {
"type": "integer",
"maximum": 1000000,
"minimum": 1,
"description": "Image height in pixels."
},
"targetPpi": {
"type": "number",
"maximum": 100000,
"minimum": 1,
"description": "The resolution you require, in pixels per inch."
},
"printWidth": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Trim width in unit."
},
"printHeight": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Trim height in unit."
},
"ppiTolerance": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "Accepted ppi difference for claimedEffectivePpi (default 0.5)."
},
"bitsPerChannel": {
"enum": [
1,
8,
16,
32
],
"type": "integer",
"description": "Bits per channel (default 8)."
},
"claimedRawBytes": {
"type": "integer",
"maximum": 9000000000000000,
"minimum": 0,
"description": "An uncompressed byte count you assert."
},
"claimedEffectivePpi": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "An effective ppi you assert; checked against the computed value."
}
},
"additionalProperties": false
}
conventions
object
Restrict the conventions searched (default: all rounding modes x both scopes x both FX date policies).
settlements
array
Payouts or bank settlement totals to explain.
feeSchedules
array
Candidate fee schedules; the solver reports which one reconciles each settlement. Omit for no fees.
withholdings
array
toleranceMinor
integer
Accepted |residual| per settlement in minor units (default 0 = exact).
defaultCurrency
string
Currency for text rows that state none.
nearMissToleranceMinor
integer
Largest residual searched when reporting the closest near-miss for an unmatched settlement.
Input schema (JSON)
{
"type": "object",
"properties": {
"text": {
"type": "object",
"properties": {
"items": {
"type": "string",
"maxLength": 30000
},
"terms": {
"type": "string",
"maxLength": 30000,
"description": "Fee schedules, tax/withholding rates and FX rates in prose or tables."
},
"settlements": {
"type": "string",
"maxLength": 30000
},
"amountColumn": {
"type": "string",
"maxLength": 100,
"description": "CSV header to read amounts from, e.g. \"net\" for a Stripe or PayPal export whose payout is the sum of net amounts. Default: the first amount-like column (Amount, then Gross)."
}
},
"description": "Messy source text for collections not given structurally. A CSV with a header (Stripe balance or payout-reconciliation export, PayPal activity export, bank statement) is parsed by code with no model, and so are headerless lines with one amount each (date, id, amount, currency, and wording that names one kind, such as Payment or Refund); anything else goes to a fast-tier LLM that must quote every row verbatim.",
"additionalProperties": false
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"amount",
"currency"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"date": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO date YYYY-MM-DD (a time suffix is ignored)."
},
"kind": {
"enum": [
"charge",
"invoice",
"refund",
"dispute",
"fee",
"adjustment",
"other"
],
"type": "string"
},
"group": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"description": "Lines sharing a group (an invoice) are settled together or not at all."
},
"amount": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
],
"description": "Decimal string; locale formats (1.234,56, (12.00)) are accepted and parsed exactly."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
}
},
"additionalProperties": false
},
"maxItems": 2000,
"description": "Ledger lines. Amounts are signed (refunds and disputes negative) strings in major units, e.g. \"1234.56\"."
},
"limits": {
"type": "object",
"properties": {
"maxNodes": {
"type": "integer",
"maximum": 20000000,
"minimum": 1000
},
"maxMillis": {
"type": "integer",
"maximum": 25000,
"minimum": 100
},
"maxSolutions": {
"type": "integer",
"maximum": 100,
"minimum": 2
}
},
"additionalProperties": false
},
"fxRates": {
"type": "array",
"items": {
"type": "object",
"required": [
"from",
"to",
"rate"
],
"properties": {
"to": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
},
"date": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO date YYYY-MM-DD (a time suffix is ignored)."
},
"from": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
},
"rate": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
},
"maxItems": 500,
"description": "Direct rates only (1 from = rate to). The latest rate dated on or before the reference date applies; an undated rate is the fallback."
},
"crossCheck": {
"type": "boolean",
"description": "Run two independent LLM translations and keep only rows both produced (default true)."
},
"maxLagDays": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "An item may settle at most this many days after its date."
},
"conventions": {
"type": "object",
"properties": {
"scope": {
"type": "array",
"items": {
"enum": [
"line",
"total_net"
],
"type": "string"
},
"maxItems": 2,
"minItems": 1
},
"fxPolicy": {
"type": "array",
"items": {
"enum": [
"item_date",
"settlement_date"
],
"type": "string"
},
"maxItems": 2,
"minItems": 1
},
"rounding": {
"type": "array",
"items": {
"enum": [
"half_up",
"half_even",
"truncate"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1
}
},
"description": "Restrict the conventions searched (default: all rounding modes x both scopes x both FX date policies).",
"additionalProperties": false
},
"settlements": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"amount",
"currency"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"date": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO date YYYY-MM-DD (a time suffix is ignored)."
},
"amount": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
},
"itemIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"maxItems": 2000,
"description": "Restrict the candidate items for this settlement."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
},
"feeScheduleIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"maxItems": 20,
"description": "Restrict the fee schedules tried for this settlement (e.g. its processor)."
},
"withholdingIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"maxItems": 20,
"description": "Require one of these withholdings; omit to also try none."
}
},
"additionalProperties": false
},
"maxItems": 200,
"description": "Payouts or bank settlement totals to explain."
},
"feeSchedules": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"rules"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"max": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
},
"min": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
},
"fixed": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
],
"description": "Fixed fee per item in the item's currency."
},
"kinds": {
"type": "array",
"items": {
"enum": [
"charge",
"invoice",
"refund",
"dispute",
"fee",
"adjustment",
"other"
],
"type": "string"
},
"maxItems": 7
},
"tiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"percent"
],
"properties": {
"upTo": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
},
"percent": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Percentage bands on |amount|; amounts above the last upTo use the last band's percent."
},
"percent": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
],
"description": "Percentage, e.g. 2.9 for 2.9%."
},
"tierMode": {
"enum": [
"marginal",
"threshold"
],
"type": "string",
"description": "marginal: each band charged at its own percent; threshold: the band containing the amount applies to all of it."
},
"currencies": {
"type": "array",
"items": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
},
"maxItems": 40
},
"fixedByCurrency": {
"type": "array",
"items": {
"type": "object",
"required": [
"currency",
"amount"
],
"properties": {
"amount": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code."
}
},
"additionalProperties": false
},
"maxItems": 40,
"description": "Per-currency fixed fee; overrides fixed."
}
},
"description": "First rule whose kinds (default charge, invoice) and currencies match an item sets its fee: percent (or tiers) of |amount| plus a fixed amount, clamped to min and max, signed like the item.",
"additionalProperties": false
},
"maxItems": 20
},
"source": {
"type": "string",
"maxLength": 500
},
"description": {
"type": "string",
"maxLength": 300
},
"fxMarkupPercent": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
],
"description": "Spread applied to FX conversions: effective rate = rate x (1 - markup/100)."
},
"fixedPerSettlement": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
],
"description": "Fixed fee deducted once per settlement, in the settlement currency (rounded to its minor unit)."
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "Candidate fee schedules; the solver reports which one reconciles each settlement. Omit for no fees."
},
"withholdings": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"ratePercent"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"base": {
"enum": [
"gross",
"net_of_fee"
],
"type": "string"
},
"kinds": {
"type": "array",
"items": {
"enum": [
"charge",
"invoice",
"refund",
"dispute",
"fee",
"adjustment",
"other"
],
"type": "string"
},
"maxItems": 7
},
"ratePercent": {
"anyOf": [
{
"type": "string",
"maxLength": 40,
"minLength": 1
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
},
"maxItems": 20
},
"toleranceMinor": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Accepted |residual| per settlement in minor units (default 0 = exact)."
},
"defaultCurrency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Currency for text rows that state none."
},
"nearMissToleranceMinor": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Largest residual searched when reporting the closest near-miss for an unmatched settlement."
}
},
"additionalProperties": false
}
exdates
array
Extra excluded local date-times (YYYY-MM-DDTHH:MM[:SS]) or dates (YYYY-MM-DD, excludes that day).
timeZone
string
IANA zone for local times (required for cron; for rrule unless DTSTART has TZID or Z).
blackouts
array
Inclusive local date ranges to drop (holidays, freezes).
durationMinutes
integer
Occurrence length, for conflict overlap.
Input schema (JSON)
{
"type": "object",
"required": [
"kind",
"rule"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$",
"maxLength": 30,
"description": "Local end of the window, inclusive."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$",
"maxLength": 30,
"description": "Local start of the output window; required for cron, default DTSTART for rrule."
},
"kind": {
"enum": [
"rrule",
"cron"
],
"type": "string"
},
"rule": {
"type": "string",
"maxLength": 800,
"description": "rrule: 'DTSTART;TZID=America/New_York:19970902T090000\\nRRULE:FREQ=DAILY;COUNT=10\\nEXDATE;TZID=America/New_York:19970903T090000' or just 'FREQ=...' with dtstart. cron: '*/15 9-17 * * 1-5' (dom and dow both restricted match if either does)."
},
"limit": {
"type": "integer",
"maximum": 366,
"minimum": 1,
"description": "Maximum occurrences returned (default 20)."
},
"other": {
"type": "object",
"required": [
"kind",
"rule"
],
"properties": {
"kind": {
"enum": [
"rrule",
"cron"
],
"type": "string"
},
"rule": {
"type": "string",
"maxLength": 800
},
"dtstart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$",
"maxLength": 30
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64
},
"durationMinutes": {
"type": "integer",
"maximum": 43200,
"minimum": 0
}
},
"description": "A second rule to compare; conflicts are occurrences whose intervals overlap (equal instants when both durations are 0)."
},
"dtstart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}[Tt ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$",
"maxLength": 30,
"description": "Local DTSTART when the rule text has none."
},
"exdates": {
"type": "array",
"items": {
"type": "string",
"maxLength": 30
},
"maxItems": 200,
"description": "Extra excluded local date-times (YYYY-MM-DDTHH:MM[:SS]) or dates (YYYY-MM-DD, excludes that day)."
},
"timeZone": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_+-]*(/[A-Za-z0-9_+-]+){0,2}$",
"maxLength": 64,
"description": "IANA zone for local times (required for cron; for rrule unless DTSTART has TZID or Z)."
},
"blackouts": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
}
}
},
"maxItems": 50,
"description": "Inclusive local date ranges to drop (holidays, freezes)."
},
"durationMinutes": {
"type": "integer",
"maximum": 43200,
"minimum": 0,
"description": "Occurrence length, for conflict overlap."
}
},
"additionalProperties": false
}
include
array
Categories to add to the level preset.
useModel
boolean
Add a language-model pass for names, organizations and addresses (when those categories are on). Sends the text, up to 60000 characters, to the configured model provider. Default false.
categories
array
Exact set of categories to redact; replaces the level preset when given.
minDigitRun
integer
Also redact every run of at least this many digits (spaces, dots and hyphens between digits count as part of the run). This is the number of digits, not the numeric value.
Input schema (JSON)
{
"type": "object",
"required": [
"text"
],
"properties": {
"keep": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 200,
"description": "Strings that must never be redacted, such as your own email address or company name. Case-insensitive, whole match."
},
"text": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "The document text to redact (plain text, Markdown, CSV, JSON or HTML source)."
},
"level": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Cumulative preset, default 1. 1: government identifiers (SSN, ITIN, EIN, UK NINO, Canadian SIN, driver's license, passport); 2: level 1 plus dates of birth; 3: level 2 plus street addresses and phone numbers; 4: level 3 plus person names and email addresses."
},
"style": {
"enum": [
"label",
"generic",
"numbered",
"last4"
],
"type": "string",
"description": "label (default): [REDACTED:SSN]. generic: [REDACTED]. numbered: [PERSON_1], same value same number. last4: [REDACTED:SSN:*6789] for numeric identifiers; this discloses the last four characters."
},
"terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 200,
"description": "Words or phrases to redact wherever they appear (business names, project names, people you already know). Case-insensitive."
},
"exclude": {
"type": "array",
"items": {
"enum": [
"ssn",
"itin",
"ein",
"nino",
"sin",
"drivers_license",
"passport",
"date_of_birth",
"address",
"phone",
"person_name",
"email",
"credit_card",
"iban",
"routing_number",
"account_number",
"ip_address",
"url",
"date",
"organization"
],
"type": "string"
},
"maxItems": 20,
"description": "Categories to remove from the level preset."
},
"include": {
"type": "array",
"items": {
"enum": [
"ssn",
"itin",
"ein",
"nino",
"sin",
"drivers_license",
"passport",
"date_of_birth",
"address",
"phone",
"person_name",
"email",
"credit_card",
"iban",
"routing_number",
"account_number",
"ip_address",
"url",
"date",
"organization"
],
"type": "string"
},
"maxItems": 20,
"description": "Categories to add to the level preset."
},
"useModel": {
"type": "boolean",
"description": "Add a language-model pass for names, organizations and addresses (when those categories are on). Sends the text, up to 60000 characters, to the configured model provider. Default false."
},
"categories": {
"type": "array",
"items": {
"enum": [
"ssn",
"itin",
"ein",
"nino",
"sin",
"drivers_license",
"passport",
"date_of_birth",
"address",
"phone",
"person_name",
"email",
"credit_card",
"iban",
"routing_number",
"account_number",
"ip_address",
"url",
"date",
"organization"
],
"type": "string"
},
"maxItems": 20,
"description": "Exact set of categories to redact; replaces the level preset when given."
},
"minDigitRun": {
"type": "integer",
"maximum": 40,
"minimum": 4,
"description": "Also redact every run of at least this many digits (spaces, dots and hyphens between digits count as part of the run). This is the number of digits, not the numeric value."
}
},
"additionalProperties": false
}
checkSupport
boolean
Needs manuscript text (or latex, arxivId, pdfUrl). Spends one fast-tier model call to judge whether each cited abstract supports its citing sentence (at most 20 citations).
Input schema (JSON)
{
"type": "object",
"properties": {
"latex": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "LaTeX source with a thebibliography environment (\\bibitem) or embedded filecontents .bib; \\cite commands supply citation contexts and are checked against the entries."
},
"bibtex": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "BibTeX/BibLaTeX text (the contents of a .bib file)."
},
"pdfUrl": {
"type": "string",
"maxLength": 2000,
"minLength": 8,
"description": "Public PDF URL. Text extraction is best-effort (Word and Google Docs exports work best)."
},
"arxivId": {
"type": "string",
"maxLength": 80,
"minLength": 4,
"description": "arXiv id or URL; references are read from the ar5iv HTML (.ltx_bibitem), falling back to the PDF."
},
"manuscript": {
"type": "string",
"maxLength": 400000,
"minLength": 10,
"description": "Optional manuscript text (LaTeX or plain) that supplies citation contexts: \\cite keys, [n] numbers or Author (year) citations."
},
"references": {
"type": "string",
"maxLength": 200000,
"minLength": 10,
"description": "Plain-text reference list (numbered, blank-line separated, or one per line; APA, IEEE, Vancouver, Chicago)."
},
"identifiers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"maxItems": 150,
"minItems": 1,
"description": "Bare identifiers instead of a bibliography: up to 150 DOIs (bare, doi: or doi.org URL), arXiv ids or URLs, or PMIDs (bare, PMID: or PubMed URL), mixed freely. Each is resolved and checked for retraction, correction and a published version of record."
},
"checkSupport": {
"type": "boolean",
"description": "Needs manuscript text (or latex, arxivId, pdfUrl). Spends one fast-tier model call to judge whether each cited abstract supports its citing sentence (at most 20 citations)."
}
},
"additionalProperties": false
}
window_days
integer
Publication window ending today, 1 to 180 days (default 30). Proposed rules published earlier whose comment period is still open are also included.
Input schema (JSON)
{
"type": "object",
"properties": {
"focus": {
"enum": [
"operations",
"reporting",
"enforcement"
],
"type": "string",
"description": "Weights ranking and the impact assessment toward operations, reporting or enforcement."
},
"terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"minLength": 2
},
"maxItems": 5,
"description": "Federal Register search phrases, e.g. \"data breach notification\"."
},
"agencies": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"maxItems": 5,
"description": "Agency names, acronyms or Federal Register slugs, e.g. \"SEC\", \"Environmental Protection Agency\"."
},
"industry": {
"type": "string",
"maxLength": 400,
"minLength": 3,
"description": "Industry or topic, e.g. \"community banks offering consumer credit\". Used to plan searches and to judge impact."
},
"cfr_parts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 2
},
"maxItems": 5,
"description": "CFR parts, e.g. \"17 CFR 240\" or \"40 CFR 60\"."
},
"companies": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"maxItems": 5,
"description": "Company names, tickers or CIKs whose recent SEC filings (8-K items, 10-K/Q) to list."
},
"sic_codes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{4}$"
},
"maxItems": 5,
"description": "SIC codes; industry context only, registrants are not enumerated by SIC."
},
"window_days": {
"type": "integer",
"maximum": 180,
"minimum": 1,
"description": "Publication window ending today, 1 to 180 days (default 30). Proposed rules published earlier whose comment period is still open are also included."
}
},
"additionalProperties": false
}
retryAfter
string
Retry-After header value.
requestSent
string
Whether request bytes reached the network. connection-refused and dns-failure imply not-sent.
idempotencyKey
object
Caller-asserted evidence: the engine knows no vendor's key semantics.
previousAttemptWasAutomaticRetry
boolean
Input schema (JSON)
{
"type": "object",
"required": [
"method",
"ended"
],
"properties": {
"asOf": {
"type": "string",
"maxLength": 40,
"description": "RFC 3339 instant; needed only to turn a Retry-After HTTP-date into seconds."
},
"actor": {
"enum": [
"client",
"proxy"
],
"type": "string"
},
"ended": {
"enum": [
"response",
"timeout",
"connection-reset",
"connection-refused",
"dns-failure",
"tls-failure",
"aborted-by-client"
],
"type": "string",
"description": "How the attempt ended."
},
"method": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "HTTP method, case-sensitive (GET, POST, ...)."
},
"policy": {
"type": "object",
"properties": {
"maxAttempts": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"retryStatuses": {
"type": "array",
"items": {
"type": "integer",
"maximum": 599,
"minimum": 100
},
"maxItems": 50,
"description": "If given, only these statuses may be retried."
},
"maxWaitSeconds": {
"type": "integer",
"maximum": 31536000,
"minimum": 0
},
"notProcessedStatuses": {
"type": "array",
"items": {
"type": "integer",
"maximum": 599,
"minimum": 100
},
"maxItems": 50,
"description": "Statuses the vendor documents as 'rejected before processing'."
}
},
"additionalProperties": false
},
"status": {
"type": "integer",
"maximum": 599,
"minimum": 100,
"description": "Required when ended is 'response'."
},
"attempt": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "1-based number of the attempt that just ended. Default 1."
},
"automatic": {
"type": "boolean",
"description": "True when the retry would be issued automatically (library or proxy) rather than by a deliberate decision."
},
"retryAfter": {
"type": "string",
"maxLength": 100,
"description": "Retry-After header value."
},
"requestSent": {
"enum": [
"unknown",
"not-sent",
"sent"
],
"type": "string",
"description": "Whether request bytes reached the network. connection-refused and dns-failure imply not-sent."
},
"idempotencyKey": {
"type": "object",
"required": [
"present"
],
"properties": {
"present": {
"type": "boolean"
},
"serverHonors": {
"enum": [
"yes",
"no",
"unknown"
],
"type": "string",
"description": "Whether the provider documents that it deduplicates on this key for this operation."
}
},
"description": "Caller-asserted evidence: the engine knows no vendor's key semantics.",
"additionalProperties": false
},
"previousAttemptWasAutomaticRetry": {
"type": "boolean"
}
},
"additionalProperties": false
}
integer
HTTP status the robots.txt fetch ended with (after at most 5 redirects). Omit when robotsTxt is supplied and was a 2xx.
Input schema (JSON)
{
"type": "object",
"required": [
"userAgent",
"paths"
],
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2048
},
"maxItems": 25,
"minItems": 1,
"description": "Path plus optional query beginning with /, or a full http(s) URL (path and query are used)."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"value": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "Response headers of the page: X-Robots-Tag, tdm-reservation, tdm-policy."
},
"llmsTxt": {
"type": "string",
"maxLength": 200000
},
"purpose": {
"enum": [
"crawl",
"ai-training"
],
"type": "string",
"description": "ai-training also treats noai, noimageai and tdm-reservation: 1 as restrictions. Default crawl."
},
"metaTags": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"content"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"content": {
"type": "string",
"maxLength": 2000
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "HTML meta elements: robots, googlebot, tdm-reservation, tdm-policy."
},
"robotsTxt": {
"type": "string",
"maxLength": 512000,
"description": "robots.txt body, at most 512,000 UTF-8 bytes (500 KiB)."
},
"userAgent": {
"type": "string",
"pattern": "^[A-Za-z_-]+$",
"maxLength": 64,
"description": "Product token only (letters, underscore, hyphen), e.g. \"Googlebot\"; no version."
},
"fetchStatus": {
"type": "integer",
"maximum": 599,
"minimum": 100,
"description": "HTTP status the robots.txt fetch ended with (after at most 5 redirects). Omit when robotsTxt is supplied and was a 2xx."
}
},
"additionalProperties": false
}
termsText
string
Alternative to terms: the terms pasted as text, separated by commas, spaces or semicolons (for example copied from a spreadsheet, a paper or an OEIS data line).
description
string
Alternative to terms and formula: a plain-language description. A short description that names an entry (up to 4 content words, all in the entry name, e.g. Catalan numbers) is resolved by OEIS text search with no model; otherwise one fast model call proposes terms and keywords, which OEIS then confirms.
initialTerms
array
Seed values a(start), a(start+1), ... for a recurrence formula.
Input schema (JSON)
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"maximum": 60,
"minimum": 4,
"description": "How many terms to expand from the formula; default 20."
},
"start": {
"type": "integer",
"maximum": 1000,
"minimum": -100,
"description": "Index n of the first expanded term; default 0."
},
"terms": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string",
"pattern": "^[+-]?[0-9]{1,40}$"
}
]
},
"maxItems": 60,
"minItems": 4,
"description": "Integer terms, 4 to 60, each at most 40 digits. Pass values beyond 2^53 as decimal strings."
},
"aNumber": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Alternative to terms: an OEIS A-number (A000108) or oeis.org URL. The entry is fetched and its data searched for related sequences; returns its name, formulas and next terms."
},
"explain": {
"type": "boolean",
"description": "Ask a model for a one-sentence explanation drawn only from the matched OEIS entry; its quote is verified in code, otherwise the entry name is returned. Default false."
},
"formula": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Alternative to terms: a closed form in n such as \"binomial(2*n,n)/(n+1)\", or a recurrence such as \"a(n) = a(n-1) + a(n-2)\" (with initialTerms). Operators + - * / % ^, functions binomial fact abs gcd min max floor mod. Evaluated by a safe parser, never eval; every term must be an integer."
},
"termsText": {
"type": "string",
"maxLength": 4000,
"minLength": 4,
"description": "Alternative to terms: the terms pasted as text, separated by commas, spaces or semicolons (for example copied from a spreadsheet, a paper or an OEIS data line)."
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 3,
"description": "Alternative to terms and formula: a plain-language description. A short description that names an entry (up to 4 content words, all in the entry name, e.g. Catalan numbers) is resolved by OEIS text search with no model; otherwise one fast model call proposes terms and keywords, which OEIS then confirms."
},
"initialTerms": {
"type": "array",
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string",
"pattern": "^[+-]?[0-9]{1,40}$"
}
]
},
"maxItems": 20,
"description": "Seed values a(start), a(start+1), ... for a recurrence formula."
}
},
"additionalProperties": false
}
Input schema (JSON)
{
"type": "object",
"required": [
"settlement",
"tradeDate"
],
"properties": {
"weekend": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 0
},
"maxItems": 6,
"description": "Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend."
},
"calendar": {
"enum": [
"us-federal",
"us-federal-reserve",
"nyse",
"us-equities-settlement",
"uk-england-and-wales",
"uk-scotland",
"uk-northern-ireland",
"weekends-only",
"caller"
],
"type": "string",
"description": "Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list)."
},
"holidays": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxItems": 400,
"description": "Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."
},
"cycleDays": {
"type": "integer",
"maximum": 30,
"minimum": 0,
"description": "custom only."
},
"tradeDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"settlement": {
"enum": [
"us-equities",
"custom"
],
"type": "string",
"description": "us-equities: T+1 since 2024-05-28 on the us-equities-settlement calendar (2026-2028). custom: cycleDays on calendar/holidays/weekend."
},
"claimedSettlementDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
}
},
"additionalProperties": false
}
{
"type": "object",
"properties": {
"ir": {
"type": "object",
"description": "Formal IR, solved with zero LLM calls: {variables:[{name,type:bool|int|real,min?,max?}], constraints:[{id,expr,source?}], query:{mode:possible|always|consistency,formula?,source?}}. Expressions are JSON ASTs: {op:\"var\",name}, {op:\"num\",value:\"3/4\"}, {op:\"true\"|\"false\"}, and {op,args} for not, and, or, implies, iff, ite, =, !=, <, <=, >, >=, add, sub, neg, mul (one side constant). Numbers are exact strings."
},
"text": {
"type": "string",
"maxLength": 60000,
"minLength": 3,
"description": "Alternative to clauses: the contract, policy or rules pasted as plain text. It is split into clauses by blank lines and numbered or bulleted lines (ids C1.2 or S3). Use clauses when you need your own ids. Requires query."
},
"query": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The question, e.g. \"Can an unauthorized user ever approve a payout over $10,000?\" or \"Are any clauses mutually contradictory?\". Required with clauses."
},
"budget": {
"type": "object",
"properties": {
"maxWork": {
"type": "integer",
"maximum": 40000000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 40000000)."
},
"maxMillis": {
"type": "integer",
"maximum": 25000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 25000)."
},
"maxPivots": {
"type": "integer",
"maximum": 2000000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 2000000)."
},
"maxSolves": {
"type": "integer",
"maximum": 2000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 2000)."
},
"maxSplits": {
"type": "integer",
"maximum": 5000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 5000)."
},
"maxConflicts": {
"type": "integer",
"maximum": 300000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 300000)."
},
"maxPropagations": {
"type": "integer",
"maximum": 60000000,
"minimum": 1,
"description": "Lower this step budget (default and hard cap 60000000)."
}
},
"description": "Optional lower step budgets.",
"additionalProperties": false
},
"clauses": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"text": {
"type": "string",
"maxLength": 4000,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1,
"description": "Natural-language contract clauses, IAM/OPA policy statements or business rules, each with a caller-chosen id. Mutually exclusive with ir."
}
},
"additionalProperties": false
}
allowLicenseRefs
array
LicenseRef-* ids the caller has reviewed; other refs yield unknown.
requireOsiApproved
boolean
Fail licenses without isOsiApproved in the SPDX list.
Input schema (JSON)
{
"type": "object",
"required": [
"expressions"
],
"properties": {
"deny": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"description": "SPDX ids that always fail."
},
"allow": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 200,
"description": "If non-empty, only these SPDX ids pass (GPL-2.0-only and GPL-2.0 are the same entry; GPL-2.0+ means or-later and must be listed as such)."
},
"expressions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 50,
"minItems": 1,
"description": "SPDX expressions, e.g. 'MIT OR (GPL-2.0-only WITH Classpath-exception-2.0)'."
},
"denyCopyleft": {
"enum": [
"none",
"strong",
"any"
],
"type": "string",
"description": "Id-family heuristic: strong = GPL/AGPL/SSPL/EUPL/OSL/CC-BY-SA; any adds LGPL/MPL/EPL/CDDL and similar."
},
"allowDeprecated": {
"type": "boolean",
"description": "Default true: deprecated ids only add a witness. false: they fail."
},
"allowExceptions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 100,
"description": "If non-empty, only these WITH exception ids pass."
},
"requireFsfLibre": {
"type": "boolean",
"description": "Fail licenses without isFsfLibre in the SPDX list."
},
"allowLicenseRefs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100
},
"maxItems": 100,
"description": "LicenseRef-* ids the caller has reviewed; other refs yield unknown."
},
"requireOsiApproved": {
"type": "boolean",
"description": "Fail licenses without isOsiApproved in the SPDX list."
}
},
"additionalProperties": false
}
integer
reserve: amount to hold. commit: amount actually spent (at most the hold).
budgetMinor
integer
open: total budget in minor units.
reservationId
string
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"ledger"
],
"properties": {
"op": {
"enum": [
"open",
"reserve",
"commit",
"release",
"status"
],
"type": "string"
},
"ledger": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "Ledger name, e.g. task:research-42."
},
"currency": {
"type": "string",
"pattern": "^[A-Z0-9]{2,12}$",
"description": "open: currency or token code, e.g. USD or USDC."
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
},
"ttlSeconds": {
"type": "integer",
"maximum": 86400,
"minimum": 1,
"description": "reserve: hold lifetime; default 600."
},
"amountMinor": {
"type": "integer",
"maximum": 1000000000000000,
"minimum": 0,
"description": "reserve: amount to hold. commit: amount actually spent (at most the hold)."
},
"budgetMinor": {
"type": "integer",
"maximum": 1000000000000000,
"minimum": 0,
"description": "open: total budget in minor units."
},
"reservationId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$"
}
},
"additionalProperties": false
}
{
"type": "object",
"properties": {
"code": {
"type": "string",
"maxLength": 200000,
"description": "Source code of a state machine, protocol, or concurrent routine; translated to a spec by an LLM, with each transition carrying its verbatim source span."
},
"spec": {
"type": "object",
"description": "Formal spec (zero LLM calls). {vars:{name:{type:'bool'|'int'|'enum'|'array',min,max,values,size|keys,of,init}}, processes:[{name,instances?,fairness?:'none'|'weak'|'strong',transitions:[{name,guard?,updates:[{var,at?,value}]}]}], initWhere?, terminal?, progress?, invariants:[{name,expr}], liveness:[{name,kind:'eventually'|'alwaysEventually'|'leadsTo',p,q?}]}. Expressions are JSON nodes ({var,at?}, {sym}, {param}, {op,args}, forall/exists) or infix strings such as \"pc[self] == wait && !flag[1 - self]\"; nothing is evaluated as code."
},
"options": {
"type": "object",
"properties": {
"explain": {
"type": "boolean",
"description": "Add a plain-language explanation of the computed result (property verdicts, counterexample steps, final state), built from the result itself with no model call. Default false."
},
"deadlock": {
"type": "boolean",
"description": "Report deadlocks (non-terminal states with no enabled transition). Default true."
},
"livelock": {
"type": "boolean",
"description": "Report fair cycles that never reach a progress or terminal state; needs a progress or terminal predicate. Default true when the spec has a progress predicate."
},
"maxMillis": {
"type": "integer",
"maximum": 20000,
"minimum": 1,
"description": "Total wall-clock budget in ms for exploration plus liveness analysis (default 8000). On description/code input the three budgets are split evenly between the two translated models."
},
"maxStates": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "State budget (default 100000)."
},
"maxTransitions": {
"type": "integer",
"maximum": 500000,
"minimum": 1,
"description": "Transition budget (default 500000)."
}
},
"additionalProperties": false
},
"properties": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 20,
"description": "Properties to check, in plain language (with description or code only)."
},
"description": {
"type": "string",
"maxLength": 30000,
"description": "Natural-language workflow or protocol; translated to a spec by an LLM, with each transition quoted from the text."
}
},
"additionalProperties": false
}
releasedOn*
string
freeCounting*
string
chargeCounting*
string
Whether chargeable days skip weekends/holidays.
receiptDayCounts*
boolean
Whether the day of receipt is day 1.
releaseDayCounts*
boolean
Whether the release day is counted.
claimedChargeMinor
integer
Input schema (JSON)
{
"type": "object",
"required": [
"receivedOn",
"releasedOn",
"receiptDayCounts",
"releaseDayCounts",
"freeDays",
"freeCounting",
"chargeCounting",
"tiers",
"currency"
],
"properties": {
"tiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"fromDay",
"rateMinor"
],
"properties": {
"fromDay": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"description": "Chargeable day number (1 = first day after free time) at which this rate starts; the first tier must start at 1."
},
"rateMinor": {
"type": "integer",
"maximum": 1000000000,
"minimum": 0,
"description": "Charge per day in minor units (cents)."
}
}
},
"maxItems": 20,
"minItems": 1
},
"weekend": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 0
},
"maxItems": 6,
"description": "Non-business weekdays, 0=Sunday..6=Saturday. Default [0, 6]; use [5, 6] for a Friday/Saturday weekend."
},
"calendar": {
"enum": [
"us-federal",
"us-federal-reserve",
"nyse",
"us-equities-settlement",
"uk-england-and-wales",
"uk-scotland",
"uk-northern-ireland",
"weekends-only",
"caller"
],
"type": "string",
"description": "Named holiday calendar with a source and supported date range (outside it the answer is unsupported), weekends-only (Saturday/Sunday only), or caller (only the holidays you list)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"maxLength": 3
},
"freeDays": {
"type": "integer",
"maximum": 3650,
"minimum": 0
},
"holidays": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"maxItems": 400,
"description": "Extra non-business dates YYYY-MM-DD (company closures, a calendar we do not carry)."
},
"receivedOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"releasedOn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"maxLength": 10
},
"freeCounting": {
"enum": [
"calendar",
"business"
],
"type": "string"
},
"chargeCounting": {
"enum": [
"calendar",
"business"
],
"type": "string",
"description": "Whether chargeable days skip weekends/holidays."
},
"receiptDayCounts": {
"type": "boolean",
"description": "Whether the day of receipt is day 1."
},
"releaseDayCounts": {
"type": "boolean",
"description": "Whether the release day is counted."
},
"claimedChargeMinor": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
productDescription
string
Construction, dimensions, how it works, packaging.
Exit codes of repeated runs of the same tests, to detect flakiness. Interpreted with the same runner rules.
Input schema (JSON)
{
"type": "object",
"required": [
"runner"
],
"properties": {
"flags": {
"type": "object",
"properties": {
"failZero": {
"type": "boolean"
},
"posixExitCodes": {
"type": "boolean"
},
"passWithNoTests": {
"type": "boolean"
}
},
"additionalProperties": false
},
"counts": {
"type": "object",
"properties": {
"todo": {
"type": "integer",
"maximum": 10000000,
"minimum": 0
},
"flaky": {
"type": "integer",
"maximum": 10000000,
"minimum": 0,
"description": "Tests that failed then passed on retry."
},
"total": {
"type": "integer",
"maximum": 10000000,
"minimum": 0
},
"failed": {
"type": "integer",
"maximum": 10000000,
"minimum": 0
},
"passed": {
"type": "integer",
"maximum": 10000000,
"minimum": 0
},
"skipped": {
"type": "integer",
"maximum": 10000000,
"minimum": 0
}
},
"description": "Counts parsed by the caller from the runner's own report.",
"additionalProperties": false
},
"output": {
"type": "string",
"maxLength": 50000,
"description": "go test output (only ok, FAIL, --- FAIL and panic: lines are read)."
},
"runner": {
"enum": [
"pytest",
"jest",
"vitest",
"node-test",
"go-test",
"cargo-test",
"mocha"
],
"type": "string"
},
"signal": {
"type": "string",
"maxLength": 20,
"description": "Terminating signal name, e.g. SIGKILL."
},
"version": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]+){0,2}$",
"maxLength": 30,
"description": "Runner version, e.g. 10.4.0. Needed only for version-gated flags."
},
"exitCode": {
"type": "integer",
"maximum": 255,
"minimum": 0,
"description": "Process exit status. Omit when the process was killed by a signal or timed out."
},
"timedOut": {
"type": "boolean",
"description": "True when the harness gave up waiting."
},
"attemptExitCodes": {
"type": "array",
"items": {
"type": "integer",
"maximum": 255,
"minimum": 0
},
"maxItems": 20,
"minItems": 2,
"description": "Exit codes of repeated runs of the same tests, to detect flakiness. Interpreted with the same runner rules."
}
},
"additionalProperties": false
}
*
number
Input schema (JSON)
{
"type": "object",
"required": [
"op",
"bucket",
"capacity",
"refillPerSecond"
],
"properties": {
"op": {
"enum": [
"take",
"peek"
],
"type": "string"
},
"cost": {
"type": "number",
"maximum": 1000000,
"minimum": 0.000001,
"description": "Tokens to spend; default 1."
},
"bucket": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:/@+-]{1,200}$",
"description": "Bucket name, e.g. openai:org-123:rpm."
},
"capacity": {
"type": "number",
"maximum": 1000000,
"minimum": 1
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespaced as key:<tenantId>; keep it unguessable). Ignored when a wallet paid: the payer address is the tenant."
},
"requestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,128}$",
"description": "Caller-chosen id for this mutation. A retry with the same id and same input returns the stored response (24 h) instead of applying twice; the same id with different input is rejected. Send one on every mutation you may retry: without it a retry is applied again (fleet-memory record appends a duplicate; a repeated spend-ledger commit or release answers NO_HOLD because the first call already took effect)."
},
"refillPerSecond": {
"type": "number",
"maximum": 1000000,
"minimum": 0.000001
}
},
"additionalProperties": false
}
identifierPolicy
string
Default ascii-only: any non-ASCII identifier is flagged (USC019).
permittedScripts
array
Used with permitted-scripts. Default Latin, Common, Inherited.
Input schema (JSON)
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"maxLength": 200,
"description": "Branch, tag or commit for repo; defaults to the default branch."
},
"diff": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "Unified diff (git diff output). Only added lines are scanned; findings carry new-file line numbers."
},
"repo": {
"type": "string",
"maxLength": 200,
"minLength": 3,
"description": "Alternative to files and diff: a public GitHub repository, owner/repo or https://github.com/owner/repo[/tree/ref]. Read from its source archive; files are scanned shallowest first up to the character cap and the rest are listed as skipped."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Repository-relative path; its extension selects the language and the file risk level."
},
"content": {
"type": "string",
"maxLength": 1000000
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1,
"description": "Files to scan in full. Provide exactly one of files, diff, repo or prUrl; total content is capped at 1000000 characters."
},
"prUrl": {
"type": "string",
"maxLength": 300,
"minLength": 20,
"description": "Alternative to files and diff: a public GitHub pull request, commit or compare URL. Only added lines are scanned."
},
"scanExcluded": {
"type": "boolean",
"description": "Also scan paths the upstream scanner skips (node_modules/, vendor/, dist/, build/, .lock, .min.js, images, archives). Default false."
},
"identifierPolicy": {
"enum": [
"ascii-only",
"permitted-scripts"
],
"type": "string",
"description": "Default ascii-only: any non-ASCII identifier is flagged (USC019)."
},
"permittedScripts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 40,
"description": "Used with permitted-scripts. Default Latin, Common, Inherited."
}
},
"additionalProperties": false
}
pattern
object
Exact (case- and whitespace-insensitive) match on any of subject, predicate, object.
tenantId
string
Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid.
Input schema (JSON)
{
"type": "object",
"required": [
"op"
],
"properties": {
"op": {
"enum": [
"remember",
"recall",
"forget",
"explain"
],
"type": "string"
},
"asOf": {
"anyOf": [
{
"type": "integer",
"maximum": 8640000000000000,
"minimum": 0
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Epoch milliseconds or an ISO 8601 date/time (UTC when no offset)."
},
"said": {
"type": "string",
"pattern": "^E[A-Za-z0-9_-]{43}$"
},
"text": {
"type": "string",
"maxLength": 8000,
"description": "remember: free text; facts are extracted by a fast model and kept only if subject and object occur verbatim."
},
"facts": {
"type": "array",
"items": {
"type": "object",
"required": [
"subject",
"predicate",
"object"
],
"properties": {
"object": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"source": {
"type": "string",
"maxLength": 500
},
"subject": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"validTo": {
"anyOf": [
{
"type": "integer",
"maximum": 8640000000000000,
"minimum": 0
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Epoch milliseconds or an ISO 8601 date/time (UTC when no offset)."
},
"predicate": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Single-valued slot per subject, e.g. lives_in; a newer fact supersedes the older."
},
"validFrom": {
"anyOf": [
{
"type": "integer",
"maximum": 8640000000000000,
"minimum": 0
},
{
"type": "string",
"maxLength": 40
}
],
"description": "Epoch milliseconds or an ISO 8601 date/time (UTC when no offset)."
}
},
"additionalProperties": false
},
"maxItems": 50
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 500
},
"source": {
"type": "string",
"maxLength": 500,
"description": "remember: provenance label for facts extracted from text."
},
"history": {
"enum": [
"current",
"all"
],
"type": "string",
"description": "recall: only facts current at asOf (default) or every status."
},
"pattern": {
"type": "object",
"properties": {
"object": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"subject": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"predicate": {
"type": "string",
"maxLength": 500,
"minLength": 1
}
},
"description": "Exact (case- and whitespace-insensitive) match on any of subject, predicate, object.",
"additionalProperties": false
},
"tenantId": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$",
"description": "Required for API-key callers (namespace as key:<tenantId>; keep it unguessable). Ignored when a wallet paid."
}
},
"additionalProperties": false
}
toleranceSeconds
integer
Max allowed |now - signed timestamp|. Default 300s.
Input schema (JSON)
{
"type": "object",
"required": [
"source",
"secret",
"rawBody",
"headers"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"description": "Full request URL. Required for Twilio, ignored elsewhere."
},
"nowIso": {
"type": "string",
"maxLength": 40,
"description": "Override 'now' for deterministic tests; ISO-8601 instant."
},
"secret": {
"type": "string",
"maxLength": 500,
"description": "The signing secret; for Clerk/Svix a 'whsec_<base64>' value is accepted."
},
"source": {
"enum": [
"stripe",
"github",
"shopify",
"slack",
"twilio",
"linear",
"clerk",
"sendgrid-hmac"
],
"type": "string"
},
"headers": {
"type": "object",
"description": "Request headers as sent by the provider (string values). Names are case-insensitive."
},
"rawBody": {
"type": "string",
"maxLength": 2000000,
"description": "The exact request body bytes as a string. Reparsed JSON will not match; send the raw bytes."
},
"formParams": {
"type": "object",
"description": "Form parameters parsed from a Twilio POST (string values); order does not matter."
},
"toleranceSeconds": {
"type": "integer",
"description": "Max allowed |now - signed timestamp|. Default 300s."
}
},
"additionalProperties": false
}