@wowok/agent-mcp 3.4.3 → 3.4.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 (853) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/build-stamp.js +1 -0
  3. package/dist/chain-semantics/composition-truth.js +1 -1
  4. package/dist/chain-semantics/eval-order.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/object-graph.js +1 -1
  8. package/dist/composition/audit.js +1 -1
  9. package/dist/composition/compile.js +1 -1
  10. package/dist/composition/emit-phases.js +1 -1
  11. package/dist/composition/generate.js +1 -1
  12. package/dist/composition/guard-fill.js +1 -1
  13. package/dist/composition/input-normalize.js +1 -1
  14. package/dist/composition/materialize.js +1 -1
  15. package/dist/composition/mode-gates.js +1 -1
  16. package/dist/composition/plan.js +1 -1
  17. package/dist/composition/product-card.js +1 -1
  18. package/dist/composition/shape-expand.js +1 -0
  19. package/dist/config/judgment.js +1 -1
  20. package/dist/config/template-params.js +1 -1
  21. package/dist/data/sync/cdc.js +1 -1
  22. package/dist/data/sync/graphql-source.js +1 -1
  23. package/dist/evaluation/engine.js +1 -1
  24. package/dist/experience/realtime-feedback.js +1 -1
  25. package/dist/graph/onchain/expand.js +1 -1
  26. package/dist/graph/onchain/exposure.js +1 -1
  27. package/dist/graph/onchain/sdk-batch.js +1 -1
  28. package/dist/harness/entry-ignite-selfheal.js +1 -0
  29. package/dist/harness/forward-leg-preflight.js +1 -0
  30. package/dist/harness/recover.js +1 -1
  31. package/dist/keeper/detectors.js +1 -1
  32. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  33. package/dist/knowledge/arb-operation-face.js +1 -0
  34. package/dist/knowledge/arbitration-rail-verifier.js +1 -1
  35. package/dist/knowledge/arbitration-templates.js +1 -1
  36. package/dist/knowledge/audit-rules.d.ts +15 -0
  37. package/dist/knowledge/audit-rules.js +1 -1
  38. package/dist/knowledge/baselines/rules/alloc_audit.json.good +310 -0
  39. package/dist/knowledge/baselines/rules/allocation.json.good +568 -0
  40. package/dist/knowledge/baselines/rules/arb.json.good +174 -0
  41. package/dist/knowledge/baselines/rules/arbitration.json.good +393 -0
  42. package/dist/knowledge/baselines/rules/bridge.json.good +197 -0
  43. package/dist/knowledge/baselines/rules/contact.json.good +152 -0
  44. package/dist/knowledge/baselines/rules/demand.json.good +158 -0
  45. package/dist/knowledge/baselines/rules/graph.json.good +534 -0
  46. package/dist/knowledge/baselines/rules/guard.json +18 -5
  47. package/dist/knowledge/baselines/rules/guard.json.good +1192 -0
  48. package/dist/knowledge/baselines/rules/machine.json.good +734 -0
  49. package/dist/knowledge/baselines/rules/oracle.json +1 -1
  50. package/dist/knowledge/baselines/rules/oracle.json.good +120 -0
  51. package/dist/knowledge/baselines/rules/order.json.good +549 -0
  52. package/dist/knowledge/baselines/rules/payment.json.good +205 -0
  53. package/dist/knowledge/baselines/rules/permission.json.good +330 -0
  54. package/dist/knowledge/baselines/rules/personal.json.good +139 -0
  55. package/dist/knowledge/baselines/rules/plan.json +343 -1
  56. package/dist/knowledge/baselines/rules/plan.json.good +1187 -0
  57. package/dist/knowledge/baselines/rules/progress.json.good +364 -0
  58. package/dist/knowledge/baselines/rules/proof.json.good +158 -0
  59. package/dist/knowledge/baselines/rules/registrar.json.good +159 -0
  60. package/dist/knowledge/baselines/rules/repository.json.good +244 -0
  61. package/dist/knowledge/baselines/rules/resource.json.good +117 -0
  62. package/dist/knowledge/baselines/rules/reward.json +10 -10
  63. package/dist/knowledge/baselines/rules/reward.json.good +586 -0
  64. package/dist/knowledge/baselines/rules/service.json.good +595 -0
  65. package/dist/knowledge/baselines/rules/treasury.json.good +440 -0
  66. package/dist/knowledge/baselines/rules/util.json.good +101 -0
  67. package/dist/knowledge/builtin-templates.d.ts +13 -1
  68. package/dist/knowledge/builtin-templates.js +1 -1
  69. package/dist/knowledge/chain-query-registry.js +1 -1
  70. package/dist/knowledge/discount-threshold.js +1 -1
  71. package/dist/knowledge/fee-param-bindings.js +1 -1
  72. package/dist/knowledge/fund-layer.d.ts +2 -0
  73. package/dist/knowledge/fund-layer.js +1 -1
  74. package/dist/knowledge/getting-started.js +1 -1
  75. package/dist/knowledge/guard-binding-table.js +1 -1
  76. package/dist/knowledge/guard-binding-verifier.js +1 -1
  77. package/dist/knowledge/guard-create-preflight.js +1 -0
  78. package/dist/knowledge/guard-field-cognition.js +1 -1
  79. package/dist/knowledge/guard-host-context.js +1 -1
  80. package/dist/knowledge/guard-leg-eval.js +1 -0
  81. package/dist/knowledge/guard-node-gates.js +1 -1
  82. package/dist/knowledge/guard-puzzle.js +1 -1
  83. package/dist/knowledge/guard-quality.js +1 -0
  84. package/dist/knowledge/guard-render.js +1 -1
  85. package/dist/knowledge/guard-risk.js +1 -1
  86. package/dist/knowledge/guard-semantic-walk.js +1 -0
  87. package/dist/knowledge/guard-templates.d.ts +1 -0
  88. package/dist/knowledge/guard-templates.js +1 -1
  89. package/dist/knowledge/guard-translation.js +1 -1
  90. package/dist/knowledge/index.js +1 -1
  91. package/dist/knowledge/industry-registry.js +1 -1
  92. package/dist/knowledge/jsonrpc-enum.js +1 -1
  93. package/dist/knowledge/param-schema.js +1 -1
  94. package/dist/knowledge/param-tiers.js +1 -1
  95. package/dist/knowledge/path-oracle/coverage.js +1 -1
  96. package/dist/knowledge/path-oracle/index.js +1 -1
  97. package/dist/knowledge/path-oracle/products/airbnb.js +1 -0
  98. package/dist/knowledge/path-oracle/products/algora.js +1 -0
  99. package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -0
  100. package/dist/knowledge/path-oracle/products/amazon.js +1 -0
  101. package/dist/knowledge/path-oracle/products/beatstars.js +1 -0
  102. package/dist/knowledge/path-oracle/products/booking-com.js +1 -0
  103. package/dist/knowledge/path-oracle/products/contra.js +1 -0
  104. package/dist/knowledge/path-oracle/products/costco.js +1 -0
  105. package/dist/knowledge/path-oracle/products/coursera.js +1 -0
  106. package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -0
  107. package/dist/knowledge/path-oracle/products/etsy.js +1 -0
  108. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  109. package/dist/knowledge/path-oracle/products/gamefound.js +1 -0
  110. package/dist/knowledge/path-oracle/products/gofundme.js +1 -0
  111. package/dist/knowledge/path-oracle/products/hackerone.js +1 -0
  112. package/dist/knowledge/path-oracle/products/kickstarter.js +1 -0
  113. package/dist/knowledge/path-oracle/products/klook.js +1 -0
  114. package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -0
  115. package/dist/knowledge/path-oracle/products/onlyfans.js +1 -0
  116. package/dist/knowledge/path-oracle/products/patreon.js +1 -0
  117. package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -0
  118. package/dist/knowledge/path-oracle/products/royalty-exchange.js +1 -0
  119. package/dist/knowledge/path-oracle/products/shansong.js +1 -0
  120. package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -0
  121. package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -0
  122. package/dist/knowledge/path-oracle/products/upwork.js +1 -0
  123. package/dist/knowledge/path-oracle/products/yuanfudao.js +1 -0
  124. package/dist/knowledge/path-oracle/products/ziroom.js +1 -0
  125. package/dist/knowledge/pattern-resolutions.js +1 -1
  126. package/dist/knowledge/product-detail-source.js +1 -1
  127. package/dist/knowledge/product-doc-b5.js +1 -1
  128. package/dist/knowledge/product-doc-facets.js +1 -0
  129. package/dist/knowledge/projection.js +1 -1
  130. package/dist/knowledge/publish-gate.js +1 -1
  131. package/dist/knowledge/publish-surface-contract.js +1 -1
  132. package/dist/knowledge/recipient-constraint.d.ts +20 -0
  133. package/dist/knowledge/recipient-constraint.js +1 -1
  134. package/dist/knowledge/rule-declaration-types.d.ts +13 -0
  135. package/dist/knowledge/rule-declaration-types.js +1 -0
  136. package/dist/knowledge/rule-declarations.js +1 -0
  137. package/dist/knowledge/scenario-modes.d.ts +6 -0
  138. package/dist/knowledge/scenario-topology.js +1 -1
  139. package/dist/knowledge/template-loader.js +1 -1
  140. package/dist/knowledge/template-prose.js +1 -1
  141. package/dist/knowledge/template-registry.js +1 -1
  142. package/dist/knowledge/template-scanner.js +1 -1
  143. package/dist/knowledge/tools-reference.js +1 -1
  144. package/dist/monitor/MonitorLoop.js +1 -1
  145. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  146. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  147. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  148. package/dist/playbooks/service-build/object-panorama.js +1 -1
  149. package/dist/playbooks/service-build/participation-radar.js +1 -1
  150. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  151. package/dist/playbooks/service-build/service-panorama.js +1 -1
  152. package/dist/playbooks/service-build/service-quote.js +1 -1
  153. package/dist/review/index.js +1 -1
  154. package/dist/review/service.js +1 -1
  155. package/dist/safety/confirm-gate.js +1 -1
  156. package/dist/schema/benchmark-migration/index.d.ts +9 -0
  157. package/dist/schema/benchmark-migration/index.js +1 -1
  158. package/dist/schema/call/arbitration.d.ts +8 -0
  159. package/dist/schema/call/arbitration.js +1 -1
  160. package/dist/schema/call/base.d.ts +8 -0
  161. package/dist/schema/call/base.js +1 -1
  162. package/dist/schema/call/bridge.d.ts +2 -0
  163. package/dist/schema/call/error-codes.d.ts +1 -1
  164. package/dist/schema/call/error-codes.js +1 -1
  165. package/dist/schema/call/handler.d.ts +2 -1
  166. package/dist/schema/call/handler.js +1 -1
  167. package/dist/schema/call/order.d.ts +10 -0
  168. package/dist/schema/call/permission-handler.js +1 -1
  169. package/dist/schema/call/permission.js +1 -1
  170. package/dist/schema/call/progress.d.ts +15 -0
  171. package/dist/schema/call/progress.js +1 -1
  172. package/dist/schema/call/receipt.d.ts +1 -0
  173. package/dist/schema/call/receipt.js +1 -1
  174. package/dist/schema/call/repository.d.ts +12 -0
  175. package/dist/schema/call/repository.js +1 -1
  176. package/dist/schema/call/reward.js +1 -1
  177. package/dist/schema/call/semantic.d.ts +1 -0
  178. package/dist/schema/call/semantic.js +1 -1
  179. package/dist/schema/call/service.d.ts +5 -3
  180. package/dist/schema/call/service.js +1 -1
  181. package/dist/schema/common/index.js +1 -1
  182. package/dist/schema/envelope-unify.js +1 -1
  183. package/dist/schema/goal/index.d.ts +23 -0
  184. package/dist/schema/goal/planning.js +1 -1
  185. package/dist/schema/industry-pack/index.d.ts +2 -2
  186. package/dist/schema/local/index.d.ts +20 -0
  187. package/dist/schema/local/index.js +1 -1
  188. package/dist/schema/local/wip.d.ts +4 -0
  189. package/dist/schema/local/wip.js +1 -1
  190. package/dist/schema/messenger/index.d.ts +5 -0
  191. package/dist/schema/messenger/index.js +1 -1
  192. package/dist/schema/operations.d.ts +944 -1
  193. package/dist/schema/operations.js +1 -1
  194. package/dist/schema/query/bi.js +1 -1
  195. package/dist/schema/query/index.d.ts +5 -5
  196. package/dist/schema/query/index.js +1 -1
  197. package/dist/schema/schema-version.js +1 -1
  198. package/dist/schema/workspace/index.d.ts +2 -2
  199. package/dist/schema-query-impl/index.js +1 -1
  200. package/dist/schemas/account_operation.schema.json +1 -257
  201. package/dist/schemas/ask_user.schema.json +1 -78
  202. package/dist/schemas/benchmark_migration_operation.schema.json +1 -626
  203. package/dist/schemas/bridge_operation.schema.json +1 -1069
  204. package/dist/schemas/config_operation.schema.json +1 -82
  205. package/dist/schemas/employee_operation.schema.json +1 -319
  206. package/dist/schemas/evaluation_operation.schema.json +1 -3932
  207. package/dist/schemas/goal_operation.schema.json +1 -1650
  208. package/dist/schemas/guard2file.schema.json +1 -137
  209. package/dist/schemas/index.json +1 -285
  210. package/dist/schemas/industry_pack_operation.schema.json +1 -582
  211. package/dist/schemas/intent_radar.schema.json +1 -155
  212. package/dist/schemas/keeper_operation.schema.json +1 -364
  213. package/dist/schemas/local_cache_operation.schema.json +1 -116
  214. package/dist/schemas/local_history_operation.schema.json +1 -105
  215. package/dist/schemas/local_info_operation.schema.json +1 -140
  216. package/dist/schemas/local_mark_operation.schema.json +1 -124
  217. package/dist/schemas/machineNode2file.schema.json +1 -137
  218. package/dist/schemas/messenger_operation.schema.json +1 -2068
  219. package/dist/schemas/monitor_events.schema.json +1 -87
  220. package/dist/schemas/monitor_subscription.schema.json +1 -327
  221. package/dist/schemas/onchain_events.schema.json +1 -207
  222. package/dist/schemas/onchain_operations.schema.json +1 -28699
  223. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1376
  224. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1355
  225. package/dist/schemas/onchain_operations_contact.schema.json +1 -988
  226. package/dist/schemas/onchain_operations_demand.schema.json +1 -1146
  227. package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -663
  228. package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -180
  229. package/dist/schemas/onchain_operations_guard.schema.json +1 -8518
  230. package/dist/schemas/onchain_operations_machine.schema.json +1 -1879
  231. package/dist/schemas/onchain_operations_order.schema.json +1 -1121
  232. package/dist/schemas/onchain_operations_payment.schema.json +1 -316
  233. package/dist/schemas/onchain_operations_permission.schema.json +1 -1036
  234. package/dist/schemas/onchain_operations_personal.schema.json +1 -1463
  235. package/dist/schemas/onchain_operations_progress.schema.json +1 -1041
  236. package/dist/schemas/onchain_operations_proof.schema.json +1 -750
  237. package/dist/schemas/onchain_operations_repository.schema.json +1 -2046
  238. package/dist/schemas/onchain_operations_reward.schema.json +1 -1286
  239. package/dist/schemas/onchain_operations_service.schema.json +1 -2602
  240. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1527
  241. package/dist/schemas/onchain_table_data.schema.json +1 -1146
  242. package/dist/schemas/permission_operation.schema.json +1 -43
  243. package/dist/schemas/persona_operation.schema.json +1 -10424
  244. package/dist/schemas/query_toolkit.schema.json +1 -1867
  245. package/dist/schemas/schema_query.schema.json +1 -116
  246. package/dist/schemas/service_clone_operation.schema.json +1 -49
  247. package/dist/schemas/settle_sweep.schema.json +1 -0
  248. package/dist/schemas/strategy_review_operation.schema.json +1 -66
  249. package/dist/schemas/verify_guard_dry_run.schema.json +1 -0
  250. package/dist/schemas/watch_operation.schema.json +1 -145
  251. package/dist/schemas/wip_file.schema.json +1 -299
  252. package/dist/schemas/workflow_operation.schema.json +1 -722
  253. package/dist/schemas/workspace_operation.schema.json +1 -104
  254. package/dist/schemas/wowok_buildin_info.schema.json +1 -758
  255. package/dist/tools/handlers/benchmark-migration.js +1 -1
  256. package/dist/tools/handlers/config.js +1 -1
  257. package/dist/tools/handlers/entry-edge-recipe.js +1 -1
  258. package/dist/tools/handlers/file-export.js +1 -1
  259. package/dist/tools/handlers/local.js +1 -1
  260. package/dist/tools/handlers/messenger.js +1 -1
  261. package/dist/tools/handlers/onchain.js +1 -1
  262. package/dist/tools/handlers/pending-settlement-recipe.js +1 -0
  263. package/dist/tools/handlers/plan-recovery.js +1 -0
  264. package/dist/tools/handlers/query.js +1 -1
  265. package/dist/tools/handlers/repository-row-id.js +1 -0
  266. package/dist/tools/handlers/review-chain.js +1 -1
  267. package/dist/tools/handlers/settle-sweep.js +1 -0
  268. package/dist/tools/handlers/stale-build-check.js +1 -1
  269. package/dist/tools/handlers/submission-assembly.js +1 -1
  270. package/dist/tools/handlers/verify-guard-dry-run.js +1 -0
  271. package/dist/tools/handlers/wip-upload.js +1 -1
  272. package/dist/tools/index.d.ts +3 -1
  273. package/dist/tools/index.js +1 -1
  274. package/dist/tools/move-fn-index.gen.js +1 -1
  275. package/dist/tools/publish-gate-state.js +1 -1
  276. package/dist/tools/registry/business.js +1 -1
  277. package/dist/tools/registry/onchain.js +1 -1
  278. package/dist/tools/shared.js +1 -1
  279. package/dist/tools/types.d.ts +1 -1
  280. package/dist/tools/wrap.js +1 -1
  281. package/package.json +11 -4
  282. package/dist/chain-semantics/composition-truth.d.ts +0 -102
  283. package/dist/chain-semantics/eval-order.d.ts +0 -17
  284. package/dist/chain-semantics/field-capability.d.ts +0 -11
  285. package/dist/chain-semantics/freeze-map.d.ts +0 -11
  286. package/dist/chain-semantics/fund-flow.d.ts +0 -10
  287. package/dist/chain-semantics/guard-verbs.d.ts +0 -22
  288. package/dist/chain-semantics/index.d.ts +0 -12
  289. package/dist/chain-semantics/object-graph.d.ts +0 -18
  290. package/dist/communication/evidence.d.ts +0 -6
  291. package/dist/communication/message-cursors.d.ts +0 -35
  292. package/dist/communication/proof-reuse.d.ts +0 -9
  293. package/dist/communication/wts-attestation.d.ts +0 -39
  294. package/dist/composition/audit.d.ts +0 -15
  295. package/dist/composition/blueprint-view.d.ts +0 -63
  296. package/dist/composition/compile.d.ts +0 -83
  297. package/dist/composition/emit-phases.d.ts +0 -234
  298. package/dist/composition/generate.d.ts +0 -40
  299. package/dist/composition/guard-fill.d.ts +0 -52
  300. package/dist/composition/inflight.d.ts +0 -86
  301. package/dist/composition/input-normalize.d.ts +0 -15
  302. package/dist/composition/materialize.d.ts +0 -78
  303. package/dist/composition/mode-gates.d.ts +0 -35
  304. package/dist/composition/param-disclosure.d.ts +0 -61
  305. package/dist/composition/plan-retry-ledger.d.ts +0 -37
  306. package/dist/composition/plan.d.ts +0 -121
  307. package/dist/composition/product-card.d.ts +0 -94
  308. package/dist/composition/reflux.d.ts +0 -28
  309. package/dist/composition/supply-chain-emit.d.ts +0 -46
  310. package/dist/config/config-audit.spec.d.ts +0 -1
  311. package/dist/config/config-audit.spec.js +0 -1
  312. package/dist/config/config-warnings.d.ts +0 -2
  313. package/dist/config/index.d.ts +0 -4
  314. package/dist/config/judgment.spec.d.ts +0 -1
  315. package/dist/config/judgment.spec.js +0 -1
  316. package/dist/config/match-policy-file.d.ts +0 -34
  317. package/dist/config/match-policy-file.spec.d.ts +0 -1
  318. package/dist/config/match-policy-file.spec.js +0 -1
  319. package/dist/config/rule-engine.spec.d.ts +0 -1
  320. package/dist/config/rule-engine.spec.js +0 -1
  321. package/dist/config/runtime.d.ts +0 -29
  322. package/dist/config/store-policy.d.ts +0 -14
  323. package/dist/config/store-policy.spec.d.ts +0 -1
  324. package/dist/config/store-policy.spec.js +0 -1
  325. package/dist/config/template-params.d.ts +0 -42
  326. package/dist/config/template-params.spec.d.ts +0 -1
  327. package/dist/config/template-params.spec.js +0 -1
  328. package/dist/customer/account-events.d.ts +0 -32
  329. package/dist/data/api/api.spec.d.ts +0 -1
  330. package/dist/data/api/api.spec.js +0 -1
  331. package/dist/data/api/cli.d.ts +0 -1
  332. package/dist/data/api/head.d.ts +0 -16
  333. package/dist/data/api/head.spec.d.ts +0 -1
  334. package/dist/data/api/head.spec.js +0 -1
  335. package/dist/data/api/index.d.ts +0 -2
  336. package/dist/data/api/match.d.ts +0 -69
  337. package/dist/data/api/match.spec.d.ts +0 -1
  338. package/dist/data/api/match.spec.js +0 -1
  339. package/dist/data/api/server.d.ts +0 -13
  340. package/dist/data/projection/cli.d.ts +0 -1
  341. package/dist/data/projection/edges.d.ts +0 -8
  342. package/dist/data/projection/edges.spec.d.ts +0 -1
  343. package/dist/data/projection/edges.spec.js +0 -1
  344. package/dist/data/projection/facets.d.ts +0 -18
  345. package/dist/data/projection/facets.spec.d.ts +0 -1
  346. package/dist/data/projection/facets.spec.js +0 -1
  347. package/dist/data/projection/facts.d.ts +0 -40
  348. package/dist/data/projection/index.d.ts +0 -6
  349. package/dist/data/projection/project.d.ts +0 -10
  350. package/dist/data/projection/projection.spec.d.ts +0 -1
  351. package/dist/data/projection/projection.spec.js +0 -1
  352. package/dist/data/projection/schema.d.ts +0 -1
  353. package/dist/data/projection/store.d.ts +0 -51
  354. package/dist/data/projection/types.d.ts +0 -169
  355. package/dist/data/sync/cdc.d.ts +0 -33
  356. package/dist/data/sync/cdc.spec.d.ts +0 -1
  357. package/dist/data/sync/cdc.spec.js +0 -1
  358. package/dist/data/sync/graphql-source.d.ts +0 -16
  359. package/dist/data/sync/index.d.ts +0 -5
  360. package/dist/data/sync/reconciler.d.ts +0 -14
  361. package/dist/data/sync/reconciler.spec.d.ts +0 -1
  362. package/dist/data/sync/reconciler.spec.js +0 -1
  363. package/dist/data/sync/schema.d.ts +0 -1
  364. package/dist/data/sync/store.d.ts +0 -24
  365. package/dist/data/sync/sync.spec.d.ts +0 -1
  366. package/dist/data/sync/sync.spec.js +0 -1
  367. package/dist/data/sync/synchronizer.d.ts +0 -10
  368. package/dist/data/sync/types.d.ts +0 -164
  369. package/dist/evaluation/acceptance.d.ts +0 -33
  370. package/dist/evaluation/architecture.spec.d.ts +0 -1
  371. package/dist/evaluation/architecture.spec.js +0 -1
  372. package/dist/evaluation/builtins/arbitration-score.d.ts +0 -42
  373. package/dist/evaluation/builtins/demand-match.d.ts +0 -16
  374. package/dist/evaluation/builtins/graph-service.spec.d.ts +0 -1
  375. package/dist/evaluation/builtins/graph-service.spec.js +0 -1
  376. package/dist/evaluation/builtins/index.d.ts +0 -4
  377. package/dist/evaluation/builtins/purity.spec.d.ts +0 -1
  378. package/dist/evaluation/builtins/purity.spec.js +0 -1
  379. package/dist/evaluation/composer.d.ts +0 -38
  380. package/dist/evaluation/facets/catalog.d.ts +0 -19
  381. package/dist/evaluation/gap.d.ts +0 -2
  382. package/dist/evaluation/guard-scan.d.ts +0 -10
  383. package/dist/evaluation/index.d.ts +0 -14
  384. package/dist/evaluation/injection.d.ts +0 -6
  385. package/dist/evaluation/location-match.d.ts +0 -42
  386. package/dist/evaluation/match-operation.d.ts +0 -23
  387. package/dist/evaluation/match-policy-resolver.d.ts +0 -9
  388. package/dist/evaluation/match-policy.spec.d.ts +0 -1
  389. package/dist/evaluation/match-policy.spec.js +0 -1
  390. package/dist/evaluation/path-reasoning.d.ts +0 -37
  391. package/dist/evaluation/standards.d.ts +0 -11
  392. package/dist/evaluation/standards.spec.d.ts +0 -1
  393. package/dist/evaluation/standards.spec.js +0 -1
  394. package/dist/evaluation/structured-lines.d.ts +0 -8
  395. package/dist/evaluation/user-injection.d.ts +0 -6
  396. package/dist/experience/experience-reuse.d.ts +0 -10
  397. package/dist/experience/index.d.ts +0 -7
  398. package/dist/experience/persistence-config.d.ts +0 -6
  399. package/dist/experience/persistence.d.ts +0 -21
  400. package/dist/experience/realtime-feedback.d.ts +0 -5
  401. package/dist/experience/user-profile.d.ts +0 -25
  402. package/dist/extensions/capability.d.ts +0 -91
  403. package/dist/extensions/industry-audit.spec.d.ts +0 -1
  404. package/dist/extensions/industry-audit.spec.js +0 -1
  405. package/dist/goal/GoalClassifier.d.ts +0 -17
  406. package/dist/goal/GoalEngine.d.ts +0 -175
  407. package/dist/goal/GoalStore.d.ts +0 -27
  408. package/dist/goal/next-steps.d.ts +0 -12
  409. package/dist/goal/plan-approval.d.ts +0 -5
  410. package/dist/goal/pursue.d.ts +0 -18
  411. package/dist/graph/base.d.ts +0 -8
  412. package/dist/graph/onchain/analyze.d.ts +0 -59
  413. package/dist/graph/onchain/analyze.spec.d.ts +0 -1
  414. package/dist/graph/onchain/analyze.spec.js +0 -1
  415. package/dist/graph/onchain/anti-cheat.d.ts +0 -69
  416. package/dist/graph/onchain/anti-cheat.spec.d.ts +0 -1
  417. package/dist/graph/onchain/anti-cheat.spec.js +0 -1
  418. package/dist/graph/onchain/dataplane.d.ts +0 -44
  419. package/dist/graph/onchain/edge-batch.spec.d.ts +0 -1
  420. package/dist/graph/onchain/edge-batch.spec.js +0 -1
  421. package/dist/graph/onchain/edge-schema.d.ts +0 -69
  422. package/dist/graph/onchain/entity-profile.spec.d.ts +0 -1
  423. package/dist/graph/onchain/entity-profile.spec.js +0 -1
  424. package/dist/graph/onchain/event-history.spec.d.ts +0 -1
  425. package/dist/graph/onchain/event-history.spec.js +0 -1
  426. package/dist/graph/onchain/expand.d.ts +0 -4
  427. package/dist/graph/onchain/exploration.d.ts +0 -28
  428. package/dist/graph/onchain/exploration.spec.d.ts +0 -1
  429. package/dist/graph/onchain/exploration.spec.js +0 -1
  430. package/dist/graph/onchain/exposure.d.ts +0 -18
  431. package/dist/graph/onchain/exposure.spec.d.ts +0 -1
  432. package/dist/graph/onchain/exposure.spec.js +0 -1
  433. package/dist/graph/onchain/extract-deep.spec.d.ts +0 -1
  434. package/dist/graph/onchain/extract-deep.spec.js +0 -1
  435. package/dist/graph/onchain/extract.d.ts +0 -29
  436. package/dist/graph/onchain/facet-projection.d.ts +0 -99
  437. package/dist/graph/onchain/facet-projection.spec.d.ts +0 -1
  438. package/dist/graph/onchain/facet-projection.spec.js +0 -1
  439. package/dist/graph/onchain/facts.spec.d.ts +0 -1
  440. package/dist/graph/onchain/facts.spec.js +0 -1
  441. package/dist/graph/onchain/field-manifest.d.ts +0 -29
  442. package/dist/graph/onchain/field-manifest.spec.d.ts +0 -1
  443. package/dist/graph/onchain/field-manifest.spec.js +0 -1
  444. package/dist/graph/onchain/fixtures.d.ts +0 -80
  445. package/dist/graph/onchain/fixtures.spec.d.ts +0 -1
  446. package/dist/graph/onchain/fixtures.spec.js +0 -1
  447. package/dist/graph/onchain/graph-policy.spec.d.ts +0 -1
  448. package/dist/graph/onchain/graph-policy.spec.js +0 -1
  449. package/dist/graph/onchain/index.d.ts +0 -29
  450. package/dist/graph/onchain/interest.d.ts +0 -10
  451. package/dist/graph/onchain/interest.spec.d.ts +0 -1
  452. package/dist/graph/onchain/interest.spec.js +0 -1
  453. package/dist/graph/onchain/label-lint.spec.d.ts +0 -1
  454. package/dist/graph/onchain/label-lint.spec.js +0 -1
  455. package/dist/graph/onchain/names.d.ts +0 -23
  456. package/dist/graph/onchain/names.spec.d.ts +0 -1
  457. package/dist/graph/onchain/names.spec.js +0 -1
  458. package/dist/graph/onchain/object-held-receipts.d.ts +0 -20
  459. package/dist/graph/onchain/object-held-receipts.spec.d.ts +0 -1
  460. package/dist/graph/onchain/object-held-receipts.spec.js +0 -1
  461. package/dist/graph/onchain/onchain.spec.d.ts +0 -1
  462. package/dist/graph/onchain/onchain.spec.js +0 -1
  463. package/dist/graph/onchain/policy.d.ts +0 -8
  464. package/dist/graph/onchain/project-relationship.d.ts +0 -3
  465. package/dist/graph/onchain/proposal-graph.d.ts +0 -11
  466. package/dist/graph/onchain/proposal-graph.spec.d.ts +0 -1
  467. package/dist/graph/onchain/proposal-graph.spec.js +0 -1
  468. package/dist/graph/onchain/sdk-batch.d.ts +0 -129
  469. package/dist/graph/onchain/sdk-dataplane.d.ts +0 -44
  470. package/dist/graph/onchain/strategy.spec.d.ts +0 -1
  471. package/dist/graph/onchain/strategy.spec.js +0 -1
  472. package/dist/graph/onchain/synthesis.d.ts +0 -20
  473. package/dist/graph/onchain/synthesis.spec.d.ts +0 -1
  474. package/dist/graph/onchain/synthesis.spec.js +0 -1
  475. package/dist/graph/onchain/table-ledger.spec.d.ts +0 -1
  476. package/dist/graph/onchain/table-ledger.spec.js +0 -1
  477. package/dist/graph/onchain/viewport.d.ts +0 -6
  478. package/dist/harness/auto-escalation.d.ts +0 -15
  479. package/dist/intent/enrich.d.ts +0 -1
  480. package/dist/intent/index.d.ts +0 -23
  481. package/dist/intent/matcher.d.ts +0 -2
  482. package/dist/intent/store.d.ts +0 -19
  483. package/dist/intent/types.d.ts +0 -32
  484. package/dist/keeper/KeeperScan.d.ts +0 -41
  485. package/dist/keeper/KeeperStore.d.ts +0 -43
  486. package/dist/keeper/detectors.d.ts +0 -42
  487. package/dist/keeper/keeper.spec.d.ts +0 -1
  488. package/dist/keeper/keeper.spec.js +0 -1
  489. package/dist/keeper/types.d.ts +0 -67
  490. package/dist/knowledge/account-marks.d.ts +0 -36
  491. package/dist/knowledge/allocation-ledger.d.ts +0 -75
  492. package/dist/knowledge/allocation-puzzle.d.ts +0 -138
  493. package/dist/knowledge/allocation-risk.d.ts +0 -82
  494. package/dist/knowledge/allocation-templates.d.ts +0 -38
  495. package/dist/knowledge/allocator-rail-verifier.d.ts +0 -59
  496. package/dist/knowledge/anti-cheat.d.ts +0 -2
  497. package/dist/knowledge/arb-fund-facts.d.ts +0 -51
  498. package/dist/knowledge/arb-risk.d.ts +0 -39
  499. package/dist/knowledge/arbitration-puzzle.d.ts +0 -84
  500. package/dist/knowledge/arbitration-rail-verifier.d.ts +0 -35
  501. package/dist/knowledge/arbitration-risk.d.ts +0 -114
  502. package/dist/knowledge/arbitration-templates.d.ts +0 -39
  503. package/dist/knowledge/arbitration-venue-order.d.ts +0 -25
  504. package/dist/knowledge/baselines/guard-lint-baseline.spec.d.ts +0 -1
  505. package/dist/knowledge/baselines/guard-lint-baseline.spec.js +0 -1
  506. package/dist/knowledge/baselines/risk-baselines.spec.d.ts +0 -1
  507. package/dist/knowledge/baselines/risk-baselines.spec.js +0 -1
  508. package/dist/knowledge/baselines/risk-cases.d.ts +0 -8
  509. package/dist/knowledge/baselines/semantic-facts.d.ts +0 -12
  510. package/dist/knowledge/bridge-risk.d.ts +0 -36
  511. package/dist/knowledge/catalog-facts.d.ts +0 -4
  512. package/dist/knowledge/chain-query-registry.d.ts +0 -14
  513. package/dist/knowledge/commission-landing.d.ts +0 -26
  514. package/dist/knowledge/component-schema.d.ts +0 -64
  515. package/dist/knowledge/contact-risk.d.ts +0 -32
  516. package/dist/knowledge/contact-templates.d.ts +0 -26
  517. package/dist/knowledge/contract-invariants.d.ts +0 -54
  518. package/dist/knowledge/demand-risk.d.ts +0 -30
  519. package/dist/knowledge/discount-threshold.d.ts +0 -26
  520. package/dist/knowledge/dynamic-pricing.d.ts +0 -29
  521. package/dist/knowledge/entity-recipient-guard.d.ts +0 -21
  522. package/dist/knowledge/event-semantics.d.ts +0 -23
  523. package/dist/knowledge/evidence-review.d.ts +0 -35
  524. package/dist/knowledge/fee-param-bindings.d.ts +0 -28
  525. package/dist/knowledge/flywheel-loop.d.ts +0 -41
  526. package/dist/knowledge/game-scenarios.d.ts +0 -21
  527. package/dist/knowledge/getting-started.d.ts +0 -37
  528. package/dist/knowledge/goal-completion.d.ts +0 -31
  529. package/dist/knowledge/guard-anchor-reach.d.ts +0 -19
  530. package/dist/knowledge/guard-binding-table.d.ts +0 -52
  531. package/dist/knowledge/guard-binding-verifier.d.ts +0 -37
  532. package/dist/knowledge/guard-bindings.d.ts +0 -21
  533. package/dist/knowledge/guard-blueprint.d.ts +0 -68
  534. package/dist/knowledge/guard-design-patterns.d.ts +0 -38
  535. package/dist/knowledge/guard-eval.d.ts +0 -15
  536. package/dist/knowledge/guard-field-cognition.d.ts +0 -48
  537. package/dist/knowledge/guard-host-context.d.ts +0 -24
  538. package/dist/knowledge/guard-ledger.d.ts +0 -19
  539. package/dist/knowledge/guard-leg-map.d.ts +0 -5
  540. package/dist/knowledge/guard-lint.d.ts +0 -79
  541. package/dist/knowledge/guard-node-gates.d.ts +0 -9
  542. package/dist/knowledge/guard-puzzle.d.ts +0 -188
  543. package/dist/knowledge/guard-render.d.ts +0 -71
  544. package/dist/knowledge/guard-risk.d.ts +0 -71
  545. package/dist/knowledge/guard-submission-brief.d.ts +0 -94
  546. package/dist/knowledge/guard-submission-prompt.d.ts +0 -63
  547. package/dist/knowledge/guard-translation.d.ts +0 -58
  548. package/dist/knowledge/index.d.ts +0 -299
  549. package/dist/knowledge/industry-evolution.d.ts +0 -82
  550. package/dist/knowledge/industry-generalizer.d.ts +0 -63
  551. package/dist/knowledge/industry-rule-node.d.ts +0 -7
  552. package/dist/knowledge/industry-strategy.d.ts +0 -91
  553. package/dist/knowledge/intent-metrics.d.ts +0 -43
  554. package/dist/knowledge/jsonrpc-enum.d.ts +0 -102
  555. package/dist/knowledge/knob-docs.d.ts +0 -5
  556. package/dist/knowledge/machine-fork-watch.d.ts +0 -9
  557. package/dist/knowledge/machine-ledger.d.ts +0 -42
  558. package/dist/knowledge/machine-puzzle.d.ts +0 -206
  559. package/dist/knowledge/machine-risk.d.ts +0 -72
  560. package/dist/knowledge/machine-templates.d.ts +0 -92
  561. package/dist/knowledge/machine-topology.d.ts +0 -116
  562. package/dist/knowledge/machine-translation.d.ts +0 -96
  563. package/dist/knowledge/market-metrics.d.ts +0 -34
  564. package/dist/knowledge/market-operations.d.ts +0 -46
  565. package/dist/knowledge/migration-preflight.d.ts +0 -27
  566. package/dist/knowledge/object-dependency.d.ts +0 -31
  567. package/dist/knowledge/operation-dictionary.d.ts +0 -18
  568. package/dist/knowledge/order-ledger.d.ts +0 -69
  569. package/dist/knowledge/order-puzzle.d.ts +0 -162
  570. package/dist/knowledge/order-risk.d.ts +0 -62
  571. package/dist/knowledge/order-templates.d.ts +0 -50
  572. package/dist/knowledge/param-schema.d.ts +0 -93
  573. package/dist/knowledge/param-tiers.d.ts +0 -27
  574. package/dist/knowledge/passport-ledger.d.ts +0 -60
  575. package/dist/knowledge/passport-templates.d.ts +0 -40
  576. package/dist/knowledge/path-oracle/coverage.d.ts +0 -16
  577. package/dist/knowledge/path-oracle/index.d.ts +0 -5
  578. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +0 -2
  579. package/dist/knowledge/path-oracle/schema.d.ts +0 -188
  580. package/dist/knowledge/pattern-resolutions.d.ts +0 -110
  581. package/dist/knowledge/payment-risk.d.ts +0 -38
  582. package/dist/knowledge/payment-tracker.d.ts +0 -63
  583. package/dist/knowledge/permission-ledger.d.ts +0 -49
  584. package/dist/knowledge/permission-puzzle.d.ts +0 -122
  585. package/dist/knowledge/permission-risk.d.ts +0 -70
  586. package/dist/knowledge/permission-templates.d.ts +0 -38
  587. package/dist/knowledge/personal-risk.d.ts +0 -36
  588. package/dist/knowledge/product-detail-source.d.ts +0 -37
  589. package/dist/knowledge/product-doc-b5.d.ts +0 -16
  590. package/dist/knowledge/progress-ledger.d.ts +0 -63
  591. package/dist/knowledge/progress-puzzle.d.ts +0 -82
  592. package/dist/knowledge/progress-risk.d.ts +0 -75
  593. package/dist/knowledge/progress-templates.d.ts +0 -38
  594. package/dist/knowledge/projection.d.ts +0 -54
  595. package/dist/knowledge/projection.spec.d.ts +0 -1
  596. package/dist/knowledge/projection.spec.js +0 -1
  597. package/dist/knowledge/proof-risk.d.ts +0 -33
  598. package/dist/knowledge/protocol-facts.d.ts +0 -17
  599. package/dist/knowledge/publish-gate.d.ts +0 -20
  600. package/dist/knowledge/publish-readiness.d.ts +0 -25
  601. package/dist/knowledge/publish-surface-contract.d.ts +0 -16
  602. package/dist/knowledge/puzzle-projections.d.ts +0 -11
  603. package/dist/knowledge/rail-exit-satisfiability.d.ts +0 -25
  604. package/dist/knowledge/registrar-risk.d.ts +0 -34
  605. package/dist/knowledge/release-sentinel.d.ts +0 -12
  606. package/dist/knowledge/repository-risk.d.ts +0 -46
  607. package/dist/knowledge/repository-write-semantics.d.ts +0 -27
  608. package/dist/knowledge/reputation-rules.d.ts +0 -36
  609. package/dist/knowledge/requirement-families.d.ts +0 -13
  610. package/dist/knowledge/resource-risk.d.ts +0 -32
  611. package/dist/knowledge/reward-ledger.d.ts +0 -97
  612. package/dist/knowledge/reward-puzzle.d.ts +0 -98
  613. package/dist/knowledge/reward-risk.d.ts +0 -86
  614. package/dist/knowledge/reward-templates.d.ts +0 -25
  615. package/dist/knowledge/rule-node-analyzers.d.ts +0 -49
  616. package/dist/knowledge/rule-outcome.d.ts +0 -5
  617. package/dist/knowledge/scenario-topology.d.ts +0 -48
  618. package/dist/knowledge/semantic-ir.d.ts +0 -136
  619. package/dist/knowledge/service-allocation-semantics.d.ts +0 -36
  620. package/dist/knowledge/service-allocator-audit-node.d.ts +0 -3
  621. package/dist/knowledge/service-ledger.d.ts +0 -87
  622. package/dist/knowledge/service-puzzle.d.ts +0 -158
  623. package/dist/knowledge/service-risk-node.d.ts +0 -3
  624. package/dist/knowledge/service-risk.d.ts +0 -110
  625. package/dist/knowledge/service-templates.d.ts +0 -41
  626. package/dist/knowledge/settlement-semantics.d.ts +0 -1
  627. package/dist/knowledge/strategy-manuals.d.ts +0 -15
  628. package/dist/knowledge/supply-chain.d.ts +0 -35
  629. package/dist/knowledge/template-index.d.ts +0 -19
  630. package/dist/knowledge/template-loader.d.ts +0 -425
  631. package/dist/knowledge/template-nav.d.ts +0 -9
  632. package/dist/knowledge/template-prose.d.ts +0 -50
  633. package/dist/knowledge/template-registry.d.ts +0 -48
  634. package/dist/knowledge/template-scanner.d.ts +0 -158
  635. package/dist/knowledge/template-test-profiles.d.ts +0 -17
  636. package/dist/knowledge/template-validation.d.ts +0 -3
  637. package/dist/knowledge/tools-reference.d.ts +0 -17
  638. package/dist/knowledge/treasury-ledger.d.ts +0 -42
  639. package/dist/knowledge/treasury-puzzle.d.ts +0 -163
  640. package/dist/knowledge/treasury-risk.d.ts +0 -88
  641. package/dist/knowledge/treasury-templates.d.ts +0 -38
  642. package/dist/knowledge/universal-template.d.ts +0 -22
  643. package/dist/knowledge/util-risk.d.ts +0 -30
  644. package/dist/knowledge/workflow-guidance.d.ts +0 -194
  645. package/dist/knowledge/workspace-lists.d.ts +0 -61
  646. package/dist/monitor/SuggestionBridge.spec.d.ts +0 -1
  647. package/dist/monitor/SuggestionBridge.spec.js +0 -1
  648. package/dist/participation/arbitrator-interest.d.ts +0 -22
  649. package/dist/participation/demander-interest.d.ts +0 -23
  650. package/dist/participation/employee-kpi.d.ts +0 -37
  651. package/dist/participation/employee-kpi.spec.d.ts +0 -1
  652. package/dist/participation/employee-kpi.spec.js +0 -1
  653. package/dist/participation/employee-store.d.ts +0 -16
  654. package/dist/participation/game-context.d.ts +0 -25
  655. package/dist/participation/index.d.ts +0 -2
  656. package/dist/participation/node-action-advisor.d.ts +0 -68
  657. package/dist/participation/time-window.d.ts +0 -48
  658. package/dist/persona/facet-profile.d.ts +0 -33
  659. package/dist/persona/persona-audit.spec.d.ts +0 -1
  660. package/dist/persona/persona-audit.spec.js +0 -1
  661. package/dist/playbooks/service-build/business-puzzle.d.ts +0 -48
  662. package/dist/playbooks/service-build/context-assembly.d.ts +0 -32
  663. package/dist/playbooks/service-build/facet-money.d.ts +0 -33
  664. package/dist/playbooks/service-build/facet-money.spec.d.ts +0 -1
  665. package/dist/playbooks/service-build/facet-money.spec.js +0 -1
  666. package/dist/playbooks/service-build/game-theory.d.ts +0 -47
  667. package/dist/playbooks/service-build/index.d.ts +0 -15
  668. package/dist/playbooks/service-build/intent-analyzer.d.ts +0 -72
  669. package/dist/playbooks/service-build/machine-nodes.d.ts +0 -27
  670. package/dist/playbooks/service-build/machine-panorama.d.ts +0 -71
  671. package/dist/playbooks/service-build/merchant-guide.d.ts +0 -382
  672. package/dist/playbooks/service-build/migration-planner.d.ts +0 -61
  673. package/dist/playbooks/service-build/mode-actions.d.ts +0 -260
  674. package/dist/playbooks/service-build/object-panorama.d.ts +0 -317
  675. package/dist/playbooks/service-build/object-type.d.ts +0 -1
  676. package/dist/playbooks/service-build/participation-radar.d.ts +0 -20
  677. package/dist/playbooks/service-build/pipeline-actions.d.ts +0 -108
  678. package/dist/playbooks/service-build/process.d.ts +0 -6
  679. package/dist/playbooks/service-build/relationship-profile.d.ts +0 -3
  680. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.d.ts +0 -1
  681. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +0 -1
  682. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.d.ts +0 -1
  683. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.js +0 -1
  684. package/dist/playbooks/service-build/reverse-mapping.d.ts +0 -66
  685. package/dist/playbooks/service-build/risk-aggregator.d.ts +0 -59
  686. package/dist/playbooks/service-build/service-panorama.d.ts +0 -229
  687. package/dist/playbooks/service-build/service-quote.d.ts +0 -2
  688. package/dist/playbooks/service-build/service-quote.spec.d.ts +0 -1
  689. package/dist/playbooks/service-build/service-quote.spec.js +0 -1
  690. package/dist/playbooks/service-build/topology-evaluation.spec.d.ts +0 -1
  691. package/dist/playbooks/service-build/topology-evaluation.spec.js +0 -1
  692. package/dist/playbooks/service-build/topology-query.d.ts +0 -25
  693. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +0 -33
  694. package/dist/relationship/derivation.d.ts +0 -95
  695. package/dist/relationship/derivation.spec.d.ts +0 -1
  696. package/dist/relationship/derivation.spec.js +0 -1
  697. package/dist/relationship/incentive.d.ts +0 -38
  698. package/dist/relationship/index.d.ts +0 -4
  699. package/dist/relationship/registry.d.ts +0 -13
  700. package/dist/relationship/types.d.ts +0 -45
  701. package/dist/review/arb.d.ts +0 -4
  702. package/dist/review/demand.d.ts +0 -3
  703. package/dist/review/index.d.ts +0 -3
  704. package/dist/review/machine.d.ts +0 -3
  705. package/dist/review/order.d.ts +0 -8
  706. package/dist/review/progress.d.ts +0 -3
  707. package/dist/review/repository.d.ts +0 -3
  708. package/dist/review/service.d.ts +0 -5
  709. package/dist/review/types.d.ts +0 -163
  710. package/dist/role/derivation.d.ts +0 -35
  711. package/dist/role/index.d.ts +0 -6
  712. package/dist/role/intent.d.ts +0 -23
  713. package/dist/role/model.d.ts +0 -9
  714. package/dist/role/profiles.d.ts +0 -26
  715. package/dist/role/resolution.d.ts +0 -27
  716. package/dist/runtime/instance-registry.d.ts +0 -14
  717. package/dist/safety/index.d.ts +0 -3
  718. package/dist/schema/call/permission-handler.d.ts +0 -5
  719. package/dist/schema/call/semantic-customer-advice.spec.d.ts +0 -1
  720. package/dist/schema/call/semantic-customer-advice.spec.js +0 -1
  721. package/dist/schema/common/tokentype-short-probe.spec.d.ts +0 -1
  722. package/dist/schema/common/tokentype-short-probe.spec.js +0 -1
  723. package/dist/schema/envelope-unify.d.ts +0 -5
  724. package/dist/schema/goal/planning.d.ts +0 -742
  725. package/dist/schema/industry-pack/modes.d.ts +0 -447
  726. package/dist/schema/query/bi.d.ts +0 -3369
  727. package/dist/schema/utils/guard-query-utils.d.ts +0 -18
  728. package/dist/schema/utils/permission-index-utils.d.ts +0 -2
  729. package/dist/schema/utils/skills-recommendation.d.ts +0 -2
  730. package/dist/schema-query-impl/index.d.ts +0 -83
  731. package/dist/schemas/account_operation.output.json +0 -3869
  732. package/dist/schemas/ask_user.output.json +0 -54
  733. package/dist/schemas/benchmark_migration_operation.output.json +0 -1669
  734. package/dist/schemas/bridge_operation.output.json +0 -1548
  735. package/dist/schemas/config_operation.output.json +0 -896
  736. package/dist/schemas/employee_operation.output.json +0 -307
  737. package/dist/schemas/evaluation_operation.output.json +0 -4716
  738. package/dist/schemas/guard2file.output.json +0 -83
  739. package/dist/schemas/industry_pack_operation.output.json +0 -2985
  740. package/dist/schemas/intent_radar.output.json +0 -326
  741. package/dist/schemas/keeper_operation.output.json +0 -1441
  742. package/dist/schemas/local_cache_operation.output.json +0 -1718
  743. package/dist/schemas/local_history_operation.output.json +0 -1644
  744. package/dist/schemas/local_info_operation.output.json +0 -1530
  745. package/dist/schemas/local_mark_operation.output.json +0 -1622
  746. package/dist/schemas/machineNode2file.output.json +0 -88
  747. package/dist/schemas/messenger_operation.output.json +0 -4692
  748. package/dist/schemas/monitor_events.output.json +0 -1602
  749. package/dist/schemas/monitor_subscription.output.json +0 -1629
  750. package/dist/schemas/onchain_events.output.json +0 -4053
  751. package/dist/schemas/onchain_operations.output.json +0 -7788
  752. package/dist/schemas/onchain_table_data.output.json +0 -11868
  753. package/dist/schemas/permission_operation.output.json +0 -205
  754. package/dist/schemas/persona_operation.output.json +0 -64612
  755. package/dist/schemas/query_toolkit.output.json +0 -28302
  756. package/dist/schemas/schema_query.output.json +0 -81
  757. package/dist/schemas/service_clone_operation.output.json +0 -247
  758. package/dist/schemas/strategy_review_operation.output.json +0 -532
  759. package/dist/schemas/watch_operation.output.json +0 -930
  760. package/dist/schemas/wip_file.output.json +0 -360
  761. package/dist/schemas/workflow_operation.output.json +0 -422
  762. package/dist/schemas/workspace_operation.output.json +0 -477
  763. package/dist/schemas/wowok_buildin_info.output.json +0 -2477
  764. package/dist/strategy/collectors.d.ts +0 -66
  765. package/dist/strategy/collectors.spec.d.ts +0 -1
  766. package/dist/strategy/collectors.spec.js +0 -1
  767. package/dist/strategy/index.d.ts +0 -5
  768. package/dist/strategy/metrics.d.ts +0 -20
  769. package/dist/strategy/review.d.ts +0 -48
  770. package/dist/strategy/scorecard.d.ts +0 -32
  771. package/dist/strategy/store.d.ts +0 -26
  772. package/dist/task/ProcessStore.d.ts +0 -98
  773. package/dist/task/playbook.d.ts +0 -11
  774. package/dist/task/substep-trace.d.ts +0 -91
  775. package/dist/tools/build-fingerprint.d.ts +0 -28
  776. package/dist/tools/error-catalog.d.ts +0 -17
  777. package/dist/tools/handlers/ask-user.d.ts +0 -3
  778. package/dist/tools/handlers/benchmark-migration.d.ts +0 -121
  779. package/dist/tools/handlers/bridge.d.ts +0 -8
  780. package/dist/tools/handlers/config.d.ts +0 -2
  781. package/dist/tools/handlers/dispatch-expectations.d.ts +0 -2
  782. package/dist/tools/handlers/dispatch-expectations.spec.d.ts +0 -1
  783. package/dist/tools/handlers/dispatch-expectations.spec.js +0 -1
  784. package/dist/tools/handlers/employee.d.ts +0 -8
  785. package/dist/tools/handlers/employee.spec.d.ts +0 -1
  786. package/dist/tools/handlers/employee.spec.js +0 -1
  787. package/dist/tools/handlers/entry-edge-recipe.d.ts +0 -101
  788. package/dist/tools/handlers/escrow-deficit.d.ts +0 -10
  789. package/dist/tools/handlers/evaluation.d.ts +0 -2
  790. package/dist/tools/handlers/evaluation.spec.d.ts +0 -1
  791. package/dist/tools/handlers/evaluation.spec.js +0 -1
  792. package/dist/tools/handlers/file-export.d.ts +0 -3
  793. package/dist/tools/handlers/fund-rail-recipe.d.ts +0 -10
  794. package/dist/tools/handlers/goal.d.ts +0 -4
  795. package/dist/tools/handlers/industry-pack.d.ts +0 -3
  796. package/dist/tools/handlers/intent-radar.d.ts +0 -2
  797. package/dist/tools/handlers/keeper.d.ts +0 -12
  798. package/dist/tools/handlers/local.d.ts +0 -6
  799. package/dist/tools/handlers/mark-namespace.d.ts +0 -30
  800. package/dist/tools/handlers/messenger.d.ts +0 -24
  801. package/dist/tools/handlers/monitor.d.ts +0 -26
  802. package/dist/tools/handlers/name-resolution.d.ts +0 -4
  803. package/dist/tools/handlers/name-resolution.spec.d.ts +0 -1
  804. package/dist/tools/handlers/name-resolution.spec.js +0 -1
  805. package/dist/tools/handlers/network.d.ts +0 -1
  806. package/dist/tools/handlers/onchain-name-registration.d.ts +0 -49
  807. package/dist/tools/handlers/onchain-name-registration.spec.d.ts +0 -1
  808. package/dist/tools/handlers/onchain-name-registration.spec.js +0 -1
  809. package/dist/tools/handlers/onchain.d.ts +0 -132
  810. package/dist/tools/handlers/permission.d.ts +0 -2
  811. package/dist/tools/handlers/persona.d.ts +0 -4
  812. package/dist/tools/handlers/publish-binding-echo.d.ts +0 -22
  813. package/dist/tools/handlers/review-chain.d.ts +0 -19
  814. package/dist/tools/handlers/schema-query.d.ts +0 -2
  815. package/dist/tools/handlers/service-clone.d.ts +0 -20
  816. package/dist/tools/handlers/stale-build-check.d.ts +0 -9
  817. package/dist/tools/handlers/strategy-review.d.ts +0 -2
  818. package/dist/tools/handlers/submission-assembly.d.ts +0 -55
  819. package/dist/tools/handlers/watch.d.ts +0 -2
  820. package/dist/tools/handlers/winner-derivation.d.ts +0 -20
  821. package/dist/tools/handlers/wip-upload.d.ts +0 -22
  822. package/dist/tools/handlers/wip.d.ts +0 -2
  823. package/dist/tools/handlers/workflow.d.ts +0 -2
  824. package/dist/tools/handlers/workspace.d.ts +0 -4
  825. package/dist/tools/move-fn-index.gen.d.ts +0 -3
  826. package/dist/tools/publish-gate-state.d.ts +0 -5
  827. package/dist/tools/registry/agent.d.ts +0 -2
  828. package/dist/tools/registry/bridge.d.ts +0 -2
  829. package/dist/tools/registry/business.d.ts +0 -2
  830. package/dist/tools/registry/config.d.ts +0 -2
  831. package/dist/tools/registry/evaluation.d.ts +0 -2
  832. package/dist/tools/registry/files.d.ts +0 -2
  833. package/dist/tools/registry/identity.d.ts +0 -2
  834. package/dist/tools/registry/interaction.d.ts +0 -2
  835. package/dist/tools/registry/local.d.ts +0 -2
  836. package/dist/tools/registry/messenger.d.ts +0 -2
  837. package/dist/tools/registry/monitor.d.ts +0 -2
  838. package/dist/tools/registry/onchain.d.ts +0 -2
  839. package/dist/tools/registry/query.d.ts +0 -2
  840. package/dist/tools/retry.d.ts +0 -8
  841. package/dist/tools/rules-hook.d.ts +0 -5
  842. package/dist/tools/runtime-health.d.ts +0 -10
  843. package/dist/tools/sanitize-description-roundtrip.spec.d.ts +0 -1
  844. package/dist/tools/sanitize-description-roundtrip.spec.js +0 -1
  845. package/dist/tools/sanitize-output.d.ts +0 -4
  846. package/dist/tools/sanitize-output.spec.d.ts +0 -1
  847. package/dist/tools/sanitize-output.spec.js +0 -1
  848. package/dist/tools/shared.d.ts +0 -20
  849. package/dist/tools/transport-integrity.d.ts +0 -7
  850. package/dist/tools/upgrade-check.d.ts +0 -75
  851. package/dist/tools/wip-deploy-assist.d.ts +0 -34
  852. package/dist/tools/wip-verify-ledger.d.ts +0 -16
  853. package/dist/tools/wrap.d.ts +0 -45
