@wowok/agent-mcp 2.7.8 → 2.7.10

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 (334) hide show
  1. package/README.md +2 -2
  2. package/dist/config/runtime.d.ts +1 -1
  3. package/dist/config/runtime.js +1 -1
  4. package/dist/examples/rental-ziroom-machine-create.json +1 -2
  5. package/dist/examples/rental-ziroom-permission-create.json +1 -2
  6. package/dist/examples/rental-ziroom-service-create.json +1 -2
  7. package/dist/experience/experience-reuse.js +1 -1
  8. package/dist/experience/index.d.ts +2 -1
  9. package/dist/experience/index.js +1 -1
  10. package/dist/experience/persistence-config.d.ts +6 -0
  11. package/dist/experience/persistence-config.js +1 -0
  12. package/dist/experience/persistence.d.ts +21 -0
  13. package/dist/experience/persistence.js +1 -0
  14. package/dist/experience/realtime-feedback.js +1 -1
  15. package/dist/experience/user-profile.js +1 -1
  16. package/dist/extensions/business-modules.d.ts +1 -1
  17. package/dist/extensions/capability-manifest.d.ts +1 -1
  18. package/dist/extensions/types.d.ts +1 -1
  19. package/dist/goal/GoalClassifier.d.ts +17 -0
  20. package/dist/goal/GoalClassifier.js +1 -0
  21. package/dist/goal/GoalEngine.d.ts +120 -0
  22. package/dist/goal/GoalEngine.js +1 -0
  23. package/dist/goal/GoalStore.d.ts +27 -0
  24. package/dist/goal/GoalStore.js +1 -0
  25. package/dist/goal/plan-approval.d.ts +5 -0
  26. package/dist/goal/plan-approval.js +1 -0
  27. package/dist/goal/types.d.ts +76 -0
  28. package/dist/goal/types.js +1 -0
  29. package/dist/harness/index.d.ts +2 -7
  30. package/dist/harness/index.js +1 -1
  31. package/dist/harness/plan.d.ts +1 -1
  32. package/dist/harness/types.d.ts +0 -35
  33. package/dist/index.js +1 -1
  34. package/dist/knowledge/account-marks.d.ts +35 -0
  35. package/dist/knowledge/account-marks.js +1 -0
  36. package/dist/knowledge/audit-rules.d.ts +3 -1
  37. package/dist/knowledge/audit-rules.js +1 -1
  38. package/dist/knowledge/examples-scanner-cli.js +1 -1
  39. package/dist/knowledge/examples-scanner.js +1 -1
  40. package/dist/knowledge/goal-completion.d.ts +19 -0
  41. package/dist/knowledge/goal-completion.js +1 -0
  42. package/dist/knowledge/guard-translation.js +1 -1
  43. package/dist/knowledge/index.d.ts +3 -2
  44. package/dist/knowledge/index.js +1 -1
  45. package/dist/knowledge/industry-registry.js +1 -1
  46. package/dist/knowledge/mcp-schema-audit-cli.js +1 -1
  47. package/dist/knowledge/mcp-schema-audit.js +1 -1
  48. package/dist/knowledge/operation-dictionary.js +1 -1
  49. package/dist/knowledge/passport-confirm.js +1 -1
  50. package/dist/knowledge/passport-puzzle.js +1 -1
  51. package/dist/knowledge/passport-translation.js +1 -1
  52. package/dist/knowledge/proof-risk.js +1 -1
  53. package/dist/knowledge/safety-rules.js +1 -1
  54. package/dist/knowledge/service-translation.js +1 -1
  55. package/dist/knowledge/template-registry.js +1 -1
  56. package/dist/knowledge/tools-reference.js +1 -1
  57. package/dist/knowledge/workflow-guidance.d.ts +1 -0
  58. package/dist/knowledge/workflow-guidance.js +1 -1
  59. package/dist/knowledge/workspace-lists.d.ts +56 -0
  60. package/dist/knowledge/workspace-lists.js +1 -0
  61. package/dist/loop-engineering/context-collect.d.ts +1 -1
  62. package/dist/monitor/EventRouter.d.ts +10 -0
  63. package/dist/monitor/EventRouter.js +1 -0
  64. package/dist/monitor/EventStore.d.ts +32 -12
  65. package/dist/monitor/EventStore.js +1 -1
  66. package/dist/monitor/MonitorLoop.d.ts +79 -0
  67. package/dist/monitor/MonitorLoop.js +1 -0
  68. package/dist/monitor/ProblemBridge.d.ts +32 -0
  69. package/dist/monitor/ProblemBridge.js +1 -0
  70. package/dist/monitor/ScopeResolver.d.ts +59 -0
  71. package/dist/monitor/ScopeResolver.js +1 -0
  72. package/dist/monitor/SubscriptionStore.d.ts +13 -0
  73. package/dist/monitor/SubscriptionStore.js +1 -0
  74. package/dist/monitor/normalize.d.ts +8 -0
  75. package/dist/monitor/normalize.js +1 -0
  76. package/dist/monitor/types.d.ts +89 -0
  77. package/dist/monitor/types.js +1 -0
  78. package/dist/persona/address-format.d.ts +1 -1
  79. package/dist/persona/address-format.js +1 -1
  80. package/dist/persona/distill-goal.d.ts +20 -0
  81. package/dist/persona/distill-goal.js +1 -0
  82. package/dist/persona/index.d.ts +2 -0
  83. package/dist/persona/index.js +1 -1
  84. package/dist/persona/model.js +1 -1
  85. package/dist/playbooks/service-build/business-puzzle.js +1 -0
  86. package/dist/{project → playbooks/service-build}/context-assembly.d.ts +9 -4
  87. package/dist/playbooks/service-build/context-assembly.js +1 -0
  88. package/dist/{project → playbooks/service-build}/game-theory.d.ts +1 -1
  89. package/dist/playbooks/service-build/index.d.ts +14 -0
  90. package/dist/playbooks/service-build/index.js +1 -0
  91. package/dist/{project → playbooks/service-build}/intent-analyzer.d.ts +1 -1
  92. package/dist/playbooks/service-build/intent-analyzer.js +1 -0
  93. package/dist/{project → playbooks/service-build}/machine-panorama.d.ts +5 -3
  94. package/dist/playbooks/service-build/machine-panorama.js +1 -0
  95. package/dist/{project → playbooks/service-build}/merchant-guide.d.ts +1 -1
  96. package/dist/playbooks/service-build/merchant-guide.js +1 -0
  97. package/dist/{project → playbooks/service-build}/mode-actions.d.ts +2 -2
  98. package/dist/playbooks/service-build/mode-actions.js +1 -0
  99. package/dist/playbooks/service-build/namespace.d.ts +2 -0
  100. package/dist/playbooks/service-build/namespace.js +1 -0
  101. package/dist/{project → playbooks/service-build}/object-panorama.d.ts +2 -3
  102. package/dist/playbooks/service-build/object-panorama.js +1 -0
  103. package/dist/{project → playbooks/service-build}/participation-radar.d.ts +4 -5
  104. package/dist/playbooks/service-build/participation-radar.js +1 -0
  105. package/dist/{project → playbooks/service-build}/pipeline-actions.d.ts +9 -9
  106. package/dist/playbooks/service-build/pipeline-actions.js +1 -0
  107. package/dist/playbooks/service-build/process.d.ts +6 -0
  108. package/dist/playbooks/service-build/process.js +1 -0
  109. package/dist/playbooks/service-build/risk-aggregator.js +1 -0
  110. package/dist/{project → playbooks/service-build}/semantic-graph.d.ts +2 -2
  111. package/dist/{project → playbooks/service-build}/service-panorama.d.ts +3 -19
  112. package/dist/playbooks/service-build/service-panorama.js +1 -0
  113. package/dist/review/arb.d.ts +6 -0
  114. package/dist/review/arb.js +1 -0
  115. package/dist/review/demand.d.ts +3 -0
  116. package/dist/review/demand.js +1 -0
  117. package/dist/review/index.d.ts +3 -0
  118. package/dist/review/index.js +1 -0
  119. package/dist/review/machine.d.ts +3 -0
  120. package/dist/review/machine.js +1 -0
  121. package/dist/review/order.d.ts +9 -0
  122. package/dist/review/order.js +1 -0
  123. package/dist/review/progress.d.ts +3 -0
  124. package/dist/review/progress.js +1 -0
  125. package/dist/review/repository.d.ts +3 -0
  126. package/dist/review/repository.js +1 -0
  127. package/dist/review/service.d.ts +5 -0
  128. package/dist/review/service.js +1 -0
  129. package/dist/review/types.d.ts +156 -0
  130. package/dist/review/types.js +1 -0
  131. package/dist/rules.d.ts +2 -2
  132. package/dist/rules.js +1 -1
  133. package/dist/safety/confirm-gate.js +1 -1
  134. package/dist/safety/index.d.ts +1 -1
  135. package/dist/safety/index.js +1 -1
  136. package/dist/safety/preview.d.ts +1 -0
  137. package/dist/safety/preview.js +1 -1
  138. package/dist/schema/call/allocation.d.ts +1 -1
  139. package/dist/schema/call/arbitration.d.ts +1 -1
  140. package/dist/schema/call/base.d.ts +1 -1
  141. package/dist/schema/call/base.js +1 -1
  142. package/dist/schema/call/bridge.d.ts +4 -4
  143. package/dist/schema/call/contact.d.ts +1 -1
  144. package/dist/schema/call/contact.js +1 -1
  145. package/dist/schema/call/demand.d.ts +1 -1
  146. package/dist/schema/call/demand.js +1 -1
  147. package/dist/schema/call/guard.d.ts +3 -3
  148. package/dist/schema/call/handler.d.ts +0 -3
  149. package/dist/schema/call/handler.js +1 -1
  150. package/dist/schema/call/machine.d.ts +2 -2
  151. package/dist/schema/call/order.d.ts +1 -1
  152. package/dist/schema/call/payment.d.ts +1 -1
  153. package/dist/schema/call/permission.d.ts +1 -1
  154. package/dist/schema/call/personal.d.ts +1 -1
  155. package/dist/schema/call/progress.d.ts +1 -1
  156. package/dist/schema/call/proof.d.ts +2 -2
  157. package/dist/schema/call/repository.d.ts +1 -1
  158. package/dist/schema/call/repository.js +1 -1
  159. package/dist/schema/call/reward.d.ts +1 -1
  160. package/dist/schema/call/semantic.js +1 -1
  161. package/dist/schema/call/service.d.ts +1 -1
  162. package/dist/schema/call/service.js +1 -1
  163. package/dist/schema/call/treasury.d.ts +1 -1
  164. package/dist/schema/common/index.js +1 -1
  165. package/dist/schema/goal/index.d.ts +317 -0
  166. package/dist/schema/goal/index.js +1 -0
  167. package/dist/schema/goal/planning.d.ts +465 -0
  168. package/dist/schema/goal/planning.js +1 -0
  169. package/dist/schema/index.d.ts +1 -2
  170. package/dist/schema/index.js +1 -1
  171. package/dist/schema/industry-pack/index.d.ts +265 -1
  172. package/dist/schema/industry-pack/index.js +1 -1
  173. package/dist/schema/industry-pack/modes.d.ts +268 -0
  174. package/dist/schema/industry-pack/modes.js +1 -0
  175. package/dist/schema/local/index.js +1 -1
  176. package/dist/schema/operations.d.ts +216 -19
  177. package/dist/schema/operations.js +1 -1
  178. package/dist/schema/permission/index.d.ts +1 -0
  179. package/dist/schema/permission/index.js +1 -1
  180. package/dist/schema/persona/index.d.ts +40 -0
  181. package/dist/schema/persona/index.js +1 -1
  182. package/dist/schema/query/bi.d.ts +783 -0
  183. package/dist/schema/query/bi.js +1 -0
  184. package/dist/schema/query/index.d.ts +661 -0
  185. package/dist/schema/query/index.js +1 -1
  186. package/dist/schema/schema-version.js +1 -1
  187. package/dist/schema/utils/skills-recommendation.d.ts +0 -1
  188. package/dist/schema/utils/skills-recommendation.js +1 -1
  189. package/dist/schema-query-impl/index.js +1 -1
  190. package/dist/schemas/account_operation.output.json +3 -3
  191. package/dist/schemas/account_operation.schema.json +2 -2
  192. package/dist/schemas/bridge_operation.output.json +2 -2
  193. package/dist/schemas/bridge_operation.schema.json +12 -12
  194. package/dist/schemas/config_operation.output.json +1 -1
  195. package/dist/schemas/config_operation.schema.json +1 -1
  196. package/dist/schemas/goal_operation.schema.json +1016 -0
  197. package/dist/schemas/guard2file.schema.json +3 -3
  198. package/dist/schemas/index.json +12 -13
  199. package/dist/schemas/industry_pack_operation.output.json +898 -0
  200. package/dist/schemas/industry_pack_operation.schema.json +217 -2
  201. package/dist/schemas/local_info_operation.output.json +2 -2
  202. package/dist/schemas/local_mark_operation.output.json +2 -2
  203. package/dist/schemas/machineNode2file.schema.json +3 -3
  204. package/dist/schemas/messenger_operation.output.json +2 -2
  205. package/dist/schemas/monitor_events.output.json +78 -3
  206. package/dist/schemas/monitor_events.schema.json +24 -1
  207. package/dist/schemas/monitor_subscription.output.json +1462 -0
  208. package/dist/schemas/monitor_subscription.schema.json +327 -0
  209. package/dist/schemas/onchain_events.output.json +4 -4
  210. package/dist/schemas/onchain_operations.output.json +2 -2
  211. package/dist/schemas/onchain_operations.schema.json +59 -59
  212. package/dist/schemas/onchain_operations_allocation.schema.json +3 -3
  213. package/dist/schemas/onchain_operations_arbitration.schema.json +3 -3
  214. package/dist/schemas/onchain_operations_contact.schema.json +4 -4
  215. package/dist/schemas/onchain_operations_demand.schema.json +4 -4
  216. package/dist/schemas/onchain_operations_gen_passport.schema.json +3 -3
  217. package/dist/schemas/onchain_operations_gen_proof.schema.json +3 -3
  218. package/dist/schemas/onchain_operations_guard.schema.json +3 -3
  219. package/dist/schemas/onchain_operations_machine.schema.json +3 -3
  220. package/dist/schemas/onchain_operations_order.schema.json +3 -3
  221. package/dist/schemas/onchain_operations_payment.schema.json +3 -3
  222. package/dist/schemas/onchain_operations_permission.schema.json +3 -3
  223. package/dist/schemas/onchain_operations_personal.schema.json +3 -3
  224. package/dist/schemas/onchain_operations_progress.schema.json +3 -3
  225. package/dist/schemas/onchain_operations_proof.schema.json +3 -3
  226. package/dist/schemas/onchain_operations_repository.schema.json +5 -5
  227. package/dist/schemas/onchain_operations_reward.schema.json +3 -3
  228. package/dist/schemas/onchain_operations_service.schema.json +4 -4
  229. package/dist/schemas/onchain_operations_treasury.schema.json +3 -3
  230. package/dist/schemas/onchain_table_data.output.json +346 -2
  231. package/dist/schemas/onchain_table_data.schema.json +22 -22
  232. package/dist/schemas/permission_operation.schema.json +6 -2
  233. package/dist/schemas/persona_operation.output.json +145 -0
  234. package/dist/schemas/persona_operation.schema.json +28 -2
  235. package/dist/schemas/query_toolkit.output.json +1274 -15
  236. package/dist/schemas/query_toolkit.schema.json +412 -11
  237. package/dist/schemas/workflow_operation.schema.json +4 -4
  238. package/dist/task/ProcessStore.d.ts +81 -0
  239. package/dist/task/ProcessStore.js +1 -0
  240. package/dist/task/playbook.d.ts +11 -0
  241. package/dist/task/playbook.js +1 -0
  242. package/dist/task/stage-gate.d.ts +22 -0
  243. package/dist/task/stage-gate.js +1 -0
  244. package/dist/{project → task}/substep-trace.d.ts +6 -45
  245. package/dist/task/types.d.ts +120 -0
  246. package/dist/task/types.js +1 -0
  247. package/dist/tools/handlers/config.js +1 -1
  248. package/dist/tools/handlers/goal.d.ts +4 -0
  249. package/dist/tools/handlers/goal.js +1 -0
  250. package/dist/tools/handlers/industry-pack.js +1 -1
  251. package/dist/tools/handlers/monitor.d.ts +24 -0
  252. package/dist/tools/handlers/monitor.js +1 -1
  253. package/dist/tools/handlers/network.d.ts +1 -0
  254. package/dist/tools/handlers/network.js +1 -0
  255. package/dist/tools/handlers/onchain.js +1 -1
  256. package/dist/tools/handlers/permission.js +1 -1
  257. package/dist/tools/handlers/persona.js +1 -1
  258. package/dist/tools/handlers/query.js +1 -1
  259. package/dist/tools/handlers/watch.js +1 -1
  260. package/dist/tools/index.d.ts +2 -0
  261. package/dist/tools/index.js +1 -1
  262. package/dist/tools/shared.js +1 -1
  263. package/dist/tools/wrap.js +1 -1
  264. package/package.json +5 -4
  265. package/dist/harness/checkpoint.d.ts +0 -8
  266. package/dist/harness/checkpoint.js +0 -1
  267. package/dist/knowledge/deployment-scanner.d.ts +0 -66
  268. package/dist/knowledge/deployment-scanner.js +0 -1
  269. package/dist/project/business-puzzle.js +0 -1
  270. package/dist/project/context-assembly.js +0 -1
  271. package/dist/project/deployment-bridge.d.ts +0 -5
  272. package/dist/project/deployment-bridge.js +0 -1
  273. package/dist/project/deployment-doc.d.ts +0 -190
  274. package/dist/project/deployment-doc.js +0 -1
  275. package/dist/project/edit-planner.d.ts +0 -123
  276. package/dist/project/edit-planner.js +0 -1
  277. package/dist/project/evaluation-fix.spec.d.ts +0 -1
  278. package/dist/project/evaluation-fix.spec.js +0 -1
  279. package/dist/project/evaluation.d.ts +0 -127
  280. package/dist/project/evaluation.js +0 -1
  281. package/dist/project/graph-builder.d.ts +0 -51
  282. package/dist/project/graph-builder.js +0 -1
  283. package/dist/project/graph.d.ts +0 -70
  284. package/dist/project/graph.js +0 -1
  285. package/dist/project/handlers.d.ts +0 -524
  286. package/dist/project/handlers.js +0 -1
  287. package/dist/project/index.d.ts +0 -91
  288. package/dist/project/index.js +0 -1
  289. package/dist/project/intent-analyzer.js +0 -1
  290. package/dist/project/machine-panorama.js +0 -1
  291. package/dist/project/merchant-guide.js +0 -1
  292. package/dist/project/mode-actions.js +0 -1
  293. package/dist/project/namespace.d.ts +0 -72
  294. package/dist/project/namespace.js +0 -1
  295. package/dist/project/object-panorama.js +0 -1
  296. package/dist/project/participation-radar.js +0 -1
  297. package/dist/project/pipeline-actions.js +0 -1
  298. package/dist/project/project-store.d.ts +0 -110
  299. package/dist/project/project-store.js +0 -1
  300. package/dist/project/query.d.ts +0 -43
  301. package/dist/project/query.js +0 -1
  302. package/dist/project/risk-aggregator.js +0 -1
  303. package/dist/project/semantic-assembler.d.ts +0 -93
  304. package/dist/project/semantic-assembler.js +0 -1
  305. package/dist/project/service-panorama.js +0 -1
  306. package/dist/project/stage-gate.d.ts +0 -52
  307. package/dist/project/stage-gate.js +0 -1
  308. package/dist/project/task-tracker.d.ts +0 -30
  309. package/dist/project/task-tracker.js +0 -1
  310. package/dist/schema/project/index.d.ts +0 -2021
  311. package/dist/schema/project/index.js +0 -1
  312. package/dist/schema/task-status.d.ts +0 -62
  313. package/dist/schema/task-status.js +0 -1
  314. package/dist/schemas/project_operation.output.json +0 -7877
  315. package/dist/schemas/project_operation.schema.json +0 -1139
  316. package/dist/schemas/query_task_status.output.json +0 -211
  317. package/dist/schemas/query_task_status.schema.json +0 -18
  318. package/dist/tools/handlers/project.d.ts +0 -2
  319. package/dist/tools/handlers/project.js +0 -1
  320. package/dist/tools/handlers/task-status.d.ts +0 -2
  321. package/dist/tools/handlers/task-status.js +0 -1
  322. /package/dist/{project → playbooks/service-build}/business-puzzle.d.ts +0 -0
  323. /package/dist/{project → playbooks/service-build}/game-theory.js +0 -0
  324. /package/dist/{project → playbooks/service-build}/machine-nodes.d.ts +0 -0
  325. /package/dist/{project → playbooks/service-build}/machine-nodes.js +0 -0
  326. /package/dist/{project → playbooks/service-build}/object-type.d.ts +0 -0
  327. /package/dist/{project → playbooks/service-build}/object-type.js +0 -0
  328. /package/dist/{project → playbooks/service-build}/reverse-mapping.d.ts +0 -0
  329. /package/dist/{project → playbooks/service-build}/reverse-mapping.js +0 -0
  330. /package/dist/{project → playbooks/service-build}/risk-aggregator.d.ts +0 -0
  331. /package/dist/{project → playbooks/service-build}/semantic-graph.js +0 -0
  332. /package/dist/{project → playbooks/service-build}/workflow-design-assessment.d.ts +0 -0
  333. /package/dist/{project → playbooks/service-build}/workflow-design-assessment.js +0 -0
  334. /package/dist/{project → task}/substep-trace.js +0 -0
