@wowok/agent-mcp 3.2.3 → 3.2.6

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.
Files changed (130) hide show
  1. package/dist/chain-semantics/field-capability.js +1 -1
  2. package/dist/chain-semantics/freeze-map.js +1 -1
  3. package/dist/chain-semantics/fund-flow.js +1 -1
  4. package/dist/chain-semantics/guard-verbs.js +1 -1
  5. package/dist/communication/proof-reuse.d.ts +9 -0
  6. package/dist/communication/proof-reuse.js +1 -0
  7. package/dist/composition/blueprint-view.d.ts +64 -0
  8. package/dist/composition/blueprint-view.js +1 -0
  9. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  10. package/dist/evaluation/engine.js +1 -1
  11. package/dist/experience/realtime-feedback.js +1 -1
  12. package/dist/extensions/industry-pack.d.ts +1 -0
  13. package/dist/extensions/industry-pack.js +1 -1
  14. package/dist/extensions/modes.js +1 -1
  15. package/dist/extensions/registry.d.ts +1 -2
  16. package/dist/extensions/registry.js +1 -1
  17. package/dist/graph/onchain/expand.js +1 -1
  18. package/dist/graph/onchain/exposure.js +1 -1
  19. package/dist/graph/onchain/facts.js +1 -1
  20. package/dist/harness/recover.js +1 -1
  21. package/dist/knowledge/allocation-ledger.js +1 -1
  22. package/dist/knowledge/audit-rules.d.ts +2 -0
  23. package/dist/knowledge/audit-rules.js +1 -1
  24. package/dist/knowledge/baselines/rules/allocation.json +5 -5
  25. package/dist/knowledge/baselines/rules/arb.json +1 -1
  26. package/dist/knowledge/baselines/rules/guard.json +9 -9
  27. package/dist/knowledge/baselines/rules/machine.json +5 -5
  28. package/dist/knowledge/baselines/rules/order.json +1 -1
  29. package/dist/knowledge/builtin-templates.d.ts +2 -1
  30. package/dist/knowledge/builtin-templates.js +1 -1
  31. package/dist/knowledge/entity-recipient-guard.js +1 -1
  32. package/dist/knowledge/getting-started.js +1 -1
  33. package/dist/knowledge/guard-bindings.js +1 -1
  34. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  35. package/dist/knowledge/guard-design-patterns.js +1 -1
  36. package/dist/knowledge/guard-ledger.js +1 -1
  37. package/dist/knowledge/guard-risk.js +1 -1
  38. package/dist/knowledge/guard-templates.d.ts +1 -1
  39. package/dist/knowledge/guard-templates.js +1 -1
  40. package/dist/knowledge/index.js +1 -1
  41. package/dist/knowledge/industry-generalizer.js +1 -1
  42. package/dist/knowledge/industry-registry.js +1 -1
  43. package/dist/knowledge/jsonrpc-enum.js +1 -1
  44. package/dist/knowledge/machine-ledger.js +1 -1
  45. package/dist/knowledge/machine-templates.js +1 -1
  46. package/dist/knowledge/order-ledger.js +1 -1
  47. package/dist/knowledge/progress-ledger.js +1 -1
  48. package/dist/knowledge/scenario-modes.d.ts +3 -4
  49. package/dist/knowledge/scenario-modes.js +1 -1
  50. package/dist/knowledge/service-ledger.js +1 -1
  51. package/dist/knowledge/service-templates.js +1 -1
  52. package/dist/knowledge/template-loader.d.ts +8 -2
  53. package/dist/knowledge/template-loader.js +1 -1
  54. package/dist/knowledge/template-registry.js +1 -1
  55. package/dist/knowledge/template-scanner.js +1 -1
  56. package/dist/knowledge/template-validation.d.ts +2 -0
  57. package/dist/knowledge/template-validation.js +1 -0
  58. package/dist/monitor/MonitorLoop.js +1 -1
  59. package/dist/participation/radar-core.js +1 -1
  60. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  61. package/dist/playbooks/service-build/game-theory.d.ts +2 -2
  62. package/dist/playbooks/service-build/game-theory.js +1 -1
  63. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  64. package/dist/playbooks/service-build/merchant-guide.d.ts +54 -11
  65. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  66. package/dist/playbooks/service-build/mode-actions.js +1 -1
  67. package/dist/playbooks/service-build/object-panorama.js +1 -1
  68. package/dist/playbooks/service-build/participation-radar.js +1 -1
  69. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  70. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.d.ts +1 -0
  71. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +1 -0
  72. package/dist/playbooks/service-build/reverse-mapping.d.ts +24 -0
  73. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  74. package/dist/playbooks/service-build/service-panorama.js +1 -1
  75. package/dist/playbooks/service-build/service-quote.js +1 -1
  76. package/dist/playbooks/service-build/service-quote.spec.d.ts +1 -0
  77. package/dist/playbooks/service-build/service-quote.spec.js +1 -0
  78. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +2 -2
  79. package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
  80. package/dist/review/index.js +1 -1
  81. package/dist/safety/confirm-gate.js +1 -1
  82. package/dist/schema/call/arbitration.js +1 -1
  83. package/dist/schema/call/base.d.ts +4 -0
  84. package/dist/schema/call/base.js +1 -1
  85. package/dist/schema/call/bridge.d.ts +1 -0
  86. package/dist/schema/call/error-codes.d.ts +1 -1
  87. package/dist/schema/call/error-codes.js +1 -1
  88. package/dist/schema/call/handler.js +1 -1
  89. package/dist/schema/call/machine.js +1 -1
  90. package/dist/schema/call/semantic.js +1 -1
  91. package/dist/schema/call/service.d.ts +14 -0
  92. package/dist/schema/call/service.js +1 -1
  93. package/dist/schema/common/index.js +1 -1
  94. package/dist/schema/goal/planning.js +1 -1
  95. package/dist/schema/interaction/index.d.ts +1 -1
  96. package/dist/schema/local/index.d.ts +10 -0
  97. package/dist/schema/local/index.js +1 -1
  98. package/dist/schema/operations.d.ts +7 -0
  99. package/dist/schema/query/bi.d.ts +26 -0
  100. package/dist/schema/query/bi.js +1 -1
  101. package/dist/schema/schema-version.js +1 -1
  102. package/dist/schema-query-impl/index.js +1 -1
  103. package/dist/schemas/account_operation.output.json +1 -0
  104. package/dist/schemas/bridge_operation.output.json +1 -0
  105. package/dist/schemas/goal_operation.schema.json +1 -1
  106. package/dist/schemas/index.json +1 -1
  107. package/dist/schemas/local_cache_operation.output.json +1 -0
  108. package/dist/schemas/local_history_operation.output.json +1 -0
  109. package/dist/schemas/local_info_operation.output.json +1 -0
  110. package/dist/schemas/local_mark_operation.output.json +1 -0
  111. package/dist/schemas/onchain_operations.output.json +1 -0
  112. package/dist/schemas/onchain_operations.schema.json +40 -5
  113. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1
  114. package/dist/schemas/onchain_operations_machine.schema.json +1 -1
  115. package/dist/schemas/onchain_operations_service.schema.json +38 -3
  116. package/dist/schemas/query_toolkit.output.json +91 -7
  117. package/dist/tools/handlers/benchmark-migration.d.ts +2 -13
  118. package/dist/tools/handlers/benchmark-migration.js +1 -1
  119. package/dist/tools/handlers/config.js +1 -1
  120. package/dist/tools/handlers/industry-pack.js +1 -1
  121. package/dist/tools/handlers/messenger.js +1 -1
  122. package/dist/tools/handlers/onchain.js +1 -1
  123. package/dist/tools/handlers/query.js +1 -1
  124. package/dist/tools/move-fn-index.gen.js +1 -1
  125. package/dist/tools/registry/agent.js +1 -1
  126. package/dist/tools/wip-deploy-assist.js +1 -1
  127. package/dist/tools/wrap.js +1 -1
  128. package/package.json +2 -2
  129. package/dist/playbooks/service-build/semantic-graph.d.ts +0 -99
  130. package/dist/playbooks/service-build/semantic-graph.js +0 -1
