@wowok/agent-mcp 3.4.1 → 3.4.3

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 (323) hide show
  1. package/dist/.build-stamp.json +5 -0
  2. package/dist/chain-semantics/composition-truth.js +1 -1
  3. package/dist/chain-semantics/eval-order.js +1 -1
  4. package/dist/chain-semantics/field-capability.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/guard-verbs.js +1 -1
  8. package/dist/chain-semantics/object-graph.js +1 -1
  9. package/dist/composition/audit.js +1 -1
  10. package/dist/composition/compile.d.ts +10 -3
  11. package/dist/composition/compile.js +1 -1
  12. package/dist/composition/emit-phases.d.ts +30 -2
  13. package/dist/composition/emit-phases.js +1 -1
  14. package/dist/composition/guard-fill.d.ts +8 -0
  15. package/dist/composition/guard-fill.js +1 -1
  16. package/dist/composition/inflight.js +1 -1
  17. package/dist/composition/input-normalize.js +1 -1
  18. package/dist/composition/materialize.d.ts +2 -0
  19. package/dist/composition/materialize.js +1 -1
  20. package/dist/composition/mode-gates.js +1 -1
  21. package/dist/composition/param-disclosure.js +1 -1
  22. package/dist/composition/plan-retry-ledger.d.ts +16 -0
  23. package/dist/composition/plan-retry-ledger.js +1 -1
  24. package/dist/composition/plan.d.ts +15 -1
  25. package/dist/composition/plan.js +1 -1
  26. package/dist/config/config-audit.spec.js +1 -1
  27. package/dist/config/judgment.d.ts +5 -0
  28. package/dist/config/judgment.js +1 -1
  29. package/dist/evaluation/builtins/arbitration-score.d.ts +1 -0
  30. package/dist/evaluation/builtins/arbitration-score.js +1 -1
  31. package/dist/evaluation/builtins/demand-match.js +1 -1
  32. package/dist/evaluation/builtins/graph-service.d.ts +8 -0
  33. package/dist/evaluation/builtins/graph-service.js +1 -1
  34. package/dist/evaluation/capability.d.ts +9 -0
  35. package/dist/evaluation/engine.js +1 -1
  36. package/dist/evaluation/extract.d.ts +9 -1
  37. package/dist/evaluation/extract.js +1 -1
  38. package/dist/evaluation/match-operation.js +1 -1
  39. package/dist/evaluation/match-policy.d.ts +5 -3
  40. package/dist/evaluation/match-policy.js +1 -1
  41. package/dist/evaluation/standards.d.ts +1 -0
  42. package/dist/evaluation/standards.js +1 -1
  43. package/dist/evaluation/structured-lines.js +1 -1
  44. package/dist/evaluation/types.d.ts +1 -0
  45. package/dist/extensions/capability.js +1 -1
  46. package/dist/extensions/industry-pack.js +1 -1
  47. package/dist/extensions/modes.js +1 -1
  48. package/dist/harness/recover.js +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/intent/types.d.ts +1 -1
  51. package/dist/intent/types.js +1 -1
  52. package/dist/knowledge/allocation-ledger.js +1 -1
  53. package/dist/knowledge/allocator-rail-verifier.d.ts +17 -1
  54. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  55. package/dist/knowledge/arb-fund-facts.d.ts +7 -0
  56. package/dist/knowledge/arb-fund-facts.js +1 -1
  57. package/dist/knowledge/arbitration-rail-verifier.d.ts +35 -0
  58. package/dist/knowledge/arbitration-rail-verifier.js +1 -0
  59. package/dist/knowledge/arbitration-templates.js +1 -1
  60. package/dist/knowledge/audit-rules.d.ts +13 -1
  61. package/dist/knowledge/audit-rules.js +1 -1
  62. package/dist/knowledge/baselines/judgment-baselines.json +1 -0
  63. package/dist/knowledge/baselines/rules/guard.json +7 -6
  64. package/dist/knowledge/baselines/rules/progress.json +4 -4
  65. package/dist/knowledge/baselines/rules/reward.json +118 -3
  66. package/dist/knowledge/builtin-templates.d.ts +19 -2
  67. package/dist/knowledge/builtin-templates.js +1 -1
  68. package/dist/knowledge/chain-query-registry.d.ts +14 -0
  69. package/dist/knowledge/chain-query-registry.js +1 -0
  70. package/dist/knowledge/event-semantics.js +1 -1
  71. package/dist/knowledge/fee-param-bindings.d.ts +2 -0
  72. package/dist/knowledge/fee-param-bindings.js +1 -1
  73. package/dist/knowledge/getting-started.js +1 -1
  74. package/dist/knowledge/guard-binding-table.js +1 -1
  75. package/dist/knowledge/guard-binding-verifier.d.ts +7 -0
  76. package/dist/knowledge/guard-binding-verifier.js +1 -1
  77. package/dist/knowledge/guard-bindings.js +1 -1
  78. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  79. package/dist/knowledge/guard-design-patterns.js +1 -1
  80. package/dist/knowledge/guard-field-cognition.js +1 -1
  81. package/dist/knowledge/guard-host-context.js +1 -1
  82. package/dist/knowledge/guard-lint.js +1 -1
  83. package/dist/knowledge/guard-node-gates.d.ts +3 -1
  84. package/dist/knowledge/guard-node-gates.js +1 -1
  85. package/dist/knowledge/guard-puzzle.js +1 -1
  86. package/dist/knowledge/guard-render.js +1 -1
  87. package/dist/knowledge/guard-risk.js +1 -1
  88. package/dist/knowledge/guard-templates.d.ts +2 -1
  89. package/dist/knowledge/guard-templates.js +1 -1
  90. package/dist/knowledge/guard-translation.js +1 -1
  91. package/dist/knowledge/index.d.ts +2 -0
  92. package/dist/knowledge/index.js +1 -1
  93. package/dist/knowledge/industry-registry.js +1 -1
  94. package/dist/knowledge/jsonrpc-enum.js +1 -1
  95. package/dist/knowledge/knob-docs.js +1 -1
  96. package/dist/knowledge/param-schema.d.ts +1 -1
  97. package/dist/knowledge/param-schema.js +1 -1
  98. package/dist/knowledge/param-tiers.d.ts +2 -0
  99. package/dist/knowledge/param-tiers.js +1 -1
  100. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  101. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  102. package/dist/knowledge/pattern-resolutions.js +1 -1
  103. package/dist/knowledge/product-detail-source.d.ts +37 -0
  104. package/dist/knowledge/product-detail-source.js +1 -0
  105. package/dist/knowledge/product-doc-b5.d.ts +16 -0
  106. package/dist/knowledge/product-doc-b5.js +1 -0
  107. package/dist/knowledge/progress-ledger.js +1 -1
  108. package/dist/knowledge/projection.spec.js +1 -1
  109. package/dist/knowledge/publish-gate.d.ts +20 -0
  110. package/dist/knowledge/publish-gate.js +1 -0
  111. package/dist/knowledge/publish-readiness.d.ts +25 -0
  112. package/dist/knowledge/publish-readiness.js +1 -0
  113. package/dist/knowledge/publish-surface-contract.d.ts +16 -0
  114. package/dist/knowledge/publish-surface-contract.js +1 -0
  115. package/dist/knowledge/rail-exit-satisfiability.d.ts +25 -0
  116. package/dist/knowledge/rail-exit-satisfiability.js +1 -0
  117. package/dist/knowledge/reward-ledger.d.ts +1 -1
  118. package/dist/knowledge/reward-ledger.js +1 -1
  119. package/dist/knowledge/reward-risk.d.ts +1 -1
  120. package/dist/knowledge/reward-risk.js +1 -1
  121. package/dist/knowledge/scenario-modes.js +1 -1
  122. package/dist/knowledge/service-ledger.d.ts +3 -1
  123. package/dist/knowledge/service-ledger.js +1 -1
  124. package/dist/knowledge/template-loader.d.ts +41 -2
  125. package/dist/knowledge/template-loader.js +1 -1
  126. package/dist/knowledge/template-registry.js +1 -1
  127. package/dist/knowledge/template-scanner.d.ts +17 -0
  128. package/dist/knowledge/template-scanner.js +1 -1
  129. package/dist/knowledge/template-test-profiles.js +1 -1
  130. package/dist/knowledge/workflow-guidance.d.ts +4 -0
  131. package/dist/knowledge/workflow-guidance.js +1 -1
  132. package/dist/monitor/MonitorLoop.js +1 -1
  133. package/dist/monitor/normalize.d.ts +1 -1
  134. package/dist/monitor/normalize.js +1 -1
  135. package/dist/monitor/types.js +1 -1
  136. package/dist/participation/customer-interest.d.ts +4 -0
  137. package/dist/participation/customer-interest.js +1 -1
  138. package/dist/participation/game-context.js +1 -1
  139. package/dist/participation/node-action-advisor.d.ts +4 -0
  140. package/dist/participation/node-action-advisor.js +1 -1
  141. package/dist/participation/radar-core.js +1 -1
  142. package/dist/participation/time-window.d.ts +11 -0
  143. package/dist/participation/time-window.js +1 -1
  144. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  145. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  146. package/dist/playbooks/service-build/merchant-guide.d.ts +28 -3
  147. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  148. package/dist/playbooks/service-build/object-panorama.d.ts +4 -0
  149. package/dist/playbooks/service-build/object-panorama.js +1 -1
  150. package/dist/playbooks/service-build/participation-radar.js +1 -1
  151. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  152. package/dist/playbooks/service-build/service-panorama.js +1 -1
  153. package/dist/playbooks/service-build/service-quote.js +1 -1
  154. package/dist/review/index.js +1 -1
  155. package/dist/review/order.js +1 -1
  156. package/dist/safety/confirm-gate.js +1 -1
  157. package/dist/schema/benchmark-migration/index.d.ts +24 -0
  158. package/dist/schema/benchmark-migration/index.js +1 -1
  159. package/dist/schema/call/allocation.d.ts +11 -7
  160. package/dist/schema/call/allocation.js +1 -1
  161. package/dist/schema/call/arbitration.d.ts +4 -0
  162. package/dist/schema/call/arbitration.js +1 -1
  163. package/dist/schema/call/base.d.ts +28 -0
  164. package/dist/schema/call/base.js +1 -1
  165. package/dist/schema/call/bridge.d.ts +21 -0
  166. package/dist/schema/call/contact.d.ts +4 -0
  167. package/dist/schema/call/demand.d.ts +4 -0
  168. package/dist/schema/call/guard.d.ts +12 -0
  169. package/dist/schema/call/handler.d.ts +1 -0
  170. package/dist/schema/call/handler.js +1 -1
  171. package/dist/schema/call/machine.d.ts +16 -8
  172. package/dist/schema/call/normalize-error.d.ts +1 -0
  173. package/dist/schema/call/normalize-error.js +1 -0
  174. package/dist/schema/call/order.d.ts +7 -3
  175. package/dist/schema/call/order.js +1 -1
  176. package/dist/schema/call/payment.d.ts +7 -3
  177. package/dist/schema/call/permission.d.ts +4 -0
  178. package/dist/schema/call/personal.d.ts +4 -0
  179. package/dist/schema/call/progress.d.ts +4 -0
  180. package/dist/schema/call/progress.js +1 -1
  181. package/dist/schema/call/proof.d.ts +8 -0
  182. package/dist/schema/call/proof.js +1 -1
  183. package/dist/schema/call/receipt.js +1 -1
  184. package/dist/schema/call/repository.d.ts +4 -0
  185. package/dist/schema/call/reward.d.ts +6 -2
  186. package/dist/schema/call/reward.js +1 -1
  187. package/dist/schema/call/semantic.d.ts +2 -2
  188. package/dist/schema/call/semantic.js +1 -1
  189. package/dist/schema/call/service.d.ts +21 -7
  190. package/dist/schema/call/service.js +1 -1
  191. package/dist/schema/call/treasury.d.ts +10 -6
  192. package/dist/schema/common/index.js +1 -1
  193. package/dist/schema/envelope-unify.d.ts +1 -0
  194. package/dist/schema/envelope-unify.js +1 -1
  195. package/dist/schema/evaluation/index.d.ts +43 -0
  196. package/dist/schema/evaluation/index.js +1 -1
  197. package/dist/schema/goal/index.d.ts +14 -2
  198. package/dist/schema/goal/planning.d.ts +18 -0
  199. package/dist/schema/goal/planning.js +1 -1
  200. package/dist/schema/intent-radar/index.d.ts +12 -0
  201. package/dist/schema/intent-radar/index.js +1 -1
  202. package/dist/schema/keeper/index.d.ts +1 -0
  203. package/dist/schema/local/index.d.ts +10 -0
  204. package/dist/schema/local/index.js +1 -1
  205. package/dist/schema/local/wip.js +1 -1
  206. package/dist/schema/messenger/index.d.ts +1 -0
  207. package/dist/schema/messenger/index.js +1 -1
  208. package/dist/schema/operations.d.ts +98 -13
  209. package/dist/schema/operations.js +1 -1
  210. package/dist/schema/persona/index.d.ts +22 -0
  211. package/dist/schema/query/bi.d.ts +28 -2
  212. package/dist/schema/query/bi.js +1 -1
  213. package/dist/schema/query/index.d.ts +67 -61
  214. package/dist/schema/query/index.js +1 -1
  215. package/dist/schema/schema-version.js +1 -1
  216. package/dist/schema/workflow/index.js +1 -1
  217. package/dist/schema-query-impl/index.d.ts +1 -0
  218. package/dist/schema-query-impl/index.js +1 -1
  219. package/dist/schemas/account_operation.output.json +2 -1
  220. package/dist/schemas/benchmark_migration_operation.output.json +74 -0
  221. package/dist/schemas/benchmark_migration_operation.schema.json +33 -1
  222. package/dist/schemas/bridge_operation.output.json +2 -1
  223. package/dist/schemas/bridge_operation.schema.json +40 -0
  224. package/dist/schemas/evaluation_operation.output.json +96 -0
  225. package/dist/schemas/evaluation_operation.schema.json +39 -0
  226. package/dist/schemas/goal_operation.schema.json +32 -0
  227. package/dist/schemas/guard2file.schema.json +8 -0
  228. package/dist/schemas/index.json +1 -1
  229. package/dist/schemas/intent_radar.output.json +10 -2
  230. package/dist/schemas/intent_radar.schema.json +5 -1
  231. package/dist/schemas/keeper_operation.output.json +2 -1
  232. package/dist/schemas/local_cache_operation.output.json +2 -1
  233. package/dist/schemas/local_history_operation.output.json +2 -1
  234. package/dist/schemas/local_info_operation.output.json +2 -1
  235. package/dist/schemas/local_mark_operation.output.json +2 -1
  236. package/dist/schemas/local_mark_operation.schema.json +10 -1
  237. package/dist/schemas/machineNode2file.schema.json +8 -0
  238. package/dist/schemas/messenger_operation.output.json +2 -1
  239. package/dist/schemas/messenger_operation.schema.json +2 -1
  240. package/dist/schemas/monitor_events.output.json +2 -1
  241. package/dist/schemas/monitor_subscription.output.json +2 -1
  242. package/dist/schemas/onchain_events.output.json +206 -13
  243. package/dist/schemas/onchain_events.schema.json +16 -0
  244. package/dist/schemas/onchain_operations.output.json +22 -3
  245. package/dist/schemas/onchain_operations.schema.json +982 -327
  246. package/dist/schemas/onchain_operations_allocation.schema.json +20 -13
  247. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -1
  248. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  249. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  250. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -0
  251. package/dist/schemas/onchain_operations_gen_proof.schema.json +8 -0
  252. package/dist/schemas/onchain_operations_guard.schema.json +655 -115
  253. package/dist/schemas/onchain_operations_machine.schema.json +11 -3
  254. package/dist/schemas/onchain_operations_order.schema.json +14 -11
  255. package/dist/schemas/onchain_operations_payment.schema.json +12 -9
  256. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  257. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  258. package/dist/schemas/onchain_operations_progress.schema.json +9 -1
  259. package/dist/schemas/onchain_operations_proof.schema.json +9 -1
  260. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  261. package/dist/schemas/onchain_operations_reward.schema.json +14 -11
  262. package/dist/schemas/onchain_operations_service.schema.json +25 -12
  263. package/dist/schemas/onchain_operations_treasury.schema.json +17 -19
  264. package/dist/schemas/onchain_table_data.output.json +52 -10
  265. package/dist/schemas/persona_operation.output.json +57 -0
  266. package/dist/schemas/persona_operation.schema.json +9 -0
  267. package/dist/schemas/query_toolkit.output.json +326 -23
  268. package/dist/schemas/query_toolkit.schema.json +18 -5
  269. package/dist/schemas/wip_file.output.json +2 -2
  270. package/dist/schemas/wip_file.schema.json +2 -2
  271. package/dist/schemas/workflow_operation.schema.json +1 -1
  272. package/dist/tools/error-catalog.d.ts +17 -0
  273. package/dist/tools/error-catalog.js +1 -0
  274. package/dist/tools/handlers/benchmark-migration.d.ts +29 -8
  275. package/dist/tools/handlers/benchmark-migration.js +1 -1
  276. package/dist/tools/handlers/config.js +1 -1
  277. package/dist/tools/handlers/entry-edge-recipe.d.ts +101 -0
  278. package/dist/tools/handlers/entry-edge-recipe.js +1 -0
  279. package/dist/tools/handlers/escrow-deficit.d.ts +10 -0
  280. package/dist/tools/handlers/escrow-deficit.js +1 -0
  281. package/dist/tools/handlers/evaluation.js +1 -1
  282. package/dist/tools/handlers/fund-rail-recipe.d.ts +10 -0
  283. package/dist/tools/handlers/fund-rail-recipe.js +1 -0
  284. package/dist/tools/handlers/intent-radar.js +1 -1
  285. package/dist/tools/handlers/local.js +1 -1
  286. package/dist/tools/handlers/mark-namespace.d.ts +30 -0
  287. package/dist/tools/handlers/mark-namespace.js +1 -0
  288. package/dist/tools/handlers/messenger.js +1 -1
  289. package/dist/tools/handlers/onchain-name-registration.d.ts +1 -0
  290. package/dist/tools/handlers/onchain-name-registration.js +1 -1
  291. package/dist/tools/handlers/onchain-name-registration.spec.js +1 -1
  292. package/dist/tools/handlers/onchain.d.ts +40 -1
  293. package/dist/tools/handlers/onchain.js +1 -1
  294. package/dist/tools/handlers/publish-binding-echo.d.ts +22 -0
  295. package/dist/tools/handlers/publish-binding-echo.js +1 -0
  296. package/dist/tools/handlers/query.d.ts +1 -1
  297. package/dist/tools/handlers/query.js +1 -1
  298. package/dist/tools/handlers/review-chain.d.ts +1 -0
  299. package/dist/tools/handlers/review-chain.js +1 -1
  300. package/dist/tools/handlers/schema-query.js +1 -1
  301. package/dist/tools/handlers/stale-build-check.d.ts +9 -0
  302. package/dist/tools/handlers/stale-build-check.js +1 -0
  303. package/dist/tools/handlers/submission-assembly.d.ts +55 -0
  304. package/dist/tools/handlers/submission-assembly.js +1 -0
  305. package/dist/tools/handlers/wip.js +1 -1
  306. package/dist/tools/index.d.ts +1 -0
  307. package/dist/tools/index.js +1 -1
  308. package/dist/tools/move-fn-index.gen.js +1 -1
  309. package/dist/tools/publish-gate-state.d.ts +5 -0
  310. package/dist/tools/publish-gate-state.js +1 -0
  311. package/dist/tools/registry/business.js +1 -1
  312. package/dist/tools/registry/onchain.js +1 -1
  313. package/dist/tools/registry/query.js +1 -1
  314. package/dist/tools/retry.js +1 -1
  315. package/dist/tools/runtime-health.js +1 -1
  316. package/dist/tools/shared.js +1 -1
  317. package/dist/tools/upgrade-check.d.ts +1 -0
  318. package/dist/tools/upgrade-check.js +1 -1
  319. package/dist/tools/wip-verify-ledger.d.ts +2 -0
  320. package/dist/tools/wip-verify-ledger.js +1 -1
  321. package/dist/tools/wrap.d.ts +15 -1
  322. package/dist/tools/wrap.js +1 -1
  323. package/package.json +5 -3
