@wowok/agent-mcp 3.2.6 → 3.2.7

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 (222) 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/object-graph.js +1 -1
  4. package/dist/communication/wts-attestation.js +1 -1
  5. package/dist/composition/audit.js +1 -1
  6. package/dist/composition/compile.d.ts +3 -2
  7. package/dist/composition/compile.js +1 -1
  8. package/dist/composition/inflight.d.ts +17 -0
  9. package/dist/composition/inflight.js +1 -0
  10. package/dist/config/config-audit.spec.js +1 -1
  11. package/dist/customer/account-events.js +1 -1
  12. package/dist/customer/order-monitor.js +1 -1
  13. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  14. package/dist/evaluation/engine.js +1 -1
  15. package/dist/experience/realtime-feedback.js +1 -1
  16. package/dist/extensions/constraint-registry.d.ts +6 -1
  17. package/dist/extensions/constraint-registry.js +1 -1
  18. package/dist/extensions/index.d.ts +1 -1
  19. package/dist/extensions/index.js +1 -1
  20. package/dist/extensions/industry-pack.d.ts +5 -0
  21. package/dist/extensions/industry-pack.js +1 -1
  22. package/dist/extensions/mode-evaluator.d.ts +3 -2
  23. package/dist/extensions/mode-evaluator.js +1 -1
  24. package/dist/extensions/modes.js +1 -1
  25. package/dist/graph/onchain/analyze.js +1 -1
  26. package/dist/graph/onchain/analyze.spec.js +1 -1
  27. package/dist/graph/onchain/anti-cheat.d.ts +32 -2
  28. package/dist/graph/onchain/anti-cheat.js +1 -1
  29. package/dist/graph/onchain/anti-cheat.spec.js +1 -1
  30. package/dist/graph/onchain/expand.js +1 -1
  31. package/dist/graph/onchain/exposure.js +1 -1
  32. package/dist/graph/onchain/extract.js +1 -1
  33. package/dist/graph/onchain/graph-policy.spec.js +1 -1
  34. package/dist/graph/onchain/index.d.ts +2 -2
  35. package/dist/graph/onchain/index.js +1 -1
  36. package/dist/graph/onchain/project-relationship.js +1 -1
  37. package/dist/graph/onchain/table-ledger.spec.js +1 -1
  38. package/dist/graph/onchain/types.d.ts +3 -0
  39. package/dist/harness/recover.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/knowledge/arbitration-venue-order.d.ts +25 -0
  42. package/dist/knowledge/arbitration-venue-order.js +1 -0
  43. package/dist/knowledge/audit-rules.d.ts +10 -0
  44. package/dist/knowledge/audit-rules.js +1 -1
  45. package/dist/knowledge/baselines/risk-baselines.spec.js +1 -1
  46. package/dist/knowledge/baselines/rules/graph.json +81 -0
  47. package/dist/knowledge/baselines/rules/machine.json +3 -3
  48. package/dist/knowledge/baselines/rules/plan.json +80 -2
  49. package/dist/knowledge/builtin-templates.d.ts +17 -2
  50. package/dist/knowledge/builtin-templates.js +1 -1
  51. package/dist/knowledge/discount-threshold.js +1 -1
  52. package/dist/knowledge/event-semantics.js +1 -1
  53. package/dist/knowledge/getting-started.js +1 -1
  54. package/dist/knowledge/guard-bindings.js +1 -1
  55. package/dist/knowledge/guard-design-patterns.js +1 -1
  56. package/dist/knowledge/guard-field-cognition.js +1 -1
  57. package/dist/knowledge/guard-ledger.js +1 -1
  58. package/dist/knowledge/guard-lint.d.ts +1 -0
  59. package/dist/knowledge/guard-lint.js +1 -1
  60. package/dist/knowledge/guard-node-gates.d.ts +4 -0
  61. package/dist/knowledge/guard-node-gates.js +1 -0
  62. package/dist/knowledge/guard-puzzle.js +1 -1
  63. package/dist/knowledge/guard-risk.js +1 -1
  64. package/dist/knowledge/guard-submission-prompt.d.ts +1 -0
  65. package/dist/knowledge/guard-submission-prompt.js +1 -1
  66. package/dist/knowledge/guard-templates.d.ts +2 -1
  67. package/dist/knowledge/guard-templates.js +1 -1
  68. package/dist/knowledge/guard-translation.js +1 -1
  69. package/dist/knowledge/index.d.ts +2 -2
  70. package/dist/knowledge/index.js +1 -1
  71. package/dist/knowledge/industry-registry.js +1 -1
  72. package/dist/knowledge/jsonrpc-enum.js +1 -1
  73. package/dist/knowledge/machine-topology.d.ts +6 -0
  74. package/dist/knowledge/machine-topology.js +1 -1
  75. package/dist/knowledge/reputation-rules.d.ts +3 -9
  76. package/dist/knowledge/reputation-rules.js +1 -1
  77. package/dist/knowledge/safety-rules.d.ts +10 -1
  78. package/dist/knowledge/safety-rules.js +1 -1
  79. package/dist/knowledge/scenario-modes.js +1 -1
  80. package/dist/knowledge/settlement-semantics.d.ts +1 -0
  81. package/dist/knowledge/settlement-semantics.js +1 -0
  82. package/dist/knowledge/template-loader.d.ts +22 -0
  83. package/dist/knowledge/template-loader.js +1 -1
  84. package/dist/knowledge/template-registry.js +1 -1
  85. package/dist/knowledge/template-scanner.d.ts +14 -0
  86. package/dist/knowledge/template-scanner.js +1 -1
  87. package/dist/knowledge/tools-reference.js +1 -1
  88. package/dist/knowledge/workflow-guidance.d.ts +1 -0
  89. package/dist/knowledge/workflow-guidance.js +1 -1
  90. package/dist/monitor/MonitorLoop.js +1 -1
  91. package/dist/participation/allocation-advice.js +1 -1
  92. package/dist/participation/customer-interest.js +1 -1
  93. package/dist/participation/radar-core.d.ts +6 -1
  94. package/dist/participation/radar-core.js +1 -1
  95. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  96. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  97. package/dist/playbooks/service-build/merchant-guide.d.ts +38 -15
  98. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  99. package/dist/playbooks/service-build/migration-planner.d.ts +7 -0
  100. package/dist/playbooks/service-build/migration-planner.js +1 -1
  101. package/dist/playbooks/service-build/object-panorama.js +1 -1
  102. package/dist/playbooks/service-build/participation-radar.js +1 -1
  103. package/dist/playbooks/service-build/pipeline-actions.d.ts +1 -1
  104. package/dist/playbooks/service-build/pipeline-actions.js +1 -1
  105. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  106. package/dist/playbooks/service-build/risk-aggregator.d.ts +1 -1
  107. package/dist/playbooks/service-build/risk-aggregator.js +1 -1
  108. package/dist/playbooks/service-build/service-panorama.js +1 -1
  109. package/dist/playbooks/service-build/service-quote.js +1 -1
  110. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  111. package/dist/relationship/derivation.d.ts +1 -0
  112. package/dist/review/index.js +1 -1
  113. package/dist/runtime/instance-registry.d.ts +8 -0
  114. package/dist/runtime/instance-registry.js +1 -0
  115. package/dist/safety/confirm-gate.js +1 -1
  116. package/dist/schema/benchmark-migration/index.d.ts +14 -0
  117. package/dist/schema/benchmark-migration/index.js +1 -1
  118. package/dist/schema/call/arbitration.js +1 -1
  119. package/dist/schema/call/base.d.ts +109 -0
  120. package/dist/schema/call/base.js +1 -1
  121. package/dist/schema/call/bridge.d.ts +14 -0
  122. package/dist/schema/call/contact.js +1 -1
  123. package/dist/schema/call/error-codes.d.ts +1 -1
  124. package/dist/schema/call/error-codes.js +1 -1
  125. package/dist/schema/call/guard.d.ts +7 -0
  126. package/dist/schema/call/guard.js +1 -1
  127. package/dist/schema/call/handler.js +1 -1
  128. package/dist/schema/call/machine.d.ts +7 -0
  129. package/dist/schema/call/machine.js +1 -1
  130. package/dist/schema/call/payment.js +1 -1
  131. package/dist/schema/call/permission-handler.js +1 -1
  132. package/dist/schema/call/progress.d.ts +46 -0
  133. package/dist/schema/call/progress.js +1 -1
  134. package/dist/schema/call/semantic.js +1 -1
  135. package/dist/schema/call/service.d.ts +8 -8
  136. package/dist/schema/call/service.js +1 -1
  137. package/dist/schema/common/index.js +1 -1
  138. package/dist/schema/goal/index.d.ts +11 -0
  139. package/dist/schema/goal/planning.d.ts +32 -1
  140. package/dist/schema/goal/planning.js +1 -1
  141. package/dist/schema/industry-pack/index.d.ts +40 -0
  142. package/dist/schema/industry-pack/index.js +1 -1
  143. package/dist/schema/keeper/index.d.ts +13 -0
  144. package/dist/schema/local/index.d.ts +75 -0
  145. package/dist/schema/local/index.js +1 -1
  146. package/dist/schema/messenger/index.d.ts +17 -0
  147. package/dist/schema/messenger/index.js +1 -1
  148. package/dist/schema/operations.d.ts +39 -2
  149. package/dist/schema/operations.js +1 -1
  150. package/dist/schema/query/bi.d.ts +64 -0
  151. package/dist/schema/query/bi.js +1 -1
  152. package/dist/schema/query/index.d.ts +94 -0
  153. package/dist/schema/query/index.js +1 -1
  154. package/dist/schema/schema-version.d.ts +1 -1
  155. package/dist/schema/schema-version.js +1 -1
  156. package/dist/schema/utils/permission-machine-check.js +1 -1
  157. package/dist/schema/workspace/index.d.ts +1 -1
  158. package/dist/schema-query-impl/index.js +1 -1
  159. package/dist/schemas/account_operation.output.json +45 -0
  160. package/dist/schemas/benchmark_migration_operation.output.json +24 -4
  161. package/dist/schemas/benchmark_migration_operation.schema.json +70 -0
  162. package/dist/schemas/bridge_operation.output.json +45 -0
  163. package/dist/schemas/goal_operation.schema.json +78 -0
  164. package/dist/schemas/guard2file.output.json +6 -1
  165. package/dist/schemas/guard2file.schema.json +9 -0
  166. package/dist/schemas/index.json +1 -1
  167. package/dist/schemas/industry_pack_operation.output.json +91 -0
  168. package/dist/schemas/industry_pack_operation.schema.json +19 -1
  169. package/dist/schemas/keeper_operation.output.json +44 -0
  170. package/dist/schemas/local_cache_operation.output.json +45 -0
  171. package/dist/schemas/local_history_operation.output.json +45 -0
  172. package/dist/schemas/local_info_operation.output.json +45 -0
  173. package/dist/schemas/local_mark_operation.output.json +45 -0
  174. package/dist/schemas/machineNode2file.output.json +6 -1
  175. package/dist/schemas/machineNode2file.schema.json +9 -0
  176. package/dist/schemas/messenger_operation.output.json +52 -0
  177. package/dist/schemas/monitor_events.output.json +44 -0
  178. package/dist/schemas/monitor_subscription.output.json +44 -0
  179. package/dist/schemas/onchain_events.output.json +44 -0
  180. package/dist/schemas/onchain_operations.output.json +133 -0
  181. package/dist/schemas/onchain_operations.schema.json +73 -16
  182. package/dist/schemas/onchain_operations_arbitration.schema.json +2 -1
  183. package/dist/schemas/onchain_operations_contact.schema.json +2 -2
  184. package/dist/schemas/onchain_operations_guard.schema.json +2 -2
  185. package/dist/schemas/onchain_operations_machine.schema.json +2 -2
  186. package/dist/schemas/onchain_operations_payment.schema.json +1 -1
  187. package/dist/schemas/onchain_operations_progress.schema.json +57 -0
  188. package/dist/schemas/onchain_operations_service.schema.json +7 -8
  189. package/dist/schemas/onchain_table_data.output.json +81 -13
  190. package/dist/schemas/onchain_table_data.schema.json +21 -21
  191. package/dist/schemas/query_toolkit.output.json +218 -9
  192. package/dist/schemas/query_toolkit.schema.json +50 -26
  193. package/dist/schemas/wowok_buildin_info.output.json +80 -1
  194. package/dist/schemas/wowok_buildin_info.schema.json +1 -1
  195. package/dist/tools/handlers/benchmark-migration.d.ts +1 -0
  196. package/dist/tools/handlers/benchmark-migration.js +1 -1
  197. package/dist/tools/handlers/config.js +1 -1
  198. package/dist/tools/handlers/file-export.js +1 -1
  199. package/dist/tools/handlers/industry-pack.js +1 -1
  200. package/dist/tools/handlers/messenger.js +1 -1
  201. package/dist/tools/handlers/onchain.js +1 -1
  202. package/dist/tools/handlers/review-chain.d.ts +22 -0
  203. package/dist/tools/handlers/review-chain.js +1 -0
  204. package/dist/tools/registry/agent.js +1 -1
  205. package/dist/tools/registry/business.js +1 -1
  206. package/dist/tools/registry/config.js +1 -1
  207. package/dist/tools/registry/evaluation.js +1 -1
  208. package/dist/tools/registry/files.js +1 -1
  209. package/dist/tools/registry/identity.js +1 -1
  210. package/dist/tools/registry/local.js +1 -1
  211. package/dist/tools/registry/messenger.js +1 -1
  212. package/dist/tools/registry/monitor.js +1 -1
  213. package/dist/tools/registry/onchain.js +1 -1
  214. package/dist/tools/registry/query.js +1 -1
  215. package/dist/tools/rules-hook.js +1 -1
  216. package/dist/tools/runtime-health.d.ts +10 -0
  217. package/dist/tools/runtime-health.js +1 -0
  218. package/dist/tools/upgrade-check.d.ts +10 -1
  219. package/dist/tools/upgrade-check.js +1 -1
  220. package/dist/tools/wrap.d.ts +3 -0
  221. package/dist/tools/wrap.js +1 -1
  222. package/package.json +2 -2