@@ -0,0 +1 @@
1
+ import{describe,it,expect,vi,beforeEach}from'vitest';const {sdkMocks}=vi['hoisted'](()=>({'sdkMocks':{'network_get':vi['fn'](),'localMarkList':vi['fn'](),'query_objects':vi['fn'](),'query_serviceContext':vi['fn'](),'resolveAddress':vi['fn']()}}));vi['mock']('@wowok/wowok',async a=>{const b=await a();return{...b,'Config':{'Instance':()=>({'network_get':sdkMocks['network_get']})},'LocalMark':{'Instance':()=>({'list':sdkMocks['localMarkList']})},'query_objects':sdkMocks['query_objects'],'query_serviceContext':sdkMocks['query_serviceContext']};}),vi['mock']('../../tools/handlers/name-resolution.js',()=>({'resolveAddress':sdkMocks['resolveAddress']})),vi['mock']('./facet-money.js',()=>({'formatMoneyAnnotation':async a=>({'display':a})}));import{handleServiceQuote}from'./service-quote.js';const SVC='0x'+'1'['repeat'](0x40),COUPON='0x'+'2'['repeat'](0x40),OTHER_SVC='0x'+'3'['repeat'](0x40),FLEXIBLE='Flexible\x20—\x20canal\x20view\x20double',LIST_TOTAL=0x35a4e900n;function makeCoupon(a={}){const b=Date['now']();return{'object':COUPON,'name':'bk3t-promo15','discount_type':0x0,'off':0x5dc,'benchmark':null,'time_start':b-0x5265c00,'time_end':b+0x5265c00,'service':SVC,'transferable':![],...a};}function quoteInput(a={}){return{'query_type':'service_quote','service_address':'bk3t-canal-stay','items':[{'name':FLEXIBLE,'quantity':0x1}],'context_network':'mainnet',...a};}beforeEach(()=>{vi['clearAllMocks'](),sdkMocks['network_get']['mockResolvedValue']('mainnet'),sdkMocks['localMarkList']['mockResolvedValue']([{'name':'bk3t-canal-stay'}]),sdkMocks['query_serviceContext']['mockResolvedValue']({'service':{'type_raw':'Service<0x2::wow::WOW>','sales':[{'name':FLEXIBLE,'price':{'balance':LIST_TOTAL['toString']()},'suspension':![]}]}}),sdkMocks['resolveAddress']['mockImplementation'](async a=>{if(a==='bk3t-canal-stay')return SVC;if(a==='bk3t-promo15'||a===COUPON)return COUPON;throw new Error('unresolvable:\x20'+a);}),sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon()]});}),describe('service_quote\x20discount\x20pricing\x20(F-10)',()=>{it('no\x20discount\x20requested\x20→\x20undiscounted\x20total,\x20discount\x20block\x20null\x20(pre-fix\x20behavior\x20preserved)',async()=>{const a=await handleServiceQuote(quoteInput());expect(a['discount'])['toBeNull'](),expect(a['total_pay']['balance'])['toBe'](LIST_TOTAL['toString']());}),it('RATES\x20coupon\x20applies\x20with\x20integer\x20floor\x20division\x20—\x20reproduces\x20the\x20live\x20order\x20C\x20number',async()=>{const a=await handleServiceQuote(quoteInput({'discount':'bk3t-promo15'}));expect(a['discount'])['not']['toBeNull'](),expect(a['discount']['type'])['toBe']('rates'),expect(a['discount']['applied'])['toBe'](!![]),expect(a['discount']['list_total'])['toBe']('900000000'),expect(a['discount']['final_total'])['toBe']('765000000'),expect(a['total_pay']['balance'])['toBe']('765000000'),expect(a['total_pay']['note'])['toContain']('Discounted\x20total');}),it('MINUS\x20coupon\x20subtracts\x20a\x20fixed\x20amount\x20and\x20clamps\x20at\x20zero',async()=>{sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'discount_type':0x1,'off':0x5f5e100})]});const a=await handleServiceQuote(quoteInput({'discount':COUPON}));expect(a['discount']['type'])['toBe']('minus'),expect(a['discount']['final_total'])['toBe']('800000000'),sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'discount_type':0x1,'off':0x77359400})]});const b=await handleServiceQuote(quoteInput({'discount':COUPON}));expect(b['discount']['final_total'])['toBe']('0');}),it('unmet\x20benchmark\x20→\x20applied:false\x20+\x20burn\x20warning,\x20total\x20stays\x20at\x20list\x20price\x20(NOT\x20thrown)',async()=>{sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'benchmark':(LIST_TOTAL+0x1n)['toString']()})]});const a=await handleServiceQuote(quoteInput({'discount':COUPON}));expect(a['discount']['applied'])['toBe'](![]),expect(a['discount']['benchmark_met'])['toBe'](![]),expect(a['total_pay']['balance'])['toBe'](LIST_TOTAL['toString']()),expect(a['discount']['note'])['toContain']('destroyed');}),it('benchmark\x20exactly\x20met\x20→\x20applies\x20(chain\x20uses\x20>=)',async()=>{sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'benchmark':LIST_TOTAL['toString']()})]});const a=await handleServiceQuote(quoteInput({'discount':COUPON}));expect(a['discount']['applied'])['toBe'](!![]),expect(a['discount']['final_total'])['toBe']('765000000');}),it('benchmark\x20None\x20always\x20applies\x20(corrected\x20old\x20docs\x20claim)',async()=>{const a=await handleServiceQuote(quoteInput({'discount':COUPON}));expect(a['discount']['benchmark'])['toBeNull'](),expect(a['discount']['applied'])['toBe'](!![]);}),it('coupon\x20bound\x20to\x20another\x20service\x20→\x20rejected\x20like\x20the\x20chain\x20abort\x20(E_SERVICE_DISCOUNT_NOT_MATCH)',async()=>{sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'service':OTHER_SVC})]}),await expect(handleServiceQuote(quoteInput({'discount':COUPON})))['rejects']['toThrow'](/E_SERVICE_DISCOUNT_NOT_MATCH/);}),it('coupon\x20outside\x20its\x20time\x20window\x20→\x20rejected\x20like\x20the\x20chain\x20abort\x20(E_DISCOUNT_TIME_INVALID)',async()=>{const a=Date['now']();sdkMocks['query_objects']['mockResolvedValue']({'objects':[makeCoupon({'time_start':a+0x3e8,'time_end':a+0x186a0})]}),await expect(handleServiceQuote(quoteInput({'discount':COUPON})))['rejects']['toThrow'](/E_DISCOUNT_TIME_INVALID/);}),it('unknown\x20coupon\x20object\x20→\x20clear\x20rejection,\x20never\x20a\x20silent\x20full-price\x20quote',async()=>{sdkMocks['query_objects']['mockResolvedValue']({'objects':[]}),await expect(handleServiceQuote(quoteInput({'discount':COUPON})))['rejects']['toThrow'](/not found/);});});
@@ -1,4 +1,4 @@
1
- import type { SemanticObjectGraph } from "./semantic-graph.js";
1
+ import type { Blueprint } from "../../composition/blueprint-view.js";
2
2
  import { type GameTheoryReport } from "./game-theory.js";