@@ -1,2068 +1 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://wowok.net/schemas/messenger_operation.json",
4
- "title": "Messenger Operations",
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",
16
- "type": "object",
17
- "properties": {
18
- "account": {
19
- "description": "Account to query conversations for - can be a string (name/address/mark name) or full object. If not specified, uses default account",
20
- "anyOf": [
21
- {
22
- "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"
23
- },
24
- {
25
- "type": "object",
26
- "properties": {
27
- "name_or_address": {
28
- "type": "string",
29
- "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)."
30
- },
31
- "local_mark_first": {
32
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
33
- "type": "boolean"
34
- }
35
- },
36
- "additionalProperties": false,
37
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
38
- }
39
- ]
40
- },
41
- "unreadOnly": {
42
- "description": "If true, only return conversations with unread messages (unreadCount > 0). Useful for quickly finding conversations needing attention",
43
- "type": "boolean"
44
- },
45
- "startTime": {
46
- "description": "Start timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt >= this value",
47
- "type": "number"
48
- },
49
- "endTime": {
50
- "description": "End timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt <= this value",
51
- "type": "number"
52
- },
53
- "previewMessageCount": {
54
- "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",
55
- "type": "number"
56
- },
57
- "sortBy": {
58
- "description": "Sort conversations by: 'lastMessageAt' = most recent activity first, 'unreadCount' = most unread messages first, 'messageCount' = most total messages first",
59
- "type": "string",
60
- "enum": [
61
- "lastMessageAt",
62
- "unreadCount",
63
- "messageCount"
64
- ]
65
- },
66
- "sortOrder": {
67
- "description": "Sort order: 'asc' = ascending (oldest/smallest first), 'desc' = descending (newest/largest first). Default is 'desc' for time-based sorting",
68
- "type": "string",
69
- "enum": [
70
- "asc",
71
- "desc"
72
- ]
73
- },
74
- "skipAutoMarkViewed": {
75
- "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",
76
- "type": "boolean"
77
- },
78
- "sync": {
79
- "description": "Sync mode (default true): true = block on one server pull per account before returning (freshest data, one-shot semantics); false = return local data immediately and trigger a background server pull whose results appear on later queries. Only set false when slightly stale data is acceptable",
80
- "type": "boolean"
81
- }
82
- },
83
- "additionalProperties": false
84
- }
85
- },
86
- "required": [
87
- "operation"
88
- ],
89
- "additionalProperties": false
90
- },
91
- {
92
- "type": "object",
93
- "properties": {
94
- "operation": {
95
- "type": "string",
96
- "const": "send_message"
97
- },
98
- "from": {
99
- "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
100
- "anyOf": [
101
- {
102
- "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"
103
- },
104
- {
105
- "type": "object",
106
- "properties": {
107
- "name_or_address": {
108
- "type": "string",
109
- "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)."
110
- },
111
- "local_mark_first": {
112
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
113
- "type": "boolean"
114
- }
115
- },
116
- "additionalProperties": false,
117
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
118
- }
119
- ]
120
- },
121
- "to": {
122
- "anyOf": [
123
- {
124
- "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"
125
- },
126
- {
127
- "type": "object",
128
- "properties": {
129
- "name_or_address": {
130
- "type": "string",
131
- "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)."
132
- },
133
- "local_mark_first": {
134
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
135
- "type": "boolean"
136
- }
137
- },
138
- "additionalProperties": false,
139
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
140
- }
141
- ],
142
- "description": "Recipient ACCOUNT address or account/mark name - can be a string (name/address) or full object. Messenger registers ACCOUNTS. A Contact object id IS accepted and auto-resolved on-chain to the messenger address stored inside it; any OTHER on-chain object address is rejected locally with the object type named ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."
143
- },
144
- "content": {
145
- "type": "string",
146
- "maxLength": 10240,
147
- "description": "Message content text (max 10240 bytes)"
148
- },
149
- "options": {
150
- "description": "Optional message settings",
151
- "type": "object",
152
- "properties": {
153
- "guardAddress": {
154
- "description": "Guard address. REQUIRED when sending Guard-verified messages",
155
- "type": "string"
156
- },
157
- "passportAddress": {
158
- "description": "Passport address. REQUIRED when sending Guard-verified messages",
159
- "type": "string"
160
- },
161
- "force": {
162
- "description": "Force send even if there are pending Guard messages",
163
- "type": "boolean"
164
- },
165
- "enable_messenger": {
166
- "description": "Auto-enable messenger for the sender account if not already enabled",
167
- "type": "boolean"
168
- },
169
- "network": {
170
- "description": "Target network. REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks. Guard verification is MAINNET-ONLY (no testnet)",
171
- "type": "string",
172
- "enum": [
173
- "localnet",
174
- "testnet",
175
- "mainnet"
176
- ]
177
- },
178
- "replyTo": {
179
- "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",
180
- "type": "object",
181
- "properties": {
182
- "messageId": {
183
- "type": "string",
184
- "description": "Replied-to message ID (unique within the conversation)"
185
- }
186
- },
187
- "required": [
188
- "messageId"
189
- ],
190
- "additionalProperties": false
191
- },
192
- "smart": {
193
- "description": "Smart send (default true): when the recipient's guard policy rejects a plain send, silently resend using a local Passport issued via one of their guards; when no usable Passport exists, returns a structured guard_authorization_required result (authRequired=true) instead of an error. Set false for strict legacy behavior. Guard verification runs on MAINNET only",
194
- "type": "boolean"
195
- },
196
- "authorize": {
197
- "description": "One-click guard authorization: when the recipient's guard policy rejects the send, create a fresh Passport via ALL of their guards in one gas-consuming transaction and resend automatically. Use after showing the user the guard_authorization_required card and getting consent. If a guard demands submission answers, the result returns authRequired with submissions for follow-up. The Passport tx is always on MAINNET (guard verification is mainnet-only)",
198
- "type": "boolean"
199
- }
200
- },
201
- "additionalProperties": false
202
- }
203
- },
204
- "required": [
205
- "operation",
206
- "to",
207
- "content"
208
- ],
209
- "additionalProperties": false
210
- },
211
- {
212
- "type": "object",
213
- "properties": {
214
- "operation": {
215
- "type": "string",
216
- "const": "send_file"
217
- },
218
- "from": {
219
- "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
220
- "anyOf": [
221
- {
222
- "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"
223
- },
224
- {
225
- "type": "object",
226
- "properties": {
227
- "name_or_address": {
228
- "type": "string",
229
- "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)."
230
- },
231
- "local_mark_first": {
232
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
233
- "type": "boolean"
234
- }
235
- },
236
- "additionalProperties": false,
237
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
238
- }
239
- ]
240
- },
241
- "to": {
242
- "anyOf": [
243
- {
244
- "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"
245
- },
246
- {
247
- "type": "object",
248
- "properties": {
249
- "name_or_address": {
250
- "type": "string",
251
- "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)."
252
- },
253
- "local_mark_first": {
254
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
255
- "type": "boolean"
256
- }
257
- },
258
- "additionalProperties": false,
259
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
260
- }
261
- ],
262
- "description": "Recipient ACCOUNT address or account/mark name - can be a string (name/address) or full object. Messenger registers ACCOUNTS. A Contact object id IS accepted and auto-resolved on-chain to the messenger address stored inside it; any OTHER on-chain object address is rejected locally with the object type named ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."
263
- },
264
- "filePath": {
265
- "type": "string",
266
- "description": "Local file path to send. Transported as an E2EE attachment envelope (zip container); the recipient restores the original file name/type via the encrypted manifest"
267
- },
268
- "options": {
269
- "description": "Optional file sending settings",
270
- "type": "object",
271
- "properties": {
272
- "fileName": {
273
- "description": "Custom file name",
274
- "type": "string"
275
- },
276
- "contentType": {
277
- "description": "Legacy server-visible classification hint (auto-inferred from extension: .wts/.wip, otherwise zip). Evidence types wts/wip always win over extension",
278
- "type": "string",
279
- "enum": [
280
- "wts",
281
- "wip",
282
- "zip"
283
- ]
284
- },
285
- "kind": {
286
- "description": "Attachment business type for the recipient's UI. Media kinds (image/video/audio/file) are auto-inferred from extension; set 'voice' explicitly for voice messages (webm cannot be distinguished from video automatically)",
287
- "type": "string",
288
- "enum": [
289
- "image",
290
- "video",
291
- "audio",
292
- "voice",
293
- "file",
294
- "wts",
295
- "wip"
296
- ]
297
- },
298
- "mimeType": {
299
- "description": "Explicit MIME type override (otherwise inferred from extension)",
300
- "type": "string"
301
- },
302
- "caption": {
303
- "description": "Caption text attached to the file. Stored inside the E2EE envelope manifest — the server cannot see it; the recipient sees it with the attachment",
304
- "type": "string"
305
- },
306
- "durationMs": {
307
- "description": "Audio/video duration in milliseconds",
308
- "type": "number"
309
- },
310
- "width": {
311
- "description": "Media width in pixels",
312
- "type": "number"
313
- },
314
- "height": {
315
- "description": "Media height in pixels",
316
- "type": "number"
317
- },
318
- "guardAddress": {
319
- "description": "Guard address. REQUIRED when sending Guard-verified files",
320
- "type": "string"
321
- },
322
- "passportAddress": {
323
- "description": "Passport address. REQUIRED when sending Guard-verified files",
324
- "type": "string"
325
- },
326
- "force": {
327
- "description": "Force send even if there are pending Guard messages",
328
- "type": "boolean"
329
- },
330
- "enable_messenger": {
331
- "description": "Auto-enable messenger for the sender account if not already enabled",
332
- "type": "boolean"
333
- },
334
- "network": {
335
- "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",
336
- "type": "string",
337
- "enum": [
338
- "localnet",
339
- "testnet",
340
- "mainnet"
341
- ]
342
- }
343
- },
344
- "additionalProperties": false
345
- },
346
- "goal_id": {
347
- "description": "Optional goal id (from goal_operation). When set, this act is recorded as communication evidence on the goal's TaskProcess (K3 27 G5) — use it only when the act belongs to an active goal's execution (order negotiation, required-info confirmation, WTS evidence, on-chain proof).",
348
- "type": "string"
349
- }
350
- },
351
- "required": [
352
- "operation",
353
- "to",
354
- "filePath"
355
- ],
356
- "additionalProperties": false
357
- },
358
- {
359
- "type": "object",
360
- "properties": {
361
- "operation": {
362
- "type": "string",
363
- "const": "send_required_info"
364
- },
365
- "from": {
366
- "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
367
- "anyOf": [
368
- {
369
- "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"
370
- },
371
- {
372
- "type": "object",
373
- "properties": {
374
- "name_or_address": {
375
- "type": "string",
376
- "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)."
377
- },
378
- "local_mark_first": {
379
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
380
- "type": "boolean"
381
- }
382
- },
383
- "additionalProperties": false,
384
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
385
- }
386
- ]
387
- },
388
- "to": {
389
- "anyOf": [
390
- {
391
- "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"
392
- },
393
- {
394
- "type": "object",
395
- "properties": {
396
- "name_or_address": {
397
- "type": "string",
398
- "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)."
399
- },
400
- "local_mark_first": {
401
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
402
- "type": "boolean"
403
- }
404
- },
405
- "additionalProperties": false,
406
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
407
- }
408
- ],
409
- "description": "Recipient ACCOUNT address or account/mark name — the merchant account AS RECORDED IN the Contact (its stored address field). A Contact object id is ALSO accepted and auto-resolved on-chain to that stored address; any OTHER on-chain object address is rejected locally with the object type named. Can be a string (name/address) or full object ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."
410
- },
411
- "fields": {
412
- "description": "LocalInfo field names to send (e.g. ['phone','shipping_address']). If omitted, ALL LocalInfo fields are included",
413
- "type": "array",
414
- "items": {
415
- "type": "string"
416
- }
417
- },
418
- "content": {
419
- "description": "Explicit plaintext content to send. If provided, fields are ignored and LocalInfo is NOT auto-assembled — the envelope then discloses the dropped names under result.fields_ignored (content wins; only ONE of content/fields is ever delivered)",
420
- "type": "string"
421
- },
422
- "options": {
423
- "description": "Optional message settings (guardAddress/passportAddress/network/replyTo/force/enable_messenger)",
424
- "type": "object",
425
- "properties": {
426
- "guardAddress": {
427
- "description": "Guard address. REQUIRED when sending Guard-verified messages",
428
- "type": "string"
429
- },
430
- "passportAddress": {
431
- "description": "Passport address. REQUIRED when sending Guard-verified messages",
432
- "type": "string"
433
- },
434
- "force": {
435
- "description": "Force send even if there are pending Guard messages",
436
- "type": "boolean"
437
- },
438
- "enable_messenger": {
439
- "description": "Auto-enable messenger for the sender account if not already enabled",
440
- "type": "boolean"
441
- },
442
- "network": {
443
- "description": "Target network. REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks. Guard verification is MAINNET-ONLY (no testnet)",
444
- "type": "string",
445
- "enum": [
446
- "localnet",
447
- "testnet",
448
- "mainnet"
449
- ]
450
- },
451
- "replyTo": {
452
- "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",
453
- "type": "object",
454
- "properties": {
455
- "messageId": {
456
- "type": "string",
457
- "description": "Replied-to message ID (unique within the conversation)"
458
- }
459
- },
460
- "required": [
461
- "messageId"
462
- ],
463
- "additionalProperties": false
464
- },
465
- "smart": {
466
- "description": "Smart send (default true): when the recipient's guard policy rejects a plain send, silently resend using a local Passport issued via one of their guards; when no usable Passport exists, returns a structured guard_authorization_required result (authRequired=true) instead of an error. Set false for strict legacy behavior. Guard verification runs on MAINNET only",
467
- "type": "boolean"
468
- },
469
- "authorize": {
470
- "description": "One-click guard authorization: when the recipient's guard policy rejects the send, create a fresh Passport via ALL of their guards in one gas-consuming transaction and resend automatically. Use after showing the user the guard_authorization_required card and getting consent. If a guard demands submission answers, the result returns authRequired with submissions for follow-up. The Passport tx is always on MAINNET (guard verification is mainnet-only)",
471
- "type": "boolean"
472
- }
473
- },
474
- "additionalProperties": false
475
- }
476
- },
477
- "required": [
478
- "operation",
479
- "to"
480
- ],
481
- "additionalProperties": false,
482
- "description": "Send the buyer's required-info confirmation to the merchant (E2EE, assembles from the SENDER's LOCAL private info — nothing is fetched from the network). PREREQUISITE: the fields named in `fields` must already be pre-stored on THIS device in your LocalInfo (private local storage: phone numbers, delivery/shipping addresses, contact entries) — pre-store them first (local info save in the account flow), then list the exact names here. Inventory check: run query_toolkit query_type='local_info_list' FIRST to see which fields exist locally and their exact names — a field name that is not in that list is not sendable and fails the assembly. Omit `fields` to send ALL stored fields; pass `content` to send explicit plaintext instead (mutually exclusive with fields)."
483
- },
484
- {
485
- "type": "object",
486
- "properties": {
487
- "operation": {
488
- "type": "string",
489
- "const": "watch_messages"
490
- },
491
- "filter": {
492
- "description": "Message filter options",
493
- "type": "object",
494
- "properties": {
495
- "account": {
496
- "description": "Account to filter messages for - can be a string (name/address/mark name) or full object",
497
- "anyOf": [
498
- {
499
- "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"
500
- },
501
- {
502
- "type": "object",
503
- "properties": {
504
- "name_or_address": {
505
- "type": "string",
506
- "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)."
507
- },
508
- "local_mark_first": {
509
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
510
- "type": "boolean"
511
- }
512
- },
513
- "additionalProperties": false,
514
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
515
- }
516
- ]
517
- },
518
- "direction": {
519
- "description": "Filter by message direction",
520
- "type": "string",
521
- "enum": [
522
- "sent",
523
- "received"
524
- ]
525
- },
526
- "status": {
527
- "description": "Filter by message status",
528
- "type": "string",
529
- "enum": [
530
- "pending",
531
- "confirmed",
532
- "read",
533
- "failed",
534
- "rejected",
535
- "decrypted",
536
- "decrypt_failed"
537
- ]
538
- },
539
- "peerAddress": {
540
- "description": "Filter by peer address - can be a string (name/address) or full object",
541
- "anyOf": [
542
- {
543
- "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"
544
- },
545
- {
546
- "type": "object",
547
- "properties": {
548
- "name_or_address": {
549
- "type": "string",
550
- "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)."
551
- },
552
- "local_mark_first": {
553
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
554
- "type": "boolean"
555
- }
556
- },
557
- "additionalProperties": false,
558
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
559
- }
560
- ]
561
- },
562
- "msgType": {
563
- "description": "Filter by message type",
564
- "anyOf": [
565
- {
566
- "type": "number",
567
- "const": 1
568
- },
569
- {
570
- "type": "number",
571
- "const": 3
572
- }
573
- ]
574
- },
575
- "contentType": {
576
- "description": "Filter by content type",
577
- "type": "string",
578
- "enum": [
579
- "text",
580
- "zip",
581
- "wts",
582
- "wip"
583
- ]
584
- },
585
- "decryptedOnly": {
586
- "description": "Only return decrypted messages",
587
- "type": "boolean"
588
- },
589
- "sync": {
590
- "description": "Sync mode (default true): true = block on one server pull before returning (freshest data, one-shot semantics); false = return local data immediately and trigger a background server pull whose results appear on later queries. Only set false when slightly stale data is acceptable",
591
- "type": "boolean"
592
- },
593
- "confirmedOnly": {
594
- "description": "Only return confirmed messages",
595
- "type": "boolean"
596
- },
597
- "keyword": {
598
- "description": "Search keyword in plaintext",
599
- "type": "string"
600
- },
601
- "sortOrder": {
602
- "description": "Sort order: asc or desc",
603
- "type": "string",
604
- "enum": [
605
- "asc",
606
- "desc"
607
- ]
608
- },
609
- "limit": {
610
- "description": "Return limit",
611
- "type": "number"
612
- },
613
- "offset": {
614
- "description": "Pagination offset",
615
- "type": "number"
616
- },
617
- "timeField": {
618
- "description": "Time field for time filtering",
619
- "type": "string",
620
- "enum": [
621
- "createdAt",
622
- "receivedAt",
623
- "serverTimestamp"
624
- ]
625
- },
626
- "startTime": {
627
- "description": "Start timestamp (ms)",
628
- "type": "number"
629
- },
630
- "endTime": {
631
- "description": "End timestamp (ms)",
632
- "type": "number"
633
- },
634
- "createdAtStart": {
635
- "description": "Created at start time",
636
- "type": "number"
637
- },
638
- "createdAtEnd": {
639
- "description": "Created at end time",
640
- "type": "number"
641
- },
642
- "receivedAtStart": {
643
- "description": "Received at start time",
644
- "type": "number"
645
- },
646
- "receivedAtEnd": {
647
- "description": "Received at end time",
648
- "type": "number"
649
- },
650
- "serverTimestampStart": {
651
- "description": "Server timestamp start time",
652
- "type": "number"
653
- },
654
- "serverTimestampEnd": {
655
- "description": "Server timestamp end time",
656
- "type": "number"
657
- },
658
- "arkConfirmedOnly": {
659
- "description": "Only return ARK confirmed messages",
660
- "type": "boolean"
661
- },
662
- "arkTimestampStart": {
663
- "description": "ARK timestamp start",
664
- "type": "number"
665
- },
666
- "arkTimestampEnd": {
667
- "description": "ARK timestamp end",
668
- "type": "number"
669
- },
670
- "proofedOnly": {
671
- "description": "Only return messages with proof",
672
- "type": "boolean"
673
- },
674
- "beforeCreatedAt": {
675
- "description": "Keyset pagination cursor: only return messages created strictly BEFORE this timestamp (ms). MUST be provided together with beforeMessageId; when both are absent the newest page is returned. Use for 'open conversation showing latest N, scroll up to load older pages'",
676
- "type": "number"
677
- },
678
- "beforeMessageId": {
679
- "description": "Keyset pagination cursor: message ID anchor paired with beforeCreatedAt (tie-breaker for messages with identical createdAt). MUST be provided together with beforeCreatedAt",
680
- "type": "string"
681
- },
682
- "hasLastReceivedIndexOnly": {
683
- "description": "Only return messages with lastReceivedLeafIndex",
684
- "type": "boolean"
685
- },
686
- "lastReceivedIndexMin": {
687
- "description": "Min lastReceivedLeafIndex",
688
- "type": "number"
689
- },
690
- "lastReceivedIndexMax": {
691
- "description": "Max lastReceivedLeafIndex",
692
- "type": "number"
693
- },
694
- "listFilterMode": {
695
- "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)",
696
- "type": "string",
697
- "enum": [
698
- "friends",
699
- "guard",
700
- "stranger",
701
- "any"
702
- ]
703
- },
704
- "customListFilter": {
705
- "description": "Custom list filter for advanced address-based filtering, works in combination with listFilterMode",
706
- "type": "object",
707
- "properties": {
708
- "includeAddresses": {
709
- "description": "Include addresses - only return messages from these addresses (highest priority)",
710
- "type": "array",
711
- "items": {
712
- "type": "string"
713
- }
714
- },
715
- "excludeAddresses": {
716
- "description": "Exclude addresses - exclude messages from these addresses",
717
- "type": "array",
718
- "items": {
719
- "type": "string"
720
- }
721
- },
722
- "relation": {
723
- "description": "Address list relation: 'union' = combine lists as union, 'intersection' = combine lists as intersection",
724
- "type": "string",
725
- "enum": [
726
- "union",
727
- "intersection"
728
- ]
729
- }
730
- },
731
- "additionalProperties": false
732
- },
733
- "viewed": {
734
- "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",
735
- "type": "boolean"
736
- },
737
- "viewedAtStart": {
738
- "description": "Filter by viewed timestamp start (inclusive). Only returns messages where viewedAt >= this value. Useful for finding recently viewed messages",
739
- "type": "number"
740
- },
741
- "viewedAtEnd": {
742
- "description": "Filter by viewed timestamp end (inclusive). Only returns messages where viewedAt <= this value. Useful for finding messages viewed before a certain time",
743
- "type": "number"
744
- },
745
- "skipAutoMarkViewed": {
746
- "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",
747
- "type": "boolean"
748
- }
749
- },
750
- "additionalProperties": false
751
- }
752
- },
753
- "required": [
754
- "operation"
755
- ],
756
- "additionalProperties": false,
757
- "description": "LOCAL-ONLY message read: returns messages from the local cache/registry and NEVER contacts the messenger server, and never advances the pull cursor (contract R2-09). Messages fetched by others appear only after pull_messages has synced them — an empty result usually means a cache miss: pull first, then watch again"
758
- },
759
- {
760
- "type": "object",
761
- "properties": {
762
- "operation": {
763
- "type": "string",
764
- "const": "save_attachment"
765
- },
766
- "account": {
767
- "description": "Account owning the message - can be a string (name/address/mark name) or full object. If not specified, uses default account",
768
- "anyOf": [
769
- {
770
- "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"
771
- },
772
- {
773
- "type": "object",
774
- "properties": {
775
- "name_or_address": {
776
- "type": "string",
777
- "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)."
778
- },
779
- "local_mark_first": {
780
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
781
- "type": "boolean"
782
- }
783
- },
784
- "additionalProperties": false,
785
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
786
- }
787
- ]
788
- },
789
- "messageId": {
790
- "type": "string",
791
- "description": "Attachment message ID (a message with attachment/zipMetadata, e.g. found via watch_messages)"
792
- },
793
- "outputDir": {
794
- "description": "Target directory. If not specified, saves to the workspace/attachments directory",
795
- "type": "string"
796
- },
797
- "saveAs": {
798
- "description": "Override file name (basename only; directories are stripped). Defaults to the original attachment file name. Collisions get a ' (1)' suffix",
799
- "type": "string"
800
- }
801
- },
802
- "required": [
803
- "operation",
804
- "messageId"
805
- ],
806
- "additionalProperties": false
807
- },
808
- {
809
- "type": "object",
810
- "properties": {
811
- "operation": {
812
- "type": "string",
813
- "const": "generate_wts"
814
- },
815
- "params": {
816
- "type": "object",
817
- "properties": {
818
- "myAccount": {
819
- "anyOf": [
820
- {
821
- "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"
822
- },
823
- {
824
- "type": "object",
825
- "properties": {
826
- "name_or_address": {
827
- "type": "string",
828
- "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)."
829
- },
830
- "local_mark_first": {
831
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
832
- "type": "boolean"
833
- }
834
- },
835
- "additionalProperties": false,
836
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
837
- }
838
- ],
839
- "description": "My account - can be a string (name/address/mark name) or full object"
840
- },
841
- "peerAccount": {
842
- "anyOf": [
843
- {
844
- "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"
845
- },
846
- {
847
- "type": "object",
848
- "properties": {
849
- "name_or_address": {
850
- "type": "string",
851
- "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)."
852
- },
853
- "local_mark_first": {
854
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
855
- "type": "boolean"
856
- }
857
- },
858
- "additionalProperties": false,
859
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
860
- }
861
- ],
862
- "description": "Peer account name or address - can be a string (name/address) or full object"
863
- },
864
- "range": {
865
- "description": "Range filter parameters",
866
- "oneOf": [
867
- {
868
- "type": "object",
869
- "properties": {
870
- "type": {
871
- "type": "string",
872
- "const": "time"
873
- },
874
- "start": {
875
- "type": "number"
876
- },
877
- "end": {
878
- "type": "number"
879
- }
880
- },
881
- "required": [
882
- "type",
883
- "start",
884
- "end"
885
- ],
886
- "additionalProperties": false
887
- },
888
- {
889
- "type": "object",
890
- "properties": {
891
- "type": {
892
- "type": "string",
893
- "const": "messageId"
894
- },
895
- "start": {
896
- "type": "string"
897
- },
898
- "end": {
899
- "type": "string"
900
- }
901
- },
902
- "required": [
903
- "type",
904
- "start",
905
- "end"
906
- ],
907
- "additionalProperties": false
908
- },
909
- {
910
- "type": "object",
911
- "properties": {
912
- "type": {
913
- "type": "string",
914
- "const": "seqIndex"
915
- },
916
- "start": {
917
- "type": "number"
918
- },
919
- "end": {
920
- "type": "number"
921
- }
922
- },
923
- "required": [
924
- "type",
925
- "start",
926
- "end"
927
- ],
928
- "additionalProperties": false
929
- }
930
- ]
931
- },
932
- "excludePlaintext": {
933
- "description": "Whether to exclude plaintext",
934
- "type": "boolean"
935
- },
936
- "outputDir": {
937
- "description": "Output directory path. If not specified, defaults to the workspace/wts directory",
938
- "type": "string"
939
- }
940
- },
941
- "required": [
942
- "myAccount",
943
- "peerAccount"
944
- ],
945
- "additionalProperties": false,
946
- "description": "WTS generation parameters"
947
- }
948
- },
949
- "required": [
950
- "operation",
951
- "params"
952
- ],
953
- "additionalProperties": false
954
- },
955
- {
956
- "type": "object",
957
- "properties": {
958
- "operation": {
959
- "type": "string",
960
- "const": "verify_wts"
961
- },
962
- "wtsFilePath": {
963
- "type": "string",
964
- "description": "WTS file path to verify"
965
- }
966
- },
967
- "required": [
968
- "operation",
969
- "wtsFilePath"
970
- ],
971
- "additionalProperties": false
972
- },
973
- {
974
- "type": "object",
975
- "properties": {
976
- "operation": {
977
- "type": "string",
978
- "const": "sign_wts"
979
- },
980
- "wtsFilePath": {
981
- "type": "string",
982
- "description": "WTS file path to sign"
983
- },
984
- "account": {
985
- "description": "Account to sign with - can be a string (name/address/mark name) or full object. If not specified, uses default account",
986
- "anyOf": [
987
- {
988
- "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"
989
- },
990
- {
991
- "type": "object",
992
- "properties": {
993
- "name_or_address": {
994
- "type": "string",
995
- "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)."
996
- },
997
- "local_mark_first": {
998
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
999
- "type": "boolean"
1000
- }
1001
- },
1002
- "additionalProperties": false,
1003
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1004
- }
1005
- ]
1006
- },
1007
- "outputPath": {
1008
- "description": "Output file path. If not specified, saves to signed_*.wts",
1009
- "type": "string"
1010
- }
1011
- },
1012
- "required": [
1013
- "operation",
1014
- "wtsFilePath"
1015
- ],
1016
- "additionalProperties": false
1017
- },
1018
- {
1019
- "type": "object",
1020
- "properties": {
1021
- "operation": {
1022
- "type": "string",
1023
- "const": "wts2html"
1024
- },
1025
- "wtsPath": {
1026
- "type": "string",
1027
- "description": "WTS file path or directory to convert"
1028
- },
1029
- "options": {
1030
- "description": "Conversion options",
1031
- "type": "object",
1032
- "properties": {
1033
- "title": {
1034
- "description": "HTML document title",
1035
- "type": "string"
1036
- },
1037
- "theme": {
1038
- "description": "HTML theme",
1039
- "type": "string",
1040
- "enum": [
1041
- "light",
1042
- "dark"
1043
- ]
1044
- },
1045
- "outputPath": {
1046
- "description": "Output file path",
1047
- "type": "string"
1048
- }
1049
- },
1050
- "additionalProperties": false
1051
- }
1052
- },
1053
- "required": [
1054
- "operation",
1055
- "wtsPath"
1056
- ],
1057
- "additionalProperties": false
1058
- },
1059
- {
1060
- "type": "object",
1061
- "properties": {
1062
- "operation": {
1063
- "type": "string",
1064
- "const": "proof_message"
1065
- },
1066
- "account": {
1067
- "description": "Account that PROOF reads from — must be the SENDER account that sent the message (the sent message lives only in the sender's local storage; querying from the recipient's or any other account returns 'Message not found'). Can be a string (name/address/mark name) or full object. If not specified, uses default account",
1068
- "anyOf": [
1069
- {
1070
- "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"
1071
- },
1072
- {
1073
- "type": "object",
1074
- "properties": {
1075
- "name_or_address": {
1076
- "type": "string",
1077
- "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)."
1078
- },
1079
- "local_mark_first": {
1080
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1081
- "type": "boolean"
1082
- }
1083
- },
1084
- "additionalProperties": false,
1085
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1086
- }
1087
- ]
1088
- },
1089
- "messageId": {
1090
- "type": "string",
1091
- "description": "Message ID to proof on-chain"
1092
- },
1093
- "network": {
1094
- "type": "string",
1095
- "enum": [
1096
- "localnet",
1097
- "testnet",
1098
- "mainnet"
1099
- ],
1100
- "description": "Network to use for on-chain proof (required)"
1101
- },
1102
- "goal_id": {
1103
- "description": "Optional goal id (from goal_operation). When set, this act is recorded as communication evidence on the goal's TaskProcess (K3 27 G5) — use it only when the act belongs to an active goal's execution (order negotiation, required-info confirmation, WTS evidence, on-chain proof).",
1104
- "type": "string"
1105
- }
1106
- },
1107
- "required": [
1108
- "operation",
1109
- "messageId",
1110
- "network"
1111
- ],
1112
- "additionalProperties": false
1113
- },
1114
- {
1115
- "type": "object",
1116
- "properties": {
1117
- "operation": {
1118
- "type": "string",
1119
- "const": "blacklist"
1120
- },
1121
- "account": {
1122
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1123
- "anyOf": [
1124
- {
1125
- "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"
1126
- },
1127
- {
1128
- "type": "object",
1129
- "properties": {
1130
- "name_or_address": {
1131
- "type": "string",
1132
- "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)."
1133
- },
1134
- "local_mark_first": {
1135
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1136
- "type": "boolean"
1137
- }
1138
- },
1139
- "additionalProperties": false,
1140
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1141
- }
1142
- ]
1143
- },
1144
- "blacklist": {
1145
- "oneOf": [
1146
- {
1147
- "type": "object",
1148
- "properties": {
1149
- "op": {
1150
- "type": "string",
1151
- "const": "add"
1152
- },
1153
- "users": {
1154
- "anyOf": [
1155
- {
1156
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1157
- },
1158
- {
1159
- "type": "object",
1160
- "properties": {
1161
- "entities": {
1162
- "minItems": 1,
1163
- "type": "array",
1164
- "items": {
1165
- "type": "object",
1166
- "properties": {
1167
- "name_or_address": {
1168
- "type": "string",
1169
- "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)."
1170
- },
1171
- "local_mark_first": {
1172
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1173
- "type": "boolean"
1174
- }
1175
- },
1176
- "additionalProperties": false,
1177
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1178
- }
1179
- },
1180
- "check_all_founded": {
1181
- "default": true,
1182
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1183
- "type": "boolean"
1184
- }
1185
- },
1186
- "required": [
1187
- "entities",
1188
- "check_all_founded"
1189
- ],
1190
- "additionalProperties": false,
1191
- "description": "Used to batch find account or object IDs by name"
1192
- }
1193
- ],
1194
- "description": "Users to add to blacklist - can be array of strings (names/addresses) or full object"
1195
- }
1196
- },
1197
- "required": [
1198
- "op",
1199
- "users"
1200
- ],
1201
- "additionalProperties": false
1202
- },
1203
- {
1204
- "type": "object",
1205
- "properties": {
1206
- "op": {
1207
- "type": "string",
1208
- "const": "remove"
1209
- },
1210
- "users": {
1211
- "anyOf": [
1212
- {
1213
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1214
- },
1215
- {
1216
- "type": "object",
1217
- "properties": {
1218
- "entities": {
1219
- "minItems": 1,
1220
- "type": "array",
1221
- "items": {
1222
- "type": "object",
1223
- "properties": {
1224
- "name_or_address": {
1225
- "type": "string",
1226
- "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)."
1227
- },
1228
- "local_mark_first": {
1229
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1230
- "type": "boolean"
1231
- }
1232
- },
1233
- "additionalProperties": false,
1234
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1235
- }
1236
- },
1237
- "check_all_founded": {
1238
- "default": true,
1239
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1240
- "type": "boolean"
1241
- }
1242
- },
1243
- "required": [
1244
- "entities",
1245
- "check_all_founded"
1246
- ],
1247
- "additionalProperties": false,
1248
- "description": "Used to batch find account or object IDs by name"
1249
- }
1250
- ],
1251
- "description": "Users to remove from blacklist - can be array of strings (names/addresses) or full object"
1252
- }
1253
- },
1254
- "required": [
1255
- "op",
1256
- "users"
1257
- ],
1258
- "additionalProperties": false
1259
- },
1260
- {
1261
- "type": "object",
1262
- "properties": {
1263
- "op": {
1264
- "type": "string",
1265
- "const": "clear"
1266
- }
1267
- },
1268
- "required": [
1269
- "op"
1270
- ],
1271
- "additionalProperties": false
1272
- },
1273
- {
1274
- "type": "object",
1275
- "properties": {
1276
- "op": {
1277
- "type": "string",
1278
- "const": "get"
1279
- }
1280
- },
1281
- "required": [
1282
- "op"
1283
- ],
1284
- "additionalProperties": false
1285
- },
1286
- {
1287
- "type": "object",
1288
- "properties": {
1289
- "op": {
1290
- "type": "string",
1291
- "const": "exist"
1292
- },
1293
- "users": {
1294
- "anyOf": [
1295
- {
1296
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1297
- },
1298
- {
1299
- "type": "object",
1300
- "properties": {
1301
- "entities": {
1302
- "minItems": 1,
1303
- "type": "array",
1304
- "items": {
1305
- "type": "object",
1306
- "properties": {
1307
- "name_or_address": {
1308
- "type": "string",
1309
- "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)."
1310
- },
1311
- "local_mark_first": {
1312
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1313
- "type": "boolean"
1314
- }
1315
- },
1316
- "additionalProperties": false,
1317
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1318
- }
1319
- },
1320
- "check_all_founded": {
1321
- "default": true,
1322
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1323
- "type": "boolean"
1324
- }
1325
- },
1326
- "required": [
1327
- "entities",
1328
- "check_all_founded"
1329
- ],
1330
- "additionalProperties": false,
1331
- "description": "Used to batch find account or object IDs by name"
1332
- }
1333
- ],
1334
- "description": "Users to check existence - can be array of strings (names/addresses) or full object"
1335
- }
1336
- },
1337
- "required": [
1338
- "op",
1339
- "users"
1340
- ],
1341
- "additionalProperties": false
1342
- }
1343
- ],
1344
- "description": "Blacklist management operation"
1345
- }
1346
- },
1347
- "required": [
1348
- "operation",
1349
- "blacklist"
1350
- ],
1351
- "additionalProperties": false
1352
- },
1353
- {
1354
- "type": "object",
1355
- "properties": {
1356
- "operation": {
1357
- "type": "string",
1358
- "const": "friendslist"
1359
- },
1360
- "account": {
1361
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1362
- "anyOf": [
1363
- {
1364
- "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"
1365
- },
1366
- {
1367
- "type": "object",
1368
- "properties": {
1369
- "name_or_address": {
1370
- "type": "string",
1371
- "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)."
1372
- },
1373
- "local_mark_first": {
1374
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1375
- "type": "boolean"
1376
- }
1377
- },
1378
- "additionalProperties": false,
1379
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1380
- }
1381
- ]
1382
- },
1383
- "friendslist": {
1384
- "oneOf": [
1385
- {
1386
- "type": "object",
1387
- "properties": {
1388
- "op": {
1389
- "type": "string",
1390
- "const": "add"
1391
- },
1392
- "users": {
1393
- "anyOf": [
1394
- {
1395
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1396
- },
1397
- {
1398
- "type": "object",
1399
- "properties": {
1400
- "entities": {
1401
- "minItems": 1,
1402
- "type": "array",
1403
- "items": {
1404
- "type": "object",
1405
- "properties": {
1406
- "name_or_address": {
1407
- "type": "string",
1408
- "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)."
1409
- },
1410
- "local_mark_first": {
1411
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1412
- "type": "boolean"
1413
- }
1414
- },
1415
- "additionalProperties": false,
1416
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1417
- }
1418
- },
1419
- "check_all_founded": {
1420
- "default": true,
1421
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1422
- "type": "boolean"
1423
- }
1424
- },
1425
- "required": [
1426
- "entities",
1427
- "check_all_founded"
1428
- ],
1429
- "additionalProperties": false,
1430
- "description": "Used to batch find account or object IDs by name"
1431
- }
1432
- ],
1433
- "description": "Users to add to friends list - can be array of strings (names/addresses) or full object"
1434
- }
1435
- },
1436
- "required": [
1437
- "op",
1438
- "users"
1439
- ],
1440
- "additionalProperties": false
1441
- },
1442
- {
1443
- "type": "object",
1444
- "properties": {
1445
- "op": {
1446
- "type": "string",
1447
- "const": "remove"
1448
- },
1449
- "users": {
1450
- "anyOf": [
1451
- {
1452
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1453
- },
1454
- {
1455
- "type": "object",
1456
- "properties": {
1457
- "entities": {
1458
- "minItems": 1,
1459
- "type": "array",
1460
- "items": {
1461
- "type": "object",
1462
- "properties": {
1463
- "name_or_address": {
1464
- "type": "string",
1465
- "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)."
1466
- },
1467
- "local_mark_first": {
1468
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1469
- "type": "boolean"
1470
- }
1471
- },
1472
- "additionalProperties": false,
1473
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1474
- }
1475
- },
1476
- "check_all_founded": {
1477
- "default": true,
1478
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1479
- "type": "boolean"
1480
- }
1481
- },
1482
- "required": [
1483
- "entities",
1484
- "check_all_founded"
1485
- ],
1486
- "additionalProperties": false,
1487
- "description": "Used to batch find account or object IDs by name"
1488
- }
1489
- ],
1490
- "description": "Users to remove from friends list - can be array of strings (names/addresses) or full object"
1491
- }
1492
- },
1493
- "required": [
1494
- "op",
1495
- "users"
1496
- ],
1497
- "additionalProperties": false
1498
- },
1499
- {
1500
- "type": "object",
1501
- "properties": {
1502
- "op": {
1503
- "type": "string",
1504
- "const": "clear"
1505
- }
1506
- },
1507
- "required": [
1508
- "op"
1509
- ],
1510
- "additionalProperties": false
1511
- },
1512
- {
1513
- "type": "object",
1514
- "properties": {
1515
- "op": {
1516
- "type": "string",
1517
- "const": "get"
1518
- }
1519
- },
1520
- "required": [
1521
- "op"
1522
- ],
1523
- "additionalProperties": false
1524
- },
1525
- {
1526
- "type": "object",
1527
- "properties": {
1528
- "op": {
1529
- "type": "string",
1530
- "const": "exist"
1531
- },
1532
- "users": {
1533
- "anyOf": [
1534
- {
1535
- "description": "Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"
1536
- },
1537
- {
1538
- "type": "object",
1539
- "properties": {
1540
- "entities": {
1541
- "minItems": 1,
1542
- "type": "array",
1543
- "items": {
1544
- "type": "object",
1545
- "properties": {
1546
- "name_or_address": {
1547
- "type": "string",
1548
- "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)."
1549
- },
1550
- "local_mark_first": {
1551
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1552
- "type": "boolean"
1553
- }
1554
- },
1555
- "additionalProperties": false,
1556
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1557
- }
1558
- },
1559
- "check_all_founded": {
1560
- "default": true,
1561
- "description": "Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)",
1562
- "type": "boolean"
1563
- }
1564
- },
1565
- "required": [
1566
- "entities",
1567
- "check_all_founded"
1568
- ],
1569
- "additionalProperties": false,
1570
- "description": "Used to batch find account or object IDs by name"
1571
- }
1572
- ],
1573
- "description": "Users to check existence - can be array of strings (names/addresses) or full object"
1574
- }
1575
- },
1576
- "required": [
1577
- "op",
1578
- "users"
1579
- ],
1580
- "additionalProperties": false
1581
- }
1582
- ],
1583
- "description": "Friends list management operation"
1584
- }
1585
- },
1586
- "required": [
1587
- "operation",
1588
- "friendslist"
1589
- ],
1590
- "additionalProperties": false
1591
- },
1592
- {
1593
- "type": "object",
1594
- "properties": {
1595
- "operation": {
1596
- "type": "string",
1597
- "const": "guardlist"
1598
- },
1599
- "account": {
1600
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1601
- "anyOf": [
1602
- {
1603
- "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"
1604
- },
1605
- {
1606
- "type": "object",
1607
- "properties": {
1608
- "name_or_address": {
1609
- "type": "string",
1610
- "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)."
1611
- },
1612
- "local_mark_first": {
1613
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1614
- "type": "boolean"
1615
- }
1616
- },
1617
- "additionalProperties": false,
1618
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1619
- }
1620
- ]
1621
- },
1622
- "guardlist": {
1623
- "oneOf": [
1624
- {
1625
- "type": "object",
1626
- "properties": {
1627
- "op": {
1628
- "type": "string",
1629
- "const": "add"
1630
- },
1631
- "guards": {
1632
- "minItems": 1,
1633
- "maxItems": 10,
1634
- "type": "array",
1635
- "items": {
1636
- "type": "object",
1637
- "properties": {
1638
- "guard": {
1639
- "type": "string",
1640
- "description": "Guard address or name. ⚠️ MAINNET-ONLY: Messenger guards must be Guard objects on MAINNET — a testnet Guard is rejected at add time ('Guard not found on mainnet'). Create the Guard on mainnet before adding it here."
1641
- },
1642
- "passportValiditySeconds": {
1643
- "type": "number",
1644
- "minimum": 10,
1645
- "maximum": 315360000,
1646
- "description": "Passport validity in seconds (10s to 10 years)"
1647
- }
1648
- },
1649
- "required": [
1650
- "guard",
1651
- "passportValiditySeconds"
1652
- ],
1653
- "additionalProperties": false,
1654
- "description": "Guard parameter"
1655
- },
1656
- "description": "Guards to add to guard list. ⚠️ MAINNET-ONLY: only mainnet Guard objects are supported — testnet Guards are rejected."
1657
- }
1658
- },
1659
- "required": [
1660
- "op",
1661
- "guards"
1662
- ],
1663
- "additionalProperties": false
1664
- },
1665
- {
1666
- "type": "object",
1667
- "properties": {
1668
- "op": {
1669
- "type": "string",
1670
- "const": "remove"
1671
- },
1672
- "guards": {
1673
- "minItems": 1,
1674
- "maxItems": 10,
1675
- "type": "array",
1676
- "items": {
1677
- "type": "string",
1678
- "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)."
1679
- },
1680
- "description": "Guard addresses to remove from guard list"
1681
- }
1682
- },
1683
- "required": [
1684
- "op",
1685
- "guards"
1686
- ],
1687
- "additionalProperties": false
1688
- },
1689
- {
1690
- "type": "object",
1691
- "properties": {
1692
- "op": {
1693
- "type": "string",
1694
- "const": "get"
1695
- }
1696
- },
1697
- "required": [
1698
- "op"
1699
- ],
1700
- "additionalProperties": false
1701
- }
1702
- ],
1703
- "description": "Guard list management operation"
1704
- }
1705
- },
1706
- "required": [
1707
- "operation",
1708
- "guardlist"
1709
- ],
1710
- "additionalProperties": false
1711
- },
1712
- {
1713
- "type": "object",
1714
- "properties": {
1715
- "operation": {
1716
- "type": "string",
1717
- "const": "settings"
1718
- },
1719
- "account": {
1720
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1721
- "anyOf": [
1722
- {
1723
- "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"
1724
- },
1725
- {
1726
- "type": "object",
1727
- "properties": {
1728
- "name_or_address": {
1729
- "type": "string",
1730
- "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)."
1731
- },
1732
- "local_mark_first": {
1733
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1734
- "type": "boolean"
1735
- }
1736
- },
1737
- "additionalProperties": false,
1738
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1739
- }
1740
- ]
1741
- },
1742
- "settings": {
1743
- "oneOf": [
1744
- {
1745
- "type": "object",
1746
- "properties": {
1747
- "op": {
1748
- "type": "string",
1749
- "const": "get"
1750
- }
1751
- },
1752
- "required": [
1753
- "op"
1754
- ],
1755
- "additionalProperties": false
1756
- },
1757
- {
1758
- "type": "object",
1759
- "properties": {
1760
- "op": {
1761
- "type": "string",
1762
- "const": "set"
1763
- },
1764
- "allowStrangerMessages": {
1765
- "description": "Allow messages from strangers. NOTE: only effective while the guard list is EMPTY — with any guard configured the stranger channel is disabled server-side and non-friends must hold a passport issued via one of the configured guards",
1766
- "type": "boolean"
1767
- },
1768
- "maxInboxSize": {
1769
- "description": "Maximum inbox size",
1770
- "type": "number",
1771
- "minimum": 1
1772
- }
1773
- },
1774
- "required": [
1775
- "op"
1776
- ],
1777
- "additionalProperties": false
1778
- }
1779
- ],
1780
- "description": "Settings management operation"
1781
- }
1782
- },
1783
- "required": [
1784
- "operation",
1785
- "settings"
1786
- ],
1787
- "additionalProperties": false
1788
- },
1789
- {
1790
- "type": "object",
1791
- "properties": {
1792
- "operation": {
1793
- "type": "string",
1794
- "const": "mark_messages_as_viewed"
1795
- },
1796
- "account": {
1797
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1798
- "anyOf": [
1799
- {
1800
- "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"
1801
- },
1802
- {
1803
- "type": "object",
1804
- "properties": {
1805
- "name_or_address": {
1806
- "type": "string",
1807
- "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)."
1808
- },
1809
- "local_mark_first": {
1810
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1811
- "type": "boolean"
1812
- }
1813
- },
1814
- "additionalProperties": false,
1815
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1816
- }
1817
- ]
1818
- },
1819
- "messageIds": {
1820
- "minItems": 1,
1821
- "maxItems": 1000,
1822
- "type": "array",
1823
- "items": {
1824
- "type": "string"
1825
- },
1826
- "description": "Array of message IDs to mark as viewed (1-1000 messages). Only messages belonging to this account will be marked"
1827
- }
1828
- },
1829
- "required": [
1830
- "operation",
1831
- "messageIds"
1832
- ],
1833
- "additionalProperties": false
1834
- },
1835
- {
1836
- "type": "object",
1837
- "properties": {
1838
- "operation": {
1839
- "type": "string",
1840
- "const": "mark_conversation_as_viewed"
1841
- },
1842
- "account": {
1843
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1844
- "anyOf": [
1845
- {
1846
- "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"
1847
- },
1848
- {
1849
- "type": "object",
1850
- "properties": {
1851
- "name_or_address": {
1852
- "type": "string",
1853
- "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)."
1854
- },
1855
- "local_mark_first": {
1856
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1857
- "type": "boolean"
1858
- }
1859
- },
1860
- "additionalProperties": false,
1861
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1862
- }
1863
- ]
1864
- },
1865
- "peerAddress": {
1866
- "anyOf": [
1867
- {
1868
- "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"
1869
- },
1870
- {
1871
- "type": "object",
1872
- "properties": {
1873
- "name_or_address": {
1874
- "type": "string",
1875
- "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)."
1876
- },
1877
- "local_mark_first": {
1878
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1879
- "type": "boolean"
1880
- }
1881
- },
1882
- "additionalProperties": false,
1883
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1884
- }
1885
- ],
1886
- "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"
1887
- }
1888
- },
1889
- "required": [
1890
- "operation",
1891
- "peerAddress"
1892
- ],
1893
- "additionalProperties": false
1894
- },
1895
- {
1896
- "type": "object",
1897
- "properties": {
1898
- "operation": {
1899
- "type": "string",
1900
- "const": "mark_conversation_read"
1901
- },
1902
- "account": {
1903
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1904
- "anyOf": [
1905
- {
1906
- "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"
1907
- },
1908
- {
1909
- "type": "object",
1910
- "properties": {
1911
- "name_or_address": {
1912
- "type": "string",
1913
- "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)."
1914
- },
1915
- "local_mark_first": {
1916
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1917
- "type": "boolean"
1918
- }
1919
- },
1920
- "additionalProperties": false,
1921
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1922
- }
1923
- ]
1924
- },
1925
- "peerAddress": {
1926
- "anyOf": [
1927
- {
1928
- "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"
1929
- },
1930
- {
1931
- "type": "object",
1932
- "properties": {
1933
- "name_or_address": {
1934
- "type": "string",
1935
- "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)."
1936
- },
1937
- "local_mark_first": {
1938
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1939
- "type": "boolean"
1940
- }
1941
- },
1942
- "additionalProperties": false,
1943
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1944
- }
1945
- ],
1946
- "description": "Peer address or account name - can be a string (name/address) or full object"
1947
- },
1948
- "through_seq": {
1949
- "description": "Conversation sequence (leafIndex) to mark read THROUGH, inclusive. Ignored if lower than the current watermark (monotonic). Omit to use the highest RECEIVED seq retained locally. Values beyond the highest received seq are capped and reported (capped=true)",
1950
- "type": "integer",
1951
- "minimum": 0,
1952
- "maximum": 9007199254740991
1953
- }
1954
- },
1955
- "required": [
1956
- "operation",
1957
- "peerAddress"
1958
- ],
1959
- "additionalProperties": false
1960
- },
1961
- {
1962
- "type": "object",
1963
- "properties": {
1964
- "operation": {
1965
- "type": "string",
1966
- "const": "pull_messages"
1967
- },
1968
- "account": {
1969
- "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account (ignored when allAccounts/accounts is set)",
1970
- "anyOf": [
1971
- {
1972
- "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"
1973
- },
1974
- {
1975
- "type": "object",
1976
- "properties": {
1977
- "name_or_address": {
1978
- "type": "string",
1979
- "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)."
1980
- },
1981
- "local_mark_first": {
1982
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1983
- "type": "boolean"
1984
- }
1985
- },
1986
- "additionalProperties": false,
1987
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
1988
- }
1989
- ]
1990
- },
1991
- "limit": {
1992
- "description": "Maximum number of messages to pull from server per account; in incremental mode (after set) this is the PAGE SIZE of returned messages",
1993
- "type": "number"
1994
- },
1995
- "allAccounts": {
1996
- "description": "Pull every messenger-enabled account in ONE bounded-concurrency fan-out (default concurrency 5). Only the process holding each account's polling lock pulls; per-account failures are isolated in the result entries. Returns one result entry per account",
1997
- "type": "boolean"
1998
- },
1999
- "accounts": {
2000
- "description": "Restrict the fan-out to these accounts (implies allAccounts flow). Each entry can be a string (name/address/mark name) or full object. Cold accounts are initialized on demand",
2001
- "type": "array",
2002
- "items": {
2003
- "anyOf": [
2004
- {
2005
- "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"
2006
- },
2007
- {
2008
- "type": "object",
2009
- "properties": {
2010
- "name_or_address": {
2011
- "type": "string",
2012
- "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)."
2013
- },
2014
- "local_mark_first": {
2015
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
2016
- "type": "boolean"
2017
- }
2018
- },
2019
- "additionalProperties": false,
2020
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
2021
- }
2022
- ],
2023
- "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
2024
- }
2025
- },
2026
- "concurrency": {
2027
- "description": "Max concurrent account pulls in fan-out mode (default 5)",
2028
- "type": "number",
2029
- "minimum": 1,
2030
- "maximum": 20
2031
- },
2032
- "peerAddress": {
2033
- "description": "Conversation peer. REQUIRED in incremental mode (when `after` is set) — the cursor is conversation-scoped because the sequence (leafIndex) is per conversation",
2034
- "anyOf": [
2035
- {
2036
- "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"
2037
- },
2038
- {
2039
- "type": "object",
2040
- "properties": {
2041
- "name_or_address": {
2042
- "type": "string",
2043
- "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)."
2044
- },
2045
- "local_mark_first": {
2046
- "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
2047
- "type": "boolean"
2048
- }
2049
- },
2050
- "additionalProperties": false,
2051
- "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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."
2052
- }
2053
- ]
2054
- },
2055
- "after": {
2056
- "description": "Incremental cursor: return only messages of this conversation whose sequence (leafIndex) is strictly GREATER than this value, ascending, and return highest_seq/has_more plus gap detection. Omitting `after` keeps the legacy bare-array behavior. Do NOT advance this cursor on watch_messages — watch is a local query, not a consume",
2057
- "type": "integer",
2058
- "minimum": 0,
2059
- "maximum": 9007199254740991
2060
- }
2061
- },
2062
- "required": [
2063
- "operation"
2064
- ],
2065
- "additionalProperties": false
2066
- }
2067
- ]
2068
- }
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://wowok.net/schemas/messenger_operation.json","title":"Messenger Operations","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).","oneOf":[{"type":"object","properties":{"operation":{"type":"string","const":"watch_conversations"},"filter":{"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","type":"object","properties":{"account":{"description":"Account to query conversations for - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"unreadOnly":{"description":"If true, only return conversations with unread messages (unreadCount > 0). Useful for quickly finding conversations needing attention","type":"boolean"},"startTime":{"description":"Start timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt >= this value","type":"number"},"endTime":{"description":"End timestamp (ms) for filtering conversations by lastMessageAt. Only returns conversations where lastMessageAt <= this value","type":"number"},"previewMessageCount":{"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","type":"number"},"sortBy":{"description":"Sort conversations by: 'lastMessageAt' = most recent activity first, 'unreadCount' = most unread messages first, 'messageCount' = most total messages first","type":"string","enum":["lastMessageAt","unreadCount","messageCount"]},"sortOrder":{"description":"Sort order: 'asc' = ascending (oldest/smallest first), 'desc' = descending (newest/largest first). Default is 'desc' for time-based sorting","type":"string","enum":["asc","desc"]},"skipAutoMarkViewed":{"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","type":"boolean"},"sync":{"description":"Sync mode (default true): true = block on one server pull per account before returning (freshest data, one-shot semantics); false = return local data immediately and trigger a background server pull whose results appear on later queries. Only set false when slightly stale data is acceptable","type":"boolean"}},"additionalProperties":false}},"required":["operation"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"send_message"},"from":{"description":"Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"to":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Recipient ACCOUNT address or account/mark name - can be a string (name/address) or full object. Messenger registers ACCOUNTS. A Contact object id IS accepted and auto-resolved on-chain to the messenger address stored inside it; any OTHER on-chain object address is rejected locally with the object type named ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."},"content":{"type":"string","maxLength":10240,"description":"Message content text (max 10240 bytes)"},"options":{"description":"Optional message settings","type":"object","properties":{"guardAddress":{"description":"Guard address. REQUIRED when sending Guard-verified messages","type":"string"},"passportAddress":{"description":"Passport address. REQUIRED when sending Guard-verified messages","type":"string"},"force":{"description":"Force send even if there are pending Guard messages","type":"boolean"},"enable_messenger":{"description":"Auto-enable messenger for the sender account if not already enabled","type":"boolean"},"network":{"description":"Target network. REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks. Guard verification is MAINNET-ONLY (no testnet)","type":"string","enum":["localnet","testnet","mainnet"]},"replyTo":{"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","type":"object","properties":{"messageId":{"type":"string","description":"Replied-to message ID (unique within the conversation)"}},"required":["messageId"],"additionalProperties":false},"smart":{"description":"Smart send (default true): when the recipient's guard policy rejects a plain send, silently resend using a local Passport issued via one of their guards; when no usable Passport exists, returns a structured guard_authorization_required result (authRequired=true) instead of an error. Set false for strict legacy behavior. Guard verification runs on MAINNET only","type":"boolean"},"authorize":{"description":"One-click guard authorization: when the recipient's guard policy rejects the send, create a fresh Passport via ALL of their guards in one gas-consuming transaction and resend automatically. Use after showing the user the guard_authorization_required card and getting consent. If a guard demands submission answers, the result returns authRequired with submissions for follow-up. The Passport tx is always on MAINNET (guard verification is mainnet-only)","type":"boolean"}},"additionalProperties":false}},"required":["operation","to","content"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"send_file"},"from":{"description":"Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"to":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Recipient ACCOUNT address or account/mark name - can be a string (name/address) or full object. Messenger registers ACCOUNTS. A Contact object id IS accepted and auto-resolved on-chain to the messenger address stored inside it; any OTHER on-chain object address is rejected locally with the object type named ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."},"filePath":{"type":"string","description":"Local file path to send. Transported as an E2EE attachment envelope (zip container); the recipient restores the original file name/type via the encrypted manifest"},"options":{"description":"Optional file sending settings","type":"object","properties":{"fileName":{"description":"Custom file name","type":"string"},"contentType":{"description":"Legacy server-visible classification hint (auto-inferred from extension: .wts/.wip, otherwise zip). Evidence types wts/wip always win over extension","type":"string","enum":["wts","wip","zip"]},"kind":{"description":"Attachment business type for the recipient's UI. Media kinds (image/video/audio/file) are auto-inferred from extension; set 'voice' explicitly for voice messages (webm cannot be distinguished from video automatically)","type":"string","enum":["image","video","audio","voice","file","wts","wip"]},"mimeType":{"description":"Explicit MIME type override (otherwise inferred from extension)","type":"string"},"caption":{"description":"Caption text attached to the file. Stored inside the E2EE envelope manifest — the server cannot see it; the recipient sees it with the attachment","type":"string"},"durationMs":{"description":"Audio/video duration in milliseconds","type":"number"},"width":{"description":"Media width in pixels","type":"number"},"height":{"description":"Media height in pixels","type":"number"},"guardAddress":{"description":"Guard address. REQUIRED when sending Guard-verified files","type":"string"},"passportAddress":{"description":"Passport address. REQUIRED when sending Guard-verified files","type":"string"},"force":{"description":"Force send even if there are pending Guard messages","type":"boolean"},"enable_messenger":{"description":"Auto-enable messenger for the sender account if not already enabled","type":"boolean"},"network":{"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","type":"string","enum":["localnet","testnet","mainnet"]}},"additionalProperties":false},"goal_id":{"description":"Optional goal id (from goal_operation). When set, this act is recorded as communication evidence on the goal's TaskProcess (K3 27 G5) — use it only when the act belongs to an active goal's execution (order negotiation, required-info confirmation, WTS evidence, on-chain proof).","type":"string"}},"required":["operation","to","filePath"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"send_required_info"},"from":{"description":"Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"to":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Recipient ACCOUNT address or account/mark name — the merchant account AS RECORDED IN the Contact (its stored address field). A Contact object id is ALSO accepted and auto-resolved on-chain to that stored address; any OTHER on-chain object address is rejected locally with the object type named. Can be a string (name/address) or full object ⚠️ ANTI-SPAM (by design): your FIRST message to a stranger IS delivered, but follow-ups are rejected until the recipient replies once — a single reply re-opens the thread. Adding the recipient to Contact/friends does NOT exempt this (server-side permission, independent of contacts). Merchant-push SOP: have the buyer send the first message, then reply in that thread."},"fields":{"description":"LocalInfo field names to send (e.g. ['phone','shipping_address']). If omitted, ALL LocalInfo fields are included","type":"array","items":{"type":"string"}},"content":{"description":"Explicit plaintext content to send. If provided, fields are ignored and LocalInfo is NOT auto-assembled — the envelope then discloses the dropped names under result.fields_ignored (content wins; only ONE of content/fields is ever delivered)","type":"string"},"options":{"description":"Optional message settings (guardAddress/passportAddress/network/replyTo/force/enable_messenger)","type":"object","properties":{"guardAddress":{"description":"Guard address. REQUIRED when sending Guard-verified messages","type":"string"},"passportAddress":{"description":"Passport address. REQUIRED when sending Guard-verified messages","type":"string"},"force":{"description":"Force send even if there are pending Guard messages","type":"boolean"},"enable_messenger":{"description":"Auto-enable messenger for the sender account if not already enabled","type":"boolean"},"network":{"description":"Target network. REQUIRED when guardAddress and passportAddress are provided — Guard messages and regular messages are independent data systems on different networks. Guard verification is MAINNET-ONLY (no testnet)","type":"string","enum":["localnet","testnet","mainnet"]},"replyTo":{"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","type":"object","properties":{"messageId":{"type":"string","description":"Replied-to message ID (unique within the conversation)"}},"required":["messageId"],"additionalProperties":false},"smart":{"description":"Smart send (default true): when the recipient's guard policy rejects a plain send, silently resend using a local Passport issued via one of their guards; when no usable Passport exists, returns a structured guard_authorization_required result (authRequired=true) instead of an error. Set false for strict legacy behavior. Guard verification runs on MAINNET only","type":"boolean"},"authorize":{"description":"One-click guard authorization: when the recipient's guard policy rejects the send, create a fresh Passport via ALL of their guards in one gas-consuming transaction and resend automatically. Use after showing the user the guard_authorization_required card and getting consent. If a guard demands submission answers, the result returns authRequired with submissions for follow-up. The Passport tx is always on MAINNET (guard verification is mainnet-only)","type":"boolean"}},"additionalProperties":false}},"required":["operation","to"],"additionalProperties":false,"description":"Send the buyer's required-info confirmation to the merchant (E2EE, assembles from the SENDER's LOCAL private info — nothing is fetched from the network). PREREQUISITE: the fields named in `fields` must already be pre-stored on THIS device in your LocalInfo (private local storage: phone numbers, delivery/shipping addresses, contact entries) — pre-store them first (local info save in the account flow), then list the exact names here. Inventory check: run query_toolkit query_type='local_info_list' FIRST to see which fields exist locally and their exact names — a field name that is not in that list is not sendable and fails the assembly. Omit `fields` to send ALL stored fields; pass `content` to send explicit plaintext instead (mutually exclusive with fields)."},{"type":"object","properties":{"operation":{"type":"string","const":"watch_messages"},"filter":{"description":"Message filter options","type":"object","properties":{"account":{"description":"Account to filter messages for - can be a string (name/address/mark name) or full object","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"direction":{"description":"Filter by message direction","type":"string","enum":["sent","received"]},"status":{"description":"Filter by message status","type":"string","enum":["pending","confirmed","read","failed","rejected","decrypted","decrypt_failed"]},"peerAddress":{"description":"Filter by peer address - can be a string (name/address) or full object","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"msgType":{"description":"Filter by message type","anyOf":[{"type":"number","const":1},{"type":"number","const":3}]},"contentType":{"description":"Filter by content type","type":"string","enum":["text","zip","wts","wip"]},"decryptedOnly":{"description":"Only return decrypted messages","type":"boolean"},"sync":{"description":"Sync mode (default true): true = block on one server pull before returning (freshest data, one-shot semantics); false = return local data immediately and trigger a background server pull whose results appear on later queries. Only set false when slightly stale data is acceptable","type":"boolean"},"confirmedOnly":{"description":"Only return confirmed messages","type":"boolean"},"keyword":{"description":"Search keyword in plaintext","type":"string"},"sortOrder":{"description":"Sort order: asc or desc","type":"string","enum":["asc","desc"]},"limit":{"description":"Return limit","type":"number"},"offset":{"description":"Pagination offset","type":"number"},"timeField":{"description":"Time field for time filtering","type":"string","enum":["createdAt","receivedAt","serverTimestamp"]},"startTime":{"description":"Start timestamp (ms)","type":"number"},"endTime":{"description":"End timestamp (ms)","type":"number"},"createdAtStart":{"description":"Created at start time","type":"number"},"createdAtEnd":{"description":"Created at end time","type":"number"},"receivedAtStart":{"description":"Received at start time","type":"number"},"receivedAtEnd":{"description":"Received at end time","type":"number"},"serverTimestampStart":{"description":"Server timestamp start time","type":"number"},"serverTimestampEnd":{"description":"Server timestamp end time","type":"number"},"arkConfirmedOnly":{"description":"Only return ARK confirmed messages","type":"boolean"},"arkTimestampStart":{"description":"ARK timestamp start","type":"number"},"arkTimestampEnd":{"description":"ARK timestamp end","type":"number"},"proofedOnly":{"description":"Only return messages with proof","type":"boolean"},"beforeCreatedAt":{"description":"Keyset pagination cursor: only return messages created strictly BEFORE this timestamp (ms). MUST be provided together with beforeMessageId; when both are absent the newest page is returned. Use for 'open conversation showing latest N, scroll up to load older pages'","type":"number"},"beforeMessageId":{"description":"Keyset pagination cursor: message ID anchor paired with beforeCreatedAt (tie-breaker for messages with identical createdAt). MUST be provided together with beforeCreatedAt","type":"string"},"hasLastReceivedIndexOnly":{"description":"Only return messages with lastReceivedLeafIndex","type":"boolean"},"lastReceivedIndexMin":{"description":"Min lastReceivedLeafIndex","type":"number"},"lastReceivedIndexMax":{"description":"Max lastReceivedLeafIndex","type":"number"},"listFilterMode":{"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)","type":"string","enum":["friends","guard","stranger","any"]},"customListFilter":{"description":"Custom list filter for advanced address-based filtering, works in combination with listFilterMode","type":"object","properties":{"includeAddresses":{"description":"Include addresses - only return messages from these addresses (highest priority)","type":"array","items":{"type":"string"}},"excludeAddresses":{"description":"Exclude addresses - exclude messages from these addresses","type":"array","items":{"type":"string"}},"relation":{"description":"Address list relation: 'union' = combine lists as union, 'intersection' = combine lists as intersection","type":"string","enum":["union","intersection"]}},"additionalProperties":false},"viewed":{"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","type":"boolean"},"viewedAtStart":{"description":"Filter by viewed timestamp start (inclusive). Only returns messages where viewedAt >= this value. Useful for finding recently viewed messages","type":"number"},"viewedAtEnd":{"description":"Filter by viewed timestamp end (inclusive). Only returns messages where viewedAt <= this value. Useful for finding messages viewed before a certain time","type":"number"},"skipAutoMarkViewed":{"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","type":"boolean"}},"additionalProperties":false}},"required":["operation"],"additionalProperties":false,"description":"LOCAL-ONLY message read: returns messages from the local cache/registry and NEVER contacts the messenger server, and never advances the pull cursor (contract R2-09). Messages fetched by others appear only after pull_messages has synced them — an empty result usually means a cache miss: pull first, then watch again"},{"type":"object","properties":{"operation":{"type":"string","const":"save_attachment"},"account":{"description":"Account owning the message - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"messageId":{"type":"string","description":"Attachment message ID (a message with attachment/zipMetadata, e.g. found via watch_messages)"},"outputDir":{"description":"Target directory. If not specified, saves to the workspace/attachments directory","type":"string"},"saveAs":{"description":"Override file name (basename only; directories are stripped). Defaults to the original attachment file name. Collisions get a ' (1)' suffix","type":"string"}},"required":["operation","messageId"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"generate_wts"},"params":{"type":"object","properties":{"myAccount":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"My account - can be a string (name/address/mark name) or full object"},"peerAccount":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Peer account name or address - can be a string (name/address) or full object"},"range":{"description":"Range filter parameters","oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"time"},"start":{"type":"number"},"end":{"type":"number"}},"required":["type","start","end"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"messageId"},"start":{"type":"string"},"end":{"type":"string"}},"required":["type","start","end"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"seqIndex"},"start":{"type":"number"},"end":{"type":"number"}},"required":["type","start","end"],"additionalProperties":false}]},"excludePlaintext":{"description":"Whether to exclude plaintext","type":"boolean"},"outputDir":{"description":"Output directory path. If not specified, defaults to the workspace/wts directory","type":"string"}},"required":["myAccount","peerAccount"],"additionalProperties":false,"description":"WTS generation parameters"}},"required":["operation","params"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"verify_wts"},"wtsFilePath":{"type":"string","description":"WTS file path to verify"},"network":{"description":"Network partition you assert this evidence belongs to (mainnet/testnet/localnet). The official-key verdict is scored in the keybook's own anchor partition and stays evidence for THAT partition only — declaring it here just pins the comparison and the receipt's wording. Omit to compare against the process-pinned network.","type":"string","enum":["localnet","testnet","mainnet"]}},"required":["operation","wtsFilePath"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"sign_wts"},"wtsFilePath":{"type":"string","description":"WTS file path to sign"},"account":{"description":"Account to sign with - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"outputPath":{"description":"Output file path. If not specified, saves to signed_*.wts","type":"string"}},"required":["operation","wtsFilePath"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"wts2html"},"wtsPath":{"type":"string","description":"WTS file path or directory to convert"},"options":{"description":"Conversion options","type":"object","properties":{"title":{"description":"HTML document title","type":"string"},"theme":{"description":"HTML theme","type":"string","enum":["light","dark"]},"outputPath":{"description":"Output file path","type":"string"}},"additionalProperties":false}},"required":["operation","wtsPath"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"proof_message"},"account":{"description":"Account that PROOF reads from — must be the SENDER account that sent the message (the sent message lives only in the sender's local storage; querying from the recipient's or any other account returns 'Message not found'). Can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"messageId":{"type":"string","description":"Message ID to proof on-chain"},"network":{"type":"string","enum":["localnet","testnet","mainnet"],"description":"Network to use for on-chain proof (required)"},"goal_id":{"description":"Optional goal id (from goal_operation). When set, this act is recorded as communication evidence on the goal's TaskProcess (K3 27 G5) — use it only when the act belongs to an active goal's execution (order negotiation, required-info confirmation, WTS evidence, on-chain proof).","type":"string"}},"required":["operation","messageId","network"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"blacklist"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"blacklist":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"add"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to add to blacklist - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to remove from blacklist - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"clear"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"get"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"exist"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to check existence - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false}],"description":"Blacklist management operation"}},"required":["operation","blacklist"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"friendslist"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"friendslist":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"add"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to add to friends list - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to remove from friends list - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"clear"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"get"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"exist"},"users":{"anyOf":[{"description":"Array of account names, addresses, or mark names. Local marks are searched first for each entry. EXAMPLE: ['alice', '0x2...', 'bob']"},{"type":"object","properties":{"entities":{"minItems":1,"type":"array","items":{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}},"check_all_founded":{"default":true,"description":"Whether to check all entities are found. Defaults to true: abort and throw if ANY entity cannot be resolved. Set false only when partial resolution is explicitly intended (only found IDs are returned)","type":"boolean"}},"required":["entities","check_all_founded"],"additionalProperties":false,"description":"Used to batch find account or object IDs by name"}],"description":"Users to check existence - can be array of strings (names/addresses) or full object"}},"required":["op","users"],"additionalProperties":false}],"description":"Friends list management operation"}},"required":["operation","friendslist"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"guardlist"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"guardlist":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"add"},"guards":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"guard":{"type":"string","description":"Guard address or name. ⚠️ MAINNET-ONLY: Messenger guards must be Guard objects on MAINNET — a testnet Guard is rejected at add time ('Guard not found on mainnet'). Create the Guard on mainnet before adding it here."},"passportValiditySeconds":{"type":"number","minimum":10,"maximum":315360000,"description":"Passport validity in seconds (10s to 10 years)"}},"required":["guard","passportValiditySeconds"],"additionalProperties":false,"description":"Guard parameter"},"description":"Guards to add to guard list. ⚠️ MAINNET-ONLY: only mainnet Guard objects are supported — testnet Guards are rejected."}},"required":["op","guards"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"guards":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","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)."},"description":"Guard addresses to remove from guard list"}},"required":["op","guards"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"get"}},"required":["op"],"additionalProperties":false}],"description":"Guard list management operation"}},"required":["operation","guardlist"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"settings"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"settings":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"get"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"set"},"allowStrangerMessages":{"description":"Allow messages from strangers. NOTE: only effective while the guard list is EMPTY — with any guard configured the stranger channel is disabled server-side and non-friends must hold a passport issued via one of the configured guards","type":"boolean"},"maxInboxSize":{"description":"Maximum inbox size","type":"number","minimum":1}},"required":["op"],"additionalProperties":false}],"description":"Settings management operation"}},"required":["operation","settings"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"mark_messages_as_viewed"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"messageIds":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string"},"description":"Array of message IDs to mark as viewed (1-1000 messages). Only messages belonging to this account will be marked"}},"required":["operation","messageIds"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"mark_conversation_as_viewed"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"peerAddress":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"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"}},"required":["operation","peerAddress"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"mark_conversation_read"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"peerAddress":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Peer address or account name - can be a string (name/address) or full object"},"through_seq":{"description":"Conversation sequence (leafIndex) to mark read THROUGH, inclusive. Ignored if lower than the current watermark (monotonic). Omit to use the highest RECEIVED seq retained locally. Values beyond the highest received seq are capped and reported (capped=true)","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["operation","peerAddress"],"additionalProperties":false},{"type":"object","properties":{"operation":{"type":"string","const":"pull_messages"},"account":{"description":"Account - can be a string (name/address/mark name) or full object. If not specified, uses default account (ignored when allAccounts/accounts is set)","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"limit":{"description":"Maximum number of messages to pull from server per account; in incremental mode (after set) this is the PAGE SIZE of returned messages","type":"number"},"allAccounts":{"description":"Pull every messenger-enabled account in ONE bounded-concurrency fan-out (default concurrency 5). Only the process holding each account's polling lock pulls; per-account failures are isolated in the result entries. Returns one result entry per account","type":"boolean"},"accounts":{"description":"Restrict the fan-out to these accounts (implies allAccounts flow). Each entry can be a string (name/address/mark name) or full object. Cold accounts are initialized on demand","type":"array","items":{"anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}],"description":"Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."}},"concurrency":{"description":"Max concurrent account pulls in fan-out mode (default 5)","type":"number","minimum":1,"maximum":20},"peerAddress":{"description":"Conversation peer. REQUIRED in incremental mode (when `after` is set) — the cursor is conversation-scoped because the sequence (leafIndex) is per conversation","anyOf":[{"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"},{"type":"object","properties":{"name_or_address":{"type":"string","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)."},"local_mark_first":{"description":"Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks","type":"boolean"}},"additionalProperties":false,"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. name_or_address is REQUIRED — {} resolves to nothing useful and is rejected."}]},"after":{"description":"Incremental cursor: return only messages of this conversation whose sequence (leafIndex) is strictly GREATER than this value, ascending, and return highest_seq/has_more plus gap detection. Omitting `after` keeps the legacy bare-array behavior. Do NOT advance this cursor on watch_messages — watch is a local query, not a consume","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["operation"],"additionalProperties":false}]}