@wowok/agent-mcp 2.4.3 → 2.5.0

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 (317) hide show
  1. package/dist/config/runtime.d.ts +4 -0
  2. package/dist/config/runtime.js +29 -5
  3. package/dist/harness/auto-escalation.d.ts +27 -0
  4. package/dist/harness/auto-escalation.js +68 -0
  5. package/dist/index.js +21 -0
  6. package/dist/knowledge/allocation-confirm.d.ts +115 -0
  7. package/dist/knowledge/allocation-confirm.js +534 -0
  8. package/dist/knowledge/allocation-context.d.ts +58 -0
  9. package/dist/knowledge/allocation-context.js +249 -0
  10. package/dist/knowledge/allocation-ledger.d.ts +67 -0
  11. package/dist/knowledge/allocation-ledger.js +463 -0
  12. package/dist/knowledge/allocation-puzzle.d.ts +135 -0
  13. package/dist/knowledge/allocation-puzzle.js +298 -0
  14. package/dist/knowledge/allocation-risk.d.ts +78 -0
  15. package/dist/knowledge/allocation-risk.js +568 -0
  16. package/dist/knowledge/allocation-templates.d.ts +38 -0
  17. package/dist/knowledge/allocation-templates.js +970 -0
  18. package/dist/knowledge/allocation-translation.d.ts +72 -0
  19. package/dist/knowledge/allocation-translation.js +585 -0
  20. package/dist/knowledge/arb-risk.d.ts +37 -0
  21. package/dist/knowledge/arb-risk.js +210 -0
  22. package/dist/knowledge/arbitration-confirm.d.ts +135 -0
  23. package/dist/knowledge/arbitration-confirm.js +559 -0
  24. package/dist/knowledge/arbitration-context.d.ts +81 -0
  25. package/dist/knowledge/arbitration-context.js +505 -0
  26. package/dist/knowledge/arbitration-ledger.d.ts +62 -0
  27. package/dist/knowledge/arbitration-ledger.js +521 -0
  28. package/dist/knowledge/arbitration-puzzle.d.ts +84 -0
  29. package/dist/knowledge/arbitration-puzzle.js +304 -0
  30. package/dist/knowledge/arbitration-risk.d.ts +112 -0
  31. package/dist/knowledge/arbitration-risk.js +433 -0
  32. package/dist/knowledge/arbitration-templates.d.ts +38 -0
  33. package/dist/knowledge/arbitration-templates.js +276 -0
  34. package/dist/knowledge/arbitration-translation.d.ts +91 -0
  35. package/dist/knowledge/arbitration-translation.js +487 -0
  36. package/dist/knowledge/bridge-risk.d.ts +36 -0
  37. package/dist/knowledge/bridge-risk.js +263 -0
  38. package/dist/knowledge/contact-risk.d.ts +32 -0
  39. package/dist/knowledge/contact-risk.js +200 -0
  40. package/dist/knowledge/demand-confirm.d.ts +32 -0
  41. package/dist/knowledge/demand-confirm.js +206 -0
  42. package/dist/knowledge/demand-risk.d.ts +30 -0
  43. package/dist/knowledge/demand-risk.js +240 -0
  44. package/dist/knowledge/demand-translation.d.ts +55 -0
  45. package/dist/knowledge/demand-translation.js +354 -0
  46. package/dist/knowledge/deployment-scanner.d.ts +63 -0
  47. package/dist/knowledge/deployment-scanner.js +762 -0
  48. package/dist/knowledge/examples-scanner-cli.d.ts +1 -0
  49. package/dist/knowledge/examples-scanner-cli.js +26 -0
  50. package/dist/knowledge/examples-scanner.d.ts +121 -0
  51. package/dist/knowledge/examples-scanner.js +825 -0
  52. package/dist/knowledge/flywheel-loop.d.ts +3 -0
  53. package/dist/knowledge/flywheel-loop.js +32 -3
  54. package/dist/knowledge/glossary.js +3 -1
  55. package/dist/knowledge/guard-confirm.d.ts +86 -0
  56. package/dist/knowledge/guard-confirm.js +406 -0
  57. package/dist/knowledge/guard-context.d.ts +56 -0
  58. package/dist/knowledge/guard-context.js +287 -0
  59. package/dist/knowledge/guard-design-patterns.d.ts +37 -0
  60. package/dist/knowledge/guard-design-patterns.js +257 -0
  61. package/dist/knowledge/guard-puzzle.js +3 -2
  62. package/dist/knowledge/guard-risk.d.ts +1 -1
  63. package/dist/knowledge/guard-risk.js +12 -14
  64. package/dist/knowledge/guard-templates.js +1 -1
  65. package/dist/knowledge/guard-translation.js +6 -5
  66. package/dist/knowledge/index.d.ts +342 -0
  67. package/dist/knowledge/index.js +344 -0
  68. package/dist/knowledge/machine-confirm.d.ts +102 -0
  69. package/dist/knowledge/machine-confirm.js +559 -0
  70. package/dist/knowledge/machine-context.d.ts +160 -0
  71. package/dist/knowledge/machine-context.js +812 -0
  72. package/dist/knowledge/machine-ledger.d.ts +41 -0
  73. package/dist/knowledge/machine-ledger.js +315 -0
  74. package/dist/knowledge/machine-puzzle.d.ts +206 -0
  75. package/dist/knowledge/machine-puzzle.js +494 -0
  76. package/dist/knowledge/machine-risk.d.ts +75 -0
  77. package/dist/knowledge/machine-risk.js +644 -0
  78. package/dist/knowledge/machine-templates.d.ts +92 -0
  79. package/dist/knowledge/machine-templates.js +1592 -0
  80. package/dist/knowledge/machine-topology.d.ts +57 -0
  81. package/dist/knowledge/machine-topology.js +234 -0
  82. package/dist/knowledge/machine-translation.d.ts +96 -0
  83. package/dist/knowledge/machine-translation.js +513 -0
  84. package/dist/knowledge/mcp-schema-audit-cli.d.ts +1 -0
  85. package/dist/knowledge/mcp-schema-audit-cli.js +45 -0
  86. package/dist/knowledge/mcp-schema-audit.d.ts +90 -0
  87. package/dist/knowledge/mcp-schema-audit.js +772 -0
  88. package/dist/knowledge/onchain-constants.d.ts +4 -0
  89. package/dist/knowledge/onchain-constants.js +35 -0
  90. package/dist/knowledge/order-confirm.d.ts +115 -0
  91. package/dist/knowledge/order-confirm.js +573 -0
  92. package/dist/knowledge/order-context.d.ts +66 -0
  93. package/dist/knowledge/order-context.js +390 -0
  94. package/dist/knowledge/order-ledger.d.ts +69 -0
  95. package/dist/knowledge/order-ledger.js +341 -0
  96. package/dist/knowledge/order-puzzle.d.ts +159 -0
  97. package/dist/knowledge/order-puzzle.js +255 -0
  98. package/dist/knowledge/order-risk.d.ts +66 -0
  99. package/dist/knowledge/order-risk.js +653 -0
  100. package/dist/knowledge/order-templates.d.ts +50 -0
  101. package/dist/knowledge/order-templates.js +368 -0
  102. package/dist/knowledge/order-translation.d.ts +78 -0
  103. package/dist/knowledge/order-translation.js +550 -0
  104. package/dist/knowledge/passport-confirm.d.ts +130 -0
  105. package/dist/knowledge/passport-confirm.js +531 -0
  106. package/dist/knowledge/passport-context.d.ts +59 -0
  107. package/dist/knowledge/passport-context.js +306 -0
  108. package/dist/knowledge/passport-ledger.d.ts +48 -0
  109. package/dist/knowledge/passport-ledger.js +282 -0
  110. package/dist/knowledge/passport-puzzle.d.ts +108 -0
  111. package/dist/knowledge/passport-puzzle.js +333 -0
  112. package/dist/knowledge/passport-risk.d.ts +70 -0
  113. package/dist/knowledge/passport-risk.js +450 -0
  114. package/dist/knowledge/passport-templates.d.ts +40 -0
  115. package/dist/knowledge/passport-templates.js +568 -0
  116. package/dist/knowledge/passport-translation.d.ts +68 -0
  117. package/dist/knowledge/passport-translation.js +516 -0
  118. package/dist/knowledge/payment-risk.d.ts +33 -0
  119. package/dist/knowledge/payment-risk.js +182 -0
  120. package/dist/knowledge/permission-confirm.d.ts +110 -0
  121. package/dist/knowledge/permission-confirm.js +426 -0
  122. package/dist/knowledge/permission-context.d.ts +58 -0
  123. package/dist/knowledge/permission-context.js +224 -0
  124. package/dist/knowledge/permission-ledger.d.ts +38 -0
  125. package/dist/knowledge/permission-ledger.js +403 -0
  126. package/dist/knowledge/permission-puzzle.d.ts +122 -0
  127. package/dist/knowledge/permission-puzzle.js +173 -0
  128. package/dist/knowledge/permission-risk.d.ts +76 -0
  129. package/dist/knowledge/permission-risk.js +411 -0
  130. package/dist/knowledge/permission-templates.d.ts +38 -0
  131. package/dist/knowledge/permission-templates.js +234 -0
  132. package/dist/knowledge/permission-translation.d.ts +57 -0
  133. package/dist/knowledge/permission-translation.js +350 -0
  134. package/dist/knowledge/personal-risk.d.ts +36 -0
  135. package/dist/knowledge/personal-risk.js +212 -0
  136. package/dist/knowledge/progress-confirm.d.ts +108 -0
  137. package/dist/knowledge/progress-confirm.js +456 -0
  138. package/dist/knowledge/progress-context.d.ts +123 -0
  139. package/dist/knowledge/progress-context.js +452 -0
  140. package/dist/knowledge/progress-ledger.d.ts +63 -0
  141. package/dist/knowledge/progress-ledger.js +327 -0
  142. package/dist/knowledge/progress-puzzle.d.ts +82 -0
  143. package/dist/knowledge/progress-puzzle.js +219 -0
  144. package/dist/knowledge/progress-risk.d.ts +74 -0
  145. package/dist/knowledge/progress-risk.js +461 -0
  146. package/dist/knowledge/progress-templates.d.ts +38 -0
  147. package/dist/knowledge/progress-templates.js +228 -0
  148. package/dist/knowledge/progress-translation.d.ts +52 -0
  149. package/dist/knowledge/progress-translation.js +401 -0
  150. package/dist/knowledge/proof-confirm.d.ts +31 -0
  151. package/dist/knowledge/proof-confirm.js +187 -0
  152. package/dist/knowledge/proof-risk.d.ts +33 -0
  153. package/dist/knowledge/proof-risk.js +207 -0
  154. package/dist/knowledge/proof-translation.d.ts +52 -0
  155. package/dist/knowledge/proof-translation.js +283 -0
  156. package/dist/knowledge/registrar-risk.d.ts +34 -0
  157. package/dist/knowledge/registrar-risk.js +217 -0
  158. package/dist/knowledge/repository-confirm.d.ts +36 -0
  159. package/dist/knowledge/repository-confirm.js +242 -0
  160. package/dist/knowledge/repository-risk.d.ts +40 -0
  161. package/dist/knowledge/repository-risk.js +312 -0
  162. package/dist/knowledge/repository-translation.d.ts +58 -0
  163. package/dist/knowledge/repository-translation.js +422 -0
  164. package/dist/knowledge/resource-risk.d.ts +32 -0
  165. package/dist/knowledge/resource-risk.js +157 -0
  166. package/dist/knowledge/reward-confirm.d.ts +113 -0
  167. package/dist/knowledge/reward-confirm.js +496 -0
  168. package/dist/knowledge/reward-context.d.ts +127 -0
  169. package/dist/knowledge/reward-context.js +504 -0
  170. package/dist/knowledge/reward-ledger.d.ts +96 -0
  171. package/dist/knowledge/reward-ledger.js +502 -0
  172. package/dist/knowledge/reward-puzzle.d.ts +97 -0
  173. package/dist/knowledge/reward-puzzle.js +288 -0
  174. package/dist/knowledge/reward-risk.d.ts +84 -0
  175. package/dist/knowledge/reward-risk.js +545 -0
  176. package/dist/knowledge/reward-translation.d.ts +58 -0
  177. package/dist/knowledge/reward-translation.js +501 -0
  178. package/dist/knowledge/safety-rules.js +11 -3
  179. package/dist/knowledge/scenario-modes.d.ts +53 -0
  180. package/dist/knowledge/scenario-modes.js +302 -0
  181. package/dist/knowledge/service-confirm.d.ts +152 -0
  182. package/dist/knowledge/service-confirm.js +699 -0
  183. package/dist/knowledge/service-context.d.ts +66 -0
  184. package/dist/knowledge/service-context.js +403 -0
  185. package/dist/knowledge/service-ledger.d.ts +71 -0
  186. package/dist/knowledge/service-ledger.js +609 -0
  187. package/dist/knowledge/service-puzzle.d.ts +158 -0
  188. package/dist/knowledge/service-puzzle.js +236 -0
  189. package/dist/knowledge/service-risk.d.ts +108 -0
  190. package/dist/knowledge/service-risk.js +615 -0
  191. package/dist/knowledge/service-templates.d.ts +39 -0
  192. package/dist/knowledge/service-templates.js +418 -0
  193. package/dist/knowledge/service-translation.d.ts +103 -0
  194. package/dist/knowledge/service-translation.js +622 -0
  195. package/dist/knowledge/tools-reference.d.ts +17 -0
  196. package/dist/knowledge/tools-reference.js +151 -0
  197. package/dist/knowledge/treasury-confirm.d.ts +133 -0
  198. package/dist/knowledge/treasury-confirm.js +512 -0
  199. package/dist/knowledge/treasury-context.d.ts +64 -0
  200. package/dist/knowledge/treasury-context.js +363 -0
  201. package/dist/knowledge/treasury-ledger.d.ts +42 -0
  202. package/dist/knowledge/treasury-ledger.js +300 -0
  203. package/dist/knowledge/treasury-puzzle.d.ts +163 -0
  204. package/dist/knowledge/treasury-puzzle.js +216 -0
  205. package/dist/knowledge/treasury-risk.d.ts +86 -0
  206. package/dist/knowledge/treasury-risk.js +440 -0
  207. package/dist/knowledge/treasury-templates.d.ts +38 -0
  208. package/dist/knowledge/treasury-templates.js +316 -0
  209. package/dist/knowledge/treasury-translation.d.ts +78 -0
  210. package/dist/knowledge/treasury-translation.js +498 -0
  211. package/dist/knowledge/util-risk.d.ts +30 -0
  212. package/dist/knowledge/util-risk.js +135 -0
  213. package/dist/project/business-puzzle.d.ts +47 -0
  214. package/dist/project/business-puzzle.js +372 -0
  215. package/dist/project/deployment-doc.d.ts +61 -0
  216. package/dist/project/deployment-doc.js +432 -0
  217. package/dist/project/risk-aggregator.d.ts +50 -0
  218. package/dist/project/risk-aggregator.js +280 -0
  219. package/dist/project/substep-trace.d.ts +130 -0
  220. package/dist/project/substep-trace.js +332 -0
  221. package/dist/schema/call/allocation.d.ts +34 -34
  222. package/dist/schema/call/arbitration.d.ts +141 -141
  223. package/dist/schema/call/base.d.ts +386 -386
  224. package/dist/schema/call/base.js +3 -3
  225. package/dist/schema/call/bridge-handler.d.ts +5 -2
  226. package/dist/schema/call/bridge.d.ts +159 -159
  227. package/dist/schema/call/contact.d.ts +110 -110
  228. package/dist/schema/call/demand.d.ts +76 -76
  229. package/dist/schema/call/handler.d.ts +2 -3
  230. package/dist/schema/call/handler.js +1 -1
  231. package/dist/schema/call/machine.d.ts +58 -58
  232. package/dist/schema/call/order.d.ts +98 -110
  233. package/dist/schema/call/permission-handler.d.ts +5 -0
  234. package/dist/schema/call/permission-handler.js +54 -0
  235. package/dist/schema/call/permission.d.ts +108 -108
  236. package/dist/schema/call/personal.d.ts +14 -14
  237. package/dist/schema/call/progress.d.ts +57 -72
  238. package/dist/schema/call/progress.js +7 -4
  239. package/dist/schema/call/proof.d.ts +18 -18
  240. package/dist/schema/call/proof.js +12 -7
  241. package/dist/schema/call/repository.d.ts +154 -154
  242. package/dist/schema/call/reward.d.ts +55 -55
  243. package/dist/schema/call/service.d.ts +231 -231
  244. package/dist/schema/call/treasury.d.ts +93 -93
  245. package/dist/schema/config/index.d.ts +178 -5
  246. package/dist/schema/config/index.js +52 -1
  247. package/dist/schema/local/index.d.ts +3554 -836
  248. package/dist/schema/local/index.js +2 -1
  249. package/dist/schema/messenger/index.d.ts +162 -162
  250. package/dist/schema/operations.d.ts +1058 -1074
  251. package/dist/schema/operations.js +7 -1
  252. package/dist/schema/project/index.d.ts +1392 -6
  253. package/dist/schema/project/index.js +426 -2
  254. package/dist/schema/query/index.d.ts +672 -672
  255. package/dist/schema/schema-query/index.d.ts +23 -3
  256. package/dist/schema/schema-query/index.js +13 -2
  257. package/dist/schema/sync-layer4.d.ts +21 -0
  258. package/dist/schema/sync-layer4.js +261 -0
  259. package/dist/schema/trust/index.d.ts +26 -26
  260. package/dist/schemas/account_operation.output.json +718 -0
  261. package/dist/schemas/config_operation.output.json +173 -0
  262. package/dist/schemas/index.json +9 -1
  263. package/dist/schemas/local_info_operation.output.json +718 -0
  264. package/dist/schemas/local_mark_operation.output.json +718 -0
  265. package/dist/schemas/onchain_operations.output.json +3 -2
  266. package/dist/schemas/onchain_operations.schema.json +1802 -313
  267. package/dist/schemas/onchain_operations_allocation.schema.json +2 -1
  268. package/dist/schemas/onchain_operations_arbitration.schema.json +2 -1
  269. package/dist/schemas/onchain_operations_contact.schema.json +2 -1
  270. package/dist/schemas/onchain_operations_demand.schema.json +2 -1
  271. package/dist/schemas/onchain_operations_gen_passport.schema.json +878 -872
  272. package/dist/schemas/onchain_operations_gen_proof.schema.json +273 -0
  273. package/dist/schemas/onchain_operations_guard.schema.json +584 -70
  274. package/dist/schemas/onchain_operations_machine.schema.json +2 -1
  275. package/dist/schemas/onchain_operations_order.schema.json +13 -9
  276. package/dist/schemas/onchain_operations_payment.schema.json +2 -1
  277. package/dist/schemas/onchain_operations_permission.schema.json +2 -1
  278. package/dist/schemas/onchain_operations_personal.schema.json +2 -1
  279. package/dist/schemas/onchain_operations_progress.schema.json +14 -10
  280. package/dist/schemas/onchain_operations_proof.schema.json +699 -0
  281. package/dist/schemas/onchain_operations_repository.schema.json +2 -1
  282. package/dist/schemas/onchain_operations_reward.schema.json +2 -1
  283. package/dist/schemas/onchain_operations_service.schema.json +2 -1
  284. package/dist/schemas/onchain_operations_treasury.schema.json +2 -1
  285. package/dist/schemas/onchain_table_data.schema.json +32 -1
  286. package/dist/schemas/project_operation.output.json +879 -0
  287. package/dist/schemas/project_operation.schema.json +473 -2
  288. package/dist/schemas/query_toolkit.output.json +14906 -6
  289. package/dist/schemas/schema_query.output.json +38 -1
  290. package/dist/telemetry/index.d.ts +1 -1
  291. package/dist/tools/handlers/config.d.ts +1 -1
  292. package/dist/tools/handlers/config.js +21 -18
  293. package/dist/tools/handlers/file-export.d.ts +2 -2
  294. package/dist/tools/handlers/local.d.ts +3 -30
  295. package/dist/tools/handlers/local.js +14 -3
  296. package/dist/tools/handlers/messenger.d.ts +1 -1
  297. package/dist/tools/handlers/messenger.js +2 -1
  298. package/dist/tools/handlers/onchain.d.ts +1 -1
  299. package/dist/tools/handlers/onchain.js +24 -22
  300. package/dist/tools/handlers/project.d.ts +1 -1
  301. package/dist/tools/handlers/project.js +258 -18
  302. package/dist/tools/handlers/query.d.ts +4 -4
  303. package/dist/tools/handlers/schema-query.d.ts +1 -1
  304. package/dist/tools/handlers/schema-query.js +21 -20
  305. package/dist/tools/handlers/trust.d.ts +1 -1
  306. package/dist/tools/handlers/trust.js +2 -2
  307. package/dist/tools/handlers/wip.d.ts +1 -1
  308. package/dist/tools/handlers/wip.js +1 -1
  309. package/dist/tools/index.d.ts +1 -1
  310. package/dist/tools/index.js +55 -8
  311. package/dist/tools/rules-hook.d.ts +1 -1
  312. package/dist/tools/rules-hook.js +3 -2
  313. package/dist/tools/shared.d.ts +13 -22
  314. package/dist/tools/types.d.ts +5 -5
  315. package/dist/tools/wrap.d.ts +10 -2
  316. package/dist/tools/wrap.js +212 -0
  317. package/package.json +3 -3