3
3
  export interface DesignCheck {
4
4
  id: string;
@@ -21,4 +21,4 @@ export interface WorkflowDesignAssessment {
21
21
  score: number;
22
22
  summary: string;
23
23
  }
24
- export declare function assessWorkflowDesign(graph: SemanticObjectGraph): WorkflowDesignAssessment;
24
+ export declare function assessWorkflowDesign(graph: Blueprint): WorkflowDesignAssessment;
@@ -1 +1 @@
1
- import{checkGameTheoryConstraints}from'./game-theory.js';const VALUE_DIMENSION_CARRIERS=[{'dimension':'escrow_quality','type':'allocation','desc':'funds\x20locked\x20in\x20contract,\x20released\x20by\x20guard'},{'dimension':'proof_integrity','type':'repository','desc':'tamper-proof\x20delivery\x20evidence'},{'dimension':'arbitration_fairness','type':'arb','desc':'independent\x20dispute\x20resolution'},{'dimension':'permission_safety','type':'permission','desc':'governance\x20+\x20forward\x20authorization'},{'dimension':'content_commitment','type':'guard','desc':'delivery\x20verification\x20rules'}];function detectRefundBypass(a){const b=[],c=a['some'](e=>/refund|cancel|disput/i['test'](e['id'])),d=a['some'](e=>/arbitr/i['test'](e['id'])||e['type']==='arb');return c&&!d&&b['push']({'kind':'business_loophole','severity':'critical','message':'A\x20refund/cancel\x20path\x20exists\x20but\x20no\x20Arbitration\x20node\x20is\x20present\x20—\x20refunds\x20would\x20bypass\x20independent\x20dispute\x20review.','fix':'Add\x20an\x20Arbitration\x20node\x20(independent\x20Permission)\x20so\x20the\x20refund\x20path\x20routes\x20through\x20dispute\x20resolution.'}),b;}function detectMissingAcceptTimeout(a,b){const c=[],d=a['some'](f=>/complet|accept|finaliz|done/i['test'](f['id'])),e=b['some'](f=>/timeout|time_guard|accept_timeout/i['test'](f['relation']))||a['some'](f=>/timeout|time_guard/i['test'](f['id']));return d&&!e&&c['push']({'kind':'semantic_loophole','severity':'medium','message':'A\x20completion/accept\x20path\x20exists\x20without\x20an\x20accept-timeout\x20mechanism\x20—\x20customer\x20silence\x20could\x20stall\x20settlement\x20indefinitely.','fix':'Adopt\x20accept_timeout_protection:\x20add\x20a\x20time_guard\x20on\x20the\x20accept\x20forward\x20so\x20silence\x20advances\x20the\x20order.'}),c;}function checkIntentConsistency(a){const b=[],{businessIntent:c}=a,d=new Set(a['nodes']['map'](h=>h['type'])),e=new Set(a['nodes']['map'](h=>h['id']['toLowerCase']()));b['push']({'id':'intent_core_service','dimension':'intent','passed':d['has']('service'),'severity':'critical','message':d['has']('service')?'Core\x20Service\x20node\x20present\x20—\x20merchant\x20intent\x20has\x20a\x20structural\x20home.':'No\x20Service\x20node\x20in\x20the\x20blueprint\x20—\x20merchant\x20intent\x20has\x20no\x20structural\x20home.','fix':d['has']('service')?undefined:'Add\x20a\x20Service\x20node\x20to\x20the\x20blueprint.'});c['roles']['arbitrators']&&b['push']({'id':'intent_arbitrator','dimension':'intent','passed':d['has']('arb')||e['has']('main_arbitration'),'severity':'medium','message':'Declared\x20arbitrator\x20role\x20has\x20no\x20Arbitration\x20carrier\x20object\x20in\x20the\x20blueprint.','fix':'Add\x20an\x20Arbitration\x20object\x20to\x20the\x20blueprint.'});const f=c['deliverables']??[];f['length']>0x0&&!d['has']('repository')&&!d['has']('proof')&&b['push']({'id':'intent_deliverable','dimension':'intent','passed':![],'severity':'info','message':f['length']+'\x20deliverable(s)\x20declared\x20but\x20no\x20Repository/Proof\x20carrier\x20—\x20delivery\x20evidence\x20has\x20no\x20on-chain\x20home.','fix':'Bind\x20a\x20Repository\x20(and\x20optionally\x20Proof)\x20to\x20store\x20delivery\x20hashes.'});const g=c['payment']?.['kind']??'';return/milestone|escrow/i['test'](g)&&!d['has']('allocation')&&b['push']({'id':'intent_payment','dimension':'intent','passed':![],'severity':'critical','message':'Milestone/escrow\x20payment\x20declared\x20but\x20no\x20Allocation\x20carrier\x20—\x20funds\x20have\x20no\x20release\x20gate.','fix':'Bind\x20order_allocators\x20(Allocation)\x20so\x20funds\x20release\x20per\x20verified\x20milestone.'}),b;}function checkValueCoverage(a){const b=new Set(a['nodes']['map'](c=>c['type']));return VALUE_DIMENSION_CARRIERS['map'](d=>({'id':'value_'+d['dimension'],'dimension':'value','passed':b['has'](d['type']),'severity':d['type']==='allocation'||d['type']==='arb'?'critical':'info','message':b['has'](d['type'])?d['dimension']+':\x20'+d['type']+'\x20present\x20('+d['desc']+').':d['dimension']+':\x20missing\x20'+d['type']+'\x20carrier\x20('+d['desc']+').','fix':b['has'](d['type'])?undefined:'Add\x20a\x20'+d['type']+'\x20object\x20to\x20cover\x20'+d['dimension']+'.'}));}export function assessWorkflowDesign(a){const b=checkGameTheoryConstraints(a,a['businessIntent']),c=checkIntentConsistency(a),d=checkValueCoverage(a),e=b['results']['map'](l=>({'id':'game_'+l['scenario'],'dimension':'game','passed':l['covered'],'severity':l['scenario']==='merchant_may_abandon'?'critical':'medium','message':l['covered']?'Covered:\x20'+l['conflict']:'EXPOSED:\x20'+l['conflict'],'fix':l['covered']?undefined:l['recommendation']})),f=[...detectRefundBypass(a['nodes']),...detectMissingAcceptTimeout(a['nodes'],a['edges'])],g=[...c,...e,...d],h=g['filter'](l=>!l['passed']&&l['severity']==='critical')['length'],i=g['filter'](l=>!l['passed'])['length'],j=Math['max'](0x0,Math['min'](0x64,0x64-h*0x14-i*0x5)),k=h>0x0?'Design\x20NOT\x20ready:\x20'+h+'\x20critical\x20+\x20'+i+'\x20total\x20open\x20loop(s).':i>0x0?'Design\x20mostly\x20sound:\x20'+i+'\x20open\x20loop(s),\x20no\x20critical.':'Design\x20sound:\x20intent/game/value\x20all\x20covered.';return{'checks':g,'findings':f,'game_coverage':b,'score':j,'summary':k};}
1
+ import{checkGameTheoryConstraints}from'./game-theory.js';const VALUE_DIMENSION_CARRIERS=[{'dimension':'escrow_quality','carrier':'has_order_allocators','via':'edge','desc':'funds\x20locked\x20in\x20contract,\x20released\x20by\x20guard'},{'dimension':'proof_integrity','carrier':'repository','via':'node','desc':'tamper-proof\x20delivery\x20evidence'},{'dimension':'arbitration_fairness','carrier':'arbitration','via':'node','desc':'independent\x20dispute\x20resolution'},{'dimension':'permission_safety','carrier':'permission','via':'node','desc':'governance\x20+\x20forward\x20authorization'},{'dimension':'content_commitment','carrier':'guard','via':'node','desc':'delivery\x20verification\x20rules'}];function detectRefundBypass(a){const b=[],c=a['some'](e=>/refund|cancel|disput/i['test'](e['id'])),d=a['some'](e=>/arbitr/i['test'](e['id'])||e['type']==='arbitration');return c&&!d&&b['push']({'kind':'business_loophole','severity':'critical','message':'A\x20refund/cancel\x20path\x20exists\x20but\x20no\x20Arbitration\x20node\x20is\x20present\x20—\x20refunds\x20would\x20bypass\x20independent\x20dispute\x20review.','fix':'Add\x20an\x20Arbitration\x20node\x20(independent\x20Permission)\x20so\x20the\x20refund\x20path\x20routes\x20through\x20dispute\x20resolution.'}),b;}function detectMissingAcceptTimeout(a,b){const c=[],d=a['some'](f=>/complet|accept|finaliz|done/i['test'](f['id'])),e=b['some'](f=>/timeout|time_guard|accept_timeout/i['test'](f['relation']))||a['some'](f=>/timeout|time_guard/i['test'](f['id']));return d&&!e&&c['push']({'kind':'semantic_loophole','severity':'medium','message':'A\x20completion/accept\x20path\x20exists\x20without\x20an\x20accept-timeout\x20mechanism\x20—\x20customer\x20silence\x20could\x20stall\x20settlement\x20indefinitely.','fix':'Adopt\x20accept_timeout_protection:\x20add\x20a\x20time_guard\x20on\x20the\x20accept\x20forward\x20so\x20silence\x20advances\x20the\x20order.'}),c;}function checkIntentConsistency(a){const b=[],{businessIntent:c}=a,d=new Set(a['nodes']['map'](h=>h['type'])),e=new Set(a['edges']['map'](h=>h['relation']));b['push']({'id':'intent_core_service','dimension':'intent','passed':d['has']('service'),'severity':'critical','message':d['has']('service')?'Core\x20Service\x20node\x20present\x20—\x20merchant\x20intent\x20has\x20a\x20structural\x20home.':'No\x20Service\x20node\x20in\x20the\x20blueprint\x20—\x20merchant\x20intent\x20has\x20no\x20structural\x20home.','fix':d['has']('service')?undefined:'Add\x20a\x20Service\x20node\x20to\x20the\x20blueprint.'});if(c['roles']['arbitrators']){const h=d['has']('arbitration');b['push']({'id':'intent_arbitrator','dimension':'intent','passed':h,'severity':'medium','message':h?'Declared\x20arbitrator\x20role\x20has\x20an\x20Arbitration\x20carrier\x20object.':'Declared\x20arbitrator\x20role\x20has\x20no\x20Arbitration\x20carrier\x20object\x20in\x20the\x20blueprint.','fix':h?undefined:'Add\x20an\x20Arbitration\x20object\x20to\x20the\x20blueprint.'});}const f=c['deliverables']??[];f['length']>0x0&&!d['has']('repository')&&!d['has']('proof')&&b['push']({'id':'intent_deliverable','dimension':'intent','passed':![],'severity':'info','message':f['length']+'\x20deliverable(s)\x20declared\x20but\x20no\x20Repository/Proof\x20carrier\x20—\x20delivery\x20evidence\x20has\x20no\x20on-chain\x20home.','fix':'Bind\x20a\x20Repository\x20(and\x20optionally\x20Proof)\x20to\x20store\x20delivery\x20hashes.'});const g=c['payment']?.['model']??'';return/milestone|escrow/i['test'](g)&&!e['has']('has_order_allocators')&&b['push']({'id':'intent_payment','dimension':'intent','passed':![],'severity':'critical','message':'Milestone/escrow\x20payment\x20declared\x20but\x20no\x20order_allocators\x20binding\x20—\x20funds\x20have\x20no\x20release\x20gate.','fix':'Bind\x20order_allocators\x20(Allocation)\x20so\x20funds\x20release\x20per\x20verified\x20milestone.'}),b;}function checkValueCoverage(a){const b=new Set(a['nodes']['map'](d=>d['type'])),c=new Set(a['edges']['map'](d=>d['relation']));return VALUE_DIMENSION_CARRIERS['map'](d=>{const e=d['via']==='node'?b['has'](d['carrier']):c['has'](d['carrier']),f=d['dimension']==='escrow_quality'||d['dimension']==='arbitration_fairness';return{'id':'value_'+d['dimension'],'dimension':'value','passed':e,'severity':f?'critical':'info','message':e?d['dimension']+':\x20'+d['carrier']+'\x20present\x20('+d['desc']+').':d['dimension']+':\x20missing\x20'+d['carrier']+'\x20carrier\x20('+d['desc']+').','fix':e?undefined:'Add\x20a\x20'+d['carrier']+'\x20binding\x20to\x20cover\x20'+d['dimension']+'.'};});}export function assessWorkflowDesign(a){const b=checkGameTheoryConstraints(a,a['businessIntent']),c=checkIntentConsistency(a),d=checkValueCoverage(a),e=b['results']['map'](l=>({'id':'game_'+l['scenario'],'dimension':'game','passed':l['covered'],'severity':l['scenario']==='merchant_may_abandon'?'critical':'medium','message':l['covered']?'Covered:\x20'+l['conflict']:'EXPOSED:\x20'+l['conflict'],'fix':l['covered']?undefined:l['recommendation']})),f=[...detectRefundBypass(a['nodes']),...detectMissingAcceptTimeout(a['nodes'],a['edges'])],g=[...c,...e,...d],h=g['filter'](l=>!l['passed']&&l['severity']==='critical')['length'],i=g['filter'](l=>!l['passed'])['length'],j=Math['max'](0x0,Math['min'](0x64,0x64-h*0x14-i*0x5)),k=h>0x0?'Design\x20NOT\x20ready:\x20'+h+'\x20critical\x20+\x20'+i+'\x20total\x20open\x20loop(s).':i>0x0?'Design\x20mostly\x20sound:\x20'+i+'\x20open\x20loop(s),\x20no\x20critical.':'Design\x20sound:\x20intent/game/value\x20all\x20covered.';return{'checks':g,'findings':f,'game_coverage':b,'score':j,'summary':k};}
@@ -1 +1 @@
1
- import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a346a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a346a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
1
+ import{objectTypeFromAddress,ObjectType}from'@wowok/wowok';import{resolveAddress as a350a}from'../tools/handlers/name-resolution.js';import{handleObjectPanorama}from'../playbooks/service-build/object-panorama.js';import{handleServicePanorama}from'../playbooks/service-build/service-panorama.js';import{handleMachinePanorama}from'../playbooks/service-build/machine-panorama.js';import{assembleOrderReview}from'./order.js';import{assembleServiceReview}from'./service.js';import{assembleMachineReview}from'./machine.js';import{assembleArbReview}from'./arb.js';import{assembleDemandReview}from'./demand.js';import{assembleRepositoryReview}from'./repository.js';import{assembleProgressReview}from'./progress.js';export const REVIEW_PACK_TYPES=['Order','Service','Arb','Demand','Repository','Progress','Machine'];export async function handleReviewPack(a){const b=a['object_address'];if(!b)throw new Error('\x27object_address\x27\x20is\x20required\x20for\x20review_pack');const c=await a350a(b,'object_address'),d=objectTypeFromAddress(c);if(d===ObjectType['Order']){const g=await handleObjectPanorama(a);if(g['object_type']!=='Order')throw new Error('review_pack:\x20expected\x20an\x20Order,\x20resolved\x20to\x20'+g['object_type']);return assembleOrderReview(g);}if(d===ObjectType['Service']){const h=await handleServicePanorama({...a,'service_address':c});return assembleServiceReview(h);}if(d===ObjectType['Machine']){const i=await handleMachinePanorama({...a,'object_address':c});if(i['machineAddress']?.['toLowerCase']()!==c['toLowerCase']())throw new Error('review_pack:\x20expected\x20a\x20Machine,\x20resolved\x20to\x20'+i['machineAddress']);return assembleMachineReview(i);}const e={[ObjectType['Arb']]:assembleArbReview,[ObjectType['Demand']]:assembleDemandReview,[ObjectType['Repository']]:assembleRepositoryReview,[ObjectType['Progress']]:assembleProgressReview},f=d?e[d]:undefined;if(f){const j=await handleObjectPanorama(a);if(j['object_type']!==d)throw new Error('review_pack:\x20expected\x20a\x20'+d+',\x20resolved\x20to\x20'+j['object_type']);return f(j);}throw new Error('review_pack:\x20unsupported\x20object\x20type\x20\x27'+(d??'unknown')+'\x27\x20—\x20supported:\x20'+REVIEW_PACK_TYPES['join'](',\x20')+'.\x20Other\x20types\x20keep\x20object_panorama\x20/\x20machine_panorama\x20/\x20service_panorama.');}
@@ -1 +1 @@
1
- import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a360a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a360a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b instanceof Error?b['message']:b!==undefined?String(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
1
+ import{CONFIRMATION_RULES,resolveOverrideId}from'../knowledge/safety-rules.js';import{isEnabled as a364a}from'../config/index.js';import{isPlanPreapproved}from'../goal/plan-approval.js';export function isConfirmGateEnabled(){return a364a('confirm_gate');}const internalErrorCounts={};function logInternalError(a,b){const c=a;internalErrorCounts[c]=(internalErrorCounts[c]??0x0)+0x1;const d=internalErrorCounts[c];console['warn']('[ConfirmGate]\x20internal_error\x20context=\x22'+a+'\x22\x20count='+d+'\x20error='+(b instanceof Error?b['message']:String(b)));}export function getFailMode(a){switch(a){case'irreversible':case'publish':case'amount':return'closed';case'standard':case'none':default:return'open';}}function buildInternalErrorResult(a,b,c){const d=b instanceof Error?b['message']:b!==undefined?String(b):undefined;return{'pass':![],'level':'irreversible','preview':{'level':'irreversible','operation':a,'irreversible':!![],'warnings':[...c?['ConfirmGate\x20rule\x20\x27'+c+'\x27\x20matched\x20but\x20its\x20preview\x20could\x20not\x20be\x20generated.']:['An\x20error\x20occurred\x20while\x20matching\x20confirmation\x20rules.'],...d!==undefined?['Reason:\x20'+d]:[],'The\x20operation\x20was\x20NOT\x20executed.\x20Review\x20the\x20parameters\x20for\x20malformed\x20values\x20(e.g.\x20decimal\x20amounts\x20instead\x20of\x20smallest-unit\x20integers)\x20before\x20confirming.']},'rule_id':'internal_error'};}export function confirmGate(a,b,c,d,f,g){if(!isConfirmGateEnabled())return{'pass':!![]};if(c?.['confirmed']===!![])return{'pass':!![]};if(c?.['dry_run']===!![])return{'pass':!![]};let h,i=null;try{h=CONFIRMATION_RULES['find'](n=>{try{return n['when'](a,b,c);}catch(o){logInternalError('rule_when:'+n['id'],o);if(getFailMode(n['level'])==='closed')throw o;return![];}});}catch(n){i=n;}if(i)return logInternalError('rule_search',i),buildInternalErrorResult(a,i);if(!h)return{'pass':!![]};if(getFailMode(h['level'])==='open'&&isPlanPreapproved(c))return{'pass':!![]};const j=resolveOverrideId(h['id'],a),k=j?f?.[j]:undefined;if(k==='auto')return{'pass':!![]};const l=c?.['confirm_mode']==='quiet'||c?.['confirm_mode']==='streamlined'?c['confirm_mode']:'full';if(l!=='full'&&k!=='block'&&getFailMode(h['level'])==='open')return{'pass':!![]};if(k!=='block'&&g?.['intent_bypass']!==![]&&h['bypass_on_explicit_intent']&&d&&d['length']>0x0){const o=d['map'](q=>q['toLowerCase']()),p=h['bypass_on_explicit_intent']['some'](q=>o['some'](r=>r['includes'](q['toLowerCase']())));if(p)return{'pass':!![]};}let m;try{m=h['preview'](a,b,c);}catch(q){logInternalError('rule_preview:'+h['id'],q);if(getFailMode(h['level'])==='closed')return buildInternalErrorResult(a,q,h['id']);return{'pass':!![]};}return{'pass':![],'level':h['level'],'preview':m,'rule_id':h['id']};}export function isExplicitlyConfirmed(a){return a?.['confirmed']===!![];}
@@ -1 +1 @@
1
- import{z}from'zod';import{TypedPermissionObjectSchema,CoinParamSchema,NamedObjectSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{VotingGuardSchema}from'../query/index.js';import{BalanceTypeSchema,DescriptionSchema,LongNameSchema,NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';const ARB_CASE_FIELD=NameOrAddressSchema['describe']('Arb\x20CASE\x20object\x20—\x20the\x20single\x20dispute\x20case\x20created\x20by\x20`dispute`\x20(the\x20object\x20you\x20may\x20have\x20named\x20via\x20`namedArb`).\x20'+'NOT\x20the\x20arbitrator\x20registration\x20object:\x20that\x20one\x20goes\x20in\x20the\x20ROOT\x20`object`\x20field,\x20while\x20every\x20case-scoped\x20'+'operation\x20(confirm\x20/\x20voting_deadline_change\x20/\x20vote\x20/\x20feedback\x20/\x20arbitration\x20/\x20reset\x20/\x20arb_withdraw)\x20addresses\x20'+'the\x20case\x20through\x20THIS\x20field.\x20Accepts\x20the\x20Arb\x27s\x200x\x20address\x20or\x20its\x20LocalMark\x20name.');export const DisputeSchema=z['object']({'order':NameOrAddressSchema['describe']('Order\x20ID\x20or\x20name.'),'description':DescriptionSchema['optional']()['describe']('Dispute\x20description.'),'proposition':z['array'](LongNameSchema)['describe']('List\x20of\x20dispute\x20propositions.'),'fee':CoinParamSchema['describe']('Dispute\x20processing\x20fee.\x20FORMAT:\x20{balance:\x20<amount_in_smallest_unit>}\x20—\x20field\x20name\x20is\x20\x27balance\x27\x20(NOT\x20\x27amount\x27).\x20'+'The\x20token\x20type\x20and\x20precision\x20are\x20determined\x20by\x20the\x20Arbitration\x20object\x27s\x20type_parameter\x20(the\x20generic\x20type\x20set\x20when\x20the\x20Arbitration\x20was\x20created).\x20'+'For\x20WOW\x20(9\x20decimals):\x20{balance:\x2050000000}\x20=\x200.05\x20WOW.\x20'+'For\x20tokens\x20with\x20different\x20decimals,\x20adjust\x20accordingly\x20(e.g.\x20USDC\x20has\x206\x20decimals,\x20so\x20{balance:\x2050000}\x20=\x200.05\x20USDC).\x20'+'docs#45:\x20the\x20fee\x20does\x20NOT\x20return\x20to\x20the\x20filer\x20on\x20a\x20win\x20—\x20it\x20stays\x20in\x20the\x20Arbitration\x20object\x20and\x20is\x20withdrawable\x20by\x20the\x20arbitrator.'),'namedArb':NamedObjectSchema['optional']()['describe']('RECOMMENDED:\x20Set\x20a\x20local\x20name\x20for\x20the\x20newly\x20created\x20Arb\x20(arbitration\x20case)\x20object.\x20'+'Without\x20this,\x20the\x20Arb\x20is\x20only\x20referenceable\x20by\x20its\x20on-chain\x20address.\x20'+'Example:\x20{name:\x20\x27my_dispute_v1\x27}\x20allows\x20subsequent\x20vote/feedback\x20operations\x20to\x20use\x20\x27my_dispute_v1\x27.')})['strict']();export const ConfirmSchema=z['object']({'arb':ARB_CASE_FIELD,'voting_deadline':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['default'](null)['describe']('Voting\x20deadline\x20as\x20Unix\x20timestamp\x20in\x20MILLISECONDS\x20(ms).\x20SEMANTICS\x20OF\x20SPECIAL\x20VALUES:\x20'+'null\x20(DEFAULT\x20when\x20omitted)\x20=\x20open-ended\x20voting,\x20no\x20deadline;\x20parties\x20may\x20vote\x20at\x20any\x20time\x20and\x20the\x20arbitrator\x20may\x20deliver\x20the\x20verdict\x20immediately\x20(arb.move\x20skips\x20the\x20deadline\x20assert\x20when\x20the\x20Option\x20is\x20none)\x20—\x20this\x20is\x20the\x20SAFE\x20default;\x20'+'a\x20future\x20timestamp\x20=\x20normal\x20bounded\x20voting\x20window\x20(recommended:\x20now\x20+\x20at\x20least\x2086400000\x20ms\x20=\x2024\x20hours);\x20'+'0\x20=\x20deadline\x20already\x20passed\x20→\x20voting\x20is\x20IMPOSSIBLE\x20(every\x20vote\x20aborts\x20E_VOTING_DEADLINE_PASSED)\x20and\x20only\x20a\x20direct\x20verdict\x20is\x20possible.\x20Only\x20pass\x200\x20deliberately\x20when\x20you\x20truly\x20want\x20a\x20no-vote\x20verdict.\x20'+'COMMON\x20MISTAKE:\x20using\x20seconds\x20instead\x20of\x20milliseconds\x20(multiply\x20by\x201000).\x20'+'Example:\x20Date.now()\x20+\x20259200000\x20for\x203\x20days\x20from\x20now.')})['strict']();export const VotingDeadlineChangeSchema=z['object']({'arb':ARB_CASE_FIELD,'voting_deadline':z['union']([z['number'](),z['null']()])['describe']('New\x20voting\x20deadline\x20as\x20Unix\x20timestamp\x20in\x20MILLISECONDS\x20(ms).\x20SEMANTICS\x20OF\x20SPECIAL\x20VALUES:\x20'+'0\x20=\x20deadline\x20already\x20passed\x20→\x20voting\x20is\x20IMPOSSIBLE\x20and\x20the\x20arbitrator\x20may\x20deliver\x20the\x20verdict\x20immediately;\x20'+'null\x20=\x20open-ended\x20voting\x20with\x20no\x20deadline\x20(verdict\x20allowed\x20anytime);\x20'+'a\x20future\x20timestamp\x20=\x20normal\x20voting\x20window\x20(recommended:\x20now\x20+\x20at\x20least\x2086400000\x20ms\x20=\x2024\x20hours).\x20'+'COMMON\x20MISTAKE:\x20using\x20seconds\x20instead\x20of\x20milliseconds\x20(multiply\x20by\x201000).\x20'+'Example:\x20Date.now()\x20+\x20259200000\x20for\x203\x20days\x20from\x20now.')})['strict']();export const VoteSchema=z['object']({'arb':ARB_CASE_FIELD,'votes':z['array'](z['number']()['int']()['min'](0x0)['max'](0xff))['describe']('Proposition\x20INDICES\x20(0-based,\x20u8)\x20the\x20voter\x20agrees\x20with\x20—\x20e.g.\x20[0]\x20votes\x20for\x20the\x20first\x20proposition.\x20'+'Re-voting\x20REPLACES\x20the\x20voter\x27s\x20previous\x20vote\x20(old\x20weight\x20removed,\x20new\x20applied).\x20'+'Out-of-range\x20index\x20aborts\x20with\x20E_PROPOSITION_NOT_FOUND.'),'voting_guard':NameOrAddressSchema['optional']()['describe']('Voting\x20Guard\x20for\x20WEIGHTED\x20voting.\x20DECISION\x20RULE\x20(contract-enforced):\x0a'+'(A)\x20Arbitration\x20HAS\x20a\x20non-empty\x20voting_guard\x20list\x20→\x20plain\x20vote\x20is\x20REJECTED\x20on-chain\x20with\x20E_VOTING_GUARD_USED\x20(abort\x202).\x20'+'You\x20MUST\x20provide\x20this\x20field\x20set\x20to\x20ONE\x20guard\x20from\x20the\x20Arbitration\x27s\x20voting_guard\x20list,\x20and\x20fill\x20its\x20submission:\x20'+'when\x20the\x20guard\x27s\x20vote_weight\x20is\x20{GuardIdentifier:\x20pos},\x20the\x20number\x20you\x20submit\x20at\x20that\x20table\x20position\x20IS\x20the\x20vote\x20weight;\x20'+'when\x20it\x20is\x20{FixedValue:\x20v},\x20no\x20submission\x20is\x20needed\x20(weight\x20is\x20fixed).\x20The\x20SDK\x20then\x20routes\x20the\x20call\x20through\x20the\x20Guard-weighted\x20vote\x20path\x20via\x20a\x20Passport.\x20'+'Omitting\x20this\x20field\x20on\x20such\x20an\x20Arbitration\x20now\x20fails\x20fast\x20pre-call\x20with\x20the\x20list\x20of\x20valid\x20guards.\x0a'+'(B)\x20Arbitration\x20has\x20NO\x20voting_guard\x20→\x20omit\x20this\x20field;\x20the\x20SDK\x20uses\x20plain\x20vote\x20(weight\x201,\x20permission-gated),\x20or\x20the\x20passport-gated\x20vote\x20path\x20when\x20other\x20guards\x20require\x20it.\x0a'+'BOTH\x20(B)\x20paths\x20still\x20assert\x20ARBITRATION_VOTE=358\x20on-chain\x20(the\x20SDK\x20now\x20pre-checks\x20358\x20and\x20fails\x20fast\x20with\x20\x27Missing\x20permissions\x20358\x27).\x20'+'An\x20empty\x20voting_guard\x20means\x20EQUAL\x20WEIGHT\x20(1\x20person\x201\x20vote),\x20NOT\x20permissionless\x20—\x20there\x20is\x20no\x20permission-free\x20vote\x20entry.\x20'+'For\x20genuinely\x20open\x20voting,\x20configure\x20a\x20public\x20voting_guard\x20(op=\x22set\x22)\x20and\x20vote\x20via\x20path\x20(A):\x20the\x20weighted\x20passport\x20path\x20authorizes\x20by\x20the\x20guard\x20and\x20does\x20NOT\x20require\x20358.\x0a'+'The\x20Guard\x20(when\x20provided)\x20MUST\x20be\x20in\x20the\x20Arbitration\x27s\x20voting_guard\x20list\x20—\x20an\x20unlisted\x20guard\x20aborts\x20with\x20E_VOTING_GUARD_NOT_FOUND.')})['strict']();export const FeedbackSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.')})['strict']();export const ArbitrationActionSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.'),'indemnity':z['number']()['int']()['min'](0x0)})['strict']();export const ResetSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.')})['strict']();export const ArbWithdrawSchema=z['object']({'arb':ARB_CASE_FIELD})['strict']();export const FeesTransferToSchema=z['union']([z['object']({'allocation':NameOrAddressSchema['describe']('Allocation\x20object\x20ID\x20or\x20name.')})['strict'](),z['object']({'treasury':NameOrAddressSchema['describe']('Treasury\x20object\x20ID\x20or\x20name.\x20NOTE:\x20the\x20transferred\x20funds\x20arrive\x20as\x20a\x20CoinWrapper\x20owned\x20by\x20the\x20Treasury\x20and\x20only\x20count\x20'+'after\x20the\x20Treasury\x20intakes\x20them\x20—\x20call\x20treasury\x20receive:\x20\x22recently\x22\x20(requires\x20permission\x20253\x20TREASURY_RECEIVE\x20on\x20the\x20Treasury).')})['strict']()]);export const FeesTransferSchema=z['object']({'to':FeesTransferToSchema['describe']('Transfer\x20arbitration\x20fees\x20to\x20the\x20specified\x20Allocation\x20object\x20or\x20Treasury\x20object.'),'payment_remark':NameSchema['describe']('Payment\x20remark.'),'payment_index':z['number']()['int']()['min'](0x0)['describe']('0-based\x20index\x20of\x20the\x20fee\x20payment\x20inside\x20the\x20Arb\x20case\x27s\x20fees\x20table\x20(query\x20the\x20Arb\x20case\x20with\x20onchain_operations\x20type\x20\x27q\x27\x20/\x20onchain_table_data\x20to\x20list\x20its\x20fees\x20and\x20their\x20indices).\x20REQUIRED\x20—\x20without\x20it\x20the\x20transfer\x20cannot\x20name\x20which\x20fee\x20record\x20to\x20move.'),'newPayment':NamedObjectSchema['optional']()['describe']('Name\x20for\x20the\x20newly\x20created\x20payment\x20object.')})['strict']();export const VotingGuardActionSchema=z['discriminatedUnion']('op',[z['object']({'op':z['enum'](['add','set']),'guards':z['array'](VotingGuardSchema)})['strict'](),z['object']({'op':z['literal']('remove'),'guards':z['array'](NameOrAddressSchema)})['strict'](),z['object']({'op':z['literal']('clear')})['strict']()]);export const CallArbitration_DataSchema=z['object']({'object':TypedPermissionObjectSchema,'dispute':DisputeSchema['optional']()['describe']('Create\x20a\x20new\x20Arb\x20object\x20for\x20the\x20order;\x20the\x20case\x20lands\x20directly\x20in\x20state\x201\x20(Arbitrator_confirming)\x20—\x20the\x20customer\x20does\x20not\x20confirm\x20at\x20filing\x20time.'),'description':DescriptionSchema['optional']()['describe']('Introduction\x20of\x20the\x20Arbitration\x20object.'),'location':LongNameSchema['optional']()['describe']('Arbitration\x20location.'),'fee':BalanceTypeSchema['optional']()['describe']('Arbitration\x20filing\x20fee.\x20FORMAT:\x20a\x20direct\x20amount\x20value\x20—\x20NOT\x20wrapped\x20in\x20'+'{balance:\x20...}\x20(that\x20CoinParam\x20shape\x20is\x20only\x20for\x20dispute.fee,\x20which\x20pays\x20a\x20coin\x20object).\x20'+'Accepted:\x20smallest-unit\x20number\x20or\x20string\x20(e.g.\x2050000000\x20=\x200.05\x20WOW\x20at\x209\x20decimals),\x20or\x20'+'display\x20format\x20with\x20the\x20token\x20symbol\x20(e.g.\x20\x220.05WOW\x22)\x20—\x20the\x20Fund\x20Processing\x20Layer\x20'+'converts\x20it\x20using\x20the\x20Arbitration\x20object\x27s\x20own\x20token\x20decimals.\x20'+'Default\x200\x20on\x20creation:\x20disputes\x20are\x20then\x20free\x20(the\x20filer\x27s\x20coin\x20is\x20fully\x20refunded\x20on\x20'+'filing)\x20and\x20the\x20arbitrator\x20earns\x20no\x20per-case\x20fee.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20arbitration.'),'confirm':ConfirmSchema['optional']()['describe']('ARBITRATOR-side\x20material\x20confirmation\x20(from\x20state\x201):\x20moves\x20the\x20case\x20to\x20state\x202\x20(Voting).\x20'+'Customers\x20cannot\x20call\x20this\x20—\x20the\x20customer-side\x20step\x20is\x20order.arb_confirm\x20(state\x200\x20to\x201).'),'voting_deadline_change':VotingDeadlineChangeSchema['optional']()['describe']('Change\x20the\x20voting\x20deadline.'),'vote':VoteSchema['optional']()['describe']('Vote\x20on\x20user\x20propositions.'),'feedback':FeedbackSchema['optional']()['describe']('Arbitration\x20feedback\x20for\x20the\x20Arb\x20object.'),'arbitration':ArbitrationActionSchema['optional']()['describe']('Provide\x20a\x20definitive\x20arbitration\x20result.'),'reset':ResetSchema['optional']()['describe']('ARBITRATOR-side\x20reset\x20(arbitration\x20permission\x20holder;\x20valid\x20from\x20state\x204\x20Objectionable\x20or\x20state\x201):\x20voids\x20the\x20ruling,\x20'+'clears\x20the\x20indemnity\x20and\x20returns\x20the\x20case\x20to\x20state\x200\x20(Principal_confirming).\x20After\x20a\x20reset\x20ONLY\x20the\x20customer\x20can\x20advance\x20the\x20case\x20'+'again\x20via\x20order.arb_confirm\x20—\x20state\x200\x20has\x20no\x20timeout\x20and\x20the\x20fee\x20stays\x20locked\x20until\x20the\x20customer\x20re-confirms.'),'arb_withdraw':ArbWithdrawSchema['optional']()['describe']('Withdraw\x20arbitration\x20fees\x20from\x20the\x20Arb\x20object\x20(arbitrator).\x20Immediately\x20from\x20state\x205\x20(Finished);\x20from\x20state\x203\x20only\x20after\x2030\x20days\x20'+'from\x20the\x20ruling\x20time\x20(no\x20objection\x20filed\x20—\x20silence\x20=\x20acceptance);\x20rejected\x20in\x20states\x200/1/2.\x20'+'State\x204\x20(Objectionable)\x20can\x20NEVER\x20withdraw\x20(protocol\x20141):\x20a\x20contested\x20case\x20keeps\x20its\x20fee\x20escrowed\x20until\x20the\x20customer\x20'+'closes\x20the\x20objection\x20cycle\x20—\x20reset\x20→\x20order.arb_confirm\x20→\x20new\x20ruling\x20→\x20unchallenged\x20(or\x20accepted\x20via\x20finish).\x20'+'⚠️\x20TWO-STAGE\x20FEE\x20CASH-OUT\x20(verified\x20on\x20testnet):\x20this\x20call\x20does\x20NOT\x20pay\x20the\x20arbitrator\x27s\x20wallet\x20—\x20it\x20moves\x20the\x20case\x20fee\x20'+'into\x20the\x20Arbitration\x20(Registration)\x20object\x27s\x20own\x20balance\x20pool.\x20To\x20actually\x20receive\x20the\x20money:\x20'+'fees_transfer\x20(to\x20a\x20treasury\x20or\x20allocation)\x20→\x20treasury\x20receive:\x20\x22recently\x22\x20(permission\x20253)\x20→\x20treasury\x20withdraw\x20→\x20'+'recipient\x20payment\x20receive.\x20A\x20successful\x20arb_withdraw\x20with\x20no\x20wallet\x20balance\x20change\x20is\x20EXPECTED,\x20not\x20a\x20failure.'),'fees_transfer':FeesTransferSchema['optional']()['describe']('Distribute\x20the\x20withdrawn\x20arbitration\x20fees.\x20Moves\x20the\x20Arbitration\x27s\x20ENTIRE\x20balance\x20in\x20ONE\x20call\x20—\x20there\x20is\x20NO\x20amount\x20parameter.\x20'+'The\x20balance\x20leaves\x20as\x20a\x20CoinWrapper\x20owned\x20by\x20the\x20target\x20(allocation\x20or\x20treasury);\x20for\x20a\x20treasury\x20target,\x20intake\x20it\x20with\x20'+'treasury\x20receive:\x20\x22recently\x22\x20(permission\x20253)\x20—\x20see\x20the\x20\x27to\x27\x20field\x20description.'),'usage_guard':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Set\x20Guard\x20for\x20verification\x20when\x20users\x20apply\x20for\x20arbitration;\x20if\x20Guard\x20verification\x20fails,\x20users\x20will\x20not\x20be\x20able\x20to\x20apply\x20for\x20arbitration.'),'voting_guard':VotingGuardActionSchema['optional']()['describe']('Set\x20Guard\x20for\x20verification\x20during\x20arbitration\x20voting;\x20if\x20Guard\x20verification\x20fails,\x20arbitration\x20voting\x20will\x20fail.'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Arbitration\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.')})['strict']()['describe']('On-chain\x20Arbitration\x20operations.\x20TWO\x20OBJECT\x20KINDS\x20—\x20do\x20not\x20confuse\x20them\x20(§5.9):\x20the\x20ROOT\x20\x27object\x27\x20field\x20is\x20the\x20Arbitration\x20(arbitrator\x20REGISTRATION)\x20object;\x20the\x20Arb\x20(single\x20CASE)\x20created\x20by\x20\x27dispute\x27\x20is\x20addressed\x20via\x20each\x20case\x20operation\x27s\x20\x27arb\x27\x20field.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20type_parameter,\x20permission,\x20...}\x20to\x20create\x20an\x20Arbitration.\x20NOTE:\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20⚠️\x20PERMISSION\x20RULE\x20(contract-enforced):\x20the\x20Arbitration\x27s\x20permission\x20MUST\x20be\x20DIFFERENT\x20from\x20the\x20permission\x20of\x20any\x20Service\x20it\x20will\x20be\x20bound\x20to\x20—\x20binding\x20an\x20Arbitration\x20that\x20SHARES\x20the\x20Service\x27s\x20Permission\x20aborts\x20with\x20E_ARBITRATION_PERMISSION_CONFLICT\x20(error\x2033).\x20Always\x20create\x20a\x20DEDICATED\x20Permission\x20object\x20for\x20each\x20Arbitration.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallArbitration_InputSchema=z['object']({'data':CallArbitration_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
1
+ import{z}from'zod';import{TypedPermissionObjectSchema,CoinParamSchema,NamedObjectSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{VotingGuardSchema}from'../query/index.js';import{BalanceTypeSchema,DescriptionSchema,LongNameSchema,NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';const ARB_CASE_FIELD=NameOrAddressSchema['describe']('Arb\x20CASE\x20object\x20—\x20the\x20single\x20dispute\x20case\x20created\x20by\x20`dispute`\x20(the\x20object\x20you\x20may\x20have\x20named\x20via\x20`namedArb`).\x20'+'NOT\x20the\x20arbitrator\x20registration\x20object:\x20that\x20one\x20goes\x20in\x20the\x20ROOT\x20`object`\x20field,\x20while\x20every\x20case-scoped\x20'+'operation\x20(confirm\x20/\x20voting_deadline_change\x20/\x20vote\x20/\x20feedback\x20/\x20arbitration\x20/\x20reset\x20/\x20arb_withdraw)\x20addresses\x20'+'the\x20case\x20through\x20THIS\x20field.\x20Accepts\x20the\x20Arb\x27s\x200x\x20address\x20or\x20its\x20LocalMark\x20name.');export const DisputeSchema=z['object']({'order':NameOrAddressSchema['describe']('Order\x20ID\x20or\x20name.'),'description':DescriptionSchema['optional']()['describe']('Dispute\x20description.'),'proposition':z['array'](LongNameSchema)['describe']('List\x20of\x20dispute\x20propositions.'),'fee':CoinParamSchema['describe']('Dispute\x20processing\x20fee.\x20FORMAT:\x20{balance:\x20<amount_in_smallest_unit>}\x20—\x20field\x20name\x20is\x20\x27balance\x27\x20(NOT\x20\x27amount\x27).\x20'+'The\x20token\x20type\x20and\x20precision\x20are\x20determined\x20by\x20the\x20Arbitration\x20object\x27s\x20type_parameter\x20(the\x20generic\x20type\x20set\x20when\x20the\x20Arbitration\x20was\x20created).\x20'+'For\x20WOW\x20(9\x20decimals):\x20{balance:\x2050000000}\x20=\x200.05\x20WOW.\x20'+'For\x20tokens\x20with\x20different\x20decimals,\x20adjust\x20accordingly\x20(e.g.\x20USDC\x20has\x206\x20decimals,\x20so\x20{balance:\x2050000}\x20=\x200.05\x20USDC).\x20'+'docs#45:\x20the\x20fee\x20does\x20NOT\x20return\x20to\x20the\x20filer\x20on\x20a\x20win\x20—\x20it\x20stays\x20in\x20the\x20Arbitration\x20object\x20and\x20is\x20withdrawable\x20by\x20the\x20arbitrator.'),'namedArb':NamedObjectSchema['optional']()['describe']('RECOMMENDED:\x20Set\x20a\x20local\x20name\x20for\x20the\x20newly\x20created\x20Arb\x20(arbitration\x20case)\x20object.\x20'+'Without\x20this,\x20the\x20Arb\x20is\x20only\x20referenceable\x20by\x20its\x20on-chain\x20address.\x20'+'Example:\x20{name:\x20\x27my_dispute_v1\x27}\x20allows\x20subsequent\x20vote/feedback\x20operations\x20to\x20use\x20\x27my_dispute_v1\x27.')})['strict']();export const ConfirmSchema=z['object']({'arb':ARB_CASE_FIELD,'voting_deadline':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['default'](null)['describe']('Voting\x20deadline\x20as\x20Unix\x20timestamp\x20in\x20MILLISECONDS\x20(ms).\x20SEMANTICS\x20OF\x20SPECIAL\x20VALUES:\x20'+'null\x20(DEFAULT\x20when\x20omitted)\x20=\x20open-ended\x20voting,\x20no\x20deadline;\x20parties\x20may\x20vote\x20at\x20any\x20time\x20and\x20the\x20arbitrator\x20may\x20deliver\x20the\x20verdict\x20immediately\x20(arb.move\x20skips\x20the\x20deadline\x20assert\x20when\x20the\x20Option\x20is\x20none)\x20—\x20this\x20is\x20the\x20SAFE\x20default;\x20'+'a\x20future\x20timestamp\x20=\x20normal\x20bounded\x20voting\x20window\x20(recommended:\x20now\x20+\x20at\x20least\x2086400000\x20ms\x20=\x2024\x20hours);\x20'+'0\x20=\x20deadline\x20already\x20passed\x20→\x20voting\x20is\x20IMPOSSIBLE\x20(every\x20vote\x20aborts\x20E_VOTING_DEADLINE_PASSED)\x20and\x20only\x20a\x20direct\x20verdict\x20is\x20possible.\x20Only\x20pass\x200\x20deliberately\x20when\x20you\x20truly\x20want\x20a\x20no-vote\x20verdict.\x20'+'COMMON\x20MISTAKE:\x20using\x20seconds\x20instead\x20of\x20milliseconds\x20(multiply\x20by\x201000).\x20'+'Example:\x20Date.now()\x20+\x20259200000\x20for\x203\x20days\x20from\x20now.')})['strict']();export const VotingDeadlineChangeSchema=z['object']({'arb':ARB_CASE_FIELD,'voting_deadline':z['union']([z['number'](),z['null']()])['describe']('New\x20voting\x20deadline\x20as\x20Unix\x20timestamp\x20in\x20MILLISECONDS\x20(ms).\x20SEMANTICS\x20OF\x20SPECIAL\x20VALUES:\x20'+'0\x20=\x20deadline\x20already\x20passed\x20→\x20voting\x20is\x20IMPOSSIBLE\x20and\x20the\x20arbitrator\x20may\x20deliver\x20the\x20verdict\x20immediately;\x20'+'null\x20=\x20open-ended\x20voting\x20with\x20no\x20deadline\x20(verdict\x20allowed\x20anytime);\x20'+'a\x20future\x20timestamp\x20=\x20normal\x20voting\x20window\x20(recommended:\x20now\x20+\x20at\x20least\x2086400000\x20ms\x20=\x2024\x20hours).\x20'+'COMMON\x20MISTAKE:\x20using\x20seconds\x20instead\x20of\x20milliseconds\x20(multiply\x20by\x201000).\x20'+'Example:\x20Date.now()\x20+\x20259200000\x20for\x203\x20days\x20from\x20now.')})['strict']();export const VoteSchema=z['object']({'arb':ARB_CASE_FIELD,'votes':z['array'](z['number']()['int']()['min'](0x0)['max'](0xff))['describe']('Proposition\x20INDICES\x20(0-based,\x20u8)\x20the\x20voter\x20agrees\x20with\x20—\x20e.g.\x20[0]\x20votes\x20for\x20the\x20first\x20proposition.\x20'+'Re-voting\x20REPLACES\x20the\x20voter\x27s\x20previous\x20vote\x20(old\x20weight\x20removed,\x20new\x20applied).\x20'+'Out-of-range\x20index\x20aborts\x20with\x20E_PROPOSITION_NOT_FOUND.'),'voting_guard':NameOrAddressSchema['optional']()['describe']('Voting\x20Guard\x20for\x20WEIGHTED\x20voting.\x20DECISION\x20RULE\x20(contract-enforced):\x0a'+'(A)\x20Arbitration\x20HAS\x20a\x20non-empty\x20voting_guard\x20list\x20→\x20plain\x20vote\x20is\x20REJECTED\x20on-chain\x20with\x20E_VOTING_GUARD_USED\x20(abort\x202).\x20'+'You\x20MUST\x20provide\x20this\x20field\x20set\x20to\x20ONE\x20guard\x20from\x20the\x20Arbitration\x27s\x20voting_guard\x20list,\x20and\x20fill\x20its\x20submission:\x20'+'when\x20the\x20guard\x27s\x20vote_weight\x20is\x20{GuardIdentifier:\x20pos},\x20the\x20number\x20you\x20submit\x20at\x20that\x20table\x20position\x20IS\x20the\x20vote\x20weight;\x20'+'when\x20it\x20is\x20{FixedValue:\x20v},\x20no\x20submission\x20is\x20needed\x20(weight\x20is\x20fixed).\x20The\x20SDK\x20then\x20routes\x20the\x20call\x20through\x20the\x20Guard-weighted\x20vote\x20path\x20via\x20a\x20Passport.\x20'+'Omitting\x20this\x20field\x20on\x20such\x20an\x20Arbitration\x20now\x20fails\x20fast\x20pre-call\x20with\x20the\x20list\x20of\x20valid\x20guards.\x0a'+'(B)\x20Arbitration\x20has\x20NO\x20voting_guard\x20→\x20omit\x20this\x20field;\x20the\x20SDK\x20uses\x20plain\x20vote\x20(weight\x201,\x20permission-gated),\x20or\x20the\x20passport-gated\x20vote\x20path\x20when\x20other\x20guards\x20require\x20it.\x0a'+'BOTH\x20(B)\x20paths\x20still\x20assert\x20ARBITRATION_VOTE=358\x20on-chain\x20(the\x20SDK\x20now\x20pre-checks\x20358\x20and\x20fails\x20fast\x20with\x20\x27Missing\x20permissions\x20358\x27).\x20'+'An\x20empty\x20voting_guard\x20means\x20EQUAL\x20WEIGHT\x20(1\x20person\x201\x20vote),\x20NOT\x20permissionless\x20—\x20there\x20is\x20no\x20permission-free\x20vote\x20entry.\x20'+'For\x20genuinely\x20open\x20voting,\x20configure\x20a\x20public\x20voting_guard\x20(op=\x22set\x22)\x20and\x20vote\x20via\x20path\x20(A):\x20the\x20weighted\x20passport\x20path\x20authorizes\x20by\x20the\x20guard\x20and\x20does\x20NOT\x20require\x20358.\x0a'+'The\x20Guard\x20(when\x20provided)\x20MUST\x20be\x20in\x20the\x20Arbitration\x27s\x20voting_guard\x20list\x20—\x20an\x20unlisted\x20guard\x20aborts\x20with\x20E_VOTING_GUARD_NOT_FOUND.')})['strict']();export const FeedbackSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.')})['strict']();export const ArbitrationActionSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.'),'indemnity':z['number']()['int']()['min'](0x0)})['strict']();export const ResetSchema=z['object']({'arb':ARB_CASE_FIELD,'feedback':DescriptionSchema['describe']('Arbitration\x20feedback.')})['strict']();export const ArbWithdrawSchema=z['object']({'arb':ARB_CASE_FIELD})['strict']();export const FeesTransferToSchema=z['union']([z['object']({'allocation':NameOrAddressSchema['describe']('Allocation\x20object\x20ID\x20or\x20name.')})['strict'](),z['object']({'treasury':NameOrAddressSchema['describe']('Treasury\x20object\x20ID\x20or\x20name.\x20NOTE:\x20the\x20transferred\x20funds\x20arrive\x20as\x20a\x20CoinWrapper\x20owned\x20by\x20the\x20Treasury\x20and\x20only\x20count\x20'+'after\x20the\x20Treasury\x20intakes\x20them\x20—\x20call\x20treasury\x20receive:\x20\x22recently\x22\x20(requires\x20permission\x20253\x20TREASURY_RECEIVE\x20on\x20the\x20Treasury).')})['strict']()]);export const FeesTransferSchema=z['object']({'to':FeesTransferToSchema['describe']('Transfer\x20arbitration\x20fees\x20to\x20the\x20specified\x20Allocation\x20object\x20or\x20Treasury\x20object.'),'payment_remark':NameSchema['describe']('Payment\x20remark.'),'payment_index':z['number']()['int']()['min'](0x0)['describe']('0-based\x20index\x20of\x20the\x20fee\x20payment\x20inside\x20the\x20Arb\x20case\x27s\x20fees\x20table\x20(query\x20the\x20Arb\x20case\x20with\x20onchain_operations\x20type\x20\x27q\x27\x20/\x20onchain_table_data\x20to\x20list\x20its\x20fees\x20and\x20their\x20indices).\x20REQUIRED\x20—\x20without\x20it\x20the\x20transfer\x20cannot\x20name\x20which\x20fee\x20record\x20to\x20move.'),'newPayment':NamedObjectSchema['optional']()['describe']('Name\x20for\x20the\x20newly\x20created\x20payment\x20object.')})['strict']();export const VotingGuardActionSchema=z['discriminatedUnion']('op',[z['object']({'op':z['enum'](['add','set']),'guards':z['array'](VotingGuardSchema)})['strict'](),z['object']({'op':z['literal']('remove'),'guards':z['array'](NameOrAddressSchema)})['strict'](),z['object']({'op':z['literal']('clear')})['strict']()]);export const CallArbitration_DataSchema=z['object']({'object':TypedPermissionObjectSchema,'dispute':DisputeSchema['optional']()['describe']('Create\x20a\x20new\x20Arb\x20object\x20for\x20the\x20order;\x20the\x20case\x20lands\x20directly\x20in\x20state\x201\x20(Arbitrator_confirming)\x20—\x20the\x20customer\x20does\x20not\x20confirm\x20at\x20filing\x20time.\x20FILING\x20IS\x20SERVICE-BOUND:\x20the\x20SDK\x20resolves\x20the\x20order\x27s\x20Service\x20and\x20files\x20through\x20its\x20Service-side\x20dispute\x20entry\x20points,\x20which\x20enforce\x20the\x20merchant\x27s\x20arbitrator\x20allowlist,\x20the\x20service-arbitration\x20neutrality\x20rule\x20and\x20the\x20order\x20binding\x20before\x20the\x20case\x20is\x20minted\x20(venues\x20gated\x20by\x20a\x20usage_guard\x20require\x20the\x20passport\x20path,\x20verified\x20in\x20the\x20same\x20transaction).\x20Direct\x20calls\x20to\x20the\x20removed\x20arbitration-side\x20dispute\x20entries\x20abort\x20with\x20arbitration:10'),'description':DescriptionSchema['optional']()['describe']('Introduction\x20of\x20the\x20Arbitration\x20object.'),'location':LongNameSchema['optional']()['describe']('Arbitration\x20location.'),'fee':BalanceTypeSchema['optional']()['describe']('Arbitration\x20filing\x20fee.\x20FORMAT:\x20a\x20direct\x20amount\x20value\x20—\x20NOT\x20wrapped\x20in\x20'+'{balance:\x20...}\x20(that\x20CoinParam\x20shape\x20is\x20only\x20for\x20dispute.fee,\x20which\x20pays\x20a\x20coin\x20object).\x20'+'Accepted:\x20smallest-unit\x20number\x20or\x20string\x20(e.g.\x2050000000\x20=\x200.05\x20WOW\x20at\x209\x20decimals),\x20or\x20'+'display\x20format\x20with\x20the\x20token\x20symbol\x20(e.g.\x20\x220.05WOW\x22)\x20—\x20the\x20Fund\x20Processing\x20Layer\x20'+'converts\x20it\x20using\x20the\x20Arbitration\x20object\x27s\x20own\x20token\x20decimals.\x20'+'Default\x200\x20on\x20creation:\x20disputes\x20are\x20then\x20free\x20(the\x20filer\x27s\x20coin\x20is\x20fully\x20refunded\x20on\x20'+'filing)\x20and\x20the\x20arbitrator\x20earns\x20no\x20per-case\x20fee.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20arbitration.'),'confirm':ConfirmSchema['optional']()['describe']('ARBITRATOR-side\x20material\x20confirmation\x20(from\x20state\x201):\x20moves\x20the\x20case\x20to\x20state\x202\x20(Voting).\x20'+'Customers\x20cannot\x20call\x20this\x20—\x20the\x20customer-side\x20step\x20is\x20order.arb_confirm\x20(state\x200\x20to\x201).'),'voting_deadline_change':VotingDeadlineChangeSchema['optional']()['describe']('Change\x20the\x20voting\x20deadline.'),'vote':VoteSchema['optional']()['describe']('Vote\x20on\x20user\x20propositions.'),'feedback':FeedbackSchema['optional']()['describe']('Arbitration\x20feedback\x20for\x20the\x20Arb\x20object.'),'arbitration':ArbitrationActionSchema['optional']()['describe']('Provide\x20a\x20definitive\x20arbitration\x20result.'),'reset':ResetSchema['optional']()['describe']('ARBITRATOR-side\x20reset\x20(arbitration\x20permission\x20holder;\x20valid\x20from\x20state\x204\x20Objectionable\x20or\x20state\x201):\x20voids\x20the\x20ruling,\x20'+'clears\x20the\x20indemnity\x20and\x20returns\x20the\x20case\x20to\x20state\x200\x20(Principal_confirming).\x20After\x20a\x20reset\x20ONLY\x20the\x20customer\x20can\x20advance\x20the\x20case\x20'+'again\x20via\x20order.arb_confirm\x20—\x20state\x200\x20has\x20no\x20timeout\x20and\x20the\x20fee\x20stays\x20locked\x20until\x20the\x20customer\x20re-confirms.'),'arb_withdraw':ArbWithdrawSchema['optional']()['describe']('Withdraw\x20arbitration\x20fees\x20from\x20the\x20Arb\x20object\x20(arbitrator).\x20Immediately\x20from\x20state\x205\x20(Finished);\x20from\x20state\x203\x20only\x20after\x2030\x20days\x20'+'from\x20the\x20ruling\x20time\x20(no\x20objection\x20filed\x20—\x20silence\x20=\x20acceptance);\x20rejected\x20in\x20states\x200/1/2.\x20'+'State\x204\x20(Objectionable)\x20can\x20NEVER\x20withdraw\x20(protocol\x20141):\x20a\x20contested\x20case\x20keeps\x20its\x20fee\x20escrowed\x20until\x20the\x20customer\x20'+'closes\x20the\x20objection\x20cycle\x20—\x20reset\x20→\x20order.arb_confirm\x20→\x20new\x20ruling\x20→\x20unchallenged\x20(or\x20accepted\x20via\x20finish).\x20'+'⚠️\x20TWO-STAGE\x20FEE\x20CASH-OUT\x20(verified\x20on\x20testnet):\x20this\x20call\x20does\x20NOT\x20pay\x20the\x20arbitrator\x27s\x20wallet\x20—\x20it\x20moves\x20the\x20case\x20fee\x20'+'into\x20the\x20Arbitration\x20(Registration)\x20object\x27s\x20own\x20balance\x20pool.\x20To\x20actually\x20receive\x20the\x20money:\x20'+'fees_transfer\x20(to\x20a\x20treasury\x20or\x20allocation)\x20→\x20treasury\x20receive:\x20\x22recently\x22\x20(permission\x20253)\x20→\x20treasury\x20withdraw\x20→\x20'+'recipient\x20payment\x20receive.\x20A\x20successful\x20arb_withdraw\x20with\x20no\x20wallet\x20balance\x20change\x20is\x20EXPECTED,\x20not\x20a\x20failure.'),'fees_transfer':FeesTransferSchema['optional']()['describe']('Distribute\x20the\x20withdrawn\x20arbitration\x20fees.\x20Moves\x20the\x20Arbitration\x27s\x20ENTIRE\x20balance\x20in\x20ONE\x20call\x20—\x20there\x20is\x20NO\x20amount\x20parameter.\x20'+'The\x20balance\x20leaves\x20as\x20a\x20CoinWrapper\x20owned\x20by\x20the\x20target\x20(allocation\x20or\x20treasury);\x20for\x20a\x20treasury\x20target,\x20intake\x20it\x20with\x20'+'treasury\x20receive:\x20\x22recently\x22\x20(permission\x20253)\x20—\x20see\x20the\x20\x27to\x27\x20field\x20description.'),'usage_guard':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Set\x20Guard\x20for\x20verification\x20when\x20users\x20apply\x20for\x20arbitration;\x20if\x20Guard\x20verification\x20fails,\x20users\x20will\x20not\x20be\x20able\x20to\x20apply\x20for\x20arbitration.'),'voting_guard':VotingGuardActionSchema['optional']()['describe']('Set\x20Guard\x20for\x20verification\x20during\x20arbitration\x20voting;\x20if\x20Guard\x20verification\x20fails,\x20arbitration\x20voting\x20will\x20fail.'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Arbitration\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20its\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'um':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Contact\x20object\x20ID\x20or\x20name.')})['strict']()['describe']('On-chain\x20Arbitration\x20operations.\x20TWO\x20OBJECT\x20KINDS\x20—\x20do\x20not\x20confuse\x20them\x20(§5.9):\x20the\x20ROOT\x20\x27object\x27\x20field\x20is\x20the\x20Arbitration\x20(arbitrator\x20REGISTRATION)\x20object;\x20the\x20Arb\x20(single\x20CASE)\x20created\x20by\x20\x27dispute\x27\x20is\x20addressed\x20via\x20each\x20case\x20operation\x27s\x20\x27arb\x27\x20field.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20type_parameter,\x20permission,\x20...}\x20to\x20create\x20an\x20Arbitration.\x20NOTE:\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20\x27permission\x27\x20can\x20be\x20a\x20new\x20Permission\x20object\x20or\x20reference\x20an\x20existing\x20one\x20-\x20check\x20\x27object\x27\x20field\x20description\x20for\x20details.\x20⚠️\x20PERMISSION\x20RULE\x20(contract-enforced):\x20the\x20Arbitration\x27s\x20permission\x20MUST\x20be\x20DIFFERENT\x20from\x20the\x20permission\x20of\x20any\x20Service\x20it\x20will\x20be\x20bound\x20to\x20—\x20binding\x20an\x20Arbitration\x20that\x20SHARES\x20the\x20Service\x27s\x20Permission\x20aborts\x20with\x20E_ARBITRATION_PERMISSION_CONFLICT\x20(error\x2033).\x20Always\x20create\x20a\x20DEDICATED\x20Permission\x20object\x20for\x20each\x20Arbitration.\x20(2)\x20OPERATE\x20EXISTING:\x20Set\x20\x27object\x27\x20field\x20with\x20STRING\x20format\x20(object\x20ID\x20or\x20name).\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED\x20in\x20both\x20cases.\x20STRING\x20for\x20existing,\x20OBJECT\x20for\x20new\x20creation.');export const CallArbitration_InputSchema=z['object']({'data':CallArbitration_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
@@ -961,6 +961,7 @@ export declare const CallResponseErrorSchema: z.ZodObject<{
961
961
  config_error: "config_error";
962
962
  wip_verification_failed: "wip_verification_failed";
963
963
  wip_storage_unavailable: "wip_storage_unavailable";
964
+ submission_unknown: "submission_unknown";
964
965
  }>>;
965
966
  retryable: z.ZodOptional<z.ZodBoolean>;
966
967
  recovery_hint: z.ZodOptional<z.ZodString>;
@@ -1890,6 +1891,7 @@ export declare const CallResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1890
1891
  config_error: "config_error";
1891
1892
  wip_verification_failed: "wip_verification_failed";
1892
1893
  wip_storage_unavailable: "wip_storage_unavailable";
1894
+ submission_unknown: "submission_unknown";
1893
1895
  }>>;
1894
1896
  retryable: z.ZodOptional<z.ZodBoolean>;
1895
1897
  recovery_hint: z.ZodOptional<z.ZodString>;
@@ -3296,6 +3298,7 @@ export declare const CallOutputFailedSchema: z.ZodObject<{
3296
3298
  config_error: "config_error";
3297
3299
  wip_verification_failed: "wip_verification_failed";
3298
3300
  wip_storage_unavailable: "wip_storage_unavailable";
3301
+ submission_unknown: "submission_unknown";
3299
3302
  }>>;
3300
3303
  retryable: z.ZodOptional<z.ZodBoolean>;
3301
3304
  recovery_hint: z.ZodOptional<z.ZodString>;
@@ -4953,6 +4956,7 @@ export declare const CallOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4953
4956
  config_error: "config_error";
4954
4957
  wip_verification_failed: "wip_verification_failed";
4955
4958
  wip_storage_unavailable: "wip_storage_unavailable";
4959
+ submission_unknown: "submission_unknown";
4956
4960
  }>>;
4957
4961
  retryable: z.ZodOptional<z.ZodBoolean>;
4958
4962
  recovery_hint: z.ZodOptional<z.ZodString>;