@@ -1 +1 @@
1
- import{handleWatchQueryOperations,handleOnchainTableData,handleOnchainEvents,handleWowokInfo}from'../handlers/query.js';import{handleSchemaQuery}from'../handlers/schema-query.js';import{createToolMeta,WatchQueryOperationsSchema,WatchQueryOperationsResultSchema,OnchainTableDataSchema,OnchainTableDataResultSchema,OnchainEventsInputSchema,OnchainEventsResultSchema,ProtocolInfoQuerySchema,ProtocolInfoResultSchema,SchemaQueryInputSchema,SchemaQueryOutputSchema}from'../../schema/index.js';export const QUERY_TOOLS=[{'name':'query_toolkit','handler':handleWatchQueryOperations,'timeoutMs':0x493e0,'config':{'title':'🔍\x20Data\x20Query\x20Toolkit','summary':'Query\x20on-chain\x20objects,\x20balances,\x20profiles,\x20history,\x20tokens,\x20topology\x20(21\x20types).','description':'WOWOK\x20data\x20query\x20toolkit\x20—\x2021\x20query\x20types\x20covering\x20local\x20device\x20data\x20and\x20on-chain\x20blockchain\x20data:\x0a\x0a'+'LOCAL\x20(device-only,\x20never\x20on-chain):\x0a'+'1.\x20local_mark_list\x20—\x20Query\x20your\x20LOCAL\x20address\x20book:\x20maps\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20optional\x20tags.\x20Use\x20to\x20resolve\x20names→addresses\x20or\x20find\x20addresses\x20by\x20tag.\x0a'+'2.\x20account_list\x20—\x20Query\x20your\x20LOCAL\x20accounts\x20(addresses,\x20messenger\x20status,\x20suspension\x20state).\x20Use\x20filter.includePubkey=true\x20to\x20also\x20include\x20public\x20keys.\x20Use\x20to\x20discover\x20available\x20accounts\x20before\x20operations.\x20NOTE:\x20local\x20accounts\x20are\x20just\x20ONE\x20form\x20of\x20distributed\x20account\x20—\x20WoWok\x20serves\x20ANY\x20account\x20on\x20ANY\x20device;\x20every\x20on-chain/BI\x20query\x20below\x20also\x20accepts\x20any\x200x\x20address\x20(LocalMark\x20names\x20are\x20a\x20convenience,\x20not\x20a\x20requirement).\x0a'+'3.\x20local_info_list\x20—\x20Query\x20your\x20LOCAL\x20private\x20info:\x20sensitive\x20data\x20like\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts\x20stored\x20ONLY\x20on\x20this\x20device.\x0a'+'4.\x20token_list\x20—\x20Query\x20cached\x20token\x20metadata:\x20symbol,\x20decimals,\x20icon\x20URL,\x20description\x20for\x20tokens\x20previously\x20fetched\x20from\x20chain.\x20Use\x20to\x20look\x20up\x20token\x20precision/decimals\x20before\x20performing\x20token\x20operations.\x20Returns:\x20TokenTypeInfo[]\x20(type,\x20alias,\x20name,\x20symbol,\x20decimals,\x20iconUrl).\x0a'+'5.\x20account_balance\x20—\x20Query\x20an\x20account\x27s\x20coin\x20balance\x20OR\x20Paginated\x20coin\x20objects.\x20Use\x20balance=true\x20for\x20total\x20amount,\x20or\x20coin={cursor,limit}\x20to\x20list\x20individual\x20coin\x20objects.\x20Supports\x20multi-token\x20via\x20token_type\x20parameter.\x20Results\x20include\x20`_money_display`\x20with\x20unit-converted\x20values\x20+\x20decimals\x20reminder.\x20LIVE\x20QUERY\x20(no\x20cache\x20—\x20no_cache\x20not\x20needed).\x20If\x20the\x20input\x20is\x20an\x20on-chain\x20OBJECT\x20(e.g.\x20a\x20Treasury\x20mark\x20name),\x20the\x20result\x20auto-routes\x20to\x20that\x20object\x27s\x20\x27balance\x27\x20field\x20with\x20a\x20hint\x20—\x20wallet\x20gas\x20balances\x20vs\x20object\x20funds\x20are\x20different\x20concepts.\x0a'+'6.\x20local_names\x20—\x20Query\x20local\x20names\x20by\x20a\x20list\x20of\x20addresses.\x20For\x20each\x20address,\x20returns\x20the\x20resolved\x20account\x20name\x20(if\x20exists)\x20and\x20local\x20mark\x20name\x20(if\x20exists).\x20Returns:\x20{\x20account?,\x20local_mark?,\x20address\x20}[].\x0a\x0a'+'ONCHAIN\x20(blockchain):\x0a'+'7.\x20onchain_personal_profile\x20—\x20Query\x20any\x20user\x27s\x20PUBLIC\x20on-chain\x20profile:\x20social\x20links,\x20reputation\x20(likes/dislikes),\x20personal\x20info\x20records,\x20voting\x20history,\x20referrer.\x0a'+'8.\x20onchain_objects\x20—\x20Batch\x20query\x20on-chain\x20WOWOK\x20objects\x20by\x20ID\x20or\x20name:\x20supports\x20Service,\x20Machine,\x20Order,\x20Treasury,\x20Reward,\x20Arb,\x20Personal,\x20Contact,\x20and\x20more.\x20Monetary\x20fields\x20include\x20`_money_display`\x20annotations\x20(token\x20type\x20from\x20the\x20object\x27s\x20immutable\x20generic).\x0a'+'9.\x20onchain_received\x20—\x20Query\x20objects\x20(Payments,\x20Tokens,\x20NFTs)\x20received\x20by\x20a\x20specific\x20object.\x20Supports\x20pagination\x20and\x20type\x20filter.\x20CoinWrapper\x20mode\x20returns\x20token-aware\x20`_money_display`;\x20for\x20an\x20OBJECT\x20holder\x20(e.g.\x20an\x20Order\x20escrow)\x20whose\x20wrappers\x20the\x20owned-object\x20index\x20cannot\x20see,\x20the\x20records\x20are\x20recovered\x20from\x20the\x20allocation\x20transaction\x20effects\x20and\x20the\x20envelope\x20sets\x20`read_path=\x27allocation-transaction-effects\x27`.\x0a'+'10.\x20onchain_transaction\x20—\x20Verify\x20what\x20a\x20specific\x20transaction\x20did\x20on-chain\x20(status,\x20object\x20changes,\x20balance\x20changes,\x20gas,\x20events).\x20Balance\x20changes\x20include\x20`_money_display`\x20(unit-converted\x20via\x20each\x20change\x27s\x20own\x20coin_type;\x20signed\x20amounts\x20supported).\x0a'+'11.\x20onchain_block\x20—\x20Query\x20ONE\x20checkpoint\x20(block)\x20by\x20sequence\x20number\x20or\x20digest;\x20returns\x20the\x20RAW\x20fullnode\x20checkpoint\x20summary\x20verbatim\x20(sequence,\x20digest,\x20timestamp,\x20tx\x20count,\x20epoch).\x20Block-level\x20facts\x20—\x20distinct\x20from\x20onchain_transaction\x20(per-tx\x20proof).\x0a'+'12.\x20onchain_object_history\x20—\x20FORENSICS:\x20all\x20transactions\x20that\x20touched\x20an\x20object\x20(auditing\x20only\x20—\x20prefer\x20assemble_context\x20for\x20AI\x20context\x20building).\x0a'+'13.\x20onchain_address_activity\x20—\x20FORENSICS:\x20an\x20address\x27s\x20transaction\x20history\x20(auditing\x20only).\x20direction=\x27sent\x27\x20(default)\x20lists\x20transactions\x20SENT\x20BY\x20the\x20address;\x20direction=\x27received\x27\x20lists\x20transactions\x20that\x20delivered\x20objects/coins\x20TO\x20it\x20(inbound\x20—\x20the\x20route\x20for\x20\x27when\x20did\x20this\x20arrive\x27\x20without\x20knowing\x20the\x20sender).\x0a'+'14.\x20token_value_convert\x20—\x20Convert\x20between\x20raw\x20on-chain\x20smallest\x20units\x20(u64)\x20and\x20human\x20unit\x20values\x20in\x20EITHER\x20direction\x20(e.g.\x20\x222200000000\x22\x20↔\x20\x222.2\x22\x20WOW).\x20Unit→raw\x20is\x20REFUSED\x20when\x20token\x20precision\x20cannot\x20be\x20resolved\x20(never\x20guesses\x20decimals).\x0a'+'15.\x20address_profile\x20—\x20Unified\x20address\x20profile:\x20classifies\x20an\x20address\x20(user\x20/\x20business\x20object\x20/\x20system\x20singleton),\x20then\x20batches\x20identity\x20+\x20reputation\x20(like/dislike/favor)\x20+\x20order/contact\x20membership\x20+\x20core/tx\x20reverse\x20bindings\x20+\x20the\x20object\x20itself.\x20For\x20Service\x20addresses\x20the\x20result\x20merges\x20a\x20service_analysis\x20block\x20(description\x20/\x20payment\x20token\x20/\x20shelf\x20split\x20/\x20location\x20/\x20on-chain\x20last\x20update).\x20The\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20entry.\x0a'+'16.\x20address_profiles\x20—\x20BATCH\x20form\x20of\x20address_profile\x20(up\x20to\x2050\x20addresses\x20in\x20ONE\x20call):\x20same\x20per-address\x20shape\x20—\x20classification,\x20identity,\x20reputation\x20votes,\x20memberships,\x20reverse\x20bindings,\x20object,\x20activity,\x20role\x20evidence,\x20plus\x20the\x20service_analysis\x20merge\x20for\x20Service\x20addresses.\x20List\x20views\x20needing\x20profiles\x20for\x20many\x20rows\x20should\x20ALWAYS\x20prefer\x20this\x20over\x20N\x20single\x20calls.\x20Returns:\x20(AddressProfile\x20|\x20null)[]\x20(result\x20order\x20matches\x20the\x20request).\x0a'+'17.\x20service_supply_chain\x20—\x20Resolve\x20a\x20Service\x27s\x20transparent\x20sub-order\x20purchasing\x20graph\x20(K3\x2023\x20§3.6):\x20reads\x20the\x20bound\x20Machine\x27s\x20frozen\x20forwards,\x20finds\x20purchasing-commitment\x20Guards,\x20and\x20returns\x20each\x20forward\x27s\x20purchased\x20sub-services\x20+\x20required\x20sub-order\x20proof\x20fields.\x20Use\x20for\x20buyer\x20due-diligence,\x20compose_service,\x20anti_cheat\x20(shell-merchant\x20detection),\x20merchant\x20self-check,\x20or\x20Watch\x20relation\x20expansion.\x0a'+'18.\x20workspace_lists\x20—\x20ONE-CALL\x20Quick\x20Access\x20workspace\x20object\x20lists\x20for\x20an\x20account\x20(treasuries/repositories/contacts/machines/rewards/others)\x20via\x20the\x20permission\x20reverse\x20chain,\x20TTL-cached.\x0a'+'19.\x20marks_of_account\x20—\x20Like/Favor\x20list:\x20every\x20address\x20(object\x20or\x20user)\x20the\x20account\x20ever\x20liked/disliked/favored,\x20deduplicated,\x20with\x20the\x20CURRENT\x20active\x20vote\x20kinds\x20per\x20target\x20(voter\x20Resource\x20mark\x20table\x20+\x20EntityLinker\x20clock),\x20TTL-cached.\x0a'+'20.\x20migration_preflight\x20—\x20Cross-network\x20build\x20detection:\x20report\x20an\x20account\x27s\x20Services/Machines/Treasuries/etc.\x20on\x20a\x20source\x20network\x20(default\x20testnet)\x20vs\x20target\x20network\x20(default\x20mainnet),\x20plus\x20a\x20business-facing\x20checklist\x20of\x20settings\x20to\x20confirm/change\x20when\x20migrating\x20(payment\x20token\x20/\x20location\x20/\x20arbitration\x20/\x20WIP\x20/\x20gas).\x0a'+'21.\x20onchain_topology\x20—\x20Read-only\x20on-chain\x20TOPOLOGY\x20network\x20around\x20ONE\x20seed\x20address\x20(any\x20EOA/object\x20or\x20LocalMark\x20name):\x20batched\x20multi-hop\x20BFS\x20over\x20the\x20machine-readable\x20EdgeSchema\x20—\x20nodes\x20+\x20typed\x20edges\x20(F=field\x20/\x20R=reverse-index\x20/\x20W=workflow\x20/\x20M=money-flow\x20/\x20S=social)\x20with\x20retention\x20semantics\x20(complete/bounded/window/membership/derived),\x20the\x20structural\x20workflow\x20subgraph\x20+\x20terminal\x20set\x20of\x20each\x20reached\x20Machine,\x20structural\x20completion\x20of\x20every\x20Order\x20reached,\x20and\x20R/A/O/G\x20analyzer\x20findings.\x20Use\x20for\x20multi-hop\x20relationship/permission/fund-flow\x20questions,\x20risk/arbitrage/opportunity\x20scans,\x20and\x20\x27what\x20is\x20connected\x20to\x20what\x20and\x20how\x20strongly\x27\x20due\x20diligence.\x20Truncation/gap/budget\x20markers\x20are\x20always\x20reported\x20honestly.\x0a\x0a'+'For\x20dynamic\x20table\x20data\x20queries\x20(pagination,\x20table\x20items),\x20use\x20the\x20\x27onchain_table_data\x27\x20tool.\x20For\x20state-transition\x20events,\x20use\x20the\x20\x27onchain_events\x27\x20tool.\x0a\x0a'+'🌐\x20Network\x20parameter:\x20on-chain\x20query\x20types\x20accept\x20`network`\x20and\x20`context_network`\x20INTERCHANGEABLY\x20—\x20either\x20spelling\x20is\x20normalized\x20to\x20the\x20right\x20field\x20before\x20validation,\x20and\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20(`network`\x20+\x20`network_source`)\x20so\x20results\x20can\x20never\x20be\x20silently\x20misattributed.\x20The\x20different\x20key\x20names\x20per\x20query\x20type\x20are\x20a\x20display\x20convention,\x20NOT\x20a\x20trap:\x20passing\x20the\x20opposite\x20spelling\x20still\x20works.\x20local_*\x20/\x20account_list\x20/\x20token_list\x20queries\x20are\x20device-local\x20and\x20network-free\x20BY\x20DESIGN\x20—\x20they\x20ignore\x20a\x20network\x20key\x20rather\x20than\x20erroring.\x20onchain_transaction\x20without\x20an\x20explicit\x20network\x20tries\x20the\x20session\x20default\x20first;\x20on\x20a\x20miss\x20it\x20PROBES\x20the\x20remaining\x20networks\x20and\x20answers\x20from\x20wherever\x20the\x20digest\x20is\x20live\x20(`network_source=\x27probed\x27`\x20+\x20result._network_probe\x20name\x20the\x20answering\x20network\x20—\x20never\x20cite\x20a\x20probed\x20result\x20as\x20default-network\x20data;\x20an\x20all-network\x20miss\x20is\x20an\x20authoritative\x20\x22did\x20not\x20commit\x22).\x0a\x0a'+'🕒\x20Runtime\x20freshness:\x20when\x20an\x20observed\x20behavior\x20contradicts\x20documented\x20schema\x20and\x20knowledge\x20text,\x20FIRST\x20check\x20the\x20running\x20process\x20is\x20not\x20stale\x20via\x20wowok_buildin_info\x20info=\x27upgrade_check\x27\x20—\x20its\x20build_stamp\x20reports\x20mcp_dist_stale\x20/\x20sdk_dist_stale\x20(source-newer-than-dist\x20detection)\x20and\x20runtime_health\x20before\x20you\x20classify\x20the\x20mismatch\x20as\x20a\x20design\x20defect.\x0a\x0a'+'💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27query_toolkit\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20query\x20types\x20and\x20field\x20definitions.','inputSchema':WatchQueryOperationsSchema,'outputSchema':WatchQueryOperationsResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('query',['watch','query','on-chain','local','events','objects','tokens','balance','profile','block'])}},{'name':'onchain_table_data','handler':handleOnchainTableData,'config':{'title':'📊\x20Query\x20WoWok\x20On-chain\x20Table\x20Data','summary':'Query\x20on-chain\x20dynamic\x20field\x20tables\x20with\x20pagination\x20(table\x20+\x20table-item\x20queries).','description':'Query\x20the\x20dynamic\x20table\x20data\x20of\x20on-chain\x20objects\x20(ONE-TIME\x20query\x20—\x20NOT\x20a\x20realtime\x20subscription).\x20Supports\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.\x20Each\x20table\x20item\x20belongs\x20to\x20a\x20parent\x20object\x20type\x20and\x20has\x20a\x20specific\x20meaning:\x0a\x0a'+'1.\x20onchain_table\x20—\x20Paginated\x20query\x20of\x20ANY\x20object\x27s\x20dynamic\x20fields\x20table\x20(Parent:\x20any\x20object).\x20Returns\x20all\x20entries\x20with\x20keys,\x20types,\x20and\x20object\x20IDs.\x20Use\x20to\x20explore\x20all\x20sub-items\x20of\x20an\x20object.\x0a'+'2.\x20onchain_table_item_repository_data\x20—\x20Query\x20a\x20record\x20from\x20a\x20Repository\x27s\x20on-chain\x20key-value\x20database\x20(Parent:\x20Repository).\x20Key:\x20name\x20+\x20entity\x20(address\x20or\x20number).\x20Returns\x20the\x20stored\x20data\x20record\x20with\x20typed\x20value.\x0a'+'3.\x20onchain_table_item_permission_perm\x20—\x20Query\x20a\x20permission\x20entry\x20from\x20a\x20Permission\x20object\x27s\x20access\x20control\x20table\x20(Parent:\x20Permission).\x20Key:\x20user\x20address\x20or\x20Guard\x20ID.\x20Returns\x20the\x20permission\x20list\x20(perm[])\x20granted\x20to\x20that\x20user/guard.\x0a'+'4.\x20onchain_table_item_entity_registrar\x20—\x20Query\x20an\x20entity\x27s\x20registration\x20record\x20from\x20the\x20GLOBAL\x20EntityRegistrar\x20(Parent:\x20system\x20EntityRegistrar).\x20Key:\x20user\x20address.\x20Returns\x20registration\x20info:\x20description,\x20referrer,\x20records,\x20mark_object.\x0a'+'5.\x20onchain_table_item_entity_linker\x20—\x20Query\x20community\x20votes/endorsements\x20for\x20an\x20entity\x20from\x20the\x20GLOBAL\x20EntityLinker\x20(Parent:\x20system\x20EntityLinker).\x20Key:\x20entity\x20address.\x20Returns\x20vote\x20records\x20(likes/dislikes/favor)\x20showing\x20community\x20trust.\x0a'+'6.\x20onchain_table_item_entity_contact\x20—\x20Query\x20which\x20customer-service\x20Contacts\x20an\x20entity\x20is\x20a\x20member\x20of,\x20from\x20the\x20GLOBAL\x20EntityContact\x20reverse\x20index\x20(Parent:\x200xaa9).\x20Key:\x20entity\x20address.\x20Returns\x20contact\x20memberships\x20(contact\x20+\x20time).\x0a'+'7.\x20onchain_table_item_object_linker_core\x20—\x20Query\x20which\x20bounded\x20core\x20objects\x20(Service/Machine/Treasury/Reward/Demand/Arbitration/Arb/Contact)\x20bind\x20to\x20a\x20target,\x20from\x20the\x20GLOBAL\x20ObjectLinkerCore\x20reverse\x20index\x20(Parent:\x200xaae).\x20Lossless\x20fixed;\x20use\x20for\x20DEFAULT\x20reverse\x20lookups\x20(e.g.\x20which\x20services\x20use\x20a\x20permission).\x0a'+'8.\x20onchain_table_item_object_linker_tx\x20—\x20Query\x20which\x20operational\x20objects\x20(Order/Progress/Payment/Allocation/Guard/Permission)\x20bind\x20to\x20a\x20target,\x20from\x20the\x20GLOBAL\x20ObjectLinkerTx\x20reverse\x20index\x20(Parent:\x200xaaf).\x20Lossy\x20FIFO\x20(recent\x20only);\x20use\x20for\x20ORDER/PROGRESS/operational\x20reverse\x20lookups\x20(e.g.\x20which\x20orders\x20a\x20service\x20has).\x0a'+'9.\x20onchain_table_item_reward_record\x20—\x20Query\x20a\x20reward\x20claim\x20record\x20from\x20a\x20Reward\x20object\x27s\x20distribution\x20table\x20(Parent:\x20Reward).\x20Key:\x20recipient\x20address.\x20Returns\x20claim\x20history:\x20guard\x20used,\x20total\x20claimed,\x20per-claim\x20details.\x0a'+'10.\x20onchain_table_item_demand_presenter\x20—\x20Query\x20a\x20demand\x20submission\x20from\x20a\x20Demand\x20object\x27s\x20presenter\x20table\x20(Parent:\x20Demand).\x20Key:\x20presenter\x20address.\x20Returns\x20submission\x20details:\x20recommendation,\x20service,\x20feedback,\x20acceptance\x20score.\x0a'+'11.\x20onchain_table_item_treasury_history\x20—\x20Query\x20a\x20payment\x20record\x20from\x20a\x20Treasury\x27s\x20history\x20table\x20(Parent:\x20Treasury).\x20Key:\x20payment\x20ID\x20(address).\x20Returns\x20payment\x20details:\x20operation\x20type,\x20signer,\x20amount,\x20external\x20guard.\x0a'+'12.\x20onchain_table_item_machine_node\x20—\x20Query\x20a\x20workflow\x20node\x20definition\x20from\x20a\x20Machine\x20object\x27s\x20node\x20table\x20(Parent:\x20Machine).\x20Key:\x20node\x20name\x20(string).\x20Returns\x20node\x20configuration:\x20pairs,\x20forwards,\x20guards,\x20thresholds.\x0a'+'13.\x20onchain_table_item_progress_history\x20—\x20Query\x20a\x20progress\x20step\x20record\x20from\x20a\x20Progress\x20object\x27s\x20history\x20table\x20(Parent:\x20Progress).\x20Key:\x20sequence\x20number\x20(u64).\x20Returns\x20step\x20details:\x20node,\x20next_node,\x20session\x20state,\x20time.\x0a'+'14.\x20onchain_table_item_address_mark\x20—\x20Query\x20a\x20PUBLIC\x20on-chain\x20name/tag\x20mark\x20from\x20an\x20AddressMark\x20object\x27s\x20table\x20(Parent:\x20AddressMark).\x20Key:\x20address.\x20Returns\x20public\x20labels:\x20entity,\x20name,\x20tags[].\x20Unlike\x20local\x20marks,\x20these\x20are\x20published\x20on-chain.\x0a'+'15.\x20onchain_table_item_entity_order\x20—\x20Query\x20the\x20orders\x20a\x20user\x20participates\x20in,\x20from\x20the\x20GLOBAL\x20EntityOrder\x20reverse\x20index\x20(Parent:\x200xaa8).\x20Key:\x20user\x20address.\x20Returns\x20order\x20addresses\x20with\x20role\x20bitmask\x20(1=owner,\x202=agent)\x20and\x20last\x20role-update\x20time\x20(raw\x20index,\x20without\x20full\x20order\x20objects).\x0a'+'16.\x20onchain_orders_of_user\x20—\x20Query\x20EVERY\x20order\x20a\x20user\x20participates\x20in\x20(as\x20owner\x20and/or\x20agent)\x20via\x20the\x20GLOBAL\x20EntityOrder\x20reverse\x20index\x20(Parent:\x200xaa8),\x20resolving\x20each\x20to\x20its\x20full\x20on-chain\x20Order\x20object.\x20Each\x20result\x20includes\x20role\x20info:\x20role\x20bitmask,\x20is_owner,\x20is_agent,\x20role\x20update\x20time,\x20and\x20the\x20full\x20order.\x20Use\x20to\x20get\x20a\x20user\x27s\x20complete\x20order\x20list\x20with\x20role\x20attributes.\x0a'+'17.\x20onchain_orders_of_users\x20—\x20Cross-account\x20variant:\x20query\x20EVERY\x20order\x20that\x20ANY\x20of\x20the\x20given\x20accounts\x20participates\x20in,\x20merged\x20into\x20ONE\x20deduped\x20list\x20(per-account\x20roles\x20merged)\x20with\x20SERVER-SIDE\x20enrichment\x20identical\x20to\x20the\x20Service\x20panorama\x20Orders\x20tab\x20—\x20amount/item\x20prices\x20as\x20human\x20token\x20display,\x20progress\x20node\x20+\x20entry\x20time,\x20allocation\x20fund\x20state,\x20updated\x20time.\x20Non-blocking\x20per-account\x20errors\x20(account_errors).\x20Use\x20for\x20a\x20local\x20wallet\x27s\x20complete\x20order\x20list\x20in\x20ONE\x20call.\x0a'+'18.\x20onchain_table_item_generic\x20—\x20Query\x20a\x20generic\x20table\x20item\x20from\x20ANY\x20object\x27s\x20dynamic\x20fields\x20(Parent:\x20any\x20object).\x20Supports\x20arbitrary\x20key\x20types\x20(address,\x20u64,\x20string,\x20object\x20ID,\x20etc.).\x20Use\x20for\x20custom\x20objects\x20and\x20general-purpose\x20table\x20lookups.\x20Returns:\x20ObjectBase\x20|\x20undefined.\x0a'+'19.\x20address_profile\x20—\x20unified\x20address\x20profile\x20(classification\x20+\x20identity\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings\x20+\x20the\x20object,\x20with\x20a\x20merged\x20service_analysis\x20block\x20for\x20Service\x20addresses).\x20Also\x20available\x20via\x20query_toolkit\x20(query_type=\x22address_profile\x22).\x0a'+'20.\x20service_supply_chain\x20—\x20resolve\x20a\x20Service\x27s\x20transparent\x20sub-order\x20purchasing\x20graph.\x20Also\x20available\x20via\x20query_toolkit\x20(query_type=\x22service_supply_chain\x22).\x0a\x0a'+'🧭\x20Tool\x20selection\x20(avoid\x20confusion):\x20use\x20query_toolkit\x20to\x20query\x20a\x20WHOLE\x20object/balance/profile;\x20use\x20onchain_events\x20to\x20query\x20state-transition\x20events;\x20use\x20onchain_table_data\x20(this\x20tool)\x20to\x20paginate\x20over\x20ONE\x20object\x27s\x20dynamic\x20table\x20fields\x20or\x20read\x20a\x20single\x20table\x20item.\x0a\x0a'+'💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27onchain_table_data\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20table\x20item\x20types\x20and\x20field\x20definitions.','inputSchema':OnchainTableDataSchema,'outputSchema':OnchainTableDataResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('table\x20query',['on-chain','table','dynamic\x20fields','pagination','repository','permission','reward','demand','treasury','machine','progress'])}},{'name':'onchain_events','handler':handleOnchainEvents,'config':{'title':'📅\x20Query\x20WoWok\x20On-chain\x20Events','summary':'Watch\x20on-chain\x20state-transition\x20and\x20fund-flow\x20events\x20(all\x2024\x20framework\x20types).','description':'Query\x20on-chain\x20WoWok\x20events\x20by\x20type\x20(a\x20ONE-TIME\x20paginated\x20query\x20—\x20NOT\x20a\x20realtime\x20subscription).\x20All\x2024\x20framework\x20event\x20types\x20are\x20supported,\x20grouped\x20by\x20business\x20family:\x20market\x20opportunity\x20(ServiceEvent,\x20ArbitrationEvent,\x20DemandChangedEvent,\x20DemandPresentEvent),\x20order/workflow\x20(NewOrderEvent,\x20ProgressEvent,\x20ThresholdPendingEvent\x20—\x20the\x20below-threshold\x20multi-sig/vote\x20accumulation,\x20protocol\x20version\x20137),\x20dispute\x20(ArbEvent,\x20VoteEvent,\x20FeedbackEvent,\x20ArbStatementEvent),\x20reputation\x20(DemandFeedbackEvent,\x20NewEntityEvent,\x20VoteEvictedEvent),\x20fund\x20flow\x20(AllocationEvent,\x20TreasuryEvent,\x20RewardClaimEvent,\x20RewardFundEvent,\x20RewardWithdrawEvent,\x20NewPaymentEvent),\x20service\x20administration\x20(OrderAllocatorsAppendedEvent),\x20audit/watch\x20(PermissionChangedEvent,\x20RepositoryDataOverwriteEvent).\x20Use\x20pagination\x20cursor\x20for\x20fetching\x20large\x20result\x20sets.\x0a\x0a💰\x20NewPaymentEvent\x20is\x20the\x20universal\x20fund-flow\x20receipt:\x20every\x20treasury\x20withdraw/deposit,\x20allocation\x20split\x20and\x20compensation\x20payout\x20mints\x20one.\x20Its\x20`from_object`\x20is\x20the\x20internal-only\x20funding-source\x20object\x20(Treasury/Allocation/Service\x20—\x20set\x20by\x20the\x20framework,\x20never\x20user\x20code),\x20and\x20`info.for_object`/`info.for_guard`\x20are\x20user-settable\x20business\x20routing\x20hints;\x20both\x20are\x20registered\x20as\x20on-chain\x20affiliations.\x20RewardWithdrawEvent\x20is\x20the\x20only\x20non-claim\x20outflow\x20from\x20a\x20reward\x20pool\x20(permission-gated)\x20and\x20mirrors\x20the\x20claim\x20event\x27s\x20balance_left.\x20NewOrderEvent.amount\x20includes\x20`_money_display`\x20annotation\x20(unit-converted\x20via\x20the\x20order\x27s\x20Service\x20generic\x20token\x20type;\x20raw-only\x20with\x20retry\x20hint\x20when\x20precision\x20is\x20unavailable).\x0a\x0a🧭\x20Tool\x20selection\x20(avoid\x20confusion):\x20use\x20query_toolkit\x20to\x20query\x20whole\x20objects/balances/profiles;\x20use\x20onchain_table_data\x20to\x20query\x20ONE\x20object\x27s\x20dynamic\x20table\x20fields;\x20use\x20onchain_events\x20(this\x20tool)\x20to\x20query\x20EVENTS\x20by\x20type.\x0a\x0a💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27onchain_events\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20event\x20types\x20and\x20field\x20definitions.','inputSchema':OnchainEventsInputSchema,'outputSchema':OnchainEventsResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('watch\x20wowook\x20events',['events','on-chain','arbitration','order','progress','demand','entity'])}},{'name':'wowok_buildin_info','handler':handleWowokInfo,'config':{'title':'ℹ️\x20WoWok\x20Build-in\x20Information','summary':'Getting-started\x20orientation,\x20protocol\x20constants,\x20permissions,\x20bridge\x20tokens,\x20funding\x20guidance,\x20upgrade\x20check.','description':'Query\x20WoWok\x20protocol\x20information:\x20\x27getting\x20started\x27,\x20\x27constants\x27,\x20\x27built-in\x20permissions\x27,\x20\x27common\x20mistakes\x27,\x20\x27guard\x20instructions\x27,\x20\x27current\x20network\x27,\x20\x27value\x20types\x27,\x20\x27mainnet\x20bridge\x20tokens\x27,\x20\x27funding\x20guidance\x27,\x20\x27upgrade_check\x27,\x20or\x20\x27universal_template\x27.\x20Call\x20\x27getting\x20started\x27\x20at\x20conversation\x20start\x20when\x20no\x20WoWok\x20Skill\x20guidance\x20is\x20loaded\x20—\x20it\x20explains\x20what\x20the\x20companion\x20@wowok'+'/skills\x20package\x20is,\x20gives\x20install/doctor/repair\x20commands,\x20best-effort\x20local\x20detection\x20of\x20installed\x20skills,\x20the\x20~20s\x20cold-start\x20window,\x20and\x20maps\x20common\x20goals\x20to\x20sub-tools.\x20Use\x20\x27common\x20mistakes\x27\x20to\x20proactively\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls\x20before\x20submitting\x20an\x20operation\x20(e.g.\x20filter\x20operation:\x22compensation_fund_add\x22).\x20For\x20\x27mainnet\x20bridge\x20tokens\x27:\x20returns\x20cross-chain\x20bridge\x20tokens\x20(ETH,\x20WETH,\x20WBTC,\x20USDC,\x20USDT)\x20with\x20each\x20token\x27s\x20symbol,\x20WOW-side\x20type\x20tag\x20(wowTypeTag),\x20EVM\x20address,\x20decimals,\x20and\x20description.\x20The\x20wowTypeTag\x20(format\x20{address}::{module}::{struct})\x20can\x20be\x20used\x20directly\x20as\x20the\x20`type_parameter`\x20of\x20Service\x20/\x20Treasury\x20/\x20Reward\x20/\x20Allocation\x20objects\x20to\x20set\x20their\x20payment\x20token\x20—\x20e.g.\x20use\x20USDT\x27s\x20wowTypeTag\x20to\x20create\x20a\x20Service\x20that\x20accepts\x20USDT\x20payments.\x20For\x20\x27funding\x20guidance\x27:\x20returns\x20how\x20to\x20obtain\x20WOW\x20gas\x20and\x20payment\x20tokens\x20—\x20testnet\x20faucet,\x20mainnet\x20ETH\x20cross-chain\x20bridge\x20flow,\x20and\x20the\x20WOW\x20mainnet\x20airdrop\x20link.\x20Use\x20this\x20when\x20a\x20user\x20asks\x20how\x20to\x20obtain\x20tokens/gas/funds,\x20or\x20as\x20a\x20proactive\x20first-use\x20reminder.','inputSchema':ProtocolInfoQuerySchema,'outputSchema':ProtocolInfoResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('WoWok\x20info',['build-in','getting-started','skills','constants','permissions','guard','network','value-types','bridge-tokens','funding-guidance','faucet','airdrop'])}},{'name':'schema_query','handler':handleSchemaQuery,'config':{'title':'📋\x20Schema\x20Query','summary':'Query\x20JSON\x20schemas\x20for\x20any\x20sub-tool\x20(action:\x20list/get/get_output/search).','description':'Look\x20up\x20JSON\x20Schemas\x20for\x20WoWok\x20MCP\x20tools\x20and\x20on-chain\x20operations.\x20'+'This\x20is\x20the\x20authoritative\x20reference\x20for\x20exact\x20parameter\x20structures,\x20types,\x20and\x20required\x20fields.\x20'+'Always\x20check\x20the\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.\x0a\x0a'+'Actions:\x0a'+'\x20\x20\x27list\x27\x20-\x20Show\x20all\x20available\x20schemas\x20(tools\x20+\x20on-chain\x20operations).\x20Start\x20here\x20to\x20discover\x20what\x20exists.\x0a'+'\x20\x20\x27get\x27\x20-\x20Fetch\x20the\x20full\x20input\x20JSON\x20Schema\x20by\x20name\x20(e.g.\x20\x27onchain_operations\x27).\x20Use\x20with\x20the\x20\x27name\x27\x20param.\x0a'+'\x20\x20\x27get_output\x27\x20-\x20Fetch\x20the\x20output\x20JSON\x20Schema\x20of\x20a\x20tool\x20by\x20name\x20(e.g.\x20\x27onchain_operations\x27).\x20Use\x20with\x20the\x20\x27name\x27\x20param.\x20Use\x20this\x20to\x20understand\x20a\x20tool\x27s\x20return\x20value\x20structure.\x0a'+'\x20\x20\x27get_field\x27\x20-\x20Query\x20a\x20single\x20field\x20by\x20dot-path\x20(e.g.\x20field_path=\x27data.node.nodes.0.pairs\x27).\x20Cheaper\x20than\x20\x27get\x27\x20when\x20you\x20only\x20need\x20one\x20subtree.\x0a'+'\x20\x20\x27search\x27\x20-\x20Find\x20schemas\x20by\x20keyword,\x20matching\x20name/title/description.\x20Use\x20with\x20the\x20\x27query\x27\x20param.\x0a'+'\x20\x20\x27list_operations\x27\x20-\x20Show\x20only\x20on-chain\x20operation\x20schemas\x20(prefixed\x20\x27onchain_operations_\x27).\x20Narrower\x20than\x20\x27list\x27.\x0a'+'\x20\x20\x27get_guard_templates\x27\x20-\x20Guard\x20creation\x20templates\x20from\x20the\x20unified\x20library:\x20omit\x20\x27template\x27\x20to\x20list\x20every\x20tpl_*\x20id,\x20or\x20pass\x20one\x20for\x20the\x20full\x20parameterized\x20disclosure\x20(each\x20parameter\x20with\x20meaning,\x20default,\x20constraint,\x20and\x20derived\x20importance\x20—\x20identity-critical\x20first).\x0a'+'\x20\x20\x27get_tool_reference\x27\x20-\x20MCP\x20tool\x20usage\x20reference\x20(summaries,\x20actions,\x20prerequisites,\x20notes).\x20Pass\x20name=\x27<tool>\x27\x20for\x20one\x20tool,\x20query=\x27<keyword>\x27\x20to\x20search,\x20or\x20omit\x20for\x20the\x20full\x20catalog.\x0a'+'\x20\x20\x27get_guard_design_patterns\x27\x20-\x20Curated\x20Guard\x20design\x20patterns\x20(business\x20requirement\x20→\x20logic\x20tree\x20template).\x20Pass\x20name=\x27<pattern_id>\x27,\x20query=\x27<host>\x27\x20(e.g.\x20\x27service_buy_guard\x27,\x20\x27machine_forward\x27),\x20or\x20omit\x20for\x20the\x20full\x20catalog.\x0a'+'\x20\x20\x27get_safety_rules\x27\x20-\x20Safety\x20rule\x20tables\x20sunk\x20from\x20the\x20wowok-safety\x20skill:\x20object\x20reuse,\x20immutability-after-publish,\x20LOCAL/ONCHAIN/QUERY\x20classification,\x20naming\x20conventions.\x0a'+'\x20\x20\x27analyze_guard_semantics\x27\x20-\x20Parse\x20+\x20evaluate\x20ANY\x20Guard\x20JSON\x20(pass\x20guard=<json>):\x20rendered\x20logic\x20tree,\x20lint\x20+\x20risk\x20diagnostics,\x20and\x20a\x20party-perspective\x20fact\x20sheet\x20(who\x20can\x20trigger,\x20time\x20constraints,\x20evidence\x20required,\x20data\x20sources\x20read\x20—\x20including\x20which\x20are\x20mutable\x20on-chain).\x20BOTH\x20transacting\x20parties\x20should\x20run\x20this\x20before\x20relying\x20on\x20a\x20Guard\x20(e.g.\x20a\x20refund\x20or\x20fund-release\x20Guard\x20is\x20a\x20free-form\x20game\x20condition\x20tree,\x20not\x20necessarily\x20tied\x20to\x20any\x20Machine\x20node).','inputSchema':SchemaQueryInputSchema,'outputSchema':SchemaQueryOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('schema',['schema','json-schema','types','structure','validation','reference'])}}];
1
+ import{handleWatchQueryOperations,handleOnchainTableData,handleOnchainEvents,handleWowokInfo}from'../handlers/query.js';import{handleSchemaQuery}from'../handlers/schema-query.js';import{createToolMeta,WatchQueryOperationsSchema,WatchQueryOperationsResultSchema,OnchainTableDataSchema,OnchainTableDataResultSchema,OnchainEventsInputSchema,OnchainEventsResultSchema,ProtocolInfoQuerySchema,ProtocolInfoResultSchema,SchemaQueryInputSchema,SchemaQueryOutputSchema}from'../../schema/index.js';export const QUERY_TOOLS=[{'name':'query_toolkit','handler':handleWatchQueryOperations,'timeoutMs':0x493e0,'config':{'title':'🔍\x20Data\x20Query\x20Toolkit','summary':'Query\x20on-chain\x20objects,\x20balances,\x20profiles,\x20history,\x20tokens,\x20topology\x20(21\x20types).','description':'WOWOK\x20data\x20query\x20toolkit\x20—\x2021\x20query\x20types\x20covering\x20local\x20device\x20data\x20and\x20on-chain\x20blockchain\x20data:\x0a\x0a'+'LOCAL\x20(device-only,\x20never\x20on-chain):\x0a'+'1.\x20local_mark_list\x20—\x20Query\x20your\x20LOCAL\x20address\x20book:\x20maps\x20human-readable\x20names\x20to\x20blockchain\x20addresses\x20with\x20optional\x20tags.\x20Use\x20to\x20resolve\x20names→addresses\x20or\x20find\x20addresses\x20by\x20tag.\x0a'+'2.\x20account_list\x20—\x20Query\x20your\x20LOCAL\x20accounts\x20(addresses,\x20messenger\x20status,\x20suspension\x20state).\x20Use\x20filter.includePubkey=true\x20to\x20also\x20include\x20public\x20keys.\x20Use\x20to\x20discover\x20available\x20accounts\x20before\x20operations.\x20NOTE:\x20local\x20accounts\x20are\x20just\x20ONE\x20form\x20of\x20distributed\x20account\x20—\x20WoWok\x20serves\x20ANY\x20account\x20on\x20ANY\x20device;\x20every\x20on-chain/BI\x20query\x20below\x20also\x20accepts\x20any\x200x\x20address\x20(LocalMark\x20names\x20are\x20a\x20convenience,\x20not\x20a\x20requirement).\x0a'+'3.\x20local_info_list\x20—\x20Query\x20your\x20LOCAL\x20private\x20info:\x20sensitive\x20data\x20like\x20delivery\x20addresses,\x20phone\x20numbers,\x20contacts\x20stored\x20ONLY\x20on\x20this\x20device.\x0a'+'4.\x20token_list\x20—\x20Query\x20cached\x20token\x20metadata:\x20symbol,\x20decimals,\x20icon\x20URL,\x20description\x20for\x20tokens\x20previously\x20fetched\x20from\x20chain.\x20Use\x20to\x20look\x20up\x20token\x20precision/decimals\x20before\x20performing\x20token\x20operations.\x20Returns:\x20TokenTypeInfo[]\x20(type,\x20alias,\x20name,\x20symbol,\x20decimals,\x20iconUrl).\x0a'+'5.\x20account_balance\x20—\x20Query\x20an\x20account\x27s\x20coin\x20balance\x20OR\x20Paginated\x20coin\x20objects.\x20Use\x20balance=true\x20for\x20total\x20amount,\x20or\x20coin={cursor,limit}\x20to\x20list\x20individual\x20coin\x20objects.\x20Supports\x20multi-token\x20via\x20token_type\x20parameter.\x20Results\x20include\x20`_money_display`\x20with\x20unit-converted\x20values\x20+\x20decimals\x20reminder.\x20LIVE\x20QUERY\x20(no\x20cache\x20—\x20no_cache\x20not\x20needed).\x20If\x20the\x20input\x20is\x20an\x20on-chain\x20OBJECT\x20(e.g.\x20a\x20Treasury\x20mark\x20name),\x20the\x20result\x20auto-routes\x20to\x20that\x20object\x27s\x20\x27balance\x27\x20field\x20with\x20a\x20hint\x20—\x20wallet\x20gas\x20balances\x20vs\x20object\x20funds\x20are\x20different\x20concepts.\x0a'+'6.\x20local_names\x20—\x20Query\x20local\x20names\x20by\x20a\x20list\x20of\x20addresses.\x20For\x20each\x20address,\x20returns\x20the\x20resolved\x20account\x20name\x20(if\x20exists)\x20and\x20local\x20mark\x20name\x20(if\x20exists).\x20Returns:\x20{\x20account?,\x20local_mark?,\x20address\x20}[].\x0a\x0a'+'ONCHAIN\x20(blockchain):\x0a'+'7.\x20onchain_personal_profile\x20—\x20Query\x20any\x20user\x27s\x20PUBLIC\x20on-chain\x20profile:\x20social\x20links,\x20reputation\x20(likes/dislikes),\x20personal\x20info\x20records,\x20voting\x20history,\x20referrer.\x0a'+'8.\x20onchain_objects\x20—\x20Batch\x20query\x20on-chain\x20WOWOK\x20objects\x20by\x20ID\x20or\x20name:\x20supports\x20Service,\x20Machine,\x20Order,\x20Treasury,\x20Reward,\x20Arb,\x20Personal,\x20Contact,\x20and\x20more.\x20Monetary\x20fields\x20include\x20`_money_display`\x20annotations\x20(token\x20type\x20from\x20the\x20object\x27s\x20immutable\x20generic).\x0a'+'9.\x20onchain_received\x20—\x20Query\x20objects\x20(Payments,\x20Tokens,\x20NFTs)\x20received\x20by\x20a\x20specific\x20object.\x20Supports\x20pagination\x20and\x20type\x20filter.\x20CoinWrapper\x20mode\x20returns\x20token-aware\x20`_money_display`;\x20for\x20an\x20OBJECT\x20holder\x20(e.g.\x20an\x20Order\x20escrow)\x20whose\x20wrappers\x20the\x20owned-object\x20index\x20cannot\x20see,\x20the\x20records\x20are\x20recovered\x20from\x20the\x20allocation\x20transaction\x20effects\x20and\x20the\x20envelope\x20sets\x20`read_path=\x27allocation-transaction-effects\x27`.\x0a'+'10.\x20onchain_transaction\x20—\x20Verify\x20what\x20a\x20specific\x20transaction\x20did\x20on-chain\x20(status,\x20object\x20changes,\x20balance\x20changes,\x20gas,\x20events).\x20Balance\x20changes\x20include\x20`_money_display`\x20(unit-converted\x20via\x20each\x20change\x27s\x20own\x20coin_type;\x20signed\x20amounts\x20supported).\x0a'+'11.\x20onchain_block\x20—\x20Query\x20ONE\x20checkpoint\x20(block)\x20by\x20sequence\x20number\x20or\x20digest;\x20returns\x20the\x20RAW\x20fullnode\x20checkpoint\x20summary\x20verbatim\x20(sequence,\x20digest,\x20timestamp,\x20tx\x20count,\x20epoch).\x20Block-level\x20facts\x20—\x20distinct\x20from\x20onchain_transaction\x20(per-tx\x20proof).\x0a'+'12.\x20onchain_object_history\x20—\x20FORENSICS:\x20all\x20transactions\x20that\x20touched\x20an\x20object\x20(auditing\x20only\x20—\x20prefer\x20assemble_context\x20for\x20AI\x20context\x20building).\x0a'+'13.\x20onchain_address_activity\x20—\x20FORENSICS:\x20an\x20address\x27s\x20transaction\x20history\x20(auditing\x20only).\x20direction=\x27sent\x27\x20(default)\x20lists\x20transactions\x20SENT\x20BY\x20the\x20address;\x20direction=\x27received\x27\x20lists\x20transactions\x20that\x20delivered\x20objects/coins\x20TO\x20it\x20(inbound\x20—\x20the\x20route\x20for\x20\x27when\x20did\x20this\x20arrive\x27\x20without\x20knowing\x20the\x20sender).\x0a'+'14.\x20token_value_convert\x20—\x20Convert\x20between\x20raw\x20on-chain\x20smallest\x20units\x20(u64)\x20and\x20human\x20unit\x20values\x20in\x20EITHER\x20direction\x20(e.g.\x20\x222200000000\x22\x20↔\x20\x222.2\x22\x20WOW).\x20Unit→raw\x20is\x20REFUSED\x20when\x20token\x20precision\x20cannot\x20be\x20resolved\x20(never\x20guesses\x20decimals).\x0a'+'15.\x20address_profile\x20—\x20Unified\x20address\x20profile:\x20classifies\x20an\x20address\x20(user\x20/\x20business\x20object\x20/\x20system\x20singleton),\x20then\x20batches\x20identity\x20+\x20reputation\x20(like/dislike/favor)\x20+\x20order/contact\x20membership\x20+\x20core/tx\x20reverse\x20bindings\x20+\x20the\x20object\x20itself.\x20For\x20Service\x20addresses\x20the\x20result\x20merges\x20a\x20service_analysis\x20block\x20(description\x20/\x20payment\x20token\x20/\x20shelf\x20split\x20/\x20location\x20/\x20on-chain\x20last\x20update).\x20The\x20one-stop\x20\x27who/what\x20is\x20this\x20address\x27\x20entry.\x0a'+'16.\x20address_profiles\x20—\x20BATCH\x20form\x20of\x20address_profile\x20(up\x20to\x2050\x20addresses\x20in\x20ONE\x20call):\x20same\x20per-address\x20shape\x20—\x20classification,\x20identity,\x20reputation\x20votes,\x20memberships,\x20reverse\x20bindings,\x20object,\x20activity,\x20role\x20evidence,\x20plus\x20the\x20service_analysis\x20merge\x20for\x20Service\x20addresses.\x20List\x20views\x20needing\x20profiles\x20for\x20many\x20rows\x20should\x20ALWAYS\x20prefer\x20this\x20over\x20N\x20single\x20calls.\x20Returns:\x20(AddressProfile\x20|\x20null)[]\x20(result\x20order\x20matches\x20the\x20request).\x0a'+'17.\x20service_supply_chain\x20—\x20Resolve\x20a\x20Service\x27s\x20transparent\x20sub-order\x20purchasing\x20graph\x20(K3\x2023\x20§3.6):\x20reads\x20the\x20bound\x20Machine\x27s\x20frozen\x20forwards,\x20finds\x20purchasing-commitment\x20Guards,\x20and\x20returns\x20each\x20forward\x27s\x20purchased\x20sub-services\x20+\x20required\x20sub-order\x20proof\x20fields.\x20Use\x20for\x20buyer\x20due-diligence,\x20compose_service,\x20anti_cheat\x20(shell-merchant\x20detection),\x20merchant\x20self-check,\x20or\x20Watch\x20relation\x20expansion.\x0a'+'18.\x20workspace_lists\x20—\x20ONE-CALL\x20Quick\x20Access\x20workspace\x20object\x20lists\x20for\x20an\x20account\x20(treasuries/repositories/contacts/machines/rewards/others)\x20via\x20the\x20permission\x20reverse\x20chain,\x20TTL-cached.\x0a'+'19.\x20marks_of_account\x20—\x20Like/Favor\x20list:\x20every\x20address\x20(object\x20or\x20user)\x20the\x20account\x20ever\x20liked/disliked/favored,\x20deduplicated,\x20with\x20the\x20CURRENT\x20active\x20vote\x20kinds\x20per\x20target\x20(voter\x20Resource\x20mark\x20table\x20+\x20EntityLinker\x20clock),\x20TTL-cached.\x0a'+'20.\x20migration_preflight\x20—\x20Cross-network\x20build\x20detection:\x20report\x20an\x20account\x27s\x20Services/Machines/Treasuries/etc.\x20on\x20a\x20source\x20network\x20(default\x20testnet)\x20vs\x20target\x20network\x20(default\x20mainnet),\x20plus\x20a\x20business-facing\x20checklist\x20of\x20settings\x20to\x20confirm/change\x20when\x20migrating\x20(payment\x20token\x20/\x20location\x20/\x20arbitration\x20/\x20WIP\x20/\x20gas).\x0a'+'21.\x20onchain_topology\x20—\x20Read-only\x20on-chain\x20TOPOLOGY\x20network\x20around\x20ONE\x20seed\x20address\x20(any\x20EOA/object\x20or\x20LocalMark\x20name):\x20batched\x20multi-hop\x20BFS\x20over\x20the\x20machine-readable\x20EdgeSchema\x20—\x20nodes\x20+\x20typed\x20edges\x20(F=field\x20/\x20R=reverse-index\x20/\x20W=workflow\x20/\x20M=money-flow\x20/\x20S=social)\x20with\x20retention\x20semantics\x20(complete/bounded/window/membership/derived),\x20the\x20structural\x20workflow\x20subgraph\x20+\x20terminal\x20set\x20of\x20each\x20reached\x20Machine,\x20structural\x20completion\x20of\x20every\x20Order\x20reached,\x20and\x20R/A/O/G\x20analyzer\x20findings.\x20Use\x20for\x20multi-hop\x20relationship/permission/fund-flow\x20questions,\x20risk/arbitrage/opportunity\x20scans,\x20and\x20\x27what\x20is\x20connected\x20to\x20what\x20and\x20how\x20strongly\x27\x20due\x20diligence.\x20Truncation/gap/budget\x20markers\x20are\x20always\x20reported\x20honestly.\x0a\x0a'+'For\x20dynamic\x20table\x20data\x20queries\x20(pagination,\x20table\x20items),\x20use\x20the\x20\x27onchain_table_data\x27\x20tool.\x20For\x20state-transition\x20events,\x20use\x20the\x20\x27onchain_events\x27\x20tool.\x0a\x0a'+'🌐\x20Network\x20parameter:\x20on-chain\x20query\x20types\x20accept\x20`network`\x20and\x20`context_network`\x20INTERCHANGEABLY\x20—\x20either\x20spelling\x20is\x20normalized\x20to\x20the\x20right\x20field\x20before\x20validation,\x20and\x20the\x20response\x20echoes\x20the\x20resolved\x20network\x20(`network`\x20+\x20`network_source`)\x20so\x20results\x20can\x20never\x20be\x20silently\x20misattributed.\x20The\x20different\x20key\x20names\x20per\x20query\x20type\x20are\x20a\x20display\x20convention,\x20NOT\x20a\x20trap:\x20passing\x20the\x20opposite\x20spelling\x20still\x20works.\x20local_*\x20/\x20account_list\x20/\x20token_list\x20queries\x20are\x20device-local\x20and\x20network-free\x20BY\x20DESIGN\x20—\x20they\x20ignore\x20a\x20network\x20key\x20rather\x20than\x20erroring.\x20onchain_transaction\x20without\x20an\x20explicit\x20network\x20tries\x20the\x20session\x20default\x20first;\x20on\x20a\x20miss\x20it\x20PROBES\x20the\x20remaining\x20networks\x20and\x20answers\x20from\x20wherever\x20the\x20digest\x20is\x20live\x20(`network_source=\x27probed\x27`\x20+\x20result._network_probe\x20name\x20the\x20answering\x20network\x20—\x20never\x20cite\x20a\x20probed\x20result\x20as\x20default-network\x20data;\x20an\x20all-network\x20miss\x20is\x20an\x20authoritative\x20\x22did\x20not\x20commit\x22).\x0a\x0a'+'🕒\x20Runtime\x20freshness:\x20when\x20an\x20observed\x20behavior\x20contradicts\x20documented\x20schema\x20and\x20knowledge\x20text,\x20FIRST\x20check\x20the\x20running\x20process\x20is\x20not\x20stale\x20via\x20wowok_buildin_info\x20info=\x27upgrade_check\x27\x20—\x20its\x20build_stamp\x20reports\x20mcp_dist_stale\x20/\x20sdk_dist_stale\x20(source-newer-than-dist\x20detection)\x20and\x20runtime_health\x20before\x20you\x20classify\x20the\x20mismatch\x20as\x20a\x20design\x20defect.\x0a\x0a'+'💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27query_toolkit\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20query\x20types\x20and\x20field\x20definitions.','inputSchema':WatchQueryOperationsSchema,'outputSchema':WatchQueryOperationsResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('query',['watch','query','on-chain','local','events','objects','tokens','balance','profile','block'])}},{'name':'onchain_table_data','handler':handleOnchainTableData,'config':{'title':'📊\x20Query\x20WoWok\x20On-chain\x20Table\x20Data','summary':'Query\x20on-chain\x20dynamic\x20field\x20tables\x20with\x20pagination\x20(table\x20+\x20table-item\x20queries).','description':'Query\x20the\x20dynamic\x20table\x20data\x20of\x20on-chain\x20objects\x20(ONE-TIME\x20query\x20—\x20NOT\x20a\x20realtime\x20subscription).\x20Supports\x20paginated\x20table\x20queries\x20and\x20specific\x20table\x20item\x20lookups.\x20Each\x20table\x20item\x20belongs\x20to\x20a\x20parent\x20object\x20type\x20and\x20has\x20a\x20specific\x20meaning:\x0a\x0a'+'1.\x20onchain_table\x20—\x20Paginated\x20query\x20of\x20ANY\x20object\x27s\x20dynamic\x20fields\x20table\x20(Parent:\x20any\x20object).\x20Returns\x20all\x20entries\x20with\x20keys,\x20types,\x20and\x20object\x20IDs.\x20Use\x20to\x20explore\x20all\x20sub-items\x20of\x20an\x20object.\x0a'+'2.\x20onchain_table_item_repository_data\x20—\x20Query\x20a\x20record\x20from\x20a\x20Repository\x27s\x20on-chain\x20key-value\x20database\x20(Parent:\x20Repository).\x20Key:\x20name\x20+\x20entity\x20(address\x20or\x20number).\x20Returns\x20the\x20stored\x20data\x20record\x20with\x20typed\x20value.\x0a'+'3.\x20onchain_table_item_permission_perm\x20—\x20Query\x20a\x20permission\x20entry\x20from\x20a\x20Permission\x20object\x27s\x20access\x20control\x20table\x20(Parent:\x20Permission).\x20Key:\x20user\x20address\x20or\x20Guard\x20ID.\x20Returns\x20the\x20permission\x20list\x20(perm[])\x20granted\x20to\x20that\x20user/guard.\x0a'+'4.\x20onchain_table_item_entity_registrar\x20—\x20Query\x20an\x20entity\x27s\x20registration\x20record\x20from\x20the\x20GLOBAL\x20EntityRegistrar\x20(Parent:\x20system\x20EntityRegistrar).\x20Key:\x20user\x20address.\x20Returns\x20registration\x20info:\x20description,\x20referrer,\x20records,\x20mark_object.\x0a'+'5.\x20onchain_table_item_entity_linker\x20—\x20Query\x20community\x20votes/endorsements\x20for\x20an\x20entity\x20from\x20the\x20GLOBAL\x20EntityLinker\x20(Parent:\x20system\x20EntityLinker).\x20Key:\x20entity\x20address.\x20Returns\x20vote\x20records\x20(likes/dislikes/favor)\x20showing\x20community\x20trust.\x0a'+'6.\x20onchain_table_item_entity_contact\x20—\x20Query\x20which\x20customer-service\x20Contacts\x20an\x20entity\x20is\x20a\x20member\x20of,\x20from\x20the\x20GLOBAL\x20EntityContact\x20reverse\x20index\x20(Parent:\x200xaa9).\x20Key:\x20entity\x20address.\x20Returns\x20contact\x20memberships\x20(contact\x20+\x20time).\x0a'+'7.\x20onchain_table_item_object_linker_core\x20—\x20Query\x20which\x20bounded\x20core\x20objects\x20(Service/Machine/Treasury/Reward/Demand/Arbitration/Arb/Contact)\x20bind\x20to\x20a\x20target,\x20from\x20the\x20GLOBAL\x20ObjectLinkerCore\x20reverse\x20index\x20(Parent:\x200xaae).\x20Lossless\x20fixed;\x20use\x20for\x20DEFAULT\x20reverse\x20lookups\x20(e.g.\x20which\x20services\x20use\x20a\x20permission).\x0a'+'8.\x20onchain_table_item_object_linker_tx\x20—\x20Query\x20which\x20operational\x20objects\x20(Order/Progress/Payment/Allocation/Guard/Permission)\x20bind\x20to\x20a\x20target,\x20from\x20the\x20GLOBAL\x20ObjectLinkerTx\x20reverse\x20index\x20(Parent:\x200xaaf).\x20Lossy\x20FIFO\x20(recent\x20only);\x20use\x20for\x20ORDER/PROGRESS/operational\x20reverse\x20lookups\x20(e.g.\x20which\x20orders\x20a\x20service\x20has).\x0a'+'9.\x20onchain_table_item_reward_record\x20—\x20Query\x20a\x20reward\x20claim\x20record\x20from\x20a\x20Reward\x20object\x27s\x20distribution\x20table\x20(Parent:\x20Reward).\x20Key:\x20recipient\x20address.\x20Returns\x20claim\x20history:\x20guard\x20used,\x20total\x20claimed,\x20per-claim\x20details.\x0a'+'10.\x20onchain_table_item_demand_presenter\x20—\x20Query\x20a\x20demand\x20submission\x20from\x20a\x20Demand\x20object\x27s\x20presenter\x20table\x20(Parent:\x20Demand).\x20Key:\x20presenter\x20address.\x20Returns\x20submission\x20details:\x20recommendation,\x20service,\x20feedback,\x20acceptance\x20score.\x0a'+'11.\x20onchain_table_item_treasury_history\x20—\x20Query\x20a\x20payment\x20record\x20from\x20a\x20Treasury\x27s\x20history\x20table\x20(Parent:\x20Treasury).\x20Key:\x20payment\x20ID\x20(address).\x20Returns\x20payment\x20details:\x20operation\x20type,\x20signer,\x20amount,\x20external\x20guard.\x0a'+'12.\x20onchain_table_item_machine_node\x20—\x20Query\x20a\x20workflow\x20node\x20definition\x20from\x20a\x20Machine\x20object\x27s\x20node\x20table\x20(Parent:\x20Machine).\x20Key:\x20node\x20name\x20(string).\x20Returns\x20node\x20configuration:\x20pairs,\x20forwards,\x20guards,\x20thresholds.\x0a'+'13.\x20onchain_table_item_progress_history\x20—\x20Query\x20a\x20progress\x20step\x20record\x20from\x20a\x20Progress\x20object\x27s\x20history\x20table\x20(Parent:\x20Progress).\x20Key:\x20sequence\x20number\x20(u64).\x20Returns\x20step\x20details:\x20node,\x20next_node,\x20session\x20state,\x20time.\x0a'+'14.\x20onchain_table_item_address_mark\x20—\x20Query\x20a\x20PUBLIC\x20on-chain\x20name/tag\x20mark\x20from\x20an\x20AddressMark\x20object\x27s\x20table\x20(Parent:\x20AddressMark).\x20Key:\x20address.\x20Returns\x20public\x20labels:\x20entity,\x20name,\x20tags[].\x20Unlike\x20local\x20marks,\x20these\x20are\x20published\x20on-chain.\x0a'+'15.\x20onchain_table_item_entity_order\x20—\x20Query\x20the\x20orders\x20a\x20user\x20participates\x20in,\x20from\x20the\x20GLOBAL\x20EntityOrder\x20reverse\x20index\x20(Parent:\x200xaa8).\x20Key:\x20user\x20address.\x20Returns\x20order\x20addresses\x20with\x20role\x20bitmask\x20(1=owner,\x202=agent)\x20and\x20last\x20role-update\x20time\x20(raw\x20index,\x20without\x20full\x20order\x20objects).\x0a'+'16.\x20onchain_orders_of_user\x20—\x20Query\x20EVERY\x20order\x20a\x20user\x20participates\x20in\x20(as\x20owner\x20and/or\x20agent)\x20via\x20the\x20GLOBAL\x20EntityOrder\x20reverse\x20index\x20(Parent:\x200xaa8),\x20resolving\x20each\x20to\x20its\x20full\x20on-chain\x20Order\x20object.\x20Each\x20result\x20includes\x20role\x20info:\x20role\x20bitmask,\x20is_owner,\x20is_agent,\x20role\x20update\x20time,\x20and\x20the\x20full\x20order.\x20Use\x20to\x20get\x20a\x20user\x27s\x20complete\x20order\x20list\x20with\x20role\x20attributes.\x0a'+'17.\x20onchain_orders_of_users\x20—\x20Cross-account\x20variant:\x20query\x20EVERY\x20order\x20that\x20ANY\x20of\x20the\x20given\x20accounts\x20participates\x20in,\x20merged\x20into\x20ONE\x20deduped\x20list\x20(per-account\x20roles\x20merged)\x20with\x20SERVER-SIDE\x20enrichment\x20identical\x20to\x20the\x20Service\x20panorama\x20Orders\x20tab\x20—\x20amount/item\x20prices\x20as\x20human\x20token\x20display,\x20progress\x20node\x20+\x20entry\x20time,\x20allocation\x20fund\x20state,\x20updated\x20time.\x20Non-blocking\x20per-account\x20errors\x20(account_errors).\x20Use\x20for\x20a\x20local\x20wallet\x27s\x20complete\x20order\x20list\x20in\x20ONE\x20call.\x0a'+'18.\x20onchain_table_item_generic\x20—\x20Query\x20a\x20generic\x20table\x20item\x20from\x20ANY\x20object\x27s\x20dynamic\x20fields\x20(Parent:\x20any\x20object).\x20Supports\x20arbitrary\x20key\x20types\x20(address,\x20u64,\x20string,\x20object\x20ID,\x20etc.).\x20Use\x20for\x20custom\x20objects\x20and\x20general-purpose\x20table\x20lookups.\x20Returns:\x20ObjectBase\x20|\x20undefined.\x0a'+'19.\x20address_profile\x20—\x20unified\x20address\x20profile\x20(classification\x20+\x20identity\x20+\x20reputation\x20+\x20memberships\x20+\x20reverse\x20bindings\x20+\x20the\x20object,\x20with\x20a\x20merged\x20service_analysis\x20block\x20for\x20Service\x20addresses).\x20Also\x20available\x20via\x20query_toolkit\x20(query_type=\x22address_profile\x22).\x0a'+'20.\x20service_supply_chain\x20—\x20resolve\x20a\x20Service\x27s\x20transparent\x20sub-order\x20purchasing\x20graph.\x20Also\x20available\x20via\x20query_toolkit\x20(query_type=\x22service_supply_chain\x22).\x0a\x0a'+'🧩\x20Repository\x20composite\x20(order,\x20tag)\x20plane\x20(P155-14②,\x20v140):\x20per-order\x20evidence\x20rows\x20live\x20in\x20a\x20SECOND\x20dynamic-field\x20namespace\x20keyed\x20by\x20OrderTagKey{order,\x20tag}\x20(NOT\x20the\x20legacy\x20(id,\x20key)\x20plane)\x20—\x20explore\x20them\x20via\x20onchain_table\x20(they\x20appear\x20as\x20entries\x20whose\x20key\x20object\x20carries\x20order+tag)\x20or\x20read\x20one\x20via\x20onchain_table_item_generic;\x20row\x20presence\x20for\x20Guard\x20logic\x20routes\x20to\x20guard\x20query\x20\x27repository.order_tag\x20has\x27\x20(1180).\x20The\x20legacy\x20plane\x27s\x20row\x20removals\x20are\x20now\x20observable\x20via\x20the\x20RowRemovedEvent.\x0a\x0a'+'🧭\x20Tool\x20selection\x20(avoid\x20confusion):\x20use\x20query_toolkit\x20to\x20query\x20a\x20WHOLE\x20object/balance/profile;\x20use\x20onchain_events\x20to\x20query\x20state-transition\x20events;\x20use\x20onchain_table_data\x20(this\x20tool)\x20to\x20paginate\x20over\x20ONE\x20object\x27s\x20dynamic\x20table\x20fields\x20or\x20read\x20a\x20single\x20table\x20item.\x0a\x0a'+'💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27onchain_table_data\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20table\x20item\x20types\x20and\x20field\x20definitions.','inputSchema':OnchainTableDataSchema,'outputSchema':OnchainTableDataResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('table\x20query',['on-chain','table','dynamic\x20fields','pagination','repository','permission','reward','demand','treasury','machine','progress'])}},{'name':'onchain_events','handler':handleOnchainEvents,'config':{'title':'📅\x20Query\x20WoWok\x20On-chain\x20Events','summary':'Watch\x20on-chain\x20state-transition\x20and\x20fund-flow\x20events\x20(all\x2028\x20framework\x20types).','description':'Query\x20on-chain\x20WoWok\x20events\x20by\x20type\x20(a\x20ONE-TIME\x20paginated\x20query\x20—\x20NOT\x20a\x20realtime\x20subscription).\x20All\x2028\x20framework\x20event\x20types\x20are\x20supported,\x20grouped\x20by\x20business\x20family:\x20market\x20opportunity\x20(ServiceEvent,\x20ArbitrationEvent,\x20DemandChangedEvent,\x20DemandPresentEvent),\x20order/workflow\x20(NewOrderEvent,\x20ProgressEvent,\x20ThresholdPendingEvent\x20—\x20the\x20below-threshold\x20multi-sig/vote\x20accumulation,\x20protocol\x20version\x20137),\x20refund\x20settlement\x20(PrincipalRefundedEvent\x20—\x20the\x20order\x20principal\x20fully\x20refunded,\x20RefundStamp\x20latched\x20by\x20owner_receive;\x20read\x20half\x20is\x20guard\x20query\x201579),\x20dispute\x20(ArbEvent,\x20VoteEvent,\x20FeedbackEvent,\x20ArbStatementEvent),\x20reputation\x20(DemandFeedbackEvent,\x20NewEntityEvent,\x20VoteEvictedEvent),\x20fund\x20flow\x20(AllocationEvent,\x20TreasuryEvent,\x20RewardClaimEvent,\x20RewardFundEvent,\x20RewardWithdrawEvent,\x20NewPaymentEvent),\x20service\x20administration\x20(OrderAllocatorsAppendedEvent),\x20audit/watch\x20(PermissionChangedEvent,\x20RepositoryDataOverwriteEvent,\x20RowRemovedEvent\x20—\x20legacy\x20(id,\x20key)\x20row\x20removed;\x20OrderTagOverwriteEvent\x20/\x20OrderTagRemovedEvent\x20—\x20composite\x20(order,\x20tag)\x20evidence-plane\x20overwrite/removal,\x20the\x20event\x20type\x20itself\x20distinguishes\x20the\x20plane\x20from\x20the\x20legacy\x20one).\x20Use\x20pagination\x20cursor\x20for\x20fetching\x20large\x20result\x20sets.\x0a\x0a💰\x20NewPaymentEvent\x20is\x20the\x20universal\x20fund-flow\x20receipt:\x20every\x20treasury\x20withdraw/deposit,\x20allocation\x20split\x20and\x20compensation\x20payout\x20mints\x20one.\x20Its\x20`from_object`\x20is\x20the\x20internal-only\x20funding-source\x20object\x20(Treasury/Allocation/Service\x20—\x20set\x20by\x20the\x20framework,\x20never\x20user\x20code),\x20and\x20`info.for_object`/`info.for_guard`\x20are\x20user-settable\x20business\x20routing\x20hints;\x20both\x20are\x20registered\x20as\x20on-chain\x20affiliations.\x20RewardWithdrawEvent\x20is\x20the\x20only\x20non-claim\x20outflow\x20from\x20a\x20reward\x20pool\x20(permission-gated)\x20and\x20mirrors\x20the\x20claim\x20event\x27s\x20balance_left.\x20NewOrderEvent.amount\x20includes\x20`_money_display`\x20annotation\x20(unit-converted\x20via\x20the\x20order\x27s\x20Service\x20generic\x20token\x20type;\x20raw-only\x20with\x20retry\x20hint\x20when\x20precision\x20is\x20unavailable).\x0a\x0a🧭\x20Tool\x20selection\x20(avoid\x20confusion):\x20use\x20query_toolkit\x20to\x20query\x20whole\x20objects/balances/profiles;\x20use\x20onchain_table_data\x20to\x20query\x20ONE\x20object\x27s\x20dynamic\x20table\x20fields;\x20use\x20onchain_events\x20(this\x20tool)\x20to\x20query\x20EVENTS\x20by\x20type.\x0a\x0a💡\x20Schema\x20hint:\x20call\x20the\x20OTHER\x20tool\x20`schema_query`\x20with\x20action=\x27get\x27\x20and\x20name=\x27onchain_events\x27\x20to\x20retrieve\x20the\x20exact\x20parameter\x20schema\x20with\x20all\x20event\x20types\x20and\x20field\x20definitions.','inputSchema':OnchainEventsInputSchema,'outputSchema':OnchainEventsResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('watch\x20wowook\x20events',['events','on-chain','arbitration','order','progress','demand','entity'])}},{'name':'wowok_buildin_info','handler':handleWowokInfo,'config':{'title':'ℹ️\x20WoWok\x20Build-in\x20Information','summary':'Getting-started\x20orientation,\x20protocol\x20constants,\x20permissions,\x20bridge\x20tokens,\x20funding\x20guidance,\x20upgrade\x20check.','description':'Query\x20WoWok\x20protocol\x20information:\x20\x27getting\x20started\x27,\x20\x27constants\x27,\x20\x27built-in\x20permissions\x27,\x20\x27common\x20mistakes\x27,\x20\x27guard\x20instructions\x27,\x20\x27current\x20network\x27,\x20\x27value\x20types\x27,\x20\x27mainnet\x20bridge\x20tokens\x27,\x20\x27funding\x20guidance\x27,\x20\x27upgrade_check\x27,\x20or\x20\x27universal_template\x27.\x20Call\x20\x27getting\x20started\x27\x20at\x20conversation\x20start\x20when\x20no\x20WoWok\x20Skill\x20guidance\x20is\x20loaded\x20—\x20it\x20explains\x20what\x20the\x20companion\x20@wowok'+'/skills\x20package\x20is,\x20gives\x20install/doctor/repair\x20commands,\x20best-effort\x20local\x20detection\x20of\x20installed\x20skills,\x20the\x20~20s\x20cold-start\x20window,\x20and\x20maps\x20common\x20goals\x20to\x20sub-tools.\x20Use\x20\x27common\x20mistakes\x27\x20to\x20proactively\x20learn\x20known\x20field-name/unit/workflow\x20pitfalls\x20before\x20submitting\x20an\x20operation\x20(e.g.\x20filter\x20operation:\x22compensation_fund_add\x22).\x20For\x20\x27mainnet\x20bridge\x20tokens\x27:\x20returns\x20cross-chain\x20bridge\x20tokens\x20(ETH,\x20WETH,\x20WBTC,\x20USDC,\x20USDT)\x20with\x20each\x20token\x27s\x20symbol,\x20WOW-side\x20type\x20tag\x20(wowTypeTag),\x20EVM\x20address,\x20decimals,\x20and\x20description.\x20The\x20wowTypeTag\x20(format\x20{address}::{module}::{struct})\x20can\x20be\x20used\x20directly\x20as\x20the\x20`type_parameter`\x20of\x20Service\x20/\x20Treasury\x20/\x20Reward\x20/\x20Allocation\x20objects\x20to\x20set\x20their\x20payment\x20token\x20—\x20e.g.\x20use\x20USDT\x27s\x20wowTypeTag\x20to\x20create\x20a\x20Service\x20that\x20accepts\x20USDT\x20payments.\x20For\x20\x27funding\x20guidance\x27:\x20returns\x20how\x20to\x20obtain\x20WOW\x20gas\x20and\x20payment\x20tokens\x20—\x20testnet\x20faucet,\x20mainnet\x20ETH\x20cross-chain\x20bridge\x20flow,\x20and\x20the\x20WOW\x20mainnet\x20airdrop\x20link.\x20Use\x20this\x20when\x20a\x20user\x20asks\x20how\x20to\x20obtain\x20tokens/gas/funds,\x20or\x20as\x20a\x20proactive\x20first-use\x20reminder.','inputSchema':ProtocolInfoQuerySchema,'outputSchema':ProtocolInfoResultSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':!![]},'_meta':createToolMeta('WoWok\x20info',['build-in','getting-started','skills','constants','permissions','guard','network','value-types','bridge-tokens','funding-guidance','faucet','airdrop'])}},{'name':'schema_query','handler':handleSchemaQuery,'config':{'title':'📋\x20Schema\x20Query','summary':'Query\x20JSON\x20schemas\x20for\x20any\x20sub-tool\x20(action:\x20list/get/get_output/search).','description':'Look\x20up\x20JSON\x20Schemas\x20for\x20WoWok\x20MCP\x20tools\x20and\x20on-chain\x20operations.\x20'+'This\x20is\x20the\x20authoritative\x20reference\x20for\x20exact\x20parameter\x20structures,\x20types,\x20and\x20required\x20fields.\x20'+'Always\x20check\x20the\x20schema\x20before\x20calling\x20an\x20unfamiliar\x20tool.\x0a\x0a'+'Actions:\x0a'+'\x20\x20\x27list\x27\x20-\x20Show\x20all\x20available\x20schemas\x20(tools\x20+\x20on-chain\x20operations).\x20Start\x20here\x20to\x20discover\x20what\x20exists.\x0a'+'\x20\x20\x27get\x27\x20-\x20Fetch\x20the\x20full\x20input\x20JSON\x20Schema\x20by\x20name\x20(e.g.\x20\x27onchain_operations\x27).\x20Use\x20with\x20the\x20\x27name\x27\x20param.\x0a'+'\x20\x20\x27get_output\x27\x20-\x20Fetch\x20the\x20output\x20JSON\x20Schema\x20of\x20a\x20tool\x20by\x20name\x20(e.g.\x20\x27onchain_operations\x27).\x20Use\x20with\x20the\x20\x27name\x27\x20param.\x20Use\x20this\x20to\x20understand\x20a\x20tool\x27s\x20return\x20value\x20structure.\x0a'+'\x20\x20\x27get_field\x27\x20-\x20Query\x20a\x20single\x20field\x20by\x20dot-path\x20(e.g.\x20field_path=\x27data.node.nodes.0.pairs\x27).\x20Cheaper\x20than\x20\x27get\x27\x20when\x20you\x20only\x20need\x20one\x20subtree.\x0a'+'\x20\x20\x27search\x27\x20-\x20Find\x20schemas\x20by\x20keyword,\x20matching\x20name/title/description.\x20Use\x20with\x20the\x20\x27query\x27\x20param.\x0a'+'\x20\x20\x27list_operations\x27\x20-\x20Show\x20only\x20on-chain\x20operation\x20schemas\x20(prefixed\x20\x27onchain_operations_\x27).\x20Narrower\x20than\x20\x27list\x27.\x0a'+'\x20\x20\x27get_guard_templates\x27\x20-\x20Guard\x20creation\x20templates\x20from\x20the\x20unified\x20library:\x20omit\x20\x27template\x27\x20to\x20list\x20every\x20tpl_*\x20id,\x20or\x20pass\x20one\x20for\x20the\x20full\x20parameterized\x20disclosure\x20(each\x20parameter\x20with\x20meaning,\x20default,\x20constraint,\x20and\x20derived\x20importance\x20—\x20identity-critical\x20first).\x0a'+'\x20\x20\x27get_tool_reference\x27\x20-\x20MCP\x20tool\x20usage\x20reference\x20(summaries,\x20actions,\x20prerequisites,\x20notes).\x20Pass\x20name=\x27<tool>\x27\x20for\x20one\x20tool,\x20query=\x27<keyword>\x27\x20to\x20search,\x20or\x20omit\x20for\x20the\x20full\x20catalog.\x0a'+'\x20\x20\x27get_guard_design_patterns\x27\x20-\x20Curated\x20Guard\x20design\x20patterns\x20(business\x20requirement\x20→\x20logic\x20tree\x20template).\x20Pass\x20name=\x27<pattern_id>\x27,\x20query=\x27<host>\x27\x20(e.g.\x20\x27service_buy_guard\x27,\x20\x27machine_forward\x27),\x20or\x20omit\x20for\x20the\x20full\x20catalog.\x0a'+'\x20\x20\x27get_safety_rules\x27\x20-\x20Safety\x20rule\x20tables\x20sunk\x20from\x20the\x20wowok-safety\x20skill:\x20object\x20reuse,\x20immutability-after-publish,\x20LOCAL/ONCHAIN/QUERY\x20classification,\x20naming\x20conventions.\x0a'+'\x20\x20\x27analyze_guard_semantics\x27\x20-\x20Parse\x20+\x20evaluate\x20ANY\x20Guard\x20JSON\x20(pass\x20guard=<json>):\x20rendered\x20logic\x20tree,\x20lint\x20+\x20risk\x20diagnostics,\x20and\x20a\x20party-perspective\x20fact\x20sheet\x20(who\x20can\x20trigger,\x20time\x20constraints,\x20evidence\x20required,\x20data\x20sources\x20read\x20—\x20including\x20which\x20are\x20mutable\x20on-chain).\x20BOTH\x20transacting\x20parties\x20should\x20run\x20this\x20before\x20relying\x20on\x20a\x20Guard\x20(e.g.\x20a\x20refund\x20or\x20fund-release\x20Guard\x20is\x20a\x20free-form\x20game\x20condition\x20tree,\x20not\x20necessarily\x20tied\x20to\x20any\x20Machine\x20node).','inputSchema':SchemaQueryInputSchema,'outputSchema':SchemaQueryOutputSchema,'annotations':{'readOnlyHint':!![],'destructiveHint':![],'idempotentHint':!![],'openWorldHint':![]},'_meta':createToolMeta('schema',['schema','json-schema','types','structure','validation','reference'])}}];
@@ -1 +1 @@
1
- export const DEFAULT_FAUCET_RETRY_CONFIG={'maxRetries':0x5,'intervalMs':0xbb8};export function loadFaucetRetryConfig(){const a=Number(process['env']['WOWOK_FAUCET_RETRY_COUNT']),b=Number(process['env']['WOWOK_FAUCET_RETRY_INTERVAL_MS']);return{'maxRetries':Number['isFinite'](a)&&a>0x0?Math['floor'](a):DEFAULT_FAUCET_RETRY_CONFIG['maxRetries'],'intervalMs':Number['isFinite'](b)&&b>0x0?Math['floor'](b):DEFAULT_FAUCET_RETRY_CONFIG['intervalMs']};}export function isFaucetRateLimitError(a){if(!a)return![];const b=a instanceof Error?a['message']:String(a),c=b['toLowerCase']();if(c['includes']('429'))return!![];if(c['includes']('rate\x20limit'))return!![];if(c['includes']('rate-limit'))return!![];if(c['includes']('too\x20many\x20requests'))return!![];if(c['includes']('try\x20again\x20in'))return!![];if(c['includes']('throttle'))return!![];return![];}function isFaucetOperation(a){if(typeof a!=='object'||a===null)return![];const b=a;return b['faucet']!==undefined&&b['faucet']!==null;}export function withFaucetRetry(a,b=loadFaucetRetryConfig()){return async c=>{if(!isFaucetOperation(c))return a(c);let d;for(let g=0x1;g<=b['maxRetries'];g++){try{const h=await a(c);if(h&&typeof h==='object'&&!Array['isArray'](h)){const i=h;i['faucet_retry_count']===undefined&&g>0x1&&(i['faucet_retry_count']=g);}return h;}catch(j){d=j;if(!isFaucetRateLimitError(j))throw j;if(g===b['maxRetries'])break;await new Promise(k=>setTimeout(k,b['intervalMs']));}}const e=d instanceof Error?d['message']:String(d),f=new Error('Faucet\x20request\x20failed\x20after\x20'+b['maxRetries']+'\x20attempts\x20'+('(interval\x20'+b['intervalMs']+'ms).\x20Last\x20error:\x20'+e+'.\x20')+'The\x20faucet\x20endpoint\x20is\x20currently\x20rate-limiting\x20this\x20account.\x20'+'Suggestions:\x0a'+'\x20\x201.\x20Wait\x20a\x20few\x20minutes\x20and\x20try\x20again.\x0a'+'\x20\x202.\x20Use\x20a\x20different\x20faucet\x20network\x20if\x20available.\x0a'+'\x20\x203.\x20Override\x20retry\x20config\x20via\x20env\x20vars:\x20'+'WOWOK_FAUCET_RETRY_COUNT\x20(default\x205),\x20'+'WOWOK_FAUCET_RETRY_INTERVAL_MS\x20(default\x203000).');d instanceof Error&&d['code']&&(f['code']=d['code']);throw f;};}
1
+ import{normalizeErrorMessage}from'../schema/call/normalize-error.js';export const DEFAULT_FAUCET_RETRY_CONFIG={'maxRetries':0x5,'intervalMs':0xbb8};export function loadFaucetRetryConfig(){const a=Number(process['env']['WOWOK_FAUCET_RETRY_COUNT']),b=Number(process['env']['WOWOK_FAUCET_RETRY_INTERVAL_MS']);return{'maxRetries':Number['isFinite'](a)&&a>0x0?Math['floor'](a):DEFAULT_FAUCET_RETRY_CONFIG['maxRetries'],'intervalMs':Number['isFinite'](b)&&b>0x0?Math['floor'](b):DEFAULT_FAUCET_RETRY_CONFIG['intervalMs']};}export function isFaucetRateLimitError(a){if(!a)return![];const b=normalizeErrorMessage(a),c=b['toLowerCase']();if(c['includes']('429'))return!![];if(c['includes']('rate\x20limit'))return!![];if(c['includes']('rate-limit'))return!![];if(c['includes']('too\x20many\x20requests'))return!![];if(c['includes']('try\x20again\x20in'))return!![];if(c['includes']('throttle'))return!![];return![];}function isFaucetOperation(a){if(typeof a!=='object'||a===null)return![];const b=a;return b['faucet']!==undefined&&b['faucet']!==null;}export function withFaucetRetry(a,b=loadFaucetRetryConfig()){return async c=>{if(!isFaucetOperation(c))return a(c);let d;for(let g=0x1;g<=b['maxRetries'];g++){try{const h=await a(c);if(h&&typeof h==='object'&&!Array['isArray'](h)){const i=h;i['faucet_retry_count']===undefined&&g>0x1&&(i['faucet_retry_count']=g);}return h;}catch(j){d=j;if(!isFaucetRateLimitError(j))throw j;if(g===b['maxRetries'])break;await new Promise(k=>setTimeout(k,b['intervalMs']));}}const e=d instanceof Error?d['message']:String(d),f=new Error('Faucet\x20request\x20failed\x20after\x20'+b['maxRetries']+'\x20attempts\x20'+('(interval\x20'+b['intervalMs']+'ms).\x20Last\x20error:\x20'+e+'.\x20')+'The\x20faucet\x20endpoint\x20is\x20currently\x20rate-limiting\x20this\x20account.\x20'+'Suggestions:\x0a'+'\x20\x201.\x20Wait\x20a\x20few\x20minutes\x20and\x20try\x20again.\x0a'+'\x20\x202.\x20Use\x20a\x20different\x20faucet\x20network\x20if\x20available.\x0a'+'\x20\x203.\x20Override\x20retry\x20config\x20via\x20env\x20vars:\x20'+'WOWOK_FAUCET_RETRY_COUNT\x20(default\x205),\x20'+'WOWOK_FAUCET_RETRY_INTERVAL_MS\x20(default\x203000).');d instanceof Error&&d['code']&&(f['code']=d['code']);throw f;};}
@@ -1 +1 @@
1
- const runtimeFaults=new Map();export function isModuleLoadError(a){const b=a instanceof Error?a['message']:String(a);if(!b)return![];return b['includes']('ERR_MODULE_NOT_FOUND')||/Cannot find (module|package)/i['test'](b);}function missingModuleFrom(a){const b=a instanceof Error?a['message']:String(a);return b['match'](/Cannot find (?:module|package) '([^']+)'/)?.[0x1]??null;}export function noteRuntimeModuleFault(a,b){const c=missingModuleFrom(b)??'unknown\x20module',d=a+'::'+c,e=runtimeFaults['get'](d);if(e)return e['count']+=0x1,e;const f={'operation':a,'module':c,'error':b instanceof Error?b['message']:String(b),'at':new Date()['toISOString'](),'count':0x1};return runtimeFaults['set'](d,f),f;}export function getRuntimeModuleFaults(){return[...runtimeFaults['values']()];}
1
+ import{normalizeErrorMessage}from'../schema/call/normalize-error.js';const runtimeFaults=new Map();export function isModuleLoadError(a){const b=normalizeErrorMessage(a);if(!b)return![];return b['includes']('ERR_MODULE_NOT_FOUND')||/Cannot find (module|package)/i['test'](b);}function missingModuleFrom(a){const b=normalizeErrorMessage(a);return b['match'](/Cannot find (?:module|package) '([^']+)'/)?.[0x1]??null;}export function noteRuntimeModuleFault(a,b){const c=missingModuleFrom(b)??'unknown\x20module',d=a+'::'+c,e=runtimeFaults['get'](d);if(e)return e['count']+=0x1,e;const f={'operation':a,'module':c,'error':normalizeErrorMessage(b),'at':new Date()['toISOString'](),'count':0x1};return runtimeFaults['set'](d,f),f;}export function getRuntimeModuleFaults(){return[...runtimeFaults['values']()];}
@@ -1 +1 @@
1
- import{confirmGate}from'../safety/confirm-gate.js';import{renderPreview}from'../safety/preview.js';import{validateOperation,hasBlockingViolations,getWarningViolations}from'../knowledge/index.js';import{recover}from'../harness/recover.js';import{classifyError,buildDataSemantic}from'../schema/call/semantic.js';import{strictParse}from'../schema/index.js';export function wrapLocalHandler(a){const {schema:b,operationFn:c,parseLabel:d,buildContext:e}=a;return async f=>{let g;try{g=strictParse(b,f,d);const h=await c(g),i=e(g);return{'content':[{'type':'text','text':JSON['stringify'](h)}],'structuredContent':{'result':{'status':'success','data':h},'semantic':buildDataSemantic(h,i)}};}catch(j){const k=j instanceof Error?j['message']:String(j),l=g?e(g):undefined,m=classifyError(k),n={'status':'error','error':k};if(m['error_code']!==undefined)n['error_code']=m['error_code'];if(m['retryable']!==undefined)n['retryable']=m['retryable'];if(m['recovery_hint']!==undefined)n['recovery_hint']=m['recovery_hint'];return{'content':[{'type':'text','text':'Error:\x20'+k}],'structuredContent':{'result':n,'semantic':buildDataSemantic(undefined,l,!![],k)}};}};}export function buildPendingConfirmation(a,b,c,d,e){const f=confirmGate(a,b,c,c?.['user_intent_phrases'],d,e);if(f['pass'])return{'content':[],'structuredContent':null};const g=f['preview'],h=renderPreview(g),i={'outcome':'pending_input','message':h,'result':{'type':'pending_confirmation','preview':g,'rule_id':f['rule_id']},'semantic':{'intent':a+'_awaiting_confirmation','status':'pending_input','summary':'Operation\x20blocked\x20by\x20ConfirmGate\x20('+f['level']+').\x20Review\x20the\x20preview\x20and\x20re-call\x20with\x20env.confirmed=true\x20to\x20proceed.','next_actions':[{'action':'confirm:\x20re-call\x20the\x20SAME\x20operation\x20with\x20env.confirmed=true','reason':'ConfirmGate\x20rule\x20\x27'+f['rule_id']+'\x27\x20matched.\x20The\x20operation\x20was\x20NOT\x20executed.','tool':'onchain_operations','priority':'required'}],'warnings':g['warnings']??[]}};return{'content':[{'type':'text','text':h}],'structuredContent':i};}export function buildConstraintError(a,b){const c=b['filter'](g=>g['severity']==='error'),d=c['map'](g=>'\x20\x20•\x20['+g['field']+']\x20'+g['message'])['join']('\x0a'),e='Pre-call\x20constraint\x20violations\x20for\x20\x27'+a+'\x27:\x0a'+d+'\x0a\x0aFix\x20the\x20listed\x20field(s)\x20and\x20retry.',f={'outcome':'failed','message':e,'result':{'type':'error','error':e,'error_code':'invalid_parameter','retryable':![],'recovery_hint':'Review\x20the\x20constraint\x20violations\x20above\x20and\x20correct\x20the\x20corresponding\x20fields.'},'recovery':recover('invalid_parameter',a)};return{'content':[{'type':'text','text':e}],'structuredContent':f};}export function buildClassifiedErrorResult(a,b,c){const d={...a,'error':b};if(c['error_code']!==undefined)d['error_code']=c['error_code'];if(c['retryable']!==undefined)d['retryable']=c['retryable'];if(c['recovery_hint']!==undefined)d['recovery_hint']=c['recovery_hint'];return d;}export{validateOperation,hasBlockingViolations,getWarningViolations};
1
+ import{confirmGate}from'../safety/confirm-gate.js';import{renderPreview}from'../safety/preview.js';import{validateOperation,hasBlockingViolations,getWarningViolations}from'../knowledge/index.js';import{recover}from'../harness/recover.js';import{classifyError,buildDataSemantic,normalizeErrorMessage}from'../schema/call/semantic.js';import{strictParse}from'../schema/index.js';export function wrapLocalHandler(a){const {schema:b,operationFn:c,parseLabel:d,buildContext:e}=a;return async f=>{let g;try{g=strictParse(b,f,d);const h=await c(g),i=e(g);return{'content':[{'type':'text','text':JSON['stringify'](h)}],'structuredContent':{'result':{'status':'success','data':h},'semantic':buildDataSemantic(h,i)}};}catch(j){const k=normalizeErrorMessage(j),l=g?e(g):undefined,m=classifyError(k),n={'status':'error','error':k};if(m['error_code']!==undefined)n['error_code']=m['error_code'];if(m['retryable']!==undefined)n['retryable']=m['retryable'];if(m['recovery_hint']!==undefined)n['recovery_hint']=m['recovery_hint'];return{'content':[{'type':'text','text':'Error:\x20'+k}],'structuredContent':{'result':n,'semantic':buildDataSemantic(undefined,l,!![],k)}};}};}export function buildPendingConfirmation(a,b,c,d,e){const f=confirmGate(a,b,c,c?.['user_intent_phrases'],d,e);if(f['pass'])return{'content':[],'structuredContent':null};const g=f['preview'],h=renderPreview(g),i={'outcome':'pending_input','message':h,'result':{'type':'pending_confirmation','preview':g,'rule_id':f['rule_id']},'semantic':{'intent':a+'_awaiting_confirmation','status':'pending_input','summary':'Operation\x20blocked\x20by\x20ConfirmGate\x20('+f['level']+').\x20Review\x20the\x20preview\x20and\x20re-call\x20with\x20env.confirmed=true\x20to\x20proceed.','next_actions':[{'action':'confirm:\x20re-call\x20the\x20SAME\x20operation\x20with\x20env.confirmed=true','reason':'ConfirmGate\x20rule\x20\x27'+f['rule_id']+'\x27\x20matched.\x20The\x20operation\x20was\x20NOT\x20executed.','tool':'onchain_operations','priority':'required'}],'warnings':g['warnings']??[]}};return{'content':[{'type':'text','text':h}],'structuredContent':i};}export function buildConstraintError(a,b){const c=b['filter'](g=>g['severity']==='error'),d=c['map'](g=>'\x20\x20•\x20['+g['field']+']\x20'+g['message'])['join']('\x0a'),e='Pre-call\x20constraint\x20violations\x20for\x20\x27'+a+'\x27:\x0a'+d+'\x0a\x0aFix\x20the\x20listed\x20field(s)\x20and\x20retry.',f={'outcome':'failed','message':e,'result':{'type':'error','error':e,'error_code':'invalid_parameter','retryable':![],'recovery_hint':'Review\x20the\x20constraint\x20violations\x20above\x20and\x20correct\x20the\x20corresponding\x20fields.'},'recovery':recover('invalid_parameter',a)};return{'content':[{'type':'text','text':e}],'structuredContent':f};}export function buildClassifiedErrorResult(a,b,c){const d={...a,'error':b};if(c['error_code']!==undefined)d['error_code']=c['error_code'];if(c['retryable']!==undefined)d['retryable']=c['retryable'];if(c['recovery_hint']!==undefined)d['recovery_hint']=c['recovery_hint'];return d;}export{validateOperation,hasBlockingViolations,getWarningViolations};
@@ -43,6 +43,7 @@ export interface RuntimeHealth {
43
43
  export interface WorkspaceStaleness {
44
44
  stale: boolean;
45
45
  lag_minutes: number;
46
+ basis?: "content-hash" | "mtime";
46
47
  }
47
48
  export declare function computeSrcDistStaleness(srcDir: string, distDir: string, opts?: {
48
49
  srcExt?: string;
@@ -1 +1 @@
1
- import{readFileSync,existsSync,writeFileSync,mkdirSync,readdirSync,statSync}from'fs';import{join,dirname}from'path';import{fileURLToPath}from'url';import{getWowMcpDir,getFullnodeUrl,WowClient}from'@wowok/wowok';import{getRuntimeModuleFaults}from'./runtime-health.js';import{BUILTIN_TEMPLATES_VERSION}from'../knowledge/builtin-templates.js';import{resolveNetwork}from'./handlers/network.js';const __dirname=dirname(fileURLToPath(import.meta.url)),MCP_PACKAGE='@wowok/agent-mcp',SDK_PACKAGE='@wowok/wowok',WEEK_MS=0x7*0x18*0x3c*0x3c*0x3e8,REMINDER_FILE=join(getWowMcpDir(),'upgrade-reminder.json');function readMcpVersion(){try{const a=join(__dirname,'..','..','package.json'),b=JSON['parse'](readFileSync(a,'utf-8'));return b['version']??null;}catch{return null;}}export function computeSrcDistStaleness(a,b,c={}){try{const d=c['srcExt']??'.ts',f=c['distExt']??'.mjs';if(!existsSync(a)||!existsSync(b))return null;let g=0x0;const h=k=>{for(const l of readdirSync(k,{'withFileTypes':!![]})){const m=join(k,l['name']);if(l['isDirectory']())h(m);else{if(l['name']['endsWith'](d))g=Math['max'](g,statSync(m)['mtimeMs']);}}};h(a);let i=0x0;for(const k of readdirSync(b,{'withFileTypes':!![]})){if(k['isFile']()&&k['name']['endsWith'](f))i=Math['max'](i,statSync(join(b,k['name']))['mtimeMs']);}if(g===0x0||i===0x0)return null;const j=g-i;return{'stale':j>0x1388,'lag_minutes':Math['max'](0x0,Math['round'](j/0xea60))};}catch{return null;}}export async function readChainStamp(a=0x1f40){const b={'network':null,'protocol_version':null,'system_state_version':null,'epoch':null,'fetched':![],'fetched_at':null,'error':null};try{const c=await resolveNetwork(),d=new WowClient({'url':getFullnodeUrl(c),'network':c}),f=await Promise['race']([d['core']['getCurrentSystemState'](),new Promise((h,i)=>setTimeout(()=>i(new Error('chain\x20stamp\x20timeout\x20after\x20'+a+'ms\x20(cold-start\x20RPC)')),a))]),g=f['systemState'];return{'network':c,'protocol_version':g['protocolVersion']!=null?String(g['protocolVersion']):null,'system_state_version':g['systemStateVersion']!=null?String(g['systemStateVersion']):null,'epoch':g['epoch']!=null?String(g['epoch']):null,'fetched':!![],'fetched_at':new Date()['toISOString'](),'error':null};}catch(h){return{...b,'error':h instanceof Error?h['message']:String(h)};}}export function findSdkPackageDir(){try{const a=fileURLToPath(import.meta.resolve(SDK_PACKAGE));let b=dirname(a);for(let c=0x0;c<0x6;c++){const d=join(b,'package.json');if(existsSync(d)){const e=JSON['parse'](readFileSync(d,'utf-8'));if(e['name']===SDK_PACKAGE)return b;}b=dirname(b);}return null;}catch{return null;}}function readSdkVersion(){const a=findSdkPackageDir();if(!a)return null;try{const b=JSON['parse'](readFileSync(join(a,'package.json'),'utf-8'));return b['version']??null;}catch{return null;}}function scanSdkDistConsistency(a){const b=[];if(!a)return{'consistent':!![],'broken':b};const c=join(a,'dist','esm');if(!existsSync(c))return{'consistent':!![],'broken':b};let d;try{d=readdirSync(c)['filter'](e=>e['endsWith']('.mjs'));}catch{return{'consistent':!![],'broken':b};}for(const e of d){let g;try{g=readFileSync(join(c,e),'utf-8');}catch{continue;}const h=/(?:from\s*|import\s*\(\s*)(["'])(\.[^"']+)\1/g;let i;while((i=h['exec'](g))!==null){const j=i[0x2]['split']('?')[0x0],k=[j,j+'.mjs',j+'.js'];if(!k['some'](l=>existsSync(join(c,l)))){b['push'](e+'\x20->\x20'+i[0x2]);if(b['length']>=0x5)return{'consistent':![],'broken':b};}}}return{'consistent':b['length']===0x0,'broken':b};}function computeRuntimeHealth(){const a=getRuntimeModuleFaults(),b=scanSdkDistConsistency(findSdkPackageDir()),c=!b['consistent']||a['length']>0x0;return{'dist_consistent':b['consistent'],'broken_count':b['broken']['length'],'broken_examples':b['broken'],'runtime_faults':a,'hint':c?'The\x20SDK\x20runtime\x20of\x20this\x20MCP\x20process\x20is\x20unhealthy:\x20the\x20loaded\x20module\x20graph\x20and/or\x20the\x20SDK\x20dist\x20on\x20disk\x20reference\x20chunk(s)\x20that\x20no\x20longer\x20exist.\x20Restart\x20the\x20MCP\x20server\x20process\x20to\x20reload\x20the\x20rebuilt\x20dist\x20—\x20version\x20numbers\x20alone\x20cannot\x20detect\x20this\x20state.':null};}function parseUpgradePolicy(a){if(!a||typeof a!=='object')return null;const b=a;return{'enforce':b['enforce']===!![],'min_version':typeof b['minVersion']==='string'?b['minVersion']:null,'reason':typeof b['reason']==='string'?b['reason']:null};}async function fetchNpmManifest(a){const b='https://registry.npmjs.org/'+encodeURIComponent(a)+'/latest',c=new AbortController(),d=setTimeout(()=>c['abort'](),0x1770);try{const e=await fetch(b,{'signal':c['signal']});if(!e['ok'])return null;const f=await e['json']();return{'version':f['version']??null,'policy':parseUpgradePolicy(f['wowok']?.['upgrade'])};}catch{return null;}finally{clearTimeout(d);}}function compareVersions(c,e){const f=c['split']('.')['map'](h=>parseInt(h,0xa)||0x0),g=e['split']('.')['map'](h=>parseInt(h,0xa)||0x0);for(let h=0x0;h<Math['max'](f['length'],g['length']);h++){const j=(f[h]||0x0)-(g[h]||0x0);if(j!==0x0)return j;}return 0x0;}let npmLatestPromise=null,npmLatestResolved=null,npmLatestFetchedAt=0x0;const NPM_LATEST_TTL_MS=0xa*0x3c*0x3e8;export function upgradeEnforceEnabled(){return process['env']['WOWOK_UPGRADE_ENFORCE']==='1';}export function upgradePolicyPath(){return join(getWowMcpDir(),'upgrade-policy.json');}function readLocalUpgradePolicy(){try{const a=upgradePolicyPath();if(!existsSync(a))return null;const b=JSON['parse'](readFileSync(a,'utf-8'));return typeof b['enforce']==='boolean'?{'enforce':b['enforce']}:null;}catch{return null;}}export function resolveUpgradeEnforcement(a,b){const c=process['env']['WOWOK_UPGRADE_ENFORCE'];if(c==='1')return{'enforced':!![],'source':'env'};if(c==='0')return{'enforced':![],'source':'env'};if(process['env']['WOWOK_EMBEDDED']==='1')return{'enforced':![],'source':'embedded'};const d=readLocalUpgradePolicy();if(d)return{'enforced':d['enforce'],'source':'local-file'};if(!a)return{'enforced':![],'source':'none'};const e=a['min_version']!==null&&!!b&&compareVersions(a['min_version'],b)>0x0;return{'enforced':a['enforce']||e,'source':'npm'};}export function primeUpgradeLookup(){if(npmLatestPromise&&Date['now']()-npmLatestFetchedAt<NPM_LATEST_TTL_MS)return;npmLatestFetchedAt=Date['now'](),npmLatestResolved=null,npmLatestPromise=Promise['all']([fetchNpmManifest(MCP_PACKAGE),fetchNpmManifest(SDK_PACKAGE)])['then'](([a,b])=>{return npmLatestResolved={'mcp':a,'sdk':b},npmLatestResolved;})['catch'](()=>({'mcp':null,'sdk':null}));}async function getNpmLatest(){primeUpgradeLookup();const a=await npmLatestPromise??{'mcp':null,'sdk':null};return{'mcp':a['mcp']?.['version']??null,'sdk':a['sdk']?.['version']??null};}export async function getStartupUpgradeNotice(a=0x5dc){if(!npmLatestPromise)return null;!npmLatestResolved&&await Promise['race']([npmLatestPromise,new Promise(m=>setTimeout(m,a))]);const b=npmLatestResolved;if(!b)return null;const c=b['mcp']?.['version']??null,d=b['sdk']?.['version']??null,e=readMcpVersion(),f=readSdkVersion(),g=!!(e&&c&&compareVersions(c,e)>0x0),h=!!(f&&d&&compareVersions(d,f)>0x0);if(!g&&!h)return null;const i=[];if(g)i['push']('MCP\x20v'+e+'\x20→\x20v'+c);if(h)i['push']('SDK\x20v'+f+'\x20→\x20v'+d);const {enforced:j,source:k}=resolveUpgradeEnforcement(b['mcp']?.['policy']??null,e),l=b['mcp']?.['policy']?.['reason'];return{'mcp':{'current':e,'latest':c,'outdated':g},'sdk':{'current':f,'latest':d,'outdated':h},'outdated':!![],'enforced':j,'policy_source':k,'message':'A\x20newer\x20WoWok\x20version\x20is\x20available\x20('+i['join'](',\x20')+').'+(l?'\x20'+l:'')+('\x20Upgrade\x20for\x20more\x20features\x20and\x20improvements.\x20Run:\x20npm\x20install\x20-g\x20'+MCP_PACKAGE+'@latest')};}function detectClientInstall(){const a=[];if(process['platform']==='win32'){const b=process['env']['LOCALAPPDATA'];b&&(a['push'](join(b,'WoWok','WoWok.exe')),a['push'](join(b,'Programs','WoWok','WoWok.exe')));}else{if(process['platform']==='darwin')a['push']('/Applications/WoWok.app');else{const d=process['env']['HOME']||process['env']['USERPROFILE']||'';d&&(a['push'](join(d,'.local','share','applications','wowok.desktop')),a['push'](join(d,'Applications','WoWok.AppImage')),a['push'](join(d,'.local','bin','wowok')));}}for(const e of a){if(e&&existsSync(e))return{'installed':!![],'hint':null};}return{'installed':![],'hint':'https://download.wowok.net'};}function readReminderState(){try{const a=readFileSync(REMINDER_FILE,'utf-8'),b=JSON['parse'](a);return{'lastInstallClientReminderAt':Number(b['lastInstallClientReminderAt'])||0x0};}catch{return{'lastInstallClientReminderAt':0x0};}}function writeReminderState(a){try{mkdirSync(dirname(REMINDER_FILE),{'recursive':!![]}),writeFileSync(REMINDER_FILE,JSON['stringify'](a),'utf-8');}catch{}}export async function checkUpgrade(){const a=readMcpVersion(),b=readSdkVersion(),{mcp:c,sdk:d}=await getNpmLatest(),e=detectClientInstall(),f=readReminderState(),g=Date['now'](),h=computeRuntimeHealth(),i=!!(a&&c&&compareVersions(c,a)>0x0),j=!!(b&&d&&compareVersions(d,b)>0x0),k=i||j;let l='none',m=![],n=null;if(h['hint']!==null){l='restart_mcp',m=!![];const o=h['runtime_faults']['map'](p=>p['operation']);n='This\x20WoWok\x20MCP\x20process\x20has\x20a\x20broken\x20SDK\x20runtime:\x20its\x20loaded\x20module\x20graph\x20references\x20chunk(s)\x20that\x20were\x20replaced\x20by\x20a\x20rebuild'+(o['length']>0x0?'\x20(failed\x20so\x20far:\x20'+[...new Set(o)]['join'](',\x20')+')':'')+'.\x20Affected\x20operations\x20fail\x20100%\x20of\x20the\x20time\x20until\x20the\x20process\x20is\x20restarted.\x20Restart\x20the\x20MCP\x20server\x20(no\x20reinstall\x20needed)\x20to\x20reload\x20the\x20rebuilt\x20SDK.';}else{if(k){l='upgrade',m=!![];const p=c??d??'',q=a??'';n='A\x20newer\x20WoWok\x20version\x20is\x20available\x20(current\x20v'+q+'\x20→\x20latest\x20v'+p+').\x20'+('Upgrade\x20for\x20more\x20features\x20and\x20improvements.\x20Run:\x20npm\x20install\x20-g\x20'+MCP_PACKAGE+'@latest');}else!e['installed']&&g-f['lastInstallClientReminderAt']>=WEEK_MS&&(l='install_client',m=!![],n='The\x20WoWok\x20desktop\x20client\x20is\x20not\x20installed\x20yet.\x20It\x20provides\x20wallet\x20management,\x20encrypted\x20Messenger,\x20project\x20management\x20and\x20more.\x20'+'Download\x20it\x20at\x20https://download.wowok.net\x20to\x20get\x20started.',f['lastInstallClientReminderAt']=g,writeReminderState(f));}return{'mcp':{'current':a,'latest':c,'outdated':i},'sdk':{'current':b,'latest':d,'outdated':j},'client_installed':e['installed'],'client_install_hint':e['hint'],'upgrade_available':k,'runtime_health':h,'build_stamp':{'builtin_templates_version':BUILTIN_TEMPLATES_VERSION,'mcp_dist_stale':computeSrcDistStaleness(join(__dirname,'..','..','src'),join(__dirname,'..','..','dist'),{'srcExt':'.ts','distExt':'.js'}),'sdk_dist_stale':((()=>{const r=findSdkPackageDir();return r?computeSrcDistStaleness(join(r,'src'),join(r,'dist','esm')):null;})()),'chain_stamp':await readChainStamp()},'reminder':{'type':l,'due':m,'message':n},'checked_at':new Date()['toISOString']()};}
1
+ import{readFileSync,existsSync,writeFileSync,mkdirSync,readdirSync,statSync}from'fs';import{join,dirname,relative,sep}from'path';import{createHash}from'crypto';import{fileURLToPath}from'url';import{getWowMcpDir,getFullnodeUrl,WowClient}from'@wowok/wowok';import{getRuntimeModuleFaults}from'./runtime-health.js';import{BUILTIN_TEMPLATES_VERSION}from'../knowledge/builtin-templates.js';import{resolveNetwork}from'./handlers/network.js';const __dirname=dirname(fileURLToPath(import.meta.url)),MCP_PACKAGE='@wowok/agent-mcp',SDK_PACKAGE='@wowok/wowok',WEEK_MS=0x7*0x18*0x3c*0x3c*0x3e8,REMINDER_FILE=join(getWowMcpDir(),'upgrade-reminder.json');function readMcpVersion(){try{const a=join(__dirname,'..','..','package.json'),b=JSON['parse'](readFileSync(a,'utf-8'));return b['version']??null;}catch{return null;}}function hashSrcTree(a,b){const c=g=>g['isDirectory']()&&g['name']==='__tests__'||g['isFile']()&&g['name']['endsWith']('.spec.ts'),d=[],e=g=>{for(const h of readdirSync(g,{'withFileTypes':!![]})){if(c(h))continue;const i=join(g,h['name']);if(h['isDirectory']())e(i);else{if(h['name']['endsWith'](b))d['push'](i);}}};e(a);if(d['length']===0x0)return null;d['sort']();const f=createHash('sha1');for(const g of d){f['update'](relative(a,g)['split'](sep)['join']('/')),f['update']('\x00'),f['update'](createHash('sha1')['update'](readFileSync(g))['digest']()),f['update']('\x00');}return f['digest']('hex');}export function computeSrcDistStaleness(a,b,c={}){try{const d=c['srcExt']??'.ts',f=c['distExt']??'.mjs';if(!existsSync(a)||!existsSync(b))return null;const g=join(b,'.build-stamp.json');if(existsSync(g))try{const m=JSON['parse'](readFileSync(g,'utf-8')),n=hashSrcTree(a,d);if(n!==null&&typeof m['src_hash']==='string'){if(n===m['src_hash'])return{'stale':![],'lag_minutes':0x0,'basis':'content-hash'};return{'stale':!![],'lag_minutes':0x0,'basis':'content-hash'};}}catch{}let h=0x0;const i=o=>o['isDirectory']()&&o['name']==='__tests__'||o['isFile']()&&o['name']['endsWith']('.spec.ts'),j=o=>{for(const q of readdirSync(o,{'withFileTypes':!![]})){if(i(q))continue;const r=join(o,q['name']);if(q['isDirectory']())j(r);else{if(q['name']['endsWith'](d))h=Math['max'](h,statSync(r)['mtimeMs']);}}};j(a);let k=0x0;for(const o of readdirSync(b,{'withFileTypes':!![]})){if(o['isFile']()&&o['name']['endsWith'](f))k=Math['max'](k,statSync(join(b,o['name']))['mtimeMs']);}if(h===0x0||k===0x0)return null;const l=h-k;return{'stale':l>0x1388,'lag_minutes':Math['max'](0x0,Math['round'](l/0xea60)),'basis':'mtime'};}catch{return null;}}export async function readChainStamp(a=0x1f40){const b={'network':null,'protocol_version':null,'system_state_version':null,'epoch':null,'fetched':![],'fetched_at':null,'error':null};try{const c=await resolveNetwork(),d=new WowClient({'url':getFullnodeUrl(c),'network':c}),f=await Promise['race']([d['core']['getCurrentSystemState'](),new Promise((h,i)=>setTimeout(()=>i(new Error('chain\x20stamp\x20timeout\x20after\x20'+a+'ms\x20(cold-start\x20RPC)')),a))]),g=f['systemState'];return{'network':c,'protocol_version':g['protocolVersion']!=null?String(g['protocolVersion']):null,'system_state_version':g['systemStateVersion']!=null?String(g['systemStateVersion']):null,'epoch':g['epoch']!=null?String(g['epoch']):null,'fetched':!![],'fetched_at':new Date()['toISOString'](),'error':null};}catch(h){return{...b,'error':h instanceof Error?h['message']:String(h)};}}export function findSdkPackageDir(){try{const a=fileURLToPath(import.meta.resolve(SDK_PACKAGE));let b=dirname(a);for(let c=0x0;c<0x6;c++){const d=join(b,'package.json');if(existsSync(d)){const e=JSON['parse'](readFileSync(d,'utf-8'));if(e['name']===SDK_PACKAGE)return b;}b=dirname(b);}return null;}catch{return null;}}function readSdkVersion(){const a=findSdkPackageDir();if(!a)return null;try{const b=JSON['parse'](readFileSync(join(a,'package.json'),'utf-8'));return b['version']??null;}catch{return null;}}function scanSdkDistConsistency(a){const b=[];if(!a)return{'consistent':!![],'broken':b};const c=join(a,'dist','esm');if(!existsSync(c))return{'consistent':!![],'broken':b};let d;try{d=readdirSync(c)['filter'](e=>e['endsWith']('.mjs'));}catch{return{'consistent':!![],'broken':b};}for(const e of d){let g;try{g=readFileSync(join(c,e),'utf-8');}catch{continue;}const h=/(?:from\s*|import\s*\(\s*)(["'])(\.[^"']+)\1/g;let i;while((i=h['exec'](g))!==null){const j=i[0x2]['split']('?')[0x0],k=[j,j+'.mjs',j+'.js'];if(!k['some'](l=>existsSync(join(c,l)))){b['push'](e+'\x20->\x20'+i[0x2]);if(b['length']>=0x5)return{'consistent':![],'broken':b};}}}return{'consistent':b['length']===0x0,'broken':b};}function computeRuntimeHealth(){const a=getRuntimeModuleFaults(),b=scanSdkDistConsistency(findSdkPackageDir()),c=!b['consistent']||a['length']>0x0;return{'dist_consistent':b['consistent'],'broken_count':b['broken']['length'],'broken_examples':b['broken'],'runtime_faults':a,'hint':c?'The\x20SDK\x20runtime\x20of\x20this\x20MCP\x20process\x20is\x20unhealthy:\x20the\x20loaded\x20module\x20graph\x20and/or\x20the\x20SDK\x20dist\x20on\x20disk\x20reference\x20chunk(s)\x20that\x20no\x20longer\x20exist.\x20Restart\x20the\x20MCP\x20server\x20process\x20to\x20reload\x20the\x20rebuilt\x20dist\x20—\x20version\x20numbers\x20alone\x20cannot\x20detect\x20this\x20state.':null};}function parseUpgradePolicy(a){if(!a||typeof a!=='object')return null;const b=a;return{'enforce':b['enforce']===!![],'min_version':typeof b['minVersion']==='string'?b['minVersion']:null,'reason':typeof b['reason']==='string'?b['reason']:null};}async function fetchNpmManifest(a){const b='https://registry.npmjs.org/'+encodeURIComponent(a)+'/latest',c=new AbortController(),d=setTimeout(()=>c['abort'](),0x1770);try{const e=await fetch(b,{'signal':c['signal']});if(!e['ok'])return null;const f=await e['json']();return{'version':f['version']??null,'policy':parseUpgradePolicy(f['wowok']?.['upgrade'])};}catch{return null;}finally{clearTimeout(d);}}function compareVersions(c,e){const f=c['split']('.')['map'](h=>parseInt(h,0xa)||0x0),g=e['split']('.')['map'](h=>parseInt(h,0xa)||0x0);for(let h=0x0;h<Math['max'](f['length'],g['length']);h++){const j=(f[h]||0x0)-(g[h]||0x0);if(j!==0x0)return j;}return 0x0;}let npmLatestPromise=null,npmLatestResolved=null,npmLatestFetchedAt=0x0;const NPM_LATEST_TTL_MS=0xa*0x3c*0x3e8;export function upgradeEnforceEnabled(){return process['env']['WOWOK_UPGRADE_ENFORCE']==='1';}export function upgradePolicyPath(){return join(getWowMcpDir(),'upgrade-policy.json');}function readLocalUpgradePolicy(){try{const a=upgradePolicyPath();if(!existsSync(a))return null;const b=JSON['parse'](readFileSync(a,'utf-8'));return typeof b['enforce']==='boolean'?{'enforce':b['enforce']}:null;}catch{return null;}}export function resolveUpgradeEnforcement(a,b){const c=process['env']['WOWOK_UPGRADE_ENFORCE'];if(c==='1')return{'enforced':!![],'source':'env'};if(c==='0')return{'enforced':![],'source':'env'};if(process['env']['WOWOK_EMBEDDED']==='1')return{'enforced':![],'source':'embedded'};const d=readLocalUpgradePolicy();if(d)return{'enforced':d['enforce'],'source':'local-file'};if(!a)return{'enforced':![],'source':'none'};const e=a['min_version']!==null&&!!b&&compareVersions(a['min_version'],b)>0x0;return{'enforced':a['enforce']||e,'source':'npm'};}export function primeUpgradeLookup(){if(npmLatestPromise&&Date['now']()-npmLatestFetchedAt<NPM_LATEST_TTL_MS)return;npmLatestFetchedAt=Date['now'](),npmLatestResolved=null,npmLatestPromise=Promise['all']([fetchNpmManifest(MCP_PACKAGE),fetchNpmManifest(SDK_PACKAGE)])['then'](([a,b])=>{return npmLatestResolved={'mcp':a,'sdk':b},npmLatestResolved;})['catch'](()=>({'mcp':null,'sdk':null}));}async function getNpmLatest(){primeUpgradeLookup();const a=await npmLatestPromise??{'mcp':null,'sdk':null};return{'mcp':a['mcp']?.['version']??null,'sdk':a['sdk']?.['version']??null};}export async function getStartupUpgradeNotice(a=0x5dc){if(!npmLatestPromise)return null;!npmLatestResolved&&await Promise['race']([npmLatestPromise,new Promise(m=>setTimeout(m,a))]);const b=npmLatestResolved;if(!b)return null;const c=b['mcp']?.['version']??null,d=b['sdk']?.['version']??null,e=readMcpVersion(),f=readSdkVersion(),g=!!(e&&c&&compareVersions(c,e)>0x0),h=!!(f&&d&&compareVersions(d,f)>0x0);if(!g&&!h)return null;const i=[];if(g)i['push']('MCP\x20v'+e+'\x20→\x20v'+c);if(h)i['push']('SDK\x20v'+f+'\x20→\x20v'+d);const {enforced:j,source:k}=resolveUpgradeEnforcement(b['mcp']?.['policy']??null,e),l=b['mcp']?.['policy']?.['reason'];return{'mcp':{'current':e,'latest':c,'outdated':g},'sdk':{'current':f,'latest':d,'outdated':h},'outdated':!![],'enforced':j,'policy_source':k,'message':'A\x20newer\x20WoWok\x20version\x20is\x20available\x20('+i['join'](',\x20')+').'+(l?'\x20'+l:'')+('\x20Upgrade\x20for\x20more\x20features\x20and\x20improvements.\x20Run:\x20npm\x20install\x20-g\x20'+MCP_PACKAGE+'@latest')};}function detectClientInstall(){const a=[];if(process['platform']==='win32'){const b=process['env']['LOCALAPPDATA'];b&&(a['push'](join(b,'WoWok','WoWok.exe')),a['push'](join(b,'Programs','WoWok','WoWok.exe')));}else{if(process['platform']==='darwin')a['push']('/Applications/WoWok.app');else{const d=process['env']['HOME']||process['env']['USERPROFILE']||'';d&&(a['push'](join(d,'.local','share','applications','wowok.desktop')),a['push'](join(d,'Applications','WoWok.AppImage')),a['push'](join(d,'.local','bin','wowok')));}}for(const e of a){if(e&&existsSync(e))return{'installed':!![],'hint':null};}return{'installed':![],'hint':'https://download.wowok.net'};}function readReminderState(){try{const a=readFileSync(REMINDER_FILE,'utf-8'),b=JSON['parse'](a);return{'lastInstallClientReminderAt':Number(b['lastInstallClientReminderAt'])||0x0};}catch{return{'lastInstallClientReminderAt':0x0};}}function writeReminderState(a){try{mkdirSync(dirname(REMINDER_FILE),{'recursive':!![]}),writeFileSync(REMINDER_FILE,JSON['stringify'](a),'utf-8');}catch{}}export async function checkUpgrade(){const a=readMcpVersion(),b=readSdkVersion(),{mcp:c,sdk:d}=await getNpmLatest(),e=detectClientInstall(),f=readReminderState(),g=Date['now'](),h=computeRuntimeHealth(),i=!!(a&&c&&compareVersions(c,a)>0x0),j=!!(b&&d&&compareVersions(d,b)>0x0),k=i||j;let l='none',m=![],n=null;if(h['hint']!==null){l='restart_mcp',m=!![];const o=h['runtime_faults']['map'](p=>p['operation']);n='This\x20WoWok\x20MCP\x20process\x20has\x20a\x20broken\x20SDK\x20runtime:\x20its\x20loaded\x20module\x20graph\x20references\x20chunk(s)\x20that\x20were\x20replaced\x20by\x20a\x20rebuild'+(o['length']>0x0?'\x20(failed\x20so\x20far:\x20'+[...new Set(o)]['join'](',\x20')+')':'')+'.\x20Affected\x20operations\x20fail\x20100%\x20of\x20the\x20time\x20until\x20the\x20process\x20is\x20restarted.\x20Restart\x20the\x20MCP\x20server\x20(no\x20reinstall\x20needed)\x20to\x20reload\x20the\x20rebuilt\x20SDK.';}else{if(k){l='upgrade',m=!![];const p=c??d??'',q=a??'';n='A\x20newer\x20WoWok\x20version\x20is\x20available\x20(current\x20v'+q+'\x20→\x20latest\x20v'+p+').\x20'+('Upgrade\x20for\x20more\x20features\x20and\x20improvements.\x20Run:\x20npm\x20install\x20-g\x20'+MCP_PACKAGE+'@latest');}else!e['installed']&&g-f['lastInstallClientReminderAt']>=WEEK_MS&&(l='install_client',m=!![],n='The\x20WoWok\x20desktop\x20client\x20is\x20not\x20installed\x20yet.\x20It\x20provides\x20wallet\x20management,\x20encrypted\x20Messenger,\x20project\x20management\x20and\x20more.\x20'+'Download\x20it\x20at\x20https://download.wowok.net\x20to\x20get\x20started.',f['lastInstallClientReminderAt']=g,writeReminderState(f));}return{'mcp':{'current':a,'latest':c,'outdated':i},'sdk':{'current':b,'latest':d,'outdated':j},'client_installed':e['installed'],'client_install_hint':e['hint'],'upgrade_available':k,'runtime_health':h,'build_stamp':{'builtin_templates_version':BUILTIN_TEMPLATES_VERSION,'mcp_dist_stale':computeSrcDistStaleness(join(__dirname,'..','..','src'),join(__dirname,'..','..','dist'),{'srcExt':'.ts','distExt':'.js'}),'sdk_dist_stale':((()=>{const r=findSdkPackageDir();return r?computeSrcDistStaleness(join(r,'src'),join(r,'dist','esm')):null;})()),'chain_stamp':await readChainStamp()},'reminder':{'type':l,'due':m,'message':n},'checked_at':new Date()['toISOString']()};}
@@ -3,6 +3,7 @@ export interface WipVerifyRecord {
3
3
  hash_equal?: string;
4
4
  signature_verified: boolean;
5
5
  upload_account?: string;
6
+ wip_hash?: string;
6
7
  at: number;
7
8
  }
8
9
  export declare function recordWipVerify(ref: string, opts: {
@@ -10,5 +11,6 @@ export declare function recordWipVerify(ref: string, opts: {
10
11
  signature_verified: boolean;
11
12
  }): void;
12
13
  export declare function recordWipUploadAccount(ref: string, account: string): void;
14
+ export declare function recordWipUploadHash(ref: string, hash: string, account?: string): void;
13
15
  export declare function getWipVerifyRecord(ref: string): WipVerifyRecord | undefined;
14
16
  export declare function resetWipVerifyLedgerForTests(): void;
@@ -1 +1 @@
1
- const records=new Map(),canonicalRef=a=>a['trim']();export function recordWipVerify(a,b){const c=canonicalRef(a);if(c==='')return;const d=records['get'](c);records['set'](c,{'ref':c,'hash_equal':b['hash_equal']!==undefined?b['hash_equal']:d?.['hash_equal'],'signature_verified':b['signature_verified']||(d?.['signature_verified']??![]),'upload_account':d?.['upload_account'],'at':Date['now']()});}export function recordWipUploadAccount(a,b){const c=canonicalRef(a);if(c===''||b['trim']()==='')return;const d=records['get'](c);records['set'](c,d??{'ref':c,'signature_verified':![],'upload_account':b['trim'](),'at':Date['now']()}),d&&d['upload_account']===undefined&&(d['upload_account']=b['trim']());}export function getWipVerifyRecord(a){return records['get'](canonicalRef(a));}export function resetWipVerifyLedgerForTests(){records['clear']();}
1
+ const records=new Map(),canonicalRef=a=>a['trim']();export function recordWipVerify(a,b){const c=canonicalRef(a);if(c==='')return;const d=records['get'](c);records['set'](c,{'ref':c,'hash_equal':b['hash_equal']!==undefined?b['hash_equal']:d?.['hash_equal'],'signature_verified':b['signature_verified']||(d?.['signature_verified']??![]),'upload_account':d?.['upload_account'],'wip_hash':d?.['wip_hash'],'at':Date['now']()});}export function recordWipUploadAccount(a,b){const c=canonicalRef(a);if(c===''||b['trim']()==='')return;const d=records['get'](c);records['set'](c,d??{'ref':c,'signature_verified':![],'upload_account':b['trim'](),'at':Date['now']()}),d&&d['upload_account']===undefined&&(d['upload_account']=b['trim']());}export function recordWipUploadHash(a,b,c){const d=canonicalRef(a),e=b['trim']();if(d===''||e==='')return;const f=records['get'](d);records['set'](d,{'ref':d,'hash_equal':f?.['hash_equal'],'signature_verified':f?.['signature_verified']??![],'upload_account':c?.['trim']()||f?.['upload_account'],'wip_hash':e,'at':Date['now']()});}export function getWipVerifyRecord(a){return records['get'](canonicalRef(a));}export function resetWipVerifyLedgerForTests(){records['clear']();}
@@ -1,4 +1,5 @@
1
1
  import type { ErrorShapeBuilder, ToolDispatchResult, ToolRequestContext } from "./types.js";
2
+ import { type PublishReadinessVerdict } from "../knowledge/publish-readiness.js";
2
3
  export declare function withTimeout<T>(promise: Promise<T>, timeoutMs?: number, operationName?: string): Promise<T>;
3
4
  export declare function wrapHandlerWithErrorShape(handler: (args: unknown, req?: import("./types.js").ToolRequestContext) => Promise<ToolDispatchResult>, timeoutMs: number, toolName: string, errorShapeBuilder?: ErrorShapeBuilder, onTimeoutVerify?: (args: unknown) => Promise<string | undefined>): (args: unknown, req?: import("./types.js").ToolRequestContext) => Promise<ToolDispatchResult>;
4
5
  export declare const statusErrorShape: ErrorShapeBuilder;
@@ -19,8 +20,21 @@ export declare function skuMatchedOrderTotalExemption(data: Record<string, unkno
19
20
  export interface PrePublishCheck {
20
21
  critical: string[];
21
22
  warnings: string[];
23
+ verdict?: PublishReadinessVerdict;
22
24
  }
23
- export declare function lintGuardBindingSemantics(data: Record<string, unknown>, opType: string | undefined, network: string | undefined): Promise<{
25
+ declare function applyTestWindowProfile(res: {
26
+ critical: string[];
27
+ warnings: string[];
28
+ }, windowProfile: "production" | "test" | undefined): {
29
+ critical: string[];
30
+ warnings: string[];
31
+ };
32
+ export { applyTestWindowProfile };
33
+ export interface HostPermissionFace {
34
+ permission_indexes?: number[];
35
+ entity_count?: number;
36
+ }
37
+ export declare function lintGuardBindingSemantics(data: Record<string, unknown>, opType: string | undefined, network: string | undefined, hostFace?: HostPermissionFace): Promise<{
24
38
  critical: string[];
25
39
  warnings: string[];
26
40
  }>;