@wowok/agent-mcp 2.7.7 → 2.7.8

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 (239) hide show
  1. package/dist/customer/index.d.ts +3 -4
  2. package/dist/customer/index.js +1 -1
  3. package/dist/customer/info-puzzle.js +1 -1
  4. package/dist/customer/order-monitor.d.ts +0 -9
  5. package/dist/customer/order-monitor.js +1 -1
  6. package/dist/customer/order-strategy.d.ts +0 -19
  7. package/dist/customer/order-strategy.js +1 -1
  8. package/dist/customer/reminder-system.d.ts +0 -5
  9. package/dist/customer/reminder-system.js +1 -1
  10. package/dist/evaluation/game-strategy.js +1 -1
  11. package/dist/evaluation/injection.d.ts +6 -0
  12. package/dist/evaluation/injection.js +1 -0
  13. package/dist/evaluation/node-game.js +1 -1
  14. package/dist/examples/machine-multisig-threshold.json +1 -0
  15. package/dist/harness/recover.js +1 -1
  16. package/dist/harness/types.d.ts +1 -1
  17. package/dist/harness/verify.js +1 -1
  18. package/dist/intent/enrich.js +1 -1
  19. package/dist/intent/matcher.js +1 -1
  20. package/dist/intent/types.d.ts +1 -1
  21. package/dist/intent/types.js +1 -1
  22. package/dist/knowledge/arbitration-ledger.js +1 -1
  23. package/dist/knowledge/contract-invariants.d.ts +53 -0
  24. package/dist/knowledge/contract-invariants.js +1 -0
  25. package/dist/knowledge/deployment-scanner.js +1 -1
  26. package/dist/knowledge/dynamic-pricing.d.ts +0 -2
  27. package/dist/knowledge/dynamic-pricing.js +1 -1
  28. package/dist/knowledge/event-semantics.d.ts +20 -0
  29. package/dist/knowledge/event-semantics.js +1 -0
  30. package/dist/knowledge/examples-scanner-cli.js +1 -1
  31. package/dist/knowledge/examples-scanner.js +1 -1
  32. package/dist/knowledge/glossary.js +1 -1
  33. package/dist/knowledge/guard-submission-prompt.js +1 -1
  34. package/dist/knowledge/immutability.d.ts +11 -0
  35. package/dist/knowledge/immutability.js +1 -0
  36. package/dist/knowledge/index.d.ts +12 -6
  37. package/dist/knowledge/index.js +1 -1
  38. package/dist/knowledge/industry-registry.js +1 -1
  39. package/dist/knowledge/intent-metrics.d.ts +1 -1
  40. package/dist/knowledge/jsonrpc-enum.d.ts +37 -0
  41. package/dist/knowledge/jsonrpc-enum.js +1 -0
  42. package/dist/knowledge/machine-confirm.js +1 -1
  43. package/dist/knowledge/machine-risk.js +1 -1
  44. package/dist/knowledge/machine-topology.d.ts +11 -0
  45. package/dist/knowledge/machine-topology.js +1 -1
  46. package/dist/knowledge/machine-translation.js +1 -1
  47. package/dist/knowledge/market-metrics.d.ts +11 -0
  48. package/dist/knowledge/market-metrics.js +1 -1
  49. package/dist/knowledge/mcp-schema-audit-cli.js +1 -1
  50. package/dist/knowledge/mcp-schema-audit.d.ts +1 -0
  51. package/dist/knowledge/mcp-schema-audit.js +1 -1
  52. package/dist/knowledge/messenger-guard-guidance.d.ts +17 -0
  53. package/dist/knowledge/messenger-guard-guidance.js +1 -0
  54. package/dist/knowledge/operation-dictionary.d.ts +18 -0
  55. package/dist/knowledge/operation-dictionary.js +1 -0
  56. package/dist/knowledge/service-ledger.js +1 -1
  57. package/dist/knowledge/service-risk.js +1 -1
  58. package/dist/knowledge/service-translation.js +1 -1
  59. package/dist/knowledge/supply-chain.d.ts +24 -0
  60. package/dist/knowledge/supply-chain.js +1 -0
  61. package/dist/knowledge/template-registry.js +1 -1
  62. package/dist/knowledge/tools-reference.js +1 -1
  63. package/dist/knowledge/trust-metrics.d.ts +27 -2
  64. package/dist/knowledge/trust-metrics.js +1 -1
  65. package/dist/knowledge/workflow-guidance.d.ts +22 -1
  66. package/dist/knowledge/workflow-guidance.js +1 -1
  67. package/dist/monitor/EventStore.d.ts +78 -0
  68. package/dist/monitor/EventStore.js +1 -0
  69. package/dist/participation/radar-core.d.ts +0 -1
  70. package/dist/participation/radar-core.js +1 -1
  71. package/dist/persona/address-format.d.ts +6 -0
  72. package/dist/persona/address-format.js +1 -0
  73. package/dist/persona/analyzer.js +1 -1
  74. package/dist/persona/index.d.ts +3 -0
  75. package/dist/persona/index.js +1 -1
  76. package/dist/persona/types.d.ts +1 -1
  77. package/dist/persona/types.js +1 -1
  78. package/dist/project/business-puzzle.js +1 -1
  79. package/dist/project/edit-planner.js +1 -1
  80. package/dist/project/evaluation.js +1 -1
  81. package/dist/project/graph-builder.js +1 -1
  82. package/dist/project/handlers.d.ts +2 -18
  83. package/dist/project/handlers.js +1 -1
  84. package/dist/project/index.js +1 -1
  85. package/dist/project/machine-nodes.d.ts +23 -0
  86. package/dist/project/machine-nodes.js +1 -1
  87. package/dist/project/machine-panorama.d.ts +41 -0
  88. package/dist/project/machine-panorama.js +1 -0
  89. package/dist/project/object-panorama.d.ts +179 -0
  90. package/dist/project/object-panorama.js +1 -0
  91. package/dist/project/object-type.d.ts +1 -0
  92. package/dist/project/object-type.js +1 -0
  93. package/dist/project/participation-radar.js +1 -1
  94. package/dist/project/semantic-assembler.js +1 -1
  95. package/dist/project/service-panorama.d.ts +180 -0
  96. package/dist/project/service-panorama.js +1 -0
  97. package/dist/project/stage-gate.d.ts +0 -1
  98. package/dist/project/stage-gate.js +1 -1
  99. package/dist/project/task-tracker.d.ts +4 -0
  100. package/dist/project/task-tracker.js +1 -1
  101. package/dist/role/derivation.d.ts +19 -2
  102. package/dist/role/derivation.js +1 -1
  103. package/dist/role/index.d.ts +2 -2
  104. package/dist/role/index.js +1 -1
  105. package/dist/role/model.js +1 -1
  106. package/dist/role/resolution.d.ts +16 -0
  107. package/dist/role/resolution.js +1 -1
  108. package/dist/role/types.d.ts +1 -1
  109. package/dist/role/types.js +1 -1
  110. package/dist/safety/confirm-gate.js +1 -1
  111. package/dist/schema/call/allocation.d.ts +1 -0
  112. package/dist/schema/call/arbitration.d.ts +4 -3
  113. package/dist/schema/call/arbitration.js +1 -1
  114. package/dist/schema/call/base.d.ts +16 -0
  115. package/dist/schema/call/base.js +1 -1
  116. package/dist/schema/call/bridge.d.ts +7 -0
  117. package/dist/schema/call/contact.d.ts +1 -0
  118. package/dist/schema/call/demand.d.ts +1 -0
  119. package/dist/schema/call/guard.d.ts +3 -0
  120. package/dist/schema/call/handler.js +1 -1
  121. package/dist/schema/call/machine.d.ts +2 -0
  122. package/dist/schema/call/machine.js +1 -1
  123. package/dist/schema/call/order.d.ts +1 -0
  124. package/dist/schema/call/payment.d.ts +1 -0
  125. package/dist/schema/call/permission.d.ts +1 -0
  126. package/dist/schema/call/personal.d.ts +38 -0
  127. package/dist/schema/call/personal.js +1 -1
  128. package/dist/schema/call/progress.d.ts +1 -0
  129. package/dist/schema/call/proof.d.ts +2 -0
  130. package/dist/schema/call/repository.d.ts +5 -4
  131. package/dist/schema/call/reward.d.ts +1 -12
  132. package/dist/schema/call/reward.js +1 -1
  133. package/dist/schema/call/semantic.d.ts +3 -2
  134. package/dist/schema/call/semantic.js +1 -1
  135. package/dist/schema/call/service.d.ts +1 -0
  136. package/dist/schema/call/service.js +1 -1
  137. package/dist/schema/call/treasury.d.ts +1 -0
  138. package/dist/schema/common/index.js +1 -1
  139. package/dist/schema/evaluation/index.d.ts +146 -0
  140. package/dist/schema/evaluation/index.js +1 -1
  141. package/dist/schema/index.d.ts +1 -0
  142. package/dist/schema/index.js +1 -1
  143. package/dist/schema/intent-radar/index.d.ts +30 -3
  144. package/dist/schema/intent-radar/index.js +1 -1
  145. package/dist/schema/local/index.d.ts +9 -0
  146. package/dist/schema/local/index.js +1 -1
  147. package/dist/schema/messenger/index.d.ts +54 -0
  148. package/dist/schema/messenger/index.js +1 -1
  149. package/dist/schema/operations.d.ts +864 -8
  150. package/dist/schema/operations.js +1 -1
  151. package/dist/schema/permission/index.d.ts +17 -0
  152. package/dist/schema/permission/index.js +1 -1
  153. package/dist/schema/project/index.d.ts +6 -0
  154. package/dist/schema/project/index.js +1 -1
  155. package/dist/schema/query/index.d.ts +658 -56
  156. package/dist/schema/query/index.js +1 -1
  157. package/dist/schema/schema-version.js +1 -1
  158. package/dist/schema/trust/index.d.ts +17 -0
  159. package/dist/schema/trust/index.js +1 -1
  160. package/dist/schema/watch/index.d.ts +204 -0
  161. package/dist/schema/watch/index.js +1 -0
  162. package/dist/schema/workflow/index.d.ts +301 -0
  163. package/dist/schema/workflow/index.js +1 -1
  164. package/dist/schema-query-impl/index.js +1 -1
  165. package/dist/schemas/account_operation.output.json +5 -2
  166. package/dist/schemas/bridge_operation.output.json +5 -2
  167. package/dist/schemas/bridge_operation.schema.json +25 -9
  168. package/dist/schemas/evaluation_operation.output.json +276 -1
  169. package/dist/schemas/evaluation_operation.schema.json +307 -0
  170. package/dist/schemas/guard2file.schema.json +6 -2
  171. package/dist/schemas/index.json +13 -1
  172. package/dist/schemas/intent_radar.output.json +20 -2
  173. package/dist/schemas/intent_radar.schema.json +10 -1
  174. package/dist/schemas/local_info_operation.output.json +5 -2
  175. package/dist/schemas/local_mark_operation.output.json +5 -2
  176. package/dist/schemas/machineNode2file.schema.json +6 -2
  177. package/dist/schemas/messenger_operation.output.json +105 -2
  178. package/dist/schemas/messenger_operation.schema.json +98 -0
  179. package/dist/schemas/monitor_events.output.json +1360 -0
  180. package/dist/schemas/monitor_events.schema.json +62 -0
  181. package/dist/schemas/onchain_events.output.json +237 -14
  182. package/dist/schemas/onchain_events.schema.json +20 -0
  183. package/dist/schemas/onchain_operations.output.json +10 -5
  184. package/dist/schemas/onchain_operations.schema.json +511 -419
  185. package/dist/schemas/onchain_operations_allocation.schema.json +11 -7
  186. package/dist/schemas/onchain_operations_arbitration.schema.json +14 -9
  187. package/dist/schemas/onchain_operations_contact.schema.json +9 -5
  188. package/dist/schemas/onchain_operations_demand.schema.json +9 -5
  189. package/dist/schemas/onchain_operations_gen_passport.schema.json +6 -2
  190. package/dist/schemas/onchain_operations_gen_proof.schema.json +6 -2
  191. package/dist/schemas/onchain_operations_guard.schema.json +6 -2
  192. package/dist/schemas/onchain_operations_machine.schema.json +14 -10
  193. package/dist/schemas/onchain_operations_order.schema.json +9 -5
  194. package/dist/schemas/onchain_operations_payment.schema.json +7 -3
  195. package/dist/schemas/onchain_operations_permission.schema.json +9 -5
  196. package/dist/schemas/onchain_operations_personal.schema.json +44 -2
  197. package/dist/schemas/onchain_operations_progress.schema.json +9 -5
  198. package/dist/schemas/onchain_operations_proof.schema.json +6 -2
  199. package/dist/schemas/onchain_operations_repository.schema.json +290 -305
  200. package/dist/schemas/onchain_operations_reward.schema.json +14 -10
  201. package/dist/schemas/onchain_operations_service.schema.json +17 -13
  202. package/dist/schemas/onchain_operations_treasury.schema.json +14 -10
  203. package/dist/schemas/onchain_table_data.output.json +3750 -208
  204. package/dist/schemas/onchain_table_data.schema.json +311 -0
  205. package/dist/schemas/permission_operation.output.json +32 -0
  206. package/dist/schemas/project_operation.schema.json +14 -8
  207. package/dist/schemas/query_toolkit.output.json +405 -320
  208. package/dist/schemas/query_toolkit.schema.json +139 -1
  209. package/dist/schemas/trust_score.output.json +38 -0
  210. package/dist/schemas/trust_score.schema.json +32 -0
  211. package/dist/schemas/watch_operation.output.json +827 -0
  212. package/dist/schemas/watch_operation.schema.json +145 -0
  213. package/dist/schemas/workflow_operation.output.json +263 -5
  214. package/dist/schemas/workflow_operation.schema.json +597 -2
  215. package/dist/tools/handlers/config.js +1 -1
  216. package/dist/tools/handlers/evaluation.js +1 -1
  217. package/dist/tools/handlers/intent-radar.js +1 -1
  218. package/dist/tools/handlers/messenger.js +1 -1
  219. package/dist/tools/handlers/monitor.d.ts +2 -0
  220. package/dist/tools/handlers/monitor.js +1 -0
  221. package/dist/tools/handlers/onchain.js +1 -1
  222. package/dist/tools/handlers/permission.js +1 -1
  223. package/dist/tools/handlers/project.js +1 -1
  224. package/dist/tools/handlers/query.js +1 -1
  225. package/dist/tools/handlers/trust.d.ts +14 -0
  226. package/dist/tools/handlers/trust.js +1 -1
  227. package/dist/tools/handlers/watch.d.ts +2 -0
  228. package/dist/tools/handlers/watch.js +1 -0
  229. package/dist/tools/handlers/workflow.js +1 -1
  230. package/dist/tools/index.d.ts +2 -0
  231. package/dist/tools/index.js +1 -1
  232. package/dist/tools/shared.js +1 -1
  233. package/package.json +2 -2
  234. package/dist/customer/post-purchase.d.ts +0 -44
  235. package/dist/customer/post-purchase.js +0 -1
  236. package/dist/project/migration.d.ts +0 -22
  237. package/dist/project/migration.js +0 -1
  238. package/dist/project/rollback-policy.d.ts +0 -45
  239. package/dist/project/rollback-policy.js +0 -1