@@ -1 +1 @@
1
- import{query_objects,query_address_profile}from'@wowok/wowok';import{strictParse}from'../../schema/index.js';import{WatchOperationInputSchema}from'../../schema/watch/index.js';import{resolveWatchRole,CORE_PERMISSION_INDEX,valuePerspectiveOf,gamePowerOf,gameStrategyOf,interestAnalyzerOf,isWeakerParty,isStrongerParty}from'../../role/index.js';import{interestsOf}from'../../evaluation/index.js';import{evaluatePathReasoning}from'../../evaluation/path-reasoning.js';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{fetchPermissionContext,fetchOrderContext,fetchMachineNodes,accountCanExecuteForward,enumerateObjectOperations,isPermissionIndexType}from'../../knowledge/index.js';import{getEffectivePersona}from'../../persona/index.js';import{normalizeObjectType}from'../../project/object-type.js';async function readObject(a,b){try{const c=await query_objects({'objects':[a],'network':b}),d=c?.['objects']?.[0x0];if(!d)return undefined;const e=d?.['data']??d,f=d?.['type']??d?.['data']?.['type']??'';return{'address':String(d?.['object']??a),'type':normalizeObjectType(f),'data':e};}catch{return undefined;}}function displayName(a){if(typeof a['name']==='string'&&a['name']['length']>0x0)return a['name'];return undefined;}async function fetchUserProfile(a,b){try{const c=await query_address_profile({'address':a,'network':b});if(c&&c['kind']==='user')return c;return null;}catch{return null;}}function roleHintToCommercial(a){const b=(a??'')['toLowerCase']();if(b['includes']('customer'))return'customer';if(b['includes']('collaborator'))return'collaborator';if(b['includes']('merchant')||b['includes']('supplier'))return'merchant';if(b['includes']('demander'))return'demander';if(b['includes']('arbitrator'))return'arbitrator';return'neutral';}function resolveUserRole(a,b){const c=b['length']>0x0&&b===String(a['address']??'')['toLowerCase'](),d=a?.['role_evidence']?.['role_hint'],e=c&&d?roleHintToCommercial(d):'neutral',f={'manifest_role':e,'latent_role':undefined,'participation_role':e,'evaluation_role':e,'conflicting':![],'reason_direction':e==='neutral'?'objective':'game','derivation':c?'user-address\x20profile:\x20role_hint=\x22'+(d??'none')+'\x22\x20(order/contact/permission\x20memberships\x20+\x20reverse\x20bindings)':'user-address\x20profile\x20viewed\x20without\x20identity\x20binding\x20('+(b?'observer':'no\x20account')+')','note':c?'profile\x20of\x20this\x20address\x20itself\x20—\x20identity\x20derived\x20from\x20on-chain\x20memberships\x20and\x20reverse\x20bindings.':'address\x20profile\x20—\x20objective\x20facts\x20only;\x20supply\x20an\x20account\x20to\x20see\x20identity\x20relations.'};return f;}function toUserWatchObject(a){const b=a,c=b?.['identity'],d=b?.['reputation'],e=b?.['order_membership'],f=b?.['contact_membership'],g=b?.['permission_membership'],h=b?.['reverse_core'],i=b?.['reverse_tx'],j=(k,l)=>Array['isArray'](k)?k['length']:0x0;return{'address':b?.['address'],'object_type':'User','name':c?.['description']??undefined,'fields':{'kind':'user','identity':c?{'description':c['description']??null,'referrer':c['referrer']??null,'resource':c['resource']??null,'time':c['time']??null}:null,'reputation':d?{'like':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['like'])['length']:0x0,'dislike':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['dislike'])['length']:0x0,'favor':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['favor'])['length']:0x0,'voters':j(d?.['votes'],'v')}:null,'orders':e?{'owner':j(e?.['items']?.['filter'](k=>(k?.['role']&0x1)!==0x0),'o'),'agent':j(e?.['items']?.['filter'](k=>(k?.['role']&0x2)!==0x0),'o'),'total':j(e?.['items'],'o')}:null,'contacts':j(f?.['items'],'c'),'permissions':g?{'count':j(g?.['items'],'p'),'roles':(g?.['items']??[])['map'](k=>({'role':k?.['role']??null,'permission':k?.['permission']??null}))}:null,'reverse_bindings':{'core':j(h?.['items'],'c'),'tx':j(i?.['items'],'t'),'total':j(h?.['items'],'c')+j(i?.['items'],'t')},'activity':b?.['activity']??null,'role_evidence':b?.['role_evidence']??null}};}function buildUserRelations(a){const b=a,c=[],d=(e,f,g,h)=>{typeof f==='string'&&f['length']>0x0&&c['push']({'relation':e,'target':f,'target_type':g,'note':h});};for(const e of b?.['order_membership']?.['items']??[]){const f=(e?.['role']??0x0)&0x1?'owner':(e?.['role']??0x0)&0x2?'agent':'member';d('order',e?.['order'],'Order','member\x20as\x20'+f);}for(const g of b?.['contact_membership']?.['items']??[]){d('contact',g?.['contact'],'Contact','member');}for(const h of b?.['permission_membership']?.['items']??[]){const i=h?.['role']===0x1?'owner':h?.['role']===0x2?'admin':'entity';d('permission',h?.['permission'],'Permission','holds\x20role\x20'+i);}for(const j of b?.['reverse_core']?.['items']??[]){d('bound_by',j?.['who'],'Object','core\x20reverse\x20binding\x20(business\x20structure)');}for(const k of b?.['reverse_tx']?.['items']??[]){d('bound_by',k?.['who'],'Object','tx\x20reverse\x20binding\x20(recent\x20activity)');}for(const l of b?.['reputation']?.['votes']??[]){d('reputation',l?.['who'],'Account','voted');}return c;}async function assembleRoleInput(a,b,c,d){const e=c['toLowerCase'](),f={'account':e},g=new Set();switch(a){case'Order':{const h=b['builder'];if(typeof h==='string'&&h['length']>0x0)f['order_holder']=h;break;}case'Service':case'Demand':case'Arbitration':{const i=b['permission'];if(typeof i==='string'&&i['length']>0x0){const j=await fetchPermissionContext(i,d,![]);if(j){const k=await readObject(i,d),l=typeof k?.['data']?.['builder']==='string'?k['data']['builder']:undefined;if(j['admin']['has'](e)||l&&l['toLowerCase']()===e){const n=a==='Service'?CORE_PERMISSION_INDEX['service']:a==='Demand'?CORE_PERMISSION_INDEX['demand']:CORE_PERMISSION_INDEX['arbitration'];g['add'](n);}const m=j['table']['get'](e);if(m){for(const o of m)g['add'](o);}}}break;}case'Progress':{const q=b['namedOperator'];if(Array['isArray'](q)){const r=q['filter'](s=>Array['isArray'](s?.['operators'])&&s['operators']['some'](t=>String(t)['toLowerCase']()===e))['map'](s=>String(s?.['name']??''));if(r['length']>0x0)f['named_operator_names']=r;}break;}default:break;}if(g['size']>0x0)f['held_permission_indexes']=Array['from'](g);return f;}async function resolveRole(a,b,c,d){const e=await assembleRoleInput(a,b,c,d);let f;try{const g=await getEffectivePersona(c);f=g?.['role'];}catch{f=undefined;}return resolveWatchRole({'derivation':e,'latent_role':f});}function toWatchObject(a){if(!a)return null;const b=displayName(a['data']),c={};for(const [d,e]of Object['entries'](a['data'])){if(Array['isArray'](e)&&e['length']>0x14)continue;if(e&&typeof e==='object'&&!Array['isArray'](e))continue;c[d]=e;}return{'address':a['address'],'object_type':a['type'],'name':b,'fields':c};}async function buildRelations(b,c){const d=[],e=(f,g,h,i)=>{typeof g==='string'&&g['length']>0x0&&d['push']({'relation':f,'target':g,'target_type':h,'note':i});};switch(b){case'Service':{e('machine',c['machine'],'Machine','bound\x20workflow\x20(frozen\x20once\x20published)'),e('permission',c['permission'],'Permission','governance\x20owner');for(const f of Array['isArray'](c['arbitrations'])?c['arbitrations']:[])e('arbitration',f,'Arbitration');for(const g of Array['isArray'](c['rewards'])?c['rewards']:[])e('reward',g,'Reward');for(const h of Array['isArray'](c['repositories'])?c['repositories']:[])e('repository',h,'Repository');e('buy_guard',c['buy_guard'],'Guard','purchase\x20validation');break;}case'Order':{e('service',c['service'],'Service'),e('progress',c['progress'],'Progress'),e('machine',c['machine'],'Machine'),e('allocation',c['allocation'],'Allocation');break;}case'Demand':{e('permission',c['permission'],'Permission','governance\x20owner');break;}case'Arbitration':{e('permission',c['permission'],'Permission','governance\x20owner');break;}case'Progress':{e('machine',c['machine'],'Machine'),e('task',c['task'],'Order','bound\x20order');break;}default:break;}return d;}async function handleFocus(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const e=await fetchUserProfile(a['focus'],a['network']);if(e)return{'action':'focus','result':{'object':toUserWatchObject(e),'role':resolveUserRole(e,b)}};}let d;return c&&b?d=await resolveRole(c['type'],c['data'],b,a['network']):d={'manifest_role':'neutral','latent_role':undefined,'participation_role':'neutral','evaluation_role':'neutral','conflicting':![],'reason_direction':'objective','derivation':'no\x20account\x20supplied\x20—\x20neutral\x20observer','note':'No\x20active\x20account;\x20only\x20objective\x20facts\x20are\x20narrated.'},{'action':'focus','result':{'object':toWatchObject(c),'role':d}};}async function handleExpand(a){const b=await readObject(a['focus'],a['network']);if(!b){const e=await fetchUserProfile(a['focus'],a['network']);if(e){const f=buildUserRelations(e);if(a['relation']){const g=f['filter'](h=>h['relation']===a['relation']);return{'action':'expand','result':{'object':toUserWatchObject(e),'relations':g,'supply_chain':undefined}};}return{'action':'expand','result':{'object':toUserWatchObject(e),'relations':f,'supply_chain':undefined}};}return{'action':'expand','result':{'object':null,'relations':[],'supply_chain':undefined}};}let c=await buildRelations(b['type'],b['data']);a['relation']&&(c=c['filter'](h=>h['relation']===a['relation']));let d;if(b['type']==='Service')try{d=await resolveSupplyChainGraph(b['address'],a['network']);}catch{d=undefined;}return{'action':'expand','result':{'object':toWatchObject(b),'relations':c,'supply_chain':d}};}async function readClockNow(a){try{const b=await query_objects({'objects':['0x6'],'network':a}),c=b?.['objects']?.[0x0],d=c?.['data']??c,e=Number(d?.['timestamp_ms']);return Number['isFinite'](e)?e:null;}catch{return null;}}async function collectOperations(a,b,c){const d=[];if(a['type']==='Progress'){const e=typeof a['data']['machine']==='string'?a['data']['machine']:undefined,f=(Array['isArray'](a['data']['namedOperator'])?a['data']['namedOperator']:[])['map'](j=>({'name':String(j?.['name']??''),'operators':(j?.['operators']??[])['map'](k=>String(k))}));let g,h,i;if(e){h=await fetchMachineNodes(e,c,![]),i=typeof a['data']['task']==='string'?await fetchOrderContext(a['data']['task'],c):undefined;if(h&&h['length']>0x0)try{const j=await query_objects({'objects':[e],'network':c}),k=j?.['objects']?.[0x0],l=(k?.['data']??k)?.['permission'];if(typeof l==='string')g=await fetchPermissionContext(l,c,![]);}catch{g=undefined;}}for(const m of h??[]){for(const n of m['pairs']??[]){for(const o of n['forwards']??[]){const p=accountCanExecuteForward(o,b,f,i,g),q=o['namedOperator']!==undefined&&o['namedOperator']!==null?o['namedOperator']===''?'order_holder':'named_operator':'permission_index';d['push']({'operation':'progress_next:'+o['name'],'can_execute':p,'path':q,'note':p?undefined:'guard/permission\x20not\x20satisfied\x20for\x20this\x20account'});}}}d['push'](...enumerateObjectOperations('Progress',a['data'],b,g));}else{let r;if(isPermissionIndexType(a['type'])){const t=a['data']['permission'];typeof t==='string'&&t['length']>0x0&&(r=await fetchPermissionContext(t,c,![]));}const s=a['type']==='Service'?await readClockNow(c):null;d['push'](...enumerateObjectOperations(a['type'],a['data'],b,r,s));}return d;}async function handleActions(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const f=await fetchUserProfile(a['focus'],a['network']);if(f){const g=resolveUserRole(f,b),h=userAddressOperations(f,g);return{'action':'actions','result':{'object':toUserWatchObject(f),'role':g,'operations':h}};}return{'action':'actions','result':{'object':null,'role':null,'operations':[]}};}const d=b?await resolveRole(c['type'],c['data'],b,a['network']):null,e=b?await collectOperations(c,b,a['network']):[];return{'action':'actions','result':{'object':toWatchObject(c),'role':d,'operations':e}};}function userAddressOperations(a,b){const c=a,d=[],e=(i,j,k,l)=>d['push']({'operation':i,'can_execute':j,'path':k,'note':l}),f=Array['isArray'](c?.['permission_membership']?.['items'])?c['permission_membership']['items']['length']:0x0;f>0x0&&e('manage_permission_objects',!![],'permission_index',f+'\x20permission\x20membership(s)\x20—\x20operate\x20the\x20Service/Machine/Treasury/etc.\x20governed\x20by\x20them');const g=Array['isArray'](c?.['order_membership']?.['items'])?c['order_membership']['items']['length']:0x0;if(g>0x0){const i=c['order_membership']['items']['filter'](k=>(k?.['role']??0x0)&0x1)['length'],j=c['order_membership']['items']['filter'](k=>(k?.['role']??0x0)&0x2)['length'];if(i>0x0)e('advance_progress',!![],'order_holder',i+'\x20order(s)\x20as\x20owner\x20—\x20advance/claim');if(j>0x0)e('advance_progress',!![],'order_holder',j+'\x20order(s)\x20as\x20agent');}const h=Array['isArray'](c?.['reverse_tx']?.['items'])?c['reverse_tx']['items']['length']:0x0;return h>0x0&&e('submit_guard',![],'guard_submission',h+'\x20recent\x20tx\x20binding(s)\x20—\x20guard-gated\x20operations\x20require\x20passport\x20submissions'),d['length']===0x0&&e('prospect',b?.['participation_role']==='prospect'||b?.['manifest_role']==='neutral','none','no\x20on-chain\x20memberships\x20yet\x20—\x20explore\x20services\x20to\x20place\x20a\x20first\x20order'),d;}async function handleReason(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const n=await fetchUserProfile(a['focus'],a['network']);if(n){const o=resolveUserRole(n,b),p=toUserWatchObject(n);if(o['reason_direction']==='objective')return{'action':'reason','result':{'object':p,'identity':o,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':'user-address\x20profile\x20—\x20objective\x20facts\x20only\x20(identity,\x20reputation,\x20memberships,\x20activity);\x20bind\x20an\x20account\x20to\x20this\x20address\x20to\x20see\x20game/path\x20reasoning.'}};const q={'perspective':valuePerspectiveOf(o['participation_role']),'interest_analyzer':interestAnalyzerOf(o['participation_role']),'prefer':interestsOf(o['evaluation_role'])['prefer'],'avoid':interestsOf(o['evaluation_role'])['avoid'],'sensitivity':interestsOf(o['evaluation_role'])['sensitivity']},r={'power':gamePowerOf(o['participation_role']),'strategy':gameStrategyOf(o['participation_role']),'weaker_party':isWeakerParty(o['participation_role']),'stronger_party':isStrongerParty(o['participation_role'])};return{'action':'reason','result':{'object':p,'identity':o,'reason_direction':'game','value':q,'game':r,'path':{'operations':userAddressOperations(n,o),'summary':'address\x20holds\x20on-chain\x20memberships\x20—\x20'+o['participation_role']+'\x20capability\x20surface\x20listed.'}}};}return{'action':'reason','result':{'object':null,'identity':null,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':'focus\x20object\x20unresolvable\x20—\x20no\x20reasoning\x20possible.'}};}const d=b?await resolveRole(c['type'],c['data'],b,a['network']):{'manifest_role':'neutral','latent_role':undefined,'participation_role':'neutral','evaluation_role':'neutral','conflicting':![],'reason_direction':'objective','derivation':'no\x20account\x20supplied\x20—\x20neutral\x20observer','note':'No\x20active\x20account;\x20only\x20objective\x20facts\x20are\x20narrated.'},e=toWatchObject(c);if(d['reason_direction']==='objective')return{'action':'reason','result':{'object':e,'identity':d,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':d['participation_role']==='neutral'?'neutral\x20observer\x20—\x20no\x20on-chain\x20relationship;\x20only\x20objective\x20facts\x20are\x20narrated.':'system/observer\x20scope\x20—\x20no\x20game/path/action\x20recommendation\x20is\x20made.'}};const f=d['participation_role'],g=d['evaluation_role'],h=interestsOf(g),i={'perspective':valuePerspectiveOf(g),'interest_analyzer':interestAnalyzerOf(g),'prefer':h['prefer'],'avoid':h['avoid'],'sensitivity':h['sensitivity']},j={'power':gamePowerOf(f),'strategy':gameStrategyOf(f),'weaker_party':isWeakerParty(f),'stronger_party':isStrongerParty(f)},k=await collectOperations(c,b,a['network']),l=k['filter'](s=>s['can_execute']),m={'operations':k,'summary':k['length']+'\x20operation(s)\x20enumerated;\x20'+l['length']+'\x20executable\x20right\x20now\x20as\x20\x27'+f+'\x27.'};if(c['type']==='Progress'){const s=typeof c['data']['machine']==='string'?c['data']['machine']:undefined,t=typeof c['data']['current']==='string'?c['data']['current']:'';if(s){const u=await fetchMachineNodes(s,a['network'],![]);u&&u['length']>0x0&&(m['path_reasoning']=evaluatePathReasoning({'current_node':t,'perspective':f,'machine_nodes':u}));}}return{'action':'reason','result':{'object':e,'identity':d,'reason_direction':'game','value':i,'game':j,'path':m}};}export async function handleWatchOperation(a){const b=strictParse(WatchOperationInputSchema,a);let c;switch(b['action']){case'focus':c=await handleFocus(b);break;case'expand':c=await handleExpand(b);break;case'actions':c=await handleActions(b);break;case'reason':c=await handleReason(b);break;default:throw new Error('Unknown\x20watch\x20action:\x20'+b['action']);}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}
1
+ import{query_objects,query_address_profile}from'@wowok/wowok';import{strictParse}from'../../schema/index.js';import{WatchOperationInputSchema}from'../../schema/watch/index.js';import{resolveWatchRole,CORE_PERMISSION_INDEX,valuePerspectiveOf,gamePowerOf,gameStrategyOf,interestAnalyzerOf,isWeakerParty,isStrongerParty}from'../../role/index.js';import{interestsOf}from'../../evaluation/index.js';import{evaluatePathReasoning}from'../../evaluation/path-reasoning.js';import{resolveSupplyChainGraph}from'../../knowledge/supply-chain.js';import{fetchPermissionContext,fetchOrderContext,fetchMachineNodes,accountCanExecuteForward,enumerateObjectOperations,isPermissionIndexType}from'../../knowledge/index.js';import{getEffectivePersona}from'../../persona/index.js';import{normalizeObjectType}from'../../playbooks/service-build/object-type.js';async function readObject(a,b){try{const c=await query_objects({'objects':[a],'network':b}),d=c?.['objects']?.[0x0];if(!d)return undefined;const e=d?.['data']??d,f=d?.['type']??d?.['data']?.['type']??'';return{'address':String(d?.['object']??a),'type':normalizeObjectType(f),'data':e};}catch{return undefined;}}function displayName(a){if(typeof a['name']==='string'&&a['name']['length']>0x0)return a['name'];return undefined;}async function fetchUserProfile(a,b){try{const c=await query_address_profile({'address':a,'network':b});if(c&&c['kind']==='user')return c;return null;}catch{return null;}}function roleHintToCommercial(a){const b=(a??'')['toLowerCase']();if(b['includes']('customer'))return'customer';if(b['includes']('collaborator'))return'collaborator';if(b['includes']('merchant')||b['includes']('supplier'))return'merchant';if(b['includes']('demander'))return'demander';if(b['includes']('arbitrator'))return'arbitrator';return'neutral';}function resolveUserRole(a,b){const c=b['length']>0x0&&b===String(a['address']??'')['toLowerCase'](),d=a?.['role_evidence']?.['role_hint'],e=c&&d?roleHintToCommercial(d):'neutral',f={'manifest_role':e,'latent_role':undefined,'participation_role':e,'evaluation_role':e,'conflicting':![],'reason_direction':e==='neutral'?'objective':'game','derivation':c?'user-address\x20profile:\x20role_hint=\x22'+(d??'none')+'\x22\x20(order/contact/permission\x20memberships\x20+\x20reverse\x20bindings)':'user-address\x20profile\x20viewed\x20without\x20identity\x20binding\x20('+(b?'observer':'no\x20account')+')','note':c?'profile\x20of\x20this\x20address\x20itself\x20—\x20identity\x20derived\x20from\x20on-chain\x20memberships\x20and\x20reverse\x20bindings.':'address\x20profile\x20—\x20objective\x20facts\x20only;\x20supply\x20an\x20account\x20to\x20see\x20identity\x20relations.'};return f;}function toUserWatchObject(a){const b=a,c=b?.['identity'],d=b?.['reputation'],e=b?.['order_membership'],f=b?.['contact_membership'],g=b?.['permission_membership'],h=b?.['reverse_core'],i=b?.['reverse_tx'],j=(k,l)=>Array['isArray'](k)?k['length']:0x0;return{'address':b?.['address'],'object_type':'User','name':c?.['description']??undefined,'fields':{'kind':'user','identity':c?{'description':c['description']??null,'referrer':c['referrer']??null,'resource':c['resource']??null,'time':c['time']??null}:null,'reputation':d?{'like':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['like'])['length']:0x0,'dislike':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['dislike'])['length']:0x0,'favor':Array['isArray'](d['votes'])?d['votes']['filter'](k=>k?.['favor'])['length']:0x0,'voters':j(d?.['votes'],'v')}:null,'orders':e?{'owner':j(e?.['items']?.['filter'](k=>(k?.['role']&0x1)!==0x0),'o'),'agent':j(e?.['items']?.['filter'](k=>(k?.['role']&0x2)!==0x0),'o'),'total':j(e?.['items'],'o')}:null,'contacts':j(f?.['items'],'c'),'permissions':g?{'count':j(g?.['items'],'p'),'roles':(g?.['items']??[])['map'](k=>({'role':k?.['role']??null,'permission':k?.['permission']??null}))}:null,'reverse_bindings':{'core':j(h?.['items'],'c'),'tx':j(i?.['items'],'t'),'total':j(h?.['items'],'c')+j(i?.['items'],'t')},'activity':b?.['activity']??null,'role_evidence':b?.['role_evidence']??null}};}function buildUserRelations(a){const b=a,c=[],d=(e,f,g,h)=>{typeof f==='string'&&f['length']>0x0&&c['push']({'relation':e,'target':f,'target_type':g,'note':h});};for(const e of b?.['order_membership']?.['items']??[]){const f=(e?.['role']??0x0)&0x1?'owner':(e?.['role']??0x0)&0x2?'agent':'member';d('order',e?.['order'],'Order','member\x20as\x20'+f);}for(const g of b?.['contact_membership']?.['items']??[]){d('contact',g?.['contact'],'Contact','member');}for(const h of b?.['permission_membership']?.['items']??[]){const i=h?.['role']===0x1?'owner':h?.['role']===0x2?'admin':'entity';d('permission',h?.['permission'],'Permission','holds\x20role\x20'+i);}for(const j of b?.['reverse_core']?.['items']??[]){d('bound_by',j?.['who'],'Object','core\x20reverse\x20binding\x20(business\x20structure)');}for(const k of b?.['reverse_tx']?.['items']??[]){d('bound_by',k?.['who'],'Object','tx\x20reverse\x20binding\x20(recent\x20activity)');}for(const l of b?.['reputation']?.['votes']??[]){d('reputation',l?.['who'],'Account','voted');}return c;}async function assembleRoleInput(a,b,c,d){const e=c['toLowerCase'](),f={'account':e},g=new Set();switch(a){case'Order':{const h=b['builder'];if(typeof h==='string'&&h['length']>0x0)f['order_holder']=h;break;}case'Service':case'Demand':case'Arbitration':{const i=b['permission'];if(typeof i==='string'&&i['length']>0x0){const j=await fetchPermissionContext(i,d,![]);if(j){const k=await readObject(i,d),l=typeof k?.['data']?.['builder']==='string'?k['data']['builder']:undefined;if(j['admin']['has'](e)||l&&l['toLowerCase']()===e){const n=a==='Service'?CORE_PERMISSION_INDEX['service']:a==='Demand'?CORE_PERMISSION_INDEX['demand']:CORE_PERMISSION_INDEX['arbitration'];g['add'](n);}const m=j['table']['get'](e);if(m){for(const o of m)g['add'](o);}}}break;}case'Progress':{const q=b['namedOperator'];if(Array['isArray'](q)){const r=q['filter'](s=>Array['isArray'](s?.['operators'])&&s['operators']['some'](t=>String(t)['toLowerCase']()===e))['map'](s=>String(s?.['name']??''));if(r['length']>0x0)f['named_operator_names']=r;}break;}default:break;}if(g['size']>0x0)f['held_permission_indexes']=Array['from'](g);return f;}async function resolveRole(a,b,c,d){const e=await assembleRoleInput(a,b,c,d);let f;try{const g=await getEffectivePersona(c);f=g?.['role'];}catch{f=undefined;}return resolveWatchRole({'derivation':e,'latent_role':f});}function toWatchObject(a){if(!a)return null;const b=displayName(a['data']),c={};for(const [d,e]of Object['entries'](a['data'])){if(Array['isArray'](e)&&e['length']>0x14)continue;if(e&&typeof e==='object'&&!Array['isArray'](e))continue;c[d]=e;}return{'address':a['address'],'object_type':a['type'],'name':b,'fields':c};}async function buildRelations(b,c){const d=[],e=(f,g,h,i)=>{typeof g==='string'&&g['length']>0x0&&d['push']({'relation':f,'target':g,'target_type':h,'note':i});};switch(b){case'Service':{e('machine',c['machine'],'Machine','bound\x20workflow\x20(frozen\x20once\x20published)'),e('permission',c['permission'],'Permission','governance\x20owner');for(const f of Array['isArray'](c['arbitrations'])?c['arbitrations']:[])e('arbitration',f,'Arbitration');for(const g of Array['isArray'](c['rewards'])?c['rewards']:[])e('reward',g,'Reward');for(const h of Array['isArray'](c['repositories'])?c['repositories']:[])e('repository',h,'Repository');e('buy_guard',c['buy_guard'],'Guard','purchase\x20validation');break;}case'Order':{e('service',c['service'],'Service'),e('progress',c['progress'],'Progress'),e('machine',c['machine'],'Machine'),e('allocation',c['allocation'],'Allocation');break;}case'Demand':{e('permission',c['permission'],'Permission','governance\x20owner');break;}case'Arbitration':{e('permission',c['permission'],'Permission','governance\x20owner');break;}case'Progress':{e('machine',c['machine'],'Machine'),e('task',c['task'],'Order','bound\x20order');break;}default:break;}return d;}async function handleFocus(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const e=await fetchUserProfile(a['focus'],a['network']);if(e)return{'action':'focus','result':{'object':toUserWatchObject(e),'role':resolveUserRole(e,b)}};}let d;return c&&b?d=await resolveRole(c['type'],c['data'],b,a['network']):d={'manifest_role':'neutral','latent_role':undefined,'participation_role':'neutral','evaluation_role':'neutral','conflicting':![],'reason_direction':'objective','derivation':'no\x20account\x20supplied\x20—\x20neutral\x20observer','note':'No\x20active\x20account;\x20only\x20objective\x20facts\x20are\x20narrated.'},{'action':'focus','result':{'object':toWatchObject(c),'role':d}};}async function handleExpand(a){const b=await readObject(a['focus'],a['network']);if(!b){const e=await fetchUserProfile(a['focus'],a['network']);if(e){const f=buildUserRelations(e);if(a['relation']){const g=f['filter'](h=>h['relation']===a['relation']);return{'action':'expand','result':{'object':toUserWatchObject(e),'relations':g,'supply_chain':undefined}};}return{'action':'expand','result':{'object':toUserWatchObject(e),'relations':f,'supply_chain':undefined}};}return{'action':'expand','result':{'object':null,'relations':[],'supply_chain':undefined}};}let c=await buildRelations(b['type'],b['data']);a['relation']&&(c=c['filter'](h=>h['relation']===a['relation']));let d;if(b['type']==='Service')try{d=await resolveSupplyChainGraph(b['address'],a['network']);}catch{d=undefined;}return{'action':'expand','result':{'object':toWatchObject(b),'relations':c,'supply_chain':d}};}async function readClockNow(a){try{const b=await query_objects({'objects':['0x6'],'network':a}),c=b?.['objects']?.[0x0],d=c?.['data']??c,e=Number(d?.['timestamp_ms']);return Number['isFinite'](e)?e:null;}catch{return null;}}async function collectOperations(a,b,c){const d=[];if(a['type']==='Progress'){const e=typeof a['data']['machine']==='string'?a['data']['machine']:undefined,f=(Array['isArray'](a['data']['namedOperator'])?a['data']['namedOperator']:[])['map'](j=>({'name':String(j?.['name']??''),'operators':(j?.['operators']??[])['map'](k=>String(k))}));let g,h,i;if(e){h=await fetchMachineNodes(e,c,![]),i=typeof a['data']['task']==='string'?await fetchOrderContext(a['data']['task'],c):undefined;if(h&&h['length']>0x0)try{const j=await query_objects({'objects':[e],'network':c}),k=j?.['objects']?.[0x0],l=(k?.['data']??k)?.['permission'];if(typeof l==='string')g=await fetchPermissionContext(l,c,![]);}catch{g=undefined;}}for(const m of h??[]){for(const n of m['pairs']??[]){for(const o of n['forwards']??[]){const p=accountCanExecuteForward(o,b,f,i,g),q=o['namedOperator']!==undefined&&o['namedOperator']!==null?o['namedOperator']===''?'order_holder':'named_operator':'permission_index';d['push']({'operation':'progress_next:'+o['name'],'can_execute':p,'path':q,'note':p?undefined:'guard/permission\x20not\x20satisfied\x20for\x20this\x20account'});}}}d['push'](...enumerateObjectOperations('Progress',a['data'],b,g));}else{let r;if(isPermissionIndexType(a['type'])){const t=a['data']['permission'];typeof t==='string'&&t['length']>0x0&&(r=await fetchPermissionContext(t,c,![]));}const s=a['type']==='Service'?await readClockNow(c):null;d['push'](...enumerateObjectOperations(a['type'],a['data'],b,r,s));}return d;}async function handleActions(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const f=await fetchUserProfile(a['focus'],a['network']);if(f){const g=resolveUserRole(f,b),h=userAddressOperations(f,g);return{'action':'actions','result':{'object':toUserWatchObject(f),'role':g,'operations':h}};}return{'action':'actions','result':{'object':null,'role':null,'operations':[]}};}const d=b?await resolveRole(c['type'],c['data'],b,a['network']):null,e=b?await collectOperations(c,b,a['network']):[];return{'action':'actions','result':{'object':toWatchObject(c),'role':d,'operations':e}};}function userAddressOperations(a,b){const c=a,d=[],e=(i,j,k,l)=>d['push']({'operation':i,'can_execute':j,'path':k,'note':l}),f=Array['isArray'](c?.['permission_membership']?.['items'])?c['permission_membership']['items']['length']:0x0;f>0x0&&e('manage_permission_objects',!![],'permission_index',f+'\x20permission\x20membership(s)\x20—\x20operate\x20the\x20Service/Machine/Treasury/etc.\x20governed\x20by\x20them');const g=Array['isArray'](c?.['order_membership']?.['items'])?c['order_membership']['items']['length']:0x0;if(g>0x0){const i=c['order_membership']['items']['filter'](k=>(k?.['role']??0x0)&0x1)['length'],j=c['order_membership']['items']['filter'](k=>(k?.['role']??0x0)&0x2)['length'];if(i>0x0)e('advance_progress',!![],'order_holder',i+'\x20order(s)\x20as\x20owner\x20—\x20advance/claim');if(j>0x0)e('advance_progress',!![],'order_holder',j+'\x20order(s)\x20as\x20agent');}const h=Array['isArray'](c?.['reverse_tx']?.['items'])?c['reverse_tx']['items']['length']:0x0;return h>0x0&&e('submit_guard',![],'guard_submission',h+'\x20recent\x20tx\x20binding(s)\x20—\x20guard-gated\x20operations\x20require\x20passport\x20submissions'),d['length']===0x0&&e('prospect',b?.['participation_role']==='prospect'||b?.['manifest_role']==='neutral','none','no\x20on-chain\x20memberships\x20yet\x20—\x20explore\x20services\x20to\x20place\x20a\x20first\x20order'),d;}async function handleReason(a){const b=(a['account']??'')['toLowerCase'](),c=await readObject(a['focus'],a['network']);if(!c){const n=await fetchUserProfile(a['focus'],a['network']);if(n){const o=resolveUserRole(n,b),p=toUserWatchObject(n);if(o['reason_direction']==='objective')return{'action':'reason','result':{'object':p,'identity':o,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':'user-address\x20profile\x20—\x20objective\x20facts\x20only\x20(identity,\x20reputation,\x20memberships,\x20activity);\x20bind\x20an\x20account\x20to\x20this\x20address\x20to\x20see\x20game/path\x20reasoning.'}};const q={'perspective':valuePerspectiveOf(o['participation_role']),'interest_analyzer':interestAnalyzerOf(o['participation_role']),'prefer':interestsOf(o['evaluation_role'])['prefer'],'avoid':interestsOf(o['evaluation_role'])['avoid'],'sensitivity':interestsOf(o['evaluation_role'])['sensitivity']},r={'power':gamePowerOf(o['participation_role']),'strategy':gameStrategyOf(o['participation_role']),'weaker_party':isWeakerParty(o['participation_role']),'stronger_party':isStrongerParty(o['participation_role'])};return{'action':'reason','result':{'object':p,'identity':o,'reason_direction':'game','value':q,'game':r,'path':{'operations':userAddressOperations(n,o),'summary':'address\x20holds\x20on-chain\x20memberships\x20—\x20'+o['participation_role']+'\x20capability\x20surface\x20listed.'}}};}return{'action':'reason','result':{'object':null,'identity':null,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':'focus\x20object\x20unresolvable\x20—\x20no\x20reasoning\x20possible.'}};}const d=b?await resolveRole(c['type'],c['data'],b,a['network']):{'manifest_role':'neutral','latent_role':undefined,'participation_role':'neutral','evaluation_role':'neutral','conflicting':![],'reason_direction':'objective','derivation':'no\x20account\x20supplied\x20—\x20neutral\x20observer','note':'No\x20active\x20account;\x20only\x20objective\x20facts\x20are\x20narrated.'},e=toWatchObject(c);if(d['reason_direction']==='objective')return{'action':'reason','result':{'object':e,'identity':d,'reason_direction':'objective','value':null,'game':null,'path':null,'objective_note':d['participation_role']==='neutral'?'neutral\x20observer\x20—\x20no\x20on-chain\x20relationship;\x20only\x20objective\x20facts\x20are\x20narrated.':'system/observer\x20scope\x20—\x20no\x20game/path/action\x20recommendation\x20is\x20made.'}};const f=d['participation_role'],g=d['evaluation_role'],h=interestsOf(g),i={'perspective':valuePerspectiveOf(g),'interest_analyzer':interestAnalyzerOf(g),'prefer':h['prefer'],'avoid':h['avoid'],'sensitivity':h['sensitivity']},j={'power':gamePowerOf(f),'strategy':gameStrategyOf(f),'weaker_party':isWeakerParty(f),'stronger_party':isStrongerParty(f)},k=await collectOperations(c,b,a['network']),l=k['filter'](s=>s['can_execute']),m={'operations':k,'summary':k['length']+'\x20operation(s)\x20enumerated;\x20'+l['length']+'\x20executable\x20right\x20now\x20as\x20\x27'+f+'\x27.'};if(c['type']==='Progress'){const s=typeof c['data']['machine']==='string'?c['data']['machine']:undefined,t=typeof c['data']['current']==='string'?c['data']['current']:'';if(s){const u=await fetchMachineNodes(s,a['network'],![]);u&&u['length']>0x0&&(m['path_reasoning']=evaluatePathReasoning({'current_node':t,'perspective':f,'machine_nodes':u}));}}return{'action':'reason','result':{'object':e,'identity':d,'reason_direction':'game','value':i,'game':j,'path':m}};}export async function handleWatchOperation(a){const b=strictParse(WatchOperationInputSchema,a);let c;switch(b['action']){case'focus':c=await handleFocus(b);break;case'expand':c=await handleExpand(b);break;case'actions':c=await handleActions(b);break;case'reason':c=await handleReason(b);break;default:throw new Error('Unknown\x20watch\x20action:\x20'+b['action']);}return{'content':[{'type':'text','text':JSON['stringify']({'result':c})}],'structuredContent':{'result':c}};}
@@ -2,6 +2,8 @@ import { type McpServer } from "@modelcontextprotocol/server";
2
2
  import type { ToolEntry, ToolDispatchResult, DispatchOptions } from "./types.js";
3
3
  export { monitorEventStore, MonitorEventStore, monitorEventId } from "../monitor/EventStore.js";
4
4
  export type { MonitorEventRecord, MonitorEventWithSeen, MonitorEventModule, LegacyMonitorState, } from "../monitor/EventStore.js";
5
+ export { monitorLoop, MonitorLoop } from "../monitor/MonitorLoop.js";
6
+ export { MONITOR_CAPTURE_TYPES } from "../monitor/normalize.js";
5
7
  export declare const TOOL_REGISTRY: ToolEntry[];
6
8
  export declare const TOOL_REGISTRY_MAP: Map<string, ToolEntry>;
7
9
  export declare const SUB_TOOL_COUNT: number;