@wowok/agent-mcp 2.7.2 → 2.7.4

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 (383) hide show
  1. package/dist/config/runtime.js +1 -1
  2. package/dist/customer/account-events.d.ts +32 -0
  3. package/dist/customer/account-events.js +1 -0
  4. package/dist/customer/customer-advice.d.ts +1 -0
  5. package/dist/customer/customer-advice.js +1 -1
  6. package/dist/customer/info-puzzle.js +1 -1
  7. package/dist/customer/order-strategy.d.ts +1 -1
  8. package/dist/customer/reminder-system.d.ts +2 -0
  9. package/dist/customer/reminder-system.js +1 -1
  10. package/dist/customer/risk-assessment.d.ts +1 -0
  11. package/dist/customer/risk-assessment.js +1 -1
  12. package/dist/customer/types.d.ts +2 -0
  13. package/dist/evaluation/builtins/arbitration-score.d.ts +41 -0
  14. package/dist/evaluation/builtins/arbitration-score.js +1 -0
  15. package/dist/evaluation/builtins/index.d.ts +1 -0
  16. package/dist/evaluation/builtins/index.js +1 -1
  17. package/dist/evaluation/category-match-rules.d.ts +30 -0
  18. package/dist/evaluation/category-match-rules.js +1 -0
  19. package/dist/evaluation/engine.js +1 -1
  20. package/dist/evaluation/extract.js +1 -1
  21. package/dist/evaluation/index.d.ts +1 -0
  22. package/dist/evaluation/index.js +1 -1
  23. package/dist/evaluation/location-match.d.ts +42 -0
  24. package/dist/evaluation/location-match.js +1 -0
  25. package/dist/evaluation/path-reasoning.d.ts +35 -0
  26. package/dist/evaluation/path-reasoning.js +1 -0
  27. package/dist/evaluation/region.d.ts +6 -0
  28. package/dist/evaluation/region.js +1 -1
  29. package/dist/evaluation/types.d.ts +17 -0
  30. package/dist/experience/realtime-feedback.js +1 -1
  31. package/dist/experience/user-profile.d.ts +1 -1
  32. package/dist/extensions/index.d.ts +6 -0
  33. package/dist/extensions/index.js +1 -1
  34. package/dist/extensions/industry-layers.d.ts +75 -0
  35. package/dist/extensions/industry-layers.js +1 -0
  36. package/dist/extensions/industry-pack.d.ts +105 -0
  37. package/dist/extensions/industry-pack.js +1 -0
  38. package/dist/extensions/metric-registry.js +1 -1
  39. package/dist/extensions/mode-evaluator.d.ts +1 -1
  40. package/dist/extensions/registry.d.ts +1 -0
  41. package/dist/extensions/registry.js +1 -1
  42. package/dist/graph/base.d.ts +8 -0
  43. package/dist/graph/base.js +1 -0
  44. package/dist/harness/index.d.ts +1 -0
  45. package/dist/harness/index.js +1 -1
  46. package/dist/harness/plan.d.ts +2 -0
  47. package/dist/harness/plan.js +1 -1
  48. package/dist/harness/recover.d.ts +1 -1
  49. package/dist/harness/types.d.ts +2 -3
  50. package/dist/index.js +1 -1
  51. package/dist/knowledge/allocation-confirm.js +1 -1
  52. package/dist/knowledge/anti-cheat.d.ts +37 -0
  53. package/dist/knowledge/anti-cheat.js +1 -0
  54. package/dist/knowledge/arb-confirm.d.ts +28 -0
  55. package/dist/knowledge/arb-confirm.js +1 -0
  56. package/dist/knowledge/arb-translation.d.ts +48 -0
  57. package/dist/knowledge/arb-translation.js +1 -0
  58. package/dist/knowledge/arbitration-context.js +1 -1
  59. package/dist/knowledge/arbitration-ledger.js +1 -1
  60. package/dist/knowledge/bridge-confirm.d.ts +26 -0
  61. package/dist/knowledge/bridge-confirm.js +1 -0
  62. package/dist/knowledge/bridge-translation.d.ts +37 -0
  63. package/dist/knowledge/bridge-translation.js +1 -0
  64. package/dist/knowledge/contact-confirm.d.ts +27 -0
  65. package/dist/knowledge/contact-confirm.js +1 -0
  66. package/dist/knowledge/contact-translation.d.ts +39 -0
  67. package/dist/knowledge/contact-translation.js +1 -0
  68. package/dist/knowledge/demand-confirm.js +1 -1
  69. package/dist/knowledge/demand-context.d.ts +17 -0
  70. package/dist/knowledge/demand-context.js +1 -0
  71. package/dist/knowledge/demand-ledger.d.ts +26 -0
  72. package/dist/knowledge/demand-ledger.js +1 -0
  73. package/dist/knowledge/demand-puzzle.d.ts +29 -0
  74. package/dist/knowledge/demand-puzzle.js +1 -0
  75. package/dist/knowledge/demand-risk.js +1 -1
  76. package/dist/knowledge/demand-templates.d.ts +12 -0
  77. package/dist/knowledge/demand-templates.js +1 -0
  78. package/dist/knowledge/demand-translation.js +1 -1
  79. package/dist/knowledge/deployment-scanner.js +1 -1
  80. package/dist/knowledge/evidence-review.d.ts +12 -0
  81. package/dist/knowledge/evidence-review.js +1 -0
  82. package/dist/knowledge/examples-scanner-cli.js +1 -1
  83. package/dist/knowledge/examples-scanner.js +1 -1
  84. package/dist/knowledge/flywheel-loop.d.ts +0 -1
  85. package/dist/knowledge/flywheel-loop.js +1 -1
  86. package/dist/knowledge/guard-design-patterns.js +1 -1
  87. package/dist/knowledge/guard-migration.d.ts +1 -1
  88. package/dist/knowledge/index.d.ts +71 -3
  89. package/dist/knowledge/index.js +1 -1
  90. package/dist/knowledge/industry-registry.js +1 -1
  91. package/dist/knowledge/machine-render.js +1 -1
  92. package/dist/knowledge/market-metrics.d.ts +12 -0
  93. package/dist/knowledge/market-metrics.js +1 -0
  94. package/dist/knowledge/market-operations.d.ts +46 -0
  95. package/dist/knowledge/market-operations.js +1 -0
  96. package/dist/knowledge/mcp-schema-audit-cli.js +1 -1
  97. package/dist/knowledge/mcp-schema-audit.d.ts +22 -22
  98. package/dist/knowledge/mcp-schema-audit.js +1 -1
  99. package/dist/knowledge/onchain-constants.d.ts +2 -2
  100. package/dist/knowledge/onchain-constants.js +1 -1
  101. package/dist/knowledge/payment-confirm.d.ts +26 -0
  102. package/dist/knowledge/payment-confirm.js +1 -0
  103. package/dist/knowledge/payment-risk.js +1 -1
  104. package/dist/knowledge/payment-translation.d.ts +37 -0
  105. package/dist/knowledge/payment-translation.js +1 -0
  106. package/dist/knowledge/permission-context.d.ts +11 -0
  107. package/dist/knowledge/permission-context.js +1 -1
  108. package/dist/knowledge/permission-ledger.d.ts +11 -0
  109. package/dist/knowledge/permission-ledger.js +1 -1
  110. package/dist/knowledge/personal-confirm.d.ts +29 -0
  111. package/dist/knowledge/personal-confirm.js +1 -0
  112. package/dist/knowledge/personal-risk.js +1 -1
  113. package/dist/knowledge/personal-translation.d.ts +37 -0
  114. package/dist/knowledge/personal-translation.js +1 -0
  115. package/dist/knowledge/process-model.d.ts +1 -11
  116. package/dist/knowledge/process-model.js +1 -1
  117. package/dist/knowledge/progress-ledger.js +1 -1
  118. package/dist/knowledge/progress-risk.js +1 -1
  119. package/dist/knowledge/progress-templates.js +1 -1
  120. package/dist/knowledge/progress-translation.js +1 -1
  121. package/dist/knowledge/proof-context.d.ts +17 -0
  122. package/dist/knowledge/proof-context.js +1 -0
  123. package/dist/knowledge/proof-ledger.d.ts +34 -0
  124. package/dist/knowledge/proof-ledger.js +1 -0
  125. package/dist/knowledge/proof-puzzle.d.ts +35 -0
  126. package/dist/knowledge/proof-puzzle.js +1 -0
  127. package/dist/knowledge/proof-templates.d.ts +22 -0
  128. package/dist/knowledge/proof-templates.js +1 -0
  129. package/dist/knowledge/registrar-confirm.d.ts +26 -0
  130. package/dist/knowledge/registrar-confirm.js +1 -0
  131. package/dist/knowledge/registrar-risk.js +1 -1
  132. package/dist/knowledge/registrar-translation.d.ts +37 -0
  133. package/dist/knowledge/registrar-translation.js +1 -0
  134. package/dist/knowledge/repository-context.d.ts +12 -0
  135. package/dist/knowledge/repository-context.js +1 -0
  136. package/dist/knowledge/repository-ledger.d.ts +25 -0
  137. package/dist/knowledge/repository-ledger.js +1 -0
  138. package/dist/knowledge/repository-puzzle.d.ts +30 -0
  139. package/dist/knowledge/repository-puzzle.js +1 -0
  140. package/dist/knowledge/repository-templates.d.ts +14 -0
  141. package/dist/knowledge/repository-templates.js +1 -0
  142. package/dist/knowledge/resource-confirm.d.ts +25 -0
  143. package/dist/knowledge/resource-confirm.js +1 -0
  144. package/dist/knowledge/resource-translation.d.ts +37 -0
  145. package/dist/knowledge/resource-translation.js +1 -0
  146. package/dist/knowledge/reward-context.d.ts +2 -2
  147. package/dist/knowledge/reward-ledger.js +1 -1
  148. package/dist/knowledge/reward-translation.js +1 -1
  149. package/dist/knowledge/safety-rules.d.ts +1 -0
  150. package/dist/knowledge/safety-rules.js +1 -1
  151. package/dist/knowledge/service-risk.d.ts +1 -1
  152. package/dist/knowledge/service-risk.js +1 -1
  153. package/dist/knowledge/template-registry.js +1 -1
  154. package/dist/knowledge/tools-reference.js +1 -1
  155. package/dist/knowledge/treasury-context.d.ts +1 -1
  156. package/dist/knowledge/treasury-context.js +1 -1
  157. package/dist/knowledge/treasury-ledger.js +1 -1
  158. package/dist/knowledge/treasury-risk.js +1 -1
  159. package/dist/knowledge/universal-template.d.ts +22 -0
  160. package/dist/knowledge/universal-template.js +1 -0
  161. package/dist/knowledge/util-confirm.d.ts +24 -0
  162. package/dist/knowledge/util-confirm.js +1 -0
  163. package/dist/knowledge/util-risk.js +1 -1
  164. package/dist/knowledge/util-translation.d.ts +39 -0
  165. package/dist/knowledge/util-translation.js +1 -0
  166. package/dist/knowledge/workflow-guidance.d.ts +180 -0
  167. package/dist/knowledge/workflow-guidance.js +1 -0
  168. package/dist/participation/employee-kpi.d.ts +25 -0
  169. package/dist/participation/employee-kpi.js +1 -0
  170. package/dist/participation/employee-store.d.ts +16 -0
  171. package/dist/participation/employee-store.js +1 -0
  172. package/dist/participation/index.d.ts +2 -0
  173. package/dist/participation/index.js +1 -0
  174. package/dist/persona/defaults.js +1 -1
  175. package/dist/persona/index.d.ts +9 -2
  176. package/dist/persona/index.js +1 -1
  177. package/dist/persona/local-region.d.ts +20 -0
  178. package/dist/persona/local-region.js +1 -0
  179. package/dist/persona/model.js +1 -1
  180. package/dist/persona/overrides.d.ts +10 -0
  181. package/dist/persona/overrides.js +1 -0
  182. package/dist/persona/pack-personae.d.ts +11 -0
  183. package/dist/persona/pack-personae.js +1 -0
  184. package/dist/persona/strategy-intent.d.ts +20 -0
  185. package/dist/persona/strategy-intent.js +1 -0
  186. package/dist/persona/types.d.ts +3 -1
  187. package/dist/project/business-puzzle.d.ts +1 -1
  188. package/dist/project/business-puzzle.js +1 -1
  189. package/dist/project/deployment-doc.js +1 -1
  190. package/dist/project/edit-planner.js +1 -1
  191. package/dist/project/evaluation.d.ts +37 -1
  192. package/dist/project/evaluation.js +1 -1
  193. package/dist/project/graph-builder.d.ts +2 -2
  194. package/dist/project/graph-builder.js +1 -1
  195. package/dist/project/graph.d.ts +3 -6
  196. package/dist/project/handlers.d.ts +33 -2
  197. package/dist/project/handlers.js +1 -1
  198. package/dist/project/index.d.ts +1 -0
  199. package/dist/project/index.js +1 -1
  200. package/dist/project/merchant-guide.d.ts +19 -0
  201. package/dist/project/merchant-guide.js +1 -1
  202. package/dist/project/mode-actions.js +1 -1
  203. package/dist/project/rollback-policy.js +1 -1
  204. package/dist/project/semantic-assembler.d.ts +2 -2
  205. package/dist/project/semantic-assembler.js +1 -1
  206. package/dist/project/semantic-graph.d.ts +3 -5
  207. package/dist/project/workflow-design-assessment.d.ts +24 -0
  208. package/dist/project/workflow-design-assessment.js +1 -0
  209. package/dist/safety/confirm-gate.d.ts +1 -1
  210. package/dist/safety/confirm-gate.js +1 -1
  211. package/dist/schema/call/allocation.d.ts +186 -1385
  212. package/dist/schema/call/arbitration.d.ts +272 -1871
  213. package/dist/schema/call/base.d.ts +1831 -9076
  214. package/dist/schema/call/base.js +1 -1
  215. package/dist/schema/call/bridge.d.ts +911 -3171
  216. package/dist/schema/call/contact.d.ts +135 -931
  217. package/dist/schema/call/demand.d.ts +164 -1194
  218. package/dist/schema/call/guard.d.ts +298 -1140
  219. package/dist/schema/call/guard.js +1 -1
  220. package/dist/schema/call/machine.d.ts +459 -5403
  221. package/dist/schema/call/machine.js +1 -1
  222. package/dist/schema/call/order.d.ts +137 -844
  223. package/dist/schema/call/payment.d.ts +74 -561
  224. package/dist/schema/call/permission.d.ts +335 -2791
  225. package/dist/schema/call/personal.d.ts +227 -1814
  226. package/dist/schema/call/progress.d.ts +140 -843
  227. package/dist/schema/call/proof.d.ts +42 -258
  228. package/dist/schema/call/repository.d.ts +324 -2222
  229. package/dist/schema/call/reward.d.ts +153 -1183
  230. package/dist/schema/call/semantic.js +1 -1
  231. package/dist/schema/call/service.d.ts +376 -3431
  232. package/dist/schema/call/treasury.d.ts +252 -2158
  233. package/dist/schema/common/index.d.ts +222 -697
  234. package/dist/schema/common/index.js +1 -1
  235. package/dist/schema/config/index.d.ts +18 -161
  236. package/dist/schema/employee/index.d.ts +99 -0
  237. package/dist/schema/employee/index.js +1 -0
  238. package/dist/schema/evaluation/index.d.ts +1035 -3918
  239. package/dist/schema/evaluation/index.js +1 -1
  240. package/dist/schema/index.d.ts +5 -0
  241. package/dist/schema/index.js +1 -1
  242. package/dist/schema/industry-pack/index.d.ts +132 -0
  243. package/dist/schema/industry-pack/index.js +1 -0
  244. package/dist/schema/intent-radar/index.d.ts +92 -245
  245. package/dist/schema/intent-radar/index.js +1 -1
  246. package/dist/schema/local/index.d.ts +2045 -18080
  247. package/dist/schema/local/index.js +1 -1
  248. package/dist/schema/local/wip.d.ts +61 -651
  249. package/dist/schema/local/wip.js +1 -1
  250. package/dist/schema/messenger/index.d.ts +949 -5557
  251. package/dist/schema/messenger/index.js +1 -1
  252. package/dist/schema/operations.d.ts +3168 -26468
  253. package/dist/schema/operations.js +1 -1
  254. package/dist/schema/permission/index.d.ts +121 -0
  255. package/dist/schema/permission/index.js +1 -0
  256. package/dist/schema/persona/index.d.ts +469 -1820
  257. package/dist/schema/persona/index.js +1 -1
  258. package/dist/schema/project/index.d.ts +1023 -8450
  259. package/dist/schema/project/index.js +1 -1
  260. package/dist/schema/query/index.d.ts +12121 -75556
  261. package/dist/schema/query/index.js +1 -1
  262. package/dist/schema/schema-query/index.d.ts +35 -98
  263. package/dist/schema/schema-query/index.js +1 -1
  264. package/dist/schema/schema-version.js +1 -1
  265. package/dist/schema/task-status.d.ts +26 -132
  266. package/dist/schema/trust/index.d.ts +194 -1290
  267. package/dist/schema/utils/guard-parser.js +1 -1
  268. package/dist/schema/utils/node-parser.js +1 -1
  269. package/dist/schema/utils/skills-recommendation.d.ts +1 -0
  270. package/dist/schema/utils/skills-recommendation.js +1 -1
  271. package/dist/schema/workflow/index.d.ts +161 -0
  272. package/dist/schema/workflow/index.js +1 -0
  273. package/dist/schema/workspace/index.d.ts +69 -0
  274. package/dist/schema/workspace/index.js +1 -0
  275. package/dist/{schema-query → schema-query-impl}/index.js +1 -1
  276. package/dist/schemas/account_operation.output.json +3147 -1655
  277. package/dist/schemas/account_operation.schema.json +225 -218
  278. package/dist/schemas/bridge_operation.output.json +1168 -653
  279. package/dist/schemas/bridge_operation.schema.json +736 -504
  280. package/dist/schemas/config_operation.output.json +185 -179
  281. package/dist/schemas/config_operation.schema.json +21 -26
  282. package/dist/schemas/employee_operation.output.json +207 -0
  283. package/dist/schemas/employee_operation.schema.json +176 -0
  284. package/dist/schemas/evaluation_operation.output.json +2268 -601
  285. package/dist/schemas/evaluation_operation.schema.json +2919 -787
  286. package/dist/schemas/guard2file.output.json +58 -64
  287. package/dist/schemas/guard2file.schema.json +79 -81
  288. package/dist/schemas/index.json +41 -11
  289. package/dist/schemas/industry_pack_operation.output.json +594 -0
  290. package/dist/schemas/industry_pack_operation.schema.json +55 -0
  291. package/dist/schemas/intent_radar.output.json +275 -203
  292. package/dist/schemas/intent_radar.schema.json +124 -126
  293. package/dist/schemas/local_info_operation.output.json +1174 -660
  294. package/dist/schemas/local_info_operation.schema.json +119 -125
  295. package/dist/schemas/local_mark_operation.output.json +1239 -692
  296. package/dist/schemas/local_mark_operation.schema.json +91 -96
  297. package/dist/schemas/machineNode2file.output.json +63 -69
  298. package/dist/schemas/machineNode2file.schema.json +79 -81
  299. package/dist/schemas/messenger_operation.output.json +2722 -1531
  300. package/dist/schemas/messenger_operation.schema.json +1482 -1264
  301. package/dist/schemas/onchain_events.output.json +2590 -978
  302. package/dist/schemas/onchain_events.schema.json +117 -99
  303. package/dist/schemas/onchain_operations.output.json +3957 -2312
  304. package/dist/schemas/onchain_operations.schema.json +20799 -9285
  305. package/dist/schemas/onchain_operations_allocation.schema.json +171 -107
  306. package/dist/schemas/onchain_operations_arbitration.schema.json +233 -146
  307. package/dist/schemas/onchain_operations_contact.schema.json +129 -90
  308. package/dist/schemas/onchain_operations_demand.schema.json +170 -112
  309. package/dist/schemas/onchain_operations_gen_passport.schema.json +61 -646
  310. package/dist/schemas/onchain_operations_gen_proof.schema.json +40 -172
  311. package/dist/schemas/onchain_operations_guard.schema.json +3765 -294
  312. package/dist/schemas/onchain_operations_machine.schema.json +536 -163
  313. package/dist/schemas/onchain_operations_order.schema.json +126 -96
  314. package/dist/schemas/onchain_operations_payment.schema.json +82 -67
  315. package/dist/schemas/onchain_operations_permission.schema.json +331 -93
  316. package/dist/schemas/onchain_operations_personal.schema.json +636 -96
  317. package/dist/schemas/onchain_operations_progress.schema.json +125 -92
  318. package/dist/schemas/onchain_operations_proof.schema.json +76 -69
  319. package/dist/schemas/onchain_operations_repository.schema.json +636 -249
  320. package/dist/schemas/onchain_operations_reward.schema.json +218 -108
  321. package/dist/schemas/onchain_operations_service.schema.json +678 -220
  322. package/dist/schemas/onchain_operations_treasury.schema.json +401 -135
  323. package/dist/schemas/onchain_table_data.output.json +6833 -2432
  324. package/dist/schemas/onchain_table_data.schema.json +684 -417
  325. package/dist/schemas/permission_operation.output.json +173 -0
  326. package/dist/schemas/permission_operation.schema.json +39 -0
  327. package/dist/schemas/persona_operation.output.json +1568 -268
  328. package/dist/schemas/persona_operation.schema.json +346 -205
  329. package/dist/schemas/project_operation.output.json +6922 -5132
  330. package/dist/schemas/project_operation.schema.json +1050 -1020
  331. package/dist/schemas/query_task_status.output.json +195 -99
  332. package/dist/schemas/query_task_status.schema.json +12 -18
  333. package/dist/schemas/query_toolkit.output.json +18862 -14561
  334. package/dist/schemas/query_toolkit.schema.json +614 -522
  335. package/dist/schemas/schema_query.output.json +127 -129
  336. package/dist/schemas/schema_query.schema.json +64 -69
  337. package/dist/schemas/trust_score.output.json +678 -587
  338. package/dist/schemas/trust_score.schema.json +289 -277
  339. package/dist/schemas/wip_file.output.json +116 -124
  340. package/dist/schemas/wip_file.schema.json +142 -143
  341. package/dist/schemas/workflow_operation.output.json +164 -0
  342. package/dist/schemas/workflow_operation.schema.json +116 -0
  343. package/dist/schemas/workspace_operation.output.json +277 -0
  344. package/dist/schemas/workspace_operation.schema.json +45 -0
  345. package/dist/schemas/wowok_buildin_info.output.json +1682 -844
  346. package/dist/schemas/wowok_buildin_info.schema.json +576 -526
  347. package/dist/tools/handlers/bridge.d.ts +8 -1
  348. package/dist/tools/handlers/bridge.js +1 -1
  349. package/dist/tools/handlers/config.js +1 -1
  350. package/dist/tools/handlers/employee.d.ts +2 -0
  351. package/dist/tools/handlers/employee.js +1 -0
  352. package/dist/tools/handlers/evaluation.js +1 -1
  353. package/dist/tools/handlers/file-export.js +1 -1
  354. package/dist/tools/handlers/industry-pack.d.ts +2 -0
  355. package/dist/tools/handlers/industry-pack.js +1 -0
  356. package/dist/tools/handlers/onchain.js +1 -1
  357. package/dist/tools/handlers/permission.d.ts +2 -0
  358. package/dist/tools/handlers/permission.js +1 -0
  359. package/dist/tools/handlers/persona.js +1 -1
  360. package/dist/tools/handlers/project.js +1 -1
  361. package/dist/tools/handlers/query.js +1 -1
  362. package/dist/tools/handlers/schema-query.js +1 -1
  363. package/dist/tools/handlers/trust.js +1 -1
  364. package/dist/tools/handlers/wip.js +1 -1
  365. package/dist/tools/handlers/workflow.d.ts +2 -0
  366. package/dist/tools/handlers/workflow.js +1 -0
  367. package/dist/tools/handlers/workspace.d.ts +4 -0
  368. package/dist/tools/handlers/workspace.js +1 -0
  369. package/dist/tools/index.d.ts +2 -1
  370. package/dist/tools/index.js +1 -1
  371. package/dist/tools/rules-hook.d.ts +1 -1
  372. package/dist/tools/rules-hook.js +1 -1
  373. package/dist/tools/shared.d.ts +1 -1
  374. package/dist/tools/shared.js +1 -1
  375. package/dist/tools/types.d.ts +2 -1
  376. package/package.json +4 -5
  377. package/dist/knowledge/arbitration-trust.d.ts +0 -24
  378. package/dist/knowledge/arbitration-trust.js +0 -1
  379. package/dist/schema/call/bridge-handler.d.ts +0 -8
  380. package/dist/schema/call/bridge-handler.js +0 -1
  381. package/dist/schema/sync-layer4.d.ts +0 -21
  382. package/dist/schema/sync-layer4.js +0 -1
  383. /package/dist/{schema-query → schema-query-impl}/index.d.ts +0 -0