@@ -330,6 +330,164 @@
330
330
  "additionalProperties": false,
331
331
  "description": "Query which customer-service Contacts an entity is a member of, from the global EntityContact reverse index (0xaa9). Use to check an address's Contact memberships. Returns: TableItem_EntityContact | undefined"
332
332
  },
333
+ {
334
+ "type": "object",
335
+ "properties": {
336
+ "query_type": {
337
+ "type": "string",
338
+ "const": "onchain_table_item_entity_order"
339
+ },
340
+ "address": {
341
+ "anyOf": [
342
+ {
343
+ "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"
344
+ },
345
+ {
346
+ "type": "object",
347
+ "properties": {
348
+ "name_or_address": {
349
+ "type": "string",
350
+ "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)."
351
+ },
352
+ "local_mark_first": {
353
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
354
+ "type": "boolean"
355
+ }
356
+ },
357
+ "additionalProperties": false,
358
+ "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."
359
+ }
360
+ ],
361
+ "description": "User address whose orders to look up. Supports string (name/address) or object form. LocalMark names are resolved automatically."
362
+ },
363
+ "no_cache": {
364
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
365
+ "type": "boolean"
366
+ },
367
+ "network": {
368
+ "type": "string",
369
+ "enum": [
370
+ "localnet",
371
+ "testnet",
372
+ "mainnet"
373
+ ],
374
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
375
+ }
376
+ },
377
+ "required": [
378
+ "query_type",
379
+ "address"
380
+ ],
381
+ "additionalProperties": false,
382
+ "description": "Query the orders a user participates in, from the global EntityOrder reverse index (0xaa8) — returns order addresses with role bitmask (1=owner, 2=agent) and last role-update time. Use to list a user's orders (raw index, without full order objects). Returns: TableItem_EntityOrder | undefined"
383
+ },
384
+ {
385
+ "type": "object",
386
+ "properties": {
387
+ "query_type": {
388
+ "type": "string",
389
+ "const": "onchain_orders_of_user"
390
+ },
391
+ "address": {
392
+ "anyOf": [
393
+ {
394
+ "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"
395
+ },
396
+ {
397
+ "type": "object",
398
+ "properties": {
399
+ "name_or_address": {
400
+ "type": "string",
401
+ "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)."
402
+ },
403
+ "local_mark_first": {
404
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
405
+ "type": "boolean"
406
+ }
407
+ },
408
+ "additionalProperties": false,
409
+ "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."
410
+ }
411
+ ],
412
+ "description": "User address whose orders to query. Supports string (name/address) or object form. LocalMark names are resolved automatically."
413
+ },
414
+ "no_cache": {
415
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
416
+ "type": "boolean"
417
+ },
418
+ "network": {
419
+ "type": "string",
420
+ "enum": [
421
+ "localnet",
422
+ "testnet",
423
+ "mainnet"
424
+ ],
425
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
426
+ }
427
+ },
428
+ "required": [
429
+ "query_type",
430
+ "address"
431
+ ],
432
+ "additionalProperties": false,
433
+ "description": "Query every order a user participates in (as owner and/or agent) via the global EntityOrder reverse index (0xaa8), resolving each to its full on-chain Order object. Each result includes role info: role bitmask (1=owner, 2=agent), is_owner, is_agent, role update time, and the full order. Use to get a user's complete order list with role attributes. Returns: UserOrderView[]"
434
+ },
435
+ {
436
+ "type": "object",
437
+ "properties": {
438
+ "query_type": {
439
+ "type": "string",
440
+ "const": "onchain_orders_of_users"
441
+ },
442
+ "addresses": {
443
+ "minItems": 1,
444
+ "type": "array",
445
+ "items": {
446
+ "anyOf": [
447
+ {
448
+ "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"
449
+ },
450
+ {
451
+ "type": "object",
452
+ "properties": {
453
+ "name_or_address": {
454
+ "type": "string",
455
+ "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)."
456
+ },
457
+ "local_mark_first": {
458
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
459
+ "type": "boolean"
460
+ }
461
+ },
462
+ "additionalProperties": false,
463
+ "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."
464
+ }
465
+ ],
466
+ "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 }."
467
+ },
468
+ "description": "Account addresses to query (typically ALL local accounts). Each address supports LocalMark name resolution."
469
+ },
470
+ "no_cache": {
471
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
472
+ "type": "boolean"
473
+ },
474
+ "network": {
475
+ "type": "string",
476
+ "enum": [
477
+ "localnet",
478
+ "testnet",
479
+ "mainnet"
480
+ ],
481
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
482
+ }
483
+ },
484
+ "required": [
485
+ "query_type",
486
+ "addresses"
487
+ ],
488
+ "additionalProperties": false,
489
+ "description": "Query every order that ANY of the given accounts participates in (owner and/or agent), merged into ONE enriched list — the cross-account backbone of the Business order list. Rows are deduped by order address with per-account roles merged, and each row is SERVER-ENRICHED exactly like the Service panorama Orders tab: amount + purchased-item prices resolved to human token display, progress_next/progress_since from the order's Progress, allocation_state from the Allocation balance, updated_ms (last on-chain touch) per order. Per-account failures are non-blocking (account_errors). Returns: EnrichedOrderRow[]"
490
+ },
333
491
  {
334
492
  "type": "object",
335
493
  "properties": {
@@ -432,6 +590,159 @@
432
590
  "additionalProperties": false,
433
591
  "description": "Query which operational objects (Order/Progress/Payment/Allocation/Guard/Permission) bind to a target, from the ObjectLinkerTx reverse index (0xaaf). Lossy FIFO (recent only). Use for order/progress/operational reverse lookups. Returns: TableItem_ObjectLinkerTx | undefined"
434
592
  },
593
+ {
594
+ "type": "object",
595
+ "properties": {
596
+ "query_type": {
597
+ "type": "string",
598
+ "const": "onchain_affiliations_of_object"
599
+ },
600
+ "address": {
601
+ "anyOf": [
602
+ {
603
+ "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"
604
+ },
605
+ {
606
+ "type": "object",
607
+ "properties": {
608
+ "name_or_address": {
609
+ "type": "string",
610
+ "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)."
611
+ },
612
+ "local_mark_first": {
613
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
614
+ "type": "boolean"
615
+ }
616
+ },
617
+ "additionalProperties": false,
618
+ "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."
619
+ }
620
+ ],
621
+ "description": "Object or account address whose global-table records to aggregate. Supports string (name/address) or object form. LocalMark names are resolved automatically."
622
+ },
623
+ "no_cache": {
624
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
625
+ "type": "boolean"
626
+ },
627
+ "network": {
628
+ "type": "string",
629
+ "enum": [
630
+ "localnet",
631
+ "testnet",
632
+ "mainnet"
633
+ ],
634
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
635
+ }
636
+ },
637
+ "required": [
638
+ "query_type",
639
+ "address"
640
+ ],
641
+ "additionalProperties": false,
642
+ "description": "Aggregate EVERY global reverse index (0xaae core / 0xaaf tx / 0xaa8 orders / 0xaad permissions / 0xaa9 contacts / 0xaaa registrar / 0xaab entity) where this address can be recorded as a key, driven by the exhaustive type→tables static map (one targeted dynamic-field read per relevant table, NEVER a full-table scan). Forward field-stored references are excluded — they need no global query. Use for complete 'what records exist about this object across global tables' answers. Returns: AffiliationAnswer"
643
+ },
644
+ {
645
+ "type": "object",
646
+ "properties": {
647
+ "query_type": {
648
+ "type": "string",
649
+ "const": "address_profile"
650
+ },
651
+ "address": {
652
+ "anyOf": [
653
+ {
654
+ "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"
655
+ },
656
+ {
657
+ "type": "object",
658
+ "properties": {
659
+ "name_or_address": {
660
+ "type": "string",
661
+ "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)."
662
+ },
663
+ "local_mark_first": {
664
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
665
+ "type": "boolean"
666
+ }
667
+ },
668
+ "additionalProperties": false,
669
+ "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."
670
+ }
671
+ ],
672
+ "description": "Address to profile. Supports string (name/address) or object form. LocalMark names are resolved automatically."
673
+ },
674
+ "no_cache": {
675
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
676
+ "type": "boolean"
677
+ },
678
+ "network": {
679
+ "type": "string",
680
+ "enum": [
681
+ "localnet",
682
+ "testnet",
683
+ "mainnet"
684
+ ],
685
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
686
+ }
687
+ },
688
+ "required": [
689
+ "query_type",
690
+ "address"
691
+ ],
692
+ "additionalProperties": false,
693
+ "description": "Unified address profile (K3 22 §P0-1): classifies the address (user / business-object type / system singleton), then batches identity + reputation (like/dislike/favor) + order membership + contact membership + permission membership + core/tx reverse bindings + the object itself into a single result. The one-stop entry for 'who/what is this address'. Returns: AddressProfile"
694
+ },
695
+ {
696
+ "type": "object",
697
+ "properties": {
698
+ "query_type": {
699
+ "type": "string",
700
+ "const": "service_supply_chain"
701
+ },
702
+ "address": {
703
+ "anyOf": [
704
+ {
705
+ "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"
706
+ },
707
+ {
708
+ "type": "object",
709
+ "properties": {
710
+ "name_or_address": {
711
+ "type": "string",
712
+ "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)."
713
+ },
714
+ "local_mark_first": {
715
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
716
+ "type": "boolean"
717
+ }
718
+ },
719
+ "additionalProperties": false,
720
+ "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."
721
+ }
722
+ ],
723
+ "description": "Service address whose transparent sub-order purchasing graph to resolve. Supports string (name/address) or object form. LocalMark names are resolved automatically."
724
+ },
725
+ "no_cache": {
726
+ "description": "Set to true to bypass cache and fetch fresh on-chain data",
727
+ "type": "boolean"
728
+ },
729
+ "network": {
730
+ "type": "string",
731
+ "enum": [
732
+ "localnet",
733
+ "testnet",
734
+ "mainnet"
735
+ ],
736
+ "description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
737
+ }
738
+ },
739
+ "required": [
740
+ "query_type",
741
+ "address"
742
+ ],
743
+ "additionalProperties": false,
744
+ "description": "Resolve a Service's transparent sub-order purchasing graph (K3 23 §3.6): reads the bound Machine's frozen forwards, finds purchasing-commitment Guards, and returns each forward's purchased sub-services (fixed address fields) + required sub-order proof fields (b_submission fields). Standalone capability for buyer due-diligence / compose_service / anti_cheat / merchant self-check; reused by Watch. Returns: SupplyChainGraph"
745
+ },
435
746
  {
436
747
  "type": "object",
437
748
  "properties": {
@@ -21,6 +21,10 @@
21
21
  "type": "string",
22
22
  "description": "Permission object address"
23
23
  },
24
+ "permission_name": {
25
+ "description": "Local name for the Permission object (account name / LocalMark / Project object name), if resolvable",
26
+ "type": "string"
27
+ },
24
28
  "description": {
25
29
  "type": "string",
26
30
  "description": "Permission description"
@@ -29,6 +33,10 @@
29
33
  "type": "string",
30
34
  "description": "Owner address"
31
35
  },
36
+ "owner_name": {
37
+ "description": "Local name for the owner address, if resolvable",
38
+ "type": "string"
39
+ },
32
40
  "updated_timestamp_ms": {
33
41
  "description": "Unix ms of the latest transaction touching this Permission (via previousTransaction)",
34
42
  "type": "string"
@@ -123,6 +131,23 @@
123
131
  "type": "string"
124
132
  },
125
133
  "description": "Object addresses of this type"
134
+ },
135
+ "object_names": {
136
+ "description": "Local names for each object address (parallel to `objects`), empty string when no local name is resolvable",
137
+ "type": "array",
138
+ "items": {
139
+ "type": "string"
140
+ }
141
+ },
142
+ "object_tags": {
143
+ "description": "LocalMark tags for each object address (parallel to `objects`), empty array when none",
144
+ "type": "array",
145
+ "items": {
146
+ "type": "array",
147
+ "items": {
148
+ "type": "string"
149
+ }
150
+ }
126
151
  }
127
152
  },