@@ -0,0 +1,494 @@
1
+ import { inferSceneFromFlow, findScene, } from "./machine-ledger.js";
2
+ import { MACHINE_TEMPLATES, getTemplateById, } from "./machine-templates.js";
3
+ import { matchSemanticPattern, identifyExecutionMode, } from "./machine-translation.js";
4
+ import { analyzeTopology, identifyTopologyPattern, } from "./machine-topology.js";
5
+ export function initPuzzleFromIntent(intent) {
6
+ const scene = inferSceneFromFlow(intent);
7
+ const template = scene
8
+ ? MACHINE_TEMPLATES.find((t) => t.scene_id === scene.id)
9
+ : undefined;
10
+ const pattern = matchSemanticPattern(intent);
11
+ return {
12
+ version: "1.0.0",
13
+ business_flow: {
14
+ scenario_description: intent,
15
+ scene_id: scene?.id,
16
+ template_id: template?.id,
17
+ industry: scene?.industry[0],
18
+ participation_mode: "P-M4",
19
+ },
20
+ node_design: {
21
+ nodes: [],
22
+ topological_order: [],
23
+ business_stage_mapping: {},
24
+ },
25
+ guard_acceptance: {
26
+ guard_bindings: [],
27
+ name_length_verified: false,
28
+ all_guards_created: false,
29
+ cross_machine_guards: [],
30
+ },
31
+ permission_model: {
32
+ forward_permissions: [],
33
+ named_operator_roles: [],
34
+ completeness_verified: false,
35
+ },
36
+ threshold_weight: {
37
+ pair_thresholds: [],
38
+ forward_weights: [],
39
+ execution_mode: pattern?.id || "P-M-SEQ",
40
+ allocator_integration: [],
41
+ },
42
+ branch_topology: {
43
+ topology_pattern: "P-M-LINEAR",
44
+ branching_points: [],
45
+ merge_points: [],
46
+ is_dag: true,
47
+ },
48
+ overall_objective: {
49
+ primary_branch: { start_node: "", end_node: "", description: "" },
50
+ secondary_branches: [],
51
+ success_criteria: "",
52
+ failure_criteria: "",
53
+ },
54
+ risk_assessment: {
55
+ overall_risk_level: "low",
56
+ identified_risks: [],
57
+ mitigation_strategy: "",
58
+ environment_readiness: {
59
+ permission_published: false,
60
+ guards_published: false,
61
+ arbitration_published: false,
62
+ reward_published: false,
63
+ testnet_tested: false,
64
+ },
65
+ },
66
+ };
67
+ }
68
+ export function initPuzzleFromTemplate(templateId) {
69
+ const template = getTemplateById(templateId);
70
+ if (!template)
71
+ return undefined;
72
+ const scene = findScene(template.scene_id);
73
+ if (!scene)
74
+ return undefined;
75
+ const puzzle = initPuzzleFromIntent(template.description);
76
+ puzzle.business_flow.template_id = template.id;
77
+ puzzle.business_flow.scene_id = scene.id;
78
+ puzzle.business_flow.industry = scene.industry[0];
79
+ puzzle.business_flow.participation_mode = "P-M1";
80
+ puzzle.node_design.nodes = template.example_nodes.map((n) => ({
81
+ name: n.name,
82
+ description: n.description || "",
83
+ is_entry: false,
84
+ is_terminal: false,
85
+ }));
86
+ puzzle.permission_model.permission_object = {
87
+ use_custom: true,
88
+ custom_indices: template.required_permissions.map((p) => ({
89
+ index: p.index,
90
+ name: p.name,
91
+ description: p.description,
92
+ })),
93
+ };
94
+ puzzle.guard_acceptance.guard_bindings = template.required_guards.map((g) => ({
95
+ forward_id: {
96
+ pair_id: { prev_node: "", next_node: "" },
97
+ forward_name: g.bound_to_forward,
98
+ },
99
+ guard_template_id: g.guard_template_id,
100
+ purpose: g.purpose,
101
+ tested_on_testnet: false,
102
+ }));
103
+ puzzle.threshold_weight.allocator_integration = template.required_allocators.map((a) => ({
104
+ name: a.name,
105
+ trigger_node: a.trigger_node,
106
+ sharing_who: "Entity",
107
+ recipient_description: a.description,
108
+ }));
109
+ return puzzle;
110
+ }
111
+ function resolveFragmentNameConflicts(fragments) {
112
+ const allNodes = [];
113
+ const allPairs = [];
114
+ const renameMap = new Map();
115
+ for (let i = 0; i < fragments.length; i++) {
116
+ const frag = fragments[i];
117
+ const localRename = new Map();
118
+ for (const node of frag.nodes) {
119
+ const isEntryTarget = frag.pairs.some((p) => p.prev_node === "" && p.next_node === node.name);
120
+ const newName = isEntryTarget ? node.name : `f${i}__${node.name}`;
121
+ localRename.set(node.name, newName);
122
+ allNodes.push({ name: newName, description: node.description });
123
+ }
124
+ renameMap.set(i, localRename);
125
+ for (const pair of frag.pairs) {
126
+ const localRenames = renameMap.get(i);
127
+ const newPrev = pair.prev_node === "" ? "" : (localRenames.get(pair.prev_node) ?? pair.prev_node);
128
+ const newNext = localRenames.get(pair.next_node) ?? pair.next_node;
129
+ allPairs.push({
130
+ prev_node: newPrev,
131
+ next_node: newNext,
132
+ threshold: pair.threshold,
133
+ forwards: pair.forwards.map((f) => ({ ...f })),
134
+ });
135
+ }
136
+ }
137
+ return { nodes: allNodes, pairs: allPairs };
138
+ }
139
+ export function initPuzzleFromMachineId(machineId, machineJson) {
140
+ const puzzle = derivePuzzleFromMachineJson(machineJson);
141
+ puzzle.business_flow.participation_mode = "P-M1";
142
+ puzzle.business_flow.referenced_machine_ids = [machineId];
143
+ puzzle.business_flow.scenario_description =
144
+ `Reference to published Machine ${machineId}` +
145
+ (machineJson.name ? ` (${machineJson.name})` : "");
146
+ return puzzle;
147
+ }
148
+ export function initPuzzleFromFragments(fragments) {
149
+ if (fragments.length === 0) {
150
+ const puzzle = initPuzzleFromIntent("(composition of zero fragments)");
151
+ puzzle.business_flow.participation_mode = "P-M2";
152
+ return puzzle;
153
+ }
154
+ const { nodes, pairs } = resolveFragmentNameConflicts(fragments);
155
+ const mergedSceneId = fragments.find((f) => f.scene_id)?.scene_id;
156
+ const mergedTemplateId = fragments.find((f) => f.template_id)?.template_id;
157
+ const mergedName = fragments.map((f) => f.name ?? "(unnamed)").join(" + ");
158
+ const puzzle = derivePuzzleFromMachineJson({
159
+ name: mergedName,
160
+ nodes,
161
+ pairs,
162
+ scene_id: mergedSceneId,
163
+ template_id: mergedTemplateId,
164
+ });
165
+ puzzle.business_flow.participation_mode = "P-M2";
166
+ puzzle.business_flow.scenario_description =
167
+ `Composition of ${fragments.length} Machine fragments: ${mergedName}`;
168
+ return puzzle;
169
+ }
170
+ export function initPuzzleForCrossChain(machineBId, machineBJson) {
171
+ const puzzle = initPuzzleFromIntent(`Cross-chain dependency on upstream Machine ${machineBId}`);
172
+ puzzle.business_flow.participation_mode = "P-M3";
173
+ puzzle.business_flow.referenced_machine_ids = [machineBId];
174
+ if (machineBJson) {
175
+ const upstreamTopology = analyzeTopology(machineBJson.nodes, machineBJson.pairs);
176
+ for (const terminalNode of upstreamTopology.terminal_nodes) {
177
+ puzzle.guard_acceptance.cross_machine_guards.push({
178
+ forward_id: {
179
+ pair_id: { prev_node: "", next_node: "" },
180
+ forward_name: "",
181
+ },
182
+ upstream_machine_id: machineBId,
183
+ upstream_node_name: terminalNode,
184
+ });
185
+ }
186
+ }
187
+ return puzzle;
188
+ }
189
+ export function initPuzzleForForkModify(machineId, machineJson) {
190
+ const puzzle = derivePuzzleFromMachineJson(machineJson);
191
+ puzzle.business_flow.participation_mode = "P-M5";
192
+ puzzle.business_flow.referenced_machine_ids = [machineId];
193
+ puzzle.business_flow.fork_source_template_id =
194
+ machineJson.template_id ?? machineId;
195
+ puzzle.business_flow.scenario_description =
196
+ `Fork-modify from Machine ${machineId}` +
197
+ (machineJson.name ? ` (${machineJson.name})` : "");
198
+ return puzzle;
199
+ }
200
+ export function checkPuzzleCompleteness(puzzle) {
201
+ const dimensions = [];
202
+ const aMissing = [];
203
+ if (!puzzle.business_flow.scenario_description)
204
+ aMissing.push("scenario_description");
205
+ if (!puzzle.business_flow.scene_id)
206
+ aMissing.push("scene_id");
207
+ if (!puzzle.business_flow.participation_mode)
208
+ aMissing.push("participation_mode");
209
+ dimensions.push({
210
+ dimension: "A_business_flow",
211
+ complete: aMissing.length === 0,
212
+ missing_fields: aMissing,
213
+ });
214
+ const bMissing = [];
215
+ if (puzzle.node_design.nodes.length === 0)
216
+ bMissing.push("nodes (empty)");
217
+ dimensions.push({
218
+ dimension: "B_node_design",
219
+ complete: bMissing.length === 0,
220
+ missing_fields: bMissing,
221
+ });
222
+ const cMissing = [];
223
+ if (!puzzle.guard_acceptance.all_guards_created)
224
+ cMissing.push("all_guards_created");
225
+ dimensions.push({
226
+ dimension: "C_guard_acceptance",
227
+ complete: cMissing.length === 0,
228
+ missing_fields: cMissing,
229
+ });
230
+ const dMissing = [];
231
+ if (!puzzle.permission_model.completeness_verified)
232
+ dMissing.push("completeness_verified");
233
+ dimensions.push({
234
+ dimension: "D_permission_model",
235
+ complete: dMissing.length === 0,
236
+ missing_fields: dMissing,
237
+ });
238
+ const eMissing = [];
239
+ if (puzzle.threshold_weight.pair_thresholds.length === 0)
240
+ eMissing.push("pair_thresholds (empty)");
241
+ dimensions.push({
242
+ dimension: "E_threshold_weight",
243
+ complete: eMissing.length === 0,
244
+ missing_fields: eMissing,
245
+ });
246
+ const fMissing = [];
247
+ if (!puzzle.branch_topology.is_dag)
248
+ fMissing.push("is_dag (cycle detected)");
249
+ dimensions.push({
250
+ dimension: "F_branch_topology",
251
+ complete: fMissing.length === 0,
252
+ missing_fields: fMissing,
253
+ });
254
+ const gMissing = [];
255
+ if (!puzzle.overall_objective.primary_branch.end_node)
256
+ gMissing.push("primary_branch.end_node");
257
+ if (!puzzle.overall_objective.success_criteria)
258
+ gMissing.push("success_criteria");
259
+ dimensions.push({
260
+ dimension: "G_overall_objective",
261
+ complete: gMissing.length === 0,
262
+ missing_fields: gMissing,
263
+ });
264
+ const hMissing = [];
265
+ if (puzzle.risk_assessment.overall_risk_level === "critical")
266
+ hMissing.push("overall_risk_level=critical (must fix)");
267
+ dimensions.push({
268
+ dimension: "H_risk_assessment",
269
+ complete: hMissing.length === 0,
270
+ missing_fields: hMissing,
271
+ });
272
+ const complete = dimensions.every((d) => d.complete);
273
+ const firstIncomplete = dimensions.find((d) => !d.complete);
274
+ let next_step = "All dimensions complete. Ready for confirmation.";
275
+ if (firstIncomplete) {
276
+ next_step = `Complete dimension ${firstIncomplete.dimension}: ${firstIncomplete.missing_fields.join(", ")}`;
277
+ }
278
+ return { complete, dimensions, next_step };
279
+ }
280
+ export function recommendNextStep(puzzle) {
281
+ const completeness = checkPuzzleCompleteness(puzzle);
282
+ return completeness.next_step;
283
+ }
284
+ export function derivePuzzleFromMachineJson(machine) {
285
+ const topology = analyzeTopology(machine.nodes, machine.pairs);
286
+ const topologyPattern = identifyTopologyPattern(machine.pairs);
287
+ const node_design = {
288
+ nodes: machine.nodes.map((n) => ({
289
+ name: n.name,
290
+ description: n.description || "",
291
+ is_entry: topology.entry_nodes.includes(n.name),
292
+ is_terminal: topology.terminal_nodes.includes(n.name),
293
+ })),
294
+ topological_order: [],
295
+ business_stage_mapping: {},
296
+ };
297
+ const forward_permissions = [];
298
+ const named_operator_roles = [];
299
+ const roleSet = new Set();
300
+ for (const pair of machine.pairs) {
301
+ for (const fwd of pair.forwards) {
302
+ const hasNamed = fwd.named_operator !== undefined;
303
+ const hasPerm = fwd.permission_index !== undefined;
304
+ forward_permissions.push({
305
+ forward: {
306
+ pair_id: { prev_node: pair.prev_node, next_node: pair.next_node },
307
+ forward_name: fwd.name,
308
+ },
309
+ namedOperator: hasNamed
310
+ ? { type: fwd.named_operator === "" ? "order_holder" : "role", role: fwd.named_operator || undefined }
311
+ : { type: "none" },
312
+ permissionIndex: hasPerm
313
+ ? { type: "custom", index: fwd.permission_index }
314
+ : { type: "none" },
315
+ semantic: "",
316
+ });
317
+ if (fwd.named_operator && fwd.named_operator !== "" && !roleSet.has(fwd.named_operator)) {
318
+ roleSet.add(fwd.named_operator);
319
+ named_operator_roles.push({
320
+ role: fwd.named_operator,
321
+ semantic: "",
322
+ assignment_timing: "at_progress_new_via_sdk",
323
+ });
324
+ }
325
+ }
326
+ }
327
+ const pair_thresholds = machine.pairs.map((p) => ({
328
+ pair_id: { prev_node: p.prev_node, next_node: p.next_node },
329
+ threshold: p.threshold,
330
+ semantic: "",
331
+ }));
332
+ const forward_weights = machine.pairs.flatMap((p) => p.forwards.map((f) => ({
333
+ forward_id: {
334
+ pair_id: { prev_node: p.prev_node, next_node: p.next_node },
335
+ forward_name: f.name,
336
+ },
337
+ weight: f.weight,
338
+ semantic: "",
339
+ })));
340
+ const executionMode = machine.pairs.length > 0
341
+ ? identifyExecutionMode({
342
+ threshold: machine.pairs[0].threshold,
343
+ forwards: machine.pairs[0].forwards.map((f) => ({
344
+ weight: f.weight,
345
+ named_operator: f.named_operator,
346
+ permission_index: f.permission_index,
347
+ })),
348
+ })
349
+ : "P-M-SEQ";
350
+ const branching_points = [];
351
+ const merge_points = [];
352
+ const outgoing = new Map();
353
+ const incoming = new Map();
354
+ for (const pair of machine.pairs) {
355
+ if (!outgoing.has(pair.prev_node))
356
+ outgoing.set(pair.prev_node, []);
357
+ outgoing.get(pair.prev_node).push(pair.next_node);
358
+ if (!incoming.has(pair.next_node))
359
+ incoming.set(pair.next_node, []);
360
+ incoming.get(pair.next_node).push(pair.prev_node);
361
+ }
362
+ for (const [node, nexts] of outgoing) {
363
+ if (nexts.length > 1 && node !== "") {
364
+ branching_points.push({
365
+ node,
366
+ branches: nexts,
367
+ branch_type: "competing",
368
+ });
369
+ }
370
+ }
371
+ for (const [node, prevs] of incoming) {
372
+ if (prevs.length > 1) {
373
+ merge_points.push({ node, incoming_from: prevs });
374
+ }
375
+ }
376
+ return {
377
+ version: "1.0.0",
378
+ business_flow: {
379
+ scenario_description: "",
380
+ scene_id: machine.scene_id,
381
+ template_id: machine.template_id,
382
+ participation_mode: "P-M1",
383
+ },
384
+ node_design,
385
+ guard_acceptance: {
386
+ guard_bindings: machine.pairs.flatMap((p) => p.forwards
387
+ .filter((f) => f.guard)
388
+ .map((f) => ({
389
+ forward_id: {
390
+ pair_id: { prev_node: p.prev_node, next_node: p.next_node },
391
+ forward_name: f.name,
392
+ },
393
+ guard_address: f.guard,
394
+ purpose: "",
395
+ tested_on_testnet: false,
396
+ }))),
397
+ name_length_verified: true,
398
+ all_guards_created: true,
399
+ cross_machine_guards: [],
400
+ },
401
+ permission_model: {
402
+ forward_permissions,
403
+ named_operator_roles,
404
+ completeness_verified: true,
405
+ },
406
+ threshold_weight: {
407
+ pair_thresholds,
408
+ forward_weights,
409
+ execution_mode: executionMode,
410
+ allocator_integration: [],
411
+ },
412
+ branch_topology: {
413
+ topology_pattern: topologyPattern,
414
+ branching_points,
415
+ merge_points,
416
+ is_dag: !topology.has_cycles,
417
+ },
418
+ overall_objective: {
419
+ primary_branch: {
420
+ start_node: topology.entry_nodes[0] || "",
421
+ end_node: topology.terminal_nodes[0] || "",
422
+ description: "",
423
+ },
424
+ secondary_branches: [],
425
+ success_criteria: "",
426
+ failure_criteria: "",
427
+ },
428
+ risk_assessment: {
429
+ overall_risk_level: "low",
430
+ identified_risks: [],
431
+ mitigation_strategy: "",
432
+ environment_readiness: {
433
+ permission_published: false,
434
+ guards_published: false,
435
+ arbitration_published: false,
436
+ reward_published: false,
437
+ testnet_tested: false,
438
+ },
439
+ },
440
+ };
441
+ }
442
+ export function generateConfirmationText(puzzle) {
443
+ const lines = [
444
+ "=== Machine Puzzle Summary ===",
445
+ "",
446
+ "A. Business Flow:",
447
+ ` Scenario: ${puzzle.business_flow.scenario_description || "(not set)"}`,
448
+ ` Scene: ${puzzle.business_flow.scene_id || "(not set)"}`,
449
+ ` Template: ${puzzle.business_flow.template_id || "(not set)"}`,
450
+ ` Participation: ${puzzle.business_flow.participation_mode || "(not set)"}`,
451
+ "",
452
+ "B. Node Design:",
453
+ ` Nodes: ${puzzle.node_design.nodes.length}`,
454
+ ...puzzle.node_design.nodes.slice(0, 10).map((n) => ` - ${n.name}${n.is_entry ? " [ENTRY]" : ""}${n.is_terminal ? " [TERMINAL]" : ""}`),
455
+ puzzle.node_design.nodes.length > 10 ? ` ... and ${puzzle.node_design.nodes.length - 10} more` : "",
456
+ "",
457
+ "C. Guard Acceptance:",
458
+ ` Guards bound: ${puzzle.guard_acceptance.guard_bindings.length}`,
459
+ ` All created: ${puzzle.guard_acceptance.all_guards_created ? "YES" : "NO"}`,
460
+ ` Name length verified: ${puzzle.guard_acceptance.name_length_verified ? "YES" : "NO"}`,
461
+ ` Cross-machine: ${puzzle.guard_acceptance.cross_machine_guards.length}`,
462
+ "",
463
+ "D. Permission Model:",
464
+ ` Forward permissions: ${puzzle.permission_model.forward_permissions.length}`,
465
+ ` NamedOperator roles: ${puzzle.permission_model.named_operator_roles.length}`,
466
+ ` Completeness verified: ${puzzle.permission_model.completeness_verified ? "YES" : "NO"}`,
467
+ "",
468
+ "E. Threshold & Weight:",
469
+ ` Pair thresholds: ${puzzle.threshold_weight.pair_thresholds.length}`,
470
+ ` Forward weights: ${puzzle.threshold_weight.forward_weights.length}`,
471
+ ` Execution mode: ${puzzle.threshold_weight.execution_mode}`,
472
+ ` Allocators: ${puzzle.threshold_weight.allocator_integration.length}`,
473
+ "",
474
+ "F. Branch Topology:",
475
+ ` Pattern: ${puzzle.branch_topology.topology_pattern}`,
476
+ ` Branching points: ${puzzle.branch_topology.branching_points.length}`,
477
+ ` Merge points: ${puzzle.branch_topology.merge_points.length}`,
478
+ ` Is DAG: ${puzzle.branch_topology.is_dag ? "YES" : "NO"}`,
479
+ "",
480
+ "G. Overall Objective:",
481
+ ` Primary: ${puzzle.overall_objective.primary_branch.start_node} -> ${puzzle.overall_objective.primary_branch.end_node}`,
482
+ ` Secondary branches: ${puzzle.overall_objective.secondary_branches.length}`,
483
+ "",
484
+ "H. Risk Assessment:",
485
+ ` Overall level: ${puzzle.risk_assessment.overall_risk_level}`,
486
+ ` Identified risks: ${puzzle.risk_assessment.identified_risks.length}`,
487
+ "",
488
+ ];
489
+ if (puzzle.environment) {
490
+ lines.push("Environment:", ` Network: ${puzzle.environment.network}`, ` Testnet passed: ${puzzle.environment.testnet_test_passed ? "YES" : "NO"}`, ` Backup created: ${puzzle.environment.backup_created ? "YES" : "NO"}`, "");
491
+ }
492
+ return lines.filter((l) => l !== "").join("\n");
493
+ }
494
+ export const MACHINE_PUZZLE_VERSION = "1.0.0";
@@ -0,0 +1,75 @@
1
+ export type MachineRiskLevel = "critical" | "high" | "medium" | "low";
2
+ export type MachineRiskCategory = "structural" | "guard_integration" | "permission" | "immutability" | "environment";
3
+ export interface MachineRiskRule {
4
+ id: string;
5
+ name: string;
6
+ category: MachineRiskCategory;
7
+ severity: MachineRiskLevel;
8
+ description: string;
9
+ detection: string;
10
+ recommendation: string;
11
+ auto_fixable: boolean;
12
+ related_constraint?: string;
13
+ }
14
+ export interface MachineRisk {
15
+ rule_id: string;
16
+ name: string;
17
+ severity: MachineRiskLevel;
18
+ detail: string;
19
+ recommendation: string;
20
+ auto_fixable: boolean;
21
+ }
22
+ export interface MachineRiskAssessment {
23
+ overall_level: MachineRiskLevel;
24
+ detected_risks: MachineRisk[];
25
+ summary: {
26
+ critical: number;
27
+ high: number;
28
+ medium: number;
29
+ low: number;
30
+ };
31
+ recommendation: "publish" | "fix_first" | "do_not_publish";
32
+ }
33
+ export interface MachineJsonForRisk {
34
+ nodes: Array<{
35
+ name: string;
36
+ description?: string;
37
+ }>;
38
+ pairs: Array<{
39
+ prev_node: string;
40
+ next_node: string;
41
+ threshold: number;
42
+ forwards: Array<{
43
+ name: string;
44
+ weight: number;
45
+ named_operator?: string;
46
+ permission_index?: number;
47
+ guard?: string;
48
+ retained_submission?: string | string[] | number[];
49
+ }>;
50
+ }>;
51
+ b_published?: boolean;
52
+ b_paused?: boolean;
53
+ scene_id?: string;
54
+ }
55
+ export interface ProjectContextForRisk {
56
+ network: "testnet" | "mainnet";
57
+ testnet_test_passed: boolean;
58
+ published_services: Set<string>;
59
+ published_guards: Set<string>;
60
+ published_permissions: Set<string>;
61
+ published_machines: Set<string>;
62
+ published_arbitrations: Set<string>;
63
+ published_rewards: Set<string>;
64
+ published_allocators: Set<string>;
65
+ published_repositories: Set<string>;
66
+ }
67
+ export declare const MACHINE_RISK_RULES: MachineRiskRule[];
68
+ export declare function assessMachineRisks(machine: MachineJsonForRisk, context: ProjectContextForRisk): MachineRiskAssessment;
69
+ export declare function getRiskRulesByCategory(category: MachineRiskCategory): MachineRiskRule[];
70
+ export declare function getRiskRuleById(id: string): MachineRiskRule | undefined;
71
+ export declare function getRiskRulesBySeverity(severity: MachineRiskLevel): MachineRiskRule[];
72
+ export declare function getAutoFixableRules(): MachineRiskRule[];
73
+ export declare function getRiskSummary(assessment: MachineRiskAssessment): string;
74
+ export declare const MACHINE_RISK_VERSION = "1.0.0";
75
+ export declare const MACHINE_RISK_RULES_COUNT: number;