@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,41 @@
1
+ export interface ParticipantRoleDef {
2
+ role: string;
3
+ permission_type: "Permission" | "NamedOperator" | "OrderHolder";
4
+ involved_in: string[];
5
+ }
6
+ export interface GuardRequirement {
7
+ forward: string;
8
+ scene: string;
9
+ purpose: string;
10
+ }
11
+ export interface MachineScene {
12
+ id: string;
13
+ name: string;
14
+ industry: string[];
15
+ scenario: string;
16
+ participants: ParticipantRoleDef[];
17
+ recommended_patterns: string[];
18
+ recommended_topology: string[];
19
+ guard_requirements: GuardRequirement[];
20
+ allocation_integration: string;
21
+ special_constraints: string[];
22
+ mutable_after_publish: boolean;
23
+ m_rounds_focus: string[];
24
+ }
25
+ export declare const MACHINE_SCENES: MachineScene[];
26
+ export declare const MACHINE_LEDGER_VERSION = "1.0.0";
27
+ export declare const MACHINE_SCENES_COUNT: number;
28
+ export declare function findScene(id: string): MachineScene | undefined;
29
+ export declare function getScenesByIndustry(industry: string): MachineScene[];
30
+ export declare function getScenesByPattern(patternId: string): MachineScene[];
31
+ export declare function getScenesByTopology(topologyId: string): MachineScene[];
32
+ export declare function inferSceneFromFlow(description: string): MachineScene | undefined;
33
+ export declare function getImmutableScenes(): MachineScene[];
34
+ export declare function getScenesWithGuardRequirements(): MachineScene[];
35
+ export declare function getReferencedGuardSceneIds(): Set<string>;
36
+ export declare function listScenes(): Array<{
37
+ id: string;
38
+ name: string;
39
+ scenario: string;
40
+ patterns: string[];
41
+ }>;
@@ -0,0 +1,315 @@
1
+ export const MACHINE_SCENES = [
2
+ {
3
+ id: "ecommerce_standard",
4
+ name: "Standard E-commerce Flow",
5
+ industry: ["ecommerce"],
6
+ scenario: "Order → Pay → Ship → Receive → Complete",
7
+ participants: [
8
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Order", "Receive"] },
9
+ { role: "merchant", permission_type: "Permission", involved_in: ["Ship"] },
10
+ ],
11
+ recommended_patterns: ["P-M-SEQ"],
12
+ recommended_topology: ["P-M-LINEAR"],
13
+ guard_requirements: [
14
+ { forward: "Ship", scene: "machine_forward_guard", purpose: "Verify payment completion" },
15
+ { forward: "Receive", scene: "machine_forward_guard", purpose: "Verify identity" },
16
+ ],
17
+ allocation_integration: "Complete node -> Allocator distributes funds to merchant",
18
+ special_constraints: [
19
+ "Payment must complete before shipping (Guard verifies order.amount is paid)",
20
+ "Receipt auto-triggers fund allocation",
21
+ ],
22
+ mutable_after_publish: false,
23
+ m_rounds_focus: ["M1", "M2", "M3", "M5", "M8"],
24
+ },
25
+ {
26
+ id: "ecommerce_with_exceptions",
27
+ name: "E-commerce Flow with Exception Branches",
28
+ industry: ["ecommerce"],
29
+ scenario: "Order → Pay → Ship → {Receive → Complete | Lost → Arbitration | Return → Refund}",
30
+ participants: [
31
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Order", "Receive", "Return"] },
32
+ { role: "merchant", permission_type: "Permission", involved_in: ["Ship", "Refund"] },
33
+ { role: "arbitrator", permission_type: "NamedOperator", involved_in: ["Arbitration"] },
34
+ ],
35
+ recommended_patterns: ["P-M-SEQ", "P-M-COMPETING"],
36
+ recommended_topology: ["P-M-LINEAR", "P-M-COMPETING"],
37
+ guard_requirements: [
38
+ { forward: "Lost", scene: "machine_forward_guard", purpose: "Dual-sig to confirm lost" },
39
+ { forward: "Arbitration", scene: "arbitration_usage_guard", purpose: "Verify arbitration eligibility" },
40
+ ],
41
+ allocation_integration: "Complete->merchant | Refund->customer | Arb->arbitrator",
42
+ special_constraints: [
43
+ "Lost node threshold=2 (customer + merchant dual-sig)",
44
+ "Competing Pair: Receive vs Lost (first-wins)",
45
+ "Arbitration flow independent of main flow",
46
+ ],
47
+ mutable_after_publish: false,
48
+ m_rounds_focus: ["M1", "M2", "M3", "M5", "M6", "M8"],
49
+ },
50
+ {
51
+ id: "rental_standard",
52
+ name: "Equipment Rental Flow",
53
+ industry: ["rental"],
54
+ scenario: "Reserve → Pay Deposit → Pickup → In Use → Return → Refund Deposit",
55
+ participants: [
56
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Reserve", "Pickup", "Return"] },
57
+ { role: "merchant", permission_type: "Permission", involved_in: ["Deliver", "Refund Deposit"] },
58
+ ],
59
+ recommended_patterns: ["P-M-SEQ"],
60
+ recommended_topology: ["P-M-LINEAR"],
61
+ guard_requirements: [
62
+ { forward: "Pickup", scene: "machine_forward_guard", purpose: "Verify deposit paid" },
63
+ { forward: "Return", scene: "machine_forward_guard", purpose: "Verify equipment condition" },
64
+ ],
65
+ allocation_integration: "Return complete -> deposit refund + rental fee allocation",
66
+ special_constraints: [
67
+ "Deposit and rental fee separated (two Allocators)",
68
+ "Equipment damage verified by Guard (retained_submission stores inspection report)",
69
+ ],
70
+ mutable_after_publish: false,
71
+ m_rounds_focus: ["M1", "M2", "M3", "M5", "M8"],
72
+ },
73
+ {
74
+ id: "dual_signature",
75
+ name: "Dual-Signature Consensus Flow",
76
+ industry: ["ecommerce", "service", "logistics"],
77
+ scenario: "Critical node requires customer + merchant dual confirmation to advance",
78
+ participants: [
79
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Confirm"] },
80
+ { role: "merchant", permission_type: "Permission", involved_in: ["Confirm"] },
81
+ ],
82
+ recommended_patterns: ["P-M-AND"],
83
+ recommended_topology: ["P-M-LINEAR"],
84
+ guard_requirements: [
85
+ { forward: "Both Confirm", scene: "machine_forward_guard", purpose: "Verify identity" },
86
+ ],
87
+ allocation_integration: "After dual-sig -> fund allocation",
88
+ special_constraints: [
89
+ "threshold=2, two Forwards with weight=1 each",
90
+ "Customer Forward: namedOperator='' (OrderHolder)",
91
+ "Merchant Forward: permissionIndex=2",
92
+ ],
93
+ mutable_after_publish: false,
94
+ m_rounds_focus: ["M3", "M4", "M5"],
95
+ },
96
+ {
97
+ id: "weighted_voting",
98
+ name: "Weighted Voting Flow",
99
+ industry: ["governance", "arbitration"],
100
+ scenario: "Multi-party voting with unequal weights, accumulate to threshold to advance",
101
+ participants: [
102
+ { role: "chief", permission_type: "Permission", involved_in: ["Vote"] },
103
+ { role: "member", permission_type: "NamedOperator", involved_in: ["Vote"] },
104
+ ],
105
+ recommended_patterns: ["P-M-VOTE"],
106
+ recommended_topology: ["P-M-LINEAR"],
107
+ guard_requirements: [
108
+ { forward: "Vote", scene: "arbitration_voting_guard", purpose: "Verify voting eligibility + weight extraction" },
109
+ ],
110
+ allocation_integration: "After voting complete -> result execution",
111
+ special_constraints: [
112
+ "threshold=100, chief weight=60, member weight=40",
113
+ "GuardIdentifier must be numeric type (extracts weight)",
114
+ "Prevent double-voting (Guard queries arb.voted has)",
115
+ ],
116
+ mutable_after_publish: false,
117
+ m_rounds_focus: ["M3", "M4", "M5"],
118
+ },
119
+ {
120
+ id: "cross_machine_supply_chain",
121
+ name: "Cross-Machine Supply Chain",
122
+ industry: ["manufacturing", "logistics", "retail"],
123
+ scenario: "Supplier → Manufacturer → Retailer, each link is independent Machine",
124
+ participants: [
125
+ { role: "supplier", permission_type: "Permission", involved_in: ["Machine A"] },
126
+ { role: "manufacturer", permission_type: "Permission", involved_in: ["Machine B"] },
127
+ { role: "retailer", permission_type: "Permission", involved_in: ["Machine C"] },
128
+ ],
129
+ recommended_patterns: ["P-M-CROSS-MACHINE"],
130
+ recommended_topology: ["P-M-LINEAR"],
131
+ guard_requirements: [
132
+ { forward: "Start Manufacturing", scene: "machine_forward_guard", purpose: "Verify supplier Progress completed" },
133
+ { forward: "Start Retail", scene: "machine_forward_guard", purpose: "Verify manufacturer Progress completed" },
134
+ ],
135
+ allocation_integration: "Each Machine has independent allocation",
136
+ special_constraints: [
137
+ "Machine B's Guard uses convert_witness=100 to query Machine A's Progress",
138
+ "Cross-Machine dependency is one-way (no cycles)",
139
+ "Each Machine must be published independently",
140
+ "Dependency verification: indirect via progress::new -> assert_published (see 06 §14.6)",
141
+ ],
142
+ mutable_after_publish: false,
143
+ m_rounds_focus: ["M1", "M3", "M8"],
144
+ },
145
+ {
146
+ id: "privacy_delivery",
147
+ name: "Privacy Delivery Flow",
148
+ industry: ["ecommerce", "logistics"],
149
+ scenario: "Privacy data delivered via Messenger (encrypted), chain stores only Proof",
150
+ participants: [
151
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Submit Proof"] },
152
+ { role: "merchant", permission_type: "Permission", involved_in: ["Verify Proof"] },
153
+ ],
154
+ recommended_patterns: ["P-M-SEQ"],
155
+ recommended_topology: ["P-M-LINEAR"],
156
+ guard_requirements: [
157
+ { forward: "Submit Proof", scene: "machine_forward_guard", purpose: "Verify Proof signature + timestamp" },
158
+ ],
159
+ allocation_integration: "After Proof verified -> continue flow",
160
+ special_constraints: [
161
+ "Uses tpl_forward_privacy_delivery_proof template (strict mode)",
162
+ "retained_submission preserves Proof address for arbitration query",
163
+ "Proof MUST be generated by messenger.submitChainProof",
164
+ "submitChainProof about_address = peerAddress (NOT sessionId)",
165
+ "Guard table item name <64 BCS bytes (MAX_NAME_LENGTH=64)",
166
+ ],
167
+ mutable_after_publish: false,
168
+ m_rounds_focus: ["M1", "M3", "M7"],
169
+ },
170
+ {
171
+ id: "reward_incentive",
172
+ name: "Reward Incentive Flow",
173
+ industry: ["ecommerce", "subscription", "education"],
174
+ scenario: "Trigger Reward claim after completing specific node",
175
+ participants: [
176
+ { role: "customer", permission_type: "OrderHolder", involved_in: ["Claim Reward"] },
177
+ { role: "platform", permission_type: "Permission", involved_in: ["Issue Reward"] },
178
+ ],
179
+ recommended_patterns: ["P-M-SEQ"],
180
+ recommended_topology: ["P-M-LINEAR"],
181
+ guard_requirements: [
182
+ { forward: "Claim", scene: "reward_guard", purpose: "Verify claim eligibility + prevent double-claim" },
183
+ ],
184
+ allocation_integration: "Reward is independent of Allocation",
185
+ special_constraints: [
186
+ "Reward Guard must prevent double-claim (R-X1-14 CRITICAL)",
187
+ "Uses query_reward_record_count == 0 for anti-reentry",
188
+ "Reward object must be already created",
189
+ ],
190
+ mutable_after_publish: false,
191
+ m_rounds_focus: ["M1", "M3", "M8"],
192
+ },
193
+ {
194
+ id: "arbitration_flow",
195
+ name: "Arbitration Flow",
196
+ industry: ["ecommerce", "service", "rental"],
197
+ scenario: "Dispute → Submit → Vote → Ruling → Execute",
198
+ participants: [
199
+ { role: "disputant", permission_type: "OrderHolder", involved_in: ["Submit Dispute"] },
200
+ { role: "arbitrator", permission_type: "NamedOperator", involved_in: ["Vote"] },
201
+ { role: "system", permission_type: "Permission", involved_in: ["Execute Ruling"] },
202
+ ],
203
+ recommended_patterns: ["P-M-VOTE", "P-M-SEQ"],
204
+ recommended_topology: ["P-M-LINEAR"],
205
+ guard_requirements: [
206
+ { forward: "Submit Dispute", scene: "arbitration_usage_guard", purpose: "Verify dispute eligibility + prevent double-dispute" },
207
+ { forward: "Vote", scene: "arbitration_voting_guard", purpose: "Verify voting eligibility + extract weight" },
208
+ ],
209
+ allocation_integration: "After ruling -> distribute funds according to ruling",
210
+ special_constraints: [
211
+ "Arbitration object must be already created",
212
+ "Prevent double-dispute (R-X1-14 HIGH)",
213
+ "Prevent double-vote (R-X1-14 CRITICAL)",
214
+ "MAX_DISPUTE_COUNT=10 per order",
215
+ ],
216
+ mutable_after_publish: false,
217
+ m_rounds_focus: ["M1", "M3", "M4", "M5", "M8"],
218
+ },
219
+ {
220
+ id: "subscription",
221
+ name: "Subscription / Membership Flow",
222
+ industry: ["subscription", "service"],
223
+ scenario: "Subscribe → Pay → Activate → [Renew | Expire] → Cancel/End",
224
+ participants: [
225
+ { role: "subscriber", permission_type: "OrderHolder", involved_in: ["Subscribe", "Renew", "Cancel"] },
226
+ { role: "provider", permission_type: "Permission", involved_in: ["Activate", "Pause"] },
227
+ ],
228
+ recommended_patterns: ["P-M-SEQ", "P-M-COMPETING"],
229
+ recommended_topology: ["P-M-LINEAR", "P-M-COMPETING"],
230
+ guard_requirements: [
231
+ { forward: "Renew", scene: "machine_forward_guard", purpose: "Time-lock verification" },
232
+ { forward: "Cancel", scene: "machine_forward_guard", purpose: "Verify subscription status" },
233
+ ],
234
+ allocation_integration: "Renew -> fund allocation | Expire -> stop service",
235
+ special_constraints: [
236
+ "Time-lock: context(Clock) >= progress.entry_time + duration",
237
+ "Competing Pair: Renew vs Expire (first-wins)",
238
+ "Repository records subscription status",
239
+ "Note: Machine.consensus_repositories is declarative-only and NOT auto-passed to Progress (see 06 §14.4)",
240
+ ],
241
+ mutable_after_publish: false,
242
+ m_rounds_focus: ["M1", "M3", "M6", "M8"],
243
+ },
244
+ ];
245
+ export const MACHINE_LEDGER_VERSION = "1.0.0";
246
+ export const MACHINE_SCENES_COUNT = MACHINE_SCENES.length;
247
+ export function findScene(id) {
248
+ return MACHINE_SCENES.find((s) => s.id === id);
249
+ }
250
+ export function getScenesByIndustry(industry) {
251
+ return MACHINE_SCENES.filter((s) => s.industry.includes(industry));
252
+ }
253
+ export function getScenesByPattern(patternId) {
254
+ return MACHINE_SCENES.filter((s) => s.recommended_patterns.includes(patternId));
255
+ }
256
+ export function getScenesByTopology(topologyId) {
257
+ return MACHINE_SCENES.filter((s) => s.recommended_topology.includes(topologyId));
258
+ }
259
+ export function inferSceneFromFlow(description) {
260
+ const lower = description.toLowerCase();
261
+ if (lower.includes("supply chain") || lower.includes("cross-machine")) {
262
+ return findScene("cross_machine_supply_chain");
263
+ }
264
+ if (lower.includes("arbitration") || lower.includes("dispute")) {
265
+ return findScene("arbitration_flow");
266
+ }
267
+ if (lower.includes("reward") || lower.includes("incentive")) {
268
+ return findScene("reward_incentive");
269
+ }
270
+ if (lower.includes("privacy") || lower.includes("messenger")) {
271
+ return findScene("privacy_delivery");
272
+ }
273
+ if (lower.includes("vote") || lower.includes("weight")) {
274
+ return findScene("weighted_voting");
275
+ }
276
+ if (lower.includes("dual-sig") || lower.includes("both confirm")) {
277
+ return findScene("dual_signature");
278
+ }
279
+ if (lower.includes("subscribe") || lower.includes("membership")) {
280
+ return findScene("subscription");
281
+ }
282
+ if (lower.includes("rental") || lower.includes("deposit")) {
283
+ return findScene("rental_standard");
284
+ }
285
+ if (lower.includes("lost") || lower.includes("return")) {
286
+ return findScene("ecommerce_with_exceptions");
287
+ }
288
+ if (lower.includes("ecommerce") || lower.includes("order")) {
289
+ return findScene("ecommerce_standard");
290
+ }
291
+ return undefined;
292
+ }
293
+ export function getImmutableScenes() {
294
+ return MACHINE_SCENES.filter((s) => !s.mutable_after_publish);
295
+ }
296
+ export function getScenesWithGuardRequirements() {
297
+ return MACHINE_SCENES.filter((s) => s.guard_requirements.length > 0);
298
+ }
299
+ export function getReferencedGuardSceneIds() {
300
+ const ids = new Set();
301
+ for (const scene of MACHINE_SCENES) {
302
+ for (const req of scene.guard_requirements) {
303
+ ids.add(req.scene);
304
+ }
305
+ }
306
+ return ids;
307
+ }
308
+ export function listScenes() {
309
+ return MACHINE_SCENES.map((s) => ({
310
+ id: s.id,
311
+ name: s.name,
312
+ scenario: s.scenario,
313
+ patterns: s.recommended_patterns,
314
+ }));
315
+ }
@@ -0,0 +1,206 @@
1
+ import { type MachineNode, type MachinePair } from "./machine-topology.js";
2
+ export interface BusinessFlowPuzzle {
3
+ scenario_description: string;
4
+ scene_id?: string;
5
+ template_id?: string;
6
+ industry?: string;
7
+ participation_mode?: "P-M1" | "P-M2" | "P-M3" | "P-M4" | "P-M5";
8
+ referenced_machine_ids?: string[];
9
+ fork_source_template_id?: string;
10
+ }
11
+ export interface NodeDesignPuzzle {
12
+ nodes: Array<{
13
+ name: string;
14
+ description: string;
15
+ is_entry: boolean;
16
+ is_terminal: boolean;
17
+ }>;
18
+ topological_order: string[];
19
+ business_stage_mapping: Record<string, string>;
20
+ }
21
+ export interface GuardAcceptancePuzzle {
22
+ guard_bindings: Array<{
23
+ forward_id: {
24
+ pair_id: {
25
+ prev_node: string;
26
+ next_node: string;
27
+ };
28
+ forward_name: string;
29
+ };
30
+ guard_template_id?: string;
31
+ guard_address?: string;
32
+ purpose: string;
33
+ tested_on_testnet: boolean;
34
+ }>;
35
+ name_length_verified: boolean;
36
+ all_guards_created: boolean;
37
+ cross_machine_guards: Array<{
38
+ forward_id: {
39
+ pair_id: {
40
+ prev_node: string;
41
+ next_node: string;
42
+ };
43
+ forward_name: string;
44
+ };
45
+ upstream_machine_id: string;
46
+ upstream_node_name: string;
47
+ }>;
48
+ }
49
+ export interface ForwardPermission {
50
+ forward: {
51
+ pair_id: {
52
+ prev_node: string;
53
+ next_node: string;
54
+ };
55
+ forward_name: string;
56
+ };
57
+ namedOperator: {
58
+ type: "none" | "order_holder" | "role";
59
+ role?: string;
60
+ };
61
+ permissionIndex: {
62
+ type: "none" | "builtin" | "custom";
63
+ index?: number;
64
+ };
65
+ semantic: string;
66
+ }
67
+ export interface PermissionObjectConfig {
68
+ use_custom: boolean;
69
+ custom_indices?: Array<{
70
+ index: number;
71
+ name: string;
72
+ description: string;
73
+ }>;
74
+ }
75
+ export interface NamedOperatorRole {
76
+ role: string;
77
+ semantic: string;
78
+ assignment_timing: "at_progress_new_via_sdk" | "after_progress_new";
79
+ }
80
+ export interface PermissionModelPuzzle {
81
+ forward_permissions: ForwardPermission[];
82
+ permission_object?: PermissionObjectConfig;
83
+ named_operator_roles: NamedOperatorRole[];
84
+ completeness_verified: boolean;
85
+ }
86
+ export interface ThresholdWeightPuzzle {
87
+ pair_thresholds: Array<{
88
+ pair_id: {
89
+ prev_node: string;
90
+ next_node: string;
91
+ };
92
+ threshold: number;
93
+ semantic: string;
94
+ }>;
95
+ forward_weights: Array<{
96
+ forward_id: {
97
+ pair_id: {
98
+ prev_node: string;
99
+ next_node: string;
100
+ };
101
+ forward_name: string;
102
+ };
103
+ weight: number;
104
+ semantic: string;
105
+ }>;
106
+ execution_mode: string;
107
+ allocator_integration: Array<{
108
+ name: string;
109
+ trigger_node: string;
110
+ sharing_who: "Entity" | "OrderHolder" | "Custom";
111
+ recipient_description: string;
112
+ }>;
113
+ }
114
+ export interface BranchTopologyPuzzle {
115
+ topology_pattern: string;
116
+ branching_points: Array<{
117
+ node: string;
118
+ branches: string[];
119
+ branch_type: "parallel" | "competing";
120
+ }>;
121
+ merge_points: Array<{
122
+ node: string;
123
+ incoming_from: string[];
124
+ }>;
125
+ is_dag: boolean;
126
+ }
127
+ export interface OverallObjectivePuzzle {
128
+ primary_branch: {
129
+ start_node: string;
130
+ end_node: string;
131
+ description: string;
132
+ };
133
+ secondary_branches: Array<{
134
+ branch_name: string;
135
+ start_node: string;
136
+ end_node: string;
137
+ description: string;
138
+ trigger_condition: string;
139
+ }>;
140
+ success_criteria: string;
141
+ failure_criteria: string;
142
+ }
143
+ export interface RiskAssessmentPuzzle {
144
+ overall_risk_level: "low" | "medium" | "high" | "critical";
145
+ identified_risks: Array<{
146
+ rule_id: string;
147
+ name: string;
148
+ severity: string;
149
+ mitigation: string;
150
+ }>;
151
+ mitigation_strategy: string;
152
+ environment_readiness: {
153
+ permission_published: boolean;
154
+ guards_published: boolean;
155
+ arbitration_published: boolean;
156
+ reward_published: boolean;
157
+ testnet_tested: boolean;
158
+ };
159
+ }
160
+ export interface EnvironmentInfo {
161
+ network: "testnet" | "mainnet";
162
+ testnet_test_passed: boolean;
163
+ backup_created: boolean;
164
+ gas_estimation?: number;
165
+ user_address?: string;
166
+ }
167
+ export interface MachinePuzzle {
168
+ version: string;
169
+ business_flow: BusinessFlowPuzzle;
170
+ node_design: NodeDesignPuzzle;
171
+ guard_acceptance: GuardAcceptancePuzzle;
172
+ permission_model: PermissionModelPuzzle;
173
+ threshold_weight: ThresholdWeightPuzzle;
174
+ branch_topology: BranchTopologyPuzzle;
175
+ overall_objective: OverallObjectivePuzzle;
176
+ risk_assessment: RiskAssessmentPuzzle;
177
+ environment?: EnvironmentInfo;
178
+ }
179
+ export declare function initPuzzleFromIntent(intent: string): MachinePuzzle;
180
+ export declare function initPuzzleFromTemplate(templateId: string): MachinePuzzle | undefined;
181
+ export type MachineJsonInput = {
182
+ name?: string;
183
+ nodes: MachineNode[];
184
+ pairs: MachinePair[];
185
+ scene_id?: string;
186
+ template_id?: string;
187
+ };
188
+ export declare function initPuzzleFromMachineId(machineId: string, machineJson: MachineJsonInput): MachinePuzzle;
189
+ export declare function initPuzzleFromFragments(fragments: MachineJsonInput[]): MachinePuzzle;
190
+ export declare function initPuzzleForCrossChain(machineBId: string, machineBJson?: MachineJsonInput): MachinePuzzle;
191
+ export declare function initPuzzleForForkModify(machineId: string, machineJson: MachineJsonInput): MachinePuzzle;
192
+ export type PuzzleDimension = "A_business_flow" | "B_node_design" | "C_guard_acceptance" | "D_permission_model" | "E_threshold_weight" | "F_branch_topology" | "G_overall_objective" | "H_risk_assessment";
193
+ export interface PuzzleCompleteness {
194
+ complete: boolean;
195
+ dimensions: Array<{
196
+ dimension: PuzzleDimension;
197
+ complete: boolean;
198
+ missing_fields: string[];
199
+ }>;
200
+ next_step: string;
201
+ }
202
+ export declare function checkPuzzleCompleteness(puzzle: MachinePuzzle): PuzzleCompleteness;
203
+ export declare function recommendNextStep(puzzle: MachinePuzzle): string;
204
+ export declare function derivePuzzleFromMachineJson(machine: MachineJsonInput): MachinePuzzle;
205
+ export declare function generateConfirmationText(puzzle: MachinePuzzle): string;
206
+ export declare const MACHINE_PUZZLE_VERSION = "1.0.0";