@wowok/agent-mcp 3.4.3 → 3.4.4
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 +3 -3
- package/dist/build-stamp.js +1 -0
- package/dist/chain-semantics/composition-truth.js +1 -1
- package/dist/chain-semantics/eval-order.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/object-graph.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/emit-phases.js +1 -1
- package/dist/composition/generate.js +1 -1
- package/dist/composition/guard-fill.js +1 -1
- package/dist/composition/input-normalize.js +1 -1
- package/dist/composition/materialize.js +1 -1
- package/dist/composition/mode-gates.js +1 -1
- package/dist/composition/plan.js +1 -1
- package/dist/composition/product-card.js +1 -1
- package/dist/composition/shape-expand.js +1 -0
- package/dist/config/judgment.js +1 -1
- package/dist/config/template-params.js +1 -1
- package/dist/data/sync/cdc.js +1 -1
- package/dist/data/sync/graphql-source.js +1 -1
- package/dist/evaluation/engine.js +1 -1
- package/dist/experience/realtime-feedback.js +1 -1
- package/dist/graph/onchain/expand.js +1 -1
- package/dist/graph/onchain/exposure.js +1 -1
- package/dist/graph/onchain/sdk-batch.js +1 -1
- package/dist/harness/entry-ignite-selfheal.js +1 -0
- package/dist/harness/forward-leg-preflight.js +1 -0
- package/dist/harness/recover.js +1 -1
- package/dist/keeper/detectors.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.js +1 -1
- package/dist/knowledge/arb-operation-face.js +1 -0
- package/dist/knowledge/arbitration-rail-verifier.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +15 -0
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json.good +310 -0
- package/dist/knowledge/baselines/rules/allocation.json.good +568 -0
- package/dist/knowledge/baselines/rules/arb.json.good +174 -0
- package/dist/knowledge/baselines/rules/arbitration.json.good +393 -0
- package/dist/knowledge/baselines/rules/bridge.json.good +197 -0
- package/dist/knowledge/baselines/rules/contact.json.good +152 -0
- package/dist/knowledge/baselines/rules/demand.json.good +158 -0
- package/dist/knowledge/baselines/rules/graph.json.good +534 -0
- package/dist/knowledge/baselines/rules/guard.json +18 -5
- package/dist/knowledge/baselines/rules/guard.json.good +1192 -0
- package/dist/knowledge/baselines/rules/machine.json.good +734 -0
- package/dist/knowledge/baselines/rules/oracle.json +1 -1
- package/dist/knowledge/baselines/rules/oracle.json.good +120 -0
- package/dist/knowledge/baselines/rules/order.json.good +549 -0
- package/dist/knowledge/baselines/rules/payment.json.good +205 -0
- package/dist/knowledge/baselines/rules/permission.json.good +330 -0
- package/dist/knowledge/baselines/rules/personal.json.good +139 -0
- package/dist/knowledge/baselines/rules/plan.json +343 -1
- package/dist/knowledge/baselines/rules/plan.json.good +1187 -0
- package/dist/knowledge/baselines/rules/progress.json.good +364 -0
- package/dist/knowledge/baselines/rules/proof.json.good +158 -0
- package/dist/knowledge/baselines/rules/registrar.json.good +159 -0
- package/dist/knowledge/baselines/rules/repository.json.good +244 -0
- package/dist/knowledge/baselines/rules/resource.json.good +117 -0
- package/dist/knowledge/baselines/rules/reward.json +10 -10
- package/dist/knowledge/baselines/rules/reward.json.good +586 -0
- package/dist/knowledge/baselines/rules/service.json.good +595 -0
- package/dist/knowledge/baselines/rules/treasury.json.good +440 -0
- package/dist/knowledge/baselines/rules/util.json.good +101 -0
- package/dist/knowledge/builtin-templates.d.ts +13 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/chain-query-registry.js +1 -1
- package/dist/knowledge/discount-threshold.js +1 -1
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/fund-layer.d.ts +2 -0
- package/dist/knowledge/fund-layer.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.js +1 -1
- package/dist/knowledge/guard-create-preflight.js +1 -0
- package/dist/knowledge/guard-field-cognition.js +1 -1
- package/dist/knowledge/guard-host-context.js +1 -1
- package/dist/knowledge/guard-leg-eval.js +1 -0
- package/dist/knowledge/guard-node-gates.js +1 -1
- package/dist/knowledge/guard-puzzle.js +1 -1
- package/dist/knowledge/guard-quality.js +1 -0
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-semantic-walk.js +1 -0
- package/dist/knowledge/guard-templates.d.ts +1 -0
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/guard-translation.js +1 -1
- 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/param-schema.js +1 -1
- package/dist/knowledge/param-tiers.js +1 -1
- package/dist/knowledge/path-oracle/coverage.js +1 -1
- package/dist/knowledge/path-oracle/index.js +1 -1
- package/dist/knowledge/path-oracle/products/airbnb.js +1 -0
- package/dist/knowledge/path-oracle/products/algora.js +1 -0
- package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -0
- package/dist/knowledge/path-oracle/products/amazon.js +1 -0
- package/dist/knowledge/path-oracle/products/beatstars.js +1 -0
- package/dist/knowledge/path-oracle/products/booking-com.js +1 -0
- package/dist/knowledge/path-oracle/products/contra.js +1 -0
- package/dist/knowledge/path-oracle/products/costco.js +1 -0
- package/dist/knowledge/path-oracle/products/coursera.js +1 -0
- package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -0
- package/dist/knowledge/path-oracle/products/etsy.js +1 -0
- package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
- package/dist/knowledge/path-oracle/products/gamefound.js +1 -0
- package/dist/knowledge/path-oracle/products/gofundme.js +1 -0
- package/dist/knowledge/path-oracle/products/hackerone.js +1 -0
- package/dist/knowledge/path-oracle/products/kickstarter.js +1 -0
- package/dist/knowledge/path-oracle/products/klook.js +1 -0
- package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -0
- package/dist/knowledge/path-oracle/products/onlyfans.js +1 -0
- package/dist/knowledge/path-oracle/products/patreon.js +1 -0
- package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -0
- package/dist/knowledge/path-oracle/products/royalty-exchange.js +1 -0
- package/dist/knowledge/path-oracle/products/shansong.js +1 -0
- package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -0
- package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -0
- package/dist/knowledge/path-oracle/products/upwork.js +1 -0
- package/dist/knowledge/path-oracle/products/yuanfudao.js +1 -0
- package/dist/knowledge/path-oracle/products/ziroom.js +1 -0
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/product-detail-source.js +1 -1
- package/dist/knowledge/product-doc-b5.js +1 -1
- package/dist/knowledge/product-doc-facets.js +1 -0
- package/dist/knowledge/projection.js +1 -1
- package/dist/knowledge/publish-gate.js +1 -1
- package/dist/knowledge/publish-surface-contract.js +1 -1
- package/dist/knowledge/recipient-constraint.d.ts +20 -0
- package/dist/knowledge/recipient-constraint.js +1 -1
- package/dist/knowledge/rule-declaration-types.d.ts +13 -0
- package/dist/knowledge/rule-declaration-types.js +1 -0
- package/dist/knowledge/rule-declarations.js +1 -0
- package/dist/knowledge/scenario-modes.d.ts +6 -0
- package/dist/knowledge/scenario-topology.js +1 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-prose.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/monitor/MonitorLoop.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.js +1 -1
- 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/service.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +9 -0
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/arbitration.d.ts +8 -0
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +8 -0
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +2 -0
- package/dist/schema/call/error-codes.d.ts +1 -1
- package/dist/schema/call/error-codes.js +1 -1
- package/dist/schema/call/handler.d.ts +2 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/order.d.ts +10 -0
- package/dist/schema/call/permission-handler.js +1 -1
- package/dist/schema/call/permission.js +1 -1
- package/dist/schema/call/progress.d.ts +15 -0
- package/dist/schema/call/progress.js +1 -1
- package/dist/schema/call/receipt.d.ts +1 -0
- package/dist/schema/call/receipt.js +1 -1
- package/dist/schema/call/repository.d.ts +12 -0
- package/dist/schema/call/repository.js +1 -1
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.d.ts +1 -0
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +5 -3
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/envelope-unify.js +1 -1
- package/dist/schema/goal/index.d.ts +23 -0
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +2 -2
- package/dist/schema/local/index.d.ts +20 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/local/wip.d.ts +4 -0
- package/dist/schema/local/wip.js +1 -1
- package/dist/schema/messenger/index.d.ts +5 -0
- package/dist/schema/messenger/index.js +1 -1
- package/dist/schema/operations.d.ts +944 -1
- package/dist/schema/operations.js +1 -1
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +5 -5
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema/workspace/index.d.ts +2 -2
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.schema.json +1 -257
- package/dist/schemas/ask_user.schema.json +1 -78
- package/dist/schemas/benchmark_migration_operation.schema.json +1 -626
- package/dist/schemas/bridge_operation.schema.json +1 -1069
- package/dist/schemas/config_operation.schema.json +1 -82
- package/dist/schemas/employee_operation.schema.json +1 -319
- package/dist/schemas/evaluation_operation.schema.json +1 -3932
- package/dist/schemas/goal_operation.schema.json +1 -1650
- package/dist/schemas/guard2file.schema.json +1 -137
- package/dist/schemas/index.json +1 -285
- package/dist/schemas/industry_pack_operation.schema.json +1 -582
- package/dist/schemas/intent_radar.schema.json +1 -155
- package/dist/schemas/keeper_operation.schema.json +1 -364
- package/dist/schemas/local_cache_operation.schema.json +1 -116
- package/dist/schemas/local_history_operation.schema.json +1 -105
- package/dist/schemas/local_info_operation.schema.json +1 -140
- package/dist/schemas/local_mark_operation.schema.json +1 -124
- package/dist/schemas/machineNode2file.schema.json +1 -137
- package/dist/schemas/messenger_operation.schema.json +1 -2068
- package/dist/schemas/monitor_events.schema.json +1 -87
- package/dist/schemas/monitor_subscription.schema.json +1 -327
- package/dist/schemas/onchain_events.schema.json +1 -207
- package/dist/schemas/onchain_operations.schema.json +1 -28699
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1376
- package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1355
- package/dist/schemas/onchain_operations_contact.schema.json +1 -988
- package/dist/schemas/onchain_operations_demand.schema.json +1 -1146
- package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -663
- package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -180
- package/dist/schemas/onchain_operations_guard.schema.json +1 -8518
- package/dist/schemas/onchain_operations_machine.schema.json +1 -1879
- package/dist/schemas/onchain_operations_order.schema.json +1 -1121
- package/dist/schemas/onchain_operations_payment.schema.json +1 -316
- package/dist/schemas/onchain_operations_permission.schema.json +1 -1036
- package/dist/schemas/onchain_operations_personal.schema.json +1 -1463
- package/dist/schemas/onchain_operations_progress.schema.json +1 -1041
- package/dist/schemas/onchain_operations_proof.schema.json +1 -750
- package/dist/schemas/onchain_operations_repository.schema.json +1 -2046
- package/dist/schemas/onchain_operations_reward.schema.json +1 -1286
- package/dist/schemas/onchain_operations_service.schema.json +1 -2602
- package/dist/schemas/onchain_operations_treasury.schema.json +1 -1527
- package/dist/schemas/onchain_table_data.schema.json +1 -1146
- package/dist/schemas/permission_operation.schema.json +1 -43
- package/dist/schemas/persona_operation.schema.json +1 -10424
- package/dist/schemas/query_toolkit.schema.json +1 -1867
- package/dist/schemas/schema_query.schema.json +1 -116
- package/dist/schemas/service_clone_operation.schema.json +1 -49
- package/dist/schemas/settle_sweep.schema.json +1 -0
- package/dist/schemas/strategy_review_operation.schema.json +1 -66
- package/dist/schemas/verify_guard_dry_run.schema.json +1 -0
- package/dist/schemas/watch_operation.schema.json +1 -145
- package/dist/schemas/wip_file.schema.json +1 -299
- package/dist/schemas/workflow_operation.schema.json +1 -722
- package/dist/schemas/workspace_operation.schema.json +1 -104
- package/dist/schemas/wowok_buildin_info.schema.json +1 -758
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/entry-edge-recipe.js +1 -1
- package/dist/tools/handlers/file-export.js +1 -1
- package/dist/tools/handlers/local.js +1 -1
- package/dist/tools/handlers/messenger.js +1 -1
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/pending-settlement-recipe.js +1 -0
- package/dist/tools/handlers/plan-recovery.js +1 -0
- package/dist/tools/handlers/query.js +1 -1
- package/dist/tools/handlers/repository-row-id.js +1 -0
- package/dist/tools/handlers/review-chain.js +1 -1
- package/dist/tools/handlers/settle-sweep.js +1 -0
- package/dist/tools/handlers/stale-build-check.js +1 -1
- package/dist/tools/handlers/submission-assembly.js +1 -1
- package/dist/tools/handlers/verify-guard-dry-run.js +1 -0
- package/dist/tools/handlers/wip-upload.js +1 -1
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/move-fn-index.gen.js +1 -1
- package/dist/tools/publish-gate-state.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/onchain.js +1 -1
- package/dist/tools/shared.js +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +11 -4
- package/dist/chain-semantics/composition-truth.d.ts +0 -102
- package/dist/chain-semantics/eval-order.d.ts +0 -17
- package/dist/chain-semantics/field-capability.d.ts +0 -11
- package/dist/chain-semantics/freeze-map.d.ts +0 -11
- package/dist/chain-semantics/fund-flow.d.ts +0 -10
- package/dist/chain-semantics/guard-verbs.d.ts +0 -22
- package/dist/chain-semantics/index.d.ts +0 -12
- package/dist/chain-semantics/object-graph.d.ts +0 -18
- package/dist/communication/evidence.d.ts +0 -6
- package/dist/communication/message-cursors.d.ts +0 -35
- package/dist/communication/proof-reuse.d.ts +0 -9
- package/dist/communication/wts-attestation.d.ts +0 -39
- package/dist/composition/audit.d.ts +0 -15
- package/dist/composition/blueprint-view.d.ts +0 -63
- package/dist/composition/compile.d.ts +0 -83
- package/dist/composition/emit-phases.d.ts +0 -234
- package/dist/composition/generate.d.ts +0 -40
- package/dist/composition/guard-fill.d.ts +0 -52
- package/dist/composition/inflight.d.ts +0 -86
- package/dist/composition/input-normalize.d.ts +0 -15
- package/dist/composition/materialize.d.ts +0 -78
- package/dist/composition/mode-gates.d.ts +0 -35
- package/dist/composition/param-disclosure.d.ts +0 -61
- package/dist/composition/plan-retry-ledger.d.ts +0 -37
- package/dist/composition/plan.d.ts +0 -121
- package/dist/composition/product-card.d.ts +0 -94
- package/dist/composition/reflux.d.ts +0 -28
- package/dist/composition/supply-chain-emit.d.ts +0 -46
- package/dist/config/config-audit.spec.d.ts +0 -1
- package/dist/config/config-audit.spec.js +0 -1
- package/dist/config/config-warnings.d.ts +0 -2
- package/dist/config/index.d.ts +0 -4
- package/dist/config/judgment.spec.d.ts +0 -1
- package/dist/config/judgment.spec.js +0 -1
- package/dist/config/match-policy-file.d.ts +0 -34
- package/dist/config/match-policy-file.spec.d.ts +0 -1
- package/dist/config/match-policy-file.spec.js +0 -1
- package/dist/config/rule-engine.spec.d.ts +0 -1
- package/dist/config/rule-engine.spec.js +0 -1
- package/dist/config/runtime.d.ts +0 -29
- package/dist/config/store-policy.d.ts +0 -14
- package/dist/config/store-policy.spec.d.ts +0 -1
- package/dist/config/store-policy.spec.js +0 -1
- package/dist/config/template-params.d.ts +0 -42
- package/dist/config/template-params.spec.d.ts +0 -1
- package/dist/config/template-params.spec.js +0 -1
- package/dist/customer/account-events.d.ts +0 -32
- package/dist/data/api/api.spec.d.ts +0 -1
- package/dist/data/api/api.spec.js +0 -1
- package/dist/data/api/cli.d.ts +0 -1
- package/dist/data/api/head.d.ts +0 -16
- package/dist/data/api/head.spec.d.ts +0 -1
- package/dist/data/api/head.spec.js +0 -1
- package/dist/data/api/index.d.ts +0 -2
- package/dist/data/api/match.d.ts +0 -69
- package/dist/data/api/match.spec.d.ts +0 -1
- package/dist/data/api/match.spec.js +0 -1
- package/dist/data/api/server.d.ts +0 -13
- package/dist/data/projection/cli.d.ts +0 -1
- package/dist/data/projection/edges.d.ts +0 -8
- package/dist/data/projection/edges.spec.d.ts +0 -1
- package/dist/data/projection/edges.spec.js +0 -1
- package/dist/data/projection/facets.d.ts +0 -18
- package/dist/data/projection/facets.spec.d.ts +0 -1
- package/dist/data/projection/facets.spec.js +0 -1
- package/dist/data/projection/facts.d.ts +0 -40
- package/dist/data/projection/index.d.ts +0 -6
- package/dist/data/projection/project.d.ts +0 -10
- package/dist/data/projection/projection.spec.d.ts +0 -1
- package/dist/data/projection/projection.spec.js +0 -1
- package/dist/data/projection/schema.d.ts +0 -1
- package/dist/data/projection/store.d.ts +0 -51
- package/dist/data/projection/types.d.ts +0 -169
- package/dist/data/sync/cdc.d.ts +0 -33
- package/dist/data/sync/cdc.spec.d.ts +0 -1
- package/dist/data/sync/cdc.spec.js +0 -1
- package/dist/data/sync/graphql-source.d.ts +0 -16
- package/dist/data/sync/index.d.ts +0 -5
- package/dist/data/sync/reconciler.d.ts +0 -14
- package/dist/data/sync/reconciler.spec.d.ts +0 -1
- package/dist/data/sync/reconciler.spec.js +0 -1
- package/dist/data/sync/schema.d.ts +0 -1
- package/dist/data/sync/store.d.ts +0 -24
- package/dist/data/sync/sync.spec.d.ts +0 -1
- package/dist/data/sync/sync.spec.js +0 -1
- package/dist/data/sync/synchronizer.d.ts +0 -10
- package/dist/data/sync/types.d.ts +0 -164
- package/dist/evaluation/acceptance.d.ts +0 -33
- package/dist/evaluation/architecture.spec.d.ts +0 -1
- package/dist/evaluation/architecture.spec.js +0 -1
- package/dist/evaluation/builtins/arbitration-score.d.ts +0 -42
- package/dist/evaluation/builtins/demand-match.d.ts +0 -16
- package/dist/evaluation/builtins/graph-service.spec.d.ts +0 -1
- package/dist/evaluation/builtins/graph-service.spec.js +0 -1
- package/dist/evaluation/builtins/index.d.ts +0 -4
- package/dist/evaluation/builtins/purity.spec.d.ts +0 -1
- package/dist/evaluation/builtins/purity.spec.js +0 -1
- package/dist/evaluation/composer.d.ts +0 -38
- package/dist/evaluation/facets/catalog.d.ts +0 -19
- package/dist/evaluation/gap.d.ts +0 -2
- package/dist/evaluation/guard-scan.d.ts +0 -10
- package/dist/evaluation/index.d.ts +0 -14
- package/dist/evaluation/injection.d.ts +0 -6
- package/dist/evaluation/location-match.d.ts +0 -42
- package/dist/evaluation/match-operation.d.ts +0 -23
- package/dist/evaluation/match-policy-resolver.d.ts +0 -9
- package/dist/evaluation/match-policy.spec.d.ts +0 -1
- package/dist/evaluation/match-policy.spec.js +0 -1
- package/dist/evaluation/path-reasoning.d.ts +0 -37
- package/dist/evaluation/standards.d.ts +0 -11
- package/dist/evaluation/standards.spec.d.ts +0 -1
- package/dist/evaluation/standards.spec.js +0 -1
- package/dist/evaluation/structured-lines.d.ts +0 -8
- package/dist/evaluation/user-injection.d.ts +0 -6
- package/dist/experience/experience-reuse.d.ts +0 -10
- package/dist/experience/index.d.ts +0 -7
- package/dist/experience/persistence-config.d.ts +0 -6
- package/dist/experience/persistence.d.ts +0 -21
- package/dist/experience/realtime-feedback.d.ts +0 -5
- package/dist/experience/user-profile.d.ts +0 -25
- package/dist/extensions/capability.d.ts +0 -91
- package/dist/extensions/industry-audit.spec.d.ts +0 -1
- package/dist/extensions/industry-audit.spec.js +0 -1
- package/dist/goal/GoalClassifier.d.ts +0 -17
- package/dist/goal/GoalEngine.d.ts +0 -175
- package/dist/goal/GoalStore.d.ts +0 -27
- package/dist/goal/next-steps.d.ts +0 -12
- package/dist/goal/plan-approval.d.ts +0 -5
- package/dist/goal/pursue.d.ts +0 -18
- package/dist/graph/base.d.ts +0 -8
- package/dist/graph/onchain/analyze.d.ts +0 -59
- package/dist/graph/onchain/analyze.spec.d.ts +0 -1
- package/dist/graph/onchain/analyze.spec.js +0 -1
- package/dist/graph/onchain/anti-cheat.d.ts +0 -69
- package/dist/graph/onchain/anti-cheat.spec.d.ts +0 -1
- package/dist/graph/onchain/anti-cheat.spec.js +0 -1
- package/dist/graph/onchain/dataplane.d.ts +0 -44
- package/dist/graph/onchain/edge-batch.spec.d.ts +0 -1
- package/dist/graph/onchain/edge-batch.spec.js +0 -1
- package/dist/graph/onchain/edge-schema.d.ts +0 -69
- package/dist/graph/onchain/entity-profile.spec.d.ts +0 -1
- package/dist/graph/onchain/entity-profile.spec.js +0 -1
- package/dist/graph/onchain/event-history.spec.d.ts +0 -1
- package/dist/graph/onchain/event-history.spec.js +0 -1
- package/dist/graph/onchain/expand.d.ts +0 -4
- package/dist/graph/onchain/exploration.d.ts +0 -28
- package/dist/graph/onchain/exploration.spec.d.ts +0 -1
- package/dist/graph/onchain/exploration.spec.js +0 -1
- package/dist/graph/onchain/exposure.d.ts +0 -18
- package/dist/graph/onchain/exposure.spec.d.ts +0 -1
- package/dist/graph/onchain/exposure.spec.js +0 -1
- package/dist/graph/onchain/extract-deep.spec.d.ts +0 -1
- package/dist/graph/onchain/extract-deep.spec.js +0 -1
- package/dist/graph/onchain/extract.d.ts +0 -29
- package/dist/graph/onchain/facet-projection.d.ts +0 -99
- package/dist/graph/onchain/facet-projection.spec.d.ts +0 -1
- package/dist/graph/onchain/facet-projection.spec.js +0 -1
- package/dist/graph/onchain/facts.spec.d.ts +0 -1
- package/dist/graph/onchain/facts.spec.js +0 -1
- package/dist/graph/onchain/field-manifest.d.ts +0 -29
- package/dist/graph/onchain/field-manifest.spec.d.ts +0 -1
- package/dist/graph/onchain/field-manifest.spec.js +0 -1
- package/dist/graph/onchain/fixtures.d.ts +0 -80
- package/dist/graph/onchain/fixtures.spec.d.ts +0 -1
- package/dist/graph/onchain/fixtures.spec.js +0 -1
- package/dist/graph/onchain/graph-policy.spec.d.ts +0 -1
- package/dist/graph/onchain/graph-policy.spec.js +0 -1
- package/dist/graph/onchain/index.d.ts +0 -29
- package/dist/graph/onchain/interest.d.ts +0 -10
- package/dist/graph/onchain/interest.spec.d.ts +0 -1
- package/dist/graph/onchain/interest.spec.js +0 -1
- package/dist/graph/onchain/label-lint.spec.d.ts +0 -1
- package/dist/graph/onchain/label-lint.spec.js +0 -1
- package/dist/graph/onchain/names.d.ts +0 -23
- package/dist/graph/onchain/names.spec.d.ts +0 -1
- package/dist/graph/onchain/names.spec.js +0 -1
- package/dist/graph/onchain/object-held-receipts.d.ts +0 -20
- package/dist/graph/onchain/object-held-receipts.spec.d.ts +0 -1
- package/dist/graph/onchain/object-held-receipts.spec.js +0 -1
- package/dist/graph/onchain/onchain.spec.d.ts +0 -1
- package/dist/graph/onchain/onchain.spec.js +0 -1
- package/dist/graph/onchain/policy.d.ts +0 -8
- package/dist/graph/onchain/project-relationship.d.ts +0 -3
- package/dist/graph/onchain/proposal-graph.d.ts +0 -11
- package/dist/graph/onchain/proposal-graph.spec.d.ts +0 -1
- package/dist/graph/onchain/proposal-graph.spec.js +0 -1
- package/dist/graph/onchain/sdk-batch.d.ts +0 -129
- package/dist/graph/onchain/sdk-dataplane.d.ts +0 -44
- package/dist/graph/onchain/strategy.spec.d.ts +0 -1
- package/dist/graph/onchain/strategy.spec.js +0 -1
- package/dist/graph/onchain/synthesis.d.ts +0 -20
- package/dist/graph/onchain/synthesis.spec.d.ts +0 -1
- package/dist/graph/onchain/synthesis.spec.js +0 -1
- package/dist/graph/onchain/table-ledger.spec.d.ts +0 -1
- package/dist/graph/onchain/table-ledger.spec.js +0 -1
- package/dist/graph/onchain/viewport.d.ts +0 -6
- package/dist/harness/auto-escalation.d.ts +0 -15
- package/dist/intent/enrich.d.ts +0 -1
- package/dist/intent/index.d.ts +0 -23
- package/dist/intent/matcher.d.ts +0 -2
- package/dist/intent/store.d.ts +0 -19
- package/dist/intent/types.d.ts +0 -32
- package/dist/keeper/KeeperScan.d.ts +0 -41
- package/dist/keeper/KeeperStore.d.ts +0 -43
- package/dist/keeper/detectors.d.ts +0 -42
- package/dist/keeper/keeper.spec.d.ts +0 -1
- package/dist/keeper/keeper.spec.js +0 -1
- package/dist/keeper/types.d.ts +0 -67
- package/dist/knowledge/account-marks.d.ts +0 -36
- package/dist/knowledge/allocation-ledger.d.ts +0 -75
- package/dist/knowledge/allocation-puzzle.d.ts +0 -138
- package/dist/knowledge/allocation-risk.d.ts +0 -82
- package/dist/knowledge/allocation-templates.d.ts +0 -38
- package/dist/knowledge/allocator-rail-verifier.d.ts +0 -59
- package/dist/knowledge/anti-cheat.d.ts +0 -2
- package/dist/knowledge/arb-fund-facts.d.ts +0 -51
- package/dist/knowledge/arb-risk.d.ts +0 -39
- package/dist/knowledge/arbitration-puzzle.d.ts +0 -84
- package/dist/knowledge/arbitration-rail-verifier.d.ts +0 -35
- package/dist/knowledge/arbitration-risk.d.ts +0 -114
- package/dist/knowledge/arbitration-templates.d.ts +0 -39
- package/dist/knowledge/arbitration-venue-order.d.ts +0 -25
- package/dist/knowledge/baselines/guard-lint-baseline.spec.d.ts +0 -1
- package/dist/knowledge/baselines/guard-lint-baseline.spec.js +0 -1
- package/dist/knowledge/baselines/risk-baselines.spec.d.ts +0 -1
- package/dist/knowledge/baselines/risk-baselines.spec.js +0 -1
- package/dist/knowledge/baselines/risk-cases.d.ts +0 -8
- package/dist/knowledge/baselines/semantic-facts.d.ts +0 -12
- package/dist/knowledge/bridge-risk.d.ts +0 -36
- package/dist/knowledge/catalog-facts.d.ts +0 -4
- package/dist/knowledge/chain-query-registry.d.ts +0 -14
- package/dist/knowledge/commission-landing.d.ts +0 -26
- package/dist/knowledge/component-schema.d.ts +0 -64
- package/dist/knowledge/contact-risk.d.ts +0 -32
- package/dist/knowledge/contact-templates.d.ts +0 -26
- package/dist/knowledge/contract-invariants.d.ts +0 -54
- package/dist/knowledge/demand-risk.d.ts +0 -30
- package/dist/knowledge/discount-threshold.d.ts +0 -26
- package/dist/knowledge/dynamic-pricing.d.ts +0 -29
- package/dist/knowledge/entity-recipient-guard.d.ts +0 -21
- package/dist/knowledge/event-semantics.d.ts +0 -23
- package/dist/knowledge/evidence-review.d.ts +0 -35
- package/dist/knowledge/fee-param-bindings.d.ts +0 -28
- package/dist/knowledge/flywheel-loop.d.ts +0 -41
- package/dist/knowledge/game-scenarios.d.ts +0 -21
- package/dist/knowledge/getting-started.d.ts +0 -37
- package/dist/knowledge/goal-completion.d.ts +0 -31
- package/dist/knowledge/guard-anchor-reach.d.ts +0 -19
- package/dist/knowledge/guard-binding-table.d.ts +0 -52
- package/dist/knowledge/guard-binding-verifier.d.ts +0 -37
- package/dist/knowledge/guard-bindings.d.ts +0 -21
- package/dist/knowledge/guard-blueprint.d.ts +0 -68
- package/dist/knowledge/guard-design-patterns.d.ts +0 -38
- package/dist/knowledge/guard-eval.d.ts +0 -15
- package/dist/knowledge/guard-field-cognition.d.ts +0 -48
- package/dist/knowledge/guard-host-context.d.ts +0 -24
- package/dist/knowledge/guard-ledger.d.ts +0 -19
- package/dist/knowledge/guard-leg-map.d.ts +0 -5
- package/dist/knowledge/guard-lint.d.ts +0 -79
- package/dist/knowledge/guard-node-gates.d.ts +0 -9
- package/dist/knowledge/guard-puzzle.d.ts +0 -188
- package/dist/knowledge/guard-render.d.ts +0 -71
- package/dist/knowledge/guard-risk.d.ts +0 -71
- package/dist/knowledge/guard-submission-brief.d.ts +0 -94
- package/dist/knowledge/guard-submission-prompt.d.ts +0 -63
- package/dist/knowledge/guard-translation.d.ts +0 -58
- package/dist/knowledge/index.d.ts +0 -299
- package/dist/knowledge/industry-evolution.d.ts +0 -82
- package/dist/knowledge/industry-generalizer.d.ts +0 -63
- package/dist/knowledge/industry-rule-node.d.ts +0 -7
- package/dist/knowledge/industry-strategy.d.ts +0 -91
- package/dist/knowledge/intent-metrics.d.ts +0 -43
- package/dist/knowledge/jsonrpc-enum.d.ts +0 -102
- package/dist/knowledge/knob-docs.d.ts +0 -5
- package/dist/knowledge/machine-fork-watch.d.ts +0 -9
- package/dist/knowledge/machine-ledger.d.ts +0 -42
- package/dist/knowledge/machine-puzzle.d.ts +0 -206
- package/dist/knowledge/machine-risk.d.ts +0 -72
- package/dist/knowledge/machine-templates.d.ts +0 -92
- package/dist/knowledge/machine-topology.d.ts +0 -116
- package/dist/knowledge/machine-translation.d.ts +0 -96
- package/dist/knowledge/market-metrics.d.ts +0 -34
- package/dist/knowledge/market-operations.d.ts +0 -46
- package/dist/knowledge/migration-preflight.d.ts +0 -27
- package/dist/knowledge/object-dependency.d.ts +0 -31
- package/dist/knowledge/operation-dictionary.d.ts +0 -18
- package/dist/knowledge/order-ledger.d.ts +0 -69
- package/dist/knowledge/order-puzzle.d.ts +0 -162
- package/dist/knowledge/order-risk.d.ts +0 -62
- package/dist/knowledge/order-templates.d.ts +0 -50
- package/dist/knowledge/param-schema.d.ts +0 -93
- package/dist/knowledge/param-tiers.d.ts +0 -27
- package/dist/knowledge/passport-ledger.d.ts +0 -60
- package/dist/knowledge/passport-templates.d.ts +0 -40
- package/dist/knowledge/path-oracle/coverage.d.ts +0 -16
- package/dist/knowledge/path-oracle/index.d.ts +0 -5
- package/dist/knowledge/path-oracle/products/food-delivery.d.ts +0 -2
- package/dist/knowledge/path-oracle/schema.d.ts +0 -188
- package/dist/knowledge/pattern-resolutions.d.ts +0 -110
- package/dist/knowledge/payment-risk.d.ts +0 -38
- package/dist/knowledge/payment-tracker.d.ts +0 -63
- package/dist/knowledge/permission-ledger.d.ts +0 -49
- package/dist/knowledge/permission-puzzle.d.ts +0 -122
- package/dist/knowledge/permission-risk.d.ts +0 -70
- package/dist/knowledge/permission-templates.d.ts +0 -38
- package/dist/knowledge/personal-risk.d.ts +0 -36
- package/dist/knowledge/product-detail-source.d.ts +0 -37
- package/dist/knowledge/product-doc-b5.d.ts +0 -16
- package/dist/knowledge/progress-ledger.d.ts +0 -63
- package/dist/knowledge/progress-puzzle.d.ts +0 -82
- package/dist/knowledge/progress-risk.d.ts +0 -75
- package/dist/knowledge/progress-templates.d.ts +0 -38
- package/dist/knowledge/projection.d.ts +0 -54
- package/dist/knowledge/projection.spec.d.ts +0 -1
- package/dist/knowledge/projection.spec.js +0 -1
- package/dist/knowledge/proof-risk.d.ts +0 -33
- package/dist/knowledge/protocol-facts.d.ts +0 -17
- package/dist/knowledge/publish-gate.d.ts +0 -20
- package/dist/knowledge/publish-readiness.d.ts +0 -25
- package/dist/knowledge/publish-surface-contract.d.ts +0 -16
- package/dist/knowledge/puzzle-projections.d.ts +0 -11
- package/dist/knowledge/rail-exit-satisfiability.d.ts +0 -25
- package/dist/knowledge/registrar-risk.d.ts +0 -34
- package/dist/knowledge/release-sentinel.d.ts +0 -12
- package/dist/knowledge/repository-risk.d.ts +0 -46
- package/dist/knowledge/repository-write-semantics.d.ts +0 -27
- package/dist/knowledge/reputation-rules.d.ts +0 -36
- package/dist/knowledge/requirement-families.d.ts +0 -13
- package/dist/knowledge/resource-risk.d.ts +0 -32
- package/dist/knowledge/reward-ledger.d.ts +0 -97
- package/dist/knowledge/reward-puzzle.d.ts +0 -98
- package/dist/knowledge/reward-risk.d.ts +0 -86
- package/dist/knowledge/reward-templates.d.ts +0 -25
- package/dist/knowledge/rule-node-analyzers.d.ts +0 -49
- package/dist/knowledge/rule-outcome.d.ts +0 -5
- package/dist/knowledge/scenario-topology.d.ts +0 -48
- package/dist/knowledge/semantic-ir.d.ts +0 -136
- package/dist/knowledge/service-allocation-semantics.d.ts +0 -36
- package/dist/knowledge/service-allocator-audit-node.d.ts +0 -3
- package/dist/knowledge/service-ledger.d.ts +0 -87
- package/dist/knowledge/service-puzzle.d.ts +0 -158
- package/dist/knowledge/service-risk-node.d.ts +0 -3
- package/dist/knowledge/service-risk.d.ts +0 -110
- package/dist/knowledge/service-templates.d.ts +0 -41
- package/dist/knowledge/settlement-semantics.d.ts +0 -1
- package/dist/knowledge/strategy-manuals.d.ts +0 -15
- package/dist/knowledge/supply-chain.d.ts +0 -35
- package/dist/knowledge/template-index.d.ts +0 -19
- package/dist/knowledge/template-loader.d.ts +0 -425
- package/dist/knowledge/template-nav.d.ts +0 -9
- package/dist/knowledge/template-prose.d.ts +0 -50
- package/dist/knowledge/template-registry.d.ts +0 -48
- package/dist/knowledge/template-scanner.d.ts +0 -158
- package/dist/knowledge/template-test-profiles.d.ts +0 -17
- package/dist/knowledge/template-validation.d.ts +0 -3
- package/dist/knowledge/tools-reference.d.ts +0 -17
- package/dist/knowledge/treasury-ledger.d.ts +0 -42
- package/dist/knowledge/treasury-puzzle.d.ts +0 -163
- package/dist/knowledge/treasury-risk.d.ts +0 -88
- package/dist/knowledge/treasury-templates.d.ts +0 -38
- package/dist/knowledge/universal-template.d.ts +0 -22
- package/dist/knowledge/util-risk.d.ts +0 -30
- package/dist/knowledge/workflow-guidance.d.ts +0 -194
- package/dist/knowledge/workspace-lists.d.ts +0 -61
- package/dist/monitor/SuggestionBridge.spec.d.ts +0 -1
- package/dist/monitor/SuggestionBridge.spec.js +0 -1
- package/dist/participation/arbitrator-interest.d.ts +0 -22
- package/dist/participation/demander-interest.d.ts +0 -23
- package/dist/participation/employee-kpi.d.ts +0 -37
- package/dist/participation/employee-kpi.spec.d.ts +0 -1
- package/dist/participation/employee-kpi.spec.js +0 -1
- package/dist/participation/employee-store.d.ts +0 -16
- package/dist/participation/game-context.d.ts +0 -25
- package/dist/participation/index.d.ts +0 -2
- package/dist/participation/node-action-advisor.d.ts +0 -68
- package/dist/participation/time-window.d.ts +0 -48
- package/dist/persona/facet-profile.d.ts +0 -33
- package/dist/persona/persona-audit.spec.d.ts +0 -1
- package/dist/persona/persona-audit.spec.js +0 -1
- package/dist/playbooks/service-build/business-puzzle.d.ts +0 -48
- package/dist/playbooks/service-build/context-assembly.d.ts +0 -32
- package/dist/playbooks/service-build/facet-money.d.ts +0 -33
- package/dist/playbooks/service-build/facet-money.spec.d.ts +0 -1
- package/dist/playbooks/service-build/facet-money.spec.js +0 -1
- package/dist/playbooks/service-build/game-theory.d.ts +0 -47
- package/dist/playbooks/service-build/index.d.ts +0 -15
- package/dist/playbooks/service-build/intent-analyzer.d.ts +0 -72
- package/dist/playbooks/service-build/machine-nodes.d.ts +0 -27
- package/dist/playbooks/service-build/machine-panorama.d.ts +0 -71
- package/dist/playbooks/service-build/merchant-guide.d.ts +0 -382
- package/dist/playbooks/service-build/migration-planner.d.ts +0 -61
- package/dist/playbooks/service-build/mode-actions.d.ts +0 -260
- package/dist/playbooks/service-build/object-panorama.d.ts +0 -317
- package/dist/playbooks/service-build/object-type.d.ts +0 -1
- package/dist/playbooks/service-build/participation-radar.d.ts +0 -20
- package/dist/playbooks/service-build/pipeline-actions.d.ts +0 -108
- package/dist/playbooks/service-build/process.d.ts +0 -6
- package/dist/playbooks/service-build/relationship-profile.d.ts +0 -3
- package/dist/playbooks/service-build/reverse-mapping-nk4.spec.d.ts +0 -1
- package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +0 -1
- package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.d.ts +0 -1
- package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.js +0 -1
- package/dist/playbooks/service-build/reverse-mapping.d.ts +0 -66
- package/dist/playbooks/service-build/risk-aggregator.d.ts +0 -59
- package/dist/playbooks/service-build/service-panorama.d.ts +0 -229
- package/dist/playbooks/service-build/service-quote.d.ts +0 -2
- package/dist/playbooks/service-build/service-quote.spec.d.ts +0 -1
- package/dist/playbooks/service-build/service-quote.spec.js +0 -1
- package/dist/playbooks/service-build/topology-evaluation.spec.d.ts +0 -1
- package/dist/playbooks/service-build/topology-evaluation.spec.js +0 -1
- package/dist/playbooks/service-build/topology-query.d.ts +0 -25
- package/dist/playbooks/service-build/workflow-design-assessment.d.ts +0 -33
- package/dist/relationship/derivation.d.ts +0 -95
- package/dist/relationship/derivation.spec.d.ts +0 -1
- package/dist/relationship/derivation.spec.js +0 -1
- package/dist/relationship/incentive.d.ts +0 -38
- package/dist/relationship/index.d.ts +0 -4
- package/dist/relationship/registry.d.ts +0 -13
- package/dist/relationship/types.d.ts +0 -45
- package/dist/review/arb.d.ts +0 -4
- package/dist/review/demand.d.ts +0 -3
- package/dist/review/index.d.ts +0 -3
- package/dist/review/machine.d.ts +0 -3
- package/dist/review/order.d.ts +0 -8
- package/dist/review/progress.d.ts +0 -3
- package/dist/review/repository.d.ts +0 -3
- package/dist/review/service.d.ts +0 -5
- package/dist/review/types.d.ts +0 -163
- package/dist/role/derivation.d.ts +0 -35
- package/dist/role/index.d.ts +0 -6
- package/dist/role/intent.d.ts +0 -23
- package/dist/role/model.d.ts +0 -9
- package/dist/role/profiles.d.ts +0 -26
- package/dist/role/resolution.d.ts +0 -27
- package/dist/runtime/instance-registry.d.ts +0 -14
- package/dist/safety/index.d.ts +0 -3
- package/dist/schema/call/permission-handler.d.ts +0 -5
- package/dist/schema/call/semantic-customer-advice.spec.d.ts +0 -1
- package/dist/schema/call/semantic-customer-advice.spec.js +0 -1
- package/dist/schema/common/tokentype-short-probe.spec.d.ts +0 -1
- package/dist/schema/common/tokentype-short-probe.spec.js +0 -1
- package/dist/schema/envelope-unify.d.ts +0 -5
- package/dist/schema/goal/planning.d.ts +0 -742
- package/dist/schema/industry-pack/modes.d.ts +0 -447
- package/dist/schema/query/bi.d.ts +0 -3369
- package/dist/schema/utils/guard-query-utils.d.ts +0 -18
- package/dist/schema/utils/permission-index-utils.d.ts +0 -2
- package/dist/schema/utils/skills-recommendation.d.ts +0 -2
- package/dist/schema-query-impl/index.d.ts +0 -83
- package/dist/schemas/account_operation.output.json +0 -3869
- package/dist/schemas/ask_user.output.json +0 -54
- package/dist/schemas/benchmark_migration_operation.output.json +0 -1669
- package/dist/schemas/bridge_operation.output.json +0 -1548
- package/dist/schemas/config_operation.output.json +0 -896
- package/dist/schemas/employee_operation.output.json +0 -307
- package/dist/schemas/evaluation_operation.output.json +0 -4716
- package/dist/schemas/guard2file.output.json +0 -83
- package/dist/schemas/industry_pack_operation.output.json +0 -2985
- package/dist/schemas/intent_radar.output.json +0 -326
- package/dist/schemas/keeper_operation.output.json +0 -1441
- package/dist/schemas/local_cache_operation.output.json +0 -1718
- package/dist/schemas/local_history_operation.output.json +0 -1644
- package/dist/schemas/local_info_operation.output.json +0 -1530
- package/dist/schemas/local_mark_operation.output.json +0 -1622
- package/dist/schemas/machineNode2file.output.json +0 -88
- package/dist/schemas/messenger_operation.output.json +0 -4692
- package/dist/schemas/monitor_events.output.json +0 -1602
- package/dist/schemas/monitor_subscription.output.json +0 -1629
- package/dist/schemas/onchain_events.output.json +0 -4053
- package/dist/schemas/onchain_operations.output.json +0 -7788
- package/dist/schemas/onchain_table_data.output.json +0 -11868
- package/dist/schemas/permission_operation.output.json +0 -205
- package/dist/schemas/persona_operation.output.json +0 -64612
- package/dist/schemas/query_toolkit.output.json +0 -28302
- package/dist/schemas/schema_query.output.json +0 -81
- package/dist/schemas/service_clone_operation.output.json +0 -247
- package/dist/schemas/strategy_review_operation.output.json +0 -532
- package/dist/schemas/watch_operation.output.json +0 -930
- package/dist/schemas/wip_file.output.json +0 -360
- package/dist/schemas/workflow_operation.output.json +0 -422
- package/dist/schemas/workspace_operation.output.json +0 -477
- package/dist/schemas/wowok_buildin_info.output.json +0 -2477
- package/dist/strategy/collectors.d.ts +0 -66
- package/dist/strategy/collectors.spec.d.ts +0 -1
- package/dist/strategy/collectors.spec.js +0 -1
- package/dist/strategy/index.d.ts +0 -5
- package/dist/strategy/metrics.d.ts +0 -20
- package/dist/strategy/review.d.ts +0 -48
- package/dist/strategy/scorecard.d.ts +0 -32
- package/dist/strategy/store.d.ts +0 -26
- package/dist/task/ProcessStore.d.ts +0 -98
- package/dist/task/playbook.d.ts +0 -11
- package/dist/task/substep-trace.d.ts +0 -91
- package/dist/tools/build-fingerprint.d.ts +0 -28
- package/dist/tools/error-catalog.d.ts +0 -17
- package/dist/tools/handlers/ask-user.d.ts +0 -3
- package/dist/tools/handlers/benchmark-migration.d.ts +0 -121
- package/dist/tools/handlers/bridge.d.ts +0 -8
- package/dist/tools/handlers/config.d.ts +0 -2
- package/dist/tools/handlers/dispatch-expectations.d.ts +0 -2
- package/dist/tools/handlers/dispatch-expectations.spec.d.ts +0 -1
- package/dist/tools/handlers/dispatch-expectations.spec.js +0 -1
- package/dist/tools/handlers/employee.d.ts +0 -8
- package/dist/tools/handlers/employee.spec.d.ts +0 -1
- package/dist/tools/handlers/employee.spec.js +0 -1
- package/dist/tools/handlers/entry-edge-recipe.d.ts +0 -101
- package/dist/tools/handlers/escrow-deficit.d.ts +0 -10
- package/dist/tools/handlers/evaluation.d.ts +0 -2
- package/dist/tools/handlers/evaluation.spec.d.ts +0 -1
- package/dist/tools/handlers/evaluation.spec.js +0 -1
- package/dist/tools/handlers/file-export.d.ts +0 -3
- package/dist/tools/handlers/fund-rail-recipe.d.ts +0 -10
- package/dist/tools/handlers/goal.d.ts +0 -4
- package/dist/tools/handlers/industry-pack.d.ts +0 -3
- package/dist/tools/handlers/intent-radar.d.ts +0 -2
- package/dist/tools/handlers/keeper.d.ts +0 -12
- package/dist/tools/handlers/local.d.ts +0 -6
- package/dist/tools/handlers/mark-namespace.d.ts +0 -30
- package/dist/tools/handlers/messenger.d.ts +0 -24
- package/dist/tools/handlers/monitor.d.ts +0 -26
- package/dist/tools/handlers/name-resolution.d.ts +0 -4
- package/dist/tools/handlers/name-resolution.spec.d.ts +0 -1
- package/dist/tools/handlers/name-resolution.spec.js +0 -1
- package/dist/tools/handlers/network.d.ts +0 -1
- package/dist/tools/handlers/onchain-name-registration.d.ts +0 -49
- package/dist/tools/handlers/onchain-name-registration.spec.d.ts +0 -1
- package/dist/tools/handlers/onchain-name-registration.spec.js +0 -1
- package/dist/tools/handlers/onchain.d.ts +0 -132
- package/dist/tools/handlers/permission.d.ts +0 -2
- package/dist/tools/handlers/persona.d.ts +0 -4
- package/dist/tools/handlers/publish-binding-echo.d.ts +0 -22
- package/dist/tools/handlers/review-chain.d.ts +0 -19
- package/dist/tools/handlers/schema-query.d.ts +0 -2
- package/dist/tools/handlers/service-clone.d.ts +0 -20
- package/dist/tools/handlers/stale-build-check.d.ts +0 -9
- package/dist/tools/handlers/strategy-review.d.ts +0 -2
- package/dist/tools/handlers/submission-assembly.d.ts +0 -55
- package/dist/tools/handlers/watch.d.ts +0 -2
- package/dist/tools/handlers/winner-derivation.d.ts +0 -20
- package/dist/tools/handlers/wip-upload.d.ts +0 -22
- package/dist/tools/handlers/wip.d.ts +0 -2
- package/dist/tools/handlers/workflow.d.ts +0 -2
- package/dist/tools/handlers/workspace.d.ts +0 -4
- package/dist/tools/move-fn-index.gen.d.ts +0 -3
- package/dist/tools/publish-gate-state.d.ts +0 -5
- package/dist/tools/registry/agent.d.ts +0 -2
- package/dist/tools/registry/bridge.d.ts +0 -2
- package/dist/tools/registry/business.d.ts +0 -2
- package/dist/tools/registry/config.d.ts +0 -2
- package/dist/tools/registry/evaluation.d.ts +0 -2
- package/dist/tools/registry/files.d.ts +0 -2
- package/dist/tools/registry/identity.d.ts +0 -2
- package/dist/tools/registry/interaction.d.ts +0 -2
- package/dist/tools/registry/local.d.ts +0 -2
- package/dist/tools/registry/messenger.d.ts +0 -2
- package/dist/tools/registry/monitor.d.ts +0 -2
- package/dist/tools/registry/onchain.d.ts +0 -2
- package/dist/tools/registry/query.d.ts +0 -2
- package/dist/tools/retry.d.ts +0 -8
- package/dist/tools/rules-hook.d.ts +0 -5
- package/dist/tools/runtime-health.d.ts +0 -10
- package/dist/tools/sanitize-description-roundtrip.spec.d.ts +0 -1
- package/dist/tools/sanitize-description-roundtrip.spec.js +0 -1
- package/dist/tools/sanitize-output.d.ts +0 -4
- package/dist/tools/sanitize-output.spec.d.ts +0 -1
- package/dist/tools/sanitize-output.spec.js +0 -1
- package/dist/tools/shared.d.ts +0 -20
- package/dist/tools/transport-integrity.d.ts +0 -7
- package/dist/tools/upgrade-check.d.ts +0 -75
- package/dist/tools/wip-deploy-assist.d.ts +0 -34
- package/dist/tools/wip-verify-ledger.d.ts +0 -16
- package/dist/tools/wrap.d.ts +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compileTemplate}from'./compile.js';import{reflux}from'./reflux.js';import{getBuiltinTemplate,BUILTIN_TEMPLATES_VERSION}from'../knowledge/builtin-templates.js';import{templateCatalogDigest}from'../knowledge/template-loader.js';import{ALL_CAPABILITIES,capabilityIntentEvidence,getCapability}from'../extensions/capability.js';export const PILOT_CHAINS=[{'chain':'chain.data_subscription','carrier':'subscription/creator-membership','signals':['subscription_with_proof','wip_provenance','dynamic_pricing_formula']},{'chain':'chain.standard_ecommerce','carrier':'delivery/restaurant-marketplace','signals':['logistics_fulfillment','fulfillment_self','fulfillment_procured','fulfillment_user_procured','cross_order_gate','discount_lifecycle','praise_incentive']}];export function generateCompositionPlan(a){const b=a['intent']['trim'](),c=[],d=[],e=[];for(const
|
|
1
|
+
import{compileTemplate}from'./compile.js';import{reflux}from'./reflux.js';import{getBuiltinTemplate,BUILTIN_TEMPLATES_VERSION}from'../knowledge/builtin-templates.js';import{templateCatalogDigest}from'../knowledge/template-loader.js';import{getTemplateParamFileLayer}from'../config/template-params.js';import{ALL_CAPABILITIES,capabilityIntentEvidence,getCapability}from'../extensions/capability.js';export const PILOT_CHAINS=[{'chain':'chain.data_subscription','carrier':'subscription/creator-membership','signals':['subscription_with_proof','wip_provenance','dynamic_pricing_formula']},{'chain':'chain.standard_ecommerce','carrier':'delivery/restaurant-marketplace','signals':['logistics_fulfillment','fulfillment_self','fulfillment_procured','fulfillment_user_procured','cross_order_gate','discount_lifecycle','praise_incentive']}];export function generateCompositionPlan(a){const b=a['intent']['trim'](),c=[],d=[],e=[];for(const o of a['selections']??[]){const p=getCapability(o);if(!p){c['push']({'code':'COMPOSE-UNKNOWN-CAPABILITY','detail':'\x27'+o+'\x27\x20is\x20not\x20a\x20registered\x20capability\x20—\x20list\x20them\x20via\x20'+'industry_pack_operation\x20action=\x27capability_list\x27'});continue;}e['push'](p['id']),d['push']({'id':p['id'],'via':'selection'});}for(const q of ALL_CAPABILITIES){if(e['includes'](q['id']))continue;const r=capabilityIntentEvidence(q,b);r['matched']&&d['push']({'id':q['id'],'via':'intent_signal','evidence':r});}for(const s of d['map'](t=>t['id'])){const t=getCapability(s);for(const u of t['requires']){!d['some'](v=>v['id']===u)&&c['push']({'code':'COMPOSE-REQUIRES-MISSING','detail':'\x27'+s+'\x27\x20requires\x20\x27'+u+'\x27\x20in\x20the\x20same\x20adoption\x20set'});}for(const v of t['excludes']){d['some'](w=>w['id']===v)&&c['push']({'code':'COMPOSE-EXCLUDES-CONFLICT','detail':'\x27'+s+'\x27\x20and\x20\x27'+v+'\x27\x20cannot\x20coexist\x20in\x20one\x20build\x20(mutual\x20exclusion)'});}}if(d['length']===0x0)return c['push']({'code':'COMPOSE-NO-CAPABILITY-EVIDENCE','detail':'the\x20intent\x20matched\x20no\x20capability\x27s\x20intentSignals\x20and\x20no\x20selection\x20was\x20given\x20—\x20'+'name\x20the\x20business\x20intent\x20concretely\x20(subscription,\x20delivery,\x20milestone,\x20refund,\x20...)\x20'+'or\x20pass\x20explicit\x20selections;\x20the\x20generator\x20never\x20guesses\x20a\x20template'}),infeasible(d,c);const f=d['map'](w=>w['id']),g=PILOT_CHAINS['filter'](w=>w['signals']['some'](y=>f['includes'](y)));let h;if(g['length']===0x1)h=g[0x0];else{if(g['length']>0x1)h=g['find'](w=>w['chain']===a['preferredChain'])??g[0x0];else return c['push']({'code':'COMPOSE-CHAIN-UNMAPPED','detail':'adopted\x20['+f['join'](',\x20')+']\x20map\x20onto\x20neither\x20pilot\x20chain\x20'+('('+PILOT_CHAINS['map'](w=>w['chain'])['join'](',\x20')+')\x20—\x20the\x20G-A\x20pilot\x20carries\x20only\x20')+'these\x20two;\x20extend\x20PILOT_CHAINS\x20or\x20use\x20merchant_guide\x20for\x20a\x20template\x20build'}),infeasible(d,c);}const i=getBuiltinTemplate(h['carrier']);if(!i)return c['push']({'code':'COMPOSE-CARRIER-UNKNOWN','detail':'chain\x20preset\x20\x27'+h['chain']+'\x27\x20names\x20carrier\x20\x27'+h['carrier']+'\x27\x20which\x20is\x20not\x20in\x20the\x20builtin\x20catalog'}),infeasible(d,c);const j=getTemplateParamFileLayer(i['id']),k=Object['keys'](j)['length']>0x0?{...i,'fee_params':{...i['fee_params'],...j}}:i,l=compileTemplate(k,a['inputs']??{},{'nameBase':a['nameBase']??h['carrier'],'intent':b,...a['supplyChain']!==undefined&&a['supplyChain']['length']>0x0?{'supplyChain':a['supplyChain']}:{},...a['buildTimeMs']!==undefined?{'buildTimeMs':a['buildTimeMs']}:{}});c['push'](...compileBlockers(l['blockers']));const m=reflux(l['plan']);for(const w of m['audit']['findings']){(w['level']==='critical'||w['level']==='high')&&c['push']({'code':'REVIEW-'+w['rule_id'],'detail':'plan\x20audit\x20'+w['level']+':\x20'+w['title']+'\x20—\x20'+w['description']});}if(c['length']>0x0)return infeasible(d,c);const n=templateCatalogDigest(m['plan']['templateId']??'');return{'plan':{...m['plan'],...n!==undefined?{'template_digest':n}:{}},'feasibility':'ready','chain':h['chain'],'carrier':h['carrier'],'adopted':d,'blockers':[],'audit':m['audit'],'templates_version':BUILTIN_TEMPLATES_VERSION,...l['supplyChain']!==undefined?{'supplyChain':l['supplyChain']}:{}};}function infeasible(a,b){return{'feasibility':'infeasible','adopted':a,'blockers':b,'templates_version':BUILTIN_TEMPLATES_VERSION};}function compileBlockers(a){return a['map'](c=>({'code':c['code'],'detail':c['detail']}));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fillGuardTemplate,getTemplateById}from'../knowledge/guard-templates.js';import{hasCallerIdentityLeg}from'../knowledge/allocator-rail-verifier.js';import{applyFeeParamBindings}from'../knowledge/fee-param-bindings.js';import{identityDefaultResolution,MS_PER_DAY,patternDefaultResolution,progressStateDefaultResolution,timeInstantiationFor,timeWindowMsResolution}from'../knowledge/pattern-resolutions.js';import{GUARD_DESIGN_PATTERNS}from'../knowledge/guard-design-patterns.js';import{lookupBinding}from'../knowledge/guard-binding-table.js';import{TASK_BINDING_SLOT,ONCE_SLOT_BYTES}from'../knowledge/onchain-constants.js';import{feeParamCouplingMismatches,feeParamUnlanded,windowMathMismatches,incentiveRatingFloorClaims,rewardWindowDayClaims}from'../knowledge/template-scanner.js';import{verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';import{ref}from'./plan.js';import{applyConditionalSelectors}from'./input-normalize.js';function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function normalizeLogicArity(a){if(Array['isArray'](a))return a['map'](normalizeLogicArity);if(a===null||typeof a!=='object')return a;const b=a,c={};for(const [d,e]of Object['entries'](b))c[d]=normalizeLogicArity(e);if((c['type']==='logic_and'||c['type']==='logic_or')&&Array['isArray'](c['nodes'])){const f=c['nodes'];if(f['length']===0x1)return f[0x0];}return c;}const WINDOW_LEG_DAYS_PARAM='closing_window_days',WINDOW_LEG_ANCHOR_PARAM='window_anchor_node';function windowLegDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a,c=b[WINDOW_LEG_DAYS_PARAM],d=b[WINDOW_LEG_ANCHOR_PARAM];if(typeof c!=='string'||c===''||typeof d!=='string'||d==='')return undefined;return{'daysKey':c,'anchorNode':d};}function andClosingWindowLeg(a,b,c,d){const e=[...a],f=new Set();let g;for(const m of e){const n=m;if(typeof n['identifier']==='number')f['add'](n['identifier']);g===undefined&&n['b_submission']===!![]&&n['object_type']==='Order'&&n['value_type']==='Address'&&(g=n['identifier']);}const h=()=>{let o=0x0;while(f['has'](o)||o===TASK_BINDING_SLOT||o===ONCE_SLOT_BYTES)o+=0x1;return f['add'](o),o;};g===undefined&&(g=h(),e['push']({'identifier':g,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(window-leg\x20progress\x20witness)'}));const i=h(),j=h(),k=h();e['push']({'identifier':i,'b_submission':![],'value_type':'String','value':c,'name':'Window\x20anchor\x20node\x20(closing\x20leg)'},{'identifier':j,'b_submission':![],'value_type':'U64','value':d,'name':'Window\x20length\x20in\x20days\x20(closing\x20leg)'},{'identifier':k,'b_submission':![],'value_type':'U64','value':MS_PER_DAY,'name':'Days-to-milliseconds\x20constant\x20(closing\x20leg)'});const l={'type':'logic_as_u256_lesser_or_equal','nodes':[{'type':'context','context':'Clock'},{'type':'calc_number_add','nodes':[{'type':'query_progress_history_time','object':{'identifier':g,'convert_witness':'OrderProgress'},'where':{'nextNode':c},'find':'last'},{'type':'calc_number_multiply','nodes':[{'type':'identifier','identifier':j},{'type':'identifier','identifier':k}]}]}]};return{'table':e,'root':{'type':'logic_and','nodes':[b,l]}};}const NODE_GATE_PARAM='write_window_nodes';function nodeGateDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a[NODE_GATE_PARAM];if(typeof b!=='string')return undefined;const c=b['split'](/[,\s]+/)['map'](d=>d['trim']())['filter'](d=>d!=='');return c['length']>0x0?{'nodes':c}:undefined;}function andNodeGateLeg(a,b,c){const d=[...a],e=new Set();let f;for(const k of d){const l=k;if(typeof l['identifier']==='number')e['add'](l['identifier']);f===undefined&&l['b_submission']===!![]&&l['object_type']==='Order'&&l['value_type']==='Address'&&(f=l['identifier']);}const g=()=>{let m=0x0;while(e['has'](m)||m===TASK_BINDING_SLOT||m===ONCE_SLOT_BYTES)m+=0x1;return e['add'](m),m;};f===undefined&&(f=g(),d['push']({'identifier':f,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(node-window\x20progress\x20witness)'}));const h=c['map'](()=>g());c['forEach']((m,o)=>d['push']({'identifier':h[o],'b_submission':![],'value_type':'String','value':m,'name':'Node-window\x20member\x20(write\x20gate)'}));const i=h['map'](m=>({'type':'logic_equal','nodes':[{'type':'query','query':'progress.current','object':{'identifier':f,'convert_witness':'OrderProgress'},'parameters':[]},{'type':'identifier','identifier':m}]})),j=i['length']===0x1?i[0x0]:{'type':'logic_or','nodes':i};return{'table':d,'root':{'type':'logic_and','nodes':[b,j]}};}export function normalizeInlineGuardTable(a,b){const c=b+'_service',d=f=>f['replace'](/\//g,'_'),e=d(c);return a['map'](f=>{if(f===null||typeof f!=='object'||Array['isArray'](f))return f;const g={...f};typeof g['value']==='string'&&d(g['value'])===e&&(g['value']=ref('service'));if(g['b_submission']===undefined)g['b_submission']=![];return g;});}function shortRowLabel(a,b){const c=a['search'](/:| \(| — /),d=c>0x0?a['slice'](0x0,c)['trim']():'';if(d['length']>0x0&&Buffer['byteLength'](d,'utf8')<=b)return d;let e=a;while(e['length']>0x0&&Buffer['byteLength'](e+'...','utf8')>b)e=e['slice'](0x0,-0x1);return e+'...';}const MAX_GUARD_DESCRIPTION_CONTENT=0xf9e;export function normalizeGuardRowNames(a,b,c){const d=0x3f,e=[],f=a['map'](j=>{if(!j||typeof j!=='object')return j;const k=j,l=k['name'];if(typeof l!=='string')return j;const m=l['startsWith']('0x')?'n_'+l:l;if(Buffer['byteLength'](m,'utf8')<=d)return m===l?j:{...k,'name':m};return e['push']('slot\x20'+String(k['identifier']??'?')+':\x20'+m),{...k,'name':shortRowLabel(m,d)};});if(e['length']===0x0)return{'table':f,'description':b};const g=typeof b==='string'?b:'';let h=g+'\x0a\x0aRow\x20labels\x20(the\x20on-chain\x20name\x20column\x20is\x20capped\x20at\x2064\x20BCS\x20bytes,\x20so\x20each\x20long\x20label\x20is\x20spelled\x20out\x20here):',i=0x0;for(const j of e){const k=h+'\x0a-\x20'+j;if(Buffer['byteLength'](k,'utf8')>c)break;h=k,i+=0x1;}return{'table':f,'description':i===0x0?b:h};}export function guardMountCensus(a,b,c){const {selectorDroppedKeys:d,shape:e,rows:f}=c??applyConditionalSelectors(a,b),g=new Set(e['flatMap'](k=>(k['from']??[])['map'](l=>typeof l==='string'?undefined:l['guard_key'])['filter'](l=>typeof l==='string'))),h=new Set(f['map'](k=>k['guard_key'])['filter'](l=>typeof l==='string')),i=new Set();let j=![];return a['guards']['forEach']((k,l)=>{if(d['has'](k['key']??k['template_id']+'#'+l))return;if(k['policy']!==undefined)i['add'](k['key']??k['template_id']+'#'+l);if(k['host']==='service'&&(k['key']??k['template_id']+'#'+l)==='buy')j=!![];}),{'edgeKeys':g,'railKeys':h,'policyKeys':i,'buyMounted':j};}const REVIEW_OUTCOME_CLASS=/wonder|no_wonder|praise|like|dislike/i;export function fillGuards(a){const {template:b,base:c,inputs:e,guardResolutions:f}=a,{dropKeys:h,selectorDroppedKeys:i,shape:j,rows:k}=a['selector'],l=[],o={},p=new Set();b['guards']['forEach']((a6,a7)=>{const a8=a6['key']??a6['template_id']+'#'+a7;if(i['has'](a8))return;const a9=timeWindowMsResolution(b['id'],a8,e,b['fee_params'])??patternDefaultResolution(b['id'],a8)??progressStateDefaultResolution(b,a6)??identityDefaultResolution(b,a6);if(a9!==undefined)o[a8]=a9;}),Object['assign'](o,Object['fromEntries'](Object['entries'](f??{})['filter'](([,a6])=>a6?.['kind']!=='declare')));const q=[];for(const [a6,a7]of Object['entries'](f??{})){if(a7?.['kind']==='omit')q['push'](a6);}const s=new Set();if(q['length']>0x0){const a8=guardMountCensus(b,e,a['selector']);for(const a9 of q){const aa=b['guards']['find']((ac,ad)=>(ac['key']??ac['template_id']+'#'+ad)===a9);if(aa===undefined)continue;const ab=[];if(a8['edgeKeys']['has'](a9))ab['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(a8['railKeys']['has'](a9))ab['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(a8['policyKeys']['has'](a9))ab['push']('a\x20Repository\x20write-policy\x20credential\x20(policy)');if(aa['host']==='service'&&a9==='buy')ab['push']('the\x20Service\x20buy\x20gate\x20(buy_guard)');ab['length']>0x0?l['push']({'code':'GUARD_OMIT_UNSUPPORTED','detail':'guard_resolutions[\x27'+a9+'\x27]\x20=\x20{kind:\x27omit\x27}\x20refused:\x20this\x20design\x20is\x20bound\x20to\x20'+ab['join']('\x20and\x20')+'\x20—\x20'+'omitting\x20it\x20would\x20orphan\x20the\x20binding\x20(open\x20rail\x20/\x20open\x20write\x20/\x20ungated\x20purchase).\x20'+'Fold\x20the\x20design\x27s\x20intent\x20into\x20the\x20bound\x20site\x20instead,\x20or\x20keep\x20the\x20guard\x20resolved.'}):s['add'](a9);}}const t=new Set(k['map'](ac=>ac['guard_key'])['filter'](ac=>typeof ac==='string')),u=new Map();b['guards']['forEach']((ac,ad)=>{const ae=ac['key']??ac['template_id']+'#'+ad,af=ac['identity_leg_exempt'];typeof af==='string'&&af['trim']()!==''&&t['has'](ae)&&u['set'](ae,af['trim']());});for(const [ac,ad]of Object['entries'](f??{})){if(ad?.['kind']!=='declare')continue;const ae=typeof ad['reason']==='string'?ad['reason']['trim']():'';if(ae===''){l['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+ac+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20reason\x20field\x20is\x20mandatory\x20and\x20'+'must\x20be\x20non-empty\x20—\x20the\x20disclosure\x20that\x20ships\x20with\x20the\x20exemption\x20quotes\x20it\x20verbatim,\x20and\x20an\x20'+'unexplained\x20legless\x20money\x20rail\x20is\x20exactly\x20what\x20the\x20gate\x20exists\x20to\x20prevent\x20(ks11).'});continue;}const af=b['guards']['find']((ag,ah)=>(ag['key']??ag['template_id']+'#'+ah)===ac);if(af===undefined)continue;if(!t['has'](ac)){l['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+ac+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20declare\x20channel\x20is\x20honored\x20ONLY\x20for\x20'+('allocator-rail-bound\x20designs\x20(a\x20spec\x20mounted\x20on\x20an\x20allocator\x20row),\x20and\x20\x27'+ac+'\x27\x20is\x20bound\x20to\x20no\x20')+'allocator\x20row.\x20An\x20identity-less\x20forward/policy/buy\x20gate\x20is\x20a\x20different\x20violation\x20family\x20'+'(RELEASE_EDGE_NO_IDENTITY\x20/\x20REPO_GUARD_POLICY_MISSING)\x20with\x20its\x20own\x20remedy\x20—\x20declare\x20does\x20not\x20reach\x20it.'});continue;}u['set'](ac,ae);}const w=b['guards']['map']((ag,ah)=>{const ai=ag['key']??ag['template_id']+'#'+ah,aj=applyFeeParamBindings(ag['params'],b['id'],ai,e,b['fee_params']);return{'key':ai,'template_id':ag['template_id'],'host':ag['host'],'purpose':ag['purpose'],'policy':ag['policy'],'params':aj};})['filter'](ag=>!h['has'](ag['key'])&&!s['has'](ag['key'])),x=new Map();{const ag=new Set(w['map'](ai=>ai['key'])),ah=ai=>{if(ai===undefined)return![];const aj=w['find'](al=>al['key']===ai);if(aj===undefined)return![];const ak=o[ai];if(ak?.['kind']==='inline'||ak?.['kind']==='template'||aj['template_id']['startsWith']('tpl_'))return!![];if(ak?.['kind']==='omit'&&s['has'](ai))return![];return lookupBinding(aj,b)!==undefined;};for(const ai of j){for(const aj of ai['from']??[]){const ak=typeof aj==='string'?{'prev':aj}:aj,al=ak['operator']??ai['operator']??(ak['prev']===''?'order_payer':'merchant');if(al!=='order_payer')continue;if(ak['guard_key']!==undefined&&ah(ak['guard_key']))continue;const am=ak['forward']??(ak['prev']===''?'enter_'+ai['name']:ak['prev']+'_to_'+ai['name']);if(x['has'](am))continue;let an='order_holder_'+am;while(ag['has'](an))an=an+'_x';ag['add'](an),x['set'](am,an);const ao=ak['guard_key']===undefined?'Declare\x20an\x20explicit\x20order-holder\x20guard_key\x20on\x20the\x20edge\x20to\x20replace\x20this\x20auto\x20key\x20with\x20a\x20named\x20credential.':'The\x20edge\x20DOES\x20declare\x20guard_key\x20\x27'+ak['guard_key']+'\x27,\x20but\x20that\x20design\x20does\x20not\x20resolve\x20to\x20a\x20Guard\x20object,\x20so\x20the\x20forward\x20would\x20otherwise\x20ship\x20unguarded;\x20resolve\x20\x27'+ak['guard_key']+'\x27\x20(guard_resolutions,\x20or\x20re-point\x20the\x20spec\x20at\x20an\x20instantiable\x20tpl_*\x20id)\x20to\x20carry\x20the\x20richer\x20condition\x20—\x20this\x20identity\x20leg\x20stays\x20bound\x20either\x20way.';w['push']({'key':an,'template_id':'tpl_forward_order_holder','host':'machine','purpose':'F05\x20kernel-injected\x20order-holder\x20identity\x20binding\x20for\x20the\x20buyer-exclusive\x20forward\x20'+('\x27'+am+'\x27\x20(edge\x20\x27'+ak['prev']+'\x27->\x27'+ai['name']+'\x27):\x20namedOperator\x20\x22\x22\x20passes\x20for\x20')+'anyone\x20at\x20the\x20permission\x20layer,\x20so\x20without\x20this\x20guard\x20the\x20'+'buyer\x20rail\x20is\x20advanceable\x20by\x20ANY\x20passport\x20holder\x20attached\x20to\x20the\x20order\x20—\x20takeover\x20'+('risk.\x20'+ao)});}}}const y=e['arbitration_vote_policy'],z=y==='party_panel'?'party_panel':'open';if(b['arbitration_mode']==='third_party'&&z==='open'&&!w['some'](ap=>ap['template_id']['startsWith']('tpl_voting_guard_'))){let ap='arbitration_vote_open';const aq=new Set(w['map'](ar=>ar['key']));while(aq['has'](ap))ap=ap+'_x';w['push']({'key':ap,'template_id':'tpl_voting_guard_open_vote','host':'arbitration','purpose':'F-cu\x20kernel-injected\x20open-vote\x20surface\x20for\x20the\x20third_party\x20venue:\x20an\x20EMPTY\x20'+'voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20plain\x20votes\x20hard-require\x20permission\x20358\x20'+'(admin-only\x20by\x20default),\x20so\x20disputes\x20dead-lock\x20when\x20the\x20arb\x20admin\x20is\x20'+'unresponsive\x20(crs9-F-36).\x20Every\x20Passport\x20holder\x20may\x20vote\x20at\x20flat\x20weight\x201\x20'+'(O-F26:\x20CONSTANT-TRUE\x20gate\x20—\x20the\x20scanner\x20red-flags\x20it;\x20configure\x20a\x20'+'roster+threshold\x20guard\x20before\x20real\x20disputes,\x20or\x20pass\x20'+'arbitration_vote_policy:\x27party_panel\x27\x20to\x20skip\x20this\x20injection\x20entirely\x20and\x20'+'bind\x20tpl_voting_guard_numeric_weight\x20/\x20tpl_voting_guard_party_only);\x20'+'a\x20deliberately\x20closed\x20panel\x20re-declares\x20tpl_voting_guard_numeric_weight.','params':{'vote_weight':0x1}});}const A=new Map(w['map'](ar=>[ar['key'],ar])),B=e['review_mode'],C=B==='review'||B==='review_reward'||B==='none'?B:undefined,D=C??b['review_mode']??'none',E=c+'_review_reward',F=ar=>{const as=e[ar]??b['fee_params'][ar];if(typeof as==='number'&&Number['isFinite'](as))return as;if(typeof as==='string'&&as['trim']()!==''&&Number['isFinite'](Number(as)))return Number(as);return undefined;},G=0x4,H=F('reward_rating_floor'),I=H??G,J=F('reward_claim_opens_after_days'),K=F('reward_claim_closes_after_days'),L=0xe,M=0xe,N=b['fee_params']['return_window_days']??b['fee_params']['review_window_days'],O=typeof N==='number'&&Number['isFinite'](N)&&N>0x0?N:0x0,P=Math['max'](L,O+0x1),Q=J??P,R=K??M;if(D==='review_reward'){const ar=w['find'](av=>av['host']==='reward'),as=ar!==undefined?o[ar['key']]:undefined,at=as!==undefined&&(as['kind']==='template'||as['kind']==='inline'),au=ar!==undefined&&(ar['template_id']['startsWith']('tpl_')||at);if(ar===undefined||!au){const av=/deliver|complet|receiv|fulfil|finish/i,aw=/fund|pledge|back/i,ax=j['find'](aE=>/review/i['test'](aE['name'])),ay=j['find'](aE=>av['test'](aE['name'])),az=j['filter'](aE=>aE['semantic_role']==='final')['map'](aE=>aE['name']),aA=j['filter'](aE=>REVIEW_OUTCOME_CLASS['test'](aE['name']))['map'](aE=>aE['name']),aB=ax?.['name']??ay?.['name']??az[0x0],aC=ay!==undefined?az['filter'](aE=>!aw['test'](aE)):az,aD=[...new Set([aB,...aA,...aC])]['slice'](0x0,0x4);if(aB!==undefined){const aE=new Set([aB,...aA,...aC])['size']>0x4,aF='Claim-set\x20default\x20(ks7\x20F-25\x20+\x20kq4x\x20P-018):\x20the\x20bounty\x20anchors\x20on\x20the\x20review\x20node,\x20else\x20a\x20delivery-class\x20node,\x20else\x20the\x20first\x20terminal;\x20review-outcome\x20nodes\x20(wonder/no_wonder/praise/like/dislike)\x20take\x20the\x20slots\x20between\x20the\x20anchor\x20and\x20the\x20settlement\x20terminals'+(ay!==undefined?',\x20and\x20funding-class\x20settlement\x20terminals\x20are\x20EXCLUDED\x20—\x20a\x20funding\x20release\x20(funded_released\x20family)\x20precedes\x20physical\x20fulfillment,\x20so\x20a\x20window\x20measured\x20there\x20ships\x20the\x20bounty\x20permanently\x20unclaimable;\x20hosting\x20the\x20bounty\x20on\x20a\x20funding\x20terminal\x20requires\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20(the\x20named-design\x20escape\x20hatch).':'\x20(this\x20shape\x20mounts\x20no\x20delivery-class\x20node,\x20so\x20funding-class\x20terminals\x20stay\x20IN\x20the\x20default\x20set);\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20can\x20pin\x20any\x20claim\x20set.'),aG=I>0x0,aH=aG?'Rating\x20leg\x20ARMED\x20on\x20the\x20plan-created\x20\x27'+c+'_review\x27\x20repository\x20/\x20\x27rating\x27\x20policy\x20(order-keyed\x20U64):\x20pays\x20only\x20at\x20rating\x20>=\x20'+I+'\x20(reward_rating_floor\x20input'+(H===undefined?'\x20—\x20S14\x20default\x20'+G+',\x20no\x20input\x20given':'')+').':'No\x20rating\x20leg\x20—\x20reward_rating_floor\x20was\x20EXPLICITLY\x20set\x20to\x200\x20(plain\x20praise\x20bounty\x20opt-out,\x20S14\x20default\x20is\x20'+G+').',aI=J!==undefined?'Claim\x20window:\x20opens\x20'+Q+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(reward_claim_opens_after_days\x20input;\x20overrides\x20the\x20after-sales-expiry\x20derivation\x20—\x20keep\x20it\x20ABOVE\x20the\x20store\x27s\x20return/review\x20window\x20or\x20the\x20claim-and-return\x20arbitrage\x20re-opens,\x20tbs7\x20F-04),\x20claimable\x20for\x20a\x20further\x20'+R+'\x20day(s)\x20(bsw4\x20F-11\x20close).':'Claim\x20window:\x20opens\x20'+Q+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived\x20after-sales\x20expiry\x20+\x201d,\x20floored\x20at\x2014d\x20—\x20tbs7\x20F-04:\x20the\x20bounty\x20opens\x20only\x20after\x20the\x20return/review\x20window\x20closed),\x20claimable\x20for\x20a\x20further\x20'+R+'\x20day(s)\x20(bsw4\x20F-11:\x20the\x20window\x20CLOSES\x20—\x20a\x20real\x20deadline,\x20counted\x20from\x20the\x20open).',aJ={'reward_address':'review_pool','expected_pre_claim_node':aD[0x0],...aD['length']>0x1?{'expected_pre_claim_node_alt':aD[0x1]}:{},...aD['length']>0x2?{'expected_pre_claim_node_alt2':aD[0x2]}:{},...aD['length']>0x3?{'expected_pre_claim_node_alt3':aD[0x3]}:{},...aG?{'rating_repository':c+'_review','rating_policy_name':'rating','rating_floor':String(I)}:{'rating_repository':''},'opens_after_days':String(Q),'closes_after_days':String(R)};if(ar===undefined){let aK='reward_claim_default';while(w['some'](aL=>aL['key']===aK))aK=aK+'_x';w['push']({'key':aK,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'4R-02\x20kernel-injected\x20DEFAULT\x20claim\x20guard\x20for\x20review_mode\x20\x27review_reward\x27\x20(the\x20template\x20'+('declares\x20no\x20reward\x20spec):\x20claim-allowed\x20SET\x20{'+aD['join'](',\x20')+'}'+(aE?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20the\x20shape\x20carries\x20more\x20terminals;\x20declare\x20an\x20explicit\x20host:\x22reward\x22\x20spec)':'')+',\x20')+'bounty\x20derived\x20T-02\x20(2%\x20of\x20the\x20cheapest\x20SKU,\x20floored\x20at\x201),\x20funding\x20fail-closed\x20'+('(REVIEW_REWARD_UNFUNDED).\x20'+aH+'\x20'+aI+'\x20'+aF+'\x20W5-03\x20mutual\x20exclusion:\x20the\x20claim\x20set\x20')+'carries\x20NO\x20cancelled-role\x20node\x20—\x20a\x20refunded\x20order\x20cannot\x20reach\x20this\x20bounty\x20(a\x20chain-level\x20'+'\x27was\x20ever\x20refunded\x27\x20boolean\x20does\x20not\x20exist;\x20mounting\x20a\x20review/reward\x20advance\x20on\x20a\x20cancelled\x20'+'terminal\x20is\x20blocked\x20by\x20audit\x20STATE-REFUNDED-REWARD-01).\x20Declare\x20an\x20explicit\x20host:\x22reward\x22\x20guard\x20spec\x20to\x20replace\x20this\x20'+'default\x20with\x20a\x20named\x20design.','params':aJ});}else{const aL=ar['template_id'];ar['template_id']='tpl_reward_one_time_claim',ar['params']=aJ,ar['purpose']='4R-02\x20default\x20assembly\x20replaced\x20the\x20unresolved\x20design\x20reference\x20(was\x20\x27'+aL+'\x27\x20with\x20no\x20'+('caller\x20resolution):\x20claim-allowed\x20SET\x20{'+aD['join'](',\x20')+'}'+(aE?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20spec\x20or\x20resolve\x20this\x20key\x20to\x20cover\x20every\x20terminal)':'')+'.\x20')+(aH+'\x20'+aI+'\x20'+aF+'\x20Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20')+'default\x20mount\x20per\x20build.';}}}}const S=e['experience_compensation_mode'],T=S==='reward'||S==='none'?S:b['experience_compensation_mode']??'none';let U;if(T==='reward'){const aM=/deliver|complet|receiv|fulfil|finish/i,aN=/fund|pledge|back/i,aO=/cancel|refund|kill/i,aP=j['filter'](aT=>aT['semantic_role']==='final')['map'](aT=>aT['name']),aQ=j['find'](aT=>aM['test'](aT['name'])),aR=aP['filter'](aT=>!aN['test'](aT)&&!aO['test'](aT)),aS=aQ?.['name']??aR[0x0]??aP[0x0];if(aS!==undefined){const aT=[...new Set([aS,...aR])]['slice'](0x0,0x4),aU=new Set([aS,...aR])['size']>0x4,aV=b['fee_params']['return_window_hours'],aW=typeof aV==='number'&&Number['isFinite'](aV)&&aV>0x0?aV:0x0,aX=Math['max'](O,Math['ceil'](aW/0x18)),aY=F('experience_claim_opens_after_days')??Math['max'](0x1,aX+0x1),aZ=F('experience_claim_closes_after_days')??0x7;let b0='experience_compensation_claim';while(w['some'](b1=>b1['key']===b0))b0=b0+'_x';w['push']({'key':b0,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'C-11\x20kernel-injected\x20EXPERIENCE-COMPENSATION\x20claim\x20guard\x20(scene\x20reward_experience_compensation\x20/\x20'+'reward_delay_compensation):\x20an\x20independent\x20goodwill\x20pool\x20the\x20merchant\x20pre-funds,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20a\x20settlement-edge\x20guard\x20and\x20never\x20a\x20voluntary\x20Payment\x20voucher\x20(both\x20rejected\x20by\x20K3\x20C-11).\x20'+('Claim-allowed\x20SET\x20{'+aT['join'](',\x20')+'}')+((aU?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20key\x20\x27'+b0+'\x27\x20spec\x20to\x20cover\x20every\x20terminal)':'')+';\x20')+'funding-class\x20AND\x20cancelled-class\x20finals\x20are\x20EXCLUDED\x20(a\x20refunded\x20order\x20can\x20never\x20claim\x20—\x20tbs7\x20F-04\x20/\x20Scene\x207).\x20'+'NO\x20rating\x20leg\x20—\x20goodwill\x20is\x20not\x20review-gated\x20(rating_repository\x20empty\x20ships\x20without\x20the\x20leg).\x20'+('Claim\x20window:\x20opens\x20'+aY+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived:\x20after-sales\x20return\x20window\x20')+('lapsed\x20+\x201d'+(aW>0x0?'\x20—\x20fee_param\x20return_window_hours\x20'+aW+'h':'')+'),\x20')+('claimable\x20for\x20a\x20further\x20'+aZ+'\x20day(s)\x20—\x20experience\x20compensation\x20must\x20be\x20claimed\x20promptly.\x20')+'Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20experience_claim_amount\x20(mount-side,\x20'+'emitReviewComponent);\x20fail-closed\x20funding\x20(EXPERIENCE_COMPENSATION_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20mount\x20per\x20build;\x20'+'a\x20GuardU64Identifier\x20amount\x20variant\x20(submission-resolved\x20tier)\x20must\x20disclose\x20its\x20rule\x20in\x20the\x20listing.','params':{'reward_address':'experience_pool','expected_pre_claim_node':aT[0x0],'expected_pre_claim_node_alt':aT[0x1]??aS,'expected_pre_claim_node_alt2':aT[0x2]??aS,'expected_pre_claim_node_alt3':aT[0x3]??aS,'rating_repository':'','opens_after_days':String(aY),'closes_after_days':String(aZ)}}),U=b0;}}const V=new Set(['wip_provenance','subscription_with_proof']),W=Array['isArray'](e['adopted_module_ids'])?e['adopted_module_ids']['filter'](b1=>typeof b1==='string'):[],X=w['some'](b1=>b1['host']==='repository'||b1['template_id']==='pattern.repository_data_check'||b1['template_id']==='pattern.repository_write_authorization'||b1['template_id']==='tpl_repository_row_present'||b1['template_id']==='tpl_repository_row_present_signer'||b1['template_id']==='tpl_repository_row_equals_order_field'||b1['template_id']==='tpl_holder_confirm_evidence_gate')||W['some'](b1=>V['has'](b1)),Y=new Map(),Z=[],a0=new Map();b['guards']['forEach']((b1,b2)=>{const b3=windowLegDecl(b1['params']);if(b3!==undefined)a0['set'](b1['key']??b1['template_id']+'#'+b2,b3);});const a1=new Map();b['guards']['forEach']((b1,b2)=>{const b3=nodeGateDecl(b1['params']);if(b3!==undefined)a1['set'](b1['key']??b1['template_id']+'#'+b2,b3);});const a2=w['map'](b1=>b1['key']);for(const b1 of Object['keys'](f??{})){if(s['has'](b1))continue;!A['has'](b1)&&l['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+b1+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+c+'\x27.\x20'+('Legal\x20keys:\x20'+(a2['length']>0x0?a2['join'](',\x20'):'(none\x20—\x20this\x20template\x20declares\x20no\x20keyed\x20guards)')+'.\x20')+'An\x20unknown\x20key\x20was\x20previously\x20dropped\x20silently,\x20leaving\x20the\x20intended\x20guard\x20pending\x20while\x20the\x20build\x20looked\x20resolved.'});}for(const b2 of w){const b3='guard_'+safeId(b2['key']),b4=o[b2['key']];let b5=b2['purpose'],b6,b7;if(b4?.['kind']==='inline')b6=normalizeInlineGuardTable(b4['table'],c),b7=b4['root'],b5=b4['description']??b2['purpose'];else{const b8=b4===undefined||b4['kind']==='omit'&&!s['has'](b2['key'])||b4['kind']==='declare'?lookupBinding(b2,b):undefined,b9=b4?.['kind']==='template'?b4['template_id']:b2['template_id']['startsWith']('tpl_')?b2['template_id']:b8?.['template_id'];if(b9!==undefined){if(b9==='tpl_allocator_node_gate_recover')p['add'](b2['key']);const ba={'service_name':c+'_service',...X?{'repository_name':c+'_evidence'}:{},...D!=='none'?{'review_repository':c+'_review'}:{},...b['arbitration_mode']!==undefined&&b['arbitration_mode']!=='none'?{'arbitration_name':c+'_arbitration'}:{},...b['fee_params'],...e,...b2['params'],...b8!==undefined?b8['params']:{},...b4?.['kind']==='template'?b4['params']:{}},bb=fillGuardTemplate(b9,ba);if(!bb['ok'])l['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+b2['key']+'\x27\x20('+b9+'):\x20'+bb['error']});else{b6=bb['table'],b7=bb['root'];const bc=a0['get'](b2['key']);if(bc!==undefined){const be=ba[bc['daysKey']],bf=typeof be==='number'&&Number['isInteger'](be)?be:typeof be==='string'&&be['trim']()!==''&&Number['isInteger'](Number(be))?Number(be):undefined;if(bf===undefined||bf<=0x0)l['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+b2['key']+'\x27\x20('+b9+'):\x20the\x20entry\x20declares\x20a\x20closing\x20window\x20via\x20params.'+WINDOW_LEG_DAYS_PARAM+'\x20->\x20\x27'+bc['daysKey']+'\x27,\x20'+('but\x20the\x20merged\x20value\x20\x27'+String(be)+'\x27\x20is\x20not\x20a\x20positive\x20integer\x20day\x20count.\x20Supply\x20the\x20fee\x20param\x20(or\x20an\x20input/params\x20override),\x20')+('or\x20drop\x20the\x20'+WINDOW_LEG_DAYS_PARAM+'/'+WINDOW_LEG_ANCHOR_PARAM+'\x20declaration\x20from\x20the\x20guard\x20entry.')});else{const bg=andClosingWindowLeg(b6,b7,bc['anchorNode'],bf);b6=bg['table'],b7=bg['root'];}}const bd=a1['get'](b2['key']);if(bd!==undefined){const bh=andNodeGateLeg(b6,b7,bd['nodes']);b6=bh['table'],b7=bh['root'];}}}}if(b6!==undefined){const bi=u['has'](b2['key'])&&b7!==undefined&&!hasCallerIdentityLeg(b7);Y['set'](b2['key'],{'stepId':b3,'description':bi?b5+'\x20(merchant-declared\x20exemption:\x20rail\x20\x27'+b2['key']+'\x27\x20ships\x20without\x20a\x20caller\x20identity\x20leg\x20—\x20'+u['get'](b2['key'])+')':b5,'table':b6,'root':normalizeLogicArity(b7)}),b2['step_id']=b3;}else!b2['template_id']['startsWith']('tpl_')&&getTemplateById(b2['template_id'])===undefined&&!GUARD_DESIGN_PATTERNS['some'](bj=>bj['id']===b2['template_id'])&&l['push']({'code':'GUARD_PATTERN_UNKNOWN','detail':'guard\x20\x27'+b2['key']+'\x27\x20of\x20\x27'+c+'\x27\x20references\x20design\x20\x27'+b2['template_id']+'\x27,\x20which\x20exists\x20in\x20neither\x20the\x20Guard\x20design-pattern\x20catalog\x20nor\x20the\x20guard-template\x20registry\x20—\x20'+'no\x20resolution\x20path\x20can\x20ever\x20fill\x20it\x20(guide\x20confirm,\x20guard_resolutions\x20and\x20module\x20plumbing\x20all\x20key\x20off\x20real\x20ids).\x20'+'Keeping\x20it\x20as\x20a\x20pending\x20design\x20would\x20leave\x20its\x20bound\x20path\x20UNGUARDED\x20behind\x20a\x20plausible\x20pending\x20label\x20'+'(bs-mn-261022\x20TPL-01:\x20nine\x20such\x20specs\x20compiled\x20into\x20a\x20machine\x20with\x20no\x20guards\x20on\x20the\x20grant-lifecycle\x20forwards).\x20'+'Correct\x20the\x20template\x27s\x20guard\x20spec\x20id\x20to\x20a\x20known\x20pattern,\x20or\x20resolve\x20this\x20spec\x20explicitly\x20(guard_resolutions\x20with\x20kind\x20\x27inline\x27).'}),Z['push'](b2);}for(const bj of feeParamCouplingMismatches(b)){l['push']({'code':'FEE_PARAM_COUPLING_MISMATCH','detail':'guard\x20\x27'+bj['key']+'\x27\x20('+bj['template_id']+')\x20claims\x20to\x20mirror\x20fee_param\x20\x27'+bj['param']+'\x27\x20('+bj['declared']+')\x20but\x20carries\x20no\x20matching\x20'+('numeric\x20literal\x20(params:\x20'+(bj['literals']['length']>0x0?bj['literals']['join'](',\x20'):'none')+').\x20The\x20guard\x20literal\x20is\x20the\x20ONLY\x20value\x20that\x20')+'becomes\x20on-chain\x20—\x20the\x20fee\x20param\x20the\x20merchant\x20sets\x20stays\x20decorative\x20(rex5-tn-261028\x20T-02).\x20'+('Re-sync\x20the\x20literal\x20with\x20fee_param\x20\x27'+bj['param']+'\x27\x20or\x20drop\x20the\x20coupling\x20claim\x20from\x20the\x20purpose.')});}for(const bk of feeParamUnlanded(b,b['fee_params'],o)){l['push']({'code':'FEE_PARAM_UNLANDED','detail':'fee_param\x20\x27'+bk['param']+'\x27\x20=\x20'+bk['value']+'\x20on\x20\x27'+b['id']+'\x27\x20lands\x20nowhere:\x20no\x20platform-take\x20landing,\x20no\x20FEE_PARAM_BINDINGS\x20row,\x20'+'no\x20allocator\x20value_from/value_from_complement,\x20no\x20mounted\x20guard-template\x20placeholder,\x20no\x20kernel\x20consumer,\x20no\x20time-instantiation\x20or\x20'+'merged-lock\x20knob,\x20and\x20no\x20identical\x20frozen\x20constant\x20in\x20the\x20shipped\x20shape\x20—\x20whoever\x20sets\x20it\x20(shipped\x20default\x20or\x20fee_overrides)\x20changes\x20'+'nothing\x20on\x20chain\x20while\x20the\x20money\x20shape\x20ignores\x20it\x20(cour-mn-261102-z5t8\x20①②).\x20'+'Fix\x20ONE\x20way:\x20zero\x20the\x20knob\x20(direct\x20sales\x20default),\x20wire\x20the\x20allocator\x20rows\x20to\x20it\x20explicitly\x20(value_from\x20/\x20value_from_complement\x20naming\x20the\x20key),\x20'+'or\x20declare\x20an\x20author-literal\x20FEE_PARAM_BINDINGS\x20row\x20so\x20the\x20value\x20provably\x20lands.'});}for(const bl of windowMathMismatches(b)){l['push']({'code':'WINDOW_MATH_MISMATCH','detail':bl['rule']==='R-WINDOW-MATH-ZERO'?'settlement\x20window\x20fee_param\x20\x27'+bl['settle_param']+'\x27\x20=\x20'+bl['settle_value']+':\x20the\x20escrow\x20releases\x20the\x20moment\x20the\x20anchor\x20node\x20is\x20entered,\x20so\x20every\x20buyer\x20window\x20is\x20structurally\x20dead\x20from\x20the\x20first\x20order\x20(ksk4\x20F-35).\x20'+'Set\x20it\x20to\x20a\x20positive\x20duration\x20that\x20covers\x20the\x20after-sales\x20schedule.':'settlement\x20window\x20fee_param\x20\x27'+bl['settle_param']+'\x27\x20('+bl['settle_value']+')\x20opens\x20the\x20release\x20before\x20buyer\x20window\x20'+bl['violates']+'\x20closes\x20—\x20the\x20refund\x20rail\x20is\x20structurally\x20dead\x20from\x20the\x20release\x20moment,\x20since\x20settlement\x20drains\x20the\x20allocation\x20balance\x20and\x20every\x20later\x20refund\x20leg\x20aborts\x20on\x20empty\x20(ktt3\x20F-05).\x20'+'Raise\x20the\x20settlement\x20window\x20to\x20>=\x20the\x20largest\x20buyer\x20window,\x20or\x20shorten\x20the\x20buyer\x20window\x20to\x20match\x20the\x20real\x20policy;\x20re-sync\x20guards[].params\x20with\x20the\x20new\x20fee_params\x20value\x20(FEE_PARAM_COUPLING_MISMATCH).'});}const a3=incentiveRatingFloorClaims(b);if(a3['length']>0x0){const bm=[...new Set(a3['map'](bo=>'\x27'+bo['excerpt']+'\x27\x20('+bo['field']+')'))]['join'](',\x20'),bn=[...new Set(a3['map'](bo=>bo['claimed']))];if(D!=='review_reward')l['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bm+')\x20but\x20review_mode\x20is\x20\x27'+D+'\x27\x20—\x20no\x20reward\x20track\x20'+'exists,\x20so\x20the\x20promise\x20pays\x20nothing\x20regardless\x20of\x20rating\x20(ktt3\x20F02/F12\x20residual).\x20'+('Build\x20with\x20review_mode\x20\x27review_reward\x27\x20and\x20reward_rating_floor\x20=\x20'+bn['join']('/')+',\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});else{const bo=w['find'](bv=>bv['host']==='reward'),bp=bo!==undefined?o[bo['key']]:undefined,bq=bp?.['kind']==='template'&&bp['params']?{...bo?.['params']??{},...bp['params']}:bo?.['params']??{},br=bq['rating_floor'],bs=typeof br==='number'&&Number['isFinite'](br)?br:typeof br==='string'&&br['trim']()!==''&&Number['isFinite'](Number(br))?Number(br):undefined,bt=Math['max'](0x0,...a3['filter'](bv=>bv['kind']==='praise')['map'](bv=>bv['claimed'])),bu=[...new Set(a3['filter'](bv=>bv['kind']==='numeric')['map'](bv=>bv['claimed']))];if(bs===undefined||bs<=0x0){const bv=bp?.['kind']==='inline'?'the\x20claim\x20guard\x20is\x20a\x20hand-designed\x20inline\x20root\x20compile\x20cannot\x20statically\x20parse\x20—\x20verify\x20its\x20rating\x20leg\x20yourself':'the\x20reward\x20track\x20carries\x20NO\x20rating\x20leg\x20(reward_rating_floor:\x200\x20explicit\x20opt-out,\x20or\x20a\x20reward\x20spec\x20without\x20rating_floor\x20—\x20the\x20S14\x20default\x20only\x20arms\x20the\x20kernel\x20DEFAULT\x20assembly)';l['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bm+')\x20but\x20the\x20compiled\x20reward\x20track\x20carries\x20NO\x20statically\x20visible\x20'+('rating\x20leg:\x20'+bv+'\x20—\x20the\x20bounty\x20pays\x20even\x20at\x20rating\x201\x20while\x20the\x20store\x20page\x20advertises\x20the\x20floor\x20')+('(ktt3\x20F02/F12\x20residual;\x20S14\x20default\x20arms\x20'+G+').\x20Pass\x20reward_rating_floor\x20=\x20'+bn['join']('/')+'\x20to\x20arm\x20it,\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});}else{if(bt>0x0&&bs<bt)l['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20GOOD-review\x20reward\x20('+bm+')\x20—\x20a\x20praise\x20promise\x20derives\x20to\x20floor\x20'+(bt+'\x20(good\x20==\x204+,\x20S14)\x20—\x20but\x20the\x20armed\x20floor\x20is\x20'+bs+':\x20ratings\x20between\x20'+bs+'\x20')+('and\x20'+(bt-0x1)+'\x20would\x20PAY\x20while\x20the\x20store\x20page\x20advertises\x20a\x20good-review-only\x20bounty\x20')+('(ktt3\x20F02/F12\x20residual,\x20S14\x20praise\x20shape).\x20Raise\x20reward_rating_floor\x20to\x20>=\x20'+bt+',\x20or\x20rewrite\x20the\x20prose.')});else bu['length']>0x0&&!bu['includes'](bs)&&l['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20rating\x20floor\x20'+bu['join']('/')+'\x20('+bm+')\x20but\x20the\x20armed\x20floor\x20is\x20'+bs+'\x20—\x20'+'orders\x20at\x20the\x20promised\x20rating\x20would\x20be\x20REJECTED\x20by\x20the\x20claim\x20guard\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(ktt3\x20F02/F12\x20residual).\x20Align\x20reward_rating_floor\x20with\x20the\x20prose,\x20or\x20rewrite\x20the\x20prose.'});}}}if(D==='review_reward'){const bw=rewardWindowDayClaims(b);if(bw['length']>0x0){const bx=w['find'](bz=>bz['host']==='reward'),by=bx!==undefined?o[bx['key']]:undefined;if(bx!==undefined&&by?.['kind']!=='inline'){const bz=by?.['kind']==='template'&&by['params']?{...bx['params']??{},...by['params']}:bx['params']??{},bA=bF=>typeof bF==='number'&&Number['isFinite'](bF)?bF:typeof bF==='string'&&bF['trim']()!==''&&Number['isFinite'](Number(bF))?Number(bF):undefined,bB=bA(bz['closes_after_days']),bC=bB??R,bD=[...new Set(bw['map'](bF=>bF['claimed']))],bE=[...new Set(bw['map'](bF=>'\x27'+bF['excerpt']+'\x27\x20('+bF['field']+')'))]['join'](',\x20');!bD['includes'](bC)&&l['push']({'code':'INCENTIVE_WINDOW_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20claimable\x20span\x20of\x20'+bD['join']('/')+'\x20day(s)\x20('+bE+')\x20but\x20the\x20compiled\x20'+('claim\x20window\x20closes\x20'+bC+'\x20day(s)\x20after\x20it\x20opens\x20(closes_after_days')+(bB!==undefined?'\x20from\x20the\x20declared\x20reward\x20spec\x20params)':'\x20—\x20kernel\x20default\x20assembly,\x20bsw4\x20F-11\x20span\x20'+M)+'):\x20orders\x20claimed\x20inside\x20the\x20ADVERTISED\x20window\x20would\x20abort\x20E_GUARD_EXPIRED\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(h1w9\x20F-15:\x20\x227\x20days\x20to\x20claim\x22\x20advertising\x20vs\x20the\x20compiled\x2014d).\x20Align\x20the\x20window\x20—\x20pass\x20'+('reward_claim_closes_after_days\x20=\x20'+bD['join']('/')+'\x20(kernel\x20default\x20assembly)\x20or\x20pin\x20the\x20reward\x20spec\x27s\x20')+'closes_after_days\x20param\x20to\x20it\x20—\x20or\x20rewrite\x20the\x20prose.'});}}}const a4=new Set(j['flatMap'](bF=>(bF['from']??[])['map'](bG=>typeof bG==='string'?undefined:bG['guard_key'])['filter'](bG=>typeof bG==='string')));for(const bF of k){typeof bF['guard_key']==='string'&&bF['recipient']==='guard_identifier'&&bF['recipient_key']===String(TASK_BINDING_SLOT)&&a4['add'](bF['guard_key']);}const a5=new Set();for(const bG of w){if(!a4['has'](bG['key'])&&!p['has'](bG['key']))continue;const bH=Y['get'](bG['key']);if(bH===undefined)continue;const bI=bH['table']['some'](bJ=>bJ['identifier']===TASK_BINDING_SLOT);if(bI)continue;Y['set'](bG['key'],{...bH,'table':[...bH['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),a5['add'](bG['key']);}for(const bJ of w){if(bJ['host']!=='reward')continue;const bK=Y['get'](bJ['key']);if(bK?.['root']===undefined)continue;const bL=bK['table']['some'](bN=>{const bO=bN;if(bO['b_submission']!==!![])return![];if(bO['object_type']==='Order')return!![];const bP=bO['name'];return typeof bP==='string'&&/order/i['test'](bP);}),bM=verifyGuardBinding({'host':'reward_claim','root':bK['root'],'facts':{'order_submission_declared':bL}});bM['some'](bN=>bN['code']==='RC_NO_ORDER_ANCHOR')&&l['push']({'code':'REWARD_WINDOW_UNRESOLVABLE','detail':'reward\x20claim\x20guard\x20\x27'+bJ['key']+'\x27\x20of\x20\x27'+c+'\x27\x20carries\x20order./progress.\x20window\x20legs\x20that\x20have\x20NOTHING\x20to\x20resolve\x20against\x20in\x20the\x20'+'reward\x20context\x20(the\x20resolved\x20guard\x20table\x20declares\x20no\x20order-slot\x20submission)\x20—\x20the\x20legs\x20never\x20evaluate,\x20yet\x20they\x20fire\x20as\x20the\x20claim\x20'+'window\x20money\x20gate,\x20so\x20a\x20day-0\x20claim\x20releases\x20the\x20bounty\x20while\x20the\x20disclosed\x20OPENS/CLOSES\x20schedule\x20is\x20fiction\x20(cour\x20C2\x20⑤,\x20T2).\x20'+'Fix\x20ONE\x20way:\x20mount\x20a\x20guard\x20template\x20that\x20declares\x20the\x20order-slot\x20submission\x20(identifier\x200,\x20b_submission,\x20object_type\x20Order\x20—\x20e.g.\x20tpl_reward_one_time_claim),\x20'+'or\x20drop\x20the\x20order./progress.\x20window\x20legs\x20and\x20gate\x20the\x20claim\x20on\x20the\x20reward-context\x20facts\x20(claim-allowed\x20node\x20set,\x20rating\x20leg,\x20open/close\x20day\x20twins).'});}{const bN=b['settlement_window_merge'];if(bN!==undefined&&bN['length']>0x0){const bO=b['fee_params'],bP=bT=>{const bU=e[bT]??bO[bT];if(bU===undefined||bU===null)return undefined;const bV=typeof bU==='number'?bU:Number(bU);return Number['isFinite'](bV)&&bV>=0x0?bV:undefined;};let bQ=0x0;for(const bT of bN){const bU=bP(bT);if(bU===undefined){bQ=undefined;break;}bQ+=bU;}const bR='settlement_window_merge\x20['+bN['join']('\x20+\x20')+']',bS=w['find'](bV=>{const bW=timeInstantiationFor(b['id'],bV['key']);return bW!==undefined&&bW['direction']==='lower'&&bW['days']!==undefined&&bN['includes'](bW['days']);});if(bQ===undefined)l['push']({'code':'MERGED_LOCK_MISMATCH','detail':bR+':\x20a\x20merged\x20window\x20has\x20no\x20readable\x20day\x20value,\x20so\x20the\x20effective\x20release\x20lock\x20cannot\x20be\x20'+'determined.\x20Declare\x20every\x20merged\x20key\x20as\x20a\x20numeric\x20fee_param\x20(or\x20supply\x20it\x20as\x20an\x20input).'});else{if(bS===undefined)l['push']({'code':'MERGED_LOCK_MISMATCH','detail':bR+'\x20(=\x20'+bQ+'\x20days)\x20declares\x20a\x20merged\x20release\x20lock,\x20but\x20no\x20compiled\x20settlement\x20gate\x20'+'(\x22lower\x22\x20time\x20instantiation\x20whose\x20day\x20knob\x20is\x20one\x20of\x20the\x20merged\x20keys)\x20carries\x20it\x20—\x20the\x20'+'declaration\x20would\x20be\x20prose\x20while\x20the\x20escrow\x20releases\x20before\x20the\x20merged\x20windows\x20finish.'});else{if(o[bS['key']]?.['kind']!=='inline'&&Y['has'](bS['key'])){const bV=Y['get'](bS['key'])['table'];let bW;for(const bX of bV){if(bX['identifier']!==0x3)continue;const bY=bX['value'],bZ=typeof bY==='number'?bY:Number(bY);if(Number['isFinite'](bZ))bW=bZ;}bW!==bQ&&l['push']({'code':'MERGED_LOCK_MISMATCH','detail':bR+'\x20=\x20'+bQ+'\x20days\x20by\x20declaration,\x20but\x20guard\x20\x27'+bS['key']+'\x27\x20compiled\x20its\x20length\x20'+('literal\x20to\x20'+(bW===undefined?'(none)':bW+'\x20days')+'.\x20The\x20escrow\x20would\x20')+'release\x20early\x20while\x20a\x20merged\x20buyer\x20window\x20can\x20still\x20draw\x20it.'});}}}}}for(const [c0,c1]of Y){const c2=normalizeGuardRowNames(c1['table'],c1['description'],MAX_GUARD_DESCRIPTION_CONTENT);(c2['table']!==c1['table']||c2['description']!==c1['description'])&&Y['set'](c0,{...c1,'table':c2['table'],'description':typeof c2['description']==='string'?c2['description']:c1['description']});}for(const c3 of w){if(c3['host']!=='reward')continue;const c4=c3['params']??{},c5=['expected_pre_claim_node','expected_pre_claim_node_alt','expected_pre_claim_node_alt2','expected_pre_claim_node_alt3'],c6=c5['map'](c9=>c4[c9])['filter'](c9=>typeof c9==='string'),c7=c6['length']!==new Set(c6)['size'];if(!c7)continue;const c8=j['filter'](c9=>(REVIEW_OUTCOME_CLASS['test'](c9['name'])||c9['semantic_role']==='final')&&!c6['includes'](c9['name']))['map'](c9=>c9['name']);if(c8['length']===0x0)continue;c3['purpose']=c3['purpose']+'\x20REWARD_CLAIM_NODESET_DISPLACED\x20(kq4x\x20P-018):\x20the\x20expected_pre_claim_node*\x20slots\x20carry\x20a\x20'+('duplicate\x20same-value\x20leg\x20('+c6['join'](',\x20')+')\x20while\x20the\x20machine\x20shape\x20mounts\x20claim-eligible\x20node(s)\x20NOT\x20in\x20')+('the\x20set:\x20'+c8['join'](',\x20')+'\x20—\x20those\x20nodes\x20can\x20never\x20open\x20this\x20bounty.\x20If\x20they\x20SHOULD,\x20pin\x20the\x20full\x20set\x20')+'with\x20explicit\x20distinct\x20expected_pre_claim_node\x20/\x20_alt\x20/\x20_alt2\x20/\x20_alt3\x20params\x20on\x20this\x20host:\x22reward\x22\x20spec\x20'+'(a\x20two-slot\x20primary+alt\x20form\x20is\x20legal\x20—\x20unused\x20alts\x20may\x20stay\x20undeclared).';}return{'guardSpecs':w,'resolutions':o,'resolvedGuards':Y,'unresolved':Z,'omitKeys':s,'recoverTwinRails':p,'declareReasons':u,'specByKey':A,'slot254Injected':a5,'injectedOrderHolderKeys':x,'edgeBoundKeys':a4,'derived':{'reviewMode':D,'rewardMark':E,'needsRepository':X,'experienceClaimKey':U},'blockers':l};}
|
|
1
|
+
import{fillGuardTemplate,getTemplateById}from'../knowledge/guard-templates.js';import{validateQuerySignatures}from'../knowledge/chain-query-registry.js';import{hasCallerIdentityLeg}from'../knowledge/allocator-rail-verifier.js';import{applyFeeParamBindings}from'../knowledge/fee-param-bindings.js';import{identityDefaultResolution,MS_PER_DAY,patternDefaultResolution,progressStateDefaultResolution,timeInstantiationFor,timeWindowMsResolution}from'../knowledge/pattern-resolutions.js';import{GUARD_DESIGN_PATTERNS}from'../knowledge/guard-design-patterns.js';import{lookupBinding}from'../knowledge/guard-binding-table.js';import{TASK_BINDING_SLOT,ONCE_SLOT_BYTES}from'../knowledge/onchain-constants.js';import{feeParamCouplingMismatches,feeParamUnlanded,windowMathMismatches,incentiveRatingFloorClaims,rewardWindowDayClaims,evidencePolicyCollisions}from'../knowledge/template-scanner.js';import{verifyGuardBinding}from'../knowledge/guard-binding-verifier.js';import{ref}from'./plan.js';import{applyConditionalSelectors}from'./input-normalize.js';function safeId(a){return a['replace'](/[^a-zA-Z0-9_]/g,'_');}function normalizeLogicArity(a){if(Array['isArray'](a))return a['map'](normalizeLogicArity);if(a===null||typeof a!=='object')return a;const b=a,c={};for(const [d,e]of Object['entries'](b))c[d]=normalizeLogicArity(e);if((c['type']==='logic_and'||c['type']==='logic_or')&&Array['isArray'](c['nodes'])){const f=c['nodes'];if(f['length']===0x1)return f[0x0];}return c;}const WINDOW_LEG_DAYS_PARAM='closing_window_days',WINDOW_LEG_ANCHOR_PARAM='window_anchor_node';function windowLegDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a,c=b[WINDOW_LEG_DAYS_PARAM],d=b[WINDOW_LEG_ANCHOR_PARAM];if(typeof c!=='string'||c===''||typeof d!=='string'||d==='')return undefined;return{'daysKey':c,'anchorNode':d};}function andClosingWindowLeg(a,b,c,d){const e=[...a],f=new Set();let g;for(const m of e){const n=m;if(typeof n['identifier']==='number')f['add'](n['identifier']);g===undefined&&n['b_submission']===!![]&&n['object_type']==='Order'&&n['value_type']==='Address'&&(g=n['identifier']);}const h=()=>{let o=0x0;while(f['has'](o)||o===TASK_BINDING_SLOT||o===ONCE_SLOT_BYTES)o+=0x1;return f['add'](o),o;};g===undefined&&(g=h(),e['push']({'identifier':g,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(window-leg\x20progress\x20witness)'}));const i=h(),j=h(),k=h();e['push']({'identifier':i,'b_submission':![],'value_type':'String','value':c,'name':'Window\x20anchor\x20node\x20(closing\x20leg)'},{'identifier':j,'b_submission':![],'value_type':'U64','value':d,'name':'Window\x20length\x20in\x20days\x20(closing\x20leg)'},{'identifier':k,'b_submission':![],'value_type':'U64','value':MS_PER_DAY,'name':'Days-to-milliseconds\x20constant\x20(closing\x20leg)'});const l={'type':'logic_as_u256_lesser_or_equal','nodes':[{'type':'context','context':'Clock'},{'type':'calc_number_add','nodes':[{'type':'query_progress_history_time','object':{'identifier':g,'convert_witness':'OrderProgress'},'where':{'nextNode':c},'find':'last'},{'type':'calc_number_multiply','nodes':[{'type':'identifier','identifier':j},{'type':'identifier','identifier':k}]}]}]};return{'table':e,'root':{'type':'logic_and','nodes':[b,l]}};}const NODE_GATE_PARAM='write_window_nodes';function nodeGateDecl(a){if(a===null||typeof a!=='object')return undefined;const b=a[NODE_GATE_PARAM];if(typeof b!=='string')return undefined;const c=b['split'](/[,\s]+/)['map'](d=>d['trim']())['filter'](d=>d!=='');return c['length']>0x0?{'nodes':c}:undefined;}function andNodeGateLeg(a,b,c){const d=[...a],e=new Set();let f;for(const k of d){const l=k;if(typeof l['identifier']==='number')e['add'](l['identifier']);f===undefined&&l['b_submission']===!![]&&l['object_type']==='Order'&&l['value_type']==='Address'&&(f=l['identifier']);}const g=()=>{let m=0x0;while(e['has'](m)||m===TASK_BINDING_SLOT||m===ONCE_SLOT_BYTES)m+=0x1;return e['add'](m),m;};f===undefined&&(f=g(),d['push']({'identifier':f,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(node-window\x20progress\x20witness)'}));const h=c['map'](()=>g());c['forEach']((m,o)=>d['push']({'identifier':h[o],'b_submission':![],'value_type':'String','value':m,'name':'Node-window\x20member\x20(write\x20gate)'}));const i=h['map'](m=>({'type':'logic_equal','nodes':[{'type':'query','query':'progress.current','object':{'identifier':f,'convert_witness':'OrderProgress'},'parameters':[]},{'type':'identifier','identifier':m}]})),j=i['length']===0x1?i[0x0]:{'type':'logic_or','nodes':i};return{'table':d,'root':{'type':'logic_and','nodes':[b,j]}};}function andDisputeBindLeg(a,b){const c=[...a],d=new Set();let e;for(const f of c){const g=f;if(typeof g['identifier']==='number')d['add'](g['identifier']);e===undefined&&g['b_submission']===!![]&&g['object_type']==='Order'&&g['value_type']==='Address'&&g['identifier']!==TASK_BINDING_SLOT&&(e=g['identifier']);}if(e===undefined){let h=0x0;while(d['has'](h)||h===TASK_BINDING_SLOT||h===ONCE_SLOT_BYTES)h+=0x1;e=h,d['add'](h),c['push']({'identifier':e,'b_submission':!![],'value_type':'Address','object_type':'Order','name':'Order\x20object\x20address\x20(case-bind\x20dispute-state\x20witness)'});}return{'table':c,'root':{'type':'logic_and','nodes':[b,{'type':'query','query':'order.dispute.open','object':{'identifier':e},'parameters':[]}]}};}export function normalizeInlineGuardTable(a,b){const c=b+'_service',d=f=>f['replace'](/\//g,'_'),e=d(c);return a['map'](f=>{if(f===null||typeof f!=='object'||Array['isArray'](f))return f;const g={...f};typeof g['value']==='string'&&d(g['value'])===e&&(g['value']=ref('service'));if(g['b_submission']===undefined)g['b_submission']=![];return g;});}function shortRowLabel(a,b){const c=a['search'](/:| \(| — /),d=c>0x0?a['slice'](0x0,c)['trim']():'';if(d['length']>0x0&&Buffer['byteLength'](d,'utf8')<=b)return d;let e=a;while(e['length']>0x0&&Buffer['byteLength'](e+'...','utf8')>b)e=e['slice'](0x0,-0x1);return e+'...';}const MAX_GUARD_DESCRIPTION_CONTENT=0xf9e;export function normalizeGuardRowNames(a,b,c){const d=0x3f,e=[],f=a['map'](j=>{if(!j||typeof j!=='object')return j;const k=j,l=k['name'];if(typeof l!=='string')return j;const m=l['startsWith']('0x')?'n_'+l:l;if(Buffer['byteLength'](m,'utf8')<=d)return m===l?j:{...k,'name':m};return e['push']('slot\x20'+String(k['identifier']??'?')+':\x20'+m),{...k,'name':shortRowLabel(m,d)};});if(e['length']===0x0)return{'table':f,'description':b};const g=typeof b==='string'?b:'';let h=g+'\x0a\x0aRow\x20labels\x20(the\x20on-chain\x20name\x20column\x20is\x20capped\x20at\x2064\x20BCS\x20bytes,\x20so\x20each\x20long\x20label\x20is\x20spelled\x20out\x20here):',i=0x0;for(const j of e){const k=h+'\x0a-\x20'+j;if(Buffer['byteLength'](k,'utf8')>c)break;h=k,i+=0x1;}return{'table':f,'description':i===0x0?b:h};}export function guardMountCensus(a,b,c){const {selectorDroppedKeys:d,shape:e,rows:f}=c??applyConditionalSelectors(a,b),g=new Set(e['flatMap'](k=>(k['from']??[])['map'](l=>typeof l==='string'?undefined:l['guard_key'])['filter'](l=>typeof l==='string'))),h=new Set(f['map'](k=>k['guard_key'])['filter'](l=>typeof l==='string')),i=new Set();let j=![];return a['guards']['forEach']((k,l)=>{if(d['has'](k['key']??k['template_id']+'#'+l))return;if(k['policy']!==undefined)i['add'](k['key']??k['template_id']+'#'+l);if(k['host']==='service'&&(k['key']??k['template_id']+'#'+l)==='buy')j=!![];}),{'edgeKeys':g,'railKeys':h,'policyKeys':i,'buyMounted':j};}const REVIEW_OUTCOME_CLASS=/wonder|no_wonder|praise|like|dislike/i;export function fillGuards(a){const {template:b,base:e,inputs:f,guardResolutions:h}=a,{dropKeys:i,selectorDroppedKeys:j,shape:k,rows:l}=a['selector'],o=[],p={},q=new Set();b['guards']['forEach']((af,ag)=>{const ah=af['key']??af['template_id']+'#'+ag;if(j['has'](ah))return;const ai=timeWindowMsResolution(b['id'],ah,f,b['fee_params'])??patternDefaultResolution(b['id'],ah)??progressStateDefaultResolution(b,af)??identityDefaultResolution(b,af);if(ai!==undefined)p[ah]=ai;}),Object['assign'](p,Object['fromEntries'](Object['entries'](h??{})['filter'](([,af])=>af?.['kind']!=='declare')));const t=[];for(const [af,ag]of Object['entries'](h??{})){if(ag?.['kind']==='omit')t['push'](af);}const u=new Set();if(t['length']>0x0){const ah=guardMountCensus(b,f,a['selector']);for(const ai of t){const aj=b['guards']['find']((al,am)=>(al['key']??al['template_id']+'#'+am)===ai);if(aj===undefined)continue;const ak=[];if(ah['edgeKeys']['has'](ai))ak['push']('a\x20machine\x20forward\x20edge\x20(guard_key)');if(ah['railKeys']['has'](ai))ak['push']('an\x20allocator\x20rail\x20row\x20(guard_key)');if(ah['policyKeys']['has'](ai))ak['push']('a\x20Repository\x20write-policy\x20credential\x20(policy)');if(aj['host']==='service'&&ai==='buy')ak['push']('the\x20Service\x20buy\x20gate\x20(buy_guard)');ak['length']>0x0?o['push']({'code':'GUARD_OMIT_UNSUPPORTED','detail':'guard_resolutions[\x27'+ai+'\x27]\x20=\x20{kind:\x27omit\x27}\x20refused:\x20this\x20design\x20is\x20bound\x20to\x20'+ak['join']('\x20and\x20')+'\x20—\x20'+'omitting\x20it\x20would\x20orphan\x20the\x20binding\x20(open\x20rail\x20/\x20open\x20write\x20/\x20ungated\x20purchase).\x20'+'Fold\x20the\x20design\x27s\x20intent\x20into\x20the\x20bound\x20site\x20instead,\x20or\x20keep\x20the\x20guard\x20resolved.'}):u['add'](ai);}}const w=new Set(l['map'](al=>al['guard_key'])['filter'](al=>typeof al==='string')),x=new Map();b['guards']['forEach']((al,am)=>{const an=al['key']??al['template_id']+'#'+am,ao=al['identity_leg_exempt'];typeof ao==='string'&&ao['trim']()!==''&&w['has'](an)&&x['set'](an,ao['trim']());});for(const [al,am]of Object['entries'](h??{})){if(am?.['kind']!=='declare')continue;const an=typeof am['reason']==='string'?am['reason']['trim']():'';if(an===''){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+al+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20reason\x20field\x20is\x20mandatory\x20and\x20'+'must\x20be\x20non-empty\x20—\x20the\x20disclosure\x20that\x20ships\x20with\x20the\x20exemption\x20quotes\x20it\x20verbatim,\x20and\x20an\x20'+'unexplained\x20legless\x20money\x20rail\x20is\x20exactly\x20what\x20the\x20gate\x20exists\x20to\x20prevent\x20(ks11).'});continue;}const ao=b['guards']['find']((ap,aq)=>(ap['key']??ap['template_id']+'#'+aq)===al);if(ao===undefined)continue;if(!w['has'](al)){o['push']({'code':'GUARD_DECLARE_UNSUPPORTED','detail':'guard_resolutions[\x27'+al+'\x27]\x20=\x20{kind:\x27declare\x27}\x20refused:\x20the\x20declare\x20channel\x20is\x20honored\x20ONLY\x20for\x20'+('allocator-rail-bound\x20designs\x20(a\x20spec\x20mounted\x20on\x20an\x20allocator\x20row),\x20and\x20\x27'+al+'\x27\x20is\x20bound\x20to\x20no\x20')+'allocator\x20row.\x20An\x20identity-less\x20forward/policy/buy\x20gate\x20is\x20a\x20different\x20violation\x20family\x20'+'(RELEASE_EDGE_NO_IDENTITY\x20/\x20REPO_GUARD_POLICY_MISSING)\x20with\x20its\x20own\x20remedy\x20—\x20declare\x20does\x20not\x20reach\x20it.'});continue;}x['set'](al,an);}const y=b['guards']['map']((ap,aq)=>{const ar=ap['key']??ap['template_id']+'#'+aq,as=applyFeeParamBindings(ap['params'],b['id'],ar,f,b['fee_params']);return{'key':ar,'template_id':ap['template_id'],'host':ap['host'],'purpose':ap['purpose'],'policy':ap['policy'],'params':as};})['filter'](ap=>!i['has'](ap['key'])&&!u['has'](ap['key'])),z=new Set(b['guards']['map'](ap=>getTemplateById(ap['template_id']))['filter'](ap=>ap?.['numeric_row_comparison']===!![])['map'](ap=>ap['id']));if(z['size']>0x0){const ap=new Map();for(const aq of y){if(aq['host']!=='repository'||!aq['policy']||typeof aq['policy']['name']!=='string')continue;ap['set'](aq['policy']['name'],{'valueType':String(aq['policy']['value_type']??'String'),'specKey':aq['key']});}for(const ar of y){if(!z['has'](ar['template_id']))continue;const as=ar['params']?.['row_name'];if(typeof as!=='string'||as==='')continue;const at=ap['get'](as);if(!at)continue;if(/^U(8|16|32|64|128|256)$/i['test'](at['valueType']))continue;o['push']({'code':'REPO_POLICY_TYPE_MISMATCH','detail':'guard\x20spec\x20\x27'+ar['key']+'\x27\x20('+ar['template_id']+')\x20compares\x20repository\x20row\x20\x27'+as+'\x27\x20with\x20a\x20numeric\x20'+('(U8..U256)\x20read,\x20but\x20the\x20sibling\x20policy\x20(spec\x20\x27'+at['specKey']+'\x27)\x20declares\x20value_type\x20')+('\x27'+at['valueType']+'\x27.\x20The\x20chain\x20parses\x20ONLY\x20the\x20U8..U256\x20type\x20tags\x20')+'(E_NUMBER_TYPE_NOT_MATCH)\x20and\x20the\x20write\x20side\x20pins\x20data[0]\x20to\x20the\x20policy\x20value_type\x20'+'—\x20a\x20String\x20row\x20aborts\x20this\x20guard\x20on\x20EVERY\x20evaluation,\x20so\x20the\x20rail\x20it\x20'+'gates\x20is\x20structurally\x20dead\x20(mainnet\x20proof:\x20upw-b7k2\x20R1,\x20all\x20three\x20band\x20allocators\x20dead\x20in\x20'+'template\x20v212).\x20Change\x20the\x20policy\x20value_type\x20to\x20a\x20numeric\x20type\x20(U64\x20for\x20bps-scale\x20values).'});}}const A=new Map();{const au=new Set(y['map'](aw=>aw['key'])),av=aw=>{if(aw===undefined)return![];const ax=y['find'](az=>az['key']===aw);if(ax===undefined)return![];const ay=p[aw];if(ay?.['kind']==='inline'||ay?.['kind']==='template'||ax['template_id']['startsWith']('tpl_'))return!![];if(ay?.['kind']==='omit'&&u['has'](aw))return![];return lookupBinding(ax,b)!==undefined;};for(const aw of k){for(const ax of aw['from']??[]){const ay=typeof ax==='string'?{'prev':ax}:ax,az=ay['operator']??aw['operator']??(ay['prev']===''?'order_payer':'merchant');if(az!=='order_payer')continue;if(ay['guard_key']!==undefined&&av(ay['guard_key']))continue;const aA=ay['forward']??(ay['prev']===''?'enter_'+aw['name']:ay['prev']+'_to_'+aw['name']);if(A['has'](aA))continue;let aB='order_holder_'+aA;while(au['has'](aB))aB=aB+'_x';au['add'](aB),A['set'](aA,aB);const aC=ay['guard_key']===undefined?'Declare\x20an\x20explicit\x20order-holder\x20guard_key\x20on\x20the\x20edge\x20to\x20replace\x20this\x20auto\x20key\x20with\x20a\x20named\x20credential.':'The\x20edge\x20DOES\x20declare\x20guard_key\x20\x27'+ay['guard_key']+'\x27,\x20but\x20that\x20design\x20does\x20not\x20resolve\x20to\x20a\x20Guard\x20object,\x20so\x20the\x20forward\x20would\x20otherwise\x20ship\x20unguarded;\x20resolve\x20\x27'+ay['guard_key']+'\x27\x20(guard_resolutions,\x20or\x20re-point\x20the\x20spec\x20at\x20an\x20instantiable\x20tpl_*\x20id)\x20to\x20carry\x20the\x20richer\x20condition\x20—\x20this\x20identity\x20leg\x20stays\x20bound\x20either\x20way.';y['push']({'key':aB,'template_id':'tpl_forward_order_holder','host':'machine','purpose':'F05\x20kernel-injected\x20order-holder\x20identity\x20binding\x20for\x20the\x20buyer-exclusive\x20forward\x20'+('\x27'+aA+'\x27\x20(edge\x20\x27'+ay['prev']+'\x27->\x27'+aw['name']+'\x27):\x20namedOperator\x20\x22\x22\x20passes\x20for\x20')+'anyone\x20at\x20the\x20permission\x20layer,\x20so\x20without\x20this\x20guard\x20the\x20'+'buyer\x20rail\x20is\x20advanceable\x20by\x20ANY\x20passport\x20holder\x20attached\x20to\x20the\x20order\x20—\x20takeover\x20'+('risk.\x20'+aC)});}}}const B=f['arbitration_vote_policy'],C=B==='party_panel'?'party_panel':'open';if(b['arbitration_mode']==='third_party'&&C==='open'&&!y['some'](aD=>aD['template_id']['startsWith']('tpl_voting_guard_'))){let aD='arbitration_vote_open';const aE=new Set(y['map'](aF=>aF['key']));while(aE['has'](aD))aD=aD+'_x';y['push']({'key':aD,'template_id':'tpl_voting_guard_open_vote','host':'arbitration','purpose':'F-cu\x20kernel-injected\x20open-vote\x20surface\x20for\x20the\x20third_party\x20venue:\x20an\x20EMPTY\x20'+'voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20plain\x20votes\x20hard-require\x20permission\x20358\x20'+'(admin-only\x20by\x20default),\x20so\x20disputes\x20dead-lock\x20when\x20the\x20arb\x20admin\x20is\x20'+'unresponsive\x20(crs9-F-36).\x20Every\x20Passport\x20holder\x20may\x20vote\x20at\x20flat\x20weight\x201\x20'+'(O-F26:\x20CONSTANT-TRUE\x20gate\x20—\x20the\x20scanner\x20red-flags\x20it;\x20configure\x20a\x20'+'roster+threshold\x20guard\x20before\x20real\x20disputes,\x20or\x20pass\x20'+'arbitration_vote_policy:\x27party_panel\x27\x20to\x20skip\x20this\x20injection\x20entirely\x20and\x20'+'bind\x20tpl_voting_guard_numeric_weight\x20/\x20tpl_voting_guard_party_only);\x20'+'a\x20deliberately\x20closed\x20panel\x20re-declares\x20tpl_voting_guard_numeric_weight.','params':{'vote_weight':0x1}});}const D=new Map(y['map'](aF=>[aF['key'],aF])),E=f['review_mode'],F=E==='review'||E==='review_reward'||E==='none'?E:undefined,G=F??b['review_mode']??'none',H=e+'_review_reward',I=aF=>{const aG=f[aF]??b['fee_params'][aF];if(typeof aG==='number'&&Number['isFinite'](aG))return aG;if(typeof aG==='string'&&aG['trim']()!==''&&Number['isFinite'](Number(aG)))return Number(aG);return undefined;},J=0x4,K=I('reward_rating_floor'),L=K??J,M=I('reward_claim_opens_after_days'),N=I('reward_claim_closes_after_days'),O=0xe,P=0xe,Q=b['fee_params']['return_window_days']??b['fee_params']['review_window_days'],R=typeof Q==='number'&&Number['isFinite'](Q)&&Q>0x0?Q:0x0,S=Math['max'](O,R+0x1),T=M??S,U=N??P;if(G==='review_reward'){const aF=y['find'](aJ=>aJ['host']==='reward'),aG=aF!==undefined?p[aF['key']]:undefined,aH=aG!==undefined&&(aG['kind']==='template'||aG['kind']==='inline'),aI=aF!==undefined&&(aF['template_id']['startsWith']('tpl_')||aH);if(aF===undefined||!aI){const aJ=/deliver|complet|receiv|fulfil|finish/i,aK=/fund|pledge|back/i,aL=k['find'](aS=>/review/i['test'](aS['name'])),aM=k['find'](aS=>aJ['test'](aS['name'])),aN=k['filter'](aS=>aS['semantic_role']==='final')['map'](aS=>aS['name']),aO=k['filter'](aS=>REVIEW_OUTCOME_CLASS['test'](aS['name']))['map'](aS=>aS['name']),aP=aL?.['name']??aM?.['name']??aN[0x0],aQ=aM!==undefined?aN['filter'](aS=>!aK['test'](aS)):aN,aR=[...new Set([aP,...aO,...aQ])]['slice'](0x0,0x4);if(aP!==undefined){const aS=new Set([aP,...aO,...aQ])['size']>0x4,aT='Claim-set\x20default\x20(ks7\x20F-25\x20+\x20kq4x\x20P-018):\x20the\x20bounty\x20anchors\x20on\x20the\x20review\x20node,\x20else\x20a\x20delivery-class\x20node,\x20else\x20the\x20first\x20terminal;\x20review-outcome\x20nodes\x20(wonder/no_wonder/praise/like/dislike)\x20take\x20the\x20slots\x20between\x20the\x20anchor\x20and\x20the\x20settlement\x20terminals'+(aM!==undefined?',\x20and\x20funding-class\x20settlement\x20terminals\x20are\x20EXCLUDED\x20—\x20a\x20funding\x20release\x20(funded_released\x20family)\x20precedes\x20physical\x20fulfillment,\x20so\x20a\x20window\x20measured\x20there\x20ships\x20the\x20bounty\x20permanently\x20unclaimable;\x20hosting\x20the\x20bounty\x20on\x20a\x20funding\x20terminal\x20requires\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20(the\x20named-design\x20escape\x20hatch).':'\x20(this\x20shape\x20mounts\x20no\x20delivery-class\x20node,\x20so\x20funding-class\x20terminals\x20stay\x20IN\x20the\x20default\x20set);\x20an\x20explicit\x20host:\x22reward\x22\x20spec\x20can\x20pin\x20any\x20claim\x20set.'),aU=L>0x0,aV=aU?'Rating\x20leg\x20ARMED\x20on\x20the\x20plan-created\x20\x27'+e+'_review\x27\x20repository\x20/\x20\x27rating\x27\x20policy\x20(order-keyed\x20U64):\x20pays\x20only\x20at\x20rating\x20>=\x20'+L+'\x20(reward_rating_floor\x20input'+(K===undefined?'\x20—\x20S14\x20default\x20'+J+',\x20no\x20input\x20given':'')+').':'No\x20rating\x20leg\x20—\x20reward_rating_floor\x20was\x20EXPLICITLY\x20set\x20to\x200\x20(plain\x20praise\x20bounty\x20opt-out,\x20S14\x20default\x20is\x20'+J+').',aW=M!==undefined?'Claim\x20window:\x20opens\x20'+T+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(reward_claim_opens_after_days\x20input;\x20overrides\x20the\x20after-sales-expiry\x20derivation\x20—\x20keep\x20it\x20ABOVE\x20the\x20store\x27s\x20return/review\x20window\x20or\x20the\x20claim-and-return\x20arbitrage\x20re-opens,\x20tbs7\x20F-04),\x20claimable\x20for\x20a\x20further\x20'+U+'\x20day(s)\x20(bsw4\x20F-11\x20close).':'Claim\x20window:\x20opens\x20'+T+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived\x20after-sales\x20expiry\x20+\x201d,\x20floored\x20at\x2014d\x20—\x20tbs7\x20F-04:\x20the\x20bounty\x20opens\x20only\x20after\x20the\x20return/review\x20window\x20closed),\x20claimable\x20for\x20a\x20further\x20'+U+'\x20day(s)\x20(bsw4\x20F-11:\x20the\x20window\x20CLOSES\x20—\x20a\x20real\x20deadline,\x20counted\x20from\x20the\x20open).',aX='Pool\x20terms:\x20the\x20per-guard\x20claim\x20window\x20above\x20is\x20a\x20BUYER\x20promise,\x20not\x20the\x20end\x20of\x20the\x20pool\x20—\x20Reward.guard_not_added_expiration_time\x20is\x20the\x20owner\x27s\x20commitment\x20'+'lock\x20that\x20freezes\x20the\x20guard\x20set\x20and\x20blocks\x20withdrawal\x20only\x20while\x20it\x20is\x20still\x20in\x20the\x20future;\x20after\x20it\x20elapses\x20the\x20owner\x20may\x20extend/clear\x20the\x20guard\x20windows\x20'+'(guard_expiration_time_add)\x20or\x20withdraw\x20the\x20unclaimed\x20remainder\x20(the\x20owner-side\x20withdrawal\x20unwraps\x20the\x20held\x20Coin).\x20Do\x20not\x20describe\x20an\x20expiring\x20window\x20as\x20\x22funds\x20locked\x20forever\x22.',aY={'reward_address':'review_pool','expected_pre_claim_node':aR[0x0],...aR['length']>0x1?{'expected_pre_claim_node_alt':aR[0x1]}:{},...aR['length']>0x2?{'expected_pre_claim_node_alt2':aR[0x2]}:{},...aR['length']>0x3?{'expected_pre_claim_node_alt3':aR[0x3]}:{},...aU?{'rating_repository':e+'_review','rating_policy_name':'rating','rating_floor':String(L)}:{'rating_repository':''},'opens_after_days':String(T),'closes_after_days':String(U),'min_paid_amount':String(Math['max'](0x1,I('review_reward_per_claim')??0x1))};if(aF===undefined){let aZ='reward_claim_default';while(y['some'](b0=>b0['key']===aZ))aZ=aZ+'_x';y['push']({'key':aZ,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'4R-02\x20kernel-injected\x20DEFAULT\x20claim\x20guard\x20for\x20review_mode\x20\x27review_reward\x27\x20(the\x20template\x20'+('declares\x20no\x20reward\x20spec):\x20claim-allowed\x20SET\x20{'+aR['join'](',\x20')+'}'+(aS?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20the\x20shape\x20carries\x20more\x20terminals;\x20declare\x20an\x20explicit\x20host:\x22reward\x22\x20spec)':'')+',\x20')+'bounty\x20derived\x20T-02\x20(2%\x20of\x20the\x20cheapest\x20SKU,\x20floored\x20at\x201),\x20funding\x20fail-closed\x20'+('(REVIEW_REWARD_UNFUNDED).\x20'+aV+'\x20'+aW+'\x20'+aX+'\x20'+aT+'\x20W5-03\x20mutual\x20exclusion:\x20the\x20claim\x20set\x20')+'carries\x20NO\x20cancelled-role\x20node\x20—\x20a\x20refunded\x20order\x20cannot\x20reach\x20this\x20bounty\x20(a\x20chain-level\x20'+'\x27was\x20ever\x20refunded\x27\x20boolean\x20does\x20not\x20exist;\x20mounting\x20a\x20review/reward\x20advance\x20on\x20a\x20cancelled\x20'+'terminal\x20is\x20blocked\x20by\x20audit\x20STATE-REFUNDED-REWARD-01).\x20Declare\x20an\x20explicit\x20host:\x22reward\x22\x20guard\x20spec\x20to\x20replace\x20this\x20'+'default\x20with\x20a\x20named\x20design.','params':aY});}else{const b0=aF['template_id'];aF['template_id']='tpl_reward_one_time_claim',aF['params']=aY,aF['purpose']='4R-02\x20default\x20assembly\x20replaced\x20the\x20unresolved\x20design\x20reference\x20(was\x20\x27'+b0+'\x27\x20with\x20no\x20'+('caller\x20resolution):\x20claim-allowed\x20SET\x20{'+aR['join'](',\x20')+'}'+(aS?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20spec\x20or\x20resolve\x20this\x20key\x20to\x20cover\x20every\x20terminal)':'')+'.\x20')+(aV+'\x20'+aW+'\x20'+aX+'\x20'+aT+'\x20Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20')+'default\x20mount\x20per\x20build.';}}}}const V=f['experience_compensation_mode'],W=V==='reward'||V==='none'?V:b['experience_compensation_mode']??'none';let X;if(W==='reward'){const b1=/deliver|complet|receiv|fulfil|finish/i,b2=/fund|pledge|back/i,b3=/cancel|refund|kill/i,b4=k['filter'](b8=>b8['semantic_role']==='final')['map'](b8=>b8['name']),b5=k['find'](b8=>b1['test'](b8['name'])),b6=b4['filter'](b8=>!b2['test'](b8)&&!b3['test'](b8)),b7=b5?.['name']??b6[0x0]??b4[0x0];if(b7!==undefined){const b8=k['find'](bi=>/compensat/i['test'](String(bi?.['name']??''))),b9=[...new Set([...b8?[String(b8['name'])]:[],b7,...b6])],ba=b9['slice'](0x0,0x4),bb=b9['length']>0x4,bc=b['fee_params']['return_window_hours'],bd=typeof bc==='number'&&Number['isFinite'](bc)&&bc>0x0?bc:0x0,be=Math['max'](R,Math['ceil'](bd/0x18)),bf=I('experience_claim_opens_after_days')??Math['max'](0x1,be+0x1),bg=I('experience_claim_closes_after_days')??0x7;let bh='experience_compensation_claim';while(y['some'](bi=>bi['key']===bh))bh=bh+'_x';y['push']({'key':bh,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'C-11\x20kernel-injected\x20EXPERIENCE-COMPENSATION\x20claim\x20guard\x20(scene\x20reward_experience_compensation\x20/\x20'+'reward_delay_compensation):\x20an\x20independent\x20goodwill\x20pool\x20the\x20merchant\x20pre-funds,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20a\x20settlement-edge\x20guard\x20and\x20never\x20a\x20voluntary\x20Payment\x20voucher\x20(both\x20rejected\x20by\x20K3\x20C-11).\x20'+('Claim-allowed\x20SET\x20{'+ba['join'](',\x20')+'}')+((bb?'\x20(TRUNCATED\x20to\x20the\x204\x20template\x20slots\x20—\x20declare\x20an\x20explicit\x20key\x20\x27'+bh+'\x27\x20spec\x20to\x20cover\x20every\x20terminal)':'')+';\x20')+'funding-class\x20AND\x20cancelled-class\x20finals\x20are\x20EXCLUDED\x20(a\x20refunded\x20order\x20can\x20never\x20claim\x20—\x20tbs7\x20F-04\x20/\x20Scene\x207).\x20'+'NO\x20rating\x20leg\x20—\x20goodwill\x20is\x20not\x20review-gated\x20(rating_repository\x20empty\x20ships\x20without\x20the\x20leg).\x20'+('Claim\x20window:\x20opens\x20'+bf+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry\x20(derived:\x20after-sales\x20return\x20window\x20')+('lapsed\x20+\x201d'+(bd>0x0?'\x20—\x20fee_param\x20return_window_hours\x20'+bd+'h':'')+'),\x20')+('claimable\x20for\x20a\x20further\x20'+bg+'\x20day(s)\x20—\x20experience\x20compensation\x20must\x20be\x20claimed\x20promptly.\x20')+'Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20experience_claim_amount\x20(mount-side,\x20'+'emitReviewComponent);\x20fail-closed\x20funding\x20(EXPERIENCE_COMPENSATION_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20(kind\x20\x27inline\x27\x20or\x20\x27template\x27)\x20to\x20override\x20the\x20mount\x20per\x20build;\x20'+'a\x20GuardU64Identifier\x20amount\x20variant\x20(submission-resolved\x20tier)\x20must\x20disclose\x20its\x20rule\x20in\x20the\x20listing.','params':{'reward_address':'experience_pool','expected_pre_claim_node':ba[0x0],'expected_pre_claim_node_alt':ba[0x1]??b7,'expected_pre_claim_node_alt2':ba[0x2]??b7,'expected_pre_claim_node_alt3':ba[0x3]??b7,'rating_repository':'','opens_after_days':String(bf),'closes_after_days':String(bg),'min_paid_amount':String(Math['max'](0x1,I('experience_claim_amount')??0x1))}}),X=bh;}}const Y=f['price_rebate_mode'],Z=Y==='reward'||Y==='none'?Y:b['price_rebate_mode']??'none';let a0;if(Z==='reward'){const bi=/fund|pledge|back/i,bj=/cancel|refund|kill/i,bk=k['filter'](bn=>bn['semantic_role']==='final')['map'](bn=>bn['name']),bl=bk['filter'](bn=>!bi['test'](bn)&&!bj['test'](bn)),bm=bl[0x0]??bk[0x0];if(bm!==undefined){const bn=I('price_rebate_opens_after_days')??0x0,bo=I('price_rebate_closes_after_days')??0x7;let bp='price_rebate_claim';while(y['some'](bq=>bq['key']===bp))bp=bp+'_x';y['push']({'key':bp,'template_id':'tpl_reward_one_time_claim','host':'reward','purpose':'stage2\x20#1\x20P-11\x20kernel-injected\x20PRICE-REBATE\x20claim\x20guard\x20(FLOWS\x20E28,\x20the\x20overcharge/mispricing\x20'+'remedy):\x20an\x20independent\x20pre-funded\x20rebate\x20pool\x20the\x20merchant\x20controls,\x20claimed\x20PROACTIVELY\x20by\x20the\x20'+'buyer\x20—\x20never\x20an\x20escrow\x20rail\x20(the\x20order\x27s\x20own\x20settlement\x20is\x20untouched;\x20nothing\x20is\x20deducted\x20from\x20'+('anyone).\x20Claim-allowed\x20SET\x20{'+bl['join'](',\x20')+'};\x20funding-class\x20AND\x20cancelled-class\x20finals\x20')+'are\x20EXCLUDED\x20(a\x20refunded\x20order\x20has\x20no\x20fulfilled\x20purchase\x20to\x20rebate\x20—\x20W5-03).\x20NO\x20rating\x20leg\x20and\x20NO\x20'+'late-evidence\x20leg:\x20an\x20overcharge\x20has\x20no\x20on-chain\x20evidence\x20face\x20(no\x20price\x20oracle,\x20red\x20line\x203)\x20—\x20the\x20'+'funding\x20input\x20IS\x20the\x20merchant\x27s\x20rebate\x20budget.\x20Cheaper\x20direct-sale\x20cure\x20disclosed\x20in\x20build_notes:\x20'+'fold\x20the\x20correction\x20into\x20the\x20quote\x20BEFORE\x20payment;\x20this\x20pool\x20only\x20remedies\x20an\x20ALREADY-collected\x20'+('mischarge.\x20Claim\x20window:\x20opens\x20'+bn+'\x20day(s)\x20after\x20the\x20claim-allowed\x20entry,\x20claimable\x20for\x20a\x20')+('further\x20'+bo+'\x20day(s).\x20Per-order\x20once\x20(template\x20record-gate).\x20Fixed\x20amount\x20tier:\x20fee_param\x20')+'price_rebate_claim_amount\x20(mount-side);\x20fail-closed\x20funding\x20(PRICE_REBATE_UNFUNDED,\x20INV-4\x20family).\x20'+'Resolve\x20this\x20key\x20via\x20guard_resolutions\x20to\x20override\x20the\x20mount\x20per\x20build.','params':{'reward_address':'price_rebate_pool','expected_pre_claim_node':bl[0x0],'expected_pre_claim_node_alt':bl[0x1]??bm,'expected_pre_claim_node_alt2':bl[0x2]??bm,'expected_pre_claim_node_alt3':bl[0x3]??bm,'rating_repository':'','opens_after_days':String(bn),'closes_after_days':String(bo),'min_paid_amount':String(Math['max'](0x1,I('price_rebate_claim_amount')??0x1))}}),a0=bp;}}const a1=new Set(['wip_provenance','subscription_with_proof']),a2=Array['isArray'](f['adopted_module_ids'])?f['adopted_module_ids']['filter'](bq=>typeof bq==='string'):[],a3=y['some'](bq=>bq['host']==='repository'||bq['template_id']==='pattern.repository_data_check'||bq['template_id']==='pattern.repository_write_authorization'||bq['template_id']==='tpl_repository_row_present'||bq['template_id']==='tpl_repository_row_present_signer'||bq['template_id']==='tpl_repository_row_equals_order_field'||bq['template_id']==='tpl_holder_confirm_evidence_gate')||a2['some'](bq=>a1['has'](bq)),a4=new Map(),a5=[],a6=new Map();b['guards']['forEach']((bq,br)=>{const bs=windowLegDecl(bq['params']);if(bs!==undefined)a6['set'](bq['key']??bq['template_id']+'#'+br,bs);});const a7=new Map();b['guards']['forEach']((bq,br)=>{const bs=nodeGateDecl(bq['params']);if(bs!==undefined)a7['set'](bq['key']??bq['template_id']+'#'+br,bs);});const a8=new Set();(b['machine_shape']??[])['forEach'](bq=>{const br=bq['from'];if(!Array['isArray'](br))return;for(const bs of br){const bt=bs;bt['forward']==='WithdrawClaim'&&typeof bt['guard_key']==='string'&&a8['add'](bt['guard_key']);}});const a9=y['map'](bq=>bq['key']);for(const bq of Object['keys'](h??{})){if(u['has'](bq))continue;!D['has'](bq)&&o['push']({'code':'GUARD_RESOLUTION_UNKNOWN','detail':'guard_resolutions\x20key\x20\x27'+bq+'\x27\x20matches\x20no\x20guard\x20spec\x20key\x20declared\x20by\x20\x27'+e+'\x27.\x20'+('Legal\x20keys:\x20'+(a9['length']>0x0?a9['join'](',\x20'):'(none\x20—\x20this\x20template\x20declares\x20no\x20keyed\x20guards)')+'.\x20')+'An\x20unknown\x20key\x20was\x20previously\x20dropped\x20silently,\x20leaving\x20the\x20intended\x20guard\x20pending\x20while\x20the\x20build\x20looked\x20resolved.'});}for(const br of y){const bs='guard_'+safeId(br['key']),bt=p[br['key']];let bu=br['purpose'],bv,bw;if(bt?.['kind']==='inline')bv=normalizeInlineGuardTable(bt['table'],e),bw=bt['root'],bu=bt['description']??br['purpose'];else{const bx=bt===undefined||bt['kind']==='omit'&&!u['has'](br['key'])||bt['kind']==='declare'?lookupBinding(br,b,f):undefined,by=bt?.['kind']==='template'?bt['template_id']:br['template_id']['startsWith']('tpl_')?br['template_id']:bx?.['template_id'];if(by!==undefined){if(by==='tpl_allocator_node_gate_recover')q['add'](br['key']);const bz={'service_name':e+'_service',...a3?{'repository_name':e+'_evidence'}:{},...G!=='none'?{'review_repository':e+'_review'}:{},...b['arbitration_mode']!==undefined&&b['arbitration_mode']!=='none'?{'arbitration_name':e+'_arbitration'}:{},...b['fee_params'],...f,...br['params'],...bx!==undefined?bx['params']:{},...bt?.['kind']==='template'?bt['params']:{}};if(by==='tpl_repository_row_equals_order_field'&&bz['wip_item']===undefined){const bB=f['sales'],bC=Array['isArray'](bB)?bB['map'](bD=>bD!==null&&typeof bD==='object'&&typeof bD['name']==='string'?bD['name']:undefined)['filter'](bD=>bD!==undefined&&bD['trim']()!==''):[];if(bC['length']===0x1)bz['wip_item']=bC[0x0];}const bA=fillGuardTemplate(by,bz);if(!bA['ok'])o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+br['key']+'\x27\x20('+by+'):\x20'+bA['error']});else{bv=bA['table'],bw=bA['root'];const bD=validateQuerySignatures(bw,by,br['key']);bD!==undefined&&o['push']({'code':'GUARD_QUERY_SIGNATURE','detail':bD});const bE=a6['get'](br['key']);if(bE!==undefined){const bG=bz[bE['daysKey']],bH=typeof bG==='number'&&Number['isInteger'](bG)?bG:typeof bG==='string'&&bG['trim']()!==''&&Number['isInteger'](Number(bG))?Number(bG):undefined;if(bH===undefined||bH<=0x0)o['push']({'code':'GUARD_TEMPLATE_PARAMS','detail':'guard\x20\x27'+br['key']+'\x27\x20('+by+'):\x20the\x20entry\x20declares\x20a\x20closing\x20window\x20via\x20params.'+WINDOW_LEG_DAYS_PARAM+'\x20->\x20\x27'+bE['daysKey']+'\x27,\x20'+('but\x20the\x20merged\x20value\x20\x27'+String(bG)+'\x27\x20is\x20not\x20a\x20positive\x20integer\x20day\x20count.\x20Supply\x20the\x20fee\x20param\x20(or\x20an\x20input/params\x20override),\x20')+('or\x20drop\x20the\x20'+WINDOW_LEG_DAYS_PARAM+'/'+WINDOW_LEG_ANCHOR_PARAM+'\x20declaration\x20from\x20the\x20guard\x20entry.')});else{const bI=andClosingWindowLeg(bv,bw,bE['anchorNode'],bH);bv=bI['table'],bw=bI['root'];}}const bF=a7['get'](br['key']);if(bF!==undefined){const bJ=andNodeGateLeg(bv,bw,bF['nodes']);bv=bJ['table'],bw=bJ['root'];}if(a8['has'](br['key'])){const bK=andDisputeBindLeg(bv,bw);bv=bK['table'],bw=bK['root'];}}}}if(bv!==undefined){const bL=x['has'](br['key'])&&bw!==undefined&&!hasCallerIdentityLeg(bw);a4['set'](br['key'],{'stepId':bs,'description':bL?bu+'\x20(merchant-declared\x20exemption:\x20rail\x20\x27'+br['key']+'\x27\x20ships\x20without\x20a\x20caller\x20identity\x20leg\x20—\x20'+x['get'](br['key'])+')':bu,'table':bv,'root':normalizeLogicArity(bw)}),br['step_id']=bs;}else!br['template_id']['startsWith']('tpl_')&&getTemplateById(br['template_id'])===undefined&&!GUARD_DESIGN_PATTERNS['some'](bM=>bM['id']===br['template_id'])&&o['push']({'code':'GUARD_PATTERN_UNKNOWN','detail':'guard\x20\x27'+br['key']+'\x27\x20of\x20\x27'+e+'\x27\x20references\x20design\x20\x27'+br['template_id']+'\x27,\x20which\x20exists\x20in\x20neither\x20the\x20Guard\x20design-pattern\x20catalog\x20nor\x20the\x20guard-template\x20registry\x20—\x20'+'no\x20resolution\x20path\x20can\x20ever\x20fill\x20it\x20(guide\x20confirm,\x20guard_resolutions\x20and\x20module\x20plumbing\x20all\x20key\x20off\x20real\x20ids).\x20'+'Keeping\x20it\x20as\x20a\x20pending\x20design\x20would\x20leave\x20its\x20bound\x20path\x20UNGUARDED\x20behind\x20a\x20plausible\x20pending\x20label\x20'+'(bs-mn-261022\x20TPL-01:\x20nine\x20such\x20specs\x20compiled\x20into\x20a\x20machine\x20with\x20no\x20guards\x20on\x20the\x20grant-lifecycle\x20forwards).\x20'+'Correct\x20the\x20template\x27s\x20guard\x20spec\x20id\x20to\x20a\x20known\x20pattern,\x20or\x20resolve\x20this\x20spec\x20explicitly\x20(guard_resolutions\x20with\x20kind\x20\x27inline\x27).'}),a5['push'](br);}const aa=b['fee_param_defaults']??b['fee_params'],ab=new Set();for(const bM of[{'guards':b['guards'],'fee_params':b['fee_params'],'defaults':aa},{'guards':y['filter'](bN=>bN['step_id']!==undefined&&Object['values'](bN['params']??{})['some'](bO=>typeof bO==='number'&&Number['isFinite'](bO))),'fee_params':b['fee_params'],'defaults':b['fee_params']}]){for(const bN of feeParamCouplingMismatches(bM)){const bO=bN['key']+'::'+bN['param'];if(ab['has'](bO))continue;ab['add'](bO),o['push']({'code':'FEE_PARAM_COUPLING_MISMATCH','detail':'guard\x20\x27'+bN['key']+'\x27\x20('+bN['template_id']+')\x20claims\x20to\x20mirror\x20fee_param\x20\x27'+bN['param']+'\x27\x20('+bN['declared']+')\x20but\x20carries\x20no\x20matching\x20'+('numeric\x20literal\x20(params:\x20'+(bN['literals']['length']>0x0?bN['literals']['join'](',\x20'):'none')+').\x20The\x20guard\x20literal\x20is\x20the\x20ONLY\x20value\x20that\x20')+'becomes\x20on-chain\x20—\x20the\x20fee\x20param\x20the\x20merchant\x20sets\x20stays\x20decorative\x20(rex5-tn-261028\x20T-02).\x20'+('Re-sync\x20the\x20literal\x20with\x20fee_param\x20\x27'+bN['param']+'\x27\x20or\x20drop\x20the\x20coupling\x20claim\x20from\x20the\x20purpose.')});}}for(const bP of feeParamUnlanded(b,b['fee_params'],p)){o['push']({'code':'FEE_PARAM_UNLANDED','detail':'fee_param\x20\x27'+bP['param']+'\x27\x20=\x20'+bP['value']+'\x20on\x20\x27'+b['id']+'\x27\x20lands\x20nowhere:\x20no\x20platform-take\x20landing,\x20no\x20FEE_PARAM_BINDINGS\x20row,\x20'+'no\x20allocator\x20value_from/value_from_complement,\x20no\x20mounted\x20guard-template\x20placeholder,\x20no\x20kernel\x20consumer,\x20no\x20time-instantiation\x20or\x20'+'merged-lock\x20knob,\x20and\x20no\x20identical\x20frozen\x20constant\x20in\x20the\x20shipped\x20shape\x20—\x20whoever\x20sets\x20it\x20(shipped\x20default\x20or\x20fee_overrides)\x20changes\x20'+'nothing\x20on\x20chain\x20while\x20the\x20money\x20shape\x20ignores\x20it\x20(cour-mn-261102-z5t8\x20①②).\x20'+'Fix\x20ONE\x20way:\x20zero\x20the\x20knob\x20(direct\x20sales\x20default),\x20wire\x20the\x20allocator\x20rows\x20to\x20it\x20explicitly\x20(value_from\x20/\x20value_from_complement\x20naming\x20the\x20key),\x20'+'or\x20declare\x20an\x20author-literal\x20FEE_PARAM_BINDINGS\x20row\x20so\x20the\x20value\x20provably\x20lands.'});}for(const bQ of evidencePolicyCollisions(b)){o['push']({'code':'EVIDENCE_POLICY_COLLISION','detail':'repository\x20policy\x20\x27'+bQ['row_name']+'\x27\x20is\x20shared\x20by\x20'+bQ['markers']['length']+'\x20evidence\x20kinds\x20('+bQ['markers']['map'](bR=>'\x27'+bR+'\x27')['join'](',\x20')+')\x20'+('on\x20\x27'+b['id']+'\x27\x20—\x20the\x20repository\x20ledger\x20keys\x20each\x20row\x20by\x20(policy\x20name,\x20row\x20id),\x20and\x20order-scoped\x20rows\x20pin\x20the\x20row\x20id\x20to\x20the\x20order\x20address,\x20so\x20every\x20kind\x20writing\x20')+('under\x20policy\x20\x27'+bQ['row_name']+'\x27\x20lands\x20on\x20the\x20SAME\x20order-scoped\x20row:\x20with\x20write_once\x20the\x20second\x20kind\x27s\x20write\x20aborts\x20')+'with\x20the\x20write-once\x20conflict\x20(E_POLICY_WRITE_ONCE_CONFLICT)\x20and\x20the\x20machine\x20bricks\x20mid-flow;\x20without\x20it\x20the\x20later\x20row\x20silently\x20'+'overwrites\x20the\x20earlier\x20stage\x27s\x20evidence\x20(F-12,\x20sso7-mn-261104).\x20'+('Doctrine:\x20ONE\x20EVIDENCE\x20KIND\x20PER\x20POLICY\x20(W5-13/pdd\x20F-04).\x20Colliding\x20guards:\x20'+bQ['members']['join'](';\x20')+'.\x20')+'Split\x20into\x20per-kind\x20policies\x20(evidence_<kind>,\x20write_once)\x20with\x20one\x20write\x20guard\x20each,\x20and\x20re-point\x20every\x20reader\x27s\x20'+'row_name/binding\x20derive.'});}for(const bR of windowMathMismatches(b)){o['push']({'code':'WINDOW_MATH_MISMATCH','detail':bR['rule']==='R-WINDOW-MATH-ZERO'?'settlement\x20window\x20fee_param\x20\x27'+bR['settle_param']+'\x27\x20=\x20'+bR['settle_value']+':\x20the\x20escrow\x20releases\x20the\x20moment\x20the\x20anchor\x20node\x20is\x20entered,\x20so\x20every\x20buyer\x20window\x20is\x20structurally\x20dead\x20from\x20the\x20first\x20order\x20(ksk4\x20F-35).\x20'+'Set\x20it\x20to\x20a\x20positive\x20duration\x20that\x20covers\x20the\x20after-sales\x20schedule.':'settlement\x20window\x20fee_param\x20\x27'+bR['settle_param']+'\x27\x20('+bR['settle_value']+')\x20opens\x20the\x20release\x20before\x20buyer\x20window\x20'+bR['violates']+'\x20closes\x20—\x20the\x20refund\x20rail\x20is\x20structurally\x20dead\x20from\x20the\x20release\x20moment,\x20since\x20settlement\x20drains\x20the\x20allocation\x20balance\x20and\x20every\x20later\x20refund\x20leg\x20aborts\x20on\x20empty\x20(ktt3\x20F-05).\x20'+'This\x20is\x20an\x20INEQUALITY\x20check\x20on\x20unit-normalized\x20values\x20(mtwm\x20F-MT-03\x20misdiagnosis\x20note):\x20it\x20never\x20compares\x20against\x20template\x20defaults,\x20so\x20compressed\x20test\x20values\x20are\x20legal\x20as\x20long\x20as\x20the\x20ordering\x20holds\x20—\x20compress\x20proportionally\x20so\x20settle\x20stays\x20>=\x20every\x20buyer\x20window.\x20'+'Raise\x20the\x20settlement\x20window\x20to\x20>=\x20the\x20largest\x20buyer\x20window,\x20or\x20shorten\x20the\x20buyer\x20window\x20to\x20match\x20the\x20real\x20policy;\x20re-sync\x20guards[].params\x20with\x20the\x20new\x20fee_params\x20value\x20(FEE_PARAM_COUPLING_MISMATCH).'});}const ac=incentiveRatingFloorClaims(b);if(ac['length']>0x0){const bS=[...new Set(ac['map'](bU=>'\x27'+bU['excerpt']+'\x27\x20('+bU['field']+')'))]['join'](',\x20'),bT=[...new Set(ac['map'](bU=>bU['claimed']))];if(G!=='review_reward')o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bS+')\x20but\x20review_mode\x20is\x20\x27'+G+'\x27\x20—\x20no\x20reward\x20track\x20'+'exists,\x20so\x20the\x20promise\x20pays\x20nothing\x20regardless\x20of\x20rating\x20(ktt3\x20F02/F12\x20residual).\x20'+('Build\x20with\x20review_mode\x20\x27review_reward\x27\x20and\x20reward_rating_floor\x20=\x20'+bT['join']('/')+',\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});else{const bU=y['find'](c1=>c1['host']==='reward'),bV=bU!==undefined?p[bU['key']]:undefined,bW=bV?.['kind']==='template'&&bV['params']?{...bU?.['params']??{},...bV['params']}:bU?.['params']??{},bX=bW['rating_floor'],bY=typeof bX==='number'&&Number['isFinite'](bX)?bX:typeof bX==='string'&&bX['trim']()!==''&&Number['isFinite'](Number(bX))?Number(bX):undefined,bZ=Math['max'](0x0,...ac['filter'](c1=>c1['kind']==='praise')['map'](c1=>c1['claimed'])),c0=[...new Set(ac['filter'](c1=>c1['kind']==='numeric')['map'](c1=>c1['claimed']))];if(bY===undefined||bY<=0x0){const c1=bV?.['kind']==='inline'?'the\x20claim\x20guard\x20is\x20a\x20hand-designed\x20inline\x20root\x20compile\x20cannot\x20statically\x20parse\x20—\x20verify\x20its\x20rating\x20leg\x20yourself':'the\x20reward\x20track\x20carries\x20NO\x20rating\x20leg\x20(reward_rating_floor:\x200\x20explicit\x20opt-out,\x20or\x20a\x20reward\x20spec\x20without\x20rating_floor\x20—\x20the\x20S14\x20default\x20only\x20arms\x20the\x20kernel\x20DEFAULT\x20assembly)';o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20rating\x20floor\x20('+bS+')\x20but\x20the\x20compiled\x20reward\x20track\x20carries\x20NO\x20statically\x20visible\x20'+('rating\x20leg:\x20'+c1+'\x20—\x20the\x20bounty\x20pays\x20even\x20at\x20rating\x201\x20while\x20the\x20store\x20page\x20advertises\x20the\x20floor\x20')+('(ktt3\x20F02/F12\x20residual;\x20S14\x20default\x20arms\x20'+J+').\x20Pass\x20reward_rating_floor\x20=\x20'+bT['join']('/')+'\x20to\x20arm\x20it,\x20or\x20drop\x20the\x20promise\x20from\x20the\x20prose.')});}else{if(bZ>0x0&&bY<bZ)o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20GOOD-review\x20reward\x20('+bS+')\x20—\x20a\x20praise\x20promise\x20derives\x20to\x20floor\x20'+(bZ+'\x20(good\x20==\x204+,\x20S14)\x20—\x20but\x20the\x20armed\x20floor\x20is\x20'+bY+':\x20ratings\x20between\x20'+bY+'\x20')+('and\x20'+(bZ-0x1)+'\x20would\x20PAY\x20while\x20the\x20store\x20page\x20advertises\x20a\x20good-review-only\x20bounty\x20')+('(ktt3\x20F02/F12\x20residual,\x20S14\x20praise\x20shape).\x20Raise\x20reward_rating_floor\x20to\x20>=\x20'+bZ+',\x20or\x20rewrite\x20the\x20prose.')});else c0['length']>0x0&&!c0['includes'](bY)&&o['push']({'code':'INCENTIVE_RATING_FLOOR_MISMATCH','detail':'incentive\x20prose\x20promises\x20rating\x20floor\x20'+c0['join']('/')+'\x20('+bS+')\x20but\x20the\x20armed\x20floor\x20is\x20'+bY+'\x20—\x20'+'orders\x20at\x20the\x20promised\x20rating\x20would\x20be\x20REJECTED\x20by\x20the\x20claim\x20guard\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(ktt3\x20F02/F12\x20residual).\x20Align\x20reward_rating_floor\x20with\x20the\x20prose,\x20or\x20rewrite\x20the\x20prose.'});}}}if(G==='review_reward'){const c2=rewardWindowDayClaims(b);if(c2['length']>0x0){const c3=y['find'](c5=>c5['host']==='reward'),c4=c3!==undefined?p[c3['key']]:undefined;if(c3!==undefined&&c4?.['kind']!=='inline'){const c5=c4?.['kind']==='template'&&c4['params']?{...c3['params']??{},...c4['params']}:c3['params']??{},c6=cb=>typeof cb==='number'&&Number['isFinite'](cb)?cb:typeof cb==='string'&&cb['trim']()!==''&&Number['isFinite'](Number(cb))?Number(cb):undefined,c7=c6(c5['closes_after_days']),c8=c7??U,c9=[...new Set(c2['map'](cb=>cb['claimed']))],ca=[...new Set(c2['map'](cb=>'\x27'+cb['excerpt']+'\x27\x20('+cb['field']+')'))]['join'](',\x20');!c9['includes'](c8)&&o['push']({'code':'INCENTIVE_WINDOW_MISMATCH','detail':'incentive\x20prose\x20promises\x20a\x20claimable\x20span\x20of\x20'+c9['join']('/')+'\x20day(s)\x20('+ca+')\x20but\x20the\x20compiled\x20'+('claim\x20window\x20closes\x20'+c8+'\x20day(s)\x20after\x20it\x20opens\x20(closes_after_days')+(c7!==undefined?'\x20from\x20the\x20declared\x20reward\x20spec\x20params)':'\x20—\x20kernel\x20default\x20assembly,\x20bsw4\x20F-11\x20span\x20'+P)+'):\x20orders\x20claimed\x20inside\x20the\x20ADVERTISED\x20window\x20would\x20abort\x20E_GUARD_EXPIRED\x20while\x20the\x20store\x20page\x20advertises\x20it\x20'+'(h1w9\x20F-15:\x20\x227\x20days\x20to\x20claim\x22\x20advertising\x20vs\x20the\x20compiled\x2014d).\x20Align\x20the\x20window\x20—\x20pass\x20'+('reward_claim_closes_after_days\x20=\x20'+c9['join']('/')+'\x20(kernel\x20default\x20assembly)\x20or\x20pin\x20the\x20reward\x20spec\x27s\x20')+'closes_after_days\x20param\x20to\x20it\x20—\x20or\x20rewrite\x20the\x20prose.'});}}}const ad=new Set(k['flatMap'](cb=>(cb['from']??[])['map'](cc=>typeof cc==='string'?undefined:cc['guard_key'])['filter'](cc=>typeof cc==='string')));for(const cb of l){typeof cb['guard_key']==='string'&&cb['recipient']==='guard_identifier'&&cb['recipient_key']===String(TASK_BINDING_SLOT)&&ad['add'](cb['guard_key']);}const ae=new Set();for(const cc of y){if(!ad['has'](cc['key'])&&!q['has'](cc['key']))continue;const cd=a4['get'](cc['key']);if(cd===undefined)continue;const ce=cd['table']['some'](cf=>cf['identifier']===TASK_BINDING_SLOT);if(ce)continue;a4['set'](cc['key'],{...cd,'table':[...cd['table'],{'identifier':TASK_BINDING_SLOT,'b_submission':!![],'value_type':'Address','name':'task_binding\x20order\x20anchor\x20(protocol\x20slot\x20254;\x20written\x20by\x20order\x20creation)'}]}),ae['add'](cc['key']);}for(const cf of y){if(cf['host']!=='reward')continue;const cg=a4['get'](cf['key']);if(cg?.['root']===undefined)continue;const ch=cg['table']['some'](cj=>{const ck=cj;if(ck['b_submission']!==!![])return![];if(ck['object_type']==='Order')return!![];const cl=ck['name'];return typeof cl==='string'&&/order/i['test'](cl);}),ci=verifyGuardBinding({'host':'reward_claim','root':cg['root'],'facts':{'order_submission_declared':ch}});ci['some'](cj=>cj['code']==='RC_NO_ORDER_ANCHOR')&&o['push']({'code':'REWARD_WINDOW_UNRESOLVABLE','detail':'reward\x20claim\x20guard\x20\x27'+cf['key']+'\x27\x20of\x20\x27'+e+'\x27\x20carries\x20order./progress.\x20window\x20legs\x20that\x20have\x20NOTHING\x20to\x20resolve\x20against\x20in\x20the\x20'+'reward\x20context\x20(the\x20resolved\x20guard\x20table\x20declares\x20no\x20order-slot\x20submission)\x20—\x20the\x20legs\x20never\x20evaluate,\x20yet\x20they\x20fire\x20as\x20the\x20claim\x20'+'window\x20money\x20gate,\x20so\x20a\x20day-0\x20claim\x20releases\x20the\x20bounty\x20while\x20the\x20disclosed\x20OPENS/CLOSES\x20schedule\x20is\x20fiction\x20(cour\x20C2\x20⑤,\x20T2).\x20'+'Fix\x20ONE\x20way:\x20mount\x20a\x20guard\x20template\x20that\x20declares\x20the\x20order-slot\x20submission\x20(identifier\x200,\x20b_submission,\x20object_type\x20Order\x20—\x20e.g.\x20tpl_reward_one_time_claim),\x20'+'or\x20drop\x20the\x20order./progress.\x20window\x20legs\x20and\x20gate\x20the\x20claim\x20on\x20the\x20reward-context\x20facts\x20(claim-allowed\x20node\x20set,\x20rating\x20leg,\x20open/close\x20day\x20twins).'});}{const cj=b['settlement_window_merge'];if(cj!==undefined&&cj['length']>0x0){const ck=b['fee_params'],cl=cp=>{const cq=f[cp]??ck[cp];if(cq===undefined||cq===null)return undefined;const cr=typeof cq==='number'?cq:Number(cq);return Number['isFinite'](cr)&&cr>=0x0?cr:undefined;};let cm=0x0;for(const cp of cj){const cq=cl(cp);if(cq===undefined){cm=undefined;break;}cm+=cq;}const cn='settlement_window_merge\x20['+cj['join']('\x20+\x20')+']',co=y['find'](cr=>{const cs=timeInstantiationFor(b['id'],cr['key']);return cs!==undefined&&cs['direction']==='lower'&&cs['days']!==undefined&&cj['includes'](cs['days']);});if(cm===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+':\x20a\x20merged\x20window\x20has\x20no\x20readable\x20day\x20value,\x20so\x20the\x20effective\x20release\x20lock\x20cannot\x20be\x20'+'determined.\x20Declare\x20every\x20merged\x20key\x20as\x20a\x20numeric\x20fee_param\x20(or\x20supply\x20it\x20as\x20an\x20input).'});else{if(co===undefined)o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+'\x20(=\x20'+cm+'\x20days)\x20declares\x20a\x20merged\x20release\x20lock,\x20but\x20no\x20compiled\x20settlement\x20gate\x20'+'(\x22lower\x22\x20time\x20instantiation\x20whose\x20day\x20knob\x20is\x20one\x20of\x20the\x20merged\x20keys)\x20carries\x20it\x20—\x20the\x20'+'declaration\x20would\x20be\x20prose\x20while\x20the\x20escrow\x20releases\x20before\x20the\x20merged\x20windows\x20finish.'});else{if(p[co['key']]?.['kind']!=='inline'&&a4['has'](co['key'])){const cr=a4['get'](co['key'])['table'];let cs;for(const ct of cr){if(ct['identifier']!==0x3)continue;const cu=ct['value'],cv=typeof cu==='number'?cu:Number(cu);if(Number['isFinite'](cv))cs=cv;}cs!==cm&&o['push']({'code':'MERGED_LOCK_MISMATCH','detail':cn+'\x20=\x20'+cm+'\x20days\x20by\x20declaration,\x20but\x20guard\x20\x27'+co['key']+'\x27\x20compiled\x20its\x20length\x20'+('literal\x20to\x20'+(cs===undefined?'(none)':cs+'\x20days')+'.\x20The\x20escrow\x20would\x20')+'release\x20early\x20while\x20a\x20merged\x20buyer\x20window\x20can\x20still\x20draw\x20it.'});}}}}}for(const [cw,cx]of a4){const cy=normalizeGuardRowNames(cx['table'],cx['description'],MAX_GUARD_DESCRIPTION_CONTENT);(cy['table']!==cx['table']||cy['description']!==cx['description'])&&a4['set'](cw,{...cx,'table':cy['table'],'description':typeof cy['description']==='string'?cy['description']:cx['description']});}for(const cz of y){if(cz['host']!=='reward')continue;const cA=cz['params']??{},cB=['expected_pre_claim_node','expected_pre_claim_node_alt','expected_pre_claim_node_alt2','expected_pre_claim_node_alt3'],cC=cB['map'](cF=>cA[cF])['filter'](cF=>typeof cF==='string'),cD=cC['length']!==new Set(cC)['size'];if(!cD)continue;const cE=k['filter'](cF=>(REVIEW_OUTCOME_CLASS['test'](cF['name'])||cF['semantic_role']==='final')&&!cC['includes'](cF['name']))['map'](cF=>cF['name']);if(cE['length']===0x0)continue;cz['purpose']=cz['purpose']+'\x20REWARD_CLAIM_NODESET_DISPLACED\x20(kq4x\x20P-018):\x20the\x20expected_pre_claim_node*\x20slots\x20carry\x20a\x20'+('duplicate\x20same-value\x20leg\x20('+cC['join'](',\x20')+')\x20while\x20the\x20machine\x20shape\x20mounts\x20claim-eligible\x20node(s)\x20NOT\x20in\x20')+('the\x20set:\x20'+cE['join'](',\x20')+'\x20—\x20those\x20nodes\x20can\x20never\x20open\x20this\x20bounty.\x20If\x20they\x20SHOULD,\x20pin\x20the\x20full\x20set\x20')+'with\x20explicit\x20distinct\x20expected_pre_claim_node\x20/\x20_alt\x20/\x20_alt2\x20/\x20_alt3\x20params\x20on\x20this\x20host:\x22reward\x22\x20spec\x20'+'(a\x20two-slot\x20primary+alt\x20form\x20is\x20legal\x20—\x20unused\x20alts\x20may\x20stay\x20undeclared).';}return{'guardSpecs':y,'resolutions':p,'resolvedGuards':a4,'unresolved':a5,'omitKeys':u,'recoverTwinRails':q,'declareReasons':x,'specByKey':D,'slot254Injected':ae,'injectedOrderHolderKeys':A,'edgeBoundKeys':ad,'derived':{'reviewMode':G,'rewardMark':H,'needsRepository':a3,'experienceClaimKey':X,'priceRebateClaimKey':a0},'blockers':o};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{hasMsKnobBinding}from'../knowledge/fee-param-bindings.js';export function normalizeCompileInputs(a,b,c){const d=[],e=[];b['review_reward_pool']!==undefined&&b['reward_funding']===undefined&&(b={...b,'reward_funding':b['review_reward_pool']});{const f=a['fee_params'],g=f['campaign_deadline_ms']!==undefined,h=f['campaign_duration_days']!==undefined,i=b['campaign_duration_hours']!==undefined;if(g&&(h||i)){const j=w=>{if(w===undefined||w===null||w==='')return undefined;const x=typeof w==='number'?w:Number(w);return Number['isFinite'](x)?x:undefined;},l=j(b['campaign_deadline_ms']),m=j(b['campaign_duration_days']),o=j(b['campaign_duration_hours']),p=j(f['campaign_deadline_ms']),q=j(f['campaign_duration_days']),r=m!==undefined?m*0x5265c00:o!==undefined?o*0x36ee80:q!==undefined?q*0x5265c00:undefined,s=m!==undefined?'campaign_duration_days':o!==undefined?'campaign_duration_hours':'campaign_duration_days',t=m??o??q??0x0,u=l!==undefined&&l>0x0?l:p,v=m!==undefined||o!==undefined||u===undefined||u===0x0;if(c!==undefined&&r!==undefined&&r>0x0&&v){const w=Math['round'](c+r),x=m!==undefined?Math['round'](c+m*0x5265c00):undefined,y=o!==undefined?Math['round'](c+o*0x36ee80):undefined,z=[u!==undefined&&u>0x0?u:undefined,x,y]['filter'](A=>A!==undefined);new Set(z)['size']>0x1?d['push']({'code':'CAMPAIGN_DEADLINE_CONFLICT','detail':'the\x20campaign\x20answers\x20name\x20different\x20instants:\x20'+[m!==undefined?'campaign_duration_days\x20('+m+'\x20d\x20→\x20'+x+'\x20at\x20this\x20build\x20instant)':undefined,o!==undefined?'campaign_duration_hours\x20('+o+'\x20h\x20→\x20'+y+'\x20at\x20this\x20build\x20instant)':undefined,u!==undefined&&u>0x0?'campaign_deadline_ms\x20('+u+')':undefined]['filter'](Boolean)['join'](',\x20')+'.\x20ONE\x20campaign\x20has\x20ONE\x20deadline:\x20pass\x20ONE\x20length\x20(days\x20OR\x20hours)\x20or\x20the\x20absolute\x20timestamp,\x20and\x20drop\x20the\x20others\x20(0\x20=\x20unset\x20is\x20not\x20a\x20deadline).'}):(b={...b,'campaign_deadline_ms':w},e['push']({'param':'campaign_deadline_ms','from':s,'input':t,'value':w,'at_ms':c,'note':'converted\x20at\x20generation:\x20'+t+'\x20'+(s==='campaign_duration_hours'?'hour(s)':'day(s)')+'\x20after\x20the\x20build\x20instant\x20'+('('+new Date(c)['toISOString']()+')\x20became\x20the\x20ABSOLUTE\x20campaign\x20')+('deadline\x20epoch-ms\x20'+w+'\x20—\x20the\x20value\x20every\x20deadline\x20gate\x20and\x20the\x20pre-deadline\x20')+'withdrawal\x20window\x20now\x20read\x20on\x20chain'}));}}}{const A=a['fee_params'];for(const [B,C]of Object['entries'](b)){if(!/_days$/['test'](B)||B==='campaign_duration_days'||!(B in A))continue;const D=typeof C==='number'?C:typeof C==='string'&&C['trim']()!==''?Number(C):NaN;Number['isFinite'](D)&&!Number['isInteger'](D)&&d['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+B+'\x27\x20=\x20'+String(C)+'\x20is\x20a\x20FRACTIONAL\x20day\x20count\x20—\x20the\x20knob\x20lands\x20in\x20a\x20guard-table\x20'+('U64\x20slot\x20as\x20a\x20DAY\x20COUNT,\x20which\x20BCS\x20truncates\x20to\x20'+String(Math['trunc'](D))+':\x20any\x20`<=`\x20closing\x20window\x20')+'it\x20feeds\x20computes\x20anchor\x20+\x200\x20and\x20welds\x20shut\x20the\x20instant\x20its\x20anchor\x20entry\x20lands\x20(Guards\x20are\x20'+'immutable\x20—\x20the\x20live\x20run\x20compiled\x20a\x200.002-day\x20test\x20window\x20into\x20a\x20permanently\x20closed\x20review\x20rail).\x20'+('Pass\x20whole\x20days,\x20or\x20answer\x20the\x20PARALLEL\x20\x27'+B['slice'](0x0,-'_days'['length'])+'_ms\x27\x20knob\x20instead\x20')+'(e.g.\x20review_window_ms:\x20600000\x20=\x20a\x2010-minute\x20window)\x20—\x20the\x20compiler\x20then\x20emits\x20the\x20'+'ms-denominated\x20slot\x20pair\x20(duration\x20in\x20ms\x20beside\x20a\x20day-factor\x20of\x201).'});}}{const E=a['fee_params'];for(const [F,G]of Object['entries'](b)){if(!/
|
|
1
|
+
import{hasMsKnobBinding,hoursParamFractionSafe}from'../knowledge/fee-param-bindings.js';export function normalizeCompileInputs(a,b,c){const d=[],e=[];b['review_reward_pool']!==undefined&&b['reward_funding']===undefined&&(b={...b,'reward_funding':b['review_reward_pool']});{const f=a['fee_params'],g=f['campaign_deadline_ms']!==undefined,h=f['campaign_duration_days']!==undefined,i=b['campaign_duration_hours']!==undefined;if(g&&(h||i)){const j=w=>{if(w===undefined||w===null||w==='')return undefined;const x=typeof w==='number'?w:Number(w);return Number['isFinite'](x)?x:undefined;},l=j(b['campaign_deadline_ms']),m=j(b['campaign_duration_days']),o=j(b['campaign_duration_hours']),p=j(f['campaign_deadline_ms']),q=j(f['campaign_duration_days']),r=m!==undefined?m*0x5265c00:o!==undefined?o*0x36ee80:q!==undefined?q*0x5265c00:undefined,s=m!==undefined?'campaign_duration_days':o!==undefined?'campaign_duration_hours':'campaign_duration_days',t=m??o??q??0x0,u=l!==undefined&&l>0x0?l:p,v=m!==undefined||o!==undefined||u===undefined||u===0x0;if(c!==undefined&&r!==undefined&&r>0x0&&v){const w=Math['round'](c+r),x=m!==undefined?Math['round'](c+m*0x5265c00):undefined,y=o!==undefined?Math['round'](c+o*0x36ee80):undefined,z=[u!==undefined&&u>0x0?u:undefined,x,y]['filter'](A=>A!==undefined);new Set(z)['size']>0x1?d['push']({'code':'CAMPAIGN_DEADLINE_CONFLICT','detail':'the\x20campaign\x20answers\x20name\x20different\x20instants:\x20'+[m!==undefined?'campaign_duration_days\x20('+m+'\x20d\x20→\x20'+x+'\x20at\x20this\x20build\x20instant)':undefined,o!==undefined?'campaign_duration_hours\x20('+o+'\x20h\x20→\x20'+y+'\x20at\x20this\x20build\x20instant)':undefined,u!==undefined&&u>0x0?'campaign_deadline_ms\x20('+u+')':undefined]['filter'](Boolean)['join'](',\x20')+'.\x20ONE\x20campaign\x20has\x20ONE\x20deadline:\x20pass\x20ONE\x20length\x20(days\x20OR\x20hours)\x20or\x20the\x20absolute\x20timestamp,\x20and\x20drop\x20the\x20others\x20(0\x20=\x20unset\x20is\x20not\x20a\x20deadline).'}):(b={...b,'campaign_deadline_ms':w},e['push']({'param':'campaign_deadline_ms','from':s,'input':t,'value':w,'at_ms':c,'note':'converted\x20at\x20generation:\x20'+t+'\x20'+(s==='campaign_duration_hours'?'hour(s)':'day(s)')+'\x20after\x20the\x20build\x20instant\x20'+('('+new Date(c)['toISOString']()+')\x20became\x20the\x20ABSOLUTE\x20campaign\x20')+('deadline\x20epoch-ms\x20'+w+'\x20—\x20the\x20value\x20every\x20deadline\x20gate\x20and\x20the\x20pre-deadline\x20')+'withdrawal\x20window\x20now\x20read\x20on\x20chain'}));}}}{const A=a['fee_params'];for(const [B,C]of Object['entries'](b)){if(!/_days$/['test'](B)||B==='campaign_duration_days'||!(B in A))continue;const D=typeof C==='number'?C:typeof C==='string'&&C['trim']()!==''?Number(C):NaN;Number['isFinite'](D)&&!Number['isInteger'](D)&&d['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+B+'\x27\x20=\x20'+String(C)+'\x20is\x20a\x20FRACTIONAL\x20day\x20count\x20—\x20the\x20knob\x20lands\x20in\x20a\x20guard-table\x20'+('U64\x20slot\x20as\x20a\x20DAY\x20COUNT,\x20which\x20BCS\x20truncates\x20to\x20'+String(Math['trunc'](D))+':\x20any\x20`<=`\x20closing\x20window\x20')+'it\x20feeds\x20computes\x20anchor\x20+\x200\x20and\x20welds\x20shut\x20the\x20instant\x20its\x20anchor\x20entry\x20lands\x20(Guards\x20are\x20'+'immutable\x20—\x20the\x20live\x20run\x20compiled\x20a\x200.002-day\x20test\x20window\x20into\x20a\x20permanently\x20closed\x20review\x20rail).\x20'+('Pass\x20whole\x20days,\x20or\x20answer\x20the\x20PARALLEL\x20\x27'+B['slice'](0x0,-'_days'['length'])+'_ms\x27\x20knob\x20instead\x20')+'(e.g.\x20review_window_ms:\x20600000\x20=\x20a\x2010-minute\x20window)\x20—\x20the\x20compiler\x20then\x20emits\x20the\x20'+'ms-denominated\x20slot\x20pair\x20(duration\x20in\x20ms\x20beside\x20a\x20day-factor\x20of\x201).'});}}{const E=a['fee_params'];for(const [F,G]of Object['entries'](b)){if(!/_hours$/['test'](F)&&!/_minutes$/['test'](F)||!(F in E))continue;const H=typeof G==='number'?G:typeof G==='string'&&G['trim']()!==''?Number(G):NaN;Number['isFinite'](H)&&!Number['isInteger'](H)&&!hoursParamFractionSafe(a['id'],F)&&d['push']({'code':'WINDOW_TRUNCATION_ZERO','detail':'input\x20\x27'+F+'\x27\x20=\x20'+String(G)+'\x20is\x20a\x20FRACTIONAL\x20hour\x20count\x20whose\x20landing\x20on\x20\x27'+a['id']+'\x27\x20is\x20a\x20'+('U64\x20slot\x20in\x20the\x20param\x27s\x20OWN\x20unit\x20(a\x20'+(/_minutes$/['test'](F)?'minute':'hour')+'-denominated\x20table\x20row,\x20')+('not\x20a\x20duration_ms\x20conversion)\x20—\x20BCS\x20truncates\x20it\x20to\x20'+String(Math['trunc'](H))+':\x20the\x20band\x20or\x20window\x20the\x20')+'slot\x20bounds\x20collapses\x20to\x200\x20(Guards\x20are\x20immutable\x20—\x20the\x20mtw-mainnet\x20run\x20fed\x200.5\x20hours\x20to\x20the\x20'+'travel\x20fee\x20ladder\x20and\x20the\x20tier\x20seam\x20compiled\x20to\x20tier\x20+\x200,\x20melting\x20two\x20cancellation\x20bands\x20into\x20'+'one).\x20Pass\x20a\x20whole\x20number,\x20or\x20resolve\x20the\x20guard\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20'+'ms-denominated\x20table\x20(duration_ms)\x20where\x20the\x20fraction\x20is\x20representable.'});}}{const I=a['fee_params'];for(const [J,K]of Object['entries'](b)){if(!/_ms$/['test'](J))continue;const L=J['slice'](0x0,-'_ms'['length']),M=L+'_days',N=L+'_hours',O=M in I?M:N in I?N:undefined;if(O===undefined)continue;if(typeof K==='number'&&!Number['isFinite'](K))continue;if(typeof K==='string'&&K['trim']()!==''&&!Number['isFinite'](Number(K)))continue;hasMsKnobBinding(a['id'],O)?b[O]!==undefined&&d['push']({'code':'WINDOW_UNIT_CONFLICT','detail':'inputs\x20answer\x20BOTH\x20spellings\x20of\x20one\x20window:\x20\x27'+O+'\x27\x20=\x20'+String(b[O])+'\x20AND\x20'+('\x27'+J+'\x27\x20=\x20'+String(K)+'\x20—\x20ONE\x20window\x20has\x20ONE\x20length,\x20and\x20silently\x20preferring\x20either\x20answer\x20')+('ships\x20a\x20clock\x20the\x20other\x20knob\x20was\x20supposed\x20to\x20move.\x20The\x20\x27'+J+'\x27\x20answer\x20REPLACES\x20the\x20')+((O['endsWith']('_days')?'day':'hour')+'\x20answer\x20(it\x20lands\x20the\x20ms\x20slot\x20pair:\x20duration_ms\x20at\x20')+'scale\x201);\x20pass\x20ONE\x20of\x20the\x20two\x20and\x20drop\x20the\x20other.'}):d['push']({'code':'WINDOW_MS_UNSUPPORTED','detail':'input\x20\x27'+J+'\x27\x20=\x20'+String(K)+'\x20has\x20no\x20millisecond\x20landing:\x20the\x20\x27'+O+'\x27\x20window\x20on\x20'+('\x27'+a['id']+'\x27\x20resolves\x20to\x20a\x20guard\x20form\x20with\x20no\x20ms\x20twin\x20(a\x20multi-mount\x20')+'history\x20twin\x20or\x20a\x20hand-written\x20template),\x20so\x20the\x20value\x20would\x20compile\x20nowhere\x20while\x20'+('the\x20base\x20answer\x20silently\x20wins.\x20Drop\x20the\x20\x27'+J+'\x27\x20input\x20and\x20pass\x20whole\x20')+((O['endsWith']('_days')?'days':'hours')+',\x20or\x20resolve\x20the\x20')+'guard\x20explicitly\x20via\x20guard_resolutions\x20with\x20an\x20inline\x20ms-denominated\x20table.'});}}return{'inputs':b,'derivedParams':e,'blockers':d};}export function applyConditionalSelectors(a,b){const d=[],f=new Set();for(const n of a['conditional_guards']??[]){const o=b[n['param']]??a['fee_params'][n['param']];if(o!==n['emit_value'])f['add'](n['guard_key']);}{const p=new Map();for(const q of a['conditional_guards']??[]){const r=p['get'](q['param']);if(r===undefined)p['set'](q['param'],new Set(q['values']??[]));else{for(const s of q['values']??[])r['add'](s);}}for(const [t,u]of p){if(u['size']===0x0)continue;const w=b[t];if(w===undefined||w===null||w==='')continue;const x=String(w);if(u['has'](x))continue;d['push']({'code':'SELECTOR_VALUE_UNKNOWN','detail':'build\x20input\x20\x27'+t+'\x27\x20=\x20\x27'+x+'\x27\x20is\x20outside\x20the\x20value\x20set\x20this\x20template\x20accepts\x20'+('('+[...u]['join']('\x20|\x20')+').\x20The\x20param\x20drives\x20a\x20conditional\x20guard\x20emission,\x20so\x20an\x20out-of-set\x20answer\x20')+'used\x20to\x20compile\x20the\x20DEFAULT\x20business\x20model\x20silently\x20instead\x20of\x20the\x20one\x20asked\x20for\x20—\x20on\x20the\x20'+'storefront_mode\x20/\x20deposit_exit_policy\x20families\x20that\x20means\x20a\x20public\x20storefront\x20or\x20a\x20refunded\x20deposit\x20'+'with\x20no\x20warning\x20at\x20all.\x20Answer\x20one\x20of\x20the\x20accepted\x20values,\x20or\x20drop\x20the\x20input\x20to\x20take\x20the\x20declared\x20'+('default\x20(\x27'+String(a['fee_params'][t]??'none')+'\x27).')});}}const g=new Map();for(const y of a['conditional_guards']??[]){g['set'](y['param'],(g['get'](y['param'])??0x0)+0x1);}const h=new Set((a['conditional_guards']??[])['filter'](z=>(g['get'](z['param'])??0x0)>0x1)['map'](z=>z['guard_key'])),i=new Set([...f]['filter'](z=>h['has'](z))),j=i['size']>0x0?a['machine_shape']['map'](z=>({...z,'from':(z['from']??[])['filter'](A=>typeof A==='string'||A['guard_key']===undefined||!i['has'](A['guard_key']))})):a['machine_shape'],k=i['size']>0x0?(a['allocator']['rows']??[])['filter'](z=>z['guard_key']===undefined||!i['has'](z['guard_key'])):a['allocator']['rows']??[],l=new Map();for(const z of a['conditional_guards']??[]){let A=l['get'](z['param']);A===undefined&&(A={'kept':[],'pruned':[],'values':new Set(z['values']??[])},l['set'](z['param'],A));for(const B of z['values']??[])A['values']['add'](B);(f['has'](z['guard_key'])?A['pruned']:A['kept'])['push'](z['guard_key']);}const m=[...l['entries']()]['map'](([C,D])=>{const E=b[C]??a['fee_params'][C];return{'param':C,'answered':E===undefined||E===null?null:String(E),'declared_values':[...D['values']],'kept':D['kept'],'pruned':D['pruned']};});return{'dropKeys':f,'selectorDroppedKeys':i,'shape':j,'rows':k,'blockers':d,'selectionReport':m};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{CREATABLE_OBJECTS,createsOf,isLate,isRef,resolveValue}from'./plan.js';import{auditPlan}from'./audit.js';import{normalizeGuardRowNames}from'./guard-fill.js';import{dryRunGateKey,hasDryRunAudit,recordDryRunAudit}from'../tools/publish-gate-state.js';function deriveCreated(a){if(Array['isArray'](a['created']))return a['created'];const b=Array['isArray'](a['objectChanges'])?a['objectChanges']:[];return b['filter'](d=>d?.['type']==='created'&&typeof d?.['objectId']==='string')['map'](d=>({'object':d['objectId'],'type_raw':d['objectType']}));}export function handlerExecutor(a){return async(b,c,d)=>{const {handleOnchainOperations:e}=await import('../tools/handlers/onchain.js'),f=await e({'operation_type':b,'data':c,'env':d===undefined?a:d}),g=f['structuredContent']??{},h=g['result']!==undefined&&g['result']['data']!==undefined?g['result']:g,i=h['data']?.['result']??h['result']??h,j=h['outcome']??h['data']?.['outcome']??g['outcome']??g['status'];return{'outcome':j==='executed'||j==='success'?'executed':j==='pending_input'?'pending_input':'failed','digest':i['digest']??h['digest'],'created':deriveCreated(i),'error':i['error']??h['error']};};}function normalizeGuardTable(a,b){if(!Array['isArray'](a))return{'table':a,'description':b};return normalizeGuardRowNames(a,b,MAX_DESCRIPTION_CONTENT);}const MAX_DESCRIPTION_CONTENT=0xf9e,MAX_POLICY_DESCRIPTION_BYTES=0x1f4;export function truncateProseUtf8(a,b){if(Buffer['byteLength'](a,'utf8')<=b)return a;let c=0x0,d=a['length'];while(c<d){const i=c+d+0x1>>0x1;if(Buffer['byteLength'](a['slice'](0x0,i),'utf8')<=b)c=i;else d=i-0x1;}const e=a['slice'](0x0,c),f=Math['max'](0x1,Math['floor'](e['length']/0x2)),g=Math['max'](e['lastIndexOf']('。'),e['lastIndexOf']('.'),e['lastIndexOf']('.'),e['lastIndexOf']('!'),e['lastIndexOf']('!'),e['lastIndexOf']('?'),e['lastIndexOf']('?'),e['lastIndexOf'](';'),e['lastIndexOf'](';'));if(g+0x1>=f)return e['slice'](0x0,g+0x1)['trimEnd']();const h=e['lastIndexOf']('\x20');if(h+0x1>=f)return e['slice'](0x0,h)['trimEnd']();return e['trimEnd']();}function truncateToBytes(a,b){return truncateProseUtf8(a,b);}function truncateDescription(a){if(typeof a!=='string')return a;if(Buffer['byteLength'](a,'utf8')>MAX_DESCRIPTION_CONTENT)return truncateToBytes(a,MAX_DESCRIPTION_CONTENT-0x3)+'...';return a;}export function adaptConfigureParams(a,b){if(a==='pause'&&b!==null&&typeof b==='object'&&!Array['isArray'](b))return b['pause'];if(a==='guard_add'&&b!==null&&typeof b==='object'&&!Array['isArray'](b))return[b];if(a==='coin_add'&&b!==null&&typeof b==='object'&&!Array['isArray'](b)){const c=b,d=c['coin'];if(c['balance']===undefined&&(typeof d==='number'||typeof d==='string'&&/^[0-9]+$/['test'](d)))return{'balance':d};}if(a==='order_allocators'&&b!==null&&typeof b==='object'){const e=b,f=e['allocators'];if(Array['isArray'](f)){const g=f['map'](h=>{const i=h,j=i['sharing'];if(!Array['isArray'](j))return h;return{...i,'sharing':j['map'](k=>{const m=k,n=m['who'];if(n&&typeof n['Entity']==='string')return{...m,'who':{'Entity':{'name_or_address':n['Entity']}}};return k;})};});return{...e,'allocators':g};}}if(a==='sales'&&b!==null&&typeof b==='object'){const h=b,i=h['sales'];if(Array['isArray'](i)){const j=i['map'](k=>{if(!k||typeof k!=='object')return k;const l=k,m=l['stock']??l['quantity']??0x0;return{'suspension':![],'wip':'',...l,'stock':m};});return{...h,'sales':j};}}if(a==='policies'&&b!==null&&typeof b==='object'&&!Array['isArray'](b)){const k=b,l=k['policy'];if(Array['isArray'](l))return{...k,'policy':l['map'](m=>{if(!m||typeof m!=='object')return m;const n=m;return{...Array['isArray'](n['write_guard'])?null:{'write_guard':[]},...n,...typeof n['description']==='string'?{'description':truncateToBytes(n['description'],MAX_POLICY_DESCRIPTION_BYTES)}:{}};})};}return b;}export function adaptCreateData(a,b){const {name:c,permission:d,type_parameter:e,nodes:f,...g}=b;if(g['description']!==undefined)g['description']=truncateDescription(g['description']);switch(a['object']){case'service':case'arbitration':return{'object':{'name':c,'type_parameter':e,'permission':d},...g};case'machine':return{'object':{'name':c,...d!==undefined?{'permission':d}:{}},...g['description']!==undefined?{'description':g['description']}:{},'node':{'op':'add','nodes':f,'bReplace':!![]}};case'guard':{const h=normalizeGuardTable(b['table'],b['description']);return{...b,'description':truncateDescription(h['description']),'table':h['table']};}case'permission':case'contact':case'repository':default:{const i=g['policies'];return{'object':{'name':c,...d!==undefined?{'permission':d}:{}},...g,...a['object']==='repository'&&Array['isArray'](i)?{'policies':{'op':'set','policy':i['map'](j=>{if(!j||typeof j!=='object')return j;const k=j;return{...Array['isArray'](k['write_guard'])?null:{'write_guard':[]},...k,...typeof k['description']==='string'?{'description':truncateToBytes(k['description'],MAX_POLICY_DESCRIPTION_BYTES)}:{}};})}}:{}};}}}export function preflightPlan(a){const b=auditPlan(a),c=new Set(b['findings']['map'](g=>g['rule_id'])),d=c['has']('ARB-KEY-PLANE-01'),e=b['issues']['length']===0x0&&!b['findings']['some'](g=>g['level']==='critical')&&!d,f=a['steps']['map'](g=>{if(g['op']!=='publish')return g;const h=g['preflight']['map'](i=>{const j=i['check']['endsWith']('_publish')?e:!c['has'](i['check']);return{...i,'status':j?'pass':'fail'};});return{...g,'preflight':h};});return{'plan':{...a,'steps':f},'audit':b};}export function bindAuditPlan(a){const b=new Map();for(const h of a['steps']){if(h['op']!=='create')continue;const i=h['params']['name'];if(typeof i==='string'&&i['length']>0x0)b['set'](i,h['id']);}const c=new Set(a['external_refs']??[]),d=[],e=new Set(['value','Entity','name_or_address','objects','coin']),f=(j,k,l,m)=>{if(!e['has'](l))return;b['has'](m)&&d['push']({'step':j,'slot':k,'kind':'intra_plan_bare_name','value':m});},g=(j,k,l)=>{if(b['has'](l))d['push']({'step':j,'slot':k,'kind':'intra_plan_bare_name','value':l});else!c['has'](l)&&d['push']({'step':j,'slot':k,'kind':'undeclared_external','value':l});};for(const j of a['steps']){if(j['op']==='configure'){const m=j['target'];if(typeof m==='string')f(j['id'],'target','value',m);else{if(isLate(m)){const n=m['$late'];if(n['by']==='local_name')g(j['id'],'target',n['mark']);}}}if(j['op']==='publish')continue;const k=j['params'];if(typeof k==='string')f(j['id'],'params','value',k);const l=(o,p,r)=>{if(o===null||o===undefined)return;if(Array['isArray'](o)){o['forEach']((u,w)=>l(u,p,r+'['+String(w)+']'));return;}if(typeof o==='object'){if(isRef(o))return;if(isLate(o)){const u=o['$late'];if(u['by']==='local_name')g(j['id'],r,u['mark']);return;}for(const [w,x]of Object['entries'](o)){l(x,w,r==='params'?'params.'+w:r+'.'+w);}return;}if(typeof o==='string')f(j['id'],r,p,o);};l(k,'','params');}return d;}function retrievalFor(a){if(a==='service')return'stop\x20new\x20orders\x20first\x20(onchain_operations\x20data\x20key\x20\x27pause\x27),\x20then\x20take\x20the\x20fund\x20back\x20'+'(data\x20key\x20\x27compensation_fund_withdraw\x27,\x20owner\x20signer\x20—\x20the\x20pool\x20returns\x20to\x20the\x20owner)';if(a==='arb'||a==='arbitration')return'withdraw\x20arbitration\x20fees\x20(onchain_operations\x20data\x20key\x20\x27arb_withdraw\x27,\x20arbitrator\x20signer):\x20from\x20state\x205\x20'+'(Finished)\x20immediately;\x20from\x20state\x203\x20(ruled,\x20objection\x20window\x20open)\x20ONLY\x2030\x20days\x20after\x20the\x20ruling\x20—\x20'+'before\x20expiry\x20the\x20object\x20is\x20locked\x20until\x20<ruling_time\x20+\x2030\x20days>\x20and\x20teardown\x20is\x20refused;\x20from\x20state\x204\x20'+'(objectionable)\x20NEVER.\x20Then\x20cash\x20out\x20via\x20the\x20arb\x20fees_transfer\x20chain\x20(arb\x20→\x20recipient\x20→\x20LocalMark\x20→\x20WOW)';if(a==='permission')return'holds\x20no\x20build-time\x20money\x20—\x20a\x20Permission\x20carries\x20no\x20recoverable\x20funds;\x20a\x20frozen\x20one\x20only\x20leaves\x20'+'LocalMark\x20name\x20clutter\x20(same\x20advice\x20as\x20frozen\x20leftovers)';if(a==='reward')return'drain\x20the\x20pool\x20(onchain_operations\x20data\x20key\x20\x27withdraw\x27,\x20owner\x20signer;\x20'+'confirm\x20the\x20pool\x20balance\x20first\x20—\x20a\x20short\x20pool\x20aborts\x20cleanly\x20without\x20paying)';return'holds\x20no\x20build-time\x20money;\x20create-frozen\x20—\x20it\x20cannot\x20be\x20deleted\x20or\x20unbound.\x20'+'Remove\x20its\x20LocalMark\x20name\x20(local_mark_operation)\x20so\x20later\x20runs\x20never\x20bind\x20it\x20by\x20name';}export function bindRecoveryList(a,b){const c=new Map(a['steps']['map'](g=>[g['id'],g])),d=new Map();for(const g of a['steps']){if(g['op']!=='configure')continue;if(g['method']!=='coin_add'&&g['method']!=='compensation_fund_add')continue;const h=g['target'],i=h!==null&&typeof h==='object'?h['$ref']:undefined,j=g['params']?.['balance'];typeof i==='string'&&(typeof j==='string'||typeof j==='number')&&d['set'](i,String(j));}const e=[],f=(k,l)=>{const m=c['get'](k),n=m?.['op']==='create'?m:undefined,o=n?.['object'],p=n?String(n['params']['name']??''):'',q=d['get'](k);e['push']({'step':k,...o!==undefined?{'kind':o}:{},...p?{'object':p}:{},...l?{'address':l}:{},...q!==undefined?{'funded':q}:{},...o!==undefined?{'retrieval':retrievalFor(o)}:{}});};if(b)for(const [k,l]of Object['entries'](b)){f(k,typeof l==='string'&&l['length']>0x0?l:undefined);}else{for(const m of a['steps'])if(m['op']==='create')f(m['id']);}return e;}function teardownPlan(a){if(a['length']===0x0)return'';const b=[],c=a['find'](d=>d['kind']==='service');c!==undefined&&b['push']('\x20\x201.\x20stop\x20new\x20orders:\x20onchain_operations\x20on\x20the\x20Service'+(c['address']?'\x20'+c['address']:'')+'\x20with\x20data\x20key\x20\x27pause\x27.','\x20\x202.\x20take\x20the\x20compensation\x20fund\x20back:\x20the\x20same\x20Service,\x20data\x20key\x20\x27compensation_fund_withdraw\x27\x20(owner\x20signer\x20—\x20the\x20pool\x20returns\x20to\x20the\x20owner;\x20real\x20money\x20only\x20if\x20the\x20money-in\x20step\x20ran\x20—\x20confirm\x20the\x20balance\x20first).');for(const d of a['filter'](e=>e['kind']==='reward')){b['push']('\x20\x20'+(b['length']+0x1)+'.\x20drain\x20the\x20reward\x20pool'+(d['address']?'\x20'+d['address']:'')+':\x20data\x20key\x20\x27withdraw\x27\x20(owner\x20signer;\x20confirm\x20the\x20pool\x20balance\x20first\x20—\x20a\x20short\x20pool\x20aborts\x20cleanly).');}for(const e of a['filter'](f=>f['kind']==='arb'||f['kind']==='arbitration')){b['push']('\x20\x20'+(b['length']+0x1)+'.\x20arbitration\x20fees'+(e['address']?'\x20on\x20'+e['address']:'')+':\x20data\x20key\x20\x27arb_withdraw\x27\x20(arbitrator\x20signer)\x20—\x20IF\x20the\x20arb\x20is\x20in\x20state\x205\x20(Finished)\x20withdraw\x20immediately;\x20IF\x20it\x20sits\x20in\x20state\x203\x20(ruled,\x20objection\x20window\x20open)\x20it\x20is\x20locked\x20until\x20<ruling_time\x20+\x2030\x20days>\x20—\x20teardown\x20refused\x20until\x20that\x20date,\x20then\x20retry;\x20state\x204\x20(objectionable)\x20can\x20NEVER\x20withdraw.');}return a['some'](f=>f['kind']!==undefined&&f['kind']!=='service'&&f['kind']!=='reward')&&b['push']('\x20\x20'+(b['length']+0x1)+'.\x20frozen\x20leftovers\x20(guards,\x20machine,\x20repositories)\x20cannot\x20be\x20deleted\x20or\x20unbound\x20—\x20they\x20stay\x20inert\x20on\x20chain;\x20remove\x20their\x20LocalMark\x20names\x20(local_mark_operation)\x20so\x20later\x20runs\x20never\x20bind\x20them\x20by\x20name.'),'\x0aTEARDOWN\x20PLAN\x20(abandon\x20this\x20run\x27s\x20store\x20—\x20execute\x20top\x20to\x20bottom):\x0a'+b['join']('\x0a');}export function bindAuditReport(a,b){const c=a['slice'](0x0,0xc)['map'](e=>'\x20\x20•\x20step\x20\x27'+e['step']+'\x27\x20'+e['slot']+'\x20->\x20\x27'+e['value']+'\x27\x20('+(e['kind']==='intra_plan_bare_name'?'names\x20an\x20object\x20THIS\x20plan\x20creates\x20—\x20must\x20be\x20{\x22$ref\x22:\x20\x22<create_step_id>\x22}':'undeclared\x20external\x20local_name\x20—\x20declare\x20it\x20in\x20plan.external_refs\x20or\x20bind\x20a\x20plan\x20ref')+')'),d=b['length']>0x0?b['map'](e=>{const f=e['object']!==undefined?(e['kind']??'object')+':\x20'+e['object']:e['kind']??'';return'\x20\x20•\x20'+e['step']+(f?'\x20('+f+')':'')+(e['address']!==undefined?'\x20@'+e['address']:'\x20—\x20no\x20address\x20recorded\x20—\x20find\x20the\x20object\x20by\x20its\x20name\x20(workspace/onchain_objects)\x20or\x20its\x20create\x20digest')+(e['funded']!==undefined?';\x20plan-funded\x20'+e['funded']+'\x20raw\x20(confirm\x20the\x20live\x20balance\x20before\x20relying\x20on\x20it)':'')+(e['retrieval']!==undefined?';\x20take\x20back:\x20'+e['retrieval']:'');})['join']('\x0a'):'\x20\x20•\x20(none\x20—\x20nothing\x20was\x20executed\x20in\x20this\x20run;\x20no\x20funds\x20or\x20objects\x20to\x20recover)';return'Offending\x20slots:\x0a'+c['join']('\x0a')+(a['length']>0xc?'\x0a\x20\x20…\x20+'+(a['length']-0xc)+'\x20more':'')+'\x0a'+('RECOVERY\x20LIST\x20(objects\x20already\x20created\x20by\x20this\x20run\x20—\x20id\x20+\x20digest/address\x20—\x20so\x20you\x20can\x20recover\x20funds/objects):\x0a'+d)+teardownPlan(b);}function stripGenerics(a){return a['replace'](/<.*>$/,'');}function matchCreated(a,b){const c=stripGenerics(b);return a['created']['find'](d=>{if(typeof d['type_raw']!=='string'||typeof d['object']!=='string')return![];return stripGenerics(d['type_raw'])['endsWith']('::'+c);})?.['object'];}const DEFAULT_LATE=a=>{if(a['by']==='address'){if(typeof a['address']!=='string'||a['address']['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27address\x27}}\x20resolved\x20to\x20an\x20EMPTY\x20value\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME),\x20so\x20this\x20is\x20a\x20hard\x20stop;\x20bind\x20a\x20real\x20address');return a['address'];}if(a['by']==='env_signer')throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27env_signer\x27}}\x20(no\x20envSignerRef\x20injected)\x20—\x20pass\x20env.account\x20(the\x20default\x20signing\x20account)\x20to\x20plan_execute');if(typeof a['mark']!=='string'||a['mark']['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27local_name\x27}}\x20with\x20an\x20EMPTY\x20mark\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME),\x20so\x20this\x20is\x20a\x20hard\x20stop;\x20declare\x20and\x20register\x20the\x20LocalMark\x20name\x20first');throw new Error('unresolved\x20late\x20binding\x20(no\x20resolver\x20injected):\x20local_name\x20\x27'+a['mark']+'\x27');};export async function materializePlan(a,b,c){const {plan:d,audit:f}=preflightPlan(a),g=new Map(Object['entries'](c?.['outputs']??{})),h=new Set(c?.['completedSteps']??[]),i=[],j=b['resolveLate']??DEFAULT_LATE,k=t=>{if(t['by']==='env_signer'){if(typeof b['envSignerRef']==='string'&&b['envSignerRef']['length']>0x0)return b['envSignerRef'];throw new Error('step\x20carries\x20{$late:{by:\x27env_signer\x27}}\x20but\x20no\x20default\x20account\x20was\x20provided\x20—\x20pass\x20env.account\x20to\x20plan_execute');}const u=j(t);if(typeof u!=='string'||u['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:'+JSON['stringify'](t)+'}\x20resolved\x20to\x20an\x20EMPTY\x20value\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME);\x20fail-closed,\x20register/bind\x20the\x20value\x20first');return u;},l=new Map(d['steps']['filter'](t=>t['op']==='create')['map'](t=>[t['id'],t['object']])),m=t=>resolveValue(t,g,k),n=t=>{if(t['account']===undefined)return b['env'];const u=b['envByAccount']?.[t['account']];if(u===undefined)throw new Error('step\x20\x27'+t['id']+'\x27\x20declares\x20account\x20\x27'+t['account']+'\x27\x20but\x20no\x20env\x20was\x20provided\x20for\x20it\x20—\x20'+('re-run\x20plan_execute\x20with\x20accounts[\x22'+t['account']+'\x22]\x20(a\x20declared\x20account\x20never\x20falls\x20back\x20')+'to\x20the\x20default\x20signer:\x20the\x20controller\x20identity\x20is\x20the\x20point)');return u;};let o=![],p='halted\x20by\x20earlier\x20failure/blocked\x20publish';const q=b['timeoutMs']!==undefined&&b['timeoutMs']>0x0?Date['now']()+b['timeoutMs']:undefined;let r=![];for(const t of d['steps']){if(o){i['push']({'stepId':t['id'],'status':'blocked','error':p});continue;}if(h['has'](t['id'])){if(l['has'](t['id'])){const u=g['get'](t['id']);if(u===undefined){i['push']({'stepId':t['id'],'status':'failed','error':'resumed\x20create\x20step\x20has\x20no\x20recorded\x20output\x20—\x20pass\x20its\x20created\x20address\x20in\x20previous_outputs'}),o=!![];continue;}i['push']({'stepId':t['id'],'status':'executed','address':u,'error':'resumed\x20from\x20a\x20prior\x20run\x20(adopted,\x20not\x20re-executed)'});continue;}i['push']({'stepId':t['id'],'status':'executed','error':'resumed\x20from\x20a\x20prior\x20run\x20(adopted,\x20not\x20re-executed)'});continue;}if(q!==undefined&&Date['now']()>=q){r=!![],o=!![],p='time\x20budget\x20('+b['timeoutMs']+'ms)\x20exhausted\x20before\x20this\x20step\x20—\x20RESUME,\x20not\x20re-run:\x20send\x20plan_execute\x20again\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27,\x20previous_outputs\x20=\x20outputs',i['push']({'stepId':t['id'],'status':'blocked','error':p});continue;}try{if(t['op']==='publish'){const z=t['preflight']['filter'](H=>H['status']==='fail');if(z['length']>0x0){i['push']({'stepId':t['id'],'status':'blocked','error':'preflight\x20failed:\x20'+z['map'](H=>H['check'])['join'](',\x20')+'\x20(refusing\x20to\x20publish\x20—\x20A-2)'});continue;}const A=m(t['target']),B=l['get'](t['target']['$ref'])??'',C={'object':A,'publish':!![]},D=n(t),E=D?.['dry_run']===!![];let F;if(!E&&!hasDryRunAudit(dryRunGateKey('onchain_operations',{'operation_type':B,'data':C}))){const H=await b['execute'](B,C,{...D,'dry_run':!![]});if(H['outcome']!=='executed'){i['push']({'stepId':t['id'],'status':'blocked','error':'AUTO\x20DRY-RUN\x20PRESTEP\x20(ruling\x202026-11-04):\x20the\x20dry_run:true\x20simulation\x20of\x20THIS\x20'+'publish\x20payload\x20FAILED\x20—\x20the\x20formal\x20publish\x20is\x20BLOCKED,\x20never\x20broadcast.\x20'+('Dry-run\x20diagnostics:\x20'+(H['error']??H['outcome']))}),o=!![];continue;}recordDryRunAudit(dryRunGateKey('onchain_operations',{'operation_type':B,'data':C})),F='AUTO\x20DRY-RUN\x20PRESTEP\x20(ruling\x202026-11-04):\x20the\x20dry_run:true\x20simulation\x20of\x20THIS\x20exact\x20payload\x20PASSED\x20and\x20registered\x20the\x20session\x20ledger;\x20the\x20formal\x20face\x20follows.';}const G=await b['execute'](B,C,D);if(G['outcome']!=='executed'){i['push']({'stepId':t['id'],'status':'failed',...G['digest']!==undefined?{'digest':G['digest']}:{},'error':G['error']??G['outcome']}),o=!![];continue;}i['push']({'stepId':t['id'],'status':'executed','digest':G['digest'],'address':A,...F!==undefined?{'error':F}:{}});continue;}const v=isRef(t['params'])?m(t['params']):Object['fromEntries'](Object['entries'](t['params'])['map'](([I,J])=>[I,m(J)]));if(t['op']==='create'){const I=adaptCreateData(t,v),J=await b['execute'](t['object'],I,n(t));if(J['outcome']!=='executed'){i['push']({'stepId':t['id'],'status':'failed',...J['digest']!==undefined?{'digest':J['digest']}:{},'error':J['error']??J['outcome']}),o=!![];continue;}const K=matchCreated(J,CREATABLE_OBJECTS[t['object']]);if(K===undefined){i['push']({'stepId':t['id'],'status':'failed',...J['digest']!==undefined?{'digest':J['digest']}:{},'error':'created\x20'+t['object']+'\x20not\x20found\x20in\x20transaction\x20result'}),o=!![];continue;}g['set'](t['id'],K),i['push']({'stepId':t['id'],'status':'executed','digest':J['digest'],'address':K});continue;}const w=m(t['target']),x=l['get'](isRef(t['target'])?t['target']['$ref']:'')??'';if(x===''){i['push']({'stepId':t['id'],'status':'failed','error':'PLAN_TARGET_REF_REQUIRED:\x20step\x20\x27'+t['id']+'\x27\x20target\x20does\x20not\x20trace\x20to\x20a\x20create\x20step\x20in\x20this\x20plan\x20—\x20'+'configure\x20targets\x20must\x20be\x20{\x22$ref\x22:\x20\x22<create_step_id>\x22}\x20(a\x20bare\x20name\x20binds\x20the\x20global\x20mark\x20namespace\x20across\x20runs,\x20W5-05)'}),o=!![];continue;}const y=await b['execute'](x,{'object':w,[t['method']]:adaptConfigureParams(t['method'],v)},n(t));if(y['outcome']!=='executed'){i['push']({'stepId':t['id'],'status':'failed',...y['digest']!==undefined?{'digest':y['digest']}:{},'error':y['error']??y['outcome']}),o=!![];continue;}i['push']({'stepId':t['id'],'status':'executed','digest':y['digest'],'address':w});}catch(L){const M=L?.['digest'];i['push']({'stepId':t['id'],'status':'failed',...typeof M==='string'&&M?{'digest':M}:{},'error':L instanceof Error?L['message']:String(L)}),o=!![];}}const s=await verifyMaterialization(d,g,b);return{'steps':i,'outputs':Object['fromEntries'](g),'completed':i['every'](N=>N['status']==='executed'),'budgetExhausted':r,'preflight':f,'readback':s};}function planAllocatorRows(a){const b=[],c=d=>{if(typeof d==='object'&&d!==null&&!Array['isArray'](d)){const e=d;if(Array['isArray'](e['allocators']))d=e['allocators'];}if(!Array['isArray'](d))return;for(const f of d){if(typeof f==='object'&&f!==null)b['push'](f);}};for(const d of a['steps']){if(d['op']==='create'&&d['object']==='service')c(d['params']['order_allocators']);if(d['op']==='configure'&&d['method']==='order_allocators')c(d['params']['allocators']);}return b;}export function conservationCheck(a){const b=planAllocatorRows(a);if(b['length']===0x0)return[{'name':'allocator_conservation','ok':![],'detail':'no\x20allocator\x20rows\x20(PLAN-ALLOC-01)'}];const c=[];return b['forEach']((d,e)=>{const f=d['track']??'settlement',g=typeof d['guard']==='object'&&d['guard']!==null?String(d['guard']['$ref']??JSON['stringify'](d['guard'])['slice'](0x0,0x28)):String(d['guard']??'?'),h='conservation:'+f+'['+e+']'+(g!=='?'?'('+g+')':''),i=(d['sharing']??[])['map'](l=>l['mode']);if(i['some'](l=>l==='Amount')){c['push']({'name':h,'ok':!![],'detail':'contains\x20Amount-mode\x20row(s)\x20—\x20fixed\x20payouts\x20are\x20not\x20statically\x20verifiable\x20against\x20the\x20escrow\x20total'});return;}let j=0x0;for(const l of d['sharing']??[]){if(l['mode']==='Rate'||l['mode']==='RateGross')j+=Number(l['sharing']??0x0);}const k=i['some'](n=>n==='Surplus');if(j>0x2710)c['push']({'name':h,'ok':![],'detail':'rate\x20sum\x20'+j+'\x20>\x2010000\x20—\x20row\x20pays\x20out\x20MORE\x20than\x20it\x20holds'});else j<0x2710&&!k?c['push']({'name':h,'ok':![],'detail':'rate\x20sum\x20'+j+'\x20<\x2010000\x20and\x20no\x20Surplus\x20row\x20—\x20the\x20remainder\x20has\x20no\x20fund\x20exit'}):c['push']({'name':h,'ok':!![],'detail':k?'rate\x20sum\x20'+j+'\x20+\x20Surplus\x20row\x20absorbs\x20the\x20remainder':'rate\x20sum\x20'+j+'\x20==\x2010000'});}),c;}async function verifyMaterialization(a,b,c){const d=[...conservationCheck(a)];if(c['read']!==undefined)for(const f of createsOf(a,'service')){const g=b['get'](f['id']);if(g===undefined)continue;try{const h=await c['read'](g,'service',c['env']);if(h===undefined||h===null){d['push']({'name':'readback:'+f['id'],'ok':![],'detail':'service\x20'+g+'\x20not\x20readable\x20after\x20creation'});continue;}const i=planAllocatorRows(a)['length'],j=h['order_allocators']?.['allocators']?.['length']??(Array['isArray'](h['order_allocators'])?h['order_allocators']['length']:undefined);j!==undefined&&d['push']({'name':'readback:'+f['id']+':allocators','ok':j>=i,'detail':'on-chain\x20allocator\x20rows\x20'+j+'\x20vs\x20plan\x20'+i});}catch(k){d['push']({'name':'readback:'+f['id'],'ok':![],'detail':k instanceof Error?k['message']:String(k)});}}return{'ok':d['every'](l=>l['ok']),'checks':d};}
|
|
1
|
+
import{CREATABLE_OBJECTS,createsOf,isLate,isRef,resolveValue}from'./plan.js';import{auditPlan}from'./audit.js';import{normalizeGuardRowNames}from'./guard-fill.js';import{dryRunGateKey,hasDryRunAudit,recordDryRunAudit,setPendingPlanFunding,consumePendingPlanFunding,clearPendingPlanFunding}from'../tools/publish-gate-state.js';import{isDeterministicOutcomeMessage}from'./inflight.js';function deriveCreated(a){if(Array['isArray'](a['created']))return a['created'];const b=Array['isArray'](a['objectChanges'])?a['objectChanges']:[];return b['filter'](d=>d?.['type']==='created'&&typeof d?.['objectId']==='string')['map'](d=>({'object':d['objectId'],'type_raw':d['objectType']}));}export function handlerExecutor(a){return async(b,c,d)=>{const {handleOnchainOperations:e}=await import('../tools/handlers/onchain.js'),f=await e({'operation_type':b,'data':c,'env':d===undefined?a:d}),g=f['structuredContent']??{},h=g['result']!==undefined&&g['result']['data']!==undefined?g['result']:g,i=h['data']?.['result']??h['result']??h,j=h['outcome']??h['data']?.['outcome']??g['outcome']??g['status'];return{'outcome':j==='executed'||j==='success'?'executed':j==='pending_input'?'pending_input':'failed','digest':i['digest']??h['digest'],'created':deriveCreated(i),'error':i['error']??h['error']};};}function normalizeGuardTable(a,b){if(!Array['isArray'](a))return{'table':a,'description':b};return normalizeGuardRowNames(a,b,MAX_DESCRIPTION_CONTENT);}const MAX_DESCRIPTION_CONTENT=0xf9e,MAX_POLICY_DESCRIPTION_BYTES=0x1f4;export function truncateProseUtf8(a,b){if(Buffer['byteLength'](a,'utf8')<=b)return a;let c=0x0,d=a['length'];while(c<d){const i=c+d+0x1>>0x1;if(Buffer['byteLength'](a['slice'](0x0,i),'utf8')<=b)c=i;else d=i-0x1;}const e=a['slice'](0x0,c),f=Math['max'](0x1,Math['floor'](e['length']/0x2)),g=Math['max'](e['lastIndexOf']('。'),e['lastIndexOf']('.'),e['lastIndexOf']('.'),e['lastIndexOf']('!'),e['lastIndexOf']('!'),e['lastIndexOf']('?'),e['lastIndexOf']('?'),e['lastIndexOf'](';'),e['lastIndexOf'](';'));if(g+0x1>=f)return e['slice'](0x0,g+0x1)['trimEnd']();const h=e['lastIndexOf']('\x20');if(h+0x1>=f)return e['slice'](0x0,h)['trimEnd']();return e['trimEnd']();}function truncateToBytes(a,b){return truncateProseUtf8(a,b);}function truncateDescription(a){if(typeof a!=='string')return a;if(Buffer['byteLength'](a,'utf8')>MAX_DESCRIPTION_CONTENT)return truncateToBytes(a,MAX_DESCRIPTION_CONTENT-0x3)+'...';return a;}export function adaptConfigureParams(a,b){if(a==='pause'&&b!==null&&typeof b==='object'&&!Array['isArray'](b))return b['pause'];if(a==='guard_add'&&b!==null&&typeof b==='object'&&!Array['isArray'](b))return[b];if(a==='coin_add'&&b!==null&&typeof b==='object'&&!Array['isArray'](b)){const c=b,d=c['coin'];if(c['balance']===undefined&&(typeof d==='number'||typeof d==='string'&&/^[0-9]+$/['test'](d)))return{'balance':d};}if(a==='order_allocators'&&b!==null&&typeof b==='object'){const e=b,f=e['allocators'];if(Array['isArray'](f)){const g=f['map'](h=>{const i=h,j=i['sharing'];if(!Array['isArray'](j))return h;return{...i,'sharing':j['map'](k=>{const m=k,n=m['who'];if(n&&typeof n['Entity']==='string')return{...m,'who':{'Entity':{'name_or_address':n['Entity']}}};return k;})};});return{...e,'allocators':g};}}if(a==='sales'&&b!==null&&typeof b==='object'){const h=b,i=h['sales'];if(Array['isArray'](i)){const j=i['map'](k=>{if(!k||typeof k!=='object')return k;const l=k,m=l['stock']??l['quantity']??0x0;return{'suspension':![],'wip':'',...l,'stock':m};});return{...h,'sales':j};}}if(a==='policies'&&b!==null&&typeof b==='object'&&!Array['isArray'](b)){const k=b,l=k['policy'];if(Array['isArray'](l))return{...k,'policy':l['map'](m=>{if(!m||typeof m!=='object')return m;const n=m;return{...Array['isArray'](n['write_guard'])?null:{'write_guard':[]},...n,...typeof n['description']==='string'?{'description':truncateToBytes(n['description'],MAX_POLICY_DESCRIPTION_BYTES)}:{}};})};}return b;}export function adaptCreateData(a,b){const {name:c,permission:d,type_parameter:e,nodes:f,...g}=b;if(g['description']!==undefined)g['description']=truncateDescription(g['description']);switch(a['object']){case'service':case'arbitration':return{'object':{'name':c,'type_parameter':e,'permission':d},...g};case'machine':return{'object':{'name':c,...d!==undefined?{'permission':d}:{}},...g['description']!==undefined?{'description':g['description']}:{},'node':{'op':'add','nodes':f,'bReplace':!![]}};case'guard':{const h=normalizeGuardTable(b['table'],b['description']);return{...b,'description':truncateDescription(h['description']),'table':h['table']};}case'permission':case'contact':case'repository':default:{const i=g['policies'];return{'object':{'name':c,...d!==undefined?{'permission':d}:{}},...g,...a['object']==='repository'&&Array['isArray'](i)?{'policies':{'op':'set','policy':i['map'](j=>{if(!j||typeof j!=='object')return j;const k=j;return{...Array['isArray'](k['write_guard'])?null:{'write_guard':[]},...k,...typeof k['description']==='string'?{'description':truncateToBytes(k['description'],MAX_POLICY_DESCRIPTION_BYTES)}:{}};})}}:{}};}}}export function preflightPlan(a){const b=auditPlan(a),c=new Set(b['findings']['map'](h=>h['rule_id'])),d=c['has']('ARB-KEY-PLANE-01'),e=b['issues']['length']===0x0&&!b['findings']['some'](h=>h['level']==='critical')&&!d,f=b['facts']['settlement_triggers_display'],g=a['steps']['map'](h=>{if(h['op']!=='publish')return h;const i=h['preflight']['map'](j=>{const k=j['check']['endsWith']('_publish')?e:!c['has'](j['check']),l=typeof f==='string'&&f['length']>0x0&&(j['check']['endsWith']('_publish')||j['check']==='SETTLEMENT-TRIGGER-SCOPE')?'who\x20can\x20trigger\x20settlement\x20(settlement_triggers):\x20'+f:undefined;return{...j,'status':k?'pass':'fail',...l!==undefined?{'detail':l}:{}};});return{...h,'preflight':i};});return{'plan':{...a,'steps':g},'audit':b};}export function bindAuditPlan(a){const b=new Map();for(const h of a['steps']){if(h['op']!=='create')continue;const i=h['params']['name'];if(typeof i==='string'&&i['length']>0x0)b['set'](i,h['id']);}const c=new Set(a['external_refs']??[]),d=[],e=new Set(['value','Entity','name_or_address','objects','coin']),f=(j,k,l,m)=>{if(!e['has'](l))return;b['has'](m)&&d['push']({'step':j,'slot':k,'kind':'intra_plan_bare_name','value':m});},g=(j,k,l)=>{if(b['has'](l))d['push']({'step':j,'slot':k,'kind':'intra_plan_bare_name','value':l});else!c['has'](l)&&d['push']({'step':j,'slot':k,'kind':'undeclared_external','value':l});};for(const j of a['steps']){if(j['op']==='configure'){const m=j['target'];if(typeof m==='string')f(j['id'],'target','value',m);else{if(isLate(m)){const n=m['$late'];if(n['by']==='local_name')g(j['id'],'target',n['mark']);}}}if(j['op']==='publish')continue;const k=j['params'];if(typeof k==='string')f(j['id'],'params','value',k);const l=(o,p,r)=>{if(o===null||o===undefined)return;if(Array['isArray'](o)){o['forEach']((u,w)=>l(u,p,r+'['+String(w)+']'));return;}if(typeof o==='object'){if(isRef(o))return;if(isLate(o)){const u=o['$late'];if(u['by']==='local_name')g(j['id'],r,u['mark']);return;}for(const [w,x]of Object['entries'](o)){l(x,w,r==='params'?'params.'+w:r+'.'+w);}return;}if(typeof o==='string')f(j['id'],r,p,o);};l(k,'','params');}return d;}function retrievalFor(a){if(a==='service')return'stop\x20new\x20orders\x20first\x20(onchain_operations\x20data\x20key\x20\x27pause\x27),\x20then\x20take\x20the\x20fund\x20back\x20'+'(data\x20key\x20\x27compensation_fund_withdraw\x27,\x20owner\x20signer\x20—\x20the\x20pool\x20returns\x20to\x20the\x20owner)';if(a==='arb'||a==='arbitration')return'withdraw\x20arbitration\x20fees\x20(onchain_operations\x20data\x20key\x20\x27arb_withdraw\x27,\x20arbitrator\x20signer):\x20from\x20state\x205\x20'+'(Finished)\x20immediately;\x20from\x20state\x203\x20(ruled,\x20objection\x20window\x20open)\x20ONLY\x2030\x20days\x20after\x20the\x20ruling\x20—\x20'+'before\x20expiry\x20the\x20object\x20is\x20locked\x20until\x20<ruling_time\x20+\x2030\x20days>\x20and\x20teardown\x20is\x20refused;\x20from\x20state\x204\x20'+'(objectionable)\x20NEVER.\x20Then\x20cash\x20out\x20via\x20the\x20arb\x20fees_transfer\x20chain\x20(arb\x20→\x20recipient\x20→\x20LocalMark\x20→\x20WOW)';if(a==='permission')return'holds\x20no\x20build-time\x20money\x20—\x20a\x20Permission\x20carries\x20no\x20recoverable\x20funds;\x20a\x20frozen\x20one\x20only\x20leaves\x20'+'LocalMark\x20name\x20clutter\x20(same\x20advice\x20as\x20frozen\x20leftovers)';if(a==='reward')return'drain\x20the\x20pool\x20(onchain_operations\x20data\x20key\x20\x27withdraw\x27,\x20owner\x20signer;\x20'+'confirm\x20the\x20pool\x20balance\x20first\x20—\x20a\x20short\x20pool\x20aborts\x20cleanly\x20without\x20paying)';return'holds\x20no\x20build-time\x20money;\x20create-frozen\x20—\x20it\x20cannot\x20be\x20deleted\x20or\x20unbound.\x20'+'Remove\x20its\x20LocalMark\x20name\x20(local_mark_operation)\x20so\x20later\x20runs\x20never\x20bind\x20it\x20by\x20name';}export function bindRecoveryList(a,b){const c=new Map(a['steps']['map'](g=>[g['id'],g])),d=new Map();for(const g of a['steps']){if(g['op']!=='configure')continue;if(g['method']!=='coin_add'&&g['method']!=='compensation_fund_add')continue;const h=g['target'],i=h!==null&&typeof h==='object'?h['$ref']:undefined,j=g['params']?.['balance'];typeof i==='string'&&(typeof j==='string'||typeof j==='number')&&d['set'](i,String(j));}const e=[],f=(k,l)=>{const m=c['get'](k),n=m?.['op']==='create'?m:undefined,o=n?.['object'],p=n?String(n['params']['name']??''):'',q=d['get'](k);e['push']({'step':k,...o!==undefined?{'kind':o}:{},...p?{'object':p}:{},...l?{'address':l}:{},...q!==undefined?{'funded':q}:{},...o!==undefined?{'retrieval':retrievalFor(o)}:{}});};if(b)for(const [k,l]of Object['entries'](b)){f(k,typeof l==='string'&&l['length']>0x0?l:undefined);}else{for(const m of a['steps'])if(m['op']==='create')f(m['id']);}return e;}function teardownPlan(a){if(a['length']===0x0)return'';const b=[],c=a['find'](d=>d['kind']==='service');c!==undefined&&b['push']('\x20\x201.\x20stop\x20new\x20orders:\x20onchain_operations\x20on\x20the\x20Service'+(c['address']?'\x20'+c['address']:'')+'\x20with\x20data\x20key\x20\x27pause\x27.','\x20\x202.\x20take\x20the\x20compensation\x20fund\x20back:\x20the\x20same\x20Service,\x20data\x20key\x20\x27compensation_fund_withdraw\x27\x20(owner\x20signer\x20—\x20the\x20pool\x20returns\x20to\x20the\x20owner;\x20real\x20money\x20only\x20if\x20the\x20money-in\x20step\x20ran\x20—\x20confirm\x20the\x20balance\x20first).');for(const d of a['filter'](e=>e['kind']==='reward')){b['push']('\x20\x20'+(b['length']+0x1)+'.\x20drain\x20the\x20reward\x20pool'+(d['address']?'\x20'+d['address']:'')+':\x20data\x20key\x20\x27withdraw\x27\x20(owner\x20signer;\x20confirm\x20the\x20pool\x20balance\x20first\x20—\x20a\x20short\x20pool\x20aborts\x20cleanly).');}for(const e of a['filter'](f=>f['kind']==='arb'||f['kind']==='arbitration')){b['push']('\x20\x20'+(b['length']+0x1)+'.\x20arbitration\x20fees'+(e['address']?'\x20on\x20'+e['address']:'')+':\x20data\x20key\x20\x27arb_withdraw\x27\x20(arbitrator\x20signer)\x20—\x20IF\x20the\x20arb\x20is\x20in\x20state\x205\x20(Finished)\x20withdraw\x20immediately;\x20IF\x20it\x20sits\x20in\x20state\x203\x20(ruled,\x20objection\x20window\x20open)\x20it\x20is\x20locked\x20until\x20<ruling_time\x20+\x2030\x20days>\x20—\x20teardown\x20refused\x20until\x20that\x20date,\x20then\x20retry;\x20state\x204\x20(objectionable)\x20can\x20NEVER\x20withdraw.');}return a['some'](f=>f['kind']!==undefined&&f['kind']!=='service'&&f['kind']!=='reward')&&b['push']('\x20\x20'+(b['length']+0x1)+'.\x20frozen\x20leftovers\x20(guards,\x20machine,\x20repositories)\x20cannot\x20be\x20deleted\x20or\x20unbound\x20—\x20they\x20stay\x20inert\x20on\x20chain;\x20remove\x20their\x20LocalMark\x20names\x20(local_mark_operation)\x20so\x20later\x20runs\x20never\x20bind\x20them\x20by\x20name.'),'\x0aTEARDOWN\x20PLAN\x20(abandon\x20this\x20run\x27s\x20store\x20—\x20execute\x20top\x20to\x20bottom):\x0a'+b['join']('\x0a');}export function bindAuditReport(a,b){const c=a['slice'](0x0,0xc)['map'](e=>'\x20\x20•\x20step\x20\x27'+e['step']+'\x27\x20'+e['slot']+'\x20->\x20\x27'+e['value']+'\x27\x20('+(e['kind']==='intra_plan_bare_name'?'names\x20an\x20object\x20THIS\x20plan\x20creates\x20—\x20must\x20be\x20{\x22$ref\x22:\x20\x22<create_step_id>\x22}':'undeclared\x20external\x20local_name\x20—\x20declare\x20it\x20in\x20plan.external_refs\x20or\x20bind\x20a\x20plan\x20ref')+')'),d=b['length']>0x0?b['map'](e=>{const f=e['object']!==undefined?(e['kind']??'object')+':\x20'+e['object']:e['kind']??'';return'\x20\x20•\x20'+e['step']+(f?'\x20('+f+')':'')+(e['address']!==undefined?'\x20@'+e['address']:'\x20—\x20no\x20address\x20recorded\x20—\x20find\x20the\x20object\x20by\x20its\x20name\x20(workspace/onchain_objects)\x20or\x20its\x20create\x20digest')+(e['funded']!==undefined?';\x20plan-funded\x20'+e['funded']+'\x20raw\x20(confirm\x20the\x20live\x20balance\x20before\x20relying\x20on\x20it)':'')+(e['retrieval']!==undefined?';\x20take\x20back:\x20'+e['retrieval']:'');})['join']('\x0a'):'\x20\x20•\x20(none\x20—\x20nothing\x20was\x20executed\x20in\x20this\x20run;\x20no\x20funds\x20or\x20objects\x20to\x20recover)';return'Offending\x20slots:\x0a'+c['join']('\x0a')+(a['length']>0xc?'\x0a\x20\x20…\x20+'+(a['length']-0xc)+'\x20more':'')+'\x0a'+('RECOVERY\x20LIST\x20(objects\x20already\x20created\x20by\x20this\x20run\x20—\x20id\x20+\x20digest/address\x20—\x20so\x20you\x20can\x20recover\x20funds/objects):\x0a'+d)+teardownPlan(b);}function stripGenerics(a){return a['replace'](/<.*>$/,'');}function matchCreated(a,b){const c=stripGenerics(b);return a['created']['find'](d=>{if(typeof d['type_raw']!=='string'||typeof d['object']!=='string')return![];return stripGenerics(d['type_raw'])['endsWith']('::'+c);})?.['object'];}async function recoverTimedOutCreate(a,b,c,d,e,f){if(a['recoverCreated']===undefined)return undefined;if(isDeterministicOutcomeMessage(f['error']??''))return undefined;const g=CREATABLE_OBJECTS[b['object']];if(typeof g!=='string'||g['length']===0x0)return undefined;return a['recoverCreated']({'op':b['object'],'data':c,'env':d,'startedAtMs':e,...f['digest']!==undefined?{'digest':f['digest']}:{},'expectedTypeSuffix':stripGenerics(g)});}export function planUsesEnvSigner(a){let b=![];const c=d=>{if(b||d===null||typeof d!=='object')return;if(Array['isArray'](d)){for(const g of d)c(g);return;}const e=d,f=e['$late'];if(f?.['by']==='env_signer'){b=!![];return;}for(const h of Object['values'](e))c(h);};for(const d of a['steps']){if(b)break;c(d['params']),c(d['target']);}return b;}const DEFAULT_LATE=a=>{if(a['by']==='address'){if(typeof a['address']!=='string'||a['address']['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27address\x27}}\x20resolved\x20to\x20an\x20EMPTY\x20value\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME),\x20so\x20this\x20is\x20a\x20hard\x20stop;\x20bind\x20a\x20real\x20address');return a['address'];}if(a['by']==='env_signer')throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27env_signer\x27}}\x20(no\x20envSignerRef\x20injected)\x20—\x20pass\x20env.account\x20(the\x20default\x20signing\x20account)\x20to\x20plan_execute');if(typeof a['mark']!=='string'||a['mark']['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:{by:\x27local_name\x27}}\x20with\x20an\x20EMPTY\x20mark\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME),\x20so\x20this\x20is\x20a\x20hard\x20stop;\x20declare\x20and\x20register\x20the\x20LocalMark\x20name\x20first');throw new Error('unresolved\x20late\x20binding\x20(no\x20resolver\x20injected):\x20local_name\x20\x27'+a['mark']+'\x27');};export const CAMPAIGN_DEADLINE_MIN_LEAD_MS=0xa*0xea60;export function reanchorCampaignDeadline(a,b){const c=a['derived_params']?.['find'](m=>m['param']==='campaign_deadline_ms');if(!c||!(c['input']>0x0))return{'plan':a};const d=c['from']==='campaign_duration_hours'?0x36ee80:0x5265c00,e=b??Date['now'](),f=Math['round'](e+c['input']*d),g=c['value'];if(f===g)return{'plan':a};let h=0x0;const i=m=>{if(Array['isArray'](m))return m['map'](i);if(m!==null&&typeof m==='object'){const n=m;if(n['value_type']==='U64'&&n['value']===g)return h+=0x1,{...n,'value':f};const o={};for(const [p,q]of Object['entries'](n))o[p]=i(q);return o;}return m;},j=a['steps']['map'](m=>m['op']==='create'?{...m,'params':i(m['params'])}:m),k={...a['inputs']};if(k['campaign_deadline_ms']===g)k['campaign_deadline_ms']=f;const l=(a['derived_params']??[])['map'](m=>m===c?{...m,'value':f,'at_ms':e,'note':m['note']+';\x20RE-ANCHORED\x20at\x20materialize\x20(W6-01):\x20the\x20EXECUTED\x20value\x20is\x20the\x20'+('materialize\x20instant\x20+\x20'+c['input']+'\x20')+(c['from']==='campaign_duration_hours'?'hour(s)':'day(s)')+'\x20—\x20the\x20compile-time\x20constant\x20is\x20superseded'}:m);return{'plan':{...a,'steps':j,'inputs':k,'derived_params':l},'reanchor':{'param':'campaign_deadline_ms','from_value':g,'to_value':f,'anchor_ms':e,'from_source':c['from'],'input':c['input'],'cells_rewritten':h}};}export function campaignDeadlineFreshness(a,b){const c=a['inputs']?.['campaign_deadline_ms'],d=typeof c==='number'?c:Number(c);if(!Number['isFinite'](d)||d<=0x0)return undefined;const e=b??Date['now']();if(e>=d)return{'code':'CAMPAIGN_DEADLINE_PAST','deadline_ms':d,'now_ms':e,'detail':'campaign_deadline_ms\x20('+d+')\x20has\x20already\x20passed\x20(now\x20'+e+')\x20—\x20the\x20round\x20is\x20'+'CAMPAIGN-CLOSED\x20before\x20a\x20single\x20step\x20ran;\x20nothing\x20was\x20executed.\x20Rebuild\x20the\x20plan:\x20pass\x20'+'campaign_duration_days\x20/\x20campaign_duration_hours\x20(the\x20deadline\x20is\x20RE-ANCHORED\x20at\x20'+'materialize\x20time,\x20so\x20lag\x20can\x20never\x20expire\x20it)\x20or\x20a\x20fresh\x20campaign_deadline_ms.\x20'+'An\x20explicit\x20absolute\x20deadline\x20is\x20a\x20strict\x20static\x20opt-in\x20and\x20is\x20never\x20re-anchored.'};if(d-e<CAMPAIGN_DEADLINE_MIN_LEAD_MS)return{'code':'CAMPAIGN_DEADLINE_IMMINENT','deadline_ms':d,'now_ms':e,'detail':'campaign_deadline_ms\x20('+d+')\x20is\x20under\x20'+Math['round'](CAMPAIGN_DEADLINE_MIN_LEAD_MS/0xea60)+'\x20'+('minutes\x20away\x20(now\x20'+e+')\x20—\x20by\x20the\x20time\x20any\x20buyer\x20sees\x20the\x20listing\x20the\x20round\x20is\x20a\x20polarity\x20')+'coin\x20flip;\x20nothing\x20was\x20executed.\x20Rebuild\x20with\x20a\x20longer\x20campaign_duration_*\x20or\x20a\x20later\x20deadline.'};return undefined;}export async function materializePlan(a,b,c){const d=(c?.['completedSteps']?.['length']??0x0)>0x0,f=d?{'plan':a}:reanchorCampaignDeadline(a);a=f['plan'];const g=campaignDeadlineFreshness(a),{plan:h,audit:i}=preflightPlan(a);if(g)return{'steps':h['steps']['map'](w=>({'stepId':w['id'],'status':'blocked','error':g['code']+':\x20'+g['detail']})),'outputs':{},'completed':![],'budgetExhausted':![],'preflight':i,'readback':{'ok':![],'checks':[{'name':'campaign_deadline_freshness','ok':![],'detail':g['detail']}]}};const j=new Map(Object['entries'](c?.['outputs']??{})),k=new Set(c?.['completedSteps']??[]),l=[],m=b['resolveLate']??DEFAULT_LATE,n=w=>{if(w['by']==='env_signer'){if(typeof b['envSignerRef']==='string'&&b['envSignerRef']['length']>0x0)return b['envSignerRef'];throw new Error('step\x20carries\x20{$late:{by:\x27env_signer\x27}}\x20but\x20no\x20default\x20account\x20was\x20provided\x20—\x20pass\x20env.account\x20to\x20plan_execute');}const x=m(w);if(typeof x!=='string'||x['length']===0x0)throw new Error('unresolved\x20late\x20binding\x20{$late:'+JSON['stringify'](w)+'}\x20resolved\x20to\x20an\x20EMPTY\x20value\x20—\x20an\x20empty\x20Entity/name\x20slot\x20makes\x20the\x20SDK\x20substitute\x20the\x20deployer\x27s\x20own\x20account\x20(cour\x20ENTITY-LATENAME);\x20fail-closed,\x20register/bind\x20the\x20value\x20first');return x;},o=new Map(h['steps']['filter'](w=>w['op']==='create')['map'](w=>[w['id'],w['object']])),p=w=>resolveValue(w,j,n),q=w=>{if(w['account']===undefined)return b['env'];const x=b['envByAccount']?.[w['account']];if(x===undefined)throw new Error('step\x20\x27'+w['id']+'\x27\x20declares\x20account\x20\x27'+w['account']+'\x27\x20but\x20no\x20env\x20was\x20provided\x20for\x20it\x20—\x20'+('re-run\x20plan_execute\x20with\x20accounts[\x22'+w['account']+'\x22]\x20(a\x20declared\x20account\x20never\x20falls\x20back\x20')+'to\x20the\x20default\x20signer:\x20the\x20controller\x20identity\x20is\x20the\x20point)');return x;};let r=![],s='halted\x20by\x20earlier\x20failure/blocked\x20publish';const t=b['timeoutMs']!==undefined&&b['timeoutMs']>0x0?Date['now']()+b['timeoutMs']:undefined;let u=![];for(const [w,x]of h['steps']['entries']()){if(r){l['push']({'stepId':x['id'],'status':'blocked','error':s});continue;}if(k['has'](x['id'])){if(o['has'](x['id'])){const y=j['get'](x['id']);if(y===undefined){l['push']({'stepId':x['id'],'status':'failed','error':'resumed\x20create\x20step\x20has\x20no\x20recorded\x20output\x20—\x20pass\x20its\x20created\x20address\x20in\x20previous_outputs'}),r=!![];continue;}l['push']({'stepId':x['id'],'status':'executed','address':y,'error':'resumed\x20from\x20a\x20prior\x20run\x20(adopted,\x20not\x20re-executed)'});continue;}l['push']({'stepId':x['id'],'status':'executed','error':'resumed\x20from\x20a\x20prior\x20run\x20(adopted,\x20not\x20re-executed)'});continue;}if(t!==undefined&&Date['now']()>=t){u=!![],r=!![],s='time\x20budget\x20('+b['timeoutMs']+'ms)\x20exhausted\x20before\x20this\x20step\x20—\x20RESUME,\x20not\x20re-run:\x20send\x20plan_execute\x20again\x20with\x20completed_steps\x20=\x20every\x20stepId\x20whose\x20status\x20is\x20\x27executed\x27,\x20previous_outputs\x20=\x20outputs',l['push']({'stepId':x['id'],'status':'blocked','error':s});continue;}try{if(x['op']==='publish'){const D=x['preflight']['filter'](P=>P['status']==='fail');if(D['length']>0x0){l['push']({'stepId':x['id'],'status':'blocked','error':'preflight\x20failed:\x20'+D['map'](P=>P['check'])['join'](',\x20')+'\x20(refusing\x20to\x20publish\x20—\x20A-2)'});continue;}const E=p(x['target']),F=o['get'](x['target']['$ref'])??'',G={'object':E,'publish':!![]},H=h['steps']['find'](P=>P['op']==='create'&&P['id']===x['target']['$ref']),I=H?.['params']?.['reentry_kind'];typeof I==='string'&&I!=='none'&&(G['reentry_kind']=I);const J=h['steps']['some'](P=>P['op']==='configure'&&P['method']==='voting_guard');J&&F==='service'&&(G['arbitration_open_vote_ack']=!![]);const K={};for(let P=w+0x1;P<h['steps']['length'];P++){const Q=h['steps'][P];if(Q['op']!=='configure'||Q['method']!=='coin_add')continue;const R=Q['params']?.['balance'],S=typeof R==='number'?R:Number(R);if(!Number['isFinite'](S)||S<=0x0)continue;try{const T=p(Q['target']);typeof T==='string'&&T!==''&&(K[T['toLowerCase']()]=(K[T['toLowerCase']()]??0x0)+S);}catch{}}setPendingPlanFunding(K);const L=q(x),M=L?.['dry_run']===!![];let N;if(!M&&!hasDryRunAudit(dryRunGateKey('onchain_operations',{'operation_type':F,'data':G}))){const U=await b['execute'](F,G,{...L,'dry_run':!![]});if(U['outcome']!=='executed'){l['push']({'stepId':x['id'],'status':'blocked','error':'AUTO\x20DRY-RUN\x20PRESTEP\x20(ruling\x202026-11-04):\x20the\x20dry_run:true\x20simulation\x20of\x20THIS\x20'+'publish\x20payload\x20FAILED\x20—\x20the\x20formal\x20publish\x20is\x20BLOCKED,\x20never\x20broadcast.\x20'+('Dry-run\x20diagnostics:\x20'+(U['error']??U['outcome']))}),r=!![];continue;}recordDryRunAudit(dryRunGateKey('onchain_operations',{'operation_type':F,'data':G})),N='AUTO\x20DRY-RUN\x20PRESTEP\x20(ruling\x202026-11-04):\x20the\x20dry_run:true\x20simulation\x20of\x20THIS\x20exact\x20payload\x20PASSED\x20and\x20registered\x20the\x20session\x20ledger;\x20the\x20formal\x20face\x20follows.';}const O=await b['execute'](F,G,L);if(O['outcome']!=='executed'){l['push']({'stepId':x['id'],'status':'failed',...O['digest']!==undefined?{'digest':O['digest']}:{},'error':O['error']??O['outcome']}),r=!![];continue;}l['push']({'stepId':x['id'],'status':'executed','digest':O['digest'],'address':E,...N!==undefined?{'error':N}:{}});continue;}const z=isRef(x['params'])?p(x['params']):Object['fromEntries'](Object['entries'](x['params'])['map'](([V,W])=>[V,p(W)]));if(x['op']==='create'){const V=adaptCreateData(x,z),W=q(x),X=Date['now'](),Y=await b['execute'](x['object'],V,W);if(Y['outcome']!=='executed'){const a0=await recoverTimedOutCreate(b,x,V,W,X,Y)['catch'](()=>undefined);if(a0!==undefined){j['set'](x['id'],a0['object']),l['push']({'stepId':x['id'],'status':'executed',...a0['digest']!==undefined?{'digest':a0['digest']}:{},'address':a0['object'],'recovered':!![],'error':'AUTO-RECOVERED\x20(timeout\x20reverse\x20lookup):\x20the\x20dispatch\x20outcome\x20was\x20never\x20observed,\x20but\x20exactly\x20ONE\x20'+(x['object']+'\x20created\x20by\x20this\x20sender\x20landed\x20inside\x20the\x20call\x20window\x20—\x20ADOPTED\x20as\x20this\x20step\x27s\x20output\x20')+'(recovered:true).\x20A\x20second,\x20blind\x20re-run\x20of\x20this\x20step\x20would\x20create\x20a\x20DUPLICATE;\x20continue\x20from\x20the\x20next\x20step.'});continue;}l['push']({'stepId':x['id'],'status':'failed',...Y['digest']!==undefined?{'digest':Y['digest']}:{},'error':Y['error']??Y['outcome']}),r=!![];continue;}const Z=matchCreated(Y,CREATABLE_OBJECTS[x['object']]);if(Z===undefined){l['push']({'stepId':x['id'],'status':'failed',...Y['digest']!==undefined?{'digest':Y['digest']}:{},'error':'created\x20'+x['object']+'\x20not\x20found\x20in\x20transaction\x20result'}),r=!![];continue;}j['set'](x['id'],Z),l['push']({'stepId':x['id'],'status':'executed','digest':Y['digest'],'address':Z});continue;}const A=p(x['target']),B=o['get'](isRef(x['target'])?x['target']['$ref']:'')??'';if(B===''){l['push']({'stepId':x['id'],'status':'failed','error':'PLAN_TARGET_REF_REQUIRED:\x20step\x20\x27'+x['id']+'\x27\x20target\x20does\x20not\x20trace\x20to\x20a\x20create\x20step\x20in\x20this\x20plan\x20—\x20'+'configure\x20targets\x20must\x20be\x20{\x22$ref\x22:\x20\x22<create_step_id>\x22}\x20(a\x20bare\x20name\x20binds\x20the\x20global\x20mark\x20namespace\x20across\x20runs,\x20W5-05)'}),r=!![];continue;}const C=await b['execute'](B,{'object':A,[x['method']]:adaptConfigureParams(x['method'],z)},q(x));if(x['method']==='coin_add')consumePendingPlanFunding(A);if(C['outcome']!=='executed'){l['push']({'stepId':x['id'],'status':'failed',...C['digest']!==undefined?{'digest':C['digest']}:{},'error':C['error']??C['outcome']}),r=!![];continue;}l['push']({'stepId':x['id'],'status':'executed','digest':C['digest'],'address':A});}catch(a1){const a2=a1?.['digest'];l['push']({'stepId':x['id'],'status':'failed',...typeof a2==='string'&&a2?{'digest':a2}:{},'error':a1 instanceof Error?a1['message']:String(a1)});if(x['op']==='configure'&&x['method']==='coin_add')try{consumePendingPlanFunding(p(x['target']));}catch{}r=!![];}}clearPendingPlanFunding();const v=await verifyMaterialization(h,j,b,l);return{'steps':l,'outputs':Object['fromEntries'](j),'completed':l['length']>0x0&&l['every'](a3=>a3['status']==='executed'),'budgetExhausted':u,'preflight':i,'readback':v,...f['reanchor']?{'deadline_reanchor':f['reanchor']}:{}};}function planAllocatorRows(a){const b=[],c=d=>{if(typeof d==='object'&&d!==null&&!Array['isArray'](d)){const e=d;if(Array['isArray'](e['allocators']))d=e['allocators'];}if(!Array['isArray'](d))return;for(const f of d){if(typeof f==='object'&&f!==null)b['push'](f);}};for(const d of a['steps']){if(d['op']==='create'&&d['object']==='service')c(d['params']['order_allocators']);if(d['op']==='configure'&&d['method']==='order_allocators')c(d['params']['allocators']);}return b;}function declaredRepoPolicyNames(a,b){const c=[],d=e=>{if(!Array['isArray'](e))return;for(const f of e){const g=f?.['name'];if(typeof g==='string'&&g['trim']()!==''&&!c['includes'](g['trim']()))c['push'](g['trim']());}};for(const e of a['steps']){if(e['op']==='create'&&e['id']===b){d(e['params']['policies']);continue;}if(e['op']!=='configure'||e['method']!=='policies')continue;const f=e['target'],g=f!==null&&typeof f==='object'&&typeof f['$ref']==='string'?f['$ref']:undefined;if(g!==b)continue;if(e['params']['op']!=='add')continue;d(e['params']['policy']);}return c;}export function conservationCheck(a){const b=planAllocatorRows(a);if(b['length']===0x0)return[{'name':'allocator_conservation','ok':![],'detail':'no\x20allocator\x20rows\x20(PLAN-ALLOC-01)'}];const c=[];return b['forEach']((d,e)=>{const f=d['track']??'settlement',g=typeof d['guard']==='object'&&d['guard']!==null?String(d['guard']['$ref']??JSON['stringify'](d['guard'])['slice'](0x0,0x28)):String(d['guard']??'?'),h='conservation:'+f+'['+e+']'+(g!=='?'?'('+g+')':''),i=(d['sharing']??[])['map'](l=>l['mode']);if(i['some'](l=>l==='Amount')){c['push']({'name':h,'ok':!![],'detail':'contains\x20Amount-mode\x20row(s)\x20—\x20fixed\x20payouts\x20are\x20not\x20statically\x20verifiable\x20against\x20the\x20escrow\x20total'});return;}let j=0x0;for(const l of d['sharing']??[]){if(l['mode']==='Rate'||l['mode']==='RateGross')j+=Number(l['sharing']??0x0);}const k=i['some'](n=>n==='Surplus');if(j>0x2710)c['push']({'name':h,'ok':![],'detail':'rate\x20sum\x20'+j+'\x20>\x2010000\x20—\x20row\x20pays\x20out\x20MORE\x20than\x20it\x20holds'});else j<0x2710&&!k?c['push']({'name':h,'ok':![],'detail':'rate\x20sum\x20'+j+'\x20<\x2010000\x20and\x20no\x20Surplus\x20row\x20—\x20the\x20remainder\x20has\x20no\x20fund\x20exit'}):c['push']({'name':h,'ok':!![],'detail':k?'rate\x20sum\x20'+j+'\x20+\x20Surplus\x20row\x20absorbs\x20the\x20remainder':'rate\x20sum\x20'+j+'\x20==\x2010000'});}),c;}async function verifyMaterialization(a,b,c,d=[]){const f=[...conservationCheck(a)],g=a['steps']['filter'](h=>h['op']==='create')['length'];if(g>0x0){const h=b['size'];f['push']({'name':'created_objects','ok':h>0x0,'detail':h+'\x20object(s)\x20materialized\x20on-chain\x20of\x20'+g+'\x20declared\x20create\x20step(s)'+(h===0x0?'\x20—\x20NOTHING\x20was\x20built;\x20treat\x20the\x20deployment\x20as\x20NOT\x20done':'')});}if(a['steps']['length']>0x0&&d['length']>0x0){const i=d['filter'](j=>j['status']==='executed')['length'];f['push']({'name':'executed_steps','ok':i===d['length'],'detail':i+'/'+d['length']+'\x20step(s)\x20executed\x20this\x20run'});}if(c['read']!==undefined){for(const j of createsOf(a,'repository')){const k=b['get'](j['id']);if(k===undefined)continue;const l=declaredRepoPolicyNames(a,j['id']);if(l['length']===0x0)continue;try{const m=await c['read'](k,'repository',c['env']);if(m===undefined||m===null){f['push']({'name':'readback:'+j['id'],'ok':![],'detail':'repository\x20'+k+'\x20not\x20readable\x20after\x20creation'});continue;}const n=new Set((Array['isArray'](m['policies'])?m['policies']:[])['map'](q=>typeof q?.['name']==='string'?q['name']['toLowerCase']():'')['filter'](Boolean)),o=l['filter'](p=>!n['has'](p['toLowerCase']()));f['push']({'name':'readback:'+j['id']+':policies','ok':o['length']===0x0,'detail':o['length']===0x0?'on-chain\x20policies\x20cover\x20the\x20'+l['length']+'\x20plan-declared:\x20'+l['join'](',\x20'):'PLAN\x20DECLARED\x20but\x20NOT\x20on-chain:\x20'+o['join'](',\x20')+'\x20(declared:\x20'+l['join'](',\x20')+';\x20chain:\x20'+([...n]['join'](',\x20')||'none')+').\x20Every\x20guard\x20leg\x20reading\x20a\x20missing\x20key\x20can\x20never\x20open\x20—\x20a\x20rating-floor\x20reward\x20becomes\x20permanently\x20unclaimable.\x20Fix\x20BEFORE\x20any\x20buyer\x20flow:\x20repository\x20policies\x20configure\x20{op:\x22add\x22,\x20policy:[{name:\x22'+o[0x0]+'\x22,\x20write_guard:\x22<the\x20credential\x20guard\x20ADDRESS\x20as\x20a\x20plain\x20string>\x22,\x20id_from:\x22none\x22,\x20value_type:\x22U64\x22,\x20description:\x22...\x22}]}\x20(permission\x20102\x20—\x20write_guard\x20must\x20be\x20the\x20guard\x20address\x20STRING,\x20the\x20object\x20form\x20is\x20schema-rejected),\x20then\x20re-verify.'});}catch(p){f['push']({'name':'readback:'+j['id'],'ok':![],'detail':p instanceof Error?p['message']:String(p)});}}for(const q of createsOf(a,'service')){const r=b['get'](q['id']);if(r===undefined)continue;try{const s=await c['read'](r,'service',c['env']);if(s===undefined||s===null){f['push']({'name':'readback:'+q['id'],'ok':![],'detail':'service\x20'+r+'\x20not\x20readable\x20after\x20creation'});continue;}const t=planAllocatorRows(a)['length'],u=s['order_allocators']?.['allocators']?.['length']??(Array['isArray'](s['order_allocators'])?s['order_allocators']['length']:undefined);u!==undefined&&f['push']({'name':'readback:'+q['id']+':allocators','ok':u>=t,'detail':'on-chain\x20allocator\x20rows\x20'+u+'\x20vs\x20plan\x20'+t});}catch(v){f['push']({'name':'readback:'+q['id'],'ok':![],'detail':v instanceof Error?v['message']:String(v)});}}}return{'ok':f['every'](w=>w['ok']),'checks':f};}
|