@@ -1 +1 @@
1
- import{z}from'zod';import{CallEnvSchema,NamedObjectSchema,SubmissionCallSchema}from'./base.js';import{GuardNodeSchema}from'../query/index.js';import{DescriptionSchema,GuardTableItemBaseSchema,NameOrAddressSchema}from'../common/index.js';import{isBoolReturningQuery}from'../utils/guard-query-utils.js';import{ValueType}from'@wowok/wowok';export const CallGuard_RootSchema=z['union']([GuardNodeSchema['refine'](a=>{const b=a,c=['logic_as_u256_greater','logic_as_u256_lesser','logic_as_u256_equal','logic_as_u256_greater_or_equal','logic_as_u256_lesser_or_equal','logic_equal','logic_not','logic_and','logic_or','logic_string_contains','logic_string_nocase_contains','logic_string_nocase_equal','calc_string_contains','calc_string_nocase_contains','calc_string_nocase_equal','vec_contains_bool','vec_contains_address','vec_contains_string','vec_contains_string_nocase','vec_contains_number','query_reward_record_exists','query','identifier'];if(!c['includes'](b['type']))return![];if(b['type']==='query'){const d=b;if(!isBoolReturningQuery(d['query']))return![];}return!![];},{'message':'Guard\x20root\x20node\x20must\x20be\x20an\x20operation\x20that\x20returns\x20Bool.\x20Allowed\x20types:\x20logic_*,\x20calc_string_contains,\x20calc_string_nocase_*,\x20vec_contains_*,\x20reward_record_exist,\x20identifier\x20(must\x20reference\x20Bool\x20type\x20in\x20table).\x20For\x20\x27query\x27\x20type,\x20ONLY\x20queries\x20that\x20return\x20Bool\x20are\x20allowed.\x20Use\x20\x27wowok_buildin_info\x27\x20tool\x20with\x20{\x22info\x22:\x20\x22guard\x20instructions\x22,\x20\x22filter\x22:\x20{\x22returnType\x22:\x20\x22Bool\x22,\x20\x22scope\x22:\x20\x22object\x20query\x22}}\x20to\x20list\x20all\x20Bool-returning\x20queries.\x20Other\x20nodes\x20(calc_number_*,\x20context,\x20non-Bool\x20queries)\x20must\x20be\x20wrapped\x20with\x20a\x20logic\x20operation.'})['describe']('Guard\x20computational\x20tree\x20root\x20node.\x20MUST\x20be\x20an\x20operation\x20that\x20returns\x20a\x20Bool\x20value\x20(pass/fail).\x20For\x20\x27query\x27\x20type,\x20the\x20specific\x20query\x20must\x20return\x20Bool.\x20For\x20\x27identifier\x27\x20type,\x20the\x20referenced\x20table\x20item\x20must\x20have\x20value_type=Bool.'),z['object']({'type':z['literal']('file'),'file_path':z['string']()['describe']('Path\x20to\x20JSON\x20or\x20Markdown\x20file\x20containing\x20Guard\x20definition.\x20File\x20can\x20define:\x20namedNew,\x20description,\x20table,\x20root,\x20rely.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('File\x20format:\x20\x27json\x27\x20or\x20\x27markdown\x27.\x20Default\x20is\x20\x27json\x27.')})['strict']()])['describe']('Guard\x20root\x20definition.\x20Either\x20provide\x20a\x20direct\x20GuardNode\x20tree\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20reference\x20a\x20file\x20to\x20load.\x20When\x20using\x20file\x20type,\x20fields\x20defined\x20in\x20the\x20schema\x20(namedNew,\x20description,\x20table,\x20rely)\x20will\x20OVERRIDE\x20the\x20corresponding\x20fields\x20in\x20the\x20file.');const isBoolValueType=a=>{if(typeof a==='number')return a===ValueType['Bool'];if(typeof a==='string')return a['toLowerCase']()==='bool'||a==='0';return![];};export const GuardBindingHintActionSchema=z['enum'](['buy','forward','allocate','claim_reward','vote','dispute','write_repository','submit_progress','gen_passport','custom'])['describe']('Guard\x20protected\x20action\x20type.\x20Maps\x20to\x20IntentPuzzle.action\x20in\x20the\x20puzzle\x20model.');export const GuardBindingHintHostObjectSchema=z['enum'](['Service','Machine','Arbitration','Reward','Repository','Progress','Demand','Standalone'])['describe']('Host\x20object\x20type\x20that\x20the\x20Guard\x20will\x20bind\x20to.\x20\x27Standalone\x27\x20for\x20independent\x20Guards\x20(rely\x20dependency\x20or\x20gen_passport).');export const GuardBindingHintBindingFieldSchema=z['enum'](['buy_guard','order_allocators','Forward.guard','submission','guard','write_guard','usage_guard','voting_guard','ServiceGuard','none'])['describe']('Binding\x20field\x20on\x20the\x20host\x20object.\x20\x27none\x27\x20for\x20standalone\x20Guards.');export const GuardBindingHintSchema=z['object']({'action':GuardBindingHintActionSchema['describe']('Protected\x20action\x20type.\x20Example:\x20\x27buy\x27\x20for\x20Service\x20buy_guard,\x20\x27forward\x27\x20for\x20Machine\x20Forward.guard.'),'host_object':GuardBindingHintHostObjectSchema['describe']('Host\x20object\x20type.\x20Example:\x20\x27Service\x27,\x20\x27Machine\x27.'),'binding_field':GuardBindingHintBindingFieldSchema['describe']('Binding\x20field.\x20Example:\x20\x27buy_guard\x27,\x20\x27Forward.guard\x27.'),'rule_sentence':z['string']()['optional']()['describe']('One-sentence\x20description\x20of\x20the\x20validation\x20rule\x20(human-readable).\x20Example:\x20\x27Only\x20the\x20author\x20can\x20purchase\x20this\x20service\x27.'),'failure_conditions':z['array'](z['string']())['optional']()['describe']('List\x20of\x20conditions\x20under\x20which\x20the\x20Guard\x20should\x20FAIL.\x20Example:\x20[\x27Signer\x20is\x20not\x20in\x20allowlist\x27,\x27Order\x20is\x20already\x20completed\x27].'),'circular_reference':z['boolean']()['optional']()['describe']('Whether\x20the\x20Guard\x20references\x20the\x20Host\x20Object\x20itself\x20(circular\x20reference\x20pattern).\x20true=Guard\x20queries\x20the\x20Host\x20Object\x20it\x20binds\x20to.')})['strict']()['describe']('Optional\x20semantic\x20hint\x20for\x20Guard\x20capability\x20system.\x20Provides\x20intent\x20+\x20binding\x20context\x20so\x20the\x20MCP\x20server\x20can\x20derive\x20GuardPuzzle,\x20run\x20risk\x20assessment,\x20and\x20generate\x20confirmation\x20text.\x20Strongly\x20recommended:\x20fill\x20this\x20field\x20to\x20enable\x20puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20and\x20pending_questions\x20in\x20the\x20response\x20guard_advice.');export const CallGuard_DataSchema=z['object']({'namedNew':NamedObjectSchema['optional']()['describe']('Name\x20and\x20optional\x20tags\x20for\x20the\x20new\x20Guard\x20object.\x20Set\x20\x27onChain:\x20true\x27\x20to\x20create\x20a\x20public\x20on-chain\x20identity.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20namedNew\x20in\x20the\x20file.\x20CIRCULAR\x20DEPENDENCY\x20(DOC-01):\x20When\x20a\x20Guard\x20queries\x20a\x20Service\x20that\x20hasn\x27t\x20been\x20created\x20yet,\x20use\x20a\x20LocalMark\x20NAME\x20(not\x20address)\x20in\x20the\x20query\x20table\x20—\x20the\x20name\x20is\x20resolved\x20to\x20an\x20address\x20at\x20transaction\x20build\x20time.\x20Workflow:\x20(1)\x20Create\x20Service\x20(Phase\x201,\x20no\x20publish)\x20→\x20(2)\x20Create\x20Guard\x20referencing\x20Service\x20by\x20name\x20→\x20(3)\x20Update\x20Service.buy_guard\x20=\x20Guard\x20address\x20→\x20(4)\x20Publish\x20Service.'),'description':DescriptionSchema['optional']()['describe']('Guard\x20description.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20description\x20in\x20the\x20file.'),'table':z['array'](GuardTableItemBaseSchema)['optional']()['describe']('Data\x20table\x20of\x20the\x20Guard\x20object.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20table\x20in\x20the\x20file.'),'root':CallGuard_RootSchema['describe']('Root\x20definition:\x20either\x20a\x20direct\x20GuardNode\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20a\x20file\x20reference\x20(type=\x27file\x27).\x20When\x20type=\x27file\x27,\x20the\x20file\x20can\x20define\x20all\x20Guard\x20fields\x20(namedNew,\x20description,\x20table,\x20root,\x20rely),\x20and\x20schema\x20fields\x20override\x20file\x20content.'),'rely':z['object']({'guards':z['array'](NameOrAddressSchema)['describe']('List\x20of\x20dependent\x20Guard\x20object\x20IDs\x20or\x20names.'),'logic_or':z['boolean']()['optional']()['describe']('Whether\x20to\x20use\x20logical\x20OR\x20operator.')})['optional']()['describe']('All\x20Guard\x20objects\x20that\x20the\x20new\x20Guard\x20object\x20depends\x20on.\x20If\x20logic_or\x20is\x20true,\x20the\x20execution\x20result\x20of\x20the\x20new\x20Guard\x20object\x20is\x20the\x20logical\x20OR\x20of\x20the\x20execution\x20results\x20of\x20all\x20dependent\x20Guard\x20objects;\x20otherwise,\x20it\x20is\x20logical\x20AND.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20rely\x20in\x20the\x20file.'),'binding_hint':GuardBindingHintSchema['optional']()['describe']('Phase\x205\x20Guard\x20capability\x20hint.\x20Provides\x20semantic\x20context\x20(action\x20+\x20host_object\x20+\x20binding_field\x20+\x20optional\x20rule/failure_conditions)\x20for\x20puzzle\x20derivation.\x20When\x20provided,\x20the\x20response\x20will\x20include\x20complete\x20guard_advice\x20(puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20pending_questions).\x20When\x20absent,\x20puzzle_status\x20intent/binding\x20dimensions\x20are\x20marked\x20incomplete.')})['strict']()['refine'](a=>{if(typeof a['root']==='object'&&a['root']!==null&&'type'in a['root']){const c=a['root'];if(c['type']==='file')return!![];}const b=a['root'];if(b['type']==='identifier'&&b['identifier']!==undefined){const d=a['table']?.['find'](e=>e['identifier']===b['identifier']);if(!d)return![];if(!isBoolValueType(d['value_type']))return![];}return!![];},{'message':'Invalid\x20Guard\x20root:\x20When\x20using\x20\x27identifier\x27\x20as\x20root,\x20the\x20referenced\x20table\x20item\x20must\x20exist\x20and\x20have\x20value_type=\x27Bool\x27\x20(or\x200).'})['describe']('On-chain\x20Guard\x20creation.\x20IMPORTANT:\x20All\x20defined\x20data\x20(include\x20all\x20submitted\x20data)\x20must\x20be\x20defined\x20in\x20the\x20\x27table\x27\x20field.\x20USAGE:\x20Set\x20\x27namedNew\x27\x20field\x20with\x20{name,\x20tags?,\x20onChain?}\x20to\x20name\x20the\x20new\x20Guard\x20(you\x20may\x20also\x20use\x20\x27object\x27\x20as\x20an\x20alias\x20for\x20\x27namedNew\x27\x20—\x20the\x20MCP\x20preprocess\x20will\x20convert\x20it\x20automatically).\x20The\x20Guard\x20is\x20immutable\x20once\x20created.\x20Define\x20the\x20validation\x20logic\x20in\x20\x27root\x27\x20field.\x20When\x20root.type=\x27file\x27,\x20the\x20file\x20can\x20contain\x20all\x20Guard\x20fields,\x20and\x20any\x20fields\x20defined\x20in\x20the\x20schema\x20will\x20OVERRIDE\x20the\x20file\x20content.');export const CallGuard_InputSchema=z['object']({'data':CallGuard_DataSchema['describe']('Guard\x20data\x20definition.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('On-chain\x20Guard\x20creation\x20input\x20wrapper.\x20Contains\x20the\x20Guard\x20data\x20definition\x20and\x20optional\x20environment\x20settings.');export const CallGenPassport_InputSchema=z['object']({'guard':z['union']([NameOrAddressSchema,z['array'](NameOrAddressSchema)])['describe']('Guard\x20object\x20ID(s)\x20to\x20verify\x20and\x20generate\x20passport\x20from.\x20Can\x20be\x20a\x20single\x20guard\x20(string)\x20or\x20multiple\x20guards\x20(array\x20of\x20strings).\x20Supports\x20guard\x20names\x20or\x20addresses.'),'info':SubmissionCallSchema['optional']()['describe']('Optional\x20submission\x20data.\x20If\x20not\x20provided,\x20will\x20attempt\x20to\x20get\x20existing\x20submissions\x20from\x20the\x20guard.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Generate\x20a\x20new\x20Passport\x20object\x20after\x20Guard\x20verification\x20succeeds.\x20The\x20Passport\x20is\x20an\x20immutable\x20on-chain\x20object\x20that\x20can\x20be\x20used\x20for\x20offline\x20friend\x20verification,\x20transaction\x20condition\x20verification,\x20etc.\x20Supports\x20verifying\x20multiple\x20guards\x20at\x20once.');export const Guard2File_InputSchema=z['object']({'guard':NameOrAddressSchema['describe']('Guard\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Guard\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Guard\x20objects.');export const Guard2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'guard':z['string']()['describe']('Guard\x20object\x20ID\x20that\x20was\x20exported')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('Guard2File\x20operation\x20output\x20schema\x20with\x20discriminator');export const Guard2File_OutputWrappedSchema=z['object']({'result':Guard2File_OutputSchema})['strict']()['describe']('Guard2File\x20operation\x20output\x20wrapped\x20schema');
1
+ import{z}from'zod';import{CallEnvSchema,NamedObjectSchema,SubmissionCallSchema}from'./base.js';import{GuardNodeSchema}from'../query/index.js';import{DescriptionSchema,GuardTableItemBaseSchema,NameOrAddressSchema,EntrypointSchema}from'../common/index.js';import{isBoolReturningQuery}from'../utils/guard-query-utils.js';import{ValueType}from'@wowok/wowok';export const CallGuard_RootSchema=z['union']([GuardNodeSchema['refine'](a=>{const b=a,c=['logic_as_u256_greater','logic_as_u256_lesser','logic_as_u256_equal','logic_as_u256_greater_or_equal','logic_as_u256_lesser_or_equal','logic_equal','logic_not','logic_and','logic_or','logic_string_contains','logic_string_nocase_contains','logic_string_nocase_equal','calc_string_contains','calc_string_nocase_contains','calc_string_nocase_equal','vec_contains_bool','vec_contains_address','vec_contains_string','vec_contains_string_nocase','vec_contains_number','query_reward_record_exists','query','identifier'];if(!c['includes'](b['type']))return![];if(b['type']==='query'){const d=b;if(!isBoolReturningQuery(d['query']))return![];}return!![];},{'message':'Guard\x20root\x20node\x20must\x20be\x20an\x20operation\x20that\x20returns\x20Bool.\x20Allowed\x20types:\x20logic_*,\x20calc_string_contains,\x20calc_string_nocase_*,\x20vec_contains_*,\x20reward_record_exist,\x20identifier\x20(must\x20reference\x20Bool\x20type\x20in\x20table).\x20For\x20\x27query\x27\x20type,\x20ONLY\x20queries\x20that\x20return\x20Bool\x20are\x20allowed.\x20Use\x20\x27wowok_buildin_info\x27\x20tool\x20with\x20{\x22info\x22:\x20\x22guard\x20instructions\x22,\x20\x22filter\x22:\x20{\x22returnType\x22:\x20\x22Bool\x22,\x20\x22scope\x22:\x20\x22object\x20query\x22}}\x20to\x20list\x20all\x20Bool-returning\x20queries.\x20Other\x20nodes\x20(calc_number_*,\x20context,\x20non-Bool\x20queries)\x20must\x20be\x20wrapped\x20with\x20a\x20logic\x20operation.'})['describe']('Guard\x20computational\x20tree\x20root\x20node.\x20MUST\x20be\x20an\x20operation\x20that\x20returns\x20a\x20Bool\x20value\x20(pass/fail).\x20For\x20\x27query\x27\x20type,\x20the\x20specific\x20query\x20must\x20return\x20Bool.\x20For\x20\x27identifier\x27\x20type,\x20the\x20referenced\x20table\x20item\x20must\x20have\x20value_type=Bool.'),z['object']({'type':z['literal']('file'),'file_path':z['string']()['describe']('Path\x20to\x20JSON\x20or\x20Markdown\x20file\x20containing\x20Guard\x20definition.\x20File\x20can\x20define:\x20namedNew,\x20description,\x20table,\x20root,\x20rely.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('File\x20format:\x20\x27json\x27\x20or\x20\x27markdown\x27.\x20Default\x20is\x20\x27json\x27.')})['strict']()])['describe']('Guard\x20root\x20definition.\x20Either\x20provide\x20a\x20direct\x20GuardNode\x20tree\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20reference\x20a\x20file\x20to\x20load.\x20When\x20using\x20file\x20type,\x20fields\x20defined\x20in\x20the\x20schema\x20(namedNew,\x20description,\x20table,\x20rely)\x20will\x20OVERRIDE\x20the\x20corresponding\x20fields\x20in\x20the\x20file.');const isBoolValueType=a=>{if(typeof a==='number')return a===ValueType['Bool'];if(typeof a==='string')return a['toLowerCase']()==='bool'||a==='0';return![];};export const GuardBindingHintActionSchema=z['enum'](['buy','forward','allocate','claim_reward','vote','dispute','write_repository','submit_progress','gen_passport','custom'])['describe']('Guard\x20protected\x20action\x20type.\x20Maps\x20to\x20IntentPuzzle.action\x20in\x20the\x20puzzle\x20model.');export const GuardBindingHintHostObjectSchema=z['enum'](['Service','Machine','Arbitration','Reward','Repository','Progress','Demand','Standalone'])['describe']('Host\x20object\x20type\x20that\x20the\x20Guard\x20will\x20bind\x20to.\x20\x27Standalone\x27\x20for\x20independent\x20Guards\x20(rely\x20dependency\x20or\x20gen_passport).');export const GuardBindingHintBindingFieldSchema=z['enum'](['buy_guard','order_allocators','Forward.guard','submission','guard','write_guard','usage_guard','voting_guard','ServiceGuard','none'])['describe']('Binding\x20field\x20on\x20the\x20host\x20object.\x20\x27none\x27\x20for\x20standalone\x20Guards.');export const GuardBindingHintSchema=z['object']({'action':GuardBindingHintActionSchema['describe']('Protected\x20action\x20type.\x20Example:\x20\x27buy\x27\x20for\x20Service\x20buy_guard,\x20\x27forward\x27\x20for\x20Machine\x20Forward.guard.'),'host_object':GuardBindingHintHostObjectSchema['describe']('Host\x20object\x20type.\x20Example:\x20\x27Service\x27,\x20\x27Machine\x27.'),'binding_field':GuardBindingHintBindingFieldSchema['describe']('Binding\x20field.\x20Example:\x20\x27buy_guard\x27,\x20\x27Forward.guard\x27.'),'rule_sentence':z['string']()['optional']()['describe']('One-sentence\x20description\x20of\x20the\x20validation\x20rule\x20(human-readable).\x20Example:\x20\x27Only\x20the\x20author\x20can\x20purchase\x20this\x20service\x27.'),'failure_conditions':z['array'](z['string']())['optional']()['describe']('List\x20of\x20conditions\x20under\x20which\x20the\x20Guard\x20should\x20FAIL.\x20Example:\x20[\x27Signer\x20is\x20not\x20in\x20allowlist\x27,\x27Order\x20is\x20already\x20completed\x27].'),'circular_reference':z['boolean']()['optional']()['describe']('Whether\x20the\x20Guard\x20references\x20the\x20Host\x20Object\x20itself\x20(circular\x20reference\x20pattern).\x20true=Guard\x20queries\x20the\x20Host\x20Object\x20it\x20binds\x20to.')})['strict']()['describe']('Optional\x20semantic\x20hint\x20for\x20Guard\x20capability\x20system.\x20Provides\x20intent\x20+\x20binding\x20context\x20so\x20the\x20MCP\x20server\x20can\x20derive\x20GuardPuzzle,\x20run\x20risk\x20assessment,\x20and\x20generate\x20confirmation\x20text.\x20Strongly\x20recommended:\x20fill\x20this\x20field\x20to\x20enable\x20puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20and\x20pending_questions\x20in\x20the\x20response\x20guard_advice.');export const CallGuard_DataSchema=z['object']({'namedNew':NamedObjectSchema['optional']()['describe']('Name\x20and\x20optional\x20tags\x20for\x20the\x20new\x20Guard\x20object.\x20Set\x20\x27onChain:\x20true\x27\x20to\x20create\x20a\x20public\x20on-chain\x20identity.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20namedNew\x20in\x20the\x20file.\x20CIRCULAR\x20DEPENDENCY\x20(DOC-01):\x20When\x20a\x20Guard\x20queries\x20a\x20Service\x20that\x20hasn\x27t\x20been\x20created\x20yet,\x20use\x20a\x20LocalMark\x20NAME\x20(not\x20address)\x20in\x20the\x20query\x20table\x20—\x20the\x20name\x20is\x20resolved\x20to\x20an\x20address\x20at\x20transaction\x20build\x20time.\x20Workflow:\x20(1)\x20Create\x20Service\x20(Phase\x201,\x20no\x20publish)\x20→\x20(2)\x20Create\x20Guard\x20referencing\x20Service\x20by\x20name\x20→\x20(3)\x20Update\x20Service.buy_guard\x20=\x20Guard\x20address\x20→\x20(4)\x20Publish\x20Service.'),'description':DescriptionSchema['optional']()['describe']('Guard\x20description.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20description\x20in\x20the\x20file.'),'table':z['array'](GuardTableItemBaseSchema)['optional']()['describe']('Data\x20table\x20of\x20the\x20Guard\x20object.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20table\x20in\x20the\x20file.'),'root':CallGuard_RootSchema['describe']('Root\x20definition:\x20either\x20a\x20direct\x20GuardNode\x20(must\x20be\x20a\x20logical\x20operation\x20returning\x20Bool)\x20or\x20a\x20file\x20reference\x20(type=\x27file\x27).\x20When\x20type=\x27file\x27,\x20the\x20file\x20can\x20define\x20all\x20Guard\x20fields\x20(namedNew,\x20description,\x20table,\x20root,\x20rely),\x20and\x20schema\x20fields\x20override\x20file\x20content.'),'rely':z['object']({'guards':z['array'](NameOrAddressSchema)['describe']('List\x20of\x20dependent\x20Guard\x20object\x20IDs\x20or\x20names.'),'logic_or':z['boolean']()['optional']()['describe']('Whether\x20to\x20use\x20logical\x20OR\x20operator.')})['optional']()['describe']('All\x20Guard\x20objects\x20that\x20the\x20new\x20Guard\x20object\x20depends\x20on.\x20If\x20logic_or\x20is\x20true,\x20the\x20execution\x20result\x20of\x20the\x20new\x20Guard\x20object\x20is\x20the\x20logical\x20OR\x20of\x20the\x20execution\x20results\x20of\x20all\x20dependent\x20Guard\x20objects;\x20otherwise,\x20it\x20is\x20logical\x20AND.\x20When\x20using\x20root.type=\x27file\x27,\x20this\x20field\x20OVERRIDES\x20rely\x20in\x20the\x20file.'),'binding_hint':GuardBindingHintSchema['optional']()['describe']('Phase\x205\x20Guard\x20capability\x20hint.\x20Provides\x20semantic\x20context\x20(action\x20+\x20host_object\x20+\x20binding_field\x20+\x20optional\x20rule/failure_conditions)\x20for\x20puzzle\x20derivation.\x20When\x20provided,\x20the\x20response\x20will\x20include\x20complete\x20guard_advice\x20(puzzle_status,\x20matched_scene,\x20suggested_patterns,\x20confirmation_text,\x20pending_questions).\x20When\x20absent,\x20puzzle_status\x20intent/binding\x20dimensions\x20are\x20marked\x20incomplete.')})['strict']()['refine'](a=>{if(typeof a['root']==='object'&&a['root']!==null&&'type'in a['root']){const c=a['root'];if(c['type']==='file')return!![];}const b=a['root'];if(b['type']==='identifier'&&b['identifier']!==undefined){const d=a['table']?.['find'](e=>e['identifier']===b['identifier']);if(!d)return![];if(!isBoolValueType(d['value_type']))return![];}return!![];},{'message':'Invalid\x20Guard\x20root:\x20When\x20using\x20\x27identifier\x27\x20as\x20root,\x20the\x20referenced\x20table\x20item\x20must\x20exist\x20and\x20have\x20value_type=\x27Bool\x27\x20(or\x200).'})['describe']('On-chain\x20Guard\x20creation.\x20IMPORTANT:\x20All\x20defined\x20data\x20(include\x20all\x20submitted\x20data)\x20must\x20be\x20defined\x20in\x20the\x20\x27table\x27\x20field.\x20USAGE:\x20Set\x20\x27namedNew\x27\x20field\x20with\x20{name,\x20tags?,\x20onChain?}\x20to\x20name\x20the\x20new\x20Guard\x20(you\x20may\x20also\x20use\x20\x27object\x27\x20as\x20an\x20alias\x20for\x20\x27namedNew\x27\x20—\x20the\x20MCP\x20preprocess\x20will\x20convert\x20it\x20automatically).\x20The\x20Guard\x20is\x20immutable\x20once\x20created.\x20Define\x20the\x20validation\x20logic\x20in\x20\x27root\x27\x20field.\x20When\x20root.type=\x27file\x27,\x20the\x20file\x20can\x20contain\x20all\x20Guard\x20fields,\x20and\x20any\x20fields\x20defined\x20in\x20the\x20schema\x20will\x20OVERRIDE\x20the\x20file\x20content.');export const CallGuard_InputSchema=z['object']({'data':CallGuard_DataSchema['describe']('Guard\x20data\x20definition.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('On-chain\x20Guard\x20creation\x20input\x20wrapper.\x20Contains\x20the\x20Guard\x20data\x20definition\x20and\x20optional\x20environment\x20settings.');export const CallGenPassport_InputSchema=z['object']({'guard':z['union']([NameOrAddressSchema,z['array'](NameOrAddressSchema)])['describe']('Guard\x20object\x20ID(s)\x20to\x20verify\x20and\x20generate\x20passport\x20from.\x20Can\x20be\x20a\x20single\x20guard\x20(string)\x20or\x20multiple\x20guards\x20(array\x20of\x20strings).\x20Supports\x20guard\x20names\x20or\x20addresses.'),'info':SubmissionCallSchema['optional']()['describe']('Optional\x20submission\x20data.\x20If\x20not\x20provided,\x20will\x20attempt\x20to\x20get\x20existing\x20submissions\x20from\x20the\x20guard.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Generate\x20a\x20new\x20Passport\x20object\x20after\x20Guard\x20verification\x20succeeds.\x20The\x20Passport\x20is\x20an\x20immutable\x20on-chain\x20object\x20that\x20can\x20be\x20used\x20for\x20offline\x20friend\x20verification,\x20transaction\x20condition\x20verification,\x20etc.\x20Supports\x20verifying\x20multiple\x20guards\x20at\x20once.');export const Guard2File_InputSchema=z['object']({'guard':NameOrAddressSchema['describe']('Guard\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'network':EntrypointSchema['optional']()['describe']('Network\x20to\x20read\x20the\x20Guard\x20from:\x20\x27localnet\x27\x20|\x20\x27mainnet\x27\x20|\x20\x27testnet\x27.\x20If\x20omitted,\x20the\x20SDK\x27s\x20current\x20default\x20network\x20is\x20used\x20(check\x20via\x20wowok_buildin_info\x20info=\x27current\x20network\x27);\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20so\x20an\x20export\x20can\x20never\x20be\x20silently\x20read\x20from\x20the\x20wrong\x20chain.'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Guard\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Guard\x20objects.');export const Guard2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'guard':z['string']()['describe']('Guard\x20object\x20ID\x20that\x20was\x20exported'),'network':z['string']()['describe']('Network\x20the\x20Guard\x20was\x20READ\x20from\x20(resolved\x20—\x20the\x20SDK\x20default\x20when\x20the\x20input\x20omitted\x20\x27network\x27)')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('Guard2File\x20operation\x20output\x20schema\x20with\x20discriminator');export const Guard2File_OutputWrappedSchema=z['object']({'result':Guard2File_OutputSchema})['strict']()['describe']('Guard2File\x20operation\x20output\x20wrapped\x20schema');
@@ -1 +1 @@
1
- import{ResponseData,LocalMark,enrichMoveError}from'@wowok/wowok';import{classifyError,normalizeErrorMessage,buildSemantic}from'./semantic.js';import{buildReceipt}from'./receipt.js';import{recover,resetAttempts}from'../../harness/recover.js';import{verify,recordCoverageGap}from'../../harness/verify.js';function applySchemaWarning(a,b){const c=b?.['schema_check'];if(!c||c['warnings']['length']===0x0&&c['errors']['length']===0x0)return a;const d=[...c['warnings'],...c['errors']];let e=a['semantic'];e&&d['length']>0x0&&(e={...e,'warnings':[...e['warnings']||[],...d]});const f={'compatible':c['compatible'],'warnings':d,'client_version':c['client_version'],'server_versions':c['versions']};return{...a,'semantic':e,'schema_warning':f};}function convertBigInts(a){if(typeof a==='bigint')return a['toString']();if(Array['isArray'](a))return a['map'](convertBigInts);if(a instanceof Map){const b={};for(const [c,d]of a)b[String(c)]=convertBigInts(d);return b;}if(a instanceof Set)return Array['from'](a)['map'](convertBigInts);if(a&&typeof a==='object'){const e={};for(const f of Object['keys'](a))e[f]=convertBigInts(a[f]);return e;}return a;}function safeTextJson(a,b){try{return JSON['stringify'](a);}catch(c){return'WARNING:\x20the\x20operation\x20EXECUTED\x20on-chain\x20but\x20its\x20response\x20body\x20failed\x20to\x20serialize\x20'+('('+(c?.['message']??'unknown\x20serialization\x20error')+').\x20Do\x20NOT\x20retry\x20—\x20judge\x20the\x20')+'outcome\x20by\x20the\x20transaction\x20digest\x20instead:\x20query\x20it\x20or\x20re-read\x20the\x20target\x20object.\x20'+('digest:\x20'+(b??'n/a'));}}function recoveryOperationId(a){return a?.['operation_id']??a?.['operation_type']??'call';}function failureDiagnosis(a,b,c,d){return verify({'expected':a,'actual':{'result_type':b['kind'],'error_code':c,'error':d}});}function recordSuccessCoverageGap(a,b,c){const d=verify({'expected':a,'actual':{'result_type':'transaction','semantic':b}});recordCoverageGap(d,{'operation_type':c['operation_type']});}function buildSubmissionTemplate(a){const b=a,c=b?.['submission']??[];if(!Array['isArray'](c)||c['length']===0x0)return undefined;const d=Array['isArray'](b?.['guard'])&&b['guard']['length']>0x0?b['guard']:c['map'](f=>({'object':f['guard'],'impack':!![]})),e=c['map'](f=>({'guard':f['guard'],'submission':(Array['isArray'](f['submission'])?f['submission']:[])['map'](h=>{const i=h?.['value_type']??'Address',j=h?.['object_type']?String(h['object_type']):i;return{'identifier':h?.['identifier'],'name':h?.['name']??'','b_submission':!![],'value_type':i,'value':'<'+j+'\x20—\x20see\x20required_fields>'};})}));return{'submission_template':{'type':'submission','guard':d,'submission':e}};}export function handleCallResult(a,b){const c=convertBigInts(a),d=buildReceipt(c);if(d['kind']==='error'){const g=enrichMoveError(normalizeErrorMessage(d['error'])),h=classifyError(g),i={'outcome':'failed','message':'Error:\x20'+g,'result':{'type':'error','error':g,'error_code':h['error_code'],'retryable':h['retryable'],'recovery_hint':h['recovery_hint']},'recovery':recover(h['error_code']??'unknown',recoveryOperationId(b)),'diagnosis':b?.['expected']?failureDiagnosis(b['expected'],d,h['error_code'],g):undefined},j=applySchemaWarning(i,b);return{'content':[{'type':'text','text':j['message']}],'structuredContent':j};}if(d['kind']==='transaction'){const k=ResponseData(c);if(!d['executed']){const q=enrichMoveError(normalizeErrorMessage(d['txError'])||d['txStatus']||'unknown\x20error'),s=classifyError(q),t={'outcome':'failed','message':'Transaction\x20failed:\x20'+q,'result':{'type':'error','error':q,'error_code':s['error_code'],'retryable':s['retryable'],'recovery_hint':s['recovery_hint']},'recovery':recover(s['error_code']??'unknown',recoveryOperationId(b)),'diagnosis':b?.['expected']?failureDiagnosis(b['expected'],d,s['error_code'],q):undefined},u=applySchemaWarning(t,b);return{'content':[{'type':'text','text':u['message']},{'type':'text','text':safeTextJson(k,d['digest'])}],'structuredContent':u};}resetAttempts(recoveryOperationId(b));const l=b?.['response_level']==='full',m=k['filter'](v=>v?.['change']==='created'),n={'outcome':'executed','message':'Transaction\x20completed\x20successfully','result':l?{'type':'transaction',...c}:{'type':'transaction','digest':c['digest'],'created':m},'semantic':buildSemantic(d,b)};b?.['expected']&&recordSuccessCoverageGap(b['expected'],n['semantic'],b);const o=applySchemaWarning(n,b),p=l?safeTextJson(k,d['digest']):'Transaction\x20executed\x20(compact\x20response):\x20digest\x20'+(d['digest']??'')+';\x20created\x20'+m['length']+'\x20object(s).\x20Call\x20again\x20with\x20response_level:\x27full\x27\x20to\x20include\x20the\x20complete\x20raw\x20result.';return{'content':[{'type':'text','text':o['message']},{'type':'text','text':p}],'structuredContent':o};}if(d['kind']==='submission'){const v=c?.['submission'],w=Array['isArray'](v)&&v['length']===0x0,x=c?.['guards'],y=w?{'outcome':'pending_input','message':'GUARD\x20EVALUATED\x20FALSE\x20—\x20the\x20condition\x20did\x20not\x20hold.\x20This\x20is\x20NOT\x20a\x20missing-data\x20problem:\x20the\x20Guard\x20table\x20'+'required\x20no\x20submission,\x20so\x20the\x20expression\x20itself\x20returned\x20false.\x20Do\x20NOT\x20retry\x20the\x20same\x20call.','result':{'type':'guard_result','guard_result':![],'guards':x??[],...c},'semantic':b?{'intent':'guard_evaluated_false','status':'pending_input','summary':'Guard\x20expression\x20evaluated\x20to\x20false\x20('+(x??[])['length']+'\x20guard(s)\x20checked)\x20—\x20fix\x20the\x20condition,\x20the\x20object\x20binding,\x20or\x20the\x20on-chain\x20state;\x20do\x20not\x20resubmit\x20the\x20same\x20call','next_actions':[{'action':'Inspect\x20the\x20Guard\x20expression\x20with\x20analyze_guard_semantics\x20(tree\x20+\x20JSON\x20+\x20mermaid)\x20to\x20see\x20WHICH\x20sub-condition\x20is\x20false','reason':'A\x20composite\x20Guard\x20can\x20fail\x20on\x20any\x20operand;\x20the\x20object-level\x20report\x20cannot\x20tell\x20you\x20which','tool':'guard.operate\x20/\x20analyze_guard_semantics','priority':'required'},{'action':'Verify\x20the\x20Guard\x20is\x20bound\x20to\x20THIS\x20order/service\x20—\x20an\x20address\x20constant\x20for\x20another\x20listing\x20makes\x20every\x20condition\x20false','reason':'Hit\x20twice\x20on\x20testnet:\x20a\x20Guard\x20carried\x20a\x20constant\x20address\x20belonging\x20to\x20a\x20different\x20Service','tool':'onchain_objects','priority':'required'},{'action':'Re-read\x20the\x20referenced\x20state\x20with\x20a\x20FORCED-FRESH\x20query\x20before\x20concluding\x20the\x20chain\x20state\x20is\x20wrong','reason':'A\x20cached\x20read\x20can\x20show\x20a\x20pre-transaction\x20value\x20and\x20make\x20a\x20satisfied\x20condition\x20look\x20false','tool':'query_toolkit\x20(onchain_objects,\x20omit\x20no_cache)','priority':'recommended'}]}:undefined}:{'outcome':'pending_input','message':'SUBMISSION\x20REQUIRED\x20—\x20the\x20Guard\x20needs\x20data\x20you\x20have\x20not\x20supplied\x20yet.\x20Retry\x20with\x20the\x20listed\x20values.','result':{'type':'submission',...c,...buildSubmissionTemplate(c)??{}},'semantic':b?{'intent':'guard_submission_required','status':'pending_input','summary':'Guard\x20verification\x20required\x20—\x20fill\x20the\x20submission\x20data\x20and\x20resubmit','next_actions':[{'action':'fill\x20guard\x20submission\x20data\x20and\x20resubmit\x20via\x20call_with_submission','reason':'Guard\x20rejected\x20the\x20call;\x20submission\x20must\x20satisfy\x20the\x20Guard\x20table\x20requirements','tool':'onchain_operations\x20(with\x20submission\x20field)','priority':'required'}]}:undefined},z=applySchemaWarning(y,b);return{'content':[{'type':'text','text':z['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':z};}if(Array['isArray'](c)){const A={'outcome':'executed','message':'Operation\x20completed','result':{'type':'data','data':c}},B=applySchemaWarning(A,b);return{'content':[{'type':'text','text':B['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':B};}if(c===undefined||c===null){const C={'outcome':'executed','message':'Operation\x20completed','result':{'type':'null'}},D=applySchemaWarning(C,b);return{'content':[{'type':'text','text':D['message']}],'structuredContent':D};}const e={'outcome':'executed','message':'Operation\x20completed','result':{'type':'transaction',...c},'semantic':buildSemantic(d,b)},f=applySchemaWarning(e,b);return{'content':[{'type':'text','text':f['message']}],'structuredContent':f};}export function createServerConfig(a,b){return{'name':a['name'],'version':a['version'],'description':b||a['description']};}export function createCapabilitiesConfig(){return{'capabilities':{'prompts':{},'resources':{},'tools':{'listChanged':!![]},'logging':{}}};}export function createToolMeta(a,b){return{'author':'WOWOK\x20Team','createdAt':'2026-02-01','lastUpdated':'2026-02-01','category':a,'tags':b,'requiresAuth':![]};}export function createToolAnnotations(a=![],b=![]){return{'readOnlyHint':a,'destructiveHint':b,'idempotentHint':!![],'openWorldHint':![]};}export async function transformSubmission(a){if(!a)return undefined;const b=(a['guard']||[])['map'](h=>h['object'])['filter'](Boolean),c=(a['submission']||[])['map'](h=>h['guard'])['filter'](Boolean),d=[...new Set([...b,...c])],e=d['length']>0x0?await LocalMark['Instance']()['get_many_address'](d):[],f=new Map();d['forEach']((h,i)=>{const j=e[i];j&&f['set'](h,j);});const g=h=>{if(f['has'](h))return f['get'](h);for(const [i,j]of f['entries']()){if(i===h)return j;}if(h['startsWith']('0x')&&h['length']===0x42)return h;throw new Error('Guard\x20name\x20or\x20address\x20not\x20found:\x20'+h);};return{'type':'submission','guard':(a['guard']||[])['map'](h=>({'object':g(h['object']),'impack':h['impack']||![]})),'submission':(a['submission']||[])['map'](h=>({'guard':g(h['guard']),'submission':h['submission']||[]}))};}export function validateInput(a,b){return b['parse'](a);}export function getEnvConfig(a){return a??{};}
1
+ import{ResponseData,LocalMark,enrichMoveError}from'@wowok/wowok';import{classifyError,normalizeErrorMessage,buildSemantic}from'./semantic.js';import{buildReceipt}from'./receipt.js';import{recover,resetAttempts}from'../../harness/recover.js';import{verify,recordCoverageGap}from'../../harness/verify.js';function applySchemaWarning(a,b){const c=b?.['schema_check'];if(!c||c['warnings']['length']===0x0&&c['errors']['length']===0x0)return a;const d=[...c['warnings'],...c['errors']];let e=a['semantic'];e&&d['length']>0x0&&(e={...e,'warnings':[...e['warnings']||[],...d]});const f={'compatible':c['compatible'],'warnings':d,'client_version':c['client_version'],'server_versions':c['versions']};return{...a,'semantic':e,'schema_warning':f};}function convertBigInts(a){if(typeof a==='bigint')return a['toString']();if(Array['isArray'](a))return a['map'](convertBigInts);if(a instanceof Map){const b={};for(const [c,d]of a)b[String(c)]=convertBigInts(d);return b;}if(a instanceof Set)return Array['from'](a)['map'](convertBigInts);if(a&&typeof a==='object'){const e={};for(const f of Object['keys'](a))e[f]=convertBigInts(a[f]);return e;}return a;}function safeTextJson(a,b){try{return JSON['stringify'](a);}catch(c){return'WARNING:\x20the\x20operation\x20EXECUTED\x20on-chain\x20but\x20its\x20response\x20body\x20failed\x20to\x20serialize\x20'+('('+(c?.['message']??'unknown\x20serialization\x20error')+').\x20Do\x20NOT\x20retry\x20—\x20judge\x20the\x20')+'outcome\x20by\x20the\x20transaction\x20digest\x20instead:\x20query\x20it\x20or\x20re-read\x20the\x20target\x20object.\x20'+('digest:\x20'+(b??'n/a'));}}function recoveryOperationId(a){return a?.['operation_id']??a?.['operation_type']??'call';}function failureDiagnosis(a,b,c,d){return verify({'expected':a,'actual':{'result_type':b['kind'],'error_code':c,'error':d}});}function recordSuccessCoverageGap(a,b,c){const d=verify({'expected':a,'actual':{'result_type':'transaction','semantic':b}});recordCoverageGap(d,{'operation_type':c['operation_type']});}function buildSubmissionTemplate(a){const b=a,c=b?.['submission']??[];if(!Array['isArray'](c)||c['length']===0x0)return undefined;const d=Array['isArray'](b?.['guard'])&&b['guard']['length']>0x0?b['guard']:c['map'](f=>({'object':f['guard'],'impack':!![]})),e=c['map'](f=>({'guard':f['guard'],'submission':(Array['isArray'](f['submission'])?f['submission']:[])['map'](h=>{const i=h?.['value_type']??'Address',j=h?.['object_type']?String(h['object_type']):i;return{'identifier':h?.['identifier'],'name':h?.['name']??'','b_submission':!![],'value_type':i,'value':'<'+j+'\x20—\x20see\x20required_fields>'};})}));return{'submission_template':{'type':'submission','guard':d,'submission':e}};}export function handleCallResult(a,b){const c=convertBigInts(a),d=buildReceipt(c);if(d['kind']==='error'){const g=enrichMoveError(normalizeErrorMessage(d['error'])),h=classifyError(g),i={'outcome':'failed','message':'Error:\x20'+g,'result':{'type':'error','error':g,'error_code':h['error_code'],'retryable':h['retryable'],'recovery_hint':h['recovery_hint']},'recovery':recover(h['error_code']??'unknown',recoveryOperationId(b)),'diagnosis':b?.['expected']?failureDiagnosis(b['expected'],d,h['error_code'],g):undefined},j=applySchemaWarning(i,b);return{'content':[{'type':'text','text':j['message']}],'structuredContent':j};}if(d['kind']==='transaction'){const k=ResponseData(c);if(!d['executed']){const q=enrichMoveError(normalizeErrorMessage(d['txError'])||d['txStatus']||'unknown\x20error'),s=classifyError(q),t={'outcome':'failed','message':'Transaction\x20failed:\x20'+q,'result':{'type':'error','error':q,'error_code':s['error_code'],'retryable':s['retryable'],'recovery_hint':s['recovery_hint']},'recovery':recover(s['error_code']??'unknown',recoveryOperationId(b)),'diagnosis':b?.['expected']?failureDiagnosis(b['expected'],d,s['error_code'],q):undefined},u=applySchemaWarning(t,b);return{'content':[{'type':'text','text':u['message']},{'type':'text','text':safeTextJson(k,d['digest'])}],'structuredContent':u};}resetAttempts(recoveryOperationId(b));const l=b?.['response_level']==='full',m=k['filter'](v=>v?.['change']==='created'),n={'outcome':'executed','message':'Transaction\x20completed\x20successfully','result':l?{'type':'transaction',...c}:{'type':'transaction','digest':c['digest'],'created':m},'semantic':buildSemantic(d,b)};b?.['expected']&&recordSuccessCoverageGap(b['expected'],n['semantic'],b);const o=applySchemaWarning(n,b),p=l?safeTextJson(k,d['digest']):'Transaction\x20executed\x20(compact\x20response):\x20digest\x20'+(d['digest']??'')+';\x20created\x20'+m['length']+'\x20object(s).\x20Call\x20again\x20with\x20response_level:\x27full\x27\x20to\x20include\x20the\x20complete\x20raw\x20result.';return{'content':[{'type':'text','text':o['message']},{'type':'text','text':p}],'structuredContent':o};}if(d['kind']==='submission'){const v=c?.['submission'],w=Array['isArray'](v)&&v['length']===0x0,x=c?.['guards'],y=w?{'outcome':'pending_input','message':'GUARD\x20EVALUATED\x20FALSE\x20—\x20the\x20condition\x20did\x20not\x20hold.\x20This\x20is\x20NOT\x20a\x20missing-data\x20problem:\x20the\x20Guard\x20table\x20'+'required\x20no\x20submission,\x20so\x20the\x20expression\x20itself\x20returned\x20false.\x20Do\x20NOT\x20retry\x20the\x20same\x20call.','result':{'type':'guard_result','guard_result':![],'guards':x??[],...c},'semantic':b?{'intent':'guard_evaluated_false','status':'pending_input','summary':'Guard\x20expression\x20evaluated\x20to\x20false\x20('+(x??[])['length']+'\x20guard(s)\x20checked)\x20—\x20fix\x20the\x20condition,\x20the\x20object\x20binding,\x20or\x20the\x20on-chain\x20state;\x20do\x20not\x20resubmit\x20the\x20same\x20call','next_actions':[{'action':'Inspect\x20the\x20Guard\x20expression\x20with\x20analyze_guard_semantics\x20(tree\x20+\x20JSON\x20+\x20mermaid)\x20to\x20see\x20WHICH\x20sub-condition\x20is\x20false','reason':'A\x20composite\x20Guard\x20can\x20fail\x20on\x20any\x20operand;\x20the\x20object-level\x20report\x20cannot\x20tell\x20you\x20which','tool':'guard.operate\x20/\x20analyze_guard_semantics','priority':'required'},{'action':'Verify\x20the\x20Guard\x20is\x20bound\x20to\x20THIS\x20order/service\x20—\x20an\x20address\x20constant\x20for\x20another\x20listing\x20makes\x20every\x20condition\x20false','reason':'Hit\x20twice\x20on\x20testnet:\x20a\x20Guard\x20carried\x20a\x20constant\x20address\x20belonging\x20to\x20a\x20different\x20Service','tool':'onchain_objects','priority':'required'},{'action':'Re-read\x20the\x20referenced\x20state\x20with\x20a\x20FORCED-FRESH\x20query\x20before\x20concluding\x20the\x20chain\x20state\x20is\x20wrong','reason':'A\x20cached\x20read\x20can\x20show\x20a\x20pre-transaction\x20value\x20and\x20make\x20a\x20satisfied\x20condition\x20look\x20false','tool':'query_toolkit\x20(onchain_objects,\x20omit\x20no_cache)','priority':'recommended'}]}:undefined}:{'outcome':'pending_input','message':'SUBMISSION\x20REQUIRED\x20—\x20the\x20Guard\x20needs\x20data\x20you\x20have\x20not\x20supplied\x20yet.\x20Retry\x20with\x20the\x20listed\x20values.','result':{'type':'submission',...c,...buildSubmissionTemplate(c)??{}},'semantic':b?{'intent':'guard_submission_required','status':'pending_input','summary':'Guard\x20verification\x20required\x20—\x20fill\x20the\x20submission\x20data\x20and\x20resubmit','next_actions':[{'action':'fill\x20guard\x20submission\x20data\x20and\x20resubmit\x20via\x20call_with_submission','reason':'Guard\x20rejected\x20the\x20call;\x20submission\x20must\x20satisfy\x20the\x20Guard\x20table\x20requirements','tool':'onchain_operations\x20(with\x20submission\x20field)','priority':'required'}]}:undefined},z=applySchemaWarning(y,b);return{'content':[{'type':'text','text':z['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':z};}if(Array['isArray'](c)){const A={'outcome':'executed','message':'Operation\x20completed','result':{'type':'data','data':c}},B=applySchemaWarning(A,b);return{'content':[{'type':'text','text':B['message']},{'type':'text','text':JSON['stringify'](c)}],'structuredContent':B};}if(c===undefined||c===null){const C={'outcome':'executed','message':'Operation\x20completed','result':{'type':'null'}},D=applySchemaWarning(C,b);return{'content':[{'type':'text','text':D['message']}],'structuredContent':D};}const e={'outcome':'executed','message':'Operation\x20completed','result':{'type':'transaction',...c},'semantic':buildSemantic(d,b)},f=applySchemaWarning(e,b);return{'content':[{'type':'text','text':f['message']}],'structuredContent':f};}export function createServerConfig(a,b){return{'name':a['name'],'version':a['version'],'description':b||a['description']};}export function createCapabilitiesConfig(){return{'capabilities':{'prompts':{},'resources':{},'tools':{'listChanged':!![]},'logging':{}}};}export function createToolMeta(a,b){return{'author':'WOWOK\x20Team','createdAt':'2026-02-01','lastUpdated':'2026-02-01','category':a,'tags':b,'requiresAuth':![]};}export function createToolAnnotations(a=![],b=![]){return{'readOnlyHint':a,'destructiveHint':b,'idempotentHint':!![],'openWorldHint':![]};}export async function transformSubmission(a){if(!a)return undefined;const b=(a['guard']||[])['map'](h=>h['object'])['filter'](Boolean),c=(a['submission']||[])['map'](h=>h['guard'])['filter'](Boolean),d=[...new Set([...b,...c])],e=d['length']>0x0?await LocalMark['Instance']()['get_many_address'](d):[],f=new Map();d['forEach']((h,i)=>{const j=e[i];j&&f['set'](h,j);});const g=h=>{if(typeof h!=='string')throw new Error('Guard\x20reference\x20must\x20be\x20a\x20string\x20(got\x20'+(h===undefined?'undefined':typeof h)+')');if(f['has'](h))return f['get'](h);for(const [i,j]of f['entries']()){if(i===h)return j;}if(h['startsWith']('0x'))return h;throw new Error('Guard\x20name\x20or\x20address\x20not\x20found:\x20'+h);};return{'type':'submission','guard':(a['guard']||[])['map'](h=>({'object':g(h['object']),'impack':h['impack']||![]})),'submission':(a['submission']||[])['map'](h=>({'guard':g(h['guard']),'submission':h['submission']||[]}))};}export function validateInput(a,b){return b['parse'](a);}export function getEnvConfig(a){return a??{};}
@@ -711,6 +711,11 @@ export declare const MachineNode2File_InputSchema: z.ZodObject<{
711
711
  markdown: "markdown";
712
712
  json: "json";
713
713
  }>>>;
714
+ network: z.ZodOptional<z.ZodEnum<{
715
+ testnet: import("@wowok/wowok").ENTRYPOINT.Testnet;
716
+ localnet: import("@wowok/wowok").ENTRYPOINT.Localnet;
717
+ mainnet: import("@wowok/wowok").ENTRYPOINT.Mainnet;
718
+ }>>;
714
719
  env: z.ZodOptional<z.ZodObject<{
715
720
  account: z.ZodDefault<z.ZodOptional<z.ZodString>>;
716
721
  permission_guard: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -749,6 +754,7 @@ export declare const MachineNode2File_OutputSchema: z.ZodDiscriminatedUnion<[z.Z
749
754
  }>;
750
755
  machine_object: z.ZodString;
751
756
  node_count: z.ZodNumber;
757
+ network: z.ZodString;
752
758
  }, z.core.$strict>;
753
759
  }, z.core.$strict>, z.ZodObject<{
754
760
  status: z.ZodLiteral<"error">;
@@ -765,6 +771,7 @@ export declare const MachineNode2File_OutputWrappedSchema: z.ZodObject<{
765
771
  }>;
766
772
  machine_object: z.ZodString;
767
773
  node_count: z.ZodNumber;
774
+ network: z.ZodString;
768
775
  }, z.core.$strict>;
769
776
  }, z.core.$strict>, z.ZodObject<{
770
777
  status: z.ZodLiteral<"error">;
@@ -1 +1 @@
1
- import{z}from'zod';import{WithPermissionObjectSchema,NamedObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{MachineNodeSchema,MachineForwardSchema}from'../query/index.js';import{ManyAccountOrMark_AddressSchema,NameOrAddressSchema,NameSchema,NotEmptyNameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS,DescriptionSchema}from'../common/index.js';function gateNumber(a){if(a===null||a===undefined||a==='')return 0x0;const b=Number(a);return Number['isFinite'](b)?b:null;}export function machinePublishGateViolation(a){if(!Array['isArray'](a)||a['length']===0x0)return'The\x20Machine\x20has\x20no\x20nodes,\x20so\x20it\x20cannot\x20be\x20published\x20(E_EMPTY_MACHINE).\x20'+'Publish\x20validates\x20the\x20whole\x20graph:\x20add\x20at\x20least\x20one\x20node,\x20including\x20the\x20first\x20node\x20carrying\x20the\x20'+'entry\x20pair\x20(prev_node:\x20\x22\x22)\x20that\x20Progress\x20starts\x20from\x20—\x20send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20'+'(bReplace:true,\x20or\x20op:\x22set\x22),\x20because\x20the\x20graph\x20is\x20frozen\x20the\x20moment\x20publish\x20succeeds.';const b=a,c=new Set(b['map'](e=>e?.['name'])['filter'](e=>typeof e==='string'));let d=![];for(const e of b){const f=Array['isArray'](e?.['pairs'])?e['pairs']:[],g=typeof e?.['name']==='string'?e['name']:'<unnamed\x20node>';for(const h of f){const i=typeof h?.['prev_node']==='string'?h['prev_node']:null,j=Array['isArray'](h?.['forwards'])?h['forwards']:[];if(i===''){if(j['length']===0x0)return'The\x20entry\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20(prev_node:\x20\x22\x22)\x20carries\x20no\x20forward\x20(E_EMPTY_ENTRY_PAIR).\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20\x22\x22\x20and\x20can\x20only\x20leave\x20it\x20through\x20an\x20entry\x20forward,\x20so\x20'+'every\x20order\x20on\x20this\x20Machine\x20would\x20be\x20stuck\x20forever.\x20Add\x20at\x20least\x20one\x20forward\x20to\x20that\x20pair.\x20Do\x20NOT\x20'+'delete\x20the\x20entry\x20pair\x20to\x20silence\x20this\x20—\x20a\x20Machine\x20with\x20no\x20entry\x20edge\x20fails\x20the\x20sibling\x20check\x20instead\x20'+'(E_NO_ENTRY_EDGE).';d=!![];}else{if(i!==null&&!c['has'](i))return'The\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20declares\x20prev_node\x20\x22'+i+'\x22,\x20which\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine\x20'+'(E_EDGE_SOURCE_NOT_FOUND)\x20—\x20that\x20edge\x20is\x20unreachable\x20and\x20its\x20source\x20node\x20can\x20never\x20be\x20entered.\x20'+'Fix\x20the\x20name,\x20or\x20add\x20the\x20missing\x20source\x20node.\x20Mind\x20the\x20direction\x20convention:\x20the\x20pair\x20belongs\x20to\x20'+'the\x20node\x20being\x20advanced\x20INTO,\x20with\x20prev_node\x20naming\x20the\x20node\x20it\x20comes\x20from\x20(the\x20entry\x20edge\x20is\x20the\x20'+'one\x20with\x20the\x20EMPTY\x20prev_node).\x20Export\x20the\x20current\x20graph\x20with\x20machineNode2file\x20before\x20editing.';}let k=0x0;for(const m of j){const n=m?.['namedOperator']!==undefined&&m?.['namedOperator']!==null,o=m?.['permissionIndex']!==undefined&&m?.['permissionIndex']!==null;if(!n&&!o)return'Forward\x20\x22'+(m?.['name']??'<unnamed>')+'\x22\x20of\x20node\x20\x22'+g+'\x22\x20names\x20no\x20operator\x20'+'(E_FORWARD_NO_IDENTITY),\x20so\x20nobody\x20can\x20be\x20authorized\x20to\x20execute\x20it\x20and\x20the\x20Machine\x20cannot\x20be\x20'+'published.\x20Set\x20namedOperator\x20(use\x20\x22\x22\x20for\x20the\x20order\x20payer,\x20or\x20a\x20Progress\x20operator\x20namespace)\x20or\x20'+'permissionIndex\x20(a\x20USER_DEFINED\x20index\x20>=\x201000).\x20A\x20guard\x20does\x20NOT\x20satisfy\x20this:\x20it\x20is\x20a\x20'+'post-verification\x20check,\x20not\x20an\x20identity.';const p=gateNumber(m?.['weight']);if(p!==null)k+=p;}const l=gateNumber(h?.['threshold']);if(l!==null&&k<l){const q=i===''?'entry\x20->\x20'+g:i+'\x20->\x20'+g;return'Pair\x20('+q+')\x20can\x20never\x20migrate:\x20its\x20threshold\x20('+l+')\x20is\x20greater\x20than\x20the\x20sum\x20of\x20its\x20'+('forward\x20weights\x20('+k+')\x20(E_UNREACHABLE_THRESHOLD).\x20Each\x20forward\x20contributes\x20its\x20weight\x20AT\x20')+'MOST\x20ONCE\x20—\x20it\x20is\x20locked\x20by\x20the\x20first\x20operator\x20who\x20accomplishes\x20it,\x20and\x20a\x20second\x20operator\x20re-running\x20'+'it\x20aborts\x20E_NOT_THE_HOLDER\x20—\x20so\x20the\x20reachable\x20maximum\x20is\x20the\x20sum\x20of\x20the\x20DISTINCT\x20forward\x20weights.\x20'+'Lower\x20the\x20threshold,\x20or\x20add\x20one\x20distinct\x20forward\x20per\x20contributing\x20operator\x20(threshold\x202\x20->\x20begin_a\x20+\x20'+'begin_b,\x20each\x20weight\x201).\x20Never\x20try\x20to\x20reach\x20a\x20high\x20threshold\x20by\x20re-running\x20one\x20forward\x20repeatedly.';}}}if(!d)return'The\x20Machine\x20has\x20no\x20entry\x20edge\x20(E_NO_ENTRY_EDGE)\x20—\x20no\x20node\x20declares\x20a\x20pair\x20with\x20prev_node:\x20\x22\x22,\x20so\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20and\x20has\x20no\x20edge\x20to\x20advance\x20on.\x20Add\x20the\x20entry\x20pair\x20to\x20your\x20'+'first\x20node:\x20pairs:[{prev_node:\x22\x22,\x20forwards:[{name:\x22start\x22,\x20weight:1,\x20namedOperator:\x22\x22}]}].\x20The\x20fix\x20must\x20'+'land\x20BEFORE\x20publish\x20—\x20machineNode2file\x20exports\x20the\x20current\x20graph\x20so\x20you\x20can\x20diff\x20it\x20against\x20the\x20fixed\x20one.';return null;}function validateEntryForward(a){for(const b of a){if(!b['pairs'])continue;for(const c of b['pairs']){if(c['prev_node']==='')return!![];}}return![];}const ENTRY_FORWARD_ERROR_MESSAGE='Machine\x20has\x20no\x20entry\x20forward.\x20At\x20least\x20one\x20node\x20must\x20have\x20a\x20pair\x20with\x20prev_node=\x22\x22\x20(empty\x20string),\x20'+'which\x20defines\x20how\x20Progress\x20advances\x20from\x20the\x20initial\x20state\x20(current=\x22\x22)\x20to\x20the\x20first\x20node.\x20'+'Without\x20an\x20entry\x20forward,\x20the\x20workflow\x20will\x20be\x20permanently\x20stuck.\x20'+'Example:\x20{name:\x20\x27Subscribed\x27,\x20pairs:\x20[{prev_node:\x20\x27\x27,\x20forwards:\x20[{name:\x20\x27Subscribe\x27,\x20weight:\x201}]}]}';export const ProgressNamedOperatorSchema=z['object']({'op':z['union']([z['literal']('add'),z['literal']('set'),z['literal']('remove')]),'name':NotEmptyNameSchema,'operators':ManyAccountOrMark_AddressSchema})['strict']();export const ProgressNewSchema=z['object']({'task':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Task\x20bound\x20to\x20the\x20Progress\x20object.\x20It\x20is\x20an\x20object\x20ID\x20or\x20name'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20Progress\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Add,\x20set,\x20and\x20remove\x20operators\x20for\x20the\x20permission\x20namespace\x20of\x20the\x20Progress\x20object.'),'namedNew':NamedObjectSchema['optional']()})['strict']();export const NodeAddForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward':z['array'](MachineForwardSchema)['describe']('List\x20of\x20operations\x20between\x20the\x20previous\x20and\x20next\x20nodes.'),'threshold':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['optional']()['describe']('Threshold\x20of\x20operations\x20that\x20need\x20to\x20be\x20completed\x20to\x20migrate\x20from\x20the\x20previous\x20node\x20to\x20the\x20next\x20node.')})['strict']();export const NodeRemoveForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward_name':z['array'](NameSchema)['describe']('List\x20of\x20operation\x20names\x20to\x20delete.')})['strict']();export const NodeRemovePriorNodeDataSchema=z['object']({'prior_node_name':z['array'](NameSchema)['describe']('List\x20of\x20previous\x20node\x20names\x20to\x20delete.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.')})['strict']();export const NodeSchema=z['discriminatedUnion']('op',[z['object']({'op':z['literal']('add'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Add\x20nodes.'),z['object']({'op':z['literal']('set'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Set\x20nodes.'),z['object']({'op':z['literal']('remove'),'nodes':z['array'](NameSchema)['describe']('List\x20of\x20node\x20names\x20to\x20delete.')})['strict']()['describe']('Delete\x20nodes.'),z['object']({'op':z['literal']('clear')})['strict']()['describe']('Clear\x20all\x20nodes.'),z['object']({'op':z['literal']('exchange'),'node_one':NameSchema['describe']('Name\x20of\x20the\x20first\x20node.'),'node_other':NameSchema['describe']('Name\x20of\x20the\x20second\x20node.')})['strict']()['describe']('Exchange\x20the\x20positions\x20of\x20two\x20nodes.'),z['object']({'op':z['literal']('rename'),'node_name_old':NameSchema['describe']('Name\x20of\x20thenode.'),'node_name_new':NameSchema['describe']('New\x20name\x20of\x20the\x20node.')})['strict']()['describe']('Rename\x20node.'),z['object']({'op':z['literal']('remove\x20prior\x20node'),'pairs':z['array'](NodeRemovePriorNodeDataSchema)['describe']('List\x20of\x20previous-next\x20node\x20pairs\x20to\x20delete.')})['strict']()['describe']('Delete\x20previous-next\x20node\x20pairs.'),z['object']({'op':z['literal']('add\x20forward'),'data':z['array'](NodeAddForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20add.')})['strict']()['describe']('Add\x20operations.'),z['object']({'op':z['literal']('remove\x20forward'),'data':z['array'](NodeRemoveForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20delete.')})['strict']()['describe']('Delete\x20operations.')])['superRefine']((a,b)=>{(a['op']==='add'||a['op']==='set')&&a['bReplace']===!![]&&(!validateEntryForward(a['nodes'])&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':ENTRY_FORWARD_ERROR_MESSAGE}));});export const NodeJsonOrMarkdownFileSchema=z['object']({'json_or_markdown_file':z['string']()['describe']('Path\x20to\x20a\x20JSON\x20or\x20Markdown\x20file\x20containing\x20node\x20array\x20for\x20COMPLETE\x20REPLACEMENT\x20of\x20all\x20nodes.\x0a\x0a**File\x20Format\x20Requirements:**\x0a-\x20Must\x20contain\x20a\x20JSON\x20ARRAY\x20of\x20node\x20objects:\x20[{\x22name\x22:\x20\x22...\x22,\x20\x22pairs\x22:\x20[...]},\x20{...}]\x0a-\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field\x20(use\x20NodeSchema\x20for\x20operations)\x0a-\x20Supports\x20JSON\x20or\x20Markdown\x20(with\x20```json\x20code\x20blocks)\x0a\x0a**Node\x20Structure:**\x0aEach\x20node\x20is\x20a\x20directed\x20graph\x20element\x20representing\x20a\x20workflow\x20STATE\x20that\x20an\x20order\x0acan\x20rest\x20in.\x20Its\x20Pairs\x20are\x20the\x20INCOMING\x20edges\x20—\x20this\x20is\x20the\x20one\x20convention\x20the\x0achain\x20enforces,\x20and\x20getting\x20it\x20backwards\x20silently\x20builds\x20a\x20wrong\x20graph:\x0a-\x20name:\x20Node\x20identifier\x20—\x20the\x20DESTINATION\x20of\x20every\x20pair\x20it\x20owns\x0a-\x20role:\x20(optional)\x20business\x20role\x20tag\x20for\x20display\x20layers\x20—\x20one\x20of\x20draft/active/delivered/final/cancelled.\x20SESSION\x20METADATA\x20ONLY\x20(not\x20stored\x20on-chain;\x20echoed\x20back\x20as\x20a\x20NODE\x20ROLES\x20warning)\x0a-\x20pairs:\x20Array\x20of\x20{prev_node,\x20forwards,\x20threshold}\x20—\x20edges\x20ENTERING\x20this\x20node.\x20The\x20key\x20is\x20`prev_node`;\x20`prior_node`\x20is\x20not\x20recognized\x20and\x20is\x20silently\x20dropped.\x0a-\x20forwards:\x20Operations\x20that\x20advance\x20INTO\x20this\x20node\x20FROM\x20its\x20prev_node\x20(NOT\x20operations\x20available\x20from\x20this\x20node)\x0a-\x20threshold:\x20Weight\x20required\x20to\x20migrate\x20into\x20this\x20node\x20along\x20that\x20pair\x0a\x0aDiagram\x20`A\x20--[Go]-->\x20B`\x20therefore\x20lives\x20in\x20node\x20**B**:\x20{name:\x22B\x22,\x20pairs:[{prev_node:\x22A\x22,\x20forwards:[{name:\x22Go\x22,\x20weight:1}]}]}.\x0a\x0a**Forward\x20names\x20must\x20determine\x20the\x20destination.**\x20`next_node`\x20is\x20a\x20CALLER\x20argument\x0a(progress.move:540)\x20and\x20the\x20chain\x20resolves\x20(current,\x20next_node,\x20forward)\x20inside\x20the\x0adestination\x20node\x20(machine.move:275),\x20so\x20one\x20forward\x20name\x20shared\x20by\x20two\x20destinations\x0afrom\x20the\x20same\x20prev_node\x20is\x20legal\x20and\x20lets\x20the\x20caller\x20pick\x20the\x20outcome\x20—\x20including\x0awhether\x20a\x20refund\x20Allocator\x20ever\x20fires.\x20Give\x20each\x20destination\x20its\x20own\x20forward\x20name.\x0a\x0a**Behavior:**\x0a-\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes\x20(equivalent\x20to\x20\x22set\x22\x20with\x20bReplace=true)\x0a-\x20Auto-detects\x20format\x20based\x20on\x20file\x20content\x0a-\x20If\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information')})['strict']();export const NodeFieldSchema=z['union']([NodeSchema,NodeJsonOrMarkdownFileSchema]);export const CallMachine_DataSchema=z['object']({'object':WithPermissionObjectSchema,'progress_new':ProgressNewSchema['optional']()['describe']('Generate\x20new\x20Progress\x20object.'),'description':DescriptionSchema['optional']()['describe']('Description\x20of\x20the\x20object.'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'node':NodeFieldSchema['optional']()['describe']('CRITICAL:\x20Choose\x20ONE\x20of\x20two\x20mutually\x20exclusive\x20modes:\x0a\x0a**Mode\x201:\x20NodeSchema\x20(incremental\x20operations)**\x0aUse\x20for\x20partial\x20modifications:\x20add,\x20set,\x20remove,\x20clear,\x20exchange,\x20rename,\x20remove\x20prior\x20node,\x20add\x20forward,\x20remove\x20forward.\x0aFormat:\x20{\x20\x22op\x22:\x20\x22add\x22,\x20\x22nodes\x22:\x20[...],\x20\x22bReplace\x22:\x20false\x20}\x0aThis\x20mode\x20modifies\x20existing\x20nodes\x20incrementally.\x0a\x0a**Mode\x202:\x20NodeJsonOrMarkdownFileSchema\x20(complete\x20replacement)**\x0aUse\x20for\x20complete\x20node\x20redefinition\x20from\x20file.\x0aFormat:\x20{\x20\x22json_or_markdown_file\x22:\x20\x22/path/to/nodes.json\x22\x20}\x0aIMPORTANT:\x20This\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes.\x20File\x20must\x20contain\x20node\x20array\x20[{...},\x20{...}],\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field.\x0aSupported\x20formats:\x20JSON\x20array\x20or\x20Markdown\x20with\x20code\x20blocks.\x0aIf\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20generating\x20new\x20Progress\x20objects.'),'publish':z['boolean']()['optional']()['describe']('Whether\x20to\x20publish\x20the\x20object.\x20After\x20the\x20object\x20is\x20published,\x20new\x20Progress\x20objects\x20can\x20be\x20generated;\x20and\x20node\x20settings\x20will\x20no\x20longer\x20be\x20changeable.\x20⚠️\x20PUBLISH\x20IS\x20A\x20ONE-WAY\x20DOOR\x20AND\x20THE\x20CHAIN\x20VALIDATES\x20THE\x20WHOLE\x20GRAPH\x20AT\x20THAT\x20MOMENT:\x20the\x20on-chain\x20publish\x20gate\x20rejects\x20a\x20Machine\x20that\x20is\x20empty,\x20has\x20no\x20entry\x20edge\x20(no\x20pair\x20with\x20prev_node:\x22\x22),\x20has\x20an\x20entry\x20pair\x20with\x20no\x20forward,\x20references\x20a\x20prev_node\x20that\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine,\x20carries\x20a\x20forward\x20with\x20neither\x20namedOperator\x20nor\x20permissionIndex\x20(a\x20guard\x20is\x20NOT\x20an\x20identity),\x20or\x20has\x20a\x20pair\x20whose\x20threshold\x20exceeds\x20the\x20sum\x20of\x20its\x20forward\x20weights\x20(each\x20forward\x20counts\x20at\x20most\x20once).\x20These\x20aborts\x20(machine:17-22)\x20fire\x20BEFORE\x20the\x20publish\x20lands,\x20so\x20the\x20graph\x20is\x20still\x20editable\x20—\x20but\x20after\x20it\x20succeeds,\x20nodes/forwards,\x20Guard\x20bindings\x20and\x20Service.machine\x20are\x20frozen\x20forever,\x20and\x20a\x20broken\x20graph\x20would\x20only\x20surface\x20at\x20the\x20first\x20transition\x20with\x20no\x20repair\x20path.\x20Send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20(bReplace:true\x20or\x20op:\x22set\x22)\x20so\x20the\x20complete\x20graph\x20is\x20validated\x20together.\x20⚠️\x20Before\x20publishing,\x20enumerate\x20the\x20graph\x20STOP\x20NODES\x20(nodes\x20with\x20no\x20outgoing\x20Pair)\x20plus\x20every\x20waiting\x20state\x20(review\x20window,\x20handover,\x20open\x20dispute)\x20and\x20verify\x20each\x20has\x20a\x20defined\x20fund\x20exit\x20in\x20the\x20Service\x20order_allocators\x20—\x20withdrawal\x20(release)\x20AND\x20refund.\x20Machine\x20+\x20Allocator\x20are\x20immutable\x20after\x20publish\x20(IMMUT-001);\x20an\x20uncovered\x20stop\x20node\x20strands\x20funds\x20permanently\x20(rule\x20R-M5-03,\x20checklist\x20pattern.fund_flow_stop_node_coverage).'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Machine\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']()['superRefine']((a,b)=>{if(a['publish']!==!![])return;const c=a['node'];if(!c||'json_or_markdown_file'in c)return;if(c['op']!=='add'&&c['op']!=='set')return;const d=typeof a['object']==='object'&&a['object']!==null;if(!d&&c['bReplace']!==!![])return;if(!Array['isArray'](c['nodes'])||c['nodes']['length']===0x0||typeof c['nodes'][0x0]!=='object')return;const e=machinePublishGateViolation(c['nodes']);e&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':e});})['describe']('On-chain\x20Machine\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Machine.\x20NOTE:\x20\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(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 CallMachine_InputSchema=z['object']({'data':CallMachine_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();export const MachineNode2File_InputSchema=z['object']({'machine':NameOrAddressSchema['describe']('Machine\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Machine\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20node\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Machine\x20objects.');export const MachineNode2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'machine_object':NameOrAddressSchema['describe']('Machine\x20object\x20ID'),'node_count':z['number']()['describe']('Number\x20of\x20nodes\x20exported')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('MachineNode2File\x20operation\x20output');export const MachineNode2File_OutputWrappedSchema=z['object']({'result':MachineNode2File_OutputSchema})['strict']()['describe']('MachineNode2File\x20operation\x20output\x20wrapped\x20schema');
1
+ import{z}from'zod';import{WithPermissionObjectSchema,NamedObjectSchema,ObjectsSchema,CallEnvSchema,SubmissionCallSchema}from'./base.js';import{MachineNodeSchema,MachineForwardSchema}from'../query/index.js';import{ManyAccountOrMark_AddressSchema,NameOrAddressSchema,NameSchema,NotEmptyNameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS,DescriptionSchema,EntrypointSchema}from'../common/index.js';function gateNumber(a){if(a===null||a===undefined||a==='')return 0x0;const b=Number(a);return Number['isFinite'](b)?b:null;}export function machinePublishGateViolation(a){if(!Array['isArray'](a)||a['length']===0x0)return'The\x20Machine\x20has\x20no\x20nodes,\x20so\x20it\x20cannot\x20be\x20published\x20(E_EMPTY_MACHINE).\x20'+'Publish\x20validates\x20the\x20whole\x20graph:\x20add\x20at\x20least\x20one\x20node,\x20including\x20the\x20first\x20node\x20carrying\x20the\x20'+'entry\x20pair\x20(prev_node:\x20\x22\x22)\x20that\x20Progress\x20starts\x20from\x20—\x20send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20'+'(bReplace:true,\x20or\x20op:\x22set\x22),\x20because\x20the\x20graph\x20is\x20frozen\x20the\x20moment\x20publish\x20succeeds.';const b=a,c=new Set(b['map'](e=>e?.['name'])['filter'](e=>typeof e==='string'));let d=![];for(const e of b){const f=Array['isArray'](e?.['pairs'])?e['pairs']:[],g=typeof e?.['name']==='string'?e['name']:'<unnamed\x20node>';for(const h of f){const i=typeof h?.['prev_node']==='string'?h['prev_node']:null,j=Array['isArray'](h?.['forwards'])?h['forwards']:[];if(i===''){if(j['length']===0x0)return'The\x20entry\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20(prev_node:\x20\x22\x22)\x20carries\x20no\x20forward\x20(E_EMPTY_ENTRY_PAIR).\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20\x22\x22\x20and\x20can\x20only\x20leave\x20it\x20through\x20an\x20entry\x20forward,\x20so\x20'+'every\x20order\x20on\x20this\x20Machine\x20would\x20be\x20stuck\x20forever.\x20Add\x20at\x20least\x20one\x20forward\x20to\x20that\x20pair.\x20Do\x20NOT\x20'+'delete\x20the\x20entry\x20pair\x20to\x20silence\x20this\x20—\x20a\x20Machine\x20with\x20no\x20entry\x20edge\x20fails\x20the\x20sibling\x20check\x20instead\x20'+'(E_NO_ENTRY_EDGE).';d=!![];}else{if(i!==null&&!c['has'](i))return'The\x20pair\x20of\x20node\x20\x22'+g+'\x22\x20declares\x20prev_node\x20\x22'+i+'\x22,\x20which\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine\x20'+'(E_EDGE_SOURCE_NOT_FOUND)\x20—\x20that\x20edge\x20is\x20unreachable\x20and\x20its\x20source\x20node\x20can\x20never\x20be\x20entered.\x20'+'Fix\x20the\x20name,\x20or\x20add\x20the\x20missing\x20source\x20node.\x20Mind\x20the\x20direction\x20convention:\x20the\x20pair\x20belongs\x20to\x20'+'the\x20node\x20being\x20advanced\x20INTO,\x20with\x20prev_node\x20naming\x20the\x20node\x20it\x20comes\x20from\x20(the\x20entry\x20edge\x20is\x20the\x20'+'one\x20with\x20the\x20EMPTY\x20prev_node).\x20Export\x20the\x20current\x20graph\x20with\x20machineNode2file\x20before\x20editing.';}let k=0x0;for(const m of j){const n=m?.['namedOperator']!==undefined&&m?.['namedOperator']!==null,o=m?.['permissionIndex']!==undefined&&m?.['permissionIndex']!==null;if(!n&&!o)return'Forward\x20\x22'+(m?.['name']??'<unnamed>')+'\x22\x20of\x20node\x20\x22'+g+'\x22\x20names\x20no\x20operator\x20'+'(E_FORWARD_NO_IDENTITY),\x20so\x20nobody\x20can\x20be\x20authorized\x20to\x20execute\x20it\x20and\x20the\x20Machine\x20cannot\x20be\x20'+'published.\x20Set\x20namedOperator\x20(use\x20\x22\x22\x20for\x20the\x20order\x20payer,\x20or\x20a\x20Progress\x20operator\x20namespace)\x20or\x20'+'permissionIndex\x20(a\x20USER_DEFINED\x20index\x20>=\x201000).\x20A\x20guard\x20does\x20NOT\x20satisfy\x20this:\x20it\x20is\x20a\x20'+'post-verification\x20check,\x20not\x20an\x20identity.';const p=gateNumber(m?.['weight']);if(p!==null)k+=p;}const l=gateNumber(h?.['threshold']);if(l!==null&&k<l){const q=i===''?'entry\x20->\x20'+g:i+'\x20->\x20'+g;return'Pair\x20('+q+')\x20can\x20never\x20migrate:\x20its\x20threshold\x20('+l+')\x20is\x20greater\x20than\x20the\x20sum\x20of\x20its\x20'+('forward\x20weights\x20('+k+')\x20(E_UNREACHABLE_THRESHOLD).\x20Each\x20forward\x20contributes\x20its\x20weight\x20AT\x20')+'MOST\x20ONCE\x20—\x20it\x20is\x20locked\x20by\x20the\x20first\x20operator\x20who\x20accomplishes\x20it,\x20and\x20a\x20second\x20operator\x20re-running\x20'+'it\x20aborts\x20E_NOT_THE_HOLDER\x20—\x20so\x20the\x20reachable\x20maximum\x20is\x20the\x20sum\x20of\x20the\x20DISTINCT\x20forward\x20weights.\x20'+'Lower\x20the\x20threshold,\x20or\x20add\x20one\x20distinct\x20forward\x20per\x20contributing\x20operator\x20(threshold\x202\x20->\x20begin_a\x20+\x20'+'begin_b,\x20each\x20weight\x201).\x20Never\x20try\x20to\x20reach\x20a\x20high\x20threshold\x20by\x20re-running\x20one\x20forward\x20repeatedly.';}}}if(!d)return'The\x20Machine\x20has\x20no\x20entry\x20edge\x20(E_NO_ENTRY_EDGE)\x20—\x20no\x20node\x20declares\x20a\x20pair\x20with\x20prev_node:\x20\x22\x22,\x20so\x20'+'Progress\x20starts\x20at\x20the\x20empty\x20initial\x20state\x20and\x20has\x20no\x20edge\x20to\x20advance\x20on.\x20Add\x20the\x20entry\x20pair\x20to\x20your\x20'+'first\x20node:\x20pairs:[{prev_node:\x22\x22,\x20forwards:[{name:\x22start\x22,\x20weight:1,\x20namedOperator:\x22\x22}]}].\x20The\x20fix\x20must\x20'+'land\x20BEFORE\x20publish\x20—\x20machineNode2file\x20exports\x20the\x20current\x20graph\x20so\x20you\x20can\x20diff\x20it\x20against\x20the\x20fixed\x20one.';return null;}function validateEntryForward(a){for(const b of a){if(!b['pairs'])continue;for(const c of b['pairs']){if(c['prev_node']==='')return!![];}}return![];}const ENTRY_FORWARD_ERROR_MESSAGE='Machine\x20has\x20no\x20entry\x20forward.\x20At\x20least\x20one\x20node\x20must\x20have\x20a\x20pair\x20with\x20prev_node=\x22\x22\x20(empty\x20string),\x20'+'which\x20defines\x20how\x20Progress\x20advances\x20from\x20the\x20initial\x20state\x20(current=\x22\x22)\x20to\x20the\x20first\x20node.\x20'+'Without\x20an\x20entry\x20forward,\x20the\x20workflow\x20will\x20be\x20permanently\x20stuck.\x20'+'Example:\x20{name:\x20\x27Subscribed\x27,\x20pairs:\x20[{prev_node:\x20\x27\x27,\x20forwards:\x20[{name:\x20\x27Subscribe\x27,\x20weight:\x201}]}]}';export const ProgressNamedOperatorSchema=z['object']({'op':z['union']([z['literal']('add'),z['literal']('set'),z['literal']('remove')]),'name':NotEmptyNameSchema,'operators':ManyAccountOrMark_AddressSchema})['strict']();export const ProgressNewSchema=z['object']({'task':z['union']([NameOrAddressSchema,z['null']()])['optional']()['describe']('Task\x20bound\x20to\x20the\x20Progress\x20object.\x20It\x20is\x20an\x20object\x20ID\x20or\x20name'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20Progress\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Add,\x20set,\x20and\x20remove\x20operators\x20for\x20the\x20permission\x20namespace\x20of\x20the\x20Progress\x20object.'),'namedNew':NamedObjectSchema['optional']()})['strict']();export const NodeAddForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward':z['array'](MachineForwardSchema)['describe']('List\x20of\x20operations\x20between\x20the\x20previous\x20and\x20next\x20nodes.'),'threshold':z['union']([z['number']()['int']()['min'](0x0),z['null']()])['optional']()['describe']('Threshold\x20of\x20operations\x20that\x20need\x20to\x20be\x20completed\x20to\x20migrate\x20from\x20the\x20previous\x20node\x20to\x20the\x20next\x20node.')})['strict']();export const NodeRemoveForwardDataSchema=z['object']({'prior_node_name':NameSchema['describe']('Name\x20of\x20the\x20previous\x20node.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.'),'forward_name':z['array'](NameSchema)['describe']('List\x20of\x20operation\x20names\x20to\x20delete.')})['strict']();export const NodeRemovePriorNodeDataSchema=z['object']({'prior_node_name':z['array'](NameSchema)['describe']('List\x20of\x20previous\x20node\x20names\x20to\x20delete.'),'node_name':NameSchema['describe']('Name\x20of\x20the\x20next\x20node.')})['strict']();export const NodeSchema=z['discriminatedUnion']('op',[z['object']({'op':z['literal']('add'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Add\x20nodes.'),z['object']({'op':z['literal']('set'),'nodes':z['array'](MachineNodeSchema)['describe']('List\x20of\x20nodes\x20to\x20add\x20or\x20set.'),'bReplace':z['boolean']()['optional']()['describe']('Whether\x20to\x20replace\x20existing\x20nodes.\x20If\x20true,\x20existing\x20nodes\x20will\x20be\x20replaced;\x20if\x20false,\x20nodes\x20will\x20be\x20added\x20by\x20merging.')})['strict']()['describe']('Set\x20nodes.'),z['object']({'op':z['literal']('remove'),'nodes':z['array'](NameSchema)['describe']('List\x20of\x20node\x20names\x20to\x20delete.')})['strict']()['describe']('Delete\x20nodes.'),z['object']({'op':z['literal']('clear')})['strict']()['describe']('Clear\x20all\x20nodes.'),z['object']({'op':z['literal']('exchange'),'node_one':NameSchema['describe']('Name\x20of\x20the\x20first\x20node.'),'node_other':NameSchema['describe']('Name\x20of\x20the\x20second\x20node.')})['strict']()['describe']('Exchange\x20the\x20positions\x20of\x20two\x20nodes.'),z['object']({'op':z['literal']('rename'),'node_name_old':NameSchema['describe']('Name\x20of\x20thenode.'),'node_name_new':NameSchema['describe']('New\x20name\x20of\x20the\x20node.')})['strict']()['describe']('Rename\x20node.'),z['object']({'op':z['literal']('remove\x20prior\x20node'),'pairs':z['array'](NodeRemovePriorNodeDataSchema)['describe']('List\x20of\x20previous-next\x20node\x20pairs\x20to\x20delete.')})['strict']()['describe']('Delete\x20previous-next\x20node\x20pairs.'),z['object']({'op':z['literal']('add\x20forward'),'data':z['array'](NodeAddForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20add.')})['strict']()['describe']('Add\x20operations.'),z['object']({'op':z['literal']('remove\x20forward'),'data':z['array'](NodeRemoveForwardDataSchema)['describe']('List\x20of\x20operations\x20to\x20delete.')})['strict']()['describe']('Delete\x20operations.')])['superRefine']((a,b)=>{(a['op']==='add'||a['op']==='set')&&a['bReplace']===!![]&&(!validateEntryForward(a['nodes'])&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':ENTRY_FORWARD_ERROR_MESSAGE}));});export const NodeJsonOrMarkdownFileSchema=z['object']({'json_or_markdown_file':z['string']()['describe']('Path\x20to\x20a\x20JSON\x20or\x20Markdown\x20file\x20containing\x20node\x20array\x20for\x20COMPLETE\x20REPLACEMENT\x20of\x20all\x20nodes.\x0a\x0a**File\x20Format\x20Requirements:**\x0a-\x20Must\x20contain\x20a\x20JSON\x20ARRAY\x20of\x20node\x20objects:\x20[{\x22name\x22:\x20\x22...\x22,\x20\x22pairs\x22:\x20[...]},\x20{...}]\x0a-\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field\x20(use\x20NodeSchema\x20for\x20operations)\x0a-\x20Supports\x20JSON\x20or\x20Markdown\x20(with\x20```json\x20code\x20blocks)\x0a\x0a**Node\x20Structure:**\x0aEach\x20node\x20is\x20a\x20directed\x20graph\x20element\x20representing\x20a\x20workflow\x20STATE\x20that\x20an\x20order\x0acan\x20rest\x20in.\x20Its\x20Pairs\x20are\x20the\x20INCOMING\x20edges\x20—\x20this\x20is\x20the\x20one\x20convention\x20the\x0achain\x20enforces,\x20and\x20getting\x20it\x20backwards\x20silently\x20builds\x20a\x20wrong\x20graph:\x0a-\x20name:\x20Node\x20identifier\x20—\x20the\x20DESTINATION\x20of\x20every\x20pair\x20it\x20owns\x0a-\x20role:\x20(optional)\x20business\x20role\x20tag\x20for\x20display\x20layers\x20—\x20one\x20of\x20draft/active/delivered/final/cancelled.\x20SESSION\x20METADATA\x20ONLY\x20(not\x20stored\x20on-chain;\x20echoed\x20back\x20as\x20a\x20NODE\x20ROLES\x20warning)\x0a-\x20pairs:\x20Array\x20of\x20{prev_node,\x20forwards,\x20threshold}\x20—\x20edges\x20ENTERING\x20this\x20node.\x20The\x20key\x20is\x20`prev_node`;\x20`prior_node`\x20is\x20not\x20recognized\x20and\x20is\x20silently\x20dropped.\x0a-\x20forwards:\x20Operations\x20that\x20advance\x20INTO\x20this\x20node\x20FROM\x20its\x20prev_node\x20(NOT\x20operations\x20available\x20from\x20this\x20node)\x0a-\x20threshold:\x20Weight\x20required\x20to\x20migrate\x20into\x20this\x20node\x20along\x20that\x20pair\x0a\x0aDiagram\x20`A\x20--[Go]-->\x20B`\x20therefore\x20lives\x20in\x20node\x20**B**:\x20{name:\x22B\x22,\x20pairs:[{prev_node:\x22A\x22,\x20forwards:[{name:\x22Go\x22,\x20weight:1}]}]}.\x0a\x0a**Forward\x20names\x20must\x20determine\x20the\x20destination.**\x20`next_node`\x20is\x20a\x20CALLER\x20argument\x0a(progress.move:540)\x20and\x20the\x20chain\x20resolves\x20(current,\x20next_node,\x20forward)\x20inside\x20the\x0adestination\x20node\x20(machine.move:275),\x20so\x20one\x20forward\x20name\x20shared\x20by\x20two\x20destinations\x0afrom\x20the\x20same\x20prev_node\x20is\x20legal\x20and\x20lets\x20the\x20caller\x20pick\x20the\x20outcome\x20—\x20including\x0awhether\x20a\x20refund\x20Allocator\x20ever\x20fires.\x20Give\x20each\x20destination\x20its\x20own\x20forward\x20name.\x0a\x0a**Behavior:**\x0a-\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes\x20(equivalent\x20to\x20\x22set\x22\x20with\x20bReplace=true)\x0a-\x20Auto-detects\x20format\x20based\x20on\x20file\x20content\x0a-\x20If\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information')})['strict']();export const NodeFieldSchema=z['union']([NodeSchema,NodeJsonOrMarkdownFileSchema]);export const CallMachine_DataSchema=z['object']({'object':WithPermissionObjectSchema,'progress_new':ProgressNewSchema['optional']()['describe']('Generate\x20new\x20Progress\x20object.'),'description':DescriptionSchema['optional']()['describe']('Description\x20of\x20the\x20object.'),'repository':ObjectsSchema['optional']()['describe']('Set\x20repository\x20list\x20for\x20the\x20object.\x20Used\x20for\x20consensus\x20data\x20management.'),'node':NodeFieldSchema['optional']()['describe']('CRITICAL:\x20Choose\x20ONE\x20of\x20two\x20mutually\x20exclusive\x20modes:\x0a\x0a**Mode\x201:\x20NodeSchema\x20(incremental\x20operations)**\x0aUse\x20for\x20partial\x20modifications:\x20add,\x20set,\x20remove,\x20clear,\x20exchange,\x20rename,\x20remove\x20prior\x20node,\x20add\x20forward,\x20remove\x20forward.\x0aFormat:\x20{\x20\x22op\x22:\x20\x22add\x22,\x20\x22nodes\x22:\x20[...],\x20\x22bReplace\x22:\x20false\x20}\x0aThis\x20mode\x20modifies\x20existing\x20nodes\x20incrementally.\x0a\x0a**Mode\x202:\x20NodeJsonOrMarkdownFileSchema\x20(complete\x20replacement)**\x0aUse\x20for\x20complete\x20node\x20redefinition\x20from\x20file.\x0aFormat:\x20{\x20\x22json_or_markdown_file\x22:\x20\x22/path/to/nodes.json\x22\x20}\x0aIMPORTANT:\x20This\x20COMPLETELY\x20REPLACES\x20all\x20existing\x20nodes.\x20File\x20must\x20contain\x20node\x20array\x20[{...},\x20{...}],\x20NOT\x20an\x20operation\x20object\x20with\x20\x22op\x22\x20field.\x0aSupported\x20formats:\x20JSON\x20array\x20or\x20Markdown\x20with\x20code\x20blocks.\x0aIf\x20parsing\x20fails,\x20error\x20includes\x20line\x20number\x20and\x20column\x20information.'),'pause':z['boolean']()['optional']()['describe']('Whether\x20to\x20pause\x20generating\x20new\x20Progress\x20objects.'),'publish':z['boolean']()['optional']()['describe']('Whether\x20to\x20publish\x20the\x20object.\x20After\x20the\x20object\x20is\x20published,\x20new\x20Progress\x20objects\x20can\x20be\x20generated;\x20and\x20node\x20settings\x20will\x20no\x20longer\x20be\x20changeable.\x20⚠️\x20PUBLISH\x20IS\x20A\x20ONE-WAY\x20DOOR\x20AND\x20THE\x20CHAIN\x20VALIDATES\x20THE\x20WHOLE\x20GRAPH\x20AT\x20THAT\x20MOMENT:\x20the\x20on-chain\x20publish\x20gate\x20rejects\x20a\x20Machine\x20that\x20is\x20empty,\x20has\x20no\x20entry\x20edge\x20(no\x20pair\x20with\x20prev_node:\x22\x22),\x20has\x20an\x20entry\x20pair\x20with\x20no\x20forward,\x20references\x20a\x20prev_node\x20that\x20is\x20not\x20a\x20node\x20of\x20this\x20Machine,\x20carries\x20a\x20forward\x20with\x20neither\x20namedOperator\x20nor\x20permissionIndex\x20(a\x20guard\x20is\x20NOT\x20an\x20identity),\x20or\x20has\x20a\x20pair\x20whose\x20threshold\x20exceeds\x20the\x20sum\x20of\x20its\x20forward\x20weights\x20(each\x20forward\x20counts\x20at\x20most\x20once).\x20These\x20aborts\x20(machine:17-22)\x20fire\x20BEFORE\x20the\x20publish\x20lands,\x20so\x20the\x20graph\x20is\x20still\x20editable\x20—\x20but\x20after\x20it\x20succeeds,\x20nodes/forwards,\x20Guard\x20bindings\x20and\x20Service.machine\x20are\x20frozen\x20forever,\x20and\x20a\x20broken\x20graph\x20would\x20only\x20surface\x20at\x20the\x20first\x20transition\x20with\x20no\x20repair\x20path.\x20Send\x20the\x20nodes\x20in\x20the\x20SAME\x20call\x20as\x20publish:true\x20(bReplace:true\x20or\x20op:\x22set\x22)\x20so\x20the\x20complete\x20graph\x20is\x20validated\x20together.\x20⚠️\x20Before\x20publishing,\x20enumerate\x20the\x20graph\x20STOP\x20NODES\x20(nodes\x20with\x20no\x20outgoing\x20Pair)\x20plus\x20every\x20waiting\x20state\x20(review\x20window,\x20handover,\x20open\x20dispute)\x20and\x20verify\x20each\x20has\x20a\x20defined\x20fund\x20exit\x20in\x20the\x20Service\x20order_allocators\x20—\x20withdrawal\x20(release)\x20AND\x20refund.\x20Machine\x20+\x20Allocator\x20are\x20immutable\x20after\x20publish\x20(IMMUT-001);\x20an\x20uncovered\x20stop\x20node\x20strands\x20funds\x20permanently\x20(rule\x20R-M5-03,\x20checklist\x20pattern.fund_flow_stop_node_coverage).'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Machine\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']()['superRefine']((a,b)=>{if(a['publish']!==!![])return;const c=a['node'];if(!c||'json_or_markdown_file'in c)return;if(c['op']!=='add'&&c['op']!=='set')return;const d=typeof a['object']==='object'&&a['object']!==null;if(!d&&c['bReplace']!==!![])return;if(!Array['isArray'](c['nodes'])||c['nodes']['length']===0x0||typeof c['nodes'][0x0]!=='object')return;const e=machinePublishGateViolation(c['nodes']);e&&b['addIssue']({'code':z['ZodIssueCode']['custom'],'message':e});})['describe']('On-chain\x20Machine\x20operations.\x20USAGE:\x20(1)\x20CREATE\x20NEW:\x20Set\x20\x27object\x27\x20field\x20with\x20OBJECT\x20format\x20{name,\x20permission,\x20...}\x20to\x20create\x20a\x20Machine.\x20NOTE:\x20\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(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 CallMachine_InputSchema=z['object']({'data':CallMachine_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();export const MachineNode2File_InputSchema=z['object']({'machine':NameOrAddressSchema['describe']('Machine\x20object\x20ID\x20or\x20name\x20to\x20export'),'file_path':z['string']()['optional']()['describe']('Output\x20file\x20path\x20(absolute\x20or\x20relative).\x20Defaults\x20to\x20the\x20workspace\x20directory\x20when\x20omitted.'),'format':z['enum'](['json','markdown'])['optional']()['default']('json')['describe']('Output\x20format:\x20\x27json\x27\x20(default)\x20or\x20\x27markdown\x27'),'network':EntrypointSchema['optional']()['describe']('Network\x20to\x20read\x20the\x20Machine\x20from:\x20\x27localnet\x27\x20|\x20\x27mainnet\x27\x20|\x20\x27testnet\x27.\x20If\x20omitted,\x20the\x20SDK\x27s\x20current\x20default\x20network\x20is\x20used\x20(check\x20via\x20wowok_buildin_info\x20info=\x27current\x20network\x27);\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20so\x20an\x20export\x20can\x20never\x20be\x20silently\x20read\x20from\x20the\x20wrong\x20chain\x20(klook\x20B-4:\x20an\x20un-networked\x20\x27not\x20found\x20on\x20chain\x27\x20was\x20actually\x20a\x20testnet\x20read\x20of\x20a\x20localnet\x20object).'),'env':CallEnvSchema['optional']()})['strict']()['describe']('Query\x20a\x20Machine\x20object\x20from\x20the\x20blockchain\x20and\x20export\x20its\x20node\x20definition\x20to\x20a\x20JSON\x20or\x20Markdown\x20file.\x20The\x20exported\x20file\x20can\x20be\x20edited\x20and\x20used\x20to\x20create\x20new\x20Machine\x20objects.');export const MachineNode2File_OutputSchema=z['discriminatedUnion']('status',[z['object']({'status':z['literal']('success'),'data':z['object']({'file_path':z['string']()['describe']('Absolute\x20path\x20of\x20the\x20exported\x20file'),'format':z['enum'](['json','markdown'])['describe']('Export\x20format'),'machine_object':NameOrAddressSchema['describe']('Machine\x20object\x20ID'),'node_count':z['number']()['describe']('Number\x20of\x20nodes\x20exported'),'network':z['string']()['describe']('Network\x20the\x20Machine\x20was\x20READ\x20from\x20(resolved\x20—\x20the\x20SDK\x20default\x20when\x20the\x20input\x20omitted\x20\x27network\x27)')})['strict']()['describe']('Success\x20result\x20data')})['strict'](),z['object']({'status':z['literal']('error'),'error':z['string']()['describe']('Error\x20message')})['strict']()])['describe']('MachineNode2File\x20operation\x20output');export const MachineNode2File_OutputWrappedSchema=z['object']({'result':MachineNode2File_OutputSchema})['strict']()['describe']('MachineNode2File\x20operation\x20output\x20wrapped\x20schema');
@@ -1 +1 @@
1
- import{z}from'zod';import{PaymentInfoSchema}from'../query/index.js';import{CoinParamSchema,CallEnvSchema,TypeNamedObjectSchema}from'./base.js';import{AccountOrMark_AddressSchema,NameOrAddressSchema}from'../common/index.js';export const RevenueSchema=z['object']({'recipient':AccountOrMark_AddressSchema,'amount':CoinParamSchema})['strict']()['describe']('Payment\x20recipient\x20and\x20amount');export const CallPayment_CreateSchema=z['object']({'object':TypeNamedObjectSchema,'revenue':z['array'](RevenueSchema)['describe']('Array\x20of\x20payment\x20recipients\x20and\x20amounts'),'info':PaymentInfoSchema})['strict']()['describe']('Create\x20a\x20new\x20Payment.\x20USAGE:\x20Set\x20\x27object\x27\x20field\x20with\x20{name,\x20type,\x20...}\x20to\x20create\x20a\x20named\x20Payment.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20Payment\x20is\x20an\x20immutable\x20object\x20-\x20it\x20can\x20only\x20be\x20created,\x20not\x20modified.\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED.');export const CallPayment_ReceiveSchema=z['object']({'object':NameOrAddressSchema['optional']()['describe']('CoinWrapper\x20object\x20ID\x20(0x...)\x20or\x20local\x20name\x20to\x20unwrap.\x20'+'OPTIONAL:\x20when\x20omitted,\x20AUTO-RECEIVE\x20mode\x20unwraps\x20EVERY\x20CoinWrapper\x20'+'currently\x20owned\x20by\x20the\x20caller\x20in\x20a\x20single\x20transaction\x20—\x20no\x20need\x20to\x20look\x20up\x20IDs\x20first.\x20'+'Find\x20received\x20CoinWrappers\x20via\x20query_toolkit\x20with\x20query_type=\x27onchain_received\x27.'),'receive':z['literal'](!![])['describe']('Set\x20to\x20true\x20to\x20activate\x20receive\x20mode.\x20'+'CoinWrapper\x20objects\x20ARE\x20transferred\x20to\x20recipients\x20via\x20transfer::public_transfer\x20(they\x20arrive\x20as\x20owned\x20objects),\x20'+'but\x20they\x20are\x20NOT\x20spendable\x20coins.\x20This\x20mode\x20unwraps\x20a\x20CoinWrapper\x20into\x20actual\x20coins\x20in\x20your\x20wallet.\x20'+'The\x20caller\x20must\x20be\x20the\x20CoinWrapper\x27s\x20owner\x20(the\x20recipient\x20'+'specified\x20in\x20the\x20Allocation\x27s\x20revenue\x20split).\x20'+'When\x20\x27object\x27\x20is\x20omitted,\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller\x20is\x20unwrapped\x20at\x20once.'),'type_parameter':z['string']()['optional']()['describe']('Coin\x20type\x20of\x20the\x20CoinWrapper,\x20e.g.\x20\x270x2::wow::WOW\x27.\x20'+'OPTIONAL:\x20when\x20omitted\x20it\x20is\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20own\x20on-chain\x20type\x20'+'(the\x20inner\x20T\x20of\x20`CoinWrapper<T>`),\x20so\x20{object,\x20receive:true}\x20alone\x20unwraps\x20to\x20spendable\x20coins.\x20'+'Only\x20provide\x20it\x20explicitly\x20when\x20auto-derivation\x20fails.\x20In\x20AUTO-RECEIVE\x20mode\x20(no\x20object)\x20'+'the\x20type\x20is\x20always\x20derived\x20per-wrapper.')})['strict']()['describe']('Receive\x20mode:\x20unwrap\x20a\x20CoinWrapper\x20to\x20the\x20caller\x27s\x20wallet.\x20Use\x20after\x20Allocation\x27s\x20alloc_by_guard\x20creates\x20a\x20Payment\x20with\x20your\x20address\x20as\x20a\x20revenue\x20recipient.\x20The\x20CoinWrapper\x20holds\x20your\x20share\x20—\x20call\x20this\x20to\x20convert\x20it\x20to\x20actual\x20coins\x20in\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20to\x20unwrap\x20a\x20specific\x20CoinWrapper,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20AUTO-CLAIM:\x20when\x20the\x20allocation\x20SIGNER\x20and\x20the\x20recipient\x20are\x20the\x20SAME\x20account,\x20the\x20share\x20is\x20credited\x20directly\x20during\x20settlement\x20and\x20NO\x20CoinWrapper\x20is\x20created\x20—\x20a\x20\x27no\x20CoinWrapper\x20found\x27\x20result\x20in\x20that\x20case\x20means\x20the\x20funds\x20already\x20arrived\x20(verify\x20via\x20account_balance),\x20it\x20is\x20NOT\x20a\x20failure.');export const CallPayment_DataSchema=z['union']([CallPayment_CreateSchema,CallPayment_ReceiveSchema])['describe']('On-chain\x20Payment\x20operations.\x20TWO\x20modes:\x0a'+'(1)\x20CREATE:\x20Set\x20\x27object\x27\x20with\x20{name,\x20type_parameter,\x20...},\x20\x27revenue\x27,\x20and\x20\x27info\x27\x20to\x20create\x20a\x20new\x20Payment.\x0a'+'(2)\x20RECEIVE:\x20Set\x20{receive:\x20true}\x20to\x20unwrap\x20CoinWrappers\x20to\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20(<coinwrapper_id_or_name>)\x20to\x20unwrap\x20a\x20specific\x20one,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20type_parameter\x20optional\x20—\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20type.');export const CallPayment_InputSchema=z['object']({'data':CallPayment_DataSchema,'env':CallEnvSchema['optional']()})['strict']();
1
+ import{z}from'zod';import{PaymentInfoSchema}from'../query/index.js';import{CoinParamSchema,CallEnvSchema,TypeNamedObjectSchema}from'./base.js';import{AccountOrMark_AddressSchema,NameOrAddressSchema}from'../common/index.js';export const RevenueSchema=z['object']({'recipient':AccountOrMark_AddressSchema,'amount':CoinParamSchema})['strict']()['describe']('Payment\x20recipient\x20and\x20amount');export const CallPayment_CreateSchema=z['object']({'object':TypeNamedObjectSchema,'revenue':z['array'](RevenueSchema)['describe']('Array\x20of\x20payment\x20recipients\x20and\x20amounts'),'info':PaymentInfoSchema})['strict']()['describe']('Create\x20a\x20new\x20Payment.\x20USAGE:\x20Set\x20\x27object\x27\x20field\x20with\x20{name,\x20type,\x20...}\x20to\x20create\x20a\x20named\x20Payment.\x20NOTE:\x20\x27name\x27\x20goes\x20INSIDE\x20\x27object\x27,\x20NOT\x20at\x20the\x20data\x20root\x20level.\x20Payment\x20is\x20an\x20immutable\x20object\x20-\x20it\x20can\x20only\x20be\x20created,\x20not\x20modified.\x20The\x20\x27object\x27\x20field\x20is\x20CRITICAL\x20and\x20REQUIRED.');export const CallPayment_ReceiveSchema=z['object']({'object':NameOrAddressSchema['optional']()['describe']('CoinWrapper\x20object\x20ID\x20(0x...)\x20or\x20local\x20name\x20to\x20unwrap.\x20'+'OPTIONAL:\x20when\x20omitted,\x20AUTO-RECEIVE\x20mode\x20unwraps\x20EVERY\x20CoinWrapper\x20'+'currently\x20owned\x20by\x20the\x20caller\x20in\x20a\x20single\x20transaction\x20—\x20no\x20need\x20to\x20look\x20up\x20IDs\x20first.\x20'+'Find\x20received\x20CoinWrappers\x20via\x20query_toolkit\x20with\x20query_type=\x27onchain_received\x27.'),'receive':z['literal'](!![])['describe']('Set\x20to\x20true\x20to\x20activate\x20receive\x20mode.\x20'+'CoinWrapper\x20objects\x20ARE\x20transferred\x20to\x20recipients\x20via\x20transfer::public_transfer\x20(they\x20arrive\x20as\x20owned\x20objects),\x20'+'but\x20they\x20are\x20NOT\x20spendable\x20coins.\x20This\x20mode\x20unwraps\x20a\x20CoinWrapper\x20into\x20actual\x20coins\x20in\x20your\x20wallet.\x20'+'The\x20caller\x20must\x20be\x20the\x20CoinWrapper\x27s\x20owner\x20(the\x20recipient\x20'+'specified\x20in\x20the\x20Allocation\x27s\x20revenue\x20split).\x20'+'When\x20\x27object\x27\x20is\x20omitted,\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller\x20is\x20unwrapped\x20at\x20once.'),'type_parameter':z['string']()['optional']()['describe']('Coin\x20type\x20of\x20the\x20CoinWrapper,\x20e.g.\x20\x270x2::wow::WOW\x27.\x20'+'OPTIONAL:\x20when\x20omitted\x20it\x20is\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20own\x20on-chain\x20type\x20'+'(the\x20inner\x20T\x20of\x20`CoinWrapper<T>`),\x20so\x20{object,\x20receive:true}\x20alone\x20unwraps\x20to\x20spendable\x20coins.\x20'+'Only\x20provide\x20it\x20explicitly\x20when\x20auto-derivation\x20fails.\x20In\x20AUTO-RECEIVE\x20mode\x20(no\x20object)\x20'+'the\x20type\x20is\x20always\x20derived\x20per-wrapper.')})['strict']()['describe']('Receive\x20mode:\x20unwrap\x20a\x20CoinWrapper\x20to\x20the\x20caller\x27s\x20wallet.\x20Use\x20after\x20Allocation\x27s\x20alloc_by_guard\x20creates\x20a\x20Payment\x20with\x20your\x20address\x20as\x20a\x20revenue\x20recipient.\x20The\x20CoinWrapper\x20holds\x20your\x20share\x20—\x20call\x20this\x20to\x20convert\x20it\x20to\x20actual\x20coins\x20in\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20to\x20unwrap\x20a\x20specific\x20CoinWrapper,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20CHAIN\x20TRUTH:\x20allocation\x20settlement\x20ALWAYS\x20creates\x20one\x20CoinWrapper\x20per\x20recipient\x20row\x20on-chain\x20—\x20there\x20is\x20NO\x20chain-level\x20auto-claim,\x20even\x20when\x20the\x20signer\x20IS\x20the\x20recipient\x20(ptrn-ln-261010\x20C-04).\x20After\x20an\x20alloc\x20where\x20you\x20are\x20a\x20recipient,\x20expect\x20a\x20CoinWrapper\x20under\x20your\x20address\x20and\x20claim\x20it\x20here;\x20a\x20\x27no\x20CoinWrapper\x20found\x27\x20result\x20means\x20the\x20funds\x20were\x20already\x20claimed\x20(verify\x20via\x20account_balance)\x20or\x20your\x20share\x20is\x20held\x20by\x20another\x20object\x20(Order/Entity)\x20and\x20must\x20be\x20claimed\x20through\x20that\x20object\x27s\x20own\x20receive\x20entry.');export const CallPayment_DataSchema=z['union']([CallPayment_CreateSchema,CallPayment_ReceiveSchema])['describe']('On-chain\x20Payment\x20operations.\x20TWO\x20modes:\x0a'+'(1)\x20CREATE:\x20Set\x20\x27object\x27\x20with\x20{name,\x20type_parameter,\x20...},\x20\x27revenue\x27,\x20and\x20\x27info\x27\x20to\x20create\x20a\x20new\x20Payment.\x0a'+'(2)\x20RECEIVE:\x20Set\x20{receive:\x20true}\x20to\x20unwrap\x20CoinWrappers\x20to\x20your\x20wallet.\x20Provide\x20\x27object\x27\x20(<coinwrapper_id_or_name>)\x20to\x20unwrap\x20a\x20specific\x20one,\x20or\x20OMIT\x20it\x20to\x20auto-unwrap\x20every\x20CoinWrapper\x20owned\x20by\x20the\x20caller.\x20type_parameter\x20optional\x20—\x20auto-derived\x20from\x20the\x20CoinWrapper\x27s\x20type.');export const CallPayment_InputSchema=z['object']({'data':CallPayment_DataSchema,'env':CallEnvSchema['optional']()})['strict']();
@@ -1 +1 @@
1
- import{CallPermission,GetAccountOrMark_Address}from'@wowok/wowok';import{handleCallResult}from'./handler.js';import{isValidPermissionIndex}from'../utils/permission-index-utils.js';function validatePermissionIndexes(a){const b=[];if(a['table']){const c=a['table'];switch(c['op']){case'add\x20perm\x20by\x20index':case'set\x20perm\x20by\x20index':case'remove\x20perm\x20by\x20index':b['push']({'index':c['index'],'path':'table.'+c['op']+'.index'});break;case'add\x20perm\x20by\x20entity':case'set\x20perm\x20by\x20entity':case'remove\x20perm\x20by\x20entity':for(let d=0x0;d<c['index']['length'];d++){b['push']({'index':c['index'][d],'path':'table.'+c['op']+'.index['+d+']'});}break;}}a['remark']&&(a['remark']['op']==='set'||a['remark']['op']==='remove')&&b['push']({'index':a['remark']['index'],'path':'remark.'+a['remark']['op']+'.index'});for(const {index:e,path:f}of b){if(!isValidPermissionIndex(e))throw new Error('Invalid\x20permission\x20index\x20'+e+'\x20at\x20\x27'+f+'\x27.\x20'+'Builtin\x20indexes\x20must\x20be\x20valid\x20BuiltinPermissionIndex\x20values;\x20'+'user-defined\x20indexes\x20must\x20be\x20in\x20[1000,\x2065535].');}}function validateEntityOps(a){if(!a['entity'])return;const b=a['entity'];if(b['op']==='swap'||b['op']==='replace'||b['op']==='copy'){if(b['entity1']===b['entity2'])throw new Error('Invalid\x20entity\x20'+b['op']+'\x20operation:\x20entity1\x20and\x20entity2\x20are\x20the\x20same\x20('+('\x27'+b['entity1']+'\x27).\x20'+b['op']+'\x20requires\x20two\x20distinct\x20entities.'));}}async function resolveManyEntities(a,b,c,d){const e=a?.['entities'];if(!e||e['length']===0x0)return;const f=c?.['network']?'\x20(network:\x20'+c['network']+')':'',g=[];for(const i of e){const j=i?.['name_or_address']??'';if(!j)continue;const k=await GetAccountOrMark_Address(i);if(!k)g['push'](j);}if(g['length']===0x0)return;const h=g['map'](l=>'\x27'+l+'\x27')['join'](',\x20');if(a?.['check_all_founded']===!![])throw new Error('invalid\x20parameter:'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20or\x20pass\x20the\x20raw\x200x\x20address.');if(g['length']===e['length'])throw new Error('invalid\x20parameter:ALL\x20'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'The\x20operation\x20would\x20write\x20nothing\x20yet\x20still\x20cost\x20gas,\x20so\x20it\x20was\x20refused.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20create\x20the\x20account/mark\x20first,\x20or\x20pass\x20raw\x200x\x20addresses.');d['push']('PARTIAL\x20RESOLUTION:\x20'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20unresolved\x20and\x20will\x20be\x20DROPPED'+f+':\x20'+h+'.\x20'+'Only\x20the\x20resolvable\x20entities\x20will\x20be\x20written\x20on-chain.');}export async function handlePermissionOperations(a,b,c,d=[]){validatePermissionIndexes(a),validateEntityOps(a);const e=a['table'];e&&'entities'in(e['entity']??{})&&await resolveManyEntities(e['entity'],'table.'+e['op']+'.entity',b,d);a['admin']&&await resolveManyEntities(a['admin']['addresses'],'admin.addresses',b,d);const f=new CallPermission(a),g=await f['call'](b);return handleCallResult(g,c(a));}
1
+ import{CallPermission,GetAccountOrMark_Address}from'@wowok/wowok';import{handleCallResult}from'./handler.js';import{isValidPermissionIndex}from'../utils/permission-index-utils.js';function validatePermissionIndexes(a){const b=[];if(a['table']){const c=a['table'];switch(c['op']){case'add\x20perm\x20by\x20index':case'set\x20perm\x20by\x20index':case'remove\x20perm\x20by\x20index':b['push']({'index':c['index'],'path':'table.'+c['op']+'.index'});break;case'add\x20perm\x20by\x20entity':case'set\x20perm\x20by\x20entity':case'remove\x20perm\x20by\x20entity':for(let d=0x0;d<c['index']['length'];d++){b['push']({'index':c['index'][d],'path':'table.'+c['op']+'.index['+d+']'});}break;}}a['remark']&&(a['remark']['op']==='set'||a['remark']['op']==='remove')&&b['push']({'index':a['remark']['index'],'path':'remark.'+a['remark']['op']+'.index'});for(const {index:e,path:f}of b){if(!isValidPermissionIndex(e))throw new Error('Invalid\x20permission\x20index\x20'+e+'\x20at\x20\x27'+f+'\x27.\x20'+'Builtin\x20indexes\x20must\x20be\x20valid\x20BuiltinPermissionIndex\x20values;\x20'+'user-defined\x20indexes\x20must\x20be\x20in\x20[1000,\x2065535].');}}function validateEntityOps(a){if(!a['entity'])return;const b=a['entity'];if(b['op']==='swap'||b['op']==='replace'||b['op']==='copy'){if(b['entity1']===b['entity2'])throw new Error('Invalid\x20entity\x20'+b['op']+'\x20operation:\x20entity1\x20and\x20entity2\x20are\x20the\x20same\x20('+('\x27'+b['entity1']+'\x27).\x20'+b['op']+'\x20requires\x20two\x20distinct\x20entities.'));}}async function resolveManyEntities(a,b,c,d){const e=a?.['entities'];if(!e||e['length']===0x0)return;const f=c?.['network']?'\x20(network:\x20'+c['network']+')':'',g=[];for(const i of e){const j=i?.['name_or_address']??'';if(!j)continue;const k=await GetAccountOrMark_Address(i);if(!k)g['push'](j);}if(g['length']===0x0)return;const h=g['map'](l=>'\x27'+l+'\x27')['join'](',\x20');if(a?.['check_all_founded']===!![])throw new Error('invalid\x20parameter:'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20or\x20pass\x20the\x20raw\x200x\x20address.');if(g['length']===e['length'])throw new Error('invalid\x20parameter:ALL\x20'+e['length']+'\x20'+b+'\x20entries\x20could\x20not\x20be\x20resolved\x20to\x20an\x20on-chain\x20address'+f+':\x20'+h+'.\x20'+'The\x20operation\x20would\x20write\x20nothing\x20yet\x20still\x20cost\x20gas,\x20so\x20it\x20was\x20refused.\x20'+'Check\x20the\x20spelling\x20in\x20local_mark_list\x20/\x20account_list,\x20create\x20the\x20account/mark\x20first,\x20or\x20pass\x20raw\x200x\x20addresses.');d['push']('PARTIAL\x20RESOLUTION:\x20'+g['length']+'/'+e['length']+'\x20'+b+'\x20entries\x20unresolved\x20and\x20will\x20be\x20DROPPED'+f+':\x20'+h+'.\x20'+'Only\x20the\x20resolvable\x20entities\x20will\x20be\x20written\x20on-chain.');}export async function handlePermissionOperations(a,b,c,d=[]){const e=[a['object'],a['remark'],a['table'],a['entity'],a['admin'],a['apply'],a['builder'],a['owner_receive'],a['um']]['some'](i=>i!==undefined);if(!e)throw new Error('invalid\x20parameter:permission\x20call\x20carries\x20NO\x20operation\x20—\x20every\x20field\x20in\x20data\x20is\x20empty\x20or\x20absent.\x20'+'A\x20schema\x20probe\x20must\x20never\x20be\x20a\x20write:\x20passed\x20through,\x20the\x20SDK\x20would\x20mint\x20a\x20NEW\x20Permission\x20object\x20with\x20empty\x20content,\x20an\x20irreversible\x20on-chain\x20spend.\x20'+'State\x20the\x20operation\x20explicitly:\x20{object:{name,...}}\x20to\x20create\x20a\x20Permission,\x20or\x20object\x20as\x20string\x20+\x20table/entity/admin/remark/um/apply/builder/owner_receive\x20to\x20operate\x20an\x20existing\x20one;\x20use\x20the\x20query\x20tool\x20first\x20to\x20inspect.');validatePermissionIndexes(a),validateEntityOps(a);const f=a['table'];f&&'entities'in(f['entity']??{})&&await resolveManyEntities(f['entity'],'table.'+f['op']+'.entity',b,d);a['admin']&&await resolveManyEntities(a['admin']['addresses'],'admin.addresses',b,d);const g=new CallPermission(a),h=await g['call'](b);return handleCallResult(h,c(a));}
@@ -16,6 +16,24 @@ export declare const OperateSchema: z.ZodPreprocess<z.ZodObject<{
16
16
  }>>;
17
17
  message: z.ZodOptional<z.ZodString>;
18
18
  }, z.core.$strict>>;
19
+ export declare const ProgressReviewClaimSchema: z.ZodObject<{
20
+ reward: z.ZodString;
21
+ guard: z.ZodString;
22
+ }, z.core.$strict>;
23
+ export declare const ProgressReviewSchema: z.ZodObject<{
24
+ repository: z.ZodString;
25
+ key: z.ZodOptional<z.ZodString>;
26
+ rating: z.ZodEnum<{
27
+ like: "like";
28
+ dislike: "dislike";
29
+ }>;
30
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ reward_claim: z.ZodOptional<z.ZodObject<{
32
+ reward: z.ZodString;
33
+ guard: z.ZodString;
34
+ }, z.core.$strict>>;
35
+ write_guard: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strict>;
19
37
  export declare const CallProgress_DataSchema: z.ZodObject<{
20
38
  object: z.ZodString;
21
39
  task: z.ZodOptional<z.ZodString>;
@@ -70,6 +88,20 @@ export declare const CallProgress_DataSchema: z.ZodObject<{
70
88
  digest: z.ZodOptional<z.ZodString>;
71
89
  }, z.core.$strict>>;
72
90
  }, z.core.$strict>, z.ZodLiteral<"recently">]>>;
91
+ review: z.ZodOptional<z.ZodObject<{
92
+ repository: z.ZodString;
93
+ key: z.ZodOptional<z.ZodString>;
94
+ rating: z.ZodEnum<{
95
+ like: "like";
96
+ dislike: "dislike";
97
+ }>;
98
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
99
+ reward_claim: z.ZodOptional<z.ZodObject<{
100
+ reward: z.ZodString;
101
+ guard: z.ZodString;
102
+ }, z.core.$strict>>;
103
+ write_guard: z.ZodOptional<z.ZodString>;
104
+ }, z.core.$strict>>;
73
105
  }, z.core.$strict>;
74
106
  export declare const CallProgress_InputSchema: z.ZodObject<{
75
107
  data: z.ZodObject<{
@@ -126,6 +158,20 @@ export declare const CallProgress_InputSchema: z.ZodObject<{
126
158
  digest: z.ZodOptional<z.ZodString>;
127
159
  }, z.core.$strict>>;
128
160
  }, z.core.$strict>, z.ZodLiteral<"recently">]>>;
161
+ review: z.ZodOptional<z.ZodObject<{
162
+ repository: z.ZodString;
163
+ key: z.ZodOptional<z.ZodString>;
164
+ rating: z.ZodEnum<{
165
+ like: "like";
166
+ dislike: "dislike";
167
+ }>;
168
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
169
+ reward_claim: z.ZodOptional<z.ZodObject<{
170
+ reward: z.ZodString;
171
+ guard: z.ZodString;
172
+ }, z.core.$strict>>;
173
+ write_guard: z.ZodOptional<z.ZodString>;
174
+ }, z.core.$strict>>;
129
175
  }, z.core.$strict>;
130
176
  env: z.ZodOptional<z.ZodObject<{
131
177
  account: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -1 +1 @@
1
- import{z}from'zod';import{CallEnvSchema,SubmissionCallSchema,ObjectsSchema}from'./base.js';import{ProgressNamedOperatorSchema}from'./machine.js';import{NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';export const ProgressNextSchema=z['object']({'next_node_name':NameSchema['describe']('Next\x20node\x20name.'),'forward':NameSchema['describe']('Next\x20forward\x20name.')})['strict']()['describe']('Specify\x20a\x20specific\x20operation\x20between\x20current\x20node\x20and\x20next\x20node.');export const OperateSchema=z['preprocess'](a=>{if(a&&typeof a==='object'&&!Array['isArray'](a)){const b=a;if(b['op']===undefined&&'hold'in b){const c=b['hold'];typeof c==='boolean'&&(b['op']=c?'hold':'next',delete b['hold']);}b['op']===undefined&&!('hold'in b)&&(b['op']='next');}return a;},z['object']({'operation':ProgressNextSchema,'op':z['enum'](['next','hold','unhold','adminUnhold'])['default']('next')['describe']('Operation\x20type\x20on\x20the\x20forward\x20(CANONICAL\x20form\x20—\x20prefer\x20this).\x20DEFAULT:\x20\x27next\x27\x20when\x20omitted.\x20'+'\x27next\x27\x20=\x20advance\x20the\x20forward\x20(accomplish);\x20'+'\x27hold\x27\x20=\x20set\x20hold\x20to\x20block\x20the\x20forward;\x20'+'\x27unhold\x27\x20=\x20self-unhold,\x20release\x20own\x20hold\x20(no\x20224\x20permission\x20needed);\x20'+'\x27adminUnhold\x27\x20=\x20force-release\x20hold\x20via\x20224\x20permission\x20(PROGRESS_UNHOLD).\x20'+'LEGACY\x20ALIAS:\x20`hold:\x20boolean`\x20is\x20auto-converted\x20to\x20`op`\x20—\x20`hold:true`→`op:\x27hold\x27`,\x20`hold:false`→`op:\x27next\x27`.\x20'+'New\x20code\x20should\x20use\x20`op`\x20directly.'),'message':z['string']()['optional']()['describe']('Operation\x20result\x20message.')})['strict']())['describe']('Advance\x20Progress\x20object.\x20CANONICAL\x20form:\x20{operation,\x20op:\x20\x27next\x27|\x27hold\x27|\x27unhold\x27|\x27adminUnhold\x27,\x20message?}\x20—\x20\x27next\x27\x20is\x20the\x20default\x20when\x20op\x20is\x20omitted.\x20LEGACY\x20form\x20(auto-converted):\x20{operation,\x20hold:\x20boolean,\x20message?}\x20where\x20hold:true→op:\x27hold\x27,\x20hold:false→op:\x27next\x27.');export const CallProgress_DataSchema=z['object']({'object':NameOrAddressSchema['describe']('Progress\x20object\x20ID\x20or\x20name.'),'task':NameOrAddressSchema['optional']()['describe']('Task\x20ID.\x20Cannot\x20be\x20changed\x20after\x20setting.'),'repository':ObjectsSchema['optional']()['describe']('Consensus\x20data\x20Repository\x20object\x20list.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Manage\x20operators\x20for\x20Progress\x20permission\x20namespace.'),'operate':OperateSchema['optional']()['describe']('Advance\x20Progress\x20object.\x20op\x20field\x20selects\x20the\x20operation:\x20next/hold/unhold/adminUnhold.'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Progress\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20the\x20bound\x20Machine\x27s\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS)})['strict']()['describe']('On-chain,\x20operate\x20an\x20existing\x20Progress\x20object.');export const CallProgress_InputSchema=z['object']({'data':CallProgress_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();
1
+ import{z}from'zod';import{CallEnvSchema,SubmissionCallSchema,ObjectsSchema}from'./base.js';import{ProgressNamedOperatorSchema}from'./machine.js';import{NameOrAddressSchema,NameSchema,ReceivedObjectsOrRecentlySchema,RECEIVE_FORMAT_BLOCK_OBJECTS}from'../common/index.js';export const ProgressNextSchema=z['object']({'next_node_name':NameSchema['describe']('Next\x20node\x20name.'),'forward':NameSchema['describe']('Next\x20forward\x20name.')})['strict']()['describe']('Specify\x20a\x20specific\x20operation\x20between\x20current\x20node\x20and\x20next\x20node.');export const OperateSchema=z['preprocess'](a=>{if(a&&typeof a==='object'&&!Array['isArray'](a)){const b=a;if(b['op']===undefined&&'hold'in b){const c=b['hold'];typeof c==='boolean'&&(b['op']=c?'hold':'next',delete b['hold']);}b['op']===undefined&&!('hold'in b)&&(b['op']='next');}return a;},z['object']({'operation':ProgressNextSchema,'op':z['enum'](['next','hold','unhold','adminUnhold'])['default']('next')['describe']('Operation\x20type\x20on\x20the\x20forward\x20(CANONICAL\x20form\x20—\x20prefer\x20this).\x20DEFAULT:\x20\x27next\x27\x20when\x20omitted.\x20'+'\x27next\x27\x20=\x20advance\x20the\x20forward\x20(accomplish);\x20'+'\x27hold\x27\x20=\x20set\x20hold\x20to\x20block\x20the\x20forward;\x20'+'\x27unhold\x27\x20=\x20self-unhold,\x20release\x20own\x20hold\x20(no\x20224\x20permission\x20needed);\x20'+'\x27adminUnhold\x27\x20=\x20force-release\x20hold\x20via\x20224\x20permission\x20(PROGRESS_UNHOLD).\x20'+'LEGACY\x20ALIAS:\x20`hold:\x20boolean`\x20is\x20auto-converted\x20to\x20`op`\x20—\x20`hold:true`→`op:\x27hold\x27`,\x20`hold:false`→`op:\x27next\x27`.\x20'+'New\x20code\x20should\x20use\x20`op`\x20directly.'),'message':z['string']()['optional']()['describe']('Operation\x20result\x20message.')})['strict']())['describe']('Advance\x20Progress\x20object.\x20CANONICAL\x20form:\x20{operation,\x20op:\x20\x27next\x27|\x27hold\x27|\x27unhold\x27|\x27adminUnhold\x27,\x20message?}\x20—\x20\x27next\x27\x20is\x20the\x20default\x20when\x20op\x20is\x20omitted.\x20LEGACY\x20form\x20(auto-converted):\x20{operation,\x20hold:\x20boolean,\x20message?}\x20where\x20hold:true→op:\x27hold\x27,\x20hold:false→op:\x27next\x27.');export const ProgressReviewClaimSchema=z['object']({'reward':NameOrAddressSchema['describe']('Reward\x20object\x20ID\x20or\x20name\x20to\x20claim\x20from.\x20Resolve\x20it\x20from\x20the\x20service\x27s\x20rewards\x20list\x20(service_panorama\x20/\x20service_quote\x20reward_terms)\x20—\x20never\x20guess\x20an\x20address.'),'guard':NameOrAddressSchema['describe']('Guard\x20object\x20that\x20gates\x20this\x20claim.\x20MUST\x20be\x20covered\x20by\x20this\x20call\x27s\x20passport\x20submission\x20(one\x20of\x20the\x20submission.guard\x20entries,\x20same\x20address),\x20otherwise\x20the\x20chain\x20aborts.')})['strict']()['describe']('Claim\x20a\x20review\x20incentive\x20reward\x20after\x20the\x20forward\x20succeeds\x20(review_mode\x20\x27review_reward\x27\x20services).');export const ProgressReviewSchema=z['object']({'repository':NameOrAddressSchema['describe']('Repository\x20object\x20ID\x20or\x20name\x20that\x20stores\x20the\x20structured\x20reputation\x20record.\x20Its\x20matching\x20policy\x20key\x20should\x20use\x20id_from=Signer\x20(one\x20record\x20per\x20buyer,\x20rewrite\x20=\x20own-record\x20overwrite)\x20and\x20accept\x20a\x20JSON\x20payload\x20{rating,\x20tags?,\x20orderRef?}.\x20PREFERRED:\x20the\x20service\x27s\x20review\x20repository\x20EMITTED\x20BY\x20THE\x20BUILD\x20PLAN\x20when\x20review_mode\x20was\x20set\x20(AR-1)\x20—\x20resolve\x20it\x20from\x20the\x20service\x27s\x20repositories\x20list\x20(service_panorama\x20/\x20onchain_objects,\x20name\x20suffix\x20\x27_review\x27)\x20—\x20never\x20guess\x20an\x20address.'),'key':NameSchema['optional']()['describe']('Data\x20key\x20(policy\x20rule\x20name)\x20to\x20write\x20under.\x20Default\x20\x27review\x27.'),'rating':z['enum'](['like','dislike'])['describe']('Buyer\x20rating.\x20Ratings\x20NEVER\x20affect\x20settlement\x20(the\x20settlement\x20anchor\x20is\x20the\x20delivered\x20moment,\x20not\x20this\x20review)\x20—\x20this\x20is\x20reputation\x20only.'),'tags':z['array'](NameSchema)['optional']()['describe']('Optional\x20structured\x20tags\x20for\x20statistics\x20and\x20market\x20exposure\x20(e.g.\x20[\x27fast_delivery\x27,\x27good_quality\x27]).'),'reward_claim':ProgressReviewClaimSchema['optional']()['describe']('Optional\x20reward\x20claim\x20chained\x20after\x20the\x20repository\x20write\x20(fail-isolated:\x20a\x20failed\x20claim\x20never\x20undoes\x20the\x20write\x20or\x20the\x20forward).'),'write_guard':NameOrAddressSchema['optional']()['describe']('Policy\x20write\x20guard\x20for\x20the\x20repository\x20write.\x20DEFAULT:\x20the\x20first\x20guard\x20of\x20this\x20call\x27s\x20passport\x20submission\x20(the\x20review-edge\x20credential).\x20Required\x20when\x20the\x20matched\x20Repository\x20policy\x20uses\x20id_from=None\x20with\x20declared\x20guards\x20(the\x20chain\x20aborts\x20with\x2022,\x20E_POLICY_WRITE_GUARD_REQUIRED,\x20otherwise).\x20The\x20guard\x20MUST\x20be\x20covered\x20by\x20the\x20passport\x20submission.')})['strict']()['describe']('Structured\x20buyer\x20review,\x20chained\x20after\x20THIS\x20forward\x20succeeds.\x20Carrier\x20split\x20(do\x20not\x20duplicate):\x20the\x20review\x20TEXT\x20goes\x20in\x20operate.message\x20(permanent\x20on-chain\x20History);\x20THIS\x20block\x20writes\x20only\x20the\x20structured\x20reputation\x20record\x20(+\x20optional\x20reward\x20claim)\x20from\x20the\x20same\x20passport\x20submission.\x20Both\x20chained\x20steps\x20are\x20fail-isolated\x20and\x20reported\x20in\x20semantic.review_steps.');export const CallProgress_DataSchema=z['object']({'object':NameOrAddressSchema['describe']('Progress\x20object\x20ID\x20or\x20name.'),'task':NameOrAddressSchema['optional']()['describe']('Task\x20ID.\x20Cannot\x20be\x20changed\x20after\x20setting.'),'repository':ObjectsSchema['optional']()['describe']('Consensus\x20data\x20Repository\x20object\x20list.'),'progress_namedOperator':ProgressNamedOperatorSchema['optional']()['describe']('Manage\x20operators\x20for\x20Progress\x20permission\x20namespace.'),'operate':OperateSchema['optional']()['describe']('Advance\x20Progress\x20object.\x20op\x20field\x20selects\x20the\x20operation:\x20next/hold/unhold/adminUnhold.'),'owner_receive':ReceivedObjectsOrRecentlySchema['optional']()['describe']('Unwrap\x20CoinWrapper\x20objects\x20and\x20other\x20objects\x20received\x20by\x20this\x20Progress\x20object\x20and\x20send\x20them\x20to\x20the\x20owner\x20of\x20the\x20bound\x20Machine\x27s\x20Permission\x20object.'+RECEIVE_FORMAT_BLOCK_OBJECTS),'review':ProgressReviewSchema['optional']()['describe']('Structured\x20review\x20composite\x20(REVIEW\x20component):\x20after\x20this\x20forward\x20succeeds,\x20write\x20the\x20structured\x20reputation\x20record\x20into\x20a\x20Repository\x20(+\x20optional\x20reward\x20claim),\x20reusing\x20this\x20call\x27s\x20passport\x20submission.\x20Requires\x20operate\x20(the\x20chain\x20fires\x20only\x20after\x20a\x20successful\x20forward).')})['strict']()['describe']('On-chain,\x20operate\x20an\x20existing\x20Progress\x20object.');export const CallProgress_InputSchema=z['object']({'data':CallProgress_DataSchema,'env':CallEnvSchema['optional'](),'submission':SubmissionCallSchema['optional']()})['strict']();