@wowok/agent-mcp 3.2.9 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/chain-semantics/field-capability.js +1 -1
- package/dist/chain-semantics/freeze-map.js +1 -1
- package/dist/chain-semantics/fund-flow.js +1 -1
- package/dist/chain-semantics/object-graph.js +1 -1
- package/dist/composition/audit.js +1 -1
- package/dist/composition/compile.d.ts +10 -1
- package/dist/composition/compile.js +1 -1
- package/dist/composition/inflight.js +1 -1
- package/dist/extensions/capability-manifest.js +1 -1
- package/dist/extensions/industry-audit.spec.js +1 -1
- package/dist/extensions/industry-pack.js +1 -1
- package/dist/graph/onchain/facts.spec.js +1 -1
- package/dist/graph/onchain/field-manifest.js +1 -1
- package/dist/harness/recover.js +1 -1
- package/dist/intent/types.d.ts +1 -1
- package/dist/intent/types.js +1 -1
- package/dist/keeper/KeeperScan.d.ts +2 -1
- package/dist/keeper/KeeperScan.js +1 -1
- package/dist/keeper/keeper.spec.js +1 -1
- package/dist/keeper/types.d.ts +3 -0
- package/dist/keeper/types.js +1 -1
- package/dist/knowledge/allocator-rail-verifier.d.ts +34 -0
- package/dist/knowledge/allocator-rail-verifier.js +1 -0
- package/dist/knowledge/arbitration-ledger.js +1 -1
- package/dist/knowledge/arbitration-templates.js +1 -1
- package/dist/knowledge/arbitration-venue-order.js +1 -1
- package/dist/knowledge/audit-rules.d.ts +19 -1
- package/dist/knowledge/audit-rules.js +1 -1
- package/dist/knowledge/baselines/rules/alloc_audit.json +1 -1
- package/dist/knowledge/baselines/rules/arb.json +1 -1
- package/dist/knowledge/baselines/rules/guard.json +15 -5
- package/dist/knowledge/baselines/rules/machine.json +9 -6
- package/dist/knowledge/baselines/rules/plan.json +12 -12
- package/dist/knowledge/baselines/semantic-facts.js +1 -1
- package/dist/knowledge/builtin-templates.d.ts +1 -1
- package/dist/knowledge/builtin-templates.js +1 -1
- package/dist/knowledge/contract-invariants.js +1 -1
- package/dist/knowledge/event-semantics.js +1 -1
- package/dist/knowledge/fund-layer.js +1 -1
- package/dist/knowledge/getting-started.js +1 -1
- package/dist/knowledge/guard-anchor-reach.d.ts +1 -1
- package/dist/knowledge/guard-anchor-reach.js +1 -1
- package/dist/knowledge/guard-bindings.js +1 -1
- package/dist/knowledge/guard-design-patterns.d.ts +1 -1
- package/dist/knowledge/guard-design-patterns.js +1 -1
- package/dist/knowledge/guard-field-cognition.js +1 -1
- package/dist/knowledge/guard-render.js +1 -1
- package/dist/knowledge/guard-risk.js +1 -1
- package/dist/knowledge/guard-templates.d.ts +1 -1
- package/dist/knowledge/guard-templates.js +1 -1
- package/dist/knowledge/index.js +1 -1
- package/dist/knowledge/industry-registry.js +1 -1
- package/dist/knowledge/industry-strategy.js +1 -1
- package/dist/knowledge/jsonrpc-enum.js +1 -1
- package/dist/knowledge/machine-ledger.js +1 -1
- package/dist/knowledge/machine-puzzle.d.ts +1 -1
- package/dist/knowledge/machine-puzzle.js +1 -1
- package/dist/knowledge/machine-risk.js +1 -1
- package/dist/knowledge/machine-templates.js +1 -1
- package/dist/knowledge/machine-topology.d.ts +8 -0
- package/dist/knowledge/machine-topology.js +1 -1
- package/dist/knowledge/machine-translation.js +1 -1
- package/dist/knowledge/permission-ledger.js +1 -1
- package/dist/knowledge/protocol-facts.d.ts +16 -0
- package/dist/knowledge/protocol-facts.js +1 -0
- package/dist/knowledge/recipient-constraint.js +1 -1
- package/dist/knowledge/reward-ledger.d.ts +2 -1
- package/dist/knowledge/reward-ledger.js +1 -1
- package/dist/knowledge/reward-templates.js +1 -1
- package/dist/knowledge/safety-rules.d.ts +0 -2
- package/dist/knowledge/safety-rules.js +1 -1
- package/dist/knowledge/scenario-modes.d.ts +7 -0
- package/dist/knowledge/scenario-modes.js +1 -1
- package/dist/knowledge/strategy-manuals.js +1 -1
- package/dist/knowledge/template-loader.d.ts +13 -1
- package/dist/knowledge/template-loader.js +1 -1
- package/dist/knowledge/template-registry.js +1 -1
- package/dist/knowledge/template-scanner.js +1 -1
- package/dist/knowledge/tool-constraints.js +1 -1
- package/dist/knowledge/tools-reference.js +1 -1
- package/dist/monitor/MonitorLoop.js +1 -1
- package/dist/monitor/normalize.d.ts +1 -1
- package/dist/monitor/normalize.js +1 -1
- package/dist/monitor/types.d.ts +1 -1
- package/dist/monitor/types.js +1 -1
- package/dist/playbooks/service-build/business-puzzle.js +1 -1
- package/dist/playbooks/service-build/game-theory.d.ts +1 -0
- package/dist/playbooks/service-build/game-theory.js +1 -1
- package/dist/playbooks/service-build/intent-analyzer.js +1 -1
- package/dist/playbooks/service-build/machine-panorama.js +1 -1
- package/dist/playbooks/service-build/merchant-guide.js +1 -1
- package/dist/playbooks/service-build/object-panorama.js +1 -1
- package/dist/playbooks/service-build/participation-radar.js +1 -1
- package/dist/playbooks/service-build/relationship-profile.js +1 -1
- package/dist/playbooks/service-build/service-panorama.js +1 -1
- package/dist/playbooks/service-build/service-quote.js +1 -1
- package/dist/playbooks/service-build/service-quote.spec.js +1 -1
- package/dist/relationship/registry.js +1 -1
- package/dist/review/index.js +1 -1
- package/dist/role/profiles.js +1 -1
- package/dist/safety/confirm-gate.js +1 -1
- package/dist/schema/benchmark-migration/index.d.ts +5 -1
- package/dist/schema/benchmark-migration/index.js +1 -1
- package/dist/schema/call/arbitration.d.ts +4 -4
- package/dist/schema/call/arbitration.js +1 -1
- package/dist/schema/call/base.d.ts +39 -0
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +1 -0
- package/dist/schema/call/contact.d.ts +4 -4
- package/dist/schema/call/demand.d.ts +4 -4
- package/dist/schema/call/error-codes.d.ts +1 -1
- package/dist/schema/call/error-codes.js +1 -1
- package/dist/schema/call/handler.js +1 -1
- package/dist/schema/call/machine.d.ts +12 -4
- package/dist/schema/call/order.d.ts +4 -4
- package/dist/schema/call/permission.d.ts +4 -4
- package/dist/schema/call/progress.d.ts +4 -4
- package/dist/schema/call/receipt.d.ts +8 -0
- package/dist/schema/call/receipt.js +1 -1
- package/dist/schema/call/repository.d.ts +4 -4
- package/dist/schema/call/reward.d.ts +24 -4
- package/dist/schema/call/reward.js +1 -1
- package/dist/schema/call/semantic.js +1 -1
- package/dist/schema/call/service.d.ts +6 -4
- package/dist/schema/call/service.js +1 -1
- package/dist/schema/call/treasury.d.ts +4 -4
- package/dist/schema/common/index.d.ts +2 -2
- package/dist/schema/common/index.js +1 -1
- package/dist/schema/goal/index.d.ts +5 -1
- package/dist/schema/goal/planning.d.ts +10 -2
- package/dist/schema/goal/planning.js +1 -1
- package/dist/schema/industry-pack/index.d.ts +3 -0
- package/dist/schema/industry-pack/index.js +1 -1
- package/dist/schema/intent-radar/index.d.ts +9 -0
- package/dist/schema/intent-radar/index.js +1 -1
- package/dist/schema/local/index.d.ts +10 -0
- package/dist/schema/local/index.js +1 -1
- package/dist/schema/operations.d.ts +35 -22
- package/dist/schema/operations.js +1 -1
- package/dist/schema/query/bi.d.ts +16 -0
- package/dist/schema/query/bi.js +1 -1
- package/dist/schema/query/index.d.ts +52 -48
- package/dist/schema/query/index.js +1 -1
- package/dist/schema/schema-query/index.d.ts +1 -0
- package/dist/schema/schema-query/index.js +1 -1
- package/dist/schema/schema-version.js +1 -1
- package/dist/schema-query-impl/index.d.ts +1 -1
- package/dist/schema-query-impl/index.js +1 -1
- package/dist/schemas/account_operation.output.json +1 -0
- package/dist/schemas/account_operation.schema.json +1 -1
- package/dist/schemas/benchmark_migration_operation.schema.json +27 -3
- package/dist/schemas/bridge_operation.output.json +1 -0
- package/dist/schemas/goal_operation.schema.json +26 -2
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/industry_pack_operation.output.json +8 -0
- package/dist/schemas/industry_pack_operation.schema.json +9 -0
- package/dist/schemas/intent_radar.output.json +8 -2
- package/dist/schemas/intent_radar.schema.json +4 -1
- package/dist/schemas/local_cache_operation.output.json +1 -0
- package/dist/schemas/local_history_operation.output.json +1 -0
- package/dist/schemas/local_info_operation.output.json +1 -0
- package/dist/schemas/local_mark_operation.output.json +1 -0
- package/dist/schemas/monitor_events.schema.json +3 -1
- package/dist/schemas/onchain_events.output.json +275 -11
- package/dist/schemas/onchain_events.schema.json +25 -1
- package/dist/schemas/onchain_operations.output.json +40 -0
- package/dist/schemas/onchain_operations.schema.json +573 -104
- package/dist/schemas/onchain_operations_allocation.schema.json +2 -2
- package/dist/schemas/onchain_operations_arbitration.schema.json +11 -7
- package/dist/schemas/onchain_operations_contact.schema.json +9 -5
- package/dist/schemas/onchain_operations_demand.schema.json +9 -5
- package/dist/schemas/onchain_operations_guard.schema.json +342 -4
- package/dist/schemas/onchain_operations_machine.schema.json +17 -5
- package/dist/schemas/onchain_operations_order.schema.json +9 -5
- package/dist/schemas/onchain_operations_permission.schema.json +9 -5
- package/dist/schemas/onchain_operations_progress.schema.json +9 -5
- package/dist/schemas/onchain_operations_repository.schema.json +9 -5
- package/dist/schemas/onchain_operations_reward.schema.json +89 -9
- package/dist/schemas/onchain_operations_service.schema.json +18 -11
- package/dist/schemas/onchain_operations_treasury.schema.json +9 -5
- package/dist/schemas/query_toolkit.output.json +237 -14
- package/dist/schemas/schema_query.schema.json +3 -2
- package/dist/tools/handlers/benchmark-migration.d.ts +45 -1
- package/dist/tools/handlers/benchmark-migration.js +1 -1
- package/dist/tools/handlers/config.js +1 -1
- package/dist/tools/handlers/industry-pack.js +1 -1
- package/dist/tools/handlers/intent-radar.js +1 -1
- package/dist/tools/handlers/keeper.d.ts +1 -1
- package/dist/tools/handlers/onchain.d.ts +12 -0
- package/dist/tools/handlers/onchain.js +1 -1
- package/dist/tools/handlers/schema-query.js +1 -1
- package/dist/tools/handlers/workflow.js +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/registry/agent.js +1 -1
- package/dist/tools/registry/business.js +1 -1
- package/dist/tools/registry/query.js +1 -1
- package/dist/tools/rules-hook.js +1 -1
- package/dist/tools/wrap.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{formatMist,GasTokenType,MAINNET_BRIDGE_CONFIG,formatUnits,isFundApprovalExempt}from'@wowok/wowok';export const DEFAULT_VALUE_WARNINGS={'defaultAccount':'Using\x20default\x20account\x20(env.account=\x22\x22)','mainnet':'Operating\x20on\x20mainnet\x20—\x20irreversible','replaceExistName':'replaceExistName=true\x20will\x20unbind\x20the\x20existing\x20name\x20(breaking\x20refs):\x20the\x20previously\x20named\x20object\x20stays\x20on-chain\x20but\x20becomes\x20unreachable\x20by\x20name\x20—\x20any\x20funds\x20it\x20holds\x20(e.g.\x20an\x20old\x20Order\x27s\x20Allocation)\x20are\x20orphaned.\x20Re-running\x20a\x20build\x20with\x20the\x20same\x20name\x20creates\x20a\x20SECOND\x20object,\x20not\x20a\x20replacement','defaultToken':'Using\x20default\x20token\x200x2::wow::WOW'};export const DEFAULT_AMOUNT_THRESHOLD=BigInt(0x174876e800);export function getAmountThreshold(){const a=process['env']['WOWOK_AMOUNT_THRESHOLD'];if(!a)return DEFAULT_AMOUNT_THRESHOLD;try{return BigInt(a);}catch{return DEFAULT_AMOUNT_THRESHOLD;}}export const DEFAULT_FUND_COVERAGE_MIN=0x1;export function getFundCoverageMin(){const a=process['env']['WOWOK_FUND_COVERAGE_MIN'];if(a===undefined||a['trim']()==='')return DEFAULT_FUND_COVERAGE_MIN;const b=Number(a);if(!Number['isFinite'](b)||b<0x0)return DEFAULT_FUND_COVERAGE_MIN;return b;}export function formatAmount(a){return formatMist(a);}function bestEffortTokenType(a){return a?.['object']?.['type_parameter']??a?.['type_parameter'];}function describeAmount(a,b){if(!b||b===GasTokenType)try{return formatMist(a);}catch{return a+'\x20raw\x20smallest\x20units\x20of\x20'+GasTokenType;}return a+'\x20raw\x20smallest\x20units\x20of\x20'+b;}function containsReplaceExistName(a,b,c){if(a===null||typeof a!=='object'||b>0x8)return![];const d=a;if(c['has'](d))return![];c['add'](d);if(d['replaceExistName']===!![])return!![];for(const e of Object['values'](d)){if(containsReplaceExistName(e,b+0x1,c))return!![];}return![];}export function collectDefaultWarnings(a,b){const c=[],d=a?.['account'];(d===undefined||d==='')&&c['push'](DEFAULT_VALUE_WARNINGS['defaultAccount']);const e=a?.['network'];e&&/mainnet/i['test'](String(e))&&c['push'](DEFAULT_VALUE_WARNINGS['mainnet']);const f=b?.['namedNew']??b?.['object'];return f&&typeof f==='object'&&f['replaceExistName']===!![]&&c['push'](DEFAULT_VALUE_WARNINGS['replaceExistName']),b&&typeof b==='object'&&containsReplaceExistName(b,0x0,new Set())&&c['push'](DEFAULT_VALUE_WARNINGS['replaceExistName']),[...new Set(c)];}export const BRIDGE_FUND_OPERATION_TYPES=['cross_chain_wow_to_evm','cross_chain_evm_to_wow','claim_wow_to_evm','resume_transfer','withdraw'];function describeBridgeAmount(a,b,c){if(b==='WOW'||!b&&c==='wow_to_evm')return formatMist(a);const d=MAINNET_BRIDGE_CONFIG?.['tokens']?.['find'](f=>f['symbol']?.['toUpperCase']()===b?.['toUpperCase']()),e=d?c==='wow_to_evm'?d['wowDecimals']:d['evmDecimals']:undefined;if(e===undefined)return a+'\x20raw\x20smallest\x20units\x20of\x20'+(b??'the\x20bridge\x20token');try{return formatUnits(BigInt(a),e)+'\x20'+b;}catch{return a+'\x20raw\x20smallest\x20units\x20of\x20'+b;}}export const CONFIRMATION_RULES=[{'id':'bridge_fund_movement','when':(a,b,c)=>BRIDGE_FUND_OPERATION_TYPES['includes'](a),'level':'irreversible','preview':(a,b,c)=>{const d=typeof b?.['amount']==='string'?b['amount']:undefined,e=typeof b?.['token']==='string'?b['token']:undefined,f=b?.['withdrawTo']??b?.['recipientWowAddress']??b?.['to']??(a==='claim_wow_to_evm'||a==='resume_transfer'?b?.['transferId']:undefined),g=a==='cross_chain_wow_to_evm'?'wow_to_evm':'evm_side';return{'level':'irreversible','operation':a,'irreversible':!![],'network':c?.['network'],'account':c?.['account']??'','amount':d!==undefined?{'value':d,'token':e??(g==='wow_to_evm'?GasTokenType:'ETH'),'human_readable':describeBridgeAmount(d,e,g),'recipient':f}:undefined,'warnings':[...collectDefaultWarnings(c,b),a==='withdraw'?'EVM\x20withdrawal\x20from\x20activeEvmAccount\x20—\x20funds\x20move\x20to\x20an\x20external\x20EVM\x20address;\x20irreversible.':'Cross-chain\x20bridge\x20transfer\x20—\x20funds\x20leave\x20the\x20source\x20chain;\x20recovery\x20(if\x20any)\x20requires\x20the\x20opposite-side\x20claim\x20or\x20resume_transfer,\x20never\x20a\x20rollback.']};},'bypass_on_explicit_intent':[]},{'id':'irreversible_fund_or_verdict','when':(a,b,c)=>{const d=c?.['network'],e=bestEffortTokenType(b)??GasTokenType;if(a==='payment'&&Array['isArray'](b?.['revenue'])&&b['revenue']['length']>0x0){const f=b['revenue']['map'](g=>g?.['amount']?.['balance'])['filter'](g=>typeof g==='string'||typeof g==='number');if(f['length']===b['revenue']['length']&&f['every'](g=>isFundApprovalExempt(d,e,String(g))))return![];return!![];}if(a==='treasury'&&b?.['withdraw']){const g=extractAmount(b);if(g!==null&&isFundApprovalExempt(d,e,g))return![];return!![];}if(a==='payment')return!![];if(a==='arbitration'&&b?.['arbitration']!==undefined)return!![];if(b?.['receive']!==undefined||b?.['owner_receive']!==undefined||b?.['received_coins']!==undefined||b?.['compensation_fund_receive']!==undefined)return!![];if(b?.['alloc_by_guard']!==undefined)return!![];if(a==='reward'&&b?.['claim']!==undefined)return!![];if(a==='service'&&b?.['compensation_fund_withdraw']!==undefined)return!![];if(a==='order'&&b?.['arb_claim_compensation']!==undefined)return!![];if(a==='arbitration'&&(b?.['arb_withdraw']!==undefined||b?.['fees_transfer']!==undefined))return!![];if(a==='treasury'){if(b?.['withdraw'])return!![];return![];}return![];},'level':'irreversible','preview':(a,b,c)=>{let d;if(a==='payment'&&Array['isArray'](b?.['revenue'])&&b['revenue']['length']>0x0){const f=b['revenue']['find'](g=>typeof g?.['amount']?.['balance']==='string'||typeof g?.['amount']?.['balance']==='number');if(f){const g=String(f['amount']['balance']);d={'value':g,'human_readable':describeAmount(g,bestEffortTokenType(b))};}else d={'value':'','human_readable':'entire\x20Coin\x20object(s)\x20(amount\x20resolved\x20by\x20the\x20fund\x20layer)'};}const e=[];return a==='reward'&&b?.['claim']!==undefined&&e['push']('Reward\x20claim\x20—\x20Guard-verified\x20payout\x20splits\x20the\x20pool\x20balance\x20and\x20transfers\x20coins\x20to\x20the\x20claimer;\x20the\x20exact\x20amount\x20is\x20determined\x20by\x20the\x20Reward\x27s\x20guard\x20config.'),a==='service'&&b?.['compensation_fund_withdraw']!==undefined&&e['push']('Compensation\x20fund\x20withdraw\x20—\x20withdraws\x20the\x20ENTIRE\x20compensation_fund\x20into\x20a\x20new\x20Payment\x20owned\x20by\x20\x27'+(b['compensation_fund_withdraw']?.['receipt']??'(recipient)')+'\x27.'),a==='order'&&b?.['arb_claim_compensation']!==undefined&&e['push']('Order\x20compensation\x20claim\x20—\x20splits\x20the\x20Service\x27s\x20compensation_fund\x20and\x20transfers\x20the\x20awarded\x20coins\x20to\x20the\x20caller;\x20irreversible.'),a==='arbitration'&&b?.['arb_withdraw']!==undefined&&e['push']('Arb\x20fee\x20withdraw\x20—\x20sweeps\x20the\x20Arb\x27s\x20fee\x20balance\x20into\x20the\x20Arbitration\x20object\x27s\x20balance.'),a==='arbitration'&&b?.['fees_transfer']!==undefined&&e['push']('Arbitration\x20fees\x20transfer\x20—\x20withdraws\x20the\x20ENTIRE\x20Arbitration\x20balance\x20into\x20a\x20new\x20Payment\x20for\x20the\x20target\x20Allocation/Treasury;\x20irreversible.'),{'level':'irreversible','operation':a,'irreversible':!![],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),...e],'amount':a==='payment'&&d?{...d,'token':bestEffortTokenType(b)??GasTokenType,'recipient':b?.['revenue']?.[0x0]?.['recipient']}:undefined};},'bypass_on_explicit_intent':[]},{'id':'publish_immutable','when':(a,b,c)=>{if(a==='service'&&(b?.['publish']===!![]||b?.['bPublished']===!![]))return!![];if(a==='machine'&&b?.['publish']===!![])return!![];return![];},'level':'publish','preview':(a,b,c)=>({'level':'publish','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','immutable_after':a==='service'?['machine','order_allocators']:['nodes','pairs','forwards'],'warnings':collectDefaultWarnings(c,b)}),'bypass_on_explicit_intent':['force\x20publish','publish\x20now']},{'id':'amount_sensitive','when':(a,b,c)=>{const d=extractAmount(b);if(d!==null){if(isFundApprovalExempt(c?.['network'],bestEffortTokenType(b)??GasTokenType,d))return![];return!![];}if(a==='service'&&b?.['order_new'])return!![];if(a==='treasury'&&b?.['deposit']?.['coin']?.['coin'])return!![];if(a==='reward'&&b?.['coin_add']?.['coin'])return!![];if(a==='allocation'&&b?.['coin']?.['coin'])return!![];return![];},'level':'amount','preview':(a,b,c)=>{const d=extractAmount(b),e=bestEffortTokenType(b);return{'level':'amount','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','amount':d?{'value':d,'token':e??GasTokenType,'human_readable':describeAmount(d,e)}:{'value':'','token':e??GasTokenType,'human_readable':'entire\x20Coin\x20object\x20(amount\x20resolved\x20on-chain)'},'warnings':collectDefaultWarnings(c,b)};},'bypass_on_explicit_intent':[]},{'id':'guard_create_immutable','when':(a,b,c)=>{if(a==='guard')return!![];return![];},'level':'irreversible','preview':(a,b,c)=>{const d=b?.['table']??[],e=b?.['root'],f=b?.['rely'],g=typeof e==='object'&&e!==null&&'type'in e?e['type']:typeof e==='object'&&e!==null&&'type'in e&&e['type']==='file'?'file':'unknown',h=['table','root'];if(f)h['push']('rely');let i='';try{i=JSON['stringify'](e??{});}catch{i='';}const j=[],k=(Array['isArray'](d)?d:[])['filter'](l=>l&&l['b_submission']===!![]&&String(l['value_type'])['toLowerCase']()==='address');if(k['length']>0x0){const l=/order\.service|progress\.machine|arb\.service|order\.machine/i['test'](i);!l&&j['push']('PRE-LINT\x20R-C3-05:\x20submitted\x20Address\x20slot(s)\x20are\x20not\x20bound\x20to\x20this\x20project\x20in\x20the\x20root\x20(no\x20order.service/progress.machine\x20comparison)\x20—\x20a\x20cross-project\x20object\x20can\x20satisfy\x20this\x20Guard.\x20Add\x20the\x20binding\x20BEFORE\x20confirming:\x20the\x20Guard\x20is\x20immutable\x20after\x20creation'),!/signer/i['test'](i)&&j['push']('PRE-LINT\x20identity:\x20submitted\x20data\x20is\x20not\x20tied\x20to\x20the\x20transaction\x20signer\x20(no\x20context(Signer)\x20clause)\x20—\x20anyone\x20able\x20to\x20trigger\x20the\x20host\x20operation\x20can\x20submit\x20arbitrary\x20values.\x20Add\x20a\x20Signer\x20binding\x20if\x20the\x20submitter\x20must\x20be\x20authorized');}return{'level':'irreversible','operation':a,'object':b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','immutable_after':h,'irreversible':!![],'warnings':[...collectDefaultWarnings(c,b),'Guard\x20is\x20CREATE-only\x20and\x20immutable\x20—\x20cannot\x20be\x20edited\x20or\x20deleted\x20after\x20creation','Table\x20entries:\x20'+d['length']+'\x20(max\x20256)','Root\x20node\x20type:\x20'+g+'\x20(must\x20return\x20Bool)',...f?['Rely\x20dependencies:\x20'+(f['guards']?.['length']??0x0)+'\x20(max\x204,\x20AND/OR\x20logic)']:[],...j,'To\x20modify\x20later:\x20export\x20via\x20guard2file\x20→\x20edit\x20→\x20CREATE\x20new\x20→\x20rebind']};},'bypass_on_explicit_intent':[]},{'id':'default_values','when':(a,b,c)=>{return collectDefaultWarnings(c,b)['length']>0x0;},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','warnings':collectDefaultWarnings(c,b)}),'bypass_on_explicit_intent':['use\x20default\x20account','default\x20account\x20is\x20fine','use\x20the\x20default\x20account','default\x20account\x20works\x20fine']},{'id':'guard_gen_passport_test','when':(a,b,c)=>{if(a==='gen_passport')return!![];return![];},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['guard'],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),'gen_passport\x20will\x20consume\x20gas\x20for\x20static\x20testing']}),'bypass_on_explicit_intent':['test\x20guard','testing\x20guard','gen\x20passport','generate\x20passport']},{'id':'progress_advance','when':(a,b,c)=>{if(a!=='progress')return![];return b?.['operate']?.['op']==='next'||b?.['owner_receive']!==undefined;},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['object'],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),'Advancing\x20the\x20progress\x20node\x20may\x20release\x20funds\x20per\x20the\x20machine\x20allocation']}),'bypass_on_explicit_intent':[]}];export function resolveOverrideId(a,b){if(a==='publish_immutable'){if(b==='service')return'service.publish';if(b==='machine')return'machine.publish';return undefined;}if(a==='progress_advance')return'node.advance';if(a==='default_values')return'confirm.default_values';if(a==='guard_gen_passport_test')return'confirm.gen_passport_test';return undefined;}export function extractAmount(a,b){if(!a)return null;const d=i=>{if(typeof i==='number')return String(i);if(typeof i==='string'&&i!=='')return i;return null;},e=[a?.['balance'],a?.['amount'],a?.['compensation_fund_add']?.['balance'],a?.['coin_add']?.['balance'],a?.['coin']?.['balance'],a?.['order_new']?.['buy']?.['total_pay']?.['balance'],a?.['dispute']?.['fee']?.['balance'],a?.['fee'],a?.['arbitration']?.['indemnity'],a?.['deposit']?.['coin']?.['balance'],a?.['withdraw']?.['amount']?.['fixed']],f=[];for(const i of e){const j=d(i);if(j!==null)f['push'](j);}if(Array['isArray'](a?.['revenue']))for(const k of a['revenue']){const l=d(k?.['amount']?.['balance']);if(l!==null)f['push'](l);}if(Array['isArray'](a?.['guard_add']))for(const m of a['guard_add']){if(m?.['amount']?.['type']==='Fixed'){const n=d(m['amount']['value']);if(n!==null)f['push'](n);}}if(!b?.['excludeConfigAmounts'])for(const o of[a?.['allocators'],a?.['order_allocators']]){if(!o||typeof o!=='object')continue;const p=d(o['threshold']);if(p!==null)f['push'](p);for(const q of Array['isArray'](o['allocators'])?o['allocators']:[]){if(Array['isArray'](q?.['sharing']))for(const u of q['sharing']){if(u?.['mode']==='Amount'){const w=d(u['sharing']);if(w!==null)f['push'](w);}}const t=d(q?.['max']);if(t!==null)f['push'](t);}}const h=f['filter'](x=>{try{return BigInt(x)!==0x0n;}catch{return!![];}});if(h['length']===0x0)return null;if(h['length']===0x1)return h[0x0];try{return h['reduce']((x,y)=>x+BigInt(y),0x0n)['toString']();}catch{return h[0x0];}}export const OBJECT_REUSE_RULES=[{'rule_id':'REUSE-001','object_type':'permission','recommendation':'strongly_recommended','reason':'Centralized\x20permission\x20control\x20across\x20all\x20services','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Permission\x20to\x20reuse?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-002','object_type':'machine','recommendation':'recommended','reason':'Save\x20design\x20time\x20for\x20similar\x20processes','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Machine\x20whose\x20workflow\x20fits?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-003','object_type':'guard','recommendation':'recommended','reason':'Avoid\x20redundant\x20validation\x20rules','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Guard\x20with\x20matching\x20validation\x20logic?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-004','object_type':'contact','recommendation':'recommended','reason':'Single\x20point\x20of\x20customer-service\x20management','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Contact\x20for\x20customer\x20service?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-005','object_type':'arbitration','recommendation':'always_reuse','reason':'Customers\x20choose\x20from\x20established\x20arbiters;\x20creating\x20a\x20new\x20Arbitration\x20is\x20an\x20operator-level\x20decision','ask_user':'Which\x20existing\x20Arbitration\x20service\x20should\x20disputes\x20route\x20to?\x20Provide\x20the\x20name\x20or\x20ID.'}];export const CREATE_VS_MODIFY_PATTERN={'reuse_form':'string','create_form':'object','resolution_api':'GetObjectExisted','note':'String\x20reference\x20=\x20REUSE\x20(name\x20resolution\x20failure\x20is\x20a\x20hard\x20error);\x20object\x20shape\x20=\x20CREATE\x20(always).'};export const IMMUTABILITY_RULES=[{'rule_id':'IMMUT-001','object_type':'machine','trigger':'publish','immutable_fields':['nodes','pairs','forwards'],'message':'Machine\x20topology\x20is\x20immutable\x20after\x20publish\x20—\x20verify\x20all\x20nodes/forwards\x20via\x20machineNode2file\x20BEFORE\x20publishing'},{'rule_id':'IMMUT-002','object_type':'service','trigger':'publish','immutable_fields':['machine','order_allocators'],'mutable_after':['arbitrations','rewards','sales'],'message':'Service.machine\x20and\x20order_allocators\x20are\x20PERMANENTLY\x20frozen\x20after\x20publish\x20(L1);\x20arbitrations/rewards\x20can\x20still\x20be\x20ADDED\x20but\x20remove/clear\x20is\x20time-locked\x20(L2:\x20pause\x20+\x20setting_lock_duration);\x20sales\x20remains\x20fully\x20modifiable\x20(L3)\x20without\x20pause'},{'rule_id':'IMMUT-003','object_type':'guard','trigger':'create','immutable_fields':['table','root','rely'],'message':'Guard\x20is\x20CREATE-only\x20and\x20immutable\x20—\x20cannot\x20be\x20edited\x20or\x20deleted\x20after\x20creation.\x20To\x20change:\x20export\x20via\x20guard2file\x20→\x20edit\x20→\x20CREATE\x20new\x20→\x20rebind'}];export const PROTOCOL_SLOT_RULES=[{'rule_id':'TASKBIND-01','slot':0xfe,'asserted_by':['TASK-BINDING\x20GATE\x20—\x20every\x20guarded\x20forward\x20of\x20a\x20machine\x20running\x20on\x20an\x20order\x20Progress\x20requires\x20a\x20slot-254\x20passport\x20submission\x20(aborts\x20code\x2011\x20=\x20E_TASK_BINDING_REQUIRED\x20when\x20the\x20row\x20is\x20missing;\x20code\x2012\x20=\x20E_TASK_BINDING_NOT_MATCH\x20when\x20the\x20submitted\x20value\x20is\x20not\x20the\x20order\x20address)'],'required_declaration':'{\x20identifier:\x20254,\x20b_submission:\x20true,\x20value_type:\x20\x27Address\x27\x20}\x20—\x20the\x20SUBMITTED\x20VALUE\x20must\x20be\x20the\x20ORDER\x20address\x20(Progress.task\x20is\x20set\x20to\x20the\x20order\x20at\x20purchase,\x20progress.move:516);\x20submitting\x20the\x20Progress\x20address\x20aborts\x20with\x20code\x2012\x20(zrmn-261012\x20R-HANDOVER-SLOT254)','violation':'A\x20Guard\x20bound\x20to\x20a\x20machine\x20forward\x20without\x20this\x20row\x20aborts\x20every\x20forward\x20traversal\x20once\x20an\x20order\x20drives\x20the\x20Progress;\x20the\x20table\x20is\x20frozen\x20at\x20creation,\x20so\x20the\x20path\x20strands\x20permanently.','message':'Any\x20Guard\x20bound\x20on\x20a\x20machine\x20forward\x20MUST\x20declare\x20protocol\x20slot\x20254\x20(task\x20binding)\x20as\x20a\x20b_submission\x20Address\x20row.\x20The\x20compile\x20kernel\x20auto-injects\x20the\x20row\x20for\x20edge-bound\x20guards;\x20guard\x20templates\x20ship\x20it\x20in\x20example_table.'},{'rule_id':'TASKBIND-02','slot':-0x1,'asserted_by':['allocation::assert\x20—\x20each\x20{GuardIdentifier:N}\x20allocator\x20leg\x20requires\x20a\x20passport\x20submission\x20at\x20slot\x20N\x20equal\x20to\x20payment_info.for_object\x20(aborts\x20with\x20funds\x20already\x20escrowed)'],'required_declaration':'{\x20identifier:\x20N,\x20b_submission:\x20true,\x20value_type:\x20\x27Address\x27,\x20object_type:\x20\x27Order\x27\x20}\x20for\x20EVERY\x20slot\x20N\x20named\x20by\x20a\x20GuardIdentifier\x20allocator\x20leg','violation':'A\x20static\x20Address\x20slot\x20in\x20the\x20same\x20position\x20passes\x20creation\x20but\x20fails\x20the\x20same\x20allocation\x20assertion\x20(N-11)\x20—\x20the\x20distribution\x20aborts\x20and\x20escrowed\x20funds\x20stay\x20stranded\x20(amz-7f3a2c91:\x200.98991\x20WOW).','message':'Every\x20allocator\x20{GuardIdentifier:N}\x20leg\x20MUST\x20point\x20at\x20a\x20Guard\x20table\x20slot\x20N\x20declared\x20as\x20a\x20b_submission\x20Address\x20row.\x20The\x20compile\x20kernel\x20blocks\x20publish\x20when\x20the\x20slot\x20is\x20undeclared\x20(GUARD_SLOT_UNKNOWN).'}];export const OPERATION_TYPE_CLASSIFICATION={'LOCAL_ONLY':['account_operation','local_mark_operation','local_info_operation','config_operation'],'ONCHAIN':['onchain_operations','wip_file','bridge_operation','messenger_operation'],'QUERY':['query_toolkit','onchain_table_data','onchain_events','guard2file','machineNode2file','schema_query','wowok_buildin_info'],'ENCRYPTED':['messenger_operation']};export const OPERATION_CLASS_META={'LOCAL_ONLY':{'gas':![],'confirmation_required':![],'note':'Local\x20state\x20only\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'},'ONCHAIN':{'gas':!![],'confirmation_required':!![],'note':'On-chain\x20write\x20—\x20gas\x20consumed,\x20explicit\x20user\x20confirmation\x20REQUIRED\x20before\x20execution'},'QUERY':{'gas':![],'confirmation_required':![],'note':'Read-only\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'},'ENCRYPTED':{'gas':![],'confirmation_required':![],'note':'Local\x20encryption\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'}};export function classifyTool(a){if(OPERATION_TYPE_CLASSIFICATION['ENCRYPTED']['includes'](a))return'ENCRYPTED';for(const b of['LOCAL_ONLY','ONCHAIN','QUERY']){if(OPERATION_TYPE_CLASSIFICATION[b]['includes'](a))return b;}return undefined;}export const NAMING_CONVENTIONS={'scheme':'<projectPrefix>_<type>_<purpose>_<version>','parts':{'project_prefix':{'example':'shopFunny_','purpose':'Prevents\x20cross-project\x20collisions'},'type_prefix':{'example':'machine_\x20/\x20guard_\x20/\x20service_','purpose':'Clarifies\x20object\x20type'},'purpose_suffix':{'example':'serviceWithdraw','purpose':'Describes\x20function'},'version_suffix':{'example':'_v2','purpose':'Enables\x20iteration\x20without\x20replaceExistName'}},'entry_id':{'pattern':'^<object_type>:<name>$','example':'service:myshop_service'},'replace_exist_name':{'default':![],'false_effect':'Throws\x20error\x20if\x20name\x20is\x20in\x20use\x20—\x20safe\x20default','true_effect':'Existing\x20object/account\x20with\x20the\x20same\x20name\x20is\x20suspended/unbound\x20to\x20free\x20the\x20name','account_default_forbidden':'replaceExistName:true\x20on\x20the\x20default\x20account\x20(name=\x27\x27)\x20is\x20FORBIDDEN\x20—\x20use\x20suspend()\x20explicitly','recommendation':'DISCOURAGED\x20—\x20prefer\x20versioned\x20names\x20(_v1,\x20_v2)\x20for\x20production'},'recommendations':['Always\x20provide\x20tags\x20on\x20object\x20creation\x20for\x20filtering\x20and\x20management','Use\x20names\x20as\x20primary\x20identifiers;\x20use\x20short\x20address\x20form\x20(0x1234...def)\x20only\x20for\x20display','All\x20cross-object\x20references\x20(Guard\x20tables,\x20Service\x20bindings,\x20Machine\x20forwards)\x20use\x20NAMES\x20—\x20resolved\x20per-network\x20at\x20build\x20time']};export function checkObjectReuseRules(a){const b=[];for(const c of a){if(!c['is_new'])continue;const d=OBJECT_REUSE_RULES['find'](e=>e['object_type']===c['object_type']);if(!d)continue;(d['recommendation']==='always_reuse'||d['recommendation']==='strongly_recommended')&&b['push']({'rule_id':d['rule_id'],'severity':d['recommendation']==='always_reuse'?'warn':'info','message':'Creating\x20NEW\x20'+c['object_type']+(c['name']?'\x20\x22'+c['name']+'\x22':'')+'\x20—\x20reuse\x20is\x20'+d['recommendation']+':\x20'+d['reason']+'.\x20'+d['ask_user']});}return b;}export function checkImmutabilityRules(a){const b=[];for(const c of a){const d=IMMUTABILITY_RULES['find'](e=>e['object_type']===c['object_type']&&e['trigger']===c['trigger']);if(!d)continue;b['push']({'rule_id':d['rule_id'],'severity':'warn','message':''+c['object_type']+(c['name']?'\x20\x22'+c['name']+'\x22':'')+'\x20'+c['trigger']+':\x20'+d['message']+'.\x20Immutable:\x20['+d['immutable_fields']['join'](',\x20')+']'+(d['mutable_after']?'.\x20Still\x20mutable:\x20['+d['mutable_after']['join'](',\x20')+']':'')});}return b;}export const SAFETY_RULES_VERSION=0x3;
|
|
1
|
+
import{formatMist,GasTokenType,MAINNET_BRIDGE_CONFIG,formatUnits,isFundApprovalExempt}from'@wowok/wowok';export const DEFAULT_VALUE_WARNINGS={'defaultAccount':'Using\x20default\x20account\x20(env.account=\x22\x22)','mainnet':'Operating\x20on\x20mainnet\x20—\x20irreversible','replaceExistName':'replaceExistName=true\x20will\x20unbind\x20the\x20existing\x20name\x20(breaking\x20refs):\x20the\x20previously\x20named\x20object\x20stays\x20on-chain\x20but\x20becomes\x20unreachable\x20by\x20name\x20—\x20any\x20funds\x20it\x20holds\x20(e.g.\x20an\x20old\x20Order\x27s\x20Allocation)\x20are\x20orphaned.\x20Re-running\x20a\x20build\x20with\x20the\x20same\x20name\x20creates\x20a\x20SECOND\x20object,\x20not\x20a\x20replacement','defaultToken':'Using\x20default\x20token\x200x2::wow::WOW'};export const DEFAULT_AMOUNT_THRESHOLD=BigInt(0x174876e800);export function getAmountThreshold(){const a=process['env']['WOWOK_AMOUNT_THRESHOLD'];if(!a)return DEFAULT_AMOUNT_THRESHOLD;try{return BigInt(a);}catch{return DEFAULT_AMOUNT_THRESHOLD;}}export function formatAmount(a){return formatMist(a);}function bestEffortTokenType(a){return a?.['object']?.['type_parameter']??a?.['type_parameter'];}function describeAmount(a,b){if(!b||b===GasTokenType)try{return formatMist(a);}catch{return a+'\x20raw\x20smallest\x20units\x20of\x20'+GasTokenType;}return a+'\x20raw\x20smallest\x20units\x20of\x20'+b;}function containsReplaceExistName(a,b,c){if(a===null||typeof a!=='object'||b>0x8)return![];const d=a;if(c['has'](d))return![];c['add'](d);if(d['replaceExistName']===!![])return!![];for(const e of Object['values'](d)){if(containsReplaceExistName(e,b+0x1,c))return!![];}return![];}export function collectDefaultWarnings(a,b){const c=[],d=a?.['account'];(d===undefined||d==='')&&c['push'](DEFAULT_VALUE_WARNINGS['defaultAccount']);const e=a?.['network'];e&&/mainnet/i['test'](String(e))&&c['push'](DEFAULT_VALUE_WARNINGS['mainnet']);const f=b?.['namedNew']??b?.['object'];return f&&typeof f==='object'&&f['replaceExistName']===!![]&&c['push'](DEFAULT_VALUE_WARNINGS['replaceExistName']),b&&typeof b==='object'&&containsReplaceExistName(b,0x0,new Set())&&c['push'](DEFAULT_VALUE_WARNINGS['replaceExistName']),[...new Set(c)];}export const BRIDGE_FUND_OPERATION_TYPES=['cross_chain_wow_to_evm','cross_chain_evm_to_wow','claim_wow_to_evm','resume_transfer','withdraw'];function describeBridgeAmount(a,b,c){if(b==='WOW'||!b&&c==='wow_to_evm')return formatMist(a);const d=MAINNET_BRIDGE_CONFIG?.['tokens']?.['find'](f=>f['symbol']?.['toUpperCase']()===b?.['toUpperCase']()),e=d?c==='wow_to_evm'?d['wowDecimals']:d['evmDecimals']:undefined;if(e===undefined)return a+'\x20raw\x20smallest\x20units\x20of\x20'+(b??'the\x20bridge\x20token');try{return formatUnits(BigInt(a),e)+'\x20'+b;}catch{return a+'\x20raw\x20smallest\x20units\x20of\x20'+b;}}export const CONFIRMATION_RULES=[{'id':'bridge_fund_movement','when':(a,b,c)=>BRIDGE_FUND_OPERATION_TYPES['includes'](a),'level':'irreversible','preview':(a,b,c)=>{const d=typeof b?.['amount']==='string'?b['amount']:undefined,e=typeof b?.['token']==='string'?b['token']:undefined,f=b?.['withdrawTo']??b?.['recipientWowAddress']??b?.['to']??(a==='claim_wow_to_evm'||a==='resume_transfer'?b?.['transferId']:undefined),g=a==='cross_chain_wow_to_evm'?'wow_to_evm':'evm_side';return{'level':'irreversible','operation':a,'irreversible':!![],'network':c?.['network'],'account':c?.['account']??'','amount':d!==undefined?{'value':d,'token':e??(g==='wow_to_evm'?GasTokenType:'ETH'),'human_readable':describeBridgeAmount(d,e,g),'recipient':f}:undefined,'warnings':[...collectDefaultWarnings(c,b),a==='withdraw'?'EVM\x20withdrawal\x20from\x20activeEvmAccount\x20—\x20funds\x20move\x20to\x20an\x20external\x20EVM\x20address;\x20irreversible.':'Cross-chain\x20bridge\x20transfer\x20—\x20funds\x20leave\x20the\x20source\x20chain;\x20recovery\x20(if\x20any)\x20requires\x20the\x20opposite-side\x20claim\x20or\x20resume_transfer,\x20never\x20a\x20rollback.']};},'bypass_on_explicit_intent':[]},{'id':'irreversible_fund_or_verdict','when':(a,b,c)=>{const d=c?.['network'],e=bestEffortTokenType(b)??GasTokenType;if(a==='payment'&&Array['isArray'](b?.['revenue'])&&b['revenue']['length']>0x0){const f=b['revenue']['map'](g=>g?.['amount']?.['balance'])['filter'](g=>typeof g==='string'||typeof g==='number');if(f['length']===b['revenue']['length']&&f['every'](g=>isFundApprovalExempt(d,e,String(g))))return![];return!![];}if(a==='treasury'&&b?.['withdraw']){const g=extractAmount(b);if(g!==null&&isFundApprovalExempt(d,e,g))return![];return!![];}if(a==='payment')return!![];if(a==='arbitration'&&b?.['arbitration']!==undefined)return!![];if(b?.['receive']!==undefined||b?.['owner_receive']!==undefined||b?.['received_coins']!==undefined||b?.['compensation_fund_receive']!==undefined)return!![];if(b?.['alloc_by_guard']!==undefined)return!![];if(a==='reward'&&b?.['claim']!==undefined)return!![];if(a==='service'&&b?.['compensation_fund_withdraw']!==undefined)return!![];if(a==='order'&&b?.['arb_claim_compensation']!==undefined)return!![];if(a==='arbitration'&&(b?.['arb_withdraw']!==undefined||b?.['fees_transfer']!==undefined))return!![];if(a==='treasury'){if(b?.['withdraw'])return!![];return![];}return![];},'level':'irreversible','preview':(a,b,c)=>{let d;if(a==='payment'&&Array['isArray'](b?.['revenue'])&&b['revenue']['length']>0x0){const f=b['revenue']['find'](g=>typeof g?.['amount']?.['balance']==='string'||typeof g?.['amount']?.['balance']==='number');if(f){const g=String(f['amount']['balance']);d={'value':g,'human_readable':describeAmount(g,bestEffortTokenType(b))};}else d={'value':'','human_readable':'entire\x20Coin\x20object(s)\x20(amount\x20resolved\x20by\x20the\x20fund\x20layer)'};}const e=[];return a==='reward'&&b?.['claim']!==undefined&&e['push']('Reward\x20claim\x20—\x20Guard-verified\x20payout\x20splits\x20the\x20pool\x20balance\x20and\x20transfers\x20coins\x20to\x20the\x20claimer;\x20the\x20exact\x20amount\x20is\x20determined\x20by\x20the\x20Reward\x27s\x20guard\x20config.'),a==='service'&&b?.['compensation_fund_withdraw']!==undefined&&e['push']('Compensation\x20fund\x20withdraw\x20—\x20withdraws\x20the\x20ENTIRE\x20compensation_fund\x20into\x20a\x20new\x20Payment\x20owned\x20by\x20\x27'+(b['compensation_fund_withdraw']?.['receipt']??'(recipient)')+'\x27.'),a==='order'&&b?.['arb_claim_compensation']!==undefined&&e['push']('Order\x20compensation\x20claim\x20—\x20splits\x20the\x20Service\x27s\x20compensation_fund\x20and\x20transfers\x20the\x20awarded\x20coins\x20to\x20the\x20caller;\x20irreversible.'),a==='arbitration'&&b?.['arb_withdraw']!==undefined&&e['push']('Arb\x20fee\x20withdraw\x20—\x20sweeps\x20the\x20Arb\x27s\x20fee\x20balance\x20into\x20the\x20Arbitration\x20object\x27s\x20balance.'),a==='arbitration'&&b?.['fees_transfer']!==undefined&&e['push']('Arbitration\x20fees\x20transfer\x20—\x20withdraws\x20the\x20ENTIRE\x20Arbitration\x20balance\x20into\x20a\x20new\x20Payment\x20for\x20the\x20target\x20Allocation/Treasury;\x20irreversible.'),{'level':'irreversible','operation':a,'irreversible':!![],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),...e],'amount':a==='payment'&&d?{...d,'token':bestEffortTokenType(b)??GasTokenType,'recipient':b?.['revenue']?.[0x0]?.['recipient']}:undefined};},'bypass_on_explicit_intent':[]},{'id':'publish_immutable','when':(a,b,c)=>{if(a==='service'&&(b?.['publish']===!![]||b?.['bPublished']===!![]))return!![];if(a==='machine'&&b?.['publish']===!![])return!![];return![];},'level':'publish','preview':(a,b,c)=>({'level':'publish','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','immutable_after':a==='service'?['machine','order_allocators']:['nodes','pairs','forwards'],'warnings':collectDefaultWarnings(c,b)}),'bypass_on_explicit_intent':['force\x20publish','publish\x20now']},{'id':'amount_sensitive','when':(a,b,c)=>{const d=extractAmount(b);if(d!==null){if(isFundApprovalExempt(c?.['network'],bestEffortTokenType(b)??GasTokenType,d))return![];return!![];}if(a==='service'&&b?.['order_new'])return!![];if(a==='treasury'&&b?.['deposit']?.['coin']?.['coin'])return!![];if(a==='reward'&&b?.['coin_add']?.['coin'])return!![];if(a==='allocation'&&b?.['coin']?.['coin'])return!![];return![];},'level':'amount','preview':(a,b,c)=>{const d=extractAmount(b),e=bestEffortTokenType(b);return{'level':'amount','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','amount':d?{'value':d,'token':e??GasTokenType,'human_readable':describeAmount(d,e)}:{'value':'','token':e??GasTokenType,'human_readable':'entire\x20Coin\x20object\x20(amount\x20resolved\x20on-chain)'},'warnings':collectDefaultWarnings(c,b)};},'bypass_on_explicit_intent':[]},{'id':'guard_create_immutable','when':(a,b,c)=>{if(a==='guard')return!![];return![];},'level':'irreversible','preview':(a,b,c)=>{const d=b?.['table']??[],e=b?.['root'],f=b?.['rely'],g=typeof e==='object'&&e!==null&&'type'in e?e['type']:typeof e==='object'&&e!==null&&'type'in e&&e['type']==='file'?'file':'unknown',h=['table','root'];if(f)h['push']('rely');let i='';try{i=JSON['stringify'](e??{});}catch{i='';}const j=[],k=(Array['isArray'](d)?d:[])['filter'](l=>l&&l['b_submission']===!![]&&String(l['value_type'])['toLowerCase']()==='address');if(k['length']>0x0){const l=/order\.service|progress\.machine|arb\.service|order\.machine/i['test'](i);!l&&j['push']('PRE-LINT\x20R-C3-05:\x20submitted\x20Address\x20slot(s)\x20are\x20not\x20bound\x20to\x20this\x20project\x20in\x20the\x20root\x20(no\x20order.service/progress.machine\x20comparison)\x20—\x20a\x20cross-project\x20object\x20can\x20satisfy\x20this\x20Guard.\x20Add\x20the\x20binding\x20BEFORE\x20confirming:\x20the\x20Guard\x20is\x20immutable\x20after\x20creation'),!/signer/i['test'](i)&&j['push']('PRE-LINT\x20identity:\x20submitted\x20data\x20is\x20not\x20tied\x20to\x20the\x20transaction\x20signer\x20(no\x20context(Signer)\x20clause)\x20—\x20anyone\x20able\x20to\x20trigger\x20the\x20host\x20operation\x20can\x20submit\x20arbitrary\x20values.\x20Add\x20a\x20Signer\x20binding\x20if\x20the\x20submitter\x20must\x20be\x20authorized');}return{'level':'irreversible','operation':a,'object':b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','immutable_after':h,'irreversible':!![],'warnings':[...collectDefaultWarnings(c,b),'Guard\x20is\x20CREATE-only\x20and\x20immutable\x20—\x20cannot\x20be\x20edited\x20or\x20deleted\x20after\x20creation','Table\x20entries:\x20'+d['length']+'\x20(max\x20256)','Root\x20node\x20type:\x20'+g+'\x20(must\x20return\x20Bool)',...f?['Rely\x20dependencies:\x20'+(f['guards']?.['length']??0x0)+'\x20(max\x204,\x20AND/OR\x20logic)']:[],...j,'To\x20modify\x20later:\x20export\x20via\x20guard2file\x20→\x20edit\x20→\x20CREATE\x20new\x20→\x20rebind']};},'bypass_on_explicit_intent':[]},{'id':'default_values','when':(a,b,c)=>{return collectDefaultWarnings(c,b)['length']>0x0;},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['object']??b?.['namedNew']?.['name'],'network':c?.['network'],'account':c?.['account']??'','warnings':collectDefaultWarnings(c,b)}),'bypass_on_explicit_intent':['use\x20default\x20account','default\x20account\x20is\x20fine','use\x20the\x20default\x20account','default\x20account\x20works\x20fine']},{'id':'guard_gen_passport_test','when':(a,b,c)=>{if(a==='gen_passport')return!![];return![];},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['guard'],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),'gen_passport\x20will\x20consume\x20gas\x20for\x20static\x20testing']}),'bypass_on_explicit_intent':['test\x20guard','testing\x20guard','gen\x20passport','generate\x20passport']},{'id':'progress_advance','when':(a,b,c)=>{if(a!=='progress')return![];return b?.['operate']?.['op']==='next'||b?.['owner_receive']!==undefined;},'level':'standard','preview':(a,b,c)=>({'level':'standard','operation':a,'object':b?.['object'],'network':c?.['network'],'account':c?.['account']??'','warnings':[...collectDefaultWarnings(c,b),'Advancing\x20the\x20progress\x20node\x20may\x20release\x20funds\x20per\x20the\x20machine\x20allocation']}),'bypass_on_explicit_intent':[]}];export function resolveOverrideId(a,b){if(a==='publish_immutable'){if(b==='service')return'service.publish';if(b==='machine')return'machine.publish';return undefined;}if(a==='progress_advance')return'node.advance';if(a==='default_values')return'confirm.default_values';if(a==='guard_gen_passport_test')return'confirm.gen_passport_test';return undefined;}export function extractAmount(a,b){if(!a)return null;const d=i=>{if(typeof i==='number')return String(i);if(typeof i==='string'&&i!=='')return i;return null;},e=[a?.['balance'],a?.['amount'],a?.['compensation_fund_add']?.['balance'],a?.['coin_add']?.['balance'],a?.['coin']?.['balance'],a?.['order_new']?.['buy']?.['total_pay']?.['balance'],a?.['dispute']?.['fee']?.['balance'],a?.['fee'],a?.['arbitration']?.['indemnity'],a?.['deposit']?.['coin']?.['balance'],a?.['withdraw']?.['amount']?.['fixed']],f=[];for(const i of e){const j=d(i);if(j!==null)f['push'](j);}if(Array['isArray'](a?.['revenue']))for(const k of a['revenue']){const l=d(k?.['amount']?.['balance']);if(l!==null)f['push'](l);}if(Array['isArray'](a?.['guard_add']))for(const m of a['guard_add']){if(m?.['amount']?.['type']==='Fixed'){const n=d(m['amount']['value']);if(n!==null)f['push'](n);}}if(!b?.['excludeConfigAmounts'])for(const o of[a?.['allocators'],a?.['order_allocators']]){if(!o||typeof o!=='object')continue;const p=d(o['threshold']);if(p!==null)f['push'](p);for(const q of Array['isArray'](o['allocators'])?o['allocators']:[]){if(Array['isArray'](q?.['sharing']))for(const u of q['sharing']){if(u?.['mode']==='Amount'){const w=d(u['sharing']);if(w!==null)f['push'](w);}}const t=d(q?.['max']);if(t!==null)f['push'](t);}}const h=f['filter'](x=>{try{return BigInt(x)!==0x0n;}catch{return!![];}});if(h['length']===0x0)return null;if(h['length']===0x1)return h[0x0];try{return h['reduce']((x,y)=>x+BigInt(y),0x0n)['toString']();}catch{return h[0x0];}}export const OBJECT_REUSE_RULES=[{'rule_id':'REUSE-001','object_type':'permission','recommendation':'strongly_recommended','reason':'Centralized\x20permission\x20control\x20across\x20all\x20services','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Permission\x20to\x20reuse?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-002','object_type':'machine','recommendation':'recommended','reason':'Save\x20design\x20time\x20for\x20similar\x20processes','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Machine\x20whose\x20workflow\x20fits?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-003','object_type':'guard','recommendation':'recommended','reason':'Avoid\x20redundant\x20validation\x20rules','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Guard\x20with\x20matching\x20validation\x20logic?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-004','object_type':'contact','recommendation':'recommended','reason':'Single\x20point\x20of\x20customer-service\x20management','ask_user':'Do\x20you\x20have\x20an\x20existing\x20Contact\x20for\x20customer\x20service?\x20Provide\x20the\x20name\x20or\x20ID.'},{'rule_id':'REUSE-005','object_type':'arbitration','recommendation':'always_reuse','reason':'Customers\x20choose\x20from\x20established\x20arbiters;\x20creating\x20a\x20new\x20Arbitration\x20is\x20an\x20operator-level\x20decision','ask_user':'Which\x20existing\x20Arbitration\x20service\x20should\x20disputes\x20route\x20to?\x20Provide\x20the\x20name\x20or\x20ID.'}];export const CREATE_VS_MODIFY_PATTERN={'reuse_form':'string','create_form':'object','resolution_api':'GetObjectExisted','note':'String\x20reference\x20=\x20REUSE\x20(name\x20resolution\x20failure\x20is\x20a\x20hard\x20error);\x20object\x20shape\x20=\x20CREATE\x20(always).'};export const IMMUTABILITY_RULES=[{'rule_id':'IMMUT-001','object_type':'machine','trigger':'publish','immutable_fields':['nodes','pairs','forwards'],'message':'Machine\x20topology\x20is\x20immutable\x20after\x20publish\x20—\x20verify\x20all\x20nodes/forwards\x20via\x20machineNode2file\x20BEFORE\x20publishing'},{'rule_id':'IMMUT-002','object_type':'service','trigger':'publish','immutable_fields':['machine','order_allocators'],'mutable_after':['arbitrations','rewards','sales'],'message':'Service.machine\x20and\x20order_allocators\x20are\x20PERMANENTLY\x20frozen\x20after\x20publish\x20(L1);\x20arbitrations/rewards\x20can\x20still\x20be\x20ADDED\x20but\x20remove/clear\x20is\x20time-locked\x20(L2:\x20pause\x20+\x20setting_lock_duration);\x20sales\x20remains\x20fully\x20modifiable\x20(L3)\x20without\x20pause'},{'rule_id':'IMMUT-003','object_type':'guard','trigger':'create','immutable_fields':['table','root','rely'],'message':'Guard\x20is\x20CREATE-only\x20and\x20immutable\x20—\x20cannot\x20be\x20edited\x20or\x20deleted\x20after\x20creation.\x20To\x20change:\x20export\x20via\x20guard2file\x20→\x20edit\x20→\x20CREATE\x20new\x20→\x20rebind'}];export const PROTOCOL_SLOT_RULES=[{'rule_id':'TASKBIND-01','slot':0xfe,'asserted_by':['TASK-BINDING\x20GATE\x20—\x20every\x20guarded\x20forward\x20of\x20a\x20machine\x20running\x20on\x20an\x20order\x20Progress\x20requires\x20a\x20slot-254\x20passport\x20submission\x20(aborts\x20code\x2011\x20=\x20E_TASK_BINDING_REQUIRED\x20when\x20the\x20row\x20is\x20missing;\x20code\x2012\x20=\x20E_TASK_BINDING_NOT_MATCH\x20when\x20the\x20submitted\x20value\x20is\x20not\x20the\x20order\x20address)'],'required_declaration':'{\x20identifier:\x20254,\x20b_submission:\x20true,\x20value_type:\x20\x27Address\x27\x20}\x20—\x20the\x20SUBMITTED\x20VALUE\x20must\x20be\x20the\x20ORDER\x20address\x20(Progress.task\x20is\x20set\x20to\x20the\x20order\x20at\x20purchase,\x20progress.move:516);\x20submitting\x20the\x20Progress\x20address\x20aborts\x20with\x20code\x2012\x20(zrmn-261012\x20R-HANDOVER-SLOT254)','violation':'A\x20Guard\x20bound\x20to\x20a\x20machine\x20forward\x20without\x20this\x20row\x20aborts\x20every\x20forward\x20traversal\x20once\x20an\x20order\x20drives\x20the\x20Progress;\x20the\x20table\x20is\x20frozen\x20at\x20creation,\x20so\x20the\x20path\x20strands\x20permanently.','message':'Any\x20Guard\x20bound\x20on\x20a\x20machine\x20forward\x20MUST\x20declare\x20protocol\x20slot\x20254\x20(task\x20binding)\x20as\x20a\x20b_submission\x20Address\x20row.\x20The\x20compile\x20kernel\x20auto-injects\x20the\x20row\x20for\x20edge-bound\x20guards;\x20guard\x20templates\x20ship\x20it\x20in\x20example_table.'},{'rule_id':'TASKBIND-02','slot':-0x1,'asserted_by':['allocation::assert\x20—\x20each\x20{GuardIdentifier:N}\x20allocator\x20leg\x20requires\x20a\x20passport\x20submission\x20at\x20slot\x20N\x20equal\x20to\x20payment_info.for_object\x20(aborts\x20with\x20funds\x20already\x20escrowed)'],'required_declaration':'{\x20identifier:\x20N,\x20b_submission:\x20true,\x20value_type:\x20\x27Address\x27,\x20object_type:\x20\x27Order\x27\x20}\x20for\x20EVERY\x20slot\x20N\x20named\x20by\x20a\x20GuardIdentifier\x20allocator\x20leg','violation':'A\x20static\x20Address\x20slot\x20in\x20the\x20same\x20position\x20passes\x20creation\x20but\x20fails\x20the\x20same\x20allocation\x20assertion\x20(N-11)\x20—\x20the\x20distribution\x20aborts\x20and\x20escrowed\x20funds\x20stay\x20stranded\x20(amz-7f3a2c91:\x200.98991\x20WOW).','message':'Every\x20allocator\x20{GuardIdentifier:N}\x20leg\x20MUST\x20point\x20at\x20a\x20Guard\x20table\x20slot\x20N\x20declared\x20as\x20a\x20b_submission\x20Address\x20row.\x20The\x20compile\x20kernel\x20blocks\x20publish\x20when\x20the\x20slot\x20is\x20undeclared\x20(GUARD_SLOT_UNKNOWN).'}];export const OPERATION_TYPE_CLASSIFICATION={'LOCAL_ONLY':['account_operation','local_mark_operation','local_info_operation','config_operation'],'ONCHAIN':['onchain_operations','wip_file','bridge_operation','messenger_operation'],'QUERY':['query_toolkit','onchain_table_data','onchain_events','guard2file','machineNode2file','schema_query','wowok_buildin_info'],'ENCRYPTED':['messenger_operation']};export const OPERATION_CLASS_META={'LOCAL_ONLY':{'gas':![],'confirmation_required':![],'note':'Local\x20state\x20only\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'},'ONCHAIN':{'gas':!![],'confirmation_required':!![],'note':'On-chain\x20write\x20—\x20gas\x20consumed,\x20explicit\x20user\x20confirmation\x20REQUIRED\x20before\x20execution'},'QUERY':{'gas':![],'confirmation_required':![],'note':'Read-only\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'},'ENCRYPTED':{'gas':![],'confirmation_required':![],'note':'Local\x20encryption\x20—\x20no\x20gas,\x20no\x20confirmation\x20needed'}};export function classifyTool(a){if(OPERATION_TYPE_CLASSIFICATION['ENCRYPTED']['includes'](a))return'ENCRYPTED';for(const b of['LOCAL_ONLY','ONCHAIN','QUERY']){if(OPERATION_TYPE_CLASSIFICATION[b]['includes'](a))return b;}return undefined;}export const NAMING_CONVENTIONS={'scheme':'<projectPrefix>_<type>_<purpose>_<version>','parts':{'project_prefix':{'example':'shopFunny_','purpose':'Prevents\x20cross-project\x20collisions'},'type_prefix':{'example':'machine_\x20/\x20guard_\x20/\x20service_','purpose':'Clarifies\x20object\x20type'},'purpose_suffix':{'example':'serviceWithdraw','purpose':'Describes\x20function'},'version_suffix':{'example':'_v2','purpose':'Enables\x20iteration\x20without\x20replaceExistName'}},'entry_id':{'pattern':'^<object_type>:<name>$','example':'service:myshop_service'},'replace_exist_name':{'default':![],'false_effect':'Throws\x20error\x20if\x20name\x20is\x20in\x20use\x20—\x20safe\x20default','true_effect':'Existing\x20object/account\x20with\x20the\x20same\x20name\x20is\x20suspended/unbound\x20to\x20free\x20the\x20name','account_default_forbidden':'replaceExistName:true\x20on\x20the\x20default\x20account\x20(name=\x27\x27)\x20is\x20FORBIDDEN\x20—\x20use\x20suspend()\x20explicitly','recommendation':'DISCOURAGED\x20—\x20prefer\x20versioned\x20names\x20(_v1,\x20_v2)\x20for\x20production'},'recommendations':['Always\x20provide\x20tags\x20on\x20object\x20creation\x20for\x20filtering\x20and\x20management','Use\x20names\x20as\x20primary\x20identifiers;\x20use\x20short\x20address\x20form\x20(0x1234...def)\x20only\x20for\x20display','All\x20cross-object\x20references\x20(Guard\x20tables,\x20Service\x20bindings,\x20Machine\x20forwards)\x20use\x20NAMES\x20—\x20resolved\x20per-network\x20at\x20build\x20time']};export function checkObjectReuseRules(a){const b=[];for(const c of a){if(!c['is_new'])continue;const d=OBJECT_REUSE_RULES['find'](e=>e['object_type']===c['object_type']);if(!d)continue;(d['recommendation']==='always_reuse'||d['recommendation']==='strongly_recommended')&&b['push']({'rule_id':d['rule_id'],'severity':d['recommendation']==='always_reuse'?'warn':'info','message':'Creating\x20NEW\x20'+c['object_type']+(c['name']?'\x20\x22'+c['name']+'\x22':'')+'\x20—\x20reuse\x20is\x20'+d['recommendation']+':\x20'+d['reason']+'.\x20'+d['ask_user']});}return b;}export function checkImmutabilityRules(a){const b=[];for(const c of a){const d=IMMUTABILITY_RULES['find'](e=>e['object_type']===c['object_type']&&e['trigger']===c['trigger']);if(!d)continue;b['push']({'rule_id':d['rule_id'],'severity':'warn','message':''+c['object_type']+(c['name']?'\x20\x22'+c['name']+'\x22':'')+'\x20'+c['trigger']+':\x20'+d['message']+'.\x20Immutable:\x20['+d['immutable_fields']['join'](',\x20')+']'+(d['mutable_after']?'.\x20Still\x20mutable:\x20['+d['mutable_after']['join'](',\x20')+']':'')});}return b;}export const SAFETY_RULES_VERSION=0x3;
|
|
@@ -34,6 +34,12 @@ export interface ModeGuardRef {
|
|
|
34
34
|
host: "service" | "machine" | "reward" | "repository" | "arbitration";
|
|
35
35
|
purpose: string;
|
|
36
36
|
key?: string;
|
|
37
|
+
policy?: {
|
|
38
|
+
name?: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
id_from?: string;
|
|
41
|
+
value_type?: string;
|
|
42
|
+
};
|
|
37
43
|
}
|
|
38
44
|
export interface ModeMachineNode {
|
|
39
45
|
name: string;
|
|
@@ -41,6 +47,7 @@ export interface ModeMachineNode {
|
|
|
41
47
|
operator?: "merchant" | "order_payer";
|
|
42
48
|
semantic_role?: "draft" | "active" | "delivered" | "final" | "cancelled";
|
|
43
49
|
optional?: boolean;
|
|
50
|
+
threshold?: number;
|
|
44
51
|
from?: (string | ModeMachineEdge)[];
|
|
45
52
|
}
|
|
46
53
|
export interface ModeMachineEdge {
|
|
@@ -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—\x20the\x20Machine\x20stays\x20a\x20DAG','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(Machine\x20must\x20stay\x20a\x20DAG)','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(Machine\x20must\x20stay\x20a\x20DAG)','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':'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']};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=0x7;
|
|
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':'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']};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=0x7;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{classifyRelease,releaseBodyHash,releaseSentinelLine,stripReleaseSentinel}from'./release-sentinel.js';export const STRATEGY_MANUAL_FILENAME='strategy-manual.md';export const STRATEGY_MANUAL_VERSION=0x3;const MANUAL_KIND='strategy-manual';export function renderStrategyManual(a){const b=BUILTIN_STRATEGY_MANUALS[a];if(!b)return null;return releaseSentinelLine(MANUAL_KIND,b['version'],releaseBodyHash(b['body']))+'\x0a'+b['body'];}export function parseManualSentinel(a){return stripReleaseSentinel(a,MANUAL_KIND)['sentinel'];}export function classifyManualFile(a,b){const c=BUILTIN_STRATEGY_MANUALS[a];if(!c)return'user_file';const {sentinel:d,content:e}=stripReleaseSentinel(b,MANUAL_KIND);if(!d)return'user_file';return classifyRelease(d,e,c['version']);}export function getBuiltinStrategyManual(a){return BUILTIN_STRATEGY_MANUALS[a];}export function listBuiltinStrategyManualIndustries(){return Object['keys'](BUILTIN_STRATEGY_MANUALS);}const EDUCATION_MANUAL='#\x20Education\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20attendance-based\x20education\x20services\x20on\x20WoWok.\x0a>\x20Curated\x20from\x20the\x20K1\x20six-industry\x20commercial\x20handbook.\x20Figures\x20marked\x0a>\x20**[estimate]**\x20are\x20planning\x20estimates;\x20empirical\x20anchors\x20are\x20marked\x20**[K1]**.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x20live-class\x0aplatform\x27s\x2030%\x20take\x20+\x20service\x20fee\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x0adesign,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x0a(a\x20chain\x20or\x20a\x20multi-supplier\x20school\x20network)\x20you\x20may\x20charge\x20your\x20own\x20fee,\x20but\x0aonly\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x20ordering;\x20an\x20explicit\x0aNON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x20the\x20share\x20to\x20the\x0adeploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x20transit\x0apool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x0a`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x0aescrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aYou\x20are\x20not\x20selling\x20\x22crypto\x20payments\x22.\x20You\x20are\x20selling\x20the\x20one\x20guarantee\x0aparents\x20could\x20not\x20buy\x20anywhere:\x20**unearned\x20tuition\x20can\x20never\x20be\x20embezzled,\x20and\x0athe\x20parent\x20can\x20verify\x20that\x20on-chain\x20themselves.**\x0a\x0aThe\x20traditional\x20risk\x20stack\x20is\x20brutal:\x20parents\x20prepay\x20in\x20full,\x20the\x20incumbent\x0aplatform\x20takes\x2025–40%,\x20institutions\x20can\x20commingle\x20the\x20funds,\x20teachers\x20settle\x207–13\x20days\x0alater,\x20and\x20when\x20an\x20institution\x20collapses\x20(documented\x20cases\x20of\x20$500M+\x20in\x0aprepaid\x20tuition\x20unaccounted\x20for),\x20recovery\x20is\x2040–80%\x20at\x20best.\x20Regulators\x20require\x0acustody,\x20but\x20paper\x20custody\x20can\x20be\x20technically\x20hollowed\x20out\x20when\x20the\x20collecting\x0aentity\x20is\x20not\x20the\x20custodial\x20entity.\x0a\x0aYour\x20WoWok\x20structure\x20makes\x20the\x20failure\x20structurally\x20impossible:\x0a\x0a1.\x20Parent\x20prepays\x20into\x20an\x20Allocation\x20contract\x20—\x20funds\x20never\x20land\x20on\x20your\x20books.\x0a2.\x20Every\x20lesson\x27s\x20fee\x20releases\x20on\x20the\x20parent\x27s\x20attendance\x20signature\x0a\x20\x20\x20(`attendance_guard_signer`),\x20in\x20seconds.\x0a3.\x20Withdrawal\x20at\x20a\x20\x22withdrawn\x22\x20node\x20refunds\x20all\x20unearned\x20lessons\x20in\x20a\x20single\x0a\x20\x20\x20transaction,\x20with\x20no\x20institutional\x20cooperation\x20—\x20100%\x20recovery\x20by\x20design.\x0a4.\x20`setting_lock_duration`\x20locks\x20the\x20fee\x20schedule\x20(default\x2030\x20days).\x0a\x0aOne\x20sentence\x20for\x20every\x20landing\x20page:\x20*\x22Unearned\x20tuition\x20can\x20never\x20be\x20taken\x20—\x0aand\x20you\x20can\x20verify\x20that\x20sentence\x20yourself\x20on-chain.\x22*\x0a\x0aHonest\x20boundary,\x20always:\x20the\x20structure\x20prevents\x20fund\x20embezzlement.\x20It\x20does\x20not\x0aprevent\x20bad\x20teaching.\x20Say\x20so.\x20Overclaiming\x20destroys\x20the\x20only\x20moat\x20you\x20have:\x0averifiable\x20honesty.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(30-lesson\x20package)\x20|\x20¥3,000\x20**[K1]**\x20|\x0a|\x20Legacy\x20combined\x20fee\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x20Incumbent\x20live-class\x20platform\x2030%\x20≈\x20¥900/order\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20≈\x20$0.05–2.5\x20for\x20N+2\x20transactions\x20|\x0a|\x20Extra\x20per\x20order\x20|\x20≈\x20¥890\x20|\x0a|\x20Teacher\x20settlement\x20|\x207–13\x20days\x20→\x20seconds\x20|\x0a\x0aFormula:\x20extra\x20per\x20order\x20=\x20incumbent\x20fee\x20rate\x20×\x20AOV\x20−\x20(gas\x20+\x20keeper\x20amortization\x0a+\x20one-time\x20migration\x20cost).\x20That\x20incumbent\x20fee\x20is\x20the\x20number\x20being\x20displaced\x20—\x0ait\x20is\x20NOT\x20a\x20fee\x20you\x20charge;\x20under\x20direct\x20sales\x20your\x20own\x20default\x20payout\x20is\x20100%\x0aof\x20the\x20sale.\x20The\x20gas\x20line\x20is\x20noise\x20against\x20¥900\x20saved;\x20adoption\x0apays\x20on\x20essentially\x20the\x20first\x20package.\x20Price\x20in\x20fiat\x20terms\x20—\x20WOW\x20token\x0avolatility\x20must\x20never\x20enter\x20a\x20parent\x27s\x20tuition\x20decision.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Per-lesson\x20escrow\x20release**\x20(default).\x20Escrowed\x20package,\x201/N\x20release\x20per\x0a\x20\x20\x20attendance\x20signature.\x20Fits\x20every\x20attendance-based\x20scenario.\x0a2.\x20**Package\x20price\x20with\x20rate-based\x20release**.\x20¥3,000\x20class\x20packages;\x20refund\x0a\x20\x20\x20policy\x20declared\x20up\x20front;\x20compensation\x20fund\x20bound.\x0a3.\x20**Trial-class\x20conversion\x20price**.\x20One\x20escrowed\x20trial,\x20enrollment\x20balance\x0a\x20\x20\x20only\x20after\x20the\x20parent\x20signs;\x20pairs\x20with\x20referral\x20reward.\x20Never\x20run\x20trials\x0a\x20\x20\x20permanently\x20below\x20delivery\x20cost.\x0a\x0aPosture\x20guidance:\x0a\x0a-\x20**Volume**:\x20group-buy\x20and\x20early-bird\x20through\x20parent\x20KOC\x20communities;\x0a\x20\x20trial-class\x20discounts\x20as\x20the\x20cold-start\x20hook.\x20Never\x20below\x20per-lesson\x20cost.\x0a-\x20**Balanced**:\x20mix\x20institutional\x20B2B\x20direct\x20selling\x20with\x20community\x20KOC\x20growth.\x0a-\x20**Margin**:\x20sell\x20compliance\x20to\x20mid-size\x20institutions\x20as\x20a\x20moat\x20—\x20\x22I\x20locked\x0a\x20\x20tuition\x20into\x20an\x20on-chain\x20contract;\x20do\x20you\x20dare?\x22\x20is\x20*their*\x20sales\x20line\x20to\x0a\x20\x20parents.\x20BD\x20costs\x20¥1,500–3,000\x20per\x20signed\x20institution.\x0a\x0aRecorded/self-paced\x20courses\x20are\x20a\x20MISMATCH.\x20Route\x20them\x20to\x20the\x20subscription\x0amodel\x20(per-period\x20signed\x20charges\x20+\x20delivery\x20gate).\x20Do\x20not\x20sell\x20them\x20as\x0aattendance\x20escrow\x20—\x20the\x20mode-fit\x20check\x20is\x20a\x20standard\x20intake\x20action.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Service\x20with\x20the\x20education\x20blueprint:\x20`attendance_guard_signer`\x20at\x0a\x20\x20\x20\x20\x20\x20every\x20lesson\x20node,\x20rate-mode\x20Allocator\x20releasing\x20per\x20lesson.\x0a-\x20[\x20]\x20A\x20\x22withdrawn\x22\x20node\x20with\x20a\x20one-transaction\x20refund\x20Allocator\x20path.\x0a-\x20[\x20]\x20`setting_lock_duration`\x20on\x20the\x20fee\x20schedule.\x0a-\x20[\x20]\x20Arbitration\x20bound\x20+\x20compensation\x20fund\x20funded.\x0a-\x20[\x20]\x20Public\x20verification\x20view:\x20order,\x20Allocation\x20and\x20Payment\x20objects\x0a\x20\x20\x20\x20\x20\x20readable\x20by\x20the\x20parent\x20(reverse\x20readability\x20is\x20validated\x20in\x20K1).\x0a-\x20[\x20]\x20Target:\x20a\x20fully\x20configured\x20shop\x20in\x20≤10\x20guided\x20dialogues\x20(K1\x20validated\x2011).\x0a\x0a##\x205.\x20The\x2090-day\x20campaigns\x0a\x0a**Campaign\x20A\x20—\x20\x22Tuition\x20Transparency\x20Experiment\x22\x20(M1–M2).**\x20One\x20seed\x0ainstitution\x20runs\x20two\x20parallel\x20classes:\x20traditional\x20collection\x20vs\x20WoW\x0acustody.\x20Publish\x20everything:\x20parents\x20see\x20the\x20B-class\x20contract\x20balance\x20and\x0arelease\x20records.\x20At\x20the\x20week-4\x20parent\x20open\x20day,\x20demo\x20a\x20mid-course\x20withdrawal\x0arefund\x20live,\x20one\x20transaction.\x20KPI:\x201\x20anchor\x20institution,\x20≥30\x20escrow\x20orders,\x0aone\x20verifiable\x20case\x20piece,\x20parent\x20NPS\x20≥60.\x20Budget\x20$6–9K\x20**[estimate]**.\x0a\x0a**Campaign\x20B\x20—\x20\x22The\x20Regulatory\x20Answer\x22\x20(M2–M3).**\x20No\x20ads.\x20Publish\x20the\x0awhite-paper\x20*From\x20Paper\x20Custody\x20to\x20Protocol\x20Custody*,\x20route\x20it\x20to\x20local\x0aregulatory\x20discussions,\x20trade\x20media\x20and\x20parent\x20communities.\x20Frame:\x20\x22WoW\x20is\x0athe\x20technical\x20answer\x20to\x20custody\x20regulation,\x20not\x20its\x20object.\x22\x20Have\x20a\x2024-hour\x0aresponse\x20draft\x20ready\x20for\x20the\x20next\x20sector\x20failure\x20news\x20cycle\x20—\x20one\x20will\x20come.\x0aKPI:\x202\x20media\x20citations,\x203\x20inbound\x20institutions,\x20$0\x20ad\x20spend.\x0a\x0a##\x206.\x20Channels\x20in\x20order\x0a\x0a1.\x20Parent-rights\x20and\x20local\x20parent\x20KOC\x20groups\x20(¥30–80\x20per\x20paying\x20parent).\x0a2.\x20Institutional\x20direct\x20BD\x20—\x20supply\x20decides\x20the\x20two-sided\x20cold\x20start.\x0a3.\x20Industry\x20media\x20/\x20policy\x20white-papers\x20—\x20zero-cost\x20endorsement.\x0a4.\x20Paid\x20ads\x20—\x20do\x20not\x20use\x20in\x20the\x20first\x2090\x20days;\x20they\x20conflict\x20with\x20the\x20trust\x0a\x20\x20\x20narrative.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Show\x20the\x20contract\x20balance\x20and\x20release\x20history\x20BEFORE\x20payment.\x0a-\x20The\x20live\x20withdrawal-refund\x20demo\x20is\x20the\x20trial-to-enrollment\x20closer.\x0a-\x20Renew\x20on\x20per-lesson\x20release\x20history\x20+\x20attendance\x20records;\x20use\x20sibling\x20and\x0a\x20\x20referral\x20rewards\x20rather\x20than\x20discounting.\x0a-\x20Institutions\x20can\x20recruit\x20teachers\x20with\x20\x22settlement\x20in\x20seconds\x22\x20—\x20the\x20same\x0a\x20\x20feature\x20sells\x20both\x20sides.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aTrack\x20headline\x20price\x20vs\x20escrow\x20structure,\x20arbitration\x20availability,\x0acompensation-fund\x20coverage,\x20release\x20granularity,\x20and\x20refund-window\x20terms.\x0aNever\x20respond\x20to\x20a\x20price\x20war\x20with\x20discounts:\x20respond\x20by\x20inviting\x20the\x20parent\x0ato\x20read\x20the\x20contract.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Recorded-only\x20products\x20route\x20to\x20subscription\x20—\x20never\x20disguised\x20as\x0a\x20\x20\x20attendance\x20courses.\x0a2.\x20Never\x20imply\x20the\x20structure\x20guarantees\x20teaching\x20quality.\x0a3.\x20All\x20external\x20material\x20carries\x20the\x20testnet\x20/\x20estimate\x20/\x20WOW-price\x0a\x20\x20\x20disclaimers.\x20Fiat-denominated\x20figures\x20only.\x0a',RENTAL_MANUAL='#\x20Rental\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20high-value\x20equipment\x20and\x20P2P\x20rentals\x20on\x0a>\x20WoWok.\x20Anchors\x20marked\x20**[k1rent]**\x20come\x20from\x20the\x20fully\x20executed\x20on-chain\x0a>\x20rental\x20pilot;\x20**[estimate]**\x20marks\x20planning\x20figures.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x27s\x2015.5%\x20host\x0acommission\x20+\x20guest\x20service\x20fee\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x0adesign,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x0a(a\x20chain,\x20an\x20equipment\x20fleet\x20operator,\x20a\x20hosting\x20consortium)\x20you\x20may\x20charge\x0ayour\x20own\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x0aordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x0athe\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x0amandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x0awhich\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aRentals\x20are\x20a\x20dispute\x20business\x20that\x20pretends\x20to\x20be\x20a\x20utilization\x20business.\x0aThe\x20incumbent\x20stack\x20has\x20three\x20structural\x20holes:\x0a\x0a1.\x20**Fake\x20deposits.**\x20Card\x20pre-authorizations\x20are\x20not\x20real\x20deductions;\x2077%\x20of\x0a\x20\x20\x20hosts\x20collect\x20no\x20deposit\x20at\x20all\x20—\x20deterrence\x20is\x20zero.\x0a2.\x20**Evidence\x20asymmetry.**\x20Without\x20dated\x20pre-rental\x20photos,\x20damage-claim\x0a\x20\x20\x20rejection\x20runs\x2020%\x20→\x2070%;\x20even\x20paid\x20claims\x20are\x20discounted\x20for\x20depreciation\x0a\x20\x20\x20(60–85%\x20actually\x20paid).\x0a3.\x20**Slow,\x20weaponized\x20settlement.**\x20Refunds\x20take\x207–15\x20business\x20days;\x20review\x0a\x20\x20\x20extortion\x20($50–200\x20per\x20review)\x20shares\x20the\x20same\x20game\x20window\x20as\x20claims.\x0a\x0aWoWok\x20closes\x20all\x20three.\x20Rent\x20+\x20a\x20REAL\x20deposit\x20are\x20bundled\x20into\x20the\x20order\x20and\x0aescrowed\x20in\x20the\x20Allocation\x20contract.\x20A\x20pre-rental\x20WIP\x20hash\x20baseline\x20is\x0amandatory\x20at\x20the\x20handover_out\x20node.\x20On\x20return,\x20post-rental\x20WIP\x20is\x20compared\x20and\x0aexactly\x20one\x20of\x20three\x20mutually\x20exclusive\x20Allocator\x20paths\x20fires:\x20clean\x20return\x0a(deposit\x20back\x20in\x20full),\x20cancellation\x20(full\x20refund),\x20or\x20graded\x20damage\x0adeduction.\x20Settlement\x20is\x20a\x20single\x20allocation\x20transaction\x20—\x20≈3\x20seconds\x20on\x0ak1rent\x20**[k1rent]**\x20—\x20exact\x20to\x20the\x20cent.\x0a\x0aYour\x20sentence:\x20*\x22The\x20incumbent\x20platform\x20itself\x20admitted\x20the\x20evidence\x20crisis\x20—\x0awe\x20turned\x20it\x20into\x20structural\x20immunity,\x20and\x20the\x20deposit\x20is\x20real.\x22*\x0a\x0a##\x202.\x20The\x20k1rent\x20receipts\x20are\x20your\x20marketing\x0a\x0aThree\x20immutable\x20Payment\x20records\x20exist\x20from\x20the\x20pilot:\x0a\x0a-\x20`0x078b0834`\x20—\x20clean:\x202\x20rent\x20→\x20merchant,\x203\x20deposit\x20→\x20customer;\x0a-\x20`0xfac811d5`\x20—\x20cancellation:\x205\x20fully\x20→\x20customer;\x0a-\x20`0xe812ed37`\x20—\x20damage:\x203.5\x20→\x20merchant,\x201.5\x20→\x20customer.\x0a\x0aA\x20traditional\x20platform\x27s\x20\x22case\x20study\x22\x20cannot\x20be\x20independently\x20verified.\x20These\x0athree\x20can,\x20by\x20anyone,\x20forever.\x20Build\x20the\x20interactive\x20audit\x20page\x20around\x20the\x0a10-node\x20machine\x20+\x20three\x20paths\x20and\x20make\x20that\x20page\x20the\x20center\x20of\x20your\x0aacquisition.\x0a\x0a##\x203.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(camera,\x203\x20days)\x20|\x20$200\x20|\x0a|\x20Legacy\x20host-side\x20commission\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2015.5%\x20≈\x20$31/order\x20|\x0a|\x20Full-cycle\x20WoW\x20cost\x20|\x20≈\x200.05\x20WOW\x20≈\x20¥0.35\x20(5–7\x20txns)\x20**[k1rent]**\x20|\x0a|\x20Deposit\x20refund\x20|\x207–15\x20business\x20days\x20→\x20≈3\x20seconds\x20|\x0a|\x20Insurance/arbitration\x20collapse\x20|\x20Incumbent\x20vehicle-rental\x20platform:\x20$750M\x20burden\x20|\x0a\x0aThat\x2015.5%\x20is\x20the\x20incumbent\x27s,\x20not\x20yours:\x20under\x20direct\x20sales\x20the\x20host\x27s\x20default\x0apayout\x20is\x20Rate\x2010000\x20to\x20the\x20host\x27s\x20own\x20Entity,\x20and\x20the\x20deposit\x20refund\x20is\x20a\x0aseparate\x20leg\x20to\x20the\x20customer.\x20Only\x20a\x20declared\x20third\x20party\x20(cleaning,\x20repair)\x0aever\x20earns\x20a\x20non-zero\x20share,\x20and\x20its\x20Entity\x20must\x20be\x20non-empty\x20and\x20visible\x20to\x20the\x0arenter\x20BEFORE\x20the\x20order\x20is\x20funded.\x0a\x0aPrice\x20floor:\x20rental\x20rate\x20must\x20cover\x20maintenance\x20+\x20depreciation\x20+\x0abracket-expected\x20damage.\x20The\x20deposit\x20is\x20never\x20lent\x20against\x20or\x20rehypothecated.\x0a\x0a##\x204.\x20Pricing\x20models\x0a\x0a1.\x20**Rent\x20+\x20deposit\x20bundled\x20escrow,\x20three-path\x20settlement**\x20(default\x20and\x0a\x20\x20\x20core).\x20Pre-rental\x20WIP\x20baseline\x20is\x20non-negotiable\x20—\x20without\x20it\x20the\x20damage\x0a\x20\x20\x20guard\x20cannot\x20pass\x20and\x20the\x20product\x20does\x20not\x20exist.\x0a2.\x20**Pre-agreed\x20graded\x20damage\x20brackets**\x20(light\x2020%\x20/\x20heavy\x2050%\x20/\x20total\x20100%)\x0a\x20\x20\x20for\x20continuous\x20damage\x20amounts\x20like\x20the\x20$347.50\x20case.\x20Brackets\x20are\x0a\x20\x20\x20disclosed\x20and\x20accepted\x20at\x20order\x20time;\x20micro-arbitration\x20only\x20assigns\x20the\x0a\x20\x20\x20bracket\x20—\x20it\x20never\x20improvises\x20amounts.\x0a3.\x20**Duration\x20discount\x20ladder**\x20(monthly\x2010%\x20/\x20quarterly\x2020%\x20/\x20annual\x2030%)\x0a\x20\x20\x20to\x20push\x20utilization,\x20never\x20below\x20maintenance\x20+\x20depreciation\x20per\x20period.\x0a\x0aPosture\x20guidance:\x20volume\x20plays\x20utilization\x20and\x20repeat\x20credits\x20(but\x20never\x0awaives\x20the\x20real\x20deposit);\x20margin\x20sells\x20premium\x20high-value\x20gear\x20on\x0averifiable\x20deposit\x20safety\x20and\x203-second\x20refunds;\x20balanced\x20runs\x20the\x2010-merchant\x0aseed\x20program.\x0a\x0a##\x205.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x2010-node\x20rental\x20machine\x20with\x20handover_out\x20baseline\x20node\x20and\x20return\x20node.\x0a-\x20[\x20]\x20WIP\x20hash\x20capture\x20guided\x20UX\x20at\x20both\x20handover\x20and\x20return\x20(this\x20is\x20the\x0a\x20\x20\x20\x20\x20\x20trust\x20moment\x20—\x20make\x20it\x20easy,\x20not\x20bureaucratic).\x0a-\x20[\x20]\x20Three\x20mutually\x20exclusive\x20Allocator\x20paths,\x20first-match\x20semantics.\x0a-\x20[\x20]\x20Independent\x20arbitration\x20permission\x20(see\x20red\x20line:\x20do\x20not\x20claim\x0a\x20\x20\x20\x20\x20\x20contract-enforced\x20independence\x20without\x20negative-test\x20backing).\x0a-\x20[\x20]\x20Keeper\x20auto-return\x20reminders\x20as\x20standard\x20onboarding,\x20$5–20/month\x0a\x20\x20\x20\x20\x20\x20transparently\x20priced.\x0a-\x20[\x20]\x20Compensation\x20fund\x20sized\x20for\x20the\x20high-value\x20inventory\x20tail.\x0a\x0a##\x206.\x20The\x2090-day\x20campaigns\x0a\x0a**Campaign\x20A\x20—\x20\x22Audit\x20This\x20Ledger\x20Yourself\x22\x20(M1).**\x20Publish\x20the\x20k1rent\x0aaudit\x20page\x20and\x20invite\x20anyone\x20to\x20audit\x20it.\x20Distribute\x20in\x20photography\x20forums,\x0acamera\x20second-hand\x20groups,\x20Reddit\x20r/photography,\x20Bilibili\x20gear\x20channels.\x20KPI:\x0a≥5,000\x20audit-page\x20UV,\x203\x20inbound\x20rental\x20merchants,\x201\x20organic\x20KOC\x20retelling.\x0aBudget\x20$1.5–2.5K\x20**[estimate]**.\x0a\x0a**Campaign\x20B\x20—\x20\x22Deposit\x20Protection\x20Program\x22\x20(M1–M3).**\x20Recruit\x2010\x20equipment\x0arental\x20merchants;\x20templated\x20build\x20≤10\x20dialogues;\x20keeper\x20subsidy\x20$20/mo\x20per\x0amerchant\x20plus\x20first-order\x20gas\x20subsidy\x20for\x203\x20months.\x20KPI:\x2010\x20published\x0aServices,\x20≥100\x20cumulative\x20orders,\x20zero\x20escalated\x20disputes\x20(everything\x20closed\x0aby\x20guard\x20or\x20on-chain\x20micro-arbitration).\x20Budget\x20$8–12K\x20**[estimate]**.\x0a\x0a##\x207.\x20Cold-start\x20mechanics\x0a\x0aSign\x20supply\x20first.\x20Equipment\x20owners\x20get\x20the\x20deposit-custody\x20sales\x20line;\x20\x22my\x0arule:\x20on-chain\x20deposit\x22\x20is\x20their\x20filter\x20for\x20serious\x20renters.\x20Owners\x20bring\x0ademand.\x20Targets:\x20camera/gear,\x20construction\x20machinery,\x20outdoor\x20equipment,\x20and\x0aP2P\x20hosts\x20—\x20high-value,\x20low-frequency,\x20damage-dispute-rich,\x20AOV\x20$100–500.\x0a\x0aIntercept\x20second-hand\x20marketplace\x20dispute\x20threads\x20with\x20one\x20line:\x20\x22this\x0adispute\x20could\x20not\x20have\x20happened\x20on\x20WoW\x22\x20—\x20plus\x20the\x20audit\x20link.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(biweekly)\x0a\x0aRent\x20price,\x20whether\x20the\x20deposit\x20is\x20actually\x20held\x20(vs\x20card\x20auth),\x20pre-rental\x0aevidence\x20requirement,\x20refund\x20speed,\x20arbitration\x20independence.\x20Cite\x0aopponents\x27\x20own\x20documents\x20(incumbent\x20policy\x20reversals\x20such\x20as\x20AI-image\x20claim\x0abans,\x20and\x20platform\x20shutdowns)\x20—\x20their\x20copy\x20outperforms\x20any\x20copy\x20you\x20could\x20write.\x0a\x0a##\x209.\x20Retention\x0a\x0a-\x20Show\x20historical\x20settlement\x20transactions\x20to\x20first-time\x20renters\x20before\x20they\x0a\x20\x20fund.\x0a-\x20Re-rental\x20via\x20accumulated\x20credit,\x20not\x20coupons.\x0a-\x20Keep\x20claims\x20structurally\x20separate\x20from\x20reviews\x20—\x20this\x20kills\x20review\x0a\x20\x20extortion\x20and\x20is\x20worth\x20saying\x20out\x20loud.\x0a\x0a##\x2010.\x20Red\x20lines\x0a\x0a1.\x20No\x20damage\x20deduction\x20without\x20a\x20pre-rental\x20baseline\x20(guard\x20must\x20fail).\x0a2.\x20\x22Contract-enforced\x22\x20arbitration\x20claims\x20require\x20negative-test\x20backing\x0a\x20\x20\x20first\x20(P-5\x20lesson).\x0a3.\x20Never\x20hide\x20the\x20keeper\x20subscription\x20cost.\x0a',FREELANCE_MANUAL='#\x20Freelance\x20(Services)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20project-based\x20freelancers\x20and\x20small\x20studios\x0a>\x20on\x20WoWok.\x20Anchors\x20from\x20the\x20K1\x20enterprise\x20talent-marketplace\x20analysis;\x0a>\x20**[estimate]**\x20marks\x20planning\x20figures.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x27s\x2015.4%\x20take\x0a(+\x20its\x203–7.99%\x20client-side\x20fee\x20and\x20contract\x20startup\x20fee)\x20into\x20an\x20allocator:\x20that\x0ashare\x20is\x20displaced\x20by\x20design,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x0ayou\x20ARE\x20the\x20aggregator\x20(a\x20talent\x20agency,\x20a\x20multi-contract\x20orchestrator)\x20you\x20may\x0acharge\x20your\x20own\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x0abefore\x20ordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x0aroutes\x20the\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x0ano\x20mandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x0aleg,\x20which\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aIncumbent\x20freelance\x20platforms\x20extract\x20on\x20four\x20axes\x20simultaneously:\x0a\x0a-\x2015.4%\x20take\x20(plus\x203–7.99%\x20client-side\x20fees\x20and\x20contract\x20startup\x20fees);\x0a-\x20Connects\x20bid-entry\x20costs\x20of\x20$48–120\x20for\x20a\x20first\x20order,\x20with\x20~60%\x20of\x0a\x20\x20proposals\x20getting\x20no\x20reply;\x0a-\x20up\x20to\x2027\x20days\x20from\x20delivery\x20to\x20settled\x20cash;\x0a-\x20arbitration\x20at\x20$337.50\x20per\x20party\x20—\x20which\x20makes\x20every\x20dispute\x20under\x20~$700\x0a\x20\x20structurally\x20unsolvable,\x20precisely\x20the\x20long-tail\x20amount\x20band;\x0a-\x20reputation\x20locked\x20inside\x20the\x20platform\x20(JSS),\x20plus\x2010-minute\x20screenshot\x0a\x20\x20surveillance\x20(Work\x20Diary).\x0a\x0aWoWok\x20flips\x20each\x20one:\x20escrow\x20at\x20signing,\x20WIP\x20delivery\x20anchoring,\x20acceptance\x0asignature\x20releasing\x20funds\x20in\x20seconds,\x2014-day\x20silence\x20auto-acceptance\x20via\x20time\x0aguard\x20+\x20keeper,\x20micro-arbitration\x20at\x20any\x20amount,\x20and\x20a\x20Passport\x20credential\x0athe\x20freelancer\x20carries\x20across\x20every\x20client\x20and\x20industry.\x0a\x0aYour\x20sentence:\x20*\x22The\x20incumbent\x20says\x20disputes\x20under\x20$700\x20aren\x27t\x20worth\x20solving.\x0aWe\x20say\x20every\x20one\x20is\x20—\x20and\x20your\x20reputation\x20is\x20your\x20asset,\x20not\x20their\x20hostage.\x22*\x0a\x0aPhilosophy\x20line\x20that\x20also\x20functions\x20as\x20a\x20filter:\x20**we\x20verify\x20outcomes,\x20we\x20do\x0anot\x20monitor\x20processes.**\x20Decline\x20hourly-surveillance\x20clients\x20happily.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Milestone\x20contract\x20AOV\x20|\x20$1,000\x20|\x0a|\x20Legacy\x20take\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2015.4%\x20≈\x20$154\x20(+\x20client\x203–7.99%)\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20$0.01–0.6\x20across\x204–8\x20txns\x20|\x0a|\x20Arbitration\x20|\x20≈\x20$0.01\x20vs\x20$337.50/party\x20|\x0a|\x20Settlement\x20|\x20up\x20to\x2027\x20days\x20→\x20seconds\x20|\x0a\x0aA\x20single\x20$1,000\x20contract\x20retains\x20≈$153\x20that\x20used\x20to\x20leave;\x20adoption\x20pays\x20on\x0athe\x20first\x20escrowed\x20job.\x20That\x20$154\x20is\x20the\x20incumbent\x27s\x20cut,\x20not\x20a\x20line\x20in\x20your\x0aallocator\x20—\x20your\x20default\x20settlement\x20is\x20Rate\x2010000\x20to\x20your\x20own\x20Entity.\x20If\x20you\x0aare\x20an\x20agency\x20orchestrating\x20several\x20freelancers,\x20your\x20own\x20fee\x20must\x20be\x20an\x0aexplicit\x20Amount\x20or\x20Rate\x20leg\x20to\x20an\x20explicit\x20non-empty\x20Entity,\x20disclosed\x20before\x0athe\x20client\x20orders\x20—\x20never\x20an\x20implicit\x20remainder\x20and\x20never\x20a\x20`Surplus`\x20entry.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Milestone\x20escrow\x20with\x20acceptance\x20signature**\x20(default).\x20Every\x20milestone\x0a\x20\x20\x20objectively\x20verifiable;\x20`deliver_guard_wip`\x20anchors\x20the\x20delivery,\x0a\x20\x20\x20`accept_guard_signer`\x20releases,\x2014-day\x20time\x20guard\x20auto-accepts.\x0a2.\x20**Fixed-price\x20deliverable\x20with\x20revision\x20loops**\x20(logos,\x20translations,\x0a\x20\x20\x20articles).\x20Revision\x20rounds\x20modeled\x20as\x20machine\x20loops\x20—\x20cap\x20the\x20rounds\x20up\x0a\x20\x20\x20front.\x0a3.\x20**Demand-based\x20reverse\x20bidding**:\x20clients\x20post\x20Demands,\x20you\x20present\x20with\x0a\x20\x20\x20Passport/trust\x20gating;\x20zero\x20connect\x20fees,\x20no\x2060%-no-reply\x20graveyard.\x0a\x0aPosture\x20guidance:\x20volume\x20competes\x20on\x20Demand\x20participation\x20and\x20first-order\x0aspeed;\x20margin\x20positions\x20on\x20public\x20on-chain\x20delivery\x20history\x20and\x20refuses\x0aprocess\x20surveillance;\x20balanced\x20standardizes\x20milestone\x20templates\x20and\x20mixes\x0aDemand\x20with\x20referral\x20clients.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Service\x20priced\x20per\x20milestone\x20(3–5\x20splits\x20in\x20the\x20first\x20proposal\x20—\x20it\x0a\x20\x20\x20\x20\x20\x20de-risks\x20the\x20client\x20and\x20signals\x20professionalism).\x0a-\x20[\x20]\x20Escrow\x20before\x20any\x20work\x20starts.\x20Never\x20start\x20on\x20a\x20\x22trusted\x20client\x22\x0a\x20\x20\x20\x20\x20\x20promise.\x0a-\x20[\x20]\x20WIP\x20hashing\x20at\x20each\x20delivery;\x20acceptance\x20gate;\x2014-day\x20auto-accept\x20time\x0a\x20\x20\x20\x20\x20\x20guard\x20+\x20keeper.\x0a-\x20[\x20]\x20Arbitration\x20bound\x20even\x20on\x20small\x20jobs\x20—\x20the\x20cost\x20is\x20trivial\x20and\x20the\x0a\x20\x20\x20\x20\x20\x20availability\x20is\x20the\x20pitch.\x0a-\x20[\x20]\x20Passport\x20issuance\x20workflow\x20ready\x20before\x20leading\x20with\x20portability\x0a\x20\x20\x20\x20\x20\x20claims\x20(BUG-02\x20P0\x20dependency).\x0a\x0a##\x205.\x20Campaign\x20sequencing\x20(start\x20M2,\x20need\x20≥20\x20merchants\x20first)\x0a\x0a**\x22$699\x20Arbitration\x20Clinic\x22\x20(M2–M3).**\x20Publicly\x20accept\x20and\x20resolve\x20real\x0asub-$700\x20commercial\x20disputes\x20on-chain;\x20publish\x20a\x20weekly\x20micro-arbitration\x0adocumentary.\x20KPI:\x20≥10\x20closed\x20arbitrations,\x20≥3,000\x20average\x20reads\x20per\x20episode,\x0aarbitrator\x20pool\x20≥15.\x20Budget\x20$3–5K\x20**[estimate]**.\x0a\x0a**\x22Transparent\x20Income\x20Witnesses\x22\x20KOC\x20program.**\x20Sign\x205–8\x20mid-tier\x20(not\x0ahead-tier)\x20freelancers\x20who\x20publish\x20real\x20incumbent-vs-WoW\x20income\x20comparisons\x20at\x0aauditable\x20addresses.\x20KOL\x20settlement\x20auto-splits\x20via\x20Allocation\x20after\x20verified\x0afirst-order\x20conversion\x20—\x20no\x20monthly\x20net\x20terms.\x20KPI:\x20≥30\x20registered\x0afreelancers\x20per\x20KOC,\x20on-chain-verifiable\x20conversion\x20≥8%.\x20Budget\x20$6–10K\x0a**[estimate]**.\x0a\x0a##\x206.\x20Channels\x0a\x0ar/freelance,\x20Indie\x20Hackers,\x20digital-nomad\x20communities\x20(67%\x20of\x20Gen\x20Z\x20regard\x0amultiple\x20income\x20streams\x20as\x20essential\x20—\x20Passport\x20lands\x20here),\x20design\x20and\x0atranslation\x20verticals,\x20and\x20Demand\x20bounty\x20events\x20for\x20the\x20demand\x20side.\x0aEstimated\x20$3–8\x20per\x20registered\x20freelancer\x20**[estimate]**.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Proposals\x20show\x20WIP\x20hashes\x20of\x20similar\x20completed\x20milestones.\x0a-\x20Always\x20propose\x20the\x20milestone\x20split\x20in\x20the\x20first\x20message.\x0a-\x20At\x20delivery,\x20explicitly\x20point\x20at\x20the\x20Passport\x20credential\x20earned:\x20every\x0a\x20\x20clean\x20completion\x20is\x20a\x20portable\x20asset.\x20That\x20sentence\x20is\x20the\x20retention\x20loop.\x0a-\x20Revision\x20scope\x20is\x20agreed\x20before\x20escrow,\x20never\x20negotiated\x20mid-delivery.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(biweekly)\x0a\x0aEffective\x20fee\x20after\x20tiered\x20cuts,\x20escrow\x20availability,\x20settlement\x20speed,\x0aarbitration\x20fee\x20floor,\x20reputation\x20portability.\x20Let\x20the\x20incumbent\x20platform\x27s\x20own\x0afee\x20adjustment\x20notices\x20carry\x20the\x20contrast\x20—\x20every\x20one\x20of\x20those\x20figures\x20is\x20theirs,\x0aand\x20none\x20of\x20them\x20is\x20a\x20default\x20you\x20inherit.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20No\x20work\x20before\x20milestone\x20escrow.\x0a2.\x20No\x20reputation-portability\x20claims\x20before\x20Passport\x20issuance\x20UX\x20is\x0a\x20\x20\x20production-ready.\x0a3.\x20Never\x20bid\x20below\x20the\x20minimum-rate\x20floor\x20to\x20win\x20volume\x20—\x20outcome\x0a\x20\x20\x20verification\x20is\x20a\x20premium\x20position.\x0a',SUBSCRIPTION_MANUAL='#\x20Subscription\x20/\x20Membership\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20creator\x20memberships,\x20newsletters\x20and\x20indie\x0a>\x20software\x20on\x20WoWok.\x20Anchors\x20from\x20the\x20K1\x20creator-membership\x20/\x20fan-subscription\x20/\x0a>\x20app-store-IAP\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20creator\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x20membership\x0aplatform\x27s\x2010%\x20(or\x20the\x20app\x20store\x27s\x2030%\x20IAP\x20cut)\x20into\x20an\x20allocator:\x20those\x0ashares\x20are\x20displaced\x20by\x20design,\x20not\x20parameters,\x20and\x20nobody\x20would\x20receive\x20them.\x0aIf\x20you\x20ARE\x20the\x20aggregator\x20(a\x20bundle\x20seller,\x20a\x20multi-creator\x20programme,\x20an\x0aapp\x20distributor\x20reselling\x20several\x20creators)\x20you\x20may\x20charge\x20your\x20own\x20fee,\x20but\x0aonly\x20with:\x20an\x20explicit\x20number\x20the\x20subscriber\x20can\x20compute\x20before\x20ordering;\x20an\x0aexplicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x20the\x20share\x20to\x0athe\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x0atransit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x0a`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x0aescrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aThe\x20subscription\x20industry\x20runs\x20on\x20institutional\x20dark\x20patterns:\x20incumbent\x0amembership\x20platforms\x20raised\x20fees\x20unilaterally\x20three\x20times\x20in\x20thirteen\x20years\x0a(5%\x20→\x208–12%\x20→\x2010%);\x20app-store\x20IAP\x20takes\x2030%\x20and\x20floats\x20payouts\x20for\x20up\x20to\x2075\x0adays;\x20consumers\x20underestimate\x20subscription\x20spend\x20by\x202.5×\x20and\x2042%\x20pay\x20for\x0aservices\x20they\x20do\x20not\x20use;\x20incumbent\x20cancellation\x20flows\x20ran\x204\x20pages\x20/\x206\x20clicks\x20/\x0a15\x20options\x20(FTC\x20$2.5B\x20settlement\x20context);\x20and\x20creators\x20who\x20stop\x20publishing\x0akeep\x20getting\x20paid\x20by\x20their\x20subscribers.\x0a\x0aYour\x20structure\x20makes\x20the\x20dark\x20patterns\x20impossible\x20rather\x20than\x20merely\x0adisclosed:\x0a\x0a-\x20`charge_guard_signer`\x20—\x20EVERY\x20period\x27s\x20charge\x20needs\x20the\x20subscriber\x27s\x0a\x20\x20explicit\x20signature.\x20No\x20auto-renewal\x20path\x20exists.\x0a-\x20`deliver_guard_wip`\x20—\x20without\x20delivered\x20value,\x20the\x20period\x27s\x20charge\x20cannot\x0a\x20\x20pass.\x20This\x20is\x20an\x20industry\x20blank:\x20no\x20incumbent\x20can\x20offer\x20it.\x0a-\x20`cancel_guard_signer`\x20—\x20cancellation\x20is\x20one\x20signature\x20(15\x20options\x20→\x201).\x0a-\x20Allocation\x20100%\x20→\x20creator,\x20frozen\x20at\x20publish.\x20The\x20thirteen-year\x20rate-ratchet\x0a\x20\x20history\x20cannot\x20repeat;\x20it\x20is\x20a\x20protocol\x20property,\x20not\x20a\x20promise.\x0a\x0aThe\x20per-period\x20signature\x20is\x20DELIBERATE\x20FRICTION.\x20Sell\x20it\x20correctly:\x20friction\x0ais\x20protection;\x20the\x20people\x20who\x20remain\x20after\x20signing\x20are\x20real\x20fans;\x20the\x20friction\x0ais\x20a\x20retention-quality\x20certificate.\x20Never\x20sneak\x20auto-renewal\x20back\x20in\x20to\x0aoptimize\x20conversion.\x0a\x0aYour\x20sentence:\x20*\x22Thirteen\x20years\x20of\x20unilateral\x20price\x20raises\x20cannot\x20exist\x20in\x20a\x0afrozen\x20contract\x20—\x20and\x20every\x20single\x20charge\x20is\x20one\x20you\x20signed\x20yourself.\x22*\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Creator\x20monthly\x20anchor\x20|\x20$100/month\x20($1,200/year)\x20|\x0a|\x20Legacy\x20take\x20(INCUMBENT\x20benchmarks,\x20displaced\x20—\x20not\x20parameters)\x20|\x20Incumbent\x20membership\x20platform\x2010%\x20≈\x20$10/month;\x20mobile\x20app-store\x20IAP\x2030%\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20$0.03–2\x20across\x2024\x20annual\x20txns\x20|\x0a|\x20Payout\x20|\x20IAP\x20up\x20to\x2075-day\x20float\x20→\x20seconds\x20per\x20period\x20|\x0a|\x20Extra\x20per\x20year\x20|\x20≈\x20$120\x20on\x20a\x20single\x20$100/mo\x20membership\x20|\x0a\x0aThose\x20two\x20percentages\x20are\x20the\x20incumbents\x27\x20numbers,\x20quoted\x20only\x20to\x20show\x20the\x20gap\x0athey\x20charge.\x20Under\x20direct\x20sales\x20neither\x20appears\x20in\x20your\x20payout:\x20the\x20default\x20is\x0aRate\x2010000\x20to\x20the\x20creator,\x20frozen\x20at\x20publish.\x20A\x20distributor\x20reselling\x20several\x0acreators\x20is\x20the\x20aggregator\x20case\x20—\x20its\x20own\x20fee\x20must\x20be\x20an\x20explicit\x20leg\x20to\x20an\x0aexplicit\x20non-empty\x20Entity,\x20disclosed\x20before\x20the\x20subscriber\x20signs,\x20and\x20never\x20an\x0aimplicit\x20remainder\x20or\x20a\x20`Surplus`\x20drain.\x0a\x0aFloor:\x20no\x20period\x20charge\x20passes\x20without\x20delivery\x20evidence.\x20The\x20creator\x20must\x0akeep\x20producing\x20—\x20that\x20obligation\x20is\x20the\x20subscriber\x27s\x20protection\x20and\x20the\x0aproduct\x27s\x20integrity.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Per-period\x20signed\x20charge\x20with\x20delivery\x20gate**\x20(default).\x20Monthly\x20or\x0a\x20\x20\x20chosen\x20cadence;\x20explicit\x20signature\x20each\x20period;\x20charge\x20blocked\x20without\x0a\x20\x20\x20delivery\x20proof;\x20one-signature\x20cancellation.\x0a2.\x20**Annual\x20prepay\x20released\x20per\x20period**.\x20Annual\x20cash\x20lands\x20in\x20escrow\x20and\x0a\x20\x20\x20releases\x20monthly\x20—\x20prepayment\x20with\x20structural\x20stoppage\x20protection\x20for\x0a\x20\x20\x20undelivered\x20months.\x0a3.\x20**Tiered\x20membership**.\x20Each\x20tier\x20maps\x20to\x20concrete\x20deliverables\x20and\x20its\x20own\x0a\x20\x20\x20delivery\x20guard;\x20up/downgrade\x20takes\x20effect\x20next\x20period\x20only.\x20Tier\x0a\x20\x20\x20deliverables\x20must\x20be\x20specific\x20enough\x20for\x20a\x20guard\x20to\x20evaluate.\x0a\x0aPosture\x20guidance:\x20volume\x20rides\x20the\x20consumer\x20\x22signing\x20movement\x22\x20with\x0afirst-month\x20pricing;\x20margin\x20serves\x20fewer\x20true\x20fans\x20at\x20premium\x20tiers\x20and\x0arefuses\x2030%\x20channels;\x20balanced\x20pairs\x20acquisition\x20tools\x20with\x20retention\x0arituals.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Billing-cycle\x20machine\x20with\x20charge\x20guard\x20+\x20delivery\x20gate\x20per\x20period.\x0a-\x20[\x20]\x20One-signature\x20cancellation\x20node;\x20confirm\x20there\x20is\x20exactly\x20one\x20path.\x0a-\x20[\x20]\x20Frozen\x20Allocation\x20100%\x20to\x20creator;\x20no\x20post-publish\x20fee\x20edit\x20surface.\x0a-\x20[\x20]\x20Annual\x20plan:\x20escrowed\x20prepay,\x20per-period\x20release,\x20undelivered-month\x0a\x20\x20\x20\x20\x20\x20refund\x20guaranteed\x20structurally.\x0a-\x20[\x20]\x20DRM/content\x20access\x20rules\x20declared\x20off-chain\x20where\x20applicable.\x0a\x0a##\x205.\x20The\x20\x22Signing\x20Movement\x22\x20campaign\x20(M2–M4)\x0a\x0aTwo\x20assets,\x20one\x20narrative:\x0a\x0a1.\x20**Consumer\x20side\x20—\x20subscription\x20checkup\x20widget.**\x20Input\x20your\x20subscription\x0a\x20\x20\x20list;\x20learn\x20how\x20much\x20you\x20annually\x20pay\x20for\x20unused\x20services\x20(cite\x20the\x202.5×\x0a\x20\x20\x20underestimate\x20and\x2042%\x20unused\x20figures).\x20KPI:\x20≥20,000\x20checkups.\x0a2.\x20**Creator\x20side\x20—\x20\x22100%\x20Arrival\x20Day\x22.**\x20One\x20day\x20each\x20month,\x20creators\x20post\x0a\x20\x20\x20their\x20on-chain\x20per-period\x20release\x20receipts.\x20KPI:\x2030\x20onboarded\x20creators.\x0a\x0aPlus\x20the\x20one-signature\x20cancellation\x20demo\x20video\x20(target\x20≥100K\x20views).\x20Launch\x0aagainst\x20FTC/platform\x20price-hike\x20news\x20cycles\x20—\x20they\x20recur\x20predictably;\x20keep\x0a24-hour\x20response\x20drafts.\x20Budget\x20$4–7K\x20**[estimate]**.\x0a\x0aCapture\x20education\x20recorded-course\x20overflow:\x20the\x20routing\x20rule\x20sends\x0arecorded/self-paced\x20courses\x20here\x20from\x20the\x20education\x20intake.\x0a\x0a##\x206.\x20Channels\x0a\x0aCreator\x20communities\x20(Discord,\x20membership-platform\x20forums\x20—\x20the\x20$131–180\x0amedian-monthly\x20creators\x20experience\x20the\x20incumbent\x27s\x2010–20%\x20fee\x20as\x20a\x20survival\x0aissue),\x20newsletter\x20and\x20indie-dev\x20circles\x20(incumbent\x20IAP\x2030%\x20+\x2075-day\x20float),\x0aHacker\x20News\x20and\x20the\x20anti-dark-pattern\x20audience.\x20$2–5\x20per\x20subscriber\x0a**[estimate]**.\x20Values\x20alignment\x20beats\x20ad\x20spend\x20in\x20this\x20segment.\x0a\x0a##\x207.\x20Retention\x0a\x0a-\x20Migrate\x20creators\x20one\x20tier\x20at\x20a\x20time;\x20show\x20per-period\x20release\x20receipts.\x0a-\x20Lead\x20with\x20the\x20unused-month\x20guarantee:\x20no\x20delivery,\x20no\x20charge.\x0a-\x20The\x20cancellation\x20demo\x20doubles\x20as\x20a\x20conversion\x20asset\x20—\x20trust\x20that\x20you\x20can\x0a\x20\x20leave\x20is\x20why\x20people\x20stay.\x0a-\x20Upgrade/downgrade\x20effective\x20next\x20period\x20keeps\x20accounting\x20and\x20guard\x20logic\x0a\x20\x20honest.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aTake\x20rate\x20and\x20unilateral-change\x20history,\x20charge\x20transparency,\x20cancellation\x0aclick\x20count,\x20stopped-creator\x20policy,\x20time-to-payout.\x20Contrast\x20the\x20FTC\x0asettlement\x20and\x20frozen\x20Allocation\x20—\x20opponent\x20documents,\x20not\x20your\x20adjectives.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Never\x20implement,\x20document,\x20or\x20imply\x20auto-renewal.\x0a2.\x20Never\x20charge\x20a\x20period\x20without\x20delivery\x20evidence.\x0a3.\x20Rate-lock\x20claims\x20exist\x20only\x20through\x20published\x20frozen\x20Allocation.\x0a',TRAVEL_MANUAL='#\x20Travel\x20(Custom\x20&\x20Multi-Segment)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20custom-trip\x20and\x20multi-segment\x20travel\x20studios\x0a>\x20on\x20WoWok.\x20This\x20is\x20a\x20tier-3\x20playbook:\x20the\x20economics\x20are\x20the\x20strongest\x20in\x20the\x0a>\x20catalog,\x20but\x20the\x20adoption\x20bottleneck\x20is\x20real.\x20Anchors\x20from\x20the\x20K1\x20global-OTA\x0a>\x20/\x20package-tour\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20OTA\x27s\x2025–36%\x20commission\x0ainto\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x20design,\x20not\x20a\x20parameter,\x20and\x0anobody\x20would\x20receive\x20it.\x20Travel\x20is\x20the\x20clearest\x20aggregator\x20case\x20—\x20if\x20you\x20ARE\x20the\x0aoperator\x20(an\x20agent\x20selling\x20hotels,\x20guides\x20and\x20drivers\x20it\x20did\x20not\x20supply),\x20your\x0aown\x20fee\x20is\x20allowed,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20traveler\x20can\x20compute\x0abefore\x20booking;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20per\x20leg\x20(an\x20empty\x20one\x0asilently\x20routes\x20the\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x0a`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x20transit\x20pool\x20on\x20the\x20payout\x0apath\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x20`balance::withdraw_all`\x20and\x0aso\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20Why\x20travel\x20is\x20deliberately\x20third\x20in\x20line\x0a\x0aGlobal\x20OTAs\x27\x20effective\x20hotel\x20commission\x20runs\x2025–36%\x20after\x20loyalty-tier\x0astacking,\x20the\x20merchant\x20model\x20floats\x20roughly\x20$134B/year\x20in\x20client\x20money,\x20VCC\x0amanual\x20settlement\x20takes\x202–6\x20weeks,\x20and\x20the\x20fund\x20waterfall\x20is\x20invisible:\x0atravelers\x20see\x20totals,\x20hotels\x20see\x20net\x20rates.\x20When\x20failures\x20happen\x20—\x20a\x20major\x0atour\x20operator\x27s\x20collapse\x20stranding\x20hundreds\x20of\x20thousands\x20of\x20customers,\x20tens\x20of\x0abillions\x20in\x20pandemic\x20refunds\x20—\x20relief\x20is\x20post-hoc;\x20EU261\x20compensates\x20flight\x0alegs\x20while\x20downstream\x20segments\x20simply\x20die.\x0a\x0aWoWok\x27s\x20answer\x20is\x20structurally\x20superior:\x20a\x20multi-segment\x20machine\x0a(`segment_D1..DN`)\x20releases\x20each\x20segment\x27s\x20fee\x20as\x20its\x20WIP\x20passes;\x20an\x0ainterrupted\x20node\x20refunds\x20undelivered\x20segments\x20in\x20one\x20transaction;\x20the\x20agent\x0aruns\x20a\x20second-level\x20Allocation\x20from\x20its\x20own\x20Treasury\x20so\x20the\x20waterfall\x20is\x0areadable\x20on-chain;\x20Treasury-scoped\x20Payments\x20can\x20compensate\x20across\x20segments.\x0a\x0aThe\x20bottleneck\x20is\x20adoption,\x20not\x20economics:\x20hotels\x20and\x20drivers\x20are\x20not\x20on\x0achain.\x20That\x20is\x20why\x20the\x20first\x20viable\x20form\x20is\x20the\x20**agent\x20as\x20the\x20single\x0aon-chain\x20counterparty**\x20—\x20agent↔client\x20custody\x20closes\x20the\x20trust\x20loop\x20alone,\x0aand\x20supplier\x20participation\x20grows\x20later\x20with\x20the\x20Passport\x20network.\x20Do\x20not\x0afront-load\x20this\x20industry\x20before\x20the\x20tier-1/2\x20reputation\x20network\x20exists.\x0a\x0aYour\x20sentence:\x20*\x22A\x20collapsed\x20tour\x20operator\x27s\x20stranded\x20millions\x20were\x20post-hoc\x0arelief.\x20The\x20same\x20money\x20in\x20custody\x20with\x20interruption\x20branches\x20is\x20pre-event\x0aisolation.\x22*\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(5-segment\x20custom\x20trip)\x20|\x20$2,000\x20|\x0a|\x20Effective\x20legacy\x20commission\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2025–36%\x20≈\x20$350–720/trip\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20≈\x20$0.02–1\x20across\x202×segments+3\x20txns\x20|\x0a|\x20Settlement\x20|\x20VCC\x202–6\x20weeks\x20→\x20per-segment\x20seconds\x20|\x0a\x0aGas\x20is\x20noise\x20against\x20$350–700\x20saved\x20per\x20trip.\x20That\x20$350–720\x20is\x20the\x20OTA\x27s\x20cut,\x0anot\x20yours:\x20a\x20merchant\x27s\x20own\x20segments\x20pay\x20out\x20Rate\x2010000\x20to\x20the\x20merchant\x27s\x0aEntity,\x20and\x20an\x20aggregator\x27s\x20own\x20fee\x20must\x20be\x20one\x20explicit,\x20pre-order-disclosed\x0anumber\x20on\x20an\x20explicit\x20non-empty\x20Entity\x20—\x20never\x20`order\x20total\x20-\x20segment\x20sums`\x0aimplicitly\x20absorbed,\x20never\x20a\x20`Surplus`\x20remainder.\x20The\x20binding\x20constraint\x20is\x0asupplier\x20adoption;\x20never\x20pretend\x20otherwise.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Multi-leg\x20itinerary\x20with\x20per-segment\x20release**\x20(default\x20and\x20core).\x0a\x20\x20\x20Every\x20segment\x20has\x20WIP\x20evidence\x20and\x20its\x20own\x20Allocator\x20slice;\x20the\x0a\x20\x20\x20interrupted\x20path\x20refunds\x20undelivered\x20legs\x20in\x20one\x20transaction.\x0a2.\x20**Agent\x20single-counterparty\x20custody**\x20for\x20downstream\x20suppliers\x20not\x20yet\x20on\x0a\x20\x20\x20chain.\x20The\x20agent\x20escrows\x20against\x20the\x20client,\x20holds\x20correct\x20licensing\x20and\x0a\x20\x20\x20funds\x20compensation\x20coverage\x20sized\x20to\x20the\x20maximum\x20single\x20segment.\x0a3.\x20**Weather/condition-guaranteed\x20pricing**\x20via\x20quoted\x20guard\x20+\x20a\x20specified\x0a\x20\x20\x20evidence\x20repository\x20oracle;\x20auto-refund\x20on\x20trigger\x20—\x20test\x20the\x20trigger\x0a\x20\x20\x20source\x20before\x20selling\x20it.\x0a\x0aFIT\x20EXCLUSION:\x20do\x20not\x20sell\x20standard\x20standalone\x20flights\x20or\x20hotels.\x20The\x20WoW\x0avalue\x20there\x20is\x20weak;\x20the\x20fit\x20is\x20custom\x20and\x20packaged\x20multi-segment\x20trips\x0a(package-tour\x20archetype\x20fit:\x2010/10).\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Segment\x20machine\x20D1..DN\x20with\x20per-segment\x20WIP\x20gates\x20and\x20release\x0a\x20\x20\x20\x20\x20\x20Allocators.\x0a-\x20[\x20]\x20Explicit\x20interrupted\x20node\x20with\x20one-transaction\x20refund.\x0a-\x20[\x20]\x20Agent\x20Entity\x20with\x20own\x20Treasury\x20+\x20second-level\x20Allocation;\x20waterfall\x0a\x20\x20\x20\x20\x20\x20readable\x20by\x20the\x20buyer\x20BEFORE\x20payment.\x0a-\x20[\x20]\x20Per-leg\x20cancellation\x20policy\x20disclosed\x20at\x20sale;\x20refundable\x20vs\x0a\x20\x20\x20\x20\x20\x20non-refundable\x20legs\x20separated,\x20never\x20blurred.\x0a-\x20[\x20]\x20Compensation\x20fund\x20sized\x20for\x20the\x20maximum\x20single\x20segment.\x0a-\x20[\x20]\x20Weather/condition\x20guard\x20trigger\x20source\x20specified\x20and\x20tested.\x0a\x0a##\x205.\x20Pilot\x20playbook\x20(M4+)\x0a\x0a-\x20Pilot\x20with\x202–3\x20custom-trip\x20/\x20packaged-tour\x20studios\x20under\x20agent-only\x0a\x20\x20custody.\x20Budget\x20$10–15K\x20**[estimate]**.\x0a-\x20Asset\x201:\x20the\x20interactive\x20**$2,000\x20waterfall\x20visualization**\x20—\x20exactly\x20how\x0a\x20\x20the\x20trip\x20price\x20splits\x20to\x20hotel,\x20guide\x20and\x20agent,\x20readable\x20on-chain\x20before\x0a\x20\x20purchase.\x20No\x20OTA\x20on\x20earth\x20can\x20show\x20this.\x0a-\x20Asset\x202:\x20the\x20**weather-guard\x20auto-refund\x20demo**\x20—\x20converts\x20\x22escrow\x22\x20from\x20a\x0a\x20\x20word\x20into\x20a\x20visible\x20guarantee.\x0a-\x20Anchor\x20content\x20to\x20the\x20next\x20large\x20travel-failure\x20news\x20cycle;\x20the\x20structural\x0a\x20\x20contrast\x20(pre-event\x20isolation\x20vs\x20post-hoc\x20relief)\x20writes\x20itself.\x0a\x0a##\x206.\x20Competitor\x20watch\x20(monthly)\x0a\x0aEffective\x20commission\x20after\x20loyalty-tier\x20stacking,\x20waterfall\x20transparency,\x0aper-leg\x20cancellation\x20terms,\x20downstream\x20refund\x20handling\x20(the\x20EU261\x20gap),\x0asettlement\x20speed.\x20Travel\x20is\x20seasonal\x20and\x20contractual\x20—\x20monthly\x20is\x20sufficient;\x0aspend\x20the\x20attention\x20on\x20the\x20pilot\x20studios.\x0a\x0a##\x207.\x20Retention\x0a\x0a-\x20The\x20pre-trip\x20waterfall\x20inspection\x20is\x20the\x20sales\x20asset\x20AND\x20the\x20delivery\x0a\x20\x20promise\x20—\x20rebook\x20on\x20the\x20gap\x20between\x20the\x20two\x20being\x20zero.\x0a-\x20Interrupted-segment\x20one-transaction\x20refund\x20demonstrated\x20before\x20payment.\x0a-\x20Win\x20re-books\x20with\x20itinerary\x20history\x20and\x20per-leg\x20transparency,\x20not\x20points.\x0a\x0a##\x208.\x20Red\x20lines\x0a\x0a1.\x20No\x20standard\x20flight/hotel\x20resale\x20—\x20weak\x20fit,\x20damages\x20positioning.\x0a2.\x20No\x20large\x20cross-period\x20custody\x20marketing\x20before\x20stablecoin\x20bridging\x20is\x0a\x20\x20\x20ready;\x20price\x20in\x20fiat\x20terms.\x0a3.\x20Never\x20commingle\x20undelivered-segment\x20funds\x20with\x20operating\x20cash;\x20cross-leg\x0a\x20\x20\x20responsibility\x20disclosed,\x20never\x20blurred.\x0a',RETAIL_MANUAL='#\x20Retail\x20(Private-Domain\x20Commerce)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20sellers\x20who\x20already\x20own\x20traffic\x20—\x20DTC\x20sites,\x0a>\x20community\x20commerce\x20and\x20creator\x20stores\x20—\x20on\x20WoWok.\x20Tier-3\x20deliberately:\x20WoW\x0a>\x20replaces\x20the\x20trust\x20and\x20settlement\x20tax,\x20not\x20the\x20traffic.\x20Anchors\x20from\x20the\x0a>\x20K1\x20scale-marketplace\x20/\x20vertical-handmade\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20seller\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20marketplace\x27s\x2030–35%\x0acombined\x20burden\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x20design,\x20not\x20a\x0aparameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x20(a\x20channel\x0aselling\x20several\x20sellers,\x20a\x20bundle,\x20a\x20live-commerce\x20host)\x20you\x20may\x20charge\x20your\x0aown\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x0aordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x0athe\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x0amandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x0awhich\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20The\x20honest\x20admission\x20that\x20makes\x20the\x20pitch\x20work\x0a\x0aScale-marketplace\x20sellers\x20carry\x20a\x2030–35%\x20combined\x20burden\x20(8–15%\x20referral\x20+\x0afulfillment\x20+\x20Q4\x20storage\x20multipliers\x20+\x208–12%\x20TACoS),\x20wait\x2014\x20days\x20for\x0asettlement\x20under\x20DD+7\x20reserves\x20that\x20can\x20jump\x20to\x20DD+90\x20(new\x20sellers\x20commonly\x0aface\x20100%\x20reserves),\x20face\x20guarantee-program\x20rulings\x20that\x20default\x20to\x20the\x20buyer\x0aon\x20absence,\x20and\x20absorb\x20a\x2019.3%\x20return\x20rate\x20of\x20which\x20~9%\x20is\x20fraudulent.\x0aUnilateral\x20fee\x20increases\x20on\x20incumbent\x20handmade\x20marketplaces\x20(24.2%)\x20complete\x0athe\x20picture.\x0a\x0aWoWok\x20answers\x20with\x20escrow\x20released\x20on\x20the\x20receipt-confirmation\x20guard,\x0areturn-auth\x20gating\x20that\x20requires\x20dual-signed\x20or\x20logistics-repository\x20evidence,\x0aconfigurable\x20arbitration\x20voting\x20periods,\x20and\x20a\x20repository\x20provenance\x20chain.\x0a\x0aThe\x20honest\x20admission:\x20**WoW\x20does\x20not\x20sell\x20traffic.**\x20The\x20incumbent\x27s\x2040.5%\x0ashare\x20is\x20the\x20value\x20of\x20demand,\x20and\x20a\x20zero-traffic\x20seller\x20should\x20be\x20rejected\x20at\x0aintake.\x20The\x20filter\x20sentence\x20is\x20the\x20strategy:\x20*\x22Of\x20the\x2030%\x20you\x20pay\x20the\x0aincumbent\x20marketplace,\x20which\x20part\x20buys\x20traffic\x20and\x20which\x20buys\x20trust?\x20We\x20don\x27t\x0asell\x20traffic\x20—\x20trust\x20is\x20free,\x20and\x20the\x20whole\x20sale\x20is\x20yours.\x22*\x20Putting\x20the\x0aboundary\x20in\x20the\x20intake\x20questionnaire\x20raises\x20conversion\x20quality.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Private-domain\x20AOV\x20|\x20$50\x20|\x0a|\x20Legacy\x20combined\x20burden\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2030–35%\x20≈\x20$300–350\x20per\x20$1,000\x20GMV\x20|\x0a|\x20WoW\x20cost\x20per\x20$1,000\x20GMV\x20|\x20gas\x20≈\x20$0.01–0.5\x20across\x204–6\x20txns\x20(<\x20$1)\x20|\x0a|\x20Settlement\x20|\x2014\x20days\x20+\x20reserve\x20risk\x20→\x20seconds\x20|\x0a|\x20Return\x20rate\x20/\x20fraud\x20share\x20|\x2019.3%\x20/\x209%\x20|\x0a\x0aThat\x20$300–350\x20is\x20the\x20marketplace\x27s\x20burden,\x20not\x20your\x20price:\x20your\x20default\x0asettlement\x20is\x20Rate\x2010000\x20to\x20your\x20own\x20Entity.\x20A\x20channel\x20that\x20resells\x20several\x0asellers\x20is\x20the\x20aggregator\x20case\x20and\x20may\x20charge\x20its\x20own\x20explicit,\x20disclosed\x20fee\x20to\x0aa\x20non-empty\x20Entity\x20—\x20never\x20an\x20implicit\x20remainder,\x20never\x20a\x20`Surplus`\x20drain.\x0a\x0aFloor:\x20never\x20price\x20below\x20COGS\x20+\x20shipping\x20+\x20expected-return\x20provision;\x0acompensation\x20coverage:\x203×\x20the\x20largest\x20single\x20order\x20as\x20a\x20HARD\x20FLOOR\x20(covers\x20the\x0achain-enforced\x20award\x20ceiling\x20per\x20arb.move),\x205×\x20as\x20a\x20CONCURRENT-FLOW\x0arecommendation\x20(tolerance\x20for\x20several\x20claims\x20against\x20the\x20one\x20pool).\x20The\x0aeconomics\x20work\x20at\x20almost\x20any\x20AOV\x20—\x20traffic\x20availability\x20is\x20the\x20only\x20admission\x0acriterion.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Escrow\x20released\x20on\x20confirmed\x20receipt**\x20(default).\x20Funds\x20release\x20seconds\x0a\x20\x20\x20after\x20the\x20receipt\x20guard;\x20`return_auth_guard`\x20requires\x20return\x20evidence;\x0a\x20\x20\x20repository\x20provenance\x20supports\x20authenticity\x20claims.\x0a2.\x20**Member/bundle\x20pricing\x20for\x20private\x20communities**.\x20Spend-threshold\x20and\x0a\x20\x20\x20member\x20pricing\x20via\x20rewards\x20inside\x20the\x20owned\x20channel\x20—\x20no\x20platform\x20TACoS.\x0a\x20\x20\x20Bundles\x20stay\x20escrowed\x20per\x20deliverable;\x20never\x20release\x20pre-shipment.\x0a\x0aPosture\x20guidance:\x20volume\x20converts\x20existing\x20flow\x20into\x20escrow\x20GMV\x20with\x0afirst-order\x20and\x20spend-threshold\x20rewards\x20(viable\x20only\x20because\x20gas\x20is\x20under\x20$1\x0aper\x20thousand\x20GMV);\x20margin\x20sells\x20provenance-authenticated\x20premium\x20goods\x20with\x0arepository\x20evidence;\x20balanced\x20pilots\x205–8\x20sellers\x20around\x20the\x20gas-bill\x20proof\x0aevent.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Order\x20→\x20escrow\x20→\x20shipment\x20→\x20receipt-guard\x20release,\x20seconds\x20latency.\x0a-\x20[\x20]\x20Return-auth\x20flow\x20requiring\x20dual\x20signature\x20or\x20logistics\x20repository\x0a\x20\x20\x20\x20\x20\x20record\x20(structurally\x20raises\x20fraud\x20cost\x20against\x20the\x209%\x20fraud\x20share).\x0a-\x20[\x20]\x20Arbitration\x20with\x20configured\x20voting\x20period;\x20no\x20auto-default\x20rulings.\x0a-\x20[\x20]\x20Compensation\x20fund:\x203×\x20largest\x20single\x20order\x20minimum\x20(award\x20ceiling),\x205×\x20recommended\x20for\x20concurrent\x20claims.\x0a-\x20[\x20]\x20Repository\x20provenance\x20chain\x20for\x20SKUs\x20where\x20authenticity\x20is\x20claimed.\x0a-\x20[\x20]\x20Intake\x20questionnaire\x20confirming\x20existing\x20traffic;\x20reject\x20zero-traffic\x0a\x20\x20\x20\x20\x20\x20applicants\x20explicitly.\x0a\x0a##\x205.\x20Pilot\x20playbook\x20(M4+)\x0a\x0a-\x20**\x22$1,000\x20GMV\x20Cost\x20Teardown\x22\x20livestream**:\x20the\x20same\x20shop\x27s\x20private-domain\x0a\x20\x20orders\x20run\x20through\x20WoW,\x20full-cycle\x20gas\x20bill\x20published\x20against\x20the\x20$300–350\x0a\x20\x20incumbent\x20burden\x20for\x20identical\x20GMV.\x20Numbers\x20in\x20fiat.\x0a-\x20**Fee-hike\x20refugee\x20targeting**:\x20recruit\x20directly\x20from\x20communities\x20hit\x20by\x20the\x0a\x20\x2024.2%\x20unilateral\x20fee\x20event\x20—\x20the\x20triggering\x20event\x20is\x20the\x20acquisition\x0a\x20\x20channel.\x0a-\x205–8\x20sellers\x20pilot,\x20budget\x20$6–10K\x20**[estimate]**.\x0a\x0a##\x206.\x20Channels\x0a\x0a1.\x20Existing\x20private-traffic\x20sellers\x20(DTC,\x20community\x20commerce,\x20We-commerce)\x0a\x20\x20\x20—\x20the\x20only\x20segment\x20that\x20passes\x20the\x20filter.\x0a2.\x20Incumbent\x20fee-hike\x20victim\x20communities.\x0a3.\x20Live\x20cost-comparison\x20events\x20and\x20their\x20replays.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Make\x20receipt\x20confirmation\x20a\x20one-tap\x20moment\x20and\x20show\x20the\x20release\x20seconds\x0a\x20\x20later\x20—\x20the\x20speed\x20gap\x20to\x2014-day\x20+\x20reserve\x20settlement\x20is\x20visceral.\x0a-\x20Re-purchase\x20via\x20spend\x20cashback\x20and\x20repository-issued\x20provenance\x0a\x20\x20certificates.\x0a-\x20Show\x20return-averse\x20buyers\x20the\x20evidence-gated\x20return\x20flow\x20up\x20front;\x20it\x0a\x20\x20protects\x20them\x20as\x20much\x20as\x20the\x20seller.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aHeadline\x20price,\x20reserve\x20policy,\x20return-fraud\x20handling,\x20arbitration\x20default\x0abehavior,\x20provenance\x20evidence.\x20Retail\x20promotion\x20cycles\x20move\x20fast;\x20weekly\x0acadence.\x20Never\x20answer\x20a\x20price\x20war\x20—\x20answer\x20with\x20the\x20settlement\x20and\x20reserve\x0acontrast.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Never\x20promise\x20traffic.\x0a2.\x20No\x20auto-default\x20buyer-win\x20rulings;\x20the\x20arbitration\x20voting\x20period\x20must\x20be\x0a\x20\x20\x20configured.\x0a3.\x20Physical\x20authenticity\x20claims\x20require\x20repository\x20evidence\x20—\x20never\x20beyond\x0a\x20\x20\x20what\x20the\x20evidence\x20proves.\x0a',BUILTIN_STRATEGY_MANUALS={'education':{'industry':'education','version':STRATEGY_MANUAL_VERSION,'body':EDUCATION_MANUAL},'rental':{'industry':'rental','version':STRATEGY_MANUAL_VERSION,'body':RENTAL_MANUAL},'freelance':{'industry':'freelance','version':STRATEGY_MANUAL_VERSION,'body':FREELANCE_MANUAL},'subscription':{'industry':'subscription','version':STRATEGY_MANUAL_VERSION,'body':SUBSCRIPTION_MANUAL},'travel':{'industry':'travel','version':STRATEGY_MANUAL_VERSION,'body':TRAVEL_MANUAL},'retail':{'industry':'retail','version':STRATEGY_MANUAL_VERSION,'body':RETAIL_MANUAL}};
|
|
1
|
+
import{classifyRelease,releaseBodyHash,releaseSentinelLine,stripReleaseSentinel}from'./release-sentinel.js';export const STRATEGY_MANUAL_FILENAME='strategy-manual.md';export const STRATEGY_MANUAL_VERSION=0x3;const MANUAL_KIND='strategy-manual';export function renderStrategyManual(a){const b=BUILTIN_STRATEGY_MANUALS[a];if(!b)return null;return releaseSentinelLine(MANUAL_KIND,b['version'],releaseBodyHash(b['body']))+'\x0a'+b['body'];}export function parseManualSentinel(a){return stripReleaseSentinel(a,MANUAL_KIND)['sentinel'];}export function classifyManualFile(a,b){const c=BUILTIN_STRATEGY_MANUALS[a];if(!c)return'user_file';const {sentinel:d,content:e}=stripReleaseSentinel(b,MANUAL_KIND);if(!d)return'user_file';return classifyRelease(d,e,c['version']);}export function getBuiltinStrategyManual(a){return BUILTIN_STRATEGY_MANUALS[a];}export function listBuiltinStrategyManualIndustries(){return Object['keys'](BUILTIN_STRATEGY_MANUALS);}const EDUCATION_MANUAL='#\x20Education\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20attendance-based\x20education\x20services\x20on\x20WoWok.\x0a>\x20Curated\x20from\x20the\x20K1\x20six-industry\x20commercial\x20handbook.\x20Figures\x20marked\x0a>\x20**[estimate]**\x20are\x20planning\x20estimates;\x20empirical\x20anchors\x20are\x20marked\x20**[K1]**.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x20live-class\x0aplatform\x27s\x2030%\x20take\x20+\x20service\x20fee\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x0adesign,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x0a(a\x20chain\x20or\x20a\x20multi-supplier\x20school\x20network)\x20you\x20may\x20charge\x20your\x20own\x20fee,\x20but\x0aonly\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x20ordering;\x20an\x20explicit\x0aNON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x20the\x20share\x20to\x20the\x0adeploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x20transit\x0apool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x0a`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x0aescrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aYou\x20are\x20not\x20selling\x20\x22crypto\x20payments\x22.\x20You\x20are\x20selling\x20the\x20one\x20guarantee\x0aparents\x20could\x20not\x20buy\x20anywhere:\x20**unearned\x20tuition\x20can\x20never\x20be\x20embezzled,\x20and\x0athe\x20parent\x20can\x20verify\x20that\x20on-chain\x20themselves.**\x0a\x0aThe\x20traditional\x20risk\x20stack\x20is\x20brutal:\x20parents\x20prepay\x20in\x20full,\x20the\x20incumbent\x0aplatform\x20takes\x2025–40%,\x20institutions\x20can\x20commingle\x20the\x20funds,\x20teachers\x20settle\x207–13\x20days\x0alater,\x20and\x20when\x20an\x20institution\x20collapses\x20(documented\x20cases\x20of\x20$500M+\x20in\x0aprepaid\x20tuition\x20unaccounted\x20for),\x20recovery\x20is\x2040–80%\x20at\x20best.\x20Regulators\x20require\x0acustody,\x20but\x20paper\x20custody\x20can\x20be\x20technically\x20hollowed\x20out\x20when\x20the\x20collecting\x0aentity\x20is\x20not\x20the\x20custodial\x20entity.\x0a\x0aYour\x20WoWok\x20structure\x20makes\x20the\x20failure\x20structurally\x20impossible:\x0a\x0a1.\x20Parent\x20prepays\x20into\x20an\x20Allocation\x20contract\x20—\x20funds\x20never\x20land\x20on\x20your\x20books.\x0a2.\x20Every\x20lesson\x27s\x20fee\x20releases\x20on\x20the\x20parent\x27s\x20attendance\x20signature\x0a\x20\x20\x20(`attendance_guard_signer`),\x20in\x20seconds.\x0a3.\x20Withdrawal\x20at\x20a\x20\x22withdrawn\x22\x20node\x20refunds\x20all\x20unearned\x20lessons\x20in\x20a\x20single\x0a\x20\x20\x20transaction,\x20with\x20no\x20institutional\x20cooperation\x20—\x20100%\x20recovery\x20by\x20design.\x0a4.\x20`setting_lock_duration`\x20locks\x20the\x20fee\x20schedule\x20(default\x2030\x20days).\x0a\x0aOne\x20sentence\x20for\x20every\x20landing\x20page:\x20*\x22Unearned\x20tuition\x20can\x20never\x20be\x20taken\x20—\x0aand\x20you\x20can\x20verify\x20that\x20sentence\x20yourself\x20on-chain.\x22*\x0a\x0aHonest\x20boundary,\x20always:\x20the\x20structure\x20prevents\x20fund\x20embezzlement.\x20It\x20does\x20not\x0aprevent\x20bad\x20teaching.\x20Say\x20so.\x20Overclaiming\x20destroys\x20the\x20only\x20moat\x20you\x20have:\x0averifiable\x20honesty.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(30-lesson\x20package)\x20|\x20¥3,000\x20**[K1]**\x20|\x0a|\x20Legacy\x20combined\x20fee\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x20Incumbent\x20live-class\x20platform\x2030%\x20≈\x20¥900/order\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20≈\x20$0.05–2.5\x20for\x20N+2\x20transactions\x20|\x0a|\x20Extra\x20per\x20order\x20|\x20≈\x20¥890\x20|\x0a|\x20Teacher\x20settlement\x20|\x207–13\x20days\x20→\x20seconds\x20|\x0a\x0aFormula:\x20extra\x20per\x20order\x20=\x20incumbent\x20fee\x20rate\x20×\x20AOV\x20−\x20(gas\x20+\x20keeper\x20amortization\x0a+\x20one-time\x20migration\x20cost).\x20That\x20incumbent\x20fee\x20is\x20the\x20number\x20being\x20displaced\x20—\x0ait\x20is\x20NOT\x20a\x20fee\x20you\x20charge;\x20under\x20direct\x20sales\x20your\x20own\x20default\x20payout\x20is\x20100%\x0aof\x20the\x20sale.\x20The\x20gas\x20line\x20is\x20noise\x20against\x20¥900\x20saved;\x20adoption\x0apays\x20on\x20essentially\x20the\x20first\x20package.\x20Price\x20in\x20fiat\x20terms\x20—\x20WOW\x20token\x0avolatility\x20must\x20never\x20enter\x20a\x20parent\x27s\x20tuition\x20decision.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Per-lesson\x20escrow\x20release**\x20(default).\x20Escrowed\x20package,\x201/N\x20release\x20per\x0a\x20\x20\x20attendance\x20signature.\x20Fits\x20every\x20attendance-based\x20scenario.\x0a2.\x20**Package\x20price\x20with\x20rate-based\x20release**.\x20¥3,000\x20class\x20packages;\x20refund\x0a\x20\x20\x20policy\x20declared\x20up\x20front;\x20compensation\x20fund\x20bound.\x0a3.\x20**Trial-class\x20conversion\x20price**.\x20One\x20escrowed\x20trial,\x20enrollment\x20balance\x0a\x20\x20\x20only\x20after\x20the\x20parent\x20signs;\x20pairs\x20with\x20referral\x20reward.\x20Never\x20run\x20trials\x0a\x20\x20\x20permanently\x20below\x20delivery\x20cost.\x0a\x0aPosture\x20guidance:\x0a\x0a-\x20**Volume**:\x20group-buy\x20and\x20early-bird\x20through\x20parent\x20KOC\x20communities;\x0a\x20\x20trial-class\x20discounts\x20as\x20the\x20cold-start\x20hook.\x20Never\x20below\x20per-lesson\x20cost.\x0a-\x20**Balanced**:\x20mix\x20institutional\x20B2B\x20direct\x20selling\x20with\x20community\x20KOC\x20growth.\x0a-\x20**Margin**:\x20sell\x20compliance\x20to\x20mid-size\x20institutions\x20as\x20a\x20moat\x20—\x20\x22I\x20locked\x0a\x20\x20tuition\x20into\x20an\x20on-chain\x20contract;\x20do\x20you\x20dare?\x22\x20is\x20*their*\x20sales\x20line\x20to\x0a\x20\x20parents.\x20BD\x20costs\x20¥1,500–3,000\x20per\x20signed\x20institution.\x0a\x0aRecorded/self-paced\x20courses\x20are\x20a\x20MISMATCH.\x20Route\x20them\x20to\x20the\x20subscription\x0amodel\x20(per-period\x20signed\x20charges\x20+\x20delivery\x20gate).\x20Do\x20not\x20sell\x20them\x20as\x0aattendance\x20escrow\x20—\x20the\x20mode-fit\x20check\x20is\x20a\x20standard\x20intake\x20action.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Service\x20with\x20the\x20education\x20blueprint:\x20`attendance_guard_signer`\x20at\x0a\x20\x20\x20\x20\x20\x20every\x20lesson\x20node,\x20rate-mode\x20Allocator\x20releasing\x20per\x20lesson.\x0a-\x20[\x20]\x20A\x20\x22withdrawn\x22\x20node\x20with\x20a\x20one-transaction\x20refund\x20Allocator\x20path.\x0a-\x20[\x20]\x20`setting_lock_duration`\x20on\x20the\x20fee\x20schedule.\x0a-\x20[\x20]\x20Arbitration\x20bound\x20+\x20compensation\x20fund\x20funded.\x0a-\x20[\x20]\x20Public\x20verification\x20view:\x20order,\x20Allocation\x20and\x20Payment\x20objects\x0a\x20\x20\x20\x20\x20\x20readable\x20by\x20the\x20parent\x20(reverse\x20readability\x20is\x20validated\x20in\x20K1).\x0a-\x20[\x20]\x20Target:\x20a\x20fully\x20configured\x20shop\x20in\x20≤10\x20guided\x20dialogues\x20(K1\x20validated\x2011).\x0a\x0a##\x205.\x20The\x2090-day\x20campaigns\x0a\x0a**Campaign\x20A\x20—\x20\x22Tuition\x20Transparency\x20Experiment\x22\x20(M1–M2).**\x20One\x20seed\x0ainstitution\x20runs\x20two\x20parallel\x20classes:\x20traditional\x20collection\x20vs\x20WoW\x0acustody.\x20Publish\x20everything:\x20parents\x20see\x20the\x20B-class\x20contract\x20balance\x20and\x0arelease\x20records.\x20At\x20the\x20week-4\x20parent\x20open\x20day,\x20demo\x20a\x20mid-course\x20withdrawal\x0arefund\x20live,\x20one\x20transaction.\x20KPI:\x201\x20anchor\x20institution,\x20≥30\x20escrow\x20orders,\x0aone\x20verifiable\x20case\x20piece,\x20parent\x20NPS\x20≥60.\x20Budget\x20$6–9K\x20**[estimate]**.\x0a\x0a**Campaign\x20B\x20—\x20\x22The\x20Regulatory\x20Answer\x22\x20(M2–M3).**\x20No\x20ads.\x20Publish\x20the\x0awhite-paper\x20*From\x20Paper\x20Custody\x20to\x20Protocol\x20Custody*,\x20route\x20it\x20to\x20local\x0aregulatory\x20discussions,\x20trade\x20media\x20and\x20parent\x20communities.\x20Frame:\x20\x22WoW\x20is\x0athe\x20technical\x20answer\x20to\x20custody\x20regulation,\x20not\x20its\x20object.\x22\x20Have\x20a\x2024-hour\x0aresponse\x20draft\x20ready\x20for\x20the\x20next\x20sector\x20failure\x20news\x20cycle\x20—\x20one\x20will\x20come.\x0aKPI:\x202\x20media\x20citations,\x203\x20inbound\x20institutions,\x20$0\x20ad\x20spend.\x0a\x0a##\x206.\x20Channels\x20in\x20order\x0a\x0a1.\x20Parent-rights\x20and\x20local\x20parent\x20KOC\x20groups\x20(¥30–80\x20per\x20paying\x20parent).\x0a2.\x20Institutional\x20direct\x20BD\x20—\x20supply\x20decides\x20the\x20two-sided\x20cold\x20start.\x0a3.\x20Industry\x20media\x20/\x20policy\x20white-papers\x20—\x20zero-cost\x20endorsement.\x0a4.\x20Paid\x20ads\x20—\x20do\x20not\x20use\x20in\x20the\x20first\x2090\x20days;\x20they\x20conflict\x20with\x20the\x20trust\x0a\x20\x20\x20narrative.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Show\x20the\x20contract\x20balance\x20and\x20release\x20history\x20BEFORE\x20payment.\x0a-\x20The\x20live\x20withdrawal-refund\x20demo\x20is\x20the\x20trial-to-enrollment\x20closer.\x0a-\x20Renew\x20on\x20per-lesson\x20release\x20history\x20+\x20attendance\x20records;\x20use\x20sibling\x20and\x0a\x20\x20referral\x20rewards\x20rather\x20than\x20discounting.\x0a-\x20Institutions\x20can\x20recruit\x20teachers\x20with\x20\x22settlement\x20in\x20seconds\x22\x20—\x20the\x20same\x0a\x20\x20feature\x20sells\x20both\x20sides.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aTrack\x20headline\x20price\x20vs\x20escrow\x20structure,\x20arbitration\x20availability,\x0acompensation-fund\x20coverage,\x20release\x20granularity,\x20and\x20refund-window\x20terms.\x0aNever\x20respond\x20to\x20a\x20price\x20war\x20with\x20discounts:\x20respond\x20by\x20inviting\x20the\x20parent\x0ato\x20read\x20the\x20contract.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Recorded-only\x20products\x20route\x20to\x20subscription\x20—\x20never\x20disguised\x20as\x0a\x20\x20\x20attendance\x20courses.\x0a2.\x20Never\x20imply\x20the\x20structure\x20guarantees\x20teaching\x20quality.\x0a3.\x20All\x20external\x20material\x20carries\x20the\x20testnet\x20/\x20estimate\x20/\x20WOW-price\x0a\x20\x20\x20disclaimers.\x20Fiat-denominated\x20figures\x20only.\x0a',RENTAL_MANUAL='#\x20Rental\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20high-value\x20equipment\x20and\x20P2P\x20rentals\x20on\x0a>\x20WoWok.\x20Anchors\x20marked\x20**[k1rent]**\x20come\x20from\x20the\x20fully\x20executed\x20on-chain\x0a>\x20rental\x20pilot;\x20**[estimate]**\x20marks\x20planning\x20figures.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x27s\x2015.5%\x20host\x0acommission\x20+\x20guest\x20service\x20fee\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x0adesign,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x0a(a\x20chain,\x20an\x20equipment\x20fleet\x20operator,\x20a\x20hosting\x20consortium)\x20you\x20may\x20charge\x0ayour\x20own\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x0aordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x0athe\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x0amandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x0awhich\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aRentals\x20are\x20a\x20dispute\x20business\x20that\x20pretends\x20to\x20be\x20a\x20utilization\x20business.\x0aThe\x20incumbent\x20stack\x20has\x20three\x20structural\x20holes:\x0a\x0a1.\x20**Fake\x20deposits.**\x20Card\x20pre-authorizations\x20are\x20not\x20real\x20deductions;\x2077%\x20of\x0a\x20\x20\x20hosts\x20collect\x20no\x20deposit\x20at\x20all\x20—\x20deterrence\x20is\x20zero.\x0a2.\x20**Evidence\x20asymmetry.**\x20Without\x20dated\x20pre-rental\x20photos,\x20damage-claim\x0a\x20\x20\x20rejection\x20runs\x2020%\x20→\x2070%;\x20even\x20paid\x20claims\x20are\x20discounted\x20for\x20depreciation\x0a\x20\x20\x20(60–85%\x20actually\x20paid).\x0a3.\x20**Slow,\x20weaponized\x20settlement.**\x20Refunds\x20take\x207–15\x20business\x20days;\x20review\x0a\x20\x20\x20extortion\x20($50–200\x20per\x20review)\x20shares\x20the\x20same\x20game\x20window\x20as\x20claims.\x0a\x0aWoWok\x20closes\x20all\x20three.\x20Rent\x20+\x20a\x20REAL\x20deposit\x20are\x20bundled\x20into\x20the\x20order\x20and\x0aescrowed\x20in\x20the\x20Allocation\x20contract.\x20A\x20pre-rental\x20WIP\x20hash\x20baseline\x20is\x0amandatory\x20at\x20the\x20handover_out\x20node.\x20On\x20return,\x20post-rental\x20WIP\x20is\x20compared\x20and\x0aexactly\x20one\x20of\x20three\x20mutually\x20exclusive\x20Allocator\x20paths\x20fires:\x20clean\x20return\x0a(deposit\x20back\x20in\x20full),\x20cancellation\x20(full\x20refund),\x20or\x20graded\x20damage\x0adeduction.\x20Settlement\x20is\x20a\x20single\x20allocation\x20transaction\x20—\x20≈3\x20seconds\x20on\x0ak1rent\x20**[k1rent]**\x20—\x20exact\x20to\x20the\x20cent.\x0a\x0aYour\x20sentence:\x20*\x22The\x20incumbent\x20platform\x20itself\x20admitted\x20the\x20evidence\x20crisis\x20—\x0awe\x20turned\x20it\x20into\x20structural\x20immunity,\x20and\x20the\x20deposit\x20is\x20real.\x22*\x0a\x0a##\x202.\x20The\x20k1rent\x20receipts\x20are\x20your\x20marketing\x0a\x0aThree\x20immutable\x20Payment\x20records\x20exist\x20from\x20the\x20pilot:\x0a\x0a-\x20`0x078b0834`\x20—\x20clean:\x202\x20rent\x20→\x20merchant,\x203\x20deposit\x20→\x20customer;\x0a-\x20`0xfac811d5`\x20—\x20cancellation:\x205\x20fully\x20→\x20customer;\x0a-\x20`0xe812ed37`\x20—\x20damage:\x203.5\x20→\x20merchant,\x201.5\x20→\x20customer.\x0a\x0aA\x20traditional\x20platform\x27s\x20\x22case\x20study\x22\x20cannot\x20be\x20independently\x20verified.\x20These\x0athree\x20can,\x20by\x20anyone,\x20forever.\x20Build\x20the\x20interactive\x20audit\x20page\x20around\x20the\x0a10-node\x20machine\x20+\x20three\x20paths\x20and\x20make\x20that\x20page\x20the\x20center\x20of\x20your\x0aacquisition.\x0a\x0a##\x203.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(camera,\x203\x20days)\x20|\x20$200\x20|\x0a|\x20Legacy\x20host-side\x20commission\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2015.5%\x20≈\x20$31/order\x20|\x0a|\x20Full-cycle\x20WoW\x20cost\x20|\x20≈\x200.05\x20WOW\x20≈\x20¥0.35\x20(5–7\x20txns)\x20**[k1rent]**\x20|\x0a|\x20Deposit\x20refund\x20|\x207–15\x20business\x20days\x20→\x20≈3\x20seconds\x20|\x0a|\x20Insurance/arbitration\x20collapse\x20|\x20Incumbent\x20vehicle-rental\x20platform:\x20$750M\x20burden\x20|\x0a\x0aThat\x2015.5%\x20is\x20the\x20incumbent\x27s,\x20not\x20yours:\x20under\x20direct\x20sales\x20the\x20host\x27s\x20default\x0apayout\x20is\x20Rate\x2010000\x20to\x20the\x20host\x27s\x20own\x20Entity,\x20and\x20the\x20deposit\x20refund\x20is\x20a\x0aseparate\x20leg\x20to\x20the\x20customer.\x20Only\x20a\x20declared\x20third\x20party\x20(cleaning,\x20repair)\x0aever\x20earns\x20a\x20non-zero\x20share,\x20and\x20its\x20Entity\x20must\x20be\x20non-empty\x20and\x20visible\x20to\x20the\x0arenter\x20BEFORE\x20the\x20order\x20is\x20funded.\x0a\x0aPrice\x20floor:\x20rental\x20rate\x20must\x20cover\x20maintenance\x20+\x20depreciation\x20+\x0abracket-expected\x20damage.\x20The\x20deposit\x20is\x20never\x20lent\x20against\x20or\x20rehypothecated.\x0a\x0a##\x204.\x20Pricing\x20models\x0a\x0a1.\x20**Rent\x20+\x20deposit\x20bundled\x20escrow,\x20three-path\x20settlement**\x20(default\x20and\x0a\x20\x20\x20core).\x20Pre-rental\x20WIP\x20baseline\x20is\x20non-negotiable\x20—\x20without\x20it\x20the\x20damage\x0a\x20\x20\x20guard\x20cannot\x20pass\x20and\x20the\x20product\x20does\x20not\x20exist.\x0a2.\x20**Pre-agreed\x20graded\x20damage\x20brackets**\x20(light\x2020%\x20/\x20heavy\x2050%\x20/\x20total\x20100%)\x0a\x20\x20\x20for\x20continuous\x20damage\x20amounts\x20like\x20the\x20$347.50\x20case.\x20Brackets\x20are\x0a\x20\x20\x20disclosed\x20and\x20accepted\x20at\x20order\x20time;\x20micro-arbitration\x20only\x20assigns\x20the\x0a\x20\x20\x20bracket\x20—\x20it\x20never\x20improvises\x20amounts.\x0a3.\x20**Duration\x20discount\x20ladder**\x20(monthly\x2010%\x20/\x20quarterly\x2020%\x20/\x20annual\x2030%)\x0a\x20\x20\x20to\x20push\x20utilization,\x20never\x20below\x20maintenance\x20+\x20depreciation\x20per\x20period.\x0a\x0aPosture\x20guidance:\x20volume\x20plays\x20utilization\x20and\x20repeat\x20credits\x20(but\x20never\x0awaives\x20the\x20real\x20deposit);\x20margin\x20sells\x20premium\x20high-value\x20gear\x20on\x0averifiable\x20deposit\x20safety\x20and\x203-second\x20refunds;\x20balanced\x20runs\x20the\x2010-merchant\x0aseed\x20program.\x0a\x0a##\x205.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x2010-node\x20rental\x20machine\x20with\x20handover_out\x20baseline\x20node\x20and\x20return\x20node.\x0a-\x20[\x20]\x20WIP\x20hash\x20capture\x20guided\x20UX\x20at\x20both\x20handover\x20and\x20return\x20(this\x20is\x20the\x0a\x20\x20\x20\x20\x20\x20trust\x20moment\x20—\x20make\x20it\x20easy,\x20not\x20bureaucratic).\x0a-\x20[\x20]\x20Three\x20mutually\x20exclusive\x20Allocator\x20paths,\x20first-match\x20semantics.\x0a-\x20[\x20]\x20Independent\x20arbitration\x20permission\x20(see\x20red\x20line:\x20do\x20not\x20claim\x0a\x20\x20\x20\x20\x20\x20contract-enforced\x20independence\x20without\x20negative-test\x20backing).\x0a-\x20[\x20]\x20Keeper\x20auto-return\x20reminders\x20as\x20standard\x20onboarding,\x20$5–20/month\x0a\x20\x20\x20\x20\x20\x20transparently\x20priced.\x0a-\x20[\x20]\x20Compensation\x20fund\x20sized\x20for\x20the\x20high-value\x20inventory\x20tail.\x0a\x0a##\x206.\x20The\x2090-day\x20campaigns\x0a\x0a**Campaign\x20A\x20—\x20\x22Audit\x20This\x20Ledger\x20Yourself\x22\x20(M1).**\x20Publish\x20the\x20k1rent\x0aaudit\x20page\x20and\x20invite\x20anyone\x20to\x20audit\x20it.\x20Distribute\x20in\x20photography\x20forums,\x0acamera\x20second-hand\x20groups,\x20Reddit\x20r/photography,\x20Bilibili\x20gear\x20channels.\x20KPI:\x0a≥5,000\x20audit-page\x20UV,\x203\x20inbound\x20rental\x20merchants,\x201\x20organic\x20KOC\x20retelling.\x0aBudget\x20$1.5–2.5K\x20**[estimate]**.\x0a\x0a**Campaign\x20B\x20—\x20\x22Deposit\x20Protection\x20Program\x22\x20(M1–M3).**\x20Recruit\x2010\x20equipment\x0arental\x20merchants;\x20templated\x20build\x20≤10\x20dialogues;\x20keeper\x20subsidy\x20$20/mo\x20per\x0amerchant\x20plus\x20first-order\x20gas\x20subsidy\x20for\x203\x20months.\x20KPI:\x2010\x20published\x0aServices,\x20≥100\x20cumulative\x20orders,\x20zero\x20escalated\x20disputes\x20(everything\x20closed\x0aby\x20guard\x20or\x20on-chain\x20micro-arbitration).\x20Budget\x20$8–12K\x20**[estimate]**.\x0a\x0a##\x207.\x20Cold-start\x20mechanics\x0a\x0aSign\x20supply\x20first.\x20Equipment\x20owners\x20get\x20the\x20deposit-custody\x20sales\x20line;\x20\x22my\x0arule:\x20on-chain\x20deposit\x22\x20is\x20their\x20filter\x20for\x20serious\x20renters.\x20Owners\x20bring\x0ademand.\x20Targets:\x20camera/gear,\x20construction\x20machinery,\x20outdoor\x20equipment,\x20and\x0aP2P\x20hosts\x20—\x20high-value,\x20low-frequency,\x20damage-dispute-rich,\x20AOV\x20$100–500.\x0a\x0aIntercept\x20second-hand\x20marketplace\x20dispute\x20threads\x20with\x20one\x20line:\x20\x22this\x0adispute\x20could\x20not\x20have\x20happened\x20on\x20WoW\x22\x20—\x20plus\x20the\x20audit\x20link.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(biweekly)\x0a\x0aRent\x20price,\x20whether\x20the\x20deposit\x20is\x20actually\x20held\x20(vs\x20card\x20auth),\x20pre-rental\x0aevidence\x20requirement,\x20refund\x20speed,\x20arbitration\x20independence.\x20Cite\x0aopponents\x27\x20own\x20documents\x20(incumbent\x20policy\x20reversals\x20such\x20as\x20AI-image\x20claim\x0abans,\x20and\x20platform\x20shutdowns)\x20—\x20their\x20copy\x20outperforms\x20any\x20copy\x20you\x20could\x20write.\x0a\x0a##\x209.\x20Retention\x0a\x0a-\x20Show\x20historical\x20settlement\x20transactions\x20to\x20first-time\x20renters\x20before\x20they\x0a\x20\x20fund.\x0a-\x20Re-rental\x20via\x20accumulated\x20credit,\x20not\x20coupons.\x0a-\x20Keep\x20claims\x20structurally\x20separate\x20from\x20reviews\x20—\x20this\x20kills\x20review\x0a\x20\x20extortion\x20and\x20is\x20worth\x20saying\x20out\x20loud.\x0a\x0a##\x2010.\x20Red\x20lines\x0a\x0a1.\x20No\x20damage\x20deduction\x20without\x20a\x20pre-rental\x20baseline\x20(guard\x20must\x20fail).\x0a2.\x20\x22Contract-enforced\x22\x20arbitration\x20claims\x20require\x20negative-test\x20backing\x0a\x20\x20\x20first\x20(P-5\x20lesson).\x0a3.\x20Never\x20hide\x20the\x20keeper\x20subscription\x20cost.\x0a',FREELANCE_MANUAL='#\x20Freelance\x20(Services)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20project-based\x20freelancers\x20and\x20small\x20studios\x0a>\x20on\x20WoWok.\x20Anchors\x20from\x20the\x20K1\x20enterprise\x20talent-marketplace\x20analysis;\x0a>\x20**[estimate]**\x20marks\x20planning\x20figures.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x27s\x2015.4%\x20take\x0a(+\x20its\x203–7.99%\x20client-side\x20fee\x20and\x20contract\x20startup\x20fee)\x20into\x20an\x20allocator:\x20that\x0ashare\x20is\x20displaced\x20by\x20design,\x20not\x20a\x20parameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x0ayou\x20ARE\x20the\x20aggregator\x20(a\x20talent\x20agency,\x20a\x20multi-contract\x20orchestrator)\x20you\x20may\x0acharge\x20your\x20own\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x0abefore\x20ordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x0aroutes\x20the\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x0ano\x20mandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x0aleg,\x20which\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aIncumbent\x20freelance\x20platforms\x20extract\x20on\x20four\x20axes\x20simultaneously:\x0a\x0a-\x2015.4%\x20take\x20(plus\x203–7.99%\x20client-side\x20fees\x20and\x20contract\x20startup\x20fees);\x0a-\x20Connects\x20bid-entry\x20costs\x20of\x20$48–120\x20for\x20a\x20first\x20order,\x20with\x20~60%\x20of\x0a\x20\x20proposals\x20getting\x20no\x20reply;\x0a-\x20up\x20to\x2027\x20days\x20from\x20delivery\x20to\x20settled\x20cash;\x0a-\x20arbitration\x20at\x20$337.50\x20per\x20party\x20—\x20which\x20makes\x20every\x20dispute\x20under\x20~$700\x0a\x20\x20structurally\x20unsolvable,\x20precisely\x20the\x20long-tail\x20amount\x20band;\x0a-\x20reputation\x20locked\x20inside\x20the\x20platform\x20(JSS),\x20plus\x2010-minute\x20screenshot\x0a\x20\x20surveillance\x20(Work\x20Diary).\x0a\x0aWoWok\x20flips\x20each\x20one:\x20escrow\x20at\x20signing,\x20WIP\x20delivery\x20anchoring,\x20acceptance\x0asignature\x20releasing\x20funds\x20in\x20seconds,\x2014-day\x20silence\x20auto-acceptance\x20via\x20time\x0aguard\x20+\x20keeper,\x20micro-arbitration\x20at\x20any\x20amount,\x20and\x20a\x20Passport\x20credential\x0athe\x20freelancer\x20carries\x20across\x20every\x20client\x20and\x20industry.\x0a\x0aYour\x20sentence:\x20*\x22The\x20incumbent\x20says\x20disputes\x20under\x20$700\x20aren\x27t\x20worth\x20solving.\x0aWe\x20say\x20every\x20one\x20is\x20—\x20and\x20your\x20reputation\x20is\x20your\x20asset,\x20not\x20their\x20hostage.\x22*\x0a\x0aPhilosophy\x20line\x20that\x20also\x20functions\x20as\x20a\x20filter:\x20**we\x20verify\x20outcomes,\x20we\x20do\x0anot\x20monitor\x20processes.**\x20Decline\x20hourly-surveillance\x20clients\x20happily.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Milestone\x20contract\x20AOV\x20|\x20$1,000\x20|\x0a|\x20Legacy\x20take\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2015.4%\x20≈\x20$154\x20(+\x20client\x203–7.99%)\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20$0.01–0.6\x20across\x204–8\x20txns\x20|\x0a|\x20Arbitration\x20|\x20≈\x20$0.01\x20vs\x20$337.50/party\x20|\x0a|\x20Settlement\x20|\x20up\x20to\x2027\x20days\x20→\x20seconds\x20|\x0a\x0aA\x20single\x20$1,000\x20contract\x20retains\x20≈$153\x20that\x20used\x20to\x20leave;\x20adoption\x20pays\x20on\x0athe\x20first\x20escrowed\x20job.\x20That\x20$154\x20is\x20the\x20incumbent\x27s\x20cut,\x20not\x20a\x20line\x20in\x20your\x0aallocator\x20—\x20your\x20default\x20settlement\x20is\x20Rate\x2010000\x20to\x20your\x20own\x20Entity.\x20If\x20you\x0aare\x20an\x20agency\x20orchestrating\x20several\x20freelancers,\x20your\x20own\x20fee\x20must\x20be\x20an\x0aexplicit\x20Amount\x20or\x20Rate\x20leg\x20to\x20an\x20explicit\x20non-empty\x20Entity,\x20disclosed\x20before\x0athe\x20client\x20orders\x20—\x20never\x20an\x20implicit\x20remainder\x20and\x20never\x20a\x20`Surplus`\x20entry.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Milestone\x20escrow\x20with\x20acceptance\x20signature**\x20(default).\x20Every\x20milestone\x0a\x20\x20\x20objectively\x20verifiable;\x20`deliver_guard_wip`\x20anchors\x20the\x20delivery,\x0a\x20\x20\x20`accept_guard_signer`\x20releases,\x2014-day\x20time\x20guard\x20auto-accepts.\x0a2.\x20**Fixed-price\x20deliverable\x20with\x20revision\x20loops**\x20(logos,\x20translations,\x0a\x20\x20\x20articles).\x20Revision\x20rounds\x20modeled\x20as\x20machine\x20loops\x20—\x20cap\x20the\x20rounds\x20up\x0a\x20\x20\x20front.\x0a3.\x20**Demand-based\x20reverse\x20bidding**:\x20clients\x20post\x20Demands,\x20you\x20present\x20with\x0a\x20\x20\x20Passport/trust\x20gating;\x20zero\x20connect\x20fees,\x20no\x2060%-no-reply\x20graveyard.\x0a\x0aPosture\x20guidance:\x20volume\x20competes\x20on\x20Demand\x20participation\x20and\x20first-order\x0aspeed;\x20margin\x20positions\x20on\x20public\x20on-chain\x20delivery\x20history\x20and\x20refuses\x0aprocess\x20surveillance;\x20balanced\x20standardizes\x20milestone\x20templates\x20and\x20mixes\x0aDemand\x20with\x20referral\x20clients.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Service\x20priced\x20per\x20milestone\x20(3–5\x20splits\x20in\x20the\x20first\x20proposal\x20—\x20it\x0a\x20\x20\x20\x20\x20\x20de-risks\x20the\x20client\x20and\x20signals\x20professionalism).\x0a-\x20[\x20]\x20Escrow\x20before\x20any\x20work\x20starts.\x20Never\x20start\x20on\x20a\x20\x22trusted\x20client\x22\x0a\x20\x20\x20\x20\x20\x20promise.\x0a-\x20[\x20]\x20WIP\x20hashing\x20at\x20each\x20delivery;\x20acceptance\x20gate;\x2014-day\x20auto-accept\x20time\x0a\x20\x20\x20\x20\x20\x20guard\x20+\x20keeper.\x0a-\x20[\x20]\x20Arbitration\x20bound\x20even\x20on\x20small\x20jobs\x20—\x20the\x20cost\x20is\x20trivial\x20and\x20the\x0a\x20\x20\x20\x20\x20\x20availability\x20is\x20the\x20pitch.\x0a-\x20[\x20]\x20Passport\x20issuance\x20workflow\x20ready\x20before\x20leading\x20with\x20portability\x0a\x20\x20\x20\x20\x20\x20claims\x20(BUG-02\x20P0\x20dependency).\x0a\x0a##\x205.\x20Campaign\x20sequencing\x20(start\x20M2,\x20need\x20≥20\x20merchants\x20first)\x0a\x0a**\x22$699\x20Arbitration\x20Clinic\x22\x20(M2–M3).**\x20Publicly\x20accept\x20and\x20resolve\x20real\x0asub-$700\x20commercial\x20disputes\x20on-chain;\x20publish\x20a\x20weekly\x20micro-arbitration\x0adocumentary.\x20KPI:\x20≥10\x20closed\x20arbitrations,\x20≥3,000\x20average\x20reads\x20per\x20episode,\x0aarbitrator\x20pool\x20≥15.\x20Budget\x20$3–5K\x20**[estimate]**.\x0a\x0a**\x22Transparent\x20Income\x20Witnesses\x22\x20KOC\x20program.**\x20Sign\x205–8\x20mid-tier\x20(not\x0ahead-tier)\x20freelancers\x20who\x20publish\x20real\x20incumbent-vs-WoW\x20income\x20comparisons\x20at\x0aauditable\x20addresses.\x20KOL\x20settlement\x20auto-splits\x20via\x20Allocation\x20after\x20verified\x0afirst-order\x20conversion\x20—\x20no\x20monthly\x20net\x20terms.\x20KPI:\x20≥30\x20registered\x0afreelancers\x20per\x20KOC,\x20on-chain-verifiable\x20conversion\x20≥8%.\x20Budget\x20$6–10K\x0a**[estimate]**.\x0a\x0a##\x206.\x20Channels\x0a\x0ar/freelance,\x20Indie\x20Hackers,\x20digital-nomad\x20communities\x20(67%\x20of\x20Gen\x20Z\x20regard\x0amultiple\x20income\x20streams\x20as\x20essential\x20—\x20Passport\x20lands\x20here),\x20design\x20and\x0atranslation\x20verticals,\x20and\x20Demand\x20bounty\x20events\x20for\x20the\x20demand\x20side.\x0aEstimated\x20$3–8\x20per\x20registered\x20freelancer\x20**[estimate]**.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Proposals\x20show\x20WIP\x20hashes\x20of\x20similar\x20completed\x20milestones.\x0a-\x20Always\x20propose\x20the\x20milestone\x20split\x20in\x20the\x20first\x20message.\x0a-\x20At\x20delivery,\x20explicitly\x20point\x20at\x20the\x20Passport\x20credential\x20earned:\x20every\x0a\x20\x20clean\x20completion\x20is\x20a\x20portable\x20asset.\x20That\x20sentence\x20is\x20the\x20retention\x20loop.\x0a-\x20Revision\x20scope\x20is\x20agreed\x20before\x20escrow,\x20never\x20negotiated\x20mid-delivery.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(biweekly)\x0a\x0aEffective\x20fee\x20after\x20tiered\x20cuts,\x20escrow\x20availability,\x20settlement\x20speed,\x0aarbitration\x20fee\x20floor,\x20reputation\x20portability.\x20Let\x20the\x20incumbent\x20platform\x27s\x20own\x0afee\x20adjustment\x20notices\x20carry\x20the\x20contrast\x20—\x20every\x20one\x20of\x20those\x20figures\x20is\x20theirs,\x0aand\x20none\x20of\x20them\x20is\x20a\x20default\x20you\x20inherit.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20No\x20work\x20before\x20milestone\x20escrow.\x0a2.\x20No\x20reputation-portability\x20claims\x20before\x20Passport\x20issuance\x20UX\x20is\x0a\x20\x20\x20production-ready.\x0a3.\x20Never\x20bid\x20below\x20the\x20minimum-rate\x20floor\x20to\x20win\x20volume\x20—\x20outcome\x0a\x20\x20\x20verification\x20is\x20a\x20premium\x20position.\x0a',SUBSCRIPTION_MANUAL='#\x20Subscription\x20/\x20Membership\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20creator\x20memberships,\x20newsletters\x20and\x20indie\x0a>\x20software\x20on\x20WoWok.\x20Anchors\x20from\x20the\x20K1\x20creator-membership\x20/\x20fan-subscription\x20/\x0a>\x20app-store-IAP\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20creator\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20incumbent\x20membership\x0aplatform\x27s\x2010%\x20(or\x20the\x20app\x20store\x27s\x2030%\x20IAP\x20cut)\x20into\x20an\x20allocator:\x20those\x0ashares\x20are\x20displaced\x20by\x20design,\x20not\x20parameters,\x20and\x20nobody\x20would\x20receive\x20them.\x0aIf\x20you\x20ARE\x20the\x20aggregator\x20(a\x20bundle\x20seller,\x20a\x20multi-creator\x20programme,\x20an\x0aapp\x20distributor\x20reselling\x20several\x20creators)\x20you\x20may\x20charge\x20your\x20own\x20fee,\x20but\x0aonly\x20with:\x20an\x20explicit\x20number\x20the\x20subscriber\x20can\x20compute\x20before\x20ordering;\x20an\x0aexplicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x20the\x20share\x20to\x0athe\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x0atransit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x0a`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x0aescrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20What\x20you\x20are\x20really\x20selling\x0a\x0aThe\x20subscription\x20industry\x20runs\x20on\x20institutional\x20dark\x20patterns:\x20incumbent\x0amembership\x20platforms\x20raised\x20fees\x20unilaterally\x20three\x20times\x20in\x20thirteen\x20years\x0a(5%\x20→\x208–12%\x20→\x2010%);\x20app-store\x20IAP\x20takes\x2030%\x20and\x20floats\x20payouts\x20for\x20up\x20to\x2075\x0adays;\x20consumers\x20underestimate\x20subscription\x20spend\x20by\x202.5×\x20and\x2042%\x20pay\x20for\x0aservices\x20they\x20do\x20not\x20use;\x20incumbent\x20cancellation\x20flows\x20ran\x204\x20pages\x20/\x206\x20clicks\x20/\x0a15\x20options\x20(FTC\x20$2.5B\x20settlement\x20context);\x20and\x20creators\x20who\x20stop\x20publishing\x0akeep\x20getting\x20paid\x20by\x20their\x20subscribers.\x0a\x0aYour\x20structure\x20makes\x20the\x20dark\x20patterns\x20impossible\x20rather\x20than\x20merely\x0adisclosed:\x0a\x0a-\x20`charge_guard_signer`\x20—\x20EVERY\x20period\x27s\x20charge\x20needs\x20the\x20subscriber\x27s\x0a\x20\x20explicit\x20signature.\x20No\x20auto-renewal\x20path\x20exists.\x0a-\x20`deliver_guard_wip`\x20—\x20without\x20delivered\x20value,\x20the\x20period\x27s\x20charge\x20cannot\x0a\x20\x20pass.\x20This\x20is\x20an\x20industry\x20blank:\x20no\x20incumbent\x20can\x20offer\x20it.\x0a-\x20`cancel_guard_signer`\x20—\x20cancellation\x20is\x20one\x20signature\x20(15\x20options\x20→\x201).\x0a-\x20Allocation\x20100%\x20→\x20creator,\x20frozen\x20at\x20publish.\x20The\x20thirteen-year\x20rate-ratchet\x0a\x20\x20history\x20cannot\x20repeat;\x20it\x20is\x20a\x20protocol\x20property,\x20not\x20a\x20promise.\x0a\x0aThe\x20per-period\x20signature\x20is\x20DELIBERATE\x20FRICTION.\x20Sell\x20it\x20correctly:\x20friction\x0ais\x20protection;\x20the\x20people\x20who\x20remain\x20after\x20signing\x20are\x20real\x20fans;\x20the\x20friction\x0ais\x20a\x20retention-quality\x20certificate.\x20Never\x20sneak\x20auto-renewal\x20back\x20in\x20to\x0aoptimize\x20conversion.\x0a\x0aYour\x20sentence:\x20*\x22Thirteen\x20years\x20of\x20unilateral\x20price\x20raises\x20cannot\x20exist\x20in\x20a\x0afrozen\x20contract\x20—\x20and\x20every\x20single\x20charge\x20is\x20one\x20you\x20signed\x20yourself.\x22*\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Creator\x20monthly\x20anchor\x20|\x20$100/month\x20($1,200/year)\x20|\x0a|\x20Legacy\x20take\x20(INCUMBENT\x20benchmarks,\x20displaced\x20—\x20not\x20parameters)\x20|\x20Incumbent\x20membership\x20platform\x2010%\x20≈\x20$10/month;\x20mobile\x20app-store\x20IAP\x2030%\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20$0.03–2\x20across\x2024\x20annual\x20txns\x20|\x0a|\x20Payout\x20|\x20IAP\x20up\x20to\x2075-day\x20float\x20→\x20seconds\x20per\x20period\x20|\x0a|\x20Extra\x20per\x20year\x20|\x20≈\x20$120\x20on\x20a\x20single\x20$100/mo\x20membership\x20|\x0a\x0aThose\x20two\x20percentages\x20are\x20the\x20incumbents\x27\x20numbers,\x20quoted\x20only\x20to\x20show\x20the\x20gap\x0athey\x20charge.\x20Under\x20direct\x20sales\x20neither\x20appears\x20in\x20your\x20payout:\x20the\x20default\x20is\x0aRate\x2010000\x20to\x20the\x20creator,\x20frozen\x20at\x20publish.\x20A\x20distributor\x20reselling\x20several\x0acreators\x20is\x20the\x20aggregator\x20case\x20—\x20its\x20own\x20fee\x20must\x20be\x20an\x20explicit\x20leg\x20to\x20an\x0aexplicit\x20non-empty\x20Entity,\x20disclosed\x20before\x20the\x20subscriber\x20signs,\x20and\x20never\x20an\x0aimplicit\x20remainder\x20or\x20a\x20`Surplus`\x20drain.\x0a\x0aFloor:\x20no\x20period\x20charge\x20passes\x20without\x20delivery\x20evidence.\x20The\x20creator\x20must\x0akeep\x20producing\x20—\x20that\x20obligation\x20is\x20the\x20subscriber\x27s\x20protection\x20and\x20the\x0aproduct\x27s\x20integrity.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Per-period\x20signed\x20charge\x20with\x20delivery\x20gate**\x20(default).\x20Monthly\x20or\x0a\x20\x20\x20chosen\x20cadence;\x20explicit\x20signature\x20each\x20period;\x20charge\x20blocked\x20without\x0a\x20\x20\x20delivery\x20proof;\x20one-signature\x20cancellation.\x0a2.\x20**Annual\x20prepay\x20released\x20per\x20period**.\x20Annual\x20cash\x20lands\x20in\x20escrow\x20and\x0a\x20\x20\x20releases\x20monthly\x20—\x20prepayment\x20with\x20structural\x20stoppage\x20protection\x20for\x0a\x20\x20\x20undelivered\x20months.\x0a3.\x20**Tiered\x20membership**.\x20Each\x20tier\x20maps\x20to\x20concrete\x20deliverables\x20and\x20its\x20own\x0a\x20\x20\x20delivery\x20guard;\x20up/downgrade\x20takes\x20effect\x20next\x20period\x20only.\x20Tier\x0a\x20\x20\x20deliverables\x20must\x20be\x20specific\x20enough\x20for\x20a\x20guard\x20to\x20evaluate.\x0a\x0aPosture\x20guidance:\x20volume\x20rides\x20the\x20consumer\x20\x22signing\x20movement\x22\x20with\x0afirst-month\x20pricing;\x20margin\x20serves\x20fewer\x20true\x20fans\x20at\x20premium\x20tiers\x20and\x0arefuses\x2030%\x20channels;\x20balanced\x20pairs\x20acquisition\x20tools\x20with\x20retention\x0arituals.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Billing-cycle\x20machine\x20with\x20charge\x20guard\x20+\x20delivery\x20gate\x20per\x20period.\x0a-\x20[\x20]\x20One-signature\x20cancellation\x20node;\x20confirm\x20there\x20is\x20exactly\x20one\x20path.\x0a-\x20[\x20]\x20Frozen\x20Allocation\x20100%\x20to\x20creator;\x20no\x20post-publish\x20fee\x20edit\x20surface.\x0a-\x20[\x20]\x20Annual\x20plan:\x20escrowed\x20prepay,\x20per-period\x20release,\x20undelivered-month\x0a\x20\x20\x20\x20\x20\x20refund\x20guaranteed\x20structurally.\x0a-\x20[\x20]\x20DRM/content\x20access\x20rules\x20declared\x20off-chain\x20where\x20applicable.\x0a\x0a##\x205.\x20The\x20\x22Signing\x20Movement\x22\x20campaign\x20(M2–M4)\x0a\x0aTwo\x20assets,\x20one\x20narrative:\x0a\x0a1.\x20**Consumer\x20side\x20—\x20subscription\x20checkup\x20widget.**\x20Input\x20your\x20subscription\x0a\x20\x20\x20list;\x20learn\x20how\x20much\x20you\x20annually\x20pay\x20for\x20unused\x20services\x20(cite\x20the\x202.5×\x0a\x20\x20\x20underestimate\x20and\x2042%\x20unused\x20figures).\x20KPI:\x20≥20,000\x20checkups.\x0a2.\x20**Creator\x20side\x20—\x20\x22100%\x20Arrival\x20Day\x22.**\x20One\x20day\x20each\x20month,\x20creators\x20post\x0a\x20\x20\x20their\x20on-chain\x20per-period\x20release\x20receipts.\x20KPI:\x2030\x20onboarded\x20creators.\x0a\x0aPlus\x20the\x20one-signature\x20cancellation\x20demo\x20video\x20(target\x20≥100K\x20views).\x20Launch\x0aagainst\x20FTC/platform\x20price-hike\x20news\x20cycles\x20—\x20they\x20recur\x20predictably;\x20keep\x0a24-hour\x20response\x20drafts.\x20Budget\x20$4–7K\x20**[estimate]**.\x0a\x0aCapture\x20education\x20recorded-course\x20overflow:\x20the\x20routing\x20rule\x20sends\x0arecorded/self-paced\x20courses\x20here\x20from\x20the\x20education\x20intake.\x0a\x0a##\x206.\x20Channels\x0a\x0aCreator\x20communities\x20(Discord,\x20membership-platform\x20forums\x20—\x20the\x20$131–180\x0amedian-monthly\x20creators\x20experience\x20the\x20incumbent\x27s\x2010–20%\x20fee\x20as\x20a\x20survival\x0aissue),\x20newsletter\x20and\x20indie-dev\x20circles\x20(incumbent\x20IAP\x2030%\x20+\x2075-day\x20float),\x0aHacker\x20News\x20and\x20the\x20anti-dark-pattern\x20audience.\x20$2–5\x20per\x20subscriber\x0a**[estimate]**.\x20Values\x20alignment\x20beats\x20ad\x20spend\x20in\x20this\x20segment.\x0a\x0a##\x207.\x20Retention\x0a\x0a-\x20Migrate\x20creators\x20one\x20tier\x20at\x20a\x20time;\x20show\x20per-period\x20release\x20receipts.\x0a-\x20Lead\x20with\x20the\x20unused-month\x20guarantee:\x20no\x20delivery,\x20no\x20charge.\x0a-\x20The\x20cancellation\x20demo\x20doubles\x20as\x20a\x20conversion\x20asset\x20—\x20trust\x20that\x20you\x20can\x0a\x20\x20leave\x20is\x20why\x20people\x20stay.\x0a-\x20Upgrade/downgrade\x20effective\x20next\x20period\x20keeps\x20accounting\x20and\x20guard\x20logic\x0a\x20\x20honest.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aTake\x20rate\x20and\x20unilateral-change\x20history,\x20charge\x20transparency,\x20cancellation\x0aclick\x20count,\x20stopped-creator\x20policy,\x20time-to-payout.\x20Contrast\x20the\x20FTC\x0asettlement\x20and\x20frozen\x20Allocation\x20—\x20opponent\x20documents,\x20not\x20your\x20adjectives.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Never\x20implement,\x20document,\x20or\x20imply\x20auto-renewal.\x0a2.\x20Never\x20charge\x20a\x20period\x20without\x20delivery\x20evidence.\x0a3.\x20Rate-lock\x20claims\x20exist\x20only\x20through\x20published\x20frozen\x20Allocation.\x0a',TRAVEL_MANUAL='#\x20Travel\x20(Custom\x20&\x20Multi-Segment)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20custom-trip\x20and\x20multi-segment\x20travel\x20studios\x0a>\x20on\x20WoWok.\x20This\x20is\x20a\x20tier-3\x20playbook:\x20the\x20economics\x20are\x20the\x20strongest\x20in\x20the\x0a>\x20catalog,\x20but\x20the\x20adoption\x20bottleneck\x20is\x20real.\x20Anchors\x20from\x20the\x20K1\x20global-OTA\x0a>\x20/\x20package-tour\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20merchant\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20OTA\x27s\x2025–36%\x20commission\x0ainto\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x20design,\x20not\x20a\x20parameter,\x20and\x0anobody\x20would\x20receive\x20it.\x20Travel\x20is\x20the\x20clearest\x20aggregator\x20case\x20—\x20if\x20you\x20ARE\x20the\x0aoperator\x20(an\x20agent\x20selling\x20hotels,\x20guides\x20and\x20drivers\x20it\x20did\x20not\x20supply),\x20your\x0aown\x20fee\x20is\x20allowed,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20traveler\x20can\x20compute\x0abefore\x20booking;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20per\x20leg\x20(an\x20empty\x20one\x0asilently\x20routes\x20the\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x0a`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x20mandatory\x20transit\x20pool\x20on\x20the\x20payout\x0apath\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x20which\x20calls\x20`balance::withdraw_all`\x20and\x0aso\x20doubles\x20as\x20draining\x20the\x20pool.\x20Compete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20Why\x20travel\x20is\x20deliberately\x20third\x20in\x20line\x0a\x0aGlobal\x20OTAs\x27\x20effective\x20hotel\x20commission\x20runs\x2025–36%\x20after\x20loyalty-tier\x0astacking,\x20the\x20merchant\x20model\x20floats\x20roughly\x20$134B/year\x20in\x20client\x20money,\x20VCC\x0amanual\x20settlement\x20takes\x202–6\x20weeks,\x20and\x20the\x20fund\x20waterfall\x20is\x20invisible:\x0atravelers\x20see\x20totals,\x20hotels\x20see\x20net\x20rates.\x20When\x20failures\x20happen\x20—\x20a\x20major\x0atour\x20operator\x27s\x20collapse\x20stranding\x20hundreds\x20of\x20thousands\x20of\x20customers,\x20tens\x20of\x0abillions\x20in\x20pandemic\x20refunds\x20—\x20relief\x20is\x20post-hoc;\x20EU261\x20compensates\x20flight\x0alegs\x20while\x20downstream\x20segments\x20simply\x20die.\x0a\x0aWoWok\x27s\x20answer\x20is\x20structurally\x20superior:\x20a\x20multi-segment\x20machine\x0a(`segment_D1..DN`)\x20releases\x20each\x20segment\x27s\x20fee\x20as\x20its\x20WIP\x20passes;\x20an\x0ainterrupted\x20node\x20refunds\x20undelivered\x20segments\x20in\x20one\x20transaction;\x20the\x20agent\x0aruns\x20a\x20second-level\x20Allocation\x20from\x20its\x20own\x20Treasury\x20so\x20the\x20waterfall\x20is\x0areadable\x20on-chain;\x20Treasury-scoped\x20Payments\x20can\x20compensate\x20across\x20segments.\x0a\x0aThe\x20bottleneck\x20is\x20adoption,\x20not\x20economics:\x20hotels\x20and\x20drivers\x20are\x20not\x20on\x0achain.\x20That\x20is\x20why\x20the\x20first\x20viable\x20form\x20is\x20the\x20**agent\x20as\x20the\x20single\x0aon-chain\x20counterparty**\x20—\x20agent↔client\x20custody\x20closes\x20the\x20trust\x20loop\x20alone,\x0aand\x20supplier\x20participation\x20grows\x20later\x20with\x20the\x20Passport\x20network.\x20Do\x20not\x0afront-load\x20this\x20industry\x20before\x20the\x20tier-1/2\x20reputation\x20network\x20exists.\x0a\x0aYour\x20sentence:\x20*\x22A\x20collapsed\x20tour\x20operator\x27s\x20stranded\x20millions\x20were\x20post-hoc\x0arelief.\x20The\x20same\x20money\x20in\x20custody\x20with\x20interruption\x20branches\x20is\x20pre-event\x0aisolation.\x22*\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20AOV\x20(5-segment\x20custom\x20trip)\x20|\x20$2,000\x20|\x0a|\x20Effective\x20legacy\x20commission\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2025–36%\x20≈\x20$350–720/trip\x20|\x0a|\x20WoW\x20cost\x20|\x20gas\x20≈\x20$0.02–1\x20across\x202×segments+3\x20txns\x20|\x0a|\x20Settlement\x20|\x20VCC\x202–6\x20weeks\x20→\x20per-segment\x20seconds\x20|\x0a\x0aGas\x20is\x20noise\x20against\x20$350–700\x20saved\x20per\x20trip.\x20That\x20$350–720\x20is\x20the\x20OTA\x27s\x20cut,\x0anot\x20yours:\x20a\x20merchant\x27s\x20own\x20segments\x20pay\x20out\x20Rate\x2010000\x20to\x20the\x20merchant\x27s\x0aEntity,\x20and\x20an\x20aggregator\x27s\x20own\x20fee\x20must\x20be\x20one\x20explicit,\x20pre-order-disclosed\x0anumber\x20on\x20an\x20explicit\x20non-empty\x20Entity\x20—\x20never\x20`order\x20total\x20-\x20segment\x20sums`\x0aimplicitly\x20absorbed,\x20never\x20a\x20`Surplus`\x20remainder.\x20The\x20binding\x20constraint\x20is\x0asupplier\x20adoption;\x20never\x20pretend\x20otherwise.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Multi-leg\x20itinerary\x20with\x20per-segment\x20release**\x20(default\x20and\x20core).\x0a\x20\x20\x20Every\x20segment\x20has\x20WIP\x20evidence\x20and\x20its\x20own\x20Allocator\x20slice;\x20the\x0a\x20\x20\x20interrupted\x20path\x20refunds\x20undelivered\x20legs\x20in\x20one\x20transaction.\x0a2.\x20**Agent\x20single-counterparty\x20custody**\x20for\x20downstream\x20suppliers\x20not\x20yet\x20on\x0a\x20\x20\x20chain.\x20The\x20agent\x20escrows\x20against\x20the\x20client,\x20holds\x20correct\x20licensing\x20and\x0a\x20\x20\x20funds\x20compensation\x20coverage\x20sized\x20to\x20the\x20maximum\x20single\x20segment.\x0a3.\x20**Weather/condition-guaranteed\x20pricing**\x20via\x20quoted\x20guard\x20+\x20a\x20specified\x0a\x20\x20\x20evidence\x20repository\x20oracle;\x20auto-refund\x20on\x20trigger\x20—\x20test\x20the\x20trigger\x0a\x20\x20\x20source\x20before\x20selling\x20it.\x0a\x0aFIT\x20EXCLUSION:\x20do\x20not\x20sell\x20standard\x20standalone\x20flights\x20or\x20hotels.\x20The\x20WoW\x0avalue\x20there\x20is\x20weak;\x20the\x20fit\x20is\x20custom\x20and\x20packaged\x20multi-segment\x20trips\x0a(package-tour\x20archetype\x20fit:\x2010/10).\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Segment\x20machine\x20D1..DN\x20with\x20per-segment\x20WIP\x20gates\x20and\x20release\x0a\x20\x20\x20\x20\x20\x20Allocators.\x0a-\x20[\x20]\x20Explicit\x20interrupted\x20node\x20with\x20one-transaction\x20refund.\x0a-\x20[\x20]\x20Agent\x20Entity\x20with\x20own\x20Treasury\x20+\x20second-level\x20Allocation;\x20waterfall\x0a\x20\x20\x20\x20\x20\x20readable\x20by\x20the\x20buyer\x20BEFORE\x20payment.\x0a-\x20[\x20]\x20Per-leg\x20cancellation\x20policy\x20disclosed\x20at\x20sale;\x20refundable\x20vs\x0a\x20\x20\x20\x20\x20\x20non-refundable\x20legs\x20separated,\x20never\x20blurred.\x0a-\x20[\x20]\x20Compensation\x20fund\x20sized\x20for\x20the\x20maximum\x20single\x20segment.\x0a-\x20[\x20]\x20Weather/condition\x20guard\x20trigger\x20source\x20specified\x20and\x20tested.\x0a\x0a##\x205.\x20Pilot\x20playbook\x20(M4+)\x0a\x0a-\x20Pilot\x20with\x202–3\x20custom-trip\x20/\x20packaged-tour\x20studios\x20under\x20agent-only\x0a\x20\x20custody.\x20Budget\x20$10–15K\x20**[estimate]**.\x0a-\x20Asset\x201:\x20the\x20interactive\x20**$2,000\x20waterfall\x20visualization**\x20—\x20exactly\x20how\x0a\x20\x20the\x20trip\x20price\x20splits\x20to\x20hotel,\x20guide\x20and\x20agent,\x20readable\x20on-chain\x20before\x0a\x20\x20purchase.\x20No\x20OTA\x20on\x20earth\x20can\x20show\x20this.\x0a-\x20Asset\x202:\x20the\x20**weather-guard\x20auto-refund\x20demo**\x20—\x20converts\x20\x22escrow\x22\x20from\x20a\x0a\x20\x20word\x20into\x20a\x20visible\x20guarantee.\x0a-\x20Anchor\x20content\x20to\x20the\x20next\x20large\x20travel-failure\x20news\x20cycle;\x20the\x20structural\x0a\x20\x20contrast\x20(pre-event\x20isolation\x20vs\x20post-hoc\x20relief)\x20writes\x20itself.\x0a\x0a##\x206.\x20Competitor\x20watch\x20(monthly)\x0a\x0aEffective\x20commission\x20after\x20loyalty-tier\x20stacking,\x20waterfall\x20transparency,\x0aper-leg\x20cancellation\x20terms,\x20downstream\x20refund\x20handling\x20(the\x20EU261\x20gap),\x0asettlement\x20speed.\x20Travel\x20is\x20seasonal\x20and\x20contractual\x20—\x20monthly\x20is\x20sufficient;\x0aspend\x20the\x20attention\x20on\x20the\x20pilot\x20studios.\x0a\x0a##\x207.\x20Retention\x0a\x0a-\x20The\x20pre-trip\x20waterfall\x20inspection\x20is\x20the\x20sales\x20asset\x20AND\x20the\x20delivery\x0a\x20\x20promise\x20—\x20rebook\x20on\x20the\x20gap\x20between\x20the\x20two\x20being\x20zero.\x0a-\x20Interrupted-segment\x20one-transaction\x20refund\x20demonstrated\x20before\x20payment.\x0a-\x20Win\x20re-books\x20with\x20itinerary\x20history\x20and\x20per-leg\x20transparency,\x20not\x20points.\x0a\x0a##\x208.\x20Red\x20lines\x0a\x0a1.\x20No\x20standard\x20flight/hotel\x20resale\x20—\x20weak\x20fit,\x20damages\x20positioning.\x0a2.\x20No\x20large\x20cross-period\x20custody\x20marketing\x20before\x20stablecoin\x20bridging\x20is\x0a\x20\x20\x20ready;\x20price\x20in\x20fiat\x20terms.\x0a3.\x20Never\x20commingle\x20undelivered-segment\x20funds\x20with\x20operating\x20cash;\x20cross-leg\x0a\x20\x20\x20responsibility\x20disclosed,\x20never\x20blurred.\x0a',RETAIL_MANUAL='#\x20Retail\x20(Private-Domain\x20Commerce)\x20Merchant\x20Strategy\x20Manual\x0a\x0a>\x20Built-in\x20tactical\x20playbook\x20for\x20sellers\x20who\x20already\x20own\x20traffic\x20—\x20DTC\x20sites,\x0a>\x20community\x20commerce\x20and\x20creator\x20stores\x20—\x20on\x20WoWok.\x20Tier-3\x20deliberately:\x20WoW\x0a>\x20replaces\x20the\x20trust\x20and\x20settlement\x20tax,\x20not\x20the\x20traffic.\x20Anchors\x20from\x20the\x0a>\x20K1\x20scale-marketplace\x20/\x20vertical-handmade\x20analysis.\x0a\x0a##\x20Business\x20model\x20—\x20direct\x20sales\x0a\x0aWoWok\x20takes\x20no\x20platform\x20commission;\x20a\x20merchant\x20pays\x20only\x20gas,\x20and\x20the\x20default\x0apayout\x20gives\x20the\x20seller\x20the\x20whole\x20sale.\x20Never\x20copy\x20the\x20marketplace\x27s\x2030–35%\x0acombined\x20burden\x20into\x20an\x20allocator:\x20that\x20share\x20is\x20displaced\x20by\x20design,\x20not\x20a\x0aparameter,\x20and\x20nobody\x20would\x20receive\x20it.\x20If\x20you\x20ARE\x20the\x20aggregator\x20(a\x20channel\x0aselling\x20several\x20sellers,\x20a\x20bundle,\x20a\x20live-commerce\x20host)\x20you\x20may\x20charge\x20your\x0aown\x20fee,\x20but\x20only\x20with:\x20an\x20explicit\x20number\x20the\x20buyer\x20can\x20compute\x20before\x0aordering;\x20an\x20explicit\x20NON-EMPTY\x20recipient\x20Entity\x20(an\x20empty\x20one\x20silently\x20routes\x0athe\x20share\x20to\x20the\x20deploying\x20AI\x20—\x20see\x20`ts-sdk/packages/wowok/src/w/local/index.ts:89-91`);\x20and\x20no\x0amandatory\x20transit\x20pool\x20on\x20the\x20payout\x20path\x20—\x20never\x20a\x20fee\x20via\x20a\x20`Surplus`\x20leg,\x0awhich\x20calls\x20`balance::withdraw_all`\x20and\x20so\x20doubles\x20as\x20draining\x20the\x20pool.\x0aCompete\x20on\x20escrow/arbitration\x20value,\x20not\x20price.\x0a\x0a##\x201.\x20The\x20honest\x20admission\x20that\x20makes\x20the\x20pitch\x20work\x0a\x0aScale-marketplace\x20sellers\x20carry\x20a\x2030–35%\x20combined\x20burden\x20(8–15%\x20referral\x20+\x0afulfillment\x20+\x20Q4\x20storage\x20multipliers\x20+\x208–12%\x20TACoS),\x20wait\x2014\x20days\x20for\x0asettlement\x20under\x20DD+7\x20reserves\x20that\x20can\x20jump\x20to\x20DD+90\x20(new\x20sellers\x20commonly\x0aface\x20100%\x20reserves),\x20face\x20guarantee-program\x20rulings\x20that\x20default\x20to\x20the\x20buyer\x0aon\x20absence,\x20and\x20absorb\x20a\x2019.3%\x20return\x20rate\x20of\x20which\x20~9%\x20is\x20fraudulent.\x0aUnilateral\x20fee\x20increases\x20on\x20incumbent\x20handmade\x20marketplaces\x20(24.2%)\x20complete\x0athe\x20picture.\x0a\x0aWoWok\x20answers\x20with\x20escrow\x20released\x20on\x20the\x20receipt-confirmation\x20guard,\x0areturn-auth\x20gating\x20that\x20requires\x20dual-signed\x20or\x20logistics-repository\x20evidence,\x0aconfigurable\x20arbitration\x20voting\x20periods,\x20and\x20a\x20repository\x20provenance\x20chain.\x0a\x0aThe\x20honest\x20admission:\x20**WoW\x20does\x20not\x20sell\x20traffic.**\x20The\x20incumbent\x27s\x2040.5%\x0ashare\x20is\x20the\x20value\x20of\x20demand,\x20and\x20a\x20zero-traffic\x20seller\x20should\x20be\x20rejected\x20at\x0aintake.\x20The\x20filter\x20sentence\x20is\x20the\x20strategy:\x20*\x22Of\x20the\x2030%\x20you\x20pay\x20the\x0aincumbent\x20marketplace,\x20which\x20part\x20buys\x20traffic\x20and\x20which\x20buys\x20trust?\x20We\x20don\x27t\x0asell\x20traffic\x20—\x20trust\x20is\x20free,\x20and\x20the\x20whole\x20sale\x20is\x20yours.\x22*\x20Putting\x20the\x0aboundary\x20in\x20the\x20intake\x20questionnaire\x20raises\x20conversion\x20quality.\x0a\x0a##\x202.\x20Economics\x20to\x20memorize\x0a\x0a|\x20Anchor\x20|\x20Value\x20|\x0a|---|---|\x0a|\x20Private-domain\x20AOV\x20|\x20$50\x20|\x0a|\x20Legacy\x20combined\x20burden\x20(INCUMBENT\x20benchmark,\x20displaced\x20—\x20not\x20a\x20parameter)\x20|\x2030–35%\x20≈\x20$300–350\x20per\x20$1,000\x20GMV\x20|\x0a|\x20WoW\x20cost\x20per\x20$1,000\x20GMV\x20|\x20gas\x20≈\x20$0.01–0.5\x20across\x204–6\x20txns\x20(<\x20$1)\x20|\x0a|\x20Settlement\x20|\x2014\x20days\x20+\x20reserve\x20risk\x20→\x20seconds\x20|\x0a|\x20Return\x20rate\x20/\x20fraud\x20share\x20|\x2019.3%\x20/\x209%\x20|\x0a\x0aThat\x20$300–350\x20is\x20the\x20marketplace\x27s\x20burden,\x20not\x20your\x20price:\x20your\x20default\x0asettlement\x20is\x20Rate\x2010000\x20to\x20your\x20own\x20Entity.\x20A\x20channel\x20that\x20resells\x20several\x0asellers\x20is\x20the\x20aggregator\x20case\x20and\x20may\x20charge\x20its\x20own\x20explicit,\x20disclosed\x20fee\x20to\x0aa\x20non-empty\x20Entity\x20—\x20never\x20an\x20implicit\x20remainder,\x20never\x20a\x20`Surplus`\x20drain.\x0a\x0aFloor:\x20never\x20price\x20below\x20COGS\x20+\x20shipping\x20+\x20expected-return\x20provision;\x0acompensation\x20coverage:\x203x\x20the\x20ORDER\x20at\x20buy\x20time\x20as\x20a\x20HARD\x20FLOOR\x20(the\x0achain-enforced\x20award\x20ceiling\x20per\x20arb.move,\x20checked\x20per\x20order\x20at\x20order\x0acreation\x20—\x20size\x20the\x20pool\x20for\x20the\x20typical\x20single\x20order),\x205x\x20as\x20a\x0aCONCURRENT-FLOW\x20recommendation\x20(tolerance\x20for\x20several\x20claims\x20against\x20the\x20one\x0apool).\x20The\x20economics\x20work\x20at\x20almost\x20any\x20AOV\x20—\x20traffic\x20availability\x20is\x20the\x0aonly\x20admission\x20criterion.\x0a\x0a##\x203.\x20Pricing\x20models\x0a\x0a1.\x20**Escrow\x20released\x20on\x20confirmed\x20receipt**\x20(default).\x20Funds\x20release\x20seconds\x0a\x20\x20\x20after\x20the\x20receipt\x20guard;\x20`return_auth_guard`\x20requires\x20return\x20evidence;\x0a\x20\x20\x20repository\x20provenance\x20supports\x20authenticity\x20claims.\x0a2.\x20**Member/bundle\x20pricing\x20for\x20private\x20communities**.\x20Spend-threshold\x20and\x0a\x20\x20\x20member\x20pricing\x20via\x20rewards\x20inside\x20the\x20owned\x20channel\x20—\x20no\x20platform\x20TACoS.\x0a\x20\x20\x20Bundles\x20stay\x20escrowed\x20per\x20deliverable;\x20never\x20release\x20pre-shipment.\x0a\x0aPosture\x20guidance:\x20volume\x20converts\x20existing\x20flow\x20into\x20escrow\x20GMV\x20with\x0afirst-order\x20and\x20spend-threshold\x20rewards\x20(viable\x20only\x20because\x20gas\x20is\x20under\x20$1\x0aper\x20thousand\x20GMV);\x20margin\x20sells\x20provenance-authenticated\x20premium\x20goods\x20with\x0arepository\x20evidence;\x20balanced\x20pilots\x205–8\x20sellers\x20around\x20the\x20gas-bill\x20proof\x0aevent.\x0a\x0a##\x204.\x20Build\x20checklist\x0a\x0a-\x20[\x20]\x20Order\x20→\x20escrow\x20→\x20shipment\x20→\x20receipt-guard\x20release,\x20seconds\x20latency.\x0a-\x20[\x20]\x20Return-auth\x20flow\x20requiring\x20dual\x20signature\x20or\x20logistics\x20repository\x0a\x20\x20\x20\x20\x20\x20record\x20(structurally\x20raises\x20fraud\x20cost\x20against\x20the\x209%\x20fraud\x20share).\x0a-\x20[\x20]\x20Arbitration\x20with\x20configured\x20voting\x20period;\x20no\x20auto-default\x20rulings.\x0a-\x20[\x20]\x20Compensation\x20fund:\x203x\x20typical\x20single\x20order\x20minimum\x20(award\x20ceiling,\x20enforced\x20per\x20order\x20at\x20buy),\x205x\x20recommended\x20for\x20concurrent\x20claims.\x0a-\x20[\x20]\x20Repository\x20provenance\x20chain\x20for\x20SKUs\x20where\x20authenticity\x20is\x20claimed.\x0a-\x20[\x20]\x20Intake\x20questionnaire\x20confirming\x20existing\x20traffic;\x20reject\x20zero-traffic\x0a\x20\x20\x20\x20\x20\x20applicants\x20explicitly.\x0a\x0a##\x205.\x20Pilot\x20playbook\x20(M4+)\x0a\x0a-\x20**\x22$1,000\x20GMV\x20Cost\x20Teardown\x22\x20livestream**:\x20the\x20same\x20shop\x27s\x20private-domain\x0a\x20\x20orders\x20run\x20through\x20WoW,\x20full-cycle\x20gas\x20bill\x20published\x20against\x20the\x20$300–350\x0a\x20\x20incumbent\x20burden\x20for\x20identical\x20GMV.\x20Numbers\x20in\x20fiat.\x0a-\x20**Fee-hike\x20refugee\x20targeting**:\x20recruit\x20directly\x20from\x20communities\x20hit\x20by\x20the\x0a\x20\x2024.2%\x20unilateral\x20fee\x20event\x20—\x20the\x20triggering\x20event\x20is\x20the\x20acquisition\x0a\x20\x20channel.\x0a-\x205–8\x20sellers\x20pilot,\x20budget\x20$6–10K\x20**[estimate]**.\x0a\x0a##\x206.\x20Channels\x0a\x0a1.\x20Existing\x20private-traffic\x20sellers\x20(DTC,\x20community\x20commerce,\x20We-commerce)\x0a\x20\x20\x20—\x20the\x20only\x20segment\x20that\x20passes\x20the\x20filter.\x0a2.\x20Incumbent\x20fee-hike\x20victim\x20communities.\x0a3.\x20Live\x20cost-comparison\x20events\x20and\x20their\x20replays.\x0a\x0a##\x207.\x20Conversion\x20and\x20retention\x0a\x0a-\x20Make\x20receipt\x20confirmation\x20a\x20one-tap\x20moment\x20and\x20show\x20the\x20release\x20seconds\x0a\x20\x20later\x20—\x20the\x20speed\x20gap\x20to\x2014-day\x20+\x20reserve\x20settlement\x20is\x20visceral.\x0a-\x20Re-purchase\x20via\x20spend\x20cashback\x20and\x20repository-issued\x20provenance\x0a\x20\x20certificates.\x0a-\x20Show\x20return-averse\x20buyers\x20the\x20evidence-gated\x20return\x20flow\x20up\x20front;\x20it\x0a\x20\x20protects\x20them\x20as\x20much\x20as\x20the\x20seller.\x0a\x0a##\x208.\x20Competitor\x20watch\x20(weekly)\x0a\x0aHeadline\x20price,\x20reserve\x20policy,\x20return-fraud\x20handling,\x20arbitration\x20default\x0abehavior,\x20provenance\x20evidence.\x20Retail\x20promotion\x20cycles\x20move\x20fast;\x20weekly\x0acadence.\x20Never\x20answer\x20a\x20price\x20war\x20—\x20answer\x20with\x20the\x20settlement\x20and\x20reserve\x0acontrast.\x0a\x0a##\x209.\x20Red\x20lines\x0a\x0a1.\x20Never\x20promise\x20traffic.\x0a2.\x20No\x20auto-default\x20buyer-win\x20rulings;\x20the\x20arbitration\x20voting\x20period\x20must\x20be\x0a\x20\x20\x20configured.\x0a3.\x20Physical\x20authenticity\x20claims\x20require\x20repository\x20evidence\x20—\x20never\x20beyond\x0a\x20\x20\x20what\x20the\x20evidence\x20proves.\x0a',BUILTIN_STRATEGY_MANUALS={'education':{'industry':'education','version':STRATEGY_MANUAL_VERSION,'body':EDUCATION_MANUAL},'rental':{'industry':'rental','version':STRATEGY_MANUAL_VERSION,'body':RENTAL_MANUAL},'freelance':{'industry':'freelance','version':STRATEGY_MANUAL_VERSION,'body':FREELANCE_MANUAL},'subscription':{'industry':'subscription','version':STRATEGY_MANUAL_VERSION,'body':SUBSCRIPTION_MANUAL},'travel':{'industry':'travel','version':STRATEGY_MANUAL_VERSION,'body':TRAVEL_MANUAL},'retail':{'industry':'retail','version':STRATEGY_MANUAL_VERSION,'body':RETAIL_MANUAL}};
|
|
@@ -28,6 +28,7 @@ export declare const TemplateFrontmatterSchema: z.ZodObject<{
|
|
|
28
28
|
cancelled: "cancelled";
|
|
29
29
|
}>>;
|
|
30
30
|
optional: z.ZodOptional<z.ZodBoolean>;
|
|
31
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
31
32
|
from: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
32
33
|
prev: z.ZodString;
|
|
33
34
|
forward: z.ZodOptional<z.ZodString>;
|
|
@@ -50,6 +51,12 @@ export declare const TemplateFrontmatterSchema: z.ZodObject<{
|
|
|
50
51
|
}>;
|
|
51
52
|
purpose: z.ZodString;
|
|
52
53
|
key: z.ZodOptional<z.ZodString>;
|
|
54
|
+
policy: z.ZodOptional<z.ZodObject<{
|
|
55
|
+
name: z.ZodOptional<z.ZodString>;
|
|
56
|
+
description: z.ZodOptional<z.ZodString>;
|
|
57
|
+
id_from: z.ZodOptional<z.ZodString>;
|
|
58
|
+
value_type: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strip>>;
|
|
53
60
|
}, z.core.$strip>>;
|
|
54
61
|
allocator: z.ZodObject<{
|
|
55
62
|
recipient: z.ZodEnum<{
|
|
@@ -154,7 +161,9 @@ export declare function parseTemplateFile(raw: string): {
|
|
|
154
161
|
body: string;
|
|
155
162
|
};
|
|
156
163
|
export declare const TEMPLATE_SENTINEL_KIND = "industry-template";
|
|
164
|
+
export declare function canonicalTemplateContent(t: ArchetypeTemplate): string;
|
|
157
165
|
export declare function renderTemplateFile(t: ArchetypeTemplate): string;
|
|
166
|
+
export declare function matchBuiltinTemplateFile(absPath: string): ArchetypeTemplate | null;
|
|
158
167
|
export interface TemplateSeedResult {
|
|
159
168
|
template: string;
|
|
160
169
|
status: "written" | "restamped" | "current" | "skipped_modified" | "skipped_user_file" | "would_update" | "updated" | "error";
|
|
@@ -166,8 +175,11 @@ export declare function summarizeTemplateDiff(onDiskContent: string, canonical:
|
|
|
166
175
|
export declare function repairBuiltinTemplates(options?: {
|
|
167
176
|
backup?: boolean;
|
|
168
177
|
dryRun?: boolean;
|
|
178
|
+
includeUserEdited?: string[];
|
|
169
179
|
}): TemplateSeedResult[];
|
|
170
|
-
export declare function builtinTemplateDrift(
|
|
180
|
+
export declare function builtinTemplateDrift(options?: {
|
|
181
|
+
includeUserEdited?: string[];
|
|
182
|
+
}): Array<{
|
|
171
183
|
template: string;
|
|
172
184
|
path: string;
|
|
173
185
|
state: "missing" | "modified";
|