@zktx.io/sui-mcp 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -9
- package/dist/core/activity/sqliteActivityStoreSchema.js +2 -2
- package/dist/core/activity/sqliteActivityStoreTypes.js +9 -0
- package/dist/mcp-app/account.html +1 -1
- package/dist/mcp-app/chart.html +1 -1
- package/dist/mcp-app/connect.html +1 -1
- package/dist/mcp-app/disconnect.html +1 -1
- package/dist/mcp-app/receipt.html +1 -1
- package/dist/mcp-app/review.html +1 -1
- package/dist/mcp-app/settings.html +1 -1
- package/dist/runtime/runtimeTermination.js +3 -0
- package/docs/MCP_SETUP.md +76 -19
- package/package.json +1 -1
|
@@ -3627,7 +3627,7 @@ zebra
|
|
|
3627
3627
|
zero
|
|
3628
3628
|
zone
|
|
3629
3629
|
zoo`.split(`
|
|
3630
|
-
`)),Dv={0:`ED25519`,1:`Secp256k1`,2:`Secp256r1`,3:`MultiSig`,5:`ZkLogin`,6:`Passkey`},Ov=e=>Object.freeze(e());function kv(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}function Av(e){if(!kv(e))throw TypeError(`Uint8Array expected`)}function jv(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(e=>typeof e==`string`):t.every(e=>Number.isSafeInteger(e)):!1}function Mv(e){if(typeof e!=`function`)throw TypeError(`function expected`);return!0}function Nv(e,t){if(typeof t!=`string`)throw TypeError(`${e}: string expected`);return!0}function Pv(e,t=`number`){if(typeof e!=`number`)throw TypeError(`${t}: expected number, got ${typeof e}`);if(!Number.isSafeInteger(e))throw RangeError(`${t}: expected safe integer, got ${e}`)}function Fv(e,t){if(!jv(!1,t))throw TypeError(`${e}: array of numbers expected`)}var Iv=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Lv(e,t=e.length){let n=Array(t);for(let r=0;r<t;r++)n[r]=e[r];return n}var Rv=(()=>{try{let e=new TextDecoder;return e.decode(Uint8Array.of(65,48,43,127))===`A0+`?e:void 0}catch{return}})(),zv=8192;function Bv(e){let t=e.length;if(Rv!==void 0&&t>=12)return Rv.decode(e);if(t<=zv)return String.fromCharCode.apply(null,e);let n=``;for(let r=0;r<t;r+=zv)n+=String.fromCharCode.apply(null,e.subarray(r,r+zv));return n}function Vv(e){if(Pv(e),e<=0||e>8)throw RangeError(`radix2: bits should be in (0..8]`);let t=Iv[e]-1;return{encode:n=>{Av(n);let r=n.length,i=new Uint8Array(Math.ceil(r*8/e)),a=0,o=0,s=0;for(let c=0;c<r;)for(c+2<r?(a=a<<24|n[c]<<16|n[c+1]<<8|n[c+2],o+=24,c+=3):(a=(a<<8|n[c])&65535,o+=8,c++);o-=e,i[s++]=a>>o&t,!(o<e););return o>0&&(i[s]=a<<e-o&t),i},decode:t=>{let n=t.length,r=new Uint8Array(Math.floor(n*e/8)),i=0,a=0,o=0;for(let s=0;s<n;s++)for(i=(i<<e|t[s])&65535,a+=e;a>=8;a-=8)r[o++]=i>>a-8&255;if(i=i<<8-a&255,a>=e)throw Error(`Excess padding`);if(i>0)throw Error(`Non-zero padding: ${i}`);return r}}}function Hv(e,t){let n=e.length;if(n>128)throw Error(`alphabet: max 128 letters`);let r=new Uint8Array(n),i=new Int8Array(128).fill(-1);for(let t=0;t<n;t++){let n=e.charCodeAt(t);if(e.codePointAt(t)!==n||n>127)throw Error(`alphabet: single-char ASCII letters only`);r[t]=n,i[n]=t}if(t!==void 0)for(let e of Object.keys(t)){let n=e.charCodeAt(0),r=i[t[e].charCodeAt(0)];if(e.length!==1||n>127||r===void 0||r===-1)throw Error(`alphabet: invalid alias ${e}`);i[n]=r}return{encode:e=>{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++){let i=e[n],a=r[i];if(a===void 0)throw Error(`alphabet.encode: invalid digit ${i}`);t[n]=a}return Bv(t)},decode:t=>{Nv(`decode`,t);let n=t.length,r=new Uint8Array(n);for(let a=0;a<n;a++){let n=t.charCodeAt(a),o=n<128?i[n]:-1;if(o===-1)throw Error(`Unknown letter "${t[a]}". Allowed: ${e}`);r[a]=o}return r}}}function Uv(e){return Mv(e),function(...t){try{return e.apply(null,t)}catch{}}}var Wv=Hv(`qpzry9x8gf2tvdw0s3jn54khce6mua7l`),Gv=/^[\x21-\x60\x7b-\x7e]+$/;function Kv(e,t){for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);if(r<33||r>126)throw Error(`${e}: printable ASCII expected`)}}function qv(e){let t=e.length,n=new Uint8Array(t);for(let r=0;r<t;r++){let t=e[r];if(t<0||t>=32)throw Error(`alphabet.encode: invalid digit ${t}`);n[r]=t}return n}var Jv=[996825010,642813549,513874426,1027748829,705979059];function Yv(e){let t=e>>25,n=(e&33554431)<<5;for(let e=0;e<Jv.length;e++)(t>>e&1)==1&&(n^=Jv[e]);return n}function Xv(e,t,n=1){let r=e.length,i=1;for(let t=0;t<r;t++){let n=e.charCodeAt(t);if(n<33||n>126)throw Error(`Invalid prefix (${e})`);i=Yv(i)^n>>5}i=Yv(i);for(let t=0;t<r;t++)i=Yv(i)^e.charCodeAt(t)&31;for(let e of t)i=Yv(i)^e;for(let e=0;e<6;e++)i=Yv(i);i^=n;let a=new Uint8Array(6);for(let e=0;e<6;e++)a[e]=i>>>5*(5-e)&31;return Wv.encode(a)}function Zv(e){let t=e===`bech32`?1:734539939,n=Vv(5),r=e=>{Av(e);let t=e.length,n=Array(Math.ceil(t*8/5)),r=0,i=0,a=0;for(let o=0;o<t;o++)for(r=r<<8|e[o],i+=8;i>=5;i-=5)n[a++]=r>>i-5&31;return i>0&&(n[a]=r<<5-i&31),n},i=e=>{Fv(`radix2.decode`,e);let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++){let t=e[n];if(t<0||t>=32)throw Error(`convertRadix2: invalid word=${t}`);r[n]=t}return n.decode(r)},a=Uv(i);function o(e,n,r=90){Nv(`bech32.encode prefix`,e),r!==!1&&Pv(r,`limit`),kv(n)&&(n=Lv(n)),Fv(`bech32.encode`,n);let i=e.length;if(i===0)throw TypeError(`Invalid prefix length ${i}`);let a=i+7+n.length;if(r!==!1&&a>r)throw TypeError(`Length ${a} exceeds limit ${r}`);Kv(`bech32.encode prefix`,e);let o=e.toLowerCase(),s=Xv(o,n,t);return`${o}1${Wv.encode(qv(n))}${s}`}function s(e,n=90){Nv(`bech32.decode input`,e),n!==!1&&Pv(n,`limit`);let r=e.length;if(r<8||n!==!1&&r>n)throw TypeError(`invalid string length ${r}, expected (8..${n})`);let i=e.toLowerCase();if(e!==i&&!Gv.test(e))throw Kv(`bech32.decode input`,e),Error(`mixed-case string not allowed`);let a=i.lastIndexOf(`1`);if(a===0||a===-1)throw Error(`invalid separator "1"`);let o=i.slice(0,a),s=i.slice(a+1);if(s.length<6)throw Error(`invalid data length`);let c=Wv.decode(s),l=Lv(c,c.length-6),u=Xv(o,l,t);if(!s.endsWith(u))throw Error(`Invalid checksum in ${e}`);return{prefix:o,words:l}}let c=Uv(s);function l(e,t=90){let{prefix:n,words:r}=s(e,t);return{prefix:n,words:r,bytes:i(r)}}function u(e,t){return o(e,r(t))}return{encode:o,decode:s,encodeFromBytes:u,decodeToBytes:l,decodeUnsafe:c,fromWords:i,fromWordsUnsafe:a,toWords:r}}var Qv=Ov(()=>Zv(`bech32`));function $v(e){let{prefix:t,words:n}=Qv.decode(e);if(t!==`suiprivkey`)throw Error(`invalid private key prefix`);let r=new Uint8Array(Qv.fromWords(n)),i=r.slice(1);return{scheme:Dv[r[0]],secretKey:i}}var ey=`external-proposal-alpha-2026-05-25`,ty=`proposal-review-model-alpha-2026-05-25`,ny=L().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),ry=/transaction\s*bytes?|transactionBytes|tx\s*bytes?|serialized\s*transaction|serializedTransaction|signed\s*transaction|signing\s*request|signingRequest|wallet\s*authorization|walletAuthorization|private\s*key|privateKey|secret\s*key|secretKey|seed\s*phrase|mnemonic|suiprivkey|signature|route[-_\s]*selected|routeSelectedPlan|bcs\s*transaction|programmable\s*transaction/i,iy=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/,ay=/suiprivkey1[023456789acdefghjklmnpqrstuvwxyz]+/gi,oy=/(^|[^0-9a-fA-F])(?:0x)?[0-9a-fA-F]{64}($|[^0-9a-fA-F])/,sy=/(^|[^A-Za-z0-9+/_=-])(?:[A-Za-z0-9+/]{43}=|[A-Za-z0-9+/]{44}|[A-Za-z0-9_-]{43,44})($|[^A-Za-z0-9+/_=-])/,cy=/^(?:0|[1-9][0-9]*)(?:\.[0-9]+)?$/,ly=[12,15,18,21,24];function uy(e,t,n={}){return L().min(1).max(e).superRefine((e,r)=>{(ry.test(e)||iy.test(e)||fy(e)||py(e)||!n.allowRawSecretLikeText&&my(e))&&r.addIssue({code:`custom`,message:`${t} must not contain executable, signing, private-key, mnemonic, route-selected, or encoded secret-like material`})})}function dy(e,t){return uy(e,t,{allowRawSecretLikeText:!0})}function fy(e){return(e.match(ay)??[]).some(e=>{try{return $v(e.toLowerCase()),!0}catch{return e.toLowerCase().startsWith(`suiprivkey1`)}})}function py(e){let t=e.normalize(`NFKD`).toLowerCase().replace(/[^a-z]+/g,` `).trim().split(/\s+/).filter(Boolean);for(let e of ly)if(!(t.length<e)){for(let n=0;n<=t.length-e;n+=1)if(Tv(t.slice(n,n+e).join(` `),Ev))return!0}return!1}function my(e){return oy.test(e)||sy.test(e)}var hy=uy(80,`amountDisplay`).refine(e=>cy.test(e)&&/[1-9]/.test(e),{message:`Expected a positive decimal display amount`}),gy=H({kind:K([`mcp_server`,`ai_client`,`user`,`other`]),name:uy(120,`source.name`),reference:uy(256,`source.reference`).optional()}).strict(),_y=H({address:y_.optional(),label:uy(120,`party.label`).optional()}).strict().refine(e=>e.address!==void 0||e.label!==void 0,{message:`Expected address or label`}),vy=H({amountDisplay:hy,amountKind:q(`display_proposal`).default(`display_proposal`),symbol:uy(64,`amount.symbol`).optional(),coinType:dy(512,`amount.coinType`).optional(),denomination:uy(64,`amount.denomination`).optional()}).strict(),yy=H({packageId:dy(128,`action.target.packageId`).optional(),module:uy(128,`action.target.module`).optional(),function:uy(128,`action.target.function`).optional(),objectId:dy(128,`action.target.objectId`).optional(),label:uy(120,`action.target.label`).optional()}).strict().refine(e=>e.packageId!==void 0||e.module!==void 0||e.function!==void 0||e.objectId!==void 0||e.label!==void 0,{message:`Expected at least one action target field`}),by=H({direction:K([`outgoing`,`expected_incoming`,`fee`]),amount:vy,recipient:_y.optional(),description:uy(512,`assetFlow.description`).optional()}).strict(),xy=H({id:uy(120,`proposal.id`),source:gy,network:q(`sui:mainnet`),createdAt:ny,expiresAt:ny.optional(),purpose:uy(512,`purpose`),assumptions:V(uy(512,`assumptions[]`)).max(20).optional(),requiredUserChoices:V(uy(512,`requiredUserChoices[]`)).max(20).optional()}).strict(),Sy=Sc(`type`,[xy.extend({type:q(`payment`),payment:H({amount:vy,recipient:_y,target:uy(512,`payment.target`).optional()}).strict()}).strict(),xy.extend({type:q(`sui_action`),action:H({actionKind:uy(120,`action.actionKind`),target:yy,recipient:_y.optional(),assetFlow:V(by).max(20).optional()}).strict()}).strict()]),Cy=H({id:L(),label:L(),status:K([`pass`,`warning`,`fail`]),message:L(),source:K([`proposal`,`adapter`,`registry`,`quote`,`wallet`,`simulation`,`network`])}).strict(),wy=H({id:L(),label:L(),reason:L()}).strict(),Ty=H({modelVersion:q(ty),contractVersion:q(ey),proposalId:L(),proposalType:K([`payment`,`sui_action`]),proposalSource:gy,proposedAction:H({kind:K([`payment`,`sui_action`]),title:L(),purpose:L(),network:q(`sui:mainnet`),recipient:_y.optional(),target:W([L(),yy]).optional()}).strict(),assetFlow:H({outgoing:V(vy),expectedIncoming:V(vy),fees:V(vy)}).strict(),recipients:V(_y),targets:V(W([L(),yy])),evidenceUsed:V(H({id:L(),label:L(),source:K([`external_proposal`,`local_schema`]),summary:L()}).strict()),missingEvidence:V(wy),requiredUserChoices:V(wy),unsupportedClaims:V(H({id:L(),label:L(),reason:L()}).strict()),rejectedExecutableFields:V(H({fieldName:L(),reason:L()}).strict()),freshness:H({proposalCreatedAt:ny,proposalExpiresAt:ny.optional(),evaluatedAt:ny,status:K([`current`,`expired`,`created_in_future`,`expiry_not_provided`]),reason:L()}).strict(),blockingChecks:V(Cy),nonSignableReason:H({code:q(`external_proposal_review_only`),message:L(),blockedCapabilities:V(L())}).strict()}).strict();H({requestedIntent:Sy,implementationStatus:q(`read_only_review_only`),contractVersion:q(ey)}).strict();var Ey=[`adapter_not_implemented`,`producer_stage_missing`,`wallet_review_contract_emit_missing`,`network_mismatch`,`insufficient_balance`,`insufficient_gas`,`allowlist_violation`,`asset_mismatch`,`amount_mismatch`,`wallet_mismatch`,`unsupported_action`,`object_resolution_failed`,`proposal_review_only`],Dy=[`review_evidence_stale`,`quote_stale`,`quote_unavailable`,`simulation_transient_failure`,`review_update_failed`,`wallet_connection_changed`],Oy=[`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`],ky=[`humanReadableReview`,`simulation`,`transactionReviewData`,`ptbVisualization`,`assetFlowActual`,`beforeAfterBalance`],Ay=K([`client.core.simulateTransaction`,`client.transactionExecutionService.simulateTransaction`]),jy=`ptb-visualization-contract-alpha-2026-05-25`,My=[`proposedAction`,`assetFlow`,`recipients`,`targets`,`evidenceUsed`,`missingEvidence`,`requiredUserChoices`,`unsupportedClaims`,`freshness`,`blockingChecks`],Ny=[`effects`,`balanceChanges`,`objectTypes`,`transaction`],Py=[`transaction_bytes`,`serialized_transaction`,`wallet_signature_request`,`private_key_material`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`],Fy=[`transaction_building_input`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`,`route_recommendation`],Iy=v_,Ly=`MIST`,Ry=[`checkedAt`,`expiresAt`],zy=[`checkedAt`,`expiryStatus`],By=[`rawAmount`,`asset`,`amountRole`],Vy=[`minOutRaw`,`asset`,`amountRole`],Hy=[`gasBudgetRaw`,`asset`,`amountRole`],Uy=[`gasUsedRaw`,`asset`,`amountRole`],Wy=[`checkedAt`,`gasResolutionStatus`,`unresolvedReason`],Gy=[`balanceChanges`,`asset`,`amountRole`],Ky=[`coinType`,`decimals`],qy=[`quoteEvidenceId`,`minOutRaw`],Jy=[`maxSlippageBps`,`userSelection`],Yy=[`maxSlippageBps`,`minOutRaw`],Xy=[`ownerAccount`,`objects`],Zy=[`pinned_sdk_registry`,`verified_mainnet_onchain_metadata`,`wallet_account_read`,`quote_evidence`,`review_time_simulation`,`validated_request_fact`,`user_explicit_choice`],Qy=[`input`,`expected_output`,`minimum_output`,`gas_budget`,`gas_used`,`fee`,`balance_delta`],$y={input:{kinds:[`validated_request_fact`,`wallet_account_read`,`user_explicit_choice`],fields:By},expected_output:{kinds:[`quote_evidence`,`review_time_simulation`],fields:By},minimum_output:{kinds:[`quote_evidence`],fields:Vy},gas_budget:{kinds:[`review_time_simulation`],fields:Hy},gas_used:{kinds:[`review_time_simulation`],fields:Uy},fee:{kinds:[`review_time_simulation`],fields:By},balance_delta:{kinds:[`review_time_simulation`],fields:Gy}},eb={pinned_sdk_metadata:{kinds:[`pinned_sdk_registry`],fields:Ky},verified_mainnet_onchain_metadata:{kinds:[`verified_mainnet_onchain_metadata`],fields:Ky}},tb={user_explicit:{kinds:[`user_explicit_choice`],fields:Jy},adapter_policy_from_quote_evidence:{kinds:[`quote_evidence`],fields:Yy}},nb={kinds:[`review_time_simulation`],fields:Wy},rb={kinds:[`quote_evidence`],fields:qy},ib={kinds:[`validated_request_fact`],fields:Ry},ab={kinds:[`validated_request_fact`],fields:zy},ob={raw_quantity_amount:{byRole:$y},unit_metadata:{bySource:eb},gas_unresolved_status:nb,expiry_status:{current:ib,expired:ib,not_provided:ab,not_applicable:ab},quote_min_out:rb,slippage_policy:{bySource:tb},object_ownership:{kinds:[`wallet_account_read`],fields:Xy},simulation_result:{kinds:[`review_time_simulation`],fields:Ny}},sb={gasBudgetClaimId:{factKind:`raw_quantity_amount`,role:`gas_budget`,assetCoinType:Iy,rawUnit:Ly},gasUsedClaimId:{factKind:`raw_quantity_amount`,role:`gas_used`,assetCoinType:Iy,rawUnit:Ly},gasObjectOwnershipClaimId:{factKind:`object_ownership`,ownership:`owned_by_account`}},cb=L().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),lb=B_(`unsigned integer`),ub=L().regex(/^0x[0-9a-fA-F]{1,64}$/,{message:`Expected a Sui object id`}),db=L().min(1).max(512).refine(e=>{try{return U_(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),X=L().min(1).max(120),fb=H({symbol:L().min(1).max(64).optional(),coinType:db}).strict(),pb=/transaction\s*bytes?|tx\s*bytes?|serialized\s*transaction|serializedTransaction|signed\s*transaction|signing\s*request|signingRequest|wallet\s*authorization|walletAuthorization|private\s*key|privateKey|secret\s*key|secretKey|seed\s*phrase|mnemonic|suiprivkey|signature|bcs\s*transaction/i,mb=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/;function hb(e,t){return L().min(1).max(e).superRefine((e,n)=>{(pb.test(e)||mb.test(e))&&n.addIssue({code:`custom`,message:`${t} must not contain executable transaction, signing, private-key, mnemonic, or long encoded material`})})}function gb(e,t){let n=new Set(e);return t.filter(e=>!n.has(e))}function _b(e,t,n,r,i){let a=gb(t,n);a.length!==0&&e.addIssue({code:`custom`,path:r,message:`${i} must include ${a.join(`, `)}`})}function vb(e,t,n,r,i){_b(e,t,n,r,i)}function yb(e,t,n){e.addIssue({code:`custom`,path:t,message:`${n} must match referenced evidence claim`})}function Z(e,t,n,r,i){t!==n&&yb(e,r,i)}function bb(e,t,n,r,i){let a=new Set(t),o=new Set(n);if(a.size!==o.size)yb(e,r,i);else for(let t of a)if(!o.has(t)){yb(e,r,i);return}}function xb(e,t,n,r,i){(t.symbol!==n.symbol||t.coinType!==n.coinType)&&yb(e,r,i)}function Sb(e,t,n,r,i){try{U_(t.coinType)!==n&&yb(e,r,i)}catch{yb(e,r,i)}}var Cb=H({kind:K([`natural_language_intent`,`external_proposal`,`mcp_action_request`,`local_review_request`]),sourceId:L().min(1).max(160),capturedAt:cb,authority:q(`untrusted_until_review_regenerates_and_verifies`),userSelectionSource:K([`user_explicit`,`prior_user_explicit_context`]).optional()}).strict(),wb=H({id:X,kind:K(Zy),network:q(`sui:mainnet`),source:L().min(1).max(240),verifiedAt:cb,fields:V(L().min(1).max(120)).min(1)}).strict(),Tb=Sc(`factKind`,[H({id:X,factKind:q(`raw_quantity_amount`),sourceEvidenceId:X,role:K(Qy),asset:fb,rawAmount:lb}).strict(),H({id:X,factKind:q(`unit_metadata`),sourceEvidenceId:X,source:K([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),coinType:db,decimals:R().int().min(0).max(255)}).strict(),H({id:X,factKind:q(`gas_unresolved_status`),sourceEvidenceId:X,checkedAt:cb,status:q(`unresolved`),reason:L().min(1).max(240)}).strict(),H({id:X,factKind:q(`expiry_status`),sourceEvidenceId:X,checkedAt:cb,status:K([`current`,`expired`,`not_provided`,`not_applicable`]),expiresAt:cb.optional(),reason:L().min(1).max(240).optional()}).strict(),H({id:X,factKind:q(`quote_min_out`),sourceEvidenceId:X,quoteEvidenceId:L().min(1).max(120),minOutRaw:lb}).strict(),H({id:X,factKind:q(`slippage_policy`),sourceEvidenceId:X,policySource:K([`user_explicit`,`adapter_policy_from_quote_evidence`]),maxSlippageBps:R().int().min(0).max(1e4),minOutRaw:lb.optional()}).strict(),H({id:X,factKind:q(`object_ownership`),sourceEvidenceId:X,objectId:ub,ownerAccount:y_,ownership:K([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`])}).strict(),H({id:X,factKind:q(`simulation_result`),sourceEvidenceId:X,provider:Ay,checksEnabled:q(!0),simulatedAt:cb,status:K([`success`,`failed`,`unavailable`]),requiredFields:V(K(Ny)).min(Ny.length),missingFields:V(K(Ny)).default([]),failureReason:L().min(1).max(240).optional()}).strict()]),Eb=H({id:X,role:K(Qy),asset:fb,rawAmount:lb,unit:H({decimals:R().int().min(0).max(255),source:K([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),sourceField:L().min(1).max(160),unitClaimId:X}).strict(),amountClaimId:X,displayOnly:H({amountDisplay:L().min(1).max(120),reason:q(`presentation_only_not_signing_input`)}).strict().optional()}).strict(),Db=H({objectId:ub,ownerAccount:y_,ownershipClaimId:X}).strict(),Ob=H({source:q(`review_time_simulation`),checkedAt:cb,gasBudgetRaw:lb.optional(),gasBudgetClaimId:X.optional(),gasUsedRaw:lb.optional(),gasUsedClaimId:X.optional(),gasObjects:V(Db).optional(),unresolvedReason:L().min(1).max(240).optional(),unresolvedClaimId:X.optional()}).strict().superRefine((e,t)=>{let n=e.gasBudgetRaw!==void 0||e.gasUsedRaw!==void 0;!n&&e.unresolvedReason===void 0&&t.addIssue({code:`custom`,message:`Expected gas evidence or unresolvedReason`}),n&&e.unresolvedReason!==void 0&&t.addIssue({code:`custom`,path:[`unresolvedReason`],message:`Resolved gas quantities must not include unresolvedReason`}),e.gasBudgetRaw!==void 0&&e.gasBudgetClaimId===void 0&&t.addIssue({code:`custom`,path:[`gasBudgetClaimId`],message:`gasBudgetRaw requires gasBudgetClaimId`}),e.gasBudgetRaw===void 0&&e.gasBudgetClaimId!==void 0&&t.addIssue({code:`custom`,path:[`gasBudgetClaimId`],message:`gasBudgetClaimId requires gasBudgetRaw`}),e.gasUsedRaw!==void 0&&e.gasUsedClaimId===void 0&&t.addIssue({code:`custom`,path:[`gasUsedClaimId`],message:`gasUsedRaw requires gasUsedClaimId`}),e.gasUsedRaw===void 0&&e.gasUsedClaimId!==void 0&&t.addIssue({code:`custom`,path:[`gasUsedClaimId`],message:`gasUsedClaimId requires gasUsedRaw`}),e.unresolvedReason!==void 0&&e.unresolvedClaimId===void 0&&t.addIssue({code:`custom`,path:[`unresolvedClaimId`],message:`unresolvedReason requires unresolvedClaimId`}),e.unresolvedReason===void 0&&e.unresolvedClaimId!==void 0&&t.addIssue({code:`custom`,path:[`unresolvedClaimId`],message:`unresolvedClaimId requires unresolvedReason`})}),kb=Sc(`status`,[H({checkedAt:cb,status:q(`current`),expiresAt:cb,evidenceClaimId:X}).strict(),H({checkedAt:cb,status:q(`expired`),expiresAt:cb,evidenceClaimId:X}).strict(),H({checkedAt:cb,status:q(`not_provided`),evidenceClaimId:X,reason:L().min(1).max(240),expiresAt:_c().optional()}).strict(),H({checkedAt:cb,status:q(`not_applicable`),evidenceClaimId:X,reason:L().min(1).max(240),expiresAt:_c().optional()}).strict()]).superRefine((e,t)=>{e.status===`current`&&Date.parse(e.expiresAt)<=Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`expiresAt`],message:`Current expiry evidence requires expiresAt after checkedAt`}),e.status===`expired`&&Date.parse(e.expiresAt)>Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`expiresAt`],message:`Expired expiry evidence requires expiresAt at or before checkedAt`})}),Ab=H({status:K([`required_and_verified`,`not_required_for_action`,`missing`,`stale`]),quoteEvidenceId:L().min(1).max(120).optional(),quoteEvidenceClaimId:X.optional(),maxSlippageBps:R().int().min(0).max(1e4).optional(),minOutRaw:lb.optional(),policySource:K([`user_explicit`,`adapter_policy_from_quote_evidence`]).optional(),policyEvidenceClaimId:X.optional()}).strict().superRefine((e,t)=>{e.status===`required_and_verified`&&(e.quoteEvidenceId===void 0||e.quoteEvidenceClaimId===void 0||e.maxSlippageBps===void 0||e.minOutRaw===void 0||e.policySource===void 0||e.policyEvidenceClaimId===void 0)&&t.addIssue({code:`custom`,message:`Verified min-out evidence requires quoteEvidenceId, quoteEvidenceClaimId, maxSlippageBps, minOutRaw, policySource, and policyEvidenceClaimId`}),e.quoteEvidenceId!==void 0&&e.quoteEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`quoteEvidenceId requires quoteEvidenceClaimId`}),e.quoteEvidenceId===void 0&&e.quoteEvidenceClaimId!==void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`quoteEvidenceClaimId requires quoteEvidenceId`}),e.minOutRaw!==void 0&&e.quoteEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`minOutRaw requires quoteEvidenceClaimId`}),e.maxSlippageBps!==void 0&&e.policySource===void 0&&t.addIssue({code:`custom`,path:[`policySource`],message:`maxSlippageBps requires policySource`}),e.policySource!==void 0&&e.policyEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`policyEvidenceClaimId`],message:`policySource requires policyEvidenceClaimId`}),e.policySource===void 0&&e.policyEvidenceClaimId!==void 0&&t.addIssue({code:`custom`,path:[`policyEvidenceClaimId`],message:`policyEvidenceClaimId requires policySource`})}),jb=H({checkedAt:cb,ownerAccount:y_,objects:V(H({objectId:ub,role:K([`input_coin`,`gas_coin`,`protocol_object`,`shared_object`,`receiving_object`]),ownership:K([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`]),evidenceClaimId:X}).strict()).min(1)}).strict(),Mb=H({evidenceClaimId:X,transactionDigest:b_,provider:Ay,checksEnabled:q(!0),simulatedAt:cb,status:K([`success`,`failed`,`unavailable`]),requiredFields:V(K(Ny)).min(Ny.length),missingFields:V(K(Ny)).default([]),failureReason:L().min(1).max(240).optional()}).strict().refine(e=>e.status!==`success`||e.missingFields.length===0,{message:`Successful simulation evidence must not have missing required fields`}).refine(e=>Ny.every(t=>e.requiredFields.includes(t)),{message:`Simulation evidence must include every required simulation field`}).refine(e=>e.status===`success`||e.failureReason!==void 0,{message:`Failed or unavailable simulation evidence requires failureReason`}).refine(e=>e.status!==`success`||e.failureReason===void 0,{message:`Successful simulation evidence must not include failureReason`}),Nb=H({fields:V(K(My)).min(My.length),transactionDigest:b_,source:q(`review_model_or_adapter_equivalent`),purpose:q(`human_review_before_wallet_authorization`)}).strict().refine(e=>My.every(t=>e.fields.includes(t)),{message:`Human-readable review fields must include every required review field`}),Pb=H({runtimeStatus:q(`emitted_pre_handoff`),mcpAndReviewUiMayExpose:V(K([`human_readable_review`,`ptb_visualization_artifact`,`diagnostics`,`status_checks`])).min(1),prohibited:V(K(Py)).min(1)}).strict().superRefine((e,t)=>{vb(t,e.prohibited,Py,[`prohibited`],`prohibited`)}),Fb=H({schemaVersion:q(1),adapterId:L().min(1).max(120),protocol:L().min(1).max(120),actionKind:L().min(1).max(120),network:q(`sui:mainnet`),inputProvenance:Cb,sourceReferences:V(wb).min(1),evidenceClaims:V(Tb).min(1),rawQuantities:V(Eb).min(1),gas:Ob,expiry:kb,slippageOrMinOut:Ab,objectOwnership:jb,simulation:Mb,humanReadableReview:Nb,outputBoundary:Pb,reviewedTransactionDigest:b_}).strict().superRefine((e,t)=>{let n=new Set,r=new Map,i=new Map;e.sourceReferences.forEach((e,a)=>{n.has(e.id)&&t.addIssue({code:`custom`,path:[`sourceReferences`,a,`id`],message:`sourceReferences id must be unique: ${e.id}`}),n.add(e.id),r.has(e.id)||(r.set(e.id,e),i.set(e.id,a))});let a=new Set,o=new Map,s=new Map;e.evidenceClaims.forEach((e,n)=>{a.has(e.id)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`id`],message:`evidenceClaims id must be unique: ${e.id}`}),a.add(e.id),o.has(e.id)||(o.set(e.id,e),s.set(e.id,n))});let c=(e,n)=>{if(e===void 0)return;let i=r.get(e);if(i!==void 0)return i;t.addIssue({code:`custom`,path:n,message:`source evidence id must reference sourceReferences[].id: ${e}`})},l=(e,n,r,a)=>{if(e===void 0)return;let o=c(e,r);if(o===void 0)return;let s=i.get(e),l=s===void 0?r:[`sourceReferences`,s];n.kinds.includes(o.kind)||t.addIssue({code:`custom`,path:[...l,`kind`],message:`${a} source kind must be one of ${n.kinds.join(`, `)}`}),_b(t,o.fields,n.fields,[...l,`fields`],`${a} sourceReferences fields`)},u=(e,n,r,i)=>{if(e===void 0){t.addIssue({code:`custom`,path:r,message:`${i} must reference evidenceClaims[].id`});return}let a=o.get(e);if(a===void 0)t.addIssue({code:`custom`,path:r,message:`${i} must reference evidenceClaims[].id: ${e}`});else{if(a.factKind!==n){let a=s.get(e),o=a===void 0?r:[`evidenceClaims`,a,`factKind`];t.addIssue({code:`custom`,path:o,message:`${i} evidence claim factKind must be ${n}`})}return a}};if(e.evidenceClaims.forEach((e,n)=>{e.factKind===`raw_quantity_amount`&&l(e.sourceEvidenceId,ob.raw_quantity_amount.byRole[e.role],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].raw_quantity_amount`),e.factKind===`unit_metadata`&&l(e.sourceEvidenceId,ob.unit_metadata.bySource[e.source],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].unit_metadata`),e.factKind===`gas_unresolved_status`&&l(e.sourceEvidenceId,ob.gas_unresolved_status,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].gas_unresolved_status`),e.factKind===`expiry_status`&&(l(e.sourceEvidenceId,ob.expiry_status[e.status],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].expiry_status`),(e.status===`current`||e.status===`expired`)&&e.expiresAt===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Current or expired expiry claim requires expiresAt`}),(e.status===`not_provided`||e.status===`not_applicable`)&&e.reason===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`reason`],message:`Unavailable expiry claim requires reason`}),(e.status===`not_provided`||e.status===`not_applicable`)&&e.expiresAt!==void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Unavailable expiry claim must not include expiresAt`}),e.status===`current`&&e.expiresAt!==void 0&&Date.parse(e.expiresAt)<=Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Current expiry claim requires expiresAt after checkedAt`}),e.status===`expired`&&e.expiresAt!==void 0&&Date.parse(e.expiresAt)>Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Expired expiry claim requires expiresAt at or before checkedAt`})),e.factKind===`quote_min_out`&&l(e.sourceEvidenceId,ob.quote_min_out,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].quote_min_out`),e.factKind===`slippage_policy`&&(l(e.sourceEvidenceId,ob.slippage_policy.bySource[e.policySource],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].slippage_policy`),e.policySource===`adapter_policy_from_quote_evidence`&&e.minOutRaw===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`minOutRaw`],message:`Adapter-derived slippage policy claim requires minOutRaw`})),e.factKind===`object_ownership`&&l(e.sourceEvidenceId,ob.object_ownership,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].object_ownership`),e.factKind===`simulation_result`&&(l(e.sourceEvidenceId,ob.simulation_result,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].simulation_result`),e.status===`success`&&e.missingFields.length!==0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`missingFields`],message:`Successful simulation claim must not have missing required fields`}),Ny.every(t=>e.requiredFields.includes(t))||t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`requiredFields`],message:`Simulation claim must include every required simulation field`}),e.status!==`success`&&e.failureReason===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`failureReason`],message:`Failed or unavailable simulation claim requires failureReason`}),e.status===`success`&&e.failureReason!==void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`failureReason`],message:`Successful simulation claim must not include failureReason`}))}),e.rawQuantities.forEach((e,n)=>{let r=u(e.amountClaimId,`raw_quantity_amount`,[`rawQuantities`,n,`amountClaimId`],`rawQuantities[${n}].amountClaimId`);r?.factKind===`raw_quantity_amount`&&(Z(t,e.role,r.role,[`rawQuantities`,n,`role`],`rawQuantities[${n}].role`),Z(t,e.rawAmount,r.rawAmount,[`rawQuantities`,n,`rawAmount`],`rawQuantities[${n}].rawAmount`),xb(t,e.asset,r.asset,[`rawQuantities`,n,`asset`],`rawQuantities[${n}].asset`));let i=u(e.unit.unitClaimId,`unit_metadata`,[`rawQuantities`,n,`unit`,`unitClaimId`],`rawQuantities[${n}].unit.unitClaimId`);i?.factKind===`unit_metadata`&&(Z(t,e.unit.source,i.source,[`rawQuantities`,n,`unit`,`source`],`rawQuantities[${n}].unit.source`),Z(t,e.unit.decimals,i.decimals,[`rawQuantities`,n,`unit`,`decimals`],`rawQuantities[${n}].unit.decimals`),e.asset.coinType!==void 0&&Z(t,e.asset.coinType,i.coinType,[`rawQuantities`,n,`asset`,`coinType`],`rawQuantities[${n}].asset.coinType`))}),e.gas.gasBudgetRaw!==void 0){let n=u(e.gas.gasBudgetClaimId,`raw_quantity_amount`,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId`);n?.factKind===`raw_quantity_amount`&&(Z(t,n.role,sb.gasBudgetClaimId.role,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId role`),Sb(t,n.asset,sb.gasBudgetClaimId.assetCoinType,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId asset`),Z(t,e.gas.gasBudgetRaw,n.rawAmount,[`gas`,`gasBudgetRaw`],`gas.gasBudgetRaw`))}if(e.gas.gasUsedRaw!==void 0){let n=u(e.gas.gasUsedClaimId,`raw_quantity_amount`,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId`);n?.factKind===`raw_quantity_amount`&&(Z(t,n.role,sb.gasUsedClaimId.role,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId role`),Sb(t,n.asset,sb.gasUsedClaimId.assetCoinType,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId asset`),Z(t,e.gas.gasUsedRaw,n.rawAmount,[`gas`,`gasUsedRaw`],`gas.gasUsedRaw`))}if(e.gas.unresolvedReason!==void 0){let n=u(e.gas.unresolvedClaimId,`gas_unresolved_status`,[`gas`,`unresolvedClaimId`],`gas.unresolvedClaimId`);n?.factKind===`gas_unresolved_status`&&(Z(t,n.status,`unresolved`,[`gas`,`unresolvedClaimId`],`gas.unresolvedClaimId status`),Z(t,e.gas.checkedAt,n.checkedAt,[`gas`,`checkedAt`],`gas.checkedAt`),Z(t,e.gas.unresolvedReason,n.reason,[`gas`,`unresolvedReason`],`gas.unresolvedReason`))}e.gas.gasObjects?.forEach((e,n)=>{let r=u(e.ownershipClaimId,`object_ownership`,[`gas`,`gasObjects`,n,`ownershipClaimId`],`gas.gasObjects[${n}].ownershipClaimId`);r?.factKind===`object_ownership`&&(Z(t,e.objectId,r.objectId,[`gas`,`gasObjects`,n,`objectId`],`gas.gasObjects[${n}].objectId`),Z(t,e.ownerAccount,r.ownerAccount,[`gas`,`gasObjects`,n,`ownerAccount`],`gas.gasObjects[${n}].ownerAccount`),Z(t,r.ownership,sb.gasObjectOwnershipClaimId.ownership,[`gas`,`gasObjects`,n,`ownershipClaimId`],`gas.gasObjects[${n}].ownershipClaimId ownership`))});let d=u(e.expiry.evidenceClaimId,`expiry_status`,[`expiry`,`evidenceClaimId`],`expiry.evidenceClaimId`);if(d?.factKind===`expiry_status`&&(Z(t,e.expiry.status,d.status,[`expiry`,`status`],`expiry.status`),Z(t,e.expiry.checkedAt,d.checkedAt,[`expiry`,`checkedAt`],`expiry.checkedAt`),e.expiry.status===`current`||e.expiry.status===`expired`?Z(t,e.expiry.expiresAt,d.expiresAt,[`expiry`,`expiresAt`],`expiry.expiresAt`):Z(t,e.expiry.reason,d.reason,[`expiry`,`reason`],`expiry.reason`)),e.slippageOrMinOut.quoteEvidenceClaimId!==void 0){let n=u(e.slippageOrMinOut.quoteEvidenceClaimId,`quote_min_out`,[`slippageOrMinOut`,`quoteEvidenceClaimId`],`slippageOrMinOut.quoteEvidenceClaimId`);n?.factKind===`quote_min_out`&&(Z(t,e.slippageOrMinOut.quoteEvidenceId,n.quoteEvidenceId,[`slippageOrMinOut`,`quoteEvidenceId`],`slippageOrMinOut.quoteEvidenceId`),Z(t,e.slippageOrMinOut.minOutRaw,n.minOutRaw,[`slippageOrMinOut`,`minOutRaw`],`slippageOrMinOut.minOutRaw`))}if(e.slippageOrMinOut.minOutRaw!==void 0&&(e.rawQuantities.some(t=>t.role===`minimum_output`&&t.rawAmount===e.slippageOrMinOut.minOutRaw)||t.addIssue({code:`custom`,path:[`slippageOrMinOut`,`minOutRaw`],message:`slippageOrMinOut.minOutRaw must match a minimum_output rawQuantities entry`})),e.slippageOrMinOut.policyEvidenceClaimId!==void 0){let n=u(e.slippageOrMinOut.policyEvidenceClaimId,`slippage_policy`,[`slippageOrMinOut`,`policyEvidenceClaimId`],`slippageOrMinOut.policyEvidenceClaimId`);n?.factKind===`slippage_policy`&&(Z(t,e.slippageOrMinOut.policySource,n.policySource,[`slippageOrMinOut`,`policySource`],`slippageOrMinOut.policySource`),Z(t,e.slippageOrMinOut.maxSlippageBps,n.maxSlippageBps,[`slippageOrMinOut`,`maxSlippageBps`],`slippageOrMinOut.maxSlippageBps`),n.policySource===`adapter_policy_from_quote_evidence`&&Z(t,e.slippageOrMinOut.minOutRaw,n.minOutRaw,[`slippageOrMinOut`,`minOutRaw`],`slippageOrMinOut.minOutRaw`))}e.objectOwnership.objects.forEach((n,r)=>{let i=u(n.evidenceClaimId,`object_ownership`,[`objectOwnership`,`objects`,r,`evidenceClaimId`],`objectOwnership.objects[${r}].evidenceClaimId`);i?.factKind===`object_ownership`&&(Z(t,n.objectId,i.objectId,[`objectOwnership`,`objects`,r,`objectId`],`objectOwnership.objects[${r}].objectId`),Z(t,e.objectOwnership.ownerAccount,i.ownerAccount,[`objectOwnership`,`ownerAccount`],`objectOwnership.ownerAccount`),Z(t,n.ownership,i.ownership,[`objectOwnership`,`objects`,r,`ownership`],`objectOwnership.objects[${r}].ownership`))});let f=u(e.simulation.evidenceClaimId,`simulation_result`,[`simulation`,`evidenceClaimId`],`simulation.evidenceClaimId`);f?.factKind===`simulation_result`&&(Z(t,e.simulation.provider,f.provider,[`simulation`,`provider`],`simulation.provider`),Z(t,e.simulation.checksEnabled,f.checksEnabled,[`simulation`,`checksEnabled`],`simulation.checksEnabled`),Z(t,e.simulation.simulatedAt,f.simulatedAt,[`simulation`,`simulatedAt`],`simulation.simulatedAt`),Z(t,e.simulation.status,f.status,[`simulation`,`status`],`simulation.status`),bb(t,e.simulation.requiredFields,f.requiredFields,[`simulation`,`requiredFields`],`simulation.requiredFields`),bb(t,e.simulation.missingFields,f.missingFields,[`simulation`,`missingFields`],`simulation.missingFields`),Z(t,e.simulation.failureReason,f.failureReason,[`simulation`,`failureReason`],`simulation.failureReason`))}).superRefine((e,t)=>{let n=e.reviewedTransactionDigest;Z(t,e.humanReadableReview.transactionDigest,n,[`humanReadableReview`,`transactionDigest`],`humanReadableReview.transactionDigest`),Z(t,e.simulation.transactionDigest,n,[`simulation`,`transactionDigest`],`simulation.transactionDigest`)}),Ib=H({contractVersion:q(jy),artifactKind:q(`ptb_visualization`),generatedAt:cb,source:H({adapterId:L().min(1).max(120),planId:L().min(1).max(120).optional(),sourceKind:K([`review_time_generated_transaction_kind`,`review_time_ir`,`renderer_model`]),authority:q(`visualization_only_not_wallet_authorization`),renderer:H({name:L().min(1).max(120),packageName:L().min(1).max(120).optional(),version:L().min(1).max(80).optional()}).strict().optional()}).strict(),mermaid:H({diagramType:q(`flowchart`),text:hb(2e4,`mermaid.text`),namedText:hb(2e4,`mermaid.namedText`)}).strict(),diagnostics:V(H({severity:K([`info`,`warning`,`error`]),code:L().min(1).max(120),message:hb(512,`diagnostics.message`),source:K([`adapter`,`renderer`,`schema`,`simulation`])}).strict()).default([]),unsupportedUse:V(K(Fy)).min(1),executableMaterial:H({included:q(!1),policy:q(`mcp_and_review_ui_outputs_must_not_include_executable_transaction_material`)}).strict()}).strict().superRefine((e,t)=>{vb(t,e.unsupportedUse,Fy,[`unsupportedUse`],`unsupportedUse`)}),Lb=G(L(),B()),Rb=K(Ey),zb=K(Dy);K([`ready_for_wallet_review`,`refresh_required`,`blocked`]);var Bb=K(Oy);K([`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`,`awaiting_signature`,`submitting`,`awaiting_chain_result`,`stopped`,`request_failed`,`outcome_unknown`,`completed`]);var Vb=H({id:L(),label:L(),status:K([`pass`,`warning`,`fail`]),message:L(),source:K([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`])}),Hb=L().min(1),Ub=`human_readable_review`,Wb=`review_time_simulation`,Gb=H({stageCatalogId:L().min(1),adapterId:L(),protocol:L(),actionKind:L(),completedStages:V(Hb),missingStages:V(Hb)}).strict().superRefine((e,t)=>{let n=Kb(e.completedStages);n&&t.addIssue({code:`custom`,path:[`completedStages`],message:`completedStages contains duplicate stage '${n}'`});let r=Kb(e.missingStages);r&&t.addIssue({code:`custom`,path:[`missingStages`],message:`missingStages contains duplicate stage '${r}'`});for(let n of e.completedStages)e.missingStages.includes(n)&&t.addIssue({code:`custom`,path:[`missingStages`],message:`stage '${n}' cannot be both completed and missing`})});function Kb(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}var qb=H({symbol:L(),amount:L(),coinType:L().optional(),approx:z().optional()}).strict(),Jb=qb.extend({amountKind:q(`display_intent`).default(`display_intent`)}),Yb=H({outgoing:V(Jb),expectedIncoming:V(Jb),minimumIncoming:V(Jb).optional(),fees:V(Jb).optional()}),Xb=H({outgoing:V(qb),expectedIncoming:V(qb),minimumIncoming:V(qb).optional(),fees:V(qb).optional()}),Zb=H({before:V(qb),after:V(qb),delta:V(qb)}),Qb=H({computationCostRaw:R_(`computationCostRaw`),storageCostRaw:R_(`storageCostRaw`),storageRebateRaw:R_(`storageRebateRaw`),nonRefundableStorageFeeRaw:R_(`nonRefundableStorageFeeRaw`)}).strict(),$b=H({address:y_,coinType:L().min(1).max(512).refine(e=>{try{return U_(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),amount:H_(`balanceChanges[].amount`)}).strict(),ex=H({objectId:y_,objectType:L().min(1).max(512).optional(),inputState:L().min(1).max(80),outputState:L().min(1).max(80),idOperation:L().min(1).max(80)}).strict(),tx=H({provider:Ay,checksEnabled:z(),success:z(),gasCostSummary:Qb.optional(),balanceChanges:V($b).optional(),objectChanges:V(ex).optional(),error:L().optional()}),nx=tx,rx=tx.extend({checksEnabled:q(!0),success:q(!0),gasCostSummary:Qb,balanceChanges:V($b),objectChanges:V(ex),error:_c().optional()}).strict(),ix=H({role:K([`input`,`expected_output`,`minimum_output`,`fee`]),symbol:L(),coinType:L().min(1).max(512).refine(e=>{try{return U_(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),decimals:R().int().min(0).max(255),rawAmount:R_(`rawAmount`),rawAmountSource:q(`quote_policy_evidence`),displayAmount:L().optional(),displayAmountSource:q(`user_display_intent_not_signing_input`).optional()}).strict().superRefine((e,t)=>{e.displayAmount!==void 0&&e.displayAmountSource===void 0&&t.addIssue({code:`custom`,path:[`displayAmountSource`],message:`displayAmountSource is required when displayAmount is present`}),e.displayAmount===void 0&&e.displayAmountSource!==void 0&&t.addIssue({code:`custom`,path:[`displayAmount`],message:`displayAmount is required when displayAmountSource is present`})}),ax=H({role:K([`connected_account`,`output_recipient`]),address:y_}).strict(),ox=H({kind:q(`swap_output_asset`),symbol:L(),coinType:L().min(1).max(512).refine(e=>{try{return U_(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),protocol:L(),poolKey:L(),direction:K([`base_to_quote`,`quote_to_base`])}).strict(),sx=H({id:L(),label:L(),source:W([K([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`]),K([`transaction_material`,`digest_commitment`])]),summary:L()}).strict(),cx=H({id:L(),label:L(),reason:L()}).strict(),lx=H({proposedAction:H({title:L(),summary:L(),actionKind:L(),adapterId:L(),protocol:L(),network:q(`sui:mainnet`)}).strict(),recipients:V(ax),evidenceUsed:V(sx),missingEvidence:V(cx),requiredUserChoices:V(cx),unsupportedClaims:V(cx),freshness:H({status:q(`current`),evaluatedAt:L(),expiresAt:L(),reason:L()}).strict(),blockingChecks:V(Vb)}).strict(),ux=H({assetFlow:H({outgoing:V(ix),expectedIncoming:V(ix),minimumIncoming:V(ix),fees:V(ix)}).strict(),targets:V(ox)}).strict(),dx=Sc(`kind`,[lx.extend({kind:q(`swap_human_readable_review`)}).merge(ux)]),fx=H({id:L(),actionKind:L(),adapterId:L(),protocol:L(),title:L(),summary:L(),assetFlowPreview:Yb,reviewModel:Ty.optional(),adapterData:Lb,createdAt:L(),expiresAt:L().optional(),registryVersion:L().optional(),preliminaryChecks:V(Vb).optional()}),px=H({planId:L(),reviewSessionId:L(),account:y_,checks:V(Vb),assetFlowActual:Xb.optional(),beforeAfterBalance:Zb.optional(),simulation:nx.optional(),humanReadableReview:dx.optional(),transactionReviewData:Fb.optional(),ptbVisualization:Ib.optional(),adapterLifecycle:Gb.optional(),updatedAt:L()}),mx=Sc(`status`,[px.extend({status:q(`ready_for_wallet_review`),evidenceValidity:_c().optional(),blockedReason:_c().optional(),refreshReason:_c().optional()}),px.extend({status:q(`refresh_required`),evidenceValidity:q(`invalidated`).optional(),refreshReason:zb,blockedReason:_c().optional()}),px.extend({status:q(`blocked`),evidenceValidity:q(`invalidated`).optional(),blockedReason:Rb,refreshReason:_c().optional()})]).superRefine((e,t)=>{if(e.evidenceValidity===`invalidated`)for(let n of ky)e[n]!==void 0&&t.addIssue({code:`custom`,path:[n],message:`Invalidated review evidence cannot carry current material-derived facts`});let n=e.adapterLifecycle;if(n!==void 0&&hx(e,t),e.humanReadableReview!==void 0&&n===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview requires adapterLifecycle evidence stage provenance`}),e.simulation!==void 0&&n===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`simulation requires adapterLifecycle evidence stage provenance`}),e.ptbVisualization!==void 0){let e=n?.completedStages??[];e.includes(`transaction_material_build_or_verify`)&&e.includes(`digest_commitment`)||t.addIssue({code:`custom`,path:[`ptbVisualization`],message:`ptbVisualization requires completed transaction material and digest commitment lifecycle stages`})}let r=e.status===`ready_for_wallet_review`;e.transactionReviewData!==void 0&&!r&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`transactionReviewData is only valid on ready_for_wallet_review`}),e.status===`ready_for_wallet_review`&&n!==void 0&&(e.transactionReviewData===void 0&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`ready_for_wallet_review requires an emitted wallet review contract`}),(n===void 0||n.missingStages.length!==0)&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`ready_for_wallet_review requires a completed adapterLifecycle with no missing stages`}),e.humanReadableReview===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`ready_for_wallet_review requires humanReadableReview public evidence`}),e.simulation===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`ready_for_wallet_review requires successful simulation public evidence`})),e.status===`blocked`&&(e.blockedReason===`producer_stage_missing`&&n===void 0&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`producer_stage_missing requires adapterLifecycle with at least one missing stage`}),e.blockedReason===`producer_stage_missing`&&n!==void 0&&n.missingStages.length===0&&t.addIssue({code:`custom`,path:[`blockedReason`],message:`producer_stage_missing requires at least one adapterLifecycle.missingStages entry`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.transactionReviewData!==void 0&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`wallet_review_contract_emit_missing requires the wallet review contract to be absent`}),e.blockedReason===`wallet_review_contract_emit_missing`&&n===void 0&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`wallet_review_contract_emit_missing requires adapterLifecycle`}),e.blockedReason===`wallet_review_contract_emit_missing`&&n!==void 0&&n.missingStages.length!==0&&t.addIssue({code:`custom`,path:[`blockedReason`],message:`wallet_review_contract_emit_missing requires a completed adapterLifecycle with no missing stages`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.evidenceValidity!==`invalidated`&&e.humanReadableReview===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`wallet_review_contract_emit_missing requires humanReadableReview public evidence`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.evidenceValidity!==`invalidated`&&e.simulation===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`wallet_review_contract_emit_missing requires simulation public evidence`}))});function hx(e,t){let n=e.adapterLifecycle;n&&(e.humanReadableReview!==void 0&&gx(t,n,Ub,[`humanReadableReview`]),e.simulation!==void 0&&(gx(t,n,Wb,[`simulation`]),gx(t,n,Ub,[`simulation`]),_x(t,e.simulation,[`simulation`])),n.missingStages.includes(Wb)&&e.simulation!==void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`simulation public evidence cannot be present while review_time_simulation is missing`}),n.missingStages.includes(Ub)&&e.humanReadableReview!==void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview public evidence cannot be present while human_readable_review is missing`}))}function gx(e,t,n,r){t.completedStages.includes(n)||e.addIssue({code:`custom`,path:r,message:`${r.join(`.`)} requires completed adapterLifecycle stage '${n}'`}),t.missingStages.includes(n)&&e.addIssue({code:`custom`,path:r,message:`${r.join(`.`)} cannot be present while adapterLifecycle stage '${n}' is missing`})}function _x(e,t,n){rx.safeParse(t).success||e.addIssue({code:`custom`,path:n,message:`simulation public evidence requires a successful checks-enabled review-time simulation projection`})}var vx=H({topic:L().min(1),grants:M_,expiresAt:L().datetime(),walletName:L().optional()}).strict(),yx={topic:L().min(1),lifecycleRevision:R().int().positive(),grantRevisions:E_},bx=Sc(`status`,[H({...yx,status:q(`present`),session:vx}).strict(),H({...yx,status:K([`absent`,`unusable`])}).strict()]);H({chainId:q(w_),lifecycleRevision:R().int().positive(),grantRevision:R().int().nonnegative()});var xx=H({runId:tv,sequence:R().int().positive(),observedAt:L().datetime()}).strict();xx.extend({sessions:V(bx)}).strict();var Sx=L().uuid(),Cx={operationId:Sx,walletRunId:tv},wx=Sc(`action`,[H({action:q(`connect`),...Cx,chains:D_}).strict(),H({action:q(`disconnect`),...Cx,connectionId:L().min(1),impactId:L().min(1)}).strict()]);H({}).strict();var Tx=H({operationId:Sx,cardId:L().min(1),action:K([`connect`,`disconnect`]),status:K([`running`,`completed`,`failed`,`stopped`]),connectionId:L().min(1),createdAt:L().datetime(),updatedAt:L().datetime(),expiresAt:L().datetime(),settlementPending:z(),message:L().optional(),endReason:K([`user_stopped`,`expired`,`run_ended`]).optional()}).strict();Tx.pick({operationId:!0,action:!0,status:!0,settlementPending:!0});var Ex=`A wallet connection provides account context; it is not a transaction approval or proof of address ownership.`,Dx=`Review evidence is not a safety guarantee. Only an explicit card action and wallet approval may authorize this exact transaction.`,Ox=sv.extend({sessionPresence:K([`present`,`absent`,`unusable`,`unconfirmed`]),chainStates:V(cv).optional(),disconnectImpact:H({impactId:L(),requestCount:R().int().nonnegative(),chains:D_}).strict().optional()});K([`awaiting_approval`,`disconnect_pending`,`cleanup_pending`]);var kx=H({action:K([`prepare_review`,`request_signature`]),connectionId:L().min(1),walletRunId:tv,account:y_,reviewRevision:R().int().nonnegative()}).strict(),Ax=H({action:K([`cancel`,`stop_waiting`,`read_result`])}).strict(),jx=W([wx,H({action:q(`stop_connection`),operationId:L().uuid()}).strict(),kx,Ax]),Mx=W([wx.options[0],kx.extend({action:q(`prepare_review`)})]);function Nx(e,t){e.reviewTarget&&(e.review?.account&&e.review.account!==e.reviewTarget.account||e.request&&e.request.account!==e.reviewTarget.account)&&t.addIssue({code:`custom`,path:[`reviewTarget`],message:`The fixed review target must match its recorded account and request.`})}var Px=H({kind:K(dv),message:L().optional(),reason:L().optional()}).strict(),Fx={allowedActions:V(K(uv)),actionRemainingMs:R().int().nonnegative(),nextStateReadAfterMs:R().int().nonnegative().optional(),observe:z(),walletAvailability:iv,walletObservation:xx.optional(),progress:av,nextStep:Px},Ix=H({...Fx,kind:q(`connect`),mode:q(`connect`),allowedActions:V(K([`connect`,`cancel`,`stop_connection`])),boundary:q(Ex),requestedChains:D_,operation:Tx.optional(),automaticAction:wx.options[0].optional()}).strict(),Lx=H({...Fx,kind:q(`disconnect`),mode:q(`disconnect`),allowedActions:V(K([`disconnect`,`cancel`])),boundary:q(Ex),connection:Ox.optional(),operation:Tx.optional()}).strict(),Rx=H({reviewSessionId:L(),plan:fx,reviewRevision:R().int().nonnegative(),status:Bb,account:L().optional(),preparing:z(),accountRequestPending:q(!0).optional(),error:L().optional(),state:mx.optional()}).strict(),zx=H({connectionId:L(),account:y_}).strict(),Bx=L().regex(/^-?[0-9]+$/).optional(),Vx=Sc(`kind`,[Ix,Lx,H({...Fx,kind:q(`review`),mode:K([`review`,`review_manage`]),allowedActions:V(K([`prepare_review`,`request_signature`,`read_result`,`stop_waiting`,`cancel`])),boundary:q(Dx),reviewTarget:zx.optional(),review:Rx,walletName:L().optional(),acceptedWalletRunId:tv.optional(),automaticAction:kx.extend({action:q(`prepare_review`)}).optional(),request:ev.optional(),receipt:B().optional(),netGasMist:Bx,observationStopped:z().optional()}).strict().superRefine(Nx)]),Hx=H({message:L(),recordedAt:L().datetime()}).strict(),Ux={allowedActions:V(_c()),observe:q(!1),actionRemainingMs:q(0),result:Hx},Wx=H({...Ux,kind:K([`connect`,`disconnect`]),result:Hx.extend({pendingWork:K([`approval_response`,`session_removal`,`session_status`]).optional()}),walletName:L().optional(),networks:V(H({chainId:T_,status:K([`bound`,`not_approved`,`multiple_accounts`,`invalid_response`])}).strict())}).strict();H({...Ux,kind:q(`review`),mode:K([`review`,`review_manage`]),review:Rx.optional(),reviewTarget:zx.optional(),request:ev.optional(),receipt:B().optional(),netGasMist:Bx,observationStopped:z().optional(),boundary:q(Dx)}).strict().superRefine(Nx);var Gx=`sui-mcp.local-data`,Kx=16777216,Q=L().uuid(),qx=R().int().nonnegative().safe(),Jx=L().regex(/^[a-f0-9]{64}$/),Yx=Sc(`status`,[H({status:q(`no_file`)}).strict(),H({status:q(`receiving`)}).strict(),H({status:q(`checking`)}).strict(),H({status:q(`check_required`),message:L().min(1)}).strict(),H({status:q(`can_restore`)}).strict(),H({status:q(`cannot_restore`),reason:K([`invalid_backup`,`file_unavailable`,`wallet_request_unsettled`,`operation_busy`,`input_unavailable`,`check_failed`]),message:L().min(1)}).strict()]);H({fileId:Q,sha256:Jx,totalSize:qx,dataEpoch:qx,userDataRevision:qx,check:Yx}).strict();var Xx=Sc(`kind`,[H({kind:q(`set_endpoint`),endpoint:K([`grpc`,`graphql`]),value:L().min(1)}).strict(),H({kind:q(`restore_endpoint`),endpoint:K([`grpc`,`graphql`])}).strict(),H({kind:K([`import_local_data`,`reset_local_data`,`restart_wallet_service`])}).strict()]),Zx=Sc(`kind`,[H({kind:q(`clear_read_address`)}).strict(),...Xx.options,H({kind:q(`set_wallet_networks`),chains:D_}).strict(),H({kind:q(`download_backup`)}).strict()]);H({operationStatus:H({operationId:L().uuid()}).strict().optional(),backupDelivery:H({operationId:L().uuid(),fileId:L().uuid()}).strict().optional()}).strict().refine(e=>!(e.operationStatus&&e.backupDelivery),`Choose exactly one card purpose.`);var Qx=K([`acknowledged`,`not_completed`,`unconfirmed`,`unsupported`,`not_sent`]),$x=H({method:q(`ui/download-file`),code:q(-32601)}).strict(),eS=K([`acknowledged`,`cancelled`,`expired`,`server_restarted`,`data_replaced`,`source_unavailable`,`stored_locally`,`local_save_failed`]),tS=H({device:L().regex(/^\d+$/),inode:L().regex(/^\d+$/)}).strict(),nS=K([`not_published`,`target_conflict`,`source_unavailable`,`interrupted`]),rS=H({status:K([`needs_consent`,`saving`,`saved`,`failed`]),attemptId:Q,fileId:Q,sha256:Jx,totalSize:qx,destination:L(),ownerId:L().min(1),currentSaveAttemptId:Q.optional(),attempts:V(H({saveAttemptId:Q,cardId:L().min(1),previousSaveAttemptId:Q.optional(),admittedAt:L().datetime(),allowPossibleCopy:z()}).strict()),sourceIdentity:tS.optional(),savedAt:L().datetime().optional(),failure:nS.optional()}).strict().superRefine((e,t)=>{(e.status===`needs_consent`?e.attempts.length!==0||e.currentSaveAttemptId!==void 0:!e.currentSaveAttemptId||!e.attempts.some(t=>t.saveAttemptId===e.currentSaveAttemptId))&&t.addIssue({code:`custom`,message:`A local save must identify its admitted attempt.`}),(new Set(e.attempts.map(e=>e.saveAttemptId)).size!==e.attempts.length||e.status===`saved`!=(e.savedAt!==void 0)||e.status===`saved`&&!e.sourceIdentity||e.status===`failed`!=(e.failure!==void 0))&&t.addIssue({code:`custom`,message:`Local save evidence must match its state.`})});H({currentAttemptId:Q,attempts:V(H({attemptId:Q,cardId:L().min(1),admittedAt:L().datetime(),previousAttemptId:Q.optional(),hostReport:Qx.optional(),failure:$x.optional()}).strict()).min(1),readyAt:L().datetime().optional(),expiresAt:L().datetime().optional(),endReason:eS.optional(),localSave:rS.optional()}).strict().superRefine((e,t)=>{(new Set(e.attempts.map(e=>e.attemptId)).size!==e.attempts.length||!e.attempts.some(t=>t.attemptId===e.currentAttemptId)||e.readyAt===void 0!=(e.expiresAt===void 0))&&t.addIssue({code:`custom`,message:`Download attempts and lifetime must identify one stored snapshot.`}),(e.endReason===`stored_locally`&&e.localSave?.status!==`saved`||e.endReason===`local_save_failed`&&e.localSave?.status!==`failed`||e.attempts.some(e=>e.hostReport===`unsupported`!=(e.failure!==void 0))||e.localSave&&(e.localSave.attemptId!==e.currentAttemptId||!e.attempts.some(t=>t.attemptId===e.currentAttemptId&&t.hostReport===`unsupported`)||e.localSave.status===`saving`&&e.endReason!==void 0||e.localSave.status===`saved`!=(e.endReason===`stored_locally`)))&&t.addIssue({code:`custom`,message:`Local saving requires the current download's unsupported report.`})});var iS=K([`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`]),aS=Sc(`action`,[H({action:q(`settings_clear_read_address`),operationId:Q,connectionId:L().min(1),account:L().min(1)}).strict(),H({action:q(`settings_save_wallet_networks`),operationId:Q,chains:D_.transform(O_),expectedChains:D_.transform(O_)}).strict(),H({action:q(`settings_download_backup`),operationId:Q,attemptId:Q}).strict(),H({action:q(`settings_retry_download`),operationId:Q,fileId:Q,previousAttemptId:Q,attemptId:Q}).strict(),H({action:q(`settings_report_download`),operationId:Q,fileId:Q,attemptId:Q,status:Qx,failure:$x.optional()}).strict().refine(e=>e.status===`unsupported`==(e.failure!==void 0),`Only unsupported downloads require the exact method failure.`),H({action:q(`settings_store_backup`),operationId:Q,fileId:Q,attemptId:Q,saveAttemptId:Q,previousSaveAttemptId:Q.optional(),allowPossibleCopy:z()}).strict(),H({action:q(`settings_cancel_download`),operationId:Q,fileId:Q,attemptId:Q}).strict(),H({action:q(`settings_select`),draft:Xx}).strict(),H({action:q(`settings_prepare`),operationId:Q}).strict(),H({action:q(`settings_begin_upload`),operationId:Q,name:L().min(1),totalSize:qx.max(Kx),sha256:Jx}).strict(),H({action:q(`settings_upload_chunk`),operationId:Q,fileId:Q,offset:qx.max(Kx),chunkBase64:L()}).strict(),H({action:q(`settings_seal_upload`),operationId:Q,fileId:Q}).strict(),H({action:q(`settings_confirm`),operationId:Q,preparationId:Q}).strict(),H({action:q(`settings_back`),operationId:Q}).strict(),H({action:q(`settings_cancel`)}).strict()]),oS=H({outcome:K([`completed`,`failed`,`interrupted`,`superseded`]),recordedAt:L().datetime(),message:L().min(1),details:G(L(),B()).optional(),completionScope:q(`backup_delivery`).optional()}).strict(),sS=H({storedValue:L(),effectiveValue:L(),source:K([`environment`,`local_db`,`builtin_default`]),pendingStoredValue:L().optional(),appliesAfter:q(`mcp_server_restart`).optional()}).strict(),cS=H({endpoint:K([`grpc`,`graphql`]),key:K([`suiGrpcUrl`,`suiGraphqlUrl`]),value:L().min(1),status:K([`saved`,`reset`]),storedValue:L(),effectiveValue:L(),source:sS.shape.source}).strict().refine(e=>e.key===(e.endpoint===`grpc`?`suiGrpcUrl`:`suiGraphqlUrl`),`The endpoint kind and preference key must agree.`),lS=R().int().nonnegative().safe(),uS=H({accounts:lS,reviewSessions:lS,reviewStateSnapshots:lS,reviewStatusTransitions:lS,reviewExecutions:lS,reviewRequests:lS,outcomeUnknownRequests:lS,externalActivityScans:lS,externalActivityTransactions:lS,localSettings:lS}).strict(),dS=H({status:q(`valid`),format:q(Gx),network:q(`mainnet`),exportedAt:L().datetime(),currentCounts:uS,incomingCounts:uS,willReplace:q(!0),restartRequiredAfterImport:z()}).strict(),fS=H({kind:q(`settings`),operationId:Q,phase:K([`draft`,`uploading`,`sealed`,`prepared`,`executing`,`stopping`,`starting`,`terminal`]),draft:Zx.optional(),preparationId:Q.optional(),preparation:G(L(),B()).optional(),file:H({fileId:Q,displayName:L(),totalSize:qx,receivedSize:qx,sha256:Jx,sealed:z(),cleanup:K([`pending`,`complete`,`failed`])}).strict().optional(),download:H({availability:K([`preparing`,`available`,`ended`]),currentAttemptId:Q,hostReport:Qx.optional(),previousUnconfirmed:z(),endReason:eS.optional(),expiresAt:L().datetime().optional(),remainingMs:qx.optional(),localSave:H({status:K([`needs_consent`,`saving`,`saved`,`failed`]),currentSaveAttemptId:Q.optional(),failure:nS.optional(),savedAt:L().datetime().optional()}).strict().optional(),allowedFileActions:V(iS)}).strict().optional(),restoreCheck:Yx.optional(),backupLocation:H({directory:L().min(1),filename:L().min(1)}).strict().optional(),result:oS.optional(),temporaryFileCleanup:K([`pending`,`complete`,`failed`]).optional(),priorRunId:Q.optional(),nextRunId:Q.optional(),supersedesOperationId:Q.optional(),supersededByOperationId:Q.optional(),allowedActions:V(K(aS.options.map(e=>e.shape.action.value))),observe:z(),facts:H({server:H({name:L(),version:L(),network:q(`mainnet`)}).strict(),localSettings:H({suiGrpcUrl:sS,suiGraphqlUrl:sS,walletConnectionChains:D_}).strict(),readAddress:L().optional(),readConnectionId:L().optional(),assetReadAccount:lv,walletAvailability:iv,connectionReconciliationRequired:q(!0).optional(),observedAt:L().datetime().optional(),counts:uS}).strict().optional()}).strict().superRefine((e,t)=>{if(e.download&&(e.draft?.kind!==`download_backup`||!e.file||e.download.availability===`available`&&(!e.file.sealed||e.download.endReason||!e.download.expiresAt)||e.download.availability===`ended`&&!e.download.endReason)&&t.addIssue({code:`custom`,message:`Download delivery must describe its own snapshot and lifetime.`}),e.draft?.kind===`download_backup`&&e.preparation!==void 0&&t.addIssue({code:`custom`,message:`Private download preparation is not public preparation data.`}),e.restoreCheck&&(e.draft?.kind!==`import_local_data`||e.result)&&t.addIssue({code:`custom`,message:`Restore checks belong to an uncompleted import preparation.`}),e.restoreCheck?.status===`can_restore`&&(e.phase!==`prepared`||!e.file?.sealed||!e.allowedActions.includes(`settings_confirm`))&&t.addIssue({code:`custom`,message:`Restore availability requires a sealed file and current confirmation.`}),e.draft?.kind===`import_local_data`&&e.restoreCheck?.status!==`can_restore`&&e.allowedActions.includes(`settings_confirm`)&&t.addIssue({code:`custom`,message:`An unchecked or blocked import cannot offer confirmation.`}),e.restoreCheck?.status===`receiving`&&(!e.file||e.file.sealed||![`draft`,`uploading`].includes(e.phase))&&t.addIssue({code:`custom`,message:`Receiving requires the selected unsealed upload.`}),e.restoreCheck?.status===`check_required`&&(!e.file?.sealed||e.phase!==`sealed`)&&t.addIssue({code:`custom`,message:`A new check requires the same complete sealed upload.`}),e.restoreCheck?.status===`cannot_restore`&&e.restoreCheck.reason===`invalid_backup`&&(e.phase===`prepared`||e.allowedActions.includes(`settings_prepare`))&&t.addIssue({code:`custom`,message:`A rejected backup requires an explicit new selection.`}),e.backupLocation&&(e.result?.outcome!==`completed`||e.draft?.kind!==`download_backup`||e.download?.localSave?.status!==`saved`||e.download.endReason!==`stored_locally`)&&t.addIssue({code:`custom`,message:`A backup location requires its recorded successful export.`}),e.download?.localSave?.status===`saved`&&!e.backupLocation&&t.addIssue({code:`custom`,message:`A saved backup must identify its verified location.`}),e.temporaryFileCleanup&&!e.result&&t.addIssue({code:`custom`,message:`Cleanup of an applied or ended operation requires its recorded result.`}),(e.phase===`terminal`!=(e.result!==void 0)||e.phase===`terminal`&&(e.observe||e.allowedActions.length||e.download?.allowedFileActions.length))&&t.addIssue({code:`custom`,message:`A terminal Settings result cannot grant input or observation.`}),e.phase===`prepared`&&(!e.preparationId||!e.draft||!e.preparation)&&t.addIssue({code:`custom`,message:`Settings confirmation requires a prepared identity and facts.`}),e.phase===`prepared`&&e.draft?.kind===`import_local_data`&&!dS.safeParse(e.preparation?.preview).success&&t.addIssue({code:`custom`,path:[`preparation`,`preview`],message:`Import confirmation requires the validated current and incoming read context and record counts.`}),e.phase===`prepared`&&(e.draft?.kind===`set_endpoint`||e.draft?.kind===`restore_endpoint`)){let n=cS.safeParse(e.preparation?.endpoint);(!n.success||n.data.endpoint!==e.draft.endpoint||n.data.status!==(e.draft.kind===`set_endpoint`?`saved`:`reset`)||e.draft.kind===`set_endpoint`&&n.data.value!==e.draft.value)&&t.addIssue({code:`custom`,path:[`preparation`,`endpoint`],message:`Endpoint confirmation must name its exact prepared target.`})}e.file&&e.file.receivedSize>e.file.totalSize&&t.addIssue({code:`custom`,message:`Received content exceeds the selected file.`})}),pS=65536;function mS(e){return new TextEncoder().encode(JSON.stringify(e)).length}function hS(e){let t=pS-mS(e);return t>0?3*Math.floor(t/4):0}function gS(e){if(!e||typeof e!=`object`)return;let t=structuredClone(e);if(t.method===`tools/call`&&t.params?.name===`ui_act_card`&&t.params.arguments?.input?.action===`settings_upload_chunk`)return t.id=2**53-1,t.params.arguments.revision=2**53-1,t.params.arguments.input.offset=Kx,t.params.arguments.input.chunkBase64=``,hS(t)}var _S={uiOpenAccount:`ui_open_account`,uiOpenReceipt:`ui_open_receipt`,uiOpenChart:`ui_open_chart`,uiReadCard:`ui_read_card`,uiSubmitCard:`ui_submit_card`,uiActCard:`ui_act_card`,uiReadSettingsFile:`ui_read_settings_file`,sessionOpenReviewManagement:`session_open_review_management`,readGetServerStatus:`read_get_server_status`,readListSupportedProtocols:`read_list_supported_protocols`,readListDeepbookPools:`read_list_deepbook_pools`,readListDeepbookTokens:`read_list_deepbook_tokens`,readInspectDeepbookOrderbook:`read_inspect_deepbook_orderbook`,readGetDeepbookMidPrice:`read_get_deepbook_mid_price`,readGetDeepbookUsdcPriceHistory:`read_get_deepbook_usdc_price_history`,readGetDeepbookUsdcPriceAtTime:`read_get_deepbook_usdc_price_at_time`,readQuoteDeepbookAction:`read_quote_deepbook_action`,readQuoteDeepbookDisplayAmount:`read_quote_deepbook_display_amount`,readSummarizeDeepbookAccountInventory:`read_summarize_deepbook_account_inventory`,readSummarizeWalletAssets:`read_summarize_wallet_assets`,readClassifyWalletAssets:`read_classify_wallet_assets`,readListSettlementAssetGroups:`read_list_settlement_asset_groups`,readSummarizeSettlementAssetGroupParity:`read_summarize_settlement_asset_group_parity`,readPreviewIntentEvidence:`read_preview_intent_evidence`,readListReviewActivity:`read_list_review_activity`,readSummarizeReviewFunnel:`read_summarize_review_funnel`,readGetReviewSessionDetail:`read_get_review_session_detail`,readInspectSuiTransaction:`read_inspect_sui_transaction`,readScanSuiAccountActivity:`read_scan_sui_account_activity`,readSummarizeSuiActivityScan:`read_summarize_sui_activity_scan`,readScanSuiFunctionActivity:`read_scan_sui_function_activity`,readSummarizeSuiFunctionActivityScan:`read_summarize_sui_function_activity_scan`,readSummarizeSuiAccountActivity:`read_summarize_sui_account_activity`,readGetAccountAssetTimeline:`read_get_account_asset_timeline`,settingsCreateLocalSettingsSession:`settings_create_local_settings_session`,settingsGetLocalSettings:`settings_get_local_settings`,actionStartReview:`action_start_review`,actionCreateProposalReview:`action_create_proposal_review`,sessionOpenWalletDisconnectionCard:`session_open_wallet_disconnection_card`,sessionOpenWalletConnectionCard:`session_open_wallet_connection_card`,sessionGetWalletConnectionCard:`session_get_wallet_connection_card`,sessionWaitWalletConnectionCard:`session_wait_wallet_connection_card`,sessionGetInteractionStatus:`session_get_interaction_status`,sessionGetReviewStatus:`session_get_review_status`,sessionGetExecutionResult:`session_get_execution_result`,sessionWaitExecutionResult:`session_wait_execution_result`,accountGetActiveAccount:`account_get_active_account`},vS=H({connectionId:L().min(1),pairingUri:L().startsWith(`wc:`),expiresAt:L().datetime()}).strict(),yS=K([`account`,`receipt`,`chart`,`connect`,`disconnect`,`review`,`settings`]),bS=H({cardId:L().min(1),kind:yS,state:K([`ready`,`running`,`closed`]),revision:R().int().nonnegative(),createdAt:L().datetime(),expiresAt:L().datetime(),input:G(L(),B()),data:B().optional(),reason:K([`completed`,`expired`,`failed`,`server_restarted`,`cancelled`]).optional(),error:L().optional()}).strict().extend({pollAfterMs:R().int().positive(),inputRemainingMs:R().int().nonnegative()}),xS=H({transactionDigest:L().min(1),pureInputs:V(H({index:R().int().nonnegative(),bytes:L().regex(/^0x(?:[0-9a-f]{2})*$/i)}).strict()).refine(e=>new Set(e.map(e=>e.index)).size===e.length,`Duplicate input index.`),ptbGraph:H({mermaid:H({text:L(),namedText:L()}).strict()}).strict().optional()}).strict(),SS=`sui-mcp/card`,CS=`sui-mcp/receipt-display`,wS=`sui-mcp/wallet-display`,TS=`sui-mcp/settings-file`,ES=`suimcp://cards/`,DS=Sc(`kind`,[H({kind:q(`account`),status:q(`input_required`),field:q(`account`),message:L().min(1)}).strict(),H({kind:q(`receipt`),status:q(`input_required`),field:q(`digest`),message:L().min(1)}).strict()]),OS=H({cardId:L().min(1),permission:L().min(1)}).strict();OS.extend({revision:R().int().nonnegative(),input:G(L(),B())}).strict();var kS=xS.extend({cardId:L().min(1),revision:R().int().nonnegative(),attemptId:L().min(1).optional()}),AS=vS.extend({cardId:L().min(1),revision:R().int().nonnegative()}),jS=H({attemptId:L().uuid(),cardId:L().min(1),operationId:L().uuid(),fileId:L().uuid(),offset:R().int().nonnegative().safe(),totalSize:R().int().nonnegative().safe(),sha256:L().regex(/^[a-f0-9]{64}$/),chunkBase64:L()}).strict(),MS={account:_S.uiOpenAccount,receipt:_S.uiOpenReceipt,chart:_S.uiOpenChart,read:_S.uiReadCard,submit:_S.uiSubmitCard,act:_S.uiActCard,readSettingsFile:_S.uiReadSettingsFile};function NS(e){let t=e.commandPending;if(t)return t.phase===`confirming`?`Checking the current selection…`:t.action===`request_signature`?`Waiting for a response… Ask in chat to check the status of this same transaction request. Do not request approval again while its outcome is unknown.`:`Waiting for a response… You can ask in chat to check this same request.`}function $(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function PS(e){return e.kind!==`import_local_data`}function FS(e,t,n){if(e.kind!==`settings`||t.kind!==`settings`||e.cardId!==t.cardId||t.state!==`ready`)return;let r=fS.safeParse(e.data),i=fS.safeParse(t.data);if(!r.success||!i.success)return;let a=r.data,o=i.data,s=o.draft;if(n.action===`settings_select`&&a.operationId===o.operationId){let r=Zx.safeParse(n.draft);if(r.success&&PS(r.data)&&(t.revision===e.revision||LS(r.data,s)))return{kind:`selection_response`,cardId:t.cardId,operationId:o.operationId,draft:r.data}}if(!s||!a.draft||a.operationId!==o.operationId||n.operationId!==o.operationId||JSON.stringify(a.draft)!==JSON.stringify(s))return;if(PS(s))return n.action===`settings_prepare`?{kind:`preparation_response`,cardId:t.cardId,operationId:o.operationId,draft:s}:void 0;let c=o.file?.fileId;if(!(!c||!a.file?.fileId||a.file.fileId!==c||n.action!==`settings_prepare`&&n.action!==`settings_seal_upload`||n.action===`settings_seal_upload`&&n.fileId!==c))return{kind:`backup_check_response`,cardId:t.cardId,operationId:o.operationId,fileId:c,action:n.action}}function IS(e){return Object.keys(e).filter(t=>e[t]!==void 0)}function LS(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>LS(e,t[n]));let n=$(e),r=$(t);if(!n||!r)return!1;let i=IS(n);return i.length===IS(r).length&&i.every(e=>Object.hasOwn(r,e)&&LS(n[e],r[e]))}function RS(e,t=!0){let n=$(e);if(!n)throw Error(`The app did not provide a usable card response.`);let r=()=>Error(`The app provided inconsistent card response information.`),i,a=e=>{let t=$(e);if(!t||typeof t.ok!=`boolean`||i&&!LS(i,t))throw r();i=t};n.structuredContent!==void 0&&a(n.structuredContent);let o,s;if(Array.isArray(n.content))for(let e of n.content){let n=$(e);if(n?.type!==`text`||typeof n.text!=`string`)continue;let i;try{i=$(JSON.parse(n.text))}catch{continue}if(i){if(i.ok!==void 0)a(i);else if(Array.isArray(i.content)){if(!t||o)throw r();let n=rd.safeParse(i);if(!n.success)throw r();o=RS(n.data,!1),s=e,o.structuredContent!==void 0&&a(o.structuredContent)}}}let c=Object.create(null),l=!1;for(let e of[n._meta,o?._meta]){if(e===void 0)continue;let t=$(e);if(!t)throw r();for(let e of IS(t)){let n=t[e];if(Object.hasOwn(c,e)&&!LS(c[e],n))throw r();c[e]=n}l=!0}if(n.isError!==void 0&&typeof n.isError!=`boolean`||o?.isError!==void 0&&n.isError!==void 0&&o.isError!==n.isError||(n.isError===!0||o?.isError===!0)&&i?.ok===!0)throw r();return{...o,...n,...o?{content:[...Array.isArray(n.content)?n.content.filter(e=>e!==s):[],...Array.isArray(o.content)?o.content:[]]}:{},...i?{structuredContent:i}:{},...l?{_meta:c}:{}}}function zS(e,t){let n=$($(e?.data)?.request);return!!e&&(e.kind===`receipt`||e.kind===`review`)&&t.cardId===e.cardId&&t.revision===e.revision&&t.transactionDigest===(e.kind===`receipt`?e.input.digest:n?.transactionDigest)&&(e.kind!==`review`||t.attemptId===n?.attemptId)}function BS(e){let t;for(let n of Array.isArray(e.content)?e.content:[]){let e=$(n),r;if(e?.type===`resource_link`&&typeof e.uri==`string`&&e.uri.startsWith(`suimcp://cards/`)&&(r=e.uri),e?.type===`text`&&typeof e.text==`string`){let t=/^\[Resource link: card_([A-Za-z0-9_-]+)\] (suimcp:\/\/cards\/([A-Za-z0-9_-]+)) \(Saved data for this exact card\.\)$/.exec(e.text);if(!t&&e.text.startsWith(`[Resource link:`)&&e.text.includes(`suimcp://cards/`))throw Error(`The saved card links could not be matched to one card.`);if(t){if(t[1]!==t[3])throw Error(`The saved card links could not be matched to one card.`);r=t[2]}}if(r===void 0)continue;let i=r.slice(ES.length);if(!i||encodeURIComponent(i)!==i||t!==void 0&&i!==t||e?.type===`resource_link`&&typeof e.name==`string`&&e.name.startsWith(`card_`)&&e.name!==`card_${i}`)throw Error(`The saved card links could not be matched to one card.`);t=i}return t}function VS(e){let t=$(e.structuredContent),n=t?.ok===!0?DS.safeParse(t.data):void 0,r=$($(t?.error)?.details),i=n?.success?void 0:t?.ok===!0?$(t.data)?.card??t.data:r?.snapshot,a=i===void 0?void 0:bS.parse(i);a?.kind===`settings`&&fS.parse(a.data);let o=$(e._meta)?.[CS],s=o===void 0?void 0:kS.parse(o);if(s&&!zS(a,s))throw Error(`Transaction details do not match this saved result.`);let c=$(e._meta)?.[wS],l=c===void 0?void 0:AS.parse(c);if(l&&(!a||a.kind!==`connect`||l.cardId!==a.cardId||l.revision!==a.revision||l.connectionId!==$($(a.data)?.operation)?.connectionId))throw Error(`The connection QR code does not match this card.`);return{snapshot:a,display:s,wallet:l,inputRequired:n?.success?n.data:void 0,error:typeof r?.message==`string`?r.message:typeof r?.reason==`string`?r.reason:void 0}}function HS(e,t){let n=document.getElementById(`app`);if(!n)throw Error(`Card root is unavailable.`);let r=document.createElement(`h1`);r.textContent=t.title;let i=document.createElement(`p`);i.className=`ui-note`,i.setAttribute(`role`,`status`);let a=document.createElement(`p`);a.className=`ui-error`,a.setAttribute(`role`,`alert`);let o=document.createElement(`p`);o.className=`ui-note card-guidance`;let s=document.createElement(`section`),c=document.createElement(`div`);c.className=`card-actions`;let l=document.createElement(`div`);l.className=`card-progress-hint`,l.hidden=!0,n.replaceChildren(r,i,a,s,o,l,c);let u=new ig({name:`sui-mcp-card`,version:`0.8.0`},{},{autoResize:!0,strict:!0}),d=new AbortController,f=e===`connect`||e===`disconnect`||e===`review`,p=e===`settings`,m=f||p,h=!1,g,_,v,y,b,ee,x,te=!1,S=!1,ne,re,C={status:`unconfirmed`},ie,w,ae,T,E,oe=`continue`,se,ce,le=0,ue=0,de,fe,pe,D,O,k,me,he,ge=!1;function _e(){if(!T||!y)return;let{input:t,basis:n}=T,r=$(y.data),i=$(n.data),a=$(r?.request),o=$(r?.review),s=$(i?.request),c=!!a&&a.attemptId===s?.attemptId;if(!f)return y.state===`running`||y.reason===`completed`?T.delivery===`rejected`?`past`:`observed`:y.state===`closed`?`past`:`active`;if((e===`connect`||e===`disconnect`)&&typeof t.operationId==`string`){let e=$(r?.operation)?.operationId===t.operationId?$(r?.operation):void 0;if(t.action===`stop_connection`){if(e?.endReason===`user_stopped`)return`observed`;if(e&&e.status!==`running`)return`past`}else if(e)return`observed`}if(t.walletRunId&&t.walletRunId!==$(r?.walletAvailability)?.walletRunId&&t.walletRunId!==r?.acceptedWalletRunId)return`past`;switch(t.action){case`connect`:break;case`prepare_review`:if(typeof o?.reviewRevision==`number`&&typeof t.reviewRevision==`number`&&o.reviewRevision>t.reviewRevision)return o.account===t.account?`observed`:`past`;break;case`request_signature`:if(a?.account===t.account&&a?.reviewRevision===t.reviewRevision)return`observed`;if(typeof o?.reviewRevision==`number`&&typeof t.reviewRevision==`number`&&o.reviewRevision>t.reviewRevision||!a&&o&&o.reviewRevision===t.reviewRevision&&o.account===t.account&&o.status===`refresh_required`&&$(o.state)?.refreshReason===`review_evidence_stale`&&Array.isArray(r?.allowedActions)&&r.allowedActions.includes(`prepare_review`))return`past`;break;case`cancel`:if(y.reason===`cancelled`)return`observed`;break;case`disconnect`:case`stop_connection`:break;case`stop_waiting`:if(c&&(a?.requestStatus===`stopped`||r?.observationStopped===!0))return`observed`;if(c&&[`completed`,`request_failed`,`outcome_unknown`].includes(String(a?.requestStatus)))return`past`;break;case`read_result`:if(c&&(r?.observe===!0||a?.requestStatus===`completed`))return`observed`;if(c&&[`stopped`,`request_failed`].includes(String(a?.requestStatus)))return`past`}return ve()||typeof r?.actionRemainingMs==`number`&&r.actionRemainingMs<=0||[`connect`,`disconnect`,`cancel`,`prepare_review`,`request_signature`].includes(String(t.action))&&(y.state!==`ready`||o?.status===`expired`)?`past`:`active`}function ve(){let e=jx.safeParse(T?.input),t=Vx.safeParse(y?.data);if(!e.success||!t.success)return!1;let n=e.data,r=t.data,i=`operationId`in n&&!!y&&y.state===`ready`&&y.input.operationId===n.operationId&&r.kind!==`review`&&!r.operation;if(n.action===`connect`)return r.kind===`connect`&&i&&JSON.stringify([...n.chains].sort())!==JSON.stringify([...r.requestedChains].sort());if(n.action===`prepare_review`||n.action===`request_signature`)return r.kind!==`review`||r.reviewTarget?.connectionId!==n.connectionId||r.reviewTarget?.account!==n.account;if(n.action!==`disconnect`||r.kind!==`disconnect`)return!1;let a=r.connection?.connectionId===n.connectionId?r.connection:void 0;return a?i&&a.disconnectImpact?.impactId!==n.impactId||r.nextStep.reason===`no_session_to_disconnect`||r.nextStep.reason===`connection_target_changed`:i}function ye(){if(!T)return;let e=_e();e&&T.disposition!==`observed`&&(e!==`active`||T.disposition===`active`)&&(T.disposition=e),T.disposition===`observed`&&(T.retryRequired=!1)}function be(){if(y?.reason===`cancelled`)return;let e=Mx.safeParse($(y?.data)?.automaticAction);return T?.retryRequired&&e.success&&T.input.action===e.data.action?e.data:void 0}function xe(e){let t={connect:`connection request`,prepare_review:`review update`,request_signature:`wallet approval request`,read_result:`transaction status check`,cancel:`cancellation request`,stop_connection:`request to stop connecting`,stop_waiting:$($(e.basis.data)?.request)?.requestStatus===`awaiting_signature`?`request to stop wallet approval`:`request to stop checking the result`,disconnect:`wallet disconnect request`};return f?t[String(e.input.action)]??`request`:`data request`}function Se(e){if(e!==`past`||!T)return;let t=xe(T),n=T.input.action===`read_result`&&$($(y?.data)?.request)?.requestStatus===`outcome_unknown`?` To check this transaction again, ask to open its result in chat.`:``;return`Message from an earlier ${t}: “${T.message}”${n}`}let Ce,we;function Te(){let t=$(y?.data),n=p?$(t?.download):void 0,r=y?.state===`closed`,i=Array.isArray(n?.allowedFileActions)?n.allowedFileActions:[],a=r?[]:[...Array.isArray(t?.allowedActions)?t.allowedActions:[],...i.filter(e=>e===`settings_report_download`||Ce===void 0||Date.now()<Ce)],o=e===`review`&&t?.mode===`review`&&!t.request&&!!g&&y?.state===`ready`,s=o&&de!==void 0&&Date.now()>=de,c=document.visibilityState!==`hidden`,l=d.signal.aborted||C.status===`rejected`,u=C.status===`confirmed`,v=T?.disposition,b=v===`active`,ee=T?.retryRequired===!0,x=T?.input.action===`request_signature`&&v===`active`,S=oe===`paused`,ne=k?.pending?.()===!0,le=k?.displayRecovery?.(),fe=u&&!l&&!w&&!ne&&!s&&!!g,pe=fe&&!E&&!h&&(!m||!(se&&(b||ee||S))),D=Mx.safeParse(t?.automaticAction),O=p?$(n?.localSave):void 0,me=!!y&&!r&&(m?t?.observe===!0||O?.status===`saving`:y.state===`running`),he=!!_&&te&&!l&&!se&&c&&(ce===`explicit`||C.status!==`read_failed`&&(ce===`background`||C.status===`needed`&&C.automatic)),_e=c&&fe&&!ie&&!se&&!ce&&!E&&!ee&&!x&&!S&&f&&D.success&&a.includes(D.data.action)?D.data:void 0,ve=$(t?.restoreCheck),ye=p&&fe&&y?.state===`ready`&&!y.input.backupDelivery&&!E&&!h&&!t?.result&&t?.observe!==!0&&(ve?.status===`cannot_restore`&&[`operation_busy`,`wallet_request_unsettled`].includes(String(ve.reason))||!a.includes(`settings_select`)||!a.includes(`settings_download_backup`)||t?.phase===`prepared`&&!a.includes(`settings_confirm`)||t?.phase===`draft`&&$(t.draft)?.kind!==void 0&&$(t.draft)?.kind!==`import_local_data`&&!a.includes(`settings_prepare`)),we;!l&&_&&(C.status===`read_failed`||ie||C.status===`unconfirmed`?we=`read`:C.status===`needed`?C.automatic||(we=`read`):w||le||!r&&p&&[`pending`,`failed`].includes(String(t?.temporaryFileCleanup))||!r&&(O?.status===`saving`||O?.status===`needs_consent`&&!a.includes(`settings_store_backup`)||O?.status===`failed`&&O.failure===`not_published`&&!n?.endReason&&!a.includes(`settings_store_backup`))||ye?we=`read`:g?!r&&$(t?.progress)?.status===`unavailable`||!r&&$(t?.walletAvailability)?.status===`initializing`&&$(t?.walletAvailability)?.stage===`state_sync`?we=`read`:!r&&!S&&be()?we=`retry`:b&&(!m&&pe&&y?.state===`ready`&&ge&&k?.selectionRecovery?we=`selection`:!me&&!(S&&a.length>0)&&!(T?.input.action===`prepare_review`&&a.includes(`prepare_review`)&&t?.automaticAction===void 0)&&f&&(we=`read`)):(y?.state!==`closed`||w)&&(we=`read`));let Te=f?t?.actionRemainingMs:y?.inputRemainingMs;we===`retry`&&s&&(we=`read`);let Ee=r?void 0:f?t?.nextStateReadAfterMs:p&&Ce!==void 0?Math.max(0,Ce-ue):void 0,De=[!r&&(f?a.length>0:y?.state===`ready`)?Te:void 0,Ee].filter(e=>typeof e==`number`&&Number.isFinite(e)&&e>0),Oe=!l&&!!g&&c&&!re&&!ie&&C.status!==`read_failed`,ke=$(t?.review),Ae=o&&!l&&!ie&&!w&&!b&&!ee&&!S&&C.status!==`read_failed`&&(ne||E?.input.action===`prepare_review`||ke?.preparing===!0||D.success&&D.data.action===`prepare_review`||C.status===`needed`&&ke?.status===`ready_for_wallet_review`);return{current:u,inputEnabled:pe,permitted:a,disposition:v,read:he,auto:_e,recover:we,paused:S,partialDisplayFailure:le,settingsInputBlocked:ye,reviewUpdatePending:Ae,reviewCommandDeliveryFailed:b&&T?.input.action===`prepare_review`,reviewHint:s?void 0:Ae?ne||ke?.preparing||E?.input.action===`prepare_review`?`Updating review…`:`Checking status…`:o&&$(ke?.state)?.refreshReason===`review_evidence_stale`?`Review details are out of date.`:void 0,errors:[C.status===`rejected`?C.message:C.status===`read_failed`?`This card's status could not be checked. Reported message: “${C.message}”`:void 0,ie&&C.status!==`rejected`?`This card could not be opened. Reported message: “${ie}”`:void 0,b&&T?`Message for this ${xe(T)}: “${T.message}”`:void 0,w,le?.message],note:[ae,Se(v)].filter(Boolean).join(` `),expiryAt:Oe&&u&&De.length?ue+Math.min(...De):void 0,poll:Oe&&(me||C.status===`needed`&&!C.automatic),lifetimeAt:!l&&c&&o?de:void 0}}function Ee(e){return e.recover===`retry`?T?.input.action===`connect`?`Retry connection`:`Retry review`:e.recover===`selection`?k?.selectionRecovery?.label:e.recover===`read`?`Check status`:void 0}function De(e){if(d.signal.aborted)return``;let n=e.errors.some(Boolean)||e.recover!==void 0||!!y&&!g&&y.state!==`closed`||y?.state===`closed`&&y.reason!==`completed`,r=e.errors.some(Boolean)||C.status!==`confirmed`||e.recover===`retry`||e.settingsInputBlocked;if(n&&r&&C.status!==`rejected`){if(se||e.read)return`Checking status…`;let t=Ee(e);if(e.recover===`selection`&&t)return`Use ${t} to try the current selection again.`;if(t)return t===`Check status`?w||e.partialDisplayFailure?`Use Check status to read this card and try displaying it again.`:`Use Check status to read this card again.`:t===`Retry connection`?`Use Retry connection to try connecting your wallet again.`:`Use Retry review to try again with the displayed wallet and account.`}return t.guidance?.(y,{confirmed:e.current,readOnly:!g,recoveryNeeded:n,visibleConfirmation:k?.visibleConfirmation?.(),commandPending:m&&E&&e.current&&!e.errors.some(Boolean)&&(E.phase===`confirming`||y?.state===`ready`&&!$(y.data)?.request&&!$($(y.data)?.review)?.preparing)?{phase:E.phase,action:String(E.input.action)}:void 0,approvalUnresolved:T?.input.action===`request_signature`&&e.disposition===`active`||E?.input.action===`request_signature`,automaticPaused:e.paused})??``}function Oe(e=Te()){return e.inputEnabled&&y?.state===`ready`&&ge}function ke(e,t=Te()){return y?.state!==`closed`&&m&&t.inputEnabled&&(e?t.permitted.includes(e.action):t.permitted.length>0)}function Ae(e){let t=Te();return p&&h&&t.current&&!!g&&!E&&!se&&!w&&!d.signal.aborted&&[`settings_begin_upload`,`settings_upload_chunk`,`settings_seal_upload`,`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`].includes(String(e.action))&&(t.permitted.includes(e.action)||e.action===`settings_report_download`)}function je(e){let u=$(y?.data),f=s.querySelector(`.review-action-feedback`),_=s.querySelector(`.review-primary-action`);if(f){let e=s.querySelector(`.review-lifetime`);e?(e.append(l),f.prepend(a)):f.prepend(l,a),f.append(o)}else n.insertBefore(a,s),n.insertBefore(l,c),n.insertBefore(o,l);a.className=f?`ui-note`:`ui-error`,y?(r.textContent=t.titleFor?.(y)??t.title,i.textContent=C.status===`rejected`?`Card unavailable`:!e.current&&y.state===`ready`?f?``:!d.signal.aborted&&(se||e.read)?`Checking whether actions are available in this card…`:`Actions are unavailable until this card's status is checked.`:!g&&y.state!==`closed`?`View only.`:m?$(u?.progress)?.status===`unavailable`?`Current progress is unavailable. The last recorded state is shown.`:!u?.request&&y.state===`closed`&&[`expired`,`server_restarted`,`cancelled`].includes(y.reason??``)?`This card no longer accepts actions.`:``:y.state===`running`?`Reading the requested data…`:y.reason===`completed`?``:y.error??(y.reason===`expired`?`The time to make a selection has ended.`:y.reason===`server_restarted`?`This request ended when Sui MCP restarted.`:``)):i.textContent=re?``:C.status===`read_failed`?`Card status unavailable`:ie||C.status===`rejected`?`Card unavailable`:`Opening card…`,i.hidden=!i.textContent,a.textContent=[...new Set(e.errors.filter(Boolean))].join(` `),a.hidden=!a.textContent;let v=s.querySelector(`.review-status`);if(v){let t=!!f&&(e.reviewUpdatePending||!!a.textContent);t?v.classList.add(`review-status--reserved`):v.classList.remove(`review-status--reserved`),v.setAttribute(`aria-hidden`,String(t))}let b=s.querySelector(`.review-material-status`);if(b&&(b.textContent=b.dataset.previous===`true`||!e.current||e.reviewUpdatePending?b.dataset.previousLabel??``:b.dataset.currentLabel??``),o.textContent=[e.note,De(e)].filter(Boolean).join(` `),o.hidden=!o.textContent,ge)for(let t of s.querySelectorAll(`input, button, select`))(!m||t.tagName!==`BUTTON`||t.dataset.cardAction!==void 0)&&(t.disabled=m?!ke(void 0,e):!Oe(e));if(m)for(let t of s.querySelectorAll(`[data-card-action]`))t.disabled=!ke({action:t.dataset.cardAction},e);if(p)for(let t of s.querySelectorAll(`[data-settings-file-action]`))t.disabled=t.dataset.settingsLocalBlocked===`true`||!(h?Ae({action:t.dataset.cardAction}):ke({action:t.dataset.cardAction},e));_&&(e.reviewUpdatePending||_.dataset.cardAction===`request_signature`&&e.reviewCommandDeliveryFailed||_.dataset.cardAction===void 0)&&(_.disabled=!0),O&&(O.disabled=!!E||!!se)}function Me(e){try{e?.()}catch{w=`The card display could not be closed cleanly. Its stored information is unchanged.`}}function Ne(e){if(!y||d.signal.aborted)return;if(y.state===`ready`&&C.status!==`confirmed`){if(p&&k?.update)try{k.update(y,{automaticPaused:oe===`paused`,settings:Ke,settingsCommandProgress:void 0,onDisplayChange:()=>A()})}catch{w=`This card could not be displayed. Its stored information is unchanged.`}return}let n=m?{...$(y.data),actionRemainingMs:void 0,nextStateReadAfterMs:void 0,...p&&$(y.data)?.download?{download:{...$($(y.data)?.download),remainingMs:void 0}}:{}}:void 0,r=p&&E?.phase===`sending`&&C.status===`confirmed`?FS(E.basis,y,E.input):void 0,i=`${oe===`paused`}:${JSON.stringify(r)}:${y.revision}:${g!==void 0}:${b!==void 0}:${x!==void 0}:${JSON.stringify(n)}`;if(i===me||i===he&&!e)return;he=i;let a=[...s.children],o=new Set([...s.querySelectorAll(`details`)].filter(e=>e.open).map(e=>e.querySelector(`summary`)?.textContent)),c,l=!1,u=!1;try{let e={automaticPaused:oe===`paused`,onDisplayChange:()=>A(),wallet:x,...p?{settings:Ke,settingsCommandProgress:r}:{}};if(k?.update?.(y,e)){me=i,w=void 0;return}if(y.state===`ready`&&g){let n=t.controls(y,e=>{We(e)},b,x,e);c=`node`in n?n:{node:n},l=!0}else(m||y.reason===`completed`)&&y.data!==void 0&&(c=t.result(y,b,g&&y.reason!==`cancelled`?e=>{We(e)}:void 0,x,e));s.replaceChildren(...c?[c.node]:[]),u=!0,c?.mount?.();for(let e of s.querySelectorAll(`details`))o.has(e.querySelector(`summary`)?.textContent)&&(e.open=!0)}catch{u&&s.replaceChildren(...a),Me(c?.dispose),w=`This card could not be displayed. Its stored information is unchanged.`;return}let f=k?.dispose;k=c,ge=l,me=i,w=void 0,Me(f)}function Pe(t,n,r,i,a){if(d.signal.aborted||C.status===`rejected`)return!1;if(t.kind!==e||t.cardId!==_)throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(`The returned information does not match this card.`);let o=$(t.data),s=$(o?.request),c=$(s?.execution),l=o?.automaticAction===void 0?void 0:Mx.safeParse(o.automaticAction);if(l&&!l.success)throw Error(`This card could not start the next step.`);if(y&&t.revision<y.revision)return!1;if(y?.state===`closed`&&C.status===`confirmed`&&JSON.stringify(t)!==JSON.stringify(y))throw Error(`The completed card result cannot change.`);if(v&&[...new Set([...Object.keys(v),...Object.keys(t.input)])].some(e=>JSON.stringify(t.input[e])!==JSON.stringify(v[e])))throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(`The returned information does not match this card.`);if(e===`review`&&($(o?.review)?.reviewSessionId!==void 0&&$(o?.review)?.reviewSessionId!==t.input.reviewSessionId||s&&(s.reviewSessionId!==t.input.reviewSessionId||t.input.attemptId!==void 0&&s.attemptId!==t.input.attemptId)||c&&(c.reviewSessionId!==s?.reviewSessionId||c.attemptId!==s?.attemptId||c.txDigest!==s?.transactionDigest)||$(o?.receipt)?.status===`found`&&$($(o?.receipt)?.receipt)?.txDigest!==s?.transactionDigest)||e===`receipt`&&o?.status===`found`&&$(o.receipt)?.txDigest!==t.input.digest)throw C={status:`rejected`,message:`The saved result does not match the information requested in this card.`},Error(C.message);!v&&(f||t.state!==`ready`)&&(v={...t.input});let u=r!==`preview`;if((!y||t.revision!==y.revision)&&(b=void 0,x=void 0),y=t,ye(),u){ue=Date.now();let t=p?$(o?.download):void 0;if(t?.availability===`available`&&typeof t.remainingMs==`number`&&Number.isFinite(t.remainingMs)){let e=`${o?.operationId}:${$(o?.file)?.fileId}:${t.expiresAt}`;we!==e&&(we=e,Ce=void 0),Ce=Math.min(Ce??1/0,ue+Math.max(0,t.remainingMs))}else p&&t?.availability===`ended`&&(Ce=void 0);g&&e===`review`&&o?.mode===`review`&&!o.request&&typeof o.actionRemainingMs==`number`&&Number.isFinite(o.actionRemainingMs)&&o.actionRemainingMs>=0&&(de=Math.min(de??1/0,ue+o.actionRemainingMs))}return r===`read`&&(C.status!==`needed`||a>C.afterRead)&&(C={status:`confirmed`},ie=void 0),n&&(b=n),x=i,!0}function Fe(){fe!==void 0&&clearTimeout(fe),pe!==void 0&&clearTimeout(pe),D!==void 0&&clearTimeout(D),fe=void 0,pe=void 0,D=void 0,l.hidden=!0}function Ie(e){let t=Ee(e);O?.textContent!==t&&(O?.remove(),O=void 0,t&&(O=cg(t,()=>{if(se||E||d.signal.aborted)return;let e=Te();if(e.recover===`selection`&&Oe(e))k?.selectionRecovery?.retry();else if(e.recover===`retry`){let e=be();e&&Ue(e)}else Le()})));let n=s.querySelector(`.review-primary-action`),r=s.querySelector(`.review-primary-slot`);n&&(n.hidden=!!O&&!!r),O&&(O.disabled=!!se||!!E,r?(O.classList.add(`review-recovery-action`),r.append(O)):(O.classList.remove(`review-recovery-action`),c.append(O)))}async function Le(){let e=k,t=e?.displayRecovery?.(),n=await ze(!0);n?.kind===`accepted`&&y===n.snapshot&&C.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&!w&&e===k&&t&&e?.displayRecovery?.()===t&&(t.retry(),A())}function A(e=!1){if(re){let e=document.createElement(`p`);e.className=`ui-note`,e.textContent=re,s.replaceChildren(e)}else Ne(e);let t=Te();if(je(t),Fe(),Ie(t),d.signal.aborted||C.status===`rejected`)return;t.expiryAt!==void 0&&(pe=setTimeout(()=>{Re(),A()},Math.max(0,t.expiryAt-Date.now()))),t.reviewHint&&!a.textContent&&(l.replaceChildren(),l.textContent=t.reviewHint,l.setAttribute(`role`,`status`),l.hidden=!1);let n=s.querySelector(`.review-time-remaining`);if(n&&t.lifetimeAt!==void 0){let e=t.lifetimeAt,r=()=>{if(d.signal.aborted)return;let t=Math.max(0,e-Date.now()),i=Math.ceil(t/1e3);if(n.textContent=t>0?`Review expires in ${Math.floor(i/60)}:${String(i%60).padStart(2,`0`)}`:`Review time elapsed`,t>0)D=setTimeout(r,Math.min(1e3,t));else{let e=Te();je(e),Ie(e)}};r()}if(t.poll&&y){let e=ue+y.pollAfterMs-Date.now();fe=setTimeout(()=>{ze(!1)},e>0?e:y.pollAfterMs)}t.read?(ce=void 0,Be()):t.auto&&(fe=setTimeout(()=>{let e=Te().auto;e&&Ge(e,`automatic`)},0))}function Re(){C.status!==`rejected`&&C.status!==`read_failed`&&(C={status:`needed`,afterRead:le,automatic:!0})}function ze(e){return d.signal.aborted||C.status===`rejected`||!_||!te?Promise.resolve(void 0):se?se.promise:C.status===`read_failed`&&!e?Promise.resolve(void 0):(ce=e?`explicit`:`background`,A(),se?.promise??Promise.resolve(void 0))}function Be(){let e=++le,t=performance.now(),n={id:e,promise:Promise.resolve().then(async()=>{try{let n,r,i;if(g){let e=VS(await Ve(MS.read,{...g}));if(!e.snapshot)throw Error(e.error??`Saved card data is unavailable.`);if(e.error)throw Error(e.error);n=e.snapshot,r=e.display,i=e.wallet}else{let e=`${ES}${encodeURIComponent(_)}`,t=(await u.readServerResource({uri:e},{signal:d.signal})).contents.find(t=>t.uri===e&&`text`in t);if(!t||!(`text`in t))throw Error(`Saved card data is unavailable.`);n=bS.parse(JSON.parse(t.text));let i=b??ee;r=i&&zS(n,i)?i:void 0}if(d.signal.aborted||C.status===`rejected`)return{kind:`disposed`,id:e};let a=Pe(n,r,`read`,i,e);return ee=void 0,!a&&C.status===`needed`&&e>C.afterRead&&(C={...C,automatic:!1}),A(a),a&&C.status===`confirmed`?{kind:`accepted`,snapshot:n,id:e,requestStartedAt:t}:{kind:`ignored`,id:e}}catch(t){return d.signal.aborted?{kind:`disposed`,id:e}:(C.status!==`rejected`&&(C={status:`read_failed`,message:t instanceof Error?t.message:`Saved card data could not be read. The last displayed result is unchanged.`}),{kind:`failed`,id:e})}}).finally(()=>{se===n&&(se=void 0),A()})};se=n,A()}async function Ve(e,t){return RS(await u.callServerTool({name:e,arguments:t},{signal:d.signal}))}function He(e,t,n){let r=Vx.safeParse(n.data);if(!r.success||!r.data.allowedActions.some(t=>t===e.action))return!1;let i=r.data,a=$(t.data);return e.walletRunId&&e.walletRunId!==i.walletAvailability.walletRunId?!1:e.action===`connect`?i.kind===`connect`&&JSON.stringify(e.chains)===JSON.stringify(i.requestedChains):e.action===`prepare_review`||e.action===`request_signature`?i.kind===`review`&&i.review.reviewRevision===e.reviewRevision&&i.reviewTarget?.account===e.account&&i.reviewTarget?.connectionId===e.connectionId:e.action===`disconnect`?i.kind===`disconnect`&&i.connection?.connectionId===e.connectionId&&i.connection?.disconnectImpact?.impactId===e.impactId:e.action===`stop_connection`?i.kind===`connect`&&i.operation?.operationId===e.operationId&&i.operation?.status===`running`:JSON.stringify(t.input)===JSON.stringify(n.input)&&(i.kind!==`review`||i.request?.attemptId===$(a?.request)?.attemptId&&i.review.reviewRevision===$(a?.review)?.reviewRevision)}async function Ue(e){if(!y||se||!ke(e))return;let t={input:e,basis:y,phase:`confirming`};E=t;let n=await ze(!1);E===t&&(E=void 0,n?.kind===`accepted`&&y===n.snapshot&&C.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&He(e,t.basis,n.snapshot)&&ke(e)?await Ge(e):C.status!==`read_failed`&&C.status!==`rejected`&&!d.signal.aborted&&(ae=`The card state changed. Check the current selection before trying again.`),A())}async function We(e){f&&(T?.disposition===`active`||T?.retryRequired||oe===`paused`)?await Ue(e):await Ge(e)}function j(e,t,n){T={input:e.input,basis:e.basis,message:t,delivery:n,disposition:`active`,retryRequired:e.input.action===`connect`||e.input.action===`prepare_review`},ye(),[`cancel`,`disconnect`,`stop_connection`,`stop_waiting`].includes(String(e.input.action))&&(oe=`paused`),(m||n===`unknown`)&&Re()}async function Ge(e,t=`user`){if(!y||!g||(t===`file`?!Ae(e):m?!ke(e):!Oe()))return;let n={input:e,basis:y,phase:`sending`};E=n,oe=`continue`,(t===`user`||T?.disposition!==`past`)&&(T=void 0),ae=void 0,A();try{let t=VS(await Ve(m?MS.act:MS.submit,{...g,revision:n.basis.revision,input:e}));if(d.signal.aborted||C.status===`rejected`)return;if(!t.snapshot)throw Error(t.error??`The request could not be confirmed.`);t.error&&j(n,t.error,`rejected`),Pe(t.snapshot,t.display,`action`,t.wallet)}catch(e){!d.signal.aborted&&C.status!==`rejected`&&(j(n,e instanceof Error?e.message:`The request could not be confirmed.`,`unknown`),T&&(T.data=$(e)?.data))}finally{E===n&&(E=void 0),A()}}let Ke={uploadChunkLimit(e,t){return g?gS({jsonrpc:`2.0`,id:2**53-1,method:`tools/call`,params:{name:MS.act,arguments:{...g,revision:2**53-1,input:{action:`settings_upload_chunk`,operationId:e,fileId:t,offset:2**53-1,chunkBase64:``}}}})??0:0},async readCurrent(){let e=await ze(!0);if(e?.kind!==`accepted`)throw Error(`The current Settings selection could not be checked. Use Check status before continuing.`);return{snapshot:e.snapshot,requestStartedAt:e.requestStartedAt}},async act(e,t=!1){if(t?!Ae(e):!ke(e))throw Error(`This Settings action is unavailable until its current status has been checked.`);if(await Ge(e,t?`file`:`user`),d.signal.aborted)throw Error(`This card closed before the request finished. Reopen the same conversation to check its status.`);if(T?.input===e){let e=Error(T.message);throw e.data=T.data,e}if(!y)throw Error(`The current Settings status could not be checked.`);return y},setFileTransferActive(e){h=e,A()},async readFile(e){if(!g||!_||!Te().current||d.signal.aborted)throw Error(`Backup read permission is unavailable.`);let t=await Ve(MS.readSettingsFile,{...g,...e}),n=jS.parse($(t._meta)?.[TS]);if(n.cardId!==_||n.operationId!==e.operationId||n.fileId!==e.fileId||n.offset!==e.offset||n.attemptId!==e.attemptId)throw Error(`The backup response does not match this card's selected file.`);return n},download:async(e,t,n)=>{let r=$($(y?.data)?.download);if(!g||!Te().current||d.signal.aborted||document.visibilityState===`hidden`||!r||r.currentAttemptId!==n||r.localSave||r.availability!==`available`||Ce===void 0||Date.now()>=Ce)throw Error(`This download is no longer available in this card.`);try{return{isError:(await u.downloadFile({contents:[{type:`resource`,resource:{uri:`file:///${encodeURIComponent(e)}`,mimeType:`application/json`,blob:t}}]},{signal:d.signal})).isError}}catch(e){if(e&&typeof e==`object`&&`code`in e&&e.code===-32601)return{unsupported:!0};throw e}}};async function qe(){if(te&&ne!==void 0&&!S){S=!0;try{let t=RS(ne),n=$(t._meta);if(t._meta!==void 0&&!n)throw Error(`This card cannot accept actions with the access information provided by the app.`);let r=n?.[SS];if(r!==void 0){let e=OS.safeParse(r);if(!e.success)throw Error(`This card cannot accept actions with the access information provided by the app.`);g=e.data}let i=VS(t);if(i.inputRequired){if(i.inputRequired.kind!==e||g)throw Error(`The app provided inconsistent card input information.`);re=i.inputRequired.message,A();return}let a=BS(t),o=[i.snapshot?.cardId,g?.cardId,a].filter(e=>e!==void 0);if(!o.length)throw Error(`Card data is unavailable.`);if(o.some(e=>e!==o[0])||i.snapshot&&i.snapshot.kind!==e)throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(C.message);_=o[0];let s=i.snapshot;s&&(f||s.state!==`ready`)&&(v={...s.input}),ee=i.display,s&&g&&Pe(s,i.display,`preview`,i.wallet),Re(),A()}catch(e){if(d.signal.aborted)return;ie=e instanceof Error?e.message:`Card data could not be read.`,A()}}}u.ontoolresult=e=>{if(ne===void 0)ne=e,qe();else try{let t=VS(RS(ne)).snapshot??y,n=VS(RS(e)).snapshot;if(t&&n&&(t.cardId!==n.cardId||t.kind!==n.kind))throw Error(`The app returned a different card.`)}catch{C={status:`rejected`,message:`The returned information does not match this card.`},A()}},u.onhostcontextchanged=e=>{e.theme&&(document.documentElement.dataset.theme=e.theme)};let Je=()=>{document.visibilityState!==`hidden`&&g&&S&&C.status!==`read_failed`&&y?.state!==`closed`?ze(!1):A()};document.addEventListener?.(`visibilitychange`,Je),u.onteardown=async()=>{if(d.signal.aborted)return{};d.abort(),E=void 0,document.removeEventListener?.(`visibilitychange`,Je);let e=k?.dispose;return k=void 0,Me(e),A(),{}},u.connect().then(()=>{d.signal.aborted||(te=!0,document.documentElement.dataset.theme=u.getHostContext()?.theme??`light`,qe())}).catch(()=>{d.signal.aborted||(ie=`Could not connect this card to the app.`,A())})}var US=o(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),WS=o((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),GS=o((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),KS=o(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),qS=o(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),JS=o((e=>{var t=WS().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),YS=o((e=>{var t=WS().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),XS=o((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),ZS=o((e=>{var t=GS(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),QS=o((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),$S=o((e=>{var t=QS();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),eC=o(((e,t)=>{var n=$S();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),tC=o((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),nC=o((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
3630
|
+
`)),Dv={0:`ED25519`,1:`Secp256k1`,2:`Secp256r1`,3:`MultiSig`,5:`ZkLogin`,6:`Passkey`},Ov=e=>Object.freeze(e());function kv(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`&&`BYTES_PER_ELEMENT`in e&&e.BYTES_PER_ELEMENT===1}function Av(e){if(!kv(e))throw TypeError(`Uint8Array expected`)}function jv(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(e=>typeof e==`string`):t.every(e=>Number.isSafeInteger(e)):!1}function Mv(e){if(typeof e!=`function`)throw TypeError(`function expected`);return!0}function Nv(e,t){if(typeof t!=`string`)throw TypeError(`${e}: string expected`);return!0}function Pv(e,t=`number`){if(typeof e!=`number`)throw TypeError(`${t}: expected number, got ${typeof e}`);if(!Number.isSafeInteger(e))throw RangeError(`${t}: expected safe integer, got ${e}`)}function Fv(e,t){if(!jv(!1,t))throw TypeError(`${e}: array of numbers expected`)}var Iv=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Lv(e,t=e.length){let n=Array(t);for(let r=0;r<t;r++)n[r]=e[r];return n}var Rv=(()=>{try{let e=new TextDecoder;return e.decode(Uint8Array.of(65,48,43,127))===`A0+`?e:void 0}catch{return}})(),zv=8192;function Bv(e){let t=e.length;if(Rv!==void 0&&t>=12)return Rv.decode(e);if(t<=zv)return String.fromCharCode.apply(null,e);let n=``;for(let r=0;r<t;r+=zv)n+=String.fromCharCode.apply(null,e.subarray(r,r+zv));return n}function Vv(e){if(Pv(e),e<=0||e>8)throw RangeError(`radix2: bits should be in (0..8]`);let t=Iv[e]-1;return{encode:n=>{Av(n);let r=n.length,i=new Uint8Array(Math.ceil(r*8/e)),a=0,o=0,s=0;for(let c=0;c<r;)for(c+2<r?(a=a<<24|n[c]<<16|n[c+1]<<8|n[c+2],o+=24,c+=3):(a=(a<<8|n[c])&65535,o+=8,c++);o-=e,i[s++]=a>>o&t,!(o<e););return o>0&&(i[s]=a<<e-o&t),i},decode:t=>{let n=t.length,r=new Uint8Array(Math.floor(n*e/8)),i=0,a=0,o=0;for(let s=0;s<n;s++)for(i=(i<<e|t[s])&65535,a+=e;a>=8;a-=8)r[o++]=i>>a-8&255;if(i=i<<8-a&255,a>=e)throw Error(`Excess padding`);if(i>0)throw Error(`Non-zero padding: ${i}`);return r}}}function Hv(e,t){let n=e.length;if(n>128)throw Error(`alphabet: max 128 letters`);let r=new Uint8Array(n),i=new Int8Array(128).fill(-1);for(let t=0;t<n;t++){let n=e.charCodeAt(t);if(e.codePointAt(t)!==n||n>127)throw Error(`alphabet: single-char ASCII letters only`);r[t]=n,i[n]=t}if(t!==void 0)for(let e of Object.keys(t)){let n=e.charCodeAt(0),r=i[t[e].charCodeAt(0)];if(e.length!==1||n>127||r===void 0||r===-1)throw Error(`alphabet: invalid alias ${e}`);i[n]=r}return{encode:e=>{let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++){let i=e[n],a=r[i];if(a===void 0)throw Error(`alphabet.encode: invalid digit ${i}`);t[n]=a}return Bv(t)},decode:t=>{Nv(`decode`,t);let n=t.length,r=new Uint8Array(n);for(let a=0;a<n;a++){let n=t.charCodeAt(a),o=n<128?i[n]:-1;if(o===-1)throw Error(`Unknown letter "${t[a]}". Allowed: ${e}`);r[a]=o}return r}}}function Uv(e){return Mv(e),function(...t){try{return e.apply(null,t)}catch{}}}var Wv=Hv(`qpzry9x8gf2tvdw0s3jn54khce6mua7l`),Gv=/^[\x21-\x60\x7b-\x7e]+$/;function Kv(e,t){for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);if(r<33||r>126)throw Error(`${e}: printable ASCII expected`)}}function qv(e){let t=e.length,n=new Uint8Array(t);for(let r=0;r<t;r++){let t=e[r];if(t<0||t>=32)throw Error(`alphabet.encode: invalid digit ${t}`);n[r]=t}return n}var Jv=[996825010,642813549,513874426,1027748829,705979059];function Yv(e){let t=e>>25,n=(e&33554431)<<5;for(let e=0;e<Jv.length;e++)(t>>e&1)==1&&(n^=Jv[e]);return n}function Xv(e,t,n=1){let r=e.length,i=1;for(let t=0;t<r;t++){let n=e.charCodeAt(t);if(n<33||n>126)throw Error(`Invalid prefix (${e})`);i=Yv(i)^n>>5}i=Yv(i);for(let t=0;t<r;t++)i=Yv(i)^e.charCodeAt(t)&31;for(let e of t)i=Yv(i)^e;for(let e=0;e<6;e++)i=Yv(i);i^=n;let a=new Uint8Array(6);for(let e=0;e<6;e++)a[e]=i>>>5*(5-e)&31;return Wv.encode(a)}function Zv(e){let t=e===`bech32`?1:734539939,n=Vv(5),r=e=>{Av(e);let t=e.length,n=Array(Math.ceil(t*8/5)),r=0,i=0,a=0;for(let o=0;o<t;o++)for(r=r<<8|e[o],i+=8;i>=5;i-=5)n[a++]=r>>i-5&31;return i>0&&(n[a]=r<<5-i&31),n},i=e=>{Fv(`radix2.decode`,e);let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++){let t=e[n];if(t<0||t>=32)throw Error(`convertRadix2: invalid word=${t}`);r[n]=t}return n.decode(r)},a=Uv(i);function o(e,n,r=90){Nv(`bech32.encode prefix`,e),r!==!1&&Pv(r,`limit`),kv(n)&&(n=Lv(n)),Fv(`bech32.encode`,n);let i=e.length;if(i===0)throw TypeError(`Invalid prefix length ${i}`);let a=i+7+n.length;if(r!==!1&&a>r)throw TypeError(`Length ${a} exceeds limit ${r}`);Kv(`bech32.encode prefix`,e);let o=e.toLowerCase(),s=Xv(o,n,t);return`${o}1${Wv.encode(qv(n))}${s}`}function s(e,n=90){Nv(`bech32.decode input`,e),n!==!1&&Pv(n,`limit`);let r=e.length;if(r<8||n!==!1&&r>n)throw TypeError(`invalid string length ${r}, expected (8..${n})`);let i=e.toLowerCase();if(e!==i&&!Gv.test(e))throw Kv(`bech32.decode input`,e),Error(`mixed-case string not allowed`);let a=i.lastIndexOf(`1`);if(a===0||a===-1)throw Error(`invalid separator "1"`);let o=i.slice(0,a),s=i.slice(a+1);if(s.length<6)throw Error(`invalid data length`);let c=Wv.decode(s),l=Lv(c,c.length-6),u=Xv(o,l,t);if(!s.endsWith(u))throw Error(`Invalid checksum in ${e}`);return{prefix:o,words:l}}let c=Uv(s);function l(e,t=90){let{prefix:n,words:r}=s(e,t);return{prefix:n,words:r,bytes:i(r)}}function u(e,t){return o(e,r(t))}return{encode:o,decode:s,encodeFromBytes:u,decodeToBytes:l,decodeUnsafe:c,fromWords:i,fromWordsUnsafe:a,toWords:r}}var Qv=Ov(()=>Zv(`bech32`));function $v(e){let{prefix:t,words:n}=Qv.decode(e);if(t!==`suiprivkey`)throw Error(`invalid private key prefix`);let r=new Uint8Array(Qv.fromWords(n)),i=r.slice(1);return{scheme:Dv[r[0]],secretKey:i}}var ey=`external-proposal-alpha-2026-05-25`,ty=`proposal-review-model-alpha-2026-05-25`,ny=L().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),ry=/transaction\s*bytes?|transactionBytes|tx\s*bytes?|serialized\s*transaction|serializedTransaction|signed\s*transaction|signing\s*request|signingRequest|wallet\s*authorization|walletAuthorization|private\s*key|privateKey|secret\s*key|secretKey|seed\s*phrase|mnemonic|suiprivkey|signature|route[-_\s]*selected|routeSelectedPlan|bcs\s*transaction|programmable\s*transaction/i,iy=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/,ay=/suiprivkey1[023456789acdefghjklmnpqrstuvwxyz]+/gi,oy=/(^|[^0-9a-fA-F])(?:0x)?[0-9a-fA-F]{64}($|[^0-9a-fA-F])/,sy=/(^|[^A-Za-z0-9+/_=-])(?:[A-Za-z0-9+/]{43}=|[A-Za-z0-9+/]{44}|[A-Za-z0-9_-]{43,44})($|[^A-Za-z0-9+/_=-])/,cy=/^(?:0|[1-9][0-9]*)(?:\.[0-9]+)?$/,ly=[12,15,18,21,24];function uy(e,t,n={}){return L().min(1).max(e).superRefine((e,r)=>{(ry.test(e)||iy.test(e)||fy(e)||py(e)||!n.allowRawSecretLikeText&&my(e))&&r.addIssue({code:`custom`,message:`${t} must not contain executable, signing, private-key, mnemonic, route-selected, or encoded secret-like material`})})}function dy(e,t){return uy(e,t,{allowRawSecretLikeText:!0})}function fy(e){return(e.match(ay)??[]).some(e=>{try{return $v(e.toLowerCase()),!0}catch{return e.toLowerCase().startsWith(`suiprivkey1`)}})}function py(e){let t=e.normalize(`NFKD`).toLowerCase().replace(/[^a-z]+/g,` `).trim().split(/\s+/).filter(Boolean);for(let e of ly)if(!(t.length<e)){for(let n=0;n<=t.length-e;n+=1)if(Tv(t.slice(n,n+e).join(` `),Ev))return!0}return!1}function my(e){return oy.test(e)||sy.test(e)}var hy=uy(80,`amountDisplay`).refine(e=>cy.test(e)&&/[1-9]/.test(e),{message:`Expected a positive decimal display amount`}),gy=H({kind:K([`mcp_server`,`ai_client`,`user`,`other`]),name:uy(120,`source.name`),reference:uy(256,`source.reference`).optional()}).strict(),_y=H({address:y_.optional(),label:uy(120,`party.label`).optional()}).strict().refine(e=>e.address!==void 0||e.label!==void 0,{message:`Expected address or label`}),vy=H({amountDisplay:hy,amountKind:q(`display_proposal`).default(`display_proposal`),symbol:uy(64,`amount.symbol`).optional(),coinType:dy(512,`amount.coinType`).optional(),denomination:uy(64,`amount.denomination`).optional()}).strict(),yy=H({packageId:dy(128,`action.target.packageId`).optional(),module:uy(128,`action.target.module`).optional(),function:uy(128,`action.target.function`).optional(),objectId:dy(128,`action.target.objectId`).optional(),label:uy(120,`action.target.label`).optional()}).strict().refine(e=>e.packageId!==void 0||e.module!==void 0||e.function!==void 0||e.objectId!==void 0||e.label!==void 0,{message:`Expected at least one action target field`}),by=H({direction:K([`outgoing`,`expected_incoming`,`fee`]),amount:vy,recipient:_y.optional(),description:uy(512,`assetFlow.description`).optional()}).strict(),xy=H({id:uy(120,`proposal.id`),source:gy,network:q(`sui:mainnet`),createdAt:ny,expiresAt:ny.optional(),purpose:uy(512,`purpose`),assumptions:V(uy(512,`assumptions[]`)).max(20).optional(),requiredUserChoices:V(uy(512,`requiredUserChoices[]`)).max(20).optional()}).strict(),Sy=Sc(`type`,[xy.extend({type:q(`payment`),payment:H({amount:vy,recipient:_y,target:uy(512,`payment.target`).optional()}).strict()}).strict(),xy.extend({type:q(`sui_action`),action:H({actionKind:uy(120,`action.actionKind`),target:yy,recipient:_y.optional(),assetFlow:V(by).max(20).optional()}).strict()}).strict()]),Cy=H({id:L(),label:L(),status:K([`pass`,`warning`,`fail`]),message:L(),source:K([`proposal`,`adapter`,`registry`,`quote`,`wallet`,`simulation`,`network`])}).strict(),wy=H({id:L(),label:L(),reason:L()}).strict(),Ty=H({modelVersion:q(ty),contractVersion:q(ey),proposalId:L(),proposalType:K([`payment`,`sui_action`]),proposalSource:gy,proposedAction:H({kind:K([`payment`,`sui_action`]),title:L(),purpose:L(),network:q(`sui:mainnet`),recipient:_y.optional(),target:W([L(),yy]).optional()}).strict(),assetFlow:H({outgoing:V(vy),expectedIncoming:V(vy),fees:V(vy)}).strict(),recipients:V(_y),targets:V(W([L(),yy])),evidenceUsed:V(H({id:L(),label:L(),source:K([`external_proposal`,`local_schema`]),summary:L()}).strict()),missingEvidence:V(wy),requiredUserChoices:V(wy),unsupportedClaims:V(H({id:L(),label:L(),reason:L()}).strict()),rejectedExecutableFields:V(H({fieldName:L(),reason:L()}).strict()),freshness:H({proposalCreatedAt:ny,proposalExpiresAt:ny.optional(),evaluatedAt:ny,status:K([`current`,`expired`,`created_in_future`,`expiry_not_provided`]),reason:L()}).strict(),blockingChecks:V(Cy),nonSignableReason:H({code:q(`external_proposal_review_only`),message:L(),blockedCapabilities:V(L())}).strict()}).strict();H({requestedIntent:Sy,implementationStatus:q(`read_only_review_only`),contractVersion:q(ey)}).strict();var Ey=[`adapter_not_implemented`,`producer_stage_missing`,`wallet_review_contract_emit_missing`,`network_mismatch`,`insufficient_balance`,`insufficient_gas`,`allowlist_violation`,`asset_mismatch`,`amount_mismatch`,`wallet_mismatch`,`unsupported_action`,`object_resolution_failed`,`proposal_review_only`],Dy=[`review_evidence_stale`,`quote_stale`,`quote_unavailable`,`simulation_transient_failure`,`review_update_failed`,`wallet_connection_changed`],Oy=[`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`],ky=[`humanReadableReview`,`simulation`,`transactionReviewData`,`ptbVisualization`,`assetFlowActual`,`beforeAfterBalance`],Ay=K([`client.core.simulateTransaction`,`client.transactionExecutionService.simulateTransaction`]),jy=`ptb-visualization-contract-alpha-2026-05-25`,My=[`proposedAction`,`assetFlow`,`recipients`,`targets`,`evidenceUsed`,`missingEvidence`,`requiredUserChoices`,`unsupportedClaims`,`freshness`,`blockingChecks`],Ny=[`effects`,`balanceChanges`,`objectTypes`,`transaction`],Py=[`transaction_bytes`,`serialized_transaction`,`wallet_signature_request`,`private_key_material`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`],Fy=[`transaction_building_input`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`,`route_recommendation`],Iy=v_,Ly=`MIST`,Ry=[`checkedAt`,`expiresAt`],zy=[`checkedAt`,`expiryStatus`],By=[`rawAmount`,`asset`,`amountRole`],Vy=[`minOutRaw`,`asset`,`amountRole`],Hy=[`gasBudgetRaw`,`asset`,`amountRole`],Uy=[`gasUsedRaw`,`asset`,`amountRole`],Wy=[`checkedAt`,`gasResolutionStatus`,`unresolvedReason`],Gy=[`balanceChanges`,`asset`,`amountRole`],Ky=[`coinType`,`decimals`],qy=[`quoteEvidenceId`,`minOutRaw`],Jy=[`maxSlippageBps`,`userSelection`],Yy=[`maxSlippageBps`,`minOutRaw`],Xy=[`ownerAccount`,`objects`],Zy=[`pinned_sdk_registry`,`verified_mainnet_onchain_metadata`,`wallet_account_read`,`quote_evidence`,`review_time_simulation`,`validated_request_fact`,`user_explicit_choice`],Qy=[`input`,`expected_output`,`minimum_output`,`gas_budget`,`gas_used`,`fee`,`balance_delta`],$y={input:{kinds:[`validated_request_fact`,`wallet_account_read`,`user_explicit_choice`],fields:By},expected_output:{kinds:[`quote_evidence`,`review_time_simulation`],fields:By},minimum_output:{kinds:[`quote_evidence`],fields:Vy},gas_budget:{kinds:[`review_time_simulation`],fields:Hy},gas_used:{kinds:[`review_time_simulation`],fields:Uy},fee:{kinds:[`review_time_simulation`],fields:By},balance_delta:{kinds:[`review_time_simulation`],fields:Gy}},eb={pinned_sdk_metadata:{kinds:[`pinned_sdk_registry`],fields:Ky},verified_mainnet_onchain_metadata:{kinds:[`verified_mainnet_onchain_metadata`],fields:Ky}},tb={user_explicit:{kinds:[`user_explicit_choice`],fields:Jy},adapter_policy_from_quote_evidence:{kinds:[`quote_evidence`],fields:Yy}},nb={kinds:[`review_time_simulation`],fields:Wy},rb={kinds:[`quote_evidence`],fields:qy},ib={kinds:[`validated_request_fact`],fields:Ry},ab={kinds:[`validated_request_fact`],fields:zy},ob={raw_quantity_amount:{byRole:$y},unit_metadata:{bySource:eb},gas_unresolved_status:nb,expiry_status:{current:ib,expired:ib,not_provided:ab,not_applicable:ab},quote_min_out:rb,slippage_policy:{bySource:tb},object_ownership:{kinds:[`wallet_account_read`],fields:Xy},simulation_result:{kinds:[`review_time_simulation`],fields:Ny}},sb={gasBudgetClaimId:{factKind:`raw_quantity_amount`,role:`gas_budget`,assetCoinType:Iy,rawUnit:Ly},gasUsedClaimId:{factKind:`raw_quantity_amount`,role:`gas_used`,assetCoinType:Iy,rawUnit:Ly},gasObjectOwnershipClaimId:{factKind:`object_ownership`,ownership:`owned_by_account`}},cb=L().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),lb=B_(`unsigned integer`),ub=L().regex(/^0x[0-9a-fA-F]{1,64}$/,{message:`Expected a Sui object id`}),db=L().min(1).max(512).refine(e=>{try{return U_(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),X=L().min(1).max(120),fb=H({symbol:L().min(1).max(64).optional(),coinType:db}).strict(),pb=/transaction\s*bytes?|tx\s*bytes?|serialized\s*transaction|serializedTransaction|signed\s*transaction|signing\s*request|signingRequest|wallet\s*authorization|walletAuthorization|private\s*key|privateKey|secret\s*key|secretKey|seed\s*phrase|mnemonic|suiprivkey|signature|bcs\s*transaction/i,mb=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/;function hb(e,t){return L().min(1).max(e).superRefine((e,n)=>{(pb.test(e)||mb.test(e))&&n.addIssue({code:`custom`,message:`${t} must not contain executable transaction, signing, private-key, mnemonic, or long encoded material`})})}function gb(e,t){let n=new Set(e);return t.filter(e=>!n.has(e))}function _b(e,t,n,r,i){let a=gb(t,n);a.length!==0&&e.addIssue({code:`custom`,path:r,message:`${i} must include ${a.join(`, `)}`})}function vb(e,t,n,r,i){_b(e,t,n,r,i)}function yb(e,t,n){e.addIssue({code:`custom`,path:t,message:`${n} must match referenced evidence claim`})}function Z(e,t,n,r,i){t!==n&&yb(e,r,i)}function bb(e,t,n,r,i){let a=new Set(t),o=new Set(n);if(a.size!==o.size)yb(e,r,i);else for(let t of a)if(!o.has(t)){yb(e,r,i);return}}function xb(e,t,n,r,i){(t.symbol!==n.symbol||t.coinType!==n.coinType)&&yb(e,r,i)}function Sb(e,t,n,r,i){try{U_(t.coinType)!==n&&yb(e,r,i)}catch{yb(e,r,i)}}var Cb=H({kind:K([`natural_language_intent`,`external_proposal`,`mcp_action_request`,`local_review_request`]),sourceId:L().min(1).max(160),capturedAt:cb,authority:q(`untrusted_until_review_regenerates_and_verifies`),userSelectionSource:K([`user_explicit`,`prior_user_explicit_context`]).optional()}).strict(),wb=H({id:X,kind:K(Zy),network:q(`sui:mainnet`),source:L().min(1).max(240),verifiedAt:cb,fields:V(L().min(1).max(120)).min(1)}).strict(),Tb=Sc(`factKind`,[H({id:X,factKind:q(`raw_quantity_amount`),sourceEvidenceId:X,role:K(Qy),asset:fb,rawAmount:lb}).strict(),H({id:X,factKind:q(`unit_metadata`),sourceEvidenceId:X,source:K([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),coinType:db,decimals:R().int().min(0).max(255)}).strict(),H({id:X,factKind:q(`gas_unresolved_status`),sourceEvidenceId:X,checkedAt:cb,status:q(`unresolved`),reason:L().min(1).max(240)}).strict(),H({id:X,factKind:q(`expiry_status`),sourceEvidenceId:X,checkedAt:cb,status:K([`current`,`expired`,`not_provided`,`not_applicable`]),expiresAt:cb.optional(),reason:L().min(1).max(240).optional()}).strict(),H({id:X,factKind:q(`quote_min_out`),sourceEvidenceId:X,quoteEvidenceId:L().min(1).max(120),minOutRaw:lb}).strict(),H({id:X,factKind:q(`slippage_policy`),sourceEvidenceId:X,policySource:K([`user_explicit`,`adapter_policy_from_quote_evidence`]),maxSlippageBps:R().int().min(0).max(1e4),minOutRaw:lb.optional()}).strict(),H({id:X,factKind:q(`object_ownership`),sourceEvidenceId:X,objectId:ub,ownerAccount:y_,ownership:K([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`])}).strict(),H({id:X,factKind:q(`simulation_result`),sourceEvidenceId:X,provider:Ay,checksEnabled:q(!0),simulatedAt:cb,status:K([`success`,`failed`,`unavailable`]),requiredFields:V(K(Ny)).min(Ny.length),missingFields:V(K(Ny)).default([]),failureReason:L().min(1).max(240).optional()}).strict()]),Eb=H({id:X,role:K(Qy),asset:fb,rawAmount:lb,unit:H({decimals:R().int().min(0).max(255),source:K([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),sourceField:L().min(1).max(160),unitClaimId:X}).strict(),amountClaimId:X,displayOnly:H({amountDisplay:L().min(1).max(120),reason:q(`presentation_only_not_signing_input`)}).strict().optional()}).strict(),Db=H({objectId:ub,ownerAccount:y_,ownershipClaimId:X}).strict(),Ob=H({source:q(`review_time_simulation`),checkedAt:cb,gasBudgetRaw:lb.optional(),gasBudgetClaimId:X.optional(),gasUsedRaw:lb.optional(),gasUsedClaimId:X.optional(),gasObjects:V(Db).optional(),unresolvedReason:L().min(1).max(240).optional(),unresolvedClaimId:X.optional()}).strict().superRefine((e,t)=>{let n=e.gasBudgetRaw!==void 0||e.gasUsedRaw!==void 0;!n&&e.unresolvedReason===void 0&&t.addIssue({code:`custom`,message:`Expected gas evidence or unresolvedReason`}),n&&e.unresolvedReason!==void 0&&t.addIssue({code:`custom`,path:[`unresolvedReason`],message:`Resolved gas quantities must not include unresolvedReason`}),e.gasBudgetRaw!==void 0&&e.gasBudgetClaimId===void 0&&t.addIssue({code:`custom`,path:[`gasBudgetClaimId`],message:`gasBudgetRaw requires gasBudgetClaimId`}),e.gasBudgetRaw===void 0&&e.gasBudgetClaimId!==void 0&&t.addIssue({code:`custom`,path:[`gasBudgetClaimId`],message:`gasBudgetClaimId requires gasBudgetRaw`}),e.gasUsedRaw!==void 0&&e.gasUsedClaimId===void 0&&t.addIssue({code:`custom`,path:[`gasUsedClaimId`],message:`gasUsedRaw requires gasUsedClaimId`}),e.gasUsedRaw===void 0&&e.gasUsedClaimId!==void 0&&t.addIssue({code:`custom`,path:[`gasUsedClaimId`],message:`gasUsedClaimId requires gasUsedRaw`}),e.unresolvedReason!==void 0&&e.unresolvedClaimId===void 0&&t.addIssue({code:`custom`,path:[`unresolvedClaimId`],message:`unresolvedReason requires unresolvedClaimId`}),e.unresolvedReason===void 0&&e.unresolvedClaimId!==void 0&&t.addIssue({code:`custom`,path:[`unresolvedClaimId`],message:`unresolvedClaimId requires unresolvedReason`})}),kb=Sc(`status`,[H({checkedAt:cb,status:q(`current`),expiresAt:cb,evidenceClaimId:X}).strict(),H({checkedAt:cb,status:q(`expired`),expiresAt:cb,evidenceClaimId:X}).strict(),H({checkedAt:cb,status:q(`not_provided`),evidenceClaimId:X,reason:L().min(1).max(240),expiresAt:_c().optional()}).strict(),H({checkedAt:cb,status:q(`not_applicable`),evidenceClaimId:X,reason:L().min(1).max(240),expiresAt:_c().optional()}).strict()]).superRefine((e,t)=>{e.status===`current`&&Date.parse(e.expiresAt)<=Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`expiresAt`],message:`Current expiry evidence requires expiresAt after checkedAt`}),e.status===`expired`&&Date.parse(e.expiresAt)>Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`expiresAt`],message:`Expired expiry evidence requires expiresAt at or before checkedAt`})}),Ab=H({status:K([`required_and_verified`,`not_required_for_action`,`missing`,`stale`]),quoteEvidenceId:L().min(1).max(120).optional(),quoteEvidenceClaimId:X.optional(),maxSlippageBps:R().int().min(0).max(1e4).optional(),minOutRaw:lb.optional(),policySource:K([`user_explicit`,`adapter_policy_from_quote_evidence`]).optional(),policyEvidenceClaimId:X.optional()}).strict().superRefine((e,t)=>{e.status===`required_and_verified`&&(e.quoteEvidenceId===void 0||e.quoteEvidenceClaimId===void 0||e.maxSlippageBps===void 0||e.minOutRaw===void 0||e.policySource===void 0||e.policyEvidenceClaimId===void 0)&&t.addIssue({code:`custom`,message:`Verified min-out evidence requires quoteEvidenceId, quoteEvidenceClaimId, maxSlippageBps, minOutRaw, policySource, and policyEvidenceClaimId`}),e.quoteEvidenceId!==void 0&&e.quoteEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`quoteEvidenceId requires quoteEvidenceClaimId`}),e.quoteEvidenceId===void 0&&e.quoteEvidenceClaimId!==void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`quoteEvidenceClaimId requires quoteEvidenceId`}),e.minOutRaw!==void 0&&e.quoteEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`quoteEvidenceClaimId`],message:`minOutRaw requires quoteEvidenceClaimId`}),e.maxSlippageBps!==void 0&&e.policySource===void 0&&t.addIssue({code:`custom`,path:[`policySource`],message:`maxSlippageBps requires policySource`}),e.policySource!==void 0&&e.policyEvidenceClaimId===void 0&&t.addIssue({code:`custom`,path:[`policyEvidenceClaimId`],message:`policySource requires policyEvidenceClaimId`}),e.policySource===void 0&&e.policyEvidenceClaimId!==void 0&&t.addIssue({code:`custom`,path:[`policyEvidenceClaimId`],message:`policyEvidenceClaimId requires policySource`})}),jb=H({checkedAt:cb,ownerAccount:y_,objects:V(H({objectId:ub,role:K([`input_coin`,`gas_coin`,`protocol_object`,`shared_object`,`receiving_object`]),ownership:K([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`]),evidenceClaimId:X}).strict()).min(1)}).strict(),Mb=H({evidenceClaimId:X,transactionDigest:b_,provider:Ay,checksEnabled:q(!0),simulatedAt:cb,status:K([`success`,`failed`,`unavailable`]),requiredFields:V(K(Ny)).min(Ny.length),missingFields:V(K(Ny)).default([]),failureReason:L().min(1).max(240).optional()}).strict().refine(e=>e.status!==`success`||e.missingFields.length===0,{message:`Successful simulation evidence must not have missing required fields`}).refine(e=>Ny.every(t=>e.requiredFields.includes(t)),{message:`Simulation evidence must include every required simulation field`}).refine(e=>e.status===`success`||e.failureReason!==void 0,{message:`Failed or unavailable simulation evidence requires failureReason`}).refine(e=>e.status!==`success`||e.failureReason===void 0,{message:`Successful simulation evidence must not include failureReason`}),Nb=H({fields:V(K(My)).min(My.length),transactionDigest:b_,source:q(`review_model_or_adapter_equivalent`),purpose:q(`human_review_before_wallet_authorization`)}).strict().refine(e=>My.every(t=>e.fields.includes(t)),{message:`Human-readable review fields must include every required review field`}),Pb=H({runtimeStatus:q(`emitted_pre_handoff`),mcpAndReviewUiMayExpose:V(K([`human_readable_review`,`ptb_visualization_artifact`,`diagnostics`,`status_checks`])).min(1),prohibited:V(K(Py)).min(1)}).strict().superRefine((e,t)=>{vb(t,e.prohibited,Py,[`prohibited`],`prohibited`)}),Fb=H({schemaVersion:q(1),adapterId:L().min(1).max(120),protocol:L().min(1).max(120),actionKind:L().min(1).max(120),network:q(`sui:mainnet`),inputProvenance:Cb,sourceReferences:V(wb).min(1),evidenceClaims:V(Tb).min(1),rawQuantities:V(Eb).min(1),gas:Ob,expiry:kb,slippageOrMinOut:Ab,objectOwnership:jb,simulation:Mb,humanReadableReview:Nb,outputBoundary:Pb,reviewedTransactionDigest:b_}).strict().superRefine((e,t)=>{let n=new Set,r=new Map,i=new Map;e.sourceReferences.forEach((e,a)=>{n.has(e.id)&&t.addIssue({code:`custom`,path:[`sourceReferences`,a,`id`],message:`sourceReferences id must be unique: ${e.id}`}),n.add(e.id),r.has(e.id)||(r.set(e.id,e),i.set(e.id,a))});let a=new Set,o=new Map,s=new Map;e.evidenceClaims.forEach((e,n)=>{a.has(e.id)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`id`],message:`evidenceClaims id must be unique: ${e.id}`}),a.add(e.id),o.has(e.id)||(o.set(e.id,e),s.set(e.id,n))});let c=(e,n)=>{if(e===void 0)return;let i=r.get(e);if(i!==void 0)return i;t.addIssue({code:`custom`,path:n,message:`source evidence id must reference sourceReferences[].id: ${e}`})},l=(e,n,r,a)=>{if(e===void 0)return;let o=c(e,r);if(o===void 0)return;let s=i.get(e),l=s===void 0?r:[`sourceReferences`,s];n.kinds.includes(o.kind)||t.addIssue({code:`custom`,path:[...l,`kind`],message:`${a} source kind must be one of ${n.kinds.join(`, `)}`}),_b(t,o.fields,n.fields,[...l,`fields`],`${a} sourceReferences fields`)},u=(e,n,r,i)=>{if(e===void 0){t.addIssue({code:`custom`,path:r,message:`${i} must reference evidenceClaims[].id`});return}let a=o.get(e);if(a===void 0)t.addIssue({code:`custom`,path:r,message:`${i} must reference evidenceClaims[].id: ${e}`});else{if(a.factKind!==n){let a=s.get(e),o=a===void 0?r:[`evidenceClaims`,a,`factKind`];t.addIssue({code:`custom`,path:o,message:`${i} evidence claim factKind must be ${n}`})}return a}};if(e.evidenceClaims.forEach((e,n)=>{e.factKind===`raw_quantity_amount`&&l(e.sourceEvidenceId,ob.raw_quantity_amount.byRole[e.role],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].raw_quantity_amount`),e.factKind===`unit_metadata`&&l(e.sourceEvidenceId,ob.unit_metadata.bySource[e.source],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].unit_metadata`),e.factKind===`gas_unresolved_status`&&l(e.sourceEvidenceId,ob.gas_unresolved_status,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].gas_unresolved_status`),e.factKind===`expiry_status`&&(l(e.sourceEvidenceId,ob.expiry_status[e.status],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].expiry_status`),(e.status===`current`||e.status===`expired`)&&e.expiresAt===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Current or expired expiry claim requires expiresAt`}),(e.status===`not_provided`||e.status===`not_applicable`)&&e.reason===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`reason`],message:`Unavailable expiry claim requires reason`}),(e.status===`not_provided`||e.status===`not_applicable`)&&e.expiresAt!==void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Unavailable expiry claim must not include expiresAt`}),e.status===`current`&&e.expiresAt!==void 0&&Date.parse(e.expiresAt)<=Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Current expiry claim requires expiresAt after checkedAt`}),e.status===`expired`&&e.expiresAt!==void 0&&Date.parse(e.expiresAt)>Date.parse(e.checkedAt)&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`expiresAt`],message:`Expired expiry claim requires expiresAt at or before checkedAt`})),e.factKind===`quote_min_out`&&l(e.sourceEvidenceId,ob.quote_min_out,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].quote_min_out`),e.factKind===`slippage_policy`&&(l(e.sourceEvidenceId,ob.slippage_policy.bySource[e.policySource],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].slippage_policy`),e.policySource===`adapter_policy_from_quote_evidence`&&e.minOutRaw===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`minOutRaw`],message:`Adapter-derived slippage policy claim requires minOutRaw`})),e.factKind===`object_ownership`&&l(e.sourceEvidenceId,ob.object_ownership,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].object_ownership`),e.factKind===`simulation_result`&&(l(e.sourceEvidenceId,ob.simulation_result,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].simulation_result`),e.status===`success`&&e.missingFields.length!==0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`missingFields`],message:`Successful simulation claim must not have missing required fields`}),Ny.every(t=>e.requiredFields.includes(t))||t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`requiredFields`],message:`Simulation claim must include every required simulation field`}),e.status!==`success`&&e.failureReason===void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`failureReason`],message:`Failed or unavailable simulation claim requires failureReason`}),e.status===`success`&&e.failureReason!==void 0&&t.addIssue({code:`custom`,path:[`evidenceClaims`,n,`failureReason`],message:`Successful simulation claim must not include failureReason`}))}),e.rawQuantities.forEach((e,n)=>{let r=u(e.amountClaimId,`raw_quantity_amount`,[`rawQuantities`,n,`amountClaimId`],`rawQuantities[${n}].amountClaimId`);r?.factKind===`raw_quantity_amount`&&(Z(t,e.role,r.role,[`rawQuantities`,n,`role`],`rawQuantities[${n}].role`),Z(t,e.rawAmount,r.rawAmount,[`rawQuantities`,n,`rawAmount`],`rawQuantities[${n}].rawAmount`),xb(t,e.asset,r.asset,[`rawQuantities`,n,`asset`],`rawQuantities[${n}].asset`));let i=u(e.unit.unitClaimId,`unit_metadata`,[`rawQuantities`,n,`unit`,`unitClaimId`],`rawQuantities[${n}].unit.unitClaimId`);i?.factKind===`unit_metadata`&&(Z(t,e.unit.source,i.source,[`rawQuantities`,n,`unit`,`source`],`rawQuantities[${n}].unit.source`),Z(t,e.unit.decimals,i.decimals,[`rawQuantities`,n,`unit`,`decimals`],`rawQuantities[${n}].unit.decimals`),e.asset.coinType!==void 0&&Z(t,e.asset.coinType,i.coinType,[`rawQuantities`,n,`asset`,`coinType`],`rawQuantities[${n}].asset.coinType`))}),e.gas.gasBudgetRaw!==void 0){let n=u(e.gas.gasBudgetClaimId,`raw_quantity_amount`,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId`);n?.factKind===`raw_quantity_amount`&&(Z(t,n.role,sb.gasBudgetClaimId.role,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId role`),Sb(t,n.asset,sb.gasBudgetClaimId.assetCoinType,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId asset`),Z(t,e.gas.gasBudgetRaw,n.rawAmount,[`gas`,`gasBudgetRaw`],`gas.gasBudgetRaw`))}if(e.gas.gasUsedRaw!==void 0){let n=u(e.gas.gasUsedClaimId,`raw_quantity_amount`,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId`);n?.factKind===`raw_quantity_amount`&&(Z(t,n.role,sb.gasUsedClaimId.role,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId role`),Sb(t,n.asset,sb.gasUsedClaimId.assetCoinType,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId asset`),Z(t,e.gas.gasUsedRaw,n.rawAmount,[`gas`,`gasUsedRaw`],`gas.gasUsedRaw`))}if(e.gas.unresolvedReason!==void 0){let n=u(e.gas.unresolvedClaimId,`gas_unresolved_status`,[`gas`,`unresolvedClaimId`],`gas.unresolvedClaimId`);n?.factKind===`gas_unresolved_status`&&(Z(t,n.status,`unresolved`,[`gas`,`unresolvedClaimId`],`gas.unresolvedClaimId status`),Z(t,e.gas.checkedAt,n.checkedAt,[`gas`,`checkedAt`],`gas.checkedAt`),Z(t,e.gas.unresolvedReason,n.reason,[`gas`,`unresolvedReason`],`gas.unresolvedReason`))}e.gas.gasObjects?.forEach((e,n)=>{let r=u(e.ownershipClaimId,`object_ownership`,[`gas`,`gasObjects`,n,`ownershipClaimId`],`gas.gasObjects[${n}].ownershipClaimId`);r?.factKind===`object_ownership`&&(Z(t,e.objectId,r.objectId,[`gas`,`gasObjects`,n,`objectId`],`gas.gasObjects[${n}].objectId`),Z(t,e.ownerAccount,r.ownerAccount,[`gas`,`gasObjects`,n,`ownerAccount`],`gas.gasObjects[${n}].ownerAccount`),Z(t,r.ownership,sb.gasObjectOwnershipClaimId.ownership,[`gas`,`gasObjects`,n,`ownershipClaimId`],`gas.gasObjects[${n}].ownershipClaimId ownership`))});let d=u(e.expiry.evidenceClaimId,`expiry_status`,[`expiry`,`evidenceClaimId`],`expiry.evidenceClaimId`);if(d?.factKind===`expiry_status`&&(Z(t,e.expiry.status,d.status,[`expiry`,`status`],`expiry.status`),Z(t,e.expiry.checkedAt,d.checkedAt,[`expiry`,`checkedAt`],`expiry.checkedAt`),e.expiry.status===`current`||e.expiry.status===`expired`?Z(t,e.expiry.expiresAt,d.expiresAt,[`expiry`,`expiresAt`],`expiry.expiresAt`):Z(t,e.expiry.reason,d.reason,[`expiry`,`reason`],`expiry.reason`)),e.slippageOrMinOut.quoteEvidenceClaimId!==void 0){let n=u(e.slippageOrMinOut.quoteEvidenceClaimId,`quote_min_out`,[`slippageOrMinOut`,`quoteEvidenceClaimId`],`slippageOrMinOut.quoteEvidenceClaimId`);n?.factKind===`quote_min_out`&&(Z(t,e.slippageOrMinOut.quoteEvidenceId,n.quoteEvidenceId,[`slippageOrMinOut`,`quoteEvidenceId`],`slippageOrMinOut.quoteEvidenceId`),Z(t,e.slippageOrMinOut.minOutRaw,n.minOutRaw,[`slippageOrMinOut`,`minOutRaw`],`slippageOrMinOut.minOutRaw`))}if(e.slippageOrMinOut.minOutRaw!==void 0&&(e.rawQuantities.some(t=>t.role===`minimum_output`&&t.rawAmount===e.slippageOrMinOut.minOutRaw)||t.addIssue({code:`custom`,path:[`slippageOrMinOut`,`minOutRaw`],message:`slippageOrMinOut.minOutRaw must match a minimum_output rawQuantities entry`})),e.slippageOrMinOut.policyEvidenceClaimId!==void 0){let n=u(e.slippageOrMinOut.policyEvidenceClaimId,`slippage_policy`,[`slippageOrMinOut`,`policyEvidenceClaimId`],`slippageOrMinOut.policyEvidenceClaimId`);n?.factKind===`slippage_policy`&&(Z(t,e.slippageOrMinOut.policySource,n.policySource,[`slippageOrMinOut`,`policySource`],`slippageOrMinOut.policySource`),Z(t,e.slippageOrMinOut.maxSlippageBps,n.maxSlippageBps,[`slippageOrMinOut`,`maxSlippageBps`],`slippageOrMinOut.maxSlippageBps`),n.policySource===`adapter_policy_from_quote_evidence`&&Z(t,e.slippageOrMinOut.minOutRaw,n.minOutRaw,[`slippageOrMinOut`,`minOutRaw`],`slippageOrMinOut.minOutRaw`))}e.objectOwnership.objects.forEach((n,r)=>{let i=u(n.evidenceClaimId,`object_ownership`,[`objectOwnership`,`objects`,r,`evidenceClaimId`],`objectOwnership.objects[${r}].evidenceClaimId`);i?.factKind===`object_ownership`&&(Z(t,n.objectId,i.objectId,[`objectOwnership`,`objects`,r,`objectId`],`objectOwnership.objects[${r}].objectId`),Z(t,e.objectOwnership.ownerAccount,i.ownerAccount,[`objectOwnership`,`ownerAccount`],`objectOwnership.ownerAccount`),Z(t,n.ownership,i.ownership,[`objectOwnership`,`objects`,r,`ownership`],`objectOwnership.objects[${r}].ownership`))});let f=u(e.simulation.evidenceClaimId,`simulation_result`,[`simulation`,`evidenceClaimId`],`simulation.evidenceClaimId`);f?.factKind===`simulation_result`&&(Z(t,e.simulation.provider,f.provider,[`simulation`,`provider`],`simulation.provider`),Z(t,e.simulation.checksEnabled,f.checksEnabled,[`simulation`,`checksEnabled`],`simulation.checksEnabled`),Z(t,e.simulation.simulatedAt,f.simulatedAt,[`simulation`,`simulatedAt`],`simulation.simulatedAt`),Z(t,e.simulation.status,f.status,[`simulation`,`status`],`simulation.status`),bb(t,e.simulation.requiredFields,f.requiredFields,[`simulation`,`requiredFields`],`simulation.requiredFields`),bb(t,e.simulation.missingFields,f.missingFields,[`simulation`,`missingFields`],`simulation.missingFields`),Z(t,e.simulation.failureReason,f.failureReason,[`simulation`,`failureReason`],`simulation.failureReason`))}).superRefine((e,t)=>{let n=e.reviewedTransactionDigest;Z(t,e.humanReadableReview.transactionDigest,n,[`humanReadableReview`,`transactionDigest`],`humanReadableReview.transactionDigest`),Z(t,e.simulation.transactionDigest,n,[`simulation`,`transactionDigest`],`simulation.transactionDigest`)}),Ib=H({contractVersion:q(jy),artifactKind:q(`ptb_visualization`),generatedAt:cb,source:H({adapterId:L().min(1).max(120),planId:L().min(1).max(120).optional(),sourceKind:K([`review_time_generated_transaction_kind`,`review_time_ir`,`renderer_model`]),authority:q(`visualization_only_not_wallet_authorization`),renderer:H({name:L().min(1).max(120),packageName:L().min(1).max(120).optional(),version:L().min(1).max(80).optional()}).strict().optional()}).strict(),mermaid:H({diagramType:q(`flowchart`),text:hb(2e4,`mermaid.text`),namedText:hb(2e4,`mermaid.namedText`)}).strict(),diagnostics:V(H({severity:K([`info`,`warning`,`error`]),code:L().min(1).max(120),message:hb(512,`diagnostics.message`),source:K([`adapter`,`renderer`,`schema`,`simulation`])}).strict()).default([]),unsupportedUse:V(K(Fy)).min(1),executableMaterial:H({included:q(!1),policy:q(`mcp_and_review_ui_outputs_must_not_include_executable_transaction_material`)}).strict()}).strict().superRefine((e,t)=>{vb(t,e.unsupportedUse,Fy,[`unsupportedUse`],`unsupportedUse`)}),Lb=G(L(),B()),Rb=K(Ey),zb=K(Dy);K([`ready_for_wallet_review`,`refresh_required`,`blocked`]);var Bb=K(Oy);K([`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`,`awaiting_signature`,`submitting`,`awaiting_chain_result`,`stopped`,`request_failed`,`outcome_unknown`,`completed`]);var Vb=H({id:L(),label:L(),status:K([`pass`,`warning`,`fail`]),message:L(),source:K([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`])}),Hb=L().min(1),Ub=`human_readable_review`,Wb=`review_time_simulation`,Gb=H({stageCatalogId:L().min(1),adapterId:L(),protocol:L(),actionKind:L(),completedStages:V(Hb),missingStages:V(Hb)}).strict().superRefine((e,t)=>{let n=Kb(e.completedStages);n&&t.addIssue({code:`custom`,path:[`completedStages`],message:`completedStages contains duplicate stage '${n}'`});let r=Kb(e.missingStages);r&&t.addIssue({code:`custom`,path:[`missingStages`],message:`missingStages contains duplicate stage '${r}'`});for(let n of e.completedStages)e.missingStages.includes(n)&&t.addIssue({code:`custom`,path:[`missingStages`],message:`stage '${n}' cannot be both completed and missing`})});function Kb(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}var qb=H({symbol:L(),amount:L(),coinType:L().optional(),approx:z().optional()}).strict(),Jb=qb.extend({amountKind:q(`display_intent`).default(`display_intent`)}),Yb=H({outgoing:V(Jb),expectedIncoming:V(Jb),minimumIncoming:V(Jb).optional(),fees:V(Jb).optional()}),Xb=H({outgoing:V(qb),expectedIncoming:V(qb),minimumIncoming:V(qb).optional(),fees:V(qb).optional()}),Zb=H({before:V(qb),after:V(qb),delta:V(qb)}),Qb=H({computationCostRaw:R_(`computationCostRaw`),storageCostRaw:R_(`storageCostRaw`),storageRebateRaw:R_(`storageRebateRaw`),nonRefundableStorageFeeRaw:R_(`nonRefundableStorageFeeRaw`)}).strict(),$b=H({address:y_,coinType:L().min(1).max(512).refine(e=>{try{return U_(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),amount:H_(`balanceChanges[].amount`)}).strict(),ex=H({objectId:y_,objectType:L().min(1).max(512).optional(),inputState:L().min(1).max(80),outputState:L().min(1).max(80),idOperation:L().min(1).max(80)}).strict(),tx=H({provider:Ay,checksEnabled:z(),success:z(),gasCostSummary:Qb.optional(),balanceChanges:V($b).optional(),objectChanges:V(ex).optional(),error:L().optional()}),nx=tx,rx=tx.extend({checksEnabled:q(!0),success:q(!0),gasCostSummary:Qb,balanceChanges:V($b),objectChanges:V(ex),error:_c().optional()}).strict(),ix=H({role:K([`input`,`expected_output`,`minimum_output`,`fee`]),symbol:L(),coinType:L().min(1).max(512).refine(e=>{try{return U_(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),decimals:R().int().min(0).max(255),rawAmount:R_(`rawAmount`),rawAmountSource:q(`quote_policy_evidence`),displayAmount:L().optional(),displayAmountSource:q(`user_display_intent_not_signing_input`).optional()}).strict().superRefine((e,t)=>{e.displayAmount!==void 0&&e.displayAmountSource===void 0&&t.addIssue({code:`custom`,path:[`displayAmountSource`],message:`displayAmountSource is required when displayAmount is present`}),e.displayAmount===void 0&&e.displayAmountSource!==void 0&&t.addIssue({code:`custom`,path:[`displayAmount`],message:`displayAmount is required when displayAmountSource is present`})}),ax=H({role:K([`connected_account`,`output_recipient`]),address:y_}).strict(),ox=H({kind:q(`swap_output_asset`),symbol:L(),coinType:L().min(1).max(512).refine(e=>{try{return U_(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),protocol:L(),poolKey:L(),direction:K([`base_to_quote`,`quote_to_base`])}).strict(),sx=H({id:L(),label:L(),source:W([K([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`]),K([`transaction_material`,`digest_commitment`])]),summary:L()}).strict(),cx=H({id:L(),label:L(),reason:L()}).strict(),lx=H({proposedAction:H({title:L(),summary:L(),actionKind:L(),adapterId:L(),protocol:L(),network:q(`sui:mainnet`)}).strict(),recipients:V(ax),evidenceUsed:V(sx),missingEvidence:V(cx),requiredUserChoices:V(cx),unsupportedClaims:V(cx),freshness:H({status:q(`current`),evaluatedAt:L(),expiresAt:L(),reason:L()}).strict(),blockingChecks:V(Vb)}).strict(),ux=H({assetFlow:H({outgoing:V(ix),expectedIncoming:V(ix),minimumIncoming:V(ix),fees:V(ix)}).strict(),targets:V(ox)}).strict(),dx=Sc(`kind`,[lx.extend({kind:q(`swap_human_readable_review`)}).merge(ux)]),fx=H({id:L(),actionKind:L(),adapterId:L(),protocol:L(),title:L(),summary:L(),assetFlowPreview:Yb,reviewModel:Ty.optional(),adapterData:Lb,createdAt:L(),expiresAt:L().optional(),registryVersion:L().optional(),preliminaryChecks:V(Vb).optional()}),px=H({planId:L(),reviewSessionId:L(),account:y_,checks:V(Vb),assetFlowActual:Xb.optional(),beforeAfterBalance:Zb.optional(),simulation:nx.optional(),humanReadableReview:dx.optional(),transactionReviewData:Fb.optional(),ptbVisualization:Ib.optional(),adapterLifecycle:Gb.optional(),updatedAt:L()}),mx=Sc(`status`,[px.extend({status:q(`ready_for_wallet_review`),evidenceValidity:_c().optional(),blockedReason:_c().optional(),refreshReason:_c().optional()}),px.extend({status:q(`refresh_required`),evidenceValidity:q(`invalidated`).optional(),refreshReason:zb,blockedReason:_c().optional()}),px.extend({status:q(`blocked`),evidenceValidity:q(`invalidated`).optional(),blockedReason:Rb,refreshReason:_c().optional()})]).superRefine((e,t)=>{if(e.evidenceValidity===`invalidated`)for(let n of ky)e[n]!==void 0&&t.addIssue({code:`custom`,path:[n],message:`Invalidated review evidence cannot carry current material-derived facts`});let n=e.adapterLifecycle;if(n!==void 0&&hx(e,t),e.humanReadableReview!==void 0&&n===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview requires adapterLifecycle evidence stage provenance`}),e.simulation!==void 0&&n===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`simulation requires adapterLifecycle evidence stage provenance`}),e.ptbVisualization!==void 0){let e=n?.completedStages??[];e.includes(`transaction_material_build_or_verify`)&&e.includes(`digest_commitment`)||t.addIssue({code:`custom`,path:[`ptbVisualization`],message:`ptbVisualization requires completed transaction material and digest commitment lifecycle stages`})}let r=e.status===`ready_for_wallet_review`;e.transactionReviewData!==void 0&&!r&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`transactionReviewData is only valid on ready_for_wallet_review`}),e.status===`ready_for_wallet_review`&&n!==void 0&&(e.transactionReviewData===void 0&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`ready_for_wallet_review requires an emitted wallet review contract`}),(n===void 0||n.missingStages.length!==0)&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`ready_for_wallet_review requires a completed adapterLifecycle with no missing stages`}),e.humanReadableReview===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`ready_for_wallet_review requires humanReadableReview public evidence`}),e.simulation===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`ready_for_wallet_review requires successful simulation public evidence`})),e.status===`blocked`&&(e.blockedReason===`producer_stage_missing`&&n===void 0&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`producer_stage_missing requires adapterLifecycle with at least one missing stage`}),e.blockedReason===`producer_stage_missing`&&n!==void 0&&n.missingStages.length===0&&t.addIssue({code:`custom`,path:[`blockedReason`],message:`producer_stage_missing requires at least one adapterLifecycle.missingStages entry`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.transactionReviewData!==void 0&&t.addIssue({code:`custom`,path:[`transactionReviewData`],message:`wallet_review_contract_emit_missing requires the wallet review contract to be absent`}),e.blockedReason===`wallet_review_contract_emit_missing`&&n===void 0&&t.addIssue({code:`custom`,path:[`adapterLifecycle`],message:`wallet_review_contract_emit_missing requires adapterLifecycle`}),e.blockedReason===`wallet_review_contract_emit_missing`&&n!==void 0&&n.missingStages.length!==0&&t.addIssue({code:`custom`,path:[`blockedReason`],message:`wallet_review_contract_emit_missing requires a completed adapterLifecycle with no missing stages`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.evidenceValidity!==`invalidated`&&e.humanReadableReview===void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`wallet_review_contract_emit_missing requires humanReadableReview public evidence`}),e.blockedReason===`wallet_review_contract_emit_missing`&&e.evidenceValidity!==`invalidated`&&e.simulation===void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`wallet_review_contract_emit_missing requires simulation public evidence`}))});function hx(e,t){let n=e.adapterLifecycle;n&&(e.humanReadableReview!==void 0&&gx(t,n,Ub,[`humanReadableReview`]),e.simulation!==void 0&&(gx(t,n,Wb,[`simulation`]),gx(t,n,Ub,[`simulation`]),_x(t,e.simulation,[`simulation`])),n.missingStages.includes(Wb)&&e.simulation!==void 0&&t.addIssue({code:`custom`,path:[`simulation`],message:`simulation public evidence cannot be present while review_time_simulation is missing`}),n.missingStages.includes(Ub)&&e.humanReadableReview!==void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview public evidence cannot be present while human_readable_review is missing`}))}function gx(e,t,n,r){t.completedStages.includes(n)||e.addIssue({code:`custom`,path:r,message:`${r.join(`.`)} requires completed adapterLifecycle stage '${n}'`}),t.missingStages.includes(n)&&e.addIssue({code:`custom`,path:r,message:`${r.join(`.`)} cannot be present while adapterLifecycle stage '${n}' is missing`})}function _x(e,t,n){rx.safeParse(t).success||e.addIssue({code:`custom`,path:n,message:`simulation public evidence requires a successful checks-enabled review-time simulation projection`})}var vx=H({topic:L().min(1),grants:M_,expiresAt:L().datetime(),walletName:L().optional()}).strict(),yx={topic:L().min(1),lifecycleRevision:R().int().positive(),grantRevisions:E_},bx=Sc(`status`,[H({...yx,status:q(`present`),session:vx}).strict(),H({...yx,status:K([`absent`,`unusable`])}).strict()]);H({chainId:q(w_),lifecycleRevision:R().int().positive(),grantRevision:R().int().nonnegative()});var xx=H({runId:tv,sequence:R().int().positive(),observedAt:L().datetime()}).strict();xx.extend({sessions:V(bx)}).strict();var Sx=L().uuid(),Cx={operationId:Sx,walletRunId:tv},wx=Sc(`action`,[H({action:q(`connect`),...Cx,chains:D_}).strict(),H({action:q(`disconnect`),...Cx,connectionId:L().min(1),impactId:L().min(1)}).strict()]);H({}).strict();var Tx=H({operationId:Sx,cardId:L().min(1),action:K([`connect`,`disconnect`]),status:K([`running`,`completed`,`failed`,`stopped`]),connectionId:L().min(1),createdAt:L().datetime(),updatedAt:L().datetime(),expiresAt:L().datetime(),settlementPending:z(),message:L().optional(),endReason:K([`user_stopped`,`expired`,`run_ended`]).optional()}).strict();Tx.pick({operationId:!0,action:!0,status:!0,settlementPending:!0});var Ex=`A wallet connection provides account context; it is not a transaction approval or proof of address ownership.`,Dx=`Review evidence is not a safety guarantee. Only an explicit card action and wallet approval may authorize this exact transaction.`,Ox=sv.extend({sessionPresence:K([`present`,`absent`,`unusable`,`unconfirmed`]),chainStates:V(cv).optional(),disconnectImpact:H({impactId:L(),requestCount:R().int().nonnegative(),chains:D_}).strict().optional()});K([`awaiting_approval`,`disconnect_pending`,`cleanup_pending`]);var kx=H({action:K([`prepare_review`,`request_signature`]),connectionId:L().min(1),walletRunId:tv,account:y_,reviewRevision:R().int().nonnegative()}).strict(),Ax=H({action:K([`cancel`,`stop_waiting`,`read_result`])}).strict(),jx=W([wx,H({action:q(`stop_connection`),operationId:L().uuid()}).strict(),kx,Ax]),Mx=W([wx.options[0],kx.extend({action:q(`prepare_review`)})]);function Nx(e,t){e.reviewTarget&&(e.review?.account&&e.review.account!==e.reviewTarget.account||e.request&&e.request.account!==e.reviewTarget.account)&&t.addIssue({code:`custom`,path:[`reviewTarget`],message:`The fixed review target must match its recorded account and request.`})}var Px=H({kind:K(dv),message:L().optional(),reason:L().optional()}).strict(),Fx={allowedActions:V(K(uv)),actionRemainingMs:R().int().nonnegative(),nextStateReadAfterMs:R().int().nonnegative().optional(),observe:z(),walletAvailability:iv,walletObservation:xx.optional(),progress:av,nextStep:Px},Ix=H({...Fx,kind:q(`connect`),mode:q(`connect`),allowedActions:V(K([`connect`,`cancel`,`stop_connection`])),boundary:q(Ex),requestedChains:D_,operation:Tx.optional(),automaticAction:wx.options[0].optional()}).strict(),Lx=H({...Fx,kind:q(`disconnect`),mode:q(`disconnect`),allowedActions:V(K([`disconnect`,`cancel`])),boundary:q(Ex),connection:Ox.optional(),operation:Tx.optional()}).strict(),Rx=H({reviewSessionId:L(),plan:fx,reviewRevision:R().int().nonnegative(),status:Bb,account:L().optional(),preparing:z(),accountRequestPending:q(!0).optional(),error:L().optional(),state:mx.optional()}).strict(),zx=H({connectionId:L(),account:y_}).strict(),Bx=L().regex(/^-?[0-9]+$/).optional(),Vx=Sc(`kind`,[Ix,Lx,H({...Fx,kind:q(`review`),mode:K([`review`,`review_manage`]),allowedActions:V(K([`prepare_review`,`request_signature`,`read_result`,`stop_waiting`,`cancel`])),boundary:q(Dx),reviewTarget:zx.optional(),review:Rx,walletName:L().optional(),acceptedWalletRunId:tv.optional(),automaticAction:kx.extend({action:q(`prepare_review`)}).optional(),request:ev.optional(),receipt:B().optional(),netGasMist:Bx,observationStopped:z().optional()}).strict().superRefine(Nx)]),Hx=H({message:L(),recordedAt:L().datetime()}).strict(),Ux={allowedActions:V(_c()),observe:q(!1),actionRemainingMs:q(0),result:Hx},Wx=H({...Ux,kind:K([`connect`,`disconnect`]),result:Hx.extend({pendingWork:K([`approval_response`,`session_removal`,`session_status`]).optional()}),walletName:L().optional(),networks:V(H({chainId:T_,status:K([`bound`,`not_approved`,`multiple_accounts`,`invalid_response`])}).strict())}).strict();H({...Ux,kind:q(`review`),mode:K([`review`,`review_manage`]),review:Rx.optional(),reviewTarget:zx.optional(),request:ev.optional(),receipt:B().optional(),netGasMist:Bx,observationStopped:z().optional(),boundary:q(Dx)}).strict().superRefine(Nx);var Gx=`sui-mcp.local-data`,Kx=16777216,Q=L().uuid(),qx=R().int().nonnegative().safe(),Jx=L().regex(/^[a-f0-9]{64}$/),Yx=Sc(`status`,[H({status:q(`no_file`)}).strict(),H({status:q(`receiving`)}).strict(),H({status:q(`checking`)}).strict(),H({status:q(`check_required`),message:L().min(1)}).strict(),H({status:q(`can_restore`)}).strict(),H({status:q(`cannot_restore`),reason:K([`invalid_backup`,`file_unavailable`,`wallet_request_unsettled`,`operation_busy`,`input_unavailable`,`check_failed`]),message:L().min(1)}).strict()]);H({fileId:Q,sha256:Jx,totalSize:qx,dataEpoch:qx,userDataRevision:qx,check:Yx}).strict();var Xx=Sc(`kind`,[H({kind:q(`set_endpoint`),endpoint:K([`grpc`,`graphql`]),value:L().min(1)}).strict(),H({kind:q(`restore_endpoint`),endpoint:K([`grpc`,`graphql`])}).strict(),H({kind:K([`import_local_data`,`reset_local_data`,`restart_wallet_service`])}).strict()]),Zx=Sc(`kind`,[H({kind:q(`clear_read_address`)}).strict(),...Xx.options,H({kind:q(`set_wallet_networks`),chains:D_}).strict(),H({kind:q(`download_backup`)}).strict()]);H({operationStatus:H({operationId:L().uuid()}).strict().optional(),backupDelivery:H({operationId:L().uuid(),fileId:L().uuid()}).strict().optional()}).strict().refine(e=>!(e.operationStatus&&e.backupDelivery),`Choose exactly one card purpose.`);var Qx=K([`acknowledged`,`not_completed`,`unconfirmed`,`unsupported`,`not_sent`]),$x=H({method:q(`ui/download-file`),code:q(-32601)}).strict(),eS=K([`acknowledged`,`cancelled`,`expired`,`server_restarted`,`data_replaced`,`source_unavailable`,`stored_locally`,`local_save_failed`]),tS=H({device:L().regex(/^\d+$/),inode:L().regex(/^\d+$/)}).strict(),nS=K([`not_published`,`target_conflict`,`source_unavailable`,`interrupted`]),rS=H({status:K([`needs_consent`,`saving`,`saved`,`failed`]),attemptId:Q,fileId:Q,sha256:Jx,totalSize:qx,destination:L(),ownerId:L().min(1),currentSaveAttemptId:Q.optional(),attempts:V(H({saveAttemptId:Q,cardId:L().min(1),previousSaveAttemptId:Q.optional(),admittedAt:L().datetime(),allowPossibleCopy:z()}).strict()),sourceIdentity:tS.optional(),savedAt:L().datetime().optional(),failure:nS.optional()}).strict().superRefine((e,t)=>{(e.status===`needs_consent`?e.attempts.length!==0||e.currentSaveAttemptId!==void 0:!e.currentSaveAttemptId||!e.attempts.some(t=>t.saveAttemptId===e.currentSaveAttemptId))&&t.addIssue({code:`custom`,message:`A local save must identify its admitted attempt.`}),(new Set(e.attempts.map(e=>e.saveAttemptId)).size!==e.attempts.length||e.status===`saved`!=(e.savedAt!==void 0)||e.status===`saved`&&!e.sourceIdentity||e.status===`failed`!=(e.failure!==void 0))&&t.addIssue({code:`custom`,message:`Local save evidence must match its state.`})});H({currentAttemptId:Q,attempts:V(H({attemptId:Q,cardId:L().min(1),admittedAt:L().datetime(),previousAttemptId:Q.optional(),hostReport:Qx.optional(),failure:$x.optional()}).strict()).min(1),readyAt:L().datetime().optional(),expiresAt:L().datetime().optional(),endReason:eS.optional(),localSave:rS.optional()}).strict().superRefine((e,t)=>{(new Set(e.attempts.map(e=>e.attemptId)).size!==e.attempts.length||!e.attempts.some(t=>t.attemptId===e.currentAttemptId)||e.readyAt===void 0!=(e.expiresAt===void 0))&&t.addIssue({code:`custom`,message:`Download attempts and lifetime must identify one stored snapshot.`}),(e.endReason===`stored_locally`&&e.localSave?.status!==`saved`||e.endReason===`local_save_failed`&&e.localSave?.status!==`failed`||e.attempts.some(e=>e.hostReport===`unsupported`!=(e.failure!==void 0))||e.localSave&&(e.localSave.attemptId!==e.currentAttemptId||!e.attempts.some(t=>t.attemptId===e.currentAttemptId&&t.hostReport===`unsupported`)||e.localSave.status===`saving`&&e.endReason!==void 0||e.localSave.status===`saved`!=(e.endReason===`stored_locally`)))&&t.addIssue({code:`custom`,message:`Local saving requires the current download's unsupported report.`})});var iS=K([`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`]),aS=Sc(`action`,[H({action:q(`settings_clear_read_address`),operationId:Q,connectionId:L().min(1),account:L().min(1)}).strict(),H({action:q(`settings_save_wallet_networks`),operationId:Q,chains:D_.transform(O_),expectedChains:D_.transform(O_)}).strict(),H({action:q(`settings_download_backup`),operationId:Q,attemptId:Q}).strict(),H({action:q(`settings_retry_download`),operationId:Q,fileId:Q,previousAttemptId:Q,attemptId:Q}).strict(),H({action:q(`settings_report_download`),operationId:Q,fileId:Q,attemptId:Q,status:Qx,failure:$x.optional()}).strict().refine(e=>e.status===`unsupported`==(e.failure!==void 0),`Only unsupported downloads require the exact method failure.`),H({action:q(`settings_store_backup`),operationId:Q,fileId:Q,attemptId:Q,saveAttemptId:Q,previousSaveAttemptId:Q.optional(),allowPossibleCopy:z()}).strict(),H({action:q(`settings_cancel_download`),operationId:Q,fileId:Q,attemptId:Q}).strict(),H({action:q(`settings_select`),draft:Xx}).strict(),H({action:q(`settings_prepare`),operationId:Q}).strict(),H({action:q(`settings_begin_upload`),operationId:Q,name:L().min(1),totalSize:qx.max(Kx),sha256:Jx}).strict(),H({action:q(`settings_upload_chunk`),operationId:Q,fileId:Q,offset:qx.max(Kx),chunkBase64:L()}).strict(),H({action:q(`settings_seal_upload`),operationId:Q,fileId:Q}).strict(),H({action:q(`settings_confirm`),operationId:Q,preparationId:Q}).strict(),H({action:q(`settings_back`),operationId:Q}).strict(),H({action:q(`settings_cancel`)}).strict()]),oS=H({outcome:K([`completed`,`failed`,`interrupted`,`superseded`]),recordedAt:L().datetime(),message:L().min(1),details:G(L(),B()).optional(),completionScope:q(`backup_delivery`).optional()}).strict(),sS=H({storedValue:L(),effectiveValue:L(),source:K([`environment`,`local_db`,`builtin_default`]),pendingStoredValue:L().optional(),appliesAfter:q(`mcp_server_restart`).optional()}).strict(),cS=H({endpoint:K([`grpc`,`graphql`]),key:K([`suiGrpcUrl`,`suiGraphqlUrl`]),value:L().min(1),status:K([`saved`,`reset`]),storedValue:L(),effectiveValue:L(),source:sS.shape.source}).strict().refine(e=>e.key===(e.endpoint===`grpc`?`suiGrpcUrl`:`suiGraphqlUrl`),`The endpoint kind and preference key must agree.`),lS=R().int().nonnegative().safe(),uS=H({accounts:lS,reviewSessions:lS,reviewStateSnapshots:lS,reviewStatusTransitions:lS,reviewExecutions:lS,reviewRequests:lS,outcomeUnknownRequests:lS,externalActivityScans:lS,externalActivityTransactions:lS,localSettings:lS}).strict(),dS=H({status:q(`valid`),format:q(Gx),network:q(`mainnet`),exportedAt:L().datetime(),currentCounts:uS,incomingCounts:uS,willReplace:q(!0),restartRequiredAfterImport:z()}).strict(),fS=H({kind:q(`settings`),operationId:Q,phase:K([`draft`,`uploading`,`sealed`,`prepared`,`executing`,`stopping`,`starting`,`terminal`]),draft:Zx.optional(),preparationId:Q.optional(),preparation:G(L(),B()).optional(),file:H({fileId:Q,displayName:L(),totalSize:qx,receivedSize:qx,sha256:Jx,sealed:z(),cleanup:K([`pending`,`complete`,`failed`])}).strict().optional(),download:H({availability:K([`preparing`,`available`,`ended`]),currentAttemptId:Q,hostReport:Qx.optional(),previousUnconfirmed:z(),endReason:eS.optional(),expiresAt:L().datetime().optional(),remainingMs:qx.optional(),localSave:H({status:K([`needs_consent`,`saving`,`saved`,`failed`]),currentSaveAttemptId:Q.optional(),failure:nS.optional(),savedAt:L().datetime().optional()}).strict().optional(),allowedFileActions:V(iS)}).strict().optional(),restoreCheck:Yx.optional(),backupLocation:H({directory:L().min(1),filename:L().min(1)}).strict().optional(),result:oS.optional(),temporaryFileCleanup:K([`pending`,`complete`,`failed`]).optional(),priorRunId:Q.optional(),nextRunId:Q.optional(),supersedesOperationId:Q.optional(),supersededByOperationId:Q.optional(),allowedActions:V(K(aS.options.map(e=>e.shape.action.value))),observe:z(),facts:H({server:H({name:L(),version:L(),network:q(`mainnet`)}).strict(),localSettings:H({suiGrpcUrl:sS,suiGraphqlUrl:sS,walletConnectionChains:D_}).strict(),readAddress:L().optional(),readConnectionId:L().optional(),assetReadAccount:lv,walletAvailability:iv,connectionReconciliationRequired:q(!0).optional(),observedAt:L().datetime().optional(),counts:uS}).strict().optional()}).strict().superRefine((e,t)=>{if(e.download&&(e.draft?.kind!==`download_backup`||!e.file||e.download.availability===`available`&&(!e.file.sealed||e.download.endReason||!e.download.expiresAt)||e.download.availability===`ended`&&!e.download.endReason)&&t.addIssue({code:`custom`,message:`Download delivery must describe its own snapshot and lifetime.`}),e.draft?.kind===`download_backup`&&e.preparation!==void 0&&t.addIssue({code:`custom`,message:`Private download preparation is not public preparation data.`}),e.restoreCheck&&(e.draft?.kind!==`import_local_data`||e.result)&&t.addIssue({code:`custom`,message:`Restore checks belong to an uncompleted import preparation.`}),e.restoreCheck?.status===`can_restore`&&(e.phase!==`prepared`||!e.file?.sealed||!e.allowedActions.includes(`settings_confirm`))&&t.addIssue({code:`custom`,message:`Restore availability requires a sealed file and current confirmation.`}),e.draft?.kind===`import_local_data`&&e.restoreCheck?.status!==`can_restore`&&e.allowedActions.includes(`settings_confirm`)&&t.addIssue({code:`custom`,message:`An unchecked or blocked import cannot offer confirmation.`}),e.restoreCheck?.status===`receiving`&&(!e.file||e.file.sealed||![`draft`,`uploading`].includes(e.phase))&&t.addIssue({code:`custom`,message:`Receiving requires the selected unsealed upload.`}),e.restoreCheck?.status===`check_required`&&(!e.file?.sealed||e.phase!==`sealed`)&&t.addIssue({code:`custom`,message:`A new check requires the same complete sealed upload.`}),e.restoreCheck?.status===`cannot_restore`&&e.restoreCheck.reason===`invalid_backup`&&(e.phase===`prepared`||e.allowedActions.includes(`settings_prepare`))&&t.addIssue({code:`custom`,message:`A rejected backup requires an explicit new selection.`}),e.backupLocation&&(e.result?.outcome!==`completed`||e.draft?.kind!==`download_backup`||e.download?.localSave?.status!==`saved`||e.download.endReason!==`stored_locally`)&&t.addIssue({code:`custom`,message:`A backup location requires its recorded successful export.`}),e.download?.localSave?.status===`saved`&&!e.backupLocation&&t.addIssue({code:`custom`,message:`A saved backup must identify its verified location.`}),e.temporaryFileCleanup&&!e.result&&t.addIssue({code:`custom`,message:`Cleanup of an applied or ended operation requires its recorded result.`}),(e.phase===`terminal`!=(e.result!==void 0)||e.phase===`terminal`&&(e.observe||e.allowedActions.length||e.download?.allowedFileActions.length))&&t.addIssue({code:`custom`,message:`A terminal Settings result cannot grant input or observation.`}),e.phase===`prepared`&&(!e.preparationId||!e.draft||!e.preparation)&&t.addIssue({code:`custom`,message:`Settings confirmation requires a prepared identity and facts.`}),e.phase===`prepared`&&e.draft?.kind===`import_local_data`&&!dS.safeParse(e.preparation?.preview).success&&t.addIssue({code:`custom`,path:[`preparation`,`preview`],message:`Import confirmation requires the validated current and incoming read context and record counts.`}),e.phase===`prepared`&&(e.draft?.kind===`set_endpoint`||e.draft?.kind===`restore_endpoint`)){let n=cS.safeParse(e.preparation?.endpoint);(!n.success||n.data.endpoint!==e.draft.endpoint||n.data.status!==(e.draft.kind===`set_endpoint`?`saved`:`reset`)||e.draft.kind===`set_endpoint`&&n.data.value!==e.draft.value)&&t.addIssue({code:`custom`,path:[`preparation`,`endpoint`],message:`Endpoint confirmation must name its exact prepared target.`})}e.file&&e.file.receivedSize>e.file.totalSize&&t.addIssue({code:`custom`,message:`Received content exceeds the selected file.`})}),pS=65536;function mS(e){return new TextEncoder().encode(JSON.stringify(e)).length}function hS(e){let t=pS-mS(e);return t>0?3*Math.floor(t/4):0}function gS(e){if(!e||typeof e!=`object`)return;let t=structuredClone(e);if(t.method===`tools/call`&&t.params?.name===`ui_act_card`&&t.params.arguments?.input?.action===`settings_upload_chunk`)return t.id=2**53-1,t.params.arguments.revision=2**53-1,t.params.arguments.input.offset=Kx,t.params.arguments.input.chunkBase64=``,hS(t)}var _S={uiOpenAccount:`ui_open_account`,uiOpenReceipt:`ui_open_receipt`,uiOpenChart:`ui_open_chart`,uiReadCard:`ui_read_card`,uiSubmitCard:`ui_submit_card`,uiActCard:`ui_act_card`,uiReadSettingsFile:`ui_read_settings_file`,sessionOpenReviewManagement:`session_open_review_management`,readGetServerStatus:`read_get_server_status`,readListSupportedProtocols:`read_list_supported_protocols`,readListDeepbookPools:`read_list_deepbook_pools`,readListDeepbookTokens:`read_list_deepbook_tokens`,readInspectDeepbookOrderbook:`read_inspect_deepbook_orderbook`,readGetDeepbookMidPrice:`read_get_deepbook_mid_price`,readGetDeepbookUsdcPriceHistory:`read_get_deepbook_usdc_price_history`,readGetDeepbookUsdcPriceAtTime:`read_get_deepbook_usdc_price_at_time`,readQuoteDeepbookAction:`read_quote_deepbook_action`,readQuoteDeepbookDisplayAmount:`read_quote_deepbook_display_amount`,readSummarizeDeepbookAccountInventory:`read_summarize_deepbook_account_inventory`,readSummarizeWalletAssets:`read_summarize_wallet_assets`,readClassifyWalletAssets:`read_classify_wallet_assets`,readListSettlementAssetGroups:`read_list_settlement_asset_groups`,readSummarizeSettlementAssetGroupParity:`read_summarize_settlement_asset_group_parity`,readPreviewIntentEvidence:`read_preview_intent_evidence`,readListReviewActivity:`read_list_review_activity`,readSummarizeReviewFunnel:`read_summarize_review_funnel`,readGetReviewSessionDetail:`read_get_review_session_detail`,readInspectSuiTransaction:`read_inspect_sui_transaction`,readScanSuiAccountActivity:`read_scan_sui_account_activity`,readSummarizeSuiActivityScan:`read_summarize_sui_activity_scan`,readScanSuiFunctionActivity:`read_scan_sui_function_activity`,readSummarizeSuiFunctionActivityScan:`read_summarize_sui_function_activity_scan`,readSummarizeSuiAccountActivity:`read_summarize_sui_account_activity`,readGetAccountAssetTimeline:`read_get_account_asset_timeline`,settingsCreateLocalSettingsSession:`settings_create_local_settings_session`,settingsGetLocalSettings:`settings_get_local_settings`,actionStartReview:`action_start_review`,actionCreateProposalReview:`action_create_proposal_review`,sessionOpenWalletDisconnectionCard:`session_open_wallet_disconnection_card`,sessionOpenWalletConnectionCard:`session_open_wallet_connection_card`,sessionGetWalletConnectionCard:`session_get_wallet_connection_card`,sessionWaitWalletConnectionCard:`session_wait_wallet_connection_card`,sessionGetInteractionStatus:`session_get_interaction_status`,sessionGetReviewStatus:`session_get_review_status`,sessionGetExecutionResult:`session_get_execution_result`,sessionWaitExecutionResult:`session_wait_execution_result`,accountGetActiveAccount:`account_get_active_account`},vS=H({connectionId:L().min(1),pairingUri:L().startsWith(`wc:`),expiresAt:L().datetime()}).strict(),yS=K([`account`,`receipt`,`chart`,`connect`,`disconnect`,`review`,`settings`]),bS=H({cardId:L().min(1),kind:yS,state:K([`ready`,`running`,`closed`]),revision:R().int().nonnegative(),createdAt:L().datetime(),expiresAt:L().datetime(),input:G(L(),B()),data:B().optional(),reason:K([`completed`,`expired`,`failed`,`server_restarted`,`cancelled`]).optional(),error:L().optional()}).strict().extend({pollAfterMs:R().int().positive(),inputRemainingMs:R().int().nonnegative()}),xS=H({transactionDigest:L().min(1),pureInputs:V(H({index:R().int().nonnegative(),bytes:L().regex(/^0x(?:[0-9a-f]{2})*$/i)}).strict()).refine(e=>new Set(e.map(e=>e.index)).size===e.length,`Duplicate input index.`),ptbGraph:H({mermaid:H({text:L(),namedText:L()}).strict()}).strict().optional()}).strict(),SS=`sui-mcp/card`,CS=`sui-mcp/receipt-display`,wS=`sui-mcp/wallet-display`,TS=`sui-mcp/settings-file`,ES=`suimcp://cards/`,DS=Sc(`kind`,[H({kind:q(`account`),status:q(`input_required`),field:q(`account`),message:L().min(1)}).strict(),H({kind:q(`receipt`),status:q(`input_required`),field:q(`digest`),message:L().min(1)}).strict()]),OS=H({cardId:L().min(1),permission:L().min(1)}).strict();OS.extend({revision:R().int().nonnegative(),input:G(L(),B())}).strict();var kS=xS.extend({cardId:L().min(1),revision:R().int().nonnegative(),attemptId:L().min(1).optional()}),AS=vS.extend({cardId:L().min(1),revision:R().int().nonnegative()}),jS=H({attemptId:L().uuid(),cardId:L().min(1),operationId:L().uuid(),fileId:L().uuid(),offset:R().int().nonnegative().safe(),totalSize:R().int().nonnegative().safe(),sha256:L().regex(/^[a-f0-9]{64}$/),chunkBase64:L()}).strict(),MS={account:_S.uiOpenAccount,receipt:_S.uiOpenReceipt,chart:_S.uiOpenChart,read:_S.uiReadCard,submit:_S.uiSubmitCard,act:_S.uiActCard,readSettingsFile:_S.uiReadSettingsFile};function NS(e){let t=e.commandPending;if(t)return t.phase===`confirming`?`Checking the current selection…`:t.action===`request_signature`?`Waiting for a response… Ask in chat to check the status of this same transaction request. Do not request approval again while its outcome is unknown.`:`Waiting for a response… You can ask in chat to check this same request.`}function $(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function PS(e){return e.kind!==`import_local_data`}function FS(e,t,n){if(e.kind!==`settings`||t.kind!==`settings`||e.cardId!==t.cardId||t.state!==`ready`)return;let r=fS.safeParse(e.data),i=fS.safeParse(t.data);if(!r.success||!i.success)return;let a=r.data,o=i.data,s=o.draft;if(n.action===`settings_select`&&a.operationId===o.operationId){let r=Zx.safeParse(n.draft);if(r.success&&PS(r.data)&&(t.revision===e.revision||LS(r.data,s)))return{kind:`selection_response`,cardId:t.cardId,operationId:o.operationId,draft:r.data}}if(!s||!a.draft||a.operationId!==o.operationId||n.operationId!==o.operationId||JSON.stringify(a.draft)!==JSON.stringify(s))return;if(PS(s))return n.action===`settings_prepare`?{kind:`preparation_response`,cardId:t.cardId,operationId:o.operationId,draft:s}:void 0;let c=o.file?.fileId;if(!(!c||!a.file?.fileId||a.file.fileId!==c||n.action!==`settings_prepare`&&n.action!==`settings_seal_upload`||n.action===`settings_seal_upload`&&n.fileId!==c))return{kind:`backup_check_response`,cardId:t.cardId,operationId:o.operationId,fileId:c,action:n.action}}function IS(e){return Object.keys(e).filter(t=>e[t]!==void 0)}function LS(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>LS(e,t[n]));let n=$(e),r=$(t);if(!n||!r)return!1;let i=IS(n);return i.length===IS(r).length&&i.every(e=>Object.hasOwn(r,e)&&LS(n[e],r[e]))}function RS(e,t=!0){let n=$(e);if(!n)throw Error(`The app did not provide a usable card response.`);let r=()=>Error(`The app provided inconsistent card response information.`),i,a=e=>{let t=$(e);if(!t||typeof t.ok!=`boolean`||i&&!LS(i,t))throw r();i=t};n.structuredContent!==void 0&&a(n.structuredContent);let o,s;if(Array.isArray(n.content))for(let e of n.content){let n=$(e);if(n?.type!==`text`||typeof n.text!=`string`)continue;let i;try{i=$(JSON.parse(n.text))}catch{continue}if(i){if(i.ok!==void 0)a(i);else if(Array.isArray(i.content)){if(!t||o)throw r();let n=rd.safeParse(i);if(!n.success)throw r();o=RS(n.data,!1),s=e,o.structuredContent!==void 0&&a(o.structuredContent)}}}let c=Object.create(null),l=!1;for(let e of[n._meta,o?._meta]){if(e===void 0)continue;let t=$(e);if(!t)throw r();for(let e of IS(t)){let n=t[e];if(Object.hasOwn(c,e)&&!LS(c[e],n))throw r();c[e]=n}l=!0}if(n.isError!==void 0&&typeof n.isError!=`boolean`||o?.isError!==void 0&&n.isError!==void 0&&o.isError!==n.isError||(n.isError===!0||o?.isError===!0)&&i?.ok===!0)throw r();return{...o,...n,...o?{content:[...Array.isArray(n.content)?n.content.filter(e=>e!==s):[],...Array.isArray(o.content)?o.content:[]]}:{},...i?{structuredContent:i}:{},...l?{_meta:c}:{}}}function zS(e,t){let n=$($(e?.data)?.request);return!!e&&(e.kind===`receipt`||e.kind===`review`)&&t.cardId===e.cardId&&t.revision===e.revision&&t.transactionDigest===(e.kind===`receipt`?e.input.digest:n?.transactionDigest)&&(e.kind!==`review`||t.attemptId===n?.attemptId)}function BS(e){let t;for(let n of Array.isArray(e.content)?e.content:[]){let e=$(n),r;if(e?.type===`resource_link`&&typeof e.uri==`string`&&e.uri.startsWith(`suimcp://cards/`)&&(r=e.uri),e?.type===`text`&&typeof e.text==`string`){let t=/^\[Resource link: card_([A-Za-z0-9_-]+)\] (suimcp:\/\/cards\/([A-Za-z0-9_-]+)) \(Saved data for this exact card\.\)$/.exec(e.text);if(!t&&e.text.startsWith(`[Resource link:`)&&e.text.includes(`suimcp://cards/`))throw Error(`The saved card links could not be matched to one card.`);if(t){if(t[1]!==t[3])throw Error(`The saved card links could not be matched to one card.`);r=t[2]}}if(r===void 0)continue;let i=r.slice(ES.length);if(!i||encodeURIComponent(i)!==i||t!==void 0&&i!==t||e?.type===`resource_link`&&typeof e.name==`string`&&e.name.startsWith(`card_`)&&e.name!==`card_${i}`)throw Error(`The saved card links could not be matched to one card.`);t=i}return t}function VS(e){let t=$(e.structuredContent),n=t?.ok===!0?DS.safeParse(t.data):void 0,r=$($(t?.error)?.details),i=n?.success?void 0:t?.ok===!0?$(t.data)?.card??t.data:r?.snapshot,a=i===void 0?void 0:bS.parse(i);a?.kind===`settings`&&fS.parse(a.data);let o=$(e._meta)?.[CS],s=o===void 0?void 0:kS.parse(o);if(s&&!zS(a,s))throw Error(`Transaction details do not match this saved result.`);let c=$(e._meta)?.[wS],l=c===void 0?void 0:AS.parse(c);if(l&&(!a||a.kind!==`connect`||l.cardId!==a.cardId||l.revision!==a.revision||l.connectionId!==$($(a.data)?.operation)?.connectionId))throw Error(`The connection QR code does not match this card.`);return{snapshot:a,display:s,wallet:l,inputRequired:n?.success?n.data:void 0,error:typeof r?.message==`string`?r.message:typeof r?.reason==`string`?r.reason:void 0}}function HS(e,t){let n=document.getElementById(`app`);if(!n)throw Error(`Card root is unavailable.`);let r=document.createElement(`h1`);r.textContent=t.title;let i=document.createElement(`p`);i.className=`ui-note`,i.setAttribute(`role`,`status`);let a=document.createElement(`p`);a.className=`ui-error`,a.setAttribute(`role`,`alert`);let o=document.createElement(`p`);o.className=`ui-note card-guidance`;let s=document.createElement(`section`),c=document.createElement(`div`);c.className=`card-actions`;let l=document.createElement(`div`);l.className=`card-progress-hint`,l.hidden=!0,n.replaceChildren(r,i,a,s,o,l,c);let u=new ig({name:`sui-mcp-card`,version:`0.8.1`},{},{autoResize:!0,strict:!0}),d=new AbortController,f=e===`connect`||e===`disconnect`||e===`review`,p=e===`settings`,m=f||p,h=!1,g,_,v,y,b,ee,x,te=!1,S=!1,ne,re,C={status:`unconfirmed`},ie,w,ae,T,E,oe=`continue`,se,ce,le=0,ue=0,de,fe,pe,D,O,k,me,he,ge=!1;function _e(){if(!T||!y)return;let{input:t,basis:n}=T,r=$(y.data),i=$(n.data),a=$(r?.request),o=$(r?.review),s=$(i?.request),c=!!a&&a.attemptId===s?.attemptId;if(!f)return y.state===`running`||y.reason===`completed`?T.delivery===`rejected`?`past`:`observed`:y.state===`closed`?`past`:`active`;if((e===`connect`||e===`disconnect`)&&typeof t.operationId==`string`){let e=$(r?.operation)?.operationId===t.operationId?$(r?.operation):void 0;if(t.action===`stop_connection`){if(e?.endReason===`user_stopped`)return`observed`;if(e&&e.status!==`running`)return`past`}else if(e)return`observed`}if(t.walletRunId&&t.walletRunId!==$(r?.walletAvailability)?.walletRunId&&t.walletRunId!==r?.acceptedWalletRunId)return`past`;switch(t.action){case`connect`:break;case`prepare_review`:if(typeof o?.reviewRevision==`number`&&typeof t.reviewRevision==`number`&&o.reviewRevision>t.reviewRevision)return o.account===t.account?`observed`:`past`;break;case`request_signature`:if(a?.account===t.account&&a?.reviewRevision===t.reviewRevision)return`observed`;if(typeof o?.reviewRevision==`number`&&typeof t.reviewRevision==`number`&&o.reviewRevision>t.reviewRevision||!a&&o&&o.reviewRevision===t.reviewRevision&&o.account===t.account&&o.status===`refresh_required`&&$(o.state)?.refreshReason===`review_evidence_stale`&&Array.isArray(r?.allowedActions)&&r.allowedActions.includes(`prepare_review`))return`past`;break;case`cancel`:if(y.reason===`cancelled`)return`observed`;break;case`disconnect`:case`stop_connection`:break;case`stop_waiting`:if(c&&(a?.requestStatus===`stopped`||r?.observationStopped===!0))return`observed`;if(c&&[`completed`,`request_failed`,`outcome_unknown`].includes(String(a?.requestStatus)))return`past`;break;case`read_result`:if(c&&(r?.observe===!0||a?.requestStatus===`completed`))return`observed`;if(c&&[`stopped`,`request_failed`].includes(String(a?.requestStatus)))return`past`}return ve()||typeof r?.actionRemainingMs==`number`&&r.actionRemainingMs<=0||[`connect`,`disconnect`,`cancel`,`prepare_review`,`request_signature`].includes(String(t.action))&&(y.state!==`ready`||o?.status===`expired`)?`past`:`active`}function ve(){let e=jx.safeParse(T?.input),t=Vx.safeParse(y?.data);if(!e.success||!t.success)return!1;let n=e.data,r=t.data,i=`operationId`in n&&!!y&&y.state===`ready`&&y.input.operationId===n.operationId&&r.kind!==`review`&&!r.operation;if(n.action===`connect`)return r.kind===`connect`&&i&&JSON.stringify([...n.chains].sort())!==JSON.stringify([...r.requestedChains].sort());if(n.action===`prepare_review`||n.action===`request_signature`)return r.kind!==`review`||r.reviewTarget?.connectionId!==n.connectionId||r.reviewTarget?.account!==n.account;if(n.action!==`disconnect`||r.kind!==`disconnect`)return!1;let a=r.connection?.connectionId===n.connectionId?r.connection:void 0;return a?i&&a.disconnectImpact?.impactId!==n.impactId||r.nextStep.reason===`no_session_to_disconnect`||r.nextStep.reason===`connection_target_changed`:i}function ye(){if(!T)return;let e=_e();e&&T.disposition!==`observed`&&(e!==`active`||T.disposition===`active`)&&(T.disposition=e),T.disposition===`observed`&&(T.retryRequired=!1)}function be(){if(y?.reason===`cancelled`)return;let e=Mx.safeParse($(y?.data)?.automaticAction);return T?.retryRequired&&e.success&&T.input.action===e.data.action?e.data:void 0}function xe(e){let t={connect:`connection request`,prepare_review:`review update`,request_signature:`wallet approval request`,read_result:`transaction status check`,cancel:`cancellation request`,stop_connection:`request to stop connecting`,stop_waiting:$($(e.basis.data)?.request)?.requestStatus===`awaiting_signature`?`request to stop wallet approval`:`request to stop checking the result`,disconnect:`wallet disconnect request`};return f?t[String(e.input.action)]??`request`:`data request`}function Se(e){if(e!==`past`||!T)return;let t=xe(T),n=T.input.action===`read_result`&&$($(y?.data)?.request)?.requestStatus===`outcome_unknown`?` To check this transaction again, ask to open its result in chat.`:``;return`Message from an earlier ${t}: “${T.message}”${n}`}let Ce,we;function Te(){let t=$(y?.data),n=p?$(t?.download):void 0,r=y?.state===`closed`,i=Array.isArray(n?.allowedFileActions)?n.allowedFileActions:[],a=r?[]:[...Array.isArray(t?.allowedActions)?t.allowedActions:[],...i.filter(e=>e===`settings_report_download`||Ce===void 0||Date.now()<Ce)],o=e===`review`&&t?.mode===`review`&&!t.request&&!!g&&y?.state===`ready`,s=o&&de!==void 0&&Date.now()>=de,c=document.visibilityState!==`hidden`,l=d.signal.aborted||C.status===`rejected`,u=C.status===`confirmed`,v=T?.disposition,b=v===`active`,ee=T?.retryRequired===!0,x=T?.input.action===`request_signature`&&v===`active`,S=oe===`paused`,ne=k?.pending?.()===!0,le=k?.displayRecovery?.(),fe=u&&!l&&!w&&!ne&&!s&&!!g,pe=fe&&!E&&!h&&(!m||!(se&&(b||ee||S))),D=Mx.safeParse(t?.automaticAction),O=p?$(n?.localSave):void 0,me=!!y&&!r&&(m?t?.observe===!0||O?.status===`saving`:y.state===`running`),he=!!_&&te&&!l&&!se&&c&&(ce===`explicit`||C.status!==`read_failed`&&(ce===`background`||C.status===`needed`&&C.automatic)),_e=c&&fe&&!ie&&!se&&!ce&&!E&&!ee&&!x&&!S&&f&&D.success&&a.includes(D.data.action)?D.data:void 0,ve=$(t?.restoreCheck),ye=p&&fe&&y?.state===`ready`&&!y.input.backupDelivery&&!E&&!h&&!t?.result&&t?.observe!==!0&&(ve?.status===`cannot_restore`&&[`operation_busy`,`wallet_request_unsettled`].includes(String(ve.reason))||!a.includes(`settings_select`)||!a.includes(`settings_download_backup`)||t?.phase===`prepared`&&!a.includes(`settings_confirm`)||t?.phase===`draft`&&$(t.draft)?.kind!==void 0&&$(t.draft)?.kind!==`import_local_data`&&!a.includes(`settings_prepare`)),we;!l&&_&&(C.status===`read_failed`||ie||C.status===`unconfirmed`?we=`read`:C.status===`needed`?C.automatic||(we=`read`):w||le||!r&&p&&[`pending`,`failed`].includes(String(t?.temporaryFileCleanup))||!r&&(O?.status===`saving`||O?.status===`needs_consent`&&!a.includes(`settings_store_backup`)||O?.status===`failed`&&O.failure===`not_published`&&!n?.endReason&&!a.includes(`settings_store_backup`))||ye?we=`read`:g?!r&&$(t?.progress)?.status===`unavailable`||!r&&$(t?.walletAvailability)?.status===`initializing`&&$(t?.walletAvailability)?.stage===`state_sync`?we=`read`:!r&&!S&&be()?we=`retry`:b&&(!m&&pe&&y?.state===`ready`&&ge&&k?.selectionRecovery?we=`selection`:!me&&!(S&&a.length>0)&&!(T?.input.action===`prepare_review`&&a.includes(`prepare_review`)&&t?.automaticAction===void 0)&&f&&(we=`read`)):(y?.state!==`closed`||w)&&(we=`read`));let Te=f?t?.actionRemainingMs:y?.inputRemainingMs;we===`retry`&&s&&(we=`read`);let Ee=r?void 0:f?t?.nextStateReadAfterMs:p&&Ce!==void 0?Math.max(0,Ce-ue):void 0,De=[!r&&(f?a.length>0:y?.state===`ready`)?Te:void 0,Ee].filter(e=>typeof e==`number`&&Number.isFinite(e)&&e>0),Oe=!l&&!!g&&c&&!re&&!ie&&C.status!==`read_failed`,ke=$(t?.review),Ae=o&&!l&&!ie&&!w&&!b&&!ee&&!S&&C.status!==`read_failed`&&(ne||E?.input.action===`prepare_review`||ke?.preparing===!0||D.success&&D.data.action===`prepare_review`||C.status===`needed`&&ke?.status===`ready_for_wallet_review`);return{current:u,inputEnabled:pe,permitted:a,disposition:v,read:he,auto:_e,recover:we,paused:S,partialDisplayFailure:le,settingsInputBlocked:ye,reviewUpdatePending:Ae,reviewCommandDeliveryFailed:b&&T?.input.action===`prepare_review`,reviewHint:s?void 0:Ae?ne||ke?.preparing||E?.input.action===`prepare_review`?`Updating review…`:`Checking status…`:o&&$(ke?.state)?.refreshReason===`review_evidence_stale`?`Review details are out of date.`:void 0,errors:[C.status===`rejected`?C.message:C.status===`read_failed`?`This card's status could not be checked. Reported message: “${C.message}”`:void 0,ie&&C.status!==`rejected`?`This card could not be opened. Reported message: “${ie}”`:void 0,b&&T?`Message for this ${xe(T)}: “${T.message}”`:void 0,w,le?.message],note:[ae,Se(v)].filter(Boolean).join(` `),expiryAt:Oe&&u&&De.length?ue+Math.min(...De):void 0,poll:Oe&&(me||C.status===`needed`&&!C.automatic),lifetimeAt:!l&&c&&o?de:void 0}}function Ee(e){return e.recover===`retry`?T?.input.action===`connect`?`Retry connection`:`Retry review`:e.recover===`selection`?k?.selectionRecovery?.label:e.recover===`read`?`Check status`:void 0}function De(e){if(d.signal.aborted)return``;let n=e.errors.some(Boolean)||e.recover!==void 0||!!y&&!g&&y.state!==`closed`||y?.state===`closed`&&y.reason!==`completed`,r=e.errors.some(Boolean)||C.status!==`confirmed`||e.recover===`retry`||e.settingsInputBlocked;if(n&&r&&C.status!==`rejected`){if(se||e.read)return`Checking status…`;let t=Ee(e);if(e.recover===`selection`&&t)return`Use ${t} to try the current selection again.`;if(t)return t===`Check status`?w||e.partialDisplayFailure?`Use Check status to read this card and try displaying it again.`:`Use Check status to read this card again.`:t===`Retry connection`?`Use Retry connection to try connecting your wallet again.`:`Use Retry review to try again with the displayed wallet and account.`}return t.guidance?.(y,{confirmed:e.current,readOnly:!g,recoveryNeeded:n,visibleConfirmation:k?.visibleConfirmation?.(),commandPending:m&&E&&e.current&&!e.errors.some(Boolean)&&(E.phase===`confirming`||y?.state===`ready`&&!$(y.data)?.request&&!$($(y.data)?.review)?.preparing)?{phase:E.phase,action:String(E.input.action)}:void 0,approvalUnresolved:T?.input.action===`request_signature`&&e.disposition===`active`||E?.input.action===`request_signature`,automaticPaused:e.paused})??``}function Oe(e=Te()){return e.inputEnabled&&y?.state===`ready`&&ge}function ke(e,t=Te()){return y?.state!==`closed`&&m&&t.inputEnabled&&(e?t.permitted.includes(e.action):t.permitted.length>0)}function Ae(e){let t=Te();return p&&h&&t.current&&!!g&&!E&&!se&&!w&&!d.signal.aborted&&[`settings_begin_upload`,`settings_upload_chunk`,`settings_seal_upload`,`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`].includes(String(e.action))&&(t.permitted.includes(e.action)||e.action===`settings_report_download`)}function je(e){let u=$(y?.data),f=s.querySelector(`.review-action-feedback`),_=s.querySelector(`.review-primary-action`);if(f){let e=s.querySelector(`.review-lifetime`);e?(e.append(l),f.prepend(a)):f.prepend(l,a),f.append(o)}else n.insertBefore(a,s),n.insertBefore(l,c),n.insertBefore(o,l);a.className=f?`ui-note`:`ui-error`,y?(r.textContent=t.titleFor?.(y)??t.title,i.textContent=C.status===`rejected`?`Card unavailable`:!e.current&&y.state===`ready`?f?``:!d.signal.aborted&&(se||e.read)?`Checking whether actions are available in this card…`:`Actions are unavailable until this card's status is checked.`:!g&&y.state!==`closed`?`View only.`:m?$(u?.progress)?.status===`unavailable`?`Current progress is unavailable. The last recorded state is shown.`:!u?.request&&y.state===`closed`&&[`expired`,`server_restarted`,`cancelled`].includes(y.reason??``)?`This card no longer accepts actions.`:``:y.state===`running`?`Reading the requested data…`:y.reason===`completed`?``:y.error??(y.reason===`expired`?`The time to make a selection has ended.`:y.reason===`server_restarted`?`This request ended when Sui MCP restarted.`:``)):i.textContent=re?``:C.status===`read_failed`?`Card status unavailable`:ie||C.status===`rejected`?`Card unavailable`:`Opening card…`,i.hidden=!i.textContent,a.textContent=[...new Set(e.errors.filter(Boolean))].join(` `),a.hidden=!a.textContent;let v=s.querySelector(`.review-status`);if(v){let t=!!f&&(e.reviewUpdatePending||!!a.textContent);t?v.classList.add(`review-status--reserved`):v.classList.remove(`review-status--reserved`),v.setAttribute(`aria-hidden`,String(t))}let b=s.querySelector(`.review-material-status`);if(b&&(b.textContent=b.dataset.previous===`true`||!e.current||e.reviewUpdatePending?b.dataset.previousLabel??``:b.dataset.currentLabel??``),o.textContent=[e.note,De(e)].filter(Boolean).join(` `),o.hidden=!o.textContent,ge)for(let t of s.querySelectorAll(`input, button, select`))(!m||t.tagName!==`BUTTON`||t.dataset.cardAction!==void 0)&&(t.disabled=m?!ke(void 0,e):!Oe(e));if(m)for(let t of s.querySelectorAll(`[data-card-action]`))t.disabled=!ke({action:t.dataset.cardAction},e);if(p)for(let t of s.querySelectorAll(`[data-settings-file-action]`))t.disabled=t.dataset.settingsLocalBlocked===`true`||!(h?Ae({action:t.dataset.cardAction}):ke({action:t.dataset.cardAction},e));_&&(e.reviewUpdatePending||_.dataset.cardAction===`request_signature`&&e.reviewCommandDeliveryFailed||_.dataset.cardAction===void 0)&&(_.disabled=!0),O&&(O.disabled=!!E||!!se)}function Me(e){try{e?.()}catch{w=`The card display could not be closed cleanly. Its stored information is unchanged.`}}function Ne(e){if(!y||d.signal.aborted)return;if(y.state===`ready`&&C.status!==`confirmed`){if(p&&k?.update)try{k.update(y,{automaticPaused:oe===`paused`,settings:Ke,settingsCommandProgress:void 0,onDisplayChange:()=>A()})}catch{w=`This card could not be displayed. Its stored information is unchanged.`}return}let n=m?{...$(y.data),actionRemainingMs:void 0,nextStateReadAfterMs:void 0,...p&&$(y.data)?.download?{download:{...$($(y.data)?.download),remainingMs:void 0}}:{}}:void 0,r=p&&E?.phase===`sending`&&C.status===`confirmed`?FS(E.basis,y,E.input):void 0,i=`${oe===`paused`}:${JSON.stringify(r)}:${y.revision}:${g!==void 0}:${b!==void 0}:${x!==void 0}:${JSON.stringify(n)}`;if(i===me||i===he&&!e)return;he=i;let a=[...s.children],o=new Set([...s.querySelectorAll(`details`)].filter(e=>e.open).map(e=>e.querySelector(`summary`)?.textContent)),c,l=!1,u=!1;try{let e={automaticPaused:oe===`paused`,onDisplayChange:()=>A(),wallet:x,...p?{settings:Ke,settingsCommandProgress:r}:{}};if(k?.update?.(y,e)){me=i,w=void 0;return}if(y.state===`ready`&&g){let n=t.controls(y,e=>{We(e)},b,x,e);c=`node`in n?n:{node:n},l=!0}else(m||y.reason===`completed`)&&y.data!==void 0&&(c=t.result(y,b,g&&y.reason!==`cancelled`?e=>{We(e)}:void 0,x,e));s.replaceChildren(...c?[c.node]:[]),u=!0,c?.mount?.();for(let e of s.querySelectorAll(`details`))o.has(e.querySelector(`summary`)?.textContent)&&(e.open=!0)}catch{u&&s.replaceChildren(...a),Me(c?.dispose),w=`This card could not be displayed. Its stored information is unchanged.`;return}let f=k?.dispose;k=c,ge=l,me=i,w=void 0,Me(f)}function Pe(t,n,r,i,a){if(d.signal.aborted||C.status===`rejected`)return!1;if(t.kind!==e||t.cardId!==_)throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(`The returned information does not match this card.`);let o=$(t.data),s=$(o?.request),c=$(s?.execution),l=o?.automaticAction===void 0?void 0:Mx.safeParse(o.automaticAction);if(l&&!l.success)throw Error(`This card could not start the next step.`);if(y&&t.revision<y.revision)return!1;if(y?.state===`closed`&&C.status===`confirmed`&&JSON.stringify(t)!==JSON.stringify(y))throw Error(`The completed card result cannot change.`);if(v&&[...new Set([...Object.keys(v),...Object.keys(t.input)])].some(e=>JSON.stringify(t.input[e])!==JSON.stringify(v[e])))throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(`The returned information does not match this card.`);if(e===`review`&&($(o?.review)?.reviewSessionId!==void 0&&$(o?.review)?.reviewSessionId!==t.input.reviewSessionId||s&&(s.reviewSessionId!==t.input.reviewSessionId||t.input.attemptId!==void 0&&s.attemptId!==t.input.attemptId)||c&&(c.reviewSessionId!==s?.reviewSessionId||c.attemptId!==s?.attemptId||c.txDigest!==s?.transactionDigest)||$(o?.receipt)?.status===`found`&&$($(o?.receipt)?.receipt)?.txDigest!==s?.transactionDigest)||e===`receipt`&&o?.status===`found`&&$(o.receipt)?.txDigest!==t.input.digest)throw C={status:`rejected`,message:`The saved result does not match the information requested in this card.`},Error(C.message);!v&&(f||t.state!==`ready`)&&(v={...t.input});let u=r!==`preview`;if((!y||t.revision!==y.revision)&&(b=void 0,x=void 0),y=t,ye(),u){ue=Date.now();let t=p?$(o?.download):void 0;if(t?.availability===`available`&&typeof t.remainingMs==`number`&&Number.isFinite(t.remainingMs)){let e=`${o?.operationId}:${$(o?.file)?.fileId}:${t.expiresAt}`;we!==e&&(we=e,Ce=void 0),Ce=Math.min(Ce??1/0,ue+Math.max(0,t.remainingMs))}else p&&t?.availability===`ended`&&(Ce=void 0);g&&e===`review`&&o?.mode===`review`&&!o.request&&typeof o.actionRemainingMs==`number`&&Number.isFinite(o.actionRemainingMs)&&o.actionRemainingMs>=0&&(de=Math.min(de??1/0,ue+o.actionRemainingMs))}return r===`read`&&(C.status!==`needed`||a>C.afterRead)&&(C={status:`confirmed`},ie=void 0),n&&(b=n),x=i,!0}function Fe(){fe!==void 0&&clearTimeout(fe),pe!==void 0&&clearTimeout(pe),D!==void 0&&clearTimeout(D),fe=void 0,pe=void 0,D=void 0,l.hidden=!0}function Ie(e){let t=Ee(e);O?.textContent!==t&&(O?.remove(),O=void 0,t&&(O=cg(t,()=>{if(se||E||d.signal.aborted)return;let e=Te();if(e.recover===`selection`&&Oe(e))k?.selectionRecovery?.retry();else if(e.recover===`retry`){let e=be();e&&Ue(e)}else Le()})));let n=s.querySelector(`.review-primary-action`),r=s.querySelector(`.review-primary-slot`);n&&(n.hidden=!!O&&!!r),O&&(O.disabled=!!se||!!E,r?(O.classList.add(`review-recovery-action`),r.append(O)):(O.classList.remove(`review-recovery-action`),c.append(O)))}async function Le(){let e=k,t=e?.displayRecovery?.(),n=await ze(!0);n?.kind===`accepted`&&y===n.snapshot&&C.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&!w&&e===k&&t&&e?.displayRecovery?.()===t&&(t.retry(),A())}function A(e=!1){if(re){let e=document.createElement(`p`);e.className=`ui-note`,e.textContent=re,s.replaceChildren(e)}else Ne(e);let t=Te();if(je(t),Fe(),Ie(t),d.signal.aborted||C.status===`rejected`)return;t.expiryAt!==void 0&&(pe=setTimeout(()=>{Re(),A()},Math.max(0,t.expiryAt-Date.now()))),t.reviewHint&&!a.textContent&&(l.replaceChildren(),l.textContent=t.reviewHint,l.setAttribute(`role`,`status`),l.hidden=!1);let n=s.querySelector(`.review-time-remaining`);if(n&&t.lifetimeAt!==void 0){let e=t.lifetimeAt,r=()=>{if(d.signal.aborted)return;let t=Math.max(0,e-Date.now()),i=Math.ceil(t/1e3);if(n.textContent=t>0?`Review expires in ${Math.floor(i/60)}:${String(i%60).padStart(2,`0`)}`:`Review time elapsed`,t>0)D=setTimeout(r,Math.min(1e3,t));else{let e=Te();je(e),Ie(e)}};r()}if(t.poll&&y){let e=ue+y.pollAfterMs-Date.now();fe=setTimeout(()=>{ze(!1)},e>0?e:y.pollAfterMs)}t.read?(ce=void 0,Be()):t.auto&&(fe=setTimeout(()=>{let e=Te().auto;e&&Ge(e,`automatic`)},0))}function Re(){C.status!==`rejected`&&C.status!==`read_failed`&&(C={status:`needed`,afterRead:le,automatic:!0})}function ze(e){return d.signal.aborted||C.status===`rejected`||!_||!te?Promise.resolve(void 0):se?se.promise:C.status===`read_failed`&&!e?Promise.resolve(void 0):(ce=e?`explicit`:`background`,A(),se?.promise??Promise.resolve(void 0))}function Be(){let e=++le,t=performance.now(),n={id:e,promise:Promise.resolve().then(async()=>{try{let n,r,i;if(g){let e=VS(await Ve(MS.read,{...g}));if(!e.snapshot)throw Error(e.error??`Saved card data is unavailable.`);if(e.error)throw Error(e.error);n=e.snapshot,r=e.display,i=e.wallet}else{let e=`${ES}${encodeURIComponent(_)}`,t=(await u.readServerResource({uri:e},{signal:d.signal})).contents.find(t=>t.uri===e&&`text`in t);if(!t||!(`text`in t))throw Error(`Saved card data is unavailable.`);n=bS.parse(JSON.parse(t.text));let i=b??ee;r=i&&zS(n,i)?i:void 0}if(d.signal.aborted||C.status===`rejected`)return{kind:`disposed`,id:e};let a=Pe(n,r,`read`,i,e);return ee=void 0,!a&&C.status===`needed`&&e>C.afterRead&&(C={...C,automatic:!1}),A(a),a&&C.status===`confirmed`?{kind:`accepted`,snapshot:n,id:e,requestStartedAt:t}:{kind:`ignored`,id:e}}catch(t){return d.signal.aborted?{kind:`disposed`,id:e}:(C.status!==`rejected`&&(C={status:`read_failed`,message:t instanceof Error?t.message:`Saved card data could not be read. The last displayed result is unchanged.`}),{kind:`failed`,id:e})}}).finally(()=>{se===n&&(se=void 0),A()})};se=n,A()}async function Ve(e,t){return RS(await u.callServerTool({name:e,arguments:t},{signal:d.signal}))}function He(e,t,n){let r=Vx.safeParse(n.data);if(!r.success||!r.data.allowedActions.some(t=>t===e.action))return!1;let i=r.data,a=$(t.data);return e.walletRunId&&e.walletRunId!==i.walletAvailability.walletRunId?!1:e.action===`connect`?i.kind===`connect`&&JSON.stringify(e.chains)===JSON.stringify(i.requestedChains):e.action===`prepare_review`||e.action===`request_signature`?i.kind===`review`&&i.review.reviewRevision===e.reviewRevision&&i.reviewTarget?.account===e.account&&i.reviewTarget?.connectionId===e.connectionId:e.action===`disconnect`?i.kind===`disconnect`&&i.connection?.connectionId===e.connectionId&&i.connection?.disconnectImpact?.impactId===e.impactId:e.action===`stop_connection`?i.kind===`connect`&&i.operation?.operationId===e.operationId&&i.operation?.status===`running`:JSON.stringify(t.input)===JSON.stringify(n.input)&&(i.kind!==`review`||i.request?.attemptId===$(a?.request)?.attemptId&&i.review.reviewRevision===$(a?.review)?.reviewRevision)}async function Ue(e){if(!y||se||!ke(e))return;let t={input:e,basis:y,phase:`confirming`};E=t;let n=await ze(!1);E===t&&(E=void 0,n?.kind===`accepted`&&y===n.snapshot&&C.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&He(e,t.basis,n.snapshot)&&ke(e)?await Ge(e):C.status!==`read_failed`&&C.status!==`rejected`&&!d.signal.aborted&&(ae=`The card state changed. Check the current selection before trying again.`),A())}async function We(e){f&&(T?.disposition===`active`||T?.retryRequired||oe===`paused`)?await Ue(e):await Ge(e)}function j(e,t,n){T={input:e.input,basis:e.basis,message:t,delivery:n,disposition:`active`,retryRequired:e.input.action===`connect`||e.input.action===`prepare_review`},ye(),[`cancel`,`disconnect`,`stop_connection`,`stop_waiting`].includes(String(e.input.action))&&(oe=`paused`),(m||n===`unknown`)&&Re()}async function Ge(e,t=`user`){if(!y||!g||(t===`file`?!Ae(e):m?!ke(e):!Oe()))return;let n={input:e,basis:y,phase:`sending`};E=n,oe=`continue`,(t===`user`||T?.disposition!==`past`)&&(T=void 0),ae=void 0,A();try{let t=VS(await Ve(m?MS.act:MS.submit,{...g,revision:n.basis.revision,input:e}));if(d.signal.aborted||C.status===`rejected`)return;if(!t.snapshot)throw Error(t.error??`The request could not be confirmed.`);t.error&&j(n,t.error,`rejected`),Pe(t.snapshot,t.display,`action`,t.wallet)}catch(e){!d.signal.aborted&&C.status!==`rejected`&&(j(n,e instanceof Error?e.message:`The request could not be confirmed.`,`unknown`),T&&(T.data=$(e)?.data))}finally{E===n&&(E=void 0),A()}}let Ke={uploadChunkLimit(e,t){return g?gS({jsonrpc:`2.0`,id:2**53-1,method:`tools/call`,params:{name:MS.act,arguments:{...g,revision:2**53-1,input:{action:`settings_upload_chunk`,operationId:e,fileId:t,offset:2**53-1,chunkBase64:``}}}})??0:0},async readCurrent(){let e=await ze(!0);if(e?.kind!==`accepted`)throw Error(`The current Settings selection could not be checked. Use Check status before continuing.`);return{snapshot:e.snapshot,requestStartedAt:e.requestStartedAt}},async act(e,t=!1){if(t?!Ae(e):!ke(e))throw Error(`This Settings action is unavailable until its current status has been checked.`);if(await Ge(e,t?`file`:`user`),d.signal.aborted)throw Error(`This card closed before the request finished. Reopen the same conversation to check its status.`);if(T?.input===e){let e=Error(T.message);throw e.data=T.data,e}if(!y)throw Error(`The current Settings status could not be checked.`);return y},setFileTransferActive(e){h=e,A()},async readFile(e){if(!g||!_||!Te().current||d.signal.aborted)throw Error(`Backup read permission is unavailable.`);let t=await Ve(MS.readSettingsFile,{...g,...e}),n=jS.parse($(t._meta)?.[TS]);if(n.cardId!==_||n.operationId!==e.operationId||n.fileId!==e.fileId||n.offset!==e.offset||n.attemptId!==e.attemptId)throw Error(`The backup response does not match this card's selected file.`);return n},download:async(e,t,n)=>{let r=$($(y?.data)?.download);if(!g||!Te().current||d.signal.aborted||document.visibilityState===`hidden`||!r||r.currentAttemptId!==n||r.localSave||r.availability!==`available`||Ce===void 0||Date.now()>=Ce)throw Error(`This download is no longer available in this card.`);try{return{isError:(await u.downloadFile({contents:[{type:`resource`,resource:{uri:`file:///${encodeURIComponent(e)}`,mimeType:`application/json`,blob:t}}]},{signal:d.signal})).isError}}catch(e){if(e&&typeof e==`object`&&`code`in e&&e.code===-32601)return{unsupported:!0};throw e}}};async function qe(){if(te&&ne!==void 0&&!S){S=!0;try{let t=RS(ne),n=$(t._meta);if(t._meta!==void 0&&!n)throw Error(`This card cannot accept actions with the access information provided by the app.`);let r=n?.[SS];if(r!==void 0){let e=OS.safeParse(r);if(!e.success)throw Error(`This card cannot accept actions with the access information provided by the app.`);g=e.data}let i=VS(t);if(i.inputRequired){if(i.inputRequired.kind!==e||g)throw Error(`The app provided inconsistent card input information.`);re=i.inputRequired.message,A();return}let a=BS(t),o=[i.snapshot?.cardId,g?.cardId,a].filter(e=>e!==void 0);if(!o.length)throw Error(`Card data is unavailable.`);if(o.some(e=>e!==o[0])||i.snapshot&&i.snapshot.kind!==e)throw C={status:`rejected`,message:`The returned information does not match this card.`},Error(C.message);_=o[0];let s=i.snapshot;s&&(f||s.state!==`ready`)&&(v={...s.input}),ee=i.display,s&&g&&Pe(s,i.display,`preview`,i.wallet),Re(),A()}catch(e){if(d.signal.aborted)return;ie=e instanceof Error?e.message:`Card data could not be read.`,A()}}}u.ontoolresult=e=>{if(ne===void 0)ne=e,qe();else try{let t=VS(RS(ne)).snapshot??y,n=VS(RS(e)).snapshot;if(t&&n&&(t.cardId!==n.cardId||t.kind!==n.kind))throw Error(`The app returned a different card.`)}catch{C={status:`rejected`,message:`The returned information does not match this card.`},A()}},u.onhostcontextchanged=e=>{e.theme&&(document.documentElement.dataset.theme=e.theme)};let Je=()=>{document.visibilityState!==`hidden`&&g&&S&&C.status!==`read_failed`&&y?.state!==`closed`?ze(!1):A()};document.addEventListener?.(`visibilitychange`,Je),u.onteardown=async()=>{if(d.signal.aborted)return{};d.abort(),E=void 0,document.removeEventListener?.(`visibilitychange`,Je);let e=k?.dispose;return k=void 0,Me(e),A(),{}},u.connect().then(()=>{d.signal.aborted||(te=!0,document.documentElement.dataset.theme=u.getHostContext()?.theme??`light`,qe())}).catch(()=>{d.signal.aborted||(ie=`Could not connect this card to the app.`,A())})}var US=o(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),WS=o((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),GS=o((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),KS=o(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),qS=o(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),JS=o((e=>{var t=WS().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),YS=o((e=>{var t=WS().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),XS=o((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),ZS=o((e=>{var t=GS(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),QS=o((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),$S=o((e=>{var t=QS();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),eC=o(((e,t)=>{var n=$S();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),tC=o((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),nC=o((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
3631
3631
|
]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),rC=o((e=>{var t=tC(),n=nC();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),iC=o((e=>{var t=WS(),n=ZS(),r=GS(),i=rC(),a=tC(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),aC=o((e=>{var t=WS(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),oC=o(((e,t)=>{var n=rC();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),sC=o(((e,t)=>{var n=rC(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),cC=o(((e,t)=>{var n=rC();function r(e){this.mode=n.BYTE,this.data=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),lC=o(((e,t)=>{var n=rC(),r=WS();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
|
|
3632
3632
|
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),uC=o(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),dC=o((e=>{var t=rC(),n=oC(),r=sC(),i=cC(),a=lC(),o=nC(),s=WS(),c=uC();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
|
|
3633
3633
|
Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),fC=o((e=>{var t=WS(),n=GS(),r=KS(),i=qS(),a=JS(),o=YS(),s=XS(),c=ZS(),l=eC(),u=iC(),d=aC(),f=rC(),p=dC();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return ee(a,e,n)}function ee(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),ee=0,x,te;for(x=0;x<v;x++)for(te=0;te<o;te++)x<g[te].length&&(b[ee++]=g[te][x]);for(x=0;x<p;x++)for(te=0;te<o;te++)b[ee++]=_[te][x];return b}function x(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
|