@ixo/editor 6.33.0 → 6.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BidConfig-YLGSEIOS.js +154 -0
- package/dist/BidConfig-YLGSEIOS.js.map +1 -0
- package/dist/BidFlowDetail-U2SX5M7F.js +365 -0
- package/dist/BidFlowDetail-U2SX5M7F.js.map +1 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
- package/dist/ClaimConfig-3HKPGK55.js +200 -0
- package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
- package/dist/ClaimFlowDetail-I4OQSHAB.js +641 -0
- package/dist/ClaimFlowDetail-I4OQSHAB.js.map +1 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
- package/dist/CollectionLifecycleFlowDetail-LQHKB227.js +647 -0
- package/dist/CollectionLifecycleFlowDetail-LQHKB227.js.map +1 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
- package/dist/CollectionUsersFlowDetail-LHXVCCPQ.js +1276 -0
- package/dist/CollectionUsersFlowDetail-LHXVCCPQ.js.map +1 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
- package/dist/DomainSignConfig-XFIXROVK.js +47 -0
- package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
- package/dist/EvaluateBidFlowDetail-2EXGNBYC.js +564 -0
- package/dist/EvaluateBidFlowDetail-2EXGNBYC.js.map +1 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
- package/dist/EvaluateClaimFlowDetail-QKHJVEDE.js +2237 -0
- package/dist/EvaluateClaimFlowDetail-QKHJVEDE.js.map +1 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
- package/dist/HarvestConfig-AIGOGBFR.js +56 -0
- package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
- package/dist/IdentityCreateFlowDetail-4TE6UCEB.js +83 -0
- package/dist/IdentityCreateFlowDetail-4TE6UCEB.js.map +1 -0
- package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
- package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
- package/dist/IidCreateFlowDetail-HPVZAHVY.js +57 -0
- package/dist/IidCreateFlowDetail-HPVZAHVY.js.map +1 -0
- package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
- package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
- package/dist/KycVerifyFlowDetail-FEU43HML.js +421 -0
- package/dist/KycVerifyFlowDetail-FEU43HML.js.map +1 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
- package/dist/MatrixDmConfig-NBII27CS.js +120 -0
- package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
- package/dist/OracleConfig-R7TDTTKN.js +56 -0
- package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
- package/dist/OracleConfigureOracleFlowDetail-MIBXUEKC.js +255 -0
- package/dist/OracleConfigureOracleFlowDetail-MIBXUEKC.js.map +1 -0
- package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
- package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
- package/dist/OraclePromptConfig-YBRESISH.js +39 -0
- package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-HQU3UKEB.js +220 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-HQU3UKEB.js.map +1 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
- package/dist/OracleStoreSecretsFlowDetail-5RXWQ3KA.js +197 -0
- package/dist/OracleStoreSecretsFlowDetail-5RXWQ3KA.js.map +1 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
- package/dist/ProposalCreateFlowDetail-2FCRCNYV.js +235 -0
- package/dist/ProposalCreateFlowDetail-2FCRCNYV.js.map +1 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
- package/dist/RetireConfig-MV37WWZ6.js +59 -0
- package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
- package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
- package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
- package/dist/action-manifest.json +2091 -393
- package/dist/chunk-2GAYKKTL.js +9 -0
- package/dist/chunk-2GAYKKTL.js.map +1 -0
- package/dist/chunk-3TUYY4HK.js +20 -0
- package/dist/chunk-3TUYY4HK.js.map +1 -0
- package/dist/chunk-4DGCCXD6.js +710 -0
- package/dist/chunk-4DGCCXD6.js.map +1 -0
- package/dist/chunk-4NAFQF6V.js +11 -0
- package/dist/chunk-4NAFQF6V.js.map +1 -0
- package/dist/chunk-4PONO4US.js +799 -0
- package/dist/chunk-4PONO4US.js.map +1 -0
- package/dist/chunk-4TMOIK5M.js +21 -0
- package/dist/chunk-4TMOIK5M.js.map +1 -0
- package/dist/chunk-5E6Z6JJN.js +4456 -0
- package/dist/chunk-5E6Z6JJN.js.map +1 -0
- package/dist/chunk-5IH3VC5I.js +102 -0
- package/dist/chunk-5IH3VC5I.js.map +1 -0
- package/dist/chunk-5NTKDOP6.js +89 -0
- package/dist/chunk-5NTKDOP6.js.map +1 -0
- package/dist/chunk-5O2SFRGU.js +18 -0
- package/dist/chunk-5O2SFRGU.js.map +1 -0
- package/dist/chunk-632JLECF.js +55 -0
- package/dist/chunk-632JLECF.js.map +1 -0
- package/dist/chunk-676HDB7K.js +95 -0
- package/dist/chunk-676HDB7K.js.map +1 -0
- package/dist/chunk-6ESTNTSH.js +223 -0
- package/dist/chunk-6ESTNTSH.js.map +1 -0
- package/dist/chunk-6GKJR52N.js +15 -0
- package/dist/chunk-6GKJR52N.js.map +1 -0
- package/dist/chunk-6L4ZIKYU.js +23 -0
- package/dist/chunk-6L4ZIKYU.js.map +1 -0
- package/dist/chunk-76YX5R4L.js +11 -0
- package/dist/chunk-76YX5R4L.js.map +1 -0
- package/dist/chunk-7J3GFMN3.js +32 -0
- package/dist/chunk-7J3GFMN3.js.map +1 -0
- package/dist/chunk-7LSARC2G.js +102 -0
- package/dist/chunk-7LSARC2G.js.map +1 -0
- package/dist/chunk-7W7UUUIE.js +609 -0
- package/dist/chunk-7W7UUUIE.js.map +1 -0
- package/dist/chunk-7ZLW7H37.js +21 -0
- package/dist/chunk-7ZLW7H37.js.map +1 -0
- package/dist/chunk-AAZHI22G.js +18 -0
- package/dist/chunk-AAZHI22G.js.map +1 -0
- package/dist/chunk-ACNE455I.js +76 -0
- package/dist/chunk-ACNE455I.js.map +1 -0
- package/dist/chunk-BKLSSLPZ.js +27 -0
- package/dist/chunk-BKLSSLPZ.js.map +1 -0
- package/dist/chunk-BZ7UPUTY.js +417 -0
- package/dist/chunk-BZ7UPUTY.js.map +1 -0
- package/dist/chunk-CGFAICUE.js +28 -0
- package/dist/chunk-CGFAICUE.js.map +1 -0
- package/dist/chunk-CMCEWQ3C.js +19 -0
- package/dist/chunk-CMCEWQ3C.js.map +1 -0
- package/dist/chunk-CP4UV436.js +41 -0
- package/dist/chunk-CP4UV436.js.map +1 -0
- package/dist/chunk-DIQRZP7Z.js +51 -0
- package/dist/chunk-DIQRZP7Z.js.map +1 -0
- package/dist/chunk-EBFFDDAS.js +13 -0
- package/dist/chunk-EBFFDDAS.js.map +1 -0
- package/dist/chunk-EGVS23DR.js +85 -0
- package/dist/chunk-EGVS23DR.js.map +1 -0
- package/dist/chunk-EKBQ7K4N.js +15 -0
- package/dist/chunk-EKBQ7K4N.js.map +1 -0
- package/dist/chunk-EKQCZRAN.js +24 -0
- package/dist/chunk-EKQCZRAN.js.map +1 -0
- package/dist/chunk-EYKZIZ5J.js +48 -0
- package/dist/chunk-EYKZIZ5J.js.map +1 -0
- package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
- package/dist/chunk-F4PTFXZH.js.map +1 -0
- package/dist/chunk-F5GTFCYV.js +3333 -0
- package/dist/chunk-F5GTFCYV.js.map +1 -0
- package/dist/chunk-FFYZXA75.js +58 -0
- package/dist/chunk-FFYZXA75.js.map +1 -0
- package/dist/chunk-GFGDHPZ2.js +22 -0
- package/dist/chunk-GFGDHPZ2.js.map +1 -0
- package/dist/chunk-GR3CDFID.js +18 -0
- package/dist/chunk-GR3CDFID.js.map +1 -0
- package/dist/chunk-GR4SIU32.js +104 -0
- package/dist/chunk-GR4SIU32.js.map +1 -0
- package/dist/chunk-H5E46IIS.js +18 -0
- package/dist/chunk-H5E46IIS.js.map +1 -0
- package/dist/chunk-HFHVAMZL.js +22 -0
- package/dist/chunk-HFHVAMZL.js.map +1 -0
- package/dist/chunk-HT6L7A5M.js +12 -0
- package/dist/chunk-HT6L7A5M.js.map +1 -0
- package/dist/chunk-I2FPFISM.js +301 -0
- package/dist/chunk-I2FPFISM.js.map +1 -0
- package/dist/chunk-IADAQJDH.js +28 -0
- package/dist/chunk-IADAQJDH.js.map +1 -0
- package/dist/chunk-IBOBCMQQ.js +99 -0
- package/dist/chunk-IBOBCMQQ.js.map +1 -0
- package/dist/chunk-IFWKRCFF.js +56 -0
- package/dist/chunk-IFWKRCFF.js.map +1 -0
- package/dist/chunk-IH4T7V4C.js +40 -0
- package/dist/chunk-IH4T7V4C.js.map +1 -0
- package/dist/chunk-IIIZZ4E4.js +1679 -0
- package/dist/chunk-IIIZZ4E4.js.map +1 -0
- package/dist/chunk-ILSFU3WD.js +83 -0
- package/dist/chunk-ILSFU3WD.js.map +1 -0
- package/dist/chunk-IX3VBV3L.js +43 -0
- package/dist/chunk-IX3VBV3L.js.map +1 -0
- package/dist/chunk-JB6ASLUJ.js +315 -0
- package/dist/chunk-JB6ASLUJ.js.map +1 -0
- package/dist/chunk-JBBFSORW.js +846 -0
- package/dist/chunk-JBBFSORW.js.map +1 -0
- package/dist/chunk-JIDTNKKL.js +1183 -0
- package/dist/chunk-JIDTNKKL.js.map +1 -0
- package/dist/chunk-JSPE6NGZ.js +22 -0
- package/dist/chunk-JSPE6NGZ.js.map +1 -0
- package/dist/chunk-JVROGQ7Q.js +150 -0
- package/dist/chunk-JVROGQ7Q.js.map +1 -0
- package/dist/chunk-K4WUMWNJ.js +32 -0
- package/dist/chunk-K4WUMWNJ.js.map +1 -0
- package/dist/chunk-K74XQ4Q5.js +11 -0
- package/dist/chunk-K74XQ4Q5.js.map +1 -0
- package/dist/chunk-KLLMJ4U3.js +22 -0
- package/dist/chunk-KLLMJ4U3.js.map +1 -0
- package/dist/chunk-LTKVCJ2E.js +27 -0
- package/dist/chunk-LTKVCJ2E.js.map +1 -0
- package/dist/chunk-M36DJTFZ.js +34 -0
- package/dist/chunk-M36DJTFZ.js.map +1 -0
- package/dist/chunk-MHM52LCJ.js +154 -0
- package/dist/chunk-MHM52LCJ.js.map +1 -0
- package/dist/chunk-MQCDMHRZ.js +59 -0
- package/dist/chunk-MQCDMHRZ.js.map +1 -0
- package/dist/chunk-MZIBZ5FY.js +554 -0
- package/dist/chunk-MZIBZ5FY.js.map +1 -0
- package/dist/chunk-N3ORMGAI.js +348 -0
- package/dist/chunk-N3ORMGAI.js.map +1 -0
- package/dist/chunk-NCSGIRRQ.js +28 -0
- package/dist/chunk-NCSGIRRQ.js.map +1 -0
- package/dist/chunk-NIXT2SBH.js +1423 -0
- package/dist/chunk-NIXT2SBH.js.map +1 -0
- package/dist/chunk-NJAII6CO.js +148 -0
- package/dist/chunk-NJAII6CO.js.map +1 -0
- package/dist/chunk-NKE4TL43.js +92 -0
- package/dist/chunk-NKE4TL43.js.map +1 -0
- package/dist/chunk-NZ7AXA7B.js +1 -0
- package/dist/chunk-NZ7AXA7B.js.map +1 -0
- package/dist/chunk-OCAYEGI2.js +26 -0
- package/dist/chunk-OCAYEGI2.js.map +1 -0
- package/dist/chunk-OMLI45ER.js +90 -0
- package/dist/chunk-OMLI45ER.js.map +1 -0
- package/dist/chunk-P7OBLJAG.js +88 -0
- package/dist/chunk-P7OBLJAG.js.map +1 -0
- package/dist/chunk-PAY3CBWL.js +2321 -0
- package/dist/chunk-PAY3CBWL.js.map +1 -0
- package/dist/chunk-PFF6VY35.js +257 -0
- package/dist/chunk-PFF6VY35.js.map +1 -0
- package/dist/chunk-PYNDJDWZ.js +1758 -0
- package/dist/chunk-PYNDJDWZ.js.map +1 -0
- package/dist/chunk-QDQ6UMMN.js +53 -0
- package/dist/chunk-QDQ6UMMN.js.map +1 -0
- package/dist/chunk-QGT3G2XG.js +24 -0
- package/dist/chunk-QGT3G2XG.js.map +1 -0
- package/dist/chunk-QZYCJ2GZ.js +55 -0
- package/dist/chunk-QZYCJ2GZ.js.map +1 -0
- package/dist/chunk-REZ7RFSA.js +124 -0
- package/dist/chunk-REZ7RFSA.js.map +1 -0
- package/dist/chunk-RRYBAE6E.js +2449 -0
- package/dist/chunk-RRYBAE6E.js.map +1 -0
- package/dist/chunk-RWUZOB62.js +34 -0
- package/dist/chunk-RWUZOB62.js.map +1 -0
- package/dist/chunk-SB5UCPZH.js +116 -0
- package/dist/chunk-SB5UCPZH.js.map +1 -0
- package/dist/chunk-SEJJ7CRI.js +99 -0
- package/dist/chunk-SEJJ7CRI.js.map +1 -0
- package/dist/chunk-SHBFGRPV.js +45 -0
- package/dist/chunk-SHBFGRPV.js.map +1 -0
- package/dist/chunk-SOFJ4GC5.js +45 -0
- package/dist/chunk-SOFJ4GC5.js.map +1 -0
- package/dist/chunk-STH2HPZK.js +44 -0
- package/dist/chunk-STH2HPZK.js.map +1 -0
- package/dist/chunk-TK3JNKME.js +28 -0
- package/dist/chunk-TK3JNKME.js.map +1 -0
- package/dist/chunk-TMONHFE3.js +46 -0
- package/dist/chunk-TMONHFE3.js.map +1 -0
- package/dist/chunk-TR4KO3AG.js +44 -0
- package/dist/chunk-TR4KO3AG.js.map +1 -0
- package/dist/chunk-TS2LNBF2.js +68 -0
- package/dist/chunk-TS2LNBF2.js.map +1 -0
- package/dist/chunk-UZUMBFPP.js +26 -0
- package/dist/chunk-UZUMBFPP.js.map +1 -0
- package/dist/chunk-VRZ5LMOW.js +176 -0
- package/dist/chunk-VRZ5LMOW.js.map +1 -0
- package/dist/chunk-WLGGY6Z6.js +75 -0
- package/dist/chunk-WLGGY6Z6.js.map +1 -0
- package/dist/chunk-WO7V6ZNC.js +11 -0
- package/dist/chunk-WO7V6ZNC.js.map +1 -0
- package/dist/chunk-WXSENSRP.js +64 -0
- package/dist/chunk-WXSENSRP.js.map +1 -0
- package/dist/chunk-XEKBZ2SA.js +19 -0
- package/dist/chunk-XEKBZ2SA.js.map +1 -0
- package/dist/chunk-XPBKU3JX.js +61 -0
- package/dist/chunk-XPBKU3JX.js.map +1 -0
- package/dist/chunk-XRYXBXWH.js +24 -0
- package/dist/chunk-XRYXBXWH.js.map +1 -0
- package/dist/chunk-XVA7QRVH.js +22 -0
- package/dist/chunk-XVA7QRVH.js.map +1 -0
- package/dist/chunk-XYXDY72K.js +27508 -0
- package/dist/chunk-XYXDY72K.js.map +1 -0
- package/dist/chunk-YCTHHBSS.js +37 -0
- package/dist/chunk-YCTHHBSS.js.map +1 -0
- package/dist/chunk-YHPWD5NE.js +70 -0
- package/dist/chunk-YHPWD5NE.js.map +1 -0
- package/dist/chunk-YLNEKJQ5.js +126 -0
- package/dist/chunk-YLNEKJQ5.js.map +1 -0
- package/dist/chunk-YN4CEKCF.js +73 -0
- package/dist/chunk-YN4CEKCF.js.map +1 -0
- package/dist/chunk-YYNMESIF.js +17 -0
- package/dist/chunk-YYNMESIF.js.map +1 -0
- package/dist/chunk-Z6PRMCV6.js +1 -0
- package/dist/chunk-Z6PRMCV6.js.map +1 -0
- package/dist/chunk-ZDNW6VQG.js +11 -0
- package/dist/chunk-ZDNW6VQG.js.map +1 -0
- package/dist/chunk-ZP4D73DO.js +36 -0
- package/dist/chunk-ZP4D73DO.js.map +1 -0
- package/dist/chunk-ZUATADUV.js +26 -0
- package/dist/chunk-ZUATADUV.js.map +1 -0
- package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
- package/dist/core/index.cjs +14041 -6973
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +422 -138
- package/dist/core/index.js +425 -183
- package/dist/core/index.js.map +1 -1
- package/dist/flow-vnext/index.cjs +2842 -0
- package/dist/flow-vnext/index.cjs.map +1 -0
- package/dist/flow-vnext/index.d.ts +3 -0
- package/dist/flow-vnext/index.js +119 -0
- package/dist/flow-vnext/index.js.map +1 -0
- package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
- package/dist/index-b9xxXGFs.d.ts +1230 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +202 -37
- package/dist/index.js.map +1 -1
- package/dist/legacy-BpgIqaQ5.d.ts +14 -0
- package/dist/mantine/index.d.ts +7 -4
- package/dist/mantine/index.js +84 -30
- package/dist/mantine/index.js.map +1 -1
- package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
- package/package.json +12 -2
- package/dist/chunk-A4CWC4AG.js +0 -374
- package/dist/chunk-A4CWC4AG.js.map +0 -1
- package/dist/chunk-NEOPTPDF.js.map +0 -1
- package/dist/chunk-VRCRDKN5.js +0 -59694
- package/dist/chunk-VRCRDKN5.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/lib/designPod/contracts.ts","../src/core/lib/flowEngine/runHistory.ts","../src/core/lib/designPod/digest.ts","../src/core/lib/designPod/state.ts","../src/core/lib/designPod/compiler.ts","../src/core/lib/designPod/publication.ts","../src/core/lib/designPod/template.ts","../src/core/lib/designPod/operationalPlan.ts","../src/core/lib/designPod/prompts.ts"],"sourcesContent":["export const DESIGN_POD_TEMPLATE_ID = 'design-pod-portal-journey-v2' as const;\n\nexport const DESIGN_POD_PHASE_IDS = ['discovery', 'design', 'validation', 'testing', 'deployment'] as const;\nexport type DesignPodPhaseId = (typeof DESIGN_POD_PHASE_IDS)[number];\n\nexport const DESIGN_POD_CONTROL_IDS = [\n 'provider_onboarding',\n 'service_intent',\n 'service_architecture',\n 'outcome_contract',\n 'automation_feasibility',\n 'evidence_model',\n 'claims_and_rubrics',\n 'ucan_rights',\n 'flow_configuration',\n 'oracle_configuration',\n 'governance_risk',\n 'commercial_packaging',\n 'demo_build',\n 'domain_documentation',\n 'vfs_packaging',\n 'launch_readiness',\n 'operate_improve',\n] as const;\nexport type DesignPodControlId = (typeof DESIGN_POD_CONTROL_IDS)[number];\n\nexport type DesignPodMethodId = 'professional-service/v1' | 'design-yoma/v1';\n\nexport interface DesignPodPhaseDefinitionV1 {\n id: DesignPodPhaseId;\n title: string;\n description: string;\n controls: DesignPodControlId[];\n}\n\nexport interface DesignPodControlDefinitionV1 {\n id: DesignPodControlId;\n title: string;\n schema: string;\n skill: string;\n dependencies: DesignPodControlId[];\n}\n\nexport interface DesignPodChecklistItemDefinitionV1 {\n id: string;\n title: string;\n description: string;\n}\n\nexport interface DesignPodMethodManifestV1 {\n schemaVersion: '1.0';\n templateId: typeof DESIGN_POD_TEMPLATE_ID;\n methodId: DesignPodMethodId;\n methodVersion: 1;\n title: string;\n phases: DesignPodPhaseDefinitionV1[];\n controls: Record<DesignPodControlId, DesignPodControlDefinitionV1>;\n operationalActions: string[];\n publicationRules: {\n independentReviewRequired: true;\n phaseDecision: 'Yes, continue';\n canonicalPackageRoot: '/pod-blueprints/{releaseDigest}';\n domainPath: '/.domain/domain.md';\n contentAddressedArtifacts: true;\n checklistItems: DesignPodChecklistItemDefinitionV1[];\n };\n}\n\nexport interface DesignPodProjectIdentityV1 {\n designProjectEntityDid: string;\n /** UCAN root of the Flow: the on-chain controller DID that owns this Flow room. */\n flowOwnerDid: string;\n flowRoomId: string;\n sessionRunId: string;\n methodManifestDigest: string;\n}\n\nexport interface DesignPodRuntimeAuthorityV1 {\n designProjectEntityDid: string;\n /** UCAN root of the Flow: the on-chain controller DID that owns this Flow room. */\n flowOwnerDid: string;\n flowRoomId: string;\n sessionRunId: string;\n}\n\nexport type DesignPodControlStatus = 'draft' | 'current' | 'stale';\n\nexport interface DesignPodControlRevisionV1 {\n controlId: DesignPodControlId;\n revision: number;\n digest: string;\n content: Record<string, unknown>;\n status: DesignPodControlStatus;\n updatedAt: string;\n updatedByDid: string;\n}\n\nexport interface DesignPodArtifactReceiptV1 {\n schemaVersion: '1.0';\n controlId: DesignPodControlId;\n digest: string;\n id: string;\n path: string;\n version: number;\n contentHash: string;\n cid: string;\n verifiedAt: string;\n}\n\nexport interface DesignPodActionProofV1 {\n invocationCid: string;\n actionBlockId: string;\n inputDigest: string;\n}\n\nexport interface DesignPodPhaseCommitmentV1 {\n schemaVersion: '1.0';\n phaseId: DesignPodPhaseId;\n decision: 'Yes, continue';\n committedByDid: string;\n committedAt: string;\n controlDigests: Partial<Record<DesignPodControlId, string>>;\n artifactReceipts: DesignPodArtifactReceiptV1[];\n proof: DesignPodActionProofV1;\n digest: string;\n status: 'current' | 'stale';\n}\n\nexport interface DesignPodReviewAssignmentV1 {\n schemaVersion: '1.0';\n reviewerDid: string;\n assignedByDid: string;\n assignedAt: string;\n digest: string;\n proof: DesignPodActionProofV1;\n}\n\nexport interface DesignPodReviewRequestV1 {\n schemaVersion: '1.0';\n revisionSetDigest: string;\n submittedByDid: string;\n submittedAt: string;\n digest: string;\n proof: DesignPodActionProofV1;\n status: 'current' | 'stale' | 'responded';\n respondedAt?: string;\n}\n\nexport interface DesignPodReviewRecordV1 {\n schemaVersion: '1.0';\n reviewerDid: string;\n revisionSetDigest: string;\n decision: 'approved' | 'changes_required';\n reviewedAt: string;\n assignmentDigest: string;\n reviewRequestDigest: string;\n proof: DesignPodActionProofV1;\n status: 'current' | 'stale';\n}\n\nexport interface DesignPodChecklistRecordV1 {\n schemaVersion: '1.0';\n itemId: string;\n disposition: 'resolved' | 'accepted_for_later' | 'blocking';\n updatedByDid: string;\n updatedAt: string;\n proof: DesignPodActionProofV1;\n digest: string;\n}\n\nexport interface DesignPodReleaseRecordV1 {\n digest: string;\n status: 'compiled' | 'publishing' | 'published' | 'failed' | 'stale';\n packageRoot?: string;\n publicationAttempt?: Record<string, unknown>;\n publicationReceipt?: Record<string, unknown>;\n}\n\n/**\n * The customer's own protocol entity, minted from the published release as the\n * final step of the design journey. It carries the unpacked package — operational\n * Flow templates published to its navigation, package files as linked resources —\n * so instances stamped from it are ready to run. It inherits nothing from the\n * design project itself.\n */\nexport interface DesignPodProtocolRecordV1 {\n entityDid: string;\n entityType: string;\n releaseDigest: string;\n /**\n * `minting` is written the moment the entity is on chain, before its package\n * is unpacked. An interrupted run (closed tab, lost network) therefore leaves\n * a resumable record instead of an orphan protocol nobody can find, and a\n * retry fills what is missing rather than minting a second entity.\n */\n status: 'minting' | 'minted';\n templates: Array<{ id: string; roomId: string }>;\n resources: Array<{ id: string; serviceEndpoint: string }>;\n /** Non-fatal unpacking failures, so a partial mint is visible instead of silent. */\n failures: string[];\n transactionHash?: string;\n mintedAt: string;\n}\n\nexport interface DesignPodFlowStateV1 {\n schemaVersion: '1.0';\n identity: DesignPodProjectIdentityV1;\n controls: Partial<Record<DesignPodControlId, DesignPodControlRevisionV1>>;\n artifactReceipts: DesignPodArtifactReceiptV1[];\n phaseCommitments: Partial<Record<DesignPodPhaseId, DesignPodPhaseCommitmentV1>>;\n checklistRecords: Record<string, DesignPodChecklistRecordV1>;\n checklistDispositions: Record<string, 'resolved' | 'accepted_for_later' | 'blocking'>;\n reviewAssignment?: DesignPodReviewAssignmentV1;\n reviewRequest?: DesignPodReviewRequestV1;\n review?: DesignPodReviewRecordV1;\n release?: DesignPodReleaseRecordV1;\n protocol?: DesignPodProtocolRecordV1;\n readiness: 'draft' | 'phases_committed' | 'reviewed' | 'compiled' | 'published';\n publicationStatus: 'not_started' | 'ready' | 'publishing' | 'published' | 'failed';\n}\n\nexport interface LegacyDesignPodEvidenceV1 {\n legacyWorkspaceId: string;\n sourceVersion: '0.5' | '0.6';\n historyDigest: string;\n exportedAt: string;\n history: Array<{\n sequence: number;\n previousDigest: string | null;\n eventType: string;\n payloadDigest: string;\n occurredAt: string;\n digest: string;\n }>;\n artifacts: Array<{\n controlId: DesignPodControlId;\n content: Record<string, unknown>;\n sourceDigest: string;\n }>;\n}\n\nconst PHASES: DesignPodPhaseDefinitionV1[] = [\n {\n id: 'discovery',\n title: 'Discovery',\n description: 'Confirm the provider, opportunity intent, youth benefit, and design boundaries.',\n controls: ['provider_onboarding', 'service_intent'],\n },\n {\n id: 'design',\n title: 'Design',\n description: 'Design the Deed, evidence, claims, rights, operational Flows, and service skills.',\n controls: [\n 'service_architecture',\n 'outcome_contract',\n 'automation_feasibility',\n 'evidence_model',\n 'claims_and_rubrics',\n 'ucan_rights',\n 'flow_configuration',\n 'oracle_configuration',\n ],\n },\n {\n id: 'validation',\n title: 'Validation',\n description: 'Resolve governance, safeguarding, risk, authority, and commercial packaging.',\n controls: ['governance_risk', 'commercial_packaging'],\n },\n {\n id: 'testing',\n title: 'Testing',\n description: 'Run a representative end-to-end Deed rehearsal and inspect its evidence.',\n controls: ['demo_build'],\n },\n {\n id: 'deployment',\n title: 'Deployment',\n description: 'Package, publish, launch, and establish the operate-and-improve model.',\n controls: ['domain_documentation', 'vfs_packaging', 'launch_readiness', 'operate_improve'],\n },\n];\n\nconst DEPENDENCIES: Record<DesignPodControlId, DesignPodControlId[]> = {\n provider_onboarding: [],\n service_intent: ['provider_onboarding'],\n service_architecture: ['service_intent'],\n outcome_contract: ['service_intent', 'service_architecture'],\n automation_feasibility: ['service_architecture'],\n evidence_model: ['outcome_contract'],\n claims_and_rubrics: ['outcome_contract', 'evidence_model'],\n ucan_rights: ['service_architecture', 'automation_feasibility'],\n flow_configuration: ['service_architecture', 'ucan_rights'],\n oracle_configuration: ['service_architecture', 'ucan_rights', 'flow_configuration'],\n governance_risk: [\n 'service_architecture',\n 'outcome_contract',\n 'automation_feasibility',\n 'evidence_model',\n 'claims_and_rubrics',\n 'ucan_rights',\n 'flow_configuration',\n 'oracle_configuration',\n ],\n commercial_packaging: ['service_intent', 'outcome_contract'],\n demo_build: ['claims_and_rubrics', 'flow_configuration', 'oracle_configuration'],\n domain_documentation: ['governance_risk', 'commercial_packaging'],\n vfs_packaging: ['domain_documentation', 'ucan_rights', 'oracle_configuration'],\n launch_readiness: ['demo_build', 'governance_risk', 'vfs_packaging'],\n operate_improve: ['launch_readiness'],\n};\n\nconst TITLES: Record<DesignPodControlId, string> = {\n provider_onboarding: 'Opportunity Provider onboarding',\n service_intent: 'Deed and youth opportunity intent',\n service_architecture: 'Deed service architecture',\n outcome_contract: 'Theory-of-change outcome contract',\n automation_feasibility: 'Automation feasibility',\n evidence_model: 'Evidence model',\n claims_and_rubrics: 'Claims and evaluation rubrics',\n ucan_rights: 'Participant rights and UCAN capabilities',\n flow_configuration: 'Operational Flow configuration',\n oracle_configuration: 'Evaluation and service skills',\n governance_risk: 'Governance, safeguarding, consent, and risk',\n commercial_packaging: 'Funding and commercial packaging',\n demo_build: 'Representative dry-run',\n domain_documentation: 'Domain documentation',\n vfs_packaging: 'Entity VFS package',\n launch_readiness: 'Launch readiness',\n operate_improve: 'Operate and improve',\n};\n\nconst SKILLS: Partial<Record<DesignPodControlId, string>> = {\n service_intent: 'design-pod-service-intent-scorer',\n service_architecture: 'design-pod-service-architect',\n outcome_contract: 'design-pod-outcome-contract',\n automation_feasibility: 'design-pod-automation-feasibility',\n claims_and_rubrics: 'design-pod-claims-architect',\n ucan_rights: 'design-pod-ucan-rights-architect',\n flow_configuration: 'design-pod-flow-builder',\n governance_risk: 'design-pod-governance-risk',\n commercial_packaging: 'design-pod-commercial-packager',\n demo_build: 'design-pod-demo-builder',\n launch_readiness: 'design-pod-qa-launch-readiness',\n};\n\nfunction buildControls(): Record<DesignPodControlId, DesignPodControlDefinitionV1> {\n return Object.fromEntries(\n DESIGN_POD_CONTROL_IDS.map((id) => [\n id,\n {\n id,\n title: TITLES[id],\n schema: `ixo.design-pod.${id}.v1`,\n skill: SKILLS[id] ?? 'design-pod-orchestration',\n dependencies: DEPENDENCIES[id],\n },\n ])\n ) as Record<DesignPodControlId, DesignPodControlDefinitionV1>;\n}\n\nconst BASE_MANIFEST: Omit<DesignPodMethodManifestV1, 'methodId' | 'title' | 'operationalActions'> = {\n schemaVersion: '1.0',\n templateId: DESIGN_POD_TEMPLATE_ID,\n methodVersion: 1,\n phases: PHASES,\n controls: buildControls(),\n publicationRules: {\n independentReviewRequired: true,\n phaseDecision: 'Yes, continue',\n canonicalPackageRoot: '/pod-blueprints/{releaseDigest}',\n domainPath: '/.domain/domain.md',\n contentAddressedArtifacts: true,\n checklistItems: [\n { id: 'safeguarding-owner', title: 'Safeguarding owner', description: 'A named authority owns safeguarding decisions and escalation.' },\n { id: 'rights-and-consent', title: 'Rights and consent', description: 'Participant rights, consent, and data handling are launch-ready.' },\n { id: 'funding-readiness', title: 'Funding readiness', description: 'The governed funding source and payout controls are verified.' },\n { id: 'credential-authority', title: 'Credential authority', description: 'Credential and outcome issuers have explicit authority.' },\n { id: 'testnet-rehearsal', title: 'Testnet rehearsal', description: 'The representative end-to-end rehearsal has no unresolved blocker.' },\n ],\n },\n};\n\nexport const PROFESSIONAL_SERVICE_METHOD_V1: DesignPodMethodManifestV1 = {\n ...BASE_MANIFEST,\n methodId: 'professional-service/v1',\n title: 'Professional Service POD',\n operationalActions: [],\n};\n\nexport const DESIGN_YOMA_METHOD_V1: DesignPodMethodManifestV1 = {\n ...BASE_MANIFEST,\n methodId: 'design-yoma/v1',\n title: 'Yoma Deed POD',\n operationalActions: [\n 'qi/collection.lifecycle',\n 'qi/collection.users',\n 'qi/claim.submit',\n 'qi/claim.evaluate',\n 'qi/funding.verify',\n 'qi/credential.issue',\n 'qi/credential.store',\n 'qi/yoma.opportunity',\n 'qi/yoid.link',\n 'qi/outcome.certificate',\n ],\n};\n\nexport const DESIGN_POD_METHODS: Record<DesignPodMethodId, DesignPodMethodManifestV1> = {\n 'professional-service/v1': PROFESSIONAL_SERVICE_METHOD_V1,\n 'design-yoma/v1': DESIGN_YOMA_METHOD_V1,\n};\n","import * as Y from 'yjs';\nimport type { StoredInvocation } from '../../types/ucan';\nimport { isRecordInRun } from './runs';\nimport { getExistingYMap } from '../yjsTypes';\n\nexport const INVOCATIONS_MAP_KEY = 'invocations';\n\n/**\n * Read UCAN invocation history for exactly one session run.\n *\n * Records written before sessions existed carry no `sessionRunId` and belong to\n * the unsessioned document until it is migrated — see {@link isRecordInRun}.\n * The lookup uses `Doc.share` so inspecting a room with no invocation history\n * does not create an empty shared map.\n */\nexport function readInvocationsForRun(yDoc: Y.Doc, sessionRunId: string): StoredInvocation[] {\n const existing = getExistingYMap<StoredInvocation>(yDoc, INVOCATIONS_MAP_KEY);\n if (!existing) return [];\n\n const invocations: StoredInvocation[] = [];\n existing.forEach((value) => {\n if (!value || typeof value !== 'object') return;\n const invocation = value as StoredInvocation;\n if (!invocation.cid) return;\n if (!isRecordInRun(invocation.sessionRunId, sessionRunId)) return;\n invocations.push({\n ...invocation,\n capability: { ...(invocation.capability || {}) } as StoredInvocation['capability'],\n proofCids: [...(invocation.proofCids || [])],\n });\n });\n return invocations.sort((a, b) => b.executedAt - a.executedAt || a.cid.localeCompare(b.cid));\n}\n","function canonicalValue(value: unknown): string {\n if (value === null) return 'null';\n if (typeof value === 'string' || typeof value === 'boolean') return JSON.stringify(value);\n if (typeof value === 'number') {\n if (!Number.isFinite(value)) throw new Error('Design POD canonical JSON does not allow non-finite numbers');\n return JSON.stringify(value);\n }\n if (Array.isArray(value)) return `[${value.map((item) => canonicalValue(item)).join(',')}]`;\n if (typeof value === 'object') {\n const entries = Object.entries(value as Record<string, unknown>)\n .filter(([, child]) => child !== undefined)\n .sort(([left], [right]) => left.localeCompare(right));\n return `{${entries.map(([key, child]) => `${JSON.stringify(key)}:${canonicalValue(child)}`).join(',')}}`;\n }\n throw new Error(`Design POD canonical JSON does not support ${typeof value}`);\n}\n\nexport function canonicalDesignPodJson(value: unknown): string {\n return canonicalValue(value);\n}\n\nexport async function digestDesignPodValue(value: unknown): Promise<string> {\n const bytes = new TextEncoder().encode(canonicalDesignPodJson(value));\n const hash = await globalThis.crypto.subtle.digest('SHA-256', bytes);\n return `sha256:${Array.from(new Uint8Array(hash), (byte) => byte.toString(16).padStart(2, '0')).join('')}`;\n}\n","import * as Y from 'yjs';\nimport {\n DESIGN_POD_METHODS,\n type DesignPodArtifactReceiptV1,\n type DesignPodActionProofV1,\n type DesignPodChecklistRecordV1,\n type DesignPodControlId,\n type DesignPodControlRevisionV1,\n type DesignPodFlowStateV1,\n type DesignPodMethodId,\n type DesignPodMethodManifestV1,\n type DesignPodPhaseCommitmentV1,\n type DesignPodPhaseId,\n type DesignPodProjectIdentityV1,\n type DesignPodReviewRecordV1,\n type DesignPodReviewAssignmentV1,\n type DesignPodReviewRequestV1,\n type LegacyDesignPodEvidenceV1,\n} from './contracts';\nimport { digestDesignPodValue } from './digest';\nimport { isRunTerminalOrPending, TerminalRunExecutionError } from '../flowEngine/runs';\n\nexport const DESIGN_POD_DEFINITION_MAP_KEY = 'designPodDefinition';\nexport const DESIGN_POD_STATE_MAP_KEY = 'designPodState';\n\nconst MANIFEST_KEY = 'manifest';\nconst IDENTITY_KEY = 'identity';\nconst REVIEW_KEY = 'review';\nconst REVIEW_ASSIGNMENT_KEY = 'reviewAssignment';\nconst REVIEW_REQUEST_KEY = 'reviewRequest';\nconst RELEASE_KEY = 'release';\nconst PROTOCOL_KEY = 'protocol';\nconst LEGACY_EVIDENCE_KEY = 'legacyEvidence';\nconst CONTROL_PREFIX = 'control:';\nconst ARTIFACT_PREFIX = 'artifact:';\nconst COMMITMENT_PREFIX = 'commitment:';\nconst CHECKLIST_PREFIX = 'checklist:';\n\nfunction stateMap(doc: Y.Doc): Y.Map<unknown> {\n return doc.getMap(DESIGN_POD_STATE_MAP_KEY);\n}\n\nfunction definitionMap(doc: Y.Doc): Y.Map<unknown> {\n return doc.getMap(DESIGN_POD_DEFINITION_MAP_KEY);\n}\n\n/** Actors arrive as bare ixo1 addresses or did strings depending on the host — compare identity, not spelling. */\nexport function sameDesignPodActor(a: string | undefined, b: string | undefined): boolean {\n const norm = (value: string | undefined): string => {\n const v = (value || '').trim();\n return v.startsWith('ixo1') ? `did:ixo:${v}` : v;\n };\n const left = norm(a);\n return left !== '' && left === norm(b);\n}\n\nexport function seedDesignPodMethodDefinition(doc: Y.Doc, methodId: DesignPodMethodId): DesignPodMethodManifestV1 {\n const manifest = DESIGN_POD_METHODS[methodId];\n if (!manifest) throw new Error(`Unknown Design POD method: ${methodId}`);\n definitionMap(doc).set(MANIFEST_KEY, manifest);\n return manifest;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nexport async function initializeDesignPod(\n doc: Y.Doc,\n methodId: DesignPodMethodId,\n identity: Omit<DesignPodProjectIdentityV1, 'methodManifestDigest'>\n): Promise<DesignPodProjectIdentityV1> {\n const manifest = DESIGN_POD_METHODS[methodId];\n if (!manifest) throw new Error(`Unknown Design POD method: ${methodId}`);\n const methodManifestDigest = await digestDesignPodValue(manifest);\n const pinnedIdentity: DesignPodProjectIdentityV1 = { ...identity, methodManifestDigest };\n let initializedIdentity = pinnedIdentity;\n\n doc.transact(() => {\n const map = stateMap(doc);\n const existingIdentity = map.get(IDENTITY_KEY) as DesignPodProjectIdentityV1 | undefined;\n if (existingIdentity) {\n if (\n existingIdentity.designProjectEntityDid !== pinnedIdentity.designProjectEntityDid ||\n existingIdentity.flowOwnerDid !== pinnedIdentity.flowOwnerDid ||\n existingIdentity.flowRoomId !== pinnedIdentity.flowRoomId ||\n existingIdentity.sessionRunId !== pinnedIdentity.sessionRunId ||\n existingIdentity.methodManifestDigest !== pinnedIdentity.methodManifestDigest\n ) {\n throw new Error('Design POD identity is already pinned to a different project session');\n }\n const root = doc.getMap('root');\n if (root.get('doc_id') !== pinnedIdentity.flowRoomId || root.get('flowOwnerDid') !== pinnedIdentity.flowOwnerDid) {\n throw new Error('Design POD Flow authority no longer matches its pinned Flow owner and Matrix room');\n }\n if (isRunTerminalOrPending(doc, existingIdentity.sessionRunId)) {\n throw new TerminalRunExecutionError(existingIdentity.sessionRunId, 'design-pod-initialize');\n }\n initializedIdentity = existingIdentity;\n return;\n }\n if (isRunTerminalOrPending(doc, pinnedIdentity.sessionRunId)) {\n throw new TerminalRunExecutionError(pinnedIdentity.sessionRunId, 'design-pod-initialize');\n }\n definitionMap(doc).set(MANIFEST_KEY, manifest);\n map.set(IDENTITY_KEY, pinnedIdentity);\n const root = doc.getMap('root');\n root.set('@context', 'https://ixo.world/flow/1.0');\n root.set('schema_version', '1.0.0');\n // The Portal/Matrix envelope is the authority. These collaborative fields\n // are consistency witnesses only and must never choose the UCAN root.\n // The UCAN root stays the on-chain controller who owns the Flow room; the\n // Design Project entity is tracked separately in the pinned identity.\n root.set('doc_id', pinnedIdentity.flowRoomId);\n root.set('flowOwnerDid', pinnedIdentity.flowOwnerDid);\n });\n return initializedIdentity;\n}\n\nexport function readDesignPodDefinition(doc: Y.Doc): DesignPodMethodManifestV1 | undefined {\n return definitionMap(doc).get(MANIFEST_KEY) as DesignPodMethodManifestV1 | undefined;\n}\n\nexport function readDesignPodState(doc: Y.Doc): DesignPodFlowStateV1 | undefined {\n const map = stateMap(doc);\n const identity = map.get(IDENTITY_KEY) as DesignPodProjectIdentityV1 | undefined;\n if (!identity) return undefined;\n\n const controls: DesignPodFlowStateV1['controls'] = {};\n const artifactReceipts: DesignPodArtifactReceiptV1[] = [];\n const phaseCommitments: DesignPodFlowStateV1['phaseCommitments'] = {};\n const checklistRecords: DesignPodFlowStateV1['checklistRecords'] = {};\n const checklistDispositions: DesignPodFlowStateV1['checklistDispositions'] = {};\n map.forEach((value, key) => {\n if (key.startsWith(CONTROL_PREFIX)) controls[key.slice(CONTROL_PREFIX.length) as DesignPodControlId] = value as DesignPodControlRevisionV1;\n if (key.startsWith(ARTIFACT_PREFIX)) artifactReceipts.push(value as DesignPodArtifactReceiptV1);\n if (key.startsWith(COMMITMENT_PREFIX)) phaseCommitments[key.slice(COMMITMENT_PREFIX.length) as DesignPodPhaseId] = value as DesignPodPhaseCommitmentV1;\n if (key.startsWith(CHECKLIST_PREFIX)) {\n const itemId = key.slice(CHECKLIST_PREFIX.length);\n checklistRecords[itemId] = value as DesignPodChecklistRecordV1;\n if (isRecord(value)) {\n const record = value as unknown as DesignPodChecklistRecordV1;\n if (['resolved', 'accepted_for_later', 'blocking'].includes(record.disposition)) checklistDispositions[itemId] = record.disposition;\n }\n }\n });\n\n const commitmentCount = Object.values(phaseCommitments).filter((record) => record?.status === 'current').length;\n const review = map.get(REVIEW_KEY) as DesignPodReviewRecordV1 | undefined;\n const reviewAssignment = map.get(REVIEW_ASSIGNMENT_KEY) as DesignPodReviewAssignmentV1 | undefined;\n const reviewRequest = map.get(REVIEW_REQUEST_KEY) as DesignPodReviewRequestV1 | undefined;\n const release = map.get(RELEASE_KEY) as DesignPodFlowStateV1['release'];\n const protocol = map.get(PROTOCOL_KEY) as DesignPodFlowStateV1['protocol'];\n const readiness =\n release?.status === 'published'\n ? 'published'\n : release?.status === 'compiled'\n ? 'compiled'\n : review?.status === 'current' && review.decision === 'approved'\n ? 'reviewed'\n : commitmentCount === 5\n ? 'phases_committed'\n : 'draft';\n\n return {\n schemaVersion: '1.0',\n identity,\n controls,\n artifactReceipts: artifactReceipts.sort((left, right) => left.path.localeCompare(right.path)),\n phaseCommitments,\n checklistRecords,\n checklistDispositions,\n reviewAssignment,\n reviewRequest,\n review,\n release,\n protocol,\n readiness,\n publicationStatus:\n release?.status === 'published'\n ? 'published'\n : release?.status === 'publishing'\n ? 'publishing'\n : release?.status === 'failed'\n ? 'failed'\n : release?.status === 'compiled'\n ? 'ready'\n : 'not_started',\n };\n}\n\nfunction collectDependants(manifest: DesignPodMethodManifestV1, changed: DesignPodControlId): Set<DesignPodControlId> {\n const affected = new Set<DesignPodControlId>();\n let grew = true;\n while (grew) {\n grew = false;\n for (const control of Object.values(manifest.controls)) {\n if (control.id === changed || affected.has(control.id)) continue;\n if (control.dependencies.some((dependency) => dependency === changed || affected.has(dependency))) {\n affected.add(control.id);\n grew = true;\n }\n }\n }\n return affected;\n}\n\nfunction phaseForControl(manifest: DesignPodMethodManifestV1, controlId: DesignPodControlId): DesignPodPhaseId {\n const phase = manifest.phases.find((candidate) => candidate.controls.includes(controlId));\n if (!phase) throw new Error(`Control ${controlId} is not assigned to a Design POD phase`);\n return phase.id;\n}\n\nfunction staleReviewAndRelease(map: Y.Map<unknown>): void {\n const reviewRequest = map.get(REVIEW_REQUEST_KEY);\n if (isRecord(reviewRequest)) map.set(REVIEW_REQUEST_KEY, { ...reviewRequest, status: 'stale' });\n const review = map.get(REVIEW_KEY);\n if (isRecord(review)) map.set(REVIEW_KEY, { ...review, status: 'stale' });\n const release = map.get(RELEASE_KEY);\n if (isRecord(release)) map.set(RELEASE_KEY, { ...release, status: 'stale' });\n}\n\nfunction assertPublicationCanBeInvalidated(map: Y.Map<unknown>, operation: string): void {\n const release = map.get(RELEASE_KEY);\n if (isRecord(release) && release.status === 'publishing') {\n throw new Error(`${operation} cannot change Design POD authority while IXO publication is reserved`);\n }\n}\n\nfunction assertProjectIdentity(map: Y.Map<unknown>, expected: DesignPodProjectIdentityV1, operation: string): void {\n const current = map.get(IDENTITY_KEY) as DesignPodProjectIdentityV1 | undefined;\n if (\n !current ||\n current.designProjectEntityDid !== expected.designProjectEntityDid ||\n current.flowOwnerDid !== expected.flowOwnerDid ||\n current.flowRoomId !== expected.flowRoomId ||\n current.sessionRunId !== expected.sessionRunId ||\n current.methodManifestDigest !== expected.methodManifestDigest\n ) {\n throw new Error(`The pinned Design POD project identity changed while ${operation} was being prepared`);\n }\n}\n\nexport async function updateDesignPodControl(\n doc: Y.Doc,\n params: {\n controlId: DesignPodControlId;\n content: Record<string, unknown>;\n actorDid: string;\n now?: string;\n importedLegacy?: boolean;\n expectedBaseDigest?: string | null;\n /** Pinned session that authorizes this mutation; checked again in the final Yjs transaction. */\n sessionRunId?: string;\n }\n): Promise<DesignPodControlRevisionV1> {\n const manifest = readDesignPodDefinition(doc);\n const state = readDesignPodState(doc);\n if (!manifest || !state) throw new Error('Design POD method definition is not initialized');\n if (!manifest.controls[params.controlId]) throw new Error(`Control ${params.controlId} is not in the pinned method manifest`);\n const sessionRunId = params.sessionRunId ?? state.identity.sessionRunId;\n if (sessionRunId !== state.identity.sessionRunId) throw new Error('Control mutation session does not match the pinned Design POD session');\n const map = stateMap(doc);\n const prior = map.get(`${CONTROL_PREFIX}${params.controlId}`) as DesignPodControlRevisionV1 | undefined;\n const priorDigest = prior?.digest ?? null;\n if (params.expectedBaseDigest !== undefined && priorDigest !== params.expectedBaseDigest) {\n throw new Error(`${params.controlId} changed before the proposed revision could be prepared`);\n }\n const revision = (prior?.revision ?? 0) + 1;\n const digest = await digestDesignPodValue({ controlId: params.controlId, revision, content: params.content });\n const next: DesignPodControlRevisionV1 = {\n controlId: params.controlId,\n revision,\n digest,\n content: params.content,\n status: params.importedLegacy ? 'draft' : 'current',\n updatedAt: params.now ?? new Date().toISOString(),\n updatedByDid: params.actorDid,\n };\n const dependants = collectDependants(manifest, params.controlId);\n const affectedPhases = new Set<DesignPodPhaseId>([phaseForControl(manifest, params.controlId)]);\n dependants.forEach((controlId) => affectedPhases.add(phaseForControl(manifest, controlId)));\n\n doc.transact(() => {\n assertProjectIdentity(map, state.identity, `control ${params.controlId}`);\n if (isRunTerminalOrPending(doc, sessionRunId)) {\n throw new TerminalRunExecutionError(sessionRunId, `design-pod-control:${params.controlId}`);\n }\n assertPublicationCanBeInvalidated(map, `Updating ${params.controlId}`);\n const current = map.get(`${CONTROL_PREFIX}${params.controlId}`) as DesignPodControlRevisionV1 | undefined;\n const currentDigest = current?.digest ?? null;\n if (currentDigest !== priorDigest || (params.expectedBaseDigest !== undefined && currentDigest !== params.expectedBaseDigest)) {\n throw new Error(`${params.controlId} changed while the proposed revision was being prepared`);\n }\n map.set(`${CONTROL_PREFIX}${params.controlId}`, next);\n dependants.forEach((controlId) => {\n const current = map.get(`${CONTROL_PREFIX}${controlId}`);\n if (isRecord(current)) map.set(`${CONTROL_PREFIX}${controlId}`, { ...current, status: 'stale' });\n });\n affectedPhases.forEach((phaseId) => {\n const commitment = map.get(`${COMMITMENT_PREFIX}${phaseId}`);\n if (isRecord(commitment)) map.set(`${COMMITMENT_PREFIX}${phaseId}`, { ...commitment, status: 'stale' });\n });\n staleReviewAndRelease(map);\n });\n return next;\n}\n\nexport function createDesignPodArtifactReceipt(doc: Y.Doc, receipt: Omit<DesignPodArtifactReceiptV1, 'schemaVersion'>): DesignPodArtifactReceiptV1 {\n if (!receipt.id || !receipt.path || !receipt.version || !receipt.contentHash || !receipt.cid) {\n throw new Error('A verified VFS artifact receipt requires id, path, version, contentHash, and cid');\n }\n const identity = stateMap(doc).get(IDENTITY_KEY) as DesignPodProjectIdentityV1 | undefined;\n if (identity && isRunTerminalOrPending(doc, identity.sessionRunId)) {\n throw new TerminalRunExecutionError(identity.sessionRunId, `design-pod-artifact-receipt:${receipt.controlId}`);\n }\n const value: DesignPodArtifactReceiptV1 = { schemaVersion: '1.0', ...receipt };\n stateMap(doc).set(`${ARTIFACT_PREFIX}${receipt.controlId}:${receipt.digest}`, value);\n return value;\n}\n\nexport async function commitDesignPodPhase(\n doc: Y.Doc,\n params: {\n phaseId: DesignPodPhaseId;\n actorDid: string;\n decision: 'Yes, continue';\n expectedControlDigests: Partial<Record<DesignPodControlId, string>>;\n proof: DesignPodActionProofV1;\n now?: string;\n }\n): Promise<DesignPodPhaseCommitmentV1> {\n const manifest = readDesignPodDefinition(doc);\n const state = readDesignPodState(doc);\n if (!manifest || !state) throw new Error('Design POD is not initialized');\n if (params.decision !== manifest.publicationRules.phaseDecision) throw new Error('Phase commitment requires the explicit “Yes, continue” decision');\n const phase = manifest.phases.find((candidate) => candidate.id === params.phaseId);\n if (!phase) throw new Error(`Unknown Design POD phase: ${params.phaseId}`);\n\n const controlDigests: Partial<Record<DesignPodControlId, string>> = {};\n const receipts: DesignPodArtifactReceiptV1[] = [];\n for (const controlId of phase.controls) {\n const revision = state.controls[controlId];\n if (!revision || revision.status !== 'current') throw new Error(`${controlId} must have a current revision before committing ${params.phaseId}`);\n if (params.expectedControlDigests[controlId] !== revision.digest) throw new Error(`${controlId} changed while ${params.phaseId} was being committed`);\n const receipt = state.artifactReceipts.find((candidate) => candidate.controlId === controlId && candidate.digest === revision.digest);\n if (!receipt) throw new Error(`${controlId} has not been persisted and verified through the Design Project entity VFS`);\n controlDigests[controlId] = revision.digest;\n receipts.push(receipt);\n }\n const committedAt = params.now ?? new Date().toISOString();\n const digest = await digestDesignPodValue({ phaseId: params.phaseId, controlDigests, artifactReceipts: receipts, committedByDid: params.actorDid, committedAt });\n const commitment: DesignPodPhaseCommitmentV1 = {\n schemaVersion: '1.0',\n phaseId: params.phaseId,\n decision: 'Yes, continue',\n committedByDid: params.actorDid,\n committedAt,\n controlDigests,\n artifactReceipts: receipts,\n proof: params.proof,\n digest,\n status: 'current',\n };\n const map = stateMap(doc);\n doc.transact(() => {\n assertProjectIdentity(map, state.identity, `${params.phaseId} commitment`);\n if (isRunTerminalOrPending(doc, state.identity.sessionRunId)) {\n throw new TerminalRunExecutionError(state.identity.sessionRunId, `design-pod-phase-commit:${params.phaseId}`);\n }\n for (const controlId of phase.controls) {\n const current = map.get(`${CONTROL_PREFIX}${controlId}`) as DesignPodControlRevisionV1 | undefined;\n if (!current || current.status !== 'current' || current.digest !== controlDigests[controlId]) {\n throw new Error(`${controlId} changed while ${params.phaseId} commitment was being prepared`);\n }\n const expectedReceipt = receipts.find((receipt) => receipt.controlId === controlId)!;\n const currentReceipt = map.get(`${ARTIFACT_PREFIX}${controlId}:${current.digest}`) as DesignPodArtifactReceiptV1 | undefined;\n if (\n !currentReceipt ||\n currentReceipt.id !== expectedReceipt.id ||\n currentReceipt.path !== expectedReceipt.path ||\n currentReceipt.version !== expectedReceipt.version ||\n currentReceipt.contentHash !== expectedReceipt.contentHash ||\n currentReceipt.cid !== expectedReceipt.cid\n ) {\n throw new Error(`${controlId} VFS proof changed while ${params.phaseId} commitment was being prepared`);\n }\n }\n const currentCommitment = map.get(`${COMMITMENT_PREFIX}${params.phaseId}`);\n if (isRecord(currentCommitment) && currentCommitment.status === 'current' && currentCommitment.digest !== commitment.digest) {\n assertPublicationCanBeInvalidated(map, `Recommitting ${params.phaseId}`);\n staleReviewAndRelease(map);\n }\n map.set(`${COMMITMENT_PREFIX}${params.phaseId}`, commitment);\n });\n return commitment;\n}\n\nexport async function computeDesignPodRevisionSetDigest(doc: Y.Doc): Promise<string> {\n const state = readDesignPodState(doc);\n if (!state) throw new Error('Design POD is not initialized');\n const phases = Object.entries(state.phaseCommitments)\n .filter(([, commitment]) => commitment?.status === 'current')\n .sort(([left], [right]) => left.localeCompare(right));\n const checklistRecords = Object.entries(state.checklistRecords).sort(([left], [right]) => left.localeCompare(right));\n return digestDesignPodValue({ phases, checklistRecords });\n}\n\nexport function markDesignPodReviewed(\n doc: Y.Doc,\n params: {\n reviewerDid: string;\n revisionSetDigest: string;\n decision: 'approved' | 'changes_required';\n assignmentDigest: string;\n reviewRequestDigest: string;\n proof: DesignPodActionProofV1;\n now?: string;\n }\n): DesignPodReviewRecordV1 {\n const identity = stateMap(doc).get(IDENTITY_KEY) as DesignPodProjectIdentityV1 | undefined;\n if (identity && isRunTerminalOrPending(doc, identity.sessionRunId)) {\n throw new TerminalRunExecutionError(identity.sessionRunId, 'design-pod-review');\n }\n const review: DesignPodReviewRecordV1 = {\n schemaVersion: '1.0',\n reviewerDid: params.reviewerDid,\n revisionSetDigest: params.revisionSetDigest,\n decision: params.decision,\n reviewedAt: params.now ?? new Date().toISOString(),\n assignmentDigest: params.assignmentDigest,\n reviewRequestDigest: params.reviewRequestDigest,\n proof: params.proof,\n status: 'current',\n };\n stateMap(doc).set(REVIEW_KEY, review);\n return review;\n}\n\nexport async function importLegacyDesignPodEvidence(\n doc: Y.Doc,\n evidence: LegacyDesignPodEvidenceV1,\n identity: Omit<DesignPodProjectIdentityV1, 'methodManifestDigest'>,\n persistence: {\n persistArtifact(params: {\n designProjectEntityDid: string;\n controlId: DesignPodControlId;\n revision: number;\n digest: string;\n content: Record<string, unknown>;\n }): Promise<Omit<DesignPodArtifactReceiptV1, 'schemaVersion' | 'controlId' | 'digest'>>;\n verifyArtifactReceipt(params: {\n designProjectEntityDid: string;\n revision: DesignPodControlRevisionV1;\n receipt: DesignPodArtifactReceiptV1;\n }): Promise<Omit<DesignPodArtifactReceiptV1, 'schemaVersion' | 'controlId' | 'digest'>>;\n }\n): Promise<void> {\n if (!evidence.legacyWorkspaceId || !['0.5', '0.6'].includes(evidence.sourceVersion) || !evidence.exportedAt) {\n throw new Error('Legacy Design POD evidence metadata is invalid');\n }\n if (evidence.history.length === 0) throw new Error('Legacy Design POD evidence requires its exported hash-chained history');\n let previousDigest: string | null = null;\n const payloadDigests = new Set<string>();\n for (const [index, record] of evidence.history.entries()) {\n if (record.sequence !== index || record.previousDigest !== previousDigest) {\n throw new Error(`Legacy Design POD history chain is broken at sequence ${index}`);\n }\n const digest = await digestDesignPodValue({\n sequence: record.sequence,\n previousDigest: record.previousDigest,\n eventType: record.eventType,\n payloadDigest: record.payloadDigest,\n occurredAt: record.occurredAt,\n });\n if (record.digest !== digest) throw new Error(`Legacy Design POD history digest is invalid at sequence ${index}`);\n payloadDigests.add(record.payloadDigest);\n previousDigest = digest;\n }\n if (evidence.historyDigest !== previousDigest) throw new Error('Legacy Design POD history head does not match the verified hash chain');\n const artifacts = [] as Array<{ artifact: LegacyDesignPodEvidenceV1['artifacts'][number]; content: Record<string, unknown> }>;\n for (const artifact of evidence.artifacts) {\n const sourceDigest = await digestDesignPodValue({ controlId: artifact.controlId, content: artifact.content });\n if (artifact.sourceDigest !== sourceDigest || !payloadDigests.has(sourceDigest)) {\n throw new Error(`${artifact.controlId} is not bound to the verified legacy history`);\n }\n artifacts.push({ artifact, content: { ...artifact.content, legacySourceDigest: artifact.sourceDigest } });\n }\n\n await initializeDesignPod(doc, 'design-yoma/v1', identity);\n if (isRunTerminalOrPending(doc, identity.sessionRunId)) {\n throw new TerminalRunExecutionError(identity.sessionRunId, 'design-pod-legacy-import');\n }\n stateMap(doc).set(LEGACY_EVIDENCE_KEY, evidence);\n for (const { artifact, content } of artifacts) {\n const revision = await updateDesignPodControl(doc, {\n controlId: artifact.controlId,\n content,\n actorDid: 'did:ixo:legacy-import',\n now: evidence.exportedAt,\n importedLegacy: true,\n });\n const persisted = await persistence.persistArtifact({\n designProjectEntityDid: identity.designProjectEntityDid,\n controlId: artifact.controlId,\n revision: revision.revision,\n digest: revision.digest,\n content: revision.content,\n });\n const receipt: DesignPodArtifactReceiptV1 = { schemaVersion: '1.0', controlId: artifact.controlId, digest: revision.digest, ...persisted };\n const verified = await persistence.verifyArtifactReceipt({ designProjectEntityDid: identity.designProjectEntityDid, revision, receipt });\n if (\n verified.id !== receipt.id ||\n verified.path !== receipt.path ||\n verified.version !== receipt.version ||\n verified.contentHash !== receipt.contentHash ||\n verified.cid !== receipt.cid\n ) {\n throw new Error(`${artifact.controlId} legacy VFS import failed authoritative readback`);\n }\n createDesignPodArtifactReceipt(doc, { controlId: artifact.controlId, digest: revision.digest, ...verified });\n }\n}\n","import type * as Y from 'yjs';\nimport type { StoredInvocation } from '../../types/ucan';\nimport { readInvocationsForRun } from '../flowEngine/runHistory';\nimport {\n DESIGN_POD_METHODS,\n type DesignPodActionProofV1,\n type DesignPodArtifactReceiptV1,\n type DesignPodControlRevisionV1,\n type DesignPodFlowStateV1,\n type DesignPodRuntimeAuthorityV1,\n} from './contracts';\nimport { canonicalDesignPodJson, digestDesignPodValue } from './digest';\nimport { readDesignPodDefinition, readDesignPodState, sameDesignPodActor } from './state';\n\nexport interface DesignPodPackageFileV1 {\n relativePath: '/blueprint.json' | '/.skills/design-yoma.json' | '/apps/yoma-deed.json' | `/apps/flows/${string}.json` | '/.domain/domain.md';\n mediaType: 'application/json' | 'text/markdown';\n content: string;\n}\n\ninterface YomaOperationalFlowTemplateV1 {\n schemaVersion: '1.0';\n kind: 'OperationalFlowTemplate';\n id: string;\n title: string;\n sourceControlIds: string[];\n nodes: Array<{ id: string; sequence: number; actionType: string }>;\n}\n\nconst YOMA_OPERATIONAL_FLOW_GROUPS = [\n {\n id: 'youth-participation',\n title: 'Youth opportunity participation and YoID linkage',\n sourceControlIds: ['service_architecture', 'ucan_rights', 'flow_configuration', 'governance_risk'],\n actions: ['qi/yoma.opportunity', 'qi/yoid.link'],\n },\n {\n id: 'work-claims',\n title: 'Work collection, claim submission, and evaluation',\n sourceControlIds: ['service_architecture', 'evidence_model', 'claims_rubrics', 'ucan_rights', 'flow_configuration'],\n actions: ['qi/collection.lifecycle', 'qi/collection.users', 'qi/claim.submit', 'qi/claim.evaluate'],\n },\n {\n id: 'rewards-and-funding',\n title: 'Funding verification and claims-native reward readiness',\n sourceControlIds: ['automation_feasibility', 'claims_rubrics', 'commercial_packaging', 'flow_configuration'],\n actions: ['qi/funding.verify'],\n },\n {\n id: 'youth-credentials',\n title: 'Youth credential issuance and delivery',\n sourceControlIds: ['outcome_contract', 'evidence_model', 'ucan_rights', 'flow_configuration'],\n actions: ['qi/credential.issue', 'qi/credential.store'],\n },\n {\n id: 'outcome-certification',\n title: 'Theory-of-change outcome certificate issuance',\n sourceControlIds: ['outcome_contract', 'evidence_model', 'commercial_packaging', 'governance_risk', 'flow_configuration'],\n actions: ['qi/outcome.certificate'],\n },\n] as const;\n\nfunction compileYomaOperationalFlows(manifest: NonNullable<ReturnType<typeof readDesignPodDefinition>>): YomaOperationalFlowTemplateV1[] {\n if (manifest.methodId !== 'design-yoma/v1') return [];\n const declared = new Set(manifest.operationalActions);\n const flows = YOMA_OPERATIONAL_FLOW_GROUPS.map((group) => ({\n schemaVersion: '1.0' as const,\n kind: 'OperationalFlowTemplate' as const,\n id: group.id,\n title: group.title,\n sourceControlIds: [...group.sourceControlIds],\n nodes: group.actions.map((actionType, sequence) => ({ id: `${group.id}-${sequence + 1}`, sequence, actionType })),\n }));\n const compiledActions: string[] = flows.flatMap((flow) => flow.nodes.map((node) => node.actionType));\n const missing = manifest.operationalActions.filter((action) => !compiledActions.includes(action));\n const undeclared = compiledActions.filter((action) => !declared.has(action));\n if (missing.length > 0 || undeclared.length > 0) {\n throw new Error(\n `Yoma operational Flow templates do not match the pinned action manifest (missing: ${missing.join(', ') || 'none'}; undeclared: ${undeclared.join(', ') || 'none'})`\n );\n }\n return flows;\n}\n\nexport interface CompiledDesignPodReleaseV1 {\n schemaVersion: '1.0';\n releaseDigest: string;\n revisionSetDigest: string;\n packageRoot: string;\n files: DesignPodPackageFileV1[];\n}\n\nexport interface DesignPodInvocationVerificationRequestV1 {\n invocation: StoredInvocation;\n expected: {\n actorDid: string;\n actionType: string;\n blockId: string;\n inputDigest: string;\n flowUri: string;\n flowOwnerDid: string;\n /** Design Project entity the Flow owner must control on chain. */\n designProjectEntityDid?: string;\n sessionRunId: string;\n /** Defaults to flow/block/execute on the reviewed block. */\n capability?: { can: string; with: string };\n };\n}\n\nexport type DesignPodInvocationVerifier = (request: DesignPodInvocationVerificationRequestV1) => Promise<{ valid: boolean; error?: string }>;\n\nexport interface CompileDesignPodReleaseOptions {\n /** Portal-owned project, Matrix room, and session authority. Never derive this from the collaborative document. */\n authority: DesignPodRuntimeAuthorityV1;\n verifyInvocation: DesignPodInvocationVerifier;\n verifyArtifactReceipt(request: {\n designProjectEntityDid: string;\n revision: DesignPodControlRevisionV1;\n receipt: DesignPodArtifactReceiptV1;\n }): Promise<Omit<DesignPodArtifactReceiptV1, 'schemaVersion' | 'controlId' | 'digest'>>;\n}\n\nfunction governedInputs(state: DesignPodFlowStateV1, inputs: Record<string, unknown>): Record<string, unknown> {\n return {\n ...inputs,\n designProjectEntityDid: state.identity.designProjectEntityDid,\n flowRoomId: state.identity.flowRoomId,\n sessionRunId: state.identity.sessionRunId,\n methodManifestDigest: state.identity.methodManifestDigest,\n };\n}\n\nfunction flowAuthority(doc: Y.Doc, state: DesignPodFlowStateV1, authority: DesignPodRuntimeAuthorityV1): { flowUri: string; flowOwnerDid: string } {\n const root = doc.getMap('root');\n if (\n state.identity.designProjectEntityDid !== authority.designProjectEntityDid ||\n state.identity.flowOwnerDid !== authority.flowOwnerDid ||\n state.identity.flowRoomId !== authority.flowRoomId ||\n state.identity.sessionRunId !== authority.sessionRunId\n ) {\n throw new Error('The Design POD project identity does not match Portal-owned authority');\n }\n if (root.get('doc_id') !== authority.flowRoomId || root.get('flowOwnerDid') !== authority.flowOwnerDid) {\n throw new Error('The collaborative Flow authority does not match the Portal-owned Flow owner and Matrix room');\n }\n return { flowUri: `ixo:flow:${authority.flowRoomId}`, flowOwnerDid: authority.flowOwnerDid };\n}\n\nasync function verifyActionProof(\n doc: Y.Doc,\n state: DesignPodFlowStateV1,\n proof: DesignPodActionProofV1 | undefined,\n expected: { actorDid: string; actionType: string; inputs: Record<string, unknown> },\n authority: DesignPodRuntimeAuthorityV1,\n verifyInvocation: DesignPodInvocationVerifier\n): Promise<void> {\n if (!proof?.invocationCid || !proof.actionBlockId || !proof.inputDigest) {\n throw new Error(`${expected.actionType} is missing its identity-bound Flow invocation proof`);\n }\n const expectedInputDigest = await digestDesignPodValue(expected.inputs);\n if (proof.inputDigest !== expectedInputDigest) throw new Error(`${expected.actionType} proof is not bound to its canonical action input`);\n const invocation = readInvocationsForRun(doc, state.identity.sessionRunId).find((candidate) => candidate.cid === proof.invocationCid);\n if (!invocation) throw new Error(`${expected.actionType} invocation is not present in the pinned Matrix run history`);\n const { flowUri, flowOwnerDid } = flowAuthority(doc, state, authority);\n if (\n invocation.result !== 'success' ||\n invocation.invokerDid !== expected.actorDid ||\n invocation.blockId !== proof.actionBlockId ||\n invocation.sessionRunId !== state.identity.sessionRunId ||\n invocation.capability?.can !== 'flow/block/execute' ||\n invocation.capability?.with !== `${flowUri}:${proof.actionBlockId}` ||\n invocation.facts?.actionType !== expected.actionType ||\n invocation.facts?.inputDigest !== proof.inputDigest ||\n invocation.facts?.sessionRunId !== state.identity.sessionRunId\n ) {\n throw new Error(`${expected.actionType} invocation metadata does not match the reviewed Flow action`);\n }\n const verified = await verifyInvocation({\n invocation,\n expected: {\n actorDid: expected.actorDid,\n actionType: expected.actionType,\n blockId: proof.actionBlockId,\n inputDigest: proof.inputDigest,\n flowUri,\n flowOwnerDid,\n designProjectEntityDid: state.identity.designProjectEntityDid,\n sessionRunId: state.identity.sessionRunId,\n },\n });\n if (!verified.valid) throw new Error(`${expected.actionType} invocation failed cryptographic verification${verified.error ? `: ${verified.error}` : ''}`);\n}\n\nasync function assertCompilable(\n doc: Y.Doc,\n options: CompileDesignPodReleaseOptions\n): Promise<{ manifest: NonNullable<ReturnType<typeof readDesignPodDefinition>>; state: NonNullable<ReturnType<typeof readDesignPodState>> }> {\n const manifest = readDesignPodDefinition(doc);\n const state = readDesignPodState(doc);\n if (!manifest || !state) throw new Error('Design POD is not initialized');\n const registeredManifest = DESIGN_POD_METHODS[manifest.methodId];\n if (!registeredManifest || canonicalDesignPodJson(manifest) !== canonicalDesignPodJson(registeredManifest)) {\n throw new Error('The Design POD method definition does not match the registered Portal method');\n }\n if ((await digestDesignPodValue(manifest)) !== state.identity.methodManifestDigest) {\n throw new Error('The current Design POD method manifest does not match its pinned digest');\n }\n const manifestControlIds = new Set(manifest.phases.flatMap((phase) => phase.controls));\n const unknownControlIds = Object.keys(state.controls).filter((controlId) => !manifestControlIds.has(controlId as keyof typeof manifest.controls));\n if (unknownControlIds.length > 0) throw new Error(`Blueprint contains controls outside the pinned method manifest: ${unknownControlIds.join(', ')}`);\n const governedChecklistIds = new Set(manifest.publicationRules.checklistItems.map((item) => item.id));\n const unknownChecklistIds = Object.keys(state.checklistRecords).filter((itemId) => !governedChecklistIds.has(itemId));\n if (unknownChecklistIds.length > 0) throw new Error(`Blueprint contains checklist records outside the pinned method manifest: ${unknownChecklistIds.join(', ')}`);\n const blockers: string[] = [];\n for (const item of manifest.publicationRules.checklistItems) {\n const record = state.checklistRecords[item.id];\n if (!record) throw new Error(`Governed checklist item ${item.id} requires a signed disposition`);\n if (record.itemId !== item.id || !['resolved', 'accepted_for_later', 'blocking'].includes(record.disposition)) {\n throw new Error(`Governed checklist item ${item.id} has an invalid disposition record`);\n }\n const digest = await digestDesignPodValue({ itemId: record.itemId, disposition: record.disposition, updatedByDid: record.updatedByDid, updatedAt: record.updatedAt });\n if (record.digest !== digest) throw new Error(`Governed checklist item ${item.id} does not match its signed digest`);\n await verifyActionProof(\n doc,\n state,\n record.proof,\n {\n actorDid: record.updatedByDid,\n actionType: 'qi/blueprint.checklist-update',\n inputs: governedInputs(state, { itemId: record.itemId, disposition: record.disposition }),\n },\n options.authority,\n options.verifyInvocation\n );\n if (record.disposition === 'blocking') blockers.push(item.id);\n }\n if (blockers.length > 0) throw new Error(`Publication blockers must be resolved before compilation: ${blockers.join(', ')}`);\n const providerDids = new Set<string>();\n for (const phase of manifest.phases) {\n const commitment = state.phaseCommitments[phase.id];\n if (commitment?.status !== 'current') throw new Error(`${phase.title} requires a current provider commitment`);\n for (const controlId of phase.controls) {\n const revision = state.controls[controlId];\n if (!revision || revision.status !== 'current') throw new Error(`${controlId} requires a current control revision`);\n const canonicalDigest = await digestDesignPodValue({ controlId: revision.controlId, revision: revision.revision, content: revision.content });\n if (revision.controlId !== controlId || revision.digest !== canonicalDigest || commitment.controlDigests[controlId] !== canonicalDigest) {\n throw new Error(`${controlId} current content is not bound to its signed phase commitment`);\n }\n const receipts = commitment.artifactReceipts.filter((receipt) => receipt.controlId === controlId && receipt.digest === canonicalDigest);\n if (receipts.length !== 1) throw new Error(`${controlId} requires exactly one committed VFS artifact receipt`);\n const receipt = receipts[0];\n const verified = await options.verifyArtifactReceipt({ designProjectEntityDid: state.identity.designProjectEntityDid, revision, receipt });\n if (\n verified.id !== receipt.id ||\n verified.path !== receipt.path ||\n verified.version !== receipt.version ||\n verified.contentHash !== receipt.contentHash ||\n verified.cid !== receipt.cid\n ) {\n throw new Error(`${controlId} committed VFS artifact receipt failed authoritative readback`);\n }\n }\n if (commitment.artifactReceipts.length !== phase.controls.length) throw new Error(`${phase.id} commitment contains unexpected VFS artifact receipts`);\n const commitmentDigest = await digestDesignPodValue({\n phaseId: commitment.phaseId,\n controlDigests: commitment.controlDigests,\n artifactReceipts: commitment.artifactReceipts,\n committedByDid: commitment.committedByDid,\n committedAt: commitment.committedAt,\n });\n if (commitment.phaseId !== phase.id || commitment.digest !== commitmentDigest) throw new Error(`${phase.id} commitment does not match its governed digest`);\n providerDids.add(commitment.committedByDid);\n await verifyActionProof(\n doc,\n state,\n commitment.proof,\n {\n actorDid: commitment.committedByDid,\n actionType: 'qi/blueprint.phase-commit',\n inputs: governedInputs(state, { phase: phase.id, decision: commitment.decision, expectedControlDigests: commitment.controlDigests }),\n },\n options.authority,\n options.verifyInvocation\n );\n }\n if (state.review?.status !== 'current' || state.review.decision !== 'approved') {\n throw new Error('An identity-bound independent whole-blueprint approval is required before compilation');\n }\n const assignment = state.reviewAssignment;\n const request = state.reviewRequest;\n if (!assignment || assignment.digest !== state.review.assignmentDigest || !sameDesignPodActor(assignment.reviewerDid, state.review.reviewerDid)) {\n const reason = !assignment\n ? 'no reviewer assignment on the document'\n : assignment.digest !== state.review.assignmentDigest\n ? `assignment digest ${assignment.digest} != review-bound ${state.review.assignmentDigest}`\n : `assignment reviewer ${assignment.reviewerDid} != review reviewer ${state.review.reviewerDid}`;\n throw new Error(`The independent review is not bound to the current reviewer assignment (${reason})`);\n }\n if (!request || request.status !== 'responded' || request.digest !== state.review.reviewRequestDigest || request.revisionSetDigest !== state.review.revisionSetDigest) {\n const reason = !request\n ? 'no review request on the document'\n : request.status !== 'responded'\n ? `request status is ${request.status}`\n : request.digest !== state.review.reviewRequestDigest\n ? `request digest ${request.digest} != review-bound ${state.review.reviewRequestDigest}`\n : `request revision set ${request.revisionSetDigest} != review-bound ${state.review.revisionSetDigest}`;\n throw new Error(`The independent review is not bound to the current review request (${reason})`);\n }\n if ((await digestDesignPodValue({ reviewerDid: assignment.reviewerDid, assignedByDid: assignment.assignedByDid, assignedAt: assignment.assignedAt })) !== assignment.digest) {\n throw new Error('The reviewer assignment digest does not match its governed record');\n }\n if ((await digestDesignPodValue({ revisionSetDigest: request.revisionSetDigest, submittedByDid: request.submittedByDid, submittedAt: request.submittedAt })) !== request.digest) {\n throw new Error('The review request digest does not match its governed record');\n }\n const isCommittedProvider = (did: string) => [...providerDids].some((provider) => sameDesignPodActor(provider, did));\n if (!isCommittedProvider(assignment.assignedByDid) || !isCommittedProvider(request.submittedByDid)) {\n throw new Error('Reviewer assignment and review submission must be authorized by a committed provider');\n }\n if (isCommittedProvider(state.review.reviewerDid)) throw new Error('The independent reviewer cannot be a provider who committed this blueprint');\n await verifyActionProof(\n doc,\n state,\n assignment.proof,\n { actorDid: assignment.assignedByDid, actionType: 'qi/blueprint.reviewer-assign', inputs: governedInputs(state, { reviewerDid: assignment.reviewerDid }) },\n options.authority,\n options.verifyInvocation\n );\n await verifyActionProof(\n doc,\n state,\n request.proof,\n { actorDid: request.submittedByDid, actionType: 'qi/blueprint.review-submit', inputs: governedInputs(state, {}) },\n options.authority,\n options.verifyInvocation\n );\n await verifyActionProof(\n doc,\n state,\n state.review.proof,\n {\n actorDid: state.review.reviewerDid,\n actionType: 'qi/blueprint.review-respond',\n inputs: governedInputs(state, {\n revisionSetDigest: state.review.revisionSetDigest,\n decision: state.review.decision,\n assignmentDigest: state.review.assignmentDigest,\n reviewRequestDigest: state.review.reviewRequestDigest,\n }),\n },\n options.authority,\n options.verifyInvocation\n );\n return { manifest, state };\n}\n\nexport async function compileDesignPodRelease(doc: Y.Doc, options: CompileDesignPodReleaseOptions): Promise<CompiledDesignPodReleaseV1> {\n const { manifest, state } = await assertCompilable(doc, options);\n const committedPhases = Object.entries(state.phaseCommitments)\n .filter(([, commitment]) => commitment?.status === 'current')\n .sort(([left], [right]) => left.localeCompare(right));\n const checklistRecords = Object.entries(state.checklistRecords).sort(([left], [right]) => left.localeCompare(right));\n const revisionSetDigest = await digestDesignPodValue({ phases: committedPhases, checklistRecords });\n if (state.review?.revisionSetDigest !== revisionSetDigest) {\n throw new Error('The independent review is not bound to the current committed revision set');\n }\n const controlRevisions = Object.fromEntries(manifest.phases.flatMap((phase) => phase.controls.map((controlId) => [controlId, state.controls[controlId]])));\n const blueprint = {\n schemaVersion: '1.0',\n methodManifest: manifest,\n methodManifestDigest: state.identity.methodManifestDigest,\n designProjectEntityDid: state.identity.designProjectEntityDid,\n flowRoomId: state.identity.flowRoomId,\n controlRevisions,\n phaseCommitments: state.phaseCommitments,\n checklistRecords: state.checklistRecords,\n review: state.review,\n revisionSetDigest,\n };\n const skillManifest = {\n schemaVersion: '1.0',\n methodId: manifest.methodId,\n controls: Object.values(manifest.controls).map(({ id, skill, schema, dependencies }) => ({ id, skill, schema, dependencies })),\n };\n const operationalFlows = compileYomaOperationalFlows(manifest);\n const operationalApp = {\n schemaVersion: '1.0',\n kind: manifest.methodId === 'design-yoma/v1' ? 'YomaDeed' : 'ProfessionalServicePOD',\n actions: manifest.operationalActions,\n flowFiles: operationalFlows.map((flow) => `/apps/flows/${flow.id}.json`),\n designFlowRoomId: state.identity.flowRoomId,\n };\n const domain = [\n '---',\n `id: ${state.identity.designProjectEntityDid}`,\n `kind: ${manifest.methodId === 'design-yoma/v1' ? 'YomaDeed' : 'ServicePOD'}`,\n `designPodMethod: ${manifest.methodId}`,\n `revisionSetDigest: ${revisionSetDigest}`,\n '---',\n '',\n `# ${manifest.title}`,\n '',\n 'This private domain package was compiled from the independently reviewed Portal Design POD Flow.',\n '',\n ].join('\\n');\n const releaseDigest = await digestDesignPodValue({ blueprint, skillManifest, operationalApp, operationalFlows, domain });\n const packageRoot = `/pod-blueprints/${releaseDigest}`;\n return {\n schemaVersion: '1.0',\n releaseDigest,\n revisionSetDigest,\n packageRoot,\n files: [\n { relativePath: '/blueprint.json', mediaType: 'application/json', content: canonicalDesignPodJson(blueprint) },\n { relativePath: '/.skills/design-yoma.json', mediaType: 'application/json', content: canonicalDesignPodJson(skillManifest) },\n { relativePath: '/apps/yoma-deed.json', mediaType: 'application/json', content: canonicalDesignPodJson(operationalApp) },\n ...operationalFlows.map((flow) => ({\n relativePath: `/apps/flows/${flow.id}.json` as const,\n mediaType: 'application/json' as const,\n content: canonicalDesignPodJson(flow),\n })),\n // domain.md is intentionally last. The host persists and verifies every\n // private dependency before making this package discoverable.\n { relativePath: '/.domain/domain.md', mediaType: 'text/markdown', content: domain },\n ],\n };\n}\n","import type * as Y from 'yjs';\nimport type { DesignPodService } from '../actionRegistry/types';\nimport type { StoredInvocation } from '../../types/ucan';\nimport { readInvocationsForRun } from '../flowEngine/runHistory';\nimport { canonicalDesignPodJson, digestDesignPodValue } from './digest';\nimport { readDesignPodState } from './state';\n\nfunction record(value: unknown, name: string): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(`${name} is missing or invalid`);\n return value as Record<string, unknown>;\n}\n\nfunction string(value: unknown, name: string): string {\n if (typeof value !== 'string' || !value.trim()) throw new Error(`${name} is missing or invalid`);\n return value;\n}\n\nconst LINKED_RESOURCE_FIELDS = ['id', 'type', 'description', 'serviceEndpoint', 'proof', 'mediaType', 'encrypted', 'right'] as const;\n\n/**\n * Re-authenticate the exact published Design POD release before its run may\n * become terminal. Collaborative release fields are indexes only: closure is\n * bound to a signed publish invocation and authoritative IXO readback.\n */\nexport async function verifyDesignPodPublishedRun(params: { yDoc: Y.Doc; runId: string; flowUri: string; service: DesignPodService }): Promise<{ valid: boolean; error?: string }> {\n try {\n const state = readDesignPodState(params.yDoc);\n if (!state || state.identity.sessionRunId !== params.runId) throw new Error('The run is not the pinned Design POD session');\n if (params.flowUri !== `ixo:flow:${state.identity.flowRoomId}`) throw new Error('The Flow URI does not match the pinned Matrix room');\n const root = params.yDoc.getMap('root');\n if (root.get('doc_id') !== state.identity.flowRoomId || root.get('flowOwnerDid') !== state.identity.flowOwnerDid) {\n throw new Error('The collaborative Flow authority does not match the pinned Portal authority');\n }\n\n const release = state.release;\n if (!release?.digest || release.status !== 'published') throw new Error('The current Design POD release is not published');\n const receipt = record(release.publicationReceipt, 'publicationReceipt');\n if (receipt.releaseDigest !== release.digest) throw new Error('The publication receipt is not bound to the current release');\n const linkedResource = record(receipt.linkedResource, 'publicationReceipt.linkedResource');\n const resourceId = string(receipt.resourceId, 'publicationReceipt.resourceId');\n if (linkedResource.id !== resourceId) throw new Error('The publication receipt resource identity is inconsistent');\n\n const publication = record(params.yDoc.getMap('designPodState').get(`publication:${release.digest}`), 'authenticated publication record');\n for (const field of ['releaseDigest', 'resourceId', 'domainCid'] as const) {\n if (publication[field] !== receipt[field]) throw new Error(`The authenticated publication ${field} does not match its receipt`);\n }\n if (canonicalDesignPodJson(publication.linkedResource) !== canonicalDesignPodJson(linkedResource)) {\n throw new Error('The authenticated publication linked resource does not match its receipt');\n }\n\n const invocationCid = string(publication.reconciledByInvocationCid, 'publication.reconciledByInvocationCid');\n const invocation = readInvocationsForRun(params.yDoc, params.runId).find((candidate) => candidate.cid === invocationCid);\n if (!invocation) throw new Error('The signed publication invocation is missing from the pinned run history');\n const blockId = string(invocation.blockId, 'publication invocation blockId');\n const inputDigest = await digestDesignPodValue({\n releaseDigest: release.digest,\n designProjectEntityDid: state.identity.designProjectEntityDid,\n flowRoomId: state.identity.flowRoomId,\n sessionRunId: state.identity.sessionRunId,\n methodManifestDigest: state.identity.methodManifestDigest,\n });\n if (\n invocation.result !== 'success' ||\n invocation.sessionRunId !== params.runId ||\n invocation.capability?.can !== 'flow/block/execute' ||\n invocation.capability?.with !== `${params.flowUri}:${blockId}` ||\n invocation.facts?.actionType !== 'qi/blueprint.publish' ||\n invocation.facts?.inputDigest !== inputDigest ||\n invocation.facts?.sessionRunId !== params.runId\n ) {\n throw new Error('The publication record is not bound to a successful canonical publish invocation');\n }\n const verifiedInvocation = await params.service.verifyInvocation({\n invocation: invocation as StoredInvocation,\n expected: {\n actorDid: invocation.invokerDid,\n actionType: 'qi/blueprint.publish',\n blockId,\n inputDigest,\n flowUri: params.flowUri,\n flowOwnerDid: state.identity.flowOwnerDid,\n designProjectEntityDid: state.identity.designProjectEntityDid,\n sessionRunId: params.runId,\n },\n });\n if (!verifiedInvocation.valid)\n throw new Error(`The publication invocation failed cryptographic verification${verifiedInvocation.error ? `: ${verifiedInvocation.error}` : ''}`);\n\n const typedLinkedResource = Object.fromEntries(LINKED_RESOURCE_FIELDS.map((field) => [field, string(linkedResource[field], `linkedResource.${field}`)])) as {\n id: string;\n type: string;\n description: string;\n serviceEndpoint: string;\n proof: string;\n mediaType: string;\n encrypted: string;\n right: string;\n };\n const authoritative = await params.service.verifyPublicationReceipt({\n designProjectEntityDid: state.identity.designProjectEntityDid,\n releaseDigest: release.digest,\n linkedResource: typedLinkedResource,\n });\n if (authoritative.status !== 'published' || !authoritative.linkedResource) throw new Error('IXO has not authoritatively retained the published linked resource');\n if (canonicalDesignPodJson(authoritative.linkedResource) !== canonicalDesignPodJson(typedLinkedResource)) {\n throw new Error('IXO authoritative linked-resource readback does not match the publication receipt');\n }\n return { valid: true };\n } catch (error) {\n return { valid: false, error: error instanceof Error ? error.message : 'Design POD publication verification failed' };\n }\n}\n","import type { BaseUcanFlow } from '../../types/baseUcan';\nimport { DESIGN_POD_METHODS, DESIGN_POD_TEMPLATE_ID, type DesignPodMethodId } from './contracts';\n\n/**\n * The provider-facing builder Flow. The method definition is pinned in a\n * separate Y.Map; these five blocks are the only phase ceremonies a provider\n * operates. The additional governed blocks make independent review,\n * compilation, and publication executable without exposing seventeen controls\n * as workflow stages.\n */\nexport function createDesignPodPortalJourneyPlan(methodId: DesignPodMethodId): BaseUcanFlow {\n const manifest = DESIGN_POD_METHODS[methodId];\n return {\n kind: 'qi.flow.base-ucan',\n version: '1.0',\n flowId: DESIGN_POD_TEMPLATE_ID,\n title: manifest.title,\n goal: 'Design, independently review, dry-run, and deploy one evidence-backed POD Blueprint.',\n capabilities: [\n ...manifest.phases.map((phase) => ({\n id: `design-pod-${phase.id}-commit`,\n can: 'blueprint/phase-commit',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:${phase.id}`,\n title: phase.title,\n description: phase.description,\n phase: phase.id,\n nb: { phase: phase.id, decision: 'Yes, continue' },\n })),\n {\n id: 'design-pod-checklist-update',\n can: 'blueprint/checklist-update',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:publication-checklist`,\n title: 'Update publication checklist',\n description: 'Record one signed governed checklist disposition before review and publication.',\n phase: 'validation',\n nb: {},\n },\n {\n id: 'design-pod-reviewer-assign',\n can: 'blueprint/reviewer-assign',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:reviewer-assignment`,\n title: 'Assign independent reviewer',\n description: 'Nominate the IXO DID that will independently review the exact committed blueprint.',\n phase: 'deployment',\n nb: {},\n },\n {\n id: 'design-pod-review-submit',\n can: 'blueprint/review-submit',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:review-submission`,\n title: 'Submit blueprint for review',\n description: 'Bind the five current commitments into one immutable review request.',\n phase: 'deployment',\n nb: {},\n },\n {\n id: 'design-pod-review-respond',\n can: 'blueprint/review-respond',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:review-response`,\n title: 'Record independent review',\n description: 'Approve the submitted revision set or require governed changes.',\n phase: 'deployment',\n nb: {},\n },\n {\n id: 'design-pod-release-compile',\n can: 'blueprint/release-compile',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:release-compilation`,\n title: 'Compile reviewed blueprint',\n description: 'Compile the exact approved revision set into the deterministic private VFS package.',\n phase: 'deployment',\n nb: {},\n },\n {\n id: 'design-pod-publish',\n can: 'blueprint/publish',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:publication`,\n title: 'Publish blueprint',\n description: 'Persist the package through the entity VFS and publish its verified IXO linked resource.',\n phase: 'deployment',\n nb: {},\n },\n {\n id: 'design-pod-protocol-mint',\n can: 'blueprint/protocol-mint',\n with: `ixo:flow:${DESIGN_POD_TEMPLATE_ID}:protocol-mint`,\n title: 'Mint protocol',\n description: 'Create the protocol entity from the published release and unpack its package so instances are ready to run.',\n phase: 'deployment',\n nb: {},\n },\n ],\n };\n}\n\nexport const PROFESSIONAL_SERVICE_DESIGN_POD_PLAN_V1 = createDesignPodPortalJourneyPlan('professional-service/v1');\nexport const YOMA_DESIGN_POD_PLAN_V1 = createDesignPodPortalJourneyPlan('design-yoma/v1');\n","import type { BaseUcanFlow } from '../../types/baseUcan';\nimport { getAction } from '../actionRegistry/registry';\n\n/**\n * One operational Flow template as it travels inside a published release package\n * (`/apps/flows/<id>.json`). Structurally what the compiler emits; parsed back\n * defensively here because it arrives as package bytes, not as a live object.\n */\nexport interface DesignPodOperationalFlowV1 {\n schemaVersion: '1.0';\n kind: 'OperationalFlowTemplate';\n id: string;\n title: string;\n sourceControlIds: string[];\n nodes: Array<{ id: string; sequence: number; actionType: string; inputs?: Record<string, unknown> }>;\n}\n\nexport function parseDesignPodOperationalFlow(raw: unknown): DesignPodOperationalFlowV1 | undefined {\n if (!raw || typeof raw !== 'object') return undefined;\n const candidate = raw as Partial<DesignPodOperationalFlowV1>;\n if (candidate.kind !== 'OperationalFlowTemplate' || typeof candidate.id !== 'string' || !Array.isArray(candidate.nodes)) return undefined;\n const nodes = candidate.nodes\n .filter((node): node is DesignPodOperationalFlowV1['nodes'][number] => !!node && typeof node.id === 'string' && typeof node.actionType === 'string')\n .map((node, index) => ({\n id: node.id,\n sequence: typeof node.sequence === 'number' ? node.sequence : index,\n actionType: node.actionType,\n ...(node.inputs && typeof node.inputs === 'object' ? { inputs: node.inputs as Record<string, unknown> } : {}),\n }))\n .sort((left, right) => left.sequence - right.sequence);\n if (nodes.length === 0) return undefined;\n return {\n schemaVersion: '1.0',\n kind: 'OperationalFlowTemplate',\n id: candidate.id,\n title: typeof candidate.title === 'string' && candidate.title.trim() ? candidate.title : candidate.id,\n sourceControlIds: Array.isArray(candidate.sourceControlIds) ? candidate.sourceControlIds.filter((id): id is string => typeof id === 'string') : [],\n nodes,\n };\n}\n\n/**\n * Turn a packaged operational Flow template into a Base UCAN plan, so minting a\n * protocol reuses the same compile-into-a-room path the Portal already seeds\n * Design PODs with (`setupFlowFromBaseUcan`).\n *\n * The plan is keyed by capability (`can`), so each node's `actionType` is\n * resolved through the registry. Any per-node `inputs` the package carries are\n * passed through as `nb` — today the compiler emits none, but a package that\n * parameterizes its blocks from the design needs no change here.\n */\nexport function createDesignPodOperationalFlowPlan(flow: DesignPodOperationalFlowV1): BaseUcanFlow {\n const capabilities = flow.nodes.map((node) => {\n const can = getAction(node.actionType)?.can;\n // The plan is keyed by ability, so an action that declares none cannot be\n // compiled into a block — fail the mint rather than emit a broken template.\n if (!can) throw new Error(`Operational Flow \"${flow.id}\" references ${node.actionType}, which is not a registered action with a UCAN ability`);\n return {\n id: node.id,\n can,\n with: `ixo:flow:${flow.id}:${node.id}`,\n title: node.actionType,\n description: `Operational step ${node.sequence + 1} of ${flow.title}.`,\n nb: node.inputs ?? {},\n };\n });\n return {\n kind: 'qi.flow.base-ucan',\n version: '1.0',\n // Left empty on purpose: setupFlowFromBaseUcan fills it from the room it is\n // instantiated into, which is what makes each clone its own flow.\n flowId: '',\n title: flow.title,\n goal: `Run ${flow.title}.`,\n capabilities,\n };\n}\n","import type { DesignPodFlowStateV1, DesignPodMethodManifestV1, DesignPodPhaseDefinitionV1 } from './contracts';\n\n/**\n * The companion prompt for \"fill this phase\". Lives in core so the journey\n * sidebar and the block's own detail panel send the assistant the exact same\n * instructions — two copies of this text WILL drift.\n */\nexport function buildDesignPodPhasePrompt(definition: DesignPodMethodManifestV1, state: DesignPodFlowStateV1, phase: DesignPodPhaseDefinitionV1): string {\n const controls = phase.controls\n .map((id) => {\n const control = definition.controls[id];\n const status = state.controls[id]?.status ?? 'missing';\n return `- ${id} (${control.title}; schema ${control.schema}; skill ${control.skill}; depends on ${control.dependencies.join(', ') || 'nothing'}) — ${status}`;\n })\n .join('\\n');\n return [\n `I am designing a ${definition.title} in the open Design POD Flow. Help me complete the \"${phase.title}\" phase: ${phase.description}`,\n `Controls in this phase:\\n${controls}`,\n \"First call get_design_pod_state to read the current state. It is the complete and only source of truth: the schema and skill names above are opaque identifiers, there is no external registry of control field definitions, so never search memory, skills or any knowledge base for them — design clear, named fields yourself from each control's title and description. Then work through the missing or stale controls: ask me one focused question at a time, and once you have enough, call propose_design_pod_patch with a complete typed content object for that control (include baseDigest when the control already exists). When you already have enough context for several controls — or when I explicitly ask you to cover multiple controls at once — call propose_design_pod_patch multiple times in the same turn, once per control; the proposals queue up in the Design POD panel and I accept each one separately. Do not ask me to paste JSON, and do not wait for one proposal to be accepted before proposing the next.\",\n ].join('\\n\\n');\n}\n"],"mappings":"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","names":["root","record","current","record","receipt"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/domainSign/types.ts
|
|
2
|
+
function parseDomainSignInputs(json) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
5
|
+
return {
|
|
6
|
+
entityType: parsed?.entityType || ""
|
|
7
|
+
};
|
|
8
|
+
} catch {
|
|
9
|
+
return {
|
|
10
|
+
entityType: ""
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function serializeDomainSignInputs(inputs) {
|
|
15
|
+
return JSON.stringify(inputs);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
parseDomainSignInputs,
|
|
20
|
+
serializeDomainSignInputs
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=chunk-JSPE6NGZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/domainSign/types.ts"],"sourcesContent":["export interface DomainSignInputs {\n entityType: string;\n}\n\nexport function parseDomainSignInputs(json: string): DomainSignInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n entityType: parsed?.entityType || '',\n };\n } catch {\n return {\n entityType: '',\n };\n }\n}\n\nexport function serializeDomainSignInputs(inputs: DomainSignInputs): string {\n return JSON.stringify(inputs);\n}\n"],"mappings":";AAIO,SAAS,sBAAsB,MAAgC;AACpE,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,YAAY,QAAQ,cAAc;AAAA,IACpC;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,MACL,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEO,SAAS,0BAA0B,QAAkC;AAC1E,SAAO,KAAK,UAAU,MAAM;AAC9B;","names":[]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
warnOnce
|
|
3
|
+
} from "./chunk-HT6L7A5M.js";
|
|
4
|
+
|
|
5
|
+
// src/core/lib/flowEngine/referenceResolver.ts
|
|
6
|
+
var REFERENCE_REGEX = /\{\{([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_.:]+)\}\}/g;
|
|
7
|
+
function parseReferences(input) {
|
|
8
|
+
const references = [];
|
|
9
|
+
const regex = new RegExp(REFERENCE_REGEX);
|
|
10
|
+
let match;
|
|
11
|
+
while ((match = regex.exec(input)) !== null) {
|
|
12
|
+
references.push({
|
|
13
|
+
fullMatch: match[0],
|
|
14
|
+
blockId: match[1],
|
|
15
|
+
propPath: match[2],
|
|
16
|
+
startIndex: match.index,
|
|
17
|
+
endIndex: match.index + match[0].length
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return references;
|
|
21
|
+
}
|
|
22
|
+
function getNestedValue(obj, path) {
|
|
23
|
+
return path.split(".").reduce((current, key) => {
|
|
24
|
+
return current?.[key];
|
|
25
|
+
}, obj);
|
|
26
|
+
}
|
|
27
|
+
function resolveSingleReferenceDetailed(blockId, propPath, editorDocument, yRuntime, scope) {
|
|
28
|
+
if (scope && Object.prototype.hasOwnProperty.call(scope, blockId)) {
|
|
29
|
+
const root = scope[blockId];
|
|
30
|
+
if (root == null) return { value: void 0, reason: "missing-value" };
|
|
31
|
+
const value2 = getNestedValue(root, propPath);
|
|
32
|
+
return { value: value2, reason: value2 === void 0 ? "missing-value" : void 0 };
|
|
33
|
+
}
|
|
34
|
+
if (!editorDocument || !Array.isArray(editorDocument)) {
|
|
35
|
+
return { value: void 0, reason: "unknown-block" };
|
|
36
|
+
}
|
|
37
|
+
const block = editorDocument.find((b) => b.id === blockId);
|
|
38
|
+
if (!block) {
|
|
39
|
+
return { value: void 0, reason: "unknown-block" };
|
|
40
|
+
}
|
|
41
|
+
if (propPath.startsWith("output.")) {
|
|
42
|
+
if (!yRuntime) return { value: void 0, reason: "missing-value" };
|
|
43
|
+
const runtimeState = yRuntime.get(blockId);
|
|
44
|
+
if (!runtimeState?.output) return { value: void 0, reason: "missing-value" };
|
|
45
|
+
const innerPath = propPath.substring("output.".length);
|
|
46
|
+
const direct = getNestedValue(runtimeState.output, innerPath);
|
|
47
|
+
if (direct !== void 0) return { value: direct };
|
|
48
|
+
if (runtimeState.output.data !== void 0) {
|
|
49
|
+
const value2 = getNestedValue(runtimeState.output.data, innerPath);
|
|
50
|
+
return { value: value2, reason: value2 === void 0 ? "missing-value" : void 0 };
|
|
51
|
+
}
|
|
52
|
+
if (runtimeState.output.http?.data !== void 0) {
|
|
53
|
+
const value2 = getNestedValue(runtimeState.output.http.data, innerPath);
|
|
54
|
+
return { value: value2, reason: value2 === void 0 ? "missing-value" : void 0 };
|
|
55
|
+
}
|
|
56
|
+
return { value: void 0, reason: "missing-value" };
|
|
57
|
+
}
|
|
58
|
+
if (propPath.startsWith("response.")) {
|
|
59
|
+
const responseData = block.props.response;
|
|
60
|
+
if (!responseData) {
|
|
61
|
+
return { value: void 0, reason: "missing-value" };
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const parsedResponse = typeof responseData === "string" ? JSON.parse(responseData) : responseData;
|
|
65
|
+
const innerPath = propPath.substring("response.".length);
|
|
66
|
+
const value2 = getNestedValue(parsedResponse, innerPath);
|
|
67
|
+
return { value: value2, reason: value2 === void 0 ? "missing-value" : void 0 };
|
|
68
|
+
} catch {
|
|
69
|
+
warnOnce(`ref-response-parse:${blockId}`, `[flow-config] block ${blockId}: props.response is not valid JSON; {{${blockId}.${propPath}}} cannot resolve`);
|
|
70
|
+
return { value: void 0, reason: "response-parse-error" };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const value = getNestedValue(block.props, propPath);
|
|
74
|
+
return { value, reason: value === void 0 ? "missing-value" : void 0 };
|
|
75
|
+
}
|
|
76
|
+
function resolveSingleReference(blockId, propPath, editorDocument, yRuntime, scope) {
|
|
77
|
+
return resolveSingleReferenceDetailed(blockId, propPath, editorDocument, yRuntime, scope).value;
|
|
78
|
+
}
|
|
79
|
+
function resolveReferencesDetailed(input, editorDocument, options = {}) {
|
|
80
|
+
const { fallback = "", stringifyObjects = true, yRuntime, scope, warnContext } = options;
|
|
81
|
+
const unresolved = [];
|
|
82
|
+
if (input == null) {
|
|
83
|
+
return { value: "", unresolved };
|
|
84
|
+
}
|
|
85
|
+
const inputStr = String(input);
|
|
86
|
+
const references = parseReferences(inputStr);
|
|
87
|
+
if (references.length === 0) {
|
|
88
|
+
return { value: inputStr, unresolved };
|
|
89
|
+
}
|
|
90
|
+
let result = inputStr;
|
|
91
|
+
for (let i = references.length - 1; i >= 0; i--) {
|
|
92
|
+
const ref = references[i];
|
|
93
|
+
const resolution = resolveSingleReferenceDetailed(ref.blockId, ref.propPath, editorDocument, yRuntime, scope);
|
|
94
|
+
const resolvedValue = resolution.value;
|
|
95
|
+
let replacementStr;
|
|
96
|
+
if (resolvedValue === void 0 || resolvedValue === null) {
|
|
97
|
+
replacementStr = fallback;
|
|
98
|
+
unresolved.push({ ref: ref.fullMatch, blockId: ref.blockId, propPath: ref.propPath, reason: resolution.reason || "missing-value" });
|
|
99
|
+
} else if (typeof resolvedValue === "object") {
|
|
100
|
+
replacementStr = stringifyObjects ? JSON.stringify(resolvedValue) : fallback;
|
|
101
|
+
} else {
|
|
102
|
+
replacementStr = String(resolvedValue);
|
|
103
|
+
}
|
|
104
|
+
result = result.substring(0, ref.startIndex) + replacementStr + result.substring(ref.endIndex);
|
|
105
|
+
}
|
|
106
|
+
if (warnContext && unresolved.length > 0) {
|
|
107
|
+
for (const entry of unresolved) {
|
|
108
|
+
warnOnce(
|
|
109
|
+
`ref-unresolved:${warnContext}:${entry.ref}`,
|
|
110
|
+
`[flow-config] ${warnContext}: reference ${entry.ref} did not resolve (${entry.reason}); using fallback '${fallback}'`
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { value: result, unresolved };
|
|
115
|
+
}
|
|
116
|
+
function resolveReferences(input, editorDocument, options = {}) {
|
|
117
|
+
return resolveReferencesDetailed(input, editorDocument, options).value;
|
|
118
|
+
}
|
|
119
|
+
function hasReferences(input) {
|
|
120
|
+
if (input == null) return false;
|
|
121
|
+
return parseReferences(String(input)).length > 0;
|
|
122
|
+
}
|
|
123
|
+
function createReference(blockId, propPath) {
|
|
124
|
+
return `{{${blockId}.${propPath}}}`;
|
|
125
|
+
}
|
|
126
|
+
function resolveObjectReferences(obj, editorDocument, options) {
|
|
127
|
+
const result = {};
|
|
128
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
129
|
+
if (typeof value === "string") {
|
|
130
|
+
result[key] = resolveReferences(value, editorDocument, options);
|
|
131
|
+
} else if (typeof value === "object" && value !== null) {
|
|
132
|
+
result[key] = resolveObjectReferences(value, editorDocument, options);
|
|
133
|
+
} else {
|
|
134
|
+
result[key] = value;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export {
|
|
141
|
+
parseReferences,
|
|
142
|
+
getNestedValue,
|
|
143
|
+
resolveSingleReference,
|
|
144
|
+
resolveReferencesDetailed,
|
|
145
|
+
resolveReferences,
|
|
146
|
+
hasReferences,
|
|
147
|
+
createReference,
|
|
148
|
+
resolveObjectReferences
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=chunk-JVROGQ7Q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/lib/flowEngine/referenceResolver.ts"],"sourcesContent":["/**\n * Reference Resolver — the single engine for `{{blockId.propPath}}` string\n * references.\n *\n * Handles resolution of block property references in the format:\n * {{blockId.propKey}} or {{blockId.nestedProp.key}}\n *\n * Example:\n * Input: \"User email: {{user-block-123.email}}\"\n * Output: \"User email: john@example.com\"\n *\n * This lives in core (framework-free) so both the React layer\n * (`src/mantine/utils/referenceResolver.ts` re-exports it) and headless\n * consumers share one implementation. The structured `{ $ref }` resolver\n * (`flowCompiler/resolveRefs.ts`) is a separate data model that shares\n * `getNestedValue` from here.\n *\n * Behavioral contract (things consumers depend on — do not change):\n * - Unresolved references become `fallback` (default `''`); every\n * FlowDetail `inputsReady` gate relies on empty-string-when-unresolved.\n * - Objects stringify by default (`stringifyObjects: true`).\n * - `:` is allowed in property paths (JSON-LD field names).\n * - `output.*` paths fall back to `output.data.*` and legacy\n * `output.http.data.*`.\n */\n\nimport { warnOnce } from '../warnOnce';\n\n/**\n * Represents a parsed reference from a string\n */\nexport interface ParsedReference {\n /** Full reference string including delimiters: {{blockId.propKey}} */\n fullMatch: string;\n /** Block ID portion */\n blockId: string;\n /** Property path (can be nested): propKey or nested.prop.key */\n propPath: string;\n /** Start index in the original string */\n startIndex: number;\n /** End index in the original string */\n endIndex: number;\n}\n\n/**\n * Regular expression to match references in format: {{blockId.propKey}}\n * Captures: blockId and propPath (including nested paths)\n */\n// propPath allows `:` so JSON-LD field names (e.g. `schema:amount`,\n// `umuzi:paymentCurrency`) round-trip through the resolver without\n// truncation. Without it, `{{evaluation.outcomeResponses.schema:amount}}`\n// silently fails to match and resolves to '' — which then casts to 0 in\n// any downstream number field.\nconst REFERENCE_REGEX = /\\{\\{([a-zA-Z0-9_-]+)\\.([a-zA-Z0-9_.:]+)\\}\\}/g;\n\n/**\n * Parse all references from a string\n */\nexport function parseReferences(input: string): ParsedReference[] {\n const references: ParsedReference[] = [];\n const regex = new RegExp(REFERENCE_REGEX);\n let match;\n\n while ((match = regex.exec(input)) !== null) {\n references.push({\n fullMatch: match[0],\n blockId: match[1],\n propPath: match[2],\n startIndex: match.index,\n endIndex: match.index + match[0].length,\n });\n }\n\n return references;\n}\n\n/**\n * Get a nested property value from an object using dot notation.\n * Shared by the `{{...}}` resolver, the structured `$ref` resolver, and\n * ref snapshotting — keep the loose `current?.[key]` semantics.\n */\nexport function getNestedValue(obj: any, path: string): any {\n return path.split('.').reduce((current, key) => {\n return current?.[key];\n }, obj);\n}\n\nexport type UnresolvedReferenceReason = 'unknown-block' | 'missing-value' | 'response-parse-error';\n\nexport interface UnresolvedReference {\n /** The full `{{...}}` reference text. */\n ref: string;\n blockId: string;\n propPath: string;\n reason: UnresolvedReferenceReason;\n}\n\ninterface SingleResolution {\n value: any;\n reason?: UnresolvedReferenceReason;\n}\n\nfunction resolveSingleReferenceDetailed(blockId: string, propPath: string, editorDocument: any[], yRuntime?: any, scope?: Record<string, any>): SingleResolution {\n // Scope bindings take precedence over any same-named editor block.\n if (scope && Object.prototype.hasOwnProperty.call(scope, blockId)) {\n const root = scope[blockId];\n if (root == null) return { value: undefined, reason: 'missing-value' };\n const value = getNestedValue(root, propPath);\n return { value, reason: value === undefined ? 'missing-value' : undefined };\n }\n\n if (!editorDocument || !Array.isArray(editorDocument)) {\n return { value: undefined, reason: 'unknown-block' };\n }\n\n // Find the block by ID\n const block = editorDocument.find((b) => b.id === blockId);\n\n if (!block) {\n return { value: undefined, reason: 'unknown-block' };\n }\n\n // Runtime output paths (e.g., \"output.customer.email\") — read from _yRuntime\n // Any block type that stores runtime output (action, apiRequest, email, etc.)\n if (propPath.startsWith('output.')) {\n if (!yRuntime) return { value: undefined, reason: 'missing-value' };\n\n const runtimeState = yRuntime.get(blockId);\n if (!runtimeState?.output) return { value: undefined, reason: 'missing-value' };\n\n const innerPath = propPath.substring('output.'.length);\n const direct = getNestedValue(runtimeState.output, innerPath);\n if (direct !== undefined) return { value: direct };\n\n // Fallback: some actions (e.g. http.request) nest the response payload\n // under output.data, but the user-defined schema references paths\n // relative to the payload (e.g. \"customer.email\" not \"data.customer.email\").\n if (runtimeState.output.data !== undefined) {\n const value = getNestedValue(runtimeState.output.data, innerPath);\n return { value, reason: value === undefined ? 'missing-value' : undefined };\n }\n\n // Legacy fallback: older http.request flow executor stored payload\n // under output.http.data.\n if (runtimeState.output.http?.data !== undefined) {\n const value = getNestedValue(runtimeState.output.http.data, innerPath);\n return { value, reason: value === undefined ? 'missing-value' : undefined };\n }\n\n return { value: undefined, reason: 'missing-value' };\n }\n\n // Special handling for API Request response paths (e.g., \"response.data.user.email\")\n if (propPath.startsWith('response.')) {\n const responseData = block.props.response;\n\n if (!responseData) {\n return { value: undefined, reason: 'missing-value' };\n }\n\n // Parse response JSON if it's a string\n try {\n const parsedResponse = typeof responseData === 'string' ? JSON.parse(responseData) : responseData;\n\n // Extract the path after \"response.\" (e.g., \"data.user.email\")\n const innerPath = propPath.substring('response.'.length);\n\n // Navigate into the parsed response using the inner path\n const value = getNestedValue(parsedResponse, innerPath);\n\n return { value, reason: value === undefined ? 'missing-value' : undefined };\n } catch {\n warnOnce(`ref-response-parse:${blockId}`, `[flow-config] block ${blockId}: props.response is not valid JSON; {{${blockId}.${propPath}}} cannot resolve`);\n return { value: undefined, reason: 'response-parse-error' };\n }\n }\n\n // Default behavior for other properties: direct prop access\n const value = getNestedValue(block.props, propPath);\n\n return { value, reason: value === undefined ? 'missing-value' : undefined };\n}\n\n/**\n * Resolve a single reference by finding the block and extracting the property value\n */\nexport function resolveSingleReference(blockId: string, propPath: string, editorDocument: any[], yRuntime?: any, scope?: Record<string, any>): any {\n return resolveSingleReferenceDetailed(blockId, propPath, editorDocument, yRuntime, scope).value;\n}\n\nexport interface ResolveReferencesOptions {\n /** String to use when a reference cannot be resolved */\n fallback?: string;\n /** Whether to return objects as JSON strings */\n stringifyObjects?: boolean;\n /** Yjs runtime map for resolving action block output paths */\n yRuntime?: any;\n /**\n * Local scope bindings for iterative contexts. When provided, a reference\n * like `{{item.foo}}` resolves against `scope.item.foo` before falling\n * back to editor blocks. Use this in iterative mappers (e.g. Xero\n * invoice LineItems iterative mode).\n */\n scope?: Record<string, any>;\n /**\n * Diagnostic context: when set, unresolved references are logged once per\n * (context, ref). Pass the consuming block's id so a typo'd reference is\n * visible in the console instead of silently becoming ''.\n */\n warnContext?: string;\n}\n\nexport interface DetailedResolution {\n value: string;\n /** References that resolved to the fallback, with the reason. */\n unresolved: UnresolvedReference[];\n}\n\n/**\n * Resolve all references in a string, returning the resolved string plus\n * structured diagnostics for every reference that fell back.\n */\nexport function resolveReferencesDetailed(input: string | null | undefined, editorDocument: any[], options: ResolveReferencesOptions = {}): DetailedResolution {\n const { fallback = '', stringifyObjects = true, yRuntime, scope, warnContext } = options;\n const unresolved: UnresolvedReference[] = [];\n\n // Handle null/undefined input\n if (input == null) {\n return { value: '', unresolved };\n }\n\n // Convert to string if not already\n const inputStr = String(input);\n\n // Parse all references\n const references = parseReferences(inputStr);\n\n // If no references found, return original string\n if (references.length === 0) {\n return { value: inputStr, unresolved };\n }\n\n // Resolve each reference and build the result string\n let result = inputStr;\n\n // Process in reverse order to maintain correct string indices\n for (let i = references.length - 1; i >= 0; i--) {\n const ref = references[i];\n const resolution = resolveSingleReferenceDetailed(ref.blockId, ref.propPath, editorDocument, yRuntime, scope);\n const resolvedValue = resolution.value;\n\n // Convert resolved value to string\n let replacementStr: string;\n\n if (resolvedValue === undefined || resolvedValue === null) {\n replacementStr = fallback;\n unresolved.push({ ref: ref.fullMatch, blockId: ref.blockId, propPath: ref.propPath, reason: resolution.reason || 'missing-value' });\n } else if (typeof resolvedValue === 'object') {\n // Handle objects/arrays\n replacementStr = stringifyObjects ? JSON.stringify(resolvedValue) : fallback;\n } else {\n replacementStr = String(resolvedValue);\n }\n\n // Replace the reference with the resolved value\n result = result.substring(0, ref.startIndex) + replacementStr + result.substring(ref.endIndex);\n }\n\n if (warnContext && unresolved.length > 0) {\n for (const entry of unresolved) {\n warnOnce(\n `ref-unresolved:${warnContext}:${entry.ref}`,\n `[flow-config] ${warnContext}: reference ${entry.ref} did not resolve (${entry.reason}); using fallback '${fallback}'`\n );\n }\n }\n\n return { value: result, unresolved };\n}\n\n/**\n * Resolve all references in a string and return the resolved string\n */\nexport function resolveReferences(input: string | null | undefined, editorDocument: any[], options: ResolveReferencesOptions = {}): string {\n return resolveReferencesDetailed(input, editorDocument, options).value;\n}\n\n/**\n * Check if a string contains any references\n */\nexport function hasReferences(input: string | null | undefined): boolean {\n if (input == null) return false;\n return parseReferences(String(input)).length > 0;\n}\n\n/**\n * Create a reference string for a block property\n */\nexport function createReference(blockId: string, propPath: string): string {\n return `{{${blockId}.${propPath}}}`;\n}\n\n/**\n * Resolve references in an object's values recursively\n * Useful for resolving references in API request bodies, headers, etc.\n */\nexport function resolveObjectReferences<T extends Record<string, any>>(obj: T, editorDocument: any[], options?: ResolveReferencesOptions): T {\n const result: any = {};\n\n for (const [key, value] of Object.entries(obj)) {\n if (typeof value === 'string') {\n result[key] = resolveReferences(value, editorDocument, options);\n } else if (typeof value === 'object' && value !== null) {\n result[key] = resolveObjectReferences(value, editorDocument, options);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":"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","names":["value"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/credentialStore/types.ts
|
|
2
|
+
function parseCredentialStoreInputs(json) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
5
|
+
let credential = parsed?.credential || "";
|
|
6
|
+
if (typeof credential === "object" && credential !== null) {
|
|
7
|
+
credential = JSON.stringify(credential);
|
|
8
|
+
} else {
|
|
9
|
+
credential = String(credential);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
credentialKey: String(parsed?.credentialKey || ""),
|
|
13
|
+
credential,
|
|
14
|
+
roomId: String(parsed?.roomId || "")
|
|
15
|
+
};
|
|
16
|
+
} catch {
|
|
17
|
+
return { credentialKey: "", credential: "", roomId: "" };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function serializeCredentialStoreInputs(inputs) {
|
|
21
|
+
return JSON.stringify({
|
|
22
|
+
credentialKey: inputs.credentialKey,
|
|
23
|
+
credential: inputs.credential,
|
|
24
|
+
roomId: inputs.roomId
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
parseCredentialStoreInputs,
|
|
30
|
+
serializeCredentialStoreInputs
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=chunk-K4WUMWNJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/credentialStore/types.ts"],"sourcesContent":["export interface CredentialStoreActionInputs {\n credentialKey: string;\n credential: string;\n roomId: string;\n}\n\nexport function parseCredentialStoreInputs(json: string): CredentialStoreActionInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n // credential may be a JSON object — stringify it rather than String() which gives \"[object Object]\"\n let credential = parsed?.credential || '';\n if (typeof credential === 'object' && credential !== null) {\n credential = JSON.stringify(credential);\n } else {\n credential = String(credential);\n }\n return {\n credentialKey: String(parsed?.credentialKey || ''),\n credential,\n roomId: String(parsed?.roomId || ''),\n };\n } catch {\n return { credentialKey: '', credential: '', roomId: '' };\n }\n}\n\nexport function serializeCredentialStoreInputs(inputs: CredentialStoreActionInputs): string {\n return JSON.stringify({\n credentialKey: inputs.credentialKey,\n credential: inputs.credential,\n roomId: inputs.roomId,\n });\n}\n"],"mappings":";AAMO,SAAS,2BAA2B,MAA2C;AACpF,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAE7D,QAAI,aAAa,QAAQ,cAAc;AACvC,QAAI,OAAO,eAAe,YAAY,eAAe,MAAM;AACzD,mBAAa,KAAK,UAAU,UAAU;AAAA,IACxC,OAAO;AACL,mBAAa,OAAO,UAAU;AAAA,IAChC;AACA,WAAO;AAAA,MACL,eAAe,OAAO,QAAQ,iBAAiB,EAAE;AAAA,MACjD;AAAA,MACA,QAAQ,OAAO,QAAQ,UAAU,EAAE;AAAA,IACrC;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,eAAe,IAAI,YAAY,IAAI,QAAQ,GAAG;AAAA,EACzD;AACF;AAEO,SAAS,+BAA+B,QAA6C;AAC1F,SAAO,KAAK,UAAU;AAAA,IACpB,eAAe,OAAO;AAAA,IACtB,YAAY,OAAO;AAAA,IACnB,QAAQ,OAAO;AAAA,EACjB,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/mantine/components/Base/BasePrimaryButton.tsx
|
|
2
|
+
import { Button } from "@mantine/core";
|
|
3
|
+
import React from "react";
|
|
4
|
+
function BasePrimaryButton({ ...props }) {
|
|
5
|
+
return /* @__PURE__ */ React.createElement(Button, { variant: "filled", radius: "md", size: "sm", ...props });
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
BasePrimaryButton
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=chunk-K74XQ4Q5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/components/Base/BasePrimaryButton.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@mantine/core';\nimport React from 'react';\n\nexport default function BasePrimaryButton({ ...props }: ButtonProps & { onClick: () => void }) {\n return <Button variant=\"filled\" radius=\"md\" size=\"sm\" {...props} />;\n}\n"],"mappings":";AAAA,SAAS,cAA2B;AACpC,OAAO,WAAW;AAEH,SAAR,kBAAmC,EAAE,GAAG,MAAM,GAA0C;AAC7F,SAAO,oCAAC,UAAO,SAAQ,UAAS,QAAO,MAAK,MAAK,MAAM,GAAG,OAAO;AACnE;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/pod/types.ts
|
|
2
|
+
var DEFAULT_GOVERNANCE = {
|
|
3
|
+
votingPeriod: "604800s",
|
|
4
|
+
quorum: "0.33",
|
|
5
|
+
threshold: "0.51",
|
|
6
|
+
unstakingDuration: "1209600s"
|
|
7
|
+
// 14 days
|
|
8
|
+
};
|
|
9
|
+
function parseJsonSafe(json, fallback) {
|
|
10
|
+
try {
|
|
11
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
12
|
+
return parsed ?? fallback;
|
|
13
|
+
} catch {
|
|
14
|
+
return fallback;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
DEFAULT_GOVERNANCE,
|
|
20
|
+
parseJsonSafe
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=chunk-KLLMJ4U3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/pod/types.ts"],"sourcesContent":["/** Shared types for POD setup flow action type UI components */\n\nexport interface PODMember {\n did: string;\n role: string;\n votingPower: number;\n}\n\nexport interface PODGovernance {\n votingPeriod: string;\n /** Used by categorical, nftStaking, tokenStaking (not multisig) */\n quorum: string;\n /** % of YES votes for non-multisig; absolute signer count string for multisig */\n threshold: string;\n /**\n * Legacy fields no longer collected: the deployed DAO DAO contracts have no\n * veto, execution-delay, or executor config, so these never reached the\n * chain. Kept optional so stored configs still parse.\n */\n vetoThreshold?: string;\n minExecutionDelay?: string;\n executor?: 'EXECUTOR_TYPE_ANY' | 'EXECUTOR_TYPE_PROPOSER';\n /** Used by nftStaking and tokenStaking */\n unstakingDuration: string;\n}\n\nexport interface PODDomainCard {\n name: string;\n description: string;\n image: string | null;\n tags: string[];\n website: string | null;\n id: string;\n}\n\nexport interface PODFlowTemplate {\n did: string;\n name: string;\n description: string;\n author: string;\n selected: boolean;\n}\n\nexport interface PODSelectedProtocolTemplate {\n protocolDid: string;\n protocolName: string;\n sourceRoomId: string;\n sourceLabel: string;\n path?: string;\n}\n\nexport interface PODFlowTemplateConfig {\n selectedTemplates: PODSelectedProtocolTemplate[];\n templateCount: number;\n protocolCount: number;\n}\n\nexport const DEFAULT_GOVERNANCE: PODGovernance = {\n votingPeriod: '604800s',\n quorum: '0.33',\n threshold: '0.51',\n unstakingDuration: '1209600s', // 14 days\n};\n\nexport function parseJsonSafe<T>(json: string, fallback: T): T {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return (parsed as T) ?? fallback;\n } catch {\n return fallback;\n }\n}\n"],"mappings":";AAyDO,IAAM,qBAAoC;AAAA,EAC/C,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA;AACrB;AAEO,SAAS,cAAiB,MAAc,UAAgB;AAC7D,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAQ,UAAgB;AAAA,EAC1B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/formSubmit/types.ts
|
|
2
|
+
function parseFormSubmitActionInputs(json) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
5
|
+
const rawSchema = parsed?.surveySchema;
|
|
6
|
+
if (typeof rawSchema === "string") {
|
|
7
|
+
return { surveySchema: rawSchema };
|
|
8
|
+
}
|
|
9
|
+
if (rawSchema && typeof rawSchema === "object" && !Array.isArray(rawSchema)) {
|
|
10
|
+
return { surveySchema: JSON.stringify(rawSchema, null, 2) };
|
|
11
|
+
}
|
|
12
|
+
return { surveySchema: "" };
|
|
13
|
+
} catch {
|
|
14
|
+
return { surveySchema: "" };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function serializeFormSubmitActionInputs(inputs) {
|
|
18
|
+
return JSON.stringify({
|
|
19
|
+
surveySchema: inputs.surveySchema
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
parseFormSubmitActionInputs,
|
|
25
|
+
serializeFormSubmitActionInputs
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-LTKVCJ2E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/formSubmit/types.ts"],"sourcesContent":["export interface FormSubmitActionInputs {\n surveySchema: string;\n}\n\nexport function parseFormSubmitActionInputs(json: string): FormSubmitActionInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n\n const rawSchema = parsed?.surveySchema;\n if (typeof rawSchema === 'string') {\n return { surveySchema: rawSchema };\n }\n if (rawSchema && typeof rawSchema === 'object' && !Array.isArray(rawSchema)) {\n return { surveySchema: JSON.stringify(rawSchema, null, 2) };\n }\n\n return { surveySchema: '' };\n } catch {\n return { surveySchema: '' };\n }\n}\n\nexport function serializeFormSubmitActionInputs(inputs: FormSubmitActionInputs): string {\n return JSON.stringify({\n surveySchema: inputs.surveySchema,\n });\n}\n"],"mappings":";AAIO,SAAS,4BAA4B,MAAsC;AAChF,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAE7D,UAAM,YAAY,QAAQ;AAC1B,QAAI,OAAO,cAAc,UAAU;AACjC,aAAO,EAAE,cAAc,UAAU;AAAA,IACnC;AACA,QAAI,aAAa,OAAO,cAAc,YAAY,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC3E,aAAO,EAAE,cAAc,KAAK,UAAU,WAAW,MAAM,CAAC,EAAE;AAAA,IAC5D;AAEA,WAAO,EAAE,cAAc,GAAG;AAAA,EAC5B,QAAQ;AACN,WAAO,EAAE,cAAc,GAAG;AAAA,EAC5B;AACF;AAEO,SAAS,gCAAgC,QAAwC;AACtF,SAAO,KAAK,UAAU;AAAA,IACpB,cAAc,OAAO;AAAA,EACvB,CAAC;AACH;","names":[]}
|