128
153
  "required": [
@@ -138,6 +163,13 @@
138
163
  "related_object_count": {
139
164
  "type": "number",
140
165
  "description": "Total related object count"
166
+ },
167
+ "tags": {
168
+ "description": "LocalMark tags for the Permission object (labels shown like Project items)",
169
+ "type": "array",
170
+ "items": {
171
+ "type": "string"
172
+ }
141
173
  }
142
174
  },
143
175
  "required": [
@@ -52,7 +52,10 @@
52
52
  "aggregate_risks",
53
53
  "trace_substeps",
54
54
  "merchant_guide",
55
- "participation_radar"
55
+ "participation_radar",
56
+ "service_panorama",
57
+ "machine_panorama",
58
+ "object_panorama"
56
59
  ],
57
60
  "description": "Action to perform. Two categories:\n1. Project Entity + Evaluation (15, GLM6): list_projects, create_project, create_project_from_onchain, update_project, get_project_detail, add_object, remove_object, create_version, build_graph, get_graph, evaluate_project, save_evaluation, compare_projects, refresh_objects, get_object_diff. Projects are first-class entities with SQLite persistence, rigid project-object relationships, three-pathway graph construction, and a dual rule-based + LLM-assisted evaluation engine.\n2. Context Assembly (1): assemble_context (query on-chain object states + extract embedded history + optional events, and assemble a structured semantic context for LLM consumption). Required input: context_objects (array of object IDs/names). Optional: include_events (query recent state-transition events).\n2b. Reverse Mapping (1): reverse_map (deterministic L4→L1 business report — queries the on-chain objects, classifies them into business semantics, and emits a fixed-rule BusinessReport with merchant profile, user risk assessment, and game-theory analysis. Same objects ALWAYS yield the same report — no LLM involved). Required input: context_objects (include the Service; add Machine/Allocation for refund-path detection). Optional: context_network, order_amount.\n3. Cross-Network Migration (FIX-012): clone_project_to_network (or its alias migrate_network) copies a source project's object metadata to a new project bound to target_network. The 5-step migration workflow: 1) call clone_project_to_network (or migrate_network) with target_network to copy metadata, 2) re-run onchain_operations with env.network=target_network to deploy objects on-chain, 3) re-register LocalMark names with the SAME names on the target network (FIX-011 cross-network consistency), 4) update_project to set service_address on the new project, 5) build_graph to construct the new project's relationship graph."
