@zktx.io/sui-mcp 0.6.0 → 0.6.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.
Files changed (103) hide show
  1. package/README.md +18 -18
  2. package/dist/adapters/adapterPromptSurfaces.js +0 -20
  3. package/dist/adapters/deepbook/deepbookQuotePolicy.js +0 -4
  4. package/dist/adapters/deepbook/deepbookReviewEvidence.js +0 -9
  5. package/dist/adapters/deepbook/deepbookTransactionMaterialProducer.js +0 -9
  6. package/dist/adapters/intentPlanFactories.js +0 -6
  7. package/dist/core/action/contractNameRegistry.js +0 -53
  8. package/dist/core/action/forbiddenFields.js +0 -4
  9. package/dist/core/action/ptbVisualizationProducer.js +0 -3
  10. package/dist/core/action/receiptPtbGraph.js +0 -17
  11. package/dist/core/action/reviewTimeSimulationEvidence.js +0 -4
  12. package/dist/core/action/signableAdapterContract.js +0 -5
  13. package/dist/core/action/suiChainReceiptMapping.js +0 -18
  14. package/dist/core/action/suiChainReceiptReader.js +1 -21
  15. package/dist/core/action/suiChainReceiptVerifier.js +0 -10
  16. package/dist/core/action/transactionFunding.js +0 -7
  17. package/dist/core/action/types.js +0 -1
  18. package/dist/core/action/walletReviewContractAssembler.js +0 -2
  19. package/dist/core/activity/localDataService.js +0 -6
  20. package/dist/core/activity/sqliteActivityStore.js +0 -8
  21. package/dist/core/activity/sqliteActivityStoreRows.js +0 -2
  22. package/dist/core/activity/sqliteActivityStoreSchema.js +0 -4
  23. package/dist/core/read/deepbookReadHelpers.js +0 -2
  24. package/dist/core/read/deepbookRegistry.js +0 -19
  25. package/dist/core/read/deepbookUsdcChartService.js +0 -2
  26. package/dist/core/read/readCardResult.js +0 -2
  27. package/dist/core/read/readService.js +0 -19
  28. package/dist/core/read/readServiceTypes.js +0 -2
  29. package/dist/core/session/cardSession.js +0 -4
  30. package/dist/core/session/cardSessionStore.js +1 -4
  31. package/dist/core/session/reviewValidity.js +0 -3
  32. package/dist/core/session/sessionRecordStore.js +0 -1
  33. package/dist/core/session/sessionStore.js +0 -15
  34. package/dist/core/session/settingsFileIdentity.js +0 -2
  35. package/dist/core/session/settingsFileProtocol.js +0 -5
  36. package/dist/core/session/settingsFileStore.js +1 -10
  37. package/dist/core/session/settingsInputError.js +0 -2
  38. package/dist/core/session/settingsOperation.js +0 -4
  39. package/dist/core/session/settingsPreparationSql.js +0 -2
  40. package/dist/core/session/settingsWorkflow.js +1 -37
  41. package/dist/core/session/sqliteCardStore.js +0 -2
  42. package/dist/core/session/sqliteSessionStore.js +0 -11
  43. package/dist/core/session/sqliteSettingsWorkflowStore.js +0 -10
  44. package/dist/core/session/sqliteTransactionMaterialStore.js +0 -11
  45. package/dist/core/session/sqliteWalletWorkflowStore.js +0 -29
  46. package/dist/core/session/status.js +0 -2
  47. package/dist/core/session/transactionMaterialStore.js +0 -4
  48. package/dist/core/session/transactionRequest.js +0 -4
  49. package/dist/core/session/walletConnection.js +0 -3
  50. package/dist/core/session/walletWorkflow.js +3 -21
  51. package/dist/core/session/workflowState.js +0 -8
  52. package/dist/core/session/workflowView.js +0 -6
  53. package/dist/core/suiAddress.js +0 -5
  54. package/dist/core/suiEndpoint.js +0 -3
  55. package/dist/mcp/prompts.js +0 -12
  56. package/dist/mcp/schemas.js +0 -3
  57. package/dist/mcp/tools/action/prepareSuiActionReview.js +0 -6
  58. package/dist/mcp/tools/read/serverStatusTools.js +0 -1
  59. package/dist/mcp/tools/session/shared.js +0 -2
  60. package/dist/mcp/tools/session/statusTools.js +0 -2
  61. package/dist/mcp-app/account.html +1 -1
  62. package/dist/mcp-app/chart.html +6 -6
  63. package/dist/mcp-app/connect.html +6 -6
  64. package/dist/mcp-app/receipt.html +298 -298
  65. package/dist/mcp-app/review.html +237 -237
  66. package/dist/mcp-app/settings.html +1 -1
  67. package/dist/mcp-ui/tools.js +3 -4
  68. package/dist/review-server/server.js +0 -2
  69. package/dist/runtime/application.js +1 -1
  70. package/dist/runtime/config.js +0 -2
  71. package/dist/runtime/localSettingsService.js +0 -3
  72. package/dist/runtime/logger.js +0 -2
  73. package/dist/runtime/reviewServerAcquire.js +1 -18
  74. package/dist/runtime/runtimeTermination.js +1 -4
  75. package/dist/runtime/shared/authenticatedFetch.js +0 -6
  76. package/dist/runtime/shared/control.js +0 -2
  77. package/dist/runtime/shared/dataAccess.js +0 -2
  78. package/dist/runtime/shared/mcpHttp.js +0 -5
  79. package/dist/runtime/shared/ownerLease.js +0 -4
  80. package/dist/runtime/shared/server.js +0 -1
  81. package/dist/runtime/shared/stdio.js +2 -5
  82. package/dist/runtime/smokeMainnetRead.js +0 -2
  83. package/dist/runtime/smokeReview.js +0 -4
  84. package/dist/runtime/start.js +0 -2
  85. package/dist/runtime/suiTransactionGraphqlMapping.js +0 -2
  86. package/dist/runtime/suiTransactionGraphqlQueries.js +0 -3
  87. package/dist/runtime/walletConnectConfig.js +0 -2
  88. package/dist/runtime/walletConnectStorage.js +0 -6
  89. package/dist/runtime/walletConnectTransport.js +0 -11
  90. package/dist/runtime/walletSdkChildRuntime.js +0 -5
  91. package/dist/runtime/walletSdkProcess.js +0 -6
  92. package/docs/AGENT_BEHAVIOR.md +1 -5
  93. package/docs/LOCAL_DB_ARCHITECTURE.md +3 -3
  94. package/docs/MCP_SETUP.md +14 -14
  95. package/docs/MCP_TOOLS.md +15 -0
  96. package/docs/SDK_API.md +12 -0
  97. package/docs/WALLET_CONNECTION.md +2 -1
  98. package/package.json +10 -2
  99. package/docs/AGENT_DEVELOPMENT_POLICY.md +0 -819
  100. package/docs/FRONTEND_POLICY.md +0 -611
  101. package/docs/golden-scenarios/BEHAVIOR_MATRIX.md +0 -166
  102. package/docs/golden-scenarios/INTENT_EVIDENCE_GOLDEN_ANSWERS.md +0 -161
  103. package/docs/golden-scenarios/INTENT_EVIDENCE_MATRIX.md +0 -259
@@ -3169,11 +3169,11 @@ zebra
3169
3169
  zero
3170
3170
  zone
3171
3171
  zoo`.split(`
