@wowok/agent-mcp 3.4.1 → 3.4.2
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/chain-semantics/composition-truth.js +1 -1
- package/dist/extensions/capability.js +1 -1
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/extensions/modes.js +1 -1
- package/dist/harness/recover.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +2 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/builtin-templates.d.ts +17 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/fee-param-bindings.js +1 -1
- package/dist/knowledge/guard-bindings.js +1 -1
- package/dist/knowledge/guard-field-cognition.js +1 -1
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/param-schema.js +1 -1
- package/dist/knowledge/pattern-resolutions.js +1 -1
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/template-test-profiles.js +1 -1
- package/dist/participation/customer-interest.d.ts +4 -0
- package/dist/participation/customer-interest.js +1 -1
- package/dist/participation/node-action-advisor.d.ts +4 -0
- package/dist/participation/node-action-advisor.js +1 -1
- package/dist/participation/time-window.d.ts +11 -0
- package/dist/participation/time-window.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/allocation.js +1 -1
- package/dist/schema/call/proof.js +1 -1
- package/dist/schema/call/service.d.ts +15 -5
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/operations.d.ts +3 -1
- package/dist/schema/query/index.js +1 -1
- package/dist/schemas/benchmark_migration_operation.schema.json +1 -1
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/onchain_operations.schema.json +16 -6
- package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
- package/dist/schemas/onchain_operations_guard.schema.json +2 -2
- package/dist/schemas/onchain_operations_proof.schema.json +1 -1
- package/dist/schemas/onchain_operations_service.schema.json +12 -2
- package/dist/schemas/query_toolkit.output.json +1 -1
- package/dist/tools/handlers/benchmark-migration.d.ts +9 -0
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/onchain.d.ts +10 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{classifyFeeParam}from'./param-tiers.js';export const PARAM_TAGS=['pricing','deposit','payout','settlement','window','cancel','return','review','dispute','logistics','membership','capacity','flow','staff','risk','growth','compliance'];const TAG_SET=new Set(PARAM_TAGS),TAG_RULES=[['pricing',/(_bps$|_price$|_usd$|_amount$|^min_|_fee$|_fee_|_cost$|^commission|^attributed_|^offsite_|^base_commission)/],['deposit',/(deposit|_floor_|escrow|prepay|balance_)/],['payout',/(payout|release|settle|settlement|remit)/],['settlement',/(settle|settlement|_release_|monthly_rent|threshold|commission|service_fee|_share_bps|retain_bps|_tip_bps)/],['window',/(_hours$|_days$|_ms$|_window$|_timeout|_deadline|_period|_grace|_term_|_nights$|_lead_)/],['cancel',/(cancel|withdraw|expire|no_show|no_fault)/],['return',/(return|refund|restock|replenish)/],['review',/(review|rating|reward|revision)/],['dispute',/(dispute|arbit|appeal|claim|triage|objection|defect_report)/],['logistics',/(ship|deliver|transit|pickup|dropoff|courier|dispatch|fulfil|handover|meet|auto_confirm|processing_time|production_lead)/],['membership',/(member|subscription|period_days|renewal|tier|quota)/],['capacity',/(_count$|_sessions$|_months$|_nights$|_allocators$|_rounds|_segment|_term_|_quota)/],['flow',/(_mode$|_line$|_type$|_policy$|_tier|_variant$|^storefront|^deposit_exit|^logistics|^crowdfunding|^installment|^acceptance|^after_sales)/],['staff',/(staff|operator|agent|role|permission|collaborator|roster)/],['risk',/(cap|_pool$|indemnity|penalty|forfeit|bond|guarantee|insurance)/],['growth',/(affiliate|referral|bounty|reward|promo|voucher|coupon|attributed_|offsite_)/],['compliance',/(privacy|consent|disclosure|age|kyc|passport|license|required_info)/]];export function tagsFor(a){const b=[];for(const [c,d]of TAG_RULES)if(d['test'](a))b['push'](c);return b;}const UNIT_BY_SUFFIX=[['_bps','bps'],['_usd','usd'],['_ms','ms'],['_hours','hours'],['_days','days'],['_months','months'],['_nights','nights'],['_count','count'],['_rounds','count'],['_sessions','count'],['_allocators','count']];export function unitFor(a){for(const [b,c]of UNIT_BY_SUFFIX)if(a['endsWith'](b))return c;return'unitless';}const UNIT_HINTS={'bps':'basis\x20points\x20(100\x20bps\x20=\x201%)','usd':'US\x20dollars','ms':'milliseconds','hours':'hours','days':'days','months':'months','nights':'nights','count':'a\x20whole\x20number','unitless':'a\x20plain\x20number','mist':'raw\x20amount\x20in\x20MIST\x20(1\x20WOW\x20=\x2010^9\x20MIST)'};export function unitHint(a){return UNIT_HINTS[a]??UNIT_HINTS['unitless'];}const PARAM_MEANINGS={'acceptance_timeout_hours':'Hours\x20the\x20supplier\x20has\x20to\x20accept\x20an\x20order\x20before\x20it\x20lapses.','after_sales_scope':'After-sales\x20money\x20scope\x20for\x20a\x20short/bad\x20delivery:\x20\x27full_refund\x27\x20(default)\x20refunds\x20the\x20whole\x20pledge\x20on\x20either\x20remedy\x20path;\x20\x27partial_refund\x27\x20refunds\x20in\x20full\x20only\x20when\x20goods\x20return\x20and\x20pays\x20the\x20declared\x20fixed\x20shortfall\x20compensation\x20on\x20the\x20refund-only\x20path.','allocator_threshold':'Formula\x20the\x20settlement\x20threshold\x20must\x20satisfy\x20(prose\x20directive,\x20not\x20a\x20setting).','annual_plan_usd':'Annual\x20membership\x20price\x20in\x20USD.','appeal_window_days':'Days\x20after\x20a\x20ruling\x20during\x20which\x20it\x20can\x20still\x20be\x20appealed.','arb_indemnity_floor_bps':'Floor,\x20in\x20basis\x20points\x20of\x20the\x20escrow,\x20reserved\x20for\x20arbitrator\x20compensation.','arb_payout_pairing':'How\x20a\x20buyer-won\x20ruling\x20combines\x20the\x20principal\x20refund\x20with\x20the\x20compensation:\x20\x27either\x27\x20pays\x20one\x20and\x20closes\x20the\x20other\x20rail,\x20\x27stacked\x27\x20pays\x20both\x20(the\x20stacked\x20money\x20rail\x20is\x20declared\x20only,\x20so\x20the\x20escrow\x20still\x20settles\x20under\x20\x27either\x27).','arbitration_fee_usd':'Flat\x20USD\x20fee\x20charged\x20to\x20open\x20an\x20arbitration\x20case.','attributed_commission_rate_bps':'Take\x20rate\x20charged\x20on\x20sales\x20traced\x20to\x20an\x20attributed\x20channel.','auto_confirm_days':'Days\x20of\x20buyer\x20silence\x20after\x20delivery\x20before\x20the\x20order\x20auto-completes\x20and\x20settlement\x20opens.','auto_confirm_hours':'Hours\x20of\x20buyer\x20silence\x20after\x20delivery\x20before\x20the\x20order\x20auto-completes.','balance_amount':'Remaining\x20amount\x20collected\x20in\x20the\x20balance\x20stage\x20(deposit\x20plus\x20balance\x20pricing).','balance_window_days':'Days\x20the\x20buyer\x20has\x20to\x20pay\x20the\x20remaining\x20balance\x20after\x20the\x20deposit.','base_commission_rate_bps':'Base\x20take\x20rate\x20before\x20channel-attribution\x20adjustments.','bounty_high_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20high-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','bounty_medium_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20medium-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','bounty_low_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20low-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','campaign_deadline_ms':'Unix\x20epoch\x20milliseconds\x20at\x20which\x20the\x20campaign\x20closes.\x20Generation\x20DERIVES\x20it\x20from\x20campaign_duration_days\x20when\x20the\x20operator\x20answered\x20the\x20length\x20(build\x20instant\x20+\x20N\x20days,\x20recorded\x20on\x20the\x20plan);\x20pass\x20it\x20directly\x20only\x20when\x20the\x20close\x20date\x20is\x20fixed.','campaign_duration_days':'Running\x20days\x20from\x20launch\x20to\x20campaign\x20close.\x20The\x20unit\x20the\x20operator\x20answers\x20in;\x20generation\x20converts\x20it\x20into\x20the\x20absolute\x20campaign_deadline_ms\x20every\x20chain\x20deadline\x20gate\x20reads.','cancel_tier_1_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x201\x20begins,\x20in\x20hours\x20(cancelling\x20further\x20out\x20pays\x20the\x20tier-1\x20charge).','cancel_tier_2_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x202\x20begins,\x20in\x20hours.','cancel_tier_3_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x203\x20(the\x20no-show\x20band)\x20begins,\x20in\x20hours.','cancel_tier_1_charge_bps':'Cancellation\x20charge\x20for\x20the\x20earliest\x20band\x20(most\x20notice),\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_2_charge_bps':'Cancellation\x20charge\x20for\x20the\x20middle-early\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_3_charge_bps':'Cancellation\x20charge\x20for\x20the\x20middle-late\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_4_charge_bps':'Cancellation\x20charge\x20for\x20the\x20last-minute\x20(no-show)\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','service_start_ms':'Unix\x20epoch\x20milliseconds\x20of\x20the\x20service/departure\x20start,\x20shared\x20by\x20every\x20order\x20of\x20that\x20service;\x20the\x20cancellation\x20bands\x20measure\x20notice\x20against\x20it.','cancellation_policy':'Prose\x20cancellation\x20policy;\x20the\x20enforceable\x20values\x20are\x20the\x20cancel-window\x20keys.','claim_window_days':'Days\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20can\x20file\x20a\x20dispute\x20before\x20settlement\x20opens.','claim_window_hours':'Hours\x20of\x20the\x20dispute-filing\x20window\x20after\x20delivery.','claim_window_open_min_hold_hours':'Hours\x20after\x20delivery\x20before\x20the\x20keeper\x20may\x20open\x20the\x20dispute\x20window\x20—\x20the\x20claim\x20clock\x20cannot\x20start\x20at\x20the\x20delivery\x20instant.','dispatch_window_hours':'Hours\x20after\x20the\x20order\x20sits\x20ready\x20in\x20which\x20a\x20rostered\x20rider\x20must\x20pick\x20it\x20up;\x20elapsed\x20with\x20no\x20pickup,\x20the\x20platform\x20force-cancels\x20penalty-free\x20into\x20the\x20full-refund\x20terminal\x20(capacity\x20shortage\x20is\x20the\x20platform\x27s\x20fulfillment\x20failure).','co_holder_bps':'Share,\x20in\x20basis\x20points,\x20held\x20by\x20a\x20co-holder\x20of\x20the\x20asset\x20or\x20right.','commission_rate_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points\x20(0\x20keeps\x20the\x20merchant\x20the\x20full\x20amount).','confirm_timeout_hours':'Hours\x20the\x20merchant\x20has\x20to\x20confirm\x20an\x20order\x20before\x20it\x20auto-cancels.','confirm_window_hours':'Window,\x20in\x20hours,\x20for\x20confirming\x20the\x20order\x20or\x20handover.','contract_fee_large_usd':'Flat\x20contract\x20fee\x20for\x20large\x20engagements.','contract_fee_small_usd':'Flat\x20contract\x20fee\x20for\x20small\x20engagements.','contract_fee_tier_boundary_usd':'Contract\x20value,\x20in\x20USD,\x20separating\x20the\x20small\x20from\x20the\x20large\x20fee\x20tier.','courier_fee':'Courier\x20delivery\x20fee.','courier_tip_bps':'Rider\x20tip\x20or\x20incentive,\x20in\x20basis\x20points\x20of\x20the\x20order\x20value.','course_price_usd':'Price\x20of\x20one\x20course\x20seat\x20in\x20USD.','creator_settlement_retain_bps':'Share\x20of\x20each\x20settlement\x20the\x20creator\x20keeps\x20(the\x20rest\x20funds\x20platform\x20and\x20fee\x20legs).','damage_max_amount':'Maximum\x20damage\x20compensation\x20payable\x20out\x20of\x20the\x20escrow.','defect_report_window_hours':'Hours\x20after\x20delivery\x20in\x20which\x20a\x20defect\x20or\x20damage\x20must\x20be\x20reported.','delivery_window_days':'Promised\x20delivery\x20window\x20in\x20days.','deposit_amount':'Up-front\x20deposit\x20collected\x20at\x20order\x20time\x20(the\x20rest\x20is\x20collected\x20later).','deposit_exit_policy':'Prose\x20policy\x20for\x20exiting\x20or\x20refunding\x20the\x20deposit.','deposit_refund_days':'Days\x20after\x20checkout\x20within\x20which\x20the\x20deposit\x20is\x20refunded.','digital_product_fee_bps':'Fee\x20rate\x20charged\x20on\x20digital\x20product\x20sales.','digital_product_fee_max_usd':'Cap\x20on\x20the\x20digital\x20product\x20fee,\x20in\x20USD.','digital_product_fee_min_usd':'Floor\x20on\x20the\x20digital\x20product\x20fee,\x20in\x20USD.','dispute_timeout_days':'Days\x20after\x20a\x20dispute\x20is\x20filed\x20before\x20it\x20escalates\x20or\x20defaults.','dispute_window_days':'Days\x20after\x20delivery\x20to\x20escalate\x20a\x20complaint\x20to\x20arbitration.','early_exit_penalty_amount':'Flat\x20penalty\x20charged\x20on\x20early\x20termination.','early_exit_penalty_months':'Months\x20of\x20rent\x20charged\x20as\x20the\x20early-exit\x20penalty.','errand_line':'Errand\x20service\x20line;\x20this\x20selector\x20changes\x20which\x20rails\x20the\x20machine\x20installs.','escrow_release_days':'Days\x20the\x20escrow\x20holds\x20before\x20the\x20funds\x20release\x20to\x20the\x20merchant.','evaluation_window_days':'Days\x20allowed\x20to\x20evaluate\x20a\x20submitted\x20deliverable.','evidence_window_hours':'Hours\x20to\x20submit\x20evidence\x20once\x20a\x20dispute\x20is\x20open.','free_cancel_hours':'Hours\x20after\x20purchase\x20during\x20which\x20cancellation\x20is\x20free\x20(full\x20refund).','full_price':'List\x20price\x20before\x20discounts\x20or\x20the\x20deposit\x20split.','funding_threshold':'Amount\x20that\x20must\x20be\x20raised\x20for\x20the\x20campaign\x20to\x20succeed.','grace_days':'Grace\x20period\x20in\x20days\x20before\x20a\x20late\x20payment\x20counts\x20as\x20a\x20breach.','host_rate_bps':'Host\x20payout\x20share\x20of\x20the\x20booking\x20value,\x20in\x20basis\x20points.','incumbent_take_bps':'Take\x20rate\x20of\x20the\x20incumbent\x20platform\x20(comparison\x20only).','inspection_deadline_hours':'Hours\x20to\x20complete\x20the\x20inspection\x20after\x20handover.','inspection_window_days':'Days\x20of\x20inspection\x20window\x20after\x20delivery.','instant_cancel_hours':'Hours\x20within\x20which\x20cancellation\x20takes\x20effect\x20immediately.','institution_share_bps':'Share\x20of\x20course\x20revenue\x20paid\x20to\x20the\x20institution.','kill_fee_bps':'Fee\x20kept\x20from\x20the\x20escrow\x20when\x20the\x20buyer\x20cancels\x20after\x20acceptance.','kill_fee_buyer_bps':'Late-cancellation\x20fee\x20charged\x20to\x20the\x20buyer.','layer2_segment_amounts':'Segment\x20amounts\x20of\x20the\x20second\x20allocation\x20layer\x20(directive\x20formula).','leader_commission_bps':'Commission\x20paid\x20to\x20the\x20group\x20leader\x20on\x20each\x20member\x20order.','lease_months':'Lease\x20length\x20in\x20months.','max_months':'Longest\x20subscription\x20or\x20lease\x20term,\x20in\x20months.','max_sessions':'Maximum\x20sessions\x20included\x20in\x20the\x20plan.','membership_price':'Membership\x20price\x20per\x20period.','merchant_service_fee_bps':'Incumbent\x20marketplace\x27s\x20merchant-side\x20service\x20fee\x20(benchmark,\x20comparison\x20only).\x20WoWok\x20is\x20DIRECT\x20SALES\x20here:\x20this\x20store\x20pays\x20no\x20platform\x20commission,\x20so\x20the\x20shipped\x20value\x20is\x200\x20and\x20no\x20money\x20rail\x20reads\x20it\x20—\x20set\x20it\x20only\x20if\x20YOU\x20are\x20the\x20aggregator\x20charging\x20your\x20own\x20sellers.','min_balance':'Minimum\x20balance\x20that\x20must\x20remain\x20(directive\x20floor).','min_booking_amount':'Minimum\x20bookable\x20amount\x20(directive\x20floor).','min_contract_usd':'Minimum\x20contract\x20value\x20in\x20USD\x20(directive\x20floor).','min_course_price_usd':'Minimum\x20course\x20price\x20in\x20USD\x20(directive\x20floor).','min_monthly_rent_usd':'Minimum\x20monthly\x20rent\x20in\x20USD\x20(directive\x20floor).','min_order_price':'Minimum\x20order\x20price\x20(directive\x20floor).','min_sku_price':'Minimum\x20SKU\x20price\x20(directive\x20floor).','min_term_price':'Minimum\x20price\x20per\x20term:\x20the\x20numeric\x20floor\x20the\x20settlement\x20fixed\x20legs\x20must\x20fit\x20under\x20(per-session\x20releases\x20count\x20the\x20whole\x20term).','min_term_price_usd':'Minimum\x20price\x20per\x20term\x20in\x20USD\x20(directive\x20floor).','max_discount_bps':'Ceiling\x20on\x20any\x20coupon\x20the\x20merchant\x20may\x20issue\x20against\x20this\x20shape,\x20in\x20basis\x20points\x20—\x20derived\x20from\x20how\x20much\x20the\x20fixed\x20legs\x20leave\x20above\x20the\x20price\x20floor.','month_release_day':'Day\x20of\x20the\x20month\x20on\x20which\x20the\x20monthly\x20release\x20runs.','monthly_allocators':'Monthly\x20allocators\x20to\x20open,\x20one\x20per\x20release\x20period.','monthly_rent_amount':'Monthly\x20rent\x20amount.','no_fault_exit_days':'Days\x20of\x20notice\x20required\x20for\x20a\x20no-fault\x20exit.','no_show_floor_hours':'Hours\x20after\x20which\x20a\x20no-show\x20releases\x20the\x20slot\x20with\x20a\x20floor\x20charge.','objection_window_hours':'Hours\x20to\x20object\x20after\x20a\x20proposal\x20or\x20claim.','offsite_ads_rate_bps':'Take\x20rate\x20on\x20off-site\x20advertising-attributed\x20sales.','partner_share_bps':'Share\x20of\x20revenue\x20paid\x20to\x20the\x20partner.','payment_fee_bps':'Payment\x20processing\x20fee\x20in\x20basis\x20points.','per_session_release':'Amount\x20released\x20per\x20completed\x20session.','period_days':'Length\x20of\x20one\x20billing\x20period\x20in\x20days.','pickup_window_hours':'Hours\x20within\x20which\x20pickup\x20must\x20be\x20completed.','platform_commission_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points\x20(0\x20keeps\x20the\x20merchant\x20the\x20full\x20amount).','platform_commission_rate_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points.','platform_fee_rate_bps':'Platform\x20fee\x20rate\x20applied\x20to\x20the\x20order\x20value,\x20in\x20basis\x20points.','platform_rate_bps':'Platform\x20rate\x20applied\x20to\x20the\x20order\x20value,\x20in\x20basis\x20points.','platform_rate_cap_bps':'Upper\x20bound\x20on\x20the\x20platform\x20take\x20rate.','platform_share_bps':'Share\x20of\x20the\x20order\x20kept\x20by\x20the\x20platform.','platform_take_bps':'Platform\x20take\x20per\x20settled\x20order,\x20in\x20basis\x20points.','platform_tool_fee_bps':'Fee\x20for\x20using\x20the\x20platform\x20tooling,\x20in\x20basis\x20points.','point_type':'Point\x20or\x20credit\x20type\x20used\x20by\x20the\x20loyalty\x20ledger.','preferred_property_rate_bps':'Commission\x20rate\x20applied\x20to\x20preferred\x20properties.','prepay_cap':'Cap\x20on\x20the\x20amount\x20that\x20may\x20be\x20prepaid.','primary_holder_bps':'Share\x20held\x20by\x20the\x20primary\x20rights\x20holder.','processing_time_days':'Days\x20the\x20supplier\x20takes\x20to\x20process\x20the\x20request.','producer_bps':'Share\x20paid\x20to\x20the\x20producer.','production_lead_days':'Days\x20needed\x20to\x20produce\x20the\x20item\x20before\x20it\x20ships.','property_rate_bps':'Commission\x20rate\x20on\x20property\x20bookings.','protection_cap_usd':'Maximum\x20buyer-protection\x20payout\x20in\x20USD.','publisher_bps':'Share\x20paid\x20to\x20the\x20publisher.','refund_window_days':'Days\x20after\x20delivery\x20in\x20which\x20a\x20refund\x20may\x20be\x20requested.','renewal_reminder_days':'Days\x20before\x20renewal\x20to\x20send\x20the\x20reminder.','required_info_enforcement':'Whether\x20missing\x20required\x20buyer\x20info\x20blocks\x20the\x20order\x20(on/off).','requirements_timeout_hours':'Hours\x20the\x20buyer\x20has\x20to\x20supply\x20missing\x20requirements\x20before\x20the\x20order\x20lapses.','response_timeout_hours':'Hours\x20a\x20seller\x20has\x20to\x20grant\x20or\x20decline\x20a\x20cancel\x20request\x20before\x20a\x20keeper\x20auto-cancels\x20it\x20in\x20the\x20buyer\x27s\x20favour\x20(full\x20refund).','refund_response_hours':'Hours\x20a\x20seller\x20has\x20to\x20grant\x20or\x20decline\x20a\x20refund\x20request\x20before\x20a\x20keeper\x20auto-refunds\x20the\x20buyer\x20in\x20full\x20(the\x20refund-request\x20twin\x20of\x20the\x20cancel\x20clock).','reserve_days':'Days\x20a\x20reserve\x20is\x20held\x20back\x20from\x20the\x20payout.','restock_confirm_days':'Days\x20to\x20confirm\x20restocking\x20after\x20a\x20return\x20arrives.','restock_on_refund':'Restock\x20rule\x20applied\x20when\x20a\x20refund\x20completes\x20(directive).','return_notice_days':'Days\x20of\x20notice\x20required\x20before\x20returning\x20the\x20item.','return_transit_days':'Days\x20allowed\x20for\x20the\x20returned\x20item\x20to\x20travel\x20back.','return_window_days':'Days\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20may\x20return\x20the\x20item.','return_window_hours':'Hours\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20may\x20return\x20the\x20item.','review_reward_per_claim':'Bounty\x20paid\x20for\x20one\x20accepted\x20review\x20claim.','review_reward_pool':'Total\x20pool\x20that\x20funds\x20review\x20rewards.','review_window_days':'Days\x20after\x20completion\x20in\x20which\x20a\x20review\x20may\x20be\x20submitted.','revision_rounds_max':'Maximum\x20revision\x20rounds\x20included\x20in\x20the\x20price.','reward_claim_closes_after_days':'Days\x20after\x20completion\x20when\x20the\x20review-reward\x20claim\x20closes.','reward_claim_opens_after_days':'Days\x20after\x20the\x20after-sales\x20window\x20before\x20the\x20review-reward\x20bounty\x20becomes\x20claimable.','segment_count':'Number\x20of\x20allocation\x20segments.','service_fee_rate_bps':'Service\x20fee\x20rate\x20charged\x20on\x20the\x20order.','session_count':'Number\x20of\x20sessions\x20included\x20in\x20the\x20plan.','settle_hours':'Hours\x20after\x20the\x20settlement\x20window\x20opens\x20before\x20funds\x20reach\x20the\x20merchant.','settlement_days':'Days\x20between\x20order\x20completion\x20and\x20settlement\x20to\x20the\x20merchant.','settlement_delay_days':'Delay\x20in\x20days\x20applied\x20to\x20the\x20payout.','setting_lock_days':'Days\x20during\x20which\x20a\x20setting\x20is\x20locked\x20after\x20the\x20order\x20is\x20placed.','shortfall_refund_amount':'Fixed\x20shortfall\x20compensation\x20in\x20absolute\x20chain\x20units,\x20paid\x20instead\x20of\x20the\x20whole\x20pledge\x20on\x20the\x20refund-only\x20bad-item\x20path\x20when\x20after_sales_scope\x20is\x20\x27partial_refund\x27;\x20the\x20listing\x20price\x20must\x20exceed\x20it\x20(minimum\x20order\x20amount\x20discipline).','stay_nights':'Nights\x20per\x20stay.','storefront_mode':'Storefront\x20shape;\x20this\x20selector\x20changes\x20the\x20generated\x20storefront\x20topology.','submission_window_days':'Days\x20to\x20submit\x20the\x20deliverable.','subscription_monthly_usd':'Monthly\x20subscription\x20price\x20in\x20USD.','term_count':'Number\x20of\x20terms\x20or\x20invoices\x20in\x20the\x20contract.','term_price':'Price\x20charged\x20per\x20term.','term_price_usd':'Price\x20charged\x20per\x20term\x20in\x20USD.','threshold':'Escrow\x20amount\x20that\x20triggers\x20the\x20next\x20stage.','tier5_guest_bps':'Cancellation\x20tier\x205:\x20share\x20charged\x20to\x20the\x20guest.','tier5_host_bps':'Cancellation\x20tier\x205:\x20share\x20paid\x20to\x20the\x20host.','tier6_guest_bps':'Cancellation\x20tier\x206:\x20share\x20charged\x20to\x20the\x20guest.','tier6_host_bps':'Cancellation\x20tier\x206:\x20share\x20paid\x20to\x20the\x20host.','triage_window_days':'Days\x20to\x20triage\x20a\x20report\x20before\x20it\x20escalates.','tuition_usd':'Tuition\x20per\x20enrollment\x20in\x20USD.','unclaimed_exit':'What\x20happens\x20to\x20an\x20order\x20the\x20buyer\x20never\x20collects:\x20refund_buyer\x20(default)\x20returns\x20the\x20principal\x20in\x20full\x20after\x20the\x20pickup\x20window,\x20settle_merchant\x20opens\x20the\x20serial\x20claim\x20window\x20and\x20settles\x20to\x20the\x20supplier\x20with\x20the\x20buyer\x20keeping\x20a\x20late-appeal\x20refund\x20route.','withdrawal_window_days':'Days\x20during\x20which\x20withdrawal\x20is\x20allowed.'};export const CURATED_MEANING_COUNT=Object['keys'](PARAM_MEANINGS)['length'];const KIND_WORD={'money':'amount','ratio':'rate','duration':'duration','count':'count','enum':'option','flag':'on/off\x20switch','text':'text','list':'list\x20of\x20values'};export function paramMeaning(a,b,c,d){const e=PARAM_MEANINGS[a];if(e!==undefined)return e;const f=d['length']>0x0?'\x20on\x20the\x20'+d['join']('/')+'\x20facet':'';return'Not\x20yet\x20described\x20—\x20a\x20'+KIND_WORD[b]+(c!=='unitless'?'\x20in\x20'+c:'')+f+'.';}export const PARAM_ALIASES=[['take\x20rate',['platform_commission_bps','platform_commission_rate_bps','platform_take_bps','platform_fee_rate_bps','platform_rate_bps','commission_rate_bps','merchant_service_fee_bps','incumbent_take_bps']],['commission',['platform_commission_bps','commission_rate_bps','leader_commission_bps','attributed_commission_rate_bps']],['get\x20paid',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day']],['payout',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','reserve_days']],['refund',['return_window_days','refund_window_days','deposit_refund_days','free_cancel_hours']],['cancel',['free_cancel_hours','instant_cancel_hours','kill_fee_bps','cancel_tier_1_charge_bps','cancel_tier_2_charge_bps','cancel_tier_3_charge_bps','cancel_tier_4_charge_bps']],['dispute',['claim_window_days','dispute_window_days','dispute_timeout_days','arbitration_fee_usd']],['deposit',['deposit_amount','balance_amount','prepay_cap']],['tip',['courier_tip_bps','courier_fee']],['reward',['review_reward_pool','review_reward_per_claim','reward_claim_opens_after_days','reward_claim_closes_after_days']],['bounty',['bounty_high_hunter_bps','bounty_medium_hunter_bps','bounty_low_hunter_bps']],['hunter\x20share',['bounty_high_hunter_bps','bounty_medium_hunter_bps','bounty_low_hunter_bps']],['review',['review_window_days','review_reward_per_claim','review_reward_pool']],['rent',['monthly_rent_amount','lease_months','early_exit_penalty_months']],['delivery',['delivery_window_days','courier_fee','pickup_window_hours']],['membership',['membership_price','subscription_monthly_usd','annual_plan_usd','period_days']],['commission\x20cap',['platform_rate_cap_bps','protection_cap_usd']],['fee',['arbitration_fee_usd','payment_fee_bps','courier_fee','platform_tool_fee_bps']],['how\x20much\x20do\x20i\x20keep',['platform_commission_bps','platform_take_bps','platform_share_bps','commission_rate_bps']],['late\x20fee',['kill_fee_bps','early_exit_penalty_months','cancel_tier_4_charge_bps']],['no\x20show',['no_show_floor_hours']],['holdback',['reserve_days','creator_settlement_retain_bps','setting_lock_days']],['minimum\x20order',['min_order_price','min_contract_usd','min_course_price_usd','min_booking_amount','min_sku_price']],['campaign\x20length',['campaign_duration_days']],['arbitration\x20fee',['arbitration_fee_usd']],['dispute\x20window',['dispute_window_days','dispute_timeout_days','claim_window_days']],['late\x20delivery',['delivery_window_days','auto_confirm_days','auto_confirm_hours']],['plan\x20price',['subscription_monthly_usd','annual_plan_usd','membership_price']],['renewal\x20reminder',['renewal_reminder_days']],['shipping\x20deadline',['processing_time_days','delivery_window_days']],['down\x20payment',['deposit_amount','balance_amount','deposit_refund_days']],['balance\x20due',['balance_amount','balance_window_days']],['notice\x20period',['return_notice_days','no_fault_exit_days','early_exit_penalty_months']],['guest\x20count',['tier5_guest_bps','tier6_guest_bps']],['tiered\x20pricing',['tier5_guest_bps','tier6_guest_bps']],['cancellation\x20charge',['cancel_tier_1_charge_bps','cancel_tier_2_charge_bps','cancel_tier_3_charge_bps','cancel_tier_4_charge_bps']],['money\x20released',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day','reserve_days']],['release\x20the\x20money',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day','reserve_days']]];const MAX_BY_UNIT={'hours':{'max':0x2238,'hint':'0..8760\x20(one\x20year;\x200\x20=\x20unset)'},'days':{'max':0x16d,'hint':'0..365\x20(one\x20year;\x200\x20=\x20unset)'},'months':{'max':0x3c,'hint':'0..60\x20(five\x20years)'},'nights':{'max':0x16d,'hint':'0..365\x20nights'},'ms':{'max':0x3bb2cc3d800,'hint':'milliseconds;\x20absolute\x20deadlines\x20may\x20be\x20epoch\x20ms\x20(up\x20to\x20year\x202100)'},'count':{'max':0x186a0,'hint':'0\x20or\x20more,\x20whole\x20numbers'}},PARAM_RANGE_OVERRIDES={'stay_nights':{'min':0x1,'max':0x16d,'hint':'1..365\x20nights'},'period_days':{'min':0x1,'max':0x16e,'hint':'1..366\x20days\x20(a\x20monthly\x20period\x20is\x2030,\x20a\x20leap\x20year\x20366)'},'lease_months':{'min':0x1,'max':0x78,'hint':'1..120\x20months'},'max_months':{'min':0x1,'max':0x78,'hint':'1..120\x20months'},'month_release_day':{'min':0x1,'max':0x1f,'hint':'1..31\x20(a\x20day\x20of\x20the\x20month)'},'revision_rounds_max':{'min':0x0,'max':0x64,'hint':'0..100\x20rounds'}};export function boundsFor(a,b,c){if(a==='enum'||a==='flag'||a==='text'||a==='list')return undefined;if(b==='bps')return{'min':0x0,'max':0x2710,'hint':'0..10000\x20(100\x20bps\x20=\x201%)'};if(c!==undefined&&PARAM_RANGE_OVERRIDES[c]!==undefined)return PARAM_RANGE_OVERRIDES[c];if(a==='money')return{'min':0x0,'hint':'0\x20or\x20more'};const d=MAX_BY_UNIT[b];if(a==='count')return{'min':0x0,'max':MAX_BY_UNIT['count']['max'],'hint':MAX_BY_UNIT['count']['hint']};if(a==='duration'){if(d!==undefined)return{'min':0x0,'max':d['max'],'hint':d['hint']};return{'min':0x0,'hint':'0\x20or\x20more\x20in\x20the\x20row\x27s\x20unit\x20(0\x20=\x20unset)'};}return undefined;}export function kindFor(a,b,c,d){if(c)return'enum';if(typeof b==='string'){if(/^(on|off|true|false)$/i['test'](b))return'flag';if(/^\s*-?\d+(?:\.\d+)?(?:\s*\/\s*-?\d+(?:\.\d+)?)+\s*$/['test'](b))return'list';return'enum';}const e=unitFor(a);if(e==='usd')return'money';if(e==='bps')return'ratio';if(e==='hours'||e==='days'||e==='ms'||e==='months'||e==='nights')return'duration';if(e==='count')return'count';if(d['includes']('pricing')||/amount|price|pool|cap|threshold|fee|cost|rent|reward|_per_claim|_release$|_retain|_tip$|tuition|balance|prepay|_share/['test'](a))return'money';return'count';}export function paramSchema(a){const b=new Set((a['conditional_guards']??[])['map'](e=>e['param'])),d=new Map();for(const e of a['conditional_guards']??[]){if(e['values']===undefined)continue;const f=d['get'](e['param'])??[];for(const g of e['values'])if(!f['includes'](g))f['push'](g);d['set'](e['param'],f);}return Object['entries'](a['fee_params'])['map'](([h,i])=>{const j=b['has'](h),k=classifyFeeParam(h,i,j),l=tagsFor(h),m=kindFor(h,i,j,l),n=unitFor(h),o=m==='money'&&n==='unitless'?'mist':n;return{'key':h,'tier':k['tier'],'tier_name':k['tier_name'],'group':k['group'],'tags':l,'kind':m,'unit':o,'unit_hint':unitHint(o),'meaning':paramMeaning(h,m,o,l),'type':typeof i==='number'?'number':'string','default':i,'bounds':boundsFor(m,o,h),'allowed':d['get'](h)??[],'disclosure':k['disclosure'],'selector':j,'settable_by':'merchant'};})['sort']((h,i)=>h['tier']-i['tier']||h['key']['localeCompare'](i['key']));}export function resolveUserInputQuestions(a){const b=new Map(paramSchema(a)['map'](c=>[c['key'],c]));return(a['user_input_specs']??[])['map'](c=>{const d=b['get'](c['param_key']);if(d===undefined)throw new Error('user_input_spec\x20\x27'+c['question']+'\x27\x20binds\x20undeclared\x20fee_param\x20\x27'+c['param_key']+'\x27\x20—\x20declare\x20the\x20key\x20in\x20fee_params\x20first');return{'question':c['question'],'param_key':c['param_key'],...c['note']!==undefined?{'note':c['note']}:{},'default':d['default'],'unit_hint':d['unit_hint'],'meaning':d['meaning'],...d['bounds']!==undefined?{'bounds':d['bounds']}:{},'allowed':d['allowed']};});}const STOPWORDS=new Set(['the','a','an','of','for','to','how','what','is','my','can','i','set','and','in','on','do','per','each']),WORD_SYNONYMS={'shipping':'ship','shipment':'ship','shipped':'ship','delivery':'deliver','deliveries':'deliver','restocking':'restock','restocked':'restock','renewals':'renewal'};function singular(a){if(a['length']<=0x3)return a;if(a['endsWith']('ies'))return a['slice'](0x0,-0x3)+'y';if(/(?:ses|xes|zes|ches|shes)$/['test'](a))return a['slice'](0x0,-0x2);if(a['endsWith']('s')&&!a['endsWith']('ss'))return a['slice'](0x0,-0x1);return a;}function canon(a){return WORD_SYNONYMS[a]??WORD_SYNONYMS[singular(a)]??singular(a);}function tokens(a){return a['toLowerCase']()['split'](/[^a-z0-9]+/)['filter'](b=>b['length']>0x1&&!STOPWORDS['has'](b))['map'](canon);}function keyWords(a){return a['toLowerCase']()['split'](/[^a-z0-9]+/)['filter'](b=>b['length']>0x1)['map'](canon);}const MIN_SCORE=0x4;export function matchParams(a,b,c=0x5){const d=tokens(a);if(d['length']===0x0)return[];const e=d['every'](m=>TAG_SET['has'](m))&&!b['some'](m=>keyWords(m['key'])['some'](n=>d['includes'](n))),f=a['toLowerCase']()['replace'](/[^a-z0-9]+/g,'_'),g='\x20'+a['toLowerCase']()['replace'](/[^a-z0-9]+/g,'\x20')['trim']()+'\x20',h=g['trim']()['split']('\x20')[0x0]??'',i=new Set(),j=[];for(const [m,n]of PARAM_ALIASES){if(!g['includes']('\x20'+m+'\x20')&&!g['includes']('\x20'+m+'s\x20'))continue;if(!m['includes']('\x20')&&m!==h)continue;j['push'](m);for(const o of n)i['add'](o);}const l=[];for(const p of b){if(p['disclosure']==='hidden')continue;let r=0x0;const s=[],u=new Set(),v=keyWords(p['key']);(p['key']===f||f['includes'](p['key']))&&(r+=0xa,s['push']('key:'+p['key']));for(const w of d){(v['includes'](w)||p['key']['includes']('_'+w))&&(r+=0x3,u['add'](w),s['push']('key-word:'+w)),p['tags']['includes'](w)&&(r+=0x2,u['add'](w),s['push']('tag:'+w));}i['has'](p['key'])&&(r+=0x6,s['push'](...j['map'](x=>'alias:'+x)));e&&d['every'](x=>p['tags']['includes'](x))&&(r+=0x4,s['push']('facet:'+d['join']('+')));if(p['meaning']!==undefined){const x=p['meaning']['toLowerCase']();let y=0x0;for(const z of d){if(y>=0x2)break;if(u['has'](z))continue;x['includes'](z)&&(r+=0x1,y++,s['push']('meaning:'+z));}}if(r<MIN_SCORE)continue;l['push']({'row':p,'score':r+0x1,'reasons':[...new Set(s)]});}return e?l['sort']((A,B)=>A['row']['tier']-B['row']['tier']||B['score']-A['score']||A['row']['key']['localeCompare'](B['row']['key'])):l['sort']((A,B)=>B['score']-A['score']||A['row']['key']['localeCompare'](B['row']['key'])),l['slice'](0x0,c);}export function searchTemplates(a,b,c,d=0x8){const e=[];for(const f of b){for(const g of matchParams(a,c(f),0x2)){e['push']({'template':f['id'],'key':g['row']['key'],'tier':g['row']['tier'],'disclosure':g['row']['disclosure'],'score':g['score']});}}return e['sort']((h,i)=>i['score']-h['score']||h['template']['localeCompare'](i['template'])),e['slice'](0x0,d);}
|
|
1
|
+
import{classifyFeeParam}from'./param-tiers.js';export const PARAM_TAGS=['pricing','deposit','payout','settlement','window','cancel','return','review','dispute','logistics','membership','capacity','flow','staff','risk','growth','compliance'];const TAG_SET=new Set(PARAM_TAGS),TAG_RULES=[['pricing',/(_bps$|_price$|_usd$|_amount$|^min_|_fee$|_fee_|_cost$|^commission|^attributed_|^offsite_|^base_commission)/],['deposit',/(deposit|_floor_|escrow|prepay|balance_)/],['payout',/(payout|release|settle|settlement|remit)/],['settlement',/(settle|settlement|_release_|monthly_rent|threshold|commission|service_fee|_share_bps|retain_bps|_tip_bps)/],['window',/(_hours$|_days$|_ms$|_window$|_timeout|_deadline|_period|_grace|_term_|_nights$|_lead_)/],['cancel',/(cancel|withdraw|expire|no_show|no_fault)/],['return',/(return|refund|restock|replenish)/],['review',/(review|rating|reward|revision)/],['dispute',/(dispute|arbit|appeal|claim|triage|objection|defect_report)/],['logistics',/(ship|deliver|transit|pickup|dropoff|courier|dispatch|fulfil|handover|meet|auto_confirm|processing_time|production_lead)/],['membership',/(member|subscription|period_days|renewal|tier|quota)/],['capacity',/(_count$|_sessions$|_months$|_nights$|_allocators$|_rounds|_segment|_term_|_quota)/],['flow',/(_mode$|_line$|_type$|_policy$|_tier|_variant$|^storefront|^deposit_exit|^logistics|^crowdfunding|^installment|^acceptance|^after_sales)/],['staff',/(staff|operator|agent|role|permission|collaborator|roster)/],['risk',/(cap|_pool$|indemnity|penalty|forfeit|bond|guarantee|insurance)/],['growth',/(affiliate|referral|bounty|reward|promo|voucher|coupon|attributed_|offsite_)/],['compliance',/(privacy|consent|disclosure|age|kyc|passport|license|required_info)/]];export function tagsFor(a){const b=[];for(const [c,d]of TAG_RULES)if(d['test'](a))b['push'](c);return b;}const UNIT_BY_SUFFIX=[['_bps','bps'],['_usd','usd'],['_ms','ms'],['_hours','hours'],['_days','days'],['_months','months'],['_nights','nights'],['_count','count'],['_rounds','count'],['_sessions','count'],['_allocators','count']];export function unitFor(a){for(const [b,c]of UNIT_BY_SUFFIX)if(a['endsWith'](b))return c;return'unitless';}const UNIT_HINTS={'bps':'basis\x20points\x20(100\x20bps\x20=\x201%)','usd':'US\x20dollars','ms':'milliseconds','hours':'hours','days':'days','months':'months','nights':'nights','count':'a\x20whole\x20number','unitless':'a\x20plain\x20number','mist':'raw\x20amount\x20in\x20MIST\x20(1\x20WOW\x20=\x2010^9\x20MIST)'};export function unitHint(a){return UNIT_HINTS[a]??UNIT_HINTS['unitless'];}const PARAM_MEANINGS={'acceptance_timeout_hours':'Hours\x20the\x20supplier\x20has\x20to\x20accept\x20an\x20order\x20before\x20it\x20lapses.','after_sales_scope':'After-sales\x20money\x20scope\x20for\x20a\x20short/bad\x20delivery:\x20\x27full_refund\x27\x20(default)\x20refunds\x20the\x20whole\x20pledge\x20on\x20either\x20remedy\x20path;\x20\x27partial_refund\x27\x20refunds\x20in\x20full\x20only\x20when\x20goods\x20return\x20and\x20pays\x20the\x20declared\x20fixed\x20shortfall\x20compensation\x20on\x20the\x20refund-only\x20path.','allocator_threshold':'Formula\x20the\x20settlement\x20threshold\x20must\x20satisfy\x20(prose\x20directive,\x20not\x20a\x20setting).','annual_plan_usd':'Annual\x20membership\x20price\x20in\x20USD.','appeal_window_days':'Days\x20after\x20a\x20ruling\x20during\x20which\x20it\x20can\x20still\x20be\x20appealed.','arb_indemnity_floor_bps':'Floor,\x20in\x20basis\x20points\x20of\x20the\x20escrow,\x20reserved\x20for\x20arbitrator\x20compensation.','arb_payout_pairing':'How\x20a\x20buyer-won\x20ruling\x20combines\x20the\x20principal\x20refund\x20with\x20the\x20compensation:\x20\x27either\x27\x20pays\x20one\x20and\x20closes\x20the\x20other\x20rail,\x20\x27stacked\x27\x20pays\x20both\x20(the\x20stacked\x20money\x20rail\x20is\x20declared\x20only,\x20so\x20the\x20escrow\x20still\x20settles\x20under\x20\x27either\x27).','arbitration_fee_usd':'Flat\x20USD\x20fee\x20charged\x20to\x20open\x20an\x20arbitration\x20case.','attributed_commission_rate_bps':'Take\x20rate\x20charged\x20on\x20sales\x20traced\x20to\x20an\x20attributed\x20channel.','auto_confirm_days':'Days\x20of\x20buyer\x20silence\x20after\x20delivery\x20before\x20the\x20order\x20auto-completes\x20and\x20settlement\x20opens.','auto_confirm_hours':'Hours\x20of\x20buyer\x20silence\x20after\x20delivery\x20before\x20the\x20order\x20auto-completes.','balance_amount':'Remaining\x20amount\x20collected\x20in\x20the\x20balance\x20stage\x20(deposit\x20plus\x20balance\x20pricing).','balance_window_days':'Days\x20the\x20buyer\x20has\x20to\x20pay\x20the\x20remaining\x20balance\x20after\x20the\x20deposit.','base_commission_rate_bps':'Base\x20take\x20rate\x20before\x20channel-attribution\x20adjustments.','bounty_high_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20high-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','bounty_medium_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20medium-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','bounty_low_hunter_bps':'Hunter\x27s\x20share\x20of\x20the\x20low-severity\x20bounty\x20pool,\x20in\x20basis\x20points;\x20the\x20sponsoring\x20company\x20receives\x20the\x20complement\x20(10000\x20minus\x20this).','campaign_deadline_ms':'Unix\x20epoch\x20milliseconds\x20at\x20which\x20the\x20campaign\x20closes.\x20Generation\x20DERIVES\x20it\x20from\x20campaign_duration_days\x20when\x20the\x20operator\x20answered\x20the\x20length\x20(build\x20instant\x20+\x20N\x20days,\x20recorded\x20on\x20the\x20plan);\x20pass\x20it\x20directly\x20only\x20when\x20the\x20close\x20date\x20is\x20fixed.','campaign_duration_days':'Running\x20days\x20from\x20launch\x20to\x20campaign\x20close.\x20The\x20unit\x20the\x20operator\x20answers\x20in;\x20generation\x20converts\x20it\x20into\x20the\x20absolute\x20campaign_deadline_ms\x20every\x20chain\x20deadline\x20gate\x20reads.','cancel_tier_1_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x201\x20begins,\x20in\x20hours\x20(cancelling\x20further\x20out\x20pays\x20the\x20tier-1\x20charge).','cancel_tier_2_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x202\x20begins,\x20in\x20hours.','cancel_tier_3_boundary_hours':'Notice\x20before\x20the\x20service\x20start\x20at\x20which\x20tier\x203\x20(the\x20no-show\x20band)\x20begins,\x20in\x20hours.','cancel_tier_1_charge_bps':'Cancellation\x20charge\x20for\x20the\x20earliest\x20band\x20(most\x20notice),\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_2_charge_bps':'Cancellation\x20charge\x20for\x20the\x20middle-early\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_3_charge_bps':'Cancellation\x20charge\x20for\x20the\x20middle-late\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','cancel_tier_4_charge_bps':'Cancellation\x20charge\x20for\x20the\x20last-minute\x20(no-show)\x20band,\x20in\x20basis\x20points\x20of\x20the\x20order\x20amount;\x20the\x20buyer\x20is\x20refunded\x20the\x20complement.','service_start_ms':'Unix\x20epoch\x20milliseconds\x20of\x20the\x20service/departure\x20start,\x20shared\x20by\x20every\x20order\x20of\x20that\x20service;\x20the\x20cancellation\x20bands\x20measure\x20notice\x20against\x20it.','cancellation_policy':'Prose\x20cancellation\x20policy;\x20the\x20enforceable\x20values\x20are\x20the\x20cancel-window\x20keys.','claim_window_days':'Days\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20can\x20file\x20a\x20dispute\x20before\x20settlement\x20opens.','claim_window_hours':'Hours\x20of\x20the\x20dispute-filing\x20window\x20after\x20delivery.','claim_window_open_min_hold_hours':'Hours\x20after\x20delivery\x20before\x20the\x20keeper\x20may\x20open\x20the\x20dispute\x20window\x20—\x20the\x20claim\x20clock\x20cannot\x20start\x20at\x20the\x20delivery\x20instant.','dispatch_window_hours':'Hours\x20after\x20the\x20order\x20sits\x20ready\x20in\x20which\x20a\x20rostered\x20rider\x20must\x20pick\x20it\x20up;\x20elapsed\x20with\x20no\x20pickup,\x20the\x20platform\x20force-cancels\x20penalty-free\x20into\x20the\x20full-refund\x20terminal\x20(capacity\x20shortage\x20is\x20the\x20platform\x27s\x20fulfillment\x20failure).','co_holder_bps':'Share,\x20in\x20basis\x20points,\x20held\x20by\x20a\x20co-holder\x20of\x20the\x20asset\x20or\x20right.','commission_rate_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points\x20(0\x20keeps\x20the\x20merchant\x20the\x20full\x20amount).','confirm_timeout_hours':'Hours\x20the\x20merchant\x20has\x20to\x20confirm\x20an\x20order\x20before\x20it\x20auto-cancels.','confirm_window_hours':'Window,\x20in\x20hours,\x20for\x20confirming\x20the\x20order\x20or\x20handover.','contract_fee_large_usd':'Flat\x20contract\x20fee\x20for\x20large\x20engagements.','contract_fee_small_usd':'Flat\x20contract\x20fee\x20for\x20small\x20engagements.','contract_fee_tier_boundary_usd':'Contract\x20value,\x20in\x20USD,\x20separating\x20the\x20small\x20from\x20the\x20large\x20fee\x20tier.','courier_fee':'Courier\x20delivery\x20fee.','courier_tip_bps':'Rider\x20tip\x20or\x20incentive,\x20in\x20basis\x20points\x20of\x20the\x20order\x20value.','course_price_usd':'Price\x20of\x20one\x20course\x20seat\x20in\x20USD.','creator_settlement_retain_bps':'Share\x20of\x20each\x20settlement\x20the\x20creator\x20keeps\x20(the\x20rest\x20funds\x20platform\x20and\x20fee\x20legs).','damage_max_amount':'Maximum\x20damage\x20compensation\x20payable\x20out\x20of\x20the\x20escrow.','defect_report_window_hours':'Hours\x20after\x20delivery\x20in\x20which\x20a\x20defect\x20or\x20damage\x20must\x20be\x20reported.','delivery_window_days':'Promised\x20delivery\x20window\x20in\x20days.','deposit_amount':'Up-front\x20deposit\x20collected\x20at\x20order\x20time\x20(the\x20rest\x20is\x20collected\x20later).','deposit_exit_policy':'Prose\x20policy\x20for\x20exiting\x20or\x20refunding\x20the\x20deposit.','deposit_refund_days':'Days\x20after\x20checkout\x20within\x20which\x20the\x20deposit\x20is\x20refunded.','digital_product_fee_bps':'Fee\x20rate\x20charged\x20on\x20digital\x20product\x20sales.','digital_product_fee_max_usd':'Cap\x20on\x20the\x20digital\x20product\x20fee,\x20in\x20USD.','digital_product_fee_min_usd':'Floor\x20on\x20the\x20digital\x20product\x20fee,\x20in\x20USD.','dispute_timeout_days':'Days\x20after\x20a\x20dispute\x20is\x20filed\x20before\x20it\x20escalates\x20or\x20defaults.','dispute_window_days':'Days\x20after\x20delivery\x20to\x20escalate\x20a\x20complaint\x20to\x20arbitration.','early_exit_penalty_amount':'Flat\x20penalty\x20charged\x20on\x20early\x20termination.','early_exit_penalty_months':'Months\x20of\x20rent\x20charged\x20as\x20the\x20early-exit\x20penalty.','errand_line':'Errand\x20service\x20line;\x20this\x20selector\x20changes\x20which\x20rails\x20the\x20machine\x20installs.','escrow_release_days':'Days\x20the\x20escrow\x20holds\x20before\x20the\x20funds\x20release\x20to\x20the\x20merchant.','evaluation_window_days':'Days\x20allowed\x20to\x20evaluate\x20a\x20submitted\x20deliverable.','evidence_window_hours':'Hours\x20to\x20submit\x20evidence\x20once\x20a\x20dispute\x20is\x20open.','free_cancel_hours':'Hours\x20after\x20purchase\x20during\x20which\x20cancellation\x20is\x20free\x20(full\x20refund).','full_price':'List\x20price\x20before\x20discounts\x20or\x20the\x20deposit\x20split.','funding_threshold':'Amount\x20that\x20must\x20be\x20raised\x20for\x20the\x20campaign\x20to\x20succeed.','grace_days':'Grace\x20period\x20in\x20days\x20before\x20a\x20late\x20payment\x20counts\x20as\x20a\x20breach.','host_rate_bps':'Host\x20payout\x20share\x20of\x20the\x20booking\x20value,\x20in\x20basis\x20points.','incumbent_take_bps':'Take\x20rate\x20of\x20the\x20incumbent\x20platform\x20(comparison\x20only).','inspection_deadline_hours':'Hours\x20to\x20complete\x20the\x20inspection\x20after\x20handover.','inspection_window_days':'Days\x20of\x20inspection\x20window\x20after\x20delivery.','instant_cancel_hours':'Hours\x20within\x20which\x20cancellation\x20takes\x20effect\x20immediately.','institution_share_bps':'Share\x20of\x20course\x20revenue\x20paid\x20to\x20the\x20institution.','kill_fee_bps':'Fee\x20kept\x20from\x20the\x20escrow\x20when\x20the\x20buyer\x20cancels\x20after\x20acceptance.','kill_fee_buyer_bps':'Late-cancellation\x20fee\x20charged\x20to\x20the\x20buyer.','layer2_segment_amounts':'Segment\x20amounts\x20of\x20the\x20second\x20allocation\x20layer\x20(directive\x20formula).','leader_commission_bps':'Commission\x20paid\x20to\x20the\x20group\x20leader\x20on\x20each\x20member\x20order.','lease_months':'Lease\x20length\x20in\x20months.','max_months':'Longest\x20subscription\x20or\x20lease\x20term,\x20in\x20months.','max_sessions':'Maximum\x20sessions\x20included\x20in\x20the\x20plan.','membership_price':'Membership\x20price\x20per\x20period.','merchant_service_fee_bps':'Incumbent\x20marketplace\x27s\x20merchant-side\x20service\x20fee\x20(benchmark,\x20comparison\x20only).\x20WoWok\x20is\x20DIRECT\x20SALES\x20here:\x20this\x20store\x20pays\x20no\x20platform\x20commission,\x20so\x20the\x20shipped\x20value\x20is\x200\x20and\x20no\x20money\x20rail\x20reads\x20it\x20—\x20set\x20it\x20only\x20if\x20YOU\x20are\x20the\x20aggregator\x20charging\x20your\x20own\x20sellers.','min_balance':'Minimum\x20balance\x20that\x20must\x20remain\x20(directive\x20floor).','min_booking_amount':'Minimum\x20bookable\x20amount\x20(directive\x20floor).','min_contract_usd':'Minimum\x20contract\x20value\x20in\x20USD\x20(directive\x20floor).','min_course_price_usd':'Minimum\x20course\x20price\x20in\x20USD\x20(directive\x20floor).','min_monthly_rent_usd':'Minimum\x20monthly\x20rent\x20in\x20USD\x20(directive\x20floor).','min_order_price':'Minimum\x20order\x20price\x20(directive\x20floor).','min_sku_price':'Minimum\x20SKU\x20price\x20(directive\x20floor).','min_term_price':'Minimum\x20price\x20per\x20term:\x20the\x20numeric\x20floor\x20the\x20settlement\x20fixed\x20legs\x20must\x20fit\x20under\x20(per-session\x20releases\x20count\x20the\x20whole\x20term).','min_term_price_usd':'Minimum\x20price\x20per\x20term\x20in\x20USD\x20(directive\x20floor).','max_discount_bps':'Ceiling\x20on\x20any\x20coupon\x20the\x20merchant\x20may\x20issue\x20against\x20this\x20shape,\x20in\x20basis\x20points\x20—\x20derived\x20from\x20how\x20much\x20the\x20fixed\x20legs\x20leave\x20above\x20the\x20price\x20floor.','month_release_day':'Day\x20of\x20the\x20month\x20on\x20which\x20the\x20monthly\x20release\x20runs.','monthly_allocators':'Monthly\x20allocators\x20to\x20open,\x20one\x20per\x20release\x20period.','monthly_rent_amount':'Monthly\x20rent\x20amount.','no_fault_exit_days':'Days\x20of\x20notice\x20required\x20for\x20a\x20no-fault\x20exit.','no_show_floor_hours':'Hours\x20after\x20which\x20a\x20no-show\x20releases\x20the\x20slot\x20with\x20a\x20floor\x20charge.','objection_window_hours':'Hours\x20to\x20object\x20after\x20a\x20proposal\x20or\x20claim.','offsite_ads_rate_bps':'Take\x20rate\x20on\x20off-site\x20advertising-attributed\x20sales.','partner_share_bps':'Share\x20of\x20revenue\x20paid\x20to\x20the\x20partner.','payment_fee_bps':'Payment\x20processing\x20fee\x20in\x20basis\x20points.','per_session_release':'Amount\x20released\x20per\x20completed\x20session.','period_days':'Length\x20of\x20one\x20billing\x20period\x20in\x20days.','pickup_window_hours':'Hours\x20within\x20which\x20pickup\x20must\x20be\x20completed.','platform_commission_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points\x20(0\x20keeps\x20the\x20merchant\x20the\x20full\x20amount).','platform_commission_rate_bps':'Platform\x20take\x20rate\x20per\x20settled\x20order,\x20in\x20basis\x20points.','platform_fee_rate_bps':'Platform\x20fee\x20rate\x20applied\x20to\x20the\x20order\x20value,\x20in\x20basis\x20points.','platform_rate_bps':'Platform\x20rate\x20applied\x20to\x20the\x20order\x20value,\x20in\x20basis\x20points.','platform_rate_cap_bps':'Upper\x20bound\x20on\x20the\x20platform\x20take\x20rate.','platform_share_bps':'Share\x20of\x20the\x20order\x20kept\x20by\x20the\x20platform.','platform_take_bps':'Platform\x20take\x20per\x20settled\x20order,\x20in\x20basis\x20points.','platform_tool_fee_bps':'Fee\x20for\x20using\x20the\x20platform\x20tooling,\x20in\x20basis\x20points.','point_type':'Point\x20or\x20credit\x20type\x20used\x20by\x20the\x20loyalty\x20ledger.','post_accept_refund_days':'Grace\x20days\x20AFTER\x20auto-acceptance\x20during\x20which\x20the\x20buyer\x20can\x20still\x20file\x20a\x20refund\x20or\x20a\x20revision;\x20the\x20mirrored\x20post-acceptance\x20window\x27s\x20total\x20length\x20adds\x20this\x20to\x20escrow_release_days.','preferred_property_rate_bps':'Commission\x20rate\x20applied\x20to\x20preferred\x20properties.','prepay_cap':'Cap\x20on\x20the\x20amount\x20that\x20may\x20be\x20prepaid.','primary_holder_bps':'Share\x20held\x20by\x20the\x20primary\x20rights\x20holder.','processing_time_days':'Days\x20the\x20supplier\x20takes\x20to\x20process\x20the\x20request.','producer_bps':'Share\x20paid\x20to\x20the\x20producer.','production_lead_days':'Days\x20needed\x20to\x20produce\x20the\x20item\x20before\x20it\x20ships.','property_rate_bps':'Commission\x20rate\x20on\x20property\x20bookings.','protection_cap_usd':'Maximum\x20buyer-protection\x20payout\x20in\x20USD.','publisher_bps':'Share\x20paid\x20to\x20the\x20publisher.','refund_window_days':'Days\x20after\x20delivery\x20in\x20which\x20a\x20refund\x20may\x20be\x20requested.','renewal_reminder_days':'Days\x20before\x20renewal\x20to\x20send\x20the\x20reminder.','required_info_enforcement':'Whether\x20missing\x20required\x20buyer\x20info\x20blocks\x20the\x20order\x20(on/off).','requirements_timeout_hours':'Hours\x20the\x20buyer\x20has\x20to\x20supply\x20missing\x20requirements\x20before\x20the\x20order\x20lapses.','response_timeout_hours':'Hours\x20a\x20seller\x20has\x20to\x20grant\x20or\x20decline\x20a\x20cancel\x20request\x20before\x20a\x20keeper\x20auto-cancels\x20it\x20in\x20the\x20buyer\x27s\x20favour\x20(full\x20refund).','refund_response_hours':'Hours\x20a\x20seller\x20has\x20to\x20grant\x20or\x20decline\x20a\x20refund\x20request\x20before\x20a\x20keeper\x20auto-refunds\x20the\x20buyer\x20in\x20full\x20(the\x20refund-request\x20twin\x20of\x20the\x20cancel\x20clock).','reserve_days':'Days\x20a\x20reserve\x20is\x20held\x20back\x20from\x20the\x20payout.','restock_confirm_days':'Days\x20to\x20confirm\x20restocking\x20after\x20a\x20return\x20arrives.','restock_on_refund':'Restock\x20rule\x20applied\x20when\x20a\x20refund\x20completes\x20(directive).','return_notice_days':'Days\x20of\x20notice\x20required\x20before\x20returning\x20the\x20item.','return_response_days':'Days\x20a\x20merchant\x20has\x20to\x20evidence\x20return\x20receipt\x20(RMA\x20row)\x20after\x20the\x20buyer\x20ships\x20the\x20return\x20parcel,\x20before\x20a\x20keeper\x20deems\x20it\x20received\x20and\x20the\x20after-sales\x20refund\x20fires\x20in\x20the\x20buyer\x27s\x20favour.','return_transit_days':'Days\x20allowed\x20for\x20the\x20returned\x20item\x20to\x20travel\x20back.','return_window_days':'Days\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20may\x20return\x20the\x20item.','return_window_hours':'Hours\x20after\x20delivery\x20in\x20which\x20the\x20buyer\x20may\x20return\x20the\x20item.','review_reward_per_claim':'Bounty\x20paid\x20for\x20one\x20accepted\x20review\x20claim.','review_reward_pool':'Total\x20pool\x20that\x20funds\x20review\x20rewards.','review_window_days':'Days\x20after\x20completion\x20in\x20which\x20a\x20review\x20may\x20be\x20submitted.','revision_rounds_max':'Maximum\x20revision\x20rounds\x20included\x20in\x20the\x20price.','reward_claim_closes_after_days':'Days\x20after\x20completion\x20when\x20the\x20review-reward\x20claim\x20closes.','reward_claim_opens_after_days':'Days\x20after\x20the\x20after-sales\x20window\x20before\x20the\x20review-reward\x20bounty\x20becomes\x20claimable.','segment_count':'Number\x20of\x20allocation\x20segments.','service_fee_rate_bps':'Service\x20fee\x20rate\x20charged\x20on\x20the\x20order.','session_count':'Number\x20of\x20sessions\x20included\x20in\x20the\x20plan.','settle_hours':'Hours\x20after\x20the\x20settlement\x20window\x20opens\x20before\x20funds\x20reach\x20the\x20merchant.','settlement_days':'Days\x20between\x20order\x20completion\x20and\x20settlement\x20to\x20the\x20merchant.','settlement_delay_days':'Delay\x20in\x20days\x20applied\x20to\x20the\x20payout.','setting_lock_days':'Days\x20during\x20which\x20a\x20setting\x20is\x20locked\x20after\x20the\x20order\x20is\x20placed.','shortfall_refund_amount':'Fixed\x20shortfall\x20compensation\x20in\x20absolute\x20chain\x20units,\x20paid\x20instead\x20of\x20the\x20whole\x20pledge\x20on\x20the\x20refund-only\x20bad-item\x20path\x20when\x20after_sales_scope\x20is\x20\x27partial_refund\x27;\x20the\x20listing\x20price\x20must\x20exceed\x20it\x20(minimum\x20order\x20amount\x20discipline).','stay_nights':'Nights\x20per\x20stay.','storefront_mode':'Storefront\x20shape;\x20this\x20selector\x20changes\x20the\x20generated\x20storefront\x20topology.','submission_window_days':'Days\x20to\x20submit\x20the\x20deliverable.','subscription_monthly_usd':'Monthly\x20subscription\x20price\x20in\x20USD.','term_count':'Number\x20of\x20terms\x20or\x20invoices\x20in\x20the\x20contract.','term_price':'Price\x20charged\x20per\x20term.','term_price_usd':'Price\x20charged\x20per\x20term\x20in\x20USD.','threshold':'Escrow\x20amount\x20that\x20triggers\x20the\x20next\x20stage.','tier5_guest_bps':'Cancellation\x20tier\x205:\x20share\x20charged\x20to\x20the\x20guest.','tier5_host_bps':'Cancellation\x20tier\x205:\x20share\x20paid\x20to\x20the\x20host.','tier6_guest_bps':'Cancellation\x20tier\x206:\x20share\x20charged\x20to\x20the\x20guest.','tier6_host_bps':'Cancellation\x20tier\x206:\x20share\x20paid\x20to\x20the\x20host.','triage_window_days':'Days\x20to\x20triage\x20a\x20report\x20before\x20it\x20escalates.','tuition_usd':'Tuition\x20per\x20enrollment\x20in\x20USD.','unclaimed_exit':'What\x20happens\x20to\x20an\x20order\x20the\x20buyer\x20never\x20collects:\x20refund_buyer\x20(default)\x20returns\x20the\x20principal\x20in\x20full\x20after\x20the\x20pickup\x20window,\x20settle_merchant\x20opens\x20the\x20serial\x20claim\x20window\x20and\x20settles\x20to\x20the\x20supplier\x20with\x20the\x20buyer\x20keeping\x20a\x20late-appeal\x20refund\x20route.','withdrawal_window_days':'Days\x20during\x20which\x20withdrawal\x20is\x20allowed.'};export const CURATED_MEANING_COUNT=Object['keys'](PARAM_MEANINGS)['length'];const KIND_WORD={'money':'amount','ratio':'rate','duration':'duration','count':'count','enum':'option','flag':'on/off\x20switch','text':'text','list':'list\x20of\x20values'};export function paramMeaning(a,b,c,d){const e=PARAM_MEANINGS[a];if(e!==undefined)return e;const f=d['length']>0x0?'\x20on\x20the\x20'+d['join']('/')+'\x20facet':'';return'Not\x20yet\x20described\x20—\x20a\x20'+KIND_WORD[b]+(c!=='unitless'?'\x20in\x20'+c:'')+f+'.';}export const PARAM_ALIASES=[['take\x20rate',['platform_commission_bps','platform_commission_rate_bps','platform_take_bps','platform_fee_rate_bps','platform_rate_bps','commission_rate_bps','merchant_service_fee_bps','incumbent_take_bps']],['commission',['platform_commission_bps','commission_rate_bps','leader_commission_bps','attributed_commission_rate_bps']],['get\x20paid',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day']],['payout',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','reserve_days']],['refund',['return_window_days','refund_window_days','deposit_refund_days','free_cancel_hours']],['cancel',['free_cancel_hours','instant_cancel_hours','kill_fee_bps','cancel_tier_1_charge_bps','cancel_tier_2_charge_bps','cancel_tier_3_charge_bps','cancel_tier_4_charge_bps']],['dispute',['claim_window_days','dispute_window_days','dispute_timeout_days','arbitration_fee_usd']],['deposit',['deposit_amount','balance_amount','prepay_cap']],['tip',['courier_tip_bps','courier_fee']],['reward',['review_reward_pool','review_reward_per_claim','reward_claim_opens_after_days','reward_claim_closes_after_days']],['bounty',['bounty_high_hunter_bps','bounty_medium_hunter_bps','bounty_low_hunter_bps']],['hunter\x20share',['bounty_high_hunter_bps','bounty_medium_hunter_bps','bounty_low_hunter_bps']],['review',['review_window_days','review_reward_per_claim','review_reward_pool']],['rent',['monthly_rent_amount','lease_months','early_exit_penalty_months']],['delivery',['delivery_window_days','courier_fee','pickup_window_hours']],['membership',['membership_price','subscription_monthly_usd','annual_plan_usd','period_days']],['commission\x20cap',['platform_rate_cap_bps','protection_cap_usd']],['fee',['arbitration_fee_usd','payment_fee_bps','courier_fee','platform_tool_fee_bps']],['how\x20much\x20do\x20i\x20keep',['platform_commission_bps','platform_take_bps','platform_share_bps','commission_rate_bps']],['late\x20fee',['kill_fee_bps','early_exit_penalty_months','cancel_tier_4_charge_bps']],['no\x20show',['no_show_floor_hours']],['holdback',['reserve_days','creator_settlement_retain_bps','setting_lock_days']],['minimum\x20order',['min_order_price','min_contract_usd','min_course_price_usd','min_booking_amount','min_sku_price']],['campaign\x20length',['campaign_duration_days']],['arbitration\x20fee',['arbitration_fee_usd']],['dispute\x20window',['dispute_window_days','dispute_timeout_days','claim_window_days']],['late\x20delivery',['delivery_window_days','auto_confirm_days','auto_confirm_hours']],['plan\x20price',['subscription_monthly_usd','annual_plan_usd','membership_price']],['renewal\x20reminder',['renewal_reminder_days']],['shipping\x20deadline',['processing_time_days','delivery_window_days']],['down\x20payment',['deposit_amount','balance_amount','deposit_refund_days']],['balance\x20due',['balance_amount','balance_window_days']],['notice\x20period',['return_notice_days','no_fault_exit_days','early_exit_penalty_months']],['guest\x20count',['tier5_guest_bps','tier6_guest_bps']],['tiered\x20pricing',['tier5_guest_bps','tier6_guest_bps']],['cancellation\x20charge',['cancel_tier_1_charge_bps','cancel_tier_2_charge_bps','cancel_tier_3_charge_bps','cancel_tier_4_charge_bps']],['money\x20released',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day','reserve_days']],['release\x20the\x20money',['settle_hours','settlement_days','settlement_delay_days','escrow_release_days','month_release_day','reserve_days']]];const MAX_BY_UNIT={'hours':{'max':0x2238,'hint':'0..8760\x20(one\x20year;\x200\x20=\x20unset)'},'days':{'max':0x16d,'hint':'0..365\x20(one\x20year;\x200\x20=\x20unset)'},'months':{'max':0x3c,'hint':'0..60\x20(five\x20years)'},'nights':{'max':0x16d,'hint':'0..365\x20nights'},'ms':{'max':0x3bb2cc3d800,'hint':'milliseconds;\x20absolute\x20deadlines\x20may\x20be\x20epoch\x20ms\x20(up\x20to\x20year\x202100)'},'count':{'max':0x186a0,'hint':'0\x20or\x20more,\x20whole\x20numbers'}},PARAM_RANGE_OVERRIDES={'stay_nights':{'min':0x1,'max':0x16d,'hint':'1..365\x20nights'},'period_days':{'min':0x1,'max':0x16e,'hint':'1..366\x20days\x20(a\x20monthly\x20period\x20is\x2030,\x20a\x20leap\x20year\x20366)'},'lease_months':{'min':0x1,'max':0x78,'hint':'1..120\x20months'},'max_months':{'min':0x1,'max':0x78,'hint':'1..120\x20months'},'month_release_day':{'min':0x1,'max':0x1f,'hint':'1..31\x20(a\x20day\x20of\x20the\x20month)'},'revision_rounds_max':{'min':0x0,'max':0x64,'hint':'0..100\x20rounds'}};export function boundsFor(a,b,c){if(a==='enum'||a==='flag'||a==='text'||a==='list')return undefined;if(b==='bps')return{'min':0x0,'max':0x2710,'hint':'0..10000\x20(100\x20bps\x20=\x201%)'};if(c!==undefined&&PARAM_RANGE_OVERRIDES[c]!==undefined)return PARAM_RANGE_OVERRIDES[c];if(a==='money')return{'min':0x0,'hint':'0\x20or\x20more'};const d=MAX_BY_UNIT[b];if(a==='count')return{'min':0x0,'max':MAX_BY_UNIT['count']['max'],'hint':MAX_BY_UNIT['count']['hint']};if(a==='duration'){if(d!==undefined)return{'min':0x0,'max':d['max'],'hint':d['hint']};return{'min':0x0,'hint':'0\x20or\x20more\x20in\x20the\x20row\x27s\x20unit\x20(0\x20=\x20unset)'};}return undefined;}export function kindFor(a,b,c,d){if(c)return'enum';if(typeof b==='string'){if(/^(on|off|true|false)$/i['test'](b))return'flag';if(/^\s*-?\d+(?:\.\d+)?(?:\s*\/\s*-?\d+(?:\.\d+)?)+\s*$/['test'](b))return'list';return'enum';}const e=unitFor(a);if(e==='usd')return'money';if(e==='bps')return'ratio';if(e==='hours'||e==='days'||e==='ms'||e==='months'||e==='nights')return'duration';if(e==='count')return'count';if(d['includes']('pricing')||/amount|price|pool|cap|threshold|fee|cost|rent|reward|_per_claim|_release$|_retain|_tip$|tuition|balance|prepay|_share/['test'](a))return'money';return'count';}export function paramSchema(a){const b=new Set((a['conditional_guards']??[])['map'](e=>e['param'])),d=new Map();for(const e of a['conditional_guards']??[]){if(e['values']===undefined)continue;const f=d['get'](e['param'])??[];for(const g of e['values'])if(!f['includes'](g))f['push'](g);d['set'](e['param'],f);}return Object['entries'](a['fee_params'])['map'](([h,i])=>{const j=b['has'](h),k=classifyFeeParam(h,i,j),l=tagsFor(h),m=kindFor(h,i,j,l),n=unitFor(h),o=m==='money'&&n==='unitless'?'mist':n;return{'key':h,'tier':k['tier'],'tier_name':k['tier_name'],'group':k['group'],'tags':l,'kind':m,'unit':o,'unit_hint':unitHint(o),'meaning':paramMeaning(h,m,o,l),'type':typeof i==='number'?'number':'string','default':i,'bounds':boundsFor(m,o,h),'allowed':d['get'](h)??[],'disclosure':k['disclosure'],'selector':j,'settable_by':'merchant'};})['sort']((h,i)=>h['tier']-i['tier']||h['key']['localeCompare'](i['key']));}export function resolveUserInputQuestions(a){const b=new Map(paramSchema(a)['map'](c=>[c['key'],c]));return(a['user_input_specs']??[])['map'](c=>{const d=b['get'](c['param_key']);if(d===undefined)throw new Error('user_input_spec\x20\x27'+c['question']+'\x27\x20binds\x20undeclared\x20fee_param\x20\x27'+c['param_key']+'\x27\x20—\x20declare\x20the\x20key\x20in\x20fee_params\x20first');return{'question':c['question'],'param_key':c['param_key'],...c['note']!==undefined?{'note':c['note']}:{},'default':d['default'],'unit_hint':d['unit_hint'],'meaning':d['meaning'],...d['bounds']!==undefined?{'bounds':d['bounds']}:{},'allowed':d['allowed']};});}const STOPWORDS=new Set(['the','a','an','of','for','to','how','what','is','my','can','i','set','and','in','on','do','per','each']),WORD_SYNONYMS={'shipping':'ship','shipment':'ship','shipped':'ship','delivery':'deliver','deliveries':'deliver','restocking':'restock','restocked':'restock','renewals':'renewal'};function singular(a){if(a['length']<=0x3)return a;if(a['endsWith']('ies'))return a['slice'](0x0,-0x3)+'y';if(/(?:ses|xes|zes|ches|shes)$/['test'](a))return a['slice'](0x0,-0x2);if(a['endsWith']('s')&&!a['endsWith']('ss'))return a['slice'](0x0,-0x1);return a;}function canon(a){return WORD_SYNONYMS[a]??WORD_SYNONYMS[singular(a)]??singular(a);}function tokens(a){return a['toLowerCase']()['split'](/[^a-z0-9]+/)['filter'](b=>b['length']>0x1&&!STOPWORDS['has'](b))['map'](canon);}function keyWords(a){return a['toLowerCase']()['split'](/[^a-z0-9]+/)['filter'](b=>b['length']>0x1)['map'](canon);}const MIN_SCORE=0x4;export function matchParams(a,b,c=0x5){const d=tokens(a);if(d['length']===0x0)return[];const e=d['every'](m=>TAG_SET['has'](m))&&!b['some'](m=>keyWords(m['key'])['some'](n=>d['includes'](n))),f=a['toLowerCase']()['replace'](/[^a-z0-9]+/g,'_'),g='\x20'+a['toLowerCase']()['replace'](/[^a-z0-9]+/g,'\x20')['trim']()+'\x20',h=g['trim']()['split']('\x20')[0x0]??'',i=new Set(),j=[];for(const [m,n]of PARAM_ALIASES){if(!g['includes']('\x20'+m+'\x20')&&!g['includes']('\x20'+m+'s\x20'))continue;if(!m['includes']('\x20')&&m!==h)continue;j['push'](m);for(const o of n)i['add'](o);}const l=[];for(const p of b){if(p['disclosure']==='hidden')continue;let r=0x0;const s=[],u=new Set(),v=keyWords(p['key']);(p['key']===f||f['includes'](p['key']))&&(r+=0xa,s['push']('key:'+p['key']));for(const w of d){(v['includes'](w)||p['key']['includes']('_'+w))&&(r+=0x3,u['add'](w),s['push']('key-word:'+w)),p['tags']['includes'](w)&&(r+=0x2,u['add'](w),s['push']('tag:'+w));}i['has'](p['key'])&&(r+=0x6,s['push'](...j['map'](x=>'alias:'+x)));e&&d['every'](x=>p['tags']['includes'](x))&&(r+=0x4,s['push']('facet:'+d['join']('+')));if(p['meaning']!==undefined){const x=p['meaning']['toLowerCase']();let y=0x0;for(const z of d){if(y>=0x2)break;if(u['has'](z))continue;x['includes'](z)&&(r+=0x1,y++,s['push']('meaning:'+z));}}if(r<MIN_SCORE)continue;l['push']({'row':p,'score':r+0x1,'reasons':[...new Set(s)]});}return e?l['sort']((A,B)=>A['row']['tier']-B['row']['tier']||B['score']-A['score']||A['row']['key']['localeCompare'](B['row']['key'])):l['sort']((A,B)=>B['score']-A['score']||A['row']['key']['localeCompare'](B['row']['key'])),l['slice'](0x0,c);}export function searchTemplates(a,b,c,d=0x8){const e=[];for(const f of b){for(const g of matchParams(a,c(f),0x2)){e['push']({'template':f['id'],'key':g['row']['key'],'tier':g['row']['tier'],'disclosure':g['row']['disclosure'],'score':g['score']});}}return e['sort']((h,i)=>i['score']-h['score']||h['template']['localeCompare'](i['template'])),e['slice'](0x0,d);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const MS_PER_DAY=0x5265c00;export const MS_PER_HOUR=0x36ee80;export const TIME_GUARD_INSTANTIATIONS=[{'template':'retail/scale-marketplace','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'retail/scale-marketplace','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/scale-marketplace','guard_key':'return_window','direction':'upper','anchor':'delivered','days':'return_window_days','note':'return\x20request\x20inside\x20the\x20policy\x20window'},{'template':'retail/scale-marketplace','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/warehouse-club','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'retail/warehouse-club','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/warehouse-club','guard_key':'return_window','direction':'upper','anchor':'delivered','days':'return_window_days','note':'return\x20request\x20inside\x20the\x20policy\x20window'},{'template':'retail/warehouse-club','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/preorder-deposit','guard_key':'balance_window_open','direction':'lower','anchor':'deposit_paid','days':'production_lead_days','note':'balance\x20window\x20opens\x20after\x20the\x20production\x20lead'},{'template':'retail/preorder-deposit','guard_key':'balance_deadline','direction':'lower','anchor':'balance_due','days':'balance_window_days','note':'balance-window\x20timeout'},{'template':'retail/preorder-deposit','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/preorder-deposit','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/restock-supply','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/restock-supply','guard_key':'restock_confirm_timeout','direction':'lower','anchor':'delivered','days':'restock_confirm_days','note':'restock\x20confirmation\x20timeout'},{'template':'retail/vertical-handmade','guard_key':'ship_timeout','direction':'lower','anchor':'confirmed','days':'processing_time_days','note':'unshipped\x20order\x20cancels\x20after\x20the\x20processing\x20time'},{'template':'retail/vertical-handmade','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'freelance/enterprise-talent-market','guard_key':'review_settle_clock','direction':'lower','anchor':'reviewed','days':'settlement_delay_days','note':'settle\x20N\x20days\x20after\x20review'},{'template':'freelance/enterprise-talent-market','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','days':'escrow_release_days','note':'keeper\x20auto-accepts\x20the\x20delivery\x20N\x20days\x20after\x20submission\x20(the\x20timeout\x20branch\x20of\x20the\x20dual-branch\x20acceptance)'},{'template':'freelance/enterprise-talent-market','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/catalog-tiers','guard_key':'requirements_timeout_48h','direction':'lower','anchor':'in_progress','hours':'requirements_timeout_hours','note':'requirements\x20timeout'},{'template':'freelance/catalog-tiers','guard_key':'cancel_response_timeout','direction':'lower','anchor':'cancel_requested','hours':'response_timeout_hours','note':'keeper\x20auto-cancel\x20after\x20the\x20seller\x27s\x20silence'},{'template':'freelance/catalog-tiers','guard_key':'refund_response_timeout','direction':'lower','anchor':'refund_requested','hours':'refund_response_hours','note':'keeper\x20auto-cancel\x20after\x20the\x20seller\x27s\x20silence\x20on\x20a\x20refund\x20request'},{'template':'freelance/catalog-tiers','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','days':'escrow_release_days','note':'auto-accept\x20N\x20days\x20after\x20delivery\x20(buyer\x20silence)'},{'template':'freelance/catalog-tiers','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/catalog-tiers','guard_key':'review_settle_clock','direction':'lower','anchor':'reviewed','days':'settlement_delay_days','note':'settle\x20N\x20days\x20after\x20review'},{'template':'freelance/creator-zero-commission','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','hours':'acceptance_timeout_hours','note':'delivery\x20acceptance\x20timeout'},{'template':'freelance/creator-zero-commission','guard_key':'defect_report_window','direction':'upper','anchor':'delivered','hours':'defect_report_window_hours','note':'defect\x20report\x20window\x20after\x20delivery'},{'template':'freelance/creator-zero-commission','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/design-contest','guard_key':'submission_window','direction':'lower','anchor':'funded','days':'submission_window_days','note':'submissions\x20close\x20N\x20days\x20after\x20funding'},{'template':'freelance/design-contest','guard_key':'appeal_window','direction':'lower','anchor':'placement_provisional','days':'appeal_window_days','note':'placement\x20finalizes\x20after\x20the\x20appeal\x20window'},{'template':'freelance/design-contest','guard_key':'delivery_window','direction':'lower','anchor':'final_delivery','days':'delivery_window_days','note':'final\x20delivery\x20acceptance\x20timeout'},{'template':'rental/p2p-shortstay','guard_key':'confirm_expire','direction':'lower','anchor':'reserved','hours':'confirm_window_hours','note':'unconfirmed\x20booking\x20expires'},{'template':'rental/p2p-shortstay','guard_key':'claim_window_closed','direction':'lower','anchor':'claim_window','days':'claim_window_days','note':'no-claim\x20release\x20after\x20the\x20claim\x20window'},{'template':'rental/p2p-shortstay','guard_key':'guest_claim_window_open','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'guest\x20files\x20a\x20claim\x20inside\x20the\x20claim\x20window'},{'template':'rental/institutional-longstay','guard_key':'return_notice','direction':'lower','anchor':'in_use','days':'return_notice_days','note':'return\x20notice\x20lead\x20time'},{'template':'rental/institutional-longstay','guard_key':'nofault_window','direction':'upper','anchor':'deposit_paid','multimount':!![],'days':'no_fault_exit_days','note':'no-fault\x20exit\x20within\x20no_fault_exit_days\x20of\x20signing,\x20on\x20both\x20buyer\x20exits\x20into\x20closed_cancel\x20(pre-handover\x20and\x20mid-lease\x20—\x20in_use\x20is\x20only\x20entered\x20from\x20deposit_paid,\x20whose\x20entry\x20IS\x20the\x20signing)'},{'template':'rental/institutional-longstay','guard_key':'review_window','direction':'upper','anchor':'inspected','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20the\x20passing\x20inspection'},{'template':'travel/destination-experience','guard_key':'free_cancel','direction':'upper','anchor':'paid','hours':'free_cancel_hours','note':'free\x20cancellation\x20window'},{'template':'travel/destination-experience','guard_key':'poststay_claim_window','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'post-stay\x20claim\x20window'},{'template':'travel/destination-experience','guard_key':'release_no_claim_clock','direction':'lower','anchor':'claim_window','days':'claim_window_days','note':'no-claim\x20release\x20after\x20the\x20claim\x20window'},{'template':'delivery/on-demand-errand','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'delivered','hours':'auto_confirm_hours','note':'auto-confirm\x20N\x20hours\x20after\x20delivery'},{'template':'delivery/on-demand-errand','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','hours':'claim_window_hours','note':'claim\x20window'},{'template':'delivery/on-demand-errand','guard_key':'return_request','direction':'upper','anchor':'delivered','hours':'return_window_hours','note':'after-sales\x20return\x20request\x20closes\x20N\x20hours\x20after\x20the\x20delivered\x20FIRST\x20entry'},{'template':'delivery/restaurant-marketplace','guard_key':'return_request','direction':'upper','anchor':'delivered','hours':'return_window_hours','note':'after-sales\x20return\x20request\x20closes\x20N\x20hours\x20after\x20the\x20delivered\x20FIRST\x20entry'},{'template':'group_buy/leader-sourced-community','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','hours':'claim_window_hours','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'subscription/delivery-membership','guard_key':'period_end','direction':'lower','anchor':'active','days':'period_days','note':'membership\x20period\x20clock:\x20active\x20entry\x20+\x20period_days\x20before\x20the\x20keeper\x20may\x20complete'},{'template':'subscription/creator-membership','guard_key':'period_expiry','direction':'lower','anchor':'delivered','multimount':!![],'days':'period_days','plus_days':'grace_days','note':'period\x20expiry\x20=\x20delivery\x20+\x20period_days\x20+\x20grace_days,\x20on\x20every\x20keeper\x20lapse'},{'template':'subscription/direct-fan-subscription','guard_key':'period_expiry','direction':'lower','anchor':'delivered','multimount':!![],'days':'period_days','plus_days':'grace_days','note':'period\x20expiry\x20=\x20delivery\x20+\x20period_days\x20+\x20grace_days,\x20on\x20every\x20keeper\x20lapse'},{'template':'education/live-class-cohort','guard_key':'review_window','direction':'upper','anchor':'completed_ready','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20completion\x20readiness'},{'template':'education/mooc-single-course','guard_key':'review_window','direction':'upper','anchor':'certified','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20certification'},{'template':'subscription/creator-membership','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20period\x20delivery'},{'template':'subscription/direct-fan-subscription','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20period\x20delivery\x20—\x20keep\x20period_days\x20+\x20grace_days\x20>\x20review_window_days\x20or\x20the\x20keeper\x20expire\x20kills\x20the\x20open\x20window'},{'template':'retail/preorder-deposit','guard_key':'return_window_presale','direction':'upper','anchor':'delivered','multimount':!![],'days':'return_window_days','note':'return\x20requested\x20within\x20N\x20days\x20of\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'rental/p2p-shortstay','guard_key':'review_window','direction':'upper','anchor':'checked_out','multimount':!![],'days':'review_window_days','note':'review\x20within\x20N\x20days\x20of\x20checkout,\x20including\x20once\x20the\x20claim\x20window\x20has\x20opened'},{'template':'education/mooc-single-course','guard_key':'return_window','direction':'upper','anchor':'paid','multimount':!![],'days':'refund_window_days','note':'refund\x20requested\x20within\x20N\x20days\x20of\x20purchase,\x20from\x20any\x20pre-delivery\x20stage'},{'template':'retail/scale-marketplace','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','days':'settlement_days','plus_days':['reserve_days','return_window_days'],'note':'settlement\x20opens\x20after\x20the\x20MERGED\x20lock:\x20settlement_days\x20+\x20reserve_days\x20+\x20return_window_days\x20(the\x20declaration\x20settlement_window_merge;\x2014\x20+\x207\x20+\x2030\x20=\x2051\x20days\x20by\x20default)\x20—\x20the\x20release\x20cannot\x20fire\x20while\x20the\x20return\x20window\x20can\x20still\x20draw\x20the\x20escrow'},{'template':'retail/warehouse-club','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','days':'settlement_delay_days','note':'settlement\x20opens\x20N\x20days\x20after\x20the\x20claim\x20window\x20(coupled\x20to\x20the\x20return\x20window)'},{'template':'retail/preorder-deposit','guard_key':'settle_window_gate','direction':'lower','anchor':'delivered','multimount':!![],'days':'settlement_days','note':'balance\x20settlement\x20opens\x20N\x20days\x20after\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'retail/vertical-handmade','guard_key':'settle_clock','direction':'lower','anchor':'delivered','multimount':!![],'days':'settlement_delay_days','note':'settlement\x20opens\x20N\x20days\x20after\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'delivery/on-demand-errand','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','hours':'settle_hours','note':'settlement\x20opens\x20N\x20hours\x20after\x20the\x20claim\x20window'},{'template':'group_buy/leader-sourced-community','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','hours':'settle_hours','note':'settlement\x20opens\x20N\x20hours\x20after\x20the\x20claim\x20window,\x20past\x20the\x20after-sales\x20track'},{'template':'group_buy/leader-sourced-community','guard_key':'claim_window_open','direction':'lower','anchor':'delivered','hours':'claim_window_open_min_hold_hours','note':'claim\x20window\x20opens\x20N\x20hours\x20after\x20delivery\x20(the\x20buyer\x27s\x20dispute\x20clock\x20cannot\x20start\x20at\x20the\x20delivery\x20instant)'}];export const TWIN_PARAM={'days':'claim_window_days','hours':'duration_ms'};export function twinFor(a,b){if(b==='days')return a==='upper'?'tpl_time_window_upper_progress_days':'tpl_time_lock_progress_days';return a==='upper'?'tpl_time_window_upper':'tpl_time_lock_progress';}export const MULTI_MOUNT_TWIN='tpl_time_window_upper_history_days';export const MULTI_MOUNT_OPENING_TWIN='tpl_time_lock_history_days';export function multiMountTwin(a){return a==='upper'?MULTI_MOUNT_TWIN:MULTI_MOUNT_OPENING_TWIN;}export function unitScale(a){return a==='days'?0x1:MS_PER_HOUR;}const BY_SPEC=new Map();for(const row of TIME_GUARD_INSTANTIATIONS)BY_SPEC['set'](row['template']+'\x00'+row['guard_key'],row);export function timeInstantiationFor(a,b){return BY_SPEC['get'](a+'\x00'+b);}export function patternDefaultResolution(a,b){const c=timeInstantiationFor(a,b);if(c===undefined)return undefined;const d=c['days']!==undefined?'days':'hours';if(c['multimount']===!![])return{'kind':'template','template_id':multiMountTwin(c['direction']),'params':{'anchor_node':c['anchor']}};return{'kind':'template','template_id':twinFor(c['direction'],d),'params':{'expected_node':c['anchor']}};}function mountInfo(a,b){const c=[];for(const d of a['machine_shape']??[]){const f=d['from']??[];for(const g of f){const h=typeof g==='string'?{'prev':g}:g;if(h['guard_key']!==b)continue;const i=h['operator']??d['operator']??(h['prev']===''?'order_payer':'merchant');c['push']({'prev':h['prev']??'','operator':i});}}return c;}export const IDENTITY_PATTERN='pattern.identity_check_order_holder';export const IDENTITY_TWIN='tpl_forward_order_holder';export const IDENTITY_RECOVER_RAIL_TWIN='tpl_allocator_node_gate_recover';export const IDENTITY_REFUND_RAIL_TWIN='tpl_allocator_identity_set_order_holder';function railTracks(a,b){return(a['allocator']?.['rows']??[])['filter'](c=>c['guard_key']===b)['map'](c=>c['track']??'');}function hasAwardRailSibling(a,b){return a['guards']['some'](c=>{if(c['template_id']===IDENTITY_RECOVER_RAIL_TWIN)return!![];const d=c['key'];if(d===undefined||d===b)return![];if(!/recover|award/i['test'](d))return![];if(!/pattern\./i['test'](c['template_id']))return![];return edgeMounts(a,d)['length']===0x0&&railTracks(a,d)['length']>0x0;});}function edgeMounts(a,b){return mountInfo(a,b);}export function identitySkipReason(a,b){if(b['template_id']!==IDENTITY_PATTERN)return'not\x20an\x20identity\x20design';if(b['key']===undefined)return'declared\x20without\x20a\x20key:\x20it\x20names\x20a\x20policy,\x20not\x20a\x20rail';const c=b['key'],d=railTracks(a,c),e=edgeMounts(a,c);if(e['length']===0x0){if(d['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';if(/recover|award/i['test'](c))return undefined;if(/refund/i['test'](c)&&d['every'](g=>/refund/i['test'](g))){if(hasAwardRailSibling(a,c))return'rail-bound\x20refund\x20next\x20to\x20an\x20award/recover\x20rail:\x20the\x20order-holder\x20refund\x20set\x20is\x20node-free,\x20so\x20instantiating\x20both\x20gives\x20one\x20escrow\x20two\x20live\x20fund\x20exits\x20(RAIL-03)\x20—\x20legal\x20but\x20a\x20merchant\x20choice\x20(disclosed\x20double\x20collection),\x20resolve\x20the\x20refund\x20rail\x20explicitly';return undefined;}return'bound\x20to\x20an\x20allocator\x20row\x20only:\x20no\x20executable\x20twin\x20matches\x20this\x20key/track\x20pair\x20(a\x20settlement\x20rail\x20asks\x20a\x20different\x20question)';}if(d['length']>0x0)return'also\x20bound\x20to\x20an\x20allocator\x20row:\x20one\x20design\x20cannot\x20serve\x20a\x20forward\x20and\x20a\x20rail';const f=e['filter'](g=>g['operator']!=='order_payer');if(f['length']>0x0)return'mounted\x20on\x20'+f['length']+'\x20non-buyer\x20forward(s)\x20('+[...new Set(f['map'](g=>g['operator']))]['join']('/')+'):\x20'+'an\x20order-holder\x20leg\x20is\x20unsatisfiable\x20on\x20a\x20permission-index\x20rail';return undefined;}export function identityDefaultResolution(a,b){if(identitySkipReason(a,b)!==undefined)return undefined;const c=b['key'];if(edgeMounts(a,c)['length']===0x0){if(/recover|award/i['test'](c))return{'kind':'template','template_id':IDENTITY_RECOVER_RAIL_TWIN,'params':{}};return{'kind':'template','template_id':IDENTITY_REFUND_RAIL_TWIN,'params':{}};}return{'kind':'template','template_id':IDENTITY_TWIN,'params':{}};}export function identityCensus(a){const b=[];for(const c of a){c['guards']['forEach']((d,e)=>{if(d['template_id']!==IDENTITY_PATTERN)return;const f=d['key']??d['template_id']+'#'+e,h=identitySkipReason(c,d);b['push']({'template':c['id'],'key':f,...h!==undefined?{'skipped':h}:{}});});}return b;}export const PROGRESS_PATTERN='pattern.progress_state_check';export const PROGRESS_NODE_CHECK_TWIN='tpl_forward_node_check';export const PROGRESS_RECOVER_RAIL_TWIN='tpl_allocator_node_gate_recover';export function progressSkipReason(a,b){if(b['template_id']!==PROGRESS_PATTERN)return'not\x20a\x20progress-state\x20design';if(b['key']===undefined)return'declared\x20without\x20a\x20key:\x20it\x20names\x20a\x20policy,\x20not\x20a\x20rail';const c=b['key'],d=railTracks(a,c),e=edgeMounts(a,c);if(/recover|award/i['test'](c)){if(e['length']===0x0&&d['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';return undefined;}if(d['length']>0x0)return e['length']>0x0?'bound\x20to\x20BOTH\x20a\x20forward\x20and\x20an\x20allocator\x20rail:\x20a\x20node-gated\x20twin\x20cannot\x20serve\x20the\x20pre-advance\x20forward\x20and\x20the\x20post-advance\x20allocator\x20(D8)':'rail-bound\x20with\x20no\x20forward\x20mount:\x20the\x20graph\x20cannot\x20say\x20which\x20node\x20the\x20order\x20occupies\x20when\x20the\x20rail\x20fires\x20(pinning\x20one\x20strands\x20the\x20escrow\x20below\x20it\x20—\x20UPWC-K1)';if(e['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';const f=[...new Set(e['map'](g=>g['prev']))];if(f['length']>0x1)return'mounted\x20on\x20'+e['length']+'\x20forwards\x20from\x20DIFFERENT\x20prev\x20nodes\x20('+f['join']('/')+'):\x20one\x20expected_node\x20cannot\x20serve\x20them';return undefined;}export function progressStateDefaultResolution(a,b){if(progressSkipReason(a,b)!==undefined)return undefined;if(/recover|award/i['test'](b['key']))return{'kind':'template','template_id':PROGRESS_RECOVER_RAIL_TWIN,'params':{}};return{'kind':'template','template_id':PROGRESS_NODE_CHECK_TWIN,'params':{'expected_node':edgeMounts(a,b['key'])[0x0]['prev']}};}export function progressCensus(a){const b=[];for(const c of a){c['guards']['forEach']((d,e)=>{if(d['template_id']!==PROGRESS_PATTERN)return;const f=d['key']??d['template_id']+'#'+e,h=progressSkipReason(c,d);b['push']({'template':c['id'],'key':f,...h!==undefined?{'skipped':h}:{}});});}return b;}export function timeInstantiationIssues(a,b){const c=[],d=new Map(a['map'](f=>[f['id'],f])),e=new Set();for(const f of TIME_GUARD_INSTANTIATIONS){const h=f['template']+'\x00'+f['guard_key'];if(e['has'](h))c['push']({'row':f,'problem':'duplicate\x20row'});e['add'](h);const i=d['get'](f['template']);if(i===undefined){c['push']({'row':f,'problem':'template\x20\x27'+f['template']+'\x27\x20does\x20not\x20exist'});continue;}const j=i['guards']['find'](u=>u['key']===f['guard_key']);if(j===undefined){c['push']({'row':f,'problem':'guard\x20\x27'+f['guard_key']+'\x27\x20is\x20not\x20declared\x20by\x20'+f['template']});continue;}const k=f['direction']==='upper'?'pattern.time_window_upper_bound':'pattern.time_lock_progress';j['template_id']!==k&&c['push']({'row':f,'problem':'guard\x20declares\x20\x27'+j['template_id']+'\x27,\x20expected\x20\x27'+k+'\x27\x20for\x20a\x20'+f['direction']+'\x20window'});const l=(i['allocator']?.['rows']??[])['filter'](u=>u['guard_key']===f['guard_key'])['length'];if(l>0x0){c['push']({'row':f,'problem':'guard\x20is\x20also\x20bound\x20to\x20'+l+'\x20allocator\x20row(s):\x20a\x20node-gated\x20twin\x20cannot\x20serve\x20the\x20'+'pre-advance\x20forward\x20and\x20the\x20post-advance\x20allocator\x20(and\x20a\x20second\x20mount\x20would\x20double\x20the\x20wait)'});continue;}const m=mountInfo(i,f['guard_key']);if(f['multimount']!==!![]){if(m['length']!==0x1){c['push']({'row':f,'problem':'guard\x20has\x20'+m['length']+'\x20mounts;\x20a\x20shared\x20expected_node\x20needs\x20exactly\x20one'});continue;}m[0x0]['prev']!==f['anchor']&&c['push']({'row':f,'problem':'anchor\x20\x27'+f['anchor']+'\x27\x20!=\x20mount\x20prev\x20\x27'+m[0x0]['prev']+'\x27'});const u=f['direction']==='upper'?'order_payer':'merchant';m[0x0]['operator']!==u&&c['push']({'row':f,'problem':'mount\x20operator\x20\x27'+m[0x0]['operator']+'\x27\x20!=\x20\x27'+u+'\x27:\x20an\x20'+f['direction']+'\x20window\x20on\x20the\x20wrong\x20'+'signer\x20set\x20is\x20either\x20callable\x20by\x20anyone\x20(upper)\x20or\x20unsatisfiable\x20(identity\x20leg\x20over\x20a\x20permission-index\x20rail)'});}else{(f['days']===undefined||f['hours']!==undefined)&&c['push']({'row':f,'problem':'the\x20pin-free\x20twin\x20takes\x20a\x20day\x20window;\x20declare\x20days\x20and\x20no\x20hours'});m['length']===0x0&&c['push']({'row':f,'problem':'guard\x20is\x20bound\x20to\x20no\x20forward\x20—\x20a\x20window\x20nobody\x20mounts\x20is\x20not\x20a\x20rail'});const v=f['direction']==='upper'?'order_payer':'merchant',w=m['filter'](x=>x['operator']!==v);w['length']>0x0&&c['push']({'row':f,'problem':w['length']+'\x20mount(s)\x20ride\x20\x27'+[...new Set(w['map'](x=>x['operator']))]['join']('/')+'\x27\x20but\x20a\x20'+f['direction']+'\x20'+('multi-mount\x20twin\x20needs\x20\x27'+v+'\x27\x20')+(f['direction']==='upper'?'(the\x20twin\x27s\x20order-holder\x20leg\x20is\x20unsatisfiable\x20on\x20a\x20permission-index\x20rail)':'(the\x20opening\x20twin\x20ships\x20no\x20signer\x20leg,\x20so\x20a\x20buyer\x20rail\x20would\x20be\x20left\x20unauthenticated)')}),m['length']>0x0&&!m['some'](x=>x['prev']===f['anchor'])&&c['push']({'row':f,'problem':'no\x20mount\x20starts\x20at\x20anchor\x20\x27'+f['anchor']+'\x27\x20(mounts:\x20'+m['map'](x=>x['prev'])['join'](',\x20')+'):\x20'+'the\x20anchor\x20must\x20be\x20the\x20entry\x20that\x20opens\x20the\x20window\x20on\x20at\x20least\x20one\x20path'});}const n=f['days']!==undefined?'days':f['hours']!==undefined?'hours':undefined;if(n===undefined||f['days']!==undefined&&f['hours']!==undefined){c['push']({'row':f,'problem':'exactly\x20one\x20of\x20days/hours\x20must\x20be\x20declared'});continue;}const o=f['days']??f['hours'];i['fee_params'][o]===undefined&&c['push']({'row':f,'problem':'fee_param\x20\x27'+o+'\x27\x20is\x20not\x20declared\x20by\x20'+f['template']});for(const x of f['plus_days']===undefined?[]:typeof f['plus_days']==='string'?[f['plus_days']]:f['plus_days']){i['fee_params'][x]===undefined&&c['push']({'row':f,'problem':'fee_param\x20\x27'+x+'\x27\x20(plus_days)\x20is\x20not\x20declared\x20by\x20'+f['template']});}const p=f['multimount']===!![]?multiMountTwin(f['direction']):twinFor(f['direction'],n),q=b['get'](p);if(q===undefined){c['push']({'row':f,'problem':'twin\x20template\x20\x27'+p+'\x27\x20is\x20not\x20in\x20the\x20guard-template\x20registry'});continue;}const r=new Set(q['map'](y=>y['name'])),s=f['multimount']===!![]?'anchor_node':'expected_node';for(const y of[s,TWIN_PARAM[n]]){if(!r['has'](y))c['push']({'row':f,'problem':'twin\x20\x27'+p+'\x27\x20declares\x20no\x20param\x20\x27'+y+'\x27'});}}return c;}
|
|
1
|
+
export const MS_PER_DAY=0x5265c00;export const MS_PER_HOUR=0x36ee80;export const TIME_GUARD_INSTANTIATIONS=[{'template':'retail/scale-marketplace','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'retail/scale-marketplace','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/scale-marketplace','guard_key':'return_window','direction':'upper','anchor':'delivered','days':'return_window_days','note':'return\x20request\x20inside\x20the\x20policy\x20window'},{'template':'retail/scale-marketplace','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/scale-marketplace','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20merchant\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'retail/warehouse-club','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'retail/warehouse-club','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/warehouse-club','guard_key':'return_window','direction':'upper','anchor':'delivered','days':'return_window_days','note':'return\x20request\x20inside\x20the\x20policy\x20window'},{'template':'retail/warehouse-club','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/warehouse-club','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20merchant\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'retail/preorder-deposit','guard_key':'balance_window_open','direction':'lower','anchor':'deposit_paid','days':'production_lead_days','note':'balance\x20window\x20opens\x20after\x20the\x20production\x20lead'},{'template':'retail/preorder-deposit','guard_key':'balance_deadline','direction':'lower','anchor':'balance_due','days':'balance_window_days','note':'balance-window\x20timeout'},{'template':'retail/preorder-deposit','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20delivery'},{'template':'retail/preorder-deposit','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/preorder-deposit','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20merchant\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'retail/restock-supply','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/restock-supply','guard_key':'restock_confirm_timeout','direction':'lower','anchor':'delivered','days':'restock_confirm_days','note':'restock\x20confirmation\x20timeout'},{'template':'retail/vertical-handmade','guard_key':'ship_timeout','direction':'lower','anchor':'confirmed','days':'processing_time_days','note':'unshipped\x20order\x20cancels\x20after\x20the\x20processing\x20time'},{'template':'retail/vertical-handmade','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'shipped','days':'auto_confirm_days','note':'auto-confirm\x20N\x20days\x20after\x20shipment'},{'template':'retail/vertical-handmade','guard_key':'return_response_timeout','direction':'lower','anchor':'return_requested','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20accepted\x20(returnless\x20approval)\x20after\x20the\x20maker\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'freelance/enterprise-talent-market','guard_key':'review_settle_clock','direction':'lower','anchor':'reviewed','days':'settlement_delay_days','note':'settle\x20N\x20days\x20after\x20review'},{'template':'freelance/enterprise-talent-market','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','days':'escrow_release_days','note':'keeper\x20auto-accepts\x20the\x20delivery\x20N\x20days\x20after\x20submission\x20(the\x20timeout\x20branch\x20of\x20the\x20dual-branch\x20acceptance)'},{'template':'freelance/enterprise-talent-market','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/catalog-tiers','guard_key':'requirements_timeout_48h','direction':'lower','anchor':'in_progress','hours':'requirements_timeout_hours','note':'requirements\x20timeout'},{'template':'freelance/catalog-tiers','guard_key':'cancel_response_timeout','direction':'lower','anchor':'cancel_requested','hours':'response_timeout_hours','note':'keeper\x20auto-cancel\x20after\x20the\x20seller\x27s\x20silence'},{'template':'freelance/catalog-tiers','guard_key':'refund_response_timeout','direction':'lower','anchor':'refund_requested','hours':'refund_response_hours','note':'keeper\x20auto-cancel\x20after\x20the\x20seller\x27s\x20silence\x20on\x20a\x20refund\x20request'},{'template':'freelance/catalog-tiers','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','days':'escrow_release_days','note':'auto-accept\x20N\x20days\x20after\x20delivery\x20(buyer\x20silence)'},{'template':'freelance/catalog-tiers','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/catalog-tiers','guard_key':'review_settle_clock','direction':'lower','anchor':'reviewed','days':'settlement_delay_days','note':'settle\x20N\x20days\x20after\x20review'},{'template':'freelance/creator-zero-commission','guard_key':'accept_timeout','direction':'lower','anchor':'delivered','hours':'acceptance_timeout_hours','note':'delivery\x20acceptance\x20timeout'},{'template':'freelance/creator-zero-commission','guard_key':'defect_report_window','direction':'upper','anchor':'delivered','hours':'defect_report_window_hours','note':'defect\x20report\x20window\x20after\x20delivery'},{'template':'freelance/creator-zero-commission','guard_key':'review_window','direction':'upper','anchor':'accepted','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20acceptance'},{'template':'freelance/design-contest','guard_key':'submission_window','direction':'lower','anchor':'funded','days':'submission_window_days','note':'submissions\x20close\x20N\x20days\x20after\x20funding'},{'template':'freelance/design-contest','guard_key':'appeal_window','direction':'lower','anchor':'placement_provisional','days':'appeal_window_days','note':'placement\x20finalizes\x20after\x20the\x20appeal\x20window'},{'template':'freelance/design-contest','guard_key':'delivery_window','direction':'lower','anchor':'final_delivery','days':'delivery_window_days','note':'final\x20delivery\x20acceptance\x20timeout'},{'template':'rental/p2p-shortstay','guard_key':'confirm_expire','direction':'lower','anchor':'reserved','hours':'confirm_window_hours','note':'unconfirmed\x20booking\x20expires'},{'template':'rental/p2p-shortstay','guard_key':'claim_window_closed','direction':'lower','anchor':'claim_window','days':'claim_window_days','note':'no-claim\x20release\x20after\x20the\x20claim\x20window'},{'template':'rental/p2p-shortstay','guard_key':'guest_claim_window_open','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'guest\x20files\x20a\x20claim\x20inside\x20the\x20claim\x20window'},{'template':'rental/institutional-longstay','guard_key':'return_notice','direction':'lower','anchor':'in_use','days':'return_notice_days','note':'return\x20notice\x20lead\x20time'},{'template':'rental/institutional-longstay','guard_key':'nofault_window','direction':'upper','anchor':'deposit_paid','multimount':!![],'days':'no_fault_exit_days','note':'no-fault\x20exit\x20within\x20no_fault_exit_days\x20of\x20signing,\x20on\x20both\x20buyer\x20exits\x20into\x20closed_cancel\x20(pre-handover\x20and\x20mid-lease\x20—\x20in_use\x20is\x20only\x20entered\x20from\x20deposit_paid,\x20whose\x20entry\x20IS\x20the\x20signing)'},{'template':'rental/institutional-longstay','guard_key':'review_window','direction':'upper','anchor':'inspected','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20the\x20passing\x20inspection'},{'template':'travel/destination-experience','guard_key':'free_cancel','direction':'upper','anchor':'paid','hours':'free_cancel_hours','note':'free\x20cancellation\x20window'},{'template':'travel/destination-experience','guard_key':'poststay_claim_window','direction':'upper','anchor':'claim_window','days':'claim_window_days','note':'post-stay\x20claim\x20window'},{'template':'travel/destination-experience','guard_key':'release_no_claim_clock','direction':'lower','anchor':'claim_window','days':'claim_window_days','note':'no-claim\x20release\x20after\x20the\x20claim\x20window'},{'template':'delivery/on-demand-errand','guard_key':'deliver_confirm_timeout','direction':'lower','anchor':'delivered','hours':'auto_confirm_hours','note':'auto-confirm\x20N\x20hours\x20after\x20delivery'},{'template':'delivery/on-demand-errand','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','hours':'claim_window_hours','note':'claim\x20window'},{'template':'delivery/on-demand-errand','guard_key':'return_request','direction':'upper','anchor':'delivered','hours':'return_window_hours','note':'after-sales\x20return\x20request\x20closes\x20N\x20hours\x20after\x20the\x20delivered\x20FIRST\x20entry'},{'template':'delivery/restaurant-marketplace','guard_key':'return_request','direction':'upper','anchor':'delivered','hours':'return_window_hours','note':'after-sales\x20return\x20request\x20closes\x20N\x20hours\x20after\x20the\x20delivered\x20FIRST\x20entry'},{'template':'group_buy/leader-sourced-community','guard_key':'claim_filed','direction':'upper','anchor':'claim_window','hours':'claim_window_hours','note':'buyer\x20files\x20a\x20claim\x20only\x20inside\x20the\x20claim\x20window'},{'template':'group_buy/leader-sourced-community','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20leader\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'group_buy/platform-supplied-pickup','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20point\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'crowdfunding/reward-campaign-fulfillment','guard_key':'return_response_timeout','direction':'lower','anchor':'return_in_transit','days':'return_response_days','note':'keeper\x20deems\x20the\x20return\x20parcel\x20received\x20after\x20the\x20project\x27s\x20silence\x20(F-TBPM9-O5-02)'},{'template':'subscription/delivery-membership','guard_key':'period_end','direction':'lower','anchor':'active','days':'period_days','note':'membership\x20period\x20clock:\x20active\x20entry\x20+\x20period_days\x20before\x20the\x20keeper\x20may\x20complete'},{'template':'subscription/creator-membership','guard_key':'period_expiry','direction':'lower','anchor':'delivered','multimount':!![],'days':'period_days','plus_days':'grace_days','note':'period\x20expiry\x20=\x20delivery\x20+\x20period_days\x20+\x20grace_days,\x20on\x20every\x20keeper\x20lapse'},{'template':'subscription/direct-fan-subscription','guard_key':'period_expiry','direction':'lower','anchor':'delivered','multimount':!![],'days':'period_days','plus_days':'grace_days','note':'period\x20expiry\x20=\x20delivery\x20+\x20period_days\x20+\x20grace_days,\x20on\x20every\x20keeper\x20lapse'},{'template':'education/live-class-cohort','guard_key':'review_window','direction':'upper','anchor':'completed_ready','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20completion\x20readiness'},{'template':'education/mooc-single-course','guard_key':'review_window','direction':'upper','anchor':'certified','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20certification'},{'template':'subscription/creator-membership','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20period\x20delivery'},{'template':'subscription/direct-fan-subscription','guard_key':'review_window','direction':'upper','anchor':'delivered','days':'review_window_days','note':'review\x20closes\x20N\x20days\x20after\x20period\x20delivery\x20—\x20keep\x20period_days\x20+\x20grace_days\x20>\x20review_window_days\x20or\x20the\x20keeper\x20expire\x20kills\x20the\x20open\x20window'},{'template':'retail/preorder-deposit','guard_key':'return_window_presale','direction':'upper','anchor':'delivered','multimount':!![],'days':'return_window_days','note':'return\x20requested\x20within\x20N\x20days\x20of\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'rental/p2p-shortstay','guard_key':'review_window','direction':'upper','anchor':'checked_out','multimount':!![],'days':'review_window_days','note':'review\x20within\x20N\x20days\x20of\x20checkout,\x20including\x20once\x20the\x20claim\x20window\x20has\x20opened'},{'template':'education/mooc-single-course','guard_key':'return_window','direction':'upper','anchor':'paid','multimount':!![],'days':'refund_window_days','note':'refund\x20requested\x20within\x20N\x20days\x20of\x20purchase,\x20from\x20any\x20pre-delivery\x20stage'},{'template':'retail/scale-marketplace','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','days':'settlement_days','plus_days':['reserve_days','return_window_days'],'note':'settlement\x20opens\x20after\x20the\x20MERGED\x20lock:\x20settlement_days\x20+\x20reserve_days\x20+\x20return_window_days\x20(the\x20declaration\x20settlement_window_merge;\x2014\x20+\x207\x20+\x2030\x20=\x2051\x20days\x20by\x20default)\x20—\x20the\x20release\x20cannot\x20fire\x20while\x20the\x20return\x20window\x20can\x20still\x20draw\x20the\x20escrow'},{'template':'retail/warehouse-club','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','days':'settlement_delay_days','note':'settlement\x20opens\x20N\x20days\x20after\x20the\x20claim\x20window\x20(coupled\x20to\x20the\x20return\x20window)'},{'template':'retail/preorder-deposit','guard_key':'settle_window_gate','direction':'lower','anchor':'delivered','multimount':!![],'days':'settlement_days','note':'balance\x20settlement\x20opens\x20N\x20days\x20after\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'retail/vertical-handmade','guard_key':'settle_clock','direction':'lower','anchor':'delivered','multimount':!![],'days':'settlement_delay_days','note':'settlement\x20opens\x20N\x20days\x20after\x20delivery,\x20from\x20delivered\x20or\x20from\x20reviewed'},{'template':'delivery/on-demand-errand','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','hours':'settle_hours','note':'settlement\x20opens\x20N\x20hours\x20after\x20the\x20claim\x20window'},{'template':'group_buy/leader-sourced-community','guard_key':'settle_window_gate','direction':'lower','anchor':'claim_window','hours':'settle_hours','note':'settlement\x20opens\x20N\x20hours\x20after\x20the\x20claim\x20window,\x20past\x20the\x20after-sales\x20track'},{'template':'group_buy/leader-sourced-community','guard_key':'claim_window_open','direction':'lower','anchor':'delivered','hours':'claim_window_open_min_hold_hours','note':'claim\x20window\x20opens\x20N\x20hours\x20after\x20delivery\x20(the\x20buyer\x27s\x20dispute\x20clock\x20cannot\x20start\x20at\x20the\x20delivery\x20instant)'}];export const TWIN_PARAM={'days':'claim_window_days','hours':'duration_ms'};export function twinFor(a,b){if(b==='days')return a==='upper'?'tpl_time_window_upper_progress_days':'tpl_time_lock_progress_days';return a==='upper'?'tpl_time_window_upper':'tpl_time_lock_progress';}export const MULTI_MOUNT_TWIN='tpl_time_window_upper_history_days';export const MULTI_MOUNT_OPENING_TWIN='tpl_time_lock_history_days';export function multiMountTwin(a){return a==='upper'?MULTI_MOUNT_TWIN:MULTI_MOUNT_OPENING_TWIN;}export function unitScale(a){return a==='days'?0x1:MS_PER_HOUR;}const BY_SPEC=new Map();for(const row of TIME_GUARD_INSTANTIATIONS)BY_SPEC['set'](row['template']+'\x00'+row['guard_key'],row);export function timeInstantiationFor(a,b){return BY_SPEC['get'](a+'\x00'+b);}export function patternDefaultResolution(a,b){const c=timeInstantiationFor(a,b);if(c===undefined)return undefined;const d=c['days']!==undefined?'days':'hours';if(c['multimount']===!![])return{'kind':'template','template_id':multiMountTwin(c['direction']),'params':{'anchor_node':c['anchor']}};return{'kind':'template','template_id':twinFor(c['direction'],d),'params':{'expected_node':c['anchor']}};}function mountInfo(a,b){const c=[];for(const d of a['machine_shape']??[]){const f=d['from']??[];for(const g of f){const h=typeof g==='string'?{'prev':g}:g;if(h['guard_key']!==b)continue;const i=h['operator']??d['operator']??(h['prev']===''?'order_payer':'merchant');c['push']({'prev':h['prev']??'','operator':i});}}return c;}export const IDENTITY_PATTERN='pattern.identity_check_order_holder';export const IDENTITY_TWIN='tpl_forward_order_holder';export const IDENTITY_RECOVER_RAIL_TWIN='tpl_allocator_node_gate_recover';export const IDENTITY_REFUND_RAIL_TWIN='tpl_allocator_identity_set_order_holder';function railTracks(a,b){return(a['allocator']?.['rows']??[])['filter'](c=>c['guard_key']===b)['map'](c=>c['track']??'');}function hasAwardRailSibling(a,b){return a['guards']['some'](c=>{if(c['template_id']===IDENTITY_RECOVER_RAIL_TWIN)return!![];const d=c['key'];if(d===undefined||d===b)return![];if(!/recover|award/i['test'](d))return![];if(!/pattern\./i['test'](c['template_id']))return![];return edgeMounts(a,d)['length']===0x0&&railTracks(a,d)['length']>0x0;});}function edgeMounts(a,b){return mountInfo(a,b);}export function identitySkipReason(a,b){if(b['template_id']!==IDENTITY_PATTERN)return'not\x20an\x20identity\x20design';if(b['key']===undefined)return'declared\x20without\x20a\x20key:\x20it\x20names\x20a\x20policy,\x20not\x20a\x20rail';const c=b['key'],d=railTracks(a,c),e=edgeMounts(a,c);if(e['length']===0x0){if(d['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';if(/recover|award/i['test'](c))return undefined;if(/refund/i['test'](c)&&d['every'](g=>/refund/i['test'](g))){if(hasAwardRailSibling(a,c))return'rail-bound\x20refund\x20next\x20to\x20an\x20award/recover\x20rail:\x20the\x20order-holder\x20refund\x20set\x20is\x20node-free,\x20so\x20instantiating\x20both\x20gives\x20one\x20escrow\x20two\x20live\x20fund\x20exits\x20(RAIL-03)\x20—\x20legal\x20but\x20a\x20merchant\x20choice\x20(disclosed\x20double\x20collection),\x20resolve\x20the\x20refund\x20rail\x20explicitly';return undefined;}return'bound\x20to\x20an\x20allocator\x20row\x20only:\x20no\x20executable\x20twin\x20matches\x20this\x20key/track\x20pair\x20(a\x20settlement\x20rail\x20asks\x20a\x20different\x20question)';}if(d['length']>0x0)return'also\x20bound\x20to\x20an\x20allocator\x20row:\x20one\x20design\x20cannot\x20serve\x20a\x20forward\x20and\x20a\x20rail';const f=e['filter'](g=>g['operator']!=='order_payer');if(f['length']>0x0)return'mounted\x20on\x20'+f['length']+'\x20non-buyer\x20forward(s)\x20('+[...new Set(f['map'](g=>g['operator']))]['join']('/')+'):\x20'+'an\x20order-holder\x20leg\x20is\x20unsatisfiable\x20on\x20a\x20permission-index\x20rail';return undefined;}export function identityDefaultResolution(a,b){if(identitySkipReason(a,b)!==undefined)return undefined;const c=b['key'];if(edgeMounts(a,c)['length']===0x0){if(/recover|award/i['test'](c))return{'kind':'template','template_id':IDENTITY_RECOVER_RAIL_TWIN,'params':{}};return{'kind':'template','template_id':IDENTITY_REFUND_RAIL_TWIN,'params':{}};}return{'kind':'template','template_id':IDENTITY_TWIN,'params':{}};}export function identityCensus(a){const b=[];for(const c of a){c['guards']['forEach']((d,e)=>{if(d['template_id']!==IDENTITY_PATTERN)return;const f=d['key']??d['template_id']+'#'+e,h=identitySkipReason(c,d);b['push']({'template':c['id'],'key':f,...h!==undefined?{'skipped':h}:{}});});}return b;}export const PROGRESS_PATTERN='pattern.progress_state_check';export const PROGRESS_NODE_CHECK_TWIN='tpl_forward_node_check';export const PROGRESS_RECOVER_RAIL_TWIN='tpl_allocator_node_gate_recover';export function progressSkipReason(a,b){if(b['template_id']!==PROGRESS_PATTERN)return'not\x20a\x20progress-state\x20design';if(b['key']===undefined)return'declared\x20without\x20a\x20key:\x20it\x20names\x20a\x20policy,\x20not\x20a\x20rail';const c=b['key'],d=railTracks(a,c),e=edgeMounts(a,c);if(/recover|award/i['test'](c)){if(e['length']===0x0&&d['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';return undefined;}if(d['length']>0x0)return e['length']>0x0?'bound\x20to\x20BOTH\x20a\x20forward\x20and\x20an\x20allocator\x20rail:\x20a\x20node-gated\x20twin\x20cannot\x20serve\x20the\x20pre-advance\x20forward\x20and\x20the\x20post-advance\x20allocator\x20(D8)':'rail-bound\x20with\x20no\x20forward\x20mount:\x20the\x20graph\x20cannot\x20say\x20which\x20node\x20the\x20order\x20occupies\x20when\x20the\x20rail\x20fires\x20(pinning\x20one\x20strands\x20the\x20escrow\x20below\x20it\x20—\x20UPWC-K1)';if(e['length']===0x0)return'no\x20mount\x20in\x20the\x20declared\x20graph';const f=[...new Set(e['map'](g=>g['prev']))];if(f['length']>0x1)return'mounted\x20on\x20'+e['length']+'\x20forwards\x20from\x20DIFFERENT\x20prev\x20nodes\x20('+f['join']('/')+'):\x20one\x20expected_node\x20cannot\x20serve\x20them';return undefined;}export function progressStateDefaultResolution(a,b){if(progressSkipReason(a,b)!==undefined)return undefined;if(/recover|award/i['test'](b['key']))return{'kind':'template','template_id':PROGRESS_RECOVER_RAIL_TWIN,'params':{}};return{'kind':'template','template_id':PROGRESS_NODE_CHECK_TWIN,'params':{'expected_node':edgeMounts(a,b['key'])[0x0]['prev']}};}export function progressCensus(a){const b=[];for(const c of a){c['guards']['forEach']((d,e)=>{if(d['template_id']!==PROGRESS_PATTERN)return;const f=d['key']??d['template_id']+'#'+e,h=progressSkipReason(c,d);b['push']({'template':c['id'],'key':f,...h!==undefined?{'skipped':h}:{}});});}return b;}export function timeInstantiationIssues(a,b){const c=[],d=new Map(a['map'](f=>[f['id'],f])),e=new Set();for(const f of TIME_GUARD_INSTANTIATIONS){const h=f['template']+'\x00'+f['guard_key'];if(e['has'](h))c['push']({'row':f,'problem':'duplicate\x20row'});e['add'](h);const i=d['get'](f['template']);if(i===undefined){c['push']({'row':f,'problem':'template\x20\x27'+f['template']+'\x27\x20does\x20not\x20exist'});continue;}const j=i['guards']['find'](u=>u['key']===f['guard_key']);if(j===undefined){c['push']({'row':f,'problem':'guard\x20\x27'+f['guard_key']+'\x27\x20is\x20not\x20declared\x20by\x20'+f['template']});continue;}const k=f['direction']==='upper'?'pattern.time_window_upper_bound':'pattern.time_lock_progress';j['template_id']!==k&&c['push']({'row':f,'problem':'guard\x20declares\x20\x27'+j['template_id']+'\x27,\x20expected\x20\x27'+k+'\x27\x20for\x20a\x20'+f['direction']+'\x20window'});const l=(i['allocator']?.['rows']??[])['filter'](u=>u['guard_key']===f['guard_key'])['length'];if(l>0x0){c['push']({'row':f,'problem':'guard\x20is\x20also\x20bound\x20to\x20'+l+'\x20allocator\x20row(s):\x20a\x20node-gated\x20twin\x20cannot\x20serve\x20the\x20'+'pre-advance\x20forward\x20and\x20the\x20post-advance\x20allocator\x20(and\x20a\x20second\x20mount\x20would\x20double\x20the\x20wait)'});continue;}const m=mountInfo(i,f['guard_key']);if(f['multimount']!==!![]){if(m['length']!==0x1){c['push']({'row':f,'problem':'guard\x20has\x20'+m['length']+'\x20mounts;\x20a\x20shared\x20expected_node\x20needs\x20exactly\x20one'});continue;}m[0x0]['prev']!==f['anchor']&&c['push']({'row':f,'problem':'anchor\x20\x27'+f['anchor']+'\x27\x20!=\x20mount\x20prev\x20\x27'+m[0x0]['prev']+'\x27'});const u=f['direction']==='upper'?'order_payer':'merchant';m[0x0]['operator']!==u&&c['push']({'row':f,'problem':'mount\x20operator\x20\x27'+m[0x0]['operator']+'\x27\x20!=\x20\x27'+u+'\x27:\x20an\x20'+f['direction']+'\x20window\x20on\x20the\x20wrong\x20'+'signer\x20set\x20is\x20either\x20callable\x20by\x20anyone\x20(upper)\x20or\x20unsatisfiable\x20(identity\x20leg\x20over\x20a\x20permission-index\x20rail)'});}else{(f['days']===undefined||f['hours']!==undefined)&&c['push']({'row':f,'problem':'the\x20pin-free\x20twin\x20takes\x20a\x20day\x20window;\x20declare\x20days\x20and\x20no\x20hours'});m['length']===0x0&&c['push']({'row':f,'problem':'guard\x20is\x20bound\x20to\x20no\x20forward\x20—\x20a\x20window\x20nobody\x20mounts\x20is\x20not\x20a\x20rail'});const v=f['direction']==='upper'?'order_payer':'merchant',w=m['filter'](x=>x['operator']!==v);w['length']>0x0&&c['push']({'row':f,'problem':w['length']+'\x20mount(s)\x20ride\x20\x27'+[...new Set(w['map'](x=>x['operator']))]['join']('/')+'\x27\x20but\x20a\x20'+f['direction']+'\x20'+('multi-mount\x20twin\x20needs\x20\x27'+v+'\x27\x20')+(f['direction']==='upper'?'(the\x20twin\x27s\x20order-holder\x20leg\x20is\x20unsatisfiable\x20on\x20a\x20permission-index\x20rail)':'(the\x20opening\x20twin\x20ships\x20no\x20signer\x20leg,\x20so\x20a\x20buyer\x20rail\x20would\x20be\x20left\x20unauthenticated)')}),m['length']>0x0&&!m['some'](x=>x['prev']===f['anchor'])&&c['push']({'row':f,'problem':'no\x20mount\x20starts\x20at\x20anchor\x20\x27'+f['anchor']+'\x27\x20(mounts:\x20'+m['map'](x=>x['prev'])['join'](',\x20')+'):\x20'+'the\x20anchor\x20must\x20be\x20the\x20entry\x20that\x20opens\x20the\x20window\x20on\x20at\x20least\x20one\x20path'});}const n=f['days']!==undefined?'days':f['hours']!==undefined?'hours':undefined;if(n===undefined||f['days']!==undefined&&f['hours']!==undefined){c['push']({'row':f,'problem':'exactly\x20one\x20of\x20days/hours\x20must\x20be\x20declared'});continue;}const o=f['days']??f['hours'];i['fee_params'][o]===undefined&&c['push']({'row':f,'problem':'fee_param\x20\x27'+o+'\x27\x20is\x20not\x20declared\x20by\x20'+f['template']});for(const x of f['plus_days']===undefined?[]:typeof f['plus_days']==='string'?[f['plus_days']]:f['plus_days']){i['fee_params'][x]===undefined&&c['push']({'row':f,'problem':'fee_param\x20\x27'+x+'\x27\x20(plus_days)\x20is\x20not\x20declared\x20by\x20'+f['template']});}const p=f['multimount']===!![]?multiMountTwin(f['direction']):twinFor(f['direction'],n),q=b['get'](p);if(q===undefined){c['push']({'row':f,'problem':'twin\x20template\x20\x27'+p+'\x27\x20is\x20not\x20in\x20the\x20guard-template\x20registry'});continue;}const r=new Set(q['map'](y=>y['name'])),s=f['multimount']===!![]?'anchor_node':'expected_node';for(const y of[s,TWIN_PARAM[n]]){if(!r['has'](y))c['push']({'row':f,'problem':'twin\x20\x27'+p+'\x27\x20declares\x20no\x20param\x20\x27'+y+'\x27'});}}return c;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const BUYER_ACTION_NODE_RE=/^(reviewed|return_requested|guest_cancelled|withdrawn|charging|cancelled|closed_cancel)$/i;export function unannotatedBuyerActionNodes(a){return a['filter'](b=>!b['operator']&&BUYER_ACTION_NODE_RE['test'](b['name']))['map'](b=>b['name']);}export const SCENARIO_MODES=[{'name':'freelance','phase':0x1,'industry':'Design\x20/\x20dev\x20/\x20consulting\x20/\x20writing','trust_pattern':'Milestone\x20allocation,\x20acceptance\x20gate','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'freelance/enterprise-talent-market','key_risk':'Customer\x20never\x20accepts\x20delivery\x20—\x20provider\x20cannot\x20get\x20paid','build_notes':['Use\x20Service\x20`setting_lock_duration`\x20to\x20lock\x20rules\x20for\x20the\x20engagement\x20duration','WIP\x20hash\x20on\x20every\x20milestone\x20deliverable\x20is\x20mandatory\x20—\x20protects\x20provider\x20in\x20disputes','Acceptance\x20gate\x20is\x20the\x20trust\x20pivot\x20—\x20both\x20parties\x20must\x20agree\x20on\x20criteria\x20per\x20milestone','Milestones\x20map\x20to\x20deliverable-Guarded\x20forwards;\x20each\x20accepted\x20milestone\x20releases\x20its\x20escrowed\x20slice\x20(allocation.distribute_milestone)','Scope\x20changes\x20are\x20recorded\x20as\x20WTS\x20change-requests\x20at\x20kickoff/throughout\x20—\x20never\x20silent','R-M1-11:\x20no\x20\x27refunded\x27/\x27disputed\x27/\x27arb\x27/\x27cancelled\x27\x20nodes\x20—\x20refunds\x20route\x20via\x20Allocator\x20(to\x20OrderHolder)\x20triggered\x20by\x20\x27closed_cancel\x27,\x20disputes\x20via\x20Arbitration','Payment\x20exception\x20compensation\x20for\x20delivery\x20delays\x20—\x20provider\x20Treasury\x20auto-compensates\x20customer\x20(§2.13)','Project-Catalog\x20orders\x20have\x20NO\x20milestones\x20(single\x20funded\x20order\x20+\x20steps\x20timeline);\x20milestones\x20here\x20model\x20fixed-price\x20CONTRACTS.\x20For\x20catalog-style\x20listings\x20(tiered\x20pricing\x20+\x20add-ons\x20+\x20buyer\x20requirements)\x20use\x20the\x20freelance/catalog-tiers\x20template\x20instead','Time-bound\x20catalog\x20rules\x20(24h\x20instant\x20cancel,\x2048h\x20requirements\x20timeout,\x2014-day\x20auto-accept)\x20need\x20a\x20time\x20Guard\x20PLUS\x20an\x20off-chain\x20keeper\x20per\x20window\x20-\x20Guards\x20take\x20an\x20immutable\x20duration\x20constant']},{'name':'rental','phase':0x1,'industry':'Equipment\x20/\x20vehicle\x20/\x20property\x20rental','trust_pattern':'Deposit\x20escrow,\x20return\x20inspection','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':!![],'multi_tier_allocation':![]},'default_template':'rental/institutional-longstay','key_risk':'Owner\x20claims\x20damage\x20without\x20pre-rental\x20WIP\x20—\x20customer\x20loses\x20deposit\x20unfairly','build_notes':['Pre-rental\x20WIP\x20is\x20non-negotiable\x20—\x20without\x20it,\x20damage\x20claims\x20fail','Deposit\x20must\x20be\x20escrowed,\x20not\x20direct-transferred\x20—\x20enables\x20fair\x20deduction','Inspection\x20gate\x20prevents\x20customer\x20from\x20denying\x20damage','Overdue\x20handling\x20uses\x20a\x20time-lock\x20Guard\x20(clock)\x20—\x20the\x20Guard\x20only\x20ALLOWS\x20the\x20overdue\x20transition;\x20automatic\x20advancement\x20needs\x20an\x20off-chain\x20keeper\x20(see\x20DESIGN-REVIEW\x20C-3)','Extensions\x20are\x20modeled\x20as\x20separate\x20sub-orders\x20(REUSE\x20pattern),\x20not\x20as\x20machine\x20cycles\x20—\x20an\x20in-order\x20loop\x20replays\x20its\x20forwards\x27\x20fund\x20rails\x20every\x20lap','R-M1-11:\x20no\x20\x27deposit_refunded\x27/\x27deposit_deducted\x27/\x27refunded\x27\x20nodes\x20—\x20deposit\x20refund/deduction\x20flows\x20through\x20Allocator\x20triggered\x20by\x20return_approved/damage_confirmed\x20business\x20states','Payment\x20exception\x20compensation\x20for\x20return\x20delays\x20—\x20Treasury\x20withdraws\x20scene-bound\x20Payment\x20(§2.13)','Repository\x20quote_guard\x20for\x20weather/usage\x20data\x20subscription\x20revenue\x20(§2.11)']},{'name':'education','phase':0x2,'industry':'Courses\x20/\x20training\x20/\x20tutoring','trust_pattern':'Periodic\x20release\x20per\x20session,\x20attendance\x20Guard','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':![]},'default_template':'education/live-class-cohort','key_risk':'Tutoring\x20institutions\x20run\x20away\x20with\x20prepaid\x20tuition','build_notes':['Use\x20Service\x20`setting_lock_duration`\x20to\x20lock\x20rules\x20for\x20the\x20entire\x20term\x20(regulatory\x20compliance,\x20>=90d)','Attendance\x20Guard\x20needs\x20WIP\x20hash\x20for\x20session\x20content\x20commitment;\x20attendance\x20evidence\x20lives\x20in\x20the\x20class\x20Repository','Per-session\x20release\x20requires\x20threshold-based\x20trigger\x20—\x20each\x20attended\x20session\x20releases\x201/N','session_1..session_3\x20are\x20representative\x20—\x20configure\x20the\x20real\x20session\x20count\x20(session_N)\x20at\x20build\x20time;\x20each\x20session\x20=\x20one\x20attendance-Guarded\x20forward','Pause/deferral\x20is\x20a\x20terminal\x20node\x20+\x20new\x20sub-order\x20(REUSE\x20pattern)\x20—\x20never\x20a\x20loop\x20back\x20into\x20the\x20session\x20chain\x20(a\x20loop\x20replays\x20the\x20session\x20forwards\x27\x20fund\x20rails\x20every\x20lap;\x20if\x20a\x20loop\x20is\x20unavoidable\x20it\x20must\x20keep\x20a\x20cycle-breaking\x20exit)','Supply\x20chain\x20sub-orders\x20for\x20course\x20module\x20progressive\x20unlock\x20—\x20each\x20module\x20=\x20sub-service\x20with\x20buy_guard\x20verifying\x20previous\x20module\x20completion\x20(§2.12)','Repository\x20for\x20learning\x20progress\x20collaboration\x20data\x20—\x20progress\x20as\x20key,\x20session\x20data\x20as\x20value\x20(§2.10)']},{'name':'travel','phase':0x2,'industry':'Custom\x20tours\x20/\x20multi-segment\x20trips','trust_pattern':'Multi-tier\x20allocation\x20per\x20segment','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'travel/destination-experience','key_risk':'Paid\x20in\x20full\x20then\x20service\x20shrinks\x20—\x20multi-tier\x20transparency\x20prevents\x20this','build_notes':['Multi-tier\x20Allocation\x20is\x20WoWok\x27s\x20unique\x20advantage\x20over\x20traditional\x20travel\x20platforms','segment_guard\x20needs\x20standardized\x20WIP\x20templates\x20per\x20segment\x20type\x20(hotel,\x20transport,\x20activity)','Multi-tier\x20waterfall\x20needs\x20guard\x20chaining\x20validation','Weather/force-majeure\x20branches\x20enter\x20reschedule\x20(terminal)\x20or\x20partial-refund\x20interrupted\x20terminal\x20—\x20never\x20loop\x20back\x20into\x20the\x20segment\x20chain\x20(a\x20loop\x20replays\x20the\x20segment\x20forwards\x27\x20fund\x20rails\x20every\x20lap;\x20if\x20a\x20loop\x20is\x20unavoidable\x20it\x20must\x20keep\x20a\x20cycle-breaking\x20exit)','Supplier\x20sub-orders\x20each\x20carry\x20their\x20own\x20machine\x20—\x20hotel/guide/driver\x20fulfill\x20independently\x20(§2.12)','Supply\x20chain\x20sub-orders\x20—\x20each\x20tour\x20segment\x20=\x20sub-service\x20with\x20buy_guard\x20verifying\x20main\x20tour\x20order\x20(§2.12)','Payment\x20exception\x20compensation\x20for\x20flight/segment\x20delays\x20(§2.13)','Repository\x20quote_guard\x20for\x20weather/travel\x20data\x20subscription\x20revenue\x20(§2.11)']},{'name':'subscription','phase':0x3,'industry':'SaaS\x20/\x20content\x20membership\x20/\x20periodic\x20service','trust_pattern':'Periodic\x20charge,\x20cancel\x20Guard','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'subscription/creator-membership','key_risk':'Auto-renew\x20trap\x20and\x20platform-takes-30%\x20—\x20WoWok\x20native\x20solution','build_notes':['Pure\x20digital\x20—\x20native\x20WoWok\x20soil','charge_guard\x20needs\x20periodic\x20trigger\x20(off-chain\x20scheduler\x20+\x20on-chain\x20Guard)','Renewal\x20is\x20an\x20explicit\x20buyer-side\x20forward\x20(or\x20a\x20Guard-gated\x20auto-renew\x20WITH\x20WTS\x20notice)\x20—\x20never\x20silent','Cancellation\x20is\x20frictionless\x20and\x20next-period\x20effective;\x20pro-rata\x20refund\x20for\x20unearned\x20periods','Forbid\x20dead-end\x20nodes\x20(prevent\x20lock-in);\x20every\x20state\x20must\x20have\x20a\x20forward\x20or\x20be\x20an\x20intended\x20terminal','Targets\x20indie\x20creators,\x20niche\x20SaaS,\x20paid\x20newsletters','Repository\x20quote_guard\x20for\x20creator\x20data\x20subscription\x20revenue\x20—\x20creators\x20publish\x20paid\x20data,\x20users\x20pay\x20to\x20access\x20(§2.11)']},{'name':'retail','phase':0x1,'industry':'Goods\x20retail\x20/\x20marketplace\x20/\x20e-commerce','trust_pattern':'Escrow\x20+\x20confirm-on-receipt\x20release','traits':{'has_logistics':!![],'communication_heavy':![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'retail/scale-marketplace','key_risk':'Products\x20don\x27t\x20match\x20description\x20—\x20no\x20refund\x20path\x20for\x20returns','build_notes':['Logistics\x20WIP\x20(tracking\x20number)\x20is\x20essential\x20—\x20shipping\x20evidence\x20protects\x20both\x20parties\x20in\x20return\x20disputes','Confirm\x20gate\x20prevents\x20merchant\x20from\x20self-confirming\x20receipt','Refund\x20path\x20must\x20support\x20return-and-exchange\x20flow;\x20refund_window\x20>=\x207d','Return\x20request\x20is\x20time-lock\x20gated\x20—\x20after\x20the\x20window\x20closes,\x20returns\x20need\x20merchant\x20permission\x20or\x20arbitration','Compensation\x20fund\x20covers\x20return/exchange\x20disputes','R-M1-11:\x20no\x20\x27refunded\x27\x20node\x20—\x20refunds\x20route\x20via\x20Allocator\x20triggered\x20by\x20returned/cancelled\x20business\x20states;\x20disputes\x20go\x20to\x20Arbitration']},{'name':'licensing','phase':0x1,'industry':'IP\x20/\x20royalty\x20licensing\x20/\x20metered\x20asset\x20licenses','trust_pattern':'Terms\x20hash-anchored,\x20on-chain\x20royalty\x20split,\x20territory/term\x20Guard','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':!![]},'default_template':'licensing/royalty-stream-auction','key_risk':'Buyer\x20trusts\x20the\x20seller\x27s\x20royalty/usage\x20reporting\x20—\x20without\x20an\x20on-chain\x20meter\x20the\x20accounting\x20honesty\x20is\x20only\x20as\x20good\x20as\x20the\x20attestation\x20and\x20the\x20compensation\x20backstop','build_notes':['Anchor\x20the\x20license\x20terms\x20(territory,\x20term,\x20media,\x20caps,\x20exclusivity)\x20as\x20a\x20WIP\x20hash\x20—\x20the\x20granted\x20rights\x20must\x20be\x20provable\x20in\x20a\x20dispute,\x20not\x20prose','Royalty\x20/\x20purchase-proceeds\x20split\x20is\x20an\x20Allocation\x20Rate\x20plan\x20(bps\x20summing\x20to\x2010000\x20across\x20rights-holders\x20+\x20platform);\x20the\x20split\x20is\x20frozen\x20at\x20publish\x20and\x20auditable\x20by\x20every\x20recipient','Recurring\x20royalty:\x20the\x20Allocation\x20pool\x20is\x20re-fillable\x20(order_renew\x20top-ups)\x20and\x20a\x20guard-keyed\x20periodic\x20alloc\x20with\x20a\x20period-N\x20once-key\x20(identifier\x20255)\x20releases\x20each\x20period\x20—\x20payroll-style\x20repeat\x20runs\x20stay\x20possible\x20without\x20the\x20once-slot','Territory\x20is\x20enforced\x20by\x20a\x20Service\x20buy_guard\x20running\x20pattern.identity_check_allowlist\x20(allowlist\x20as\x20an\x20Address-vector\x20table\x20constant);\x20term\x20/\x20inspection\x20window\x20is\x20a\x20tpl_time_lock_progress\x20forward\x20guard\x20(Clock\x20>=\x20entry_time\x20+\x20duration)','Time-lock\x20duration\x20is\x20an\x20IMMUTABLE\x20table\x20constant\x20fixed\x20at\x20publish\x20—\x20an\x20expired\x20window\x20only\x20BLOCKS\x20the\x20forward,\x20it\x20never\x20auto-refunds;\x20automatic\x20advancement\x20on\x20timeout\x20needs\x20an\x20off-chain\x20keeper','🔴\x20AUCTION\x20GAP:\x20there\x20is\x20NO\x20on-chain\x20ascending-auction\x20/\x20bid-ledger\x20/\x20highest-bidder\x20primitive.\x20Model\x20a\x20competitive\x20sale\x20as:\x20winner\x20resolved\x20OFF-CHAIN\x20(prose),\x20then\x20the\x20winner\x20calls\x20buy\x20like\x20any\x20buyer\x20—\x20optionally\x20gate\x20buy\x20with\x20an\x20allowlist\x20guard\x20carrying\x20the\x20attested\x20winner\x20address.\x20Never\x20claim\x20the\x20chain\x20runs\x20the\x20auction','🔴\x20METERED-CAPS\x20GAP:\x20there\x20is\x20NO\x20usage\x20oracle/meter.\x20A\x20\x27limited\x20to\x20N\x20streams/sales\x27\x20cap\x20can\x20only\x20be\x20an\x20ATTESTED\x20Repository\x20counter\x20that\x20a\x20forward\x20guard\x20reads\x20via\x20the\x20repository.data\x20count-where\x20query\x20—\x20the\x20count\x20is\x20only\x20as\x20trustworthy\x20as\x20its\x20write-guard\x20(self/attested),\x20never\x20an\x20oracle\x20feed.\x20Disclose\x20this\x20honestly;\x20never\x20present\x20a\x20cap\x20as\x20chain-enforced\x20metering','R-M1-11:\x20no\x20\x27refunded\x27/\x27cancelled\x27\x20fund\x20terminals\x20—\x20refunds\x20route\x20via\x20the\x20Allocator\x20triggered\x20by\x20a\x20business\x20state\x20(e.g.\x20inspection_failed);\x20disputes\x20go\x20to\x20Arbitration']},{'name':'crowdfunding','phase':0x1,'industry':'All-or-nothing\x20threshold\x20campaigns\x20/\x20flexible\x20keep-it-all\x20fundraising','trust_pattern':'Per-contributor\x20escrow\x20(unpooled)\x20+\x20on-chain\x20aggregate\x20threshold\x20+\x20deadline\x20two-leg\x20release/refund','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':!![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'crowdfunding/all-or-nothing-threshold','key_risk':'The\x20funding\x20threshold\x20is\x20an\x20aggregate\x20read\x20over\x20a\x20shared\x20campaign\x20ledger\x20—\x20each\x20contribution\x20row\x20is\x20writer-bound\x20to\x20its\x20funder,\x20but\x20the\x20aggregate\x20is\x20a\x20read-only\x20sum\x20of\x20declared\x20rows,\x20not\x20an\x20independent\x20re-computation\x20of\x20every\x20escrow;\x20roster\x20completeness\x20is\x20keeper-attested.\x20Funders\x20also\x20trust\x20eventual\x20project\x20delivery,\x20backed\x20only\x20by\x20compensation_fund\x20+\x20arbitration','build_notes':['Per-contributor\x20escrow,\x20NEVER\x20pooled:\x20each\x20funder\x27s\x20Order\x20holds\x20its\x20OWN\x20Allocation\x20with\x20payment_info.for_object\x20bound\x20to\x20that\x20Order\x20—\x20because\x20the\x20money\x20is\x20never\x20balance::join-ed\x20into\x20one\x20pot,\x20attribution\x20survives\x20and\x20each\x20contribution\x20is\x20refundable\x20to\x20its\x20own\x20funder','Threshold\x20gate\x20=\x20an\x20on-chain\x20aggregate:\x20a\x20shared\x20campaign\x20Repository\x20holds\x20one\x20numeric\x20row\x20per\x20contribution\x20(keyed\x20by\x20the\x20contribution,\x20tagged\x20with\x20a\x20campaign\x20id);\x20the\x20settlement\x20Guard\x20reads\x20it\x20back\x20with\x20the\x20repository.data\x20sum-where\x20query\x20(1174\x20→\x20U256,\x20overflow-safe)\x20and\x20compares\x20against\x20the\x20threshold\x20constant','Write-side\x20binding\x20is\x20MANDATORY:\x20contribution\x20rows\x20are\x20written\x20under\x20pattern.repository_write_authorization\x20with\x20an\x20identity\x20leaf\x20(order.owner\x20==\x20Signer\x20/\x20order.agent\x20has\x20Signer)\x20so\x20a\x20funder\x20can\x20only\x20record\x20their\x20OWN\x20contribution\x20—\x20existence-is-not-trust\x20(R-X1-17),\x20an\x20unbound\x20write_guard\x20makes\x20the\x20aggregate\x20forgeable','Deadline\x20=\x20a\x20time-lock:\x20both\x20settlement\x20legs\x20require\x20Clock\x20>=\x20deadline\x20via\x20pattern.time_lock_progress\x20(query\x201280,\x20node-ENTRY\x20anchored);\x20BEFORE\x20the\x20deadline\x20a\x20funder\x20may\x20withdraw\x20(buyer-self-service\x20withdrawn\x20rail:\x20removes\x20their\x20writer-bound\x20row\x20+\x20full\x20refund\x20—\x20A12\x20fix,\x20was\x20wrongly\x20\x27no\x20early\x20withdrawal\x27);\x20AFTER\x20the\x20deadline\x20funds\x20are\x20committed\x20to\x20the\x20threshold\x20outcome','Two-leg\x20escrow\x20exit\x20(D-BUG-2\x20polarity):\x20release\x20leg\x20(→\x20project\x20Entity)\x20gated\x20logic_and[sum_where\x20>=\x20threshold,\x20clock\x20>=\x20deadline];\x20refund\x20leg\x20(→\x20for_object,\x20the\x20funder\x27s\x20own\x20Order)\x20gated\x20logic_and[sum_where\x20<\x20threshold,\x20clock\x20>=\x20deadline]\x20—\x20mutually\x20exclusive\x20on\x20the\x20aggregate\x20comparison,\x20so\x20exactly\x20one\x20is\x20satisfiable\x20once\x20the\x20deadline\x20passes','Keeper\x20batch\x20settlement:\x20on\x20a\x20missed\x20campaign\x20a\x20keeper\x20enumerates\x20every\x20contributor\x20via\x20repository.data\x20find-where\x20(1176\x20→\x20VectorAddress)\x20/\x20keys-where\x20(1177\x20→\x20VectorString)\x20and\x20advances\x20each\x20funder\x27s\x20refund\x20leg\x20in\x20one\x20PTB\x20(or\x20N\x20PTBs)\x20—\x20an\x20ops\x20efficiency,\x20not\x20a\x20chain\x20capability','🔴\x20AGGREGATE\x20TRUST\x20BOUNDARY:\x20the\x20sum\x20is\x20only\x20as\x20honest\x20as\x20the\x20writer-bound\x20rows;\x20it\x20is\x20NOT\x20independently\x20re-derivable\x20on-chain\x20without\x20reading\x20every\x20escrow\x20balance.\x20Disclose\x20this\x20honestly\x20(L-04);\x20never\x20present\x20the\x20threshold\x20as\x20a\x20chain-verified\x20total-custody\x20proof','🔴\x20L-01\x20NON-INVESTMENT:\x20crowdfunding\x20copy\x20must\x20never\x20promise\x20investment\x20returns,\x20yield,\x20or\x20token-price\x20appreciation\x20—\x20it\x20is\x20a\x20threshold\x20purchase/preorder/donation,\x20not\x20a\x20security','🔴\x20L-05\x20KYC/AML:\x20pooled\x20fundraising\x20is\x20high\x20regulatory\x20intensity\x20—\x20cross-border\x20funds\x20and\x20reward\x20tiers\x20may\x20trigger\x20securities/money-transmission\x20rules;\x20flag\x20for\x20compliance,\x20do\x20not\x20automate\x20around\x20them','R-M1-11:\x20no\x20\x27refunded\x27/\x27cancelled\x27\x20fund\x20terminals\x20—\x20the\x20refund\x20leg\x20routes\x20via\x20the\x20Allocator\x20triggered\x20by\x20the\x20missed-threshold\x20business\x20state\x20at\x20deadline;\x20disputes\x20go\x20to\x20Arbitration']},{'name':'delivery','phase':0x1,'industry':'Restaurant\x20food-delivery\x20/\x20on-demand\x20errand\x20(local\x20fulfillment)','trust_pattern':'Escrow-through-delivery\x20+\x20roster-authorized\x20per-order\x20rider\x20+\x20serial\x20claim\x20window','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'delivery/restaurant-marketplace','key_risk':'Per-order\x20dispatched\x20riders\x20have\x20no\x20on-chain\x20identity\x20—\x20the\x20named-operator\x20roster\x20is\x20their\x20ONLY\x20authorized\x20forward\x20and\x20the\x20roster\x20writer\x20is\x20the\x20de-facto\x20rider\x20admitter\x20(undisclosed,\x20a\x20silent\x20centralization);\x20handover\x20records\x20are\x20unwitnessable\x20by\x20the\x20buyer;\x20rider\x20pay\x20is\x20the\x20platform\x27s\x20off-chain\x20payroll\x20BY\x20DESIGN\x20(T-06\x20correction,\x20sso-tn-261027-7f3a91:\x20a\x20Signer\x20allocator\x20leg\x20CAN\x20pay\x20a\x20per-order\x20rider\x20directly\x20—\x20the\x20on-chain\x20Signer\x20leg\x20bypasses\x20the\x20for_object\x20lock\x20that\x20binds\x20only\x20GuardIdentifier\x20submissions)','build_notes':['Hours-scale\x20windows,\x20not\x20retail\x20DAYS:\x20auto-confirm\x201-2h,\x20claim\x20window\x2024h,\x20settlement\x2024h\x20—\x20food\x20is\x20perishable;\x20anchor\x20every\x20relative\x20gate\x20on\x20progress.history.time\x20(query\x201280,\x20find=last),\x20never\x201272\x20current_time','Dispatch\x20is\x20OFF-CHAIN\x20(K-4):\x20the\x20chain\x20has\x20no\x20dispatch/scheduling\x20primitive\x20—\x20the\x20rider\x27s\x20only\x20chain\x20footprint\x20is\x20the\x20per-order\x20namedOperator\x20roster\x20(permission\x20index\x20221);\x20the\x20roster\x27s\x20write\x20power\x20is\x20the\x20rider-admission\x20power\x20and\x20MUST\x20be\x20disclosed\x20(NAMED_OPERATOR_ROSTER_UNDISCLOSED)','Riders\x20are\x20paid\x20by\x20the\x20platform\x20in\x20this\x20shape\x20(T-06\x20correction,\x20sso-tn-261027-7f3a91):\x20a\x20GuardIdentifier\x20leg\x20pays\x20the\x20order\x27s\x20own\x20CoinWrapper\x20(the\x20on-chain\x20for_object\x20lock),\x20so\x20a\x20slot\x20leg\x20is\x20unfundable\x20for\x20a\x20person\x20—\x20but\x20a\x20Signer\x20leg\x20IS\x20an\x20on-chain\x20payee\x20shape\x20for\x20the\x20rostered\x20rider\x20(the\x20on-chain\x20Signer\x20leg,\x20proven\x20live);\x20the\x20shipped\x20default\x20routes\x20pay\x20through\x20the\x20commission\x20leg\x20as\x20off-chain\x20payroll\x20instead','Serial\x20claim\x20window\x20(TPL-09):\x20settlement\x20departs\x20a\x20mandatory\x20claim_window\x20node\x20so\x20no\x20release\x20can\x20fire\x20while\x20a\x20dispute\x20could\x20still\x20be\x20filed\x20(FACT-ALLOC-03);\x20assert\x20settle_hours\x20>=\x20claim_window_hours\x20at\x20generation','Fee-graded\x20cancellation:\x20a\x20pre-acceptance\x20cancel\x20refunds\x20in\x20full,\x20a\x20post-acceptance\x20kill\x20pays\x20a\x20prep\x20fee\x20—\x20distinct\x20closed_cancel\x20/\x20closed_kill\x20terminals\x20so\x20fee\x20and\x20full\x20refund\x20never\x20share\x20a\x20rail','Transit\x20loss\x20has\x20a\x20buyer\x20rail:\x20an\x20identity-only\x20ReportTransitLoss\x20declaration\x20into\x20the\x20dispute\x20waypoint\x20(no\x20window\x20mid-transit\x20—\x20the\x20anchor\x20row\x20does\x20not\x20exist\x20yet,\x20F-TPL-01\x20trap);\x20the\x20remedy\x20route\x20is\x20arbitration\x20into\x20the\x20full-refund\x20rail,\x20disclosed']},{'name':'group_buy','phase':0x1,'industry':'Community\x20group-buying\x20(leader\x20consolidation\x20+\x20neighborhood\x20pickup)','trust_pattern':'Shared\x20ABSOLUTE\x20batch\x20cutoff\x20+\x20batch\x20consolidation\x20+\x20threshold-gated\x20release\x20(challenger:\x20per-backer\x20unpooled\x20escrow)','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'group_buy/platform-supplied-pickup','key_risk':'The\x20buyer\x20pre-pays\x20against\x20a\x20batch\x20that\x20may\x20never\x20form,\x20and\x20the\x20challenger\x27s\x20supply\x20chain\x20is\x20OFF-CHAIN\x20(undiligence-able\x20before\x20purchase\x20—\x20the\x20trust\x20gap\x20and\x20the\x20main\x20arbitration\x20evidence\x20source);\x20the\x20batch\x20cutoff\x20must\x20be\x20ONE\x20shared\x20absolute\x20timestamp\x20(keeper-written\x20Repository\x20row),\x20never\x20a\x20per-order\x20entry+duration\x20lock;\x20multi-level\x20commission\x20schemes\x20are\x20NOT\x20expressible\x20(single-layer\x20commission\x20only)','build_notes':['The\x20batch\x20cutoff\x20is\x20a\x20SHARED\x20ABSOLUTE\x20timestamp\x20(pattern.time_lock_absolute):\x20one\x20clock\x20for\x20every\x20buyer\x20in\x20the\x20batch,\x20keeper-written\x20per\x20batch\x20into\x20a\x20Repository\x20row\x20—\x20chain\x20Clock\x20is\x20block-driven,\x20so\x20a\x20real-world\x20calendar\x20cutoff\x20(23:00\x20daily)\x20needs\x20pattern.time_source_repository_oracle;\x20a\x20per-order\x20entry+duration\x20lock\x20gives\x20every\x20buyer\x20a\x20DIFFERENT\x20cutoff\x20and\x20is\x20not\x20a\x20batch','Supply-chain\x20suborder\x20commitment\x20(leader):\x20the\x20supplier\x27s\x20sub-service\x20address\x20is\x20a\x20FIXED\x20promise\x20in\x20the\x20ConsolidateBatch\x20guard\x20table\x20(b_submission\x20false,\x20value_type\x20Address)\x20—\x20the\x20whole\x20procurement\x20graph\x20is\x20enumerable\x20and\x20diligence-able\x20BEFORE\x20any\x20buyer\x20pays\x20(the\x20structural\x20trust\x20advantage);\x20the\x20challenger\x20(leader-sourced)\x20has\x20NO\x20such\x20commitment\x20—\x20disclose\x20it\x20as\x20the\x20structural\x20trust\x20gap','Threshold\x20mode\x20reuses\x20the\x20crowdfunding\x20construction\x20wholesale:\x20unpooled\x20per-backer\x20escrow\x20(for_object\x20=\x20the\x20backer\x27s\x20own\x20order),\x20ORDER-keyed\x20contribution\x20rows,\x20the\x20escrow-bound\x20aggregate\x20(per-row\x20min(row,\x20order.amount,\x20live\x20allocation.balance\x20—\x20v139\x20live\x20cap))\x20and\x20the\x20live-escrow\x20+\x20claimed_by-false\x20legs\x20—\x20the\x20three\x20CROWDFUNDING_*\x20blockers\x20apply\x20automatically','Pickup-point\x20topology:\x20staffed\x20points\x20ride\x20the\x20named-operator\x20leader\x20rail\x20(ShelveAtPoint\x20+\x20HandOverByPoint);\x20AUTOMATED\x20lockers\x20drop\x20both\x20(a\x20locker\x20cannot\x20sign\x20—\x20the\x20buyer\x27s\x20own\x20Collect\x20signature\x20is\x20the\x20stronger\x20handover\x20proof);\x20the\x20unclaimed-goods\x20exit\x20window\x20is\x20mandatory\x20(goods\x20never\x20picked\x20up\x20must\x20refund\x20at\x20a\x20bounded\x20deadline)','Leader\x20commission\x20is\x20a\x20single-layer\x20rate\x20leg\x20paid\x20to\x20the\x20platform\x20Entity\x20with\x20OFF-CHAIN\x20pass-through\x20(a\x20per-order\x20third\x20party\x20has\x20no\x20on-chain\x20payee\x20shape\x20—\x20the\x20for_object\x20lock);\x20multi-level/regional\x20commission\x20is\x20NOT\x20expressible\x20—\x20disclose','Delay\x20compensation\x20pays\x20from\x20the\x20compensation_fund,\x20NEVER\x20from\x20the\x20buyer\x27s\x20escrow\x20(Order\x20binds\x20<=\x201\x20allocator);\x20the\x20fund\x20must\x20be\x20pre-locked\x20to\x203x\x20the\x20largest\x20order\x20(B2)\x20or\x20higher\x20tiers\x20are\x20silently\x20unsellable']},{'name':'general','phase':0x1,'industry':'Anything\x20not\x20covered\x20/\x20hybrid','trust_pattern':'User-defined\x20from\x20scratch','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':null,'key_risk':'No\x20safety\x20net\x20—\x20user\x20must\x20design\x20all\x20trust\x20mechanisms\x20manually','build_notes':['Escape\x20hatch:\x20any\x20user\x20can\x20switch\x20to\x20general\x20mode\x20at\x20any\x20time','Already-created\x20objects\x20under\x20a\x20previous\x20mode\x20remain\x20on-chain\x20(REUSE\x20pattern)','wowok-machine\x20/\x20wowok-guard\x20/\x20wowok-provider\x20become\x20primary\x20references']}];export function matchScenarioMode(a){const b=a['toLowerCase'](),c=inferScenarioTraits(a),e=SCENARIO_MODES['map'](h=>{let i=0x0,j=0x0;for(const k of Object['keys'](c)){j+=0x1;if(h['traits'][k]===c[k])i+=0x1;}if(h['name']!=='general'){const l=MODE_KEYWORDS[h['name']]??[];for(const m of l){if(b['includes'](m))i+=0.5;}}return{'mode':h,'score':i,'total':j};});let f=e[0x0];for(const h of e){if(h['score']>f['score'])f=h;}const g=f['total']>0x0?Math['min'](0x1,f['score']/f['total']):0x0;return{'mode':f['mode'],'confidence':g};}const MODE_KEYWORDS={'freelance':['freelance','design','develop','consult','write','consulting'],'rental':['rent','rental','lease','borrow','equipment','vehicle','property'],'education':['course','training','tutor','teach','education','class'],'travel':['tour','travel','trip','itinerary','vacation'],'subscription':['subscribe','subscription','membership','saas','newsletter','recurring'],'retail':['retail','shop','store','marketplace','sell\x20goods','ecommerce','e-commerce'],'licensing':['license','licensing','royalty','royalties','ip','intellectual\x20property','music\x20rights','sync','beat','franchise','rights'],'crowdfunding':['crowdfunding','crowdfund','fundraising','pledge','backer','kickstarter','campaign','all-or-nothing','threshold\x20goal','presale\x20campaign','raise\x20funds'],'delivery':['delivery','food\x20delivery','takeout','takeaway','errand','on-demand','rider','courier\x20delivery','waimai','last\x20mile'],'group_buy':['group\x20buy','group-buy','groupbuy','community\x20group','team\x20purchase','batch\x20cutoff','neighborhood\x20pickup','pickup\x20point','tuangou']};export function inferScenarioTraits(a){const b=a['toLowerCase']();return{'has_logistics':/ship|delivery|equipment|vehicle|physical|goods/['test'](b),'communication_heavy':/consult|discuss|back-and-forth|custom|bespoke|negotiate/['test'](b),'pure_digital':/digital|file|download|online|software|code|design|content/['test'](b),'long_cycle':/month|long-term|engagement|project|semester|period/['test'](b),'deposit_required':/deposit|escrow|prepay|tuition|reserve/['test'](b),'multi_tier_allocation':/tier|segment|multi-|agency|hotel|guide|driver/['test'](b)};}export const MODE_COMPOSITIONS=[{'modes':['freelance','subscription'],'use_case':'Retainer\x20consulting\x20(monthly\x20+\x20milestone)','conflict_resolution':'Allocator:\x20split\x20into\x20retainer\x20(subscription)\x20+\x20milestone\x20(freelance)'},{'modes':['rental','education'],'use_case':'Equipment\x20training\x20rental','conflict_resolution':'Machine:\x20extend\x20rental\x20nodes\x20with\x20attendance\x20gates'},{'modes':['travel','rental'],'use_case':'Tour\x20with\x20equipment','conflict_resolution':'Allocator:\x20segment\x20allocation\x20+\x20deposit\x20escrow\x20side-by-side'}];export function getScenarioMode(a){return SCENARIO_MODES['find'](b=>b['name']===a);}export function listScenarioModes(){return SCENARIO_MODES;}export function getShippedModes(){return SCENARIO_MODES['filter'](a=>a['phase']===0x1);}export function getModeCompositions(a){return MODE_COMPOSITIONS['filter'](b=>b['modes']['includes'](a));}export const SCENARIO_MODES_VERSION=0xa;
|
|
1
|
+
export const BUYER_ACTION_NODE_RE=/^(reviewed|return_requested|guest_cancelled|withdrawn|charging|cancelled|closed_cancel)$/i;export function unannotatedBuyerActionNodes(a){return a['filter'](b=>!b['operator']&&BUYER_ACTION_NODE_RE['test'](b['name']))['map'](b=>b['name']);}export const SCENARIO_MODES=[{'name':'freelance','phase':0x1,'industry':'Design\x20/\x20dev\x20/\x20consulting\x20/\x20writing','trust_pattern':'Milestone\x20allocation,\x20acceptance\x20gate','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'freelance/enterprise-talent-market','key_risk':'Customer\x20never\x20accepts\x20delivery\x20—\x20provider\x20cannot\x20get\x20paid','build_notes':['Use\x20Service\x20`setting_lock_duration`\x20to\x20lock\x20rules\x20for\x20the\x20engagement\x20duration','WIP\x20hash\x20on\x20every\x20milestone\x20deliverable\x20is\x20mandatory\x20—\x20protects\x20provider\x20in\x20disputes','Acceptance\x20gate\x20is\x20the\x20trust\x20pivot\x20—\x20both\x20parties\x20must\x20agree\x20on\x20criteria\x20per\x20milestone','Milestones\x20map\x20to\x20deliverable-Guarded\x20forwards;\x20each\x20accepted\x20milestone\x20releases\x20its\x20escrowed\x20slice\x20(allocation.distribute_milestone)','Scope\x20changes\x20are\x20recorded\x20as\x20WTS\x20change-requests\x20at\x20kickoff/throughout\x20—\x20never\x20silent','R-M1-11:\x20no\x20\x27refunded\x27/\x27disputed\x27/\x27arb\x27/\x27cancelled\x27\x20nodes\x20—\x20refunds\x20route\x20via\x20Allocator\x20(to\x20OrderHolder)\x20triggered\x20by\x20\x27closed_cancel\x27,\x20disputes\x20via\x20Arbitration','Payment\x20exception\x20compensation\x20for\x20delivery\x20delays\x20—\x20provider\x20Treasury\x20auto-compensates\x20customer\x20(§2.13)','Project-Catalog\x20orders\x20have\x20NO\x20milestones\x20(single\x20funded\x20order\x20+\x20steps\x20timeline);\x20milestones\x20here\x20model\x20fixed-price\x20CONTRACTS.\x20For\x20catalog-style\x20listings\x20(tiered\x20pricing\x20+\x20add-ons\x20+\x20buyer\x20requirements)\x20use\x20the\x20freelance/catalog-tiers\x20template\x20instead','Time-bound\x20catalog\x20rules\x20(24h\x20instant\x20cancel,\x2048h\x20requirements\x20timeout,\x2014-day\x20auto-accept)\x20need\x20a\x20time\x20Guard\x20PLUS\x20an\x20off-chain\x20keeper\x20per\x20window\x20-\x20Guards\x20take\x20an\x20immutable\x20duration\x20constant']},{'name':'rental','phase':0x1,'industry':'Equipment\x20/\x20vehicle\x20/\x20property\x20rental','trust_pattern':'Deposit\x20escrow,\x20return\x20inspection','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':!![],'multi_tier_allocation':![]},'default_template':'rental/institutional-longstay','key_risk':'Owner\x20claims\x20damage\x20without\x20pre-rental\x20WIP\x20—\x20customer\x20loses\x20deposit\x20unfairly','build_notes':['Pre-rental\x20WIP\x20is\x20non-negotiable\x20—\x20without\x20it,\x20damage\x20claims\x20fail','Deposit\x20must\x20be\x20escrowed,\x20not\x20direct-transferred\x20—\x20enables\x20fair\x20deduction','Inspection\x20gate\x20prevents\x20customer\x20from\x20denying\x20damage','Overdue\x20handling\x20uses\x20a\x20time-lock\x20Guard\x20(clock)\x20—\x20the\x20Guard\x20only\x20ALLOWS\x20the\x20overdue\x20transition;\x20automatic\x20advancement\x20needs\x20an\x20off-chain\x20keeper\x20(see\x20DESIGN-REVIEW\x20C-3)','Extensions\x20are\x20modeled\x20as\x20separate\x20sub-orders\x20(REUSE\x20pattern),\x20not\x20as\x20machine\x20cycles\x20—\x20an\x20in-order\x20loop\x20replays\x20its\x20forwards\x27\x20fund\x20rails\x20every\x20lap','R-M1-11:\x20no\x20\x27deposit_refunded\x27/\x27deposit_deducted\x27/\x27refunded\x27\x20nodes\x20—\x20deposit\x20refund/deduction\x20flows\x20through\x20Allocator\x20triggered\x20by\x20return_approved/damage_confirmed\x20business\x20states','Payment\x20exception\x20compensation\x20for\x20return\x20delays\x20—\x20Treasury\x20withdraws\x20scene-bound\x20Payment\x20(§2.13)','Repository\x20quote_guard\x20for\x20weather/usage\x20data\x20subscription\x20revenue\x20(§2.11)']},{'name':'education','phase':0x2,'industry':'Courses\x20/\x20training\x20/\x20tutoring','trust_pattern':'Periodic\x20release\x20per\x20session,\x20attendance\x20Guard','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':![]},'default_template':'education/live-class-cohort','key_risk':'Tutoring\x20institutions\x20run\x20away\x20with\x20prepaid\x20tuition','build_notes':['Use\x20Service\x20`setting_lock_duration`\x20to\x20lock\x20rules\x20for\x20the\x20entire\x20term\x20(regulatory\x20compliance,\x20>=90d)','Attendance\x20Guard\x20needs\x20WIP\x20hash\x20for\x20session\x20content\x20commitment;\x20attendance\x20evidence\x20lives\x20in\x20the\x20class\x20Repository','Per-session\x20release\x20requires\x20threshold-based\x20trigger\x20—\x20each\x20attended\x20session\x20releases\x201/N','session_1..session_3\x20are\x20representative\x20—\x20configure\x20the\x20real\x20session\x20count\x20(session_N)\x20at\x20build\x20time;\x20each\x20session\x20=\x20one\x20attendance-Guarded\x20forward','Pause/deferral\x20is\x20a\x20terminal\x20node\x20+\x20new\x20sub-order\x20(REUSE\x20pattern)\x20—\x20never\x20a\x20loop\x20back\x20into\x20the\x20session\x20chain\x20(a\x20loop\x20replays\x20the\x20session\x20forwards\x27\x20fund\x20rails\x20every\x20lap;\x20if\x20a\x20loop\x20is\x20unavoidable\x20it\x20must\x20keep\x20a\x20cycle-breaking\x20exit)','Supply\x20chain\x20sub-orders\x20for\x20course\x20module\x20progressive\x20unlock\x20—\x20each\x20module\x20=\x20sub-service\x20with\x20buy_guard\x20verifying\x20previous\x20module\x20completion\x20(§2.12)','Repository\x20for\x20learning\x20progress\x20collaboration\x20data\x20—\x20progress\x20as\x20key,\x20session\x20data\x20as\x20value\x20(§2.10)']},{'name':'travel','phase':0x2,'industry':'Custom\x20tours\x20/\x20multi-segment\x20trips','trust_pattern':'Multi-tier\x20allocation\x20per\x20segment','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'travel/destination-experience','key_risk':'Paid\x20in\x20full\x20then\x20service\x20shrinks\x20—\x20multi-tier\x20transparency\x20prevents\x20this','build_notes':['Multi-tier\x20Allocation\x20is\x20WoWok\x27s\x20unique\x20advantage\x20over\x20traditional\x20travel\x20platforms','segment_guard\x20needs\x20standardized\x20WIP\x20templates\x20per\x20segment\x20type\x20(hotel,\x20transport,\x20activity)','Multi-tier\x20waterfall\x20needs\x20guard\x20chaining\x20validation','Weather/force-majeure\x20branches\x20enter\x20reschedule\x20(terminal)\x20or\x20partial-refund\x20interrupted\x20terminal\x20—\x20never\x20loop\x20back\x20into\x20the\x20segment\x20chain\x20(a\x20loop\x20replays\x20the\x20segment\x20forwards\x27\x20fund\x20rails\x20every\x20lap;\x20if\x20a\x20loop\x20is\x20unavoidable\x20it\x20must\x20keep\x20a\x20cycle-breaking\x20exit)','Supplier\x20sub-orders\x20each\x20carry\x20their\x20own\x20machine\x20—\x20hotel/guide/driver\x20fulfill\x20independently\x20(§2.12)','Supply\x20chain\x20sub-orders\x20—\x20each\x20tour\x20segment\x20=\x20sub-service\x20with\x20buy_guard\x20verifying\x20main\x20tour\x20order\x20(§2.12)','Payment\x20exception\x20compensation\x20for\x20flight/segment\x20delays\x20(§2.13)','Repository\x20quote_guard\x20for\x20weather/travel\x20data\x20subscription\x20revenue\x20(§2.11)']},{'name':'subscription','phase':0x3,'industry':'SaaS\x20/\x20content\x20membership\x20/\x20periodic\x20service','trust_pattern':'Periodic\x20charge,\x20cancel\x20Guard','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'subscription/creator-membership','key_risk':'Auto-renew\x20trap\x20and\x20platform-takes-30%\x20—\x20WoWok\x20native\x20solution','build_notes':['Pure\x20digital\x20—\x20native\x20WoWok\x20soil','charge_guard\x20needs\x20periodic\x20trigger\x20(off-chain\x20scheduler\x20+\x20on-chain\x20Guard)','Renewal\x20is\x20an\x20explicit\x20buyer-side\x20forward\x20(or\x20a\x20Guard-gated\x20auto-renew\x20WITH\x20WTS\x20notice)\x20—\x20never\x20silent','Cancellation\x20is\x20frictionless\x20and\x20next-period\x20effective;\x20pro-rata\x20refund\x20for\x20unearned\x20periods','Forbid\x20dead-end\x20nodes\x20(prevent\x20lock-in);\x20every\x20state\x20must\x20have\x20a\x20forward\x20or\x20be\x20an\x20intended\x20terminal','Targets\x20indie\x20creators,\x20niche\x20SaaS,\x20paid\x20newsletters','Repository\x20quote_guard\x20for\x20creator\x20data\x20subscription\x20revenue\x20—\x20creators\x20publish\x20paid\x20data,\x20users\x20pay\x20to\x20access\x20(§2.11)']},{'name':'retail','phase':0x1,'industry':'Goods\x20retail\x20/\x20marketplace\x20/\x20e-commerce','trust_pattern':'Escrow\x20+\x20confirm-on-receipt\x20release','traits':{'has_logistics':!![],'communication_heavy':![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'retail/scale-marketplace','key_risk':'Products\x20don\x27t\x20match\x20description\x20—\x20no\x20refund\x20path\x20for\x20returns','build_notes':['Logistics\x20WIP\x20(tracking\x20number)\x20is\x20essential\x20—\x20shipping\x20evidence\x20protects\x20both\x20parties\x20in\x20return\x20disputes','Confirm\x20gate\x20prevents\x20merchant\x20from\x20self-confirming\x20receipt','Refund\x20path\x20must\x20support\x20return-and-exchange\x20flow;\x20refund_window\x20>=\x207d','Return\x20request\x20is\x20time-lock\x20gated\x20—\x20after\x20the\x20window\x20closes,\x20returns\x20need\x20merchant\x20permission\x20or\x20arbitration','Compensation\x20fund\x20covers\x20return/exchange\x20disputes','R-M1-11:\x20no\x20\x27refunded\x27\x20node\x20—\x20refunds\x20route\x20via\x20Allocator\x20triggered\x20by\x20returned/cancelled\x20business\x20states;\x20disputes\x20go\x20to\x20Arbitration']},{'name':'licensing','phase':0x1,'industry':'IP\x20/\x20royalty\x20licensing\x20/\x20metered\x20asset\x20licenses','trust_pattern':'Terms\x20hash-anchored,\x20on-chain\x20royalty\x20split,\x20territory/term\x20Guard','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':!![],'long_cycle':!![],'deposit_required':![],'multi_tier_allocation':!![]},'default_template':'licensing/royalty-stream-auction','key_risk':'Buyer\x20trusts\x20the\x20seller\x27s\x20royalty/usage\x20reporting\x20—\x20without\x20an\x20on-chain\x20meter\x20the\x20accounting\x20honesty\x20is\x20only\x20as\x20good\x20as\x20the\x20attestation\x20and\x20the\x20compensation\x20backstop','build_notes':['Anchor\x20the\x20license\x20terms\x20(territory,\x20term,\x20media,\x20caps,\x20exclusivity)\x20as\x20a\x20WIP\x20hash\x20—\x20the\x20granted\x20rights\x20must\x20be\x20provable\x20in\x20a\x20dispute,\x20not\x20prose','Royalty\x20/\x20purchase-proceeds\x20split\x20is\x20an\x20Allocation\x20Rate\x20plan\x20(bps\x20summing\x20to\x2010000\x20across\x20rights-holders\x20+\x20platform);\x20the\x20split\x20is\x20frozen\x20at\x20publish\x20and\x20auditable\x20by\x20every\x20recipient','Recurring\x20royalty:\x20the\x20Allocation\x20pool\x20is\x20re-fillable\x20(order_renew\x20top-ups)\x20and\x20a\x20guard-keyed\x20periodic\x20alloc\x20with\x20a\x20period-N\x20once-key\x20(identifier\x20255)\x20releases\x20each\x20period\x20—\x20payroll-style\x20repeat\x20runs\x20stay\x20possible\x20without\x20the\x20once-slot','Territory\x20is\x20enforced\x20by\x20a\x20Service\x20buy_guard\x20running\x20pattern.identity_check_allowlist\x20(allowlist\x20as\x20an\x20Address-vector\x20table\x20constant);\x20term\x20/\x20inspection\x20window\x20is\x20a\x20tpl_time_lock_progress\x20forward\x20guard\x20(Clock\x20>=\x20entry_time\x20+\x20duration)','Time-lock\x20duration\x20is\x20an\x20IMMUTABLE\x20table\x20constant\x20fixed\x20at\x20publish\x20—\x20an\x20expired\x20window\x20only\x20BLOCKS\x20the\x20forward,\x20it\x20never\x20auto-refunds;\x20automatic\x20advancement\x20on\x20timeout\x20needs\x20an\x20off-chain\x20keeper','🔴\x20AUCTION\x20GAP:\x20there\x20is\x20NO\x20on-chain\x20ascending-auction\x20/\x20bid-ledger\x20/\x20highest-bidder\x20primitive.\x20Model\x20a\x20competitive\x20sale\x20as:\x20winner\x20resolved\x20OFF-CHAIN\x20(prose),\x20then\x20the\x20winner\x20calls\x20buy\x20like\x20any\x20buyer\x20—\x20optionally\x20gate\x20buy\x20with\x20an\x20allowlist\x20guard\x20carrying\x20the\x20attested\x20winner\x20address.\x20Never\x20claim\x20the\x20chain\x20runs\x20the\x20auction','🔴\x20METERED-CAPS\x20GAP:\x20there\x20is\x20NO\x20usage\x20oracle/meter.\x20A\x20\x27limited\x20to\x20N\x20streams/sales\x27\x20cap\x20can\x20only\x20be\x20an\x20ATTESTED\x20Repository\x20counter\x20that\x20a\x20forward\x20guard\x20reads\x20via\x20the\x20repository.data\x20count-where\x20query\x20—\x20the\x20count\x20is\x20only\x20as\x20trustworthy\x20as\x20its\x20write-guard\x20(self/attested),\x20never\x20an\x20oracle\x20feed.\x20Disclose\x20this\x20honestly;\x20never\x20present\x20a\x20cap\x20as\x20chain-enforced\x20metering','R-M1-11:\x20no\x20\x27refunded\x27/\x27cancelled\x27\x20fund\x20terminals\x20—\x20refunds\x20route\x20via\x20the\x20Allocator\x20triggered\x20by\x20a\x20business\x20state\x20(e.g.\x20inspection_failed);\x20disputes\x20go\x20to\x20Arbitration']},{'name':'crowdfunding','phase':0x1,'industry':'All-or-nothing\x20threshold\x20campaigns\x20/\x20flexible\x20keep-it-all\x20fundraising','trust_pattern':'Per-contributor\x20escrow\x20(unpooled)\x20+\x20on-chain\x20aggregate\x20threshold\x20+\x20deadline\x20two-leg\x20release/refund','traits':{'has_logistics':![],'communication_heavy':!![],'pure_digital':!![],'long_cycle':!![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'crowdfunding/all-or-nothing-threshold','key_risk':'The\x20funding\x20threshold\x20is\x20an\x20aggregate\x20read\x20over\x20a\x20shared\x20campaign\x20ledger\x20—\x20each\x20contribution\x20row\x20is\x20writer-bound\x20to\x20its\x20funder,\x20but\x20the\x20aggregate\x20is\x20a\x20read-only\x20sum\x20of\x20declared\x20rows,\x20not\x20an\x20independent\x20re-computation\x20of\x20every\x20escrow;\x20roster\x20completeness\x20is\x20keeper-attested.\x20Funders\x20also\x20trust\x20eventual\x20project\x20delivery,\x20backed\x20only\x20by\x20compensation_fund\x20+\x20arbitration','build_notes':['Per-contributor\x20escrow,\x20NEVER\x20pooled:\x20each\x20funder\x27s\x20Order\x20holds\x20its\x20OWN\x20Allocation\x20with\x20payment_info.for_object\x20bound\x20to\x20that\x20Order\x20—\x20because\x20the\x20money\x20is\x20never\x20balance::join-ed\x20into\x20one\x20pot,\x20attribution\x20survives\x20and\x20each\x20contribution\x20is\x20refundable\x20to\x20its\x20own\x20funder','Threshold\x20gate\x20=\x20an\x20on-chain\x20aggregate:\x20a\x20shared\x20campaign\x20Repository\x20holds\x20one\x20numeric\x20row\x20per\x20contribution\x20(keyed\x20by\x20the\x20contribution,\x20tagged\x20with\x20a\x20campaign\x20id);\x20the\x20settlement\x20Guard\x20reads\x20it\x20back\x20with\x20the\x20repository.data\x20sum-where\x20query\x20(1174\x20→\x20U256,\x20overflow-safe)\x20and\x20compares\x20against\x20the\x20threshold\x20constant','Write-side\x20binding\x20is\x20MANDATORY:\x20contribution\x20rows\x20are\x20written\x20under\x20pattern.repository_write_authorization\x20with\x20an\x20identity\x20leaf\x20(order.owner\x20==\x20Signer\x20/\x20order.agent\x20has\x20Signer)\x20so\x20a\x20funder\x20can\x20only\x20record\x20their\x20OWN\x20contribution\x20—\x20existence-is-not-trust\x20(R-X1-17),\x20an\x20unbound\x20write_guard\x20makes\x20the\x20aggregate\x20forgeable','Deadline\x20=\x20a\x20time-lock:\x20both\x20settlement\x20legs\x20require\x20Clock\x20>=\x20deadline\x20via\x20pattern.time_lock_progress\x20(query\x201280,\x20node-ENTRY\x20anchored);\x20BEFORE\x20the\x20deadline\x20a\x20funder\x20may\x20withdraw\x20(buyer-self-service\x20withdrawn\x20rail:\x20removes\x20their\x20writer-bound\x20row\x20+\x20full\x20refund\x20—\x20A12\x20fix,\x20was\x20wrongly\x20\x27no\x20early\x20withdrawal\x27);\x20AFTER\x20the\x20deadline\x20funds\x20are\x20committed\x20to\x20the\x20threshold\x20outcome','Two-leg\x20escrow\x20exit\x20(D-BUG-2\x20polarity):\x20release\x20leg\x20(→\x20project\x20Entity)\x20gated\x20logic_and[sum_where\x20>=\x20threshold,\x20clock\x20>=\x20deadline];\x20refund\x20leg\x20(→\x20for_object,\x20the\x20funder\x27s\x20own\x20Order)\x20gated\x20logic_and[sum_where\x20<\x20threshold,\x20clock\x20>=\x20deadline]\x20—\x20mutually\x20exclusive\x20on\x20the\x20aggregate\x20comparison,\x20so\x20exactly\x20one\x20is\x20satisfiable\x20once\x20the\x20deadline\x20passes','Keeper\x20batch\x20settlement:\x20on\x20a\x20missed\x20campaign\x20a\x20keeper\x20enumerates\x20every\x20contributor\x20via\x20repository.data\x20find-where\x20(1176\x20→\x20VectorAddress)\x20/\x20keys-where\x20(1177\x20→\x20VectorString)\x20and\x20advances\x20each\x20funder\x27s\x20refund\x20leg\x20in\x20one\x20PTB\x20(or\x20N\x20PTBs)\x20—\x20an\x20ops\x20efficiency,\x20not\x20a\x20chain\x20capability','🔴\x20AGGREGATE\x20TRUST\x20BOUNDARY:\x20the\x20sum\x20is\x20only\x20as\x20honest\x20as\x20the\x20writer-bound\x20rows;\x20it\x20is\x20NOT\x20independently\x20re-derivable\x20on-chain\x20without\x20reading\x20every\x20escrow\x20balance.\x20Disclose\x20this\x20honestly\x20(L-04);\x20never\x20present\x20the\x20threshold\x20as\x20a\x20chain-verified\x20total-custody\x20proof','🔴\x20L-01\x20NON-INVESTMENT:\x20crowdfunding\x20copy\x20must\x20never\x20promise\x20investment\x20returns,\x20yield,\x20or\x20token-price\x20appreciation\x20—\x20it\x20is\x20a\x20threshold\x20purchase/preorder/donation,\x20not\x20a\x20security','🔴\x20L-05\x20KYC/AML:\x20pooled\x20fundraising\x20is\x20high\x20regulatory\x20intensity\x20—\x20cross-border\x20funds\x20and\x20reward\x20tiers\x20may\x20trigger\x20securities/money-transmission\x20rules;\x20flag\x20for\x20compliance,\x20do\x20not\x20automate\x20around\x20them','R-M1-11:\x20no\x20\x27refunded\x27/\x27cancelled\x27\x20fund\x20terminals\x20—\x20the\x20refund\x20leg\x20routes\x20via\x20the\x20Allocator\x20triggered\x20by\x20the\x20missed-threshold\x20business\x20state\x20at\x20deadline;\x20disputes\x20go\x20to\x20Arbitration']},{'name':'delivery','phase':0x1,'industry':'Restaurant\x20food-delivery\x20/\x20on-demand\x20errand\x20(local\x20fulfillment)','trust_pattern':'Escrow-through-delivery\x20+\x20roster-authorized\x20per-order\x20rider\x20+\x20serial\x20claim\x20window','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':'delivery/restaurant-marketplace','key_risk':'Per-order\x20dispatched\x20riders\x20have\x20no\x20on-chain\x20identity\x20—\x20the\x20named-operator\x20roster\x20is\x20their\x20ONLY\x20authorized\x20forward\x20and\x20the\x20roster\x20writer\x20is\x20the\x20de-facto\x20rider\x20admitter\x20(undisclosed,\x20a\x20silent\x20centralization);\x20handover\x20records\x20are\x20unwitnessable\x20by\x20the\x20buyer;\x20rider\x20pay\x20is\x20the\x20platform\x27s\x20off-chain\x20payroll\x20BY\x20DESIGN\x20(T-06\x20correction,\x20sso-tn-261027-7f3a91:\x20a\x20Signer\x20allocator\x20leg\x20CAN\x20pay\x20a\x20per-order\x20rider\x20directly\x20—\x20the\x20on-chain\x20Signer\x20leg\x20bypasses\x20the\x20for_object\x20lock\x20that\x20binds\x20only\x20GuardIdentifier\x20submissions)','build_notes':['Hours-scale\x20windows,\x20not\x20retail\x20DAYS:\x20auto-confirm\x201-2h,\x20claim\x20window\x2024h,\x20settlement\x2024h\x20—\x20food\x20is\x20perishable;\x20anchor\x20every\x20relative\x20gate\x20on\x20progress.history.time\x20(query\x201280,\x20find=last),\x20never\x201272\x20current_time','Dispatch\x20is\x20OFF-CHAIN\x20(K-4):\x20the\x20chain\x20has\x20no\x20dispatch/scheduling\x20primitive\x20—\x20the\x20rider\x27s\x20only\x20chain\x20footprint\x20is\x20the\x20per-order\x20namedOperator\x20roster\x20(permission\x20index\x20221);\x20the\x20roster\x27s\x20write\x20power\x20is\x20the\x20rider-admission\x20power\x20and\x20MUST\x20be\x20disclosed\x20(NAMED_OPERATOR_ROSTER_UNDISCLOSED)','Riders\x20are\x20paid\x20by\x20the\x20platform\x20in\x20this\x20shape\x20(T-06\x20correction,\x20sso-tn-261027-7f3a91):\x20a\x20GuardIdentifier\x20leg\x20pays\x20the\x20order\x27s\x20own\x20CoinWrapper\x20(the\x20on-chain\x20for_object\x20lock),\x20so\x20a\x20slot\x20leg\x20is\x20unfundable\x20for\x20a\x20person\x20—\x20but\x20a\x20Signer\x20leg\x20IS\x20an\x20on-chain\x20payee\x20shape\x20for\x20the\x20rostered\x20rider\x20(the\x20on-chain\x20Signer\x20leg,\x20proven\x20live);\x20the\x20shipped\x20default\x20routes\x20pay\x20through\x20the\x20commission\x20leg\x20as\x20off-chain\x20payroll\x20instead','Serial\x20claim\x20window\x20(TPL-09):\x20settlement\x20departs\x20a\x20mandatory\x20claim_window\x20node\x20so\x20no\x20release\x20can\x20fire\x20while\x20a\x20dispute\x20could\x20still\x20be\x20filed\x20(FACT-ALLOC-03);\x20assert\x20settle_hours\x20>=\x20claim_window_hours\x20at\x20generation','Fee-graded\x20cancellation:\x20a\x20pre-acceptance\x20cancel\x20refunds\x20in\x20full,\x20a\x20post-acceptance\x20kill\x20pays\x20a\x20prep\x20fee\x20—\x20distinct\x20closed_cancel\x20/\x20closed_kill\x20terminals\x20so\x20fee\x20and\x20full\x20refund\x20never\x20share\x20a\x20rail','Transit\x20loss\x20has\x20a\x20buyer\x20rail:\x20an\x20identity-only\x20ReportTransitLoss\x20declaration\x20into\x20the\x20dispute\x20waypoint\x20(no\x20window\x20mid-transit\x20—\x20the\x20anchor\x20row\x20does\x20not\x20exist\x20yet,\x20F-TPL-01\x20trap);\x20the\x20remedy\x20route\x20is\x20arbitration\x20into\x20the\x20full-refund\x20rail,\x20disclosed']},{'name':'group_buy','phase':0x1,'industry':'Community\x20group-buying\x20(leader\x20consolidation\x20+\x20neighborhood\x20pickup)','trust_pattern':'Shared\x20ABSOLUTE\x20batch\x20cutoff\x20+\x20batch\x20consolidation\x20+\x20threshold-gated\x20release\x20(challenger:\x20per-backer\x20unpooled\x20escrow)','traits':{'has_logistics':!![],'communication_heavy':!![],'pure_digital':![],'long_cycle':![],'deposit_required':!![],'multi_tier_allocation':!![]},'default_template':'group_buy/platform-supplied-pickup','key_risk':'The\x20buyer\x20pre-pays\x20against\x20a\x20batch\x20that\x20may\x20never\x20form,\x20and\x20the\x20challenger\x27s\x20supply\x20chain\x20is\x20OFF-CHAIN\x20(undiligence-able\x20before\x20purchase\x20—\x20the\x20trust\x20gap\x20and\x20the\x20main\x20arbitration\x20evidence\x20source);\x20the\x20batch\x20cutoff\x20must\x20be\x20ONE\x20shared\x20absolute\x20timestamp\x20(keeper-written\x20Repository\x20row),\x20never\x20a\x20per-order\x20entry+duration\x20lock;\x20multi-level\x20commission\x20schemes\x20are\x20NOT\x20expressible\x20(single-layer\x20commission\x20only)','build_notes':['The\x20batch\x20cutoff\x20is\x20a\x20SHARED\x20ABSOLUTE\x20timestamp\x20(pattern.time_lock_absolute):\x20one\x20clock\x20for\x20every\x20buyer\x20in\x20the\x20batch,\x20keeper-written\x20per\x20batch\x20into\x20a\x20Repository\x20row\x20—\x20chain\x20Clock\x20is\x20block-driven,\x20so\x20a\x20real-world\x20calendar\x20cutoff\x20(23:00\x20daily)\x20needs\x20pattern.time_source_repository_oracle;\x20a\x20per-order\x20entry+duration\x20lock\x20gives\x20every\x20buyer\x20a\x20DIFFERENT\x20cutoff\x20and\x20is\x20not\x20a\x20batch','Supply-chain\x20suborder\x20commitment\x20(leader):\x20the\x20supplier\x27s\x20sub-service\x20address\x20is\x20a\x20FIXED\x20promise\x20in\x20the\x20ConsolidateBatch\x20guard\x20table\x20(b_submission\x20false,\x20value_type\x20Address)\x20—\x20the\x20whole\x20procurement\x20graph\x20is\x20enumerable\x20and\x20diligence-able\x20BEFORE\x20any\x20buyer\x20pays\x20(the\x20structural\x20trust\x20advantage);\x20the\x20challenger\x20(leader-sourced)\x20has\x20NO\x20such\x20commitment\x20—\x20disclose\x20it\x20as\x20the\x20structural\x20trust\x20gap','Threshold\x20mode\x20reuses\x20the\x20crowdfunding\x20construction\x20wholesale:\x20unpooled\x20per-backer\x20escrow\x20(for_object\x20=\x20the\x20backer\x27s\x20own\x20order),\x20ORDER-keyed\x20contribution\x20rows,\x20the\x20escrow-bound\x20aggregate\x20(per-row\x20min(row,\x20order.amount,\x20live\x20allocation.balance\x20—\x20v140\x20live\x20cap))\x20and\x20the\x20live-escrow\x20+\x20claimed_by-false\x20legs\x20—\x20the\x20three\x20CROWDFUNDING_*\x20blockers\x20apply\x20automatically','Pickup-point\x20topology:\x20staffed\x20points\x20ride\x20the\x20named-operator\x20leader\x20rail\x20(ShelveAtPoint\x20+\x20HandOverByPoint);\x20AUTOMATED\x20lockers\x20drop\x20both\x20(a\x20locker\x20cannot\x20sign\x20—\x20the\x20buyer\x27s\x20own\x20Collect\x20signature\x20is\x20the\x20stronger\x20handover\x20proof);\x20the\x20unclaimed-goods\x20exit\x20window\x20is\x20mandatory\x20(goods\x20never\x20picked\x20up\x20must\x20refund\x20at\x20a\x20bounded\x20deadline)','Leader\x20commission\x20is\x20a\x20single-layer\x20rate\x20leg\x20paid\x20to\x20the\x20platform\x20Entity\x20with\x20OFF-CHAIN\x20pass-through\x20(a\x20per-order\x20third\x20party\x20has\x20no\x20on-chain\x20payee\x20shape\x20—\x20the\x20for_object\x20lock);\x20multi-level/regional\x20commission\x20is\x20NOT\x20expressible\x20—\x20disclose','Delay\x20compensation\x20pays\x20from\x20the\x20compensation_fund,\x20NEVER\x20from\x20the\x20buyer\x27s\x20escrow\x20(Order\x20binds\x20<=\x201\x20allocator);\x20the\x20fund\x20must\x20be\x20pre-locked\x20to\x203x\x20the\x20largest\x20order\x20(B2)\x20or\x20higher\x20tiers\x20are\x20silently\x20unsellable']},{'name':'general','phase':0x1,'industry':'Anything\x20not\x20covered\x20/\x20hybrid','trust_pattern':'User-defined\x20from\x20scratch','traits':{'has_logistics':![],'communication_heavy':![],'pure_digital':![],'long_cycle':![],'deposit_required':![],'multi_tier_allocation':![]},'default_template':null,'key_risk':'No\x20safety\x20net\x20—\x20user\x20must\x20design\x20all\x20trust\x20mechanisms\x20manually','build_notes':['Escape\x20hatch:\x20any\x20user\x20can\x20switch\x20to\x20general\x20mode\x20at\x20any\x20time','Already-created\x20objects\x20under\x20a\x20previous\x20mode\x20remain\x20on-chain\x20(REUSE\x20pattern)','wowok-machine\x20/\x20wowok-guard\x20/\x20wowok-provider\x20become\x20primary\x20references']}];export function matchScenarioMode(a){const b=a['toLowerCase'](),c=inferScenarioTraits(a),e=SCENARIO_MODES['map'](h=>{let i=0x0,j=0x0;for(const k of Object['keys'](c)){j+=0x1;if(h['traits'][k]===c[k])i+=0x1;}if(h['name']!=='general'){const l=MODE_KEYWORDS[h['name']]??[];for(const m of l){if(b['includes'](m))i+=0.5;}}return{'mode':h,'score':i,'total':j};});let f=e[0x0];for(const h of e){if(h['score']>f['score'])f=h;}const g=f['total']>0x0?Math['min'](0x1,f['score']/f['total']):0x0;return{'mode':f['mode'],'confidence':g};}const MODE_KEYWORDS={'freelance':['freelance','design','develop','consult','write','consulting'],'rental':['rent','rental','lease','borrow','equipment','vehicle','property'],'education':['course','training','tutor','teach','education','class'],'travel':['tour','travel','trip','itinerary','vacation'],'subscription':['subscribe','subscription','membership','saas','newsletter','recurring'],'retail':['retail','shop','store','marketplace','sell\x20goods','ecommerce','e-commerce'],'licensing':['license','licensing','royalty','royalties','ip','intellectual\x20property','music\x20rights','sync','beat','franchise','rights'],'crowdfunding':['crowdfunding','crowdfund','fundraising','pledge','backer','kickstarter','campaign','all-or-nothing','threshold\x20goal','presale\x20campaign','raise\x20funds'],'delivery':['delivery','food\x20delivery','takeout','takeaway','errand','on-demand','rider','courier\x20delivery','waimai','last\x20mile'],'group_buy':['group\x20buy','group-buy','groupbuy','community\x20group','team\x20purchase','batch\x20cutoff','neighborhood\x20pickup','pickup\x20point','tuangou']};export function inferScenarioTraits(a){const b=a['toLowerCase']();return{'has_logistics':/ship|delivery|equipment|vehicle|physical|goods/['test'](b),'communication_heavy':/consult|discuss|back-and-forth|custom|bespoke|negotiate/['test'](b),'pure_digital':/digital|file|download|online|software|code|design|content/['test'](b),'long_cycle':/month|long-term|engagement|project|semester|period/['test'](b),'deposit_required':/deposit|escrow|prepay|tuition|reserve/['test'](b),'multi_tier_allocation':/tier|segment|multi-|agency|hotel|guide|driver/['test'](b)};}export const MODE_COMPOSITIONS=[{'modes':['freelance','subscription'],'use_case':'Retainer\x20consulting\x20(monthly\x20+\x20milestone)','conflict_resolution':'Allocator:\x20split\x20into\x20retainer\x20(subscription)\x20+\x20milestone\x20(freelance)'},{'modes':['rental','education'],'use_case':'Equipment\x20training\x20rental','conflict_resolution':'Machine:\x20extend\x20rental\x20nodes\x20with\x20attendance\x20gates'},{'modes':['travel','rental'],'use_case':'Tour\x20with\x20equipment','conflict_resolution':'Allocator:\x20segment\x20allocation\x20+\x20deposit\x20escrow\x20side-by-side'}];export function getScenarioMode(a){return SCENARIO_MODES['find'](b=>b['name']===a);}export function listScenarioModes(){return SCENARIO_MODES;}export function getShippedModes(){return SCENARIO_MODES['filter'](a=>a['phase']===0x1);}export function getModeCompositions(a){return MODE_COMPOSITIONS['filter'](b=>b['modes']['includes'](a));}export const SCENARIO_MODES_VERSION=0xa;
|