58
61
  },
@@ -77,11 +80,12 @@
77
80
  "type": "boolean"
78
81
  },
79
82
  "context_network": {
80
- "description": "Network for assemble_context / reverse_map queries. Defaults to 'testnet' if omitted.",
83
+ "description": "Network for assemble_context / reverse_map / service_panorama queries. Defaults to 'testnet' if omitted. 'localnet' is for internal test use against a local fullnode.",
81
84
  "type": "string",
82
85
  "enum": [
83
86
  "testnet",
84
- "mainnet"
87
+ "mainnet",
88
+ "localnet"
85
89
  ]
86
90
  },
87
91
  "reverse_order_amount": {
@@ -121,11 +125,12 @@
121
125
  ]
122
126
  },
123
127
  "filter_network": {
124
- "description": "Filter list_projects by network.",
128
+ "description": "Filter list_projects by network. Networks are peers with fully independent data: switching the UI network MUST re-query with this filter so localnet/testnet/mainnet drafts never mix in one list.",
125
129
  "type": "string",
126
130
  "enum": [
127
131
  "testnet",
128
- "mainnet"
132
+ "mainnet",
133
+ "localnet"
129
134
  ]
130
135
  },
131
136
  "project_name": {
@@ -172,15 +177,16 @@
172
177
  }
173
178
  },
174
179
  "service_address": {
175
- "description": "On-chain Service object address. Required for create_project_from_onchain. Optional for create_project (links the project to its core Service).",
180
+ "description": "On-chain Service object address (or LocalMark name). Required for create_project_from_onchain and service_panorama. Optional for create_project (links the project to its core Service).",
176
181
  "type": "string"
177
182
  },
178
183
  "project_network": {
179
- "description": "Network the project is bound to. A Service deployed to different networks are different projects. Defaults to 'testnet'.",
184
+ "description": "Network the project is bound to. A Service deployed to different networks are different projects. Defaults to 'testnet'. 'localnet' is for internal test use against a local fullnode.",
180
185
  "type": "string",
181
186
  "enum": [
182
187
  "testnet",
183
- "mainnet"
188
+ "mainnet",
189
+ "localnet"
184
190
  ]
185
191
  },
186
192
  "skip_templates": {