@@ -2,1446 +2,1664 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://wowok.net/schemas/messenger_operation.json",
4
4
  "title": "Messenger Operations",
5
- "description": "WoWok encrypted messenger operations",
6
- "$ref": "#/definitions/messenger_operation",
7
- "definitions": {
8
- "messenger_operation": {
9
- "anyOf": [
10
- {
5
+ "description": "Messenger operation input schema. PREREQUISITE: an account must ENABLE messenger before sending/receiving. There is NO 'enable' operation in this tool — enable via account_operation {messenger: {enabled: true, name_or_account: '<account>'}}, or implicitly via send_message/send_file with options.enable_messenger: true. Use proof_message to anchor a message's WTS proof on-chain (creates a Proof object consumable by Guards via proof.signer/proof.time queries).",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "operation": {
11
+ "type": "string",
12
+ "const": "watch_conversations"
13
+ },
14
+ "filter": {
15
+ "description": "Conversations filter options - use unreadOnly to find conversations with unread messages, previewMessageCount to control message previews (default 2), and sortBy/sortOrder to customize sorting",
11
16
  "type": "object",
12
17
  "properties": {
13
- "operation": {
18
+ "account": {
19
+ "description": "Account name or address to query conversations for. If not specified, uses default account",
20
+ "type": "string"
21
+ },
22
+ "unreadOnly": {
23
+ "description": "If true, only return conversations with unread messages (unreadCount > 0). Useful for quickly finding conversations needing attention",
24
+ "type": "boolean"
25
+ },
26
+ "startTime": {
27
+ "description": "Start timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt >= this value",
28
+ "type": "number"
29
+ },
30
+ "endTime": {
31
+ "description": "End timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt <= this value",
32
+ "type": "number"
33
+ },
34
+ "previewMessageCount": {
35
+ "description": "Number of preview messages to include for each conversation (default: 2). Set to 0 to disable preview messages. If > 0, preview messages are automatically included",
36
+ "type": "number"
37
+ },
38
+ "sortBy": {
39
+ "description": "Sort conversations by: 'lastMessageAt' = most recent activity first, 'unreadCount' = most unread messages first, 'messageCount' = most total messages first",
40
+ "type": "string",
41
+ "enum": [
42
+ "lastMessageAt",
43
+ "unreadCount",
44
+ "messageCount"
45
+ ]
46
+ },
47
+ "sortOrder": {
48
+ "description": "Sort order: 'asc' = ascending (oldest/smallest first), 'desc' = descending (newest/largest first). Default is 'desc' for time-based sorting",
14
49
  "type": "string",
15
- "const": "watch_conversations"
50
+ "enum": [
51
+ "asc",
52
+ "desc"
53
+ ]
54
+ },
55
+ "skipAutoMarkViewed": {
56
+ "description": "If true, preview messages will NOT be automatically marked as viewed when retrieved. Default is false, meaning preview messages are auto-marked as viewed",
57
+ "type": "boolean"
58
+ }
59
+ },
60
+ "additionalProperties": false
61
+ }
62
+ },
63
+ "required": [
64
+ "operation"
65
+ ],
66
+ "additionalProperties": false
67
+ },
68
+ {
69
+ "type": "object",
70
+ "properties": {
71
+ "operation": {
72
+ "type": "string",
73
+ "const": "send_message"
74
+ },
75
+ "from": {
76
+ "description": "Sender account name or address. If not specified, uses default account",
77
+ "type": "string"
78
+ },
79
+ "to": {
80
+ "anyOf": [
81
+ {
82
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
16
83
  },
17
- "filter": {
84
+ {
18
85
  "type": "object",
19
86
  "properties": {
20
- "account": {
87
+ "name_or_address": {
21
88
  "type": "string",
22
- "description": "Account name or address to query conversations for. If not specified, uses default account"
23
- },
24
- "unreadOnly": {
25
- "type": "boolean",
26
- "description": "If true, only return conversations with unread messages (unreadCount > 0). Useful for quickly finding conversations needing attention"
27
- },
28
- "startTime": {
29
- "type": "number",
30
- "description": "Start timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt >= this value"
31
- },
32
- "endTime": {
33
- "type": "number",
34
- "description": "End timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt <= this value"
89
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
35
90
  },
36
- "previewMessageCount": {
37
- "type": "number",
38
- "description": "Number of preview messages to include for each conversation (default: 2). Set to 0 to disable preview messages. If > 0, preview messages are automatically included"
39
- },
40
- "sortBy": {
91
+ "local_mark_first": {
92
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
93
+ "type": "boolean"
94
+ }
95
+ },
96
+ "additionalProperties": false,
97
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
98
+ }
99
+ ],
100
+ "description": "Recipient address or account name - can be a string (name/address) or full object"
101
+ },
102
+ "content": {
103
+ "type": "string",
104
+ "maxLength": 10240,
105
+ "description": "Message content text (max 10240 bytes)"
106
+ },
107
+ "options": {
108
+ "description": "Optional message settings",
109
+ "type": "object",
110
+ "properties": {
111
+ "guardAddress": {
112
+ "description": "Guard address. REQUIRED when sending Guard-verified messages",
113
+ "type": "string"
114
+ },
115
+ "passportAddress": {
116
+ "description": "Passport address. REQUIRED when sending Guard-verified messages",
117
+ "type": "string"
118
+ },
119
+ "force": {
120
+ "description": "Force send even if there are pending Guard messages",
121
+ "type": "boolean"
122
+ },
123
+ "enable_messenger": {
124
+ "description": "Auto-enable messenger for the sender account if not already enabled",
125
+ "type": "boolean"
126
+ },
127
+ "network": {
128
+ "description": "Target network for Guard verification (e.g., testnet, mainnet). REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks",
129
+ "type": "string",
130
+ "enum": [
131
+ "localnet",
132
+ "testnet",
133
+ "mainnet"
134
+ ]
135
+ },
136
+ "replyTo": {
137
+ "description": "Quote/reply to a previous message in the SAME conversation. The messageId MUST exist in local storage for the current conversation, otherwise sending fails",
138
+ "type": "object",
139
+ "properties": {
140
+ "messageId": {
41
141
  "type": "string",
42
- "enum": [
43
- "lastMessageAt",
44
- "unreadCount",
45
- "messageCount"
46
- ],
47
- "description": "Sort conversations by: 'lastMessageAt' = most recent activity first, 'unreadCount' = most unread messages first, 'messageCount' = most total messages first"
48
- },
49
- "sortOrder": {
142
+ "description": "Replied-to message ID (unique within the conversation)"
143
+ }
144
+ },
145
+ "required": [
146
+ "messageId"
147
+ ],
148
+ "additionalProperties": false
149
+ }
150
+ },
151
+ "additionalProperties": false
152
+ }
153
+ },
154
+ "required": [
155
+ "operation",
156
+ "to",
157
+ "content"
158
+ ],
159
+ "additionalProperties": false
160
+ },
161
+ {
162
+ "type": "object",
163
+ "properties": {
164
+ "operation": {
165
+ "type": "string",
166
+ "const": "send_file"
167
+ },
168
+ "from": {
169
+ "description": "Sender account name or address. If not specified, uses default account",
170
+ "type": "string"
171
+ },
172
+ "to": {
173
+ "anyOf": [
174
+ {
175
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
176
+ },
177
+ {
178
+ "type": "object",
179
+ "properties": {
180
+ "name_or_address": {
50
181
  "type": "string",
51
- "enum": [
52
- "asc",
53
- "desc"
54
- ],
55
- "description": "Sort order: 'asc' = ascending (oldest/smallest first), 'desc' = descending (newest/largest first). Default is 'desc' for time-based sorting"
182
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
56
183
  },
57
- "skipAutoMarkViewed": {
58
- "type": "boolean",
59
- "description": "If true, preview messages will NOT be automatically marked as viewed when retrieved. Default is false, meaning preview messages are auto-marked as viewed"
184
+ "local_mark_first": {
185
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
186
+ "type": "boolean"
60
187
  }
61
188
  },
62
189
  "additionalProperties": false,
63
- "description": "Conversations filter options - use unreadOnly to find conversations with unread messages, previewMessageCount to control message previews (default 2), and sortBy/sortOrder to customize sorting"
190
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
64
191
  }
65
- },
66
- "required": [
67
- "operation"
68
192
  ],
193
+ "description": "Recipient address or account name - can be a string (name/address) or full object"
194
+ },
195
+ "filePath": {
196
+ "type": "string",
197
+ "description": "Local file path to send. File will be compressed as ZIP before sending"
198
+ },
199
+ "options": {
200
+ "description": "Optional file sending settings",
201
+ "type": "object",
202
+ "properties": {
203
+ "fileName": {
204
+ "description": "Custom file name",
205
+ "type": "string"
206
+ },
207
+ "contentType": {
208
+ "description": "Content type hint",
209
+ "type": "string",
210
+ "enum": [
211
+ "wts",
212
+ "wip",
213
+ "zip"
214
+ ]
215
+ },
216
+ "guardAddress": {
217
+ "description": "Guard address. REQUIRED when sending Guard-verified files",
218
+ "type": "string"
219
+ },
220
+ "passportAddress": {
221
+ "description": "Passport address. REQUIRED when sending Guard-verified files",
222
+ "type": "string"
223
+ },
224
+ "force": {
225
+ "description": "Force send even if there are pending Guard messages",
226
+ "type": "boolean"
227
+ },
228
+ "enable_messenger": {
229
+ "description": "Auto-enable messenger for the sender account if not already enabled",
230
+ "type": "boolean"
231
+ },
232
+ "network": {
233
+ "description": "Target network for Guard verification (e.g., testnet, mainnet). REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks",
234
+ "type": "string",
235
+ "enum": [
236
+ "localnet",
237
+ "testnet",
238
+ "mainnet"
239
+ ]
240
+ }
241
+ },
69
242
  "additionalProperties": false
243
+ }
244
+ },
245
+ "required": [
246
+ "operation",
247
+ "to",
248
+ "filePath"
249
+ ],
250
+ "additionalProperties": false
251
+ },
252
+ {
253
+ "type": "object",
254
+ "properties": {
255
+ "operation": {
256
+ "type": "string",
257
+ "const": "watch_messages"
70
258
  },
71
- {
259
+ "filter": {
260
+ "description": "Message filter options",
72
261
  "type": "object",
73
262
  "properties": {
74
- "operation": {
263
+ "account": {
264
+ "description": "Account to filter messages for",
265
+ "type": "string"
266
+ },
267
+ "direction": {
268
+ "description": "Filter by message direction",
75
269
  "type": "string",
76
- "const": "send_message"
270
+ "enum": [
271
+ "sent",
272
+ "received"
273
+ ]
77
274
  },
78
- "from": {
275
+ "status": {
276
+ "description": "Filter by message status",
79
277
  "type": "string",
80
- "description": "Sender account name or address. If not specified, uses default account"
278
+ "enum": [
279
+ "pending",
280
+ "confirmed",
281
+ "read",
282
+ "failed",
283
+ "rejected",
284
+ "decrypted",
285
+ "decrypt_failed"
286
+ ]
81
287
  },
82
- "to": {
288
+ "peerAddress": {
289
+ "description": "Filter by peer address - can be a string (name/address) or full object",
83
290
  "anyOf": [
84
291
  {
85
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
86
292
  "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
87
293
  },
88
294
  {
89
295
  "type": "object",
90
296
  "properties": {
91
297
  "name_or_address": {
92
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
298
+ "type": "string",
93
299
  "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
94
300
  },
95
301
  "local_mark_first": {
96
- "type": "boolean",
97
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks"
302
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
303
+ "type": "boolean"
98
304
  }
99
305
  },
100
306
  "additionalProperties": false,
101
307
  "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
102
308
  }
103
- ],
104
- "description": "Recipient address or account name - can be a string (name/address) or full object"
309
+ ]
310
+ },
311
+ "msgType": {
312
+ "description": "Filter by message type",
313
+ "anyOf": [
314
+ {
315
+ "type": "number",
316
+ "const": 1
317
+ },
318
+ {
319
+ "type": "number",
320
+ "const": 3
321
+ }
322
+ ]
323
+ },
324
+ "contentType": {
325
+ "description": "Filter by content type",
326
+ "type": "string",
327
+ "enum": [
328
+ "text",
329
+ "zip",
330
+ "wts",
331
+ "wip"
332
+ ]
333
+ },
334
+ "decryptedOnly": {
335
+ "description": "Only return decrypted messages",
336
+ "type": "boolean"
337
+ },
338
+ "confirmedOnly": {
339
+ "description": "Only return confirmed messages",
340
+ "type": "boolean"
341
+ },
342
+ "keyword": {
343
+ "description": "Search keyword in plaintext",
344
+ "type": "string"
345
+ },
346
+ "sortOrder": {
347
+ "description": "Sort order: asc or desc",
348
+ "type": "string",
349
+ "enum": [
350
+ "asc",
351
+ "desc"
352
+ ]
353
+ },
354
+ "limit": {
355
+ "description": "Return limit",
356
+ "type": "number"
357
+ },
358
+ "offset": {
359
+ "description": "Pagination offset",
360
+ "type": "number"
361
+ },
362
+ "timeField": {
363
+ "description": "Time field for time filtering",
364
+ "type": "string",
365
+ "enum": [
366
+ "createdAt",
367
+ "receivedAt",
368
+ "serverTimestamp"
369
+ ]
370
+ },
371
+ "startTime": {
372
+ "description": "Start timestamp (ms)",
373
+ "type": "number"
374
+ },
375
+ "endTime": {
376
+ "description": "End timestamp (ms)",
377
+ "type": "number"
378
+ },
379
+ "createdAtStart": {
380
+ "description": "Created at start time",
381
+ "type": "number"
382
+ },
383
+ "createdAtEnd": {
384
+ "description": "Created at end time",
385
+ "type": "number"
386
+ },
387
+ "receivedAtStart": {
388
+ "description": "Received at start time",
389
+ "type": "number"
390
+ },
391
+ "receivedAtEnd": {
392
+ "description": "Received at end time",
393
+ "type": "number"
394
+ },
395
+ "serverTimestampStart": {
396
+ "description": "Server timestamp start time",
397
+ "type": "number"
105
398
  },
106
- "content": {
399
+ "serverTimestampEnd": {
400
+ "description": "Server timestamp end time",
401
+ "type": "number"
402
+ },
403
+ "arkConfirmedOnly": {
404
+ "description": "Only return ARK confirmed messages",
405
+ "type": "boolean"
406
+ },
407
+ "arkTimestampStart": {
408
+ "description": "ARK timestamp start",
409
+ "type": "number"
410
+ },
411
+ "arkTimestampEnd": {
412
+ "description": "ARK timestamp end",
413
+ "type": "number"
414
+ },
415
+ "proofedOnly": {
416
+ "description": "Only return messages with proof",
417
+ "type": "boolean"
418
+ },
419
+ "hasLastReceivedIndexOnly": {
420
+ "description": "Only return messages with lastReceivedLeafIndex",
421
+ "type": "boolean"
422
+ },
423
+ "lastReceivedIndexMin": {
424
+ "description": "Min lastReceivedLeafIndex",
425
+ "type": "number"
426
+ },
427
+ "lastReceivedIndexMax": {
428
+ "description": "Max lastReceivedLeafIndex",
429
+ "type": "number"
430
+ },
431
+ "listFilterMode": {
432
+ "description": "List filter mode: 'friends' = only messages from friends list, 'guard' = only messages from Guard list, 'stranger' = only messages from strangers (not in friends/guard lists), 'any' = no filtering (default)",
107
433
  "type": "string",
108
- "maxLength": 10240,
109
- "description": "Message content text (max 10240 bytes)"
434
+ "enum": [
435
+ "friends",
436
+ "guard",
437
+ "stranger",
438
+ "any"
439
+ ]
110
440
  },
111
- "options": {
441
+ "customListFilter": {
442
+ "description": "Custom list filter for advanced address-based filtering, works in combination with listFilterMode",
112
443
  "type": "object",
113
444
  "properties": {
114
- "guardAddress": {
115
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
116
- "description": "Guard address. REQUIRED when sending Guard-verified messages"
117
- },
118
- "passportAddress": {
119
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
120
- "description": "Passport address. REQUIRED when sending Guard-verified messages"
121
- },
122
- "force": {
123
- "type": "boolean",
124
- "description": "Force send even if there are pending Guard messages"
445
+ "includeAddresses": {
446
+ "description": "Include addresses - only return messages from these addresses (highest priority)",
447
+ "type": "array",
448
+ "items": {
449
+ "type": "string"
450
+ }
125
451
  },
126
- "enable_messenger": {
127
- "type": "boolean",
128
- "description": "Auto-enable messenger for the sender account if not already enabled"
452
+ "excludeAddresses": {
453
+ "description": "Exclude addresses - exclude messages from these addresses",
454
+ "type": "array",
455
+ "items": {
456
+ "type": "string"
457
+ }
129
458
  },
130
- "network": {
459
+ "relation": {
460
+ "description": "Address list relation: 'union' = combine lists as union, 'intersection' = combine lists as intersection",
131
461
  "type": "string",
132
462
  "enum": [
133
- "localnet",
134
- "testnet",
135
- "mainnet"
136
- ],
137
- "description": "Target network for Guard verification (e.g., testnet, mainnet). REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks"
138
- },
139
- "replyTo": {
140
- "type": "object",
141
- "properties": {
142
- "messageId": {
143
- "type": "string",
144
- "description": "Replied-to message ID (unique within the conversation)"
145
- }
146
- },
147
- "required": [
148
- "messageId"
149
- ],
150
- "additionalProperties": false,
151
- "description": "Quote/reply to a previous message in the SAME conversation. The messageId MUST exist in local storage for the current conversation, otherwise sending fails"
463
+ "union",
464
+ "intersection"
465
+ ]
152
466
  }
153
467
  },
154
- "additionalProperties": false,
155
- "description": "Optional message settings"
468
+ "additionalProperties": false
469
+ },
470
+ "viewed": {
471
+ "description": "Filter by viewed status: true = only viewed messages, false = only unviewed messages. A message is considered 'viewed' if viewedAt field exists. Only applicable to received messages",
472
+ "type": "boolean"
473
+ },
474
+ "viewedAtStart": {
475
+ "description": "Filter by viewed timestamp start (inclusive). Only returns messages where viewedAt >= this value. Useful for finding recently viewed messages",
476
+ "type": "number"
477
+ },
478
+ "viewedAtEnd": {
479
+ "description": "Filter by viewed timestamp end (inclusive). Only returns messages where viewedAt <= this value. Useful for finding messages viewed before a certain time",
480
+ "type": "number"
481
+ },
482
+ "skipAutoMarkViewed": {
483
+ "description": "If true, messages returned by this query will NOT be automatically marked as viewed. Default is false, meaning messages are auto-marked as viewed when retrieved through watch_messages",
484
+ "type": "boolean"
156
485
  }
157
486
  },
158
- "required": [
159
- "operation",
160
- "to",
161
- "content"
162
- ],
163
487
  "additionalProperties": false
488
+ }
489
+ },
490
+ "required": [
491
+ "operation"
492
+ ],
493
+ "additionalProperties": false
494
+ },
495
+ {
496
+ "type": "object",
497
+ "properties": {
498
+ "operation": {
499
+ "type": "string",
500
+ "const": "extract_zip_messages"
501
+ },
502
+ "account": {
503
+ "description": "Account name or address. If not specified, uses default account",
504
+ "type": "string"
505
+ },
506
+ "messages": {
507
+ "type": "array",
508
+ "items": {
509
+ "anyOf": [
510
+ {
511
+ "type": "string"
512
+ },
513
+ {
514
+ "type": "object",
515
+ "properties": {
516
+ "messageId": {
517
+ "type": "string",
518
+ "description": "Message ID"
519
+ },
520
+ "fromAddress": {
521
+ "type": "string",
522
+ "description": "Sender address"
523
+ },
524
+ "toAddress": {
525
+ "type": "string",
526
+ "description": "Recipient address"
527
+ },
528
+ "plaintextHash": {
529
+ "type": "string",
530
+ "description": "Plaintext hash"
531
+ },
532
+ "plaintext": {
533
+ "description": "Decrypted plaintext (optional)",
534
+ "type": "string"
535
+ },
536
+ "replyTo": {
537
+ "description": "Quoted (replied-to) message reference, if this message replies to a previous one",
538
+ "type": "object",
539
+ "properties": {
540
+ "messageId": {
541
+ "type": "string",
542
+ "description": "Replied-to message ID (unique within the conversation)"
543
+ }
544
+ },
545
+ "required": [
546
+ "messageId"
547
+ ],
548
+ "additionalProperties": false
549
+ },
550
+ "guardAddress": {
551
+ "description": "Guard address",
552
+ "type": "string"
553
+ },
554
+ "passportAddress": {
555
+ "description": "Passport address",
556
+ "type": "string"
557
+ },
558
+ "lastReceivedLeafIndex": {
559
+ "description": "Last received leaf index",
560
+ "type": "number"
561
+ },
562
+ "direction": {
563
+ "type": "string",
564
+ "enum": [
565
+ "sent",
566
+ "received"
567
+ ],
568
+ "description": "Message direction"
569
+ },
570
+ "status": {
571
+ "type": "string",
572
+ "enum": [
573
+ "pending",
574
+ "confirmed",
575
+ "read",
576
+ "failed",
577
+ "rejected",
578
+ "decrypted",
579
+ "decrypt_failed"
580
+ ],
581
+ "description": "Message status"
582
+ },
583
+ "msgType": {
584
+ "anyOf": [
585
+ {
586
+ "type": "number",
587
+ "const": 1
588
+ },
589
+ {
590
+ "type": "number",
591
+ "const": 3
592
+ }
593
+ ],
594
+ "description": "Message type"
595
+ },
596
+ "leafIndex": {
597
+ "description": "Leaf index",
598
+ "type": "number"
599
+ },
600
+ "prevRoot": {
601
+ "description": "Previous Merkle Root",
602
+ "type": "string"
603
+ },
604
+ "newRoot": {
605
+ "description": "Current Merkle Root",
606
+ "type": "string"
607
+ },
608
+ "serverSignature": {
609
+ "description": "Server signature",
610
+ "type": "string"
611
+ },
612
+ "serverTimestamp": {
613
+ "description": "Server confirmation timestamp",
614
+ "type": "number"
615
+ },
616
+ "serverPublicKey": {
617
+ "description": "Server public key",
618
+ "type": "string"
619
+ },
620
+ "arkConfirmed": {
621
+ "description": "ARK confirmation",
622
+ "type": "object",
623
+ "properties": {
624
+ "recipient": {
625
+ "type": "string",
626
+ "description": "Recipient address"
627
+ },
628
+ "recipientPublicKey": {
629
+ "type": "string",
630
+ "description": "Recipient public key"
631
+ },
632
+ "signature": {
633
+ "type": "string",
634
+ "description": "Recipient signature"
635
+ },
636
+ "timestamp": {
637
+ "type": "number",
638
+ "description": "ARK confirmation time"
639
+ }
640
+ },
641
+ "required": [
642
+ "recipient",
643
+ "recipientPublicKey",
644
+ "signature",
645
+ "timestamp"
646
+ ],
647
+ "additionalProperties": false
648
+ },
649
+ "createdAt": {
650
+ "type": "number",
651
+ "description": "Message creation time (client)"
652
+ },
653
+ "receivedAt": {
654
+ "description": "Local reception time",
655
+ "type": "number"
656
+ },
657
+ "zipMetadata": {
658
+ "description": "ZIP file metadata",
659
+ "type": "object",
660
+ "properties": {
661
+ "fileName": {
662
+ "type": "string",
663
+ "description": "ZIP filename"
664
+ },
665
+ "fileSize": {
666
+ "type": "number",
667
+ "description": "File size in bytes"
668
+ },
669
+ "fileHash": {
670
+ "type": "string",
671
+ "description": "File SHA256 hash"
672
+ },
673
+ "contentType": {
674
+ "type": "string",
675
+ "enum": [
676
+ "text",
677
+ "zip",
678
+ "wts",
679
+ "wip"
680
+ ],
681
+ "description": "Content type"
682
+ },
683
+ "localCachePath": {
684
+ "description": "Local cache path",
685
+ "type": "string"
686
+ },
687
+ "downloadedAt": {
688
+ "description": "Download timestamp",
689
+ "type": "number"
690
+ }
691
+ },
692
+ "required": [
693
+ "fileName",
694
+ "fileSize",
695
+ "fileHash",
696
+ "contentType"
697
+ ],
698
+ "additionalProperties": false
699
+ },
700
+ "proof": {
701
+ "description": "On-chain proof object address",
702
+ "type": "string"
703
+ },
704
+ "decryptError": {
705
+ "description": "Decryption failure reason",
706
+ "type": "string"
707
+ },
708
+ "decryptAttempts": {
709
+ "description": "Number of decryption attempts",
710
+ "type": "number"
711
+ },
712
+ "lastDecryptAttemptAt": {
713
+ "description": "Last decryption attempt timestamp",
714
+ "type": "number"
715
+ },
716
+ "viewedAt": {
717
+ "description": "Timestamp when the current user viewed this message (local storage). If present, indicates the message has been viewed by the user. Only applicable to received messages (direction === 'received')",
718
+ "type": "number"
719
+ }
720
+ },
721
+ "required": [
722
+ "messageId",
723
+ "fromAddress",
724
+ "toAddress",
725
+ "plaintextHash",
726
+ "direction",
727
+ "status",
728
+ "msgType",
729
+ "createdAt"
730
+ ],
731
+ "additionalProperties": false,
732
+ "description": "Message object"
733
+ }
734
+ ]
735
+ },
736
+ "description": "Array of message objects or message IDs to extract"
737
+ },
738
+ "outputDir": {
739
+ "description": "Output directory path for extracted files. If not specified, defaults to the workspace/extracted directory",
740
+ "type": "string"
741
+ }
742
+ },
743
+ "required": [
744
+ "operation",
745
+ "messages"
746
+ ],
747
+ "additionalProperties": false
748
+ },
749
+ {
750
+ "type": "object",
751
+ "properties": {
752
+ "operation": {
753
+ "type": "string",
754
+ "const": "generate_wts"
164
755
  },
165
- {
756
+ "params": {
166
757
  "type": "object",
167
758
  "properties": {
168
- "operation": {
759
+ "myAccount": {
169
760
  "type": "string",
170
- "const": "send_file"
761
+ "description": "My account name or address (string)"
171
762
  },
172
- "from": {
173
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
174
- "description": "Sender account name or address. If not specified, uses default account"
175
- },
176
- "to": {
763
+ "peerAccount": {
177
764
  "anyOf": [
178
765
  {
179
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/0"
766
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
180
767
  },
181
- {
182
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/1"
183
- }
184
- ],
185
- "description": "Recipient address or account name - can be a string (name/address) or full object"
186
- },
187
- "filePath": {
188
- "type": "string",
189
- "description": "Local file path to send. File will be compressed as ZIP before sending"
190
- },
191
- "options": {
192
- "type": "object",
193
- "properties": {
194
- "fileName": {
195
- "type": "string",
196
- "description": "Custom file name"
197
- },
198
- "contentType": {
199
- "type": "string",
200
- "enum": [
201
- "wts",
202
- "wip",
203
- "zip"
204
- ],
205
- "description": "Content type hint"
206
- },
207
- "guardAddress": {
208
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
209
- "description": "Guard address. REQUIRED when sending Guard-verified files"
210
- },
211
- "passportAddress": {
212
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
213
- "description": "Passport address. REQUIRED when sending Guard-verified files"
214
- },
215
- "force": {
216
- "type": "boolean",
217
- "description": "Force send even if there are pending Guard messages"
218
- },
219
- "enable_messenger": {
220
- "type": "boolean",
221
- "description": "Auto-enable messenger for the sender account if not already enabled"
222
- },
223
- "network": {
224
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/options/properties/network",
225
- "description": "Target network for Guard verification (e.g., testnet, mainnet). REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks"
226
- }
227
- },
228
- "additionalProperties": false,
229
- "description": "Optional file sending settings"
230
- }
231
- },
232
- "required": [
233
- "operation",
234
- "to",
235
- "filePath"
236
- ],
237
- "additionalProperties": false
238
- },
239
- {
240
- "type": "object",
241
- "properties": {
242
- "operation": {
243
- "type": "string",
244
- "const": "watch_messages"
245
- },
246
- "filter": {
247
- "type": "object",
248
- "properties": {
249
- "account": {
250
- "type": "string",
251
- "description": "Account to filter messages for"
252
- },
253
- "direction": {
254
- "type": "string",
255
- "enum": [
256
- "sent",
257
- "received"
258
- ],
259
- "description": "Filter by message direction"
260
- },
261
- "status": {
262
- "type": "string",
263
- "enum": [
264
- "pending",
265
- "confirmed",
266
- "read",
267
- "failed",
268
- "rejected",
269
- "decrypted",
270
- "decrypt_failed"
271
- ],
272
- "description": "Filter by message status"
273
- },
274
- "peerAddress": {
275
- "anyOf": [
276
- {
277
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/0"
278
- },
279
- {
280
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/1"
281
- }
282
- ],
283
- "description": "Filter by peer address - can be a string (name/address) or full object"
284
- },
285
- "msgType": {
286
- "type": "number",
287
- "enum": [
288
- 1,
289
- 3
290
- ],
291
- "description": "Filter by message type"
292
- },
293
- "contentType": {
294
- "type": "string",
295
- "enum": [
296
- "text",
297
- "zip",
298
- "wts",
299
- "wip"
300
- ],
301
- "description": "Filter by content type"
302
- },
303
- "decryptedOnly": {
304
- "type": "boolean",
305
- "description": "Only return decrypted messages"
306
- },
307
- "confirmedOnly": {
308
- "type": "boolean",
309
- "description": "Only return confirmed messages"
310
- },
311
- "keyword": {
312
- "type": "string",
313
- "description": "Search keyword in plaintext"
314
- },
315
- "sortOrder": {
316
- "type": "string",
317
- "enum": [
318
- "asc",
319
- "desc"
320
- ],
321
- "description": "Sort order: asc or desc"
322
- },
323
- "limit": {
324
- "type": "number",
325
- "description": "Return limit"
326
- },
327
- "offset": {
328
- "type": "number",
329
- "description": "Pagination offset"
330
- },
331
- "timeField": {
332
- "type": "string",
333
- "enum": [
334
- "createdAt",
335
- "receivedAt",
336
- "serverTimestamp"
337
- ],
338
- "description": "Time field for time filtering"
339
- },
340
- "startTime": {
341
- "type": "number",
342
- "description": "Start timestamp (ms)"
343
- },
344
- "endTime": {
345
- "type": "number",
346
- "description": "End timestamp (ms)"
347
- },
348
- "createdAtStart": {
349
- "type": "number",
350
- "description": "Created at start time"
351
- },
352
- "createdAtEnd": {
353
- "type": "number",
354
- "description": "Created at end time"
355
- },
356
- "receivedAtStart": {
357
- "type": "number",
358
- "description": "Received at start time"
359
- },
360
- "receivedAtEnd": {
361
- "type": "number",
362
- "description": "Received at end time"
363
- },
364
- "serverTimestampStart": {
365
- "type": "number",
366
- "description": "Server timestamp start time"
367
- },
368
- "serverTimestampEnd": {
369
- "type": "number",
370
- "description": "Server timestamp end time"
371
- },
372
- "arkConfirmedOnly": {
373
- "type": "boolean",
374
- "description": "Only return ARK confirmed messages"
375
- },
376
- "arkTimestampStart": {
377
- "type": "number",
378
- "description": "ARK timestamp start"
379
- },
380
- "arkTimestampEnd": {
381
- "type": "number",
382
- "description": "ARK timestamp end"
383
- },
384
- "proofedOnly": {
385
- "type": "boolean",
386
- "description": "Only return messages with proof"
387
- },
388
- "hasLastReceivedIndexOnly": {
389
- "type": "boolean",
390
- "description": "Only return messages with lastReceivedLeafIndex"
391
- },
392
- "lastReceivedIndexMin": {
393
- "type": "number",
394
- "description": "Min lastReceivedLeafIndex"
395
- },
396
- "lastReceivedIndexMax": {
397
- "type": "number",
398
- "description": "Max lastReceivedLeafIndex"
399
- },
400
- "listFilterMode": {
401
- "type": "string",
402
- "enum": [
403
- "friends",
404
- "guard",
405
- "stranger",
406
- "any"
407
- ],
408
- "description": "List filter mode: 'friends' = only messages from friends list, 'guard' = only messages from Guard list, 'stranger' = only messages from strangers (not in friends/guard lists), 'any' = no filtering (default)"
409
- },
410
- "customListFilter": {
411
- "type": "object",
412
- "properties": {
413
- "includeAddresses": {
414
- "type": "array",
415
- "items": {
416
- "type": "string"
417
- },
418
- "description": "Include addresses - only return messages from these addresses (highest priority)"
419
- },
420
- "excludeAddresses": {
421
- "type": "array",
422
- "items": {
423
- "type": "string"
424
- },
425
- "description": "Exclude addresses - exclude messages from these addresses"
426
- },
427
- "relation": {
428
- "type": "string",
429
- "enum": [
430
- "union",
431
- "intersection"
432
- ],
433
- "description": "Address list relation: 'union' = combine lists as union, 'intersection' = combine lists as intersection"
434
- }
435
- },
436
- "additionalProperties": false,
437
- "description": "Custom list filter for advanced address-based filtering, works in combination with listFilterMode"
438
- },
439
- "viewed": {
440
- "type": "boolean",
441
- "description": "Filter by viewed status: true = only viewed messages, false = only unviewed messages. A message is considered 'viewed' if viewedAt field exists. Only applicable to received messages"
442
- },
443
- "viewedAtStart": {
444
- "type": "number",
445
- "description": "Filter by viewed timestamp start (inclusive). Only returns messages where viewedAt >= this value. Useful for finding recently viewed messages"
446
- },
447
- "viewedAtEnd": {
448
- "type": "number",
449
- "description": "Filter by viewed timestamp end (inclusive). Only returns messages where viewedAt <= this value. Useful for finding messages viewed before a certain time"
450
- },
451
- "skipAutoMarkViewed": {
452
- "type": "boolean",
453
- "description": "If true, messages returned by this query will NOT be automatically marked as viewed. Default is false, meaning messages are auto-marked as viewed when retrieved through watch_messages"
454
- }
455
- },
456
- "additionalProperties": false,
457
- "description": "Message filter options"
458
- }
459
- },
460
- "required": [
461
- "operation"
462
- ],
463
- "additionalProperties": false
464
- },
465
- {
466
- "type": "object",
467
- "properties": {
468
- "operation": {
469
- "type": "string",
470
- "const": "extract_zip_messages"
471
- },
472
- "account": {
473
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
474
- "description": "Account name or address. If not specified, uses default account"
475
- },
476
- "messages": {
477
- "type": "array",
478
- "items": {
479
- "anyOf": [
480
- {
481
- "type": "string"
482
- },
483
- {
484
- "type": "object",
485
- "properties": {
486
- "messageId": {
487
- "type": "string",
488
- "description": "Message ID"
489
- },
490
- "fromAddress": {
491
- "type": "string",
492
- "description": "Sender address"
493
- },
494
- "toAddress": {
495
- "type": "string",
496
- "description": "Recipient address"
497
- },
498
- "plaintextHash": {
499
- "type": "string",
500
- "description": "Plaintext hash"
501
- },
502
- "plaintext": {
503
- "type": "string",
504
- "description": "Decrypted plaintext (optional)"
505
- },
506
- "replyTo": {
507
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/options/properties/replyTo",
508
- "description": "Quoted (replied-to) message reference, if this message replies to a previous one"
509
- },
510
- "guardAddress": {
511
- "type": "string",
512
- "description": "Guard address"
513
- },
514
- "passportAddress": {
515
- "type": "string",
516
- "description": "Passport address"
517
- },
518
- "lastReceivedLeafIndex": {
519
- "type": "number",
520
- "description": "Last received leaf index"
521
- },
522
- "direction": {
523
- "type": "string",
524
- "enum": [
525
- "sent",
526
- "received"
527
- ],
528
- "description": "Message direction"
529
- },
530
- "status": {
531
- "type": "string",
532
- "enum": [
533
- "pending",
534
- "confirmed",
535
- "read",
536
- "failed",
537
- "rejected",
538
- "decrypted",
539
- "decrypt_failed"
540
- ],
541
- "description": "Message status"
542
- },
543
- "msgType": {
544
- "type": "number",
545
- "enum": [
546
- 1,
547
- 3
548
- ],
549
- "description": "Message type"
550
- },
551
- "leafIndex": {
552
- "type": "number",
553
- "description": "Leaf index"
554
- },
555
- "prevRoot": {
556
- "type": "string",
557
- "description": "Previous Merkle Root"
558
- },
559
- "newRoot": {
560
- "type": "string",
561
- "description": "Current Merkle Root"
562
- },
563
- "serverSignature": {
564
- "type": "string",
565
- "description": "Server signature"
566
- },
567
- "serverTimestamp": {
568
- "type": "number",
569
- "description": "Server confirmation timestamp"
570
- },
571
- "serverPublicKey": {
572
- "type": "string",
573
- "description": "Server public key"
574
- },
575
- "arkConfirmed": {
576
- "type": "object",
577
- "properties": {
578
- "recipient": {
579
- "type": "string",
580
- "description": "Recipient address"
581
- },
582
- "recipientPublicKey": {
583
- "type": "string",
584
- "description": "Recipient public key"
585
- },
586
- "signature": {
587
- "type": "string",
588
- "description": "Recipient signature"
589
- },
590
- "timestamp": {
591
- "type": "number",
592
- "description": "ARK confirmation time"
593
- }
594
- },
595
- "required": [
596
- "recipient",
597
- "recipientPublicKey",
598
- "signature",
599
- "timestamp"
600
- ],
601
- "additionalProperties": false,
602
- "description": "ARK confirmation"
603
- },
604
- "createdAt": {
605
- "type": "number",
606
- "description": "Message creation time (client)"
607
- },
608
- "receivedAt": {
609
- "type": "number",
610
- "description": "Local reception time"
611
- },
612
- "zipMetadata": {
613
- "type": "object",
614
- "properties": {
615
- "fileName": {
616
- "type": "string",
617
- "description": "ZIP filename"
618
- },
619
- "fileSize": {
620
- "type": "number",
621
- "description": "File size in bytes"
622
- },
623
- "fileHash": {
624
- "type": "string",
625
- "description": "File SHA256 hash"
626
- },
627
- "contentType": {
628
- "type": "string",
629
- "enum": [
630
- "text",
631
- "zip",
632
- "wts",
633
- "wip"
634
- ],
635
- "description": "Content type"
636
- },
637
- "localCachePath": {
638
- "type": "string",
639
- "description": "Local cache path"
640
- },
641
- "downloadedAt": {
642
- "type": "number",
643
- "description": "Download timestamp"
644
- }
645
- },
646
- "required": [
647
- "fileName",
648
- "fileSize",
649
- "fileHash",
650
- "contentType"
651
- ],
652
- "additionalProperties": false,
653
- "description": "ZIP file metadata"
654
- },
655
- "proof": {
656
- "type": "string",
657
- "description": "On-chain proof object address"
658
- },
659
- "decryptError": {
660
- "type": "string",
661
- "description": "Decryption failure reason"
662
- },
663
- "decryptAttempts": {
664
- "type": "number",
665
- "description": "Number of decryption attempts"
666
- },
667
- "lastDecryptAttemptAt": {
668
- "type": "number",
669
- "description": "Last decryption attempt timestamp"
670
- },
671
- "viewedAt": {
672
- "type": "number",
673
- "description": "Timestamp when the current user viewed this message (local storage). If present, indicates the message has been viewed by the user. Only applicable to received messages (direction === 'received')"
674
- }
675
- },
676
- "required": [
677
- "messageId",
678
- "fromAddress",
679
- "toAddress",
680
- "plaintextHash",
681
- "direction",
682
- "status",
683
- "msgType",
684
- "createdAt"
685
- ],
686
- "additionalProperties": false,
687
- "description": "Message object"
688
- }
689
- ]
690
- },
691
- "description": "Array of message objects or message IDs to extract"
692
- },
693
- "outputDir": {
694
- "type": "string",
695
- "description": "Output directory path for extracted files"
696
- }
697
- },
698
- "required": [
699
- "operation",
700
- "messages",
701
- "outputDir"
702
- ],
703
- "additionalProperties": false
704
- },
705
- {
706
- "type": "object",
707
- "properties": {
708
- "operation": {
709
- "type": "string",
710
- "const": "generate_wts"
711
- },
712
- "params": {
713
- "type": "object",
714
- "properties": {
715
- "myAccount": {
716
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
717
- "description": "My account name or address (string)"
718
- },
719
- "peerAccount": {
720
- "anyOf": [
721
- {
722
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/0"
723
- },
724
- {
725
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/1"
726
- }
727
- ],
728
- "description": "Peer account name or address - can be a string (name/address) or full object"
729
- },
730
- "range": {
731
- "anyOf": [
732
- {
733
- "type": "object",
734
- "properties": {
735
- "type": {
736
- "type": "string",
737
- "const": "time"
738
- },
739
- "start": {
740
- "type": "number"
741
- },
742
- "end": {
743
- "type": "number"
744
- }
745
- },
746
- "required": [
747
- "type",
748
- "start",
749
- "end"
750
- ],
751
- "additionalProperties": false
752
- },
753
- {
754
- "type": "object",
755
- "properties": {
756
- "type": {
757
- "type": "string",
758
- "const": "messageId"
759
- },
760
- "start": {
761
- "type": "string"
762
- },
763
- "end": {
764
- "type": "string"
765
- }
766
- },
767
- "required": [
768
- "type",
769
- "start",
770
- "end"
771
- ],
772
- "additionalProperties": false
773
- },
774
- {
775
- "type": "object",
776
- "properties": {
777
- "type": {
778
- "type": "string",
779
- "const": "seqIndex"
780
- },
781
- "start": {
782
- "type": "number"
783
- },
784
- "end": {
785
- "type": "number"
786
- }
787
- },
788
- "required": [
789
- "type",
790
- "start",
791
- "end"
792
- ],
793
- "additionalProperties": false
794
- }
795
- ],
796
- "description": "Range filter parameters"
797
- },
798
- "excludePlaintext": {
799
- "type": "boolean",
800
- "description": "Whether to exclude plaintext"
801
- },
802
- "outputDir": {
803
- "type": "string",
804
- "description": "Output directory path"
805
- }
806
- },
807
- "required": [
808
- "myAccount",
809
- "peerAccount",
810
- "outputDir"
811
- ],
812
- "additionalProperties": false,
813
- "description": "WTS generation parameters"
814
- }
815
- },
816
- "required": [
817
- "operation",
818
- "params"
819
- ],
820
- "additionalProperties": false
821
- },
822
- {
823
- "type": "object",
824
- "properties": {
825
- "operation": {
826
- "type": "string",
827
- "const": "verify_wts"
828
- },
829
- "wtsFilePath": {
830
- "type": "string",
831
- "description": "WTS file path to verify"
832
- }
833
- },
834
- "required": [
835
- "operation",
836
- "wtsFilePath"
837
- ],
838
- "additionalProperties": false
839
- },
840
- {
841
- "type": "object",
842
- "properties": {
843
- "operation": {
844
- "type": "string",
845
- "const": "sign_wts"
846
- },
847
- "wtsFilePath": {
848
- "type": "string",
849
- "description": "WTS file path to sign"
850
- },
851
- "account": {
852
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
853
- "description": "Account name or address to sign with. If not specified, uses default account"
854
- },
855
- "outputPath": {
856
- "type": "string",
857
- "description": "Output file path. If not specified, saves to signed_*.wts"
858
- }
859
- },
860
- "required": [
861
- "operation",
862
- "wtsFilePath"
863
- ],
864
- "additionalProperties": false
865
- },
866
- {
867
- "type": "object",
868
- "properties": {
869
- "operation": {
870
- "type": "string",
871
- "const": "wts2html"
872
- },
873
- "wtsPath": {
874
- "type": "string",
875
- "description": "WTS file path or directory to convert"
876
- },
877
- "options": {
878
- "type": "object",
879
- "properties": {
880
- "title": {
881
- "type": "string",
882
- "description": "HTML document title"
883
- },
884
- "theme": {
885
- "type": "string",
886
- "enum": [
887
- "light",
888
- "dark"
889
- ],
890
- "description": "HTML theme"
891
- },
892
- "outputPath": {
893
- "type": "string",
894
- "description": "Output file path"
895
- }
896
- },
897
- "additionalProperties": false,
898
- "description": "Conversion options"
899
- }
900
- },
901
- "required": [
902
- "operation",
903
- "wtsPath"
904
- ],
905
- "additionalProperties": false
906
- },
907
- {
908
- "type": "object",
909
- "properties": {
910
- "operation": {
911
- "type": "string",
912
- "const": "proof_message"
913
- },
914
- "account": {
915
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
916
- "description": "Account name or address. If not specified, uses default account"
917
- },
918
- "messageId": {
919
- "type": "string",
920
- "description": "Message ID to proof on-chain"
921
- },
922
- "network": {
923
- "type": "string",
924
- "enum": [
925
- "localnet",
926
- "testnet",
927
- "mainnet"
928
- ],
929
- "description": "Network to use for on-chain proof (required)"
930
- }
931
- },
932
- "required": [
933
- "operation",
934
- "messageId",
935
- "network"
936
- ],
937
- "additionalProperties": false
938
- },
939
- {
940
- "type": "object",
941
- "properties": {
942
- "operation": {
943
- "type": "string",
944
- "const": "blacklist"
945
- },
946
- "account": {
947
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
948
- "description": "Account name or address. If not specified, uses default account"
949
- },
950
- "blacklist": {
951
- "anyOf": [
952
768
  {
953
769
  "type": "object",
954
770
  "properties": {
955
- "op": {
771
+ "name_or_address": {
956
772
  "type": "string",
957
- "const": "add"
773
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
958
774
  },
959
- "users": {
960
- "anyOf": [
961
- {
962
- "type": "array",
963
- "items": {
964
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from"
965
- },
966
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
967
- },
968
- {
969
- "type": "object",
970
- "properties": {
971
- "entities": {
972
- "type": "array",
973
- "items": {
974
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/1"
975
- }
976
- },
977
- "check_all_founded": {
978
- "type": "boolean",
979
- "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs"
980
- }
981
- },
982
- "required": [
983
- "entities"
984
- ],
985
- "additionalProperties": false,
986
- "description": "Used to batch find account or object IDs by name"
987
- }
988
- ],
989
- "description": "Users to add to blacklist - can be array of strings (names/addresses) or full object"
775
+ "local_mark_first": {
776
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
777
+ "type": "boolean"
990
778
  }
991
779
  },
992
- "required": [
993
- "op",
994
- "users"
995
- ],
996
- "additionalProperties": false
997
- },
780
+ "additionalProperties": false,
781
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
782
+ }
783
+ ],
784
+ "description": "Peer account name or address - can be a string (name/address) or full object"
785
+ },
786
+ "range": {
787
+ "description": "Range filter parameters",
788
+ "oneOf": [
998
789
  {
999
790
  "type": "object",
1000
791
  "properties": {
1001
- "op": {
792
+ "type": {
1002
793
  "type": "string",
1003
- "const": "remove"
794
+ "const": "time"
1004
795
  },
1005
- "users": {
1006
- "anyOf": [
1007
- {
1008
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/0"
1009
- },
1010
- {
1011
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/1"
1012
- }
1013
- ],
1014
- "description": "Users to remove from blacklist - can be array of strings (names/addresses) or full object"
1015
- }
1016
- },
1017
- "required": [
1018
- "op",
1019
- "users"
1020
- ],
1021
- "additionalProperties": false
1022
- },
1023
- {
1024
- "type": "object",
1025
- "properties": {
1026
- "op": {
1027
- "type": "string",
1028
- "const": "clear"
796
+ "start": {
797
+ "type": "number"
798
+ },
799
+ "end": {
800
+ "type": "number"
1029
801
  }
1030
802
  },
1031
803
  "required": [
1032
- "op"
804
+ "type",
805
+ "start",
806
+ "end"
1033
807
  ],
1034
808
  "additionalProperties": false
1035
809
  },
1036
810
  {
1037
811
  "type": "object",
1038
812
  "properties": {
1039
- "op": {
813
+ "type": {
1040
814
  "type": "string",
1041
- "const": "get"
815
+ "const": "messageId"
816
+ },
817
+ "start": {
818
+ "type": "string"
819
+ },
820
+ "end": {
821
+ "type": "string"
1042
822
  }
1043
823
  },
1044
824
  "required": [
1045
- "op"
825
+ "type",
826
+ "start",
827
+ "end"
1046
828
  ],
1047
829
  "additionalProperties": false
1048
830
  },
1049
831
  {
1050
832
  "type": "object",
1051
833
  "properties": {
1052
- "op": {
834
+ "type": {
1053
835
  "type": "string",
1054
- "const": "exist"
836
+ "const": "seqIndex"
1055
837
  },
1056
- "users": {
1057
- "anyOf": [
1058
- {
1059
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/0"
1060
- },
1061
- {
1062
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/1"
1063
- }
1064
- ],
1065
- "description": "Users to check existence - can be array of strings (names/addresses) or full object"
838
+ "start": {
839
+ "type": "number"
840
+ },
841
+ "end": {
842
+ "type": "number"
1066
843
  }
1067
844
  },
1068
845
  "required": [
1069
- "op",
1070
- "users"
846
+ "type",
847
+ "start",
848
+ "end"
1071
849
  ],
1072
850
  "additionalProperties": false
1073
851
  }
1074
- ],
1075
- "description": "Blacklist management operation"
852
+ ]
853
+ },
854
+ "excludePlaintext": {
855
+ "description": "Whether to exclude plaintext",
856
+ "type": "boolean"
857
+ },
858
+ "outputDir": {
859
+ "description": "Output directory path. If not specified, defaults to the workspace/wts directory",
860
+ "type": "string"
1076
861
  }
1077
862
  },
1078
863
  "required": [
1079
- "operation",
1080
- "blacklist"
864
+ "myAccount",
865
+ "peerAccount"
1081
866
  ],
1082
- "additionalProperties": false
867
+ "additionalProperties": false,
868
+ "description": "WTS generation parameters"
869
+ }
870
+ },
871
+ "required": [
872
+ "operation",
873
+ "params"
874
+ ],
875
+ "additionalProperties": false
876
+ },
877
+ {
878
+ "type": "object",
879
+ "properties": {
880
+ "operation": {
881
+ "type": "string",
882
+ "const": "verify_wts"
883
+ },
884
+ "wtsFilePath": {
885
+ "type": "string",
886
+ "description": "WTS file path to verify"
887
+ }
888
+ },
889
+ "required": [
890
+ "operation",
891
+ "wtsFilePath"
892
+ ],
893
+ "additionalProperties": false
894
+ },
895
+ {
896
+ "type": "object",
897
+ "properties": {
898
+ "operation": {
899
+ "type": "string",
900
+ "const": "sign_wts"
901
+ },
902
+ "wtsFilePath": {
903
+ "type": "string",
904
+ "description": "WTS file path to sign"
1083
905
  },
1084
- {
906
+ "account": {
907
+ "description": "Account name or address to sign with. If not specified, uses default account",
908
+ "type": "string"
909
+ },
910
+ "outputPath": {
911
+ "description": "Output file path. If not specified, saves to signed_*.wts",
912
+ "type": "string"
913
+ }
914
+ },
915
+ "required": [
916
+ "operation",
917
+ "wtsFilePath"
918
+ ],
919
+ "additionalProperties": false
920
+ },
921
+ {
922
+ "type": "object",
923
+ "properties": {
924
+ "operation": {
925
+ "type": "string",
926
+ "const": "wts2html"
927
+ },
928
+ "wtsPath": {
929
+ "type": "string",
930
+ "description": "WTS file path or directory to convert"
931
+ },
932
+ "options": {
933
+ "description": "Conversion options",
1085
934
  "type": "object",
1086
935
  "properties": {
1087
- "operation": {
1088
- "type": "string",
1089
- "const": "friendslist"
936
+ "title": {
937
+ "description": "HTML document title",
938
+ "type": "string"
1090
939
  },
1091
- "account": {
1092
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1093
- "description": "Account name or address. If not specified, uses default account"
940
+ "theme": {
941
+ "description": "HTML theme",
942
+ "type": "string",
943
+ "enum": [
944
+ "light",
945
+ "dark"
946
+ ]
1094
947
  },
1095
- "friendslist": {
1096
- "anyOf": [
1097
- {
1098
- "type": "object",
1099
- "properties": {
1100
- "op": {
1101
- "type": "string",
1102
- "const": "add"
948
+ "outputPath": {
949
+ "description": "Output file path",
950
+ "type": "string"
951
+ }
952
+ },
953
+ "additionalProperties": false
954
+ }
955
+ },
956
+ "required": [
957
+ "operation",
958
+ "wtsPath"
959
+ ],
960
+ "additionalProperties": false
961
+ },
962
+ {
963
+ "type": "object",
964
+ "properties": {
965
+ "operation": {
966
+ "type": "string",
967
+ "const": "proof_message"
968
+ },
969
+ "account": {
970
+ "description": "Account name or address. If not specified, uses default account",
971
+ "type": "string"
972
+ },
973
+ "messageId": {
974
+ "type": "string",
975
+ "description": "Message ID to proof on-chain"
976
+ },
977
+ "network": {
978
+ "type": "string",
979
+ "enum": [
980
+ "localnet",
981
+ "testnet",
982
+ "mainnet"
983
+ ],
984
+ "description": "Network to use for on-chain proof (required)"
985
+ }
986
+ },
987
+ "required": [
988
+ "operation",
989
+ "messageId",
990
+ "network"
991
+ ],
992
+ "additionalProperties": false
993
+ },
994
+ {
995
+ "type": "object",
996
+ "properties": {
997
+ "operation": {
998
+ "type": "string",
999
+ "const": "blacklist"
1000
+ },
1001
+ "account": {
1002
+ "description": "Account name or address. If not specified, uses default account",
1003
+ "type": "string"
1004
+ },
1005
+ "blacklist": {
1006
+ "oneOf": [
1007
+ {
1008
+ "type": "object",
1009
+ "properties": {
1010
+ "op": {
1011
+ "type": "string",
1012
+ "const": "add"
1013
+ },
1014
+ "users": {
1015
+ "anyOf": [
1016
+ {
1017
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1103
1018
  },
1104
- "users": {
1105
- "anyOf": [
1106
- {
1107
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/0"
1019
+ {
1020
+ "type": "object",
1021
+ "properties": {
1022
+ "entities": {
1023
+ "type": "array",
1024
+ "items": {
1025
+ "type": "object",
1026
+ "properties": {
1027
+ "name_or_address": {
1028
+ "type": "string",
1029
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1030
+ },
1031
+ "local_mark_first": {
1032
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1033
+ "type": "boolean"
1034
+ }
1035
+ },
1036
+ "additionalProperties": false,
1037
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1038
+ }
1108
1039
  },
1109
- {
1110
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/1"
1040
+ "check_all_founded": {
1041
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1042
+ "type": "boolean"
1111
1043
  }
1044
+ },
1045
+ "required": [
1046
+ "entities"
1112
1047
  ],
1113
- "description": "Users to add to friends list - can be array of strings (names/addresses) or full object"
1048
+ "additionalProperties": false,
1049
+ "description": "Used to batch find account or object IDs by name"
1114
1050
  }
1115
- },
1116
- "required": [
1117
- "op",
1118
- "users"
1119
1051
  ],
1120
- "additionalProperties": false
1052
+ "description": "Users to add to blacklist - can be array of strings (names/addresses) or full object"
1053
+ }
1054
+ },
1055
+ "required": [
1056
+ "op",
1057
+ "users"
1058
+ ],
1059
+ "additionalProperties": false
1060
+ },
1061
+ {
1062
+ "type": "object",
1063
+ "properties": {
1064
+ "op": {
1065
+ "type": "string",
1066
+ "const": "remove"
1121
1067
  },
1122
- {
1123
- "type": "object",
1124
- "properties": {
1125
- "op": {
1126
- "type": "string",
1127
- "const": "remove"
1068
+ "users": {
1069
+ "anyOf": [
1070
+ {
1071
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1128
1072
  },
1129
- "users": {
1130
- "anyOf": [
1131
- {
1132
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/0"
1073
+ {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "entities": {
1077
+ "type": "array",
1078
+ "items": {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "name_or_address": {
1082
+ "type": "string",
1083
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1084
+ },
1085
+ "local_mark_first": {
1086
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1087
+ "type": "boolean"
1088
+ }
1089
+ },
1090
+ "additionalProperties": false,
1091
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1092
+ }
1133
1093
  },
1134
- {
1135
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/1"
1094
+ "check_all_founded": {
1095
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1096
+ "type": "boolean"
1136
1097
  }
1098
+ },
1099
+ "required": [
1100
+ "entities"
1137
1101
  ],
1138
- "description": "Users to remove from friends list - can be array of strings (names/addresses) or full object"
1139
- }
1140
- },
1141
- "required": [
1142
- "op",
1143
- "users"
1144
- ],
1145
- "additionalProperties": false
1146
- },
1147
- {
1148
- "type": "object",
1149
- "properties": {
1150
- "op": {
1151
- "type": "string",
1152
- "const": "clear"
1153
- }
1154
- },
1155
- "required": [
1156
- "op"
1157
- ],
1158
- "additionalProperties": false
1159
- },
1160
- {
1161
- "type": "object",
1162
- "properties": {
1163
- "op": {
1164
- "type": "string",
1165
- "const": "get"
1102
+ "additionalProperties": false,
1103
+ "description": "Used to batch find account or object IDs by name"
1166
1104
  }
1167
- },
1168
- "required": [
1169
- "op"
1170
1105
  ],
1171
- "additionalProperties": false
1106
+ "description": "Users to remove from blacklist - can be array of strings (names/addresses) or full object"
1107
+ }
1108
+ },
1109
+ "required": [
1110
+ "op",
1111
+ "users"
1112
+ ],
1113
+ "additionalProperties": false
1114
+ },
1115
+ {
1116
+ "type": "object",
1117
+ "properties": {
1118
+ "op": {
1119
+ "type": "string",
1120
+ "const": "clear"
1121
+ }
1122
+ },
1123
+ "required": [
1124
+ "op"
1125
+ ],
1126
+ "additionalProperties": false
1127
+ },
1128
+ {
1129
+ "type": "object",
1130
+ "properties": {
1131
+ "op": {
1132
+ "type": "string",
1133
+ "const": "get"
1134
+ }
1135
+ },
1136
+ "required": [
1137
+ "op"
1138
+ ],
1139
+ "additionalProperties": false
1140
+ },
1141
+ {
1142
+ "type": "object",
1143
+ "properties": {
1144
+ "op": {
1145
+ "type": "string",
1146
+ "const": "exist"
1172
1147
  },
1173
- {
1174
- "type": "object",
1175
- "properties": {
1176
- "op": {
1177
- "type": "string",
1178
- "const": "exist"
1148
+ "users": {
1149
+ "anyOf": [
1150
+ {
1151
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1179
1152
  },
1180
- "users": {
1181
- "anyOf": [
1182
- {
1183
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/0"
1153
+ {
1154
+ "type": "object",
1155
+ "properties": {
1156
+ "entities": {
1157
+ "type": "array",
1158
+ "items": {
1159
+ "type": "object",
1160
+ "properties": {
1161
+ "name_or_address": {
1162
+ "type": "string",
1163
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1164
+ },
1165
+ "local_mark_first": {
1166
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1167
+ "type": "boolean"
1168
+ }
1169
+ },
1170
+ "additionalProperties": false,
1171
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1172
+ }
1184
1173
  },
1185
- {
1186
- "$ref": "#/definitions/messenger_operation/anyOf/10/properties/blacklist/anyOf/0/properties/users/anyOf/1"
1174
+ "check_all_founded": {
1175
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1176
+ "type": "boolean"
1187
1177
  }
1178
+ },
1179
+ "required": [
1180
+ "entities"
1188
1181
  ],
1189
- "description": "Users to check existence - can be array of strings (names/addresses) or full object"
1182
+ "additionalProperties": false,
1183
+ "description": "Used to batch find account or object IDs by name"
1190
1184
  }
1191
- },
1192
- "required": [
1193
- "op",
1194
- "users"
1195
1185
  ],
1196
- "additionalProperties": false
1186
+ "description": "Users to check existence - can be array of strings (names/addresses) or full object"
1197
1187
  }
1188
+ },
1189
+ "required": [
1190
+ "op",
1191
+ "users"
1198
1192
  ],
1199
- "description": "Friends list management operation"
1193
+ "additionalProperties": false
1200
1194
  }
1201
- },
1202
- "required": [
1203
- "operation",
1204
- "friendslist"
1205
1195
  ],
1206
- "additionalProperties": false
1196
+ "description": "Blacklist management operation"
1197
+ }
1198
+ },
1199
+ "required": [
1200
+ "operation",
1201
+ "blacklist"
1202
+ ],
1203
+ "additionalProperties": false
1204
+ },
1205
+ {
1206
+ "type": "object",
1207
+ "properties": {
1208
+ "operation": {
1209
+ "type": "string",
1210
+ "const": "friendslist"
1207
1211
  },
1208
- {
1209
- "type": "object",
1210
- "properties": {
1211
- "operation": {
1212
- "type": "string",
1213
- "const": "guardlist"
1214
- },
1215
- "account": {
1216
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1217
- "description": "Account name or address. If not specified, uses default account"
1218
- },
1219
- "guardlist": {
1220
- "anyOf": [
1221
- {
1222
- "type": "object",
1223
- "properties": {
1224
- "op": {
1225
- "type": "string",
1226
- "const": "add"
1212
+ "account": {
1213
+ "description": "Account name or address. If not specified, uses default account",
1214
+ "type": "string"
1215
+ },
1216
+ "friendslist": {
1217
+ "oneOf": [
1218
+ {
1219
+ "type": "object",
1220
+ "properties": {
1221
+ "op": {
1222
+ "type": "string",
1223
+ "const": "add"
1224
+ },
1225
+ "users": {
1226
+ "anyOf": [
1227
+ {
1228
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1227
1229
  },
1228
- "guards": {
1229
- "type": "array",
1230
- "items": {
1231
- "type": "object",
1232
- "properties": {
1233
- "guard": {
1234
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1235
- "description": "Guard address or name"
1236
- },
1237
- "passportValiditySeconds": {
1238
- "type": "number",
1239
- "minimum": 10,
1240
- "maximum": 315360000,
1241
- "description": "Passport validity in seconds (10s to 10 years)"
1230
+ {
1231
+ "type": "object",
1232
+ "properties": {
1233
+ "entities": {
1234
+ "type": "array",
1235
+ "items": {
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "name_or_address": {
1239
+ "type": "string",
1240
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1241
+ },
1242
+ "local_mark_first": {
1243
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1244
+ "type": "boolean"
1245
+ }
1246
+ },
1247
+ "additionalProperties": false,
1248
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1242
1249
  }
1243
1250
  },
1244
- "required": [
1245
- "guard",
1246
- "passportValiditySeconds"
1247
- ],
1248
- "additionalProperties": false,
1249
- "description": "Guard parameter"
1251
+ "check_all_founded": {
1252
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1253
+ "type": "boolean"
1254
+ }
1250
1255
  },
1251
- "minItems": 1,
1252
- "maxItems": 10,
1253
- "description": "Guards to add to guard list"
1256
+ "required": [
1257
+ "entities"
1258
+ ],
1259
+ "additionalProperties": false,
1260
+ "description": "Used to batch find account or object IDs by name"
1254
1261
  }
1255
- },
1256
- "required": [
1257
- "op",
1258
- "guards"
1259
1262
  ],
1260
- "additionalProperties": false
1263
+ "description": "Users to add to friends list - can be array of strings (names/addresses) or full object"
1264
+ }
1265
+ },
1266
+ "required": [
1267
+ "op",
1268
+ "users"
1269
+ ],
1270
+ "additionalProperties": false
1271
+ },
1272
+ {
1273
+ "type": "object",
1274
+ "properties": {
1275
+ "op": {
1276
+ "type": "string",
1277
+ "const": "remove"
1261
1278
  },
1262
- {
1263
- "type": "object",
1264
- "properties": {
1265
- "op": {
1266
- "type": "string",
1267
- "const": "remove"
1279
+ "users": {
1280
+ "anyOf": [
1281
+ {
1282
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1268
1283
  },
1269
- "guards": {
1270
- "type": "array",
1271
- "items": {
1272
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from"
1284
+ {
1285
+ "type": "object",
1286
+ "properties": {
1287
+ "entities": {
1288
+ "type": "array",
1289
+ "items": {
1290
+ "type": "object",
1291
+ "properties": {
1292
+ "name_or_address": {
1293
+ "type": "string",
1294
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1295
+ },
1296
+ "local_mark_first": {
1297
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1298
+ "type": "boolean"
1299
+ }
1300
+ },
1301
+ "additionalProperties": false,
1302
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1303
+ }
1304
+ },
1305
+ "check_all_founded": {
1306
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1307
+ "type": "boolean"
1308
+ }
1273
1309
  },
1274
- "minItems": 1,
1275
- "maxItems": 10,
1276
- "description": "Guard addresses to remove from guard list"
1277
- }
1278
- },
1279
- "required": [
1280
- "op",
1281
- "guards"
1282
- ],
1283
- "additionalProperties": false
1284
- },
1285
- {
1286
- "type": "object",
1287
- "properties": {
1288
- "op": {
1289
- "type": "string",
1290
- "const": "get"
1310
+ "required": [
1311
+ "entities"
1312
+ ],
1313
+ "additionalProperties": false,
1314
+ "description": "Used to batch find account or object IDs by name"
1291
1315
  }
1292
- },
1293
- "required": [
1294
- "op"
1295
1316
  ],
1296
- "additionalProperties": false
1317
+ "description": "Users to remove from friends list - can be array of strings (names/addresses) or full object"
1297
1318
  }
1319
+ },
1320
+ "required": [
1321
+ "op",
1322
+ "users"
1298
1323
  ],
1299
- "description": "Guard list management operation"
1300
- }
1301
- },
1302
- "required": [
1303
- "operation",
1304
- "guardlist"
1305
- ],
1306
- "additionalProperties": false
1307
- },
1308
- {
1309
- "type": "object",
1310
- "properties": {
1311
- "operation": {
1312
- "type": "string",
1313
- "const": "settings"
1324
+ "additionalProperties": false
1314
1325
  },
1315
- "account": {
1316
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1317
- "description": "Account name or address. If not specified, uses default account"
1326
+ {
1327
+ "type": "object",
1328
+ "properties": {
1329
+ "op": {
1330
+ "type": "string",
1331
+ "const": "clear"
1332
+ }
1333
+ },
1334
+ "required": [
1335
+ "op"
1336
+ ],
1337
+ "additionalProperties": false
1318
1338
  },
1319
- "settings": {
1320
- "anyOf": [
1321
- {
1322
- "type": "object",
1323
- "properties": {
1324
- "op": {
1325
- "type": "string",
1326
- "const": "get"
1327
- }
1328
- },
1329
- "required": [
1330
- "op"
1331
- ],
1332
- "additionalProperties": false
1339
+ {
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "op": {
1343
+ "type": "string",
1344
+ "const": "get"
1345
+ }
1346
+ },
1347
+ "required": [
1348
+ "op"
1349
+ ],
1350
+ "additionalProperties": false
1351
+ },
1352
+ {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "op": {
1356
+ "type": "string",
1357
+ "const": "exist"
1333
1358
  },
1334
- {
1335
- "type": "object",
1336
- "properties": {
1337
- "op": {
1338
- "type": "string",
1339
- "const": "set"
1340
- },
1341
- "allowStrangerMessages": {
1342
- "type": "boolean",
1343
- "description": "Allow messages from strangers"
1359
+ "users": {
1360
+ "anyOf": [
1361
+ {
1362
+ "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1344
1363
  },
1345
- "maxInboxSize": {
1346
- "type": "number",
1347
- "minimum": 1,
1348
- "description": "Maximum inbox size"
1364
+ {
1365
+ "type": "object",
1366
+ "properties": {
1367
+ "entities": {
1368
+ "type": "array",
1369
+ "items": {
1370
+ "type": "object",
1371
+ "properties": {
1372
+ "name_or_address": {
1373
+ "type": "string",
1374
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1375
+ },
1376
+ "local_mark_first": {
1377
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1378
+ "type": "boolean"
1379
+ }
1380
+ },
1381
+ "additionalProperties": false,
1382
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1383
+ }
1384
+ },
1385
+ "check_all_founded": {
1386
+ "description": "Whether to check all entities are found, if true, all entities must be found (abort and throw exception if any ID not found); if false, only return found IDs",
1387
+ "type": "boolean"
1388
+ }
1389
+ },
1390
+ "required": [
1391
+ "entities"
1392
+ ],
1393
+ "additionalProperties": false,
1394
+ "description": "Used to batch find account or object IDs by name"
1349
1395
  }
1350
- },
1351
- "required": [
1352
- "op"
1353
1396
  ],
1354
- "additionalProperties": false
1397
+ "description": "Users to check existence - can be array of strings (names/addresses) or full object"
1355
1398
  }
1399
+ },
1400
+ "required": [
1401
+ "op",
1402
+ "users"
1356
1403
  ],
1357
- "description": "Settings management operation"
1404
+ "additionalProperties": false
1358
1405
  }
1359
- },
1360
- "required": [
1361
- "operation",
1362
- "settings"
1363
1406
  ],
1364
- "additionalProperties": false
1407
+ "description": "Friends list management operation"
1408
+ }
1409
+ },
1410
+ "required": [
1411
+ "operation",
1412
+ "friendslist"
1413
+ ],
1414
+ "additionalProperties": false
1415
+ },
1416
+ {
1417
+ "type": "object",
1418
+ "properties": {
1419
+ "operation": {
1420
+ "type": "string",
1421
+ "const": "guardlist"
1365
1422
  },
1366
- {
1367
- "type": "object",
1368
- "properties": {
1369
- "operation": {
1370
- "type": "string",
1371
- "const": "mark_messages_as_viewed"
1423
+ "account": {
1424
+ "description": "Account name or address. If not specified, uses default account",
1425
+ "type": "string"
1426
+ },
1427
+ "guardlist": {
1428
+ "oneOf": [
1429
+ {
1430
+ "type": "object",
1431
+ "properties": {
1432
+ "op": {
1433
+ "type": "string",
1434
+ "const": "add"
1435
+ },
1436
+ "guards": {
1437
+ "minItems": 1,
1438
+ "maxItems": 10,
1439
+ "type": "array",
1440
+ "items": {
1441
+ "type": "object",
1442
+ "properties": {
1443
+ "guard": {
1444
+ "type": "string",
1445
+ "description": "Guard address or name"
1446
+ },
1447
+ "passportValiditySeconds": {
1448
+ "type": "number",
1449
+ "minimum": 10,
1450
+ "maximum": 315360000,
1451
+ "description": "Passport validity in seconds (10s to 10 years)"
1452
+ }
1453
+ },
1454
+ "required": [
1455
+ "guard",
1456
+ "passportValiditySeconds"
1457
+ ],
1458
+ "additionalProperties": false,
1459
+ "description": "Guard parameter"
1460
+ },
1461
+ "description": "Guards to add to guard list"
1462
+ }
1463
+ },
1464
+ "required": [
1465
+ "op",
1466
+ "guards"
1467
+ ],
1468
+ "additionalProperties": false
1372
1469
  },
1373
- "account": {
1374
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1375
- "description": "Account name or address. If not specified, uses default account"
1470
+ {
1471
+ "type": "object",
1472
+ "properties": {
1473
+ "op": {
1474
+ "type": "string",
1475
+ "const": "remove"
1476
+ },
1477
+ "guards": {
1478
+ "minItems": 1,
1479
+ "maxItems": 10,
1480
+ "type": "array",
1481
+ "items": {
1482
+ "type": "string",
1483
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1484
+ },
1485
+ "description": "Guard addresses to remove from guard list"
1486
+ }
1487
+ },
1488
+ "required": [
1489
+ "op",
1490
+ "guards"
1491
+ ],
1492
+ "additionalProperties": false
1376
1493
  },
1377
- "messageIds": {
1378
- "type": "array",
1379
- "items": {
1380
- "type": "string"
1494
+ {
1495
+ "type": "object",
1496
+ "properties": {
1497
+ "op": {
1498
+ "type": "string",
1499
+ "const": "get"
1500
+ }
1381
1501
  },
1382
- "minItems": 1,
1383
- "maxItems": 1000,
1384
- "description": "Array of message IDs to mark as viewed (1-1000 messages). Only messages belonging to this account will be marked"
1502
+ "required": [
1503
+ "op"
1504
+ ],
1505
+ "additionalProperties": false
1385
1506
  }
1386
- },
1387
- "required": [
1388
- "operation",
1389
- "messageIds"
1390
1507
  ],
1391
- "additionalProperties": false
1508
+ "description": "Guard list management operation"
1509
+ }
1510
+ },
1511
+ "required": [
1512
+ "operation",
1513
+ "guardlist"
1514
+ ],
1515
+ "additionalProperties": false
1516
+ },
1517
+ {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "operation": {
1521
+ "type": "string",
1522
+ "const": "settings"
1392
1523
  },
1393
- {
1394
- "type": "object",
1395
- "properties": {
1396
- "operation": {
1397
- "type": "string",
1398
- "const": "mark_conversation_as_viewed"
1399
- },
1400
- "account": {
1401
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1402
- "description": "Account name or address. If not specified, uses default account"
1524
+ "account": {
1525
+ "description": "Account name or address. If not specified, uses default account",
1526
+ "type": "string"
1527
+ },
1528
+ "settings": {
1529
+ "oneOf": [
1530
+ {
1531
+ "type": "object",
1532
+ "properties": {
1533
+ "op": {
1534
+ "type": "string",
1535
+ "const": "get"
1536
+ }
1537
+ },
1538
+ "required": [
1539
+ "op"
1540
+ ],
1541
+ "additionalProperties": false
1403
1542
  },
1404
- "peerAddress": {
1405
- "anyOf": [
1406
- {
1407
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/0"
1543
+ {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "op": {
1547
+ "type": "string",
1548
+ "const": "set"
1408
1549
  },
1409
- {
1410
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/to/anyOf/1"
1550
+ "allowStrangerMessages": {
1551
+ "description": "Allow messages from strangers",
1552
+ "type": "boolean"
1553
+ },
1554
+ "maxInboxSize": {
1555
+ "description": "Maximum inbox size",
1556
+ "type": "number",
1557
+ "minimum": 1
1411
1558
  }
1559
+ },
1560
+ "required": [
1561
+ "op"
1412
1562
  ],
1413
- "description": "Peer address or account name - can be a string (name/address) or full object. All unviewed received messages from this peer will be marked as viewed"
1563
+ "additionalProperties": false
1414
1564
  }
1415
- },
1416
- "required": [
1417
- "operation",
1418
- "peerAddress"
1419
1565
  ],
1420
- "additionalProperties": false
1566
+ "description": "Settings management operation"
1567
+ }
1568
+ },
1569
+ "required": [
1570
+ "operation",
1571
+ "settings"
1572
+ ],
1573
+ "additionalProperties": false
1574
+ },
1575
+ {
1576
+ "type": "object",
1577
+ "properties": {
1578
+ "operation": {
1579
+ "type": "string",
1580
+ "const": "mark_messages_as_viewed"
1421
1581
  },
1422
- {
1423
- "type": "object",
1424
- "properties": {
1425
- "operation": {
1426
- "type": "string",
1427
- "const": "pull_messages"
1428
- },
1429
- "account": {
1430
- "$ref": "#/definitions/messenger_operation/anyOf/1/properties/from",
1431
- "description": "Account name or address. If not specified, uses default account"
1582
+ "account": {
1583
+ "description": "Account name or address. If not specified, uses default account",
1584
+ "type": "string"
1585
+ },
1586
+ "messageIds": {
1587
+ "minItems": 1,
1588
+ "maxItems": 1000,
1589
+ "type": "array",
1590
+ "items": {
1591
+ "type": "string"
1592
+ },
1593
+ "description": "Array of message IDs to mark as viewed (1-1000 messages). Only messages belonging to this account will be marked"
1594
+ }
1595
+ },
1596
+ "required": [
1597
+ "operation",
1598
+ "messageIds"
1599
+ ],
1600
+ "additionalProperties": false
1601
+ },
1602
+ {
1603
+ "type": "object",
1604
+ "properties": {
1605
+ "operation": {
1606
+ "type": "string",
1607
+ "const": "mark_conversation_as_viewed"
1608
+ },
1609
+ "account": {
1610
+ "description": "Account name or address. If not specified, uses default account",
1611
+ "type": "string"
1612
+ },
1613
+ "peerAddress": {
1614
+ "anyOf": [
1615
+ {
1616
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1432
1617
  },
1433
- "limit": {
1434
- "type": "number",
1435
- "description": "Maximum number of messages to pull from server"
1618
+ {
1619
+ "type": "object",
1620
+ "properties": {
1621
+ "name_or_address": {
1622
+ "type": "string",
1623
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1624
+ },
1625
+ "local_mark_first": {
1626
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1627
+ "type": "boolean"
1628
+ }
1629
+ },
1630
+ "additionalProperties": false,
1631
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1436
1632
  }
1437
- },
1438
- "required": [
1439
- "operation"
1440
1633
  ],
1441
- "additionalProperties": false
1634
+ "description": "Peer address or account name - can be a string (name/address) or full object. All unviewed received messages from this peer will be marked as viewed"
1635
+ }
1636
+ },
1637
+ "required": [
1638
+ "operation",
1639
+ "peerAddress"
1640
+ ],
1641
+ "additionalProperties": false
1642
+ },
1643
+ {
1644
+ "type": "object",
1645
+ "properties": {
1646
+ "operation": {
1647
+ "type": "string",
1648
+ "const": "pull_messages"
1649
+ },
1650
+ "account": {
1651
+ "description": "Account name or address. If not specified, uses default account",
1652
+ "type": "string"
1653
+ },
1654
+ "limit": {
1655
+ "description": "Maximum number of messages to pull from server",
1656
+ "type": "number"
1442
1657
  }
1658
+ },
1659
+ "required": [
1660
+ "operation"
1443
1661
  ],
1444
- "description": "Messenger operation input schema. PREREQUISITE: an account must ENABLE messenger before sending/receiving. There is NO 'enable' operation in this tool — enable via account_operation {messenger: {enabled: true, name_or_account: '<account>'}}, or implicitly via send_message/send_file with options.enable_messenger: true. Use proof_message to anchor a message's WTS proof on-chain (creates a Proof object consumable by Guards via proof.signer/proof.time queries)."
1662
+ "additionalProperties": false
1445
1663
  }
1446
- }
1664
+ ]
1447
1665
  }