3172
- `)),hx={0:`ED25519`,1:`Secp256k1`,2:`Secp256r1`,3:`MultiSig`,5:`ZkLogin`,6:`Passkey`};function gx(e){let{prefix:t,words:n}=Uy.decode(e);if(t!==`suiprivkey`)throw Error(`invalid private key prefix`);let r=new Uint8Array(Uy.fromWords(n)),i=r.slice(1);return{scheme:hx[r[0]],secretKey:i}}var _x=`external-proposal-alpha-2026-05-25`,vx=`proposal-review-model-alpha-2026-05-25`;Th();var yx=P().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),bx=/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,xx=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/,Sx=/suiprivkey1[023456789acdefghjklmnpqrstuvwxyz]+/gi,Cx=/(^|[^0-9a-fA-F])(?:0x)?[0-9a-fA-F]{64}($|[^0-9a-fA-F])/,wx=/(^|[^A-Za-z0-9+/_=-])(?:[A-Za-z0-9+/]{43}=|[A-Za-z0-9+/]{44}|[A-Za-z0-9_-]{43,44})($|[^A-Za-z0-9+/_=-])/,Tx=/^(?:0|[1-9][0-9]*)(?:\.[0-9]+)?$/,Ex=[12,15,18,21,24];function Dx(e,t,n={}){return P().min(1).max(e).superRefine((e,r)=>{(bx.test(e)||xx.test(e)||kx(e)||Ax(e)||!n.allowRawSecretLikeText&&jx(e))&&r.addIssue({code:`custom`,message:`${t} must not contain executable, signing, private-key, mnemonic, route-selected, or encoded secret-like material`})})}function Ox(e,t){return Dx(e,t,{allowRawSecretLikeText:!0})}function kx(e){return(e.match(Sx)??[]).some(e=>{try{return gx(e.toLowerCase()),!0}catch{return e.toLowerCase().startsWith(`suiprivkey1`)}})}function Ax(e){let t=e.normalize(`NFKD`).toLowerCase().replace(/[^a-z]+/g,` `).trim().split(/\s+/).filter(Boolean);for(let e of Ex)if(!(t.length<e)){for(let n=0;n<=t.length-e;n+=1)if(px(t.slice(n,n+e).join(` `),mx))return!0}return!1}function jx(e){return Cx.test(e)||wx.test(e)}var Mx=Dx(80,`amountDisplay`).refine(e=>Tx.test(e)&&/[1-9]/.test(e),{message:`Expected a positive decimal display amount`}),Nx=z({kind:H([`mcp_server`,`ai_client`,`user`,`other`]),name:Dx(120,`source.name`),reference:Dx(256,`source.reference`).optional()}).strict(),Px=z({address:bb.optional(),label:Dx(120,`party.label`).optional()}).strict().refine(e=>e.address!==void 0||e.label!==void 0,{message:`Expected address or label`}),Fx=z({amountDisplay:Mx,amountKind:U(`display_proposal`).default(`display_proposal`),symbol:Dx(64,`amount.symbol`).optional(),coinType:Ox(512,`amount.coinType`).optional(),denomination:Dx(64,`amount.denomination`).optional()}).strict(),Ix=z({packageId:Ox(128,`action.target.packageId`).optional(),module:Dx(128,`action.target.module`).optional(),function:Dx(128,`action.target.function`).optional(),objectId:Ox(128,`action.target.objectId`).optional(),label:Dx(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`}),Lx=z({direction:H([`outgoing`,`expected_incoming`,`fee`]),amount:Fx,recipient:Px.optional(),description:Dx(512,`assetFlow.description`).optional()}).strict(),Rx=z({id:Dx(120,`proposal.id`),source:Nx,network:U(`sui:mainnet`),createdAt:yx,expiresAt:yx.optional(),purpose:Dx(512,`purpose`),assumptions:R(Dx(512,`assumptions[]`)).max(20).optional(),requiredUserChoices:R(Dx(512,`requiredUserChoices[]`)).max(20).optional()}).strict(),zx=op(`type`,[Rx.extend({type:U(`payment`),payment:z({amount:Fx,recipient:Px,target:Dx(512,`payment.target`).optional()}).strict()}).strict(),Rx.extend({type:U(`sui_action`),action:z({actionKind:Dx(120,`action.actionKind`),target:Ix,recipient:Px.optional(),assetFlow:R(Lx).max(20).optional()}).strict()}).strict()]),Bx=z({id:P(),label:P(),status:H([`pass`,`warning`,`fail`]),message:P(),source:H([`proposal`,`adapter`,`registry`,`quote`,`wallet`,`simulation`,`network`])}).strict(),Vx=z({id:P(),label:P(),reason:P()}).strict(),Hx=z({modelVersion:U(vx),contractVersion:U(_x),proposalId:P(),proposalType:H([`payment`,`sui_action`]),proposalSource:Nx,proposedAction:z({kind:H([`payment`,`sui_action`]),title:P(),purpose:P(),network:U(`sui:mainnet`),recipient:Px.optional(),target:B([P(),Ix]).optional()}).strict(),assetFlow:z({outgoing:R(Fx),expectedIncoming:R(Fx),fees:R(Fx)}).strict(),recipients:R(Px),targets:R(B([P(),Ix])),evidenceUsed:R(z({id:P(),label:P(),source:H([`external_proposal`,`local_schema`]),summary:P()}).strict()),missingEvidence:R(Vx),requiredUserChoices:R(Vx),unsupportedClaims:R(z({id:P(),label:P(),reason:P()}).strict()),rejectedExecutableFields:R(z({fieldName:P(),reason:P()}).strict()),freshness:z({proposalCreatedAt:yx,proposalExpiresAt:yx.optional(),evaluatedAt:yx,status:H([`current`,`expired`,`created_in_future`,`expiry_not_provided`]),reason:P()}).strict(),blockingChecks:R(Bx),nonSignableReason:z({code:U(`external_proposal_review_only`),message:P(),blockedCapabilities:R(P())}).strict()}).strict();z({requestedIntent:zx,implementationStatus:U(`read_only_review_only`),contractVersion:U(_x)}).strict();var Ux=[`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`],Wx=[`review_evidence_stale`,`quote_stale`,`quote_unavailable`,`simulation_transient_failure`,`review_update_failed`,`wallet_connection_changed`],Gx=[`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`],Kx=[`humanReadableReview`,`simulation`,`transactionReviewData`,`ptbVisualization`,`assetFlowActual`,`beforeAfterBalance`];Th();var qx=H([`client.core.simulateTransaction`,`client.transactionExecutionService.simulateTransaction`]),Jx=`ptb-visualization-contract-alpha-2026-05-25`,Yx=[`proposedAction`,`assetFlow`,`recipients`,`targets`,`evidenceUsed`,`missingEvidence`,`requiredUserChoices`,`unsupportedClaims`,`freshness`,`blockingChecks`],Xx=[`effects`,`balanceChanges`,`objectTypes`,`transaction`],Zx=[`transaction_bytes`,`serialized_transaction`,`wallet_signature_request`,`private_key_material`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`],Qx=[`transaction_building_input`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`,`route_recommendation`],$x=yb,eS=`MIST`,tS=[`checkedAt`,`expiresAt`],nS=[`checkedAt`,`expiryStatus`],rS=[`rawAmount`,`asset`,`amountRole`],iS=[`minOutRaw`,`asset`,`amountRole`],aS=[`gasBudgetRaw`,`asset`,`amountRole`],oS=[`gasUsedRaw`,`asset`,`amountRole`],sS=[`checkedAt`,`gasResolutionStatus`,`unresolvedReason`],cS=[`balanceChanges`,`asset`,`amountRole`],lS=[`coinType`,`decimals`],uS=[`quoteEvidenceId`,`minOutRaw`],dS=[`maxSlippageBps`,`userSelection`],fS=[`maxSlippageBps`,`minOutRaw`],pS=[`ownerAccount`,`objects`],mS=[`pinned_sdk_registry`,`verified_mainnet_onchain_metadata`,`wallet_account_read`,`quote_evidence`,`review_time_simulation`,`validated_request_fact`,`user_explicit_choice`],hS=[`input`,`expected_output`,`minimum_output`,`gas_budget`,`gas_used`,`fee`,`balance_delta`],gS={input:{kinds:[`validated_request_fact`,`wallet_account_read`,`user_explicit_choice`],fields:rS},expected_output:{kinds:[`quote_evidence`,`review_time_simulation`],fields:rS},minimum_output:{kinds:[`quote_evidence`],fields:iS},gas_budget:{kinds:[`review_time_simulation`],fields:aS},gas_used:{kinds:[`review_time_simulation`],fields:oS},fee:{kinds:[`review_time_simulation`],fields:rS},balance_delta:{kinds:[`review_time_simulation`],fields:cS}},_S={pinned_sdk_metadata:{kinds:[`pinned_sdk_registry`],fields:lS},verified_mainnet_onchain_metadata:{kinds:[`verified_mainnet_onchain_metadata`],fields:lS}},vS={user_explicit:{kinds:[`user_explicit_choice`],fields:dS},adapter_policy_from_quote_evidence:{kinds:[`quote_evidence`],fields:fS}},yS={kinds:[`review_time_simulation`],fields:sS},bS={kinds:[`quote_evidence`],fields:uS},xS={kinds:[`validated_request_fact`],fields:tS},SS={kinds:[`validated_request_fact`],fields:nS},CS={raw_quantity_amount:{byRole:gS},unit_metadata:{bySource:_S},gas_unresolved_status:yS,expiry_status:{current:xS,expired:xS,not_provided:SS,not_applicable:SS},quote_min_out:bS,slippage_policy:{bySource:vS},object_ownership:{kinds:[`wallet_account_read`],fields:pS},simulation_result:{kinds:[`review_time_simulation`],fields:Xx}},wS={gasBudgetClaimId:{factKind:`raw_quantity_amount`,role:`gas_budget`,assetCoinType:$x,rawUnit:eS},gasUsedClaimId:{factKind:`raw_quantity_amount`,role:`gas_used`,assetCoinType:$x,rawUnit:eS},gasObjectOwnershipClaimId:{factKind:`object_ownership`,ownership:`owned_by_account`}},TS=P().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),ES=Ob(`unsigned integer`),DS=P().regex(/^0x[0-9a-fA-F]{1,64}$/,{message:`Expected a Sui object id`}),OS=P().min(1).max(512).refine(e=>{try{return jb(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),X=P().min(1).max(120),kS=z({symbol:P().min(1).max(64).optional(),coinType:OS}).strict(),AS=/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,jS=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/;function MS(e,t){return P().min(1).max(e).superRefine((e,n)=>{(AS.test(e)||jS.test(e))&&n.addIssue({code:`custom`,message:`${t} must not contain executable transaction, signing, private-key, mnemonic, or long encoded material`})})}function NS(e,t){let n=new Set(e);return t.filter(e=>!n.has(e))}function PS(e,t,n,r,i){let a=NS(t,n);a.length!==0&&e.addIssue({code:`custom`,path:r,message:`${i} must include ${a.join(`, `)}`})}function FS(e,t,n,r,i){PS(e,t,n,r,i)}function IS(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&&IS(e,r,i)}function LS(e,t,n,r,i){let a=new Set(t),o=new Set(n);if(a.size!==o.size){IS(e,r,i);return}for(let t of a)if(!o.has(t)){IS(e,r,i);return}}function RS(e,t,n,r,i){(t.symbol!==n.symbol||t.coinType!==n.coinType)&&IS(e,r,i)}function zS(e,t,n,r,i){try{jb(t.coinType)!==n&&IS(e,r,i)}catch{IS(e,r,i)}}var BS=z({kind:H([`natural_language_intent`,`external_proposal`,`mcp_action_request`,`local_review_request`]),sourceId:P().min(1).max(160),capturedAt:TS,authority:U(`untrusted_until_review_regenerates_and_verifies`),userSelectionSource:H([`user_explicit`,`prior_user_explicit_context`]).optional()}).strict(),VS=z({id:X,kind:H(mS),network:U(`sui:mainnet`),source:P().min(1).max(240),verifiedAt:TS,fields:R(P().min(1).max(120)).min(1)}).strict(),HS=op(`factKind`,[z({id:X,factKind:U(`raw_quantity_amount`),sourceEvidenceId:X,role:H(hS),asset:kS,rawAmount:ES}).strict(),z({id:X,factKind:U(`unit_metadata`),sourceEvidenceId:X,source:H([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),coinType:OS,decimals:F().int().min(0).max(255)}).strict(),z({id:X,factKind:U(`gas_unresolved_status`),sourceEvidenceId:X,checkedAt:TS,status:U(`unresolved`),reason:P().min(1).max(240)}).strict(),z({id:X,factKind:U(`expiry_status`),sourceEvidenceId:X,checkedAt:TS,status:H([`current`,`expired`,`not_provided`,`not_applicable`]),expiresAt:TS.optional(),reason:P().min(1).max(240).optional()}).strict(),z({id:X,factKind:U(`quote_min_out`),sourceEvidenceId:X,quoteEvidenceId:P().min(1).max(120),minOutRaw:ES}).strict(),z({id:X,factKind:U(`slippage_policy`),sourceEvidenceId:X,policySource:H([`user_explicit`,`adapter_policy_from_quote_evidence`]),maxSlippageBps:F().int().min(0).max(1e4),minOutRaw:ES.optional()}).strict(),z({id:X,factKind:U(`object_ownership`),sourceEvidenceId:X,objectId:DS,ownerAccount:bb,ownership:H([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`])}).strict(),z({id:X,factKind:U(`simulation_result`),sourceEvidenceId:X,provider:qx,checksEnabled:U(!0),simulatedAt:TS,status:H([`success`,`failed`,`unavailable`]),requiredFields:R(H(Xx)).min(Xx.length),missingFields:R(H(Xx)).default([]),failureReason:P().min(1).max(240).optional()}).strict()]),US=z({id:X,role:H(hS),asset:kS,rawAmount:ES,unit:z({decimals:F().int().min(0).max(255),source:H([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),sourceField:P().min(1).max(160),unitClaimId:X}).strict(),amountClaimId:X,displayOnly:z({amountDisplay:P().min(1).max(120),reason:U(`presentation_only_not_signing_input`)}).strict().optional()}).strict(),WS=z({objectId:DS,ownerAccount:bb,ownershipClaimId:X}).strict(),GS=z({source:U(`review_time_simulation`),checkedAt:TS,gasBudgetRaw:ES.optional(),gasBudgetClaimId:X.optional(),gasUsedRaw:ES.optional(),gasUsedClaimId:X.optional(),gasObjects:R(WS).optional(),unresolvedReason:P().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`})}),KS=op(`status`,[z({checkedAt:TS,status:U(`current`),expiresAt:TS,evidenceClaimId:X}).strict(),z({checkedAt:TS,status:U(`expired`),expiresAt:TS,evidenceClaimId:X}).strict(),z({checkedAt:TS,status:U(`not_provided`),evidenceClaimId:X,reason:P().min(1).max(240),expiresAt:$f().optional()}).strict(),z({checkedAt:TS,status:U(`not_applicable`),evidenceClaimId:X,reason:P().min(1).max(240),expiresAt:$f().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`})}),qS=z({status:H([`required_and_verified`,`not_required_for_action`,`missing`,`stale`]),quoteEvidenceId:P().min(1).max(120).optional(),quoteEvidenceClaimId:X.optional(),maxSlippageBps:F().int().min(0).max(1e4).optional(),minOutRaw:ES.optional(),policySource:H([`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`})}),JS=z({checkedAt:TS,ownerAccount:bb,objects:R(z({objectId:DS,role:H([`input_coin`,`gas_coin`,`protocol_object`,`shared_object`,`receiving_object`]),ownership:H([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`]),evidenceClaimId:X}).strict()).min(1)}).strict(),YS=z({evidenceClaimId:X,transactionDigest:xb,provider:qx,checksEnabled:U(!0),simulatedAt:TS,status:H([`success`,`failed`,`unavailable`]),requiredFields:R(H(Xx)).min(Xx.length),missingFields:R(H(Xx)).default([]),failureReason:P().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=>Xx.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`}),XS=z({fields:R(H(Yx)).min(Yx.length),transactionDigest:xb,source:U(`review_model_or_adapter_equivalent`),purpose:U(`human_review_before_wallet_authorization`)}).strict().refine(e=>Yx.every(t=>e.fields.includes(t)),{message:`Human-readable review fields must include every required review field`}),ZS=z({runtimeStatus:U(`emitted_pre_handoff`),mcpAndReviewUiMayExpose:R(H([`human_readable_review`,`ptb_visualization_artifact`,`diagnostics`,`status_checks`])).min(1),prohibited:R(H(Zx)).min(1)}).strict().superRefine((e,t)=>{FS(t,e.prohibited,Zx,[`prohibited`],`prohibited`)}),QS=z({schemaVersion:U(1),adapterId:P().min(1).max(120),protocol:P().min(1).max(120),actionKind:P().min(1).max(120),network:U(`sui:mainnet`),inputProvenance:BS,sourceReferences:R(VS).min(1),evidenceClaims:R(HS).min(1),rawQuantities:R(US).min(1),gas:GS,expiry:KS,slippageOrMinOut:qS,objectOwnership:JS,simulation:YS,humanReadableReview:XS,outputBoundary:ZS,reviewedTransactionDigest:xb}).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(`, `)}`}),PS(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}`});return}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,CS.raw_quantity_amount.byRole[e.role],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].raw_quantity_amount`),e.factKind===`unit_metadata`&&l(e.sourceEvidenceId,CS.unit_metadata.bySource[e.source],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].unit_metadata`),e.factKind===`gas_unresolved_status`&&l(e.sourceEvidenceId,CS.gas_unresolved_status,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].gas_unresolved_status`),e.factKind===`expiry_status`&&(l(e.sourceEvidenceId,CS.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,CS.quote_min_out,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].quote_min_out`),e.factKind===`slippage_policy`&&(l(e.sourceEvidenceId,CS.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,CS.object_ownership,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].object_ownership`),e.factKind===`simulation_result`&&(l(e.sourceEvidenceId,CS.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`}),Xx.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`),RS(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,wS.gasBudgetClaimId.role,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId role`),zS(t,n.asset,wS.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,wS.gasUsedClaimId.role,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId role`),zS(t,n.asset,wS.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,wS.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`),LS(t,e.simulation.requiredFields,f.requiredFields,[`simulation`,`requiredFields`],`simulation.requiredFields`),LS(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`)}),$S=z({contractVersion:U(Jx),artifactKind:U(`ptb_visualization`),generatedAt:TS,source:z({adapterId:P().min(1).max(120),planId:P().min(1).max(120).optional(),sourceKind:H([`review_time_generated_transaction_kind`,`review_time_ir`,`renderer_model`]),authority:U(`visualization_only_not_wallet_authorization`),renderer:z({name:P().min(1).max(120),packageName:P().min(1).max(120).optional(),version:P().min(1).max(80).optional()}).strict().optional()}).strict(),mermaid:z({diagramType:U(`flowchart`),text:MS(2e4,`mermaid.text`),namedText:MS(2e4,`mermaid.namedText`)}).strict(),diagnostics:R(z({severity:H([`info`,`warning`,`error`]),code:P().min(1).max(120),message:MS(512,`diagnostics.message`),source:H([`adapter`,`renderer`,`schema`,`simulation`])}).strict()).default([]),unsupportedUse:R(H(Qx)).min(1),executableMaterial:z({included:U(!1),policy:U(`mcp_and_review_ui_outputs_must_not_include_executable_transaction_material`)}).strict()}).strict().superRefine((e,t)=>{FS(t,e.unsupportedUse,Qx,[`unsupportedUse`],`unsupportedUse`)});Th();var eC=V(P(),L()),tC=H(Ux),nC=H(Wx);H([`ready_for_wallet_review`,`refresh_required`,`blocked`]);var rC=H(Gx);H([`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 iC=z({id:P(),label:P(),status:H([`pass`,`warning`,`fail`]),message:P(),source:H([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`])}),aC=P().min(1),oC=`human_readable_review`,sC=`review_time_simulation`,cC=z({stageCatalogId:P().min(1),adapterId:P(),protocol:P(),actionKind:P(),completedStages:R(aC),missingStages:R(aC)}).strict().superRefine((e,t)=>{let n=lC(e.completedStages);n&&t.addIssue({code:`custom`,path:[`completedStages`],message:`completedStages contains duplicate stage '${n}'`});let r=lC(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 lC(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}var uC=z({symbol:P(),amount:P(),coinType:P().optional(),approx:I().optional()}).strict(),dC=uC.extend({amountKind:U(`display_intent`).default(`display_intent`)}),fC=z({outgoing:R(dC),expectedIncoming:R(dC),minimumIncoming:R(dC).optional(),fees:R(dC).optional()}),pC=z({outgoing:R(uC),expectedIncoming:R(uC),minimumIncoming:R(uC).optional(),fees:R(uC).optional()}),mC=z({before:R(uC),after:R(uC),delta:R(uC)}),hC=z({computationCostRaw:Eb(`computationCostRaw`),storageCostRaw:Eb(`storageCostRaw`),storageRebateRaw:Eb(`storageRebateRaw`),nonRefundableStorageFeeRaw:Eb(`nonRefundableStorageFeeRaw`)}).strict(),gC=z({address:bb,coinType:P().min(1).max(512).refine(e=>{try{return jb(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),amount:Ab(`balanceChanges[].amount`)}).strict(),_C=z({objectId:bb,objectType:P().min(1).max(512).optional(),inputState:P().min(1).max(80),outputState:P().min(1).max(80),idOperation:P().min(1).max(80)}).strict(),vC=z({provider:qx,checksEnabled:I(),success:I(),gasCostSummary:hC.optional(),balanceChanges:R(gC).optional(),objectChanges:R(_C).optional(),error:P().optional()}),yC=vC,bC=vC.extend({checksEnabled:U(!0),success:U(!0),gasCostSummary:hC,balanceChanges:R(gC),objectChanges:R(_C),error:$f().optional()}).strict(),xC=z({role:H([`input`,`expected_output`,`minimum_output`,`fee`]),symbol:P(),coinType:P().min(1).max(512).refine(e=>{try{return jb(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),decimals:F().int().min(0).max(255),rawAmount:Eb(`rawAmount`),rawAmountSource:U(`quote_policy_evidence`),displayAmount:P().optional(),displayAmountSource:U(`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`})}),SC=z({role:H([`connected_account`,`output_recipient`]),address:bb}).strict(),CC=z({kind:U(`swap_output_asset`),symbol:P(),coinType:P().min(1).max(512).refine(e=>{try{return jb(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),protocol:P(),poolKey:P(),direction:H([`base_to_quote`,`quote_to_base`])}).strict(),wC=z({id:P(),label:P(),source:B([H([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`]),H([`transaction_material`,`digest_commitment`])]),summary:P()}).strict(),TC=z({id:P(),label:P(),reason:P()}).strict(),EC=z({proposedAction:z({title:P(),summary:P(),actionKind:P(),adapterId:P(),protocol:P(),network:U(`sui:mainnet`)}).strict(),recipients:R(SC),evidenceUsed:R(wC),missingEvidence:R(TC),requiredUserChoices:R(TC),unsupportedClaims:R(TC),freshness:z({status:U(`current`),evaluatedAt:P(),expiresAt:P(),reason:P()}).strict(),blockingChecks:R(iC)}).strict(),DC=z({assetFlow:z({outgoing:R(xC),expectedIncoming:R(xC),minimumIncoming:R(xC),fees:R(xC)}).strict(),targets:R(CC)}).strict(),OC=op(`kind`,[EC.extend({kind:U(`swap_human_readable_review`)}).merge(DC)]),kC=z({id:P(),actionKind:P(),adapterId:P(),protocol:P(),title:P(),summary:P(),assetFlowPreview:fC,reviewModel:Hx.optional(),adapterData:eC,createdAt:P(),expiresAt:P().optional(),registryVersion:P().optional(),preliminaryChecks:R(iC).optional()}),AC=z({planId:P(),reviewSessionId:P(),account:bb,checks:R(iC),assetFlowActual:pC.optional(),beforeAfterBalance:mC.optional(),simulation:yC.optional(),humanReadableReview:OC.optional(),transactionReviewData:QS.optional(),ptbVisualization:$S.optional(),adapterLifecycle:cC.optional(),updatedAt:P()}),jC=op(`status`,[AC.extend({status:U(`ready_for_wallet_review`),evidenceValidity:$f().optional(),blockedReason:$f().optional(),refreshReason:$f().optional()}),AC.extend({status:U(`refresh_required`),evidenceValidity:U(`invalidated`).optional(),refreshReason:nC,blockedReason:$f().optional()}),AC.extend({status:U(`blocked`),evidenceValidity:U(`invalidated`).optional(),blockedReason:tC,refreshReason:$f().optional()})]).superRefine((e,t)=>{if(e.evidenceValidity===`invalidated`)for(let n of Kx)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&&MC(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 MC(e,t){let n=e.adapterLifecycle;n&&(e.humanReadableReview!==void 0&&NC(t,n,oC,[`humanReadableReview`]),e.simulation!==void 0&&(NC(t,n,sC,[`simulation`]),NC(t,n,oC,[`simulation`]),PC(t,e.simulation,[`simulation`])),n.missingStages.includes(sC)&&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(oC)&&e.humanReadableReview!==void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview public evidence cannot be present while human_readable_review is missing`}))}function NC(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 PC(e,t,n){bC.safeParse(t).success||e.addIssue({code:`custom`,path:n,message:`simulation public evidence requires a successful checks-enabled review-time simulation projection`})}Th();var FC=z({topic:P().min(1),accounts:R(bb).min(1),methods:R(P()),chain:U(Ub),expiresAt:P().datetime(),walletName:P().optional()}).strict(),IC=op(`status`,[z({topic:P().min(1),version:F().int().positive(),status:U(`present`),session:FC}).strict(),z({topic:P().min(1),version:F().int().positive(),status:H([`absent`,`unusable`])}).strict()]),LC=z({runId:Wb,sequence:F().int().positive(),observedAt:P().datetime()}).strict();LC.extend({sessions:R(IC)}).strict();var RC=z({kind:U(`wallet_service_recovery`),priorRunId:Wb,admittedAt:P().datetime(),updatedAt:P().datetime()}),zC=B([RC.extend({phase:U(`stopping`)}).strict(),RC.extend({phase:U(`starting`),nextRunId:Wb}).strict(),RC.extend({outcome:H([`available`,`failed`,`superseded`,`server_restarted`]),nextRunId:Wb.optional(),message:P().optional()}).strict()]);Th();var BC=`A wallet connection provides account context; it is not a transaction approval or proof of address ownership.`,VC=`Review evidence is not a safety guarantee. Only an explicit card action and wallet approval may authorize this exact transaction.`,HC=Xb.extend({pendingAction:U(`disconnect`).optional()});H([`input_required`,`awaiting_approval`,`disconnect_pending`]);var UC=z({action:U(`connect`),walletRunId:Wb}).strict(),WC=z({action:U(`disconnect`),walletRunId:Wb,connectionId:P().min(1)}).strict(),GC=z({action:U(`use_account`),walletRunId:Wb,connectionId:P().min(1),account:bb}).strict(),KC=z({action:H([`prepare_review`,`request_signature`]),connectionId:P().min(1),walletRunId:Wb,account:bb,reviewRevision:F().int().nonnegative()}).strict(),qC=B([UC,WC,GC,KC,z({action:H([`cancel`,`stop_connection`,`stop_waiting`,`read_result`])}).strict()]),JC=B([UC,KC.extend({action:U(`prepare_review`)})]),YC=z({kind:H([`connect`,`review`]),mode:H([`connect`,`review`,`review_manage`]),allowedActions:R(H(tx)),actionRemainingMs:F().int().nonnegative(),nextStateReadAfterMs:F().int().nonnegative().optional(),automaticAction:JC.optional(),observe:I(),walletAvailability:qb,walletObservation:LC.optional(),runtimeRecovery:zC.optional(),connectionConflict:Zb.optional(),manageableConnectionIds:R(P().min(1)),connectionReconciliationRequired:U(!0).optional(),usableConnectionId:P().min(1).optional(),assetReadAccount:ex.optional(),acceptedWalletRunId:Wb.optional(),progress:Jb,boundary:H([BC,VC]),connections:R(HC),activeAccount:P().optional(),connection:HC.optional(),connectionAction:H([`connect`,`disconnect`]).optional(),review:z({reviewSessionId:P(),plan:kC,reviewRevision:F().int().nonnegative(),status:rC,account:P().optional(),preparing:I(),accountRequestPending:U(!0).optional(),error:P().optional(),state:jC.optional()}).strict().optional(),request:Hb.optional(),receipt:L().optional(),netGasMist:P().regex(/^-?[0-9]+$/).optional(),observationStopped:I().optional()}).strict().superRefine((e,t)=>{let n=e.connections.find(t=>t.connectionId===e.usableConnectionId);e.usableConnectionId&&(!n||n.status!==`connected`||e.walletAvailability.status!==`available`||e.connectionConflict||e.connectionReconciliationRequired||e.connections.some(e=>e.pendingAction||e.status===`awaiting_approval`))&&t.addIssue({code:`custom`,path:[`usableConnectionId`],message:`The usable connection must match current connection facts.`}),(new Set(e.manageableConnectionIds).size!==e.manageableConnectionIds.length||e.manageableConnectionIds.some(t=>!e.connections.some(e=>e.connectionId===t&&!e.pendingAction&&e.status!==`awaiting_approval`)))&&t.addIssue({code:`custom`,path:[`manageableConnectionIds`],message:`Management must name distinct recorded targets without pending operations.`}),e.connectionReconciliationRequired&&(e.usableConnectionId||e.assetReadAccount?.status===`available`||e.allowedActions.some(e=>[`connect`,`use_account`,`prepare_review`,`request_signature`].includes(e)))&&t.addIssue({code:`custom`,path:[`connectionReconciliationRequired`],message:`Unrecorded SDK connections cannot authorize connection or account use.`}),e.assetReadAccount?.status===`available`&&(!n||!n.accounts.includes(e.assetReadAccount.account)||e.activeAccount!==e.assetReadAccount.account)&&t.addIssue({code:`custom`,path:[`assetReadAccount`],message:`The default address must belong to the usable connection and stored selection.`})});function XC(e,t,n=!1){return e.connections.filter(r=>r.connectionId===e.usableConnectionId&&r.accounts.includes(t)&&(!n||r.methods.includes(`sui_signTransaction`)))}var ZC=`sui-mcp.local-data`;Th();var QC=16*1024*1024,Q=P().uuid(),$C=F().int().nonnegative().safe(),ew=P().regex(/^[a-f0-9]{64}$/),tw=op(`status`,[z({status:U(`no_file`)}).strict(),z({status:U(`receiving`)}).strict(),z({status:U(`checking`)}).strict(),z({status:U(`check_required`),message:P().min(1)}).strict(),z({status:U(`can_restore`)}).strict(),z({status:U(`cannot_restore`),reason:H([`invalid_backup`,`file_unavailable`,`wallet_request_unsettled`,`operation_busy`,`input_unavailable`,`check_failed`]),message:P().min(1)}).strict()]);z({fileId:Q,sha256:ew,totalSize:$C,dataEpoch:$C,userDataRevision:$C,check:tw}).strict();var nw=op(`kind`,[z({kind:U(`set_endpoint`),endpoint:H([`grpc`,`graphql`]),value:P().min(1)}).strict(),z({kind:U(`restore_endpoint`),endpoint:H([`grpc`,`graphql`])}).strict(),z({kind:H([`clear_read_address`,`export_local_data`,`download_backup`,`import_local_data`,`reset_local_data`,`restart_wallet_service`])}).strict()]),rw=H([`acknowledged`,`not_completed`,`unconfirmed`,`unsupported`]),iw=z({method:U(`ui/download-file`),code:U(-32601)}).strict(),aw=H([`acknowledged`,`cancelled`,`expired`,`server_restarted`,`data_replaced`,`source_unavailable`,`stored_locally`,`local_save_failed`]),ow=z({device:P().regex(/^\d+$/),inode:P().regex(/^\d+$/)}).strict(),sw=H([`not_published`,`target_conflict`,`source_unavailable`,`interrupted`]),cw=z({status:H([`needs_consent`,`saving`,`saved`,`failed`]),attemptId:Q,fileId:Q,sha256:ew,totalSize:$C,destination:P(),ownerId:P().min(1),currentSaveAttemptId:Q.optional(),attempts:R(z({saveAttemptId:Q,previousSaveAttemptId:Q.optional(),admittedAt:P().datetime(),allowPossibleCopy:I()}).strict()),sourceIdentity:ow.optional(),savedAt:P().datetime().optional(),failure:sw.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.`})});z({currentAttemptId:Q,attempts:R(z({attemptId:Q,admittedAt:P().datetime(),previousAttemptId:Q.optional(),hostReport:rw.optional(),failure:iw.optional()}).strict()).min(1),readyAt:P().datetime().optional(),expiresAt:P().datetime().optional(),endReason:aw.optional(),localSave:cw.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 lw=H([`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`]),uw=op(`action`,[z({action:U(`settings_download_backup`),operationId:Q,attemptId:Q}).strict(),z({action:U(`settings_retry_download`),operationId:Q,fileId:Q,previousAttemptId:Q,attemptId:Q}).strict(),z({action:U(`settings_report_download`),operationId:Q,fileId:Q,attemptId:Q,status:rw,failure:iw.optional()}).strict().refine(e=>e.status===`unsupported`==(e.failure!==void 0),`Only unsupported downloads require the exact method failure.`),z({action:U(`settings_store_backup`),operationId:Q,fileId:Q,attemptId:Q,saveAttemptId:Q,previousSaveAttemptId:Q.optional(),allowPossibleCopy:I()}).strict(),z({action:U(`settings_cancel_download`),operationId:Q,fileId:Q,attemptId:Q}).strict(),z({action:U(`settings_select`),draft:nw}).strict(),z({action:U(`settings_prepare`),operationId:Q}).strict(),z({action:U(`settings_begin_upload`),operationId:Q,name:P().min(1),totalSize:$C.max(QC),sha256:ew}).strict(),z({action:U(`settings_upload_chunk`),operationId:Q,fileId:Q,offset:$C.max(QC),chunkBase64:P()}).strict(),z({action:U(`settings_seal_upload`),operationId:Q,fileId:Q}).strict(),z({action:U(`settings_confirm`),operationId:Q,preparationId:Q}).strict(),z({action:U(`settings_back`),operationId:Q}).strict(),z({action:U(`settings_cancel`)}).strict()]),dw=z({outcome:H([`completed`,`failed`,`interrupted`,`superseded`]),recordedAt:P().datetime(),message:P().min(1),details:V(P(),L()).optional(),completionScope:U(`backup_snapshot`).optional()}).strict(),fw=z({storedValue:P(),effectiveValue:P(),source:H([`environment`,`local_db`,`builtin_default`]),pendingStoredValue:P().optional(),appliesAfter:U(`mcp_server_restart`).optional()}).strict(),pw=z({endpoint:H([`grpc`,`graphql`]),key:H([`suiGrpcUrl`,`suiGraphqlUrl`]),value:P().min(1),status:H([`saved`,`reset`]),storedValue:P(),effectiveValue:P(),source:fw.shape.source}).strict().refine(e=>e.key===(e.endpoint===`grpc`?`suiGrpcUrl`:`suiGraphqlUrl`),`The endpoint kind and preference key must agree.`),mw=F().int().nonnegative().safe(),hw=z({accounts:mw,reviewSessions:mw,reviewStateSnapshots:mw,reviewStatusTransitions:mw,reviewExecutions:mw,reviewRequests:mw,outcomeUnknownRequests:mw,externalActivityScans:mw,externalActivityTransactions:mw,localSettings:mw}).strict(),gw=z({status:U(`valid`),format:U(ZC),network:U(`mainnet`),exportedAt:P().datetime(),currentCounts:hw,incomingCounts:hw,willReplace:U(!0),activeAccountChange:H([`unchanged`,`set`,`cleared`]),currentReadAddress:bb.nullable(),incomingReadAddress:bb.nullable(),restartRequiredAfterImport:I()}).strict(),_w=z({kind:U(`settings`),operationId:Q,phase:H([`draft`,`uploading`,`sealed`,`prepared`,`executing`,`stopping`,`starting`,`terminal`]),draft:nw.optional(),preparationId:Q.optional(),preparation:V(P(),L()).optional(),file:z({fileId:Q,displayName:P(),totalSize:$C,receivedSize:$C,sha256:ew,sealed:I(),cleanup:H([`pending`,`complete`,`failed`])}).strict().optional(),download:z({availability:H([`preparing`,`available`,`ended`]),currentAttemptId:Q,hostReport:rw.optional(),previousUnconfirmed:I(),endReason:aw.optional(),expiresAt:P().datetime().optional(),remainingMs:$C.optional(),localSave:z({status:H([`needs_consent`,`saving`,`saved`,`failed`]),currentSaveAttemptId:Q.optional(),failure:sw.optional(),savedAt:P().datetime().optional()}).strict().optional(),allowedFileActions:R(lw)}).strict().optional(),restoreCheck:tw.optional(),backupLocation:z({directory:P().min(1),filename:P().min(1)}).strict().optional(),result:dw.optional(),temporaryFileCleanup:H([`pending`,`complete`,`failed`]).optional(),priorRunId:Q.optional(),nextRunId:Q.optional(),supersedesOperationId:Q.optional(),supersededByOperationId:Q.optional(),allowedActions:R(H(uw.options.map(e=>e.shape.action.value))),observe:I(),facts:z({server:z({name:P(),version:P(),network:U(`mainnet`)}).strict(),localSettings:z({suiGrpcUrl:fw,suiGraphqlUrl:fw}).strict(),readAddress:P().optional(),assetReadAccount:ex,walletAvailability:qb,connectionReconciliationRequired:U(!0).optional(),observedAt:P().datetime().optional(),counts:hw}).strict().optional()}).strict().superRefine((e,t)=>{if(e.download&&(e.draft?.kind!==`download_backup`||!e.file||e.download.availability===`available`&&(!e.file.sealed||!e.result||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===`export_local_data`||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.draft?.kind===`export_local_data`&&e.result?.outcome===`completed`&&typeof e.result.details?.path==`string`&&!e.backupLocation&&t.addIssue({code:`custom`,message:`A recorded backup path must provide its folder and file name.`}),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))&&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`&&!gw.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=pw.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.`})}),vw=64*1024;function yw(e){return new TextEncoder().encode(JSON.stringify(e)).length}function bw(e){let t=vw-yw(e);return t>0?3*Math.floor(t/4):0}function xw(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=QC,t.params.arguments.input.chunkBase64=``,bw(t)}var Sw={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`,actionPrepareSuiActionReview:`action.prepare_sui_action_review`,actionPrepareExternalProposalReview:`action.prepare_external_proposal_review`,sessionCreateWalletConnection:`session.create_wallet_connection`,sessionGetWalletConnection:`session.get_wallet_connection`,sessionWaitWalletConnection:`session.wait_wallet_connection`,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`};Th();var Cw=z({connectionId:P().min(1),pairingUri:P().startsWith(`wc:`),expiresAt:P().datetime()}).strict(),ww=H([`account`,`receipt`,`chart`,`connect`,`review`,`settings`]),Tw=z({cardId:P().min(1),kind:ww,state:H([`ready`,`running`,`closed`]),revision:F().int().nonnegative(),createdAt:P().datetime(),expiresAt:P().datetime(),input:V(P(),L()),data:L().optional(),reason:H([`completed`,`expired`,`failed`,`server_restarted`,`cancelled`]).optional(),error:P().optional()}).strict().extend({pollAfterMs:F().int().positive(),inputRemainingMs:F().int().nonnegative()}),Ew=z({transactionDigest:P().min(1),pureInputs:R(z({index:F().int().nonnegative(),bytes:P().regex(/^0x(?:[0-9a-f]{2})*$/i)}).strict()).refine(e=>new Set(e.map(e=>e.index)).size===e.length,`Duplicate input index.`),ptbGraph:z({mermaid:z({text:P(),namedText:P()}).strict()}).strict().optional()}).strict();Th();var Dw=`sui-mcp/card`,Ow=`sui-mcp/receipt-display`,kw=`sui-mcp/wallet-display`,Aw=`sui-mcp/settings-file`,jw=`suimcp://cards/`,Mw=op(`kind`,[z({kind:U(`account`),status:U(`input_required`),field:U(`account`),message:P().min(1)}).strict(),z({kind:U(`receipt`),status:U(`input_required`),field:U(`digest`),message:P().min(1)}).strict()]),Nw=z({cardId:P().min(1),permission:P().min(1)}).strict();Nw.extend({revision:F().int().nonnegative(),input:V(P(),L())}).strict();var Pw=Ew.extend({cardId:P().min(1),revision:F().int().nonnegative(),attemptId:P().min(1).optional()}),Fw=Cw.extend({cardId:P().min(1),revision:F().int().nonnegative()}),Iw=z({attemptId:P().uuid().optional(),cardId:P().min(1),operationId:P().uuid(),fileId:P().uuid(),offset:F().int().nonnegative().safe(),totalSize:F().int().nonnegative().safe(),sha256:P().regex(/^[a-f0-9]{64}$/),chunkBase64:P()}).strict(),Lw={account:Sw.uiOpenAccount,receipt:Sw.uiOpenReceipt,chart:Sw.uiOpenChart,read:Sw.uiReadCard,submit:Sw.uiSubmitCard,act:Sw.uiActCard,readSettingsFile:Sw.uiReadSettingsFile};function Rw(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 zw(e){return e.kind!==`import_local_data`}function Bw(e,t,n){if(e.kind!==`settings`||t.kind!==`settings`||e.cardId!==t.cardId||t.state!==`ready`)return;let r=_w.safeParse(e.data),i=_w.safeParse(t.data);if(!r.success||!i.success)return;let a=r.data,o=i.data,s=o.draft;if(!s||!a.draft||a.operationId!==o.operationId||n.operationId!==o.operationId||JSON.stringify(a.draft)!==JSON.stringify(s))return;if(zw(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 Vw(e,t){let n=$(e);if(!n)throw Error(`The app did not provide a usable card response.`);if(n.structuredContent!==void 0)return n;if(Array.isArray(n.content))for(let e of n.content){let r=$(e);if(r?.type!==`text`||typeof r.text!=`string`)continue;let i;try{i=$(JSON.parse(r.text))}catch{continue}if(i?.ok!==void 0)return{...n,structuredContent:i};if(t===`chatgpt`&&i&&Array.isArray(i.content))return Vw(i,void 0)}return n}function Hw(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 Uw(e,t){let n;for(let r of Array.isArray(e.content)?e.content:[]){let e=$(r),i;if(e?.type===`resource_link`&&typeof e.uri==`string`&&e.uri.startsWith(`suimcp://cards/`)&&(i=e.uri),t===`Claude`&&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){if(t[1]!==t[3])throw Error(`The saved card links could not be matched to one card.`);i=t[2]}}if(i===void 0)continue;let a=i.slice(jw.length);if(!a||encodeURIComponent(a)!==a||n!==void 0&&a!==n||e?.type===`resource_link`&&typeof e.name==`string`&&e.name.startsWith(`card_`)&&e.name!==`card_${a}`)throw Error(`The saved card links could not be matched to one card.`);n=a}return n}function Ww(e){let t=$(e.structuredContent),n=t?.ok===!0?Mw.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:Tw.parse(i);a?.kind===`settings`&&_w.parse(a.data);let o=$(e._meta)?.[Ow],s=o===void 0?void 0:Pw.parse(o);if(s&&!Hw(a,s))throw Error(`Transaction details do not match this saved result.`);let c=$(e._meta)?.[kw],l=c===void 0?void 0:Fw.parse(c);if(l&&(!a||a.kind!==`connect`||l.cardId!==a.cardId||l.revision!==a.revision||l.connectionId!==$($(a.data)?.connection)?.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 Gw(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 Xv({name:`sui-mcp-card`,version:`0.6.0`},{},{autoResize:!0,strict:!0}),d=new AbortController,f=e===`connect`||e===`review`,p=e===`settings`,m=f||p,ee=!1,h,g,_,v,y,te,b,ne=!1,re=!1,ie,ae,x={status:`unconfirmed`},S,oe,se,C,w,ce=`continue`,T,le,ue=0,de=0,fe,pe,me,he,ge,_e,ve,ye,be=!1;function xe(){if(!C||!v)return;let{input:e,basis:t}=C,n=$(v.data),r=$(t.data),i=$(n?.request),a=$(n?.review),o=$(n?.connection),s=$(r?.request),c=$(r?.connection),l=!!i&&i.attemptId===s?.attemptId,u=!!o&&o.connectionId===c?.connectionId;if(!f)return v.state===`running`||v.reason===`completed`?C.delivery===`rejected`?`past`:`observed`:v.state===`closed`?`past`:`active`;if(e.walletRunId&&e.walletRunId!==$(n?.walletAvailability)?.walletRunId&&e.walletRunId!==n?.acceptedWalletRunId)return`past`;switch(e.action){case`connect`:if(v.state!==`ready`&&o)return`observed`;if(n?.walletAvailability&&$(n.walletAvailability)?.status===`available`&&Array.isArray(n.connections)&&n.connections.some(e=>$(e)?.status===`connected`))return`past`;break;case`prepare_review`:if(typeof a?.reviewRevision==`number`&&typeof e.reviewRevision==`number`&&a.reviewRevision>e.reviewRevision)return a.account===e.account?`observed`:`past`;break;case`request_signature`:if(i?.account===e.account&&i?.reviewRevision===e.reviewRevision)return`observed`;if(typeof a?.reviewRevision==`number`&&typeof e.reviewRevision==`number`&&a.reviewRevision>e.reviewRevision||!i&&a&&a.reviewRevision===e.reviewRevision&&a.account===e.account&&a.status===`refresh_required`&&$(a.state)?.refreshReason===`review_evidence_stale`&&Array.isArray(n?.allowedActions)&&n.allowedActions.includes(`prepare_review`))return`past`;break;case`cancel`:if(v.reason===`cancelled`)return`observed`;break;case`disconnect`:if(o&&o.connectionId===e.connectionId&&(o.pendingAction===`disconnect`||v.state!==`ready`&&o.status===`disconnected`))return`observed`;break;case`use_account`:if(v.reason===`completed`&&n?.activeAccount===e.account&&o?.connectionId===e.connectionId)return`observed`;break;case`stop_connection`:if(u&&o?.status===`stopped`)return`observed`;if(u&&o?.status!==`awaiting_approval`)return`past`;break;case`stop_waiting`:if(l&&(i?.requestStatus===`stopped`||n?.observationStopped===!0))return`observed`;if(l&&[`completed`,`request_failed`,`outcome_unknown`].includes(String(i?.requestStatus)))return`past`;break;case`read_result`:if(l&&(n?.observe===!0||i?.requestStatus===`completed`))return`observed`;if(l&&[`stopped`,`request_failed`].includes(String(i?.requestStatus)))return`past`;break}return Se()||typeof n?.actionRemainingMs==`number`&&n.actionRemainingMs<=0||[`connect`,`disconnect`,`use_account`,`cancel`,`prepare_review`,`request_signature`].includes(String(e.action))&&(v.state!==`ready`||a?.status===`expired`)?`past`:`active`}function Se(){let e=qC.safeParse(C?.input);if(!e.success||e.data.action!==`disconnect`&&e.data.action!==`use_account`)return!1;let t=e.data,n=YC.safeParse(v?.data);if(!n.success)return!1;let r=n.data.connections.find(e=>e.connectionId===t.connectionId);return r?t.action===`disconnect`?n.data.walletAvailability.status===`available`&&!r.pendingAction&&!n.data.manageableConnectionIds.includes(t.connectionId)&&[`disconnected`,`failed`,`rejected`,`stopped`,`expired`].includes(r.status):[`disconnected`,`failed`,`rejected`,`stopped`,`expired`].includes(r.status)||t.action===`use_account`&&r.status===`connected`&&!r.accounts.includes(t.account):!1}function Ce(){if(!C)return;let e=xe();e&&C.disposition!==`observed`&&(e!==`active`||C.disposition===`active`)&&(C.disposition=e),C.disposition===`observed`&&(C.retryRequired=!1)}function E(){let e=JC.safeParse($(v?.data)?.automaticAction);return C?.retryRequired&&e.success&&C.input.action===e.data.action?e.data:void 0}function we(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`,use_account:`account selection`};return f?t[String(e.input.action)]??`request`:`data request`}function D(e){if(e!==`past`||!C)return;let t=we(C),n=C.input.action===`read_result`&&$($(v?.data)?.request)?.requestStatus===`outcome_unknown`?` To check this transaction again, ask to open its result in chat.`:``;return`Message from an earlier ${t}: “${C.message}”${n}`}let Te,Ee;function De(){let t=$(v?.data),n=p?$(t?.download):void 0,r=Array.isArray(n?.allowedFileActions)?n.allowedFileActions:[],i=[...Array.isArray(t?.allowedActions)?t.allowedActions:[],...r.filter(e=>e===`settings_report_download`||Te===void 0||Date.now()<Te)],a=e===`review`&&t?.mode===`review`&&!t.request&&!!h&&v?.state===`ready`,o=a&&fe!==void 0&&Date.now()>=fe,s=document.visibilityState!==`hidden`,c=d.signal.aborted||x.status===`rejected`,l=x.status===`confirmed`,u=C?.disposition,_=u===`active`,y=C?.retryRequired===!0,te=C?.input.action===`request_signature`&&u===`active`,b=ce===`paused`,re=_e?.pending?.()===!0,ie=_e?.displayRecovery?.(),ue=l&&!c&&!oe&&!re&&!o&&!!h,pe=ue&&!w&&!ee&&(!m||!(T&&(_||y||b))),me=JC.safeParse(t?.automaticAction),he=p?$(n?.localSave):void 0,ge=!!v&&(m?t?.observe===!0||he?.status===`saving`:v.state===`running`),ve=!!g&&ne&&!c&&!T&&s&&(le===`explicit`||x.status!==`read_failed`&&(le===`background`||x.status===`needed`&&x.automatic)),ye=s&&ue&&!S&&!T&&!le&&!w&&!y&&!te&&!b&&f&&me.success&&i.includes(me.data.action)?me.data:void 0,be=$(t?.restoreCheck),xe=p&&ue&&v?.state===`ready`&&!w&&!ee&&!t?.result&&t?.observe!==!0&&(be?.status===`cannot_restore`&&[`operation_busy`,`wallet_request_unsettled`].includes(String(be.reason))||!i.includes(`settings_select`)||!i.includes(`settings_download_backup`)||t?.phase===`prepared`&&!i.includes(`settings_confirm`)||t?.phase===`draft`&&$(t.draft)?.kind!==void 0&&$(t.draft)?.kind!==`import_local_data`&&!i.includes(`settings_prepare`)),Se;!c&&g&&(x.status===`read_failed`||S||x.status===`unconfirmed`?Se=`read`:x.status===`needed`?x.automatic||(Se=`read`):oe||ie||p&&[`pending`,`failed`].includes(String(t?.temporaryFileCleanup))||he?.status===`saving`||he?.status===`needs_consent`&&!i.includes(`settings_store_backup`)||he?.status===`failed`&&he.failure===`not_published`&&!n?.endReason&&!i.includes(`settings_store_backup`)||xe?Se=`read`:h?$(t?.progress)?.status===`unavailable`||$(t?.walletAvailability)?.status===`initializing`&&$(t?.walletAvailability)?.stage===`state_sync`?Se=`read`:!b&&E()?Se=`retry`:_&&!ge&&!(b&&i.length>0)&&!(C?.input.action===`prepare_review`&&i.includes(`prepare_review`)&&t?.automaticAction===void 0)&&f&&(Se=`read`):(v?.state!==`closed`||oe)&&(Se=`read`));let Ce=f?t?.actionRemainingMs:v?.inputRemainingMs;Se===`retry`&&o&&(Se=`read`);let Ee=f?t?.nextStateReadAfterMs:p&&Te!==void 0?Math.max(0,Te-de):void 0,De=[(f?i.length>0:v?.state===`ready`)?Ce:void 0,Ee].filter(e=>typeof e==`number`&&Number.isFinite(e)&&e>0),Oe=!c&&!!h&&s&&!ae&&!S&&x.status!==`read_failed`,ke=$(t?.review),Ae=a&&!c&&!S&&!oe&&!_&&!y&&!b&&x.status!==`read_failed`&&(re||w?.input.action===`prepare_review`||ke?.preparing===!0||me.success&&me.data.action===`prepare_review`||x.status===`needed`&&ke?.status===`ready_for_wallet_review`);return{current:l,inputEnabled:pe,permitted:i,disposition:u,read:ve,auto:ye,recover:Se,paused:b,partialDisplayFailure:ie,settingsInputBlocked:xe,reviewUpdatePending:Ae,reviewCommandDeliveryFailed:_&&C?.input.action===`prepare_review`,reviewHint:o?void 0:Ae?re||ke?.preparing||w?.input.action===`prepare_review`?`Updating review…`:`Checking status…`:a&&$(ke?.state)?.refreshReason===`review_evidence_stale`?`Review details are out of date.`:void 0,errors:[x.status===`rejected`?x.message:x.status===`read_failed`?`This card's status could not be checked. Reported message: “${x.message}”`:void 0,S&&x.status!==`rejected`?`This card could not be opened. Reported message: “${S}”`:void 0,_&&C?`Message for this ${we(C)}: “${C.message}”`:void 0,oe,ie?.message],note:[se,D(u)].filter(Boolean).join(` `),expiryAt:Oe&&l&&De.length?de+Math.min(...De):void 0,poll:Oe&&(ge||x.status===`needed`&&!x.automatic),lifetimeAt:!c&&s&&a?fe:void 0}}function Oe(e){return e.recover===`retry`?C?.input.action===`connect`?`Retry connection`:`Retry review`:e.recover===`read`?`Check status`:void 0}function ke(e){if(d.signal.aborted)return``;let n=e.errors.some(Boolean)||e.recover!==void 0||!!v&&!h&&v.state!==`closed`||v?.state===`closed`&&v.reason!==`completed`,r=e.errors.some(Boolean)||x.status!==`confirmed`||e.recover===`retry`||e.settingsInputBlocked;if(n&&r&&x.status!==`rejected`){if(T||e.read)return`Checking status…`;let t=Oe(e);if(t)return t===`Check status`?oe||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.`;if(Ae(e)&&_e?.selectionHint)return _e.selectionHint}return t.guidance?.(v,{confirmed:e.current,readOnly:!h,recoveryNeeded:n,visibleConfirmation:_e?.visibleConfirmation?.(),commandPending:m&&w&&e.current&&!e.errors.some(Boolean)&&(w.phase===`confirming`||v?.state===`ready`&&!$(v.data)?.runtimeRecovery&&!$(v.data)?.request&&!$($(v.data)?.review)?.preparing)?{phase:w.phase,action:String(w.input.action)}:void 0,approvalUnresolved:C?.input.action===`request_signature`&&e.disposition===`active`||w?.input.action===`request_signature`,automaticPaused:e.paused})??``}function Ae(e=De()){return e.inputEnabled&&v?.state===`ready`&&be}function je(e,t=De()){return m&&t.inputEnabled&&(e?t.permitted.includes(e.action):t.permitted.length>0)}function Me(e){let t=De();return p&&ee&&t.current&&!!h&&!w&&!T&&!oe&&!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)}function Ne(e){let u=$(v?.data),f=s.querySelector(`.review-action-feedback`),g=s.querySelector(`.review-primary-action`);if(g&&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=g?`ui-note`:`ui-error`,v?(r.textContent=t.titleFor?.(v)??t.title,i.textContent=x.status===`rejected`?`Card unavailable`:!e.current&&v.state===`ready`?g?``:!d.signal.aborted&&(T||e.read)?`Checking whether actions are available in this card…`:`Actions are unavailable until this card's status is checked.`:!h&&v.state!==`closed`?`View only.`:m?$(u?.progress)?.status===`unavailable`?`Current progress is unavailable. The last recorded state is shown.`:!u?.request&&v.state===`closed`&&[`expired`,`server_restarted`,`cancelled`].includes(v.reason??``)?`This card no longer accepts actions.`:``:v.state===`running`?`Reading the requested data…`:v.reason===`completed`?``:v.error??(v.reason===`expired`?`The time to make a selection has ended.`:v.reason===`server_restarted`?`This request ended when Sui MCP restarted.`:``)):i.textContent=ae?``:x.status===`read_failed`?`Card status unavailable`:S||x.status===`rejected`?`Card unavailable`:`Opening card…`,i.hidden=!i.textContent,a.textContent=[...new Set(e.errors.filter(Boolean))].join(` `),a.hidden=!a.textContent;let _=s.querySelector(`.review-status`);_&&(_.hidden=!!g&&(e.reviewUpdatePending||!!a.textContent));let y=s.querySelector(`.review-material-status`);if(y&&(y.textContent=y.dataset.previous===`true`||!e.current||e.reviewUpdatePending?y.dataset.previousLabel??``:y.dataset.currentLabel??``),o.textContent=[e.note,ke(e)].filter(Boolean).join(` `),o.hidden=!o.textContent,be)for(let t of s.querySelectorAll(`input, button, select`))(!m||t.tagName!==`BUTTON`||t.dataset.cardAction!==void 0)&&(t.disabled=m?!je(void 0,e):!Ae(e));if(m)for(let t of s.querySelectorAll(`[data-card-action]`))t.disabled=!je({action:t.dataset.cardAction},e);if(p)for(let t of s.querySelectorAll(`[data-settings-file-action]`))t.disabled=t.dataset.settingsLocalBlocked===`true`||!(ee?Me({action:t.dataset.cardAction}):je({action:t.dataset.cardAction},e));g&&(e.reviewUpdatePending||g.dataset.cardAction===`request_signature`&&e.reviewCommandDeliveryFailed||g.dataset.cardAction===void 0)&&(g.disabled=!0),ge&&(ge.disabled=!!w||!!T)}function Pe(e){try{e?.()}catch{oe=`The card display could not be closed cleanly. Its stored information is unchanged.`}}function Fe(e){if(!v||d.signal.aborted)return;if(v.state===`ready`&&x.status!==`confirmed`){if(p&&_e?.update)try{_e.update(v,{automaticPaused:ce===`paused`,settings:Ye,settingsCommandProgress:void 0,onDisplayChange:()=>O()})}catch{oe=`This card could not be displayed. Its stored information is unchanged.`}return}if(v.state===`running`&&!m){oe=void 0;return}let n=m?{...$(v.data),actionRemainingMs:void 0,nextStateReadAfterMs:void 0,...p&&$(v.data)?.download?{download:{...$($(v.data)?.download),remainingMs:void 0}}:{}}:void 0,r=p&&w?.phase===`sending`&&x.status===`confirmed`?Bw(w.basis,v,w.input):void 0,i=`${ce===`paused`}:${JSON.stringify(r)}:${v.revision}:${h!==void 0}:${y!==void 0}:${b!==void 0}:${JSON.stringify(n)}`;if(i===ve||i===ye&&!e)return;ye=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:ce===`paused`,onDisplayChange:()=>O(),...p?{settings:Ye,settingsCommandProgress:r}:{}};if(_e?.update?.(v,e)){ve=i,oe=void 0;return}if(v.state===`ready`&&h){let n=t.controls(v,e=>{Ke(e)},y,b,e);c=`node`in n?n:{node:n},l=!0}else (m||v.reason===`completed`)&&v.data!==void 0&&(c=t.result(v,y,h?e=>{Ke(e)}:void 0,b,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),Pe(c?.dispose),oe=`This card could not be displayed. Its stored information is unchanged.`;return}let f=_e?.dispose;_e=c,be=l,ve=i,oe=void 0,Pe(f)}function Ie(t,n,r,i,a){if(d.signal.aborted||x.status===`rejected`)return!1;if(t.kind!==e||t.cardId!==g)throw x={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:JC.safeParse(o.automaticAction);if(l&&!l.success)throw Error(`This card could not start the next step.`);if(v&&t.revision<v.revision)return!1;if(_&&[...new Set([...Object.keys(_),...Object.keys(t.input)])].some(e=>JSON.stringify(t.input[e])!==JSON.stringify(_[e])))throw x={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 x={status:`rejected`,message:`The saved result does not match the information requested in this card.`},Error(x.message);!_&&(f||t.state!==`ready`)&&(_={...t.input});let u=r!==`preview`;if((!v||t.revision!==v.revision)&&(y=void 0,b=void 0),v=t,Ce(),u){de=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}`;Ee!==e&&(Ee=e,Te=void 0),Te=Math.min(Te??1/0,de+Math.max(0,t.remainingMs))}else p&&t?.availability===`ended`&&(Te=void 0);h&&e===`review`&&o?.mode===`review`&&!o.request&&typeof o.actionRemainingMs==`number`&&Number.isFinite(o.actionRemainingMs)&&o.actionRemainingMs>=0&&(fe=Math.min(fe??1/0,de+o.actionRemainingMs))}return r===`read`&&(x.status!==`needed`||a>x.afterRead)&&(x={status:`confirmed`},S=void 0),n&&(y=n),b=i,!0}function Le(){pe!==void 0&&clearTimeout(pe),me!==void 0&&clearTimeout(me),he!==void 0&&clearTimeout(he),pe=void 0,me=void 0,he=void 0,l.hidden=!0}function Re(e){let t=Oe(e);ge?.textContent!==t&&(ge?.remove(),ge=void 0,t&&(ge=ey(t,()=>{if(!(T||w||d.signal.aborted))if(De().recover===`retry`){let e=E();e&&Ge(e)}else ze()})));let n=s.querySelector(`.review-primary-action`),r=s.querySelector(`.review-primary-slot`);n&&(n.hidden=!!ge&&!!r),ge&&(ge.disabled=!!T||!!w,r?(ge.classList.add(`review-recovery-action`),r.append(ge)):(ge.classList.remove(`review-recovery-action`),c.append(ge)))}async function ze(){let e=_e,t=e?.displayRecovery?.(),n=await Ve(!0);n?.kind===`accepted`&&v===n.snapshot&&x.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&!oe&&e===_e&&t&&e?.displayRecovery?.()===t&&(t.retry(),O())}function O(e=!1){if(ae){let e=document.createElement(`p`);e.className=`ui-note`,e.textContent=ae,s.replaceChildren(e)}else Fe(e);let t=De();if(Ne(t),Le(),Re(t),d.signal.aborted||x.status===`rejected`)return;t.expiryAt!==void 0&&(me=setTimeout(()=>{Be(),O()},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)he=setTimeout(r,Math.min(1e3,t));else{let e=De();Ne(e),Re(e)}};r()}if(t.poll&&v){let e=de+v.pollAfterMs-Date.now();pe=setTimeout(()=>{Ve(!1)},e>0?e:v.pollAfterMs)}t.read?(le=void 0,He()):t.auto&&(pe=setTimeout(()=>{let e=De().auto;e&&Je(e,`automatic`)},0))}function Be(){x.status!==`rejected`&&x.status!==`read_failed`&&(x={status:`needed`,afterRead:ue,automatic:!0})}function Ve(e){return d.signal.aborted||x.status===`rejected`||!g||!ne?Promise.resolve(void 0):T?T.promise:x.status===`read_failed`&&!e?Promise.resolve(void 0):(le=e?`explicit`:`background`,O(),T?.promise??Promise.resolve(void 0))}function He(){let e=++ue,t=performance.now(),n={id:e,promise:Promise.resolve().then(async()=>{try{let n,r,i;if(h){let e=Ww(await Ue(Lw.read,h));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=`${jw}${encodeURIComponent(g)}`,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=Tw.parse(JSON.parse(t.text));let i=y??te;r=i&&Hw(n,i)?i:void 0}if(d.signal.aborted||x.status===`rejected`)return{kind:`disposed`,id:e};let a=Ie(n,r,`read`,i,e);return te=void 0,!a&&x.status===`needed`&&e>x.afterRead&&(x={...x,automatic:!1}),O(a),a&&x.status===`confirmed`?{kind:`accepted`,snapshot:n,id:e,requestStartedAt:t}:{kind:`ignored`,id:e}}catch(t){return d.signal.aborted?{kind:`disposed`,id:e}:(x.status!==`rejected`&&(x={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(()=>{T===n&&(T=void 0),O()})};T=n,O()}async function Ue(e,t){return Vw(await u.callServerTool({name:e,arguments:t},{signal:d.signal}),u.getHostVersion()?.name)}function We(e,t,n){let r=YC.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.allowedActions.includes(`connect`)&&[`connect`,`manage`].includes(String(n.input.intent)):e.action===`prepare_review`||e.action===`request_signature`?i.review?.reviewRevision===e.reviewRevision&&(e.action===`prepare_review`?i.assetReadAccount?.status===`available`?i.assetReadAccount.account:void 0:i.review?.account)===e.account&&XC(i,String(e.account),e.action===`request_signature`).some(t=>t.connectionId===e.connectionId):e.action===`disconnect`?i.manageableConnectionIds.includes(String(e.connectionId))&&i.connections.some(t=>t.connectionId===e.connectionId&&!t.pendingAction):e.action===`use_account`?i.connections.some(t=>t.connectionId===e.connectionId&&t.status===`connected`&&!t.pendingAction&&t.connectionId===i.usableConnectionId&&t.accounts.includes(String(e.account))):i.connection?.connectionId===$(a?.connection)?.connectionId&&i.request?.attemptId===$(a?.request)?.attemptId&&i.review?.reviewRevision===$(a?.review)?.reviewRevision}async function Ge(e){if(!v||T||!je(e))return;let t={input:e,basis:v,phase:`confirming`};w=t;let n=await Ve(!1);w===t&&(w=void 0,n?.kind===`accepted`&&v===n.snapshot&&x.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&We(e,t.basis,n.snapshot)&&je(e)?await Je(e):x.status!==`read_failed`&&x.status!==`rejected`&&!d.signal.aborted&&(se=`The card state changed. Check the current selection before trying again.`),O())}async function Ke(e){f&&(C?.disposition===`active`||C?.retryRequired||ce===`paused`)?await Ge(e):await Je(e)}function qe(e,t,n){C={input:e.input,basis:e.basis,message:t,delivery:n,disposition:`active`,retryRequired:e.input.action===`connect`||e.input.action===`prepare_review`},Ce(),[`cancel`,`disconnect`,`stop_connection`,`stop_waiting`,`use_account`].includes(String(e.input.action))&&(ce=`paused`),(m||n===`unknown`)&&Be()}async function Je(e,t=`user`){if(!v||!h||(t===`file`?!Me(e):m?!je(e):!Ae()))return;let n={input:e,basis:v,phase:`sending`};w=n,ce=`continue`,(t===`user`||C?.disposition!==`past`)&&(C=void 0),se=void 0,O();try{let t=Ww(await Ue(m?Lw.act:Lw.submit,{...h,revision:n.basis.revision,input:e}));if(d.signal.aborted||x.status===`rejected`)return;if(!t.snapshot)throw Error(t.error??`The request could not be confirmed.`);t.error&&qe(n,t.error,`rejected`),Ie(t.snapshot,t.display,`action`,t.wallet)}catch(e){!d.signal.aborted&&x.status!==`rejected`&&(qe(n,e instanceof Error?e.message:`The request could not be confirmed.`,`unknown`),C&&(C.data=$(e)?.data))}finally{w===n&&(w=void 0),O()}}let Ye={uploadChunkLimit(e,t){return h?xw({jsonrpc:`2.0`,id:2**53-1,method:`tools/call`,params:{name:Lw.act,arguments:{...h,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 Ve(!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?!Me(e):!je(e))throw Error(`This Settings action is unavailable until its current status has been checked.`);if(await Je(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(C?.input===e){let e=Error(C.message);throw e.data=C.data,e}if(!v)throw Error(`The current Settings status could not be checked.`);return v},setFileTransferActive(e){ee=e,O()},async readFile(e){if(!h||!g||!De().current||d.signal.aborted)throw Error(`Backup read permission is unavailable.`);let t=await Ue(Lw.readSettingsFile,{...h,...e}),n=Iw.parse($(t._meta)?.[Aw]);if(n.cardId!==g||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=$($(v?.data)?.download);if(!h||!De().current||d.signal.aborted||document.visibilityState===`hidden`||r&&(r.currentAttemptId!==n||r.localSave||r.availability!==`available`||Te===void 0||Date.now()>=Te))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 Xe(){if(!(!ne||ie===void 0||re)){re=!0;try{let t=Vw(ie,u.getHostVersion()?.name),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?.[Dw];if(r!==void 0){let e=Nw.safeParse(r);if(!e.success)throw Error(`This card cannot accept actions with the access information provided by the app.`);h=e.data}let i=Ww(t);if(i.inputRequired){if(i.inputRequired.kind!==e||h)throw Error(`The app provided inconsistent card input information.`);ae=i.inputRequired.message,O();return}let a=Uw(t,u.getHostVersion()?.name),o=[i.snapshot?.cardId,h?.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 x={status:`rejected`,message:`The returned information does not match this card.`},Error(x.message);g=o[0];let s=i.snapshot;s&&(f||s.state!==`ready`)&&(_={...s.input}),te=i.display,s&&h&&Ie(s,i.display,`preview`,i.wallet),Be(),O()}catch(e){if(d.signal.aborted)return;S=e instanceof Error?e.message:`Card data could not be read.`,O()}}}u.ontoolresult=e=>{if(ie===void 0){ie=e,Xe();return}try{let t=Ww(Vw(ie,u.getHostVersion()?.name)).snapshot??v,n=Ww(Vw(e,u.getHostVersion()?.name)).snapshot;if(t&&n&&(t.cardId!==n.cardId||t.kind!==n.kind))throw Error(`The app returned a different card.`)}catch{x={status:`rejected`,message:`The returned information does not match this card.`},O()}},u.onhostcontextchanged=e=>{e.theme&&(document.documentElement.dataset.theme=e.theme)};let Ze=()=>{document.visibilityState!==`hidden`&&h&&re&&x.status!==`read_failed`?Ve(!1):O()};document.addEventListener?.(`visibilitychange`,Ze),u.onteardown=async()=>{if(d.signal.aborted)return{};d.abort(),w=void 0,document.removeEventListener?.(`visibilitychange`,Ze);let e=_e?.dispose;return _e=void 0,Pe(e),O(),{}},u.connect().then(()=>{d.signal.aborted||(ne=!0,document.documentElement.dataset.theme=u.getHostContext()?.theme??`light`,Xe())}).catch(()=>{d.signal.aborted||(S=`Could not connect this card to the app.`,O())})}var Kw=s(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),qw=s((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)}})),Jw=s((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}}})),Yw=s(((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})),Xw=s(((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})),Zw=s((e=>{var t=qw().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}})),Qw=s((e=>{var t=qw().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),$w=s((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}})),eT=s((e=>{var t=Jw(),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}}})),tT=s((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]]}})),nT=s((e=>{var t=tT();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}})),rT=s(((e,t)=>{var n=nT();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})),iT=s((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),aT=s((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
3173
- ]))+`;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)}})),oT=s((e=>{var t=iT(),n=aT();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}}})),sT=s((e=>{var t=qw(),n=eT(),r=Jw(),i=oT(),a=iT(),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}})),cT=s((e=>{var t=qw(),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}})),lT=s(((e,t)=>{var n=oT();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})),uT=s(((e,t)=>{var n=oT(),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;for(t=0;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})),dT=s(((e,t)=>{var n=oT();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=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})),fT=s(((e,t)=>{var n=oT(),r=qw();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;for(t=0;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]+`
3174
- Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),pT=s(((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,ee;!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],ee=a[l]===void 0,(ee||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var h=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(h)}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)})),mT=s((e=>{var t=oT(),n=lT(),r=uT(),i=dT(),a=fT(),o=aT(),s=qw(),c=pT();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 ee(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 h(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)+`.
3175
- 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(h(t,null)):t.data&&e.push(h(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=ee(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()))}})),hT=s((e=>{var t=qw(),n=Jw(),r=Yw(),i=Xw(),a=Zw(),o=Qw(),s=$w(),c=eT(),l=rT(),u=sT(),d=cT(),f=oT(),p=mT();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 ee(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 h(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 g(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 _(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 v(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 y(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 te(a,e,n)}function te(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),ee=0,h=Array(o),g=Array(o),_=0,v=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;h[e]=v.slice(ee,ee+t),g[e]=m.encode(h[e]),ee+=t,_=Math.max(_,t)}let y=new Uint8Array(i),te=0,b,ne;for(b=0;b<_;b++)for(ne=0;ne<o;ne++)b<h[ne].length&&(y[te++]=h[ne][b]);for(b=0;b<p;b++)for(ne=0;ne<o;ne++)y[te++]=g[ne][b];return y}function b(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(`
3172
+ `)),hx={0:`ED25519`,1:`Secp256k1`,2:`Secp256r1`,3:`MultiSig`,5:`ZkLogin`,6:`Passkey`};function gx(e){let{prefix:t,words:n}=Uy.decode(e);if(t!==`suiprivkey`)throw Error(`invalid private key prefix`);let r=new Uint8Array(Uy.fromWords(n)),i=r.slice(1);return{scheme:hx[r[0]],secretKey:i}}var _x=`external-proposal-alpha-2026-05-25`,vx=`proposal-review-model-alpha-2026-05-25`;Th();var yx=P().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),bx=/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,xx=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/,Sx=/suiprivkey1[023456789acdefghjklmnpqrstuvwxyz]+/gi,Cx=/(^|[^0-9a-fA-F])(?:0x)?[0-9a-fA-F]{64}($|[^0-9a-fA-F])/,wx=/(^|[^A-Za-z0-9+/_=-])(?:[A-Za-z0-9+/]{43}=|[A-Za-z0-9+/]{44}|[A-Za-z0-9_-]{43,44})($|[^A-Za-z0-9+/_=-])/,Tx=/^(?:0|[1-9][0-9]*)(?:\.[0-9]+)?$/,Ex=[12,15,18,21,24];function Dx(e,t,n={}){return P().min(1).max(e).superRefine((e,r)=>{(bx.test(e)||xx.test(e)||kx(e)||Ax(e)||!n.allowRawSecretLikeText&&jx(e))&&r.addIssue({code:`custom`,message:`${t} must not contain executable, signing, private-key, mnemonic, route-selected, or encoded secret-like material`})})}function Ox(e,t){return Dx(e,t,{allowRawSecretLikeText:!0})}function kx(e){return(e.match(Sx)??[]).some(e=>{try{return gx(e.toLowerCase()),!0}catch{return e.toLowerCase().startsWith(`suiprivkey1`)}})}function Ax(e){let t=e.normalize(`NFKD`).toLowerCase().replace(/[^a-z]+/g,` `).trim().split(/\s+/).filter(Boolean);for(let e of Ex)if(!(t.length<e)){for(let n=0;n<=t.length-e;n+=1)if(px(t.slice(n,n+e).join(` `),mx))return!0}return!1}function jx(e){return Cx.test(e)||wx.test(e)}var Mx=Dx(80,`amountDisplay`).refine(e=>Tx.test(e)&&/[1-9]/.test(e),{message:`Expected a positive decimal display amount`}),Nx=z({kind:H([`mcp_server`,`ai_client`,`user`,`other`]),name:Dx(120,`source.name`),reference:Dx(256,`source.reference`).optional()}).strict(),Px=z({address:bb.optional(),label:Dx(120,`party.label`).optional()}).strict().refine(e=>e.address!==void 0||e.label!==void 0,{message:`Expected address or label`}),Fx=z({amountDisplay:Mx,amountKind:U(`display_proposal`).default(`display_proposal`),symbol:Dx(64,`amount.symbol`).optional(),coinType:Ox(512,`amount.coinType`).optional(),denomination:Dx(64,`amount.denomination`).optional()}).strict(),Ix=z({packageId:Ox(128,`action.target.packageId`).optional(),module:Dx(128,`action.target.module`).optional(),function:Dx(128,`action.target.function`).optional(),objectId:Ox(128,`action.target.objectId`).optional(),label:Dx(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`}),Lx=z({direction:H([`outgoing`,`expected_incoming`,`fee`]),amount:Fx,recipient:Px.optional(),description:Dx(512,`assetFlow.description`).optional()}).strict(),Rx=z({id:Dx(120,`proposal.id`),source:Nx,network:U(`sui:mainnet`),createdAt:yx,expiresAt:yx.optional(),purpose:Dx(512,`purpose`),assumptions:R(Dx(512,`assumptions[]`)).max(20).optional(),requiredUserChoices:R(Dx(512,`requiredUserChoices[]`)).max(20).optional()}).strict(),zx=op(`type`,[Rx.extend({type:U(`payment`),payment:z({amount:Fx,recipient:Px,target:Dx(512,`payment.target`).optional()}).strict()}).strict(),Rx.extend({type:U(`sui_action`),action:z({actionKind:Dx(120,`action.actionKind`),target:Ix,recipient:Px.optional(),assetFlow:R(Lx).max(20).optional()}).strict()}).strict()]),Bx=z({id:P(),label:P(),status:H([`pass`,`warning`,`fail`]),message:P(),source:H([`proposal`,`adapter`,`registry`,`quote`,`wallet`,`simulation`,`network`])}).strict(),Vx=z({id:P(),label:P(),reason:P()}).strict(),Hx=z({modelVersion:U(vx),contractVersion:U(_x),proposalId:P(),proposalType:H([`payment`,`sui_action`]),proposalSource:Nx,proposedAction:z({kind:H([`payment`,`sui_action`]),title:P(),purpose:P(),network:U(`sui:mainnet`),recipient:Px.optional(),target:B([P(),Ix]).optional()}).strict(),assetFlow:z({outgoing:R(Fx),expectedIncoming:R(Fx),fees:R(Fx)}).strict(),recipients:R(Px),targets:R(B([P(),Ix])),evidenceUsed:R(z({id:P(),label:P(),source:H([`external_proposal`,`local_schema`]),summary:P()}).strict()),missingEvidence:R(Vx),requiredUserChoices:R(Vx),unsupportedClaims:R(z({id:P(),label:P(),reason:P()}).strict()),rejectedExecutableFields:R(z({fieldName:P(),reason:P()}).strict()),freshness:z({proposalCreatedAt:yx,proposalExpiresAt:yx.optional(),evaluatedAt:yx,status:H([`current`,`expired`,`created_in_future`,`expiry_not_provided`]),reason:P()}).strict(),blockingChecks:R(Bx),nonSignableReason:z({code:U(`external_proposal_review_only`),message:P(),blockedCapabilities:R(P())}).strict()}).strict();z({requestedIntent:zx,implementationStatus:U(`read_only_review_only`),contractVersion:U(_x)}).strict();var Ux=[`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`],Wx=[`review_evidence_stale`,`quote_stale`,`quote_unavailable`,`simulation_transient_failure`,`review_update_failed`,`wallet_connection_changed`],Gx=[`proposed`,`awaiting_wallet`,`wallet_connected`,`ready_for_wallet_review`,`refresh_required`,`blocked`,`expired`],Kx=[`humanReadableReview`,`simulation`,`transactionReviewData`,`ptbVisualization`,`assetFlowActual`,`beforeAfterBalance`];Th();var qx=H([`client.core.simulateTransaction`,`client.transactionExecutionService.simulateTransaction`]),Jx=`ptb-visualization-contract-alpha-2026-05-25`,Yx=[`proposedAction`,`assetFlow`,`recipients`,`targets`,`evidenceUsed`,`missingEvidence`,`requiredUserChoices`,`unsupportedClaims`,`freshness`,`blockingChecks`],Xx=[`effects`,`balanceChanges`,`objectTypes`,`transaction`],Zx=[`transaction_bytes`,`serialized_transaction`,`wallet_signature_request`,`private_key_material`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`],Qx=[`transaction_building_input`,`wallet_authorization`,`signing_data`,`signing_readiness`,`payment_execution_readiness`,`route_recommendation`],$x=yb,eS=`MIST`,tS=[`checkedAt`,`expiresAt`],nS=[`checkedAt`,`expiryStatus`],rS=[`rawAmount`,`asset`,`amountRole`],iS=[`minOutRaw`,`asset`,`amountRole`],aS=[`gasBudgetRaw`,`asset`,`amountRole`],oS=[`gasUsedRaw`,`asset`,`amountRole`],sS=[`checkedAt`,`gasResolutionStatus`,`unresolvedReason`],cS=[`balanceChanges`,`asset`,`amountRole`],lS=[`coinType`,`decimals`],uS=[`quoteEvidenceId`,`minOutRaw`],dS=[`maxSlippageBps`,`userSelection`],fS=[`maxSlippageBps`,`minOutRaw`],pS=[`ownerAccount`,`objects`],mS=[`pinned_sdk_registry`,`verified_mainnet_onchain_metadata`,`wallet_account_read`,`quote_evidence`,`review_time_simulation`,`validated_request_fact`,`user_explicit_choice`],hS=[`input`,`expected_output`,`minimum_output`,`gas_budget`,`gas_used`,`fee`,`balance_delta`],gS={input:{kinds:[`validated_request_fact`,`wallet_account_read`,`user_explicit_choice`],fields:rS},expected_output:{kinds:[`quote_evidence`,`review_time_simulation`],fields:rS},minimum_output:{kinds:[`quote_evidence`],fields:iS},gas_budget:{kinds:[`review_time_simulation`],fields:aS},gas_used:{kinds:[`review_time_simulation`],fields:oS},fee:{kinds:[`review_time_simulation`],fields:rS},balance_delta:{kinds:[`review_time_simulation`],fields:cS}},_S={pinned_sdk_metadata:{kinds:[`pinned_sdk_registry`],fields:lS},verified_mainnet_onchain_metadata:{kinds:[`verified_mainnet_onchain_metadata`],fields:lS}},vS={user_explicit:{kinds:[`user_explicit_choice`],fields:dS},adapter_policy_from_quote_evidence:{kinds:[`quote_evidence`],fields:fS}},yS={kinds:[`review_time_simulation`],fields:sS},bS={kinds:[`quote_evidence`],fields:uS},xS={kinds:[`validated_request_fact`],fields:tS},SS={kinds:[`validated_request_fact`],fields:nS},CS={raw_quantity_amount:{byRole:gS},unit_metadata:{bySource:_S},gas_unresolved_status:yS,expiry_status:{current:xS,expired:xS,not_provided:SS,not_applicable:SS},quote_min_out:bS,slippage_policy:{bySource:vS},object_ownership:{kinds:[`wallet_account_read`],fields:pS},simulation_result:{kinds:[`review_time_simulation`],fields:Xx}},wS={gasBudgetClaimId:{factKind:`raw_quantity_amount`,role:`gas_budget`,assetCoinType:$x,rawUnit:eS},gasUsedClaimId:{factKind:`raw_quantity_amount`,role:`gas_used`,assetCoinType:$x,rawUnit:eS},gasObjectOwnershipClaimId:{factKind:`object_ownership`,ownership:`owned_by_account`}},TS=P().refine(e=>{let t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e},`Expected ISO 8601 UTC timestamp`),ES=Ob(`unsigned integer`),DS=P().regex(/^0x[0-9a-fA-F]{1,64}$/,{message:`Expected a Sui object id`}),OS=P().min(1).max(512).refine(e=>{try{return jb(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),X=P().min(1).max(120),kS=z({symbol:P().min(1).max(64).optional(),coinType:OS}).strict(),AS=/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,jS=/(?:0x[0-9a-fA-F]{160,}|[A-Za-z0-9+/_=-]{160,})/;function MS(e,t){return P().min(1).max(e).superRefine((e,n)=>{(AS.test(e)||jS.test(e))&&n.addIssue({code:`custom`,message:`${t} must not contain executable transaction, signing, private-key, mnemonic, or long encoded material`})})}function NS(e,t){let n=new Set(e);return t.filter(e=>!n.has(e))}function PS(e,t,n,r,i){let a=NS(t,n);a.length!==0&&e.addIssue({code:`custom`,path:r,message:`${i} must include ${a.join(`, `)}`})}function FS(e,t,n,r,i){PS(e,t,n,r,i)}function IS(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&&IS(e,r,i)}function LS(e,t,n,r,i){let a=new Set(t),o=new Set(n);if(a.size!==o.size){IS(e,r,i);return}for(let t of a)if(!o.has(t)){IS(e,r,i);return}}function RS(e,t,n,r,i){(t.symbol!==n.symbol||t.coinType!==n.coinType)&&IS(e,r,i)}function zS(e,t,n,r,i){try{jb(t.coinType)!==n&&IS(e,r,i)}catch{IS(e,r,i)}}var BS=z({kind:H([`natural_language_intent`,`external_proposal`,`mcp_action_request`,`local_review_request`]),sourceId:P().min(1).max(160),capturedAt:TS,authority:U(`untrusted_until_review_regenerates_and_verifies`),userSelectionSource:H([`user_explicit`,`prior_user_explicit_context`]).optional()}).strict(),VS=z({id:X,kind:H(mS),network:U(`sui:mainnet`),source:P().min(1).max(240),verifiedAt:TS,fields:R(P().min(1).max(120)).min(1)}).strict(),HS=op(`factKind`,[z({id:X,factKind:U(`raw_quantity_amount`),sourceEvidenceId:X,role:H(hS),asset:kS,rawAmount:ES}).strict(),z({id:X,factKind:U(`unit_metadata`),sourceEvidenceId:X,source:H([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),coinType:OS,decimals:F().int().min(0).max(255)}).strict(),z({id:X,factKind:U(`gas_unresolved_status`),sourceEvidenceId:X,checkedAt:TS,status:U(`unresolved`),reason:P().min(1).max(240)}).strict(),z({id:X,factKind:U(`expiry_status`),sourceEvidenceId:X,checkedAt:TS,status:H([`current`,`expired`,`not_provided`,`not_applicable`]),expiresAt:TS.optional(),reason:P().min(1).max(240).optional()}).strict(),z({id:X,factKind:U(`quote_min_out`),sourceEvidenceId:X,quoteEvidenceId:P().min(1).max(120),minOutRaw:ES}).strict(),z({id:X,factKind:U(`slippage_policy`),sourceEvidenceId:X,policySource:H([`user_explicit`,`adapter_policy_from_quote_evidence`]),maxSlippageBps:F().int().min(0).max(1e4),minOutRaw:ES.optional()}).strict(),z({id:X,factKind:U(`object_ownership`),sourceEvidenceId:X,objectId:DS,ownerAccount:bb,ownership:H([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`])}).strict(),z({id:X,factKind:U(`simulation_result`),sourceEvidenceId:X,provider:qx,checksEnabled:U(!0),simulatedAt:TS,status:H([`success`,`failed`,`unavailable`]),requiredFields:R(H(Xx)).min(Xx.length),missingFields:R(H(Xx)).default([]),failureReason:P().min(1).max(240).optional()}).strict()]),US=z({id:X,role:H(hS),asset:kS,rawAmount:ES,unit:z({decimals:F().int().min(0).max(255),source:H([`pinned_sdk_metadata`,`verified_mainnet_onchain_metadata`]),sourceField:P().min(1).max(160),unitClaimId:X}).strict(),amountClaimId:X,displayOnly:z({amountDisplay:P().min(1).max(120),reason:U(`presentation_only_not_signing_input`)}).strict().optional()}).strict(),WS=z({objectId:DS,ownerAccount:bb,ownershipClaimId:X}).strict(),GS=z({source:U(`review_time_simulation`),checkedAt:TS,gasBudgetRaw:ES.optional(),gasBudgetClaimId:X.optional(),gasUsedRaw:ES.optional(),gasUsedClaimId:X.optional(),gasObjects:R(WS).optional(),unresolvedReason:P().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`})}),KS=op(`status`,[z({checkedAt:TS,status:U(`current`),expiresAt:TS,evidenceClaimId:X}).strict(),z({checkedAt:TS,status:U(`expired`),expiresAt:TS,evidenceClaimId:X}).strict(),z({checkedAt:TS,status:U(`not_provided`),evidenceClaimId:X,reason:P().min(1).max(240),expiresAt:$f().optional()}).strict(),z({checkedAt:TS,status:U(`not_applicable`),evidenceClaimId:X,reason:P().min(1).max(240),expiresAt:$f().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`})}),qS=z({status:H([`required_and_verified`,`not_required_for_action`,`missing`,`stale`]),quoteEvidenceId:P().min(1).max(120).optional(),quoteEvidenceClaimId:X.optional(),maxSlippageBps:F().int().min(0).max(1e4).optional(),minOutRaw:ES.optional(),policySource:H([`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`})}),JS=z({checkedAt:TS,ownerAccount:bb,objects:R(z({objectId:DS,role:H([`input_coin`,`gas_coin`,`protocol_object`,`shared_object`,`receiving_object`]),ownership:H([`owned_by_account`,`shared_object`,`immutable_or_package`,`not_owned_by_account`]),evidenceClaimId:X}).strict()).min(1)}).strict(),YS=z({evidenceClaimId:X,transactionDigest:xb,provider:qx,checksEnabled:U(!0),simulatedAt:TS,status:H([`success`,`failed`,`unavailable`]),requiredFields:R(H(Xx)).min(Xx.length),missingFields:R(H(Xx)).default([]),failureReason:P().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=>Xx.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`}),XS=z({fields:R(H(Yx)).min(Yx.length),transactionDigest:xb,source:U(`review_model_or_adapter_equivalent`),purpose:U(`human_review_before_wallet_authorization`)}).strict().refine(e=>Yx.every(t=>e.fields.includes(t)),{message:`Human-readable review fields must include every required review field`}),ZS=z({runtimeStatus:U(`emitted_pre_handoff`),mcpAndReviewUiMayExpose:R(H([`human_readable_review`,`ptb_visualization_artifact`,`diagnostics`,`status_checks`])).min(1),prohibited:R(H(Zx)).min(1)}).strict().superRefine((e,t)=>{FS(t,e.prohibited,Zx,[`prohibited`],`prohibited`)}),QS=z({schemaVersion:U(1),adapterId:P().min(1).max(120),protocol:P().min(1).max(120),actionKind:P().min(1).max(120),network:U(`sui:mainnet`),inputProvenance:BS,sourceReferences:R(VS).min(1),evidenceClaims:R(HS).min(1),rawQuantities:R(US).min(1),gas:GS,expiry:KS,slippageOrMinOut:qS,objectOwnership:JS,simulation:YS,humanReadableReview:XS,outputBoundary:ZS,reviewedTransactionDigest:xb}).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(`, `)}`}),PS(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}`});return}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,CS.raw_quantity_amount.byRole[e.role],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].raw_quantity_amount`),e.factKind===`unit_metadata`&&l(e.sourceEvidenceId,CS.unit_metadata.bySource[e.source],[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].unit_metadata`),e.factKind===`gas_unresolved_status`&&l(e.sourceEvidenceId,CS.gas_unresolved_status,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].gas_unresolved_status`),e.factKind===`expiry_status`&&(l(e.sourceEvidenceId,CS.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,CS.quote_min_out,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].quote_min_out`),e.factKind===`slippage_policy`&&(l(e.sourceEvidenceId,CS.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,CS.object_ownership,[`evidenceClaims`,n,`sourceEvidenceId`],`evidenceClaims[${n}].object_ownership`),e.factKind===`simulation_result`&&(l(e.sourceEvidenceId,CS.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`}),Xx.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`),RS(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,wS.gasBudgetClaimId.role,[`gas`,`gasBudgetClaimId`],`gas.gasBudgetClaimId role`),zS(t,n.asset,wS.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,wS.gasUsedClaimId.role,[`gas`,`gasUsedClaimId`],`gas.gasUsedClaimId role`),zS(t,n.asset,wS.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,wS.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`),LS(t,e.simulation.requiredFields,f.requiredFields,[`simulation`,`requiredFields`],`simulation.requiredFields`),LS(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`)}),$S=z({contractVersion:U(Jx),artifactKind:U(`ptb_visualization`),generatedAt:TS,source:z({adapterId:P().min(1).max(120),planId:P().min(1).max(120).optional(),sourceKind:H([`review_time_generated_transaction_kind`,`review_time_ir`,`renderer_model`]),authority:U(`visualization_only_not_wallet_authorization`),renderer:z({name:P().min(1).max(120),packageName:P().min(1).max(120).optional(),version:P().min(1).max(80).optional()}).strict().optional()}).strict(),mermaid:z({diagramType:U(`flowchart`),text:MS(2e4,`mermaid.text`),namedText:MS(2e4,`mermaid.namedText`)}).strict(),diagnostics:R(z({severity:H([`info`,`warning`,`error`]),code:P().min(1).max(120),message:MS(512,`diagnostics.message`),source:H([`adapter`,`renderer`,`schema`,`simulation`])}).strict()).default([]),unsupportedUse:R(H(Qx)).min(1),executableMaterial:z({included:U(!1),policy:U(`mcp_and_review_ui_outputs_must_not_include_executable_transaction_material`)}).strict()}).strict().superRefine((e,t)=>{FS(t,e.unsupportedUse,Qx,[`unsupportedUse`],`unsupportedUse`)});Th();var eC=V(P(),L()),tC=H(Ux),nC=H(Wx);H([`ready_for_wallet_review`,`refresh_required`,`blocked`]);var rC=H(Gx);H([`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 iC=z({id:P(),label:P(),status:H([`pass`,`warning`,`fail`]),message:P(),source:H([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`])}),aC=P().min(1),oC=`human_readable_review`,sC=`review_time_simulation`,cC=z({stageCatalogId:P().min(1),adapterId:P(),protocol:P(),actionKind:P(),completedStages:R(aC),missingStages:R(aC)}).strict().superRefine((e,t)=>{let n=lC(e.completedStages);n&&t.addIssue({code:`custom`,path:[`completedStages`],message:`completedStages contains duplicate stage '${n}'`});let r=lC(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 lC(e){let t=new Set;for(let n of e){if(t.has(n))return n;t.add(n)}}var uC=z({symbol:P(),amount:P(),coinType:P().optional(),approx:I().optional()}).strict(),dC=uC.extend({amountKind:U(`display_intent`).default(`display_intent`)}),fC=z({outgoing:R(dC),expectedIncoming:R(dC),minimumIncoming:R(dC).optional(),fees:R(dC).optional()}),pC=z({outgoing:R(uC),expectedIncoming:R(uC),minimumIncoming:R(uC).optional(),fees:R(uC).optional()}),mC=z({before:R(uC),after:R(uC),delta:R(uC)}),hC=z({computationCostRaw:Eb(`computationCostRaw`),storageCostRaw:Eb(`storageCostRaw`),storageRebateRaw:Eb(`storageRebateRaw`),nonRefundableStorageFeeRaw:Eb(`nonRefundableStorageFeeRaw`)}).strict(),gC=z({address:bb,coinType:P().min(1).max(512).refine(e=>{try{return jb(e)===e}catch{return!1}},`Expected a normalized Sui struct tag coin type`),amount:Ab(`balanceChanges[].amount`)}).strict(),_C=z({objectId:bb,objectType:P().min(1).max(512).optional(),inputState:P().min(1).max(80),outputState:P().min(1).max(80),idOperation:P().min(1).max(80)}).strict(),vC=z({provider:qx,checksEnabled:I(),success:I(),gasCostSummary:hC.optional(),balanceChanges:R(gC).optional(),objectChanges:R(_C).optional(),error:P().optional()}),yC=vC,bC=vC.extend({checksEnabled:U(!0),success:U(!0),gasCostSummary:hC,balanceChanges:R(gC),objectChanges:R(_C),error:$f().optional()}).strict(),xC=z({role:H([`input`,`expected_output`,`minimum_output`,`fee`]),symbol:P(),coinType:P().min(1).max(512).refine(e=>{try{return jb(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),decimals:F().int().min(0).max(255),rawAmount:Eb(`rawAmount`),rawAmountSource:U(`quote_policy_evidence`),displayAmount:P().optional(),displayAmountSource:U(`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`})}),SC=z({role:H([`connected_account`,`output_recipient`]),address:bb}).strict(),CC=z({kind:U(`swap_output_asset`),symbol:P(),coinType:P().min(1).max(512).refine(e=>{try{return jb(e),!0}catch{return!1}},`Expected a Sui struct tag coin type`),protocol:P(),poolKey:P(),direction:H([`base_to_quote`,`quote_to_base`])}).strict(),wC=z({id:P(),label:P(),source:B([H([`registry`,`quote`,`wallet`,`simulation`,`adapter`,`network`,`proposal`]),H([`transaction_material`,`digest_commitment`])]),summary:P()}).strict(),TC=z({id:P(),label:P(),reason:P()}).strict(),EC=z({proposedAction:z({title:P(),summary:P(),actionKind:P(),adapterId:P(),protocol:P(),network:U(`sui:mainnet`)}).strict(),recipients:R(SC),evidenceUsed:R(wC),missingEvidence:R(TC),requiredUserChoices:R(TC),unsupportedClaims:R(TC),freshness:z({status:U(`current`),evaluatedAt:P(),expiresAt:P(),reason:P()}).strict(),blockingChecks:R(iC)}).strict(),DC=z({assetFlow:z({outgoing:R(xC),expectedIncoming:R(xC),minimumIncoming:R(xC),fees:R(xC)}).strict(),targets:R(CC)}).strict(),OC=op(`kind`,[EC.extend({kind:U(`swap_human_readable_review`)}).merge(DC)]),kC=z({id:P(),actionKind:P(),adapterId:P(),protocol:P(),title:P(),summary:P(),assetFlowPreview:fC,reviewModel:Hx.optional(),adapterData:eC,createdAt:P(),expiresAt:P().optional(),registryVersion:P().optional(),preliminaryChecks:R(iC).optional()}),AC=z({planId:P(),reviewSessionId:P(),account:bb,checks:R(iC),assetFlowActual:pC.optional(),beforeAfterBalance:mC.optional(),simulation:yC.optional(),humanReadableReview:OC.optional(),transactionReviewData:QS.optional(),ptbVisualization:$S.optional(),adapterLifecycle:cC.optional(),updatedAt:P()}),jC=op(`status`,[AC.extend({status:U(`ready_for_wallet_review`),evidenceValidity:$f().optional(),blockedReason:$f().optional(),refreshReason:$f().optional()}),AC.extend({status:U(`refresh_required`),evidenceValidity:U(`invalidated`).optional(),refreshReason:nC,blockedReason:$f().optional()}),AC.extend({status:U(`blocked`),evidenceValidity:U(`invalidated`).optional(),blockedReason:tC,refreshReason:$f().optional()})]).superRefine((e,t)=>{if(e.evidenceValidity===`invalidated`)for(let n of Kx)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&&MC(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 MC(e,t){let n=e.adapterLifecycle;n&&(e.humanReadableReview!==void 0&&NC(t,n,oC,[`humanReadableReview`]),e.simulation!==void 0&&(NC(t,n,sC,[`simulation`]),NC(t,n,oC,[`simulation`]),PC(t,e.simulation,[`simulation`])),n.missingStages.includes(sC)&&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(oC)&&e.humanReadableReview!==void 0&&t.addIssue({code:`custom`,path:[`humanReadableReview`],message:`humanReadableReview public evidence cannot be present while human_readable_review is missing`}))}function NC(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 PC(e,t,n){bC.safeParse(t).success||e.addIssue({code:`custom`,path:n,message:`simulation public evidence requires a successful checks-enabled review-time simulation projection`})}Th();var FC=z({topic:P().min(1),accounts:R(bb).min(1),methods:R(P()),chain:U(Ub),expiresAt:P().datetime(),walletName:P().optional()}).strict(),IC=op(`status`,[z({topic:P().min(1),version:F().int().positive(),status:U(`present`),session:FC}).strict(),z({topic:P().min(1),version:F().int().positive(),status:H([`absent`,`unusable`])}).strict()]),LC=z({runId:Wb,sequence:F().int().positive(),observedAt:P().datetime()}).strict();LC.extend({sessions:R(IC)}).strict();var RC=z({kind:U(`wallet_service_recovery`),priorRunId:Wb,admittedAt:P().datetime(),updatedAt:P().datetime()}),zC=B([RC.extend({phase:U(`stopping`)}).strict(),RC.extend({phase:U(`starting`),nextRunId:Wb}).strict(),RC.extend({outcome:H([`available`,`failed`,`superseded`,`server_restarted`]),nextRunId:Wb.optional(),message:P().optional()}).strict()]);Th();var BC=`A wallet connection provides account context; it is not a transaction approval or proof of address ownership.`,VC=`Review evidence is not a safety guarantee. Only an explicit card action and wallet approval may authorize this exact transaction.`,HC=Xb.extend({pendingAction:U(`disconnect`).optional()});H([`input_required`,`awaiting_approval`,`disconnect_pending`]);var UC=z({action:U(`connect`),walletRunId:Wb}).strict(),WC=z({action:U(`disconnect`),walletRunId:Wb,connectionId:P().min(1)}).strict(),GC=z({action:U(`use_account`),walletRunId:Wb,connectionId:P().min(1),account:bb}).strict(),KC=z({action:H([`prepare_review`,`request_signature`]),connectionId:P().min(1),walletRunId:Wb,account:bb,reviewRevision:F().int().nonnegative()}).strict(),qC=B([UC,WC,GC,KC,z({action:H([`cancel`,`stop_connection`,`stop_waiting`,`read_result`])}).strict()]),JC=B([UC,KC.extend({action:U(`prepare_review`)})]),YC=z({kind:H([`connect`,`review`]),mode:H([`connect`,`review`,`review_manage`]),allowedActions:R(H(tx)),actionRemainingMs:F().int().nonnegative(),nextStateReadAfterMs:F().int().nonnegative().optional(),automaticAction:JC.optional(),observe:I(),walletAvailability:qb,walletObservation:LC.optional(),runtimeRecovery:zC.optional(),connectionConflict:Zb.optional(),manageableConnectionIds:R(P().min(1)),connectionReconciliationRequired:U(!0).optional(),usableConnectionId:P().min(1).optional(),assetReadAccount:ex.optional(),acceptedWalletRunId:Wb.optional(),progress:Jb,boundary:H([BC,VC]),connections:R(HC),activeAccount:P().optional(),connection:HC.optional(),connectionAction:H([`connect`,`disconnect`]).optional(),review:z({reviewSessionId:P(),plan:kC,reviewRevision:F().int().nonnegative(),status:rC,account:P().optional(),preparing:I(),accountRequestPending:U(!0).optional(),error:P().optional(),state:jC.optional()}).strict().optional(),request:Hb.optional(),receipt:L().optional(),netGasMist:P().regex(/^-?[0-9]+$/).optional(),observationStopped:I().optional()}).strict().superRefine((e,t)=>{let n=e.connections.find(t=>t.connectionId===e.usableConnectionId);e.usableConnectionId&&(!n||n.status!==`connected`||e.walletAvailability.status!==`available`||e.connectionConflict||e.connectionReconciliationRequired||e.connections.some(e=>e.pendingAction||e.status===`awaiting_approval`))&&t.addIssue({code:`custom`,path:[`usableConnectionId`],message:`The usable connection must match current connection facts.`}),(new Set(e.manageableConnectionIds).size!==e.manageableConnectionIds.length||e.manageableConnectionIds.some(t=>!e.connections.some(e=>e.connectionId===t&&!e.pendingAction&&e.status!==`awaiting_approval`)))&&t.addIssue({code:`custom`,path:[`manageableConnectionIds`],message:`Management must name distinct recorded targets without pending operations.`}),e.connectionReconciliationRequired&&(e.usableConnectionId||e.assetReadAccount?.status===`available`||e.allowedActions.some(e=>[`connect`,`use_account`,`prepare_review`,`request_signature`].includes(e)))&&t.addIssue({code:`custom`,path:[`connectionReconciliationRequired`],message:`Unrecorded SDK connections cannot authorize connection or account use.`}),e.assetReadAccount?.status===`available`&&(!n||!n.accounts.includes(e.assetReadAccount.account)||e.activeAccount!==e.assetReadAccount.account)&&t.addIssue({code:`custom`,path:[`assetReadAccount`],message:`The default address must belong to the usable connection and stored selection.`})});function XC(e,t,n=!1){return e.connections.filter(r=>r.connectionId===e.usableConnectionId&&r.accounts.includes(t)&&(!n||r.methods.includes(`sui_signTransaction`)))}var ZC=`sui-mcp.local-data`;Th();var QC=16*1024*1024,Q=P().uuid(),$C=F().int().nonnegative().safe(),ew=P().regex(/^[a-f0-9]{64}$/),tw=op(`status`,[z({status:U(`no_file`)}).strict(),z({status:U(`receiving`)}).strict(),z({status:U(`checking`)}).strict(),z({status:U(`check_required`),message:P().min(1)}).strict(),z({status:U(`can_restore`)}).strict(),z({status:U(`cannot_restore`),reason:H([`invalid_backup`,`file_unavailable`,`wallet_request_unsettled`,`operation_busy`,`input_unavailable`,`check_failed`]),message:P().min(1)}).strict()]);z({fileId:Q,sha256:ew,totalSize:$C,dataEpoch:$C,userDataRevision:$C,check:tw}).strict();var nw=op(`kind`,[z({kind:U(`set_endpoint`),endpoint:H([`grpc`,`graphql`]),value:P().min(1)}).strict(),z({kind:U(`restore_endpoint`),endpoint:H([`grpc`,`graphql`])}).strict(),z({kind:H([`clear_read_address`,`export_local_data`,`download_backup`,`import_local_data`,`reset_local_data`,`restart_wallet_service`])}).strict()]),rw=H([`acknowledged`,`not_completed`,`unconfirmed`,`unsupported`]),iw=z({method:U(`ui/download-file`),code:U(-32601)}).strict(),aw=H([`acknowledged`,`cancelled`,`expired`,`server_restarted`,`data_replaced`,`source_unavailable`,`stored_locally`,`local_save_failed`]),ow=z({device:P().regex(/^\d+$/),inode:P().regex(/^\d+$/)}).strict(),sw=H([`not_published`,`target_conflict`,`source_unavailable`,`interrupted`]),cw=z({status:H([`needs_consent`,`saving`,`saved`,`failed`]),attemptId:Q,fileId:Q,sha256:ew,totalSize:$C,destination:P(),ownerId:P().min(1),currentSaveAttemptId:Q.optional(),attempts:R(z({saveAttemptId:Q,previousSaveAttemptId:Q.optional(),admittedAt:P().datetime(),allowPossibleCopy:I()}).strict()),sourceIdentity:ow.optional(),savedAt:P().datetime().optional(),failure:sw.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.`})});z({currentAttemptId:Q,attempts:R(z({attemptId:Q,admittedAt:P().datetime(),previousAttemptId:Q.optional(),hostReport:rw.optional(),failure:iw.optional()}).strict()).min(1),readyAt:P().datetime().optional(),expiresAt:P().datetime().optional(),endReason:aw.optional(),localSave:cw.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 lw=H([`settings_retry_download`,`settings_report_download`,`settings_cancel_download`,`settings_store_backup`]),uw=op(`action`,[z({action:U(`settings_download_backup`),operationId:Q,attemptId:Q}).strict(),z({action:U(`settings_retry_download`),operationId:Q,fileId:Q,previousAttemptId:Q,attemptId:Q}).strict(),z({action:U(`settings_report_download`),operationId:Q,fileId:Q,attemptId:Q,status:rw,failure:iw.optional()}).strict().refine(e=>e.status===`unsupported`==(e.failure!==void 0),`Only unsupported downloads require the exact method failure.`),z({action:U(`settings_store_backup`),operationId:Q,fileId:Q,attemptId:Q,saveAttemptId:Q,previousSaveAttemptId:Q.optional(),allowPossibleCopy:I()}).strict(),z({action:U(`settings_cancel_download`),operationId:Q,fileId:Q,attemptId:Q}).strict(),z({action:U(`settings_select`),draft:nw}).strict(),z({action:U(`settings_prepare`),operationId:Q}).strict(),z({action:U(`settings_begin_upload`),operationId:Q,name:P().min(1),totalSize:$C.max(QC),sha256:ew}).strict(),z({action:U(`settings_upload_chunk`),operationId:Q,fileId:Q,offset:$C.max(QC),chunkBase64:P()}).strict(),z({action:U(`settings_seal_upload`),operationId:Q,fileId:Q}).strict(),z({action:U(`settings_confirm`),operationId:Q,preparationId:Q}).strict(),z({action:U(`settings_back`),operationId:Q}).strict(),z({action:U(`settings_cancel`)}).strict()]),dw=z({outcome:H([`completed`,`failed`,`interrupted`,`superseded`]),recordedAt:P().datetime(),message:P().min(1),details:V(P(),L()).optional(),completionScope:U(`backup_snapshot`).optional()}).strict(),fw=z({storedValue:P(),effectiveValue:P(),source:H([`environment`,`local_db`,`builtin_default`]),pendingStoredValue:P().optional(),appliesAfter:U(`mcp_server_restart`).optional()}).strict(),pw=z({endpoint:H([`grpc`,`graphql`]),key:H([`suiGrpcUrl`,`suiGraphqlUrl`]),value:P().min(1),status:H([`saved`,`reset`]),storedValue:P(),effectiveValue:P(),source:fw.shape.source}).strict().refine(e=>e.key===(e.endpoint===`grpc`?`suiGrpcUrl`:`suiGraphqlUrl`),`The endpoint kind and preference key must agree.`),mw=F().int().nonnegative().safe(),hw=z({accounts:mw,reviewSessions:mw,reviewStateSnapshots:mw,reviewStatusTransitions:mw,reviewExecutions:mw,reviewRequests:mw,outcomeUnknownRequests:mw,externalActivityScans:mw,externalActivityTransactions:mw,localSettings:mw}).strict(),gw=z({status:U(`valid`),format:U(ZC),network:U(`mainnet`),exportedAt:P().datetime(),currentCounts:hw,incomingCounts:hw,willReplace:U(!0),activeAccountChange:H([`unchanged`,`set`,`cleared`]),currentReadAddress:bb.nullable(),incomingReadAddress:bb.nullable(),restartRequiredAfterImport:I()}).strict(),_w=z({kind:U(`settings`),operationId:Q,phase:H([`draft`,`uploading`,`sealed`,`prepared`,`executing`,`stopping`,`starting`,`terminal`]),draft:nw.optional(),preparationId:Q.optional(),preparation:V(P(),L()).optional(),file:z({fileId:Q,displayName:P(),totalSize:$C,receivedSize:$C,sha256:ew,sealed:I(),cleanup:H([`pending`,`complete`,`failed`])}).strict().optional(),download:z({availability:H([`preparing`,`available`,`ended`]),currentAttemptId:Q,hostReport:rw.optional(),previousUnconfirmed:I(),endReason:aw.optional(),expiresAt:P().datetime().optional(),remainingMs:$C.optional(),localSave:z({status:H([`needs_consent`,`saving`,`saved`,`failed`]),currentSaveAttemptId:Q.optional(),failure:sw.optional(),savedAt:P().datetime().optional()}).strict().optional(),allowedFileActions:R(lw)}).strict().optional(),restoreCheck:tw.optional(),backupLocation:z({directory:P().min(1),filename:P().min(1)}).strict().optional(),result:dw.optional(),temporaryFileCleanup:H([`pending`,`complete`,`failed`]).optional(),priorRunId:Q.optional(),nextRunId:Q.optional(),supersedesOperationId:Q.optional(),supersededByOperationId:Q.optional(),allowedActions:R(H(uw.options.map(e=>e.shape.action.value))),observe:I(),facts:z({server:z({name:P(),version:P(),network:U(`mainnet`)}).strict(),localSettings:z({suiGrpcUrl:fw,suiGraphqlUrl:fw}).strict(),readAddress:P().optional(),assetReadAccount:ex,walletAvailability:qb,connectionReconciliationRequired:U(!0).optional(),observedAt:P().datetime().optional(),counts:hw}).strict().optional()}).strict().superRefine((e,t)=>{if(e.download&&(e.draft?.kind!==`download_backup`||!e.file||e.download.availability===`available`&&(!e.file.sealed||!e.result||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===`export_local_data`||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.draft?.kind===`export_local_data`&&e.result?.outcome===`completed`&&typeof e.result.details?.path==`string`&&!e.backupLocation&&t.addIssue({code:`custom`,message:`A recorded backup path must provide its folder and file name.`}),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))&&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`&&!gw.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=pw.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.`})}),vw=64*1024;function yw(e){return new TextEncoder().encode(JSON.stringify(e)).length}function bw(e){let t=vw-yw(e);return t>0?3*Math.floor(t/4):0}function xw(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=QC,t.params.arguments.input.chunkBase64=``,bw(t)}var Sw={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`,actionPrepareSuiActionReview:`action.prepare_sui_action_review`,actionPrepareExternalProposalReview:`action.prepare_external_proposal_review`,sessionCreateWalletConnection:`session.create_wallet_connection`,sessionGetWalletConnection:`session.get_wallet_connection`,sessionWaitWalletConnection:`session.wait_wallet_connection`,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`};Th();var Cw=z({connectionId:P().min(1),pairingUri:P().startsWith(`wc:`),expiresAt:P().datetime()}).strict(),ww=H([`account`,`receipt`,`chart`,`connect`,`review`,`settings`]),Tw=z({cardId:P().min(1),kind:ww,state:H([`ready`,`running`,`closed`]),revision:F().int().nonnegative(),createdAt:P().datetime(),expiresAt:P().datetime(),input:V(P(),L()),data:L().optional(),reason:H([`completed`,`expired`,`failed`,`server_restarted`,`cancelled`]).optional(),error:P().optional()}).strict().extend({pollAfterMs:F().int().positive(),inputRemainingMs:F().int().nonnegative()}),Ew=z({transactionDigest:P().min(1),pureInputs:R(z({index:F().int().nonnegative(),bytes:P().regex(/^0x(?:[0-9a-f]{2})*$/i)}).strict()).refine(e=>new Set(e.map(e=>e.index)).size===e.length,`Duplicate input index.`),ptbGraph:z({mermaid:z({text:P(),namedText:P()}).strict()}).strict().optional()}).strict();Th();var Dw=`sui-mcp/card`,Ow=`sui-mcp/receipt-display`,kw=`sui-mcp/wallet-display`,Aw=`sui-mcp/settings-file`,jw=`suimcp://cards/`,Mw=op(`kind`,[z({kind:U(`account`),status:U(`input_required`),field:U(`account`),message:P().min(1)}).strict(),z({kind:U(`receipt`),status:U(`input_required`),field:U(`digest`),message:P().min(1)}).strict()]),Nw=z({cardId:P().min(1),permission:P().min(1)}).strict();Nw.extend({revision:F().int().nonnegative(),input:V(P(),L())}).strict();var Pw=Ew.extend({cardId:P().min(1),revision:F().int().nonnegative(),attemptId:P().min(1).optional()}),Fw=Cw.extend({cardId:P().min(1),revision:F().int().nonnegative()}),Iw=z({attemptId:P().uuid().optional(),cardId:P().min(1),operationId:P().uuid(),fileId:P().uuid(),offset:F().int().nonnegative().safe(),totalSize:F().int().nonnegative().safe(),sha256:P().regex(/^[a-f0-9]{64}$/),chunkBase64:P()}).strict(),Lw={account:Sw.uiOpenAccount,receipt:Sw.uiOpenReceipt,chart:Sw.uiOpenChart,read:Sw.uiReadCard,submit:Sw.uiSubmitCard,act:Sw.uiActCard,readSettingsFile:Sw.uiReadSettingsFile};function Rw(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 zw(e){return e.kind!==`import_local_data`}function Bw(e,t,n){if(e.kind!==`settings`||t.kind!==`settings`||e.cardId!==t.cardId||t.state!==`ready`)return;let r=_w.safeParse(e.data),i=_w.safeParse(t.data);if(!r.success||!i.success)return;let a=r.data,o=i.data,s=o.draft;if(!s||!a.draft||a.operationId!==o.operationId||n.operationId!==o.operationId||JSON.stringify(a.draft)!==JSON.stringify(s))return;if(zw(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 Vw(e){return Object.keys(e).filter(t=>e[t]!==void 0)}function Hw(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)=>Hw(e,t[n]));let n=$(e),r=$(t);if(!n||!r)return!1;let i=Vw(n);return i.length===Vw(r).length&&i.every(e=>Object.hasOwn(r,e)&&Hw(n[e],r[e]))}function Uw(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&&!Hw(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=T_.safeParse(i);if(!n.success)throw r();o=Uw(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 Vw(t)){let n=t[e];if(Object.hasOwn(c,e)&&!Hw(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 Ww(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 Gw(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(jw.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 Kw(e){let t=$(e.structuredContent),n=t?.ok===!0?Mw.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:Tw.parse(i);a?.kind===`settings`&&_w.parse(a.data);let o=$(e._meta)?.[Ow],s=o===void 0?void 0:Pw.parse(o);if(s&&!Ww(a,s))throw Error(`Transaction details do not match this saved result.`);let c=$(e._meta)?.[kw],l=c===void 0?void 0:Fw.parse(c);if(l&&(!a||a.kind!==`connect`||l.cardId!==a.cardId||l.revision!==a.revision||l.connectionId!==$($(a.data)?.connection)?.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 qw(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 Xv({name:`sui-mcp-card`,version:`0.6.1`},{},{autoResize:!0,strict:!0}),d=new AbortController,f=e===`connect`||e===`review`,p=e===`settings`,m=f||p,ee=!1,h,g,_,v,y,te,b,ne=!1,re=!1,ie,ae,x={status:`unconfirmed`},S,oe,se,C,w,ce=`continue`,T,le,ue=0,de=0,fe,pe,me,he,ge,_e,ve,ye,be=!1;function xe(){if(!C||!v)return;let{input:e,basis:t}=C,n=$(v.data),r=$(t.data),i=$(n?.request),a=$(n?.review),o=$(n?.connection),s=$(r?.request),c=$(r?.connection),l=!!i&&i.attemptId===s?.attemptId,u=!!o&&o.connectionId===c?.connectionId;if(!f)return v.state===`running`||v.reason===`completed`?C.delivery===`rejected`?`past`:`observed`:v.state===`closed`?`past`:`active`;if(e.walletRunId&&e.walletRunId!==$(n?.walletAvailability)?.walletRunId&&e.walletRunId!==n?.acceptedWalletRunId)return`past`;switch(e.action){case`connect`:if(v.state!==`ready`&&o)return`observed`;if(n?.walletAvailability&&$(n.walletAvailability)?.status===`available`&&Array.isArray(n.connections)&&n.connections.some(e=>$(e)?.status===`connected`))return`past`;break;case`prepare_review`:if(typeof a?.reviewRevision==`number`&&typeof e.reviewRevision==`number`&&a.reviewRevision>e.reviewRevision)return a.account===e.account?`observed`:`past`;break;case`request_signature`:if(i?.account===e.account&&i?.reviewRevision===e.reviewRevision)return`observed`;if(typeof a?.reviewRevision==`number`&&typeof e.reviewRevision==`number`&&a.reviewRevision>e.reviewRevision||!i&&a&&a.reviewRevision===e.reviewRevision&&a.account===e.account&&a.status===`refresh_required`&&$(a.state)?.refreshReason===`review_evidence_stale`&&Array.isArray(n?.allowedActions)&&n.allowedActions.includes(`prepare_review`))return`past`;break;case`cancel`:if(v.reason===`cancelled`)return`observed`;break;case`disconnect`:if(o&&o.connectionId===e.connectionId&&(o.pendingAction===`disconnect`||v.state!==`ready`&&o.status===`disconnected`))return`observed`;break;case`use_account`:if(v.reason===`completed`&&n?.activeAccount===e.account&&o?.connectionId===e.connectionId)return`observed`;break;case`stop_connection`:if(u&&o?.status===`stopped`)return`observed`;if(u&&o?.status!==`awaiting_approval`)return`past`;break;case`stop_waiting`:if(l&&(i?.requestStatus===`stopped`||n?.observationStopped===!0))return`observed`;if(l&&[`completed`,`request_failed`,`outcome_unknown`].includes(String(i?.requestStatus)))return`past`;break;case`read_result`:if(l&&(n?.observe===!0||i?.requestStatus===`completed`))return`observed`;if(l&&[`stopped`,`request_failed`].includes(String(i?.requestStatus)))return`past`;break}return Se()||typeof n?.actionRemainingMs==`number`&&n.actionRemainingMs<=0||[`connect`,`disconnect`,`use_account`,`cancel`,`prepare_review`,`request_signature`].includes(String(e.action))&&(v.state!==`ready`||a?.status===`expired`)?`past`:`active`}function Se(){let e=qC.safeParse(C?.input);if(!e.success||e.data.action!==`disconnect`&&e.data.action!==`use_account`)return!1;let t=e.data,n=YC.safeParse(v?.data);if(!n.success)return!1;let r=n.data.connections.find(e=>e.connectionId===t.connectionId);return r?t.action===`disconnect`?n.data.walletAvailability.status===`available`&&!r.pendingAction&&!n.data.manageableConnectionIds.includes(t.connectionId)&&[`disconnected`,`failed`,`rejected`,`stopped`,`expired`].includes(r.status):[`disconnected`,`failed`,`rejected`,`stopped`,`expired`].includes(r.status)||t.action===`use_account`&&r.status===`connected`&&!r.accounts.includes(t.account):!1}function Ce(){if(!C)return;let e=xe();e&&C.disposition!==`observed`&&(e!==`active`||C.disposition===`active`)&&(C.disposition=e),C.disposition===`observed`&&(C.retryRequired=!1)}function E(){let e=JC.safeParse($(v?.data)?.automaticAction);return C?.retryRequired&&e.success&&C.input.action===e.data.action?e.data:void 0}function we(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`,use_account:`account selection`};return f?t[String(e.input.action)]??`request`:`data request`}function D(e){if(e!==`past`||!C)return;let t=we(C),n=C.input.action===`read_result`&&$($(v?.data)?.request)?.requestStatus===`outcome_unknown`?` To check this transaction again, ask to open its result in chat.`:``;return`Message from an earlier ${t}: “${C.message}”${n}`}let Te,Ee;function De(){let t=$(v?.data),n=p?$(t?.download):void 0,r=Array.isArray(n?.allowedFileActions)?n.allowedFileActions:[],i=[...Array.isArray(t?.allowedActions)?t.allowedActions:[],...r.filter(e=>e===`settings_report_download`||Te===void 0||Date.now()<Te)],a=e===`review`&&t?.mode===`review`&&!t.request&&!!h&&v?.state===`ready`,o=a&&fe!==void 0&&Date.now()>=fe,s=document.visibilityState!==`hidden`,c=d.signal.aborted||x.status===`rejected`,l=x.status===`confirmed`,u=C?.disposition,_=u===`active`,y=C?.retryRequired===!0,te=C?.input.action===`request_signature`&&u===`active`,b=ce===`paused`,re=_e?.pending?.()===!0,ie=_e?.displayRecovery?.(),ue=l&&!c&&!oe&&!re&&!o&&!!h,pe=ue&&!w&&!ee&&(!m||!(T&&(_||y||b))),me=JC.safeParse(t?.automaticAction),he=p?$(n?.localSave):void 0,ge=!!v&&(m?t?.observe===!0||he?.status===`saving`:v.state===`running`),ve=!!g&&ne&&!c&&!T&&s&&(le===`explicit`||x.status!==`read_failed`&&(le===`background`||x.status===`needed`&&x.automatic)),ye=s&&ue&&!S&&!T&&!le&&!w&&!y&&!te&&!b&&f&&me.success&&i.includes(me.data.action)?me.data:void 0,be=$(t?.restoreCheck),xe=p&&ue&&v?.state===`ready`&&!w&&!ee&&!t?.result&&t?.observe!==!0&&(be?.status===`cannot_restore`&&[`operation_busy`,`wallet_request_unsettled`].includes(String(be.reason))||!i.includes(`settings_select`)||!i.includes(`settings_download_backup`)||t?.phase===`prepared`&&!i.includes(`settings_confirm`)||t?.phase===`draft`&&$(t.draft)?.kind!==void 0&&$(t.draft)?.kind!==`import_local_data`&&!i.includes(`settings_prepare`)),Se;!c&&g&&(x.status===`read_failed`||S||x.status===`unconfirmed`?Se=`read`:x.status===`needed`?x.automatic||(Se=`read`):oe||ie||p&&[`pending`,`failed`].includes(String(t?.temporaryFileCleanup))||he?.status===`saving`||he?.status===`needs_consent`&&!i.includes(`settings_store_backup`)||he?.status===`failed`&&he.failure===`not_published`&&!n?.endReason&&!i.includes(`settings_store_backup`)||xe?Se=`read`:h?$(t?.progress)?.status===`unavailable`||$(t?.walletAvailability)?.status===`initializing`&&$(t?.walletAvailability)?.stage===`state_sync`?Se=`read`:!b&&E()?Se=`retry`:_&&!ge&&!(b&&i.length>0)&&!(C?.input.action===`prepare_review`&&i.includes(`prepare_review`)&&t?.automaticAction===void 0)&&f&&(Se=`read`):(v?.state!==`closed`||oe)&&(Se=`read`));let Ce=f?t?.actionRemainingMs:v?.inputRemainingMs;Se===`retry`&&o&&(Se=`read`);let Ee=f?t?.nextStateReadAfterMs:p&&Te!==void 0?Math.max(0,Te-de):void 0,De=[(f?i.length>0:v?.state===`ready`)?Ce:void 0,Ee].filter(e=>typeof e==`number`&&Number.isFinite(e)&&e>0),Oe=!c&&!!h&&s&&!ae&&!S&&x.status!==`read_failed`,ke=$(t?.review),Ae=a&&!c&&!S&&!oe&&!_&&!y&&!b&&x.status!==`read_failed`&&(re||w?.input.action===`prepare_review`||ke?.preparing===!0||me.success&&me.data.action===`prepare_review`||x.status===`needed`&&ke?.status===`ready_for_wallet_review`);return{current:l,inputEnabled:pe,permitted:i,disposition:u,read:ve,auto:ye,recover:Se,paused:b,partialDisplayFailure:ie,settingsInputBlocked:xe,reviewUpdatePending:Ae,reviewCommandDeliveryFailed:_&&C?.input.action===`prepare_review`,reviewHint:o?void 0:Ae?re||ke?.preparing||w?.input.action===`prepare_review`?`Updating review…`:`Checking status…`:a&&$(ke?.state)?.refreshReason===`review_evidence_stale`?`Review details are out of date.`:void 0,errors:[x.status===`rejected`?x.message:x.status===`read_failed`?`This card's status could not be checked. Reported message: “${x.message}”`:void 0,S&&x.status!==`rejected`?`This card could not be opened. Reported message: “${S}”`:void 0,_&&C?`Message for this ${we(C)}: “${C.message}”`:void 0,oe,ie?.message],note:[se,D(u)].filter(Boolean).join(` `),expiryAt:Oe&&l&&De.length?de+Math.min(...De):void 0,poll:Oe&&(ge||x.status===`needed`&&!x.automatic),lifetimeAt:!c&&s&&a?fe:void 0}}function Oe(e){return e.recover===`retry`?C?.input.action===`connect`?`Retry connection`:`Retry review`:e.recover===`read`?`Check status`:void 0}function ke(e){if(d.signal.aborted)return``;let n=e.errors.some(Boolean)||e.recover!==void 0||!!v&&!h&&v.state!==`closed`||v?.state===`closed`&&v.reason!==`completed`,r=e.errors.some(Boolean)||x.status!==`confirmed`||e.recover===`retry`||e.settingsInputBlocked;if(n&&r&&x.status!==`rejected`){if(T||e.read)return`Checking status…`;let t=Oe(e);if(t)return t===`Check status`?oe||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.`;if(Ae(e)&&_e?.selectionHint)return _e.selectionHint}return t.guidance?.(v,{confirmed:e.current,readOnly:!h,recoveryNeeded:n,visibleConfirmation:_e?.visibleConfirmation?.(),commandPending:m&&w&&e.current&&!e.errors.some(Boolean)&&(w.phase===`confirming`||v?.state===`ready`&&!$(v.data)?.runtimeRecovery&&!$(v.data)?.request&&!$($(v.data)?.review)?.preparing)?{phase:w.phase,action:String(w.input.action)}:void 0,approvalUnresolved:C?.input.action===`request_signature`&&e.disposition===`active`||w?.input.action===`request_signature`,automaticPaused:e.paused})??``}function Ae(e=De()){return e.inputEnabled&&v?.state===`ready`&&be}function je(e,t=De()){return m&&t.inputEnabled&&(e?t.permitted.includes(e.action):t.permitted.length>0)}function Me(e){let t=De();return p&&ee&&t.current&&!!h&&!w&&!T&&!oe&&!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)}function Ne(e){let u=$(v?.data),f=s.querySelector(`.review-action-feedback`),g=s.querySelector(`.review-primary-action`);if(g&&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=g?`ui-note`:`ui-error`,v?(r.textContent=t.titleFor?.(v)??t.title,i.textContent=x.status===`rejected`?`Card unavailable`:!e.current&&v.state===`ready`?g?``:!d.signal.aborted&&(T||e.read)?`Checking whether actions are available in this card…`:`Actions are unavailable until this card's status is checked.`:!h&&v.state!==`closed`?`View only.`:m?$(u?.progress)?.status===`unavailable`?`Current progress is unavailable. The last recorded state is shown.`:!u?.request&&v.state===`closed`&&[`expired`,`server_restarted`,`cancelled`].includes(v.reason??``)?`This card no longer accepts actions.`:``:v.state===`running`?`Reading the requested data…`:v.reason===`completed`?``:v.error??(v.reason===`expired`?`The time to make a selection has ended.`:v.reason===`server_restarted`?`This request ended when Sui MCP restarted.`:``)):i.textContent=ae?``:x.status===`read_failed`?`Card status unavailable`:S||x.status===`rejected`?`Card unavailable`:`Opening card…`,i.hidden=!i.textContent,a.textContent=[...new Set(e.errors.filter(Boolean))].join(` `),a.hidden=!a.textContent;let _=s.querySelector(`.review-status`);_&&(_.hidden=!!g&&(e.reviewUpdatePending||!!a.textContent));let y=s.querySelector(`.review-material-status`);if(y&&(y.textContent=y.dataset.previous===`true`||!e.current||e.reviewUpdatePending?y.dataset.previousLabel??``:y.dataset.currentLabel??``),o.textContent=[e.note,ke(e)].filter(Boolean).join(` `),o.hidden=!o.textContent,be)for(let t of s.querySelectorAll(`input, button, select`))(!m||t.tagName!==`BUTTON`||t.dataset.cardAction!==void 0)&&(t.disabled=m?!je(void 0,e):!Ae(e));if(m)for(let t of s.querySelectorAll(`[data-card-action]`))t.disabled=!je({action:t.dataset.cardAction},e);if(p)for(let t of s.querySelectorAll(`[data-settings-file-action]`))t.disabled=t.dataset.settingsLocalBlocked===`true`||!(ee?Me({action:t.dataset.cardAction}):je({action:t.dataset.cardAction},e));g&&(e.reviewUpdatePending||g.dataset.cardAction===`request_signature`&&e.reviewCommandDeliveryFailed||g.dataset.cardAction===void 0)&&(g.disabled=!0),ge&&(ge.disabled=!!w||!!T)}function Pe(e){try{e?.()}catch{oe=`The card display could not be closed cleanly. Its stored information is unchanged.`}}function Fe(e){if(!v||d.signal.aborted)return;if(v.state===`ready`&&x.status!==`confirmed`){if(p&&_e?.update)try{_e.update(v,{automaticPaused:ce===`paused`,settings:Ye,settingsCommandProgress:void 0,onDisplayChange:()=>O()})}catch{oe=`This card could not be displayed. Its stored information is unchanged.`}return}if(v.state===`running`&&!m){oe=void 0;return}let n=m?{...$(v.data),actionRemainingMs:void 0,nextStateReadAfterMs:void 0,...p&&$(v.data)?.download?{download:{...$($(v.data)?.download),remainingMs:void 0}}:{}}:void 0,r=p&&w?.phase===`sending`&&x.status===`confirmed`?Bw(w.basis,v,w.input):void 0,i=`${ce===`paused`}:${JSON.stringify(r)}:${v.revision}:${h!==void 0}:${y!==void 0}:${b!==void 0}:${JSON.stringify(n)}`;if(i===ve||i===ye&&!e)return;ye=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:ce===`paused`,onDisplayChange:()=>O(),...p?{settings:Ye,settingsCommandProgress:r}:{}};if(_e?.update?.(v,e)){ve=i,oe=void 0;return}if(v.state===`ready`&&h){let n=t.controls(v,e=>{Ke(e)},y,b,e);c=`node`in n?n:{node:n},l=!0}else (m||v.reason===`completed`)&&v.data!==void 0&&(c=t.result(v,y,h?e=>{Ke(e)}:void 0,b,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),Pe(c?.dispose),oe=`This card could not be displayed. Its stored information is unchanged.`;return}let f=_e?.dispose;_e=c,be=l,ve=i,oe=void 0,Pe(f)}function Ie(t,n,r,i,a){if(d.signal.aborted||x.status===`rejected`)return!1;if(t.kind!==e||t.cardId!==g)throw x={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:JC.safeParse(o.automaticAction);if(l&&!l.success)throw Error(`This card could not start the next step.`);if(v&&t.revision<v.revision)return!1;if(_&&[...new Set([...Object.keys(_),...Object.keys(t.input)])].some(e=>JSON.stringify(t.input[e])!==JSON.stringify(_[e])))throw x={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 x={status:`rejected`,message:`The saved result does not match the information requested in this card.`},Error(x.message);!_&&(f||t.state!==`ready`)&&(_={...t.input});let u=r!==`preview`;if((!v||t.revision!==v.revision)&&(y=void 0,b=void 0),v=t,Ce(),u){de=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}`;Ee!==e&&(Ee=e,Te=void 0),Te=Math.min(Te??1/0,de+Math.max(0,t.remainingMs))}else p&&t?.availability===`ended`&&(Te=void 0);h&&e===`review`&&o?.mode===`review`&&!o.request&&typeof o.actionRemainingMs==`number`&&Number.isFinite(o.actionRemainingMs)&&o.actionRemainingMs>=0&&(fe=Math.min(fe??1/0,de+o.actionRemainingMs))}return r===`read`&&(x.status!==`needed`||a>x.afterRead)&&(x={status:`confirmed`},S=void 0),n&&(y=n),b=i,!0}function Le(){pe!==void 0&&clearTimeout(pe),me!==void 0&&clearTimeout(me),he!==void 0&&clearTimeout(he),pe=void 0,me=void 0,he=void 0,l.hidden=!0}function Re(e){let t=Oe(e);ge?.textContent!==t&&(ge?.remove(),ge=void 0,t&&(ge=ey(t,()=>{if(!(T||w||d.signal.aborted))if(De().recover===`retry`){let e=E();e&&Ge(e)}else ze()})));let n=s.querySelector(`.review-primary-action`),r=s.querySelector(`.review-primary-slot`);n&&(n.hidden=!!ge&&!!r),ge&&(ge.disabled=!!T||!!w,r?(ge.classList.add(`review-recovery-action`),r.append(ge)):(ge.classList.remove(`review-recovery-action`),c.append(ge)))}async function ze(){let e=_e,t=e?.displayRecovery?.(),n=await Ve(!0);n?.kind===`accepted`&&v===n.snapshot&&x.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&!oe&&e===_e&&t&&e?.displayRecovery?.()===t&&(t.retry(),O())}function O(e=!1){if(ae){let e=document.createElement(`p`);e.className=`ui-note`,e.textContent=ae,s.replaceChildren(e)}else Fe(e);let t=De();if(Ne(t),Le(),Re(t),d.signal.aborted||x.status===`rejected`)return;t.expiryAt!==void 0&&(me=setTimeout(()=>{Be(),O()},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)he=setTimeout(r,Math.min(1e3,t));else{let e=De();Ne(e),Re(e)}};r()}if(t.poll&&v){let e=de+v.pollAfterMs-Date.now();pe=setTimeout(()=>{Ve(!1)},e>0?e:v.pollAfterMs)}t.read?(le=void 0,He()):t.auto&&(pe=setTimeout(()=>{let e=De().auto;e&&Je(e,`automatic`)},0))}function Be(){x.status!==`rejected`&&x.status!==`read_failed`&&(x={status:`needed`,afterRead:ue,automatic:!0})}function Ve(e){return d.signal.aborted||x.status===`rejected`||!g||!ne?Promise.resolve(void 0):T?T.promise:x.status===`read_failed`&&!e?Promise.resolve(void 0):(le=e?`explicit`:`background`,O(),T?.promise??Promise.resolve(void 0))}function He(){let e=++ue,t=performance.now(),n={id:e,promise:Promise.resolve().then(async()=>{try{let n,r,i;if(h){let e=Kw(await Ue(Lw.read,h));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=`${jw}${encodeURIComponent(g)}`,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=Tw.parse(JSON.parse(t.text));let i=y??te;r=i&&Ww(n,i)?i:void 0}if(d.signal.aborted||x.status===`rejected`)return{kind:`disposed`,id:e};let a=Ie(n,r,`read`,i,e);return te=void 0,!a&&x.status===`needed`&&e>x.afterRead&&(x={...x,automatic:!1}),O(a),a&&x.status===`confirmed`?{kind:`accepted`,snapshot:n,id:e,requestStartedAt:t}:{kind:`ignored`,id:e}}catch(t){return d.signal.aborted?{kind:`disposed`,id:e}:(x.status!==`rejected`&&(x={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(()=>{T===n&&(T=void 0),O()})};T=n,O()}async function Ue(e,t){return Uw(await u.callServerTool({name:e,arguments:t},{signal:d.signal}))}function We(e,t,n){let r=YC.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.allowedActions.includes(`connect`)&&[`connect`,`manage`].includes(String(n.input.intent)):e.action===`prepare_review`||e.action===`request_signature`?i.review?.reviewRevision===e.reviewRevision&&(e.action===`prepare_review`?i.assetReadAccount?.status===`available`?i.assetReadAccount.account:void 0:i.review?.account)===e.account&&XC(i,String(e.account),e.action===`request_signature`).some(t=>t.connectionId===e.connectionId):e.action===`disconnect`?i.manageableConnectionIds.includes(String(e.connectionId))&&i.connections.some(t=>t.connectionId===e.connectionId&&!t.pendingAction):e.action===`use_account`?i.connections.some(t=>t.connectionId===e.connectionId&&t.status===`connected`&&!t.pendingAction&&t.connectionId===i.usableConnectionId&&t.accounts.includes(String(e.account))):i.connection?.connectionId===$(a?.connection)?.connectionId&&i.request?.attemptId===$(a?.request)?.attemptId&&i.review?.reviewRevision===$(a?.review)?.reviewRevision}async function Ge(e){if(!v||T||!je(e))return;let t={input:e,basis:v,phase:`confirming`};w=t;let n=await Ve(!1);w===t&&(w=void 0,n?.kind===`accepted`&&v===n.snapshot&&x.status===`confirmed`&&!d.signal.aborted&&document.visibilityState!==`hidden`&&We(e,t.basis,n.snapshot)&&je(e)?await Je(e):x.status!==`read_failed`&&x.status!==`rejected`&&!d.signal.aborted&&(se=`The card state changed. Check the current selection before trying again.`),O())}async function Ke(e){f&&(C?.disposition===`active`||C?.retryRequired||ce===`paused`)?await Ge(e):await Je(e)}function qe(e,t,n){C={input:e.input,basis:e.basis,message:t,delivery:n,disposition:`active`,retryRequired:e.input.action===`connect`||e.input.action===`prepare_review`},Ce(),[`cancel`,`disconnect`,`stop_connection`,`stop_waiting`,`use_account`].includes(String(e.input.action))&&(ce=`paused`),(m||n===`unknown`)&&Be()}async function Je(e,t=`user`){if(!v||!h||(t===`file`?!Me(e):m?!je(e):!Ae()))return;let n={input:e,basis:v,phase:`sending`};w=n,ce=`continue`,(t===`user`||C?.disposition!==`past`)&&(C=void 0),se=void 0,O();try{let t=Kw(await Ue(m?Lw.act:Lw.submit,{...h,revision:n.basis.revision,input:e}));if(d.signal.aborted||x.status===`rejected`)return;if(!t.snapshot)throw Error(t.error??`The request could not be confirmed.`);t.error&&qe(n,t.error,`rejected`),Ie(t.snapshot,t.display,`action`,t.wallet)}catch(e){!d.signal.aborted&&x.status!==`rejected`&&(qe(n,e instanceof Error?e.message:`The request could not be confirmed.`,`unknown`),C&&(C.data=$(e)?.data))}finally{w===n&&(w=void 0),O()}}let Ye={uploadChunkLimit(e,t){return h?xw({jsonrpc:`2.0`,id:2**53-1,method:`tools/call`,params:{name:Lw.act,arguments:{...h,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 Ve(!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?!Me(e):!je(e))throw Error(`This Settings action is unavailable until its current status has been checked.`);if(await Je(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(C?.input===e){let e=Error(C.message);throw e.data=C.data,e}if(!v)throw Error(`The current Settings status could not be checked.`);return v},setFileTransferActive(e){ee=e,O()},async readFile(e){if(!h||!g||!De().current||d.signal.aborted)throw Error(`Backup read permission is unavailable.`);let t=await Ue(Lw.readSettingsFile,{...h,...e}),n=Iw.parse($(t._meta)?.[Aw]);if(n.cardId!==g||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=$($(v?.data)?.download);if(!h||!De().current||d.signal.aborted||document.visibilityState===`hidden`||r&&(r.currentAttemptId!==n||r.localSave||r.availability!==`available`||Te===void 0||Date.now()>=Te))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 Xe(){if(!(!ne||ie===void 0||re)){re=!0;try{let t=Uw(ie),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?.[Dw];if(r!==void 0){let e=Nw.safeParse(r);if(!e.success)throw Error(`This card cannot accept actions with the access information provided by the app.`);h=e.data}let i=Kw(t);if(i.inputRequired){if(i.inputRequired.kind!==e||h)throw Error(`The app provided inconsistent card input information.`);ae=i.inputRequired.message,O();return}let a=Gw(t),o=[i.snapshot?.cardId,h?.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 x={status:`rejected`,message:`The returned information does not match this card.`},Error(x.message);g=o[0];let s=i.snapshot;s&&(f||s.state!==`ready`)&&(_={...s.input}),te=i.display,s&&h&&Ie(s,i.display,`preview`,i.wallet),Be(),O()}catch(e){if(d.signal.aborted)return;S=e instanceof Error?e.message:`Card data could not be read.`,O()}}}u.ontoolresult=e=>{if(ie===void 0){ie=e,Xe();return}try{let t=Kw(Uw(ie)).snapshot??v,n=Kw(Uw(e)).snapshot;if(t&&n&&(t.cardId!==n.cardId||t.kind!==n.kind))throw Error(`The app returned a different card.`)}catch{x={status:`rejected`,message:`The returned information does not match this card.`},O()}},u.onhostcontextchanged=e=>{e.theme&&(document.documentElement.dataset.theme=e.theme)};let Ze=()=>{document.visibilityState!==`hidden`&&h&&re&&x.status!==`read_failed`?Ve(!1):O()};document.addEventListener?.(`visibilitychange`,Ze),u.onteardown=async()=>{if(d.signal.aborted)return{};d.abort(),w=void 0,document.removeEventListener?.(`visibilitychange`,Ze);let e=_e?.dispose;return _e=void 0,Pe(e),O(),{}},u.connect().then(()=>{d.signal.aborted||(ne=!0,document.documentElement.dataset.theme=u.getHostContext()?.theme??`light`,Xe())}).catch(()=>{d.signal.aborted||(S=`Could not connect this card to the app.`,O())})}var Jw=s(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),Yw=s((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)}})),Xw=s((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}}})),Zw=s(((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})),Qw=s(((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})),$w=s((e=>{var t=Yw().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}})),eT=s((e=>{var t=Yw().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),tT=s((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}})),nT=s((e=>{var t=Xw(),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}}})),rT=s((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]]}})),iT=s((e=>{var t=rT();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}})),aT=s(((e,t)=>{var n=iT();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})),oT=s((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),sT=s((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
3173
+ ]))+`;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)}})),cT=s((e=>{var t=oT(),n=sT();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}}})),lT=s((e=>{var t=Yw(),n=nT(),r=Xw(),i=cT(),a=oT(),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}})),uT=s((e=>{var t=Yw(),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}})),dT=s(((e,t)=>{var n=cT();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})),fT=s(((e,t)=>{var n=cT(),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;for(t=0;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})),pT=s(((e,t)=>{var n=cT();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=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})),mT=s(((e,t)=>{var n=cT(),r=Yw();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;for(t=0;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]+`
3174
+ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),hT=s(((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,ee;!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],ee=a[l]===void 0,(ee||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var h=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(h)}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)})),gT=s((e=>{var t=cT(),n=dT(),r=fT(),i=pT(),a=mT(),o=sT(),s=Yw(),c=hT();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 ee(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 h(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)+`.
3175
+ 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(h(t,null)):t.data&&e.push(h(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=ee(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()))}})),_T=s((e=>{var t=Yw(),n=Xw(),r=Zw(),i=Qw(),a=$w(),o=eT(),s=tT(),c=nT(),l=aT(),u=lT(),d=uT(),f=cT(),p=gT();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 ee(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 h(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 g(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 _(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 v(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 y(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 te(a,e,n)}function te(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),ee=0,h=Array(o),g=Array(o),_=0,v=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;h[e]=v.slice(ee,ee+t),g[e]=m.encode(h[e]),ee+=t,_=Math.max(_,t)}let y=new Uint8Array(i),te=0,b,ne;for(b=0;b<_;b++)for(ne=0;ne<o;ne++)b<h[ne].length&&(y[te++]=h[ne][b]);for(b=0;b<p;b++)for(ne=0;ne<o;ne++)y[te++]=g[ne][b];return y}function b(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(`
3176
3176
  The chosen QR Code version cannot contain this amount of data.
3177
3177
  Minimum version required to store current data is: `+c+`.
3178
- `);let l=y(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),ee(d),h(d,n),_(d,r,0),n>=7&&g(d,n),v(d,l),isNaN(a)&&(a=s.getBestMask(d,_.bind(null,d,r))),s.applyMask(a,d),_(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),b(e,a,i,o)}})),gT=s((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),_T=s((e=>{var t=gT();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),vT=s((e=>{var t=gT();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
3179
- `;return typeof a==`function`&&a(null,p),p}})),yT=u(s((e=>{var t=Kw(),n=hT(),r=_T(),i=vT();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1),bT={account:{name:`Name`,address:`Account address`,balances:`Balances`,noBalances:`No token balances were returned.`,nfts:`NFTs`,noNfts:`No NFTs in the scanned objects.`,noImage:`No image`,objectsTruncated:`Some objects beyond the scanned range are omitted.`},receipt:{success:`Transaction succeeded on Sui`,failure:`Transaction failed on Sui`,sender:`Sender`,account:`Affected account`,object:`Object`,noBalanceChanges:`No balance changes were recorded.`,gasComputation:`Computation cost`,gasStorage:`Storage cost`,gasRebate:`Storage rebate`,gasBudget:`Network fee limit (gas budget)`,netFeeExplanation:`The network fee shown above includes the storage rebate. If it is negative, the rebate exceeds the computation and storage charges.`,estimatedNetFeeExplanation:`The estimated network fee shown above includes the storage rebate. If it is negative, the rebate exceeds the estimated computation and storage charges.`,gasLimitExplanation:`The gas budget limits network fee spending. It is not an estimate of the amount charged.`,gasPrice:`Gas price`,gasPayment:`Gas payment object`,graph:`Transaction graph`,graphTip:`A diagram of this transaction's programmable transaction block (PTB), derived from public on-chain data. It is a diagnostic view only, not transaction input, signing, or a safety verdict.`,graphReviewTip:`A diagram of the transaction prepared for this review and simulation. It shows what is being reviewed, not an actual result, permission to sign, or a guarantee of safety.`,graphRendering:`Rendering the transaction graph…`,graphFailed:`The transaction graph could not be rendered`,graphZoomIn:`Zoom in`,graphZoomOut:`Zoom out`,graphCenter:`Center`,graphShowAddresses:`Show full addresses`,graphShowNames:`Show readable labels`,moveCalls:`Move calls`,noMoveCalls:`No Move calls were recorded.`,inputs:`Inputs`,noInputs:`No inputs were recorded.`,inputKinds:{object:`Owned object`,shared_object:`Shared object`,receiving:`Receiving object`,pure:`Pure value`,withdrawal:`Balance withdrawal`,unknown:`Input`},bytes:`bytes`,events:`Events`,noEvents:`No events were recorded.`,objectChanges:`Object changes`,noObjectChanges:`No object changes were recorded.`},chart:{boundaryUsdc:`Prices are in USDC, not USD; dollar parity is not guaranteed.`,boundaryScope:`Historical prices, not live quotes.`,source:`Source: DeepBookV3 Indexer.`,renderedWith:`Rendered with`,library:`TradingView Lightweight Charts`},common:{walletStatusRecovery:`Ask in chat to open Settings, then use Troubleshooting to restart the connection service. This does not confirm removal of a connection in your wallet app.`,mainnet:`Sui mainnet`,retrievedAt:`Data retrieved`}},xT={en:bT};function ST(){try{return(navigator.language||`en`).slice(0,2).toLowerCase()}catch{return`en`}}function CT(e=ST()){return xT[e]??bT}var wT=CT(),TT={awaiting_approval:`Approve the connection in your wallet`,connected:`Wallet connected`,rejected:`Connection declined`,failed:`Wallet connection unavailable`,expired:`Connection expired`,stopped:`Connection request stopped`,disconnected:`Wallet disconnected`};function ET(e,t,n,r){let i=YC.parse(e.data),a=$v(`div`,`workflow-card`),o=ry(),s=!1,c,l=e=>{if(s)return;let t=c?.overview??[...a.children];c=e?{action:e.action,overview:t}:void 0,a.replaceChildren(...e?[e.node]:t),r?.onDisplayChange?.()},u=i.connections.filter(e=>e.status===`connected`),d=i.connections.filter(e=>i.manageableConnectionIds.includes(e.connectionId)),f=i.connection?i.connection.accounts.length?[i.connection]:[]:i.connections.filter(e=>e.status===`connected`||i.manageableConnectionIds.includes(e.connectionId)),p=f.length>1||!!i.connectionConflict,m=i.connections.find(e=>e.connectionId===i.usableConnectionId),ee=i.connections.some(e=>e.status===`awaiting_approval`||e.pendingAction===`disconnect`),h=!i.connection&&i.connections.some(e=>e.status===`awaiting_approval`),g=(e,n)=>{let r=[`connect`,`disconnect`,`use_account`].includes(String(n.action))?{...n,walletRunId:i.walletAvailability.walletRunId}:n,a=ey(e,()=>{s||t?.(r)},[`disconnect`].includes(String(n.action))?`danger`:n.action===`connect`?`primary`:`secondary`);return a.dataset.cardAction=String(n.action),a.disabled=!t,a};if(o.append(iy(`Network`,wT.common.mainnet)),i.runtimeRecovery){let e=i.runtimeRecovery,t=iy(`Wallet service`,`phase`in e?e.phase===`stopping`?`Stopping the wallet connection service…`:i.walletAvailability.status===`available`?`Confirming wallet service recovery…`:i.walletAvailability.message:e.outcome===`available`?`Wallet service restarted.`:e.outcome===`superseded`?`A newer wallet service restart replaced this request.`:e.message??`This wallet service restart could not be confirmed.`);return t.setAttribute(`role`,`status`),o.append(t),o.append($v(`p`,`ui-note`,`Restarting the service does not approve a connection, revoke a connection in your wallet, or cancel a submitted transaction.`)),a.append(o),{node:a,dispose:()=>{s=!0}}}let _=iy(i.walletAvailability.status===`available`?`Status`:`Last recorded status`,i.connectionAction===`disconnect`&&i.connection?.status===`failed`?`Disconnection could not be confirmed`:(i.connection?i.connection.pendingAction===`disconnect`:ee&&u.some(e=>e.pendingAction===`disconnect`))?`Disconnecting wallet…`:i.connection?TT[i.connection.status]:i.connectionConflict?`Multiple wallet connections need attention`:h?`Connection approval is pending in another card`:i.connectionReconciliationRequired?`Wallet connection needs attention`:m?`Wallet connected`:i.walletAvailability.status===`available`?f.length?`No usable wallet connection`:`No wallet connected`:u.length?`Wallet connected`:`Connection not confirmed`);_.setAttribute(`role`,`status`),o.append(_),i.walletAvailability.status!==`available`&&(o.append($v(`p`,`ui-note`,i.walletAvailability.message)),i.connection&&!f.length&&o.append(iy(`Last updated`,cy(i.connection.updatedAt)))),i.connection?.reason&&o.append($v(`p`,`ui-note`,i.connection.reason)),i.activeAccount&&u.some(e=>e.accounts.some(e=>e!==i.activeAccount))&&o.append(iy(`Saved default address`,sy(i.activeAccount))),i.connectionConflict&&o.append($v(`p`,`ui-note`,Qb)),t&&i.allowedActions.includes(`connect`)&&e.input.intent===`manage`&&o.append(g(`Connect wallet`,{action:`connect`})),a.append(o);let v=ay(`Details`);i.walletObservation&&v.body.append(iy(`Last service check`,cy(i.walletObservation.observedAt))),i.connection&&!p&&v.body.append(iy(`Connection`,i.connection.connectionId));let y=m?.accounts.map(e=>({connection:m,account:e}))??[],te=i.assetReadAccount;if(t&&i.allowedActions.includes(`use_account`)&&y.some(e=>te?.status!==`available`||e.account!==te.account)){let e=ry(`Address for reads`);if(e.append($v(`p`,`ui-note`,`Choose the default address for reads. Existing transaction reviews keep their original address.`)),y.length===1){let t=y[0];e.append(g(`Use address`,{action:`use_account`,connectionId:t.connection.connectionId,account:t.account}))}else{let n=document.createElement(`form`),r=ny({choices:[{value:``,label:`Select an address`},...y.map(e=>({value:e.account,label:e.account}))]});n.className=`ui-form`,r.required=!0,r.setAttribute(`aria-label`,`Default address for reads`);let a=ey(`Use address`,()=>void 0);a.type=`submit`,a.dataset.cardAction=`use_account`,n.append(ty(`Address`,r),a),n.addEventListener(`submit`,e=>{e.preventDefault();let n=y.find(e=>e.account===r.value);!s&&n&&t?.({action:`use_account`,walletRunId:i.walletAvailability.walletRunId,connectionId:n.connection.connectionId,account:n.account})}),e.append(n)}o.append(e)}for(let n of f){let r=$v(`div`);p&&r.append(iy(`Connection`,n.connectionId)),i.walletAvailability.status===`unavailable`&&r.append(iy(`Last updated`,cy(n.updatedAt))),v.body.append(iy(`Connection expires`,cy(n.expiresAt))),r.append(iy(`Wallet`,n.walletName??`Connected wallet`)),!i.connection&&n.status!==`connected`&&(r.append(iy(`Recorded status`,TT[n.status])),n.reason&&r.append($v(`p`,`ui-note`,n.reason))),!i.connection&&!i.connectionConflict&&i.walletAvailability.status===`available`&&!ee&&n.connectionId!==i.usableConnectionId&&r.append($v(`p`,`ui-note`,`Recorded connection. It is not available for account use.`));for(let e of n.accounts)r.append(iy(`Approved address`,sy(e)));if(t&&i.manageableConnectionIds.includes(n.connectionId)&&i.allowedActions.includes(`disconnect`)){let i=$v(`div`,`card-actions`),a=ey(`Disconnect`,()=>void 0,`secondary`);a.dataset.cardAction=`disconnect`,a.disabled=!t,a.addEventListener(`click`,()=>{if(s)return;let e=ry(`Disconnect wallet?`);e.append(iy(`Wallet`,n.walletName??`Wallet`),iy(`Network`,wT.common.mainnet)),p&&e.append(iy(`Connection`,n.connectionId));for(let t of n.accounts)e.append(iy(`Account`,sy(t)));let t=ey(`Back`,()=>l(),`secondary`),r=$v(`div`,`card-actions`);r.append(g(`Confirm disconnect`,{action:`disconnect`,connectionId:n.connectionId}),t),e.append(r),l({action:`disconnect`,node:e})}),i.append(a),r.append(i),e.input.intent===`disconnect`&&d.length===1&&queueMicrotask(()=>{s||a.click()})}o.append(r)}let b,ne;i.connection?.status===`awaiting_approval`&&i.walletAvailability.status===`available`&&(n&&n.connectionId===i.connection.connectionId?(b=document.createElement(`canvas`),b.className=`workflow-qr`,b.hidden=!0,b.setAttribute(`role`,`img`),b.setAttribute(`aria-label`,`Wallet connection QR code`),ne=$v(`p`,`ui-note workflow-qr-instruction`,`Scan to connect your Sui wallet.`),ne.hidden=!0,o.append(ne,b)):o.append($v(`p`,`ui-note`,`The QR code is not available in this view.`))),t&&i.allowedActions.includes(`stop_connection`)&&o.append(g(`Stop connecting`,{action:`stop_connection`})),v.body.children.length&&o.append(v.details);let re=!1,ie,ae=()=>{s||re||!b||!n||(re=!0,ie=void 0,b.hidden=!0,ne&&(ne.hidden=!0),yT.toCanvas(b,n.pairingUri).then(()=>{s||(re=!1,b.hidden=!1,ne&&(ne.hidden=!1),r?.onDisplayChange?.())},()=>{s||(re=!1,ie={message:`The QR code could not be displayed.`,retry:ae},r?.onDisplayChange?.())}))};return{node:a,mount:ae,displayRecovery:()=>ie,visibleConfirmation:()=>c?.action,dispose:()=>{s=!0,c=void 0}}}Gw(`connect`,{title:`Wallet connection`,guidance(e,t){let n=Rw(t);if(n)return n;let r=YC.safeParse(e?.data);if(!t.confirmed||!r.success)return t.recoveryNeeded?`Ask in chat to check your wallet connection.`:void 0;let i=r.data;if(i.connectionAction===`disconnect`&&i.connection?.status===`failed`)return`Check the connection in your wallet app and remove it there if it is still listed. Disconnection was not confirmed here.`;if(!t.visibleConfirmation&&!i.runtimeRecovery){if(i.connectionAction===`disconnect`&&i.connection?.status===`disconnected`)return i.connectionConflict?`Ask in chat to open wallet connection controls to disconnect another saved connection.`:i.connections.some(e=>e.status===`connected`)?`To manage the remaining connection, ask in chat to open wallet connection controls.`:void 0;if(i.walletAvailability.status===`unavailable`)return wT.common.walletStatusRecovery;if(i.connectionReconciliationRequired)return $b;if(i.connection?.pendingAction===`disconnect`||!i.connection&&i.connections.some(e=>e.pendingAction===`disconnect`))return`If this disconnection is not responding, ask in chat to open Settings, then use Troubleshooting to restart the connection service. Check any retained connection in your wallet app.`;if(i.connectionConflict)return t.readOnly||!i.allowedActions.includes(`disconnect`)?`Ask in chat to open wallet connection controls, then disconnect the connections you no longer need.`:void 0;if(!i.connection&&i.connections.some(e=>e.status===`awaiting_approval`))return`Continue in the wallet connection card you opened first.`;if(i.connection?.status===`awaiting_approval`)return t.readOnly?`You can ask in chat to check this connection request.`:void 0;if(i.manageableConnectionIds.length||i.connections.some(e=>e.status===`connected`||e.pendingAction))return t.recoveryNeeded&&t.readOnly?`Ask in chat to check your wallet connection.`:void 0;if(!(i.automaticAction&&!t.automaticPaused))return i.allowedActions.includes(`connect`)&&e?.input.intent===`manage`&&!t.readOnly?void 0:`Ask in chat to connect your wallet.`}},controls:(e,t,n,r=void 0,i=void 0)=>ET(e,t,r,i),result:(e,t,n,r=void 0,i=void 0)=>ET(e,n,r,i)});</script></body></html>
3178
+ `);let l=y(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),ee(d),h(d,n),_(d,r,0),n>=7&&g(d,n),v(d,l),isNaN(a)&&(a=s.getBestMask(d,_.bind(null,d,r))),s.applyMask(a,d),_(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),b(e,a,i,o)}})),vT=s((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),yT=s((e=>{var t=vT();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),bT=s((e=>{var t=vT();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
3179
+ `;return typeof a==`function`&&a(null,p),p}})),xT=u(s((e=>{var t=Jw(),n=_T(),r=yT(),i=bT();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1),ST={account:{name:`Name`,address:`Account address`,balances:`Balances`,noBalances:`No token balances were returned.`,nfts:`NFTs`,noNfts:`No NFTs in the scanned objects.`,noImage:`No image`,objectsTruncated:`Some objects beyond the scanned range are omitted.`},receipt:{success:`Transaction succeeded on Sui`,failure:`Transaction failed on Sui`,sender:`Sender`,account:`Affected account`,object:`Object`,noBalanceChanges:`No balance changes were recorded.`,gasComputation:`Computation cost`,gasStorage:`Storage cost`,gasRebate:`Storage rebate`,gasBudget:`Network fee limit (gas budget)`,netFeeExplanation:`The network fee shown above includes the storage rebate. If it is negative, the rebate exceeds the computation and storage charges.`,estimatedNetFeeExplanation:`The estimated network fee shown above includes the storage rebate. If it is negative, the rebate exceeds the estimated computation and storage charges.`,gasLimitExplanation:`The gas budget limits network fee spending. It is not an estimate of the amount charged.`,gasPrice:`Gas price`,gasPayment:`Gas payment object`,graph:`Transaction graph`,graphTip:`A diagram of this transaction's programmable transaction block (PTB), derived from public on-chain data. It is a diagnostic view only, not transaction input, signing, or a safety verdict.`,graphReviewTip:`A diagram of the transaction prepared for this review and simulation. It shows what is being reviewed, not an actual result, permission to sign, or a guarantee of safety.`,graphRendering:`Rendering the transaction graph…`,graphFailed:`The transaction graph could not be rendered`,graphZoomIn:`Zoom in`,graphZoomOut:`Zoom out`,graphCenter:`Center`,graphShowAddresses:`Show full addresses`,graphShowNames:`Show readable labels`,moveCalls:`Move calls`,noMoveCalls:`No Move calls were recorded.`,inputs:`Inputs`,noInputs:`No inputs were recorded.`,inputKinds:{object:`Owned object`,shared_object:`Shared object`,receiving:`Receiving object`,pure:`Pure value`,withdrawal:`Balance withdrawal`,unknown:`Input`},bytes:`bytes`,events:`Events`,noEvents:`No events were recorded.`,objectChanges:`Object changes`,noObjectChanges:`No object changes were recorded.`},chart:{boundaryUsdc:`Prices are in USDC, not USD; dollar parity is not guaranteed.`,boundaryScope:`Historical prices, not live quotes.`,source:`Source: DeepBookV3 Indexer.`,renderedWith:`Rendered with`,library:`TradingView Lightweight Charts`},common:{walletStatusRecovery:`Ask in chat to open Settings, then use Troubleshooting to restart the connection service. This does not confirm removal of a connection in your wallet app.`,mainnet:`Sui mainnet`,retrievedAt:`Data retrieved`}},CT={en:ST};function wT(){try{return(navigator.language||`en`).slice(0,2).toLowerCase()}catch{return`en`}}function TT(e=wT()){return CT[e]??ST}var ET=TT(),DT={awaiting_approval:`Approve the connection in your wallet`,connected:`Wallet connected`,rejected:`Connection declined`,failed:`Wallet connection unavailable`,expired:`Connection expired`,stopped:`Connection request stopped`,disconnected:`Wallet disconnected`};function OT(e,t,n,r){let i=YC.parse(e.data),a=$v(`div`,`workflow-card`),o=ry(),s=!1,c,l=e=>{if(s)return;let t=c?.overview??[...a.children];c=e?{action:e.action,overview:t}:void 0,a.replaceChildren(...e?[e.node]:t),r?.onDisplayChange?.()},u=i.connections.filter(e=>e.status===`connected`),d=i.connections.filter(e=>i.manageableConnectionIds.includes(e.connectionId)),f=i.connection?i.connection.accounts.length?[i.connection]:[]:i.connections.filter(e=>e.status===`connected`||i.manageableConnectionIds.includes(e.connectionId)),p=f.length>1||!!i.connectionConflict,m=i.connections.find(e=>e.connectionId===i.usableConnectionId),ee=i.connections.some(e=>e.status===`awaiting_approval`||e.pendingAction===`disconnect`),h=!i.connection&&i.connections.some(e=>e.status===`awaiting_approval`),g=(e,n)=>{let r=[`connect`,`disconnect`,`use_account`].includes(String(n.action))?{...n,walletRunId:i.walletAvailability.walletRunId}:n,a=ey(e,()=>{s||t?.(r)},[`disconnect`].includes(String(n.action))?`danger`:n.action===`connect`?`primary`:`secondary`);return a.dataset.cardAction=String(n.action),a.disabled=!t,a};if(o.append(iy(`Network`,ET.common.mainnet)),i.runtimeRecovery){let e=i.runtimeRecovery,t=iy(`Wallet service`,`phase`in e?e.phase===`stopping`?`Stopping the wallet connection service…`:i.walletAvailability.status===`available`?`Confirming wallet service recovery…`:i.walletAvailability.message:e.outcome===`available`?`Wallet service restarted.`:e.outcome===`superseded`?`A newer wallet service restart replaced this request.`:e.message??`This wallet service restart could not be confirmed.`);return t.setAttribute(`role`,`status`),o.append(t),o.append($v(`p`,`ui-note`,`Restarting the service does not approve a connection, revoke a connection in your wallet, or cancel a submitted transaction.`)),a.append(o),{node:a,dispose:()=>{s=!0}}}let _=iy(i.walletAvailability.status===`available`?`Status`:`Last recorded status`,i.connectionAction===`disconnect`&&i.connection?.status===`failed`?`Disconnection could not be confirmed`:(i.connection?i.connection.pendingAction===`disconnect`:ee&&u.some(e=>e.pendingAction===`disconnect`))?`Disconnecting wallet…`:i.connection?DT[i.connection.status]:i.connectionConflict?`Multiple wallet connections need attention`:h?`Connection approval is pending in another card`:i.connectionReconciliationRequired?`Wallet connection needs attention`:m?`Wallet connected`:i.walletAvailability.status===`available`?f.length?`No usable wallet connection`:`No wallet connected`:u.length?`Wallet connected`:`Connection not confirmed`);_.setAttribute(`role`,`status`),o.append(_),i.walletAvailability.status!==`available`&&(o.append($v(`p`,`ui-note`,i.walletAvailability.message)),i.connection&&!f.length&&o.append(iy(`Last updated`,cy(i.connection.updatedAt)))),i.connection?.reason&&o.append($v(`p`,`ui-note`,i.connection.reason)),i.activeAccount&&u.some(e=>e.accounts.some(e=>e!==i.activeAccount))&&o.append(iy(`Saved default address`,sy(i.activeAccount))),i.connectionConflict&&o.append($v(`p`,`ui-note`,Qb)),t&&i.allowedActions.includes(`connect`)&&e.input.intent===`manage`&&o.append(g(`Connect wallet`,{action:`connect`})),a.append(o);let v=ay(`Details`);i.walletObservation&&v.body.append(iy(`Last service check`,cy(i.walletObservation.observedAt))),i.connection&&!p&&v.body.append(iy(`Connection`,i.connection.connectionId));let y=m?.accounts.map(e=>({connection:m,account:e}))??[],te=i.assetReadAccount;if(t&&i.allowedActions.includes(`use_account`)&&y.some(e=>te?.status!==`available`||e.account!==te.account)){let e=ry(`Address for reads`);if(e.append($v(`p`,`ui-note`,`Choose the default address for reads. Existing transaction reviews keep their original address.`)),y.length===1){let t=y[0];e.append(g(`Use address`,{action:`use_account`,connectionId:t.connection.connectionId,account:t.account}))}else{let n=document.createElement(`form`),r=ny({choices:[{value:``,label:`Select an address`},...y.map(e=>({value:e.account,label:e.account}))]});n.className=`ui-form`,r.required=!0,r.setAttribute(`aria-label`,`Default address for reads`);let a=ey(`Use address`,()=>void 0);a.type=`submit`,a.dataset.cardAction=`use_account`,n.append(ty(`Address`,r),a),n.addEventListener(`submit`,e=>{e.preventDefault();let n=y.find(e=>e.account===r.value);!s&&n&&t?.({action:`use_account`,walletRunId:i.walletAvailability.walletRunId,connectionId:n.connection.connectionId,account:n.account})}),e.append(n)}o.append(e)}for(let n of f){let r=$v(`div`);p&&r.append(iy(`Connection`,n.connectionId)),i.walletAvailability.status===`unavailable`&&r.append(iy(`Last updated`,cy(n.updatedAt))),v.body.append(iy(`Connection expires`,cy(n.expiresAt))),r.append(iy(`Wallet`,n.walletName??`Connected wallet`)),!i.connection&&n.status!==`connected`&&(r.append(iy(`Recorded status`,DT[n.status])),n.reason&&r.append($v(`p`,`ui-note`,n.reason))),!i.connection&&!i.connectionConflict&&i.walletAvailability.status===`available`&&!ee&&n.connectionId!==i.usableConnectionId&&r.append($v(`p`,`ui-note`,`Recorded connection. It is not available for account use.`));for(let e of n.accounts)r.append(iy(`Approved address`,sy(e)));if(t&&i.manageableConnectionIds.includes(n.connectionId)&&i.allowedActions.includes(`disconnect`)){let i=$v(`div`,`card-actions`),a=ey(`Disconnect`,()=>void 0,`secondary`);a.dataset.cardAction=`disconnect`,a.disabled=!t,a.addEventListener(`click`,()=>{if(s)return;let e=ry(`Disconnect wallet?`);e.append(iy(`Wallet`,n.walletName??`Wallet`),iy(`Network`,ET.common.mainnet)),p&&e.append(iy(`Connection`,n.connectionId));for(let t of n.accounts)e.append(iy(`Account`,sy(t)));let t=ey(`Back`,()=>l(),`secondary`),r=$v(`div`,`card-actions`);r.append(g(`Confirm disconnect`,{action:`disconnect`,connectionId:n.connectionId}),t),e.append(r),l({action:`disconnect`,node:e})}),i.append(a),r.append(i),e.input.intent===`disconnect`&&d.length===1&&queueMicrotask(()=>{s||a.click()})}o.append(r)}let b,ne;i.connection?.status===`awaiting_approval`&&i.walletAvailability.status===`available`&&(n&&n.connectionId===i.connection.connectionId?(b=document.createElement(`canvas`),b.className=`workflow-qr`,b.hidden=!0,b.setAttribute(`role`,`img`),b.setAttribute(`aria-label`,`Wallet connection QR code`),ne=$v(`p`,`ui-note workflow-qr-instruction`,`Scan to connect your Sui wallet.`),ne.hidden=!0,o.append(ne,b)):o.append($v(`p`,`ui-note`,`The QR code is not available in this view.`))),t&&i.allowedActions.includes(`stop_connection`)&&o.append(g(`Stop connecting`,{action:`stop_connection`})),v.body.children.length&&o.append(v.details);let re=!1,ie,ae=()=>{s||re||!b||!n||(re=!0,ie=void 0,b.hidden=!0,ne&&(ne.hidden=!0),xT.toCanvas(b,n.pairingUri).then(()=>{s||(re=!1,b.hidden=!1,ne&&(ne.hidden=!1),r?.onDisplayChange?.())},()=>{s||(re=!1,ie={message:`The QR code could not be displayed.`,retry:ae},r?.onDisplayChange?.())}))};return{node:a,mount:ae,displayRecovery:()=>ie,visibleConfirmation:()=>c?.action,dispose:()=>{s=!0,c=void 0}}}qw(`connect`,{title:`Wallet connection`,guidance(e,t){let n=Rw(t);if(n)return n;let r=YC.safeParse(e?.data);if(!t.confirmed||!r.success)return t.recoveryNeeded?`Ask in chat to check your wallet connection.`:void 0;let i=r.data;if(i.connectionAction===`disconnect`&&i.connection?.status===`failed`)return`Check the connection in your wallet app and remove it there if it is still listed. Disconnection was not confirmed here.`;if(!t.visibleConfirmation&&!i.runtimeRecovery){if(i.connectionAction===`disconnect`&&i.connection?.status===`disconnected`)return i.connectionConflict?`Ask in chat to open wallet connection controls to disconnect another saved connection.`:i.connections.some(e=>e.status===`connected`)?`To manage the remaining connection, ask in chat to open wallet connection controls.`:void 0;if(i.walletAvailability.status===`unavailable`)return ET.common.walletStatusRecovery;if(i.connectionReconciliationRequired)return $b;if(i.connection?.pendingAction===`disconnect`||!i.connection&&i.connections.some(e=>e.pendingAction===`disconnect`))return`If this disconnection is not responding, ask in chat to open Settings, then use Troubleshooting to restart the connection service. Check any retained connection in your wallet app.`;if(i.connectionConflict)return t.readOnly||!i.allowedActions.includes(`disconnect`)?`Ask in chat to open wallet connection controls, then disconnect the connections you no longer need.`:void 0;if(!i.connection&&i.connections.some(e=>e.status===`awaiting_approval`))return`Continue in the wallet connection card you opened first.`;if(i.connection?.status===`awaiting_approval`)return t.readOnly?`You can ask in chat to check this connection request.`:void 0;if(i.manageableConnectionIds.length||i.connections.some(e=>e.status===`connected`||e.pendingAction))return t.recoveryNeeded&&t.readOnly?`Ask in chat to check your wallet connection.`:void 0;if(!(i.automaticAction&&!t.automaticPaused))return i.allowedActions.includes(`connect`)&&e?.input.intent===`manage`&&!t.readOnly?void 0:`Ask in chat to connect your wallet.`}},controls:(e,t,n,r=void 0,i=void 0)=>OT(e,t,r,i),result:(e,t,n,r=void 0,i=void 0)=>OT(e,n,r,i)});</script></body></html>