@wowok/agent-mcp 3.4.2 → 3.4.3
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/.build-stamp.json +5 -0
- package/dist/chain-semantics/composition-truth.js +1 -1
- package/dist/chain-semantics/eval-order.js +1 -1
- package/dist/chain-semantics/field-capability.js +1 -1
- package/dist/chain-semantics/freeze-map.js +1 -1
- package/dist/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/guard-verbs.js +1 -1
- package/dist/chain-semantics/object-graph.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.d.ts +10 -3
- package/dist/composition/compile.js +1 -1
- package/dist/composition/emit-phases.d.ts +30 -2
- package/dist/composition/emit-phases.js +1 -1
- package/dist/composition/guard-fill.d.ts +8 -0
- package/dist/composition/guard-fill.js +1 -1
- package/dist/composition/inflight.js +1 -1
- package/dist/composition/input-normalize.js +1 -1
- package/dist/composition/materialize.d.ts +2 -0
- package/dist/composition/materialize.js +1 -1
- package/dist/composition/mode-gates.js +1 -1
- package/dist/composition/param-disclosure.js +1 -1
- package/dist/composition/plan-retry-ledger.d.ts +16 -0
- package/dist/composition/plan-retry-ledger.js +1 -1
- package/dist/composition/plan.d.ts +15 -1
- package/dist/composition/plan.js +1 -1
- package/dist/config/config-audit.spec.js +1 -1
- package/dist/config/judgment.d.ts +5 -0
- package/dist/config/judgment.js +1 -1
- package/dist/evaluation/builtins/arbitration-score.d.ts +1 -0
- package/dist/evaluation/builtins/arbitration-score.js +1 -1
- package/dist/evaluation/builtins/demand-match.js +1 -1
- package/dist/evaluation/builtins/graph-service.d.ts +8 -0
- package/dist/evaluation/builtins/graph-service.js +1 -1
- package/dist/evaluation/capability.d.ts +9 -0
- package/dist/evaluation/engine.js +1 -1
- package/dist/evaluation/extract.d.ts +9 -1
- package/dist/evaluation/extract.js +1 -1
- package/dist/evaluation/match-operation.js +1 -1
- package/dist/evaluation/match-policy.d.ts +5 -3
- package/dist/evaluation/match-policy.js +1 -1
- package/dist/evaluation/standards.d.ts +1 -0
- package/dist/evaluation/standards.js +1 -1
- package/dist/evaluation/structured-lines.js +1 -1
- package/dist/evaluation/types.d.ts +1 -0
- package/dist/extensions/capability.js +1 -1
- package/dist/harness/recover.js +1 -1
- package/dist/index.js +1 -1
- package/dist/intent/types.d.ts +1 -1
- package/dist/intent/types.js +1 -1
- package/dist/knowledge/allocation-ledger.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +17 -1
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arb-fund-facts.d.ts +7 -0
- package/dist/knowledge/arb-fund-facts.js +1 -1
- package/dist/knowledge/arbitration-rail-verifier.d.ts +35 -0
- package/dist/knowledge/arbitration-rail-verifier.js +1 -0
- package/dist/knowledge/audit-rules.d.ts +11 -0
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/judgment-baselines.json +1 -0
- package/dist/knowledge/baselines/rules/guard.json +7 -6
- package/dist/knowledge/baselines/rules/progress.json +4 -4
- package/dist/knowledge/baselines/rules/reward.json +118 -3
- package/dist/knowledge/builtin-templates.d.ts +3 -2
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/chain-query-registry.d.ts +14 -0
- package/dist/knowledge/chain-query-registry.js +1 -0
- package/dist/knowledge/event-semantics.js +1 -1
- package/dist/knowledge/fee-param-bindings.d.ts +2 -0
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-binding-table.js +1 -1
- package/dist/knowledge/guard-binding-verifier.d.ts +7 -0
- package/dist/knowledge/guard-binding-verifier.js +1 -1
- package/dist/knowledge/guard-design-patterns.d.ts +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-host-context.js +1 -1
- package/dist/knowledge/guard-lint.js +1 -1
- package/dist/knowledge/guard-node-gates.d.ts +3 -1
- package/dist/knowledge/guard-node-gates.js +1 -1
- package/dist/knowledge/guard-puzzle.js +1 -1
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +2 -1
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/guard-translation.js +1 -1
- package/dist/knowledge/index.d.ts +2 -0
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/knob-docs.js +1 -1
- package/dist/knowledge/param-schema.d.ts +1 -1
- package/dist/knowledge/param-schema.js +1 -1
- package/dist/knowledge/param-tiers.d.ts +2 -0
- package/dist/knowledge/param-tiers.js +1 -1
- package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
- package/dist/knowledge/pattern-resolutions.d.ts +2 -0
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/product-detail-source.d.ts +37 -0
- package/dist/knowledge/product-detail-source.js +1 -0
- package/dist/knowledge/product-doc-b5.d.ts +16 -0
- package/dist/knowledge/product-doc-b5.js +1 -0
- package/dist/knowledge/progress-ledger.js +1 -1
- package/dist/knowledge/projection.spec.js +1 -1
- package/dist/knowledge/publish-gate.d.ts +20 -0
- package/dist/knowledge/publish-gate.js +1 -0
- package/dist/knowledge/publish-readiness.d.ts +25 -0
- package/dist/knowledge/publish-readiness.js +1 -0
- package/dist/knowledge/publish-surface-contract.d.ts +16 -0
- package/dist/knowledge/publish-surface-contract.js +1 -0
- package/dist/knowledge/rail-exit-satisfiability.d.ts +25 -0
- package/dist/knowledge/rail-exit-satisfiability.js +1 -0
- package/dist/knowledge/reward-ledger.d.ts +1 -1
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/reward-risk.d.ts +1 -1
- package/dist/knowledge/reward-risk.js +1 -1
- package/dist/knowledge/service-ledger.d.ts +3 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/template-loader.d.ts +41 -2
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.d.ts +17 -0
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/workflow-guidance.d.ts +4 -0
- package/dist/knowledge/workflow-guidance.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/monitor/normalize.d.ts +1 -1
- package/dist/monitor/normalize.js +1 -1
- package/dist/monitor/types.js +1 -1
- package/dist/participation/game-context.js +1 -1
- package/dist/participation/radar-core.js +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.d.ts +28 -3
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/object-panorama.d.ts +4 -0
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/review/order.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +24 -0
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.d.ts +11 -7
- package/dist/schema/call/allocation.js +1 -1
- package/dist/schema/call/arbitration.d.ts +4 -0
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +28 -0
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +21 -0
- package/dist/schema/call/contact.d.ts +4 -0
- package/dist/schema/call/demand.d.ts +4 -0
- package/dist/schema/call/guard.d.ts +12 -0
- package/dist/schema/call/handler.d.ts +1 -0
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +16 -8
- package/dist/schema/call/normalize-error.d.ts +1 -0
- package/dist/schema/call/normalize-error.js +1 -0
- package/dist/schema/call/order.d.ts +7 -3
- package/dist/schema/call/order.js +1 -1
- package/dist/schema/call/payment.d.ts +7 -3
- package/dist/schema/call/permission.d.ts +4 -0
- package/dist/schema/call/personal.d.ts +4 -0
- package/dist/schema/call/progress.d.ts +4 -0
- package/dist/schema/call/progress.js +1 -1
- package/dist/schema/call/proof.d.ts +8 -0
- package/dist/schema/call/receipt.js +1 -1
- package/dist/schema/call/repository.d.ts +4 -0
- package/dist/schema/call/reward.d.ts +6 -2
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.d.ts +2 -2
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +6 -2
- package/dist/schema/call/treasury.d.ts +10 -6
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/envelope-unify.d.ts +1 -0
- package/dist/schema/envelope-unify.js +1 -1
- package/dist/schema/evaluation/index.d.ts +43 -0
- package/dist/schema/evaluation/index.js +1 -1
- package/dist/schema/goal/index.d.ts +14 -2
- package/dist/schema/goal/planning.d.ts +18 -0
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/intent-radar/index.d.ts +12 -0
- package/dist/schema/intent-radar/index.js +1 -1
- package/dist/schema/keeper/index.d.ts +1 -0
- package/dist/schema/local/index.d.ts +10 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/local/wip.js +1 -1
- package/dist/schema/messenger/index.d.ts +1 -0
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +95 -12
- package/dist/schema/operations.js +1 -1
- package/dist/schema/persona/index.d.ts +22 -0
- package/dist/schema/query/bi.d.ts +28 -2
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +67 -61
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/workflow/index.js +1 -1
- package/dist/schema-query-impl/index.d.ts +1 -0
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +2 -1
- package/dist/schemas/benchmark_migration_operation.output.json +74 -0
- package/dist/schemas/benchmark_migration_operation.schema.json +32 -0
- package/dist/schemas/bridge_operation.output.json +2 -1
- package/dist/schemas/bridge_operation.schema.json +40 -0
- package/dist/schemas/evaluation_operation.output.json +96 -0
- package/dist/schemas/evaluation_operation.schema.json +39 -0
- package/dist/schemas/goal_operation.schema.json +32 -0
- package/dist/schemas/guard2file.schema.json +8 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/intent_radar.output.json +10 -2
- package/dist/schemas/intent_radar.schema.json +5 -1
- package/dist/schemas/keeper_operation.output.json +2 -1
- package/dist/schemas/local_cache_operation.output.json +2 -1
- package/dist/schemas/local_history_operation.output.json +2 -1
- package/dist/schemas/local_info_operation.output.json +2 -1
- package/dist/schemas/local_mark_operation.output.json +2 -1
- package/dist/schemas/local_mark_operation.schema.json +10 -1
- package/dist/schemas/machineNode2file.schema.json +8 -0
- package/dist/schemas/messenger_operation.output.json +2 -1
- package/dist/schemas/messenger_operation.schema.json +2 -1
- package/dist/schemas/monitor_events.output.json +2 -1
- package/dist/schemas/monitor_subscription.output.json +2 -1
- package/dist/schemas/onchain_events.output.json +206 -13
- package/dist/schemas/onchain_events.schema.json +16 -0
- package/dist/schemas/onchain_operations.output.json +22 -3
- package/dist/schemas/onchain_operations.schema.json +971 -326
- package/dist/schemas/onchain_operations_allocation.schema.json +19 -12
- package/dist/schemas/onchain_operations_arbitration.schema.json +9 -1
- package/dist/schemas/onchain_operations_contact.schema.json +8 -0
- package/dist/schemas/onchain_operations_demand.schema.json +8 -0
- package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -0
- package/dist/schemas/onchain_operations_gen_proof.schema.json +8 -0
- package/dist/schemas/onchain_operations_guard.schema.json +654 -114
- package/dist/schemas/onchain_operations_machine.schema.json +11 -3
- package/dist/schemas/onchain_operations_order.schema.json +14 -11
- package/dist/schemas/onchain_operations_payment.schema.json +12 -9
- package/dist/schemas/onchain_operations_permission.schema.json +8 -0
- package/dist/schemas/onchain_operations_personal.schema.json +8 -0
- package/dist/schemas/onchain_operations_progress.schema.json +9 -1
- package/dist/schemas/onchain_operations_proof.schema.json +8 -0
- package/dist/schemas/onchain_operations_repository.schema.json +8 -0
- package/dist/schemas/onchain_operations_reward.schema.json +14 -11
- package/dist/schemas/onchain_operations_service.schema.json +13 -10
- package/dist/schemas/onchain_operations_treasury.schema.json +17 -19
- package/dist/schemas/onchain_table_data.output.json +52 -10
- package/dist/schemas/persona_operation.output.json +57 -0
- package/dist/schemas/persona_operation.schema.json +9 -0
- package/dist/schemas/query_toolkit.output.json +325 -22
- package/dist/schemas/query_toolkit.schema.json +18 -5
- package/dist/schemas/wip_file.output.json +2 -2
- package/dist/schemas/wip_file.schema.json +2 -2
- package/dist/schemas/workflow_operation.schema.json +1 -1
- package/dist/tools/error-catalog.d.ts +17 -0
- package/dist/tools/error-catalog.js +1 -0
- package/dist/tools/handlers/benchmark-migration.d.ts +20 -8
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/entry-edge-recipe.d.ts +101 -0
- package/dist/tools/handlers/entry-edge-recipe.js +1 -0
- package/dist/tools/handlers/escrow-deficit.d.ts +10 -0
- package/dist/tools/handlers/escrow-deficit.js +1 -0
- package/dist/tools/handlers/evaluation.js +1 -1
- package/dist/tools/handlers/fund-rail-recipe.d.ts +10 -0
- package/dist/tools/handlers/fund-rail-recipe.js +1 -0
- package/dist/tools/handlers/intent-radar.js +1 -1
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/mark-namespace.d.ts +30 -0
- package/dist/tools/handlers/mark-namespace.js +1 -0
- package/dist/tools/handlers/messenger.js +1 -1
- package/dist/tools/handlers/onchain-name-registration.d.ts +1 -0
- package/dist/tools/handlers/onchain-name-registration.js +1 -1
- package/dist/tools/handlers/onchain-name-registration.spec.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +30 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/publish-binding-echo.d.ts +22 -0
- package/dist/tools/handlers/publish-binding-echo.js +1 -0
- package/dist/tools/handlers/query.d.ts +1 -1
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/review-chain.d.ts +1 -0
- package/dist/tools/handlers/review-chain.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/stale-build-check.d.ts +9 -0
- package/dist/tools/handlers/stale-build-check.js +1 -0
- package/dist/tools/handlers/submission-assembly.d.ts +55 -0
- package/dist/tools/handlers/submission-assembly.js +1 -0
- package/dist/tools/handlers/wip.js +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/move-fn-index.gen.js +1 -1
- package/dist/tools/publish-gate-state.d.ts +5 -0
- package/dist/tools/publish-gate-state.js +1 -0
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/onchain.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/retry.js +1 -1
- package/dist/tools/runtime-health.js +1 -1
- package/dist/tools/shared.js +1 -1
- package/dist/tools/upgrade-check.d.ts +1 -0
- package/dist/tools/upgrade-check.js +1 -1
- package/dist/tools/wip-verify-ledger.d.ts +2 -0
- package/dist/tools/wip-verify-ledger.js +1 -1
- package/dist/tools/wrap.d.ts +15 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,getTemplateLoadError,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift,templateCatalogDigest}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,auditTemplateOnceSlotArms,auditTemplateNodeOperatorOverwrite,auditTemplateReturnNoExit,BUILTIN_TEMPLATES_VERSION,DISCOVERY_PRODUCT_REFS,DISCOVERY_TAG_VOCABULARY,discoveryTagsForTemplate}from'../../knowledge/builtin-templates.js';import{landPlatformCommission}from'../../knowledge/commission-landing.js';import{getTemplateParamFileLayer,templateParamsFilePath}from'../../config/template-params.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{listIndustries,resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,discoverySignal,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';import{bindAuditPlan,bindAuditReport,bindRecoveryList,handlerExecutor,materializePlan}from'../../composition/materialize.js';import{clearPlanStep,lockedFreshStep,planLedgerKey,recordPlanRound,repeatedPlanFailures}from'../../composition/plan-retry-ledger.js';import{collectLateMarks,collectAddressSlotBareNames,validatePlan}from'../../composition/plan.js';import{LocalMark}from'@wowok/wowok';import{join,dirname,resolve}from'node:path';import{readFileSync}from'node:fs';import{fileURLToPath}from'node:url';import{computeSrcDistStaleness}from'../upgrade-check.js';const __dirname=dirname(fileURLToPath(import.meta.url));export function platformMarkRefusal(a,b){const c=a['toLowerCase']()['replace'](/^0x/,'');if(/^0x[0-9a-fA-F]{1,64}$/['test'](a)&&!/^0+$/['test'](c))return undefined;return'action=\x27plan_execute\x27:\x20the\x20LocalMark\x20\x27platform\x27\x20resolves\x20to\x20\x27'+a+'\x27\x20on\x20'+b+'\x20network\x20—\x20not\x20a\x20usable\x20account\x20address.\x20'+'This\x20plan\x20names\x20\x27platform\x27\x20as\x20a\x20settlement\x20recipient\x20and\x20order_allocators\x20freezes\x20at\x20Service\x20publish,\x20so\x20a\x20wrong\x20payee\x20can\x20only\x20be\x20fixed\x20by\x20re-publishing\x20the\x20Service.\x20'+'An\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy);\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+'Re-point\x20the\x20mark\x20at\x20a\x20real\x20account\x20address\x20—\x20local_mark_operation\x20{add:{op:\x22add\x22,data:[{name:\x22platform\x22,address:\x220x...\x22}]}}\x20—\x20then\x20re-run.\x20Nothing\x20was\x20executed.';}export function staleBuildFace(a=join(__dirname,'..','..','..','src'),b=join(__dirname,'..','..','..','dist')){let c=null;try{c=computeSrcDistStaleness(a,b,{'srcExt':'.ts','distExt':'.js'});}catch{c=null;}if(!c)return{'stale':![],'known':![],'actionable':![],'lag_minutes':null,'detail':'Stale-build\x20state\x20UNKNOWN\x20—\x20the\x20source\x20and\x20build-output\x20trees\x20were\x20not\x20both\x20resolvable\x20(installed\x20dist-only\x20'+'package\x20or\x20a\x20build\x20in\x20progress),\x20so\x20template\x20freshness\x20could\x20not\x20be\x20verified.\x20NOT\x20actionable:\x20treat\x20the\x20'+'scan/plan\x20verdicts\x20as\x20unconfirmed\x20—\x20do\x20not\x20act\x20on\x20them\x20until\x20a\x20rebuild\x20resolves\x20freshness.'};if(!c['stale'])return{'stale':![],'known':!![],'actionable':!![],'lag_minutes':c['lag_minutes'],'detail':'dist\x20is\x20current\x20with\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime\x20lag\x20'+c['lag_minutes']+'\x20'+'minute(s))\x20—\x20the\x20scan/plan\x20verdicts\x20reflect\x20this\x20workspace\x20checkout.'};return{'stale':!![],'known':!![],'actionable':![],'lag_minutes':c['lag_minutes'],'detail':'NOT\x20ACTIONABLE\x20—\x20do\x20not\x20act\x20on\x20the\x20verdicts\x20in\x20this\x20response.\x20dist\x20is\x20'+c['lag_minutes']+'\x20minute(s)\x20OLDER\x20'+'than\x20src\x20(newest\x20compiled\x20.js\x20vs\x20newest\x20source\x20.ts\x20mtime),\x20so\x20every\x20scan/plan\x20conclusion\x20above\x20may\x20'+'describe\x20superseded\x20template\x20knowledge\x20(live\x20rq-tn-261030-8693be:\x20a\x20508-minute-stale\x20dist\x20produced\x20two\x20'+'false\x20defect\x20reports,\x20F-RQ-09/14).\x20Rebuild\x20(pnpm\x20build),\x20restart\x20the\x20MCP\x20process,\x20and\x20re-run\x20before\x20'+'acting\x20on\x20ANY\x20conclusion\x20here.'};}function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role'],'tags':discoveryTagsForTemplate(a['id'])};}function templateGetAids(a){const b=a['machine_shape']['find'](g=>g['name']==='reviewed'),c=b!==undefined&&a['review_mode']!=='none'&&b['operator']!=='merchant',d=a['allocator']['rows']??[],e=[...new Set(d['map'](g=>g['guard_key'])['filter'](g=>typeof g==='string'&&g!==''))],f=d['length']>0x0?'\x20On-chain\x20this\x20materialises\x20as\x20~'+e['length']+'\x20Allocator\x20OBJECT(S)\x20(one\x20per\x20distinct\x20guard_key:\x20'+e['join'](',\x20')+')\x20across\x20'+d['length']+'\x20row(s)\x20—\x20model\x20capacity/monitoring\x20on\x20the\x20object\x20count,\x20never\x20on\x20allocator.count.':'\x20rows[]\x20is\x20empty\x20—\x20no\x20allocator\x20legs\x20are\x20declared.';return{'claim_anchor':c?'review_node+final':b!==undefined?'no_buyer_review_rail':'final_only','claim_anchor_note':c?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':b!==undefined?'a\x20\x27reviewed\x27\x20node\x20exists\x20but\x20is\x20NOT\x20a\x20buyer\x20review\x20rail\x20(review_mode\x20\x27none\x27,\x20or\x20the\x20marker\x20is\x20merchant/triager-operated)\x20—\x20no\x20buyer-structured\x20review\x20is\x20mounted;\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.'+f,'onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(the\x20on-chain\x20passport\x20contract\x27s\x20own\x20field\x20name,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c){const d=getTemplateLoadError(a);if(d)throw new Error('Template\x20\x27'+a+'\x27\x20is\x20BLOCKED\x20for\x20action=\x27'+b+'\x27:\x20its\x20machine\x20file\x20failed\x20to\x20load/validate\x20and\x20is\x20invisible\x20to\x20every\x20action\x20until\x20fixed\x20(T-18\x20—\x20see\x20action=\x27template_list\x27\x20load_errors).\x20Loader:\x20'+d);throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');}return c;}export function wipAnchorFace(a){if(!Array['isArray'](a)||a['length']===0x0)return undefined;const b=a['filter'](c=>c&&typeof c==='object'&&typeof c['name']==='string'&&String(c['wip_hash']??'')==='')['map'](c=>c['name']);if(b['length']===0x0)return undefined;return{'status':'unpinned','rule_id':'R-WIP-UNPINNED','severity':'high','unpinned_skus':b,'remediation':'These\x20SKU(s)\x20publish\x20with\x20NO\x20wip\x20pin\x20—\x20buyers\x20get\x20no\x20delivery-integrity\x20guarantee\x20(the\x20merchant\x20can\x20swap\x20the\x20.wip\x20file\x20later\x20undetected).\x20'+'After\x20publish,\x20rebind\x20via\x20the\x20per-item\x20sales\x20op\x20wip_set\x20(MCP\x20composite:\x20touches\x20only\x20wip/wip_hash)\x20or\x20a\x20full\x20op:set\x20rewrite\x20—\x20live-tested\x200.00272\x20gas.\x20'+'Prefer\x20passing\x20wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload\x20at\x20build\x20time\x20instead.'};}export function returnNoExitFace(a){try{const b=BUILTIN_TEMPLATES['find'](d=>d['id']===a);if(!b)return undefined;const c=auditTemplateReturnNoExit([b])[0x0];return c?{'status':'return_no_exit','rule_id':c['rule_id'],'severity':c['severity'],'stranded_nodes':c['stranded_nodes'],'remediation':c['remediation']}:undefined;}catch{return undefined;}}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function withOnceSlotAdvisories(a){try{const b=auditTemplateOnceSlotArms()['find'](e=>e['template_id']===a['template_id']),c=auditTemplateNodeOperatorOverwrite()['filter'](e=>e['template_id']===a['template_id']);if(!b&&c['length']===0x0)return a;const d=c['map'](e=>({'rule_id':'NODE_OPERATOR_OVERWRITTEN','severity':'medium','title':'Edge\x20operator\x20inherited\x20past\x20an\x20explicit\x20source-node\x20operator','detail':e['message'],'suggestion':'Declare\x20edge.operator\x20explicitly\x20on\x20this\x20forward\x20(or\x20add\x20a\x20buyer-favour\x20timeout\x20exit\x20from\x20the\x20request\x20node).\x20The\x20kernel\x20inheritance\x20chain\x20(edge\x20??\x20dest-node\x20??\x20default)\x20never\x20consults\x20the\x20SOURCE\x20node,\x20so\x20an\x20un-annotated\x20edge\x20out\x20of\x20an\x20order_payer\x20request\x20node\x20silently\x20ships\x20as\x20a\x20merchant\x20permission\x20rail\x20(F-40/F-42:\x20the\x20buyer\x20parked\x20on\x20the\x20request\x20node\x20has\x20zero\x20executable\x20forwards\x20and\x20the\x20merchant\x20rewrite\x20ships\x20unguarded).\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'}));return{...a,'findings':[...a['findings'],...b?[{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'medium','title':'Once-slot\x20arming\x20on\x20a\x20periodic\x20rail\x20('+b['kind']+')','detail':b['message'],'suggestion':'Arm\x20the\x20re-enterable\x20settlement/renewal\x20guard\x20with\x20identifier\x20255\x20plus\x20a\x20per-period\x20key\x20(period-<N>\x20from\x20chain\x20state,\x20e.g.\x20progress\x20history\x20count)\x20and\x20have\x20the\x20trigger\x20Passport\x20submit\x20the\x20same\x20value;\x20keep\x20254\x20for\x20one-shot-per-order\x20rails\x20only.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'}]:[],...d]};}catch{return a;}}export function planEnvelopeFromInput(a){if(!a||typeof a!=='object'||Array['isArray'](a))throw new Error('\x27plan\x27\x20is\x20required\x20for\x20action=\x27plan_execute\x27\x20—\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20verbatim,\x20or\x20{root:\x27file\x27,\x20path}\x20to\x20read\x20it\x20from\x20disk');let b=a;if(b['root']==='file'){const c=typeof b['path']==='string'?b['path']:'';if(!c)throw new Error('action=\x27plan_execute\x27:\x20plan\x20{root:\x27file\x27}\x20requires\x20a\x20\x27path\x27\x20field\x20pointing\x20at\x20the\x20saved\x20plan\x20JSON');let d;try{d=readFileSync(resolve(c),'utf-8');}catch(g){throw new Error('action=\x27plan_execute\x27:\x20failed\x20to\x20read\x20plan\x20file\x20\x27'+c+'\x27:\x20'+g['message']);}let f;try{f=JSON['parse'](d);}catch(h){throw new Error('action=\x27plan_execute\x27:\x20plan\x20file\x20\x27'+c+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+h['message']);}if(!f||typeof f!=='object'||Array['isArray'](f))throw new Error('action=\x27plan_execute\x27:\x20plan\x20file\x20\x27'+c+'\x27\x20must\x20contain\x20a\x20JSON\x20object\x20—\x20the\x20template_generate\x20plan\x20envelope\x20({plan:{steps,...}})\x20or\x20the\x20bare\x20plan\x20({steps,...})');b=f;}return b;}export function templateAdvisoryFaces(a){try{if(!a)return{};const b=getTemplate(a);if(!b)return{};const c=scanSummary(withOnceSlotAdvisories(scanTemplate(b)),driftFace(a)),d=returnNoExitFace(a);return d?{'scan':c,'return_no_exit':d}:{'scan':c};}catch{return{};}}function scanSummary(a,b){a=withOnceSlotAdvisories(a);const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function buildVerdict(a,b,c,d){const e=[];!a['preflight_scan_passed']&&e['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const m=generateHighBlockers(a['template_id'],a['findings']??[]);m['length']>0x0&&e['push']('scan:\x20'+m['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+m['map'](n=>((n['rule_id']??'HIGH')+':\x20'+(n['title']??''))['trim']())['join'](';\x20'));}const f=b['graph_validation'];if(f&&f['valid']===![]){const n=Array['isArray'](f['hard_violations'])?f['hard_violations']['length']:0x0,o=Array['isArray'](f['hard_violations'])?f['hard_violations']['map'](p=>p['id'])['join'](',\x20'):'';e['push']('graph_validation:\x20'+n+'\x20hard\x20violation(s)'+(o?'\x20('+o+')':''));}const g=b['audit'];if(g&&g['blocking']===!![]){const p=(g['findings']??[])['filter'](q=>q['level']==='critical'||q['level']==='high');e['push'](p['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+p['length']+'\x20blocking\x20finding(s)\x20—\x20'+p['slice'](0x0,0x5)['map'](q=>((q['rule_id']??'?')+':\x20'+(q['title']??''))['trim']())['join'](';\x20')+(p['length']>0x5?'\x20(+'+(p['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const h=b['harness_check'],i=[...new Set((h?.['blocking_issues']??[])['filter'](q=>q['module']==='template')['flatMap'](q=>q['missing_constraints']??[]))];i['length']>0x0&&e['push']('compile:\x20'+i['length']+'\x20blocker(s)\x20—\x20merchant_guide\x20refuses\x20to\x20materialize\x20this\x20plan:\x20'+i['join'](',\x20'));const j=(Array['isArray'](b['pending_guard_designs'])?b['pending_guard_designs']:[])['filter'](q=>q!=null&&q['bound']===!![])['length'];j>0x0&&e['push']('pending_guard_designs:\x20'+j+'\x20unresolved\x20BOUND\x20guard\x20design(s)\x20—\x20the\x20guard\x20surface\x20is\x20not\x20final.\x20'+'Resolve\x20each\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20then\x20re-run.');const k=b['steps'];if(Array['isArray'](k)&&k['length']>0x0){const q=validatePlan(b);q['length']>0x0&&e['push']('executability:\x20'+q['length']+'\x20structural\x20issue(s)\x20—\x20the\x20plan\x20would\x20abort\x20mid-flight:\x20'+q['slice'](0x0,0x5)['map'](r=>''+r['code']+(r['step']?'@'+r['step']:''))['join'](',\x20')+(q['length']>0x5?'\x20(+'+(q['length']-0x5)+'\x20more)':''));}if(d&&!d['actionable'])return{'buildable':![],'blockers':['UNVERIFIED\x20(stale_build):\x20'+(d['stale']?'the\x20running\x20dist\x20lags\x20the\x20workspace\x20src\x20by\x20'+(d['lag_minutes']??'?')+'\x20minute(s)':'template\x20freshness\x20could\x20NOT\x20be\x20resolved\x20(dist-only\x20install\x20or\x20a\x20build\x20in\x20progress)')+'\x20—\x20every\x20conclusion\x20in\x20this\x20response\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20'+'This\x20is\x20a\x20VERIFICATION\x20failure,\x20NOT\x20a\x20plan\x20defect;\x20the\x20plan\x27s\x20own\x20signal\x20faces\x20below\x20are\x20listed\x20unverified.\x20'+'Rebuild\x20the\x20MCP\x20dist\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-run\x20for\x20a\x20verified\x20verdict.',...e],'status':'UNVERIFIED'};const l=e['length']===0x0;return{'buildable':l,'blockers':e,'status':l?'READY':'BLOCKED'};}async function templateScanDryRun(a,b){const c=[{'name':'scan-probe','price':'1000000000','quantity':0x1}],d=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'20000000','reward_claim_amount':'1000000'}:undefined;try{const f=await runGuide(a,undefined,undefined,undefined,d,c),g=buildVerdict(scanSummary(scanTemplate(a)),f,!![],b);return{'status':g['status']==='UNVERIFIED'?'unverified':g['buildable']?'ready':'blocked','buildable':g['buildable'],'blockers':g['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(h){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(h instanceof Error?h['message']:String(h))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c,d){if(d&&!d['actionable'])return'DO\x20NOT\x20execute\x20this\x20plan\x20yet\x20—\x20'+(d['stale']?'the\x20running\x20dist\x20lags\x20the\x20workspace\x20src\x20by\x20'+(d['lag_minutes']??'?')+'\x20min':'template\x20freshness\x20could\x20NOT\x20be\x20verified')+'\x20(stale_build\x20above;\x20verdicts\x20unconfirmed).\x20Rebuild\x20the\x20MCP\x20dist\x20first\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20server,\x20then\x20re-run\x20'+b+'\x20—\x20the\x20plan\x20just\x20returned\x20was\x20compiled\x20from\x20code\x20that\x20may\x20not\x20be\x20what\x20is\x20running.';const e=a['next_action'],f=(Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']:[])['filter'](g=>g!=null&&g['bound']===!![])['length'];if(c&&!c['buildable'])return(f>0x0?'Plan\x20BLOCKED\x20—\x20'+f+'\x20unresolved\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20(verdict).\x20Do\x20NOT\x20materialize,\x20':'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20')+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(f>0x0?'Resolve\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');if(typeof e==='string'&&e['startsWith']('Plan\x20ready.'))return e;if(c?.['buildable'])return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(f>0x0?'Resolve\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}const FUNDING_THRESHOLD_PATTERNS=[/(?:funding|campaign|round)[\s-]*(?:threshold|goal)s?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:funding|campaign|round)[\s-]*(?:threshold|goal)\b/i],MIN_ORDER_PATTERNS=[/(?:min(?:imum)?)\s+order(?:\s+(?:price|value|amount))?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:min(?:imum)?)\s+order\b/i];export function extractFundingThresholdCandidate(a){if(!a)return undefined;for(const b of FUNDING_THRESHOLD_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}export function extractMinOrderCandidate(a){if(!a)return undefined;for(const b of MIN_ORDER_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function numericFeePrefill(a,b,c,d,e,f,g){if(a['fee_params'][b]===undefined)return undefined;if(f?.[b]!==undefined)return undefined;const h=g?claimNumber(g,c):undefined;if(h!==undefined)return{'fee_key':b,'value':h,'claim_source':'semantic_ir'};const i=d(e);return i===undefined?undefined:{'fee_key':b,'value':i};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){if(typeof f!=='number'||!Number['isFinite'](f))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](f)||f<0x0||f>0x2710)&&c['push'](e+'='+f+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,f);}else{if(e['endsWith']('_days')){if(f<=0x0||f>0xe42)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x203650]\x20days');}else{if(e['endsWith']('_hours')){if(f<=0x0||f>0x2238)c['push'](e+'='+f+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20(0,\x208760]\x20hours');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];const j=numericFeePrefill(a,'funding_threshold','funding_threshold_amount',extractFundingThresholdCandidate,b,c,g);if(j)h[j['fee_key']]=j['value'];const k=numericFeePrefill(a,'min_order_price','min_order_price_amount',extractMinOrderCandidate,b,c,g);if(k)h[k['fee_key']]=k['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const l=landPlatformCommission(a,h);if(l['error']!==undefined)throw new Error(l['error']);const m=l['rows']?{...a,'allocator':{...a['allocator'],'rows':l['rows'],'count':l['rows']['filter'](z=>z['track']==='settlement')['length']}}:a,n=getIndustryModeRegistry()['getMode'](a['industry']),o=platformShareBps(h),q={'model':variantPaymentModel(a)},r=[],s=(m['allocator']['rows']?.['length']??0x0)>0x0;if(o!==undefined&&o>0x0&&!s&&a['allocator']['mode']==='rate'){const z=Math['round'](o)/0x64;r['push']({'recipient':'merchant','percentage':Math['round']((0x64-z)*0x64)/0x64}),r['push']({'recipient':'platform','percentage':z}),q['allocation']=r;}const u=variantRefundPolicy(a),v={'escrow':!![]};if(u)v['refundPolicy']=u;v['arbitration']=a['arbitration_mode']??v['arbitration']??inferArbitration(templateIntent(a,b));const w=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':q,'trust':v,'deliverables':variantDeliverables(a,n?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...e?.['logistics_mode']?{'logistics_mode':e['logistics_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...m,'fee_params':h},'name_base':a['id']});m['allocator']['rows']?.['length']&&(w['template_allocator_rows']=m['allocator']['rows']['map'](A=>({...A})));if(l['landing']!==undefined)w['commission_landing']=l['landing'];w['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},w['catalog_version']=BUILTIN_TEMPLATES_VERSION;const x=templateCatalogDigest(a['id']);if(x!==undefined)w['template_digest']=x;if(w['plan']&&typeof w['plan']==='object'&&!Array['isArray'](w['plan'])){w['plan']['catalog_version']=BUILTIN_TEMPLATES_VERSION;if(x!==undefined)w['plan']['template_digest']=x;}{const A=[...collectLateMarks(w['plan']??{})]['sort']();A['length']>0x0&&(w['required_local_marks']=A,w['required_local_marks_note']='plan_execute\x20resolves\x20each\x20of\x20these\x20local\x20names\x20against\x20the\x20LocalMark\x20store\x20of\x20the\x20target\x20network\x20and\x20refuses\x20to\x20execute\x20while\x20any\x20is\x20unregistered.\x20'+'Register\x20them\x20BEFORE\x20executing\x20(local_mark_operation\x20add).\x20A\x20name\x20that\x20matches\x20an\x20object\x20this\x20plan\x20itself\x20creates\x20is\x20bound\x20to\x20that\x20object\x20automatically.\x20'+'A\x20recipient\x20mark\x20must\x20point\x20at\x20a\x20real\x20account\x20address:\x20an\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy),\x20and\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+'A\x20Rate-0\x20Entity\x20leg\x20still\x20listed\x20in\x20template_allocator_rows\x20is\x20dropped\x20at\x20compile\x20time\x20and\x20needs\x20no\x20mark\x20(the\x20direct-sales\x20default\x20pays\x20nobody).');}w['template_fee_param_landings']=buildFeeParamLandingTable(m,h);if(c&&Object['keys'](c)['length']>0x0)w['template_fee_overrides']=c;const y=[];if(i)y['push'](i);if(j)y['push'](j);if(k)y['push'](k);if(y['length']>0x0){w['fee_overrides_prefills']=y;for(const B of y){const C=B['fee_key']==='review_reward_pool'?'Reward\x20pool':B['fee_key']==='funding_threshold'?'Funding\x20threshold':'Minimum\x20order',D=B['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';w['next_action']=w['next_action']+'\x20'+C+'\x20prefilled\x20from\x20your\x20request:\x20'+B['value']+D+'\x20—\x20adjust\x20via\x20fee_overrides.';}}return w;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir'],{'source_text':b['description']}):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'discovery_vocabulary':{'industries':listIndustries()['map'](k=>k['name'])['sort'](),'tags':[...DISCOVERY_TAG_VOCABULARY],'product_refs':[...DISCOVERY_PRODUCT_REFS]},'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get');f={'action':'template_get','template':{...k,...templateGetAids(k)}};break;}case'template_generate':{const l=requireTemplate(b['template_id'],'template_generate'),m=b['review_mode']??l['review_mode']??'none',n=[];m==='review_reward'&&!b['reward_funding']&&n['push']('reward_funding\x20is\x20required:\x20template\x20\x27'+l['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(INV-4).\x20Pass\x20reward_funding\x20(smallest-unit\x20string;\x20expected\x20orders\x20x\x20per-order\x20reward\x20—\x20fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).');(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)&&n['push']('sales\x20is\x20required:\x20a\x20plan\x20without\x20a\x20sellable\x20catalog\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01,\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).\x20Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU,\x20price\x20in\x20smallest\x20units\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).');if(n['length']>0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20'+n['length']+'\x20input\x20gap(s),\x20ALL\x20listed\x20at\x20once\x20(AR-4\x20T-05):\x20'+n['map']((t,u)=>'('+(u+0x1)+')\x20'+t)['join']('\x20')}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20input\x20preflight\x20failed\x20with\x20'+n['length']+'\x20gap(s)\x20on\x20template\x20\x27'+l['id']+'\x27\x20—\x20all\x20gaps\x20reported\x20in\x20this\x20single\x20response\x20(do\x20not\x20fix\x20one\x20and\x20rediscover\x20the\x20next).','error_code':'input_preflight_failed','retryable':!![],'recovery_hint':n['join']('\x20|\x20'),'gaps':n},'message':'Refused:\x20input\x20preflight\x20failed.\x20Fix\x20ALL\x20listed\x20gaps,\x20then\x20re-send\x20ONCE.\x20See\x20recovery_hint.'}};const o=scanTemplate(l);assertGenerateScanPassed(o,'template_generate');const p=getTemplateParamFileLayer(l['id']),q=Object['keys'](p)['length']>0x0,r=q?{...p,...b['fee_overrides']??{}}:b['fee_overrides'],s=await runGuide(l,b['description'],r,b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const t=scanSummary(o,driftFace(l['id'])),u=staleBuildFace(),v=buildVerdict(t,s,undefined,u),w=wipAnchorFace(b['sales']),x=returnNoExitFace(l['id']),y=planNextAction(s,'template_generate',v,u);return{'action':'template_generate','template_id':l['id'],...e,'stale_build':u,'scan':t,'plan':s,'verdict':v,...q?{'template_params_file':{'path':templateParamsFilePath(),'applied':p}}:{},...w?{'wip_anchor':w}:{},...x?{'return_no_exit':x}:{},'next_action':y};})());break;}case'template_scan':{const t=requireTemplate(b['template_id'],'template_scan'),u=staleBuildFace(),v=await templateScanDryRun(t,u),w=returnNoExitFace(t['id']);f={'action':'template_scan','stale_build':u,'scan':{...withOnceSlotAdvisories(scanTemplate(t)),'drift':driftFace(t['id']),'compile_dry_run':v},...v['status']==='unavailable'?{}:{'buildable':v['buildable']===!![],'build_blockers':v['blockers']??[]},...w?{'return_no_exit':w}:{},'next_action':v['status']==='blocked'?'compile_dry_run\x20BLOCKED\x20—\x20the\x20static\x20rule\x20scan\x20passed,\x20but\x20the\x20compile\x20kernel\x20refuses\x20this\x20template\x20(see\x20build_blockers;\x20the\x20same\x20verdict\x20template_generate\x20enforces).\x20Do\x20NOT\x20publish\x20from\x20this\x20scan:\x20run\x20template_generate\x20for\x20the\x20full\x20verdict,\x20or\x20fix\x20the\x20template\x20and\x20re-scan.':v['status']==='unverified'?'compile_dry_run\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(stale_build\x20above):\x20the\x20findings\x20and\x20verdict\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20Do\x20NOT\x20act\x20on\x20ANY\x20conclusion\x20here.\x20Rebuild\x20the\x20MCP\x20dist\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-scan.':v['status']==='ready'?'compile_dry_run\x20READY\x20on\x20probe\x20inputs\x20—\x20proceed\x20with\x20template_generate.':'compile_dry_run\x20unavailable\x20on\x20probe\x20inputs\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const x=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,y=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:x?.['recommendations'][0x0]?.['industry'],'ir_discovery':d?discoverySignal(d['ir']):undefined,'network':b['network']});if(!y)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20add\x20discovery\x20tags\x20/\x20a\x20product_ref\x20to\x20semantic_ir\x20(tags\x20vocabulary:\x20template_list.discovery_vocabulary).':'\x20(or\x20provide\x20semantic_ir\x20with\x20discovery\x20tags\x20/\x20traits\x20for\x20a\x20non-English\x20description).'));const z=getTemplate(y['source']['matched_template']),A=z?await templateScanDryRun(z,staleBuildFace()):undefined;f={'action':'migration_import','log':y,...A&&A['buildable']!==undefined?{'buildable':A['buildable']===!![],'build_blockers':A['blockers']??[],'compile_dry_run':{'status':A['status'],'note':A['note']}}:{},...x?{'inference_source':x['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'+(A?.['status']==='unverified'?'\x20NOTE:\x20the\x20compile\x20dry-run\x20verdict\x20is\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20build_blockers):\x20do\x20NOT\x20act\x20on\x20buildability\x20until\x20rebuilt\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace)\x20and\x20re-run.':A?.['status']==='blocked'?'\x20NOTE:\x20compile\x20dry-run\x20BLOCKED\x20on\x20probe\x20inputs\x20(see\x20build_blockers)\x20—\x20surface\x20the\x20blockers\x20at\x20review\x20BEFORE\x20migration_apply;\x20input-naming\x20blockers\x20may\x20clear\x20with\x20real\x20values.':'')};break;}case'plan_execute':{const B=planEnvelopeFromInput(b['plan']),C=B['plan']!==undefined&&typeof B['plan']==='object'&&!Array['isArray'](B['plan'])&&Array['isArray'](B['plan']['steps'])?B['plan']:B;if(!Array['isArray'](C['steps']))throw new Error('action=\x27plan_execute\x27:\x20the\x20passed\x20plan\x20carries\x20no\x20steps[]\x20—\x20pass\x20the\x20template_generate\x20\x27plan\x27\x20object\x20verbatim');const D=typeof C['catalog_version']==='number'?C['catalog_version']:undefined,E=typeof C['templateId']==='string'?C['templateId']:undefined,F=typeof C['template_digest']==='string'?C['template_digest']:undefined,G=D===BUILTIN_TEMPLATES_VERSION,H=!G&&E!==undefined&&F!==undefined&&templateCatalogDigest(E)===F;if(D!==undefined&&!G&&!H)throw new Error('action=\x27plan_execute\x27:\x20STALE\x20PLAN\x20—\x20the\x20plan\x20was\x20generated\x20against\x20catalog\x20v'+D+',\x20'+('but\x20this\x20server\x20runs\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+(H?'':'\x20and\x20its\x20template\x20content\x20does\x20not\x20match\x20this\x20catalog\x27s\x20template')+';\x20shapes,\x20guards\x20and\x20emissions\x20may\x20have\x20')+'changed\x20since.\x20Re-run\x20template_generate\x20(or\x20migration_apply)\x20to\x20regenerate\x20the\x20plan\x20against\x20the\x20'+'current\x20catalog,\x20then\x20execute\x20THAT\x20verbatim.\x20Nothing\x20was\x20executed.');const I=templateAdvisoryFaces(E),J=(C['steps']??[])['filter'](aa=>aa!==null&&typeof aa==='object'),K=J['map'](aa=>String(aa['id'])),L=new Set(J['filter'](aa=>aa['op']==='create')['map'](aa=>String(aa['id'])));let M=[...b['completed_steps']??[]];const N=b['resume_from_step'];if(N!==undefined){const aa=K['indexOf'](N);if(aa<0x0)throw new Error('action=\x27plan_execute\x27:\x20resume_from_step\x20\x27'+N+'\x27\x20is\x20not\x20a\x20step\x20of\x20THIS\x20plan\x20(steps:\x20'+K['join'](',\x20')+').\x20'+'Step\x20ids\x20are\x20plan-local:\x20resume\x20against\x20the\x20plan\x20returned\x20by\x20the\x20ORIGINAL\x20template_generate\x20(a\x20regenerated\x20plan\x20mints\x20new\x20ids).\x20Nothing\x20was\x20executed.');M=[...new Set([...M,...K['slice'](0x0,aa)])];}const O=M['filter'](ab=>!K['includes'](ab));if(O['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20completed_steps\x20name(s)\x20['+O['join'](',\x20')+']\x20are\x20not\x20steps\x20of\x20THIS\x20plan\x20—\x20the\x20resume\x20channel\x20'+'adopts\x20ONLY\x20steps\x20of\x20the\x20SAME\x20plan,\x20and\x20a\x20silently-ignored\x20unknown\x20id\x20would\x20re-execute\x20the\x20real\x20step\x20(ghost\x20duplicates).\x20'+'This\x20usually\x20means\x20the\x20plan\x20was\x20REGENERATED\x20(ids\x20changed):\x20pass\x20the\x20original\x20plan\x20with\x20ITS\x20resume\x20payload,\x20or\x20this\x20response\x27s\x20`resume`\x20object\x20verbatim.\x20Nothing\x20was\x20executed.');const P=b['previous_outputs']??{},Q=M['filter'](ab=>L['has'](ab)&&P[ab]===undefined);if(Q['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20adopted\x20create\x20step(s)\x20['+Q['join'](',\x20')+']\x20have\x20NO\x20previous_outputs\x20entry\x20—\x20an\x20adopted\x20create\x20'+'without\x20its\x20created\x20address\x20cannot\x20resolve\x20$ref\x20bindings.\x20Pass\x20the\x20addresses\x20from\x20the\x20prior\x20run\x27s\x20outputs\x20field\x20(or\x20its\x20`resume`\x20payload).\x20Nothing\x20was\x20executed.');const R=M['length']>0x0||Object['keys'](P)['length']>0x0||N!==undefined?{'completedSteps':M,'outputs':P}:undefined,S=((()=>{const ab=new Map();for(const ad of C['steps']??[]){const ae=ad['params'];ad['op']==='create'&&typeof ae?.['name']==='string'&&ab['set'](ae['name'],String(ad['id']));}const ac=af=>{if(Array['isArray'](af))return af['map'](ac);if(af&&typeof af==='object'){const ag=af,ah=ag['$late'],ai=Object['keys'](ag);if(ah?.['by']==='local_name'&&typeof ah['mark']==='string'&&ai['length']===0x1&&ab['has'](ah['mark']))return{'$ref':ab['get'](ah['mark'])};return Object['fromEntries'](Object['entries'](ag)['map'](([aj,ak])=>[aj,ac(ak)]));}return af;};return ac(C);})()),T=bindAuditPlan(S);if(T['length']>0x0){const ab=bindRecoveryList(S,b['previous_outputs']);throw new Error('action=\x27plan_execute\x27:\x20PLAN_BIND_AUDIT_FAILED\x20—\x20the\x20plan\x20binds\x20plan-created\x20objects\x20by\x20'+'global-namespace\x20NAME\x20instead\x20of\x20{\x22$ref\x22:\x20stepId}\x20(or\x20carries\x20an\x20undeclared\x20external\x20local_name).\x20'+'Executing\x20would\x20wire\x20THIS\x20store\x20to\x20ANOTHER\x20run\x27s\x20objects\x20—\x20Guards\x20are\x20create-frozen\x20and\x20Machines\x20'+'cannot\x20republish,\x20so\x20the\x20mis-binding\x20is\x20unrecoverable\x20after\x20the\x20fact\x20(ddmc4\x20B-13,\x20pdd\x20F-08).\x20'+'Nothing\x20was\x20executed.\x0a'+bindAuditReport(T,ab)+'\x0aRe-run\x20template_generate\x20against\x20the\x20current\x20catalog\x20(its\x20compile\x20emits\x20{\x22$ref\x22:\x20stepId}\x20for\x20'+'every\x20plan-internal\x20object),\x20then\x20execute\x20THAT\x20plan.');}const U=planLedgerKey(S);let V;const W=lockedFreshStep(U,K,new Set(M));if(W!==undefined){const ac=b['retry_override'];if(ac!==undefined&&ac['step_id']===W['stepId']&&ac['note']['trim']()['length']>0x0)clearPlanStep(U,W['stepId']),V={'step_id':W['stepId'],'note':ac['note']};else throw new Error('action=\x27plan_execute\x27:\x20RETRY_LOCKED\x20—\x20step\x20\x27'+W['stepId']+'\x27\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x20'+W['count']+'\x20consecutive\x20'+('rounds\x20(\x22'+W['lastError']+'\x22).\x20A\x20further\x20unchanged\x20re-run\x20fails\x20identically\x20and\x20burns\x20gas,\x20so\x20this\x20server\x20refuses\x20it\x20(nothing\x20was\x20executed).\x20')+'Fix\x20the\x20cause\x20first\x20—\x20usual\x20roots:\x20a\x20template/input\x20defect\x20(re-run\x20template_generate\x20for\x20a\x20FRESH\x20plan:\x20new\x20ids,\x20new\x20ledger),\x20a\x20missing\x20registration\x20(do\x20it,\x20then\x20resume),\x20'+'or\x20verify\x20the\x20single\x20step\x20manually\x20via\x20onchain_operations\x20to\x20confirm\x20the\x20fix.\x20'+('If\x20one\x20more\x20round\x20IS\x20justified,\x20pass\x20retry_override\x20{step_id:\x20\x22'+W['stepId']+'\x22,\x20note:\x20\x22<why>\x22}.'));}const X=[...new Set([...collectLateMarks(S),...collectAddressSlotBareNames(S)])],Y=b['env']?.['network'],Z=new Map(),a0=[];for(const ad of X){const ae=await LocalMark['Instance']()['get_address'](ad,Y)['catch'](()=>undefined);if(typeof ae==='string'&&ae['length']>0x0)Z['set'](ad,ae);else a0['push'](ad);}if(a0['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20unresolved\x20LocalMark(s)\x20['+a0['join'](',\x20')+']\x20on\x20'+(Y??'default')+'\x20network.\x20'+'This\x20plan\x20binds\x20an\x20object\x20by\x20local\x20name\x20(a\x20funding\x20recipient\x20slot,\x20an\x20external\x20object\x20reference,\x20or\x20an\x20Address-typed\x20guard\x20table\x20value).\x20Register\x20the\x20mark\x20first\x20—\x20'+('local_mark_operation\x20{add:{op:\x22add\x22,data:[{name:\x22'+a0[0x0]+'\x22,address:\x22<your\x20entity\x20address>\x22}]}}\x20—\x20then\x20re-run.\x20')+'Nothing\x20was\x20executed.');const a1=Z['get']('platform');if(a1!==undefined){const af=platformMarkRefusal(a1,Y??'default');if(af!==undefined)throw new Error(af);}const a2=await materializePlan(S,{'execute':handlerExecutor(b['env']),'envByAccount':b['accounts'],'timeoutMs':b['timeout_ms'],'resolveLate':ag=>{if(ag['by']==='address')return ag['address'];const ah=Z['get'](ag['mark']);if(ah===undefined)throw new Error('unresolved\x20late\x20binding:\x20local_name\x20\x27'+ag['mark']+'\x27');return ah;}},R),a3=a2['steps']['filter'](ag=>ag['status']==='blocked')['length'],a4=a2['steps']['find'](ag=>ag['status']==='failed'),a5=a2['steps']['some'](ag=>ag['status']==='blocked'&&typeof ag['error']==='string'&&ag['error']['startsWith']('preflight\x20failed:')),a6=a2['steps']['find'](ag=>ag['status']==='failed'&&typeof ag['digest']==='string'&&ag['digest']['length']>0x0),a7=a2['steps']['find'](ag=>ag['status']==='blocked'&&typeof ag['error']==='string'&&ag['error']['startsWith']('time\x20budget'));recordPlanRound(U,a2['steps']);const a8=repeatedPlanFailures(U);let a9=a2['completed']?'Deployed.\x20Verify\x20the\x20store\x20(query_toolkit:\x20service\x20/\x20machine\x20/\x20orders),\x20then\x20discharge\x20any\x20post-deploy\x20module\x20obligations\x20the\x20guide\x20listed\x20under\x20harness_check.module_gaps.':a5?'A\x20publish\x20step\x20was\x20BLOCKED\x20by\x20the\x20freeze\x20gate\x20—\x20the\x20store\x20is\x20NOT\x20live.\x20Fix\x20the\x20listed\x20preflight\x20checks\x20at\x20the\x20SOURCE\x20(re-run\x20template_generate);\x20never\x20patch\x20plan\x20steps\x20by\x20hand.':a6!==undefined?'Step\x20\x27'+a6['stepId']+'\x27\x20FAILED\x20with\x20digest\x20'+a6['digest']+'\x20—\x20the\x20transaction\x20MAY\x20have\x20committed\x20(transport\x20face).\x20VERIFY\x20FIRST:\x20onchain_transaction\x20with\x20that\x20digest.\x20If\x20committed:\x20ADOPT\x20it\x20—\x20add\x20\x27'+a6['stepId']+'\x27\x20to\x20completed_steps\x20(and\x20its\x20created\x20object\x20address\x20to\x20previous_outputs)\x20in\x20the\x20resume\x20call.\x20If\x20confirmed\x20absent:\x20re-send\x20with\x20this\x20response\x27s\x20resume\x20payload\x20(or\x20completed_steps/previous_outputs\x20from\x20it).\x20Never\x20blind-resume\x20a\x20digest-bearing\x20failure\x20(ghost\x20duplicates).':a2['budgetExhausted']?'Time\x20budget\x20('+String(b['timeout_ms'])+'ms)\x20reached\x20before\x20step\x20\x27'+(a7?.['stepId']??'?')+'\x27\x20—\x20the\x20run\x20stopped\x20cleanly\x20mid-plan\x20with\x20NO\x20unknown-state\x20step.\x20RESUME\x20(W5-08):\x20send\x20plan_execute\x20again\x20with\x20the\x20SAME\x20plan\x20and\x20this\x20response\x27s\x20resume\x20payload\x20VERBATIM\x20(completed_steps\x20+\x20previous_outputs),\x20or\x20resume_from_step\x20=\x20\x27'+(a7?.['stepId']??'<first\x20non-executed\x20stepId>')+'\x27\x20+\x20previous_outputs\x20('+a3+'\x20step(s)\x20remain;\x20raise\x20or\x20omit\x20timeout_ms\x20to\x20take\x20fewer\x20slices).':'Step\x20\x27'+(a4?.['stepId']??'?')+'\x27\x20FAILED:\x20'+(a4?.['error']??'unknown')+'.\x20RESUME\x20—\x20do\x20NOT\x20re-run\x20from\x20scratch\x20(duplicate\x20objects):\x20send\x20plan_execute\x20again\x20with\x20this\x20response\x27s\x20resume\x20payload\x20(completed_steps\x20+\x20previous_outputs),\x20or\x20resume_from_step\x20=\x20\x27'+(a4?.['stepId']??'?')+'\x27\x20+\x20previous_outputs.';if(a8['length']>0x0&&!a2['completed']){const ag='STOP\x20—\x20do\x20NOT\x20re-run\x20unchanged:\x20step\x20\x27'+a8[0x0]['step_id']+'\x27\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20for\x20'+a8[0x0]['consecutive_rounds']+'\x20consecutive\x20round(s);\x20a\x20further\x20unchanged\x20re-run\x20is\x20REFUSED\x20pre-execution.\x20';a9=a6!==undefined||a5?a9+'\x20'+ag+'After\x20resolving\x20the\x20state\x20question\x20above,\x20fix\x20the\x20ROOT\x20CAUSE\x20before\x20resuming\x20(retry_override\x20{step_id,\x20note}\x20is\x20the\x20audited\x20exception).':ag+'The\x20generic\x20RESUME\x20recipe\x20is\x20withheld\x20on\x20purpose.\x20Fix\x20the\x20root\x20cause\x20first\x20—\x20re-run\x20template_generate\x20for\x20a\x20fresh\x20plan\x20(new\x20ids\x20bypass\x20the\x20lock),\x20complete\x20a\x20missing\x20registration,\x20or\x20verify\x20the\x20single\x20failing\x20step\x20via\x20onchain_operations\x20—\x20THEN\x20resume\x20with\x20the\x20resume\x20payload.\x20retry_override\x20{step_id,\x20note}\x20authorizes\x20one\x20audited\x20exception.';}f={'action':'plan_execute','completed':a2['completed'],'steps':a2['steps'],'outputs':a2['outputs'],'preflight':{'issues':a2['preflight']['issues'],'findings':a2['preflight']['findings'],...Object['keys'](I)['length']>0x0?{'template_advisories':I}:{}},'readback':a2['readback'],...Z['size']>0x0?{'late_mark_bindings':Object['fromEntries'](Z),'late_mark_note':'PAYEE\x20VERIFICATION\x20(last\x20repairable\x20moment):\x20each\x20entry\x20is\x20the\x20address\x20a\x20local-name\x20funding\x20recipient\x20resolved\x20to.\x20'+'Verify\x20every\x20address\x20belongs\x20to\x20THIS\x20store\x27s\x20owner/operator\x20accounts\x20(accounts\x20you\x20control)\x20before\x20any\x20service_publish\x20step\x20runs.\x20'+'A\x20wrong\x20address\x20here\x20becomes\x20an\x20UNFIXABLE\x20on-chain\x20allocator\x20after\x20publish\x20—\x20correct\x20the\x20local\x20mark\x20(local_mark_operation\x20add)\x20and\x20re-run\x20if\x20anything\x20is\x20off.'}:{},...a2['completed']?{}:{'resume':{'completed_steps':a2['steps']['filter'](ah=>ah['status']==='executed')['map'](ah=>ah['stepId']),'previous_outputs':a2['outputs']}},...a8['length']>0x0?{'repeated_failures':a8,'retry_prohibited':!![]}:{},...V!==undefined?{'retry_override_applied':V}:{},'next_action':a9};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const ah=b['log'],ai=Array['isArray'](ah['mapped'])?ah['mapped']:[],aj=Array['isArray'](ah['unmapped'])?ah['unmapped']:[],ak=Array['isArray'](ah['manual_review'])?ah['manual_review']:[],al=ah['risk_check']??{},am=ah['source']?.['matched_template']??'',an=ah['template_match']??{},ao=typeof an['source']==='string'?an['source']:'unknown',ap=typeof an['confidence']==='number'?an['confidence']:0x0,aq=ao==='unknown'||ao==='industry_leader'||ao==='ir_industry_fallback'||ap<0.5,ar=am?getTemplate(am):undefined,as=ar?await templateScanDryRun(ar,staleBuildFace()):undefined,at=as?.['buildable']===undefined?undefined:as['buildable']===!![],au=as?.['blockers']??[],av=as?.['status']==='unverified'?'\x20NOTE:\x20the\x20compile\x20dry-run\x20verdict\x20is\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20review_summary.build_blockers):\x20rebuild\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart,\x20and\x20re-run\x20before\x20acting.':at===![]?'\x20NOTE:\x20compile\x20dry-run\x20ALSO\x20blocks\x20this\x20template\x20on\x20probe\x20inputs\x20(review_summary.build_blockers)\x20—\x20input-naming\x20blockers\x20may\x20clear\x20with\x20real\x20values.':'',aw=aj['length']===0x0&&ak['length']===0x0&&al['passed']===!![]&&!aq&&at!==![];f={'action':'migration_review','log':ah,'review_summary':{'mapped_count':ai['length'],'unmapped_count':aj['length'],'manual_review_count':ak['length'],'risk_passed':al['passed']===!![],...as?{...at!==undefined?{'buildable':at}:{},'build_blockers':au,'compile_dry_run':{'status':as['status'],'note':as['note']}}:{},'template_match':{'template_id':am,'source':ao,'confidence':ap,'weak_match':aq}},'next_action':aw?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+am+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).'+(as?.['status']==='unavailable'?'\x20Note:\x20the\x20compile\x20dry-run\x20could\x20not\x20run\x20on\x20probe\x20inputs\x20—\x20template_generate\x20remains\x20the\x20authoritative\x20buildability\x20check.':''):as?.['status']==='unverified'&&!aq?'compile\x20dry-run\x20verdict\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20review_summary.build_blockers).\x20Do\x20NOT\x20act\x20on\x20buildability:\x20rebuild\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-run\x20migration_plan\x20for\x20a\x20verified\x20verdict.':at===![]&&!aq?'compile_dry_run\x20BLOCKED\x20on\x20probe\x20inputs\x20—\x20the\x20static\x20risk\x20check\x20passed,\x20but\x20the\x20compile\x20kernel\x20refuses\x20\x27'+am+'\x27\x20(see\x20review_summary.build_blockers;\x20the\x20same\x20verdict\x20template_generate\x20enforces).\x20Surface\x20the\x20blockers\x20to\x20the\x20user\x20BEFORE\x20action=\x27migration_apply\x27\x20—\x20blockers\x20naming\x20caller\x20inputs\x20(sales\x20/\x20fee_overrides\x20/\x20guard_resolutions)\x20may\x20clear\x20with\x20real\x20values.':aq?'WEAK\x20TEMPLATE\x20MATCH:\x20\x27'+am+'\x27\x20was\x20chosen\x20by\x20\x27'+ao+'\x27\x20at\x20confidence\x20'+ap+'\x20—\x20a\x20fallback,\x20not\x20evidence\x20(ssng\x20A-1:\x20a\x20Chinese\x20one-liner\x20silently\x20built\x20the\x20wrong\x20store\x20this\x20way).\x20Play\x20the\x20match\x20back\x20to\x20the\x20user\x20and\x20confirm\x20the\x20business\x20model.\x20To\x20get\x20an\x20EVIDENCE-based\x20match,\x20translate\x20through\x20the\x20caller\x20mechanism\x20(any\x20locale\x20works;\x20translation\x20happens\x20in\x20the\x20caller,\x20never\x20in\x20keyword\x20tables):\x20produce\x20a\x20semantic_ir\x20carrying\x20discovery.english_summary\x20(an\x20English\x20restatement\x20of\x20the\x20intent),\x20discovery.tags\x20(each\x20from\x20template_list.discovery_vocabulary)\x20and\x20discovery.product_ref\x20(a\x20benchmark-product\x20slug),\x20with\x20every\x20evidence\x20quote\x20verbatim\x20in\x20the\x20description\x20—\x20then\x20re-run\x20migration_plan.\x20Only\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+am+'\x27\x20after\x20the\x20user\x20approves\x20THAT\x20template.'+av:'Surface\x20the\x20'+aj['length']+'\x20unmapped\x20and\x20'+ak['length']+'\x20manual_review\x20items'+(al['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+am+'\x27).'+av};break;}case'migration_apply':{const ax=requireTemplate(b['template_id'],'migration_apply'),ay=scanTemplate(ax);assertScanPassed(ay,'migration_apply');const az=b['network']??'testnet',aA=await runGuide(ax,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const aB=scanSummary(ay,driftFace(ax['id'])),aC=staleBuildFace(),aD=buildVerdict(aB,aA,undefined,aC),aE=wipAnchorFace(b['sales']);return{'action':'migration_apply','template_id':ax['id'],'network':az,...e,'scan':aB,'plan':aA,'verdict':aD,...aE?{'wip_anchor':aE}:{},'next_action':planNextAction(aA,'migration_apply',aD,aC)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
|
|
1
|
+
import{strictParse}from'../../schema/index.js';import{BenchmarkMigrationSchema}from'../../schema/benchmark-migration/index.js';import{getTemplate,getTemplateLoadError,listTemplates,validateAllocatorRows,platformShareBps,builtinTemplateDrift,templateTruthStamps,templateCatalogDigest}from'../../knowledge/template-loader.js';import{BUILTIN_TEMPLATES,auditTemplateOnceSlotArms,auditTemplateNodeOperatorOverwrite,auditTemplateReturnNoExit,BUILTIN_TEMPLATES_VERSION,DISCOVERY_PRODUCT_REFS,DISCOVERY_TAG_VOCABULARY,discoveryTagsForTemplate}from'../../knowledge/builtin-templates.js';import{landPlatformCommission}from'../../knowledge/commission-landing.js';import{salesWipGate,resolveProductDetailSource,PRODUCT_DETAIL_SOURCE_KEY}from'../../knowledge/product-detail-source.js';import{getWipVerifyRecord}from'../wip-verify-ledger.js';import{PLACEHOLDER_CONSTANTS}from'../../knowledge/guard-templates.js';import{getTemplateParamFileLayer,templateParamsFilePath}from'../../config/template-params.js';import{scanTemplate,buildFeeParamLandingTable}from'../../knowledge/template-scanner.js';import{planMigration}from'../../playbooks/service-build/migration-planner.js';import{handleMerchantGuide}from'../../playbooks/service-build/merchant-guide.js';import{inferArbitration}from'../../playbooks/service-build/intent-analyzer.js';import{getIndustryModeRegistry}from'../../extensions/index.js';import{listIndustries,resolveIndustryName}from'../../knowledge/industry-registry.js';import{claimNumber,discoverySignal,normalizeSemanticIR}from'../../knowledge/semantic-ir.js';import{handleRecommendIndustry}from'../../playbooks/service-build/mode-actions.js';import{bindAuditPlan,bindAuditReport,bindRecoveryList,handlerExecutor,materializePlan}from'../../composition/materialize.js';import{clearPlanStep,lockedFreshStep,planLedgerKey,readPlanReceipt,recordPlanRound,repeatedPlanFailures,writePlanReceipt}from'../../composition/plan-retry-ledger.js';import{collectLateMarks,collectRecipientLateMarks,collectAddressSlotBareNames,validatePlan}from'../../composition/plan.js';import{LocalMark,ENTRYPOINT}from'@wowok/wowok';import{dirname,resolve}from'node:path';import{readFileSync}from'node:fs';import{fileURLToPath}from'node:url';import{staleBuildFace}from'./stale-build-check.js';export{staleBuildFace};const __dirname=dirname(fileURLToPath(import.meta.url));export function platformMarkRefusal(a,b){return recipientMarkRefusal('platform',a,b);}export function recipientMarkRefusal(a,b,c){const d=b['toLowerCase']()['replace'](/^0x/,'');if(/^0x[0-9a-fA-F]{1,64}$/['test'](b)&&!/^0+$/['test'](d))return undefined;return'action=\x27plan_execute\x27:\x20the\x20LocalMark\x20\x27'+a+'\x27\x20resolves\x20to\x20\x27'+b+'\x27\x20on\x20'+c+'\x20network\x20—\x20not\x20a\x20usable\x20account\x20address.\x20'+('This\x20plan\x20names\x20\x27'+a+'\x27\x20as\x20a\x20settlement\x20RECIPIENT\x20and\x20order_allocators\x20freezes\x20at\x20Service\x20publish,\x20so\x20a\x20wrong\x20payee\x20can\x20only\x20be\x20fixed\x20by\x20re-publishing\x20the\x20Service.\x20')+'An\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy);\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+('Re-point\x20the\x20mark\x20at\x20a\x20real\x20account\x20address\x20—\x20local_mark_operation\x20{add:{op:\x22add\x22,data:[{name:\x22'+a+'\x22,address:\x220x...\x22}]}}\x20—\x20then\x20re-run.\x20Nothing\x20was\x20executed.');}function templateSummary(a){return{'id':a['id'],'industry':a['industry'],'variant':a['variant'],'product_ref':a['product_ref'],'archetype':a['archetype'],'key_risk':a['key_risk'],'node_count':a['machine_shape']['length'],'guard_count':a['guards']['length'],'recommended_role':a['recommended_role'],'tags':discoveryTagsForTemplate(a['id'])};}function templateGetAids(a){const b=a['machine_shape']['find'](g=>g['name']==='reviewed'),c=b!==undefined&&a['review_mode']!=='none'&&b['operator']!=='merchant',d=a['allocator']['rows']??[],e=[...new Set(d['map'](g=>g['guard_key'])['filter'](g=>typeof g==='string'&&g!==''))],f=d['length']>0x0?'\x20On-chain\x20this\x20materialises\x20as\x20~'+e['length']+'\x20Allocator\x20OBJECT(S)\x20(one\x20per\x20distinct\x20guard_key:\x20'+e['join'](',\x20')+')\x20across\x20'+d['length']+'\x20row(s)\x20—\x20model\x20capacity/monitoring\x20on\x20the\x20object\x20count,\x20never\x20on\x20allocator.count.':'\x20rows[]\x20is\x20empty\x20—\x20no\x20allocator\x20legs\x20are\x20declared.';return{'claim_anchor':c?'review_node+final':b!==undefined?'no_buyer_review_rail':'final_only','claim_anchor_note':c?'machine_shape\x20mounts\x20a\x20\x27reviewed\x27\x20node\x20—\x20the\x20buyer\x27s\x20structured\x20review\x20rides\x20that\x20node\x20alongside\x20the\x20final\x20settlement.':b!==undefined?'a\x20\x27reviewed\x27\x20node\x20exists\x20but\x20is\x20NOT\x20a\x20buyer\x20review\x20rail\x20(review_mode\x20\x27none\x27,\x20or\x20the\x20marker\x20is\x20merchant/triager-operated)\x20—\x20no\x20buyer-structured\x20review\x20is\x20mounted;\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only.':'no\x20\x27reviewed\x27\x20node\x20—\x20sanctioned\x20variant:\x20the\x20buyer\x27s\x20voice\x20rides\x20the\x20claim/arbitration\x20rail\x20only\x20(no\x20separate\x20review\x20stop).','allocator_count_note':'allocator.count\x20=\x20'+a['allocator']['count']+'\x20counts\x20SETTLEMENT-track\x20legs\x20only;\x20refund-track\x20legs\x20(rows[]\x20with\x20track:\x22refund\x22)\x20are\x20additional\x20and\x20NOT\x20included\x20in\x20this\x20count.\x20rows[]\x20carries\x20the\x20complete\x20executable\x20split\x20plan.'+f,'onchain_field_notes':['passport.impack\x20—\x20the\x20on-chain\x20field\x20is\x20spelled\x20`impack`\x20(the\x20on-chain\x20passport\x20contract\x27s\x20own\x20field\x20name,\x20packed\x20business\x20objects\x20in\x20the\x20passport\x20verification\x20context).\x20It\x20is\x20the\x20contract\x27s\x20own\x20field\x20name,\x20not\x20a\x20typo;\x20echo\x20it\x20verbatim.']};}function requireTemplate(a,b){if(!a)throw new Error('\x27template_id\x27\x20is\x20required\x20for\x20action=\x27'+b+'\x27');const c=getTemplate(a);if(!c){const d=getTemplateLoadError(a);if(d)throw new Error('Template\x20\x27'+a+'\x27\x20is\x20BLOCKED\x20for\x20action=\x27'+b+'\x27:\x20its\x20machine\x20file\x20failed\x20to\x20load/validate\x20and\x20is\x20invisible\x20to\x20every\x20action\x20until\x20fixed\x20(T-18\x20—\x20see\x20action=\x27template_list\x27\x20load_errors).\x20Loader:\x20'+d);throw new Error('Unknown\x20template\x20id:\x20'+a+'\x20(use\x20action=\x27template_list\x27\x20to\x20see\x20valid\x20ids)');}return c;}export function wipAnchorFace(a){if(!Array['isArray'](a)||a['length']===0x0)return undefined;const b=a['filter'](c=>c&&typeof c==='object'&&typeof c['name']==='string'&&String(c['wip_hash']??'')==='')['map'](c=>c['name']);if(b['length']===0x0)return undefined;return{'status':'unpinned','rule_id':'R-WIP-UNPINNED','severity':'high','unpinned_skus':b,'remediation':'These\x20SKU(s)\x20publish\x20with\x20NO\x20wip\x20pin\x20—\x20buyers\x20get\x20no\x20delivery-integrity\x20guarantee\x20(the\x20merchant\x20can\x20swap\x20the\x20.wip\x20file\x20later\x20undetected).\x20'+'After\x20publish,\x20rebind\x20via\x20the\x20per-item\x20sales\x20op\x20wip_set\x20(MCP\x20composite:\x20touches\x20only\x20wip/wip_hash)\x20or\x20a\x20full\x20op:set\x20rewrite\x20—\x20live-tested\x200.00272\x20gas.\x20'+'Prefer\x20passing\x20wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload\x20at\x20build\x20time\x20instead.'};}export function returnNoExitFace(a){try{const b=BUILTIN_TEMPLATES['find'](d=>d['id']===a);if(!b)return undefined;const c=auditTemplateReturnNoExit([b])[0x0];return c?{'status':'return_no_exit','rule_id':c['rule_id'],'severity':c['severity'],'stranded_nodes':c['stranded_nodes'],'remediation':c['remediation']}:undefined;}catch{return undefined;}}function driftFace(a){const b=builtinTemplateDrift()['find'](c=>c['template']===a);if(!b){const c=BUILTIN_TEMPLATES['some'](d=>d['id']===a);return c?{'template':a,'state':'current','catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':![],'repairable':![],'detail':'disk\x20body\x20matches\x20the\x20shipped\x20catalog\x20(hash-verified\x20sentinel)'}:{'template':a,'state':'untracked','catalog_version':undefined,'blocked':![],'repairable':![],'detail':'user-authored\x20template\x20—\x20no\x20builtin\x20catalog\x20binding\x20to\x20compare\x20against'};}return{'template':b['template'],'state':b['state'],'catalog_version':BUILTIN_TEMPLATES_VERSION,'blocked':!![],'repairable':b['repairable'],'detail':b['detail']};}function withArbVotingGateAdvisories(a){try{const b=BUILTIN_TEMPLATES['find'](d=>d['id']===a['template_id']);if(!b||b['arbitration_mode']!=='third_party')return a;const c=(b['guards']??[])['some'](d=>d['template_id']['startsWith']('tpl_voting_guard_'));if(c)return a;return{...a,'findings':[...a['findings'],{'rule_id':'R-ARB-VOTING-GATE-CONSTANT-TRUE','severity':'medium','title':'factory\x20voting\x20gate\x20is\x20constant-true\x20—\x20any\x20address\x20can\x20vote\x20on\x20any\x20case;\x20configure\x20a\x20roster+threshold\x20voting_guard\x20before\x20publishing','detail':'This\x20third_party\x20venue\x20declares\x20no\x20tpl_voting_guard_*\x20spec,\x20so\x20the\x20kernel\x20injects\x20the\x20constant\x20Bool-true\x20'+'open-vote\x20default\x20(tpl_voting_guard_open_vote,\x20FixedValue\x20weight\x201)\x20at\x20compile\x20—\x20every\x20Passport\x20holder\x20can\x20'+'vote\x20on\x20every\x20case\x20at\x20flat\x20weight\x20(O-F26).\x20Sanctioned\x20as\x20the\x20one-click\x20unblocking\x20default\x20only\x20(crs9-F-36).','suggestion':'Pass\x20arbitration_vote_policy:\x27party_panel\x27\x20to\x20skip\x20the\x20injection\x20(the\x20R-ARB-VOTE-LOCK\x20publish\x20gate\x20then\x20'+'demands\x20an\x20explicitly\x20configured\x20guard),\x20or\x20bind\x20tpl_voting_guard_party_only\x20/\x20tpl_voting_guard_numeric_weight\x20'+'via\x20guard_resolutions\x20for\x20a\x20roster+threshold\x20panel.'}]};}catch{return a;}}function withOnceSlotAdvisories(a){try{const b=auditTemplateOnceSlotArms()['find'](f=>f['template_id']===a['template_id']),c=auditTemplateNodeOperatorOverwrite()['filter'](f=>f['template_id']===a['template_id']);if(!b&&c['length']===0x0)return a;const d=c['map'](f=>({'rule_id':'NODE_OPERATOR_OVERWRITTEN','severity':'medium','title':'Edge\x20operator\x20inherited\x20past\x20an\x20explicit\x20source-node\x20operator','detail':f['message'],'suggestion':'Declare\x20edge.operator\x20explicitly\x20on\x20this\x20forward\x20(or\x20add\x20a\x20buyer-favour\x20timeout\x20exit\x20from\x20the\x20request\x20node).\x20The\x20kernel\x20inheritance\x20chain\x20(edge\x20??\x20dest-node\x20??\x20default)\x20never\x20consults\x20the\x20SOURCE\x20node,\x20so\x20an\x20un-annotated\x20edge\x20out\x20of\x20an\x20order_payer\x20request\x20node\x20silently\x20ships\x20as\x20a\x20merchant\x20permission\x20rail\x20(F-40/F-42:\x20the\x20buyer\x20parked\x20on\x20the\x20request\x20node\x20has\x20zero\x20executable\x20forwards\x20and\x20the\x20merchant\x20rewrite\x20ships\x20unguarded).\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'})),e=((()=>{if(!b)return undefined;if(b['kind']==='once_slot_254_on_terminal_topology')return{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'low','title':'Once-slot\x20arming\x20on\x20a\x20single-cycle\x20terminal\x20topology\x20(advisory)','detail':b['message'],'suggestion':'No\x20change\x20required:\x20the\x20per-order\x20once\x20anchor\x20cannot\x20deadlock\x20a\x20paid\x20cycle\x20on\x20this\x20topology.\x20Re-evaluate\x20if\x20a\x20second\x20terminal\x20leg\x20ever\x20reaches\x20this\x20rail\x20(OFN\x20#P-04)\x20—\x20the\x20255\x20epoch\x20form\x20is\x20the\x20forward-safe\x20arm.'};const f=b['kind']==='same_tpl_allocator_index_bypass';return{'rule_id':'R-ONCE-SLOT-ARM-254','severity':'medium','title':f?'Same-template\x20allocator\x20append\x20can\x20bypass\x20the\x20once\x20slot\x20(fresh\x20GuardIdentifier\x20index\x20re-arms\x20the\x20once\x20record)':'Once-slot\x20arming\x20on\x20a\x20periodic\x20rail\x20('+b['kind']+')','detail':b['message'],'suggestion':f?'Never\x20bypass\x20a\x20once\x20arm\x20by\x20appending\x20a\x20same-template\x20allocator\x20row:\x20the\x20new\x20identifier\x20gets\x20a\x20FRESH\x20once\x20record\x20and\x20can\x20re-pay\x20what\x20the\x20first\x20rail\x20already\x20paid.\x20Use\x20a\x20new\x20period\x20key\x20(identifier\x20255,\x20period-<N>)\x20on\x20the\x20EXISTING\x20rail,\x20or\x20justify\x20a\x20genuinely\x20distinct\x20business\x20rail.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.':'Arm\x20the\x20re-enterable\x20settlement/renewal\x20guard\x20with\x20identifier\x20255\x20plus\x20a\x20per-period\x20key\x20(period-<N>\x20from\x20chain\x20state,\x20e.g.\x20progress\x20history\x20count)\x20and\x20have\x20the\x20trigger\x20Passport\x20submit\x20the\x20same\x20value;\x20keep\x20254\x20for\x20one-shot-per-order\x20rails\x20only.\x20Re-run\x20action=\x27template_scan\x27\x20after\x20the\x20fix.'};})());return{...a,'findings':[...a['findings'],...e?[e]:[],...d]};}catch{return a;}}export function planEnvelopeFromInput(a){if(!a||typeof a!=='object'||Array['isArray'](a))throw new Error('\x27plan\x27\x20is\x20required\x20for\x20action=\x27plan_execute\x27\x20—\x20pass\x20the\x20object\x20returned\x20under\x20\x27plan\x27\x20by\x20template_generate\x20verbatim,\x20or\x20{root:\x27file\x27,\x20path}\x20to\x20read\x20it\x20from\x20disk');let b=a;if(b['root']==='file'){const c=typeof b['path']==='string'?b['path']:'';if(!c)throw new Error('action=\x27plan_execute\x27:\x20plan\x20{root:\x27file\x27}\x20requires\x20a\x20\x27path\x27\x20field\x20pointing\x20at\x20the\x20saved\x20plan\x20JSON');let d;try{d=readFileSync(resolve(c),'utf-8');}catch(g){throw new Error('action=\x27plan_execute\x27:\x20failed\x20to\x20read\x20plan\x20file\x20\x27'+c+'\x27:\x20'+g['message']);}let f;try{f=JSON['parse'](d);}catch(h){throw new Error('action=\x27plan_execute\x27:\x20plan\x20file\x20\x27'+c+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+h['message']);}if(!f||typeof f!=='object'||Array['isArray'](f))throw new Error('action=\x27plan_execute\x27:\x20plan\x20file\x20\x27'+c+'\x27\x20must\x20contain\x20a\x20JSON\x20object\x20—\x20the\x20template_generate\x20plan\x20envelope\x20({plan:{steps,...}})\x20or\x20the\x20bare\x20plan\x20({steps,...})');b=f;}return b;}export function templateAdvisoryFaces(a){try{if(!a)return{};const b=getTemplate(a);if(!b)return{};const c=scanSummary(withOnceSlotAdvisories(scanTemplate(b)),driftFace(a)),d=returnNoExitFace(a);return d?{'scan':c,'return_no_exit':d}:{'scan':c};}catch{return{};}}function scanSummary(a,b){a=withArbVotingGateAdvisories(withOnceSlotAdvisories(a));const c={};for(const d of a['findings'])c[d['severity']]=(c[d['severity']]??0x0)+0x1;return{'template_id':a['template_id'],'risk_level':a['risk_level'],'preflight_scan_passed':a['red_flags']['length']===0x0,'finding_count':a['findings']['length'],'findings_by_severity':c,'red_flags':a['red_flags'],'findings':a['findings'],'drift':b};}function assertScanPassed(a,b){const c=a['red_flags'];if(a['passed']||c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20CRITICAL\x20risk\x20—\x20'+c['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}const GENERATE_HIGH_TOLERATED=new Set([]);function assertGenerateScanPassed(a,b){assertScanPassed(a,b);if(b!=='template_generate')return;const c=generateHighBlockers(a['template_id'],a['findings']);if(c['length']===0x0)return;throw new Error('action=\x27'+b+'\x27\x20blocked:\x20pre-deploy\x20scan\x20of\x20template\x20\x27'+a['template_id']+'\x27\x20found\x20'+c['length']+'\x20HIGH\x20finding(s)\x20—\x20'+c['map'](d=>(d['rule_id']??'HIGH')+':\x20'+d['title'])['join'](';\x20')+'.\x20Fix\x20the\x20template\x20(frontmatter\x20or\x20body)\x20and\x20re-run\x20action=\x27template_scan\x27.');}function generateHighBlockers(a,b){return b['filter'](c=>c['severity']==='high'&&!(c['rule_id']&&GENERATE_HIGH_TOLERATED['has'](a+'/'+c['rule_id'])));}export function placeholderResidualCheck(a){const b=[],c=new Set(),d=new Set(),e=(f,g,h)=>{if(typeof f==='string'){for(const i of PLACEHOLDER_CONSTANTS){if(f['includes'](i))b['push']({'placeholder':i,'artifact':g,'path':h||'(root)'});}return;}if(Array['isArray'](f)){if(d['has'](f)||c['has'](f))return;c['add'](f),d['add'](f),f['forEach']((j,l)=>e(j,g,h+'['+l+']')),d['delete'](f);return;}if(f&&typeof f==='object'){if(d['has'](f)||c['has'](f))return;c['add'](f),d['add'](f);for(const [j,l]of Object['entries'](f))e(l,g,h?h+'.'+j:j);d['delete'](f);}};try{for(const [f,g]of Object['entries'](a)){if(g===undefined||g===null)continue;e(g,f,'');}}catch{return null;}return{'hits':b};}export function allocatorCriteriaDryRun(a){const b=[];try{const c=[],d=a['plan'];if(d!==null&&typeof d==='object'&&!Array['isArray'](d)){const t=d['steps'];if(Array['isArray'](t))c['push'](t);}if(Array['isArray'](a['steps']))c['push'](a['steps']);const e=new Map(),f=new Set();for(const u of c){for(const v of u){if(v===null||typeof v!=='object'||Array['isArray'](v))continue;const w=v;if(w['op']!=='create'||typeof w['id']!=='string')continue;const x=w['params'];if(x===null||typeof x!=='object'||Array['isArray'](x))continue;const y=x;w['object']==='guard'&&e['set'](w['id'],{'id':w['id'],'table':Array['isArray'](y['table'])?y['table']:undefined,'root':y['root']});if(typeof y['name']==='string')f['add'](y['name']);}}const h=a['required_local_marks'],i=Array['isArray'](h),j=new Set();if(i){for(const z of h)if(typeof z==='string')j['add'](z);}const k=new Set(),l=[];for(const A of c){for(const B of A){if(B===null||typeof B!=='object'||Array['isArray'](B))continue;const C=B,D=C['params'];if(D===null||typeof D!=='object'||Array['isArray'](D))continue;const E=D;let F;if(C['op']==='create'&&C['object']==='service')F=E['order_allocators'];else{if(C['op']==='configure'&&C['method']==='order_allocators')F=E['allocators'];else continue;}if(F!==null&&typeof F==='object'&&!Array['isArray'](F)){const G=F['allocators'];if(Array['isArray'](G))F=G;}if(!Array['isArray'](F))continue;for(const H of F){if(H===null||typeof H!=='object'||Array['isArray'](H))continue;if(k['has'](H))continue;k['add'](H);const I=H,J=typeof I['track']==='string'?I['track']:undefined,K=typeof I['guard_key']==='string'?I['guard_key']:undefined;l['push']({'rec':I,'label':'allocator['+l['length']+']'+(J!==undefined?'\x20track='+J:'')+(K!==undefined?'\x20guard_key=\x27'+K+'\x27':'')});}}}const n=L=>typeof L==='number'?L===0x0:typeof L==='string'?/^\s*0+(?:\.0+)?\s*$/['test'](L):![],o=(L,M,N)=>{const O=Array['isArray'](M['table'])?M['table']:undefined,P=new Map();if(O!==undefined)for(const T of O){if(T===null||typeof T!=='object'||Array['isArray'](T))continue;const U=T['identifier'];if(typeof U==='number')P['set'](U,T);}const Q=new Set(),R='bound\x20guard\x20\x27'+M['id']+'\x27',S=(V,W)=>{if(V===null||typeof V!=='object'||Array['isArray'](V))return;if(Q['has'](V))return;Q['add'](V);const X=V,Y=X['type'];if(typeof Y==='string'){const Z=W===''?'guard.root':'guard.root.'+W;if(Y==='identifier'){const a0=X['identifier'];if(typeof a0!=='number')b['push']({'row':L,'field':Z+'.identifier','problem':R+':\x20an\x20identifier\x20leaf\x20carries\x20no\x20numeric\x20table\x20slot\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20'+'Give\x20the\x20leaf\x20{identifier:\x20<table\x20slot>}\x20and\x20regenerate.'});else O!==undefined&&!P['has'](a0)&&b['push']({'row':L,'field':Z+'.identifier','problem':R+':\x20references\x20table\x20slot\x20'+a0+',\x20which\x20the\x20guard\x27s\x20table\x20does\x20not\x20declare\x20—\x20'+('the\x20criteria\x20reads\x20an\x20empty\x20slot.\x20Add\x20the\x20row\x20{identifier:\x20'+a0+',\x20...}\x20to\x20the\x20guard\x20table,\x20or\x20point\x20the\x20leaf\x20at\x20a\x20declared\x20slot,\x20and\x20regenerate.')});return;}if(Y==='query'){const a1=X['query'];typeof a1!=='string'&&typeof a1!=='number'&&b['push']({'row':L,'field':Z+'.query','problem':R+':\x20a\x20query\x20leaf\x20names\x20no\x20query\x20(neither\x20query\x20name\x20nor\x20id)\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20'+'Set\x20{query:\x20\x27<query\x20name>\x27}\x20and\x20regenerate.'});const a2=X['object'];if(a2===null||typeof a2!=='object'||Array['isArray'](a2))b['push']({'row':L,'field':Z+'.object','problem':R+':\x20the\x20query\x20leaf\x20declares\x20no\x20{object:{identifier}}\x20read\x20target\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20'+'Set\x20object\x20to\x20a\x20declared\x20table\x20slot\x20and\x20regenerate.'});else{const a3=a2['identifier'];if(typeof a3!=='number')b['push']({'row':L,'field':Z+'.object.identifier','problem':R+':\x20the\x20query\x20read\x20target\x20carries\x20no\x20numeric\x20table\x20slot\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20'+'Point\x20object\x20at\x20a\x20declared\x20table\x20slot\x20and\x20regenerate.'});else O!==undefined&&!P['has'](a3)&&b['push']({'row':L,'field':Z+'.object.identifier','problem':R+':\x20queries\x20through\x20table\x20slot\x20'+a3+',\x20which\x20the\x20guard\x27s\x20table\x20does\x20not\x20declare\x20—\x20'+('the\x20criteria\x20reads\x20an\x20empty\x20slot.\x20Add\x20the\x20row\x20{identifier:\x20'+a3+',\x20...}\x20to\x20the\x20guard\x20table\x20and\x20regenerate.')});}}else{if(Y==='context'){const a4=X['context'];(typeof a4!=='string'||a4['trim']()==='')&&b['push']({'row':L,'field':Z+'.context','problem':R+':\x20a\x20context\x20leaf\x20names\x20no\x20context\x20(e.g.\x20\x27Signer\x27)\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20Set\x20context\x20and\x20regenerate.'});return;}else{if(Y==='logic_not')(X['node']===null||typeof X['node']!=='object')&&b['push']({'row':L,'field':Z+'.node','problem':R+':\x20logic_not\x20carries\x20no\x20operand\x20node\x20—\x20the\x20criteria\x20cannot\x20evaluate.\x20Give\x20it\x20{node:\x20<child>}\x20and\x20regenerate.'});else{if(Y['startsWith']('logic_')){const a5=X['nodes'];(!Array['isArray'](a5)||a5['length']===0x0)&&b['push']({'row':L,'field':Z+'.nodes','problem':R+':\x20'+Y+'\x20carries\x20no\x20operand\x20nodes\x20—\x20the\x20criteria\x20cannot\x20evaluate\x20'+'(logic\x20operators\x20take\x20their\x20operands\x20in\x20nodes[]).\x20List\x20the\x20operands\x20and\x20regenerate.'});}}}}}for(const [a6,a7]of Object['entries'](X)){const a8=W===''?a6:W+'.'+a6;if(Array['isArray'](a7))a7['forEach']((a9,aa)=>{if(a9!==null&&typeof a9==='object')S(a9,a8+'.'+aa);});else a7!==null&&typeof a7==='object'&&S(a7,a8);}};if(N===null||N===undefined){b['push']({'row':L,'field':'guard.root','problem':R+'\x20carries\x20NO\x20root\x20criteria\x20—\x20a\x20Guard\x20without\x20a\x20root\x20cannot\x20be\x20created,\x20and\x20the\x20row\x27s\x20payout\x20rail\x20has\x20no\x20gate\x20at\x20all.\x20'+'Resolve\x20the\x20guard\x20design\x20(guard_resolutions)\x20and\x20regenerate.'});return;}if(typeof N!=='object'||Array['isArray'](N)){b['push']({'row':L,'field':'guard.root','problem':R+':\x20the\x20root\x20is\x20not\x20a\x20criteria\x20tree\x20(expected\x20a\x20GuardNode\x20object)\x20—\x20the\x20guard\x20cannot\x20be\x20created\x20as-is.\x20Regenerate.'});return;}if(N['type']==='file')return;S(N,'');},q=(L,M,N,O)=>{if(O===null||typeof O!=='object'||Array['isArray'](O)){b['push']({'row':L,'field':'sharing['+N+']','problem':'a\x20sharing\x20leg\x20is\x20not\x20an\x20object\x20—\x20the\x20allocator\x20cannot\x20be\x20registered\x20as-is.\x20Regenerate\x20the\x20row.'});return;}const P=O,Q='sharing['+N+']',R=P['mode'],S=new Set(['amount','rate','surplus','rategross','formula']);if(typeof R==='string')!S['has'](R['toLowerCase']())&&b['push']({'row':L,'field':Q+'.mode','problem':'\x27'+R+'\x27\x20is\x20not\x20a\x20known\x20allocation\x20mode\x20(Amount\x20|\x20Rate\x20|\x20RateGross\x20|\x20Surplus\x20|\x20Formula,\x20or\x200-4)\x20—\x20'+'the\x20allocator\x20registration\x20aborts\x20on-chain\x20and\x20takes\x20the\x20whole\x20distribution\x20with\x20it.\x20Fix\x20the\x20leg\x27s\x20mode\x20and\x20regenerate.'});else{if(typeof R==='number')(!Number['isInteger'](R)||R<0x0||R>0x4)&&b['push']({'row':L,'field':Q+'.mode','problem':'mode\x20'+String(R)+'\x20is\x20outside\x20the\x20allocation-mode\x20range\x200-4\x20—\x20the\x20allocator\x20registration\x20aborts\x20on-chain.\x20Fix\x20the\x20leg\x27s\x20mode\x20and\x20regenerate.'});else R!==undefined&&b['push']({'row':L,'field':Q+'.mode','problem':'mode\x20is\x20'+typeof R+'\x20—\x20not\x20a\x20mode\x20name\x20or\x20number\x20the\x20allocator\x20accepts.\x20Fix\x20the\x20leg\x27s\x20mode\x20and\x20regenerate.'});}const T=P['sharing'];(T===undefined||T===null)&&b['push']({'row':L,'field':Q+'.sharing','problem':'the\x20leg\x20declares\x20no\x20sharing\x20value\x20—\x20the\x20allocator\x20cannot\x20be\x20registered\x20as-is.\x20Set\x20the\x20amount/rate\x20and\x20regenerate.'});const U=!n(T),V=P['who'];if(V===undefined||V===null){U&&b['push']({'row':L,'field':Q+'.who','problem':'the\x20leg\x20pays\x20\x27'+String(T)+'\x27\x20but\x20declares\x20NO\x20recipient\x20—\x20the\x20chain\x20refuses\x20a\x20leg\x20without\x20a\x20payee\x20'+'(Recipient\x20is\x20Entity\x20|\x20GuardIdentifier\x20|\x20Signer).\x20Name\x20the\x20recipient\x20and\x20regenerate.'});return;}if(typeof V==='string')return;if(typeof V!=='object'||Array['isArray'](V)){U&&b['push']({'row':L,'field':Q+'.who','problem':'unrecognized\x20recipient\x20form\x20'+JSON['stringify'](V)+'\x20—\x20Recipient\x20is\x20Entity\x20|\x20GuardIdentifier\x20|\x20Signer;\x20this\x20leg\x27s\x20money\x20has\x20no\x20resolvable\x20payee.\x20Fix\x20the\x20recipient\x20and\x20regenerate.'});return;}const W=V;if(W['GuardIdentifier']!==undefined){const X=W['GuardIdentifier'];if(typeof X!=='number'||!Number['isInteger'](X)||X<0x0||X>0xff){b['push']({'row':L,'field':Q+'.who.GuardIdentifier','problem':'\x27'+String(X)+'\x27\x20is\x20not\x20a\x20u8\x20table\x20slot\x20number\x20—\x20the\x20payee\x20cannot\x20resolve.\x20Set\x20the\x20slot\x20index\x20and\x20regenerate.'});return;}if(M===undefined||M['table']===undefined)return;const Y=M['table']['find'](Z=>Z!==null&&typeof Z==='object'&&Z['identifier']===X);(Y===undefined||Y['b_submission']!==!![]||Y['value_type']!=='Address')&&b['push']({'row':L,'field':Q+'.who.GuardIdentifier','problem':'pays\x20through\x20guard\x20slot\x20'+X+',\x20but\x20the\x20bound\x20guard\x20\x27'+M['id']+'\x27\x20has\x20no\x20'+('{identifier:\x20'+X+',\x20b_submission:\x20true,\x20value_type:\x20\x22Address\x22}\x20table\x20row\x20—\x20the\x20leg\x20reads\x20an\x20undeclared/static\x20slot\x20and\x20')+'ABORTS\x20at\x20alloc\x20time\x20(code\x2015)\x20with\x20this\x20leg\x27s\x20funds\x20stranded\x20(az3/abnb7\x20mainnet).\x20Declare\x20the\x20Address\x20submission\x20slot\x20in\x20the\x20guard\x20table\x20'+'(order\x20rails\x20anchor\x20on\x20user\x20slot\x200)\x20and\x20regenerate.'});return;}if(W['Entity']!==undefined){const Z=W['Entity'];if(Z===null||typeof Z!=='object'||Array['isArray'](Z))return;const a0=Z['name_or_address'],a1=a0!==null&&typeof a0==='object'&&!Array['isArray'](a0)?a0['$late']?.['mark']:a0;if(typeof a1==='string'&&a1['trim']()==='')b['push']({'row':L,'field':Q+'.who.Entity','problem':'the\x20recipient\x20mark\x20is\x20EMPTY\x20—\x20the\x20executor\x20substitutes\x20the\x20DEPLOYING\x20account,\x20so'+(U?'\x20this\x20leg\x27s\x20funds':'\x20the\x20leg')+'\x20land\x20in\x20whoever\x20runs\x20the\x20deploy.\x20'+'Set\x20a\x20real\x20mark\x20name\x20or\x20address\x20and\x20regenerate.'});else typeof a1==='string'&&U&&i&&!j['has'](a1)&&!f['has'](a1)&&b['push']({'row':L,'field':Q+'.who.Entity','problem':'the\x20recipient\x20mark\x20\x27'+a1+'\x27\x20is\x20neither\x20disclosed\x20in\x20required_local_marks\x20nor\x20an\x20object\x20this\x20plan\x20creates\x20—\x20'+'plan_execute\x20resolves\x20local-name\x20marks\x20against\x20the\x20network\x27s\x20LocalMark\x20store\x20and\x20HARD-STOPS\x20on\x20a\x20miss.\x20'+'Register\x20the\x20mark\x20(local_mark_operation\x20add)\x20or\x20bind\x20it\x20to\x20a\x20created\x20object,\x20then\x20regenerate.'});return;}U&&b['push']({'row':L,'field':Q+'.who','problem':'unrecognized\x20recipient\x20form\x20'+JSON['stringify'](V)+'\x20—\x20Recipient\x20is\x20Entity\x20|\x20GuardIdentifier\x20|\x20Signer;\x20this\x20leg\x27s\x20money\x20has\x20no\x20resolvable\x20payee.\x20Fix\x20the\x20recipient\x20and\x20regenerate.'});};for(const {rec:L,label:M}of l){try{let N;const O=L['guard'];if(O!==null&&typeof O==='object'&&!Array['isArray'](O)){const Q=O['$ref'];if(typeof Q==='string'){N=e['get'](Q);if(N===undefined){b['push']({'row':M,'field':'guard','problem':'references\x20plan\x20step\x20\x27'+Q+'\x27,\x20which\x20this\x20plan\x20never\x20creates\x20—\x20the\x20payout\x20rail\x20binds\x20to\x20nothing.\x20'+'Point\x20the\x20row\x27s\x20guard\x20at\x20an\x20existing\x20guard\x20step\x20id\x20and\x20regenerate.'});continue;}}}if(N!==undefined)o(M,N,N['root']);const P=L['sharing'];if(!Array['isArray'](P)){b['push']({'row':M,'field':'sharing','problem':'carries\x20no\x20sharing[]\x20vector\x20—\x20the\x20allocator\x20registers\x20with\x20nothing\x20to\x20distribute.\x20List\x20the\x20legs\x20and\x20regenerate.'});continue;}P['forEach']((R,S)=>q(M,N,S,R));}catch{}}}catch{return null;}return{'hits':b};}export function buildVerdict(a,b,c,d){const e=[];!a['preflight_scan_passed']&&e['push']('scan:\x20'+(a['findings_by_severity']['critical']??0x0)+'\x20CRITICAL\x20finding(s)\x20(preflight\x20scan\x20failed)');if(c){const r=generateHighBlockers(a['template_id'],a['findings']??[]);r['length']>0x0&&e['push']('scan:\x20'+r['length']+'\x20HIGH\x20finding(s)\x20—\x20template_generate\x20would\x20refuse\x20(N-21):\x20'+r['map'](s=>((s['rule_id']??'HIGH')+':\x20'+(s['title']??''))['trim']())['join'](';\x20'));}const f=b['graph_validation'];if(f&&f['valid']===![]){const s=Array['isArray'](f['hard_violations'])?f['hard_violations']['length']:0x0,t=Array['isArray'](f['hard_violations'])?f['hard_violations']['map'](u=>u['id'])['join'](',\x20'):'';e['push']('graph_validation:\x20'+s+'\x20hard\x20violation(s)'+(t?'\x20('+t+')':''));}const g=b['audit'];if(g&&g['blocking']===!![]){const u=(g['findings']??[])['filter'](v=>v['level']==='critical'||v['level']==='high');e['push'](u['length']===0x0?'audit:\x20guide\x20audit\x20flagged\x20blocking\x20issue(s)\x20(plan.audit)':'audit:\x20'+u['length']+'\x20blocking\x20finding(s)\x20—\x20'+u['slice'](0x0,0x5)['map'](v=>((v['rule_id']??'?')+':\x20'+(v['title']??''))['trim']())['join'](';\x20')+(u['length']>0x5?'\x20(+'+(u['length']-0x5)+'\x20more\x20in\x20plan.audit.findings)':''));}const h=b['harness_check'],i=[...new Set((h?.['blocking_issues']??[])['filter'](v=>v['module']==='template')['flatMap'](v=>v['missing_constraints']??[]))];i['length']>0x0&&e['push']('compile:\x20'+i['length']+'\x20blocker(s)\x20—\x20merchant_guide\x20refuses\x20to\x20materialize\x20this\x20plan:\x20'+i['join'](',\x20'));const j=(Array['isArray'](b['pending_guard_designs'])?b['pending_guard_designs']:[])['filter'](v=>v!=null&&v['bound']===!![])['length'];j>0x0&&e['push']('pending_guard_designs:\x20'+j+'\x20unresolved\x20BOUND\x20guard\x20design(s)\x20—\x20the\x20guard\x20surface\x20is\x20not\x20final.\x20'+'Resolve\x20each\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20then\x20re-run.');const k=b,l=k['template'];let m=null;try{m=placeholderResidualCheck({'creation_plan':k['creation_plan'],'plan':k['plan'],'steps':k['steps'],'pending_guard_designs':k['pending_guard_designs'],'required_local_marks':k['required_local_marks'],'template_params':l?.['fee_params']});}catch{m=null;}if(m!==null&&m['hits']['length']>0x0){const v=m['hits'];e['push']('placeholders:\x20'+v['length']+'\x20unfilled\x20account\x20placeholder(s)\x20still\x20in\x20the\x20compiled\x20artifacts\x20—\x20'+v['slice'](0x0,0x5)['map'](w=>'\x27'+w['placeholder']+'\x27\x20in\x20'+w['artifact']+'\x20('+w['path']+')')['join'](';\x20')+(v['length']>0x5?'\x20(+'+(v['length']-0x5)+'\x20more)':'')+'.\x20A\x20placeholder\x20default\x20is\x20the\x20template\x20author\x27s\x20loud-fail\x20stand-in\x20for\x20an\x20account\x20input\x20that\x20was\x20never\x20supplied:\x20plan_execute\x20resolves\x20it\x20as\x20a\x20local\x20mark\x20and\x20hard-stops\x20before\x20step\x200,\x20so\x20this\x20plan\x20cannot\x20execute\x20as-is.\x20'+'Re-run\x20template_generate\x20with\x20the\x20real\x20value\x20—\x20override\x20the\x20owning\x20guard\x20template\x27s\x20parameter\x20via\x20guard_resolutions\x20(kind\x20\x27template\x27\x20with\x20params\x20carrying\x20the\x20real\x20addresses,\x20e.g.\x20allowed_writers\x20as\x20a\x20JSON\x20address\x20array)\x20—\x20then\x20execute\x20the\x20FRESH\x20plan.\x20'+'Do\x20NOT\x20register\x20a\x20local\x20mark\x20named\x20like\x20the\x20placeholder\x20to\x20force\x20it\x20through:\x20that\x20binds\x20the\x20guard\x20to\x20an\x20arbitrary\x20address.');}let n=null;try{n=allocatorCriteriaDryRun({'plan':k['plan'],'steps':k['steps'],'required_local_marks':k['required_local_marks']});}catch{n=null;}if(n!==null&&n['hits']['length']>0x0){const w=n['hits'];e['push']('allocators:\x20'+w['length']+'\x20allocator-criteria\x20issue(s)\x20—\x20'+w['slice'](0x0,0x5)['map'](x=>x['row']+'\x20'+x['field']+':\x20'+x['problem'])['join'](';\x20')+(w['length']>0x5?'\x20(+'+(w['length']-0x5)+'\x20more)':'')+'.\x20An\x20on-chain\x20Allocation\x20is\x20a\x20PER-ORDER\x20STATIC\x20SNAPSHOT:\x20order_allocators\x20and\x20the\x20bound\x20guard\x20criteria\x20freeze\x20at\x20Service\x20publish,\x20'+'so\x20a\x20wrong\x20criterion\x20cannot\x20be\x20repaired\x20later\x20—\x20a\x20service-level\x20append\x20reaches\x20only\x20NEW\x20orders,\x20and\x20existing\x20orders\x20stay\x20on\x20the\x20broken\x20rail\x20(ptrn6).\x20'+'Fix\x20each\x20named\x20row\x20(guard_resolutions\x20for\x20the\x20bound\x20guard,\x20or\x20the\x20allocator\x20rows\x20via\x20fee_overrides)\x20and\x20regenerate\x20the\x20plan\x20BEFORE\x20any\x20service_publish\x20step.');}const o=b['steps'];if(Array['isArray'](o)&&o['length']>0x0){const x=validatePlan(b);x['length']>0x0&&e['push']('executability:\x20'+x['length']+'\x20structural\x20issue(s)\x20—\x20the\x20plan\x20would\x20abort\x20mid-flight:\x20'+x['slice'](0x0,0x5)['map'](y=>''+y['code']+(y['step']?'@'+y['step']:''))['join'](',\x20')+(x['length']>0x5?'\x20(+'+(x['length']-0x5)+'\x20more)':''));}if(d&&!d['actionable'])return{'buildable':![],'blockers':['UNVERIFIED\x20(stale_build):\x20'+(d['stale']?'the\x20running\x20dist\x20lags\x20the\x20workspace\x20src\x20by\x20'+(d['lag_minutes']??'?')+'\x20minute(s)':'template\x20freshness\x20could\x20NOT\x20be\x20resolved\x20(dist-only\x20install\x20or\x20a\x20build\x20in\x20progress)')+'\x20—\x20every\x20conclusion\x20in\x20this\x20response\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20'+'This\x20is\x20a\x20VERIFICATION\x20failure,\x20NOT\x20a\x20plan\x20defect;\x20the\x20plan\x27s\x20own\x20signal\x20faces\x20below\x20are\x20listed\x20unverified.\x20'+'Rebuild\x20the\x20MCP\x20dist\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-run\x20for\x20a\x20verified\x20verdict.',...e],'status':'UNVERIFIED'};const p=salesWipGate(b);p!==undefined&&e['push'](p['blocker']);const q=e['length']===0x0;return{'buildable':q,'blockers':e,'status':q?'READY':'BLOCKED'};}async function templateScanDryRun(a,b){const c=[{'name':'scan-probe','price':'1000000000','quantity':0x1,'wip':'https://wip.store.wowok.net/scan-probe.wip'}],d=a['review_mode']==='review_reward'?{'review_mode':'review_reward','reward_funding':'100000000','reward_claim_amount':'6000000'}:undefined,f=a['guards']?.['some'](h=>h?.['template_id']==='tpl_forward_arb_ruling_won')===!![],g=f?{'compensation_fund':'3000000000'}:undefined;try{const h=await runGuide(a,undefined,undefined,undefined,{...d,...g},c),i=buildVerdict(scanSummary(scanTemplate(a)),h,!![],b);return{'status':i['status']==='UNVERIFIED'?'unverified':i['buildable']?'ready':'blocked','buildable':i['buildable'],'blockers':i['blockers'],'note':'Compile\x20dry-run\x20on\x20synthetic\x20probe\x20inputs\x20(single\x20probe\x20SKU,\x20benchmark\x20reward\x20funding),\x20mirrored\x20to\x20the\x20template_generate\x20gate\x20(CRITICAL\x20+\x20N-21\x20HIGH\x20+\x20graph\x20+\x20audit).\x20Structural\x20blockers\x20are\x20REAL\x20—\x20the\x20generate\x20face\x20refuses\x20for\x20the\x20same\x20reason.\x20Blockers\x20naming\x20caller\x20inputs\x20(fee_overrides\x20/\x20guard_resolutions\x20/\x20catalog)\x20may\x20clear\x20with\x20real\x20values.'};}catch(j){return{'status':'unavailable','note':'Compile\x20dry-run\x20could\x20not\x20run\x20on\x20synthetic\x20probe\x20inputs\x20('+(j instanceof Error?j['message']:String(j))+').\x20This\x20is\x20a\x20probe\x20limitation,\x20NOT\x20a\x20template\x20verdict\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};}}export function planNextAction(a,b,c,d){if(d&&!d['actionable'])return'DO\x20NOT\x20execute\x20this\x20plan\x20yet\x20—\x20'+(d['stale']?'the\x20running\x20dist\x20lags\x20the\x20workspace\x20src\x20by\x20'+(d['lag_minutes']??'?')+'\x20min':'template\x20freshness\x20could\x20NOT\x20be\x20verified')+'\x20(stale_build\x20above;\x20verdicts\x20unconfirmed).\x20Rebuild\x20the\x20MCP\x20dist\x20first\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20server,\x20then\x20re-run\x20'+b+'\x20—\x20the\x20plan\x20just\x20returned\x20was\x20compiled\x20from\x20code\x20that\x20may\x20not\x20be\x20what\x20is\x20running.';const e=a['next_action'],f=(Array['isArray'](a['pending_guard_designs'])?a['pending_guard_designs']:[])['filter'](g=>g!=null&&g['bound']===!![])['length'];if(c&&!c['buildable'])return(f>0x0?'Plan\x20BLOCKED\x20—\x20'+f+'\x20unresolved\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20(verdict).\x20Do\x20NOT\x20materialize,\x20':'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20')+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(f>0x0?'Resolve\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');if(typeof e==='string'&&e['startsWith']('Plan\x20ready.'))return e;if(c?.['buildable'])return'Plan\x20is\x20buildable\x20(verdict.buildable=true).\x20Materialize\x20the\x20objects\x20in\x20plan.steps\x20order'+(f>0x0?',\x20resolving\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20before\x20the\x20Machine\x20publish':'')+'.';return'Plan\x20BLOCKED\x20by\x20the\x20guide\x20audit\x20(see\x20plan.audit\x20/\x20plan.next_action).\x20Do\x20NOT\x20materialize,\x20'+'and\x20do\x20NOT\x20hand-build\x20the\x20objects\x20instead:\x20this\x20plan\x20is\x20the\x20wiring\x20authority\x20(Arbitration\x20+\x20'+'compensation-fund,\x20Contact/um,\x20allocator\x20rows)\x20and\x20hand-built\x20replicas\x20silently\x20drop\x20those\x20wirings.\x20'+(f>0x0?'Resolve\x20the\x20'+f+'\x20pending\x20guard\x20design(s)\x20in\x20plan.pending_guard_designs\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20with\x20the\x20Guard\x20table+root,\x20kind\x20\x27template\x27\x20with\x20a\x20tpl_*\x20id,\x20or\x20{kind:\x27omit\x27}\x20for\x20advisory\x20designs\x20that\x20do\x20not\x20apply\x20to\x20this\x20shop),\x20':'Adjust\x20fee_overrides,\x20pick\x20another\x20template\x20variant,\x20or\x20fix\x20the\x20template,\x20')+('then\x20re-run\x20action=\x27'+b+'\x27.');}function templateIntent(a,b){if(b&&b['trim']())return b['trim']();return'Adopt\x20the\x20'+a['id']+'\x20industry\x20archetype\x20template\x20('+a['archetype']+')\x20for\x20the\x20'+a['industry']+'\x20industry.\x20'+('Primary\x20risk\x20to\x20mitigate:\x20'+a['key_risk']+'.');}function effectiveFeeParams(a,b){return{...a['fee_params'],...b??{}};}const REWARD_POOL_PATTERNS=[/(?:reward|review|bonus|tip|prize)[\s-]*pools?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:reward|review|bonus|tip|prize)[\s-]*pools?\b/i];export function extractRewardPoolCandidate(a){if(!a)return undefined;for(const b of REWARD_POOL_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function rewardPoolPrefill(a,b,c,d){if(a['fee_params']['review_reward_pool']===undefined)return undefined;if(c?.['review_reward_pool']!==undefined)return undefined;const e=d?claimNumber(d,'reward_pool_amount'):undefined;if(e!==undefined)return{'fee_key':'review_reward_pool','value':e,'claim_source':'semantic_ir'};const f=extractRewardPoolCandidate(b);return f===undefined?undefined:{'fee_key':'review_reward_pool','value':f};}const FUNDING_THRESHOLD_PATTERNS=[/(?:funding|campaign|round)[\s-]*(?:threshold|goal)s?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:funding|campaign|round)[\s-]*(?:threshold|goal)\b/i],MIN_ORDER_PATTERNS=[/(?:min(?:imum)?)\s+order(?:\s+(?:price|value|amount))?\s*(?:of|is|at|:|=)?\s*([0-9][0-9_,]*(?:\.[0-9]+)?)/i,/([0-9][0-9_,]*(?:\.[0-9]+)?)\s*(?:min(?:imum)?)\s+order\b/i];export function extractFundingThresholdCandidate(a){if(!a)return undefined;for(const b of FUNDING_THRESHOLD_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}export function extractMinOrderCandidate(a){if(!a)return undefined;for(const b of MIN_ORDER_PATTERNS){const c=b['exec'](a);if(!c)continue;const d=Number(c[0x1]['replaceAll'](/[,_]/g,''));if(Number['isFinite'](d)&&d>=0x0)return d;}return undefined;}function numericFeePrefill(a,b,c,d,e,f,g){if(a['fee_params'][b]===undefined)return undefined;if(f?.[b]!==undefined)return undefined;const h=g?claimNumber(g,c):undefined;if(h!==undefined)return{'fee_key':b,'value':h,'claim_source':'semantic_ir'};const i=d(e);return i===undefined?undefined:{'fee_key':b,'value':i};}function validateFeeParams(a,b){const c=[];let d=0x0;for(const [e,f]of Object['entries'](a)){const g=typeof f==='number'?f:typeof f==='string'&&f['trim']()!==''?Number(f['trim']()):NaN;if(!Number['isFinite'](g))continue;if(e['endsWith']('_bps')){(!Number['isInteger'](g)||g<0x0||g>0x2710)&&c['push'](e+'='+g+'\x20is\x20not\x20an\x20integer\x20rate\x20in\x20[0,\x2010000]\x20bps');if(e['endsWith']('_share_bps'))d+=Math['max'](0x0,g);}else{if(e['endsWith']('_days')){if(g<0x0||g>0xe42)c['push'](e+'='+g+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20[0,\x203650]\x20days\x20(0\x20=\x20immediate)');}else{if(e['endsWith']('_hours')){if(g<0x0||g>0x2238)c['push'](e+'='+g+'\x20is\x20outside\x20the\x20sane\x20window\x20range\x20[0,\x208760]\x20hours\x20(0\x20=\x20immediate)');}}}}if(d>0x2710)c['push']('*_share_bps\x20sum\x20'+d+'\x20exceeds\x2010000\x20(a\x20pool\x20splits\x20into\x20at\x20most\x20100%)');if(c['length']>0x0)throw new Error('invalid\x20fee\x20parameters\x20for\x20template\x20\x27'+b+'\x27:\x20'+c['join'](';\x20')+'.\x20'+'Correct\x20the\x20template\x27s\x20fee_params\x20or\x20pass\x20valid\x20\x27fee_overrides\x27.');}export{validateAllocatorRows};export function variantPaymentModel(a){if(a['payment_model'])return a['payment_model'];const b=a['allocator']['rows']??[];if(b['some'](d=>d['track']==='refund'))return'escrow';const c=a['machine_shape']['map'](d=>d['name'])['join']('\x20')['toLowerCase']();if(/\b(milestone|revision|revis|draft|deliverable)\b/['test'](c))return'milestone';if(/\b(charge|renew|subscription|cycle|billing|monthly)\b/['test'](c))return'subscription';return'escrow';}function variantRefundPolicy(a){const b=a['allocator']['description']['toLowerCase']();if(/full[ -]?refund|100% refund|refund .*100/['test'](b))return'full';if(/pro-?rata|prorated/['test'](b))return'milestone_prorated';if(/partial/['test'](b))return'partial';return undefined;}export function variantDeliverables(a,b){const c=a['machine_shape']['filter'](g=>g['semantic_role']==='final'),d=c[c['length']-0x1]??[...a['machine_shape']]['reverse']()['find'](g=>!/refund|cancel|dispute|terminat/i['test'](g['name']+'\x20'+g['role']))??a['machine_shape'][a['machine_shape']['length']-0x1],e=b?.['has_logistics']?'physical':b?.['pure_digital']?'digital':'service_session',f=(a['guards']??[])['filter'](h=>/repository_data_check|required_info_evidence_gate|allocator_order_anchor/['test'](h['template_id']));return[{'name':a['variant']+'\x20fulfillment','type':e,'acceptanceCriteria':'Order\x20reaches\x20the\x20terminal\x20workflow\x20node\x20\x27'+d['name']+'\x27\x20('+d['role']+')','proofOfDelivery':f['length']>0x0?'wip_hash':'manual_confirm'}];}function validateConditionalParams(a,b){for(const d of a['conditional_guards']??[]){const e=b[d['param']];if(e===undefined)continue;if(typeof e!=='string'||!d['values']['includes'](e))throw new Error('invalid\x20\x27'+d['param']+'='+String(e)+'\x27\x20for\x20template\x20\x27'+a['id']+'\x27:\x20must\x20be\x20one\x20of\x20'+d['values']['map'](f=>'\x27'+f+'\x27')['join']('\x20|\x20')+('\x20(the\x20guard\x20variant\x20mounts\x20at\x20\x27'+d['emit_value']+'\x27)'));}}async function runGuide(a,b,c,d,e,f,g){const h=effectiveFeeParams(a,c),i=rewardPoolPrefill(a,b,c,g);if(i)h[i['fee_key']]=i['value'];const j=numericFeePrefill(a,'funding_threshold','funding_threshold_amount',extractFundingThresholdCandidate,b,c,g);if(j)h[j['fee_key']]=j['value'];const k=numericFeePrefill(a,'min_order_price','min_order_price_amount',extractMinOrderCandidate,b,c,g);if(k)h[k['fee_key']]=k['value'];validateFeeParams(h,a['id']),validateConditionalParams(a,h);const l=landPlatformCommission(a,h);if(l['error']!==undefined)throw new Error(l['error']);const m=l['rows']?{...a,'allocator':{...a['allocator'],'rows':l['rows'],'count':l['rows']['filter'](z=>z['track']==='settlement')['length']}}:a,n=getIndustryModeRegistry()['getMode'](a['industry']),o=platformShareBps(h),q={'model':variantPaymentModel(a)},r=[],s=(m['allocator']['rows']?.['length']??0x0)>0x0;if(o!==undefined&&o>0x0&&!s&&a['allocator']['mode']==='rate'){const z=Math['round'](o)/0x64;r['push']({'recipient':'merchant','percentage':Math['round']((0x64-z)*0x64)/0x64}),r['push']({'recipient':'platform','percentage':z}),q['allocation']=r;}const u=variantRefundPolicy(a),v={'escrow':!![]};if(u)v['refundPolicy']=u;v['arbitration']=a['arbitration_mode']??v['arbitration']??inferArbitration(templateIntent(a,b));const w=await handleMerchantGuide({'intent':templateIntent(a,b),'guide_confirm':{'industry':a['industry'],'payment':q,'trust':v,'deliverables':variantDeliverables(a,n?.['traits']),...d&&Object['keys'](d)['length']>0x0?{'guard_resolutions':d}:{},...e?.['review_mode']?{'review_mode':e['review_mode']}:{},...e?.['reward_funding']!==undefined?{'reward_funding':e['reward_funding']}:{},...e?.['reward_claim_amount']!==undefined?{'reward_claim_amount':e['reward_claim_amount']}:{},...e?.['experience_compensation_mode']?{'experience_compensation_mode':e['experience_compensation_mode']}:{},...e?.['experience_pool_funding']!==undefined?{'experience_pool_funding':e['experience_pool_funding']}:{},...e?.['compensation_fund']!==undefined?{'compensation_fund':e['compensation_fund']}:{},...e?.['after_sales_mode']?{'after_sales_mode':e['after_sales_mode']}:{},...e?.['acceptance_mode']?{'acceptance_mode':e['acceptance_mode']}:{},...e?.['installment_mode']?{'installment_mode':e['installment_mode']}:{},...e?.['affiliate_mode']?{'affiliate_mode':e['affiliate_mode']}:{},...e?.['crowdfunding_mode']?{'crowdfunding_mode':e['crowdfunding_mode']}:{},...e?.['logistics_mode']?{'logistics_mode':e['logistics_mode']}:{},...f?.['length']?{'sales':f}:{}},'template_override':{...m,'fee_params':h},'name_base':a['id']});m['allocator']['rows']?.['length']&&(w['template_allocator_rows']=m['allocator']['rows']['map'](A=>({...A})));if(l['landing']!==undefined)w['commission_landing']=l['landing'];w['template']={'id':a['id'],'archetype':a['archetype'],'recommended_role':a['recommended_role'],'fee_params':h},w['fee_params_scale_note']='BENCHMARK\x20DEFAULTS\x20(algr12\x20M-20):\x20these\x20fee_params\x20are\x20catalog\x20benchmark\x20values,\x20not\x20shop\x20quotes\x20—\x20'+'generate\x20the\x20real\x20plan\x20with\x20fee_overrides\x20carrying\x20YOUR\x20figures\x20(price,\x20budget,\x20wage,\x20fund\x20amounts)\x20'+'BEFORE\x20plan_execute;\x20a\x20plan\x20built\x20on\x20the\x20defaults\x20will\x20price\x20SKUs\x20at\x20benchmark\x20levels\x20(e.g.\x20membership_price=60\x20WOW)\x20'+'and\x20under-funded\x20test\x20accounts\x20abort\x20at\x20the\x20pay\x20step.\x20Platform\x20commission\x20is\x20NOT\x20part\x20of\x20this\x20warning:\x20it\x20is\x20'+'pinned\x20to\x200\x20by\x20default\x20(peer-to-peer\x20direct\x20sale,\x20K3\x20CHARTER\x20§3.2).',w['catalog_version']=BUILTIN_TEMPLATES_VERSION;const x=templateCatalogDigest(a['id']);if(x!==undefined)w['template_digest']=x;if(w['plan']&&typeof w['plan']==='object'&&!Array['isArray'](w['plan'])){w['plan']['catalog_version']=BUILTIN_TEMPLATES_VERSION;if(x!==undefined)w['plan']['template_digest']=x;}{const A=[...collectLateMarks(w['plan']??{})]['sort']();A['length']>0x0&&(w['required_local_marks']=A,w['required_local_marks_note']='plan_execute\x20resolves\x20each\x20of\x20these\x20local\x20names\x20against\x20the\x20LocalMark\x20store\x20of\x20the\x20target\x20network\x20and\x20refuses\x20to\x20execute\x20while\x20any\x20is\x20unregistered.\x20'+'Register\x20them\x20BEFORE\x20executing\x20(local_mark_operation\x20add).\x20A\x20name\x20that\x20matches\x20an\x20object\x20this\x20plan\x20itself\x20creates\x20is\x20bound\x20to\x20that\x20object\x20automatically.\x20'+'A\x20recipient\x20mark\x20must\x20point\x20at\x20a\x20real\x20account\x20address:\x20an\x20empty\x20name\x20makes\x20the\x20SDK\x20substitute\x20the\x20deploying\x20account\x20(the\x20share\x20lands\x20in\x20whoever\x20runs\x20the\x20deploy),\x20and\x20an\x20object-id\x20/\x20zero-address\x20recipient\x20is\x20transferred\x20and\x20cannot\x20be\x20retrieved.\x20'+'A\x20Rate-0\x20Entity\x20leg\x20still\x20listed\x20in\x20template_allocator_rows\x20is\x20dropped\x20at\x20compile\x20time\x20and\x20needs\x20no\x20mark\x20(the\x20direct-sales\x20default\x20pays\x20nobody).');}w['template_fee_param_landings']=buildFeeParamLandingTable(m,h);if(c&&Object['keys'](c)['length']>0x0)w['template_fee_overrides']=c;const y=[];if(i)y['push'](i);if(j)y['push'](j);if(k)y['push'](k);if(y['length']>0x0){w['fee_overrides_prefills']=y;for(const B of y){const C=B['fee_key']==='review_reward_pool'?'Reward\x20pool':B['fee_key']==='funding_threshold'?'Funding\x20threshold':'Minimum\x20order',D=B['claim_source']==='semantic_ir'?'\x20(from\x20the\x20semantic\x20IR\x20claim)':'';w['next_action']=w['next_action']+'\x20'+C+'\x20prefilled\x20from\x20your\x20request:\x20'+B['value']+D+'\x20—\x20adjust\x20via\x20fee_overrides.';}}return w;}export async function handleBenchmarkMigrationOperation(a){const b=strictParse(BenchmarkMigrationSchema,a,'benchmark_migration_operation\x20input'),c=b['industry']?resolveIndustryName(b['industry'])??b['industry']['toLowerCase']():undefined,d=b['semantic_ir']?normalizeSemanticIR(b['semantic_ir'],{'source_text':b['description']}):undefined,e=d?{'semantic_ir_digest':d['digest'],...d['issues']['length']>0x0?{'semantic_ir_issues':d['issues']}:{}}:undefined;let f;switch(b['action']){case'template_list':{const {templates:g,errors:h}=listTemplates(),i=c?g['filter'](k=>k['industry']===c):g,j=new Map(builtinTemplateDrift()['map'](k=>[k['template'],k['state']]));f={'action':'template_list','count':i['length'],'templates':i['map'](k=>({...templateSummary(k),'disk_state':j['get'](k['id'])??(BUILTIN_TEMPLATES['some'](l=>l['id']===k['id'])?'current':'untracked')})),'discovery_vocabulary':{'industries':listIndustries()['map'](k=>k['name'])['sort'](),'tags':[...DISCOVERY_TAG_VOCABULARY],'product_refs':[...DISCOVERY_PRODUCT_REFS]},'load_errors':h};break;}case'template_get':{const k=requireTemplate(b['template_id'],'template_get'),l=templateTruthStamps(k['id']);if(l['consistency']==='drifted')throw new Error('Template\x20\x27'+b['template_id']+'\x27\x20TRUTH-STAMP\x20MISMATCH\x20(D2/F-03):\x20the\x20machine\x20layer\x20on\x20disk\x20does\x20not\x20match\x20the\x20running\x20catalog'+(l['differences']?'\x20—\x20'+l['differences']:'')+'.\x20The\x20.machine\x20file\x20is\x20the\x20structural\x20source\x20of\x20truth\x20and\x20knobs\x20are\x20a\x20pure\x20override\x20layer;\x20a\x20drifted\x20machine\x20body\x20must\x20not\x20be\x20read\x20or\x20built\x20from.\x20'+'Run\x20industry_pack_operation\x20action=\x27repair_builtin_templates\x27\x20(plan-only\x20preview\x20first,\x20authorize=true\x20after\x20user\x20confirmation;\x20pass\x20include_user_edited\x20only\x20for\x20machine-proven\x20non-user\x20drift),\x20then\x20re-fetch.');f={'action':'template_get','template':{...k,...templateGetAids(k)},'truth':l};break;}case'template_generate':{const m=requireTemplate(b['template_id'],'template_generate'),n=b['review_mode']??m['review_mode']??'none',o=b['experience_pool_funding']??b['fee_overrides']?.['experience_pool_funding'],p=o!==undefined?String(o):undefined,q=((()=>{if(b['experience_pool_funding']!==undefined||b['fee_overrides']?.['experience_pool_funding']===undefined)return b['fee_overrides'];const z={...b['fee_overrides']};return delete z['experience_pool_funding'],z;})()),r=b['experience_compensation_mode']??m['experience_compensation_mode']??'none',s=getTemplateParamFileLayer(m['id']),t=Object['keys'](s)['length']>0x0,u=t?{...s,...q??{}}:q,v=[];n==='review_reward'&&!b['reward_funding']&&v['push']('reward_funding\x20is\x20required:\x20template\x20\x27'+m['id']+'\x27\x20resolves\x20to\x20review_mode\x20\x27review_reward\x27\x20(input'+(b['review_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20promises\x20buyers\x20a\x20claimable\x20review\x20bounty\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(INV-4).\x20Pass\x20reward_funding\x20(smallest-unit\x20string;\x20expected\x20orders\x20x\x20per-order\x20reward\x20—\x20fee_param\x20review_reward_pool\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20mode\x20explicitly\x20(review_mode\x20\x27review\x27\x20keeps\x20the\x20review\x20rail\x20without\x20the\x20bounty;\x20\x27none\x27\x20removes\x20the\x20rail).');r==='reward'&&!p&&v['push']('experience_pool_funding\x20is\x20required:\x20template\x20\x27'+m['id']+'\x27\x20resolves\x20to\x20experience_compensation_mode\x20\x27reward\x27\x20(input'+(b['experience_compensation_mode']?'':'\x20via\x20template\x20declaration')+'),\x20which\x20arms\x20a\x20PRE-FUNDED\x20goodwill\x20Reward\x20pool\x20for\x20late/SLA-miss\x20claims\x20—\x20an\x20unfunded\x20pool\x20must\x20not\x20ship\x20(K3\x20C-11,\x20INV-4\x20family;\x20ssd\x20F-01).\x20Pass\x20experience_pool_funding\x20(smallest-unit\x20string;\x20~expected\x20failures\x20x\x20fee_param\x20experience_claim_amount\x20is\x20the\x20planning\x20benchmark),\x20or\x20drop\x20the\x20track\x20explicitly\x20(experience_compensation_mode\x20\x27none\x27).');(!Array['isArray'](b['sales'])||b['sales']['length']===0x0)&&v['push']('sales\x20is\x20required:\x20a\x20plan\x20without\x20a\x20sellable\x20catalog\x20publishes\x20a\x20Service\x20frozen\x20with\x20sales:\x20[]\x20and\x20every\x20order_new\x20aborts\x20(PLAN-SALES-01,\x20upgraded\x20to\x20an\x20input\x20requirement,\x20amz9\x20A-2).\x20Pass\x20sales:\x20[{\x20name,\x20price,\x20quantity?,\x20wip_hash?\x20}]\x20—\x20one\x20entry\x20per\x20sellable\x20SKU,\x20price\x20in\x20smallest\x20units\x20(wip_hash\x20from\x20the\x20wip_file\x20tool\x20upload).');const w=[];if(Array['isArray'](b['sales']))for(const z of b['sales']){if(!z||typeof z!=='object')continue;const A=typeof z['wip']==='string'?z['wip']['trim']():'',B=typeof z['wip_hash']==='string'?z['wip_hash']['trim']():'';if(A===''||B!=='')continue;const C=getWipVerifyRecord(A),D=C?.['wip_hash']??(typeof C?.['hash_equal']==='string'&&C['hash_equal']!==''?C['hash_equal']:undefined);if(D===undefined)continue;z['wip_hash']=D,w['push']({'sku':String(z['name']??''),'wip':A,'wip_hash':D,'source':C?.['wip_hash']!==undefined?'upload':'verify'});}if(Array['isArray'](b['sales'])&&b['sales']['length']>0x0&&b['allow_unpinned_wip']!==!![]){const E=u?.[PRODUCT_DETAIL_SOURCE_KEY]??m['fee_params']?.[PRODUCT_DETAIL_SOURCE_KEY];try{const F=await resolveProductDetailSource(E,b['sales']),G=new Set([...F['kept_pinned_skus'],...F['enriched']['map'](I=>I['sku'])]),H=b['sales']['filter'](I=>I&&typeof I==='object'&&typeof I['name']==='string'&&String(I['wip']??'')['trim']()===''&&String(I['wip_hash']??'')['trim']()==='')['map'](I=>String(I['name']))['filter'](I=>!G['has'](I));H['length']>0x0&&v['push']('wip\x20pin\x20is\x20required\x20for\x20SKU(s)\x20'+H['join'](',\x20')+'\x20(F-07,\x20CRITICAL):\x20a\x20sale\x20configured\x20without\x20wip\x20aborts\x20the\x20first\x20plan_execute\x20attempt,\x20and\x20an\x20unpinned\x20SKU\x20ships\x20with\x20NO\x20delivery-integrity\x20guarantee.\x20Cure\x20in\x20preference\x20order:\x20(1)\x20pass\x20wip\x20per\x20SKU\x20from\x20the\x20wip_file\x20flow\x20(type=\x27generate\x27\x20→\x20\x27upload\x27\x20—\x20the\x20returned\x20hash\x20is\x20written\x20back\x20automatically)\x20or\x20pass\x20wip_hash\x20directly;\x20(2)\x20declare\x20fee_overrides.product_detail_source\x20(per-SKU\x20JSON\x20map\x20or\x20single\x20https\x20URL/local\x20.wip\x20path)\x20so\x20the\x20kernel\x20resolves\x20the\x20sources;\x20(3)\x20ONLY\x20after\x20the\x20user\x20explicitly\x20accepts\x20an\x20unpinned\x20catalog,\x20pass\x20allow_unpinned_wip:true\x20—\x20the\x20build\x20then\x20proceeds\x20with\x20the\x20wip_anchor\x20face\x20marked\x20acknowledged.');}catch{}}if(v['length']>0x0)return{'content':[{'type':'text','text':'template_generate\x20refused\x20—\x20no\x20plan\x20was\x20built.\x20'+v['length']+'\x20input\x20gap(s),\x20ALL\x20listed\x20at\x20once\x20(AR-4\x20T-05):\x20'+v['map']((I,J)=>'('+(J+0x1)+')\x20'+I)['join']('\x20')}],'structuredContent':{'result':{'type':'error','error':'template_generate\x20input\x20preflight\x20failed\x20with\x20'+v['length']+'\x20gap(s)\x20on\x20template\x20\x27'+m['id']+'\x27\x20—\x20all\x20gaps\x20reported\x20in\x20this\x20single\x20response\x20(do\x20not\x20fix\x20one\x20and\x20rediscover\x20the\x20next).','error_code':'input_preflight_failed','retryable':!![],'recovery_hint':v['join']('\x20|\x20'),'gaps':v},'message':'Refused:\x20input\x20preflight\x20failed.\x20Fix\x20ALL\x20listed\x20gaps,\x20then\x20re-send\x20ONCE.\x20See\x20recovery_hint.'}};const x=scanTemplate(m);assertGenerateScanPassed(x,'template_generate');const y=await runGuide(m,b['description'],u,b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'experience_compensation_mode':b['experience_compensation_mode'],'experience_pool_funding':p,'compensation_fund':b['compensation_fund'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);b['experience_pool_funding']===undefined&&b['fee_overrides']?.['experience_pool_funding']!==undefined&&y&&typeof y==='object'&&(y['experience_pool_funding_rescued_from_fee_overrides']=String(b['fee_overrides']['experience_pool_funding']));f=((()=>{const I=scanSummary(x,driftFace(m['id'])),J=staleBuildFace(),K=buildVerdict(I,y,undefined,J),L=wipAnchorFace(b['sales']),M=returnNoExitFace(m['id']),N=planNextAction(y,'template_generate',K,J);return{'action':'template_generate','template_id':m['id'],...e,'stale_build':J,'scan':I,'plan':y,'verdict':K,...t?{'template_params_file':{'path':templateParamsFilePath(),'applied':s}}:{},...w['length']>0x0?{'sales_wip_hash_backfilled':w}:{},...L?{'wip_anchor':b['allow_unpinned_wip']===!![]?{...L,'acknowledged':!![]}:L}:{},...M?{'return_no_exit':M}:{},'next_action':N};})());break;}case'template_scan':{const I=requireTemplate(b['template_id'],'template_scan'),J=staleBuildFace(),K=await templateScanDryRun(I,J),L=returnNoExitFace(I['id']);f={'action':'template_scan','stale_build':J,'scan':{...withArbVotingGateAdvisories(withOnceSlotAdvisories(scanTemplate(I))),'drift':driftFace(I['id']),'compile_dry_run':K},...K['status']==='unavailable'?{}:{'buildable':K['buildable']===!![],'build_blockers':K['blockers']??[]},...L?{'return_no_exit':L}:{},'next_action':K['status']==='blocked'?'compile_dry_run\x20BLOCKED\x20—\x20the\x20static\x20rule\x20scan\x20passed,\x20but\x20the\x20compile\x20kernel\x20refuses\x20this\x20template\x20(see\x20build_blockers;\x20the\x20same\x20verdict\x20template_generate\x20enforces).\x20Do\x20NOT\x20publish\x20from\x20this\x20scan:\x20run\x20template_generate\x20for\x20the\x20full\x20verdict,\x20or\x20fix\x20the\x20template\x20and\x20re-scan.':K['status']==='unverified'?'compile_dry_run\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(stale_build\x20above):\x20the\x20findings\x20and\x20verdict\x20may\x20describe\x20superseded\x20template\x20knowledge.\x20Do\x20NOT\x20act\x20on\x20ANY\x20conclusion\x20here.\x20Rebuild\x20the\x20MCP\x20dist\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-scan.':K['status']==='ready'?'compile_dry_run\x20READY\x20on\x20probe\x20inputs\x20—\x20proceed\x20with\x20template_generate.':'compile_dry_run\x20unavailable\x20on\x20probe\x20inputs\x20—\x20run\x20template_generate\x20for\x20the\x20authoritative\x20buildability.'};break;}case'migration_import':{if(!b['description']||!b['description']['trim']())throw new Error('\x27description\x27\x20is\x20required\x20for\x20action=\x27migration_import\x27');const M=d?handleRecommendIndustry({'intent':b['description'],'semantic_ir':b['semantic_ir']}):undefined,N=planMigration({'url':b['url'],'description':b['description'],'industry':c,'ir_industry':c?undefined:M?.['recommendations'][0x0]?.['industry'],'ir_discovery':d?discoverySignal(d['ir']):undefined,'network':b['network']});if(!N)throw new Error('No\x20industry\x20template\x20matched\x20the\x20description.\x20Refine\x20the\x20description\x20or\x20pass\x20an\x20explicit\x20\x27industry\x27\x20hint'+(d?',\x20or\x20add\x20discovery\x20tags\x20/\x20a\x20product_ref\x20to\x20semantic_ir\x20(tags\x20vocabulary:\x20template_list.discovery_vocabulary).':'\x20(or\x20provide\x20semantic_ir\x20with\x20discovery\x20tags\x20/\x20traits\x20for\x20a\x20non-English\x20description).'));const O=getTemplate(N['source']['matched_template']),P=O?await templateScanDryRun(O,staleBuildFace()):undefined;f={'action':'migration_import','log':N,...P&&P['buildable']!==undefined?{'buildable':P['buildable']===!![],'build_blockers':P['blockers']??[],'compile_dry_run':{'status':P['status'],'note':P['note']}}:{},...M?{'inference_source':M['inference_source']}:{},...e,'next_action':'MigrationLog\x20ready.\x20Next:\x20call\x20action=\x27migration_review\x27\x20with\x20this\x20log\x20to\x20surface\x20the\x20mapped/unmapped/manual_review\x20items\x20for\x20user\x20confirmation.'+(P?.['status']==='unverified'?'\x20NOTE:\x20the\x20compile\x20dry-run\x20verdict\x20is\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20build_blockers):\x20do\x20NOT\x20act\x20on\x20buildability\x20until\x20rebuilt\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace)\x20and\x20re-run.':P?.['status']==='blocked'?'\x20NOTE:\x20compile\x20dry-run\x20BLOCKED\x20on\x20probe\x20inputs\x20(see\x20build_blockers)\x20—\x20surface\x20the\x20blockers\x20at\x20review\x20BEFORE\x20migration_apply;\x20input-naming\x20blockers\x20may\x20clear\x20with\x20real\x20values.':'')};break;}case'plan_execute':{const Q=planEnvelopeFromInput(b['plan']),R=Q['plan']!==undefined&&typeof Q['plan']==='object'&&!Array['isArray'](Q['plan'])&&Array['isArray'](Q['plan']['steps'])?Q['plan']:Q;if(!Array['isArray'](R['steps']))throw new Error('action=\x27plan_execute\x27:\x20the\x20passed\x20plan\x20carries\x20no\x20steps[]\x20—\x20pass\x20the\x20template_generate\x20\x27plan\x27\x20object\x20verbatim');const S=typeof R['catalog_version']==='number'?R['catalog_version']:undefined,T=typeof R['templateId']==='string'?R['templateId']:undefined,U=typeof R['template_digest']==='string'?R['template_digest']:undefined,V=S===BUILTIN_TEMPLATES_VERSION,W=!V&&T!==undefined&&U!==undefined&&templateCatalogDigest(T)===U;if(S!==undefined&&!V&&!W)throw new Error('action=\x27plan_execute\x27:\x20STALE\x20PLAN\x20—\x20the\x20plan\x20was\x20generated\x20against\x20catalog\x20v'+S+',\x20'+('but\x20this\x20server\x20runs\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+(W?'':'\x20and\x20its\x20template\x20content\x20does\x20not\x20match\x20this\x20catalog\x27s\x20template')+';\x20shapes,\x20guards\x20and\x20emissions\x20may\x20have\x20')+'changed\x20since.\x20Re-run\x20template_generate\x20(or\x20migration_apply)\x20to\x20regenerate\x20the\x20plan\x20against\x20the\x20'+'current\x20catalog,\x20then\x20execute\x20THAT\x20verbatim.\x20Nothing\x20was\x20executed.');const X=R['verdict'],Y=X!==null&&typeof X==='object'?X['buildable']===![]:![],Z=staleBuildFace(),a0=Z['known']===!![]&&Z['stale']===!![],a1=T!==undefined?templateCatalogDigest(T):undefined,a2={'plan_catalog_version':S??null,'current_catalog_version':BUILTIN_TEMPLATES_VERSION,'plan_template_digest':U??null,'current_template_digest':a1??null,...T!==undefined&&U!==undefined?{'template_digest_match':a1===U}:{}};let a3;if(Y||a0){const ax=Y?'the\x20plan\x27s\x20OWN\x20verdict\x20answers\x20buildable:false\x20(the\x20generator\x20refused\x20this\x20build)':'the\x20build\x20state\x20is\x20UNVERIFIED\x20(stale_build:\x20'+Z['detail']+')\x20—\x20every\x20build\x20verdict\x20this\x20process\x20could\x20produce\x20is\x20UNVERIFIED';if(b['override_stale_build']!==!![]){const ay=Y?'Fix\x20the\x20blockers\x20the\x20verdict\x20listed\x20and\x20re-run\x20template_generate,\x20then\x20execute\x20the\x20fresh\x20plan.':'Rebuild\x20the\x20MCP\x20dist\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-run\x20template_generate\x20for\x20a\x20fresh\x20verdict.';throw new Error('action=\x27plan_execute\x27:\x20REFUSED\x20(O-F49)\x20—\x20'+ax+'.\x20Executing\x20an\x20unbuildable/unverified\x20plan\x20'+('materializes\x20yesterday\x27s\x20shapes\x20on\x20chain.\x20'+ay+'\x20If\x20you\x20consciously\x20accept\x20the\x20risk,\x20re-send\x20')+'with\x20override_stale_build:true\x20(the\x20override\x20is\x20audited\x20into\x20the\x20response).\x20Nothing\x20was\x20executed.');}a3={'parameter':'override_stale_build','reason':ax,'stale_build':Z};}const a4=templateAdvisoryFaces(T),a5=(R['steps']??[])['filter'](az=>az!==null&&typeof az==='object'),a6=a5['map'](az=>String(az['id'])),a7=new Set(a5['filter'](az=>az['op']==='create')['map'](az=>String(az['id'])));let a8=[...b['completed_steps']??[]];const a9=b['resume_from_step'];if(a9!==undefined){const az=a6['indexOf'](a9);if(az<0x0)throw new Error('action=\x27plan_execute\x27:\x20resume_from_step\x20\x27'+a9+'\x27\x20is\x20not\x20a\x20step\x20of\x20THIS\x20plan\x20(steps:\x20'+a6['join'](',\x20')+').\x20'+'Step\x20ids\x20are\x20plan-local:\x20resume\x20against\x20the\x20plan\x20returned\x20by\x20the\x20ORIGINAL\x20template_generate\x20(a\x20regenerated\x20plan\x20mints\x20new\x20ids).\x20Nothing\x20was\x20executed.');a8=[...new Set([...a8,...a6['slice'](0x0,az)])];}const aa=a8['filter'](aA=>!a6['includes'](aA));if(aa['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20completed_steps\x20name(s)\x20['+aa['join'](',\x20')+']\x20are\x20not\x20steps\x20of\x20THIS\x20plan\x20—\x20the\x20resume\x20channel\x20'+'adopts\x20ONLY\x20steps\x20of\x20the\x20SAME\x20plan,\x20and\x20a\x20silently-ignored\x20unknown\x20id\x20would\x20re-execute\x20the\x20real\x20step\x20(ghost\x20duplicates).\x20'+'This\x20usually\x20means\x20the\x20plan\x20was\x20REGENERATED\x20(ids\x20changed):\x20pass\x20the\x20original\x20plan\x20with\x20ITS\x20resume\x20payload,\x20or\x20this\x20response\x27s\x20`resume`\x20object\x20verbatim.\x20Nothing\x20was\x20executed.');const ab=b['previous_outputs']??{},ac=a8['filter'](aA=>a7['has'](aA)&&ab[aA]===undefined);if(ac['length']>0x0)throw new Error('action=\x27plan_execute\x27:\x20adopted\x20create\x20step(s)\x20['+ac['join'](',\x20')+']\x20have\x20NO\x20previous_outputs\x20entry\x20—\x20an\x20adopted\x20create\x20'+'without\x20its\x20created\x20address\x20cannot\x20resolve\x20$ref\x20bindings.\x20Pass\x20the\x20addresses\x20from\x20the\x20prior\x20run\x27s\x20outputs\x20field\x20(or\x20its\x20`resume`\x20payload).\x20Nothing\x20was\x20executed.');const ad=a8['length']>0x0||Object['keys'](ab)['length']>0x0||a9!==undefined?{'completedSteps':a8,'outputs':ab}:undefined,ae=((()=>{const aA=new Map();for(const aC of R['steps']??[]){const aD=aC['params'];aC['op']==='create'&&typeof aD?.['name']==='string'&&aA['set'](aD['name'],String(aC['id']));}const aB=aE=>{if(Array['isArray'](aE))return aE['map'](aB);if(aE&&typeof aE==='object'){const aF=aE,aG=aF['$late'],aH=Object['keys'](aF);if(aG?.['by']==='local_name'&&typeof aG['mark']==='string'&&aH['length']===0x1&&aA['has'](aG['mark']))return{'$ref':aA['get'](aG['mark'])};return Object['fromEntries'](Object['entries'](aF)['map'](([aI,aJ])=>[aI,aB(aJ)]));}return aE;};return aB(R);})()),af=bindAuditPlan(ae);if(af['length']>0x0){const aA=bindRecoveryList(ae,b['previous_outputs']);throw new Error('action=\x27plan_execute\x27:\x20PLAN_BIND_AUDIT_FAILED\x20—\x20the\x20plan\x20binds\x20plan-created\x20objects\x20by\x20'+'global-namespace\x20NAME\x20instead\x20of\x20{\x22$ref\x22:\x20stepId}\x20(or\x20carries\x20an\x20undeclared\x20external\x20local_name).\x20'+'Executing\x20would\x20wire\x20THIS\x20store\x20to\x20ANOTHER\x20run\x27s\x20objects\x20—\x20Guards\x20are\x20create-frozen\x20and\x20Machines\x20'+'cannot\x20republish,\x20so\x20the\x20mis-binding\x20is\x20unrecoverable\x20after\x20the\x20fact\x20(ddmc4\x20B-13,\x20pdd\x20F-08).\x20'+'Nothing\x20was\x20executed.\x0a'+bindAuditReport(af,aA)+'\x0aRe-run\x20template_generate\x20against\x20the\x20current\x20catalog\x20(its\x20compile\x20emits\x20{\x22$ref\x22:\x20stepId}\x20for\x20'+'every\x20plan-internal\x20object),\x20then\x20execute\x20THAT\x20plan.');}const ag=planLedgerKey(ae),ah=a8['length']>0x0||b['previous_outputs']!==undefined||typeof b['resume_from_step']==='string'?undefined:readPlanReceipt(ag);let ai;const aj=lockedFreshStep(ag,a6,new Set(a8));if(aj!==undefined){const aB=b['retry_override'];if(aB!==undefined&&aB['step_id']===aj['stepId']&&aB['note']['trim']()['length']>0x0)clearPlanStep(ag,aj['stepId']),ai={'step_id':aj['stepId'],'note':aB['note']};else throw new Error('action=\x27plan_execute\x27:\x20RETRY_LOCKED\x20—\x20step\x20\x27'+aj['stepId']+'\x27\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20in\x20'+aj['count']+'\x20consecutive\x20'+('rounds\x20(\x22'+aj['lastError']+'\x22).\x20A\x20further\x20unchanged\x20re-run\x20fails\x20identically\x20and\x20burns\x20gas,\x20so\x20this\x20server\x20refuses\x20it\x20(nothing\x20was\x20executed).\x20')+'Fix\x20the\x20cause\x20first\x20—\x20usual\x20roots:\x20a\x20template/input\x20defect\x20(re-run\x20template_generate\x20for\x20a\x20FRESH\x20plan:\x20new\x20ids,\x20new\x20ledger),\x20a\x20missing\x20registration\x20(do\x20it,\x20then\x20resume),\x20'+'or\x20verify\x20the\x20single\x20step\x20manually\x20via\x20onchain_operations\x20to\x20confirm\x20the\x20fix.\x20'+('If\x20one\x20more\x20round\x20IS\x20justified,\x20pass\x20retry_override\x20{step_id:\x20\x22'+aj['stepId']+'\x22,\x20note:\x20\x22<why>\x22}.'));}const ak=[...new Set([...collectLateMarks(ae),...collectAddressSlotBareNames(ae)])],al=b['env']?.['network'],am=new Map(),an=[];for(const aC of ak){const aD=await LocalMark['Instance']()['get_address'](aC,al)['catch'](()=>undefined);if(typeof aD==='string'&&aD['length']>0x0)am['set'](aC,aD);else an['push'](aC);}if(an['length']>0x0){const aE=[],aF=[['process-default',undefined],['testnet',ENTRYPOINT['Testnet']],['mainnet',ENTRYPOINT['Mainnet']]];for(const aH of an){for(const [aI,aJ]of aF){if(aJ===al)continue;const aK=await LocalMark['Instance']()['get_address'](aH,aJ)['catch'](()=>undefined);if(typeof aK==='string'&&aK['length']>0x0){aE['push'](aH+'\x20->\x20found\x20on\x20the\x20'+aI+'\x20partition');break;}}}const aG=aE['length']>0x0?'\x20PARTITION\x20MISMATCH\x20detected\x20(F-P6-02):\x20'+aE['join'](';\x20')+'.\x20The\x20mark\x20EXISTS\x20but\x20not\x20on\x20the\x20'+('\x27'+(al??'default')+'\x27\x20partition\x20this\x20plan\x20resolves\x20against.\x20Repair:\x20re-register\x20on\x20the\x20SAME\x20partition\x20the\x20plan\x20runs\x20on\x20—\x20')+('local_mark_operation\x20{network:\x22'+(al??'mainnet')+'\x22,\x20add:{op:\x22add\x22,data:[{name:\x22'+an[0x0]+'\x22,address:\x22<your\x20entity\x20address>\x22}]}}.'):'';throw new Error('action=\x27plan_execute\x27:\x20unresolved\x20LocalMark(s)\x20['+an['join'](',\x20')+']\x20on\x20'+(al??'default')+'\x20network.\x20'+'This\x20plan\x20binds\x20an\x20object\x20by\x20local\x20name\x20(a\x20funding\x20recipient\x20slot,\x20an\x20external\x20object\x20reference,\x20or\x20an\x20Address-typed\x20guard\x20table\x20value).\x20Register\x20the\x20mark\x20first\x20—\x20'+('local_mark_operation\x20{network:\x22'+(al??'mainnet')+'\x22,\x20add:{op:\x22add\x22,data:[{name:\x22'+an[0x0]+'\x22,address:\x22<your\x20entity\x20address>\x22}]}}\x20—\x20then\x20re-run.\x20')+('Nothing\x20was\x20executed.'+aG));}const ao=collectRecipientLateMarks(ae);for(const aL of ao){const aM=am['get'](aL);if(aM===undefined)continue;const aN=recipientMarkRefusal(aL,aM,al??'default');if(aN!==undefined)throw new Error(aN);}if(ao['size']>0x0){const aO=await LocalMark['Instance']()['list'](undefined,al)['catch'](()=>[]);for(const aP of ao){const aQ=aO['filter'](aS=>typeof aS?.['name']==='string'&&aS['name']['toLowerCase']()===aP['toLowerCase']()),aR=[...new Set(aQ['map'](aS=>aS['address']['toLowerCase']()))];if(aR['length']>0x1){const aS=aQ['map'](aT=>'{address:\x22'+aT['address']+'\x22,\x20updated_at:'+(aT['updatedAt']??aT['createdAt']??'unknown')+'}')['join'](',\x20');throw new Error('action=\x27plan_execute\x27:\x20the\x20recipient\x20LocalMark\x20\x27'+aP+'\x27\x20is\x20AMBIGUOUS\x20on\x20'+(al??'default')+'\x20network\x20—\x20'+(aQ['length']+'\x20row(s)\x20share\x20this\x20name\x20resolving\x20to\x20'+aR['length']+'\x20DISTINCT\x20addresses:\x20'+aS+'.\x20')+'The\x20executor\x20would\x20silently\x20pay\x20the\x20most-recently-updated\x20row;\x20order_allocators\x20freezes\x20at\x20Service\x20publish,\x20so\x20this\x20plan\x20refuses\x20to\x20run\x20until\x20the\x20name\x20is\x20unambiguous.\x20'+('Fix:\x20keep\x20ONE\x20row\x20—\x20local_mark_operation\x20{network:\x22'+(al??'mainnet')+'\x22,\x20add:{op:\x22add\x22,data:[{name:\x22'+aP+'\x22,address:\x22<the\x20verified\x20payee>\x22}]}}\x20overwrites\x20the\x20name\x20down\x20to\x20a\x20single\x20address\x20(verify\x20it\x20is\x20YOUR\x20account\x20first),\x20or\x20rename\x20the\x20stale\x20row.\x20Nothing\x20was\x20executed.'));}}}const ap=await materializePlan(ae,{'execute':handlerExecutor(b['env']),'envByAccount':b['accounts'],'envSignerRef':typeof b['env']?.['account']==='string'?b['env']['account']:undefined,'timeoutMs':b['timeout_ms'],'resolveLate':aT=>{if(aT['by']==='address')return aT['address'];const aU=am['get'](aT['by']==='local_name'?aT['mark']:'');if(aU===undefined)throw new Error('unresolved\x20late\x20binding:\x20local_name\x20\x27'+(aT['by']==='local_name'?aT['mark']:'')+'\x27');return aU;}},ad),aq=ap['steps']['filter'](aT=>aT['status']==='blocked')['length'],ar=ap['steps']['find'](aT=>aT['status']==='failed'),as=ap['steps']['some'](aT=>aT['status']==='blocked'&&typeof aT['error']==='string'&&aT['error']['startsWith']('preflight\x20failed:')),at=ap['steps']['find'](aT=>aT['status']==='failed'&&typeof aT['digest']==='string'&&aT['digest']['length']>0x0),au=ap['steps']['find'](aT=>aT['status']==='blocked'&&typeof aT['error']==='string'&&aT['error']['startsWith']('time\x20budget'));recordPlanRound(ag,ap['steps']),writePlanReceipt(ag,{'completed':ap['completed']===!![],'steps':ap['steps']['map'](aT=>({'stepId':aT['stepId'],'status':aT['status'],...typeof aT['digest']==='string'?{'digest':aT['digest']}:{},...typeof aT['address']==='string'?{'address':aT['address']}:{},...typeof aT['error']==='string'?{'error':aT['error']}:{}})),'outputs':ap['outputs'],...am['size']>0x0?{'late_mark_bindings':Object['fromEntries'](am)}:{}});const av=repeatedPlanFailures(ag);let aw=ap['completed']?'Deployed.\x20Verify\x20the\x20store\x20(query_toolkit:\x20service\x20/\x20machine\x20/\x20orders),\x20then\x20discharge\x20any\x20post-deploy\x20module\x20obligations\x20the\x20guide\x20listed\x20under\x20harness_check.module_gaps.':as?'A\x20publish\x20step\x20was\x20BLOCKED\x20by\x20the\x20freeze\x20gate\x20—\x20the\x20store\x20is\x20NOT\x20live.\x20Fix\x20the\x20listed\x20preflight\x20checks\x20at\x20the\x20SOURCE\x20(re-run\x20template_generate);\x20never\x20patch\x20plan\x20steps\x20by\x20hand.':at!==undefined?'Step\x20\x27'+at['stepId']+'\x27\x20FAILED\x20with\x20digest\x20'+at['digest']+'\x20—\x20the\x20transaction\x20MAY\x20have\x20committed\x20(transport\x20face).\x20VERIFY\x20FIRST:\x20onchain_transaction\x20with\x20that\x20digest.\x20If\x20committed:\x20ADOPT\x20it\x20—\x20add\x20\x27'+at['stepId']+'\x27\x20to\x20completed_steps\x20(and\x20its\x20created\x20object\x20address\x20to\x20previous_outputs)\x20in\x20the\x20resume\x20call.\x20If\x20confirmed\x20absent:\x20re-send\x20with\x20this\x20response\x27s\x20resume\x20payload\x20(or\x20completed_steps/previous_outputs\x20from\x20it).\x20Never\x20blind-resume\x20a\x20digest-bearing\x20failure\x20(ghost\x20duplicates).':ap['budgetExhausted']?'Time\x20budget\x20('+String(b['timeout_ms'])+'ms)\x20reached\x20before\x20step\x20\x27'+(au?.['stepId']??'?')+'\x27\x20—\x20the\x20run\x20stopped\x20cleanly\x20mid-plan\x20with\x20NO\x20unknown-state\x20step.\x20RESUME\x20(W5-08):\x20send\x20plan_execute\x20again\x20with\x20the\x20SAME\x20plan\x20and\x20this\x20response\x27s\x20resume\x20payload\x20VERBATIM\x20(completed_steps\x20+\x20previous_outputs),\x20or\x20resume_from_step\x20=\x20\x27'+(au?.['stepId']??'<first\x20non-executed\x20stepId>')+'\x27\x20+\x20previous_outputs\x20('+aq+'\x20step(s)\x20remain;\x20raise\x20or\x20omit\x20timeout_ms\x20to\x20take\x20fewer\x20slices).':'Step\x20\x27'+(ar?.['stepId']??'?')+'\x27\x20FAILED:\x20'+(ar?.['error']??'unknown')+'.\x20RESUME\x20—\x20do\x20NOT\x20re-run\x20from\x20scratch\x20(duplicate\x20objects):\x20send\x20plan_execute\x20again\x20with\x20this\x20response\x27s\x20resume\x20payload\x20(completed_steps\x20+\x20previous_outputs),\x20or\x20resume_from_step\x20=\x20\x27'+(ar?.['stepId']??'?')+'\x27\x20+\x20previous_outputs.';if(av['length']>0x0&&!ap['completed']){const aT='STOP\x20—\x20do\x20NOT\x20re-run\x20unchanged:\x20step\x20\x27'+av[0x0]['step_id']+'\x27\x20failed\x20with\x20the\x20IDENTICAL\x20error\x20for\x20'+av[0x0]['consecutive_rounds']+'\x20consecutive\x20round(s);\x20a\x20further\x20unchanged\x20re-run\x20is\x20REFUSED\x20pre-execution.\x20';aw=at!==undefined||as?aw+'\x20'+aT+'After\x20resolving\x20the\x20state\x20question\x20above,\x20fix\x20the\x20ROOT\x20CAUSE\x20before\x20resuming\x20(retry_override\x20{step_id,\x20note}\x20is\x20the\x20audited\x20exception).':aT+'The\x20generic\x20RESUME\x20recipe\x20is\x20withheld\x20on\x20purpose.\x20Fix\x20the\x20root\x20cause\x20first\x20—\x20re-run\x20template_generate\x20for\x20a\x20fresh\x20plan\x20(new\x20ids\x20bypass\x20the\x20lock),\x20complete\x20a\x20missing\x20registration,\x20or\x20verify\x20the\x20single\x20failing\x20step\x20via\x20onchain_operations\x20—\x20THEN\x20resume\x20with\x20the\x20resume\x20payload.\x20retry_override\x20{step_id,\x20note}\x20authorizes\x20one\x20audited\x20exception.';}f={'action':'plan_execute','completed':ap['completed'],'steps':ap['steps'],'outputs':ap['outputs'],'preflight':{'issues':ap['preflight']['issues'],'findings':ap['preflight']['findings'],...Object['keys'](a4)['length']>0x0?{'template_advisories':a4}:{}},'readback':ap['readback'],...am['size']>0x0?{'late_mark_bindings':Object['fromEntries'](am),'late_mark_note':'PAYEE\x20VERIFICATION\x20(last\x20repairable\x20moment):\x20each\x20entry\x20is\x20the\x20address\x20a\x20local-name\x20funding\x20recipient\x20resolved\x20to.\x20'+'Verify\x20every\x20address\x20belongs\x20to\x20THIS\x20store\x27s\x20owner/operator\x20accounts\x20(accounts\x20you\x20control)\x20before\x20any\x20service_publish\x20step\x20runs.\x20'+'A\x20wrong\x20address\x20here\x20becomes\x20an\x20UNFIXABLE\x20on-chain\x20allocator\x20after\x20publish.\x20M-18\x20REPAIR\x20ROUTE\x20(the\x20only\x20sanctioned\x20one\x20—\x20never\x20hand-patch\x20plan\x20steps):\x20fix\x20the\x20LOCAL\x20MARK,\x20then\x20re-run\x20this\x20plan;\x20the\x20echo\x20re-resolves\x20and\x20re-displays.\x20'+('Per-entry\x20fix\x20command\x20(add\x20OVERWRITES\x20the\x20mark\x20to\x20the\x20address\x20you\x20name,\x20so\x20one\x20call\x20per\x20wrong\x20entry\x20re-points\x20its\x20funding\x20recipient):\x20local_mark_operation\x20{network:\x22'+(al??'mainnet')+'\x22,\x20add:{op:\x22add\x22,data:[{name:\x22<this\x20entry\x27s\x20mark>\x22,\x20address:\x22<the\x20address\x20you\x20verified\x20as\x20yours>\x22}]}}')+'\x20—\x20the\x20same\x20call\x20also\x20registers\x20a\x20missing\x20mark;\x20nothing\x20on\x20chain\x20changes\x20until\x20you\x20re-run\x20and\x20pass\x20this\x20check\x20again.'}:{},...ap['completed']?{}:{'resume':{'completed_steps':ap['steps']['filter'](aU=>aU['status']==='executed')['map'](aU=>aU['stepId']),'previous_outputs':ap['outputs']}},...ah!==undefined?{'previous_receipt':ah,'previous_receipt_note':'A\x20prior\x20run\x20of\x20this\x20plan\x20wrote\x20this\x20step-level\x20receipt\x20to\x20disk.\x20ADOPT,\x20do\x20not\x20re-run:\x20for\x20every\x20executed\x20step\x20here,\x20either\x20resume_from_step\x20=\x20the\x20first\x20non-executed\x20stepId\x20with\x20previous_outputs\x20=\x20the\x20receipt\x27s\x20outputs,\x20or\x20send\x20completed_steps/previous_outputs\x20from\x20the\x20receipt.\x20Re-running\x20executed\x20steps\x20creates\x20DUPLICATE\x20on-chain\x20objects.'}:{},...av['length']>0x0?{'repeated_failures':av,'retry_prohibited':!![]}:{},...ai!==undefined?{'retry_override_applied':ai}:{},'digest_check':a2,...a3!==undefined?{'verdict_override':a3}:{},'next_action':aw};break;}case'migration_review':{if(!b['log'])throw new Error('\x27log\x27\x20is\x20required\x20for\x20action=\x27migration_review\x27');const aU=b['log'],aV=Array['isArray'](aU['mapped'])?aU['mapped']:[],aW=Array['isArray'](aU['unmapped'])?aU['unmapped']:[],aX=Array['isArray'](aU['manual_review'])?aU['manual_review']:[],aY=aU['risk_check']??{},aZ=aU['source']?.['matched_template']??'',b0=aU['template_match']??{},b1=typeof b0['source']==='string'?b0['source']:'unknown',b2=typeof b0['confidence']==='number'?b0['confidence']:0x0,b3=b1==='unknown'||b1==='industry_leader'||b1==='ir_industry_fallback'||b2<0.5,b4=aZ?getTemplate(aZ):undefined,b5=b4?await templateScanDryRun(b4,staleBuildFace()):undefined,b6=b5?.['buildable']===undefined?undefined:b5['buildable']===!![],b7=b5?.['blockers']??[],b8=b5?.['status']==='unverified'?'\x20NOTE:\x20the\x20compile\x20dry-run\x20verdict\x20is\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20review_summary.build_blockers):\x20rebuild\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart,\x20and\x20re-run\x20before\x20acting.':b6===![]?'\x20NOTE:\x20compile\x20dry-run\x20ALSO\x20blocks\x20this\x20template\x20on\x20probe\x20inputs\x20(review_summary.build_blockers)\x20—\x20input-naming\x20blockers\x20may\x20clear\x20with\x20real\x20values.':'',b9=aW['length']===0x0&&aX['length']===0x0&&aY['passed']===!![]&&!b3&&b6!==![];f={'action':'migration_review','log':aU,'review_summary':{'mapped_count':aV['length'],'unmapped_count':aW['length'],'manual_review_count':aX['length'],'risk_passed':aY['passed']===!![],...b5?{...b6!==undefined?{'buildable':b6}:{},'build_blockers':b7,'compile_dry_run':{'status':b5['status'],'note':b5['note']}}:{},'template_match':{'template_id':aZ,'source':b1,'confidence':b2,'weak_match':b3}},'next_action':b9?'Review\x20clean.\x20Proceed:\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+aZ+'\x27\x20to\x20produce\x20the\x20creation\x20plan\x20(network\x20defaults\x20to\x20testnet;\x20mainnet\x20requires\x20explicit\x20user\x20confirmation).'+(b5?.['status']==='unavailable'?'\x20Note:\x20the\x20compile\x20dry-run\x20could\x20not\x20run\x20on\x20probe\x20inputs\x20—\x20template_generate\x20remains\x20the\x20authoritative\x20buildability\x20check.':''):b5?.['status']==='unverified'&&!b3?'compile\x20dry-run\x20verdict\x20UNVERIFIED\x20—\x20the\x20running\x20dist\x20is\x20stale\x20against\x20the\x20workspace\x20src\x20(see\x20review_summary.build_blockers).\x20Do\x20NOT\x20act\x20on\x20buildability:\x20rebuild\x20(pnpm\x20build\x20in\x20the\x20mcp\x20workspace),\x20restart\x20the\x20process,\x20and\x20re-run\x20migration_plan\x20for\x20a\x20verified\x20verdict.':b6===![]&&!b3?'compile_dry_run\x20BLOCKED\x20on\x20probe\x20inputs\x20—\x20the\x20static\x20risk\x20check\x20passed,\x20but\x20the\x20compile\x20kernel\x20refuses\x20\x27'+aZ+'\x27\x20(see\x20review_summary.build_blockers;\x20the\x20same\x20verdict\x20template_generate\x20enforces).\x20Surface\x20the\x20blockers\x20to\x20the\x20user\x20BEFORE\x20action=\x27migration_apply\x27\x20—\x20blockers\x20naming\x20caller\x20inputs\x20(sales\x20/\x20fee_overrides\x20/\x20guard_resolutions)\x20may\x20clear\x20with\x20real\x20values.':b3?'WEAK\x20TEMPLATE\x20MATCH:\x20\x27'+aZ+'\x27\x20was\x20chosen\x20by\x20\x27'+b1+'\x27\x20at\x20confidence\x20'+b2+'\x20—\x20a\x20fallback,\x20not\x20evidence\x20(ssng\x20A-1:\x20a\x20Chinese\x20one-liner\x20silently\x20built\x20the\x20wrong\x20store\x20this\x20way).\x20Play\x20the\x20match\x20back\x20to\x20the\x20user\x20and\x20confirm\x20the\x20business\x20model.\x20To\x20get\x20an\x20EVIDENCE-based\x20match,\x20translate\x20through\x20the\x20caller\x20mechanism\x20(any\x20locale\x20works;\x20translation\x20happens\x20in\x20the\x20caller,\x20never\x20in\x20keyword\x20tables):\x20produce\x20a\x20semantic_ir\x20carrying\x20discovery.english_summary\x20(an\x20English\x20restatement\x20of\x20the\x20intent),\x20discovery.tags\x20(each\x20from\x20template_list.discovery_vocabulary)\x20and\x20discovery.product_ref\x20(a\x20benchmark-product\x20slug),\x20with\x20every\x20evidence\x20quote\x20verbatim\x20in\x20the\x20description\x20—\x20then\x20re-run\x20migration_plan.\x20Only\x20call\x20action=\x27migration_apply\x27\x20with\x20template_id=\x27'+aZ+'\x27\x20after\x20the\x20user\x20approves\x20THAT\x20template.'+b8:'Surface\x20the\x20'+aW['length']+'\x20unmapped\x20and\x20'+aX['length']+'\x20manual_review\x20items'+(aY['passed']===!![]?'':'\x20plus\x20the\x20risk_check\x20findings')+'\x20to\x20the\x20user\x20for\x20a\x20decision\x20before\x20action=\x27migration_apply\x27\x20(template_id=\x27'+aZ+'\x27).'+b8};break;}case'migration_apply':{const ba=requireTemplate(b['template_id'],'migration_apply'),bb=scanTemplate(ba);assertScanPassed(bb,'migration_apply');const bc=b['network']??'testnet',bd=await runGuide(ba,b['description'],b['fee_overrides'],b['guard_resolutions'],{'review_mode':b['review_mode'],'reward_funding':b['reward_funding'],'reward_claim_amount':b['reward_claim_amount'],'experience_compensation_mode':b['experience_compensation_mode'],'experience_pool_funding':b['experience_pool_funding']??b['fee_overrides']?.['experience_pool_funding'],'compensation_fund':b['compensation_fund'],'after_sales_mode':b['after_sales_mode'],'acceptance_mode':b['acceptance_mode'],'installment_mode':b['installment_mode'],'affiliate_mode':b['affiliate_mode'],'crowdfunding_mode':b['crowdfunding_mode']},b['sales'],d?.['ir']);f=((()=>{const be=scanSummary(bb,driftFace(ba['id'])),bf=staleBuildFace(),bg=buildVerdict(be,bd,undefined,bf),bh=wipAnchorFace(b['sales']);return{'action':'migration_apply','template_id':ba['id'],'network':bc,...e,'scan':be,'plan':bd,'verdict':bg,...bh?{'wip_anchor':bh}:{},'next_action':planNextAction(bd,'migration_apply',bg,bf)};})());break;}default:throw new Error('Unknown\x20benchmark_migration_operation\x20action:\x20'+String(b['action']));}return{'content':[{'type':'text','text':JSON['stringify']({'result':f})}],'structuredContent':{'result':f}};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{listServices,getServiceInfo,toggle as a542a,setEnabled as a542b,reset as a542c}from'../../config/index.js';import{judgmentStatus,setJudgmentOverride,clearJudgmentOverride,clearJudgmentOverrides,patchUserJudgmentDoc,readUserJudgmentDocView}from'../../config/judgment.js';import{getStoreDualPayoutPolicy,setStoreDualPayoutPreauthorization,clearStoreDualPayoutPreauthorization}from'../../config/store-policy.js';import{getMatchPolicyFile,patchMatchPolicyFile,clearMatchPolicyFile}from'../../config/match-policy-file.js';import{getTemplateParamFileState,patchTemplateParamFile,clearTemplateParamFile}from'../../config/template-params.js';import{strictParse}from'../../schema/index.js';import{ConfigOperationInputSchema}from'../../schema/config/index.js';import{LocalMark}from'@wowok/wowok';async function resolvePolicyAccount(a){const b=a['trim']();if(/^0x[0-9a-fA-F]{64}$/['test'](b))return b['toLowerCase']();try{const c=await LocalMark['Instance']()['get_address'](b)['catch'](()=>undefined)??undefined;if(typeof c==='string'&&/^0x[0-9a-fA-F]{64}$/['test'](c))return c['toLowerCase']();}catch{}return b['toLowerCase']();}export async function handleConfigOperation(a){const b=strictParse(ConfigOperationInputSchema,a,'config_operation\x20input'),{action:c,service:d,path:e,value:f}=b;let g;switch(c){case'list':g={'action':'list','services':listServices()};break;case'toggle':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20toggle');const h=d,i=getServiceInfo(h);if(!i)throw new Error('Unknown\x20service:\x20'+h+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(h==='confirm_gate'&&i['enabled'])throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');const j=a542a(h);g={'action':'toggle','service':h,'enabled':j,'reminder':i['reminder']};break;}case'disable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20disable');const k=d,l=getServiceInfo(k);if(!l)throw new Error('Unknown\x20service:\x20'+k+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(k==='confirm_gate')throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');a542b(k,![]),g={'action':'disable','service':k,'enabled':![],'reminder':l['reminder']};break;}case'enable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20enable');const m=d,n=getServiceInfo(m);if(!n)throw new Error('Unknown\x20service:\x20'+m+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a542b(m,!![]),g={'action':'enable','service':m,'enabled':!![],'reminder':n['reminder']};break;}case'reset':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20reset');const o=d,p=getServiceInfo(o);if(!p)throw new Error('Unknown\x20service:\x20'+o+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a542c(o),g={'action':'reset','service':o,'enabled':getServiceInfo(o)?.['enabled'],'reminder':p['reminder'],'reset':!![]};break;}case'info':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20info');const q=d,r=getServiceInfo(q);if(!r)throw new Error('Unknown\x20service:\x20'+q+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');g={'action':'info',...r};break;}case'judgment_list':g={'action':'judgment_list',...judgmentStatus()};break;case'judgment_set':{if(!e)throw new Error('\x27path\x27\x20param\x20is\x20required\x20for\x20judgment_set\x20(dotted,\x20e.g.\x20\x27evaluation.weights.trust_reviews\x27)');if(!('value'in b))throw new Error('\x27value\x27\x20param\x20is\x20required\x20for\x20judgment_set');const t=setJudgmentOverride(e,f);if(!t['ok'])throw new Error(t['error']);g={'action':'judgment_set','path':e,'value':f,'applied':!![]};break;}case'judgment_reset':{const u=e?clearJudgmentOverride(e)?0x1:0x0:clearJudgmentOverrides();g={'action':'judgment_reset',...e?{'path':e}:{},'cleared':u};break;}case'judgment_doc_read':{g={'action':'judgment_doc_read',...readUserJudgmentDocView()};break;}case'judgment_doc_patch':{if(b['confirm']!==!![])throw new Error('judgment_doc_patch\x20writes\x20the\x20PERSISTENT\x20user\x20judgment\x20document\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20paths\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20judgment_doc_patch\x20(a\x20partial\x20judgment\x20document\x20object,\x20e.g.\x20{\x22evaluation\x22:\x20{\x22weights\x22:\x20{…}}})');g={'action':'judgment_doc_patch',...patchUserJudgmentDoc(b['patch'])};break;}case'match_policy_read':{g={'action':'match_policy_read',...getMatchPolicyFile()};break;}case'match_policy_patch':{if(b['confirm']!==!![])throw new Error('match_policy_patch\x20writes\x20the\x20PERSISTENT\x20match-policy.json\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20values\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20match_policy_patch\x20(e.g.\x20{\x22demand_to_supply\x22:\x20{\x22policy_id\x22:\x20\x22my_style\x22,\x20…}})');g={'action':'match_policy_patch',...patchMatchPolicyFile(b['patch'])};break;}case'match_policy_clear':{if(b['confirm']!==!![])throw new Error('match_policy_clear\x20removes\x20PERSISTENT\x20match-strategy\x20config\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20state\x20exactly\x20what\x20is\x20removed\x20(whole\x20file\x20vs\x20one\x20direction),\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20the\x20user\x20approves.');const v=clearMatchPolicyFile(b['direction']);g={'action':'match_policy_clear','cleared':v['cleared'],'path':v['path'],'scope':v['scope'],'backup_path':v['backup_path']};break;}case'template_params_read':{const w=getTemplateParamFileState();g={'action':'template_params_read','path':w['path'],'exists':w['exists'],'error':w['error'],...w['comment']!==undefined?{'comment':w['comment']}:{},...w['defaults']!==undefined?{'defaults':w['defaults']}:{},...w['templates']!==undefined?{'templates':w['templates']}:{}};break;}case'template_params_patch':{if(b['confirm']!==!![])throw new Error('template_params_patch\x20writes\x20the\x20PERSISTENT\x20template-params.json\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20fee\x20params\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20template_params_patch\x20(e.g.\x20{\x22defaults\x22:\x20{\x22review_window_days\x22:\x207},\x20\x22templates\x22:\x20{\x22travel/global-ota\x22:\x20{\x22escrow_release_days\x22:\x203}}})');g={'action':'template_params_patch',...patchTemplateParamFile(b['patch'])};break;}case'template_params_clear':{if(b['confirm']!==!![])throw new Error('template_params_clear\x20removes\x20PERSISTENT\x20template\x20business-parameter\x20config\x20and\x20requires\x20explicit\x20'+'human\x20confirmation:\x20state\x20exactly\x20what\x20is\x20removed\x20(whole\x20file\x20/\x20defaults\x20/\x20one\x20template\x20section),\x20'+'then\x20set\x20confirm=true\x20only\x20after\x20the\x20user\x20approves.');const x=clearTemplateParamFile(b['template']);g={'action':'template_params_clear','cleared':x['cleared'],'path':x['path'],'scope':x['scope'],...x['template_id']!==undefined?{'template_id':x['template_id']}:{},'backup_path':x['backup_path']};break;}case'store_dual_payout_get':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_get\x20(the\x20store\x27s\x20signing\x20account)');const y=await resolvePolicyAccount(b['account']),z=getStoreDualPayoutPolicy(y);g={'action':'store_dual_payout_get','account':b['account'],'preauthorized':z?.['preauthorized']===!![],...z?.['authorized_at']?{'authorized_at':z['authorized_at']}:{},...z?.['note']?{'note':z['note']}:{},...z?.['network']?{'network':z['network']}:{}};break;}case'store_dual_payout_set':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_set\x20(the\x20store\x27s\x20signing\x20account)');const A=await resolvePolicyAccount(b['account']),B=setStoreDualPayoutPreauthorization(A,{'confirm':b['confirm']===!![],...b['note']?{'note':b['note']}:{}});g={'action':'store_dual_payout_set','account':b['account'],'preauthorized':!![],'authorized_at':B['authorized_at'],...B['note']?{'note':B['note']}:{},'reminder':'Recorded\x20as\x20a\x20HUMAN\x20merchant\x20decision\x20(D-1).\x20The\x20allocation\x20gate\x20now\x20honors\x20acknowledge_dual_payout\x20'+'for\x20this\x20store.\x20Keep\x20the\x20note\x20meaningful\x20—\x20this\x20is\x20the\x20audit\x20trail\x20for\x20a\x20standing\x20commercial\x20netting\x20policy.'};break;}case'store_dual_payout_clear':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_clear\x20(the\x20store\x27s\x20signing\x20account)');const C=await resolvePolicyAccount(b['account']),D=clearStoreDualPayoutPreauthorization(C);g={'action':'store_dual_payout_clear','account':b['account'],'cleared':D};break;}default:throw new Error('Unknown\x20config_operation\x20action:\x20'+String(c));}return{'content':[{'type':'text','text':JSON['stringify']({'result':g})}],'structuredContent':{'result':g}};}
|
|
1
|
+
import{listServices,getServiceInfo,toggle as a552a,setEnabled as a552b,reset as a552c}from'../../config/index.js';import{judgmentStatus,setJudgmentOverride,clearJudgmentOverride,clearJudgmentOverrides,patchUserJudgmentDoc,readUserJudgmentDocView}from'../../config/judgment.js';import{getStoreDualPayoutPolicy,setStoreDualPayoutPreauthorization,clearStoreDualPayoutPreauthorization}from'../../config/store-policy.js';import{getMatchPolicyFile,patchMatchPolicyFile,clearMatchPolicyFile}from'../../config/match-policy-file.js';import{getTemplateParamFileState,patchTemplateParamFile,clearTemplateParamFile}from'../../config/template-params.js';import{strictParse}from'../../schema/index.js';import{ConfigOperationInputSchema}from'../../schema/config/index.js';import{LocalMark}from'@wowok/wowok';async function resolvePolicyAccount(a){const b=a['trim']();if(/^0x[0-9a-fA-F]{64}$/['test'](b))return b['toLowerCase']();try{const c=await LocalMark['Instance']()['get_address'](b)['catch'](()=>undefined)??undefined;if(typeof c==='string'&&/^0x[0-9a-fA-F]{64}$/['test'](c))return c['toLowerCase']();}catch{}return b['toLowerCase']();}export async function handleConfigOperation(a){const b=strictParse(ConfigOperationInputSchema,a,'config_operation\x20input'),{action:c,service:d,path:e,value:f}=b;let g;switch(c){case'list':g={'action':'list','services':listServices()};break;case'toggle':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20toggle');const h=d,i=getServiceInfo(h);if(!i)throw new Error('Unknown\x20service:\x20'+h+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(h==='confirm_gate'&&i['enabled'])throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');const j=a552a(h);g={'action':'toggle','service':h,'enabled':j,'reminder':i['reminder']};break;}case'disable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20disable');const k=d,l=getServiceInfo(k);if(!l)throw new Error('Unknown\x20service:\x20'+k+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');if(k==='confirm_gate')throw new Error('confirm_gate\x20cannot\x20be\x20disabled\x20at\x20runtime.\x20'+'Set\x20WOWOK_CONFIRM_GATE=0\x20in\x20the\x20server\x20environment\x20and\x20restart\x20if\x20you\x20really\x20want\x20it\x20off.');a552b(k,![]),g={'action':'disable','service':k,'enabled':![],'reminder':l['reminder']};break;}case'enable':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20enable');const m=d,n=getServiceInfo(m);if(!n)throw new Error('Unknown\x20service:\x20'+m+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a552b(m,!![]),g={'action':'enable','service':m,'enabled':!![],'reminder':n['reminder']};break;}case'reset':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20reset');const o=d,p=getServiceInfo(o);if(!p)throw new Error('Unknown\x20service:\x20'+o+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');a552c(o),g={'action':'reset','service':o,'enabled':getServiceInfo(o)?.['enabled'],'reminder':p['reminder'],'reset':!![]};break;}case'info':{if(!d)throw new Error('\x27service\x27\x20param\x20is\x20required\x20for\x20info');const q=d,r=getServiceInfo(q);if(!r)throw new Error('Unknown\x20service:\x20'+q+'.\x20Use\x20action=\x27list\x27\x20to\x20see\x20all\x20valid\x20services.');g={'action':'info',...r};break;}case'judgment_list':g={'action':'judgment_list',...judgmentStatus()};break;case'judgment_set':{if(!e)throw new Error('\x27path\x27\x20param\x20is\x20required\x20for\x20judgment_set\x20(dotted,\x20e.g.\x20\x27evaluation.weights.trust_reviews\x27)');if(!('value'in b))throw new Error('\x27value\x27\x20param\x20is\x20required\x20for\x20judgment_set');const t=setJudgmentOverride(e,f);if(!t['ok'])throw new Error(t['error']);g={'action':'judgment_set','path':e,'value':f,'applied':!![]};break;}case'judgment_reset':{const u=e?clearJudgmentOverride(e)?0x1:0x0:clearJudgmentOverrides();g={'action':'judgment_reset',...e?{'path':e}:{},'cleared':u};break;}case'judgment_doc_read':{g={'action':'judgment_doc_read',...readUserJudgmentDocView()};break;}case'judgment_doc_patch':{if(b['confirm']!==!![])throw new Error('judgment_doc_patch\x20writes\x20the\x20PERSISTENT\x20user\x20judgment\x20document\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20paths\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20judgment_doc_patch\x20(a\x20partial\x20judgment\x20document\x20object,\x20e.g.\x20{\x22evaluation\x22:\x20{\x22weights\x22:\x20{…}}})');g={'action':'judgment_doc_patch',...patchUserJudgmentDoc(b['patch'])};break;}case'match_policy_read':{g={'action':'match_policy_read',...getMatchPolicyFile()};break;}case'match_policy_patch':{if(b['confirm']!==!![])throw new Error('match_policy_patch\x20writes\x20the\x20PERSISTENT\x20match-policy.json\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20values\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20match_policy_patch\x20(e.g.\x20{\x22demand_to_supply\x22:\x20{\x22policy_id\x22:\x20\x22my_style\x22,\x20…}})');g={'action':'match_policy_patch',...patchMatchPolicyFile(b['patch'])};break;}case'match_policy_clear':{if(b['confirm']!==!![])throw new Error('match_policy_clear\x20removes\x20PERSISTENT\x20match-strategy\x20config\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20state\x20exactly\x20what\x20is\x20removed\x20(whole\x20file\x20vs\x20one\x20direction),\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20the\x20user\x20approves.');const v=clearMatchPolicyFile(b['direction']);g={'action':'match_policy_clear','cleared':v['cleared'],'path':v['path'],'scope':v['scope'],'backup_path':v['backup_path']};break;}case'template_params_read':{const w=getTemplateParamFileState();g={'action':'template_params_read','path':w['path'],'exists':w['exists'],'error':w['error'],...w['comment']!==undefined?{'comment':w['comment']}:{},...w['defaults']!==undefined?{'defaults':w['defaults']}:{},...w['templates']!==undefined?{'templates':w['templates']}:{}};break;}case'template_params_patch':{if(b['confirm']!==!![])throw new Error('template_params_patch\x20writes\x20the\x20PERSISTENT\x20template-params.json\x20and\x20requires\x20explicit\x20human\x20'+'confirmation:\x20show\x20the\x20user\x20exactly\x20which\x20fee\x20params\x20change\x20from\x20what\x20to\x20what,\x20then\x20set\x20'+'confirm=true\x20only\x20after\x20they\x20approve.\x20If\x20the\x20user\x20declined,\x20do\x20NOT\x20retry\x20the\x20same\x20patch.');if(!b['patch']||typeof b['patch']!=='object'||Array['isArray'](b['patch']))throw new Error('\x27patch\x27\x20param\x20is\x20required\x20for\x20template_params_patch\x20(e.g.\x20{\x22defaults\x22:\x20{\x22review_window_days\x22:\x207},\x20\x22templates\x22:\x20{\x22travel/global-ota\x22:\x20{\x22escrow_release_days\x22:\x203}}})');g={'action':'template_params_patch',...patchTemplateParamFile(b['patch'])};break;}case'template_params_clear':{if(b['confirm']!==!![])throw new Error('template_params_clear\x20removes\x20PERSISTENT\x20template\x20business-parameter\x20config\x20and\x20requires\x20explicit\x20'+'human\x20confirmation:\x20state\x20exactly\x20what\x20is\x20removed\x20(whole\x20file\x20/\x20defaults\x20/\x20one\x20template\x20section),\x20'+'then\x20set\x20confirm=true\x20only\x20after\x20the\x20user\x20approves.');const x=clearTemplateParamFile(b['template']);g={'action':'template_params_clear','cleared':x['cleared'],'path':x['path'],'scope':x['scope'],...x['template_id']!==undefined?{'template_id':x['template_id']}:{},'backup_path':x['backup_path']};break;}case'store_dual_payout_get':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_get\x20(the\x20store\x27s\x20signing\x20account)');const y=await resolvePolicyAccount(b['account']),z=getStoreDualPayoutPolicy(y);g={'action':'store_dual_payout_get','account':b['account'],'preauthorized':z?.['preauthorized']===!![],...z?.['authorized_at']?{'authorized_at':z['authorized_at']}:{},...z?.['note']?{'note':z['note']}:{},...z?.['network']?{'network':z['network']}:{}};break;}case'store_dual_payout_set':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_set\x20(the\x20store\x27s\x20signing\x20account)');const A=await resolvePolicyAccount(b['account']),B=setStoreDualPayoutPreauthorization(A,{'confirm':b['confirm']===!![],...b['note']?{'note':b['note']}:{}});g={'action':'store_dual_payout_set','account':b['account'],'preauthorized':!![],'authorized_at':B['authorized_at'],...B['note']?{'note':B['note']}:{},'reminder':'Recorded\x20as\x20a\x20HUMAN\x20merchant\x20decision\x20(D-1).\x20The\x20allocation\x20gate\x20now\x20honors\x20acknowledge_dual_payout\x20'+'for\x20this\x20store.\x20Keep\x20the\x20note\x20meaningful\x20—\x20this\x20is\x20the\x20audit\x20trail\x20for\x20a\x20standing\x20commercial\x20netting\x20policy.'};break;}case'store_dual_payout_clear':{if(!b['account'])throw new Error('\x27account\x27\x20param\x20is\x20required\x20for\x20store_dual_payout_clear\x20(the\x20store\x27s\x20signing\x20account)');const C=await resolvePolicyAccount(b['account']),D=clearStoreDualPayoutPreauthorization(C);g={'action':'store_dual_payout_clear','account':b['account'],'cleared':D};break;}default:throw new Error('Unknown\x20config_operation\x20action:\x20'+String(c));}return{'content':[{'type':'text','text':JSON['stringify']({'result':g})}],'structuredContent':{'result':g}};}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type ParsedMachineNode, type ParsedForward } from "../../graph/onchain/sdk-batch.js";
|
|
2
|
+
export interface EntryEdgeRef {
|
|
3
|
+
forward: ParsedForward;
|
|
4
|
+
target: string;
|
|
5
|
+
threshold: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function findEntryEdges(nodes: ParsedMachineNode[] | undefined | null): EntryEdgeRef[];
|
|
8
|
+
export interface EntrySlotRequirement {
|
|
9
|
+
identifier: number;
|
|
10
|
+
value_type: string;
|
|
11
|
+
name?: string;
|
|
12
|
+
suggestion: string;
|
|
13
|
+
autofillable: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function entrySlotSuggestion(slot: {
|
|
16
|
+
identifier: number;
|
|
17
|
+
value_type?: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
}, orderAddress?: string): string;
|
|
20
|
+
export declare function entryGuardSlotRequirements(json: {
|
|
21
|
+
table?: unknown;
|
|
22
|
+
} | undefined | null, orderAddress?: string): EntrySlotRequirement[];
|
|
23
|
+
export declare function guardTimeAnchors(root: unknown): string[];
|
|
24
|
+
export type EntryFirePlan = {
|
|
25
|
+
kind: "open";
|
|
26
|
+
edge: EntryEdgeRef;
|
|
27
|
+
} | {
|
|
28
|
+
kind: "signature_guard";
|
|
29
|
+
edge: EntryEdgeRef;
|
|
30
|
+
guard: string;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "recipe";
|
|
33
|
+
edges: EntryEdgeRef[];
|
|
34
|
+
reports: EntryGuardReport[];
|
|
35
|
+
reason: string;
|
|
36
|
+
};
|
|
37
|
+
export interface EntryGuardReport {
|
|
38
|
+
edge: EntryEdgeRef;
|
|
39
|
+
guard?: string;
|
|
40
|
+
guard_name?: string;
|
|
41
|
+
slots: EntrySlotRequirement[];
|
|
42
|
+
time_anchors: string[];
|
|
43
|
+
unreadable?: boolean;
|
|
44
|
+
has_rely?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export declare function classifyEntryFire(edges: EntryEdgeRef[], reports: EntryGuardReport[]): EntryFirePlan;
|
|
47
|
+
export interface EntryEdgeRecipeStructured {
|
|
48
|
+
status: "pending" | "fired";
|
|
49
|
+
fired_via?: "open" | "signature_guard";
|
|
50
|
+
machine: string;
|
|
51
|
+
progress: string;
|
|
52
|
+
order: string;
|
|
53
|
+
forward: string;
|
|
54
|
+
target_node: string;
|
|
55
|
+
threshold?: number;
|
|
56
|
+
guard?: string;
|
|
57
|
+
guard_slots: Array<Pick<EntrySlotRequirement, "identifier" | "value_type" | "name" | "suggestion" | "autofillable">>;
|
|
58
|
+
time_anchors?: string[];
|
|
59
|
+
forward_call_template: string;
|
|
60
|
+
submission_envelope_template?: string;
|
|
61
|
+
note?: string;
|
|
62
|
+
}
|
|
63
|
+
export declare function buildForwardCallTemplate(progressAddr: string, orderAddr: string, forward: string, target: string): string;
|
|
64
|
+
export declare function buildSubmissionEnvelopeTemplate(guardAddr: string, slots: EntrySlotRequirement[], orderAddress?: string): string;
|
|
65
|
+
export declare function buildEntryEdgePendingRecipe(opts: {
|
|
66
|
+
machineAddr: string;
|
|
67
|
+
progressAddr: string;
|
|
68
|
+
orderAddr: string;
|
|
69
|
+
edges: EntryEdgeRef[];
|
|
70
|
+
reports: EntryGuardReport[];
|
|
71
|
+
reason: string;
|
|
72
|
+
}): {
|
|
73
|
+
note: string;
|
|
74
|
+
structured: EntryEdgeRecipeStructured;
|
|
75
|
+
};
|
|
76
|
+
export interface OrderEntryContext {
|
|
77
|
+
orderAddr: string;
|
|
78
|
+
progressAddr: string;
|
|
79
|
+
machineAddr: string;
|
|
80
|
+
edges: EntryEdgeRef[];
|
|
81
|
+
nodes: ParsedMachineNode[];
|
|
82
|
+
}
|
|
83
|
+
export declare function resolveOrderEntryContext(orderRef: string, network?: string): Promise<OrderEntryContext | undefined>;
|
|
84
|
+
export declare function readEntryGuardReports(edges: EntryEdgeRef[], orderAddr: string, network?: string): Promise<EntryGuardReport[]>;
|
|
85
|
+
export declare function fireEntryEdgeForward(plan: Extract<EntryFirePlan, {
|
|
86
|
+
kind: "open" | "signature_guard";
|
|
87
|
+
}>, ctx: {
|
|
88
|
+
progressAddr: string;
|
|
89
|
+
orderAddr: string;
|
|
90
|
+
env: any;
|
|
91
|
+
}): Promise<{
|
|
92
|
+
ok: boolean;
|
|
93
|
+
digest?: string;
|
|
94
|
+
error?: string;
|
|
95
|
+
} | undefined>;
|
|
96
|
+
export declare function entryEdgeStepAfterOrderNew(orderRef: string, env: any): Promise<{
|
|
97
|
+
note: string;
|
|
98
|
+
structured: EntryEdgeRecipeStructured;
|
|
99
|
+
} | undefined>;
|
|
100
|
+
export declare function entryEdgeTimeAnchorAdvisory(reports: EntryGuardReport[]): string | undefined;
|
|
101
|
+
export declare function entryEdgePublishAdvisory(machineAddr: string, network?: string): Promise<string | undefined>;
|