{"service":"wever-agent-migration-checks-v1","category":"Agent Migration","family":"Agent Migration","page":"https://weverlabs.com/agent-migration/","tools":{"wever_migration-scope-check":{"path":"/api/migration-scope-check","kind":"check","receipt_type":"wever.migration-scope-check.v1","schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"migration":{"type":"object","additionalProperties":false,"required":[],"properties":{"source":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The service, platform, model or provider the agent or its work moves from."},"target":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The service, platform, model or provider it moves to."},"kind":{"enum":["platform","model","provider","service","host","framework","other"],"description":"A platform, a model, a provider, a service, a host, a framework or other."}}},"scope_statement":{"type":"string","minLength":1,"maxLength":20000,"pattern":"\\S","description":"The plan’s scope as written, read for wording such as everything or the whole account."},"assets":{"type":"array","minItems":0,"maxItems":500,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"An asset the plan names, such as the customer records or the signing key."},"class":{"enum":["data","memory","tools","identity","credentials","funds","history","settings","integrations","reputation","other"],"description":"Data, memory, tools, identity, credentials, funds, history, settings, integrations, reputation or other."},"disposition":{"enum":["moving","staying","retiring","undecided"],"description":"Moving, staying behind, retiring with the source or undecided."},"exportable":{"type":"boolean","description":"The source can export it."},"route":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How it leaves the source, such as the account export or a key rotation."}}},"description":"Each asset the plan names, moving or staying."},"inventory":{"type":"array","minItems":0,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"An asset the source holds for the agent, as the source’s own record lists it."},"class":{"enum":["data","memory","tools","identity","credentials","funds","history","settings","integrations","reputation","other"]}}},"description":"What the source holds for the agent, to read the plan’s list against."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["migration","assets","classes","findings","fixes"],"verdicts":["migration_scope_unbounded","migration_scope_gaps","migration_scope_unverified","migration_scope_bounded"]},"wever_migration-export-check":{"path":"/api/migration-export-check","kind":"check","receipt_type":"wever.migration-export-check.v1","schema":{"type":"object","additionalProperties":false,"required":["items"],"properties":{"source_export":{"type":"object","additionalProperties":false,"required":[],"properties":{"presented_as":{"enum":["full","partial","sample"],"description":"How the export is described to the people relying on it: full, partial or a sample."},"format":{"enum":["json","jsonl","csv","sql_dump","parquet","xml","archive","pdf","html","proprietary","binary","other"],"description":"JSON, JSON lines, CSV, a SQL dump, Parquet, XML, an archive, PDF, HTML, a proprietary format, binary or other."},"readable_by":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"The tools or target systems known to read the format."},"taken_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the export was taken."}}},"items":{"type":"array","minItems":1,"maxItems":500,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"An item the plan lists as moving, or one the export holds."},"planned":{"type":"boolean","description":"The plan lists it as moving; true when left out."},"in_export":{"type":"boolean","description":"The export contains it."},"source_count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many records the source’s own record holds for it."},"export_count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many records the export holds for it."},"format":{"enum":["json","jsonl","csv","sql_dump","parquet","xml","archive","pdf","html","proprietary","binary","other"],"description":"Its format when it differs from the export’s."}}},"description":"Each item the plan lists as moving, with what the export holds."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["source_export","items","counts","findings","fixes"],"verdicts":["source_export_incomplete","source_export_gaps","source_export_unverified","source_export_complete"]},"wever_migration-mapping-check":{"path":"/api/migration-mapping-check","kind":"check","receipt_type":"wever.migration-mapping-check.v1","schema":{"type":"object","additionalProperties":false,"required":["mappings"],"properties":{"mappings":{"type":"array","minItems":1,"maxItems":2000,"items":{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The source field or concept, such as order_status or amount."},"target":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The target field it lands in; left out when it has none."},"disposition":{"enum":["mapped","merged","dropped","no_counterpart"],"description":"Mapped, merged into a target field with others, dropped, or with no counterpart on the target."},"named_in_plan":{"type":"boolean","description":"The plan names the drop or the missing counterpart."},"source_unit":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The unit, currency or time zone on the source, such as cents or USD."},"target_unit":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The unit, currency or time zone on the target."},"conversion":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How values are converted between the two units, such as divide by 100."},"source_values":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"The status or category values the source uses."},"target_values":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"The status or category values the target uses."},"value_map":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"to":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"}}},"description":"How each source value maps to a target value."},"source_type":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The source data type, such as datetime or string."},"target_type":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The target data type."}}},"description":"Each field or concept on the source with where it lands on the target."},"source_fields":{"type":"array","minItems":0,"maxItems":2000,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"Every field the source schema holds, to read for fields the mapping never mentions."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["mappings","drops","meaning_changes","findings","fixes"],"verdicts":["mapping_corrupts","mapping_gaps","mapping_unverified","mapping_faithful"]},"wever_migration-loss-check":{"path":"/api/migration-loss-check","kind":"check","receipt_type":"wever.migration-loss-check.v1","schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"losses":{"type":"array","minItems":0,"maxItems":500,"items":{"type":"object","additionalProperties":false,"required":["item"],"properties":{"item":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the move loses, such as two years of order history or the five-star rating."},"class":{"enum":["history","reputation","settings","integration","records","data","identity","funds","other"],"description":"History, reputation, settings, an integration, records, data, identity, funds or other."},"reason":{"enum":["no_equivalent","source_only","not_exported","by_choice","other"],"description":"No equivalent on the target, held only inside the source, not in the export, given up by choice or other."},"in_plan":{"type":"boolean","description":"The plan’s loss list names it."},"principal_told":{"type":"boolean","description":"The principal was told about it."},"told_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the principal was told."},"accepted":{"type":"boolean","description":"The principal accepted it."}}},"description":"Each loss the move causes."},"integrations":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"An integration the agent uses on the source."},"equivalent":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Its equivalent on the target; left out when there is none."}}},"description":"Each integration on the source, with its target equivalent."},"source_only":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"Records that exist only inside the source, such as platform reviews or an internal audit log."},"cutover_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the switch-over happens, to read when the principal was told against it."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["losses","classes","untracked","findings","fixes"],"verdicts":["losses_undisclosed","losses_gaps","losses_unverified","losses_disclosed"]},"wever_migration-cutover-check":{"path":"/api/migration-cutover-check","kind":"check","receipt_type":"wever.migration-cutover-check.v1","schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"cutover":{"type":"object","additionalProperties":false,"required":[],"properties":{"starts_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the switch-over starts."},"ends_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When it ends."},"downtime":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Expected downtime, such as 30 minutes or none."},"parallel_run":{"type":"boolean","description":"Both systems run during the switch."}}},"phases":{"type":"array","minItems":0,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["name","authority"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Such as freeze, copy, switch or settle."},"from":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the phase starts."},"to":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When it ends."},"authority":{"enum":["source","target","both","none"],"description":"Which system is the record of truth during the phase: the source, the target, both or neither."}}},"description":"Each phase of the switch-over with the system that is authoritative in it."},"in_flight":{"type":"array","minItems":0,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"enum":["payments","jobs","messages","webhooks","orders","other"],"description":"Payments, jobs, messages, webhooks, orders or other."},"handling":{"enum":["drain_before","replay_after","forward","pause","drop","none"],"description":"Drained before the switch, replayed after, forwarded, paused, dropped, or no plan."},"owner":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Who makes sure it happens."}}},"description":"What happens to each kind of work in flight during the switch."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["cutover","phases","in_flight","findings","fixes"],"verdicts":["cutover_unsafe","cutover_gaps","cutover_unverified","cutover_single_authority"]},"wever_migration-return-check":{"path":"/api/migration-return-check","kind":"check","receipt_type":"wever.migration-return-check.v1","schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"return_path":{"type":"object","additionalProperties":false,"required":[],"properties":{"presented_as":{"enum":["reversible","one_way"],"description":"How the plan presents the move: reversible or one way."},"exists":{"type":"boolean","description":"A way back to the source is written down."},"method":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How the agent moves back, such as restoring the source account from the export."},"window":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How long the way back stays open after cutover, such as 14 days."},"cost":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What returning costs, such as 40 USDC or a day of downtime."},"rehearsed":{"type":"boolean","description":"The return has been rehearsed."}}},"irreversible":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["item"],"properties":{"item":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"A step that cannot be undone, such as deleting the source account."},"kind":{"enum":["source_data_deleted","name_released","funds_spent","key_revoked","account_closed","contract_ended","other"],"description":"Source data deleted, a name or handle released, funds spent, a key revoked, an account closed, a contract ended or other."},"days_after_cutover":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Days after cutover it happens; 0 for at cutover."},"marked_permanent":{"type":"boolean","description":"The plan marks it as permanent."}}},"description":"Each step of the move that cannot be undone once it happens."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["return_path","window","irreversible","findings","fixes"],"verdicts":["return_path_closed","return_path_gaps","return_path_unverified","return_path_open"]},"wever_migration-verify-check":{"path":"/api/migration-verify-check","kind":"check","receipt_type":"wever.migration-verify-check.v1","schema":{"type":"object","additionalProperties":false,"required":["checks"],"properties":{"checks":{"type":"array","minItems":0,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"enum":["count","sample","balance","field_meaning","field_presence","loads","smoke_test","other"],"description":"A count, a sample, a balance, a field meaning spot-check, a field presence check, the target loads, a smoke test or other."},"item":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What it covers, such as orders or the treasury wallet."},"field":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The mapped field a field check reads."},"source_value":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the source holds."},"target_value":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the target holds."},"matched":{"type":"boolean","description":"The target matched the source."},"at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When it was run."}}},"description":"Each verification run after the move."},"items":{"type":"array","minItems":0,"maxItems":500,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"What moved, to read for items no comparison covers."},"mapped_fields":{"type":"array","minItems":0,"maxItems":2000,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"The mapped fields, to read for fields never spot-checked for meaning."},"source_deleted_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the source data was deleted, if it was."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["checks","coverage","timing","findings","fixes"],"verdicts":["post_move_unchecked","post_move_gaps","post_move_unverified","post_move_verified"]},"wever_migration-report-check":{"path":"/api/migration-report-check","kind":"check","receipt_type":"wever.migration-report-check.v1","schema":{"type":"object","additionalProperties":false,"required":["report"],"properties":{"report":{"type":"object","additionalProperties":false,"required":["headline"],"properties":{"title":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"audience":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The principal it is written for."},"headline":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the report says about the migration, as written."},"text":{"type":"string","minLength":1,"maxLength":20000,"pattern":"\\S","description":"The report text, read for wording that presents the move as complete and lossless."}}},"losses":{"type":"object","additionalProperties":false,"required":[],"properties":{"stated":{"type":"boolean","description":"The report states what the move lost."},"placement":{"enum":["beside_headline","later_section","appendix","separate_document"],"description":"Where it sits: beside the headline, in a later section, in an appendix or in a separate document."},"count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many the report names."}}},"dropped_fields":{"type":"object","additionalProperties":false,"required":[],"properties":{"stated":{"type":"boolean","description":"The report states the fields dropped in the mapping."},"placement":{"enum":["beside_headline","later_section","appendix","separate_document"],"description":"Where it sits: beside the headline, in a later section, in an appendix or in a separate document."},"count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many the report names."}}},"meaning_changes":{"type":"object","additionalProperties":false,"required":[],"properties":{"stated":{"type":"boolean","description":"The report states the fields whose meaning changed: units, currencies or status values."},"placement":{"enum":["beside_headline","later_section","appendix","separate_document"],"description":"Where it sits: beside the headline, in a later section, in an appendix or in a separate document."},"count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many the report names."}}},"unverified":{"type":"object","additionalProperties":false,"required":[],"properties":{"stated":{"type":"boolean","description":"The report states the areas not verified against the source."},"placement":{"enum":["beside_headline","later_section","appendix","separate_document"],"description":"Where it sits: beside the headline, in a later section, in an appendix or in a separate document."},"count":{"type":"integer","minimum":0,"maximum":1000000000,"description":"How many the report names."}}},"record":{"type":"object","additionalProperties":false,"required":[],"properties":{"losses":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Losses in the underlying records."},"dropped_fields":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Dropped fields."},"meaning_changes":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Fields whose meaning changed."},"unverified":{"type":"integer","minimum":0,"maximum":1000000000,"description":"Areas not verified against the source."}}},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["report","disclosures","record","findings","fixes"],"verdicts":["migration_smoothed_over","migration_disclosure_gaps","migration_disclosure_unverified","migration_disclosed"]}},"free_tools":{"endpoint":"https://weverlabs.com/mcp-free","output":"unsigned; the final line names the main /mcp tools","tools":{"wever_migration-snapshot":{"reads":"a migration name and a kind of move","returns":"the completeness checklist of a sound migration packet for that move, part by part, with the family check that reads each part"},"wever_migration-plan-sample":{"samples":"wever_migration-scope-check","reads":"an optional sample move","returns":"one worked sample migration plan done right beside a flawed one, both read by the family checks’ own reading, with each piece annotated with why it passes or fails"}}},"limits":{"all_supplied_text":"512 KB per call","report":"1 MB","max_request_bytes":3211264,"names":200,"assets":500,"inventory":1000,"items":500,"mappings":2000,"values":200,"losses":500,"integrations":200,"phases":50,"in_flight":50,"irreversible":200,"checks":1000},"material":"Each tool reads only the recorded migration material in the call: a migration plan with its assets and the source’s inventory, the export taken from the source with the plan’s items and counts, the field and concept mapping between source and target, the losses with the source integrations and source-only records, the cutover plan with its phases and the work in flight, the return path with the steps that cannot be undone, the post-move verification records, or the migration report written for the principal with the record behind it. No tool performs a migration or moves any data. Every status, match and verdict is decided from that material; the report makes no network request or fetch, contacts no agent, service or counterparty, moves no money or data, writes nothing outside the report and changes no configuration.","basis":"This report reads only the migration plans, source exports, field mappings, loss lists, cutover plans, return paths, verification records and migration reports in the material in the call, and decides every status, match and verdict from them.","related":{"identity_portability":"wever_identity-portability-check","reputation_portability":"wever_reputation-portability-check","handover":"wever_handover-check","rollback_path":"wever_rollback-path-check","kill_switch":"wever_kill-switch-check"},"pricing":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pricesAtomic":{"/api/migration-scope-check":"100000","/api/migration-export-check":"100000","/api/migration-mapping-check":"100000","/api/migration-loss-check":"100000","/api/migration-cutover-check":"100000","/api/migration-return-check":"100000","/api/migration-verify-check":"100000","/api/migration-report-check":"100000"},"x402Version":2,"scheme":"exact","freeTier":{"calls":10,"windowDays":30,"scope":"all_paid_endpoints","walletProofMaxAgeSeconds":300}},"wallet_proof":"Sign the exact JSON arguments and the tool route with X-Wever-Wallet-Proof. Retry an unchanged payment or wallet-proof request to recover its stored report.","signing":{"issuer":"https://weverlabs.com/api/agent-migration-contract","key_id":"wever-trust-20261001","public_jwk":{"crv":"Ed25519","x":"PG6bYTJfqh-Y7YEMzxNVhMsFkrO1XnX7djPUvNi9g_U","kty":"OKP"},"algorithm":"Ed25519","receipt_types":{"migration-scope-check":"wever.migration-scope-check.v1","migration-export-check":"wever.migration-export-check.v1","migration-mapping-check":"wever.migration-mapping-check.v1","migration-loss-check":"wever.migration-loss-check.v1","migration-cutover-check":"wever.migration-cutover-check.v1","migration-return-check":"wever.migration-return-check.v1","migration-verify-check":"wever.migration-verify-check.v1","migration-report-check":"wever.migration-report-check.v1"},"jwt_type":"wever-agent-migration+jwt","digest":"SHA-256 of UTF-8 JSON.stringify(report), preserving returned property order. Verify the JWS signature and the report_sha256 and subject_sha256 claims."}}