@wowok/agent-mcp 3.4.3 → 3.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/build-stamp.js +1 -0
  3. package/dist/chain-semantics/composition-truth.js +1 -1
  4. package/dist/chain-semantics/eval-order.js +1 -1
  5. package/dist/chain-semantics/freeze-map.js +1 -1
  6. package/dist/chain-semantics/fund-flow.js +1 -1
  7. package/dist/chain-semantics/object-graph.js +1 -1
  8. package/dist/composition/audit.js +1 -1
  9. package/dist/composition/compile.js +1 -1
  10. package/dist/composition/emit-phases.js +1 -1
  11. package/dist/composition/generate.js +1 -1
  12. package/dist/composition/guard-fill.js +1 -1
  13. package/dist/composition/input-normalize.js +1 -1
  14. package/dist/composition/materialize.js +1 -1
  15. package/dist/composition/mode-gates.js +1 -1
  16. package/dist/composition/plan.js +1 -1
  17. package/dist/composition/product-card.js +1 -1
  18. package/dist/composition/shape-expand.js +1 -0
  19. package/dist/config/judgment.js +1 -1
  20. package/dist/config/template-params.js +1 -1
  21. package/dist/data/sync/cdc.js +1 -1
  22. package/dist/data/sync/graphql-source.js +1 -1
  23. package/dist/evaluation/engine.js +1 -1
  24. package/dist/experience/realtime-feedback.js +1 -1
  25. package/dist/graph/onchain/expand.js +1 -1
  26. package/dist/graph/onchain/exposure.js +1 -1
  27. package/dist/graph/onchain/sdk-batch.js +1 -1
  28. package/dist/harness/entry-ignite-selfheal.js +1 -0
  29. package/dist/harness/forward-leg-preflight.js +1 -0
  30. package/dist/harness/recover.js +1 -1
  31. package/dist/keeper/detectors.js +1 -1
  32. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  33. package/dist/knowledge/arb-operation-face.js +1 -0
  34. package/dist/knowledge/arbitration-rail-verifier.js +1 -1
  35. package/dist/knowledge/arbitration-templates.js +1 -1
  36. package/dist/knowledge/audit-rules.d.ts +15 -0
  37. package/dist/knowledge/audit-rules.js +1 -1
  38. package/dist/knowledge/baselines/rules/alloc_audit.json.good +310 -0
  39. package/dist/knowledge/baselines/rules/allocation.json.good +568 -0
  40. package/dist/knowledge/baselines/rules/arb.json.good +174 -0
  41. package/dist/knowledge/baselines/rules/arbitration.json.good +393 -0
  42. package/dist/knowledge/baselines/rules/bridge.json.good +197 -0
  43. package/dist/knowledge/baselines/rules/contact.json.good +152 -0
  44. package/dist/knowledge/baselines/rules/demand.json.good +158 -0
  45. package/dist/knowledge/baselines/rules/graph.json.good +534 -0
  46. package/dist/knowledge/baselines/rules/guard.json +18 -5
  47. package/dist/knowledge/baselines/rules/guard.json.good +1192 -0
  48. package/dist/knowledge/baselines/rules/machine.json.good +734 -0
  49. package/dist/knowledge/baselines/rules/oracle.json +1 -1
  50. package/dist/knowledge/baselines/rules/oracle.json.good +120 -0
  51. package/dist/knowledge/baselines/rules/order.json.good +549 -0
  52. package/dist/knowledge/baselines/rules/payment.json.good +205 -0
  53. package/dist/knowledge/baselines/rules/permission.json.good +330 -0
  54. package/dist/knowledge/baselines/rules/personal.json.good +139 -0
  55. package/dist/knowledge/baselines/rules/plan.json +343 -1
  56. package/dist/knowledge/baselines/rules/plan.json.good +1187 -0
  57. package/dist/knowledge/baselines/rules/progress.json.good +364 -0
  58. package/dist/knowledge/baselines/rules/proof.json.good +158 -0
  59. package/dist/knowledge/baselines/rules/registrar.json.good +159 -0
  60. package/dist/knowledge/baselines/rules/repository.json.good +244 -0
  61. package/dist/knowledge/baselines/rules/resource.json.good +117 -0
  62. package/dist/knowledge/baselines/rules/reward.json +10 -10
  63. package/dist/knowledge/baselines/rules/reward.json.good +586 -0
  64. package/dist/knowledge/baselines/rules/service.json.good +595 -0
  65. package/dist/knowledge/baselines/rules/treasury.json.good +440 -0
  66. package/dist/knowledge/baselines/rules/util.json.good +101 -0
  67. package/dist/knowledge/builtin-templates.d.ts +13 -1
  68. package/dist/knowledge/builtin-templates.js +1 -1
  69. package/dist/knowledge/chain-query-registry.js +1 -1
  70. package/dist/knowledge/discount-threshold.js +1 -1
  71. package/dist/knowledge/fee-param-bindings.js +1 -1
  72. package/dist/knowledge/fund-layer.d.ts +2 -0
  73. package/dist/knowledge/fund-layer.js +1 -1
  74. package/dist/knowledge/getting-started.js +1 -1
  75. package/dist/knowledge/guard-binding-table.js +1 -1
  76. package/dist/knowledge/guard-binding-verifier.js +1 -1
  77. package/dist/knowledge/guard-create-preflight.js +1 -0
  78. package/dist/knowledge/guard-field-cognition.js +1 -1
  79. package/dist/knowledge/guard-host-context.js +1 -1
  80. package/dist/knowledge/guard-leg-eval.js +1 -0
  81. package/dist/knowledge/guard-node-gates.js +1 -1
  82. package/dist/knowledge/guard-puzzle.js +1 -1
  83. package/dist/knowledge/guard-quality.js +1 -0
  84. package/dist/knowledge/guard-render.js +1 -1
  85. package/dist/knowledge/guard-risk.js +1 -1
  86. package/dist/knowledge/guard-semantic-walk.js +1 -0
  87. package/dist/knowledge/guard-templates.d.ts +1 -0
  88. package/dist/knowledge/guard-templates.js +1 -1
  89. package/dist/knowledge/guard-translation.js +1 -1
  90. package/dist/knowledge/index.js +1 -1
  91. package/dist/knowledge/industry-registry.js +1 -1
  92. package/dist/knowledge/jsonrpc-enum.js +1 -1
  93. package/dist/knowledge/param-schema.js +1 -1
  94. package/dist/knowledge/param-tiers.js +1 -1
  95. package/dist/knowledge/path-oracle/coverage.js +1 -1
  96. package/dist/knowledge/path-oracle/index.js +1 -1
  97. package/dist/knowledge/path-oracle/products/airbnb.js +1 -0
  98. package/dist/knowledge/path-oracle/products/algora.js +1 -0
  99. package/dist/knowledge/path-oracle/products/alibaba-1688.js +1 -0
  100. package/dist/knowledge/path-oracle/products/amazon.js +1 -0
  101. package/dist/knowledge/path-oracle/products/beatstars.js +1 -0
  102. package/dist/knowledge/path-oracle/products/booking-com.js +1 -0
  103. package/dist/knowledge/path-oracle/products/contra.js +1 -0
  104. package/dist/knowledge/path-oracle/products/costco.js +1 -0
  105. package/dist/knowledge/path-oracle/products/coursera.js +1 -0
  106. package/dist/knowledge/path-oracle/products/duoduo-maicai.js +1 -0
  107. package/dist/knowledge/path-oracle/products/etsy.js +1 -0
  108. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -1
  109. package/dist/knowledge/path-oracle/products/gamefound.js +1 -0
  110. package/dist/knowledge/path-oracle/products/gofundme.js +1 -0
  111. package/dist/knowledge/path-oracle/products/hackerone.js +1 -0
  112. package/dist/knowledge/path-oracle/products/kickstarter.js +1 -0
  113. package/dist/knowledge/path-oracle/products/klook.js +1 -0
  114. package/dist/knowledge/path-oracle/products/ninety-nine-designs.js +1 -0
  115. package/dist/knowledge/path-oracle/products/onlyfans.js +1 -0
  116. package/dist/knowledge/path-oracle/products/patreon.js +1 -0
  117. package/dist/knowledge/path-oracle/products/pinduoduo-kuaituantuan.js +1 -0
  118. package/dist/knowledge/path-oracle/products/royalty-exchange.js +1 -0
  119. package/dist/knowledge/path-oracle/products/shansong.js +1 -0
  120. package/dist/knowledge/path-oracle/products/taobao-presale.js +1 -0
  121. package/dist/knowledge/path-oracle/products/upwork-catalog.js +1 -0
  122. package/dist/knowledge/path-oracle/products/upwork.js +1 -0
  123. package/dist/knowledge/path-oracle/products/yuanfudao.js +1 -0
  124. package/dist/knowledge/path-oracle/products/ziroom.js +1 -0
  125. package/dist/knowledge/pattern-resolutions.js +1 -1
  126. package/dist/knowledge/product-detail-source.js +1 -1
  127. package/dist/knowledge/product-doc-b5.js +1 -1
  128. package/dist/knowledge/product-doc-facets.js +1 -0
  129. package/dist/knowledge/projection.js +1 -1
  130. package/dist/knowledge/publish-gate.js +1 -1
  131. package/dist/knowledge/publish-surface-contract.js +1 -1
  132. package/dist/knowledge/recipient-constraint.d.ts +20 -0
  133. package/dist/knowledge/recipient-constraint.js +1 -1
  134. package/dist/knowledge/rule-declaration-types.d.ts +13 -0
  135. package/dist/knowledge/rule-declaration-types.js +1 -0
  136. package/dist/knowledge/rule-declarations.js +1 -0
  137. package/dist/knowledge/scenario-modes.d.ts +6 -0
  138. package/dist/knowledge/scenario-topology.js +1 -1
  139. package/dist/knowledge/template-loader.js +1 -1
  140. package/dist/knowledge/template-prose.js +1 -1
  141. package/dist/knowledge/template-registry.js +1 -1
  142. package/dist/knowledge/template-scanner.js +1 -1
  143. package/dist/knowledge/tools-reference.js +1 -1
  144. package/dist/monitor/MonitorLoop.js +1 -1
  145. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  146. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  147. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  148. package/dist/playbooks/service-build/object-panorama.js +1 -1
  149. package/dist/playbooks/service-build/participation-radar.js +1 -1
  150. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  151. package/dist/playbooks/service-build/service-panorama.js +1 -1
  152. package/dist/playbooks/service-build/service-quote.js +1 -1
  153. package/dist/review/index.js +1 -1
  154. package/dist/review/service.js +1 -1
  155. package/dist/safety/confirm-gate.js +1 -1
  156. package/dist/schema/benchmark-migration/index.d.ts +9 -0
  157. package/dist/schema/benchmark-migration/index.js +1 -1
  158. package/dist/schema/call/arbitration.d.ts +8 -0
  159. package/dist/schema/call/arbitration.js +1 -1
  160. package/dist/schema/call/base.d.ts +8 -0
  161. package/dist/schema/call/base.js +1 -1
  162. package/dist/schema/call/bridge.d.ts +2 -0
  163. package/dist/schema/call/error-codes.d.ts +1 -1
  164. package/dist/schema/call/error-codes.js +1 -1
  165. package/dist/schema/call/handler.d.ts +2 -1
  166. package/dist/schema/call/handler.js +1 -1
  167. package/dist/schema/call/order.d.ts +10 -0
  168. package/dist/schema/call/permission-handler.js +1 -1
  169. package/dist/schema/call/permission.js +1 -1
  170. package/dist/schema/call/progress.d.ts +15 -0
  171. package/dist/schema/call/progress.js +1 -1
  172. package/dist/schema/call/receipt.d.ts +1 -0
  173. package/dist/schema/call/receipt.js +1 -1
  174. package/dist/schema/call/repository.d.ts +12 -0
  175. package/dist/schema/call/repository.js +1 -1
  176. package/dist/schema/call/reward.js +1 -1
  177. package/dist/schema/call/semantic.d.ts +1 -0
  178. package/dist/schema/call/semantic.js +1 -1
  179. package/dist/schema/call/service.d.ts +5 -3
  180. package/dist/schema/call/service.js +1 -1
  181. package/dist/schema/common/index.js +1 -1
  182. package/dist/schema/envelope-unify.js +1 -1
  183. package/dist/schema/goal/index.d.ts +23 -0
  184. package/dist/schema/goal/planning.js +1 -1
  185. package/dist/schema/industry-pack/index.d.ts +2 -2
  186. package/dist/schema/local/index.d.ts +20 -0
  187. package/dist/schema/local/index.js +1 -1
  188. package/dist/schema/local/wip.d.ts +4 -0
  189. package/dist/schema/local/wip.js +1 -1
  190. package/dist/schema/messenger/index.d.ts +5 -0
  191. package/dist/schema/messenger/index.js +1 -1
  192. package/dist/schema/operations.d.ts +944 -1
  193. package/dist/schema/operations.js +1 -1
  194. package/dist/schema/query/bi.js +1 -1
  195. package/dist/schema/query/index.d.ts +5 -5
  196. package/dist/schema/query/index.js +1 -1
  197. package/dist/schema/schema-version.js +1 -1
  198. package/dist/schema/workspace/index.d.ts +2 -2
  199. package/dist/schema-query-impl/index.js +1 -1
  200. package/dist/schemas/account_operation.schema.json +1 -257
  201. package/dist/schemas/ask_user.schema.json +1 -78
  202. package/dist/schemas/benchmark_migration_operation.schema.json +1 -626
  203. package/dist/schemas/bridge_operation.schema.json +1 -1069
  204. package/dist/schemas/config_operation.schema.json +1 -82
  205. package/dist/schemas/employee_operation.schema.json +1 -319
  206. package/dist/schemas/evaluation_operation.schema.json +1 -3932
  207. package/dist/schemas/goal_operation.schema.json +1 -1650
  208. package/dist/schemas/guard2file.schema.json +1 -137
  209. package/dist/schemas/index.json +1 -285
  210. package/dist/schemas/industry_pack_operation.schema.json +1 -582
  211. package/dist/schemas/intent_radar.schema.json +1 -155
  212. package/dist/schemas/keeper_operation.schema.json +1 -364
  213. package/dist/schemas/local_cache_operation.schema.json +1 -116
  214. package/dist/schemas/local_history_operation.schema.json +1 -105
  215. package/dist/schemas/local_info_operation.schema.json +1 -140
  216. package/dist/schemas/local_mark_operation.schema.json +1 -124
  217. package/dist/schemas/machineNode2file.schema.json +1 -137
  218. package/dist/schemas/messenger_operation.schema.json +1 -2068
  219. package/dist/schemas/monitor_events.schema.json +1 -87
  220. package/dist/schemas/monitor_subscription.schema.json +1 -327
  221. package/dist/schemas/onchain_events.schema.json +1 -207
  222. package/dist/schemas/onchain_operations.schema.json +1 -28699
  223. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1376
  224. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1355
  225. package/dist/schemas/onchain_operations_contact.schema.json +1 -988
  226. package/dist/schemas/onchain_operations_demand.schema.json +1 -1146
  227. package/dist/schemas/onchain_operations_gen_passport.schema.json +1 -663
  228. package/dist/schemas/onchain_operations_gen_proof.schema.json +1 -180
  229. package/dist/schemas/onchain_operations_guard.schema.json +1 -8518
  230. package/dist/schemas/onchain_operations_machine.schema.json +1 -1879
  231. package/dist/schemas/onchain_operations_order.schema.json +1 -1121
  232. package/dist/schemas/onchain_operations_payment.schema.json +1 -316
  233. package/dist/schemas/onchain_operations_permission.schema.json +1 -1036
  234. package/dist/schemas/onchain_operations_personal.schema.json +1 -1463
  235. package/dist/schemas/onchain_operations_progress.schema.json +1 -1041
  236. package/dist/schemas/onchain_operations_proof.schema.json +1 -750
  237. package/dist/schemas/onchain_operations_repository.schema.json +1 -2046
  238. package/dist/schemas/onchain_operations_reward.schema.json +1 -1286
  239. package/dist/schemas/onchain_operations_service.schema.json +1 -2602
  240. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1527
  241. package/dist/schemas/onchain_table_data.schema.json +1 -1146
  242. package/dist/schemas/permission_operation.schema.json +1 -43
  243. package/dist/schemas/persona_operation.schema.json +1 -10424
  244. package/dist/schemas/query_toolkit.schema.json +1 -1867
  245. package/dist/schemas/schema_query.schema.json +1 -116
  246. package/dist/schemas/service_clone_operation.schema.json +1 -49
  247. package/dist/schemas/settle_sweep.schema.json +1 -0
  248. package/dist/schemas/strategy_review_operation.schema.json +1 -66
  249. package/dist/schemas/verify_guard_dry_run.schema.json +1 -0
  250. package/dist/schemas/watch_operation.schema.json +1 -145
  251. package/dist/schemas/wip_file.schema.json +1 -299
  252. package/dist/schemas/workflow_operation.schema.json +1 -722
  253. package/dist/schemas/workspace_operation.schema.json +1 -104
  254. package/dist/schemas/wowok_buildin_info.schema.json +1 -758
  255. package/dist/tools/handlers/benchmark-migration.js +1 -1
  256. package/dist/tools/handlers/config.js +1 -1
  257. package/dist/tools/handlers/entry-edge-recipe.js +1 -1
  258. package/dist/tools/handlers/file-export.js +1 -1
  259. package/dist/tools/handlers/local.js +1 -1
  260. package/dist/tools/handlers/messenger.js +1 -1
  261. package/dist/tools/handlers/onchain.js +1 -1
  262. package/dist/tools/handlers/pending-settlement-recipe.js +1 -0
  263. package/dist/tools/handlers/plan-recovery.js +1 -0
  264. package/dist/tools/handlers/query.js +1 -1
  265. package/dist/tools/handlers/repository-row-id.js +1 -0
  266. package/dist/tools/handlers/review-chain.js +1 -1
  267. package/dist/tools/handlers/settle-sweep.js +1 -0
  268. package/dist/tools/handlers/stale-build-check.js +1 -1
  269. package/dist/tools/handlers/submission-assembly.js +1 -1
  270. package/dist/tools/handlers/verify-guard-dry-run.js +1 -0
  271. package/dist/tools/handlers/wip-upload.js +1 -1
  272. package/dist/tools/index.d.ts +3 -1
  273. package/dist/tools/index.js +1 -1
  274. package/dist/tools/move-fn-index.gen.js +1 -1
  275. package/dist/tools/publish-gate-state.js +1 -1
  276. package/dist/tools/registry/business.js +1 -1
  277. package/dist/tools/registry/onchain.js +1 -1
  278. package/dist/tools/shared.js +1 -1
  279. package/dist/tools/types.d.ts +1 -1
  280. package/dist/tools/wrap.js +1 -1
  281. package/package.json +11 -4
  282. package/dist/chain-semantics/composition-truth.d.ts +0 -102
  283. package/dist/chain-semantics/eval-order.d.ts +0 -17
  284. package/dist/chain-semantics/field-capability.d.ts +0 -11
  285. package/dist/chain-semantics/freeze-map.d.ts +0 -11
  286. package/dist/chain-semantics/fund-flow.d.ts +0 -10
  287. package/dist/chain-semantics/guard-verbs.d.ts +0 -22
  288. package/dist/chain-semantics/index.d.ts +0 -12
  289. package/dist/chain-semantics/object-graph.d.ts +0 -18
  290. package/dist/communication/evidence.d.ts +0 -6
  291. package/dist/communication/message-cursors.d.ts +0 -35
  292. package/dist/communication/proof-reuse.d.ts +0 -9
  293. package/dist/communication/wts-attestation.d.ts +0 -39
  294. package/dist/composition/audit.d.ts +0 -15
  295. package/dist/composition/blueprint-view.d.ts +0 -63
  296. package/dist/composition/compile.d.ts +0 -83
  297. package/dist/composition/emit-phases.d.ts +0 -234
  298. package/dist/composition/generate.d.ts +0 -40
  299. package/dist/composition/guard-fill.d.ts +0 -52
  300. package/dist/composition/inflight.d.ts +0 -86
  301. package/dist/composition/input-normalize.d.ts +0 -15
  302. package/dist/composition/materialize.d.ts +0 -78
  303. package/dist/composition/mode-gates.d.ts +0 -35
  304. package/dist/composition/param-disclosure.d.ts +0 -61
  305. package/dist/composition/plan-retry-ledger.d.ts +0 -37
  306. package/dist/composition/plan.d.ts +0 -121
  307. package/dist/composition/product-card.d.ts +0 -94
  308. package/dist/composition/reflux.d.ts +0 -28
  309. package/dist/composition/supply-chain-emit.d.ts +0 -46
  310. package/dist/config/config-audit.spec.d.ts +0 -1
  311. package/dist/config/config-audit.spec.js +0 -1
  312. package/dist/config/config-warnings.d.ts +0 -2
  313. package/dist/config/index.d.ts +0 -4
  314. package/dist/config/judgment.spec.d.ts +0 -1
  315. package/dist/config/judgment.spec.js +0 -1
  316. package/dist/config/match-policy-file.d.ts +0 -34
  317. package/dist/config/match-policy-file.spec.d.ts +0 -1
  318. package/dist/config/match-policy-file.spec.js +0 -1
  319. package/dist/config/rule-engine.spec.d.ts +0 -1
  320. package/dist/config/rule-engine.spec.js +0 -1
  321. package/dist/config/runtime.d.ts +0 -29
  322. package/dist/config/store-policy.d.ts +0 -14
  323. package/dist/config/store-policy.spec.d.ts +0 -1
  324. package/dist/config/store-policy.spec.js +0 -1
  325. package/dist/config/template-params.d.ts +0 -42
  326. package/dist/config/template-params.spec.d.ts +0 -1
  327. package/dist/config/template-params.spec.js +0 -1
  328. package/dist/customer/account-events.d.ts +0 -32
  329. package/dist/data/api/api.spec.d.ts +0 -1
  330. package/dist/data/api/api.spec.js +0 -1
  331. package/dist/data/api/cli.d.ts +0 -1
  332. package/dist/data/api/head.d.ts +0 -16
  333. package/dist/data/api/head.spec.d.ts +0 -1
  334. package/dist/data/api/head.spec.js +0 -1
  335. package/dist/data/api/index.d.ts +0 -2
  336. package/dist/data/api/match.d.ts +0 -69
  337. package/dist/data/api/match.spec.d.ts +0 -1
  338. package/dist/data/api/match.spec.js +0 -1
  339. package/dist/data/api/server.d.ts +0 -13
  340. package/dist/data/projection/cli.d.ts +0 -1
  341. package/dist/data/projection/edges.d.ts +0 -8
  342. package/dist/data/projection/edges.spec.d.ts +0 -1
  343. package/dist/data/projection/edges.spec.js +0 -1
  344. package/dist/data/projection/facets.d.ts +0 -18
  345. package/dist/data/projection/facets.spec.d.ts +0 -1
  346. package/dist/data/projection/facets.spec.js +0 -1
  347. package/dist/data/projection/facts.d.ts +0 -40
  348. package/dist/data/projection/index.d.ts +0 -6
  349. package/dist/data/projection/project.d.ts +0 -10
  350. package/dist/data/projection/projection.spec.d.ts +0 -1
  351. package/dist/data/projection/projection.spec.js +0 -1
  352. package/dist/data/projection/schema.d.ts +0 -1
  353. package/dist/data/projection/store.d.ts +0 -51
  354. package/dist/data/projection/types.d.ts +0 -169
  355. package/dist/data/sync/cdc.d.ts +0 -33
  356. package/dist/data/sync/cdc.spec.d.ts +0 -1
  357. package/dist/data/sync/cdc.spec.js +0 -1
  358. package/dist/data/sync/graphql-source.d.ts +0 -16
  359. package/dist/data/sync/index.d.ts +0 -5
  360. package/dist/data/sync/reconciler.d.ts +0 -14
  361. package/dist/data/sync/reconciler.spec.d.ts +0 -1
  362. package/dist/data/sync/reconciler.spec.js +0 -1
  363. package/dist/data/sync/schema.d.ts +0 -1
  364. package/dist/data/sync/store.d.ts +0 -24
  365. package/dist/data/sync/sync.spec.d.ts +0 -1
  366. package/dist/data/sync/sync.spec.js +0 -1
  367. package/dist/data/sync/synchronizer.d.ts +0 -10
  368. package/dist/data/sync/types.d.ts +0 -164
  369. package/dist/evaluation/acceptance.d.ts +0 -33
  370. package/dist/evaluation/architecture.spec.d.ts +0 -1
  371. package/dist/evaluation/architecture.spec.js +0 -1
  372. package/dist/evaluation/builtins/arbitration-score.d.ts +0 -42
  373. package/dist/evaluation/builtins/demand-match.d.ts +0 -16
  374. package/dist/evaluation/builtins/graph-service.spec.d.ts +0 -1
  375. package/dist/evaluation/builtins/graph-service.spec.js +0 -1
  376. package/dist/evaluation/builtins/index.d.ts +0 -4
  377. package/dist/evaluation/builtins/purity.spec.d.ts +0 -1
  378. package/dist/evaluation/builtins/purity.spec.js +0 -1
  379. package/dist/evaluation/composer.d.ts +0 -38
  380. package/dist/evaluation/facets/catalog.d.ts +0 -19
  381. package/dist/evaluation/gap.d.ts +0 -2
  382. package/dist/evaluation/guard-scan.d.ts +0 -10
  383. package/dist/evaluation/index.d.ts +0 -14
  384. package/dist/evaluation/injection.d.ts +0 -6
  385. package/dist/evaluation/location-match.d.ts +0 -42
  386. package/dist/evaluation/match-operation.d.ts +0 -23
  387. package/dist/evaluation/match-policy-resolver.d.ts +0 -9
  388. package/dist/evaluation/match-policy.spec.d.ts +0 -1
  389. package/dist/evaluation/match-policy.spec.js +0 -1
  390. package/dist/evaluation/path-reasoning.d.ts +0 -37
  391. package/dist/evaluation/standards.d.ts +0 -11
  392. package/dist/evaluation/standards.spec.d.ts +0 -1
  393. package/dist/evaluation/standards.spec.js +0 -1
  394. package/dist/evaluation/structured-lines.d.ts +0 -8
  395. package/dist/evaluation/user-injection.d.ts +0 -6
  396. package/dist/experience/experience-reuse.d.ts +0 -10
  397. package/dist/experience/index.d.ts +0 -7
  398. package/dist/experience/persistence-config.d.ts +0 -6
  399. package/dist/experience/persistence.d.ts +0 -21
  400. package/dist/experience/realtime-feedback.d.ts +0 -5
  401. package/dist/experience/user-profile.d.ts +0 -25
  402. package/dist/extensions/capability.d.ts +0 -91
  403. package/dist/extensions/industry-audit.spec.d.ts +0 -1
  404. package/dist/extensions/industry-audit.spec.js +0 -1
  405. package/dist/goal/GoalClassifier.d.ts +0 -17
  406. package/dist/goal/GoalEngine.d.ts +0 -175
  407. package/dist/goal/GoalStore.d.ts +0 -27
  408. package/dist/goal/next-steps.d.ts +0 -12
  409. package/dist/goal/plan-approval.d.ts +0 -5
  410. package/dist/goal/pursue.d.ts +0 -18
  411. package/dist/graph/base.d.ts +0 -8
  412. package/dist/graph/onchain/analyze.d.ts +0 -59
  413. package/dist/graph/onchain/analyze.spec.d.ts +0 -1
  414. package/dist/graph/onchain/analyze.spec.js +0 -1
  415. package/dist/graph/onchain/anti-cheat.d.ts +0 -69
  416. package/dist/graph/onchain/anti-cheat.spec.d.ts +0 -1
  417. package/dist/graph/onchain/anti-cheat.spec.js +0 -1
  418. package/dist/graph/onchain/dataplane.d.ts +0 -44
  419. package/dist/graph/onchain/edge-batch.spec.d.ts +0 -1
  420. package/dist/graph/onchain/edge-batch.spec.js +0 -1
  421. package/dist/graph/onchain/edge-schema.d.ts +0 -69
  422. package/dist/graph/onchain/entity-profile.spec.d.ts +0 -1
  423. package/dist/graph/onchain/entity-profile.spec.js +0 -1
  424. package/dist/graph/onchain/event-history.spec.d.ts +0 -1
  425. package/dist/graph/onchain/event-history.spec.js +0 -1
  426. package/dist/graph/onchain/expand.d.ts +0 -4
  427. package/dist/graph/onchain/exploration.d.ts +0 -28
  428. package/dist/graph/onchain/exploration.spec.d.ts +0 -1
  429. package/dist/graph/onchain/exploration.spec.js +0 -1
  430. package/dist/graph/onchain/exposure.d.ts +0 -18
  431. package/dist/graph/onchain/exposure.spec.d.ts +0 -1
  432. package/dist/graph/onchain/exposure.spec.js +0 -1
  433. package/dist/graph/onchain/extract-deep.spec.d.ts +0 -1
  434. package/dist/graph/onchain/extract-deep.spec.js +0 -1
  435. package/dist/graph/onchain/extract.d.ts +0 -29
  436. package/dist/graph/onchain/facet-projection.d.ts +0 -99
  437. package/dist/graph/onchain/facet-projection.spec.d.ts +0 -1
  438. package/dist/graph/onchain/facet-projection.spec.js +0 -1
  439. package/dist/graph/onchain/facts.spec.d.ts +0 -1
  440. package/dist/graph/onchain/facts.spec.js +0 -1
  441. package/dist/graph/onchain/field-manifest.d.ts +0 -29
  442. package/dist/graph/onchain/field-manifest.spec.d.ts +0 -1
  443. package/dist/graph/onchain/field-manifest.spec.js +0 -1
  444. package/dist/graph/onchain/fixtures.d.ts +0 -80
  445. package/dist/graph/onchain/fixtures.spec.d.ts +0 -1
  446. package/dist/graph/onchain/fixtures.spec.js +0 -1
  447. package/dist/graph/onchain/graph-policy.spec.d.ts +0 -1
  448. package/dist/graph/onchain/graph-policy.spec.js +0 -1
  449. package/dist/graph/onchain/index.d.ts +0 -29
  450. package/dist/graph/onchain/interest.d.ts +0 -10
  451. package/dist/graph/onchain/interest.spec.d.ts +0 -1
  452. package/dist/graph/onchain/interest.spec.js +0 -1
  453. package/dist/graph/onchain/label-lint.spec.d.ts +0 -1
  454. package/dist/graph/onchain/label-lint.spec.js +0 -1
  455. package/dist/graph/onchain/names.d.ts +0 -23
  456. package/dist/graph/onchain/names.spec.d.ts +0 -1
  457. package/dist/graph/onchain/names.spec.js +0 -1
  458. package/dist/graph/onchain/object-held-receipts.d.ts +0 -20
  459. package/dist/graph/onchain/object-held-receipts.spec.d.ts +0 -1
  460. package/dist/graph/onchain/object-held-receipts.spec.js +0 -1
  461. package/dist/graph/onchain/onchain.spec.d.ts +0 -1
  462. package/dist/graph/onchain/onchain.spec.js +0 -1
  463. package/dist/graph/onchain/policy.d.ts +0 -8
  464. package/dist/graph/onchain/project-relationship.d.ts +0 -3
  465. package/dist/graph/onchain/proposal-graph.d.ts +0 -11
  466. package/dist/graph/onchain/proposal-graph.spec.d.ts +0 -1
  467. package/dist/graph/onchain/proposal-graph.spec.js +0 -1
  468. package/dist/graph/onchain/sdk-batch.d.ts +0 -129
  469. package/dist/graph/onchain/sdk-dataplane.d.ts +0 -44
  470. package/dist/graph/onchain/strategy.spec.d.ts +0 -1
  471. package/dist/graph/onchain/strategy.spec.js +0 -1
  472. package/dist/graph/onchain/synthesis.d.ts +0 -20
  473. package/dist/graph/onchain/synthesis.spec.d.ts +0 -1
  474. package/dist/graph/onchain/synthesis.spec.js +0 -1
  475. package/dist/graph/onchain/table-ledger.spec.d.ts +0 -1
  476. package/dist/graph/onchain/table-ledger.spec.js +0 -1
  477. package/dist/graph/onchain/viewport.d.ts +0 -6
  478. package/dist/harness/auto-escalation.d.ts +0 -15
  479. package/dist/intent/enrich.d.ts +0 -1
  480. package/dist/intent/index.d.ts +0 -23
  481. package/dist/intent/matcher.d.ts +0 -2
  482. package/dist/intent/store.d.ts +0 -19
  483. package/dist/intent/types.d.ts +0 -32
  484. package/dist/keeper/KeeperScan.d.ts +0 -41
  485. package/dist/keeper/KeeperStore.d.ts +0 -43
  486. package/dist/keeper/detectors.d.ts +0 -42
  487. package/dist/keeper/keeper.spec.d.ts +0 -1
  488. package/dist/keeper/keeper.spec.js +0 -1
  489. package/dist/keeper/types.d.ts +0 -67
  490. package/dist/knowledge/account-marks.d.ts +0 -36
  491. package/dist/knowledge/allocation-ledger.d.ts +0 -75
  492. package/dist/knowledge/allocation-puzzle.d.ts +0 -138
  493. package/dist/knowledge/allocation-risk.d.ts +0 -82
  494. package/dist/knowledge/allocation-templates.d.ts +0 -38
  495. package/dist/knowledge/allocator-rail-verifier.d.ts +0 -59
  496. package/dist/knowledge/anti-cheat.d.ts +0 -2
  497. package/dist/knowledge/arb-fund-facts.d.ts +0 -51
  498. package/dist/knowledge/arb-risk.d.ts +0 -39
  499. package/dist/knowledge/arbitration-puzzle.d.ts +0 -84
  500. package/dist/knowledge/arbitration-rail-verifier.d.ts +0 -35
  501. package/dist/knowledge/arbitration-risk.d.ts +0 -114
  502. package/dist/knowledge/arbitration-templates.d.ts +0 -39
  503. package/dist/knowledge/arbitration-venue-order.d.ts +0 -25
  504. package/dist/knowledge/baselines/guard-lint-baseline.spec.d.ts +0 -1
  505. package/dist/knowledge/baselines/guard-lint-baseline.spec.js +0 -1
  506. package/dist/knowledge/baselines/risk-baselines.spec.d.ts +0 -1
  507. package/dist/knowledge/baselines/risk-baselines.spec.js +0 -1
  508. package/dist/knowledge/baselines/risk-cases.d.ts +0 -8
  509. package/dist/knowledge/baselines/semantic-facts.d.ts +0 -12
  510. package/dist/knowledge/bridge-risk.d.ts +0 -36
  511. package/dist/knowledge/catalog-facts.d.ts +0 -4
  512. package/dist/knowledge/chain-query-registry.d.ts +0 -14
  513. package/dist/knowledge/commission-landing.d.ts +0 -26
  514. package/dist/knowledge/component-schema.d.ts +0 -64
  515. package/dist/knowledge/contact-risk.d.ts +0 -32
  516. package/dist/knowledge/contact-templates.d.ts +0 -26
  517. package/dist/knowledge/contract-invariants.d.ts +0 -54
  518. package/dist/knowledge/demand-risk.d.ts +0 -30
  519. package/dist/knowledge/discount-threshold.d.ts +0 -26
  520. package/dist/knowledge/dynamic-pricing.d.ts +0 -29
  521. package/dist/knowledge/entity-recipient-guard.d.ts +0 -21
  522. package/dist/knowledge/event-semantics.d.ts +0 -23
  523. package/dist/knowledge/evidence-review.d.ts +0 -35
  524. package/dist/knowledge/fee-param-bindings.d.ts +0 -28
  525. package/dist/knowledge/flywheel-loop.d.ts +0 -41
  526. package/dist/knowledge/game-scenarios.d.ts +0 -21
  527. package/dist/knowledge/getting-started.d.ts +0 -37
  528. package/dist/knowledge/goal-completion.d.ts +0 -31
  529. package/dist/knowledge/guard-anchor-reach.d.ts +0 -19
  530. package/dist/knowledge/guard-binding-table.d.ts +0 -52
  531. package/dist/knowledge/guard-binding-verifier.d.ts +0 -37
  532. package/dist/knowledge/guard-bindings.d.ts +0 -21
  533. package/dist/knowledge/guard-blueprint.d.ts +0 -68
  534. package/dist/knowledge/guard-design-patterns.d.ts +0 -38
  535. package/dist/knowledge/guard-eval.d.ts +0 -15
  536. package/dist/knowledge/guard-field-cognition.d.ts +0 -48
  537. package/dist/knowledge/guard-host-context.d.ts +0 -24
  538. package/dist/knowledge/guard-ledger.d.ts +0 -19
  539. package/dist/knowledge/guard-leg-map.d.ts +0 -5
  540. package/dist/knowledge/guard-lint.d.ts +0 -79
  541. package/dist/knowledge/guard-node-gates.d.ts +0 -9
  542. package/dist/knowledge/guard-puzzle.d.ts +0 -188
  543. package/dist/knowledge/guard-render.d.ts +0 -71
  544. package/dist/knowledge/guard-risk.d.ts +0 -71
  545. package/dist/knowledge/guard-submission-brief.d.ts +0 -94
  546. package/dist/knowledge/guard-submission-prompt.d.ts +0 -63
  547. package/dist/knowledge/guard-translation.d.ts +0 -58
  548. package/dist/knowledge/index.d.ts +0 -299
  549. package/dist/knowledge/industry-evolution.d.ts +0 -82
  550. package/dist/knowledge/industry-generalizer.d.ts +0 -63
  551. package/dist/knowledge/industry-rule-node.d.ts +0 -7
  552. package/dist/knowledge/industry-strategy.d.ts +0 -91
  553. package/dist/knowledge/intent-metrics.d.ts +0 -43
  554. package/dist/knowledge/jsonrpc-enum.d.ts +0 -102
  555. package/dist/knowledge/knob-docs.d.ts +0 -5
  556. package/dist/knowledge/machine-fork-watch.d.ts +0 -9
  557. package/dist/knowledge/machine-ledger.d.ts +0 -42
  558. package/dist/knowledge/machine-puzzle.d.ts +0 -206
  559. package/dist/knowledge/machine-risk.d.ts +0 -72
  560. package/dist/knowledge/machine-templates.d.ts +0 -92
  561. package/dist/knowledge/machine-topology.d.ts +0 -116
  562. package/dist/knowledge/machine-translation.d.ts +0 -96
  563. package/dist/knowledge/market-metrics.d.ts +0 -34
  564. package/dist/knowledge/market-operations.d.ts +0 -46
  565. package/dist/knowledge/migration-preflight.d.ts +0 -27
  566. package/dist/knowledge/object-dependency.d.ts +0 -31
  567. package/dist/knowledge/operation-dictionary.d.ts +0 -18
  568. package/dist/knowledge/order-ledger.d.ts +0 -69
  569. package/dist/knowledge/order-puzzle.d.ts +0 -162
  570. package/dist/knowledge/order-risk.d.ts +0 -62
  571. package/dist/knowledge/order-templates.d.ts +0 -50
  572. package/dist/knowledge/param-schema.d.ts +0 -93
  573. package/dist/knowledge/param-tiers.d.ts +0 -27
  574. package/dist/knowledge/passport-ledger.d.ts +0 -60
  575. package/dist/knowledge/passport-templates.d.ts +0 -40
  576. package/dist/knowledge/path-oracle/coverage.d.ts +0 -16
  577. package/dist/knowledge/path-oracle/index.d.ts +0 -5
  578. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +0 -2
  579. package/dist/knowledge/path-oracle/schema.d.ts +0 -188
  580. package/dist/knowledge/pattern-resolutions.d.ts +0 -110
  581. package/dist/knowledge/payment-risk.d.ts +0 -38
  582. package/dist/knowledge/payment-tracker.d.ts +0 -63
  583. package/dist/knowledge/permission-ledger.d.ts +0 -49
  584. package/dist/knowledge/permission-puzzle.d.ts +0 -122
  585. package/dist/knowledge/permission-risk.d.ts +0 -70
  586. package/dist/knowledge/permission-templates.d.ts +0 -38
  587. package/dist/knowledge/personal-risk.d.ts +0 -36
  588. package/dist/knowledge/product-detail-source.d.ts +0 -37
  589. package/dist/knowledge/product-doc-b5.d.ts +0 -16
  590. package/dist/knowledge/progress-ledger.d.ts +0 -63
  591. package/dist/knowledge/progress-puzzle.d.ts +0 -82
  592. package/dist/knowledge/progress-risk.d.ts +0 -75
  593. package/dist/knowledge/progress-templates.d.ts +0 -38
  594. package/dist/knowledge/projection.d.ts +0 -54
  595. package/dist/knowledge/projection.spec.d.ts +0 -1
  596. package/dist/knowledge/projection.spec.js +0 -1
  597. package/dist/knowledge/proof-risk.d.ts +0 -33
  598. package/dist/knowledge/protocol-facts.d.ts +0 -17
  599. package/dist/knowledge/publish-gate.d.ts +0 -20
  600. package/dist/knowledge/publish-readiness.d.ts +0 -25
  601. package/dist/knowledge/publish-surface-contract.d.ts +0 -16
  602. package/dist/knowledge/puzzle-projections.d.ts +0 -11
  603. package/dist/knowledge/rail-exit-satisfiability.d.ts +0 -25
  604. package/dist/knowledge/registrar-risk.d.ts +0 -34
  605. package/dist/knowledge/release-sentinel.d.ts +0 -12
  606. package/dist/knowledge/repository-risk.d.ts +0 -46
  607. package/dist/knowledge/repository-write-semantics.d.ts +0 -27
  608. package/dist/knowledge/reputation-rules.d.ts +0 -36
  609. package/dist/knowledge/requirement-families.d.ts +0 -13
  610. package/dist/knowledge/resource-risk.d.ts +0 -32
  611. package/dist/knowledge/reward-ledger.d.ts +0 -97
  612. package/dist/knowledge/reward-puzzle.d.ts +0 -98
  613. package/dist/knowledge/reward-risk.d.ts +0 -86
  614. package/dist/knowledge/reward-templates.d.ts +0 -25
  615. package/dist/knowledge/rule-node-analyzers.d.ts +0 -49
  616. package/dist/knowledge/rule-outcome.d.ts +0 -5
  617. package/dist/knowledge/scenario-topology.d.ts +0 -48
  618. package/dist/knowledge/semantic-ir.d.ts +0 -136
  619. package/dist/knowledge/service-allocation-semantics.d.ts +0 -36
  620. package/dist/knowledge/service-allocator-audit-node.d.ts +0 -3
  621. package/dist/knowledge/service-ledger.d.ts +0 -87
  622. package/dist/knowledge/service-puzzle.d.ts +0 -158
  623. package/dist/knowledge/service-risk-node.d.ts +0 -3
  624. package/dist/knowledge/service-risk.d.ts +0 -110
  625. package/dist/knowledge/service-templates.d.ts +0 -41
  626. package/dist/knowledge/settlement-semantics.d.ts +0 -1
  627. package/dist/knowledge/strategy-manuals.d.ts +0 -15
  628. package/dist/knowledge/supply-chain.d.ts +0 -35
  629. package/dist/knowledge/template-index.d.ts +0 -19
  630. package/dist/knowledge/template-loader.d.ts +0 -425
  631. package/dist/knowledge/template-nav.d.ts +0 -9
  632. package/dist/knowledge/template-prose.d.ts +0 -50
  633. package/dist/knowledge/template-registry.d.ts +0 -48
  634. package/dist/knowledge/template-scanner.d.ts +0 -158
  635. package/dist/knowledge/template-test-profiles.d.ts +0 -17
  636. package/dist/knowledge/template-validation.d.ts +0 -3
  637. package/dist/knowledge/tools-reference.d.ts +0 -17
  638. package/dist/knowledge/treasury-ledger.d.ts +0 -42
  639. package/dist/knowledge/treasury-puzzle.d.ts +0 -163
  640. package/dist/knowledge/treasury-risk.d.ts +0 -88
  641. package/dist/knowledge/treasury-templates.d.ts +0 -38
  642. package/dist/knowledge/universal-template.d.ts +0 -22
  643. package/dist/knowledge/util-risk.d.ts +0 -30
  644. package/dist/knowledge/workflow-guidance.d.ts +0 -194
  645. package/dist/knowledge/workspace-lists.d.ts +0 -61
  646. package/dist/monitor/SuggestionBridge.spec.d.ts +0 -1
  647. package/dist/monitor/SuggestionBridge.spec.js +0 -1
  648. package/dist/participation/arbitrator-interest.d.ts +0 -22
  649. package/dist/participation/demander-interest.d.ts +0 -23
  650. package/dist/participation/employee-kpi.d.ts +0 -37
  651. package/dist/participation/employee-kpi.spec.d.ts +0 -1
  652. package/dist/participation/employee-kpi.spec.js +0 -1
  653. package/dist/participation/employee-store.d.ts +0 -16
  654. package/dist/participation/game-context.d.ts +0 -25
  655. package/dist/participation/index.d.ts +0 -2
  656. package/dist/participation/node-action-advisor.d.ts +0 -68
  657. package/dist/participation/time-window.d.ts +0 -48
  658. package/dist/persona/facet-profile.d.ts +0 -33
  659. package/dist/persona/persona-audit.spec.d.ts +0 -1
  660. package/dist/persona/persona-audit.spec.js +0 -1
  661. package/dist/playbooks/service-build/business-puzzle.d.ts +0 -48
  662. package/dist/playbooks/service-build/context-assembly.d.ts +0 -32
  663. package/dist/playbooks/service-build/facet-money.d.ts +0 -33
  664. package/dist/playbooks/service-build/facet-money.spec.d.ts +0 -1
  665. package/dist/playbooks/service-build/facet-money.spec.js +0 -1
  666. package/dist/playbooks/service-build/game-theory.d.ts +0 -47
  667. package/dist/playbooks/service-build/index.d.ts +0 -15
  668. package/dist/playbooks/service-build/intent-analyzer.d.ts +0 -72
  669. package/dist/playbooks/service-build/machine-nodes.d.ts +0 -27
  670. package/dist/playbooks/service-build/machine-panorama.d.ts +0 -71
  671. package/dist/playbooks/service-build/merchant-guide.d.ts +0 -382
  672. package/dist/playbooks/service-build/migration-planner.d.ts +0 -61
  673. package/dist/playbooks/service-build/mode-actions.d.ts +0 -260
  674. package/dist/playbooks/service-build/object-panorama.d.ts +0 -317
  675. package/dist/playbooks/service-build/object-type.d.ts +0 -1
  676. package/dist/playbooks/service-build/participation-radar.d.ts +0 -20
  677. package/dist/playbooks/service-build/pipeline-actions.d.ts +0 -108
  678. package/dist/playbooks/service-build/process.d.ts +0 -6
  679. package/dist/playbooks/service-build/relationship-profile.d.ts +0 -3
  680. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.d.ts +0 -1
  681. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +0 -1
  682. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.d.ts +0 -1
  683. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.js +0 -1
  684. package/dist/playbooks/service-build/reverse-mapping.d.ts +0 -66
  685. package/dist/playbooks/service-build/risk-aggregator.d.ts +0 -59
  686. package/dist/playbooks/service-build/service-panorama.d.ts +0 -229
  687. package/dist/playbooks/service-build/service-quote.d.ts +0 -2
  688. package/dist/playbooks/service-build/service-quote.spec.d.ts +0 -1
  689. package/dist/playbooks/service-build/service-quote.spec.js +0 -1
  690. package/dist/playbooks/service-build/topology-evaluation.spec.d.ts +0 -1
  691. package/dist/playbooks/service-build/topology-evaluation.spec.js +0 -1
  692. package/dist/playbooks/service-build/topology-query.d.ts +0 -25
  693. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +0 -33
  694. package/dist/relationship/derivation.d.ts +0 -95
  695. package/dist/relationship/derivation.spec.d.ts +0 -1
  696. package/dist/relationship/derivation.spec.js +0 -1
  697. package/dist/relationship/incentive.d.ts +0 -38
  698. package/dist/relationship/index.d.ts +0 -4
  699. package/dist/relationship/registry.d.ts +0 -13
  700. package/dist/relationship/types.d.ts +0 -45
  701. package/dist/review/arb.d.ts +0 -4
  702. package/dist/review/demand.d.ts +0 -3
  703. package/dist/review/index.d.ts +0 -3
  704. package/dist/review/machine.d.ts +0 -3
  705. package/dist/review/order.d.ts +0 -8
  706. package/dist/review/progress.d.ts +0 -3
  707. package/dist/review/repository.d.ts +0 -3
  708. package/dist/review/service.d.ts +0 -5
  709. package/dist/review/types.d.ts +0 -163
  710. package/dist/role/derivation.d.ts +0 -35
  711. package/dist/role/index.d.ts +0 -6
  712. package/dist/role/intent.d.ts +0 -23
  713. package/dist/role/model.d.ts +0 -9
  714. package/dist/role/profiles.d.ts +0 -26
  715. package/dist/role/resolution.d.ts +0 -27
  716. package/dist/runtime/instance-registry.d.ts +0 -14
  717. package/dist/safety/index.d.ts +0 -3
  718. package/dist/schema/call/permission-handler.d.ts +0 -5
  719. package/dist/schema/call/semantic-customer-advice.spec.d.ts +0 -1
  720. package/dist/schema/call/semantic-customer-advice.spec.js +0 -1
  721. package/dist/schema/common/tokentype-short-probe.spec.d.ts +0 -1
  722. package/dist/schema/common/tokentype-short-probe.spec.js +0 -1
  723. package/dist/schema/envelope-unify.d.ts +0 -5
  724. package/dist/schema/goal/planning.d.ts +0 -742
  725. package/dist/schema/industry-pack/modes.d.ts +0 -447
  726. package/dist/schema/query/bi.d.ts +0 -3369
  727. package/dist/schema/utils/guard-query-utils.d.ts +0 -18
  728. package/dist/schema/utils/permission-index-utils.d.ts +0 -2
  729. package/dist/schema/utils/skills-recommendation.d.ts +0 -2
  730. package/dist/schema-query-impl/index.d.ts +0 -83
  731. package/dist/schemas/account_operation.output.json +0 -3869
  732. package/dist/schemas/ask_user.output.json +0 -54
  733. package/dist/schemas/benchmark_migration_operation.output.json +0 -1669
  734. package/dist/schemas/bridge_operation.output.json +0 -1548
  735. package/dist/schemas/config_operation.output.json +0 -896
  736. package/dist/schemas/employee_operation.output.json +0 -307
  737. package/dist/schemas/evaluation_operation.output.json +0 -4716
  738. package/dist/schemas/guard2file.output.json +0 -83
  739. package/dist/schemas/industry_pack_operation.output.json +0 -2985
  740. package/dist/schemas/intent_radar.output.json +0 -326
  741. package/dist/schemas/keeper_operation.output.json +0 -1441
  742. package/dist/schemas/local_cache_operation.output.json +0 -1718
  743. package/dist/schemas/local_history_operation.output.json +0 -1644
  744. package/dist/schemas/local_info_operation.output.json +0 -1530
  745. package/dist/schemas/local_mark_operation.output.json +0 -1622
  746. package/dist/schemas/machineNode2file.output.json +0 -88
  747. package/dist/schemas/messenger_operation.output.json +0 -4692
  748. package/dist/schemas/monitor_events.output.json +0 -1602
  749. package/dist/schemas/monitor_subscription.output.json +0 -1629
  750. package/dist/schemas/onchain_events.output.json +0 -4053
  751. package/dist/schemas/onchain_operations.output.json +0 -7788
  752. package/dist/schemas/onchain_table_data.output.json +0 -11868
  753. package/dist/schemas/permission_operation.output.json +0 -205
  754. package/dist/schemas/persona_operation.output.json +0 -64612
  755. package/dist/schemas/query_toolkit.output.json +0 -28302
  756. package/dist/schemas/schema_query.output.json +0 -81
  757. package/dist/schemas/service_clone_operation.output.json +0 -247
  758. package/dist/schemas/strategy_review_operation.output.json +0 -532
  759. package/dist/schemas/watch_operation.output.json +0 -930
  760. package/dist/schemas/wip_file.output.json +0 -360
  761. package/dist/schemas/workflow_operation.output.json +0 -422
  762. package/dist/schemas/workspace_operation.output.json +0 -477
  763. package/dist/schemas/wowok_buildin_info.output.json +0 -2477
  764. package/dist/strategy/collectors.d.ts +0 -66
  765. package/dist/strategy/collectors.spec.d.ts +0 -1
  766. package/dist/strategy/collectors.spec.js +0 -1
  767. package/dist/strategy/index.d.ts +0 -5
  768. package/dist/strategy/metrics.d.ts +0 -20
  769. package/dist/strategy/review.d.ts +0 -48
  770. package/dist/strategy/scorecard.d.ts +0 -32
  771. package/dist/strategy/store.d.ts +0 -26
  772. package/dist/task/ProcessStore.d.ts +0 -98
  773. package/dist/task/playbook.d.ts +0 -11
  774. package/dist/task/substep-trace.d.ts +0 -91
  775. package/dist/tools/build-fingerprint.d.ts +0 -28
  776. package/dist/tools/error-catalog.d.ts +0 -17
  777. package/dist/tools/handlers/ask-user.d.ts +0 -3
  778. package/dist/tools/handlers/benchmark-migration.d.ts +0 -121
  779. package/dist/tools/handlers/bridge.d.ts +0 -8
  780. package/dist/tools/handlers/config.d.ts +0 -2
  781. package/dist/tools/handlers/dispatch-expectations.d.ts +0 -2
  782. package/dist/tools/handlers/dispatch-expectations.spec.d.ts +0 -1
  783. package/dist/tools/handlers/dispatch-expectations.spec.js +0 -1
  784. package/dist/tools/handlers/employee.d.ts +0 -8
  785. package/dist/tools/handlers/employee.spec.d.ts +0 -1
  786. package/dist/tools/handlers/employee.spec.js +0 -1
  787. package/dist/tools/handlers/entry-edge-recipe.d.ts +0 -101
  788. package/dist/tools/handlers/escrow-deficit.d.ts +0 -10
  789. package/dist/tools/handlers/evaluation.d.ts +0 -2
  790. package/dist/tools/handlers/evaluation.spec.d.ts +0 -1
  791. package/dist/tools/handlers/evaluation.spec.js +0 -1
  792. package/dist/tools/handlers/file-export.d.ts +0 -3
  793. package/dist/tools/handlers/fund-rail-recipe.d.ts +0 -10
  794. package/dist/tools/handlers/goal.d.ts +0 -4
  795. package/dist/tools/handlers/industry-pack.d.ts +0 -3
  796. package/dist/tools/handlers/intent-radar.d.ts +0 -2
  797. package/dist/tools/handlers/keeper.d.ts +0 -12
  798. package/dist/tools/handlers/local.d.ts +0 -6
  799. package/dist/tools/handlers/mark-namespace.d.ts +0 -30
  800. package/dist/tools/handlers/messenger.d.ts +0 -24
  801. package/dist/tools/handlers/monitor.d.ts +0 -26
  802. package/dist/tools/handlers/name-resolution.d.ts +0 -4
  803. package/dist/tools/handlers/name-resolution.spec.d.ts +0 -1
  804. package/dist/tools/handlers/name-resolution.spec.js +0 -1
  805. package/dist/tools/handlers/network.d.ts +0 -1
  806. package/dist/tools/handlers/onchain-name-registration.d.ts +0 -49
  807. package/dist/tools/handlers/onchain-name-registration.spec.d.ts +0 -1
  808. package/dist/tools/handlers/onchain-name-registration.spec.js +0 -1
  809. package/dist/tools/handlers/onchain.d.ts +0 -132
  810. package/dist/tools/handlers/permission.d.ts +0 -2
  811. package/dist/tools/handlers/persona.d.ts +0 -4
  812. package/dist/tools/handlers/publish-binding-echo.d.ts +0 -22
  813. package/dist/tools/handlers/review-chain.d.ts +0 -19
  814. package/dist/tools/handlers/schema-query.d.ts +0 -2
  815. package/dist/tools/handlers/service-clone.d.ts +0 -20
  816. package/dist/tools/handlers/stale-build-check.d.ts +0 -9
  817. package/dist/tools/handlers/strategy-review.d.ts +0 -2
  818. package/dist/tools/handlers/submission-assembly.d.ts +0 -55
  819. package/dist/tools/handlers/watch.d.ts +0 -2
  820. package/dist/tools/handlers/winner-derivation.d.ts +0 -20
  821. package/dist/tools/handlers/wip-upload.d.ts +0 -22
  822. package/dist/tools/handlers/wip.d.ts +0 -2
  823. package/dist/tools/handlers/workflow.d.ts +0 -2
  824. package/dist/tools/handlers/workspace.d.ts +0 -4
  825. package/dist/tools/move-fn-index.gen.d.ts +0 -3
  826. package/dist/tools/publish-gate-state.d.ts +0 -5
  827. package/dist/tools/registry/agent.d.ts +0 -2
  828. package/dist/tools/registry/bridge.d.ts +0 -2
  829. package/dist/tools/registry/business.d.ts +0 -2
  830. package/dist/tools/registry/config.d.ts +0 -2
  831. package/dist/tools/registry/evaluation.d.ts +0 -2
  832. package/dist/tools/registry/files.d.ts +0 -2
  833. package/dist/tools/registry/identity.d.ts +0 -2
  834. package/dist/tools/registry/interaction.d.ts +0 -2
  835. package/dist/tools/registry/local.d.ts +0 -2
  836. package/dist/tools/registry/messenger.d.ts +0 -2
  837. package/dist/tools/registry/monitor.d.ts +0 -2
  838. package/dist/tools/registry/onchain.d.ts +0 -2
  839. package/dist/tools/registry/query.d.ts +0 -2
  840. package/dist/tools/retry.d.ts +0 -8
  841. package/dist/tools/rules-hook.d.ts +0 -5
  842. package/dist/tools/runtime-health.d.ts +0 -10
  843. package/dist/tools/sanitize-description-roundtrip.spec.d.ts +0 -1
  844. package/dist/tools/sanitize-description-roundtrip.spec.js +0 -1
  845. package/dist/tools/sanitize-output.d.ts +0 -4
  846. package/dist/tools/sanitize-output.spec.d.ts +0 -1
  847. package/dist/tools/sanitize-output.spec.js +0 -1
  848. package/dist/tools/shared.d.ts +0 -20
  849. package/dist/tools/transport-integrity.d.ts +0 -7
  850. package/dist/tools/upgrade-check.d.ts +0 -75
  851. package/dist/tools/wip-deploy-assist.d.ts +0 -34
  852. package/dist/tools/wip-verify-ledger.d.ts +0 -16
  853. package/dist/tools/wrap.d.ts +0 -45
@@ -1 +1 @@
1
- import{EDGE_SCHEMA_BY_ID,EDGE_ID_REPOSITORY_POLICY_GUARD}from'../graph/onchain/index.js';export const SCENARIO_BRIDGE_REGISTRY=[{'id':'bridge.supply_match','code':'b03','edge_refs':['demand.guard','demand.presenter','demand.presenter_service'],'name':'Supply-Demand\x20Match','participants':[{'object':'Demand','role':'need\x20expression\x20(what\x20is\x20wanted)'},{'object':'Service','role':'capability\x20offering\x20(what\x20can\x20be\x20delivered)'},{'object':'Guard','role':'presentation\x20qualification\x20(who\x20may\x20present\x20what)'}],'bridge_fields':[{'object':'Demand','field':'guards:\x20vector<ServiceGuard>\x20{\x20guard,\x20service_identifier\x20}','meaning':'presenters\x20must\x20pass\x20the\x20guard;\x20service_identifier\x20resolves\x20WHICH\x20service\x20they\x20present\x20for'},{'object':'Demand','field':'presentation\x20call\x20carries\x20the\x20Service\x20object\x20as\x20its\x20argument','meaning':'a\x20Service\x20object\x20is\x20supplied\x20AT\x20the\x20presentation\x20—\x20the\x20demand\x20does\x20not\x20store\x20services;\x20suppliers\x20bring\x20them'}],'move_anchor':'presentation\x20resolves\x20the\x20guard\x27s\x20verdict\x20from\x20the\x20submitted\x20service-identifier\x20evidence','scenario':{'from':'Demand\x20scenario\x20(need\x20expression)','to':'Service\x20scenario\x20(product\x20listing)','merged':'Matchmaking\x20(discovery\x20+\x20qualification\x20+\x20choice)'},'capability_gained':'Choice\x20among\x20qualified\x20offers:\x20the\x20demander\x20compares\x20presented\x20Services\x20(acceptance_score\x20accumulates\x20per\x20presenter)\x20'+'—\x20a\x20capability\x20neither\x20a\x20bare\x20Demand\x20(no\x20offers)\x20nor\x20a\x20bare\x20Service\x20(no\x20buyer\x20context)\x20possesses.','value_flow':'No\x20funds\x20move\x20yet\x20—\x20this\x20bridge\x20prices\x20ATTENTION:\x20acceptance_score\x20on\x20the\x20presenter\x27s\x20entity\x20is\x20the\x20reputation\x20currency.','prerequisites':['Demand\x20not\x20yet\x20paused','Presenter\x20passes\x20the\x20Demand\x27s\x20guard\x20(E_NEED_PASSPORT\x20when\x20guards\x20exist\x20and\x20no\x20passport\x20is\x20given)'],'examples':['Procurement\x20tender:\x20a\x20company\x20posts\x20a\x20Demand;\x20certified\x20suppliers\x20present\x20their\x20Services;\x20the\x20best\x20acceptance_score\x20wins\x20the\x20order.','Local\x20services\x20marketplace:\x20\x27repair\x20my\x20roof\x27\x20demand\x20meets\x20licensed\x20roofer\x20services.']},{'id':'bridge.purchase','code':'b01','edge_refs':['service.buy_guard','order.service','order.machine','order.discount','discount.service','order.builder','eoa.order','service.order'],'name':'Purchase\x20(Quote\x20→\x20Order)','participants':[{'object':'Service','role':'published\x20offering\x20(sales,\x20wip,\x20price)'},{'object':'Quote','role':'buyer\x27s\x20item\x20selection\x20+\x20computed\x20total'},{'object':'Discount','role':'transferable\x20price\x20reduction\x20bound\x20to\x20the\x20service'},{'object':'Guard','role':'buy\x20qualification\x20(buy_guard)'},{'object':'Order','role':'the\x20created\x20agreement'}],'bridge_fields':[{'object':'Service','field':'buy_guard:\x20Option<address>','meaning':'who\x20may\x20buy\x20(qualification);\x20buy()\x20refuses\x20when\x20a\x20guard\x20exists\x20and\x20no\x20passport\x20proves\x20it'},{'object':'Discount','field':'service:\x20address\x20(+\x20time\x20window,\x20benchmark,\x20transferable)','meaning':'the\x20discount\x20object\x20itself\x20carries\x20WHICH\x20service\x20it\x20applies\x20to\x20—\x20it\x20travels\x20wallet-to-wallet\x20but\x20stays\x20bound\x20to\x20the\x20service'},{'object':'Order','field':'machine:\x20Option<address>\x20(copied\x20from\x20the\x20Service\x20at\x20order\x20creation)','meaning':'the\x20fulfillment\x20workflow\x20is\x20PRE-BINDED\x20at\x20purchase\x20time\x20—\x20the\x20order\x20reserves\x20its\x20own\x20execution\x20path'}],'move_anchor':'the\x20purchase\x20entry\x20(open\x20or\x20passport-gated)\x20creates\x20the\x20Order','scenario':{'from':'Service\x20scenario\x20(offering)','to':'Order\x20scenario\x20(agreement\x20+\x20escrow\x20intent)','merged':'Transaction\x20(commitment\x20with\x20reserved\x20fulfillment)'},'capability_gained':'A\x20binding\x20agreement\x20that\x20reserves\x20its\x20own\x20execution\x20path:\x20the\x20Order\x20snapshot\x20copies\x20the\x20Service\x27s\x20machine\x20reference\x20'+'at\x20creation,\x20so\x20later\x20Service\x20edits\x20cannot\x20retroactively\x20change\x20how\x20THIS\x20order\x20is\x20fulfilled.','value_flow':'Amount\x20is\x20recorded\x20(order.amount)\x20but\x20coins\x20are\x20not\x20yet\x20moved\x20—\x20payment\x20happens\x20at\x20the\x20allocation\x20bridge.','prerequisites':['Service\x20published\x20(bPublished)\x20and\x20not\x20paused\x20(E_NOT_PUBLISHED\x20/\x20E_PAUSED)','Quote\x20signed\x20by\x20the\x20tx\x20digest\x20(E_INVALID_QUOTE)\x20—\x20prevents\x20quote\x20replay\x20across\x20transactions','buy_guard\x20passed\x20when\x20present\x20(E_BUY_GUARD_PASSPORT_REQUIRED)'],'examples':['Standard\x20e-commerce\x20checkout:\x20quote\x20items,\x20apply\x20a\x20transferred\x20Discount,\x20create\x20the\x20Order.','Gated\x20purchase:\x20only\x20KYC-passed\x20wallets\x20(buy_guard)\x20can\x20order\x20a\x20licensed\x20service.']},{'id':'bridge.escrow_split','code':'b05','edge_refs':['service.order_allocator_guard','order.allocation','allocation.guard','allocation.payment','allocation.for_object','allocation.for_guard','wf.forward_guard','payment.recipient','payment.from_object','payment.for_object','payment.for_guard'],'name':'Escrow\x20&\x20Split\x20(Order\x20→\x20Allocation\x20→\x20Payment)','participants':[{'object':'Service','role':'payout\x20rules\x20owner\x20(order_allocators)'},{'object':'Order','role':'escrowed\x20amount\x20+\x20single\x20allocation\x20slot'},{'object':'Allocation','role':'guard-gated\x20distributor'},{'object':'Payment','role':'the\x20actual\x20value\x20transfer\x20with\x20provenance'}],'bridge_fields':[{'object':'Service','field':'order_allocators:\x20Option<Allocators>','meaning':'who\x20may\x20run\x20the\x20split\x20and\x20under\x20which\x20guards\x20—\x20the\x20merchant\x27s\x20payout\x20policy,\x20pre-registered\x20on\x20the\x20Service'},{'object':'Order','field':'allocation:\x20Option<address>\x20(set\x20once\x20—\x20single-shot\x20split)','meaning':'the\x20order\x20can\x20be\x20split\x20exactly\x20once\x20—\x20the\x20escrow-to-payout\x20transition\x20is\x20one-way\x20and\x20auditable'},{'object':'Payment','field':'info.for_object\x20/\x20from_object','meaning':'every\x20payout\x20carries\x20the\x20source\x20object\x20address\x20—\x20money\x20always\x20answers\x20\x27which\x20business\x20object\x20paid\x20me\x27'}],'move_anchor':'order-side\x20allocation\x20entry\x20(E_ORDER_SERVICE_NOT_MATCH)\x20→\x20coin\x20escrow\x20split\x20for\x20the\x20order\x20(payment_info(order),\x20alloc)','scenario':{'from':'Order\x20scenario\x20(agreement\x20+\x20funds)','to':'Payment\x20scenario\x20(value\x20transfer)','merged':'Settlement\x20(escrowed\x20funds\x20split\x20by\x20declared\x20policy)'},'capability_gained':'Trustless\x20settlement:\x20the\x20buyer\x20pays\x20into\x20the\x20order\x20amount,\x20and\x20the\x20split\x20executes\x20only\x20under\x20the\x20merchant\x27s\x20'+'pre-registered\x20allocator\x20guards\x20—\x20neither\x20side\x20can\x20redirect\x20the\x20other\x27s\x20share;\x20the\x20Payment\x27s\x20from_object\x20makes\x20'+'every\x20revenue\x20line\x20item\x20auditable\x20back\x20to\x20its\x20order.','value_flow':'Buyer\x20coin\x20→\x20Allocation\x20balance\x20→\x20(guard-gated\x20alloc)\x20→\x20Payment\x20recipients\x20(Entity\x20/\x20Signer\x20/\x20GuardIdentifier).','prerequisites':['Coin\x20≥\x20order.amount\x20(E_COIN_NOT_ENOUGH),\x20excess\x20refunded\x20to\x20the\x20sender\x20in\x20the\x20same\x20tx','The\x20calling\x20Service\x20IS\x20the\x20order\x27s\x20service\x20(E_ORDER_SERVICE_NOT_MATCH)','Rate\x20shares\x20must\x20complete\x2010000\x20basis\x20points\x20unless\x20a\x20Surplus\x20entry\x20exists'],'examples':['Multi-vendor\x20order:\x20one\x20payment\x20split\x20across\x20goods\x20supplier,\x20logistics\x20operator,\x20and\x20platform\x20surplus.','Payroll-style\x20settlement:\x20order\x20revenue\x20split\x20to\x20staff\x20entities\x20by\x20Rate\x20with\x20the\x20owner\x20taking\x20Surplus.']},{'id':'bridge.fulfillment','code':'b04','edge_refs':['service.machine','order.machine','order.progress','progress.machine','progress.task','progress.named_operator','progress.context_repository','machine.node','wf.transition','wf.forward_guard','permission.entity'],'name':'Fulfillment\x20(Order\x20×\x20Machine\x20→\x20Progress)','participants':[{'object':'Service','role':'workflow\x20owner\x20(machine\x20field)'},{'object':'Order','role':'the\x20work\x20item\x20to\x20execute'},{'object':'Machine','role':'workflow\x20template\x20(nodes\x20+\x20forwards)'},{'object':'Progress','role':'per-order\x20workflow\x20instance'},{'object':'Permission','role':'who\x20may\x20advance\x20which\x20edge'}],'bridge_fields':[{'object':'Service','field':'machine:\x20Option<address>','meaning':'the\x20workflow\x20template\x20the\x20service\x20promises\x20to\x20execute\x20—\x20locked\x20at\x20publish\x20(bPublished)'},{'object':'Progress','field':'order\x20namespace\x20+\x20the\x20buyer\x20registered\x20as\x20the\x20order\x27s\x20owner','meaning':'the\x20buyer\x20becomes\x20the\x20Progress\x27s\x20order-owner\x20namespace:\x20operators\x20advance\x20THEIR\x20copy,\x20the\x20buyer\x27s\x20own\x20Progress\x20view\x20aggregates'},{'object':'Machine','field':'Forward\x20{\x20namedOperator\x20|\x20permissionIndex\x20|\x20guard\x20}','meaning':'each\x20edge\x20declares\x20its\x20operator\x20—\x20internal\x20staff,\x20permission\x20entity,\x20or\x20guard-proven\x20external\x20party'}],'move_anchor':'per-order\x20workflow\x20instantiation\x20(E_MACHINE_NOT_MATCH\x20prechecked)\x20attaches\x20the\x20Progress\x20instance\x20to\x20the\x20order','scenario':{'from':'Order\x20scenario\x20(agreement)','to':'Machine\x20scenario\x20(process\x20template)','merged':'Execution\x20(per-order\x20workflow\x20with\x20multi-party\x20advancement)'},'capability_gained':'Coordinated\x20execution:\x20the\x20SAME\x20template\x20runs\x20independently\x20per\x20order,\x20with\x20each\x20edge\x20potentially\x20operated\x20by\x20a\x20'+'different\x20party\x20(employee\x20/\x20supplier\x20/\x20buyer)\x20under\x20permission\x20or\x20guard\x20checks\x20—\x20process\x20outsourcing\x20with\x20on-chain\x20accountability.','prerequisites':['The\x20supplied\x20machine\x20IS\x20the\x20service\x27s\x20machine\x20(E_MACHINE_NOT_MATCH)','Each\x20forward\x27s\x20weight\x20counts\x20at\x20most\x20once\x20per\x20session\x20(E_NOT_THE_HOLDER\x20on\x20re-execution)','Edge\x20guard\x20(when\x20present)\x20requires\x20submitted\x20evidence\x20—\x20retained\x20submissions\x20persist\x20into\x20the\x20session\x20history'],'examples':['Custom\x20manufacturing:\x20paid\x20→\x20machining\x20→\x20QC\x20→\x20shipped,\x20where\x20QC\x20is\x20advanced\x20by\x20an\x20independent\x20inspector\x20(namedOperator).','Multi-supplier\x20sub-orders:\x20the\x20machine\x27s\x20nodes\x20hand\x20off\x20between\x20the\x20merchant\x20and\x20subcontracted\x20suppliers.']},{'id':'bridge.dispute','code':'b06','edge_refs':['service.permission','service.arbitration','arbitration.permission','arbitration.voting_guard','arbitration.usage_guard','order.dispute','order.claimed_by','arb.order','arb.arbitration_service','arb.voter'],'name':'Dispute\x20&\x20Compensation\x20(Service\x20×\x20Arbitration\x20×\x20Order\x20→\x20Arb)','participants':[{'object':'Service','role':'pre-registered\x20arbitrations\x20+\x20compensation\x20fund'},{'object':'Arbitration','role':'voting\x20rules\x20+\x20usage\x20gate'},{'object':'Order','role':'the\x20disputed\x20agreement\x20(single\x20claim)'},{'object':'Arb','role':'the\x20case\x20(7-state\x20lifecycle)'}],'bridge_fields':[{'object':'Service','field':'arbitrations:\x20vector<address>\x20+\x20compensation_fund:\x20Balance<T>','meaning':'the\x20merchant\x20pre-commits\x20BOTH\x20who\x20judges\x20(independent\x20permission)\x20AND\x20the\x20money\x20that\x20backs\x20the\x20verdict'},{'object':'Service','field':'arbitration\x20registration\x20fairness\x20check','meaning':'E_ARBITRATION_PERMISSION_CONFLICT:\x20an\x20Arbitration\x20sharing\x20the\x20Service\x27s\x20own\x20Permission\x20is\x20REJECTED\x20—\x20fairness\x20is\x20enforced\x20as\x20a\x20RELATIONAL\x20constraint,\x20not\x20a\x20promise'},{'object':'Order','field':'dispute:\x20vector<address>\x20+\x20claimed_by:\x20Option<address>','meaning':'disputes\x20append\x20to\x20the\x20order;\x20compensation\x20claims\x20it\x20exactly\x20once\x20(E_ORDER_ALREADY_CLAIMED)\x20—\x20the\x20payout\x20is\x20single-shot\x20by\x20construction'}],'move_anchor':'dispute\x20filing\x20(open\x20or\x20passport-gated)\x20+\x20compensation\x20claim,\x207-state\x20lifecycle','scenario':{'from':'Fulfillment\x20scenario\x20(execution\x20with\x20possible\x20disagreement)','to':'Arbitration\x20scenario\x20(independent\x20judgment)','merged':'Remedy\x20(wrong\x20execution\x20→\x20compensated\x20loss)'},'capability_gained':'Credible\x20remedy:\x20the\x20loser\x20of\x20a\x20bad\x20transaction\x20is\x20made\x20whole\x20from\x20a\x20fund\x20the\x20merchant\x20could\x20not\x20pre-empty,\x20'+'judged\x20by\x20parties\x20the\x20merchant\x20cannot\x20appoint\x20unilaterally\x20—\x20trustlessness\x20expressed\x20as\x20a\x20field-level\x20topology\x20constraint.','value_flow':'compensation_fund\x20(Service)\x20→\x20indemnity\x20(Arb)\x20→\x20compensation\x20claim\x20to\x20the\x20winning\x20party\x20(single\x20claim\x20per\x20order).','prerequisites':['Disputant\x20passes\x20the\x20Arbitration\x27s\x20usage_guard\x20when\x20set\x20(E_NEED_PASSPORT)','Voters\x20pass\x20voting\x20guards;\x20vote\x20weight\x20from\x20FixedValue\x20or\x20GuardIdentifier\x20submission','Voting\x20deadline\x20elapsed\x20before\x20finish;\x20objection\x20windows\x20respected\x20(state\x20machine)'],'examples':['Delivery\x20dispute:\x20buyer\x20proves\x20non-delivery\x20via\x20WTS\x20evidence;\x20independent\x20arbitrators\x20vote;\x20compensation\x20pays\x20from\x20the\x20fund.','SLA\x20breach:\x20machine\x20timestamps\x20prove\x20late\x20delivery;\x20weighted\x20voters\x20set\x20the\x20indemnity.']},{'id':'bridge.data_service','code':'b02','edge_refs':['service.repository','repository.permission',EDGE_ID_REPOSITORY_POLICY_GUARD,'repository.quote_guard','repository.data_about','progress.context_repository'],'name':'Data\x20Service\x20(Service\x20×\x20Repository)','participants':[{'object':'Service','role':'the\x20offering\x20that\x20includes\x20data\x20deliverables'},{'object':'Repository','role':'on-chain\x20database\x20(policies,\x20rows)'},{'object':'Guard','role':'write/quote\x20qualification\x20per\x20policy'}],'bridge_fields':[{'object':'Service','field':'repositories:\x20vector<address>\x20(max\x20100)','meaning':'databases\x20the\x20service\x20commits\x20to\x20maintain\x20—\x20the\x20deliverable\x20IS\x20the\x20data'},{'object':'Repository','field':'PolicyGuard\x20{\x20id_from_submission,\x20data_from_submission\x20}','meaning':'writes\x20are\x20guard-qualified:\x20WHO\x20(row\x20key)\x20may\x20write\x20WHAT\x20(the\x20submitted\x20data\x20itself)'}],'move_anchor':'repositories\x20field,\x20policy-guarded\x20writes','scenario':{'from':'Service\x20scenario\x20(offering)','to':'Repository\x20scenario\x20(on-chain\x20database)','merged':'Data\x20products\x20(paid,\x20qualified,\x20auditable\x20data\x20maintenance)'},'capability_gained':'Verifiable\x20data\x20work:\x20a\x20subscription\x20where\x20the\x20provider\x27s\x20every\x20write\x20is\x20qualified\x20by\x20guards\x20and\x20attributable\x20to\x20'+'the\x20paid\x20service\x20—\x20data\x20quality\x20becomes\x20an\x20enforceable\x20contract\x20term,\x20not\x20a\x20promise.','prerequisites':['Writer\x20passes\x20the\x20policy\x27s\x20write\x20guards','Row\x20key\x20resolves\x20via\x20id_from_submission\x20(or\x20PolicyRule.id_from\x20static\x20override)'],'examples':['Market-data\x20feed\x20service:\x20subscribers\x20pay;\x20the\x20provider\x20writes\x20rows\x20under\x20a\x20write\x20guard\x20proving\x20oracle\x20provenance.','Review\x20platform:\x20reviewers\x20pass\x20reputation\x20guards;\x20their\x20submissions\x20become\x20the\x20product\x20others\x20pay\x20to\x20read\x20(quote_guard).']},{'id':'bridge.qualification','code':'b10','edge_refs':['service.buy_guard','demand.guard','arbitration.voting_guard','arbitration.usage_guard','wf.forward_guard','repository.quote_guard',EDGE_ID_REPOSITORY_POLICY_GUARD,'treasury.deposit_guard','treasury.withdraw_guard','guard.relies','passport.guard','passport.ticket_relies'],'name':'Qualification\x20(Guard\x20×\x20every\x20gated\x20scenario)','participants':[{'object':'Guard','role':'the\x20proof\x20machine'},{'object':'Passport','role':'per-tx\x20proof\x20carrier'},{'object':'gated\x20objects','role':'Service(buy)\x20/\x20Demand(present)\x20/\x20Arbitration(vote,\x20dispute)\x20/\x20Machine(forward)\x20/\x20Repository(write)\x20/\x20Treasury(external\x20flows)'}],'bridge_fields':[{'object':'gated\x20object','field':'*_guard\x20/\x20guards\x20fields\x20(buy_guard,\x20usage_guard,\x20voting_guard,\x20forward\x20guard,\x20policy\x20write\x20guards,\x20external\x20guards)','meaning':'the\x20object\x20declares\x20WHICH\x20guard\x20governs\x20its\x20gate\x20—\x20preset\x20slots\x20define\x20what\x20the\x20guard\x27s\x20submissions\x20MEAN\x20for\x20that\x20object'}],'move_anchor':'guard\x20verdict\x20resolution\x20+\x20evidence\x20retrieval\x20(native\x20DSL:\x20Signer/Clock/Query\x20×\x20logic\x20tree)','scenario':{'from':'Proof\x20scenario\x20(evidence\x20+\x20verification)','to':'any\x20gated\x20business\x20scenario','merged':'Programmable\x20trust\x20(rules-as-code\x20participation)'},'capability_gained':'Unforgeable\x20participation\x20rules:\x20KYC,\x20stake,\x20membership,\x20time\x20windows,\x20oracle\x20facts\x20—\x20expressed\x20once\x20in\x20a\x20Guard\x20and\x20'+'reused\x20across\x20every\x20gate\x20that\x20binds\x20it;\x20the\x20same\x20guard\x20can\x20gate\x20buying,\x20presenting,\x20voting,\x20and\x20writing\x20consistently.','prerequisites':['Guard\x20DSL\x20type\x20compatibility\x20(e.g.\x20RewardIdentifier\x20needs\x20address-typed\x20submissions)','Passport\x20carries\x20the\x20guard\x27s\x20required\x20submissions\x20in\x20the\x20same\x20tx'],'examples':['One\x20KYC\x20guard\x20reused\x20by\x20five\x20services\x27\x20buy_gates\x20—\x20one\x20proof,\x20five\x20doors.','Stake-weighted\x20voting\x20guard:\x20the\x20same\x20guard\x20governs\x20both\x20arbitration\x20ballots\x20and\x20treasury\x20withdrawals.']},{'id':'bridge.communication','code':'b11','edge_refs':['service.um','machine.um','demand.um','arbitration.um','reward.um','repository.um','permission.um','treasury.um','contact.permission','contact.im','order.required_info','eoa.contact'],'name':'Communication\x20(um:\x20Contact\x20×\x20every\x20business\x20object)','participants':[{'object':'Contact','role':'bound\x20IM\x20channel\x20(ims\x20members)'},{'object':'business\x20objects','role':'Service\x20/\x20Order\x20context\x20/\x20Demand\x20/\x20Arbitration\x20/\x20Treasury\x20/\x20Reward\x20/\x20Repository\x20/\x20Machine'}],'bridge_fields':[{'object':'business\x20object','field':'um:\x20Option<address>','meaning':'each\x20object\x20can\x20bind\x20ONE\x20Contact\x20—\x20its\x20dedicated\x20negotiation/coordination\x20channel;\x20affiliation\x20registered\x20in\x20object_linker'},{'object':'Contact','field':'ims:\x20vector<Im{at,\x20status,\x20description}>','meaning':'channel\x20membership\x20with\x20per-member\x20status\x20—\x20the\x20roster\x20of\x20who\x20talks\x20about\x20THIS\x20object\x27s\x20business'}],'move_anchor':'channel\x20roster\x20membership\x20(ims)\x20add/remove,\x20per-object\x20channel\x20bind/unbind','scenario':{'from':'Business\x20scenario\x20(any\x20object\x20lifecycle)','to':'Encrypted\x20IM\x20scenario\x20(WTS\x20evidence,\x20negotiation)','merged':'Contextual\x20communication\x20(talk\x20WITH\x20evidence\x20about\x20the\x20exact\x20business)'},'capability_gained':'Every\x20business\x20object\x20can\x20grow\x20its\x20own\x20communication\x20channel:\x20pre-order\x20negotiation,\x20in-flight\x20coordination,\x20and\x20'+'dispute\x20evidence\x20collection\x20happen\x20IN\x20the\x20context\x20of\x20the\x20exact\x20object\x20they\x20concern\x20—\x20messages\x20become\x20evidence\x20'+'(WTS)\x20tied\x20to\x20the\x20on-chain\x20thing.','prerequisites':['um\x20binding\x20is\x20single\x20(one\x20Contact\x20per\x20object;\x20rebinding\x20replaces\x20the\x20affiliation\x20record)','IM\x20membership\x20managed\x20by\x20the\x20Contact\x20owner'],'examples':['Order-level\x20channel:\x20buyer,\x20merchant,\x20and\x20the\x20assigned\x20operator\x20coordinate\x20delivery\x20in\x20the\x20order\x27s\x20um.','Arbitration\x20evidence\x20room:\x20disputants\x20and\x20arbitrators\x20exchange\x20WTS-signed\x20evidence\x20in\x20the\x20arbitration\x27s\x20um.']},{'id':'bridge.governance','code':'b09','edge_refs':['service.permission','arbitration.permission','demand.permission','machine.permission','reward.permission','repository.permission','contact.permission','treasury.permission','permission.admin','permission.owner','permission.entity','eoa.permission','permission.core_binding','permission.tx_binding'],'name':'Governance\x20(permission\x20×\x20every\x20object)','participants':[{'object':'Permission','role':'owner/admins/entities\x20+\x20per-index\x20operation\x20rights'},{'object':'business\x20objects','role':'every\x20w::\x20object\x20(permission\x20field)'},{'object':'EntityPermission','role':'reverse\x20index:\x20entity\x20→\x20memberships'}],'bridge_fields':[{'object':'business\x20object','field':'permission:\x20address','meaning':'ALL\x20admin\x20operations\x20on\x20the\x20object\x20route\x20through\x20this\x20one\x20table\x20—\x20a\x20single\x20governance\x20backbone\x20across\x20the\x20whole\x20topology'},{'object':'Permission','field':'tables:\x20entity\x20→\x20perm\x20indices\x20(0..USER_DEFINED)','meaning':'fine-grained\x20operation\x20rights\x20per\x20entity;\x20object\x20functions\x20assert\x20their\x20own\x20index\x20(e.g.\x20reward\x20new=150)'}],'move_anchor':'per-index\x20operation-rights\x20assertion\x20on\x20every\x20mutating\x20entry,\x20entity_permission\x20(0xaa8\x20reverse\x20index)','scenario':{'from':'Operation\x20scenario\x20(any\x20mutating\x20call)','to':'Permission\x20scenario\x20(roles\x20+\x20indices)','merged':'Delegated\x20administration\x20(staff\x20act\x20within\x20bounded\x20rights)'},'capability_gained':'Organizational\x20scale:\x20one\x20merchant\x20operates\x20hundreds\x20of\x20objects\x20through\x20shared\x20Permissions;\x20staff\x20gain\x20scoped\x20rights\x20'+'(per-operation\x20indices)\x20—\x20the\x20topology\x20stays\x20governable\x20as\x20it\x20grows,\x20and\x20EntityPermission\x20makes\x20any\x20address\x27s\x20'+'role\x20discoverable\x20(the\x20account-side\x20entry\x20into\x20the\x20topology).','prerequisites':['Caller\x27s\x20operation\x20rights\x20are\x20asserted\x20at\x20the\x20operation\x27s\x20permission\x20index','Zero-index\x20entities\x20have\x20membership\x20but\x20no\x20operation\x20rights\x20(fact\x20preserved\x20by\x20design)'],'examples':['Customer\x20service\x20staff\x20hold\x20index\x20225\x20(progress\x20owner_receive)\x20without\x20any\x20treasury\x20rights.','A\x20merchant\x27s\x20entire\x20object\x20fleet\x20re-governed\x20by\x20swapping\x20one\x20Permission\x20(permission\x20rebinding\x20+\x20affiliation\x20change).']},{'id':'bridge.incentive','code':'b07','edge_refs':['service.reward','demand.reward','repository.reward','reward.guard','reward.claim'],'name':'Incentive\x20(Reward\x20×\x20Guard\x20×\x20employing\x20object)','participants':[{'object':'Reward','role':'guarded\x20fund\x20pool'},{'object':'Guard','role':'claim\x20qualification\x20+\x20dynamic\x20recipient/amount'},{'object':'Service','role':'rewards:\x20vector<address>\x20—\x20marketing\x20attach\x20point'},{'object':'employee\x20entities','role':'claimants\x20(KPI-qualified)'}],'bridge_fields':[{'object':'Service','field':'rewards:\x20vector<address>\x20(max\x2020)','meaning':'marketing/incentive\x20pools\x20attached\x20to\x20the\x20offering'},{'object':'Reward','field':'RewardGuard\x20{\x20guard,\x20recipient,\x20amount,\x20expiration_time,\x20store_from_id\x20}','meaning':'claim\x20rules\x20—\x20preset\x20slots\x20read\x20payee/amount/deadline\x20from\x20guard\x20submissions\x20(see\x20the\x20preset\x20guard-slot\x20bindings)'}],'move_anchor':'rewards\x20field,\x20guard\x20binding\x20+\x20claim','scenario':{'from':'Employment/operation\x20scenario\x20(work\x20done)','to':'Reward\x20scenario\x20(guarded\x20payout)','merged':'Incentive\x20alignment\x20(KPI\x20→\x20acceptance\x20→\x20reward\x20claim)'},'capability_gained':'Performance-contingent\x20compensation:\x20staff\x20claim\x20rewards\x20by\x20proving\x20work\x20(guard\x20evidence:\x20reaction\x20time,\x20node\x20'+'completion,\x20acceptance\x20records)\x20—\x20the\x20employment\x20tension\x20(fixed\x20pay\x20vs\x20outcome)\x20is\x20bridged\x20by\x20making\x20the\x20payout\x20'+'itself\x20evidence-gated.','value_flow':'Deposited\x20coins\x20→\x20balance\x20→\x20guard-gated\x20claim\x20(the\x20ONLY\x20balance\x20exit\x20—\x20R-R-7-01\x20requires\x20an\x20owner\x20escape\x20guard).','prerequisites':['Claim\x20within\x20expiration\x20window\x20(clock\x20≤\x20expiration_time)','Claim\x20amount\x20≤\x20balance;\x20recipient\x20resolved\x20by\x20the\x20guard\x20submission\x20(Entity\x20/\x20Signer\x20/\x20GuardIdentifier)'],'examples':['Staff\x20KPI\x20reward:\x20guard\x20verifies\x20node\x20reaction-time\x20submissions;\x20employee\x20claims\x20a\x20GuardU64Identifier\x20amount.','Referral\x20marketing:\x20purchasers\x20submit\x20receipt\x20proofs;\x20campaign\x20guard\x20pays\x20cashback\x20to\x20the\x20submitted\x20address.']},{'id':'bridge.evidence','code':'b12','edge_refs':['wf.forward_guard','passport.signer','passport.guard','passport.ticket_relies','passport.impack','order.required_info','proof.signer','proof.about'],'name':'Evidence\x20(Proof\x20/\x20retained\x20submissions\x20×\x20Progress\x20&\x20Arb)','participants':[{'object':'Proof','role':'frozen\x20signed\x20fact\x20(WTS,\x20oracle\x20attestation)'},{'object':'Machine\x20Forward','role':'retained_submission\x20requirement'},{'object':'Progress','role':'session\x20history\x20storage'},{'object':'Arb','role':'proposition/vote\x20context'}],'bridge_fields':[{'object':'Machine\x20Forward','field':'retained_submission:\x20vector<u8>','meaning':'the\x20edge\x20cannot\x20be\x20crossed\x20without\x20submitting\x20these\x20slots\x20—\x20and\x20the\x20values\x20persist\x20into\x20the\x20session\x20history'},{'object':'Order','field':'required_info:\x20Option<address>\x20(im\x20or\x20proof)','meaning':'the\x20buyer\x20attaches\x20context\x20(IM\x20thread\x20or\x20proof\x20object)\x20the\x20merchant\x20needs\x20to\x20fulfill'}],'move_anchor':'retained\x20submissions\x20persist\x20into\x20the\x20session\x20history;\x20proof\x20object\x20(frozen,\x20signer-anchored)','scenario':{'from':'Execution\x20scenario\x20(workflow\x20edges)','to':'Attestation\x20scenario\x20(signed\x20facts)','merged':'Accountable\x20execution\x20(every\x20step\x20provable\x20after\x20the\x20fact)'},'capability_gained':'An\x20audit-grade\x20trail\x20for\x20INTANGIBLE\x20work:\x20what\x20the\x20operator\x20submitted\x20to\x20cross\x20each\x20edge\x20is\x20on-chain\x20forever\x20—\x20'+'later\x20disputes,\x20KPI\x20assessments,\x20and\x20reputation\x20scores\x20read\x20the\x20same\x20trail,\x20so\x20execution\x20quality\x20becomes\x20evidence.','prerequisites':['retained_submission\x20ids\x20must\x20be\x20retained\x20submission\x20slots\x20of\x20the\x20forward\x27s\x20guard\x20(E_SUBMISSION_SLOT_MISSING\x20/\x20E_SUBMISSION_SLOT_NOT_RETAINED)','Proof\x20objects\x20are\x20immutable\x20once\x20frozen\x20(create\x20→\x20freeze_object)'],'examples':['QC\x20step\x20requires\x20a\x20signed\x20inspection\x20proof;\x20the\x20proof\x20lands\x20in\x20the\x20session\x20history\x20with\x20the\x20advancing\x20tx.','Buyer\x20attaches\x20a\x20WTS\x20message\x20thread\x20as\x20order\x20required_info;\x20the\x20merchant\x20fulfills\x20against\x20it.']},{'id':'bridge.fund_object','code':'b08','edge_refs':['payment.recipient','payment.from_object','payment.for_object','allocation.payment','allocation.for_object','allocation.for_guard','payment.signer','treasury.record'],'name':'Fund-as-Object\x20(CoinWrapper\x20×\x20owner_receive\x20×\x20any\x20object)','participants':[{'object':'Payment\x20/\x20CoinWrapper<K>','role':'value\x20wrapped\x20as\x20a\x20transferable\x20object\x20(any\x20token\x20K)'},{'object':'receiving\x20objects','role':'Reward\x20/\x20Treasury\x20/\x20Service\x20/\x20Arbitration\x20/\x20Repository\x20/\x20Contact\x20...'},{'object':'Permission\x20owner','role':'the\x20extraction\x20target'}],'bridge_fields':[{'object':'receiving\x20object','field':'receive\x20(join\x20into\x20balance)\x20vs\x20owner_receive\x20(extract\x20received\x20objects\x20to\x20Permission\x20owner)','meaning':'two\x20DIFFERENT\x20doors:\x20receive\x20turns\x20an\x20arrived\x20payment\x20into\x20claimable\x20balance;\x20owner_receive\x20forwards\x20arrived\x20objects\x20(any\x20K,\x20incl.\x20NFT-like)\x20to\x20the\x20owner\x20without\x20touching\x20balance'},{'object':'CoinWrapper','field':'payment:\x20address','meaning':'the\x20wrapper\x20remembers\x20WHICH\x20payment\x20object\x20it\x20came\x20from\x20—\x20provenance\x20survives\x20the\x20transfer'}],'move_anchor':'receive\x20vs\x20owner-side\x20object\x20extraction,\x20unwrap\x20family','scenario':{'from':'Transfer\x20scenario\x20(objects\x20move\x20between\x20wallets/objects)','to':'Accounting\x20scenario\x20(balance\x20vs\x20custody)','merged':'Universal\x20value\x20custody\x20(any\x20asset\x20class,\x20any\x20token,\x20one\x20idiom)'},'capability_gained':'Objects\x20can\x20safely\x20RECEIVE\x20value\x20they\x20were\x20not\x20typed\x20for:\x20a\x20Reward<WOW>\x20can\x20custody\x20a\x20USDT\x20CoinWrapper\x20or\x20an\x20NFT\x20'+'via\x20owner_receive\x20—\x20cross-asset\x20custody\x20with\x20a\x20single,\x20uniform\x20extraction\x20rule\x20(to\x20the\x20Permission\x20owner).','value_flow':'CoinWrapper<K>\x20→\x20object\x20custody\x20→\x20owner_receive\x20→\x20Permission\x20owner\x20(NEVER\x20into\x20the\x20object\x27s\x20own\x20balance).','prerequisites':['owner_receive\x20requires\x20the\x20object\x27s\x20Permission\x20+\x20Receiving<K>\x20argument\x20(version+digest)','unwrapping\x20asserts\x20the\x20wrapper\x27s\x20payment\x20provenance\x20(EPAYMENT_NOT_MATCH)'],'examples':['A\x20customer\x20sends\x20an\x20NFT\x20coupon\x20to\x20a\x20Service;\x20the\x20merchant\x20extracts\x20it\x20via\x20service.owner_receive.','A\x20mixed-token\x20gift\x20lands\x20on\x20a\x20Reward;\x20owner_receive\x20forwards\x20it\x20without\x20polluting\x20the\x20WOW\x20claimable\x20balance.']}];for(const bridge of SCENARIO_BRIDGE_REGISTRY){for(const ref of bridge['edge_refs']){if(!EDGE_SCHEMA_BY_ID['has'](ref))throw new Error('scenario-topology:\x20bridge\x20'+bridge['id']+'\x20edge_ref\x20\x22'+ref+'\x22\x20is\x20not\x20a\x20registered\x20EdgeSchema\x20id');}}export const SCENARIO_CHAINS=[{'id':'chain.standard_ecommerce','name':'Standard\x20E-commerce','steps':[{'bridge':'bridge.qualification','note':'buy_guard\x20gates\x20who\x20may\x20purchase'},{'bridge':'bridge.purchase','note':'quote\x20+\x20discount\x20→\x20order\x20(machine\x20pre-bound)'},{'bridge':'bridge.communication','note':'um\x20channel\x20for\x20delivery\x20coordination'},{'bridge':'bridge.fulfillment','note':'progress\x20runs\x20the\x20machine;\x20evidence\x20retained\x20per\x20edge'},{'bridge':'bridge.escrow_split','note':'allocation\x20splits\x20escrow\x20to\x20suppliers\x20+\x20surplus'},{'bridge':'bridge.incentive','note':'optional:\x20staff\x20KPI\x20rewards\x20for\x20fast\x20fulfillment'}],'application_capability':'A\x20complete\x20store:\x20gated\x20checkout,\x20coordinated\x20delivery,\x20evidence-backed\x20fulfillment,\x20and\x20trustless\x20split\x20payout.','objects_touched':['Guard','Service','Discount','Order','Contact','Machine','Progress','Allocation','Payment','Reward','Permission','Passport']},{'id':'chain.procurement_tender','name':'Procurement\x20Tender','steps':[{'bridge':'bridge.supply_match','note':'demand\x20published;\x20qualified\x20services\x20present'},{'bridge':'bridge.qualification','note':'presentation\x20guards\x20filter\x20suppliers'},{'bridge':'bridge.purchase','note':'winning\x20offer\x20becomes\x20the\x20order'},{'bridge':'bridge.fulfillment','note':'multi-supplier\x20machine\x20handoffs'},{'bridge':'bridge.escrow_split','note':'allocation\x20pays\x20suppliers\x20+\x20surplus\x20to\x20demander?'},{'bridge':'bridge.dispute','note':'if\x20delivery\x20fails:\x20independent\x20arbitration\x20+\x20compensation'}],'application_capability':'A\x20full\x20tender\x20lifecycle:\x20need\x20→\x20competing\x20offers\x20→\x20award\x20→\x20delivery\x20→\x20settlement\x20with\x20credible\x20remedy.','objects_touched':['Demand','Guard','Service','Order','Machine','Progress','Allocation','Arbitration','Arb','Payment','Permission']},{'id':'chain.data_subscription','name':'Data\x20Subscription\x20Service','steps':[{'bridge':'bridge.data_service','note':'service\x20commits\x20to\x20repository\x20maintenance'},{'bridge':'bridge.qualification','note':'subscription\x20gate\x20(buy_guard)'},{'bridge':'bridge.purchase','note':'recurring\x20orders\x20or\x20one-off'},{'bridge':'bridge.escrow_split','note':'subscription\x20revenue\x20to\x20data\x20suppliers'},{'bridge':'bridge.communication','note':'um\x20for\x20data\x20requests\x20/\x20clarifications'},{'bridge':'bridge.dispute','note':'stale-data\x20compensation\x20via\x20arbitration'}],'application_capability':'Data\x20as\x20a\x20product:\x20paid,\x20guard-qualified\x20writes,\x20auditable\x20quality,\x20and\x20compensation\x20for\x20staleness.','objects_touched':['Repository','Guard','Service','Order','Allocation','Payment','Contact','Arbitration','Arb']},{'id':'chain.collaborative_operations','name':'Collaborative\x20Operations\x20(staff\x20+\x20outsourced\x20process)','steps':[{'bridge':'bridge.governance','note':'permission\x20entities\x20=\x20staff\x20with\x20scoped\x20indices'},{'bridge':'bridge.fulfillment','note':'machine\x20edges\x20operated\x20by\x20named\x20operators\x20/\x20permission\x20entities'},{'bridge':'bridge.evidence','note':'each\x20advance\x20retains\x20submissions'},{'bridge':'bridge.incentive','note':'KPI\x20guards\x20→\x20reward\x20claims'},{'bridge':'bridge.communication','note':'per-object\x20um\x20channels'}],'application_capability':'An\x20operating\x20company\x20on-chain:\x20internal\x20staff,\x20external\x20operators,\x20audited\x20execution,\x20aligned\x20pay.','objects_touched':['Permission','Machine','Progress','Guard','Reward','Contact','Proof']}];export const SCENARIO_TOPOLOGY_VERSION='1.1.0';export function getBridgeById(a){return SCENARIO_BRIDGE_REGISTRY['find'](c=>c['id']===a);}export function getBridgeByCode(a){return SCENARIO_BRIDGE_REGISTRY['find'](c=>c['code']===a);}export function getBridgesByObject(a){return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['participants']['some'](d=>d['object']===a)||c['bridge_fields']['some'](d=>d['object']===a));}export function getBridgesForEdge(a){return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['edge_refs']['includes'](a));}export function detectBridgesForEdges(a){const b=new Set(a);return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['edge_refs']['some'](d=>b['has'](d)));}export function getChainById(a){return SCENARIO_CHAINS['find'](b=>b['id']===a);}export function summarizeBridge(a){const c=a['participants']['map'](d=>d['object'])['join']('\x20×\x20');return'['+a['name']+']\x20'+c+'\x20→\x20'+a['scenario']['merged']+':\x20'+a['capability_gained']['split']('.\x20')[0x0]+'.';}export function detectBridgesForObjects(a){const b=new Set(a['map'](c=>c['toLowerCase']()));return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['bridge_fields']['some'](d=>b['has'](d['object']['toLowerCase']()))&&c['participants']['filter'](d=>b['has'](d['object']['toLowerCase']()))['length']>=0x2);}
1
+ import{EDGE_SCHEMA_BY_ID,EDGE_ID_REPOSITORY_POLICY_GUARD}from'../graph/onchain/index.js';export const SCENARIO_BRIDGE_REGISTRY=[{'id':'bridge.supply_match','code':'b03','edge_refs':['demand.guard','demand.presenter','demand.presenter_service'],'name':'Supply-Demand\x20Match','participants':[{'object':'Demand','role':'need\x20expression\x20(what\x20is\x20wanted)'},{'object':'Service','role':'capability\x20offering\x20(what\x20can\x20be\x20delivered)'},{'object':'Guard','role':'presentation\x20qualification\x20(who\x20may\x20present\x20what)'}],'bridge_fields':[{'object':'Demand','field':'guards:\x20vector<ServiceGuard>\x20{\x20guard,\x20service_identifier\x20}','meaning':'presenters\x20must\x20pass\x20the\x20guard;\x20service_identifier\x20resolves\x20WHICH\x20service\x20they\x20present\x20for'},{'object':'Demand','field':'presentation\x20call\x20carries\x20the\x20Service\x20object\x20as\x20its\x20argument','meaning':'a\x20Service\x20object\x20is\x20supplied\x20AT\x20the\x20presentation\x20—\x20the\x20demand\x20does\x20not\x20store\x20services;\x20suppliers\x20bring\x20them'}],'move_anchor':'presentation\x20resolves\x20the\x20guard\x27s\x20verdict\x20from\x20the\x20submitted\x20service-identifier\x20evidence','scenario':{'from':'Demand\x20scenario\x20(need\x20expression)','to':'Service\x20scenario\x20(product\x20listing)','merged':'Matchmaking\x20(discovery\x20+\x20qualification\x20+\x20choice)'},'capability_gained':'Choice\x20among\x20qualified\x20offers:\x20the\x20demander\x20compares\x20presented\x20Services\x20(acceptance_score\x20accumulates\x20per\x20presenter)\x20'+'—\x20a\x20capability\x20neither\x20a\x20bare\x20Demand\x20(no\x20offers)\x20nor\x20a\x20bare\x20Service\x20(no\x20buyer\x20context)\x20possesses.','value_flow':'No\x20funds\x20move\x20yet\x20—\x20this\x20bridge\x20prices\x20ATTENTION:\x20acceptance_score\x20on\x20the\x20presenter\x27s\x20entity\x20is\x20the\x20reputation\x20currency.','prerequisites':['Demand\x20not\x20yet\x20paused','Presenter\x20passes\x20the\x20Demand\x27s\x20guard\x20(E_NEED_PASSPORT\x20when\x20guards\x20exist\x20and\x20no\x20passport\x20is\x20given)'],'examples':['Procurement\x20tender:\x20a\x20company\x20posts\x20a\x20Demand;\x20certified\x20suppliers\x20present\x20their\x20Services;\x20the\x20best\x20acceptance_score\x20wins\x20the\x20order.','Local\x20services\x20marketplace:\x20\x27repair\x20my\x20roof\x27\x20demand\x20meets\x20licensed\x20roofer\x20services.']},{'id':'bridge.purchase','code':'b01','edge_refs':['service.buy_guard','order.service','order.machine','order.discount','discount.service','order.builder','eoa.order','service.order'],'name':'Purchase\x20(Quote\x20→\x20Order)','participants':[{'object':'Service','role':'published\x20offering\x20(sales,\x20wip,\x20price)'},{'object':'Quote','role':'buyer\x27s\x20item\x20selection\x20+\x20computed\x20total'},{'object':'Discount','role':'transferable\x20price\x20reduction\x20bound\x20to\x20the\x20service'},{'object':'Guard','role':'buy\x20qualification\x20(buy_guard)'},{'object':'Order','role':'the\x20created\x20agreement'}],'bridge_fields':[{'object':'Service','field':'buy_guard:\x20Option<address>','meaning':'who\x20may\x20buy\x20(qualification);\x20buy()\x20refuses\x20when\x20a\x20guard\x20exists\x20and\x20no\x20passport\x20proves\x20it'},{'object':'Discount','field':'service:\x20address\x20(+\x20time\x20window,\x20benchmark,\x20transferable)','meaning':'the\x20discount\x20object\x20itself\x20carries\x20WHICH\x20service\x20it\x20applies\x20to\x20—\x20it\x20travels\x20wallet-to-wallet\x20but\x20stays\x20bound\x20to\x20the\x20service'},{'object':'Order','field':'machine:\x20Option<address>\x20(copied\x20from\x20the\x20Service\x20at\x20order\x20creation)','meaning':'the\x20fulfillment\x20workflow\x20is\x20PRE-BINDED\x20at\x20purchase\x20time\x20—\x20the\x20order\x20reserves\x20its\x20own\x20execution\x20path'}],'move_anchor':'the\x20purchase\x20entry\x20(open\x20or\x20passport-gated)\x20creates\x20the\x20Order','scenario':{'from':'Service\x20scenario\x20(offering)','to':'Order\x20scenario\x20(agreement\x20+\x20escrow\x20intent)','merged':'Transaction\x20(commitment\x20with\x20reserved\x20fulfillment)'},'capability_gained':'A\x20binding\x20agreement\x20that\x20reserves\x20its\x20own\x20execution\x20path:\x20the\x20Order\x20snapshot\x20copies\x20the\x20Service\x27s\x20machine\x20reference\x20'+'at\x20creation,\x20so\x20later\x20Service\x20edits\x20cannot\x20retroactively\x20change\x20how\x20THIS\x20order\x20is\x20fulfilled.','value_flow':'Amount\x20is\x20recorded\x20(order.amount)\x20but\x20coins\x20are\x20not\x20yet\x20moved\x20—\x20payment\x20happens\x20at\x20the\x20allocation\x20bridge.','prerequisites':['Service\x20published\x20(bPublished)\x20and\x20not\x20paused\x20(E_NOT_PUBLISHED\x20/\x20E_PAUSED)','Quote\x20signed\x20by\x20the\x20tx\x20digest\x20(E_INVALID_QUOTE)\x20—\x20prevents\x20quote\x20replay\x20across\x20transactions','buy_guard\x20passed\x20when\x20present\x20(E_BUY_GUARD_PASSPORT_REQUIRED)'],'examples':['Standard\x20e-commerce\x20checkout:\x20quote\x20items,\x20apply\x20a\x20transferred\x20Discount,\x20create\x20the\x20Order.','Gated\x20purchase:\x20only\x20KYC-passed\x20wallets\x20(buy_guard)\x20can\x20order\x20a\x20licensed\x20service.']},{'id':'bridge.escrow_split','code':'b05','edge_refs':['service.order_allocator_guard','order.allocation','allocation.guard','allocation.payment','allocation.for_object','allocation.for_guard','wf.forward_guard','payment.recipient','payment.from_object','payment.for_object','payment.for_guard'],'name':'Escrow\x20&\x20Split\x20(Order\x20→\x20Allocation\x20→\x20Payment)','participants':[{'object':'Service','role':'payout\x20rules\x20owner\x20(order_allocators)'},{'object':'Order','role':'escrowed\x20amount\x20+\x20single\x20allocation\x20slot'},{'object':'Allocation','role':'guard-gated\x20distributor'},{'object':'Payment','role':'the\x20actual\x20value\x20transfer\x20with\x20provenance'}],'bridge_fields':[{'object':'Service','field':'order_allocators:\x20Option<Allocators>','meaning':'who\x20may\x20run\x20the\x20split\x20and\x20under\x20which\x20guards\x20—\x20the\x20merchant\x27s\x20payout\x20policy,\x20pre-registered\x20on\x20the\x20Service'},{'object':'Order','field':'allocation:\x20Option<address>\x20(set\x20once\x20—\x20single-shot\x20split)','meaning':'the\x20order\x20can\x20be\x20split\x20exactly\x20once\x20—\x20the\x20escrow-to-payout\x20transition\x20is\x20one-way\x20and\x20auditable'},{'object':'Payment','field':'info.for_object\x20/\x20from_object','meaning':'every\x20payout\x20carries\x20the\x20source\x20object\x20address\x20—\x20money\x20always\x20answers\x20\x27which\x20business\x20object\x20paid\x20me\x27'}],'move_anchor':'order-side\x20allocation\x20entry\x20(E_ORDER_SERVICE_NOT_MATCH)\x20→\x20coin\x20escrow\x20split\x20for\x20the\x20order\x20(payment_info(order),\x20alloc)','scenario':{'from':'Order\x20scenario\x20(agreement\x20+\x20funds)','to':'Payment\x20scenario\x20(value\x20transfer)','merged':'Settlement\x20(escrowed\x20funds\x20split\x20by\x20declared\x20policy)'},'capability_gained':'Trustless\x20settlement:\x20the\x20buyer\x20pays\x20into\x20the\x20order\x20amount,\x20and\x20the\x20split\x20executes\x20only\x20under\x20the\x20merchant\x27s\x20'+'pre-registered\x20allocator\x20guards\x20—\x20neither\x20side\x20can\x20redirect\x20the\x20other\x27s\x20share;\x20the\x20Payment\x27s\x20from_object\x20makes\x20'+'every\x20revenue\x20line\x20item\x20auditable\x20back\x20to\x20its\x20order.','value_flow':'Buyer\x20coin\x20→\x20Allocation\x20balance\x20→\x20(guard-gated\x20alloc)\x20→\x20Payment\x20recipients\x20(Entity\x20/\x20Signer\x20/\x20GuardIdentifier).','prerequisites':['Coin\x20≥\x20order.amount\x20(E_COIN_NOT_ENOUGH),\x20excess\x20refunded\x20to\x20the\x20sender\x20in\x20the\x20same\x20tx','The\x20calling\x20Service\x20IS\x20the\x20order\x27s\x20service\x20(E_ORDER_SERVICE_NOT_MATCH)','Rate\x20shares\x20must\x20complete\x2010000\x20basis\x20points\x20unless\x20a\x20Surplus\x20entry\x20exists'],'examples':['Multi-vendor\x20order:\x20one\x20payment\x20split\x20across\x20goods\x20supplier,\x20logistics\x20operator,\x20and\x20platform\x20surplus.','Payroll-style\x20settlement:\x20order\x20revenue\x20split\x20to\x20staff\x20entities\x20by\x20Rate\x20with\x20the\x20owner\x20taking\x20Surplus.']},{'id':'bridge.fulfillment','code':'b04','edge_refs':['service.machine','order.machine','order.progress','progress.machine','progress.task','progress.named_operator','progress.context_repository','machine.node','wf.transition','wf.forward_guard','permission.entity'],'name':'Fulfillment\x20(Order\x20×\x20Machine\x20→\x20Progress)','participants':[{'object':'Service','role':'workflow\x20owner\x20(machine\x20field)'},{'object':'Order','role':'the\x20work\x20item\x20to\x20execute'},{'object':'Machine','role':'workflow\x20template\x20(nodes\x20+\x20forwards)'},{'object':'Progress','role':'per-order\x20workflow\x20instance'},{'object':'Permission','role':'who\x20may\x20advance\x20which\x20edge'}],'bridge_fields':[{'object':'Service','field':'machine:\x20Option<address>','meaning':'the\x20workflow\x20template\x20the\x20service\x20promises\x20to\x20execute\x20—\x20locked\x20at\x20publish\x20(bPublished)'},{'object':'Progress','field':'order\x20namespace\x20+\x20the\x20buyer\x20registered\x20as\x20the\x20order\x27s\x20owner','meaning':'the\x20buyer\x20becomes\x20the\x20Progress\x27s\x20order-owner\x20namespace:\x20operators\x20advance\x20THEIR\x20copy,\x20the\x20buyer\x27s\x20own\x20Progress\x20view\x20aggregates'},{'object':'Machine','field':'Forward\x20{\x20namedOperator\x20|\x20permissionIndex\x20|\x20guard\x20}','meaning':'each\x20edge\x20declares\x20its\x20operator\x20—\x20internal\x20staff,\x20permission\x20entity,\x20or\x20guard-proven\x20external\x20party'}],'move_anchor':'per-order\x20workflow\x20instantiation\x20(E_MACHINE_NOT_MATCH\x20prechecked)\x20attaches\x20the\x20Progress\x20instance\x20to\x20the\x20order','scenario':{'from':'Order\x20scenario\x20(agreement)','to':'Machine\x20scenario\x20(process\x20template)','merged':'Execution\x20(per-order\x20workflow\x20with\x20multi-party\x20advancement)'},'capability_gained':'Coordinated\x20execution:\x20the\x20SAME\x20template\x20runs\x20independently\x20per\x20order,\x20with\x20each\x20edge\x20potentially\x20operated\x20by\x20a\x20'+'different\x20party\x20(employee\x20/\x20supplier\x20/\x20buyer)\x20under\x20permission\x20or\x20guard\x20checks\x20—\x20process\x20outsourcing\x20with\x20on-chain\x20accountability.','prerequisites':['The\x20supplied\x20machine\x20IS\x20the\x20service\x27s\x20machine\x20(E_MACHINE_NOT_MATCH)','Each\x20forward\x27s\x20weight\x20counts\x20at\x20most\x20once\x20per\x20session\x20(E_NOT_THE_HOLDER\x20on\x20re-execution)','Edge\x20guard\x20(when\x20present)\x20requires\x20submitted\x20evidence\x20—\x20retained\x20submissions\x20persist\x20into\x20the\x20session\x20history'],'examples':['Custom\x20manufacturing:\x20paid\x20→\x20machining\x20→\x20QC\x20→\x20shipped,\x20where\x20QC\x20is\x20advanced\x20by\x20an\x20independent\x20inspector\x20(namedOperator).','Multi-supplier\x20sub-orders:\x20the\x20machine\x27s\x20nodes\x20hand\x20off\x20between\x20the\x20merchant\x20and\x20subcontracted\x20suppliers.']},{'id':'bridge.dispute','code':'b06','edge_refs':['service.permission','service.arbitration','arbitration.permission','arbitration.voting_guard','arbitration.usage_guard','order.dispute','order.claimed_by','arb.order','arb.arbitration_service','arb.voter'],'name':'Dispute\x20&\x20Compensation\x20(Service\x20×\x20Arbitration\x20×\x20Order\x20→\x20Arb)','participants':[{'object':'Service','role':'pre-registered\x20arbitrations\x20+\x20compensation\x20fund'},{'object':'Arbitration','role':'voting\x20rules\x20+\x20usage\x20gate'},{'object':'Order','role':'the\x20disputed\x20agreement\x20(single\x20claim)'},{'object':'Arb','role':'the\x20case\x20(7-state\x20lifecycle)'}],'bridge_fields':[{'object':'Service','field':'arbitrations:\x20vector<address>\x20+\x20compensation_fund:\x20Balance<T>','meaning':'the\x20merchant\x20pre-commits\x20BOTH\x20who\x20judges\x20(independent\x20permission)\x20AND\x20the\x20money\x20that\x20backs\x20the\x20verdict'},{'object':'Service','field':'arbitration\x20registration\x20fairness\x20check','meaning':'E_ARBITRATION_PERMISSION_CONFLICT:\x20an\x20Arbitration\x20sharing\x20the\x20Service\x27s\x20own\x20Permission\x20is\x20REJECTED\x20—\x20fairness\x20is\x20enforced\x20as\x20a\x20RELATIONAL\x20constraint,\x20not\x20a\x20promise'},{'object':'Order','field':'dispute:\x20vector<address>\x20+\x20claimed_by:\x20Option<address>','meaning':'disputes\x20append\x20to\x20the\x20order;\x20compensation\x20claims\x20it\x20exactly\x20once\x20(E_ORDER_ALREADY_CLAIMED)\x20—\x20the\x20payout\x20is\x20single-shot\x20by\x20construction'}],'move_anchor':'dispute\x20filing\x20(open\x20or\x20passport-gated)\x20+\x20compensation\x20claim,\x207-state\x20lifecycle','scenario':{'from':'Fulfillment\x20scenario\x20(execution\x20with\x20possible\x20disagreement)','to':'Arbitration\x20scenario\x20(independent\x20judgment)','merged':'Remedy\x20(wrong\x20execution\x20→\x20compensated\x20loss)'},'capability_gained':'Credible\x20remedy:\x20the\x20loser\x20of\x20a\x20bad\x20transaction\x20is\x20made\x20whole\x20from\x20a\x20fund\x20the\x20merchant\x20could\x20not\x20pre-empty,\x20'+'judged\x20by\x20parties\x20the\x20merchant\x20cannot\x20appoint\x20unilaterally\x20—\x20trustlessness\x20expressed\x20as\x20a\x20field-level\x20topology\x20constraint.','value_flow':'compensation_fund\x20(Service)\x20→\x20indemnity\x20(Arb)\x20→\x20compensation\x20claim\x20to\x20the\x20winning\x20party\x20(single\x20claim\x20per\x20order).','prerequisites':['Disputant\x20passes\x20the\x20Arbitration\x27s\x20usage_guard\x20when\x20set\x20(E_NEED_PASSPORT)','Voters\x20pass\x20voting\x20guards;\x20vote\x20weight\x20from\x20FixedValue\x20or\x20GuardIdentifier\x20submission','Voting\x20deadline\x20elapsed\x20before\x20finish;\x20objection\x20windows\x20respected\x20(state\x20machine)'],'examples':['Delivery\x20dispute:\x20buyer\x20proves\x20non-delivery\x20via\x20WTS\x20evidence;\x20independent\x20arbitrators\x20vote;\x20compensation\x20pays\x20from\x20the\x20fund.','SLA\x20breach:\x20machine\x20timestamps\x20prove\x20late\x20delivery;\x20weighted\x20voters\x20set\x20the\x20indemnity.']},{'id':'bridge.data_service','code':'b02','edge_refs':['service.repository','repository.permission',EDGE_ID_REPOSITORY_POLICY_GUARD,'repository.quote_guard','repository.data_about','progress.context_repository'],'name':'Data\x20Service\x20(Service\x20×\x20Repository)','participants':[{'object':'Service','role':'the\x20offering\x20that\x20includes\x20data\x20deliverables'},{'object':'Repository','role':'on-chain\x20database\x20(policies,\x20rows)'},{'object':'Guard','role':'write/quote\x20qualification\x20per\x20policy'}],'bridge_fields':[{'object':'Service','field':'repositories:\x20vector<address>\x20(max\x20100)','meaning':'databases\x20the\x20service\x20commits\x20to\x20maintain\x20—\x20the\x20deliverable\x20IS\x20the\x20data'},{'object':'Repository','field':'PolicyGuard\x20{\x20id_from_submission,\x20data_from_submission\x20}','meaning':'writes\x20are\x20guard-qualified:\x20WHO\x20(row\x20key)\x20may\x20write\x20WHAT\x20(the\x20submitted\x20data\x20itself)'}],'move_anchor':'repositories\x20field,\x20policy-guarded\x20writes','scenario':{'from':'Service\x20scenario\x20(offering)','to':'Repository\x20scenario\x20(on-chain\x20database)','merged':'Data\x20products\x20(paid,\x20qualified,\x20auditable\x20data\x20maintenance)'},'capability_gained':'Verifiable\x20data\x20work:\x20a\x20subscription\x20where\x20the\x20provider\x27s\x20every\x20write\x20is\x20qualified\x20by\x20guards\x20and\x20attributable\x20to\x20'+'the\x20paid\x20service\x20—\x20data\x20quality\x20becomes\x20an\x20enforceable\x20contract\x20term,\x20not\x20a\x20promise.','prerequisites':['Writer\x20passes\x20the\x20policy\x27s\x20write\x20guards','Row\x20key\x20resolves\x20via\x20id_from_submission\x20(or\x20PolicyRule.id_from\x20static\x20override)'],'examples':['Market-data\x20feed\x20service:\x20subscribers\x20pay;\x20the\x20provider\x20writes\x20rows\x20under\x20a\x20write\x20guard\x20proving\x20oracle\x20provenance.','Review\x20platform:\x20reviewers\x20pass\x20reputation\x20guards;\x20their\x20submissions\x20become\x20the\x20product\x20others\x20pay\x20to\x20read\x20(quote_guard).']},{'id':'bridge.qualification','code':'b10','edge_refs':['service.buy_guard','demand.guard','arbitration.voting_guard','arbitration.usage_guard','wf.forward_guard','repository.quote_guard',EDGE_ID_REPOSITORY_POLICY_GUARD,'treasury.deposit_guard','treasury.withdraw_guard','guard.relies','passport.guard','passport.ticket_relies'],'name':'Qualification\x20(Guard\x20×\x20every\x20gated\x20scenario)','participants':[{'object':'Guard','role':'the\x20proof\x20machine'},{'object':'Passport','role':'per-tx\x20proof\x20carrier'},{'object':'gated\x20objects','role':'Service(buy)\x20/\x20Demand(present)\x20/\x20Arbitration(vote,\x20dispute)\x20/\x20Machine(forward)\x20/\x20Repository(write)\x20/\x20Treasury(external\x20flows)'}],'bridge_fields':[{'object':'gated\x20object','field':'*_guard\x20/\x20guards\x20fields\x20(buy_guard,\x20usage_guard,\x20voting_guard,\x20forward\x20guard,\x20policy\x20write\x20guards,\x20external\x20guards)','meaning':'the\x20object\x20declares\x20WHICH\x20guard\x20governs\x20its\x20gate\x20—\x20preset\x20slots\x20define\x20what\x20the\x20guard\x27s\x20submissions\x20MEAN\x20for\x20that\x20object'}],'move_anchor':'guard\x20verdict\x20resolution\x20+\x20evidence\x20retrieval\x20(native\x20DSL:\x20Signer/Clock/Query\x20×\x20logic\x20tree)','scenario':{'from':'Proof\x20scenario\x20(evidence\x20+\x20verification)','to':'any\x20gated\x20business\x20scenario','merged':'Programmable\x20trust\x20(rules-as-code\x20participation)'},'capability_gained':'Unforgeable\x20participation\x20rules:\x20KYC,\x20stake,\x20membership,\x20time\x20windows,\x20oracle\x20facts\x20—\x20expressed\x20once\x20in\x20a\x20Guard\x20and\x20'+'reused\x20across\x20every\x20gate\x20that\x20binds\x20it;\x20the\x20same\x20guard\x20can\x20gate\x20buying,\x20presenting,\x20voting,\x20and\x20writing\x20consistently.','prerequisites':['Guard\x20DSL\x20type\x20compatibility\x20(e.g.\x20RewardIdentifier\x20needs\x20address-typed\x20submissions)','Passport\x20carries\x20the\x20guard\x27s\x20required\x20submissions\x20in\x20the\x20same\x20tx'],'examples':['One\x20KYC\x20guard\x20reused\x20by\x20five\x20services\x27\x20buy_gates\x20—\x20one\x20proof,\x20five\x20doors.','Stake-weighted\x20voting\x20guard:\x20the\x20same\x20guard\x20governs\x20both\x20arbitration\x20ballots\x20and\x20treasury\x20withdrawals.']},{'id':'bridge.communication','code':'b11','edge_refs':['service.um','machine.um','demand.um','arbitration.um','reward.um','repository.um','permission.um','treasury.um','contact.permission','contact.im','order.required_info','eoa.contact'],'name':'Communication\x20(um:\x20Contact\x20×\x20every\x20business\x20object)','participants':[{'object':'Contact','role':'bound\x20IM\x20channel\x20(ims\x20members)'},{'object':'business\x20objects','role':'Service\x20/\x20Order\x20context\x20/\x20Demand\x20/\x20Arbitration\x20/\x20Treasury\x20/\x20Reward\x20/\x20Repository\x20/\x20Machine'}],'bridge_fields':[{'object':'business\x20object','field':'um:\x20Option<address>','meaning':'each\x20object\x20can\x20bind\x20ONE\x20Contact\x20—\x20its\x20dedicated\x20negotiation/coordination\x20channel;\x20affiliation\x20registered\x20in\x20object_linker'},{'object':'Contact','field':'ims:\x20vector<Im{at,\x20status,\x20description}>','meaning':'channel\x20membership\x20with\x20per-member\x20status\x20—\x20the\x20roster\x20of\x20who\x20talks\x20about\x20THIS\x20object\x27s\x20business'}],'move_anchor':'channel\x20roster\x20membership\x20(ims)\x20add/remove,\x20per-object\x20channel\x20bind/unbind','scenario':{'from':'Business\x20scenario\x20(any\x20object\x20lifecycle)','to':'Encrypted\x20IM\x20scenario\x20(WTS\x20evidence,\x20negotiation)','merged':'Contextual\x20communication\x20(talk\x20WITH\x20evidence\x20about\x20the\x20exact\x20business)'},'capability_gained':'Every\x20business\x20object\x20can\x20grow\x20its\x20own\x20communication\x20channel:\x20pre-order\x20negotiation,\x20in-flight\x20coordination,\x20and\x20'+'dispute\x20evidence\x20collection\x20happen\x20IN\x20the\x20context\x20of\x20the\x20exact\x20object\x20they\x20concern\x20—\x20messages\x20become\x20evidence\x20'+'(WTS)\x20tied\x20to\x20the\x20on-chain\x20thing.','prerequisites':['um\x20binding\x20is\x20single\x20(one\x20Contact\x20per\x20object;\x20rebinding\x20replaces\x20the\x20affiliation\x20record)','IM\x20membership\x20managed\x20by\x20the\x20Contact\x20owner'],'examples':['Order-level\x20channel:\x20buyer,\x20merchant,\x20and\x20the\x20assigned\x20operator\x20coordinate\x20delivery\x20in\x20the\x20order\x27s\x20um.','Arbitration\x20evidence\x20room:\x20disputants\x20and\x20arbitrators\x20exchange\x20WTS-signed\x20evidence\x20in\x20the\x20arbitration\x27s\x20um.']},{'id':'bridge.governance','code':'b09','edge_refs':['service.permission','arbitration.permission','demand.permission','machine.permission','reward.permission','repository.permission','contact.permission','treasury.permission','permission.admin','permission.owner','permission.entity','eoa.permission','permission.core_binding','permission.tx_binding'],'name':'Governance\x20(permission\x20×\x20every\x20object)','participants':[{'object':'Permission','role':'owner/admins/entities\x20+\x20per-index\x20operation\x20rights'},{'object':'business\x20objects','role':'every\x20w::\x20object\x20(permission\x20field)'},{'object':'EntityPermission','role':'reverse\x20index:\x20entity\x20→\x20memberships'}],'bridge_fields':[{'object':'business\x20object','field':'permission:\x20address','meaning':'ALL\x20admin\x20operations\x20on\x20the\x20object\x20route\x20through\x20this\x20one\x20table\x20—\x20a\x20single\x20governance\x20backbone\x20across\x20the\x20whole\x20topology'},{'object':'Permission','field':'tables:\x20entity\x20→\x20perm\x20indices\x20(0..USER_DEFINED)','meaning':'fine-grained\x20operation\x20rights\x20per\x20entity;\x20object\x20functions\x20assert\x20their\x20own\x20index\x20(e.g.\x20reward\x20new=150)'}],'move_anchor':'per-index\x20operation-rights\x20assertion\x20on\x20every\x20mutating\x20entry,\x20entity_permission\x20(0xaa8\x20reverse\x20index)','scenario':{'from':'Operation\x20scenario\x20(any\x20mutating\x20call)','to':'Permission\x20scenario\x20(roles\x20+\x20indices)','merged':'Delegated\x20administration\x20(staff\x20act\x20within\x20bounded\x20rights)'},'capability_gained':'Organizational\x20scale:\x20one\x20merchant\x20operates\x20hundreds\x20of\x20objects\x20through\x20shared\x20Permissions;\x20staff\x20gain\x20scoped\x20rights\x20'+'(per-operation\x20indices)\x20—\x20the\x20topology\x20stays\x20governable\x20as\x20it\x20grows,\x20and\x20EntityPermission\x20makes\x20any\x20address\x27s\x20'+'role\x20discoverable\x20(the\x20account-side\x20entry\x20into\x20the\x20topology).','prerequisites':['Caller\x27s\x20operation\x20rights\x20are\x20asserted\x20at\x20the\x20operation\x27s\x20permission\x20index','Zero-index\x20entities\x20have\x20membership\x20but\x20no\x20operation\x20rights\x20(fact\x20preserved\x20by\x20design)'],'examples':['Customer\x20service\x20staff\x20hold\x20index\x20225\x20(progress\x20owner_receive)\x20without\x20any\x20treasury\x20rights.','A\x20merchant\x27s\x20entire\x20object\x20fleet\x20re-governed\x20by\x20swapping\x20one\x20Permission\x20(permission\x20rebinding\x20+\x20affiliation\x20change).']},{'id':'bridge.incentive','code':'b07','edge_refs':['service.reward','demand.reward','repository.reward','reward.guard','reward.claim'],'name':'Incentive\x20(Reward\x20×\x20Guard\x20×\x20employing\x20object)','participants':[{'object':'Reward','role':'guarded\x20fund\x20pool'},{'object':'Guard','role':'claim\x20qualification\x20+\x20dynamic\x20recipient/amount'},{'object':'Service','role':'rewards:\x20vector<address>\x20—\x20marketing\x20attach\x20point'},{'object':'employee\x20entities','role':'claimants\x20(KPI-qualified)'}],'bridge_fields':[{'object':'Service','field':'rewards:\x20vector<address>\x20(max\x2020)','meaning':'marketing/incentive\x20pools\x20attached\x20to\x20the\x20offering'},{'object':'Reward','field':'RewardGuard\x20{\x20guard,\x20recipient,\x20amount,\x20expiration_time,\x20store_from_id\x20}','meaning':'claim\x20rules\x20—\x20preset\x20slots\x20read\x20payee/amount/deadline\x20from\x20guard\x20submissions\x20(see\x20the\x20preset\x20guard-slot\x20bindings)'}],'move_anchor':'rewards\x20field,\x20guard\x20binding\x20+\x20claim','scenario':{'from':'Employment/operation\x20scenario\x20(work\x20done)','to':'Reward\x20scenario\x20(guarded\x20payout)','merged':'Incentive\x20alignment\x20(KPI\x20→\x20acceptance\x20→\x20reward\x20claim)'},'capability_gained':'Performance-contingent\x20compensation:\x20staff\x20claim\x20rewards\x20by\x20proving\x20work\x20(guard\x20evidence:\x20reaction\x20time,\x20node\x20'+'completion,\x20acceptance\x20records)\x20—\x20the\x20employment\x20tension\x20(fixed\x20pay\x20vs\x20outcome)\x20is\x20bridged\x20by\x20making\x20the\x20payout\x20'+'itself\x20evidence-gated.','value_flow':'Deposited\x20coins\x20→\x20balance\x20→\x20guard-gated\x20claim\x20(buyer-facing\x20exit;\x20the\x20owner-side\x20recovery\x20exit\x20is\x20withdraw\x20op\x20158,\x20blocked\x20only\x20while\x20guard_not_added_expiration_time\x20stands\x20—\x20R-R-7-01\x27s\x20escape\x20guard\x20is\x20the\x20optional\x20in-window\x20rail).','prerequisites':['Claim\x20within\x20expiration\x20window\x20(clock\x20≤\x20expiration_time)','Claim\x20amount\x20≤\x20balance;\x20recipient\x20resolved\x20by\x20the\x20guard\x20submission\x20(Entity\x20/\x20Signer\x20/\x20GuardIdentifier)'],'examples':['Staff\x20KPI\x20reward:\x20guard\x20verifies\x20node\x20reaction-time\x20submissions;\x20employee\x20claims\x20a\x20GuardU64Identifier\x20amount.','Referral\x20marketing:\x20purchasers\x20submit\x20receipt\x20proofs;\x20campaign\x20guard\x20pays\x20cashback\x20to\x20the\x20submitted\x20address.']},{'id':'bridge.evidence','code':'b12','edge_refs':['wf.forward_guard','passport.signer','passport.guard','passport.ticket_relies','passport.impack','order.required_info','proof.signer','proof.about'],'name':'Evidence\x20(Proof\x20/\x20retained\x20submissions\x20×\x20Progress\x20&\x20Arb)','participants':[{'object':'Proof','role':'frozen\x20signed\x20fact\x20(WTS,\x20oracle\x20attestation)'},{'object':'Machine\x20Forward','role':'retained_submission\x20requirement'},{'object':'Progress','role':'session\x20history\x20storage'},{'object':'Arb','role':'proposition/vote\x20context'}],'bridge_fields':[{'object':'Machine\x20Forward','field':'retained_submission:\x20vector<u8>','meaning':'the\x20edge\x20cannot\x20be\x20crossed\x20without\x20submitting\x20these\x20slots\x20—\x20and\x20the\x20values\x20persist\x20into\x20the\x20session\x20history'},{'object':'Order','field':'required_info:\x20Option<address>\x20(im\x20or\x20proof)','meaning':'the\x20buyer\x20attaches\x20context\x20(IM\x20thread\x20or\x20proof\x20object)\x20the\x20merchant\x20needs\x20to\x20fulfill'}],'move_anchor':'retained\x20submissions\x20persist\x20into\x20the\x20session\x20history;\x20proof\x20object\x20(frozen,\x20signer-anchored)','scenario':{'from':'Execution\x20scenario\x20(workflow\x20edges)','to':'Attestation\x20scenario\x20(signed\x20facts)','merged':'Accountable\x20execution\x20(every\x20step\x20provable\x20after\x20the\x20fact)'},'capability_gained':'An\x20audit-grade\x20trail\x20for\x20INTANGIBLE\x20work:\x20what\x20the\x20operator\x20submitted\x20to\x20cross\x20each\x20edge\x20is\x20on-chain\x20forever\x20—\x20'+'later\x20disputes,\x20KPI\x20assessments,\x20and\x20reputation\x20scores\x20read\x20the\x20same\x20trail,\x20so\x20execution\x20quality\x20becomes\x20evidence.','prerequisites':['retained_submission\x20ids\x20must\x20be\x20retained\x20submission\x20slots\x20of\x20the\x20forward\x27s\x20guard\x20(E_SUBMISSION_SLOT_MISSING\x20/\x20E_SUBMISSION_SLOT_NOT_RETAINED)','Proof\x20objects\x20are\x20immutable\x20once\x20frozen\x20(create\x20→\x20freeze_object)'],'examples':['QC\x20step\x20requires\x20a\x20signed\x20inspection\x20proof;\x20the\x20proof\x20lands\x20in\x20the\x20session\x20history\x20with\x20the\x20advancing\x20tx.','Buyer\x20attaches\x20a\x20WTS\x20message\x20thread\x20as\x20order\x20required_info;\x20the\x20merchant\x20fulfills\x20against\x20it.']},{'id':'bridge.fund_object','code':'b08','edge_refs':['payment.recipient','payment.from_object','payment.for_object','allocation.payment','allocation.for_object','allocation.for_guard','payment.signer','treasury.record'],'name':'Fund-as-Object\x20(CoinWrapper\x20×\x20owner_receive\x20×\x20any\x20object)','participants':[{'object':'Payment\x20/\x20CoinWrapper<K>','role':'value\x20wrapped\x20as\x20a\x20transferable\x20object\x20(any\x20token\x20K)'},{'object':'receiving\x20objects','role':'Reward\x20/\x20Treasury\x20/\x20Service\x20/\x20Arbitration\x20/\x20Repository\x20/\x20Contact\x20...'},{'object':'Permission\x20owner','role':'the\x20extraction\x20target'}],'bridge_fields':[{'object':'receiving\x20object','field':'receive\x20(join\x20into\x20balance)\x20vs\x20owner_receive\x20(extract\x20received\x20objects\x20to\x20Permission\x20owner)','meaning':'two\x20DIFFERENT\x20doors:\x20receive\x20turns\x20an\x20arrived\x20payment\x20into\x20claimable\x20balance;\x20owner_receive\x20forwards\x20arrived\x20objects\x20(any\x20K,\x20incl.\x20NFT-like)\x20to\x20the\x20owner\x20without\x20touching\x20balance'},{'object':'CoinWrapper','field':'payment:\x20address','meaning':'the\x20wrapper\x20remembers\x20WHICH\x20payment\x20object\x20it\x20came\x20from\x20—\x20provenance\x20survives\x20the\x20transfer'}],'move_anchor':'receive\x20vs\x20owner-side\x20object\x20extraction,\x20unwrap\x20family','scenario':{'from':'Transfer\x20scenario\x20(objects\x20move\x20between\x20wallets/objects)','to':'Accounting\x20scenario\x20(balance\x20vs\x20custody)','merged':'Universal\x20value\x20custody\x20(any\x20asset\x20class,\x20any\x20token,\x20one\x20idiom)'},'capability_gained':'Objects\x20can\x20safely\x20RECEIVE\x20value\x20they\x20were\x20not\x20typed\x20for:\x20a\x20Reward<WOW>\x20can\x20custody\x20a\x20USDT\x20CoinWrapper\x20or\x20an\x20NFT\x20'+'via\x20owner_receive\x20—\x20cross-asset\x20custody\x20with\x20a\x20single,\x20uniform\x20extraction\x20rule\x20(to\x20the\x20Permission\x20owner).','value_flow':'CoinWrapper<K>\x20→\x20object\x20custody\x20→\x20owner_receive\x20→\x20Permission\x20owner\x20(NEVER\x20into\x20the\x20object\x27s\x20own\x20balance).','prerequisites':['owner_receive\x20requires\x20the\x20object\x27s\x20Permission\x20+\x20Receiving<K>\x20argument\x20(version+digest)','unwrapping\x20asserts\x20the\x20wrapper\x27s\x20payment\x20provenance\x20(EPAYMENT_NOT_MATCH)'],'examples':['A\x20customer\x20sends\x20an\x20NFT\x20coupon\x20to\x20a\x20Service;\x20the\x20merchant\x20extracts\x20it\x20via\x20service.owner_receive.','A\x20mixed-token\x20gift\x20lands\x20on\x20a\x20Reward;\x20owner_receive\x20forwards\x20it\x20without\x20polluting\x20the\x20WOW\x20claimable\x20balance.']}];for(const bridge of SCENARIO_BRIDGE_REGISTRY){for(const ref of bridge['edge_refs']){if(!EDGE_SCHEMA_BY_ID['has'](ref))throw new Error('scenario-topology:\x20bridge\x20'+bridge['id']+'\x20edge_ref\x20\x22'+ref+'\x22\x20is\x20not\x20a\x20registered\x20EdgeSchema\x20id');}}export const SCENARIO_CHAINS=[{'id':'chain.standard_ecommerce','name':'Standard\x20E-commerce','steps':[{'bridge':'bridge.qualification','note':'buy_guard\x20gates\x20who\x20may\x20purchase'},{'bridge':'bridge.purchase','note':'quote\x20+\x20discount\x20→\x20order\x20(machine\x20pre-bound)'},{'bridge':'bridge.communication','note':'um\x20channel\x20for\x20delivery\x20coordination'},{'bridge':'bridge.fulfillment','note':'progress\x20runs\x20the\x20machine;\x20evidence\x20retained\x20per\x20edge'},{'bridge':'bridge.escrow_split','note':'allocation\x20splits\x20escrow\x20to\x20suppliers\x20+\x20surplus'},{'bridge':'bridge.incentive','note':'optional:\x20staff\x20KPI\x20rewards\x20for\x20fast\x20fulfillment'}],'application_capability':'A\x20complete\x20store:\x20gated\x20checkout,\x20coordinated\x20delivery,\x20evidence-backed\x20fulfillment,\x20and\x20trustless\x20split\x20payout.','objects_touched':['Guard','Service','Discount','Order','Contact','Machine','Progress','Allocation','Payment','Reward','Permission','Passport']},{'id':'chain.procurement_tender','name':'Procurement\x20Tender','steps':[{'bridge':'bridge.supply_match','note':'demand\x20published;\x20qualified\x20services\x20present'},{'bridge':'bridge.qualification','note':'presentation\x20guards\x20filter\x20suppliers'},{'bridge':'bridge.purchase','note':'winning\x20offer\x20becomes\x20the\x20order'},{'bridge':'bridge.fulfillment','note':'multi-supplier\x20machine\x20handoffs'},{'bridge':'bridge.escrow_split','note':'allocation\x20pays\x20suppliers\x20+\x20surplus\x20to\x20demander?'},{'bridge':'bridge.dispute','note':'if\x20delivery\x20fails:\x20independent\x20arbitration\x20+\x20compensation'}],'application_capability':'A\x20full\x20tender\x20lifecycle:\x20need\x20→\x20competing\x20offers\x20→\x20award\x20→\x20delivery\x20→\x20settlement\x20with\x20credible\x20remedy.','objects_touched':['Demand','Guard','Service','Order','Machine','Progress','Allocation','Arbitration','Arb','Payment','Permission']},{'id':'chain.data_subscription','name':'Data\x20Subscription\x20Service','steps':[{'bridge':'bridge.data_service','note':'service\x20commits\x20to\x20repository\x20maintenance'},{'bridge':'bridge.qualification','note':'subscription\x20gate\x20(buy_guard)'},{'bridge':'bridge.purchase','note':'recurring\x20orders\x20or\x20one-off'},{'bridge':'bridge.escrow_split','note':'subscription\x20revenue\x20to\x20data\x20suppliers'},{'bridge':'bridge.communication','note':'um\x20for\x20data\x20requests\x20/\x20clarifications'},{'bridge':'bridge.dispute','note':'stale-data\x20compensation\x20via\x20arbitration'}],'application_capability':'Data\x20as\x20a\x20product:\x20paid,\x20guard-qualified\x20writes,\x20auditable\x20quality,\x20and\x20compensation\x20for\x20staleness.','objects_touched':['Repository','Guard','Service','Order','Allocation','Payment','Contact','Arbitration','Arb']},{'id':'chain.collaborative_operations','name':'Collaborative\x20Operations\x20(staff\x20+\x20outsourced\x20process)','steps':[{'bridge':'bridge.governance','note':'permission\x20entities\x20=\x20staff\x20with\x20scoped\x20indices'},{'bridge':'bridge.fulfillment','note':'machine\x20edges\x20operated\x20by\x20named\x20operators\x20/\x20permission\x20entities'},{'bridge':'bridge.evidence','note':'each\x20advance\x20retains\x20submissions'},{'bridge':'bridge.incentive','note':'KPI\x20guards\x20→\x20reward\x20claims'},{'bridge':'bridge.communication','note':'per-object\x20um\x20channels'}],'application_capability':'An\x20operating\x20company\x20on-chain:\x20internal\x20staff,\x20external\x20operators,\x20audited\x20execution,\x20aligned\x20pay.','objects_touched':['Permission','Machine','Progress','Guard','Reward','Contact','Proof']}];export const SCENARIO_TOPOLOGY_VERSION='1.1.0';export function getBridgeById(a){return SCENARIO_BRIDGE_REGISTRY['find'](c=>c['id']===a);}export function getBridgeByCode(a){return SCENARIO_BRIDGE_REGISTRY['find'](c=>c['code']===a);}export function getBridgesByObject(a){return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['participants']['some'](d=>d['object']===a)||c['bridge_fields']['some'](d=>d['object']===a));}export function getBridgesForEdge(a){return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['edge_refs']['includes'](a));}export function detectBridgesForEdges(a){const b=new Set(a);return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['edge_refs']['some'](d=>b['has'](d)));}export function getChainById(a){return SCENARIO_CHAINS['find'](b=>b['id']===a);}export function summarizeBridge(a){const c=a['participants']['map'](d=>d['object'])['join']('\x20×\x20');return'['+a['name']+']\x20'+c+'\x20→\x20'+a['scenario']['merged']+':\x20'+a['capability_gained']['split']('.\x20')[0x0]+'.';}export function detectBridgesForObjects(a){const b=new Set(a['map'](c=>c['toLowerCase']()));return SCENARIO_BRIDGE_REGISTRY['filter'](c=>c['bridge_fields']['some'](d=>b['has'](d['object']['toLowerCase']()))&&c['participants']['filter'](d=>b['has'](d['object']['toLowerCase']()))['length']>=0x2);}
@@ -1 +1 @@
1
- import{copyFileSync,existsSync,mkdirSync,readdirSync,readFileSync,rmSync,statSync,writeFileSync}from'node:fs';import{dirname,join,relative,sep}from'node:path';import{z}from'zod';import{getWowokIndustryDir}from'@wowok/wowok';import{SUPPORTED_INDUSTRIES}from'../customer/user-preferences.js';import{isRegisteredIndustry}from'./industry-registry.js';import{BUILTIN_TEMPLATES,BUILTIN_TEMPLATES_VERSION}from'./builtin-templates.js';import{knobDocLines}from'./knob-docs.js';import{MachineProseEnvelopeSchema}from'./template-prose.js';import{INDUSTRY_NAV_FILENAME,classifyIndustryNav,renderIndustryNav,wrapBullet,wrapParagraph}from'./template-nav.js';import{classifyRelease,releaseBodyHash,releaseSentinelLine,stripReleaseSentinel}from'./release-sentinel.js';export const TEMPLATES_SUBDIR='templates';export const MACHINE_TEMPLATES_SUBDIR='.machine';export const TEMPLATE_ARCHIVE_SUBDIR='.archive';export function resolveTemplatesDir(){return process['env']['WOWOK_TEMPLATES_DIR']||getWowokIndustryDir();}const MachineEdgeSchema=z['object']({'prev':z['string'](),'forward':z['string']()['min'](0x1)['optional'](),'operator':z['enum'](['merchant','order_payer'])['optional'](),'named_operator':z['string']()['min'](0x1)['optional'](),'permission_index':z['number']()['int']()['min'](0x3e8)['optional'](),'guard_key':z['string']()['min'](0x1)['optional']()}),MachineNodeSchema=z['object']({'name':z['string']()['min'](0x1),'role':z['string']()['min'](0x1),'operator':z['enum'](['merchant','order_payer'])['optional'](),'named_operator':z['string']()['min'](0x1)['optional'](),'semantic_role':z['enum'](['draft','active','delivered','final','cancelled'])['optional'](),'optional':z['boolean']()['optional'](),'threshold':z['number']()['int']()['min'](0x0)['optional'](),'from':z['array'](z['union']([z['string'](),MachineEdgeSchema]))['optional']()}),GuardRefSchema=z['object']({'template_id':z['string']()['regex'](/^(pattern\.[a-z0-9_]+|tpl_[a-z0-9_]+)$/,'guard\x20template_id\x20must\x20be\x20a\x20\x27pattern.*\x27\x20design\x20pattern\x20or\x20\x27tpl_*\x27\x20guard\x20template'),'host':z['enum'](['service','machine','reward','repository','arbitration']),'purpose':z['string']()['min'](0x1),'key':z['string']()['min'](0x1),'policy':z['object']({'name':z['string']()['min'](0x1)['optional'](),'description':z['string']()['min'](0x1)['optional'](),'id_from':z['string']()['min'](0x1)['optional'](),'value_type':z['string']()['min'](0x1)['optional']()})['optional'](),'params':z['record'](z['string'](),z['unknown']())['optional'](),'identity_leg_exempt':z['string']()['min'](0x1)['optional']()}),ConditionalGuardEmissionSchema=z['object']({'guard_key':z['string']()['min'](0x1),'param':z['string']()['min'](0x1),'values':z['array'](z['string']()['min'](0x1))['min'](0x2),'emit_value':z['string']()['min'](0x1),'question':z['string']()['min'](0x1)})['strict'](),AllocatorRowSchema=z['object']({'track':z['enum'](['settlement','refund']),'recipient':z['enum'](['entity','guard_identifier','signer']),'recipient_key':z['string']()['min'](0x1)['optional'](),'mode':z['enum'](['amount','rate','surplus','formula']),'value':z['union']([z['string'](),z['number']()])['optional'](),'value_from':z['string']()['optional'](),'value_from_complement':z['string']()['min'](0x1)['optional'](),'repeat_from':z['string']()['min'](0x1)['optional'](),'fix':z['union']([z['string'](),z['number']()])['optional'](),'fix_from':z['string']()['optional'](),'guard_key':z['string']()['min'](0x1)['optional'](),'formula':z['object']({'selector':z['number']()['int']()['min'](0x0)['max'](0x2),'repo':z['string']()['min'](0x1)['optional'](),'key':z['string']()['min'](0x1)['optional'](),'predicate':z['unknown']()['optional'](),'ids':z['array'](z['unknown']())['optional']()})['strict']()['optional'](),'note':z['string']()['optional']()})['strict'](),AllocatorSchema=z['object']({'recipient':z['enum'](['signer','entity','fixed']),'recipient_key':z['string']()['min'](0x1)['optional'](),'refund_track':z['enum'](['order_anchored'])['optional'](),'count':z['number']()['int']()['positive'](),'mode':z['enum'](['amount','rate','surplus']),'once_per_order':z['boolean']()['optional'](),'rows':z['array'](AllocatorRowSchema)['optional'](),'description':z['string']()['min'](0x1)})['strict'](),UserInputSpecSchema=z['object']({'question':z['string']()['min'](0x1),'param_key':z['string']()['min'](0x1),'note':z['string']()['min'](0x1)['optional']()})['strict'](),IndustryNameSchema=z['string']()['regex'](/^[a-z][a-z0-9_]*$/,'industry\x20must\x20be\x20lowercase\x20snake_case\x20(a-z,\x200-9,\x20_)')['refine'](a=>isRegisteredIndustry(a),{'message':'unknown\x20industry\x20—\x20register\x20it\x20first\x20via\x20an\x20industry\x20pack\x20'+'(industry_pack_operation\x20action=\x27scaffold\x27)\x20or\x20the\x20industry\x20generalizer;\x20'+('builtin\x20industries:\x20'+SUPPORTED_INDUSTRIES['join'](',\x20'))});export const TemplateFrontmatterSchema=z['object']({'id':z['string']()['regex'](/^[a-z][a-z0-9_-]*\/[a-z][a-z0-9_-]*$/,'id\x20must\x20be\x20\x27<industry>/<variant>\x27'),'industry':IndustryNameSchema,'variant':z['string']()['regex'](/^[a-z][a-z0-9_-]*$/),'product_ref':z['string']()['regex'](/^[a-z][a-z0-9._-]*$/,'product_ref\x20must\x20be\x20a\x20lowercase\x20product\x20slug')['optional'](),'archetype':z['enum'](['leader','challenger']),'phase':z['number']()['int']()['min'](0x1)['max'](0x3),'machine_shape':z['array'](MachineNodeSchema)['min'](0x1),'guards':z['array'](GuardRefSchema),'allocator':AllocatorSchema,'fee_params':z['record'](z['string'](),z['union']([z['number'](),z['string']()])),'trust_mechanisms':z['array'](z['string']()),'keeper_dependencies':z['array'](z['string']()),'keeper_duty':z['array'](z['object']({'when':z['string']()['min'](0x1),'action':z['string']()['min'](0x1),'miss_consequence':z['string']()['min'](0x1)})['strict']())['optional'](),'recommended_role':z['enum'](['merchant','supplier','both']),'role_rationale':z['string']()['min'](0x1),'differences':z['array'](z['string']()),'user_inputs':z['array'](z['string']()),'user_input_specs':z['array'](UserInputSpecSchema)['optional'](),'key_risk':z['string']()['min'](0x1)['max'](0x12c,'key_risk\x20must\x20be\x20a\x20one-line\x20risk\x20statement\x20(<=\x20300\x20chars)\x20—\x20rules\x20and\x20doctrine\x20do\x20not\x20belong\x20in\x20this\x20field')['refine'](a=>!/STANDING RULE|TECHNOLOGY PROVIDER|NOT A PARTY TO THE DEAL|Full text:/i['test'](a),{'message':'key_risk\x20carries\x20an\x20instruction-block\x20fragment\x20(STANDING\x20RULE\x20/\x20provider\x20doctrine\x20/\x20\x27Full\x20text:\x27\x20reference)\x20—\x20keep\x20doctrine\x20in\x20body\x20prose\x20or\x20playbooks,\x20not\x20in\x20this\x20field'}),'build_notes':z['array'](z['string']()),'prose_language':z['enum'](['en','other'])['optional'](),'machine_prose':z['record'](z['string'](),MachineProseEnvelopeSchema)['optional'](),'evidence_refs':z['array'](z['string']())['optional'](),'conditional_guards':z['array'](ConditionalGuardEmissionSchema)['optional'](),'time_anchors':z['record'](z['string'](),z['string']())['optional'](),'payment_model':z['enum'](['milestone','subscription','escrow'])['optional'](),'arbitration_mode':z['enum'](['none','merchant_pick','mutual_pick','third_party'])['optional'](),'reward_claim_policy':z['object']({'kind':z['enum'](['once','periodic','capped']),'min_claim_interval_ms':z['number']()['optional'](),'max_total_per_recipient':z['string']()['optional']()})['optional'](),'review_mode':z['enum'](['none','review','review_reward'])['optional'](),'experience_compensation_mode':z['enum'](['none','reward'])['optional'](),'after_sales_mode':z['enum'](['none','return','exchange','warranty'])['optional'](),'acceptance_mode':z['enum'](['none','milestone','contest','bounty','agent'])['optional'](),'installment_mode':z['enum'](['none','deposit_balance','milestone_n'])['optional'](),'affiliate_mode':z['enum'](['none','commission'])['optional'](),'crowdfunding_mode':z['enum'](['none','threshold','flexible'])['optional'](),'logistics_mode':z['enum'](['none','carrier','merchant_managed','courier','pickup_point'])['optional'](),'compensation_fund_policy':z['enum'](['allowed','forbidden'])['optional'](),'reentry_kind':z['enum'](['none','review-loop','paid-cycle'])['optional'](),'settlement_window_merge':z['array'](z['string']())['optional']()})['strict']();export function userInputSpecIssues(a){if(a['user_input_specs']===undefined)return[];const b=[],c=new Set();for(const [d,e]of a['user_input_specs']['entries']()){!(e['param_key']in a['fee_params'])&&b['push']('user_input_specs['+d+'].param_key\x20\x27'+e['param_key']+'\x27\x20is\x20not\x20a\x20declared\x20fee_param\x20—\x20declare\x20it\x20in\x20fee_params\x20(the\x20question\x20fills\x20it)\x20or\x20fix\x20the\x20key'),c['has'](e['param_key'])&&b['push']('user_input_specs['+d+']\x20asks\x20about\x20\x27'+e['param_key']+'\x27\x20twice\x20—\x20one\x20question\x20per\x20parameter'),c['add'](e['param_key']);}return b;}import{validateAllocatorRows}from'./template-validation.js';export{validateAllocatorRows};export function platformShareBps(a){const b=Object['keys'](a)['find'](c=>/(?:platform|commission|service_fee)[a-z_]*_bps$/['test'](c)&&!/^attributed_/['test'](c)&&!/_cap_bps$/['test'](c)&&typeof a[c]==='number');return b!==undefined?a[b]:undefined;}export const PLATFORM_TAKE_KEY=/^(?:platform_(?:share|commission|take|tool_fee)_bps|platform_fee_rate_bps|commission_rate_bps|(?:base_)?commission_rate_bps|offsite_ads_rate_bps|service_fee_rate_bps|payment_fee_bps)$/;export function parseTemplateFile(a){const b=a['replace'](/^\uFEFF/,'')['replace'](/^<!-- builtin:[a-z0-9-]+:v\d+:[0-9a-f]+ -->\r?\n/,''),c=b['split'](/\r?\n/);if(c[0x0]?.['trim']()!=='---')throw new Error('template\x20must\x20start\x20with\x20a\x20\x27---\x27\x20frontmatter\x20block');let d=-0x1;for(let f=0x1;f<c['length'];f++){if(c[f]['trim']()==='---'){d=f;break;}}if(d===-0x1)throw new Error('unterminated\x20frontmatter\x20block\x20(missing\x20closing\x20\x27---\x27)');const e={};for(let g=0x1;g<d;g++){const h=c[g];if(!h['trim']()||h['trim']()['startsWith']('#'))continue;const j=h['indexOf'](':');if(j===-0x1)throw new Error('invalid\x20frontmatter\x20line\x20'+(g+0x1)+':\x20\x27'+h['trim']()+'\x27\x20(expected\x20\x27key:\x20value\x27)');const k=h['slice'](0x0,j)['trim'](),l=h['slice'](j+0x1)['trim']();if(!k)throw new Error('invalid\x20frontmatter\x20line\x20'+(g+0x1)+':\x20empty\x20key');if(l['startsWith']('[')||l['startsWith']('{'))try{e[k]=JSON['parse'](l);}catch(m){throw new Error('frontmatter\x20key\x20\x27'+k+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+m['message']);}else{if(/^-?\d+(\.\d+)?$/['test'](l))e[k]=Number(l);else{if(l['startsWith']('\x22')&&l['endsWith']('\x22')&&l['length']>=0x2||l['startsWith']('\x27')&&l['endsWith']('\x27')&&l['length']>=0x2){if(l[0x0]==='\x22')try{e[k]=JSON['parse'](l);}catch(n){throw new Error('frontmatter\x20key\x20\x27'+k+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+n['message']);}else e[k]=l['slice'](0x1,-0x1);}else e[k]=l;}}}return{'frontmatter':e,'body':c['slice'](d+0x1)['join']('\x0a')['trim']()};}function frontmatterLine(a,b){if(typeof b==='number')return a+':\x20'+b;if(typeof b==='string')return a+':\x20'+b;return a+':\x20'+JSON['stringify'](b);}export const TEMPLATE_SENTINEL_KIND='industry-template';export function canonicalTemplateContent(a){const b=a,c=[['id',a['id']],['industry',a['industry']],['variant',a['variant']],['product_ref',a['product_ref']],['archetype',a['archetype']],['phase',a['phase']],['recommended_role',a['recommended_role']],['role_rationale',a['role_rationale']],['key_risk',a['key_risk']],['machine_shape',a['machine_shape']],['guards',a['guards']],['allocator',a['allocator']],['fee_params',a['fee_params']],['trust_mechanisms',a['trust_mechanisms']],['keeper_dependencies',a['keeper_dependencies']],...a['keeper_duty']?[['keeper_duty',a['keeper_duty']]]:[],['differences',a['differences']],['user_inputs',a['user_inputs']],...a['user_input_specs']?[['user_input_specs',a['user_input_specs']]]:[],['build_notes',a['build_notes']],...b['prose_language']?[['prose_language',b['prose_language']]]:[],...b['machine_prose']?[['machine_prose',b['machine_prose']]]:[],...a['evidence_refs']?[['evidence_refs',a['evidence_refs']]]:[],...a['conditional_guards']?[['conditional_guards',a['conditional_guards']]]:[],...a['time_anchors']?[['time_anchors',a['time_anchors']]]:[],...a['payment_model']?[['payment_model',a['payment_model']]]:[],...a['arbitration_mode']?[['arbitration_mode',a['arbitration_mode']]]:[],...a['review_mode']?[['review_mode',a['review_mode']]]:[],...a['experience_compensation_mode']?[['experience_compensation_mode',a['experience_compensation_mode']]]:[],...a['after_sales_mode']?[['after_sales_mode',a['after_sales_mode']]]:[],...a['acceptance_mode']?[['acceptance_mode',a['acceptance_mode']]]:[],...a['installment_mode']?[['installment_mode',a['installment_mode']]]:[],...a['affiliate_mode']?[['affiliate_mode',a['affiliate_mode']]]:[],...a['crowdfunding_mode']?[['crowdfunding_mode',a['crowdfunding_mode']]]:[],...a['logistics_mode']?[['logistics_mode',a['logistics_mode']]]:[],...a['reward_claim_policy']?[['reward_claim_policy',a['reward_claim_policy']]]:[],...a['compensation_fund_policy']?[['compensation_fund_policy',a['compensation_fund_policy']]]:[],...a['reentry_kind']&&a['reentry_kind']!=='none'?[['reentry_kind',a['reentry_kind']]]:[],...a['settlement_window_merge']?[['settlement_window_merge',a['settlement_window_merge']]]:[]],d=['---',...c['map'](([f,g])=>frontmatterLine(f,g)),'---'],e=['','#\x20'+a['industry']+'\x20/\x20'+a['variant']+'\x20('+a['archetype']+')','','>\x20Industry\x20archetype\x20template.\x20Editable\x20and\x20migratable:\x20the\x20frontmatter\x20is','>\x20zod-validated\x20on\x20every\x20load;\x20the\x20body\x20is\x20free-form\x20guidance\x20for\x20the\x20AI.','','##\x20Key\x20risk','',a['key_risk'],'','##\x20Differences\x20vs\x20the\x20sibling\x20variant','',...a['differences']['map'](f=>'-\x20'+f),'','##\x20Build-time\x20inputs\x20&\x20standing\x20constraints\x20(non-parameter)','',...a['user_inputs']['map'](f=>'-\x20'+f),...a['user_input_specs']&&a['user_input_specs']['length']>0x0?['','##\x20Structured\x20business\x20questions\x20(answer\x20rides\x20fee_overrides)','',...a['user_input_specs']['map'](f=>'-\x20\x22'+f['question']+'\x22\x20→\x20fee_overrides.'+f['param_key']+(f['note']?'\x20—\x20'+f['note']:''))]:[],'','##\x20Risk-avoidance\x20checklist\x20(R1-R10)','',...a['trust_mechanisms']['map'](f=>'-\x20'+f),'','##\x20Build\x20notes','',...a['build_notes']['map'](f=>'-\x20'+f),''];return[...d,...e]['join']('\x0a');}export function renderTemplateFile(a){const b=canonicalTemplateContent(a);return releaseSentinelLine(TEMPLATE_SENTINEL_KIND,BUILTIN_TEMPLATES_VERSION,releaseBodyHash(b))+'\x0a'+b;}export function templateCatalogDigest(a){const b=BUILTIN_TEMPLATES['find'](c=>c['id']===a);if(!b)return undefined;return releaseBodyHash(canonicalTemplateContent(b));}export const TEMPLATE_KNOBS_SENTINEL_KIND='template-knobs';export const TEMPLATE_KNOBS_VERSION=0x5;export const TemplateKnobOverlaySchema=TemplateFrontmatterSchema['pick']({'fee_params':!![],'key_risk':!![],'recommended_role':!![],'role_rationale':!![],'differences':!![],'user_inputs':!![],'payment_model':!![],'arbitration_mode':!![],'review_mode':!![],'experience_compensation_mode':!![],'after_sales_mode':!![],'acceptance_mode':!![],'installment_mode':!![],'affiliate_mode':!![],'crowdfunding_mode':!![],'logistics_mode':!![],'reward_claim_policy':!![],'reentry_kind':!![],'compensation_fund_policy':!![]})['partial']()['extend']({'id':z['string']()['regex'](/^[a-z][a-z0-9._-]*\/[a-z][a-z0-9._-]*$/,'knob\x20file\x20id\x20must\x20be\x20\x27<industry>/<variant>\x27')})['strict']();export function foldKnobFrontmatter(a){const b={},c={};for(const [d,e]of Object['entries'](a)){d['startsWith']('fee_params.')?c[d['slice']('fee_params.'['length'])]=e:b[d]=e;}if(Object['keys'](c)['length']>0x0)b['fee_params']=c;return b;}export function parseKnobFile(a,b){const c=stripReleaseSentinel(a,TEMPLATE_KNOBS_SENTINEL_KIND);let d;try{const f=parseTemplateFile(c['sentinel']?c['content']:a);d=f['frontmatter'];}catch{return null;}const e=TemplateKnobOverlaySchema['safeParse'](foldKnobFrontmatter(d));if(!e['success']||e['data']['id']!==b)return null;return e['data'];}function knobLine(a,b){if(typeof b==='number')return a+':\x20'+b;if(typeof b==='string')return/^-?\d+(\.\d+)?$/['test'](b)?a+':\x20\x27'+b+'\x27':a+':\x20'+b;return a+':\x20'+JSON['stringify'](b);}export function canonicalKnobContent(a){const b=['id:\x20'+a['id'],knobLine('key_risk',a['key_risk']),knobLine('recommended_role',a['recommended_role']),knobLine('role_rationale',a['role_rationale']),...Object['keys'](a['fee_params'])['sort']()['flatMap'](d=>[...knobDocLines(d),knobLine('fee_params.'+d,a['fee_params'][d])]),...a['payment_model']!==undefined?[knobLine('payment_model',a['payment_model'])]:[],...a['arbitration_mode']!==undefined?[knobLine('arbitration_mode',a['arbitration_mode'])]:[],...a['review_mode']!==undefined?[knobLine('review_mode',a['review_mode'])]:[],...a['experience_compensation_mode']!==undefined?[knobLine('experience_compensation_mode',a['experience_compensation_mode'])]:[],...a['after_sales_mode']!==undefined?[knobLine('after_sales_mode',a['after_sales_mode'])]:[],...a['acceptance_mode']!==undefined?[knobLine('acceptance_mode',a['acceptance_mode'])]:[],...a['installment_mode']!==undefined?[knobLine('installment_mode',a['installment_mode'])]:[],...a['affiliate_mode']!==undefined?[knobLine('affiliate_mode',a['affiliate_mode'])]:[],...a['crowdfunding_mode']!==undefined?[knobLine('crowdfunding_mode',a['crowdfunding_mode'])]:[],...a['logistics_mode']!==undefined?[knobLine('logistics_mode',a['logistics_mode'])]:[],...a['reward_claim_policy']!==undefined?[knobLine('reward_claim_policy',a['reward_claim_policy'])]:[],...a['reentry_kind']!==undefined&&a['reentry_kind']!=='none'?[knobLine('reentry_kind',a['reentry_kind'])]:[],...a['compensation_fund_policy']!==undefined?[knobLine('compensation_fund_policy',a['compensation_fund_policy'])]:[],knobLine('differences',a['differences']),knobLine('user_inputs',a['user_inputs'])],c=['','#\x20'+a['industry']+'\x20/\x20'+a['variant']+'\x20('+a['archetype']+')\x20—\x20business\x20knobs','','>\x20THIS\x20file\x20is\x20the\x20one\x20you\x20edit.\x20Each\x20line\x20above\x20the\x20body\x20is\x20a\x20knob\x20the','>\x20build\x20honors:\x20`fee_params.<name>`\x20(numbers\x20—\x20pricing\x20windows,\x20caps,','>\x20pools),\x20the\x20mode\x20switches\x20(review/arbitration/logistics/...),\x20and\x20the','>\x20guidance\x20prose\x20below.\x20Lines\x20starting\x20with\x20`#`\x20are\x20read-only\x20docs\x20for','>\x20the\x20knob\x20line\x20below\x20them\x20—\x20edit\x20the\x20value\x20line,\x20never\x20the\x20`#`\x20lines','>\x20(docs\x20refresh\x20with\x20each\x20release).\x20The\x20workflow\x20structure\x20itself','>\x20(nodes,\x20guards,\x20fund\x20rails)\x20is\x20system-managed\x20in\x20a\x20hidden\x20`.machine/`','>\x20file\x20next\x20to\x20this\x20one\x20and\x20is\x20deliberately\x20not\x20exposed\x20—\x20change','>\x20business\x20intent\x20through\x20these\x20knobs\x20or\x20through\x20the\x20migration\x20wizard,','>\x20never\x20by\x20editing\x20node\x20graphs\x20by\x20hand.','','##\x20Key\x20risk','',...wrapParagraph(a['key_risk']),'','##\x20Differences\x20vs\x20the\x20sibling\x20variant','',...a['differences']['flatMap'](e=>wrapBullet(e)),'','##\x20Build-time\x20inputs\x20&\x20standing\x20constraints\x20(non-parameter)','',...a['user_inputs']['flatMap'](d=>wrapBullet(d)),'','##\x20Your\x20notes\x20(free-form\x20—\x20the\x20AI\x20reads\x20this\x20body\x20as\x20guidance)','','-\x20(Add\x20your\x20own\x20pricing,\x20tone,\x20or\x20policy\x20notes\x20below\x20—\x20they\x20override\x20the','\x20\x20generic\x20guidance\x20the\x20same\x20way\x20playbook.md\x20does.)',''];return['---',...b,'---',...c]['join']('\x0a');}export function renderKnobFile(a){const b=canonicalKnobContent(a);return releaseSentinelLine(TEMPLATE_KNOBS_SENTINEL_KIND,TEMPLATE_KNOBS_VERSION,releaseBodyHash(b))+'\x0a'+b;}export function classifyKnobFile(a,b){const c=stripReleaseSentinel(a,TEMPLATE_KNOBS_SENTINEL_KIND);if(!c['sentinel'])return null;if(parseKnobFile(c['content'],b)===null)return null;const d=classifyRelease(c['sentinel'],c['content'],TEMPLATE_KNOBS_VERSION);return d==='user_file'?null:d;}export function applyKnobOverlay(a,b,c){const d=b['fee_params']!==undefined?Object['keys'](b['fee_params'])['filter'](e=>!(e in a['fee_params'])):[];if(d['length']>0x0)throw new Error('template\x20\x27'+a['id']+'\x27\x20—\x20knob\x20overlay\x20declares\x20fee_params\x20key(s)\x20unknown\x20to\x20the\x20machine\x20layer:\x20'+d['join'](',\x20')+'.\x20'+'Knobs\x20are\x20a\x20pure\x20override\x20surface\x20(D2/F-03\x20single\x20source\x20of\x20truth):\x20a\x20key\x20the\x20.machine\x20template\x20does\x20not\x20declare\x20'+'cannot\x20land\x20and\x20would\x20silently\x20fork\x20the\x20template\x20into\x20two\x20truths.\x20Declare\x20it\x20in\x20the\x20machine\x20template\x20instead.');return{...a,...b['fee_params']!==undefined?{'fee_params':{...a['fee_params'],...b['fee_params']}}:{},...b['key_risk']!==undefined?{'key_risk':b['key_risk']}:{},...b['recommended_role']!==undefined?{'recommended_role':b['recommended_role']}:{},...b['role_rationale']!==undefined?{'role_rationale':b['role_rationale']}:{},...b['differences']!==undefined?{'differences':b['differences']}:{},...b['user_inputs']!==undefined?{'user_inputs':b['user_inputs']}:{},...b['payment_model']!==undefined?{'payment_model':b['payment_model']}:{},...b['arbitration_mode']!==undefined?{'arbitration_mode':b['arbitration_mode']}:{},...b['review_mode']!==undefined?{'review_mode':b['review_mode']}:{},...b['experience_compensation_mode']!==undefined?{'experience_compensation_mode':b['experience_compensation_mode']}:{},...b['after_sales_mode']!==undefined?{'after_sales_mode':b['after_sales_mode']}:{},...b['acceptance_mode']!==undefined?{'acceptance_mode':b['acceptance_mode']}:{},...b['installment_mode']!==undefined?{'installment_mode':b['installment_mode']}:{},...b['affiliate_mode']!==undefined?{'affiliate_mode':b['affiliate_mode']}:{},...b['crowdfunding_mode']!==undefined?{'crowdfunding_mode':b['crowdfunding_mode']}:{},...b['logistics_mode']!==undefined?{'logistics_mode':b['logistics_mode']}:{},...b['reward_claim_policy']!==undefined?{'reward_claim_policy':b['reward_claim_policy']}:{},...b['reentry_kind']!==undefined?{'reentry_kind':b['reentry_kind']}:{},...b['compensation_fund_policy']!==undefined?{'compensation_fund_policy':b['compensation_fund_policy']}:{},'body':c};}function machineTemplateFile(a,b){return join(a,b['industry'],TEMPLATES_SUBDIR,MACHINE_TEMPLATES_SUBDIR,b['variant']+'.md');}function knobTemplateFile(a,b){return join(a,b['industry'],TEMPLATES_SUBDIR,b['variant']+'.md');}function archiveBackupFile(a,b,c){return join(a,b['industry'],TEMPLATES_SUBDIR,TEMPLATE_ARCHIVE_SUBDIR,''+b['variant']+c);}export function matchBuiltinTemplateSlot(a){const b=relative(resolveTemplatesDir(),a);if(!b||b['startsWith']('..'))return null;const c=b['split'](sep);if(c['length']===0x4&&c[0x1]===TEMPLATES_SUBDIR&&c[0x2]===MACHINE_TEMPLATES_SUBDIR&&c[0x3]['endsWith']('.md')){const d=c[0x3]['slice'](0x0,-'.md'['length']),e=BUILTIN_TEMPLATES['find'](f=>f['industry']===c[0x0]&&f['variant']===d)??null;return e?{'template':e,'part':'machine'}:null;}if(c['length']===0x3&&c[0x1]===TEMPLATES_SUBDIR&&c[0x2]['endsWith']('.md')){const f=c[0x2]['slice'](0x0,-'.md'['length']),g=BUILTIN_TEMPLATES['find'](h=>h['industry']===c[0x0]&&h['variant']===f)??null;return g?{'template':g,'part':'knobs'}:null;}return null;}let seeded=![];export function seedBuiltinTemplates(){const a=[],b=resolveTemplatesDir();for(const c of BUILTIN_TEMPLATES){const d=machineTemplateFile(b,c),e=knobTemplateFile(b,c),f=dirname(d),g=canonicalTemplateContent(c),h={'template':c['id'],'status':'written','path':d};try{if(!existsSync(d))mkdirSync(f,{'recursive':!![]}),writeFileSync(d,renderTemplateFile(c),'utf-8');else{const i=readFileSync(d,'utf-8'),{sentinel:j,content:k}=stripReleaseSentinel(i,TEMPLATE_SENTINEL_KIND);!j?k===g?(writeFileSync(d,renderTemplateFile(c),'utf-8'),h['status']='restamped',h['detail']='body\x20matches\x20canonical\x20but\x20no\x20sentinel\x20present;\x20sentinel\x20header\x20added,\x20body\x20untouched'):(h['status']='skipped_user_file',h['detail']='machine\x20file\x20exists\x20without\x20builtin\x20sentinel\x20and\x20body\x20differs\x20from\x20canonical;\x20leaving\x20user\x20file\x20untouched'):k===g?j['version']!==BUILTIN_TEMPLATES_VERSION||releaseBodyHash(k)!==j['hash']?(writeFileSync(d,renderTemplateFile(c),'utf-8'),h['status']='restamped',h['detail']='body\x20matches\x20canonical\x20but\x20sentinel\x20stale/wrong;\x20header\x20refreshed,\x20body\x20untouched'):h['status']='current':(h['status']='skipped_modified',h['detail']='body\x20differs\x20from\x20canonical;\x20not\x20overwritten\x20by\x20seeding\x20—\x20use\x20repair_builtin_templates\x20(preview→confirm)\x20to\x20reseed');}}catch(l){h['status']='error',h['detail']=l['message'];}a['push'](h);try{a['push'](seedKnobSlot(b,c));}catch(m){a['push']({'template':c['id'],'status':'error','path':e,'detail':m['message']});}}try{a['push'](...seedIndustryNavPages(b));}catch{}return a;}function seedKnobSlot(a,b){const c=knobTemplateFile(a,b),d={'template':b['id'],'status':'knob_written','path':c};if(!existsSync(c))return mkdirSync(dirname(c),{'recursive':!![]}),writeFileSync(c,renderKnobFile(b),'utf-8'),d['detail']='knob\x20file\x20written\x20(fresh)',d;const e=readFileSync(c,'utf-8'),f=classifyKnobFile(e,b['id']);if(f==='current')return{...d,'status':'knob_current'};if(f==='outdated')return writeFileSync(c,renderKnobFile(b),'utf-8'),{...d,'status':'knob_current','detail':'unmodified\x20older\x20knob\x20release\x20auto-upgraded\x20to\x20the\x20current\x20render'};if(f==='user_modified')return{...d,'status':'knob_kept_user','detail':'user-edited\x20knobs\x20kept\x20by\x20design\x20(never\x20overwritten)'};let g;try{g=String(parseTemplateFile(e)['frontmatter']['id']??'');}catch{g=undefined;}if(g!==b['id'])return{...d,'status':'skipped_user_file','detail':'a\x20non-knob\x20file\x20(id\x20\x27'+(g??'<unparseable>')+'\x27)\x20occupies\x20the\x20knob\x20slot;\x20machine\x20template\x20wins,\x20file\x20untouched\x20—\x20rename\x20it\x20to\x20free\x20the\x20slot'};const h=join(dirname(c),TEMPLATE_ARCHIVE_SUBDIR);mkdirSync(h,{'recursive':!![]});const i=join(h,b['variant']+'.pre-split.md');return writeFileSync(i,e,'utf-8'),rmSync(c,{'force':!![]}),writeFileSync(c,renderKnobFile(b),'utf-8'),{...d,'status':'knob_written','detail':'obsolete\x20pre-S8\x20single-file\x20template\x20retired\x20to\x20'+i+';\x20knob\x20file\x20re-rendered\x20from\x20the\x20current\x20catalog'};}function seedIndustryNavPages(a){const b=[],c=new Map();for(const d of BUILTIN_TEMPLATES){const e=c['get'](d['industry'])??[];e['push'](d),c['set'](d['industry'],e);}for(const [f,g]of[...c['entries']()]['sort']()){const h=join(a,f,INDUSTRY_NAV_FILENAME),i={'template':'nav/'+f,'status':'written','path':h};try{if(!existsSync(h))mkdirSync(dirname(h),{'recursive':!![]}),writeFileSync(h,renderIndustryNav(f,g),'utf-8');else{const j=classifyIndustryNav(readFileSync(h,'utf-8'));if(j==='current')i['status']='current';else j==='outdated'?(writeFileSync(h,renderIndustryNav(f,g),'utf-8'),i['status']='restamped',i['detail']='unmodified\x20older\x20nav\x20page\x20auto-upgraded'):(i['status']='skipped_modified',i['detail']='nav\x20page\x20user-edited;\x20kept\x20by\x20design');}}catch(k){i['status']='error',i['detail']=k['message'];}b['push'](i);}return b;}export function summarizeTemplateDiff(a,b){let c,d;try{c=parseTemplateFile(a);}catch(g){return'on-disk\x20file\x20is\x20not\x20parseable\x20('+g['message']+');\x20full\x20content\x20will\x20be\x20replaced';}try{d=parseTemplateFile(b);}catch{return'canonical\x20render\x20is\x20not\x20parseable\x20(code\x20defect);\x20full\x20content\x20will\x20be\x20replaced';}const e=[],f=new Set([...Object['keys'](c['frontmatter']),...Object['keys'](d['frontmatter'])]);for(const h of[...f]['sort']()){const i=h in c['frontmatter'],j=h in d['frontmatter'];if(i&&!j)e['push']('-'+h);else{if(!i&&j)e['push']('+'+h);else{if(JSON['stringify'](c['frontmatter'][h])!==JSON['stringify'](d['frontmatter'][h]))e['push']('~'+h);}}}return c['body']!==d['body']&&e['push']('~body\x20('+c['body']['split']('\x0a')['length']+'\x20->\x20'+d['body']['split']('\x0a')['length']+'\x20lines)'),e['length']>0x0?e['join'](',\x20'):'whitespace/ordering\x20only';}export function repairBuiltinTemplates(a){const b=[],c=resolveTemplatesDir(),d=a?.['backup']!==![],e=a?.['dryRun']===!![],f=new Set(a?.['includeUserEdited']??[]);for(const g of BUILTIN_TEMPLATES){const h=machineTemplateFile(c,g);if(!existsSync(h))continue;const i=canonicalTemplateContent(g);let j=null,k='';const l={'template':g['id'],'status':'would_update','path':h};try{const p=stripReleaseSentinel(readFileSync(h,'utf-8'),TEMPLATE_SENTINEL_KIND);j=p['sentinel'],k=p['content'];}catch(q){l['status']='error',l['detail']=q['message'],b['push'](l);continue;}if(k===i)continue;let m;if(j){if(j['version']>BUILTIN_TEMPLATES_VERSION){l['status']='error',l['detail']='newer\x20release\x20on\x20disk\x20(sentinel\x20v'+j['version']+'\x20>\x20running\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20'+'repair\x20would\x20DOWNGRADE\x20and\x20lose\x20the\x20newer\x20release\x27s\x20content;\x20refused.\x20Upgrade\x20the\x20MCP\x20server\x20instead',b['push'](l);continue;}if(releaseBodyHash(k)!==j['hash']){if(!f['has'](g['id']))continue;m='sentinel-body\x20hash\x20mismatch\x20(sentinel\x20v'+j['version']+'\x20no\x20longer\x20binds\x20the\x20body)\x20'+'reseeded\x20under\x20EXPLICIT\x20include_user_edited\x20authorization';}else m='untouched\x20older\x20release\x20(sentinel\x20v'+j['version']+',\x20current\x20v'+BUILTIN_TEMPLATES_VERSION+')';}else{let r;try{r=String(parseTemplateFile(k)['frontmatter']['id']??'');}catch{continue;}if(r!==g['id'])continue;m='legacy\x20sentinel-less\x20builtin\x20file';}const n=summarizeTemplateDiff(k,i),o=d?';\x20previous\x20body\x20would\x20be\x20saved\x20in\x20templates/.archive/':'';if(e){l['status']='would_update',l['detail']=m+'\x20would\x20be\x20reseeded\x20from\x20BUILTIN_TEMPLATES\x20('+g['id']+')\x20—\x20diff\x20vs\x20canonical:\x20'+n+o+'\x20—\x20execute\x20with\x20authorize=true\x20after\x20the\x20user\x20explicitly\x20confirms',b['push'](l);continue;}try{if(d){const s=archiveBackupFile(c,g,'.repair.md');mkdirSync(dirname(s),{'recursive':!![]}),copyFileSync(h,s);}writeFileSync(h,renderTemplateFile(g),'utf-8'),cache['delete'](h),l['status']='updated',l['detail']=m+'\x20reseeded\x20from\x20BUILTIN_TEMPLATES\x20('+g['id']+')\x20—\x20diff\x20was:\x20'+n+(d?';\x20previous\x20body\x20saved\x20in\x20templates/.archive/':'');}catch(u){l['status']='error',l['detail']=u['message'];}b['push'](l);}return b;}export function builtinTemplateDrift(a){const b=new Set(a?.['includeUserEdited']??[]),c=[],d=resolveTemplatesDir();for(const e of BUILTIN_TEMPLATES){const f=machineTemplateFile(d,e);if(!existsSync(f)){c['push']({'template':e['id'],'path':f,'state':'missing','repairable':!![],'detail':'no\x20file\x20on\x20disk;\x20seeding\x20will\x20create\x20it'});continue;}const g=canonicalTemplateContent(e);let h=null,i='';try{const k=stripReleaseSentinel(readFileSync(f,'utf-8'),TEMPLATE_SENTINEL_KIND);h=k['sentinel'],i=k['content'];}catch(l){c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'unreadable:\x20'+l['message']});continue;}if(i===g)continue;const j=summarizeTemplateDiff(i,g);if(!h){let m;try{m=String(parseTemplateFile(i)['frontmatter']['id']??'');}catch{m=undefined;}m===e['id']?c['push']({'template':e['id'],'path':f,'state':'modified','repairable':!![],'detail':'legacy\x20sentinel-less\x20builtin\x20file\x20—\x20seeding\x20never\x20rewrites\x20it\x20and\x20no\x20sentinel\x20proves\x20provenance;\x20repair\x20can\x20reseed\x20—\x20diff\x20vs\x20canonical:\x20'+j}):c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'no\x20release\x20sentinel\x20and\x20id\x20\x27'+(m??'<unparseable>')+'\x27\x20does\x20not\x20match\x20the\x20builtin\x20id\x20—\x20a\x20user\x20file\x20occupies\x20this\x20path;\x20never\x20touched\x20(rename\x20it\x20to\x20free\x20the\x20slot)'});continue;}if(releaseBodyHash(i)===h['hash'])h['version']>BUILTIN_TEMPLATES_VERSION?c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'newer\x20release\x20(sentinel\x20v'+h['version']+'\x20>\x20running\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20'+'repair\x20would\x20DOWNGRADE\x20and\x20lose\x20the\x20newer\x20release\x27s\x20content;\x20repairable:\x20false.\x20'+'Upgrade\x20the\x20MCP\x20server\x20to\x20match\x20—\x20diff\x20vs\x20canonical:\x20'+j}):c['push']({'template':e['id'],'path':f,'state':'modified','repairable':!![],'detail':'untouched\x20older\x20release\x20(sentinel\x20v'+h['version']+',\x20current\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20repair\x20can\x20upgrade\x20—\x20diff\x20vs\x20canonical:\x20'+j});else{const n=b['has'](e['id']);c['push']({'template':e['id'],'path':f,'state':'modified','repairable':n,'detail':n?'sentinel-body\x20hash\x20mismatch\x20(sentinel\x20v'+h['version']+'\x20no\x20longer\x20binds\x20the\x20body)\x20—\x20reseedable\x20under\x20the\x20explicit\x20include_user_edited\x20authorization\x20for\x20this\x20id\x20—\x20diff\x20vs\x20canonical:\x20'+j:'user-edited\x20body\x20—\x20kept\x20by\x20design;\x20repair\x20never\x20overwrites\x20user\x20edits\x20—\x20diff\x20vs\x20canonical:\x20'+j});}}for(const o of c){const p=BUILTIN_TEMPLATES['find'](q=>q['id']===o['template']);if(p)o['knob_state']=knobFileState(d,p);}return c;}function knobFileState(a,b){const c=knobTemplateFile(a,b);if(!existsSync(c))return'missing';try{return classifyKnobFile(readFileSync(c,'utf-8'),b['id'])==='user_modified'?'user_modified':'current';}catch{return'current';}}export function templateTruthStamps(a){const b=resolveTemplatesDir(),c=BUILTIN_TEMPLATES['find'](n=>n['id']===a);if(!c){const n=getTemplate(a),o=n?.['source_path'];if(!o||!existsSync(o))return{'template':a,'source':'user','content_sha256':'','machine_layer':null,'knob_layer':null,'consistency':'user_template'};const {content:q}=stripReleaseSentinel(readFileSync(o,'utf-8'),TEMPLATE_SENTINEL_KIND);return{'template':a,'source':'user','content_sha256':releaseBodyHash(q),'machine_layer':null,'knob_layer':null,'consistency':'user_template'};}const d=machineTemplateFile(b,c);let e='',f=null;if(existsSync(d)){const r=stripReleaseSentinel(readFileSync(d,'utf-8'),TEMPLATE_SENTINEL_KIND);f=r['sentinel'],e=r['content'];}const g=canonicalTemplateContent(c),h=f!==null&&releaseBodyHash(e)===f['hash'],i=e===g,j=i?undefined:summarizeTemplateDiff(e,g),k=knobTemplateFile(b,c);let l;if(!existsSync(k))l={'path':k,'state':'missing','override_keys':[]};else{const s=readFileSync(k,'utf-8'),t=classifyKnobFile(s,c['id']),u=t!==null?parseKnobFile(stripReleaseSentinel(s,TEMPLATE_KNOBS_SENTINEL_KIND)['content'],c['id']):null,v=u?[...u['fee_params']!==undefined?Object['keys'](u['fee_params'])['map'](w=>'fee_params.'+w):[],...Object['keys'](u)['filter'](w=>w!=='id'&&w!=='fee_params')]:[];l={'path':k,'state':t??'invalid','override_keys':v};}const m=!i||f!==null&&!h;return{'template':a,'source':'builtin','schema_version':BUILTIN_TEMPLATES_VERSION,'content_sha256':releaseBodyHash(e),'machine_layer':{'path':d,'sentinel':f,'sentinel_binds_body':h,'matches_catalog':i},'knob_layer':l,'consistency':m?'drifted':'verified',...m&&j!==undefined?{'differences':j}:{}};}const cache=new Map();export function reloadTemplates(){cache['clear'](),seeded=![];}export function loadAndValidate(a){const b=readFileSync(a,'utf-8');let c;try{c=parseTemplateFile(b);}catch(g){throw new Error('template\x20\x27'+a+'\x27\x20failed\x20to\x20parse:\x20'+g['message']);}const d=TemplateFrontmatterSchema['safeParse'](c['frontmatter']);if(!d['success']){const h=d['error']['issues']['map'](j=>(j['path']['join']('.')||'<root>')+':\x20'+j['message'])['join'](';\x20');throw new Error('template\x20\x27'+a+'\x27\x20failed\x20validation:\x20'+h);}const e=validateAllocatorRows(d['data']);if(e['length']>0x0)throw new Error('template\x20\x27'+a+'\x27\x20failed\x20allocator-row\x20validation:\x20'+e['join'](';\x20'));const f=userInputSpecIssues(d['data']);if(f['length']>0x0)throw new Error('template\x20\x27'+a+'\x27\x20failed\x20user_input_specs\x20validation:\x20'+f['join'](';\x20'));return{...d['data'],'body':c['body'],'source_path':a};}function templateFilesOnDisk(a){const b=[];if(!existsSync(a))return b;const c=new Set(BUILTIN_TEMPLATES['map'](d=>d['industry']+'/'+d['variant']));for(const d of readdirSync(a,{'withFileTypes':!![]})){if(!d['isDirectory']())continue;const e=join(a,d['name'],TEMPLATES_SUBDIR);if(!existsSync(e))continue;const g=join(e,MACHINE_TEMPLATES_SUBDIR);if(existsSync(g))for(const h of readdirSync(g,{'withFileTypes':!![]})){if(!h['isFile']()||!h['name']['endsWith']('.md'))continue;const i=h['name']['slice'](0x0,-'.md'['length']),j=c['has'](d['name']+'/'+i)?join(e,h['name']):null;b['push']({'file':join(g,h['name']),'id':d['name']+'/'+i,'knobFile':j});}for(const k of readdirSync(e,{'withFileTypes':!![]})){if(!k['isFile']()||!k['name']['endsWith']('.md'))continue;const l=k['name']['slice'](0x0,-'.md'['length']);if(c['has'](d['name']+'/'+l))continue;b['push']({'file':join(e,k['name']),'id':d['name']+'/'+l,'knobFile':null});}}return b['sort']((m,n)=>m['file']['localeCompare'](n['file']));}export function listTemplates(){!seeded&&(seedBuiltinTemplates(),seeded=!![]);const a=resolveTemplatesDir(),b=[],c=[],d=new Map(),e=new Set();for(const {file:f,id:g,knobFile:h}of templateFilesOnDisk(a)){e['add'](f);try{const i=statSync(f)['mtimeMs'],j=h&&existsSync(h)?statSync(h)['mtimeMs']:0x0,k=cache['get'](f);if(k&&k['mtimeMs']===i&&k['knobMtimeMs']===j){b['push'](k['template']);continue;}let l=loadAndValidate(f);if(h&&j>0x0){const m=readFileSync(h,'utf-8'),n=parseKnobFile(m,l['id']);if(n){l=applyKnobOverlay(l,n,parseTemplateFile(m)['body']);const o=validateAllocatorRows(l);if(o['length']>0x0)throw new Error('template\x20\x27'+f+'\x27\x20—\x20knob\x20overlay\x20\x27'+h+'\x27\x20broke\x20allocator-row\x20validation:\x20'+o['join'](';\x20'));}else c['push']('knob\x20file\x20\x27'+h+'\x27\x20is\x20not\x20a\x20valid\x20knob\x20overlay\x20for\x20\x27'+l['id']+'\x27\x20—\x20ignored,\x20machine\x20template\x20used\x20as-is');}cache['set'](f,{'mtimeMs':i,'knobMtimeMs':j,'template':l}),b['push'](l);}catch(p){cache['delete'](f),c['push'](p['message']),d['set'](g,p['message']);}}for(const q of[...cache['keys']()]){if(!e['has'](q))cache['delete'](q);}return b['sort']((r,s)=>r['id']['localeCompare'](s['id'])),loadErrorsById=d,{'templates':b,'errors':c};}let loadErrorsById=new Map();export function getTemplateLoadError(a){return listTemplates(),loadErrorsById['get'](a);}export function getTemplate(a){return listTemplates()['templates']['find'](b=>b['id']===a);}export function getTemplatesByIndustry(a){return listTemplates()['templates']['filter'](b=>b['industry']===a);}
1
+ import{copyFileSync,existsSync,mkdirSync,readdirSync,readFileSync,rmSync,statSync,writeFileSync}from'node:fs';import{dirname,join,relative,sep}from'node:path';import{z}from'zod';import{getWowokIndustryDir}from'@wowok/wowok';import{SUPPORTED_INDUSTRIES}from'../customer/user-preferences.js';import{isRegisteredIndustry}from'./industry-registry.js';import{BUILTIN_TEMPLATES,BUILTIN_TEMPLATES_VERSION}from'./builtin-templates.js';import{knobDocLines}from'./knob-docs.js';import{MachineProseEnvelopeSchema}from'./template-prose.js';import{INDUSTRY_NAV_FILENAME,classifyIndustryNav,renderIndustryNav,wrapBullet,wrapParagraph}from'./template-nav.js';import{classifyRelease,releaseBodyHash,releaseSentinelLine,stripReleaseSentinel}from'./release-sentinel.js';export const TEMPLATES_SUBDIR='templates';export const MACHINE_TEMPLATES_SUBDIR='.machine';export const TEMPLATE_ARCHIVE_SUBDIR='.archive';export function resolveTemplatesDir(){return process['env']['WOWOK_TEMPLATES_DIR']||getWowokIndustryDir();}const MachineEdgeSchema=z['object']({'prev':z['string'](),'forward':z['string']()['min'](0x1)['optional'](),'operator':z['enum'](['merchant','order_payer'])['optional'](),'named_operator':z['string']()['min'](0x1)['optional'](),'permission_index':z['number']()['int']()['min'](0x3e8)['optional'](),'guard_key':z['string']()['min'](0x1)['optional']()}),MachineNodeSchema=z['object']({'name':z['string']()['min'](0x1),'role':z['string']()['min'](0x1),'operator':z['enum'](['merchant','order_payer'])['optional'](),'named_operator':z['string']()['min'](0x1)['optional'](),'semantic_role':z['enum'](['draft','active','delivered','final','cancelled'])['optional'](),'optional':z['boolean']()['optional'](),'threshold':z['number']()['int']()['min'](0x0)['optional'](),'from':z['array'](z['union']([z['string'](),MachineEdgeSchema]))['optional'](),'segment':z['object']({'id':z['string']()['min'](0x1),'count_from':z['string']()['min'](0x1)})['optional']()}),GuardRefSchema=z['object']({'template_id':z['string']()['regex'](/^(pattern\.[a-z0-9_]+|tpl_[a-z0-9_]+)$/,'guard\x20template_id\x20must\x20be\x20a\x20\x27pattern.*\x27\x20design\x20pattern\x20or\x20\x27tpl_*\x27\x20guard\x20template'),'host':z['enum'](['service','machine','reward','repository','arbitration']),'purpose':z['string']()['min'](0x1),'key':z['string']()['min'](0x1),'policy':z['object']({'name':z['string']()['min'](0x1)['optional'](),'description':z['string']()['min'](0x1)['optional'](),'id_from':z['string']()['min'](0x1)['optional'](),'value_type':z['string']()['min'](0x1)['optional']()})['optional'](),'params':z['record'](z['string'](),z['unknown']())['optional'](),'identity_leg_exempt':z['string']()['min'](0x1)['optional'](),'node_set_segments':z['array'](z['string']()['min'](0x1))['optional'](),'node_set_nodes':z['array'](z['string']()['min'](0x1))['optional']()}),ConditionalGuardEmissionSchema=z['object']({'guard_key':z['string']()['min'](0x1),'param':z['string']()['min'](0x1),'values':z['array'](z['string']()['min'](0x1))['min'](0x2),'emit_value':z['string']()['min'](0x1),'question':z['string']()['min'](0x1)})['strict'](),AllocatorRowSchema=z['object']({'track':z['enum'](['settlement','refund']),'recipient':z['enum'](['entity','guard_identifier','signer']),'recipient_key':z['string']()['min'](0x1)['optional'](),'mode':z['enum'](['amount','rate','surplus','formula']),'value':z['union']([z['string'](),z['number']()])['optional'](),'value_from':z['string']()['optional'](),'value_from_complement':z['string']()['min'](0x1)['optional'](),'repeat_from':z['string']()['min'](0x1)['optional'](),'fix':z['union']([z['string'](),z['number']()])['optional'](),'fix_from':z['string']()['optional'](),'guard_key':z['string']()['min'](0x1)['optional'](),'formula':z['object']({'selector':z['number']()['int']()['min'](0x0)['max'](0x2),'repo':z['string']()['min'](0x1)['optional'](),'key':z['string']()['min'](0x1)['optional'](),'predicate':z['unknown']()['optional'](),'ids':z['array'](z['unknown']())['optional']()})['strict']()['optional'](),'note':z['string']()['optional']()})['strict'](),AllocatorSchema=z['object']({'recipient':z['enum'](['signer','entity','fixed']),'recipient_key':z['string']()['min'](0x1)['optional'](),'refund_track':z['enum'](['order_anchored'])['optional'](),'count':z['number']()['int']()['positive'](),'mode':z['enum'](['amount','rate','surplus']),'once_per_order':z['boolean']()['optional'](),'rows':z['array'](AllocatorRowSchema)['optional'](),'description':z['string']()['min'](0x1)})['strict'](),UserInputSpecSchema=z['object']({'question':z['string']()['min'](0x1),'param_key':z['string']()['min'](0x1),'note':z['string']()['min'](0x1)['optional']()})['strict'](),RuleDeclarationSchema=z['object']({'id':z['string']()['regex'](/^[a-z0-9-]+$/,'id\x20must\x20be\x20a\x20lowercase\x20slug'),'rule':z['string']()['min'](0xf,'rule\x20text\x20must\x20be\x20a\x20full\x20sentence\x20(15-char\x20floor)'),'binding':z['object']({'kind':z['enum'](['machine_node','machine_edge','guard','allocator_row','fee_param','keeper_duty','time_anchor','conditional_guard','off_chain']),'ref':z['string']()['min'](0x1)})['strict']()['optional'](),'status':z['enum'](['expressible','unexpressible'])['optional'](),'unexpressible_ref':z['string']()['regex'](/^U-\d+[ab]?$/,'unexpressible_ref\x20must\x20look\x20like\x20U-13\x20/\x20U-19b')['optional'](),'note':z['string']()['min'](0x1)['optional']()})['strict'](),IndustryNameSchema=z['string']()['regex'](/^[a-z][a-z0-9_]*$/,'industry\x20must\x20be\x20lowercase\x20snake_case\x20(a-z,\x200-9,\x20_)')['refine'](a=>isRegisteredIndustry(a),{'message':'unknown\x20industry\x20—\x20register\x20it\x20first\x20via\x20an\x20industry\x20pack\x20'+'(industry_pack_operation\x20action=\x27scaffold\x27)\x20or\x20the\x20industry\x20generalizer;\x20'+('builtin\x20industries:\x20'+SUPPORTED_INDUSTRIES['join'](',\x20'))});export const TemplateFrontmatterSchema=z['object']({'id':z['string']()['regex'](/^[a-z][a-z0-9_-]*\/[a-z][a-z0-9_-]*$/,'id\x20must\x20be\x20\x27<industry>/<variant>\x27'),'industry':IndustryNameSchema,'variant':z['string']()['regex'](/^[a-z][a-z0-9_-]*$/),'product_ref':z['string']()['regex'](/^[a-z][a-z0-9._-]*$/,'product_ref\x20must\x20be\x20a\x20lowercase\x20product\x20slug')['optional'](),'archetype':z['enum'](['leader','challenger']),'phase':z['number']()['int']()['min'](0x1)['max'](0x3),'machine_shape':z['array'](MachineNodeSchema)['min'](0x1),'guards':z['array'](GuardRefSchema),'allocator':AllocatorSchema,'fee_params':z['record'](z['string'](),z['union']([z['number'](),z['string']()])),'trust_mechanisms':z['array'](z['string']()),'keeper_dependencies':z['array'](z['string']()),'keeper_duty':z['array'](z['object']({'when':z['string']()['min'](0x1),'action':z['string']()['min'](0x1),'miss_consequence':z['string']()['min'](0x1),'duty_kind':z['string']()['min'](0x1)['optional'](),'detector':z['enum'](['payment_unclaimed','progress_actionable','settlement_pending','timeout_intermediate'])['optional'](),'anchor':z['string']()['min'](0x1)['optional'](),'window_param':z['string']()['min'](0x1)['optional']()})['strict']())['optional'](),'recommended_role':z['enum'](['merchant','supplier','both']),'role_rationale':z['string']()['min'](0x1),'differences':z['array'](z['string']()),'user_inputs':z['array'](z['string']()),'user_input_specs':z['array'](UserInputSpecSchema)['optional'](),'key_risk':z['string']()['min'](0x1)['max'](0x12c,'key_risk\x20must\x20be\x20a\x20one-line\x20risk\x20statement\x20(<=\x20300\x20chars)\x20—\x20rules\x20and\x20doctrine\x20do\x20not\x20belong\x20in\x20this\x20field')['refine'](a=>!/STANDING RULE|TECHNOLOGY PROVIDER|NOT A PARTY TO THE DEAL|Full text:/i['test'](a),{'message':'key_risk\x20carries\x20an\x20instruction-block\x20fragment\x20(STANDING\x20RULE\x20/\x20provider\x20doctrine\x20/\x20\x27Full\x20text:\x27\x20reference)\x20—\x20keep\x20doctrine\x20in\x20body\x20prose\x20or\x20playbooks,\x20not\x20in\x20this\x20field'}),'build_notes':z['array'](z['string']()),'prose_language':z['enum'](['en','other'])['optional'](),'machine_prose':z['record'](z['string'](),MachineProseEnvelopeSchema)['optional'](),'evidence_refs':z['array'](z['string']())['optional'](),'conditional_guards':z['array'](ConditionalGuardEmissionSchema)['optional'](),'time_anchors':z['record'](z['string'](),z['string']())['optional'](),'payment_model':z['enum'](['milestone','subscription','escrow'])['optional'](),'arbitration_mode':z['enum'](['none','merchant_pick','mutual_pick','third_party'])['optional'](),'reward_claim_policy':z['object']({'kind':z['enum'](['once','periodic','capped']),'min_claim_interval_ms':z['number']()['optional'](),'max_total_per_recipient':z['string']()['optional']()})['optional'](),'review_mode':z['enum'](['none','review','review_reward'])['optional'](),'experience_compensation_mode':z['enum'](['none','reward'])['optional'](),'price_rebate_mode':z['enum'](['none','reward'])['optional'](),'after_sales_mode':z['enum'](['none','return','exchange','warranty'])['optional'](),'acceptance_mode':z['enum'](['none','milestone','contest','bounty','agent'])['optional'](),'installment_mode':z['enum'](['none','deposit_balance','milestone_n'])['optional'](),'affiliate_mode':z['enum'](['none','commission'])['optional'](),'crowdfunding_mode':z['enum'](['none','threshold','flexible'])['optional'](),'logistics_mode':z['enum'](['none','carrier','merchant_managed','courier','pickup_point'])['optional'](),'compensation_fund_policy':z['enum'](['allowed','forbidden'])['optional'](),'reentry_kind':z['enum'](['none','review-loop','paid-cycle'])['optional'](),'settlement_window_merge':z['array'](z['string']())['optional'](),'supply_rules':z['array'](RuleDeclarationSchema)['optional'](),'labor_rules':z['array'](RuleDeclarationSchema)['optional'](),'incentive_rules':z['array'](RuleDeclarationSchema)['optional'](),'ops_kpis':z['array'](RuleDeclarationSchema)['optional']()})['strict']();export function userInputSpecIssues(a){if(a['user_input_specs']===undefined)return[];const b=[],c=new Set();for(const [d,e]of a['user_input_specs']['entries']()){!(e['param_key']in a['fee_params'])&&b['push']('user_input_specs['+d+'].param_key\x20\x27'+e['param_key']+'\x27\x20is\x20not\x20a\x20declared\x20fee_param\x20—\x20declare\x20it\x20in\x20fee_params\x20(the\x20question\x20fills\x20it)\x20or\x20fix\x20the\x20key'),c['has'](e['param_key'])&&b['push']('user_input_specs['+d+']\x20asks\x20about\x20\x27'+e['param_key']+'\x27\x20twice\x20—\x20one\x20question\x20per\x20parameter'),c['add'](e['param_key']);}return b;}import{validateAllocatorRows}from'./template-validation.js';import{validateRuleDeclarations}from'./rule-declarations.js';export{validateAllocatorRows};export function platformShareBps(a){const b=Object['keys'](a)['find'](c=>/(?:platform|commission|service_fee)[a-z_]*_bps$/['test'](c)&&!/^attributed_/['test'](c)&&!/_cap_bps$/['test'](c)&&typeof a[c]==='number');return b!==undefined?a[b]:undefined;}export const PLATFORM_TAKE_KEY=/^(?:platform_(?:share|commission|take|tool_fee)_bps|platform_fee_rate_bps|commission_rate_bps|(?:base_)?commission_rate_bps|offsite_ads_rate_bps|service_fee_rate_bps|payment_fee_bps)$/;export function parseTemplateFile(a){const b=a['replace'](/^\uFEFF/,'')['replace'](/^<!-- builtin:[a-z0-9-]+:v\d+:[0-9a-f]+ -->\r?\n/,''),c=b['split'](/\r?\n/);if(c[0x0]?.['trim']()!=='---')throw new Error('template\x20must\x20start\x20with\x20a\x20\x27---\x27\x20frontmatter\x20block');let d=-0x1;for(let f=0x1;f<c['length'];f++){if(c[f]['trim']()==='---'){d=f;break;}}if(d===-0x1)throw new Error('unterminated\x20frontmatter\x20block\x20(missing\x20closing\x20\x27---\x27)');const e={};for(let g=0x1;g<d;g++){const h=c[g];if(!h['trim']()||h['trim']()['startsWith']('#'))continue;const j=h['indexOf'](':');if(j===-0x1)throw new Error('invalid\x20frontmatter\x20line\x20'+(g+0x1)+':\x20\x27'+h['trim']()+'\x27\x20(expected\x20\x27key:\x20value\x27)');const k=h['slice'](0x0,j)['trim'](),l=h['slice'](j+0x1)['trim']();if(!k)throw new Error('invalid\x20frontmatter\x20line\x20'+(g+0x1)+':\x20empty\x20key');if(l['startsWith']('[')||l['startsWith']('{'))try{e[k]=JSON['parse'](l);}catch(m){throw new Error('frontmatter\x20key\x20\x27'+k+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+m['message']);}else{if(/^-?\d+(\.\d+)?$/['test'](l))e[k]=Number(l);else{if(l['startsWith']('\x22')&&l['endsWith']('\x22')&&l['length']>=0x2||l['startsWith']('\x27')&&l['endsWith']('\x27')&&l['length']>=0x2){if(l[0x0]==='\x22')try{e[k]=JSON['parse'](l);}catch(n){throw new Error('frontmatter\x20key\x20\x27'+k+'\x27\x20is\x20not\x20valid\x20JSON:\x20'+n['message']);}else e[k]=l['slice'](0x1,-0x1);}else e[k]=l;}}}return{'frontmatter':e,'body':c['slice'](d+0x1)['join']('\x0a')['trim']()};}function frontmatterLine(a,b){if(typeof b==='number')return a+':\x20'+b;if(typeof b==='string')return a+':\x20'+b;return a+':\x20'+JSON['stringify'](b);}export const TEMPLATE_SENTINEL_KIND='industry-template';export function canonicalTemplateContent(a){const b=a,c=[['id',a['id']],['industry',a['industry']],['variant',a['variant']],['product_ref',a['product_ref']],['archetype',a['archetype']],['phase',a['phase']],['recommended_role',a['recommended_role']],['role_rationale',a['role_rationale']],['key_risk',a['key_risk']],['machine_shape',a['machine_shape']],['guards',a['guards']],['allocator',a['allocator']],['fee_params',a['fee_params']],['trust_mechanisms',a['trust_mechanisms']],['keeper_dependencies',a['keeper_dependencies']],...a['keeper_duty']?[['keeper_duty',a['keeper_duty']]]:[],['differences',a['differences']],['user_inputs',a['user_inputs']],...a['user_input_specs']?[['user_input_specs',a['user_input_specs']]]:[],['build_notes',a['build_notes']],...b['prose_language']?[['prose_language',b['prose_language']]]:[],...b['machine_prose']?[['machine_prose',b['machine_prose']]]:[],...a['evidence_refs']?[['evidence_refs',a['evidence_refs']]]:[],...a['conditional_guards']?[['conditional_guards',a['conditional_guards']]]:[],...a['time_anchors']?[['time_anchors',a['time_anchors']]]:[],...a['payment_model']?[['payment_model',a['payment_model']]]:[],...a['arbitration_mode']?[['arbitration_mode',a['arbitration_mode']]]:[],...a['review_mode']?[['review_mode',a['review_mode']]]:[],...a['experience_compensation_mode']?[['experience_compensation_mode',a['experience_compensation_mode']]]:[],...a['price_rebate_mode']?[['price_rebate_mode',a['price_rebate_mode']]]:[],...a['after_sales_mode']?[['after_sales_mode',a['after_sales_mode']]]:[],...a['acceptance_mode']?[['acceptance_mode',a['acceptance_mode']]]:[],...a['installment_mode']?[['installment_mode',a['installment_mode']]]:[],...a['affiliate_mode']?[['affiliate_mode',a['affiliate_mode']]]:[],...a['crowdfunding_mode']?[['crowdfunding_mode',a['crowdfunding_mode']]]:[],...a['logistics_mode']?[['logistics_mode',a['logistics_mode']]]:[],...a['reward_claim_policy']?[['reward_claim_policy',a['reward_claim_policy']]]:[],...a['compensation_fund_policy']?[['compensation_fund_policy',a['compensation_fund_policy']]]:[],...a['reentry_kind']&&a['reentry_kind']!=='none'?[['reentry_kind',a['reentry_kind']]]:[],...a['settlement_window_merge']?[['settlement_window_merge',a['settlement_window_merge']]]:[],...a['supply_rules']?[['supply_rules',a['supply_rules']]]:[],...a['labor_rules']?[['labor_rules',a['labor_rules']]]:[],...a['incentive_rules']?[['incentive_rules',a['incentive_rules']]]:[],...a['ops_kpis']?[['ops_kpis',a['ops_kpis']]]:[]],d=['---',...c['map'](([f,g])=>frontmatterLine(f,g)),'---'],e=['','#\x20'+a['industry']+'\x20/\x20'+a['variant']+'\x20('+a['archetype']+')','','>\x20Industry\x20archetype\x20template.\x20Editable\x20and\x20migratable:\x20the\x20frontmatter\x20is','>\x20zod-validated\x20on\x20every\x20load;\x20the\x20body\x20is\x20free-form\x20guidance\x20for\x20the\x20AI.','','##\x20Key\x20risk','',a['key_risk'],'','##\x20Differences\x20vs\x20the\x20sibling\x20variant','',...a['differences']['map'](f=>'-\x20'+f),'','##\x20Build-time\x20inputs\x20&\x20standing\x20constraints\x20(non-parameter)','',...a['user_inputs']['map'](f=>'-\x20'+f),...a['user_input_specs']&&a['user_input_specs']['length']>0x0?['','##\x20Structured\x20business\x20questions\x20(answer\x20rides\x20fee_overrides)','',...a['user_input_specs']['map'](f=>'-\x20\x22'+f['question']+'\x22\x20→\x20fee_overrides.'+f['param_key']+(f['note']?'\x20—\x20'+f['note']:''))]:[],'','##\x20Risk-avoidance\x20checklist\x20(R1-R10)','',...a['trust_mechanisms']['map'](f=>'-\x20'+f),'','##\x20Build\x20notes','',...a['build_notes']['map'](f=>'-\x20'+f),''];return[...d,...e]['join']('\x0a');}export function renderTemplateFile(a){const b=canonicalTemplateContent(a);return releaseSentinelLine(TEMPLATE_SENTINEL_KIND,BUILTIN_TEMPLATES_VERSION,releaseBodyHash(b))+'\x0a'+b;}export function templateCatalogDigest(a){const b=BUILTIN_TEMPLATES['find'](c=>c['id']===a);if(!b)return undefined;return releaseBodyHash(canonicalTemplateContent(b));}export const TEMPLATE_KNOBS_SENTINEL_KIND='template-knobs';export const TEMPLATE_KNOBS_VERSION=0x5;export const TemplateKnobOverlaySchema=TemplateFrontmatterSchema['pick']({'fee_params':!![],'key_risk':!![],'recommended_role':!![],'role_rationale':!![],'differences':!![],'user_inputs':!![],'payment_model':!![],'arbitration_mode':!![],'review_mode':!![],'experience_compensation_mode':!![],'price_rebate_mode':!![],'after_sales_mode':!![],'acceptance_mode':!![],'installment_mode':!![],'affiliate_mode':!![],'crowdfunding_mode':!![],'logistics_mode':!![],'reward_claim_policy':!![],'reentry_kind':!![],'compensation_fund_policy':!![]})['partial']()['extend']({'id':z['string']()['regex'](/^[a-z][a-z0-9._-]*\/[a-z][a-z0-9._-]*$/,'knob\x20file\x20id\x20must\x20be\x20\x27<industry>/<variant>\x27')})['strict']();export function foldKnobFrontmatter(a){const b={},c={};for(const [d,e]of Object['entries'](a)){d['startsWith']('fee_params.')?c[d['slice']('fee_params.'['length'])]=e:b[d]=e;}if(Object['keys'](c)['length']>0x0)b['fee_params']=c;return b;}export function parseKnobFile(a,b){const c=stripReleaseSentinel(a,TEMPLATE_KNOBS_SENTINEL_KIND);let d;try{const f=parseTemplateFile(c['sentinel']?c['content']:a);d=f['frontmatter'];}catch{return null;}const e=TemplateKnobOverlaySchema['safeParse'](foldKnobFrontmatter(d));if(!e['success']||e['data']['id']!==b)return null;return e['data'];}function knobLine(a,b){if(typeof b==='number')return a+':\x20'+b;if(typeof b==='string')return/^-?\d+(\.\d+)?$/['test'](b)?a+':\x20\x27'+b+'\x27':a+':\x20'+b;return a+':\x20'+JSON['stringify'](b);}export function canonicalKnobContent(a){const b=['id:\x20'+a['id'],knobLine('key_risk',a['key_risk']),knobLine('recommended_role',a['recommended_role']),knobLine('role_rationale',a['role_rationale']),...Object['keys'](a['fee_params'])['sort']()['flatMap'](d=>[...knobDocLines(d),knobLine('fee_params.'+d,a['fee_params'][d])]),...a['payment_model']!==undefined?[knobLine('payment_model',a['payment_model'])]:[],...a['arbitration_mode']!==undefined?[knobLine('arbitration_mode',a['arbitration_mode'])]:[],...a['review_mode']!==undefined?[knobLine('review_mode',a['review_mode'])]:[],...a['experience_compensation_mode']!==undefined?[knobLine('experience_compensation_mode',a['experience_compensation_mode'])]:[],...a['after_sales_mode']!==undefined?[knobLine('after_sales_mode',a['after_sales_mode'])]:[],...a['acceptance_mode']!==undefined?[knobLine('acceptance_mode',a['acceptance_mode'])]:[],...a['installment_mode']!==undefined?[knobLine('installment_mode',a['installment_mode'])]:[],...a['affiliate_mode']!==undefined?[knobLine('affiliate_mode',a['affiliate_mode'])]:[],...a['crowdfunding_mode']!==undefined?[knobLine('crowdfunding_mode',a['crowdfunding_mode'])]:[],...a['logistics_mode']!==undefined?[knobLine('logistics_mode',a['logistics_mode'])]:[],...a['reward_claim_policy']!==undefined?[knobLine('reward_claim_policy',a['reward_claim_policy'])]:[],...a['reentry_kind']!==undefined&&a['reentry_kind']!=='none'?[knobLine('reentry_kind',a['reentry_kind'])]:[],...a['compensation_fund_policy']!==undefined?[knobLine('compensation_fund_policy',a['compensation_fund_policy'])]:[],knobLine('differences',a['differences']),knobLine('user_inputs',a['user_inputs'])],c=['','#\x20'+a['industry']+'\x20/\x20'+a['variant']+'\x20('+a['archetype']+')\x20—\x20business\x20knobs','','>\x20THIS\x20file\x20is\x20the\x20one\x20you\x20edit.\x20Each\x20line\x20above\x20the\x20body\x20is\x20a\x20knob\x20the','>\x20build\x20honors:\x20`fee_params.<name>`\x20(numbers\x20—\x20pricing\x20windows,\x20caps,','>\x20pools),\x20the\x20mode\x20switches\x20(review/arbitration/logistics/...),\x20and\x20the','>\x20guidance\x20prose\x20below.\x20Lines\x20starting\x20with\x20`#`\x20are\x20read-only\x20docs\x20for','>\x20the\x20knob\x20line\x20below\x20them\x20—\x20edit\x20the\x20value\x20line,\x20never\x20the\x20`#`\x20lines','>\x20(docs\x20refresh\x20with\x20each\x20release).\x20The\x20workflow\x20structure\x20itself','>\x20(nodes,\x20guards,\x20fund\x20rails)\x20is\x20system-managed\x20in\x20a\x20hidden\x20`.machine/`','>\x20file\x20next\x20to\x20this\x20one\x20and\x20is\x20deliberately\x20not\x20exposed\x20—\x20change','>\x20business\x20intent\x20through\x20these\x20knobs\x20or\x20through\x20the\x20migration\x20wizard,','>\x20never\x20by\x20editing\x20node\x20graphs\x20by\x20hand.','','##\x20Key\x20risk','',...wrapParagraph(a['key_risk']),'','##\x20Differences\x20vs\x20the\x20sibling\x20variant','',...a['differences']['flatMap'](e=>wrapBullet(e)),'','##\x20Build-time\x20inputs\x20&\x20standing\x20constraints\x20(non-parameter)','',...a['user_inputs']['flatMap'](d=>wrapBullet(d)),'','##\x20Your\x20notes\x20(free-form\x20—\x20the\x20AI\x20reads\x20this\x20body\x20as\x20guidance)','','-\x20(Add\x20your\x20own\x20pricing,\x20tone,\x20or\x20policy\x20notes\x20below\x20—\x20they\x20override\x20the','\x20\x20generic\x20guidance\x20the\x20same\x20way\x20playbook.md\x20does.)',''];return['---',...b,'---',...c]['join']('\x0a');}export function renderKnobFile(a){const b=canonicalKnobContent(a);return releaseSentinelLine(TEMPLATE_KNOBS_SENTINEL_KIND,TEMPLATE_KNOBS_VERSION,releaseBodyHash(b))+'\x0a'+b;}export function classifyKnobFile(a,b){const c=stripReleaseSentinel(a,TEMPLATE_KNOBS_SENTINEL_KIND);if(!c['sentinel'])return null;if(parseKnobFile(c['content'],b)===null)return null;const d=classifyRelease(c['sentinel'],c['content'],TEMPLATE_KNOBS_VERSION);return d==='user_file'?null:d;}export function applyKnobOverlay(a,b,c){const d=b['fee_params']!==undefined?Object['keys'](b['fee_params'])['filter'](e=>!(e in a['fee_params'])):[];if(d['length']>0x0)throw new Error('template\x20\x27'+a['id']+'\x27\x20—\x20knob\x20overlay\x20declares\x20fee_params\x20key(s)\x20unknown\x20to\x20the\x20machine\x20layer:\x20'+d['join'](',\x20')+'.\x20'+'Knobs\x20are\x20a\x20pure\x20override\x20surface\x20(D2/F-03\x20single\x20source\x20of\x20truth):\x20a\x20key\x20the\x20.machine\x20template\x20does\x20not\x20declare\x20'+'cannot\x20land\x20and\x20would\x20silently\x20fork\x20the\x20template\x20into\x20two\x20truths.\x20Declare\x20it\x20in\x20the\x20machine\x20template\x20instead.');return{...a,...b['fee_params']!==undefined?{'fee_params':{...a['fee_params'],...b['fee_params']}}:{},...b['key_risk']!==undefined?{'key_risk':b['key_risk']}:{},...b['recommended_role']!==undefined?{'recommended_role':b['recommended_role']}:{},...b['role_rationale']!==undefined?{'role_rationale':b['role_rationale']}:{},...b['differences']!==undefined?{'differences':b['differences']}:{},...b['user_inputs']!==undefined?{'user_inputs':b['user_inputs']}:{},...b['payment_model']!==undefined?{'payment_model':b['payment_model']}:{},...b['arbitration_mode']!==undefined?{'arbitration_mode':b['arbitration_mode']}:{},...b['review_mode']!==undefined?{'review_mode':b['review_mode']}:{},...b['experience_compensation_mode']!==undefined?{'experience_compensation_mode':b['experience_compensation_mode']}:{},...b['after_sales_mode']!==undefined?{'after_sales_mode':b['after_sales_mode']}:{},...b['acceptance_mode']!==undefined?{'acceptance_mode':b['acceptance_mode']}:{},...b['installment_mode']!==undefined?{'installment_mode':b['installment_mode']}:{},...b['affiliate_mode']!==undefined?{'affiliate_mode':b['affiliate_mode']}:{},...b['crowdfunding_mode']!==undefined?{'crowdfunding_mode':b['crowdfunding_mode']}:{},...b['logistics_mode']!==undefined?{'logistics_mode':b['logistics_mode']}:{},...b['reward_claim_policy']!==undefined?{'reward_claim_policy':b['reward_claim_policy']}:{},...b['reentry_kind']!==undefined?{'reentry_kind':b['reentry_kind']}:{},...b['compensation_fund_policy']!==undefined?{'compensation_fund_policy':b['compensation_fund_policy']}:{},'body':c};}function machineTemplateFile(a,b){return join(a,b['industry'],TEMPLATES_SUBDIR,MACHINE_TEMPLATES_SUBDIR,b['variant']+'.md');}function knobTemplateFile(a,b){return join(a,b['industry'],TEMPLATES_SUBDIR,b['variant']+'.md');}function archiveBackupFile(a,b,c){return join(a,b['industry'],TEMPLATES_SUBDIR,TEMPLATE_ARCHIVE_SUBDIR,''+b['variant']+c);}export function matchBuiltinTemplateSlot(a){const b=relative(resolveTemplatesDir(),a);if(!b||b['startsWith']('..'))return null;const c=b['split'](sep);if(c['length']===0x4&&c[0x1]===TEMPLATES_SUBDIR&&c[0x2]===MACHINE_TEMPLATES_SUBDIR&&c[0x3]['endsWith']('.md')){const d=c[0x3]['slice'](0x0,-'.md'['length']),e=BUILTIN_TEMPLATES['find'](f=>f['industry']===c[0x0]&&f['variant']===d)??null;return e?{'template':e,'part':'machine'}:null;}if(c['length']===0x3&&c[0x1]===TEMPLATES_SUBDIR&&c[0x2]['endsWith']('.md')){const f=c[0x2]['slice'](0x0,-'.md'['length']),g=BUILTIN_TEMPLATES['find'](h=>h['industry']===c[0x0]&&h['variant']===f)??null;return g?{'template':g,'part':'knobs'}:null;}return null;}let seeded=![];export function seedBuiltinTemplates(){const a=[],b=resolveTemplatesDir();for(const c of BUILTIN_TEMPLATES){const d=machineTemplateFile(b,c),e=knobTemplateFile(b,c),f=dirname(d),g=canonicalTemplateContent(c),h={'template':c['id'],'status':'written','path':d};try{if(!existsSync(d))mkdirSync(f,{'recursive':!![]}),writeFileSync(d,renderTemplateFile(c),'utf-8');else{const i=readFileSync(d,'utf-8'),{sentinel:j,content:k}=stripReleaseSentinel(i,TEMPLATE_SENTINEL_KIND);!j?k===g?(writeFileSync(d,renderTemplateFile(c),'utf-8'),h['status']='restamped',h['detail']='body\x20matches\x20canonical\x20but\x20no\x20sentinel\x20present;\x20sentinel\x20header\x20added,\x20body\x20untouched'):(h['status']='skipped_user_file',h['detail']='machine\x20file\x20exists\x20without\x20builtin\x20sentinel\x20and\x20body\x20differs\x20from\x20canonical;\x20leaving\x20user\x20file\x20untouched'):k===g?j['version']!==BUILTIN_TEMPLATES_VERSION||releaseBodyHash(k)!==j['hash']?(writeFileSync(d,renderTemplateFile(c),'utf-8'),h['status']='restamped',h['detail']='body\x20matches\x20canonical\x20but\x20sentinel\x20stale/wrong;\x20header\x20refreshed,\x20body\x20untouched'):h['status']='current':(h['status']='skipped_modified',h['detail']='body\x20differs\x20from\x20canonical;\x20not\x20overwritten\x20by\x20seeding\x20—\x20use\x20repair_builtin_templates\x20(preview→confirm)\x20to\x20reseed');}}catch(l){h['status']='error',h['detail']=l['message'];}a['push'](h);try{a['push'](seedKnobSlot(b,c));}catch(m){a['push']({'template':c['id'],'status':'error','path':e,'detail':m['message']});}}try{a['push'](...seedIndustryNavPages(b));}catch{}return a;}function seedKnobSlot(a,b){const c=knobTemplateFile(a,b),d={'template':b['id'],'status':'knob_written','path':c};if(!existsSync(c))return mkdirSync(dirname(c),{'recursive':!![]}),writeFileSync(c,renderKnobFile(b),'utf-8'),d['detail']='knob\x20file\x20written\x20(fresh)',d;const e=readFileSync(c,'utf-8'),f=classifyKnobFile(e,b['id']);if(f==='current'){const j=stripReleaseSentinel(e,TEMPLATE_KNOBS_SENTINEL_KIND)['content'];if(j!==canonicalKnobContent(b))return writeFileSync(c,renderKnobFile(b),'utf-8'),{...d,'status':'knob_current','detail':'seed-cure\x20resync:\x20unmodified\x20knob\x20release\x20lagged\x20the\x20running\x20seed\x20and\x20was\x20re-rendered\x20(layer\x20consistency\x20—\x20the\x20knob\x20layer\x20must\x20never\x20outrank\x20the\x20seed\x20with\x20stale\x20release\x20content)'};return{...d,'status':'knob_current'};}if(f==='outdated')return writeFileSync(c,renderKnobFile(b),'utf-8'),{...d,'status':'knob_current','detail':'unmodified\x20older\x20knob\x20release\x20auto-upgraded\x20to\x20the\x20current\x20render'};if(f==='user_modified'){const k=stripReleaseSentinel(e,TEMPLATE_KNOBS_SENTINEL_KIND)['content'];return{...d,'status':'knob_kept_user','detail':k!==canonicalKnobContent(b)?'user-edited\x20knobs\x20kept\x20by\x20design\x20(never\x20overwritten);\x20body\x20differs\x20from\x20the\x20running\x20seed\x20render\x20—\x20verify\x20the\x20values\x20are\x20intentional\x20(knob\x20config\x20outranks\x20the\x20seed\x20at\x20runtime)':'user-edited\x20knobs\x20kept\x20by\x20design\x20(never\x20overwritten)'};}let g;try{g=String(parseTemplateFile(e)['frontmatter']['id']??'');}catch{g=undefined;}if(g!==b['id'])return{...d,'status':'skipped_user_file','detail':'a\x20non-knob\x20file\x20(id\x20\x27'+(g??'<unparseable>')+'\x27)\x20occupies\x20the\x20knob\x20slot;\x20machine\x20template\x20wins,\x20file\x20untouched\x20—\x20rename\x20it\x20to\x20free\x20the\x20slot'};const h=join(dirname(c),TEMPLATE_ARCHIVE_SUBDIR);mkdirSync(h,{'recursive':!![]});const i=join(h,b['variant']+'.pre-split.md');return writeFileSync(i,e,'utf-8'),rmSync(c,{'force':!![]}),writeFileSync(c,renderKnobFile(b),'utf-8'),{...d,'status':'knob_written','detail':'obsolete\x20pre-S8\x20single-file\x20template\x20retired\x20to\x20'+i+';\x20knob\x20file\x20re-rendered\x20from\x20the\x20current\x20catalog'};}function seedIndustryNavPages(a){const b=[],c=new Map();for(const d of BUILTIN_TEMPLATES){const e=c['get'](d['industry'])??[];e['push'](d),c['set'](d['industry'],e);}for(const [f,g]of[...c['entries']()]['sort']()){const h=join(a,f,INDUSTRY_NAV_FILENAME),i={'template':'nav/'+f,'status':'written','path':h};try{if(!existsSync(h))mkdirSync(dirname(h),{'recursive':!![]}),writeFileSync(h,renderIndustryNav(f,g),'utf-8');else{const j=classifyIndustryNav(readFileSync(h,'utf-8'));if(j==='current')i['status']='current';else j==='outdated'?(writeFileSync(h,renderIndustryNav(f,g),'utf-8'),i['status']='restamped',i['detail']='unmodified\x20older\x20nav\x20page\x20auto-upgraded'):(i['status']='skipped_modified',i['detail']='nav\x20page\x20user-edited;\x20kept\x20by\x20design');}}catch(k){i['status']='error',i['detail']=k['message'];}b['push'](i);}return b;}export function summarizeTemplateDiff(a,b){let c,d;try{c=parseTemplateFile(a);}catch(g){return'on-disk\x20file\x20is\x20not\x20parseable\x20('+g['message']+');\x20full\x20content\x20will\x20be\x20replaced';}try{d=parseTemplateFile(b);}catch{return'canonical\x20render\x20is\x20not\x20parseable\x20(code\x20defect);\x20full\x20content\x20will\x20be\x20replaced';}const e=[],f=new Set([...Object['keys'](c['frontmatter']),...Object['keys'](d['frontmatter'])]);for(const h of[...f]['sort']()){const i=h in c['frontmatter'],j=h in d['frontmatter'];if(i&&!j)e['push']('-'+h);else{if(!i&&j)e['push']('+'+h);else{if(JSON['stringify'](c['frontmatter'][h])!==JSON['stringify'](d['frontmatter'][h]))e['push']('~'+h);}}}return c['body']!==d['body']&&e['push']('~body\x20('+c['body']['split']('\x0a')['length']+'\x20->\x20'+d['body']['split']('\x0a')['length']+'\x20lines)'),e['length']>0x0?e['join'](',\x20'):'whitespace/ordering\x20only';}export function repairBuiltinTemplates(a){const b=[],c=resolveTemplatesDir(),d=a?.['backup']!==![],e=a?.['dryRun']===!![],f=new Set(a?.['includeUserEdited']??[]);for(const g of BUILTIN_TEMPLATES){const h=machineTemplateFile(c,g);if(!existsSync(h))continue;const i=canonicalTemplateContent(g);let j=null,k='';const l={'template':g['id'],'status':'would_update','path':h};try{const p=stripReleaseSentinel(readFileSync(h,'utf-8'),TEMPLATE_SENTINEL_KIND);j=p['sentinel'],k=p['content'];}catch(q){l['status']='error',l['detail']=q['message'],b['push'](l);continue;}if(k===i)continue;let m;if(j){if(j['version']>BUILTIN_TEMPLATES_VERSION){l['status']='error',l['detail']='newer\x20release\x20on\x20disk\x20(sentinel\x20v'+j['version']+'\x20>\x20running\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20'+'repair\x20would\x20DOWNGRADE\x20and\x20lose\x20the\x20newer\x20release\x27s\x20content;\x20refused.\x20Upgrade\x20the\x20MCP\x20server\x20instead',b['push'](l);continue;}if(releaseBodyHash(k)!==j['hash']){if(!f['has'](g['id']))continue;m='sentinel-body\x20hash\x20mismatch\x20(sentinel\x20v'+j['version']+'\x20no\x20longer\x20binds\x20the\x20body)\x20'+'reseeded\x20under\x20EXPLICIT\x20include_user_edited\x20authorization';}else m='untouched\x20older\x20release\x20(sentinel\x20v'+j['version']+',\x20current\x20v'+BUILTIN_TEMPLATES_VERSION+')';}else{let r;try{r=String(parseTemplateFile(k)['frontmatter']['id']??'');}catch{continue;}if(r!==g['id'])continue;m='legacy\x20sentinel-less\x20builtin\x20file';}const n=summarizeTemplateDiff(k,i),o=d?';\x20previous\x20body\x20would\x20be\x20saved\x20in\x20templates/.archive/':'';if(e){l['status']='would_update',l['detail']=m+'\x20would\x20be\x20reseeded\x20from\x20BUILTIN_TEMPLATES\x20('+g['id']+')\x20—\x20diff\x20vs\x20canonical:\x20'+n+o+'\x20—\x20execute\x20with\x20authorize=true\x20after\x20the\x20user\x20explicitly\x20confirms',b['push'](l);continue;}try{if(d){const s=archiveBackupFile(c,g,'.repair.md');mkdirSync(dirname(s),{'recursive':!![]}),copyFileSync(h,s);}writeFileSync(h,renderTemplateFile(g),'utf-8'),cache['delete'](h),l['status']='updated',l['detail']=m+'\x20reseeded\x20from\x20BUILTIN_TEMPLATES\x20('+g['id']+')\x20—\x20diff\x20was:\x20'+n+(d?';\x20previous\x20body\x20saved\x20in\x20templates/.archive/':'');}catch(u){l['status']='error',l['detail']=u['message'];}b['push'](l);}return b;}export function builtinTemplateDrift(a){const b=new Set(a?.['includeUserEdited']??[]),c=[],d=resolveTemplatesDir();for(const e of BUILTIN_TEMPLATES){const f=machineTemplateFile(d,e);if(!existsSync(f)){c['push']({'template':e['id'],'path':f,'state':'missing','repairable':!![],'detail':'no\x20file\x20on\x20disk;\x20seeding\x20will\x20create\x20it'});continue;}const g=canonicalTemplateContent(e);let h=null,i='';try{const k=stripReleaseSentinel(readFileSync(f,'utf-8'),TEMPLATE_SENTINEL_KIND);h=k['sentinel'],i=k['content'];}catch(l){c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'unreadable:\x20'+l['message']});continue;}if(i===g)continue;const j=summarizeTemplateDiff(i,g);if(!h){let m;try{m=String(parseTemplateFile(i)['frontmatter']['id']??'');}catch{m=undefined;}m===e['id']?c['push']({'template':e['id'],'path':f,'state':'modified','repairable':!![],'detail':'legacy\x20sentinel-less\x20builtin\x20file\x20—\x20seeding\x20never\x20rewrites\x20it\x20and\x20no\x20sentinel\x20proves\x20provenance;\x20repair\x20can\x20reseed\x20—\x20diff\x20vs\x20canonical:\x20'+j}):c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'no\x20release\x20sentinel\x20and\x20id\x20\x27'+(m??'<unparseable>')+'\x27\x20does\x20not\x20match\x20the\x20builtin\x20id\x20—\x20a\x20user\x20file\x20occupies\x20this\x20path;\x20never\x20touched\x20(rename\x20it\x20to\x20free\x20the\x20slot)'});continue;}if(releaseBodyHash(i)===h['hash'])h['version']>BUILTIN_TEMPLATES_VERSION?c['push']({'template':e['id'],'path':f,'state':'modified','repairable':![],'detail':'newer\x20release\x20(sentinel\x20v'+h['version']+'\x20>\x20running\x20catalog\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20'+'repair\x20would\x20DOWNGRADE\x20and\x20lose\x20the\x20newer\x20release\x27s\x20content;\x20repairable:\x20false.\x20'+'Upgrade\x20the\x20MCP\x20server\x20to\x20match\x20—\x20diff\x20vs\x20canonical:\x20'+j}):c['push']({'template':e['id'],'path':f,'state':'modified','repairable':!![],'detail':'untouched\x20older\x20release\x20(sentinel\x20v'+h['version']+',\x20current\x20v'+BUILTIN_TEMPLATES_VERSION+')\x20—\x20repair\x20can\x20upgrade\x20—\x20diff\x20vs\x20canonical:\x20'+j});else{const n=b['has'](e['id']);c['push']({'template':e['id'],'path':f,'state':'modified','repairable':n,'detail':n?'sentinel-body\x20hash\x20mismatch\x20(sentinel\x20v'+h['version']+'\x20no\x20longer\x20binds\x20the\x20body)\x20—\x20reseedable\x20under\x20the\x20explicit\x20include_user_edited\x20authorization\x20for\x20this\x20id\x20—\x20diff\x20vs\x20canonical:\x20'+j:'user-edited\x20body\x20—\x20kept\x20by\x20design;\x20repair\x20never\x20overwrites\x20user\x20edits\x20—\x20diff\x20vs\x20canonical:\x20'+j});}}for(const o of c){const p=BUILTIN_TEMPLATES['find'](q=>q['id']===o['template']);if(p)o['knob_state']=knobFileState(d,p);}return c;}function knobFileState(a,b){const c=knobTemplateFile(a,b);if(!existsSync(c))return'missing';try{return classifyKnobFile(readFileSync(c,'utf-8'),b['id'])==='user_modified'?'user_modified':'current';}catch{return'current';}}export function templateTruthStamps(a){const b=resolveTemplatesDir(),c=BUILTIN_TEMPLATES['find'](n=>n['id']===a);if(!c){const n=getTemplate(a),o=n?.['source_path'];if(!o||!existsSync(o))return{'template':a,'source':'user','content_sha256':'','machine_layer':null,'knob_layer':null,'consistency':'user_template'};const {content:q}=stripReleaseSentinel(readFileSync(o,'utf-8'),TEMPLATE_SENTINEL_KIND);return{'template':a,'source':'user','content_sha256':releaseBodyHash(q),'machine_layer':null,'knob_layer':null,'consistency':'user_template'};}const d=machineTemplateFile(b,c);let e='',f=null;if(existsSync(d)){const r=stripReleaseSentinel(readFileSync(d,'utf-8'),TEMPLATE_SENTINEL_KIND);f=r['sentinel'],e=r['content'];}const g=canonicalTemplateContent(c),h=f!==null&&releaseBodyHash(e)===f['hash'],i=e===g,j=i?undefined:summarizeTemplateDiff(e,g),k=knobTemplateFile(b,c);let l;if(!existsSync(k))l={'path':k,'state':'missing','override_keys':[]};else{const s=readFileSync(k,'utf-8'),t=classifyKnobFile(s,c['id']),u=t!==null?parseKnobFile(stripReleaseSentinel(s,TEMPLATE_KNOBS_SENTINEL_KIND)['content'],c['id']):null,v=u?[...u['fee_params']!==undefined?Object['keys'](u['fee_params'])['map'](w=>'fee_params.'+w):[],...Object['keys'](u)['filter'](w=>w!=='id'&&w!=='fee_params')]:[];l={'path':k,'state':t??'invalid','override_keys':v};}const m=!i||f!==null&&!h;return{'template':a,'source':'builtin','schema_version':BUILTIN_TEMPLATES_VERSION,'content_sha256':releaseBodyHash(e),'machine_layer':{'path':d,'sentinel':f,'sentinel_binds_body':h,'matches_catalog':i},'knob_layer':l,'consistency':m?'drifted':'verified',...m&&j!==undefined?{'differences':j}:{}};}const cache=new Map();export function reloadTemplates(){cache['clear'](),seeded=![];}export function loadAndValidate(a){const b=readFileSync(a,'utf-8');let c;try{c=parseTemplateFile(b);}catch(h){throw new Error('template\x20\x27'+a+'\x27\x20failed\x20to\x20parse:\x20'+h['message']);}const d=TemplateFrontmatterSchema['safeParse'](c['frontmatter']);if(!d['success']){const i=d['error']['issues']['map'](j=>(j['path']['join']('.')||'<root>')+':\x20'+j['message'])['join'](';\x20');throw new Error('template\x20\x27'+a+'\x27\x20failed\x20validation:\x20'+i);}const e=validateAllocatorRows(d['data']);if(e['length']>0x0)throw new Error('template\x20\x27'+a+'\x27\x20failed\x20allocator-row\x20validation:\x20'+e['join'](';\x20'));const f=userInputSpecIssues(d['data']);if(f['length']>0x0)throw new Error('template\x20\x27'+a+'\x27\x20failed\x20user_input_specs\x20validation:\x20'+f['join'](';\x20'));const g=validateRuleDeclarations(d['data']);if(g['length']>0x0)throw new Error('template\x20\x27'+a+'\x27\x20failed\x20rule-declaration\x20validation:\x20'+g['join'](';\x20'));return{...d['data'],'body':c['body'],'source_path':a};}function templateFilesOnDisk(a){const b=[];if(!existsSync(a))return b;const c=new Set(BUILTIN_TEMPLATES['map'](d=>d['industry']+'/'+d['variant']));for(const d of readdirSync(a,{'withFileTypes':!![]})){if(!d['isDirectory']())continue;const e=join(a,d['name'],TEMPLATES_SUBDIR);if(!existsSync(e))continue;const g=join(e,MACHINE_TEMPLATES_SUBDIR);if(existsSync(g))for(const h of readdirSync(g,{'withFileTypes':!![]})){if(!h['isFile']()||!h['name']['endsWith']('.md'))continue;const i=h['name']['slice'](0x0,-'.md'['length']),j=c['has'](d['name']+'/'+i)?join(e,h['name']):null;b['push']({'file':join(g,h['name']),'id':d['name']+'/'+i,'knobFile':j});}for(const k of readdirSync(e,{'withFileTypes':!![]})){if(!k['isFile']()||!k['name']['endsWith']('.md'))continue;const l=k['name']['slice'](0x0,-'.md'['length']);if(c['has'](d['name']+'/'+l))continue;b['push']({'file':join(e,k['name']),'id':d['name']+'/'+l,'knobFile':null});}}return b['sort']((m,n)=>m['file']['localeCompare'](n['file']));}export function listTemplates(){!seeded&&(seedBuiltinTemplates(),seeded=!![]);const a=resolveTemplatesDir(),b=[],c=[],d=new Map(),e=new Set();for(const {file:f,id:g,knobFile:h}of templateFilesOnDisk(a)){e['add'](f);try{const i=statSync(f)['mtimeMs'],j=h&&existsSync(h)?statSync(h)['mtimeMs']:0x0,k=cache['get'](f);if(k&&k['mtimeMs']===i&&k['knobMtimeMs']===j){b['push'](k['template']);continue;}let l=loadAndValidate(f);if(h&&j>0x0){const m=readFileSync(h,'utf-8'),n=parseKnobFile(m,l['id']);if(n){l=applyKnobOverlay(l,n,parseTemplateFile(m)['body']);const o=validateAllocatorRows(l);if(o['length']>0x0)throw new Error('template\x20\x27'+f+'\x27\x20—\x20knob\x20overlay\x20\x27'+h+'\x27\x20broke\x20allocator-row\x20validation:\x20'+o['join'](';\x20'));}else c['push']('knob\x20file\x20\x27'+h+'\x27\x20is\x20not\x20a\x20valid\x20knob\x20overlay\x20for\x20\x27'+l['id']+'\x27\x20—\x20ignored,\x20machine\x20template\x20used\x20as-is');}cache['set'](f,{'mtimeMs':i,'knobMtimeMs':j,'template':l}),b['push'](l);}catch(p){cache['delete'](f),c['push'](p['message']),d['set'](g,p['message']);}}for(const q of[...cache['keys']()]){if(!e['has'](q))cache['delete'](q);}return b['sort']((r,s)=>r['id']['localeCompare'](s['id'])),loadErrorsById=d,{'templates':b,'errors':c};}let loadErrorsById=new Map();export function getTemplateLoadError(a){return listTemplates(),loadErrorsById['get'](a);}export function getTemplate(a){return listTemplates()['templates']['find'](b=>b['id']===a);}export function getTemplatesByIndustry(a){return listTemplates()['templates']['filter'](b=>b['industry']===a);}
@@ -1 +1 @@
1
- import{createHash}from'node:crypto';import{z}from'zod';export const PROSE_LANGUAGES=['en','other'];export const PROSE_CLAIM_KEYS=['review_mode','refund_rail','reward_pool','escrow_release','independent_arbitration'];export const REVIEW_MODE_VALUES=['none','review','review_reward'];const ProseClaimSchema=z['object']({'key':z['enum'](PROSE_CLAIM_KEYS),'value':z['union']([z['boolean'](),z['enum'](REVIEW_MODE_VALUES)]),'evidence':z['string']()['max'](0x190)['optional']()})['strict']();export const MachineProseEnvelopeSchema=z['object']({'text_en':z['string']()['min'](0x1),'source_sha256':z['string']()['regex'](/^[0-9a-f]{64}$/,'source_sha256\x20must\x20be\x20lowercase\x20hex\x20sha256'),'method':z['enum'](['human','llm']),'model':z['string']()['max'](0x78)['optional'](),'prompt_version':z['string']()['max'](0x3c)['optional'](),'claims':z['array'](ProseClaimSchema)['max'](0x8)['optional']()})['strict']();function normalizeText(a){return a['replace'](/\s+/g,'\x20')['trim']();}export function proseSourceDigest(a){return createHash('sha256')['update'](normalizeText(a))['digest']('hex');}export function machineProseFields(a){const b=[];return a['build_notes']['forEach']((c,d)=>b['push']({'address':'build_notes['+d+']','text':c})),b['push']({'address':'allocator.description','text':a['allocator']['description']}),a['trust_mechanisms']['forEach']((c,d)=>b['push']({'address':'trust_mechanisms['+d+']','text':c})),a['guards']['forEach']((c,d)=>b['push']({'address':'guards['+d+'].purpose','text':c['purpose']})),a['machine_shape']['forEach']((c,d)=>b['push']({'address':'machine_shape['+d+'].role','text':c['role']})),b['filter'](c=>typeof c['text']==='string'&&normalizeText(c['text'])['length']>0x0);}const NON_LATIN_SCRIPT_PROBES=[['Han',/\p{Script=Han}/u],['Hiragana',/\p{Script=Hiragana}/u],['Katakana',/\p{Script=Katakana}/u],['Hangul',/\p{Script=Hangul}/u],['Cyrillic',/\p{Script=Cyrillic}/u],['Arabic',/\p{Script=Arabic}/u],['Hebrew',/\p{Script=Hebrew}/u],['Thai',/\p{Script=Thai}/u],['Devanagari',/\p{Script=Devanagari}/u]],ACCENTED_LATIN=/[\u00c0-\u024f\u1e00-\u1e0f\u1e20-\u1e7f]/g,NON_ENGLISH_FUNCTION_WORDS=new Set(['le','les','des','du','une','et','est','pour','avec','sur','dans','par','aux','peut','doit','sont','être','sera','cette','ces','nous','vous','mais','plus','der','die','das','und','ist','nicht','wird','mit','für','von','auf','dem','den','ein','eine','einen','auch','oder','bei','nach','zum','zur','keine','kann','muss']);function nonLatinScripts(a){const b=[];for(const [c,d]of NON_LATIN_SCRIPT_PROBES){if(d['test'](a))b['push'](c);}return b;}function nonEnglishSignals(a){const b=[],c=a['match'](ACCENTED_LATIN)??[];if(c['length']>=0x2)b['push'](c['length']+'\x20accented\x20Latin\x20letters');const d=a['toLowerCase']()['match'](/[a-zà-öø-ÿß]+/g)??[],e=new Set(d['filter'](f=>NON_ENGLISH_FUNCTION_WORDS['has'](f)));return e['size']>=0x2&&b['push']('non-English\x20function\x20words:\x20'+[...e]['slice'](0x0,0x4)['join'](',\x20')),b;}export function trustedEnvelopes(a){const b=new Map(machineProseFields(a)['map'](d=>[d['address'],d['text']])),c=new Map();for(const [d,e]of Object['entries'](a['machine_prose']??{})){const f=MachineProseEnvelopeSchema['safeParse'](e);if(!f['success'])continue;const g=b['get'](d);if(g===undefined)continue;if(proseSourceDigest(g)!==f['data']['source_sha256'])continue;c['set'](d,f['data']);}return c;}export function proseClaim(a,b,c){const d=trustedEnvelopes(a)['get'](b);if(!d)return undefined;const e=(d['claims']??[])['find'](f=>f['key']===c);return e?.['value'];}export function canonicalizeMachineProse(a){const b=trustedEnvelopes(a);if(b['size']===0x0)return a;const c=(d,e)=>b['get'](d)?.['text_en']??e;return{...a,'allocator':{...a['allocator'],'description':c('allocator.description',a['allocator']['description'])},'build_notes':a['build_notes']['map']((d,e)=>c('build_notes['+e+']',d)),'trust_mechanisms':a['trust_mechanisms']['map']((d,e)=>c('trust_mechanisms['+e+']',d)),'guards':a['guards']['map']((d,e)=>({...d,'purpose':c('guards['+e+'].purpose',d['purpose'])})),'machine_shape':a['machine_shape']['map']((d,e)=>({...d,'role':c('machine_shape['+e+'].role',d['role'])}))};}const CLAIM_KEYWORDS={'refund_rail':['refund','money-back','money\x20back'],'reward_pool':['reward','bonus'],'escrow_release':['escrow'],'independent_arbitration':['arbitration','third-party','third\x20party']};function affirmativeClauses(a){return a['split'](/[.;]/)['filter'](b=>!/\b(?:never|no|not|don'?t|cannot|must not|avoid|prohibit\w*|forbid\w*|instead of|rather than|previously|without)\b/i['test'](b))['join']('\x20.\x20');}function mentions(a,b){return b['some'](c=>{const d=c['replace'](/[-/\\^$*+?.()|[\]{}]/g,'\x5c$&')['replace'](/ /g,'\x5cs+');return new RegExp('\x5cb'+d+'(?:s|es|ed|ing)?\x5cb','i')['test'](a);});}const NUMERIC_TOKEN=/-?\d+(?:[.,]\d+)?%?/g,IDENTIFIER_TOKEN=/[a-z][a-z0-9]*(?:[._][a-z0-9]+)+/g;function numericTokens(a){return new Set((a['match'](NUMERIC_TOKEN)??[])['map'](b=>b['replace'](/[,_]/g,'')));}function identifierTokens(a){return new Set((a['match'](IDENTIFIER_TOKEN)??[])['map'](b=>b['toLowerCase']()));}function envelopeIntegrityIssues(a,b){const c=[],d=normalizeText(a['text']),e=normalizeText(b['text_en']),f=d['toLowerCase'](),g=affirmativeClauses(e),h=nonLatinScripts(e);if(h['length']>0x0)c['push'](a['address']+':\x20text_en\x20is\x20not\x20English\x20(non-Latin\x20script:\x20'+h['join'](',\x20')+')');else{const m=nonEnglishSignals(e);m['length']>0x0&&c['push'](a['address']+':\x20text_en\x20is\x20not\x20English\x20('+m['join'](';\x20')+')');}for(const o of b['claims']??[]){const p=o['value']===!![]||o['key']==='review_mode'&&o['value']!=='none';if(!p)continue;const q=o['evidence']?normalizeText(o['evidence']):'';(q['length']===0x0||!f['includes'](q['toLowerCase']()))&&c['push'](a['address']+':\x20claim\x20\x27'+o['key']+'\x27\x20asserts\x20a\x20capability\x20without\x20a\x20verbatim\x20source\x20quote');}const i=numericTokens(d),j=numericTokens(e);for(const r of i){!j['has'](r)&&c['push'](a['address']+':\x20numeric\x20token\x20\x27'+r+'\x27\x20from\x20the\x20source\x20is\x20missing\x20in\x20text_en');}const k=identifierTokens(d),l=identifierTokens(e);for(const s of k){!l['has'](s)&&c['push'](a['address']+':\x20identifier\x20\x27'+s+'\x27\x20from\x20the\x20source\x20is\x20missing\x20in\x20text_en');}for(const [t,u]of Object['entries'](CLAIM_KEYWORDS)){if(!mentions(g,u))continue;const v=(b['claims']??[])['find'](w=>w['key']===t);if(v?.['value']===!![])continue;c['push'](a['address']+':\x20text_en\x20names\x20a\x20\x27'+t+'\x27\x20capability\x20that\x20no\x20claim\x20asserts\x20(over-claim)');}return c;}export function machineProseFindings(a){const b=[],c=machineProseFields(a),d=a['prose_language']??'en',e=a['machine_prose']??{},f=[];for(const i of c){const j=e[i['address']],k=j?'present\x20but\x20not\x20trusted\x20(stale\x20or\x20malformed)':'missing';if(j){const n=MachineProseEnvelopeSchema['safeParse'](j);if(n['success']&&proseSourceDigest(i['text'])===n['data']['source_sha256'])continue;}if(d==='other'){f['push'](i['address']+'\x20(declared\x20non-English;\x20canonical\x20envelope\x20'+k+';\x20'+('expected\x20source_sha256='+proseSourceDigest(i['text'])+')'));continue;}const l=nonLatinScripts(i['text']);if(l['length']>0x0){f['push'](i['address']+'\x20(non-Latin\x20script:\x20'+l['join'](',\x20')+';\x20'+('expected\x20source_sha256='+proseSourceDigest(i['text'])+')'));continue;}const m=nonEnglishSignals(i['text']);m['length']>0x0&&f['push'](i['address']+'\x20('+m['join'](';\x20')+';\x20expected\x20source_sha256='+proseSourceDigest(i['text'])+')');}f['length']>0x0&&b['push']({'rule_id':'R-PROSE-VERIFIABLE-01','severity':'high','title':'Machine-read\x20prose\x20is\x20not\x20verifiable\x20('+f['length']+'\x20field'+(f['length']===0x1?'':'s')+')','detail':'The\x20pre-deploy\x20prose\x20rules\x20are\x20an\x20English\x20lexical\x20canon.\x20These\x20machine-read\x20fields\x20are\x20'+'neither\x20verifiably\x20English\x20nor\x20backed\x20by\x20a\x20frozen\x20canonical\x20English\x20envelope:\x20'+(f['join'](';\x20')+'.\x20Prose\x20the\x20scanner\x20cannot\x20read\x20matches\x20no\x20pattern\x20and\x20would\x20pass\x20')+'as\x20compliant\x20purely\x20by\x20silence.','suggestion':'Either\x20write\x20the\x20machine-read\x20prose\x20in\x20English,\x20or\x20author\x20it\x20in\x20any\x20language\x20and\x20declare\x20'+'prose_language:\x20\x27other\x27\x20with\x20one\x20machine_prose\x20envelope\x20per\x20field\x20'+'({text_en,\x20source_sha256,\x20method,\x20claims})\x20so\x20the\x20scanner\x20reads\x20a\x20frozen\x20English\x20rendering.\x20'+'Each\x20listed\x20field\x20prints\x20its\x20expected\x20source_sha256\x20(sha256\x20of\x20the\x20whitespace-collapsed\x20'+'source)\x20—\x20copy\x20it\x20verbatim\x20into\x20the\x20envelope.\x20'+'This\x20finding\x20blocks\x20template_generate\x20(fail-closed)\x20until\x20the\x20prose\x20is\x20verifiable.'});const g=[],h=new Set(c['map'](o=>o['address']));for(const [o,p]of Object['entries'](e)){const q=MachineProseEnvelopeSchema['safeParse'](p);if(!q['success']){g['push'](o+':\x20envelope\x20does\x20not\x20match\x20the\x20contract\x20('+(q['error']['issues'][0x0]?.['message']??'invalid')+')');continue;}if(!h['has'](o)){g['push'](o+':\x20envelope\x20targets\x20a\x20prose\x20field\x20that\x20does\x20not\x20exist');continue;}const r=c['find'](s=>s['address']===o);if(proseSourceDigest(r['text'])!==q['data']['source_sha256']){g['push'](o+':\x20envelope\x20is\x20stale\x20(source_sha256\x20does\x20not\x20match\x20the\x20current\x20prose;\x20'+('expected\x20source_sha256='+proseSourceDigest(r['text'])+')'));continue;}q['data']['method']==='llm'&&!q['data']['model']&&!q['data']['prompt_version']&&g['push'](o+':\x20llm-normalized\x20envelope\x20carries\x20no\x20model\x20/\x20prompt_version\x20provenance'),g['push'](...envelopeIntegrityIssues(r,q['data']));}if(d==='other')for(const s of c){!e[s['address']]&&g['push'](s['address']+':\x20missing\x20envelope\x20(prose_language=\x27other\x27\x20requires\x20one\x20per\x20non-empty\x20'+('machine-read\x20field;\x20expected\x20source_sha256='+proseSourceDigest(s['text'])+')'));}return g['length']>0x0&&b['push']({'rule_id':'R-PROSE-CANONICAL-01','severity':'high','title':'Canonical\x20prose\x20envelope\x20integrity\x20failure\x20('+g['length']+')','detail':'A\x20canonical\x20envelope\x20must\x20be\x20FROZEN\x20(source_sha256\x20binds\x20the\x20exact\x20prose),\x20must\x20not\x20invent\x20'+'capabilities\x20(asserted\x20claims\x20need\x20a\x20verbatim\x20source\x20quote),\x20must\x20carry\x20numbers\x20and\x20code\x20'+('identifiers\x20verbatim,\x20and\x20must\x20not\x20name\x20a\x20capability\x20its\x20claims\x20deny:\x20'+g['join'](';\x20')+'.'),'suggestion':'Re-normalize\x20the\x20affected\x20field\x20from\x20the\x20CURRENT\x20prose,\x20copy\x20the\x20source\x20quote\x20verbatim\x20into\x20'+'the\x20claim\x20evidence,\x20keep\x20numbers\x20and\x20fee/param\x20identifiers\x20untranslated,\x20and\x20either\x20assert\x20the\x20'+'capability\x20in\x20a\x20claim\x20or\x20remove\x20it\x20from\x20text_en.\x20A\x20stale\x20binding\x20prints\x20the\x20expected\x20'+'source_sha256\x20—\x20copy\x20it\x20verbatim.\x20This\x20finding\x20blocks\x20template_generate\x20(fail-closed).'}),b;}
1
+ import{createHash}from'node:crypto';import{z}from'zod';export const PROSE_LANGUAGES=['en','other'];export const PROSE_CLAIM_KEYS=['review_mode','refund_rail','reward_pool','escrow_release','independent_arbitration'];export const REVIEW_MODE_VALUES=['none','review','review_reward'];const ProseClaimSchema=z['object']({'key':z['enum'](PROSE_CLAIM_KEYS),'value':z['union']([z['boolean'](),z['enum'](REVIEW_MODE_VALUES)]),'evidence':z['string']()['max'](0x190)['optional']()})['strict']();export const MachineProseEnvelopeSchema=z['object']({'text_en':z['string']()['min'](0x1),'source_sha256':z['string']()['regex'](/^[0-9a-f]{64}$/,'source_sha256\x20must\x20be\x20lowercase\x20hex\x20sha256'),'method':z['enum'](['human','llm']),'model':z['string']()['max'](0x78)['optional'](),'prompt_version':z['string']()['max'](0x3c)['optional'](),'claims':z['array'](ProseClaimSchema)['max'](0x8)['optional']()})['strict']();function normalizeText(a){return a['replace'](/\s+/g,'\x20')['trim']();}export function proseSourceDigest(a){return createHash('sha256')['update'](normalizeText(a))['digest']('hex');}export function machineProseFields(a){const b=[];return(a['build_notes']??[])['forEach']((c,d)=>b['push']({'address':'build_notes['+d+']','text':c})),b['push']({'address':'allocator.description','text':a['allocator']?.['description']??''}),(a['trust_mechanisms']??[])['forEach']((c,d)=>b['push']({'address':'trust_mechanisms['+d+']','text':c})),(a['guards']??[])['forEach']((c,d)=>b['push']({'address':'guards['+d+'].purpose','text':c?.['purpose']})),(a['machine_shape']??[])['forEach']((c,d)=>b['push']({'address':'machine_shape['+d+'].role','text':c?.['role']})),b['filter'](c=>typeof c['text']==='string'&&normalizeText(c['text'])['length']>0x0);}const NON_LATIN_SCRIPT_PROBES=[['Han',/\p{Script=Han}/u],['Hiragana',/\p{Script=Hiragana}/u],['Katakana',/\p{Script=Katakana}/u],['Hangul',/\p{Script=Hangul}/u],['Cyrillic',/\p{Script=Cyrillic}/u],['Arabic',/\p{Script=Arabic}/u],['Hebrew',/\p{Script=Hebrew}/u],['Thai',/\p{Script=Thai}/u],['Devanagari',/\p{Script=Devanagari}/u]],ACCENTED_LATIN=/[\u00c0-\u024f\u1e00-\u1e0f\u1e20-\u1e7f]/g,NON_ENGLISH_FUNCTION_WORDS=new Set(['le','les','des','du','une','et','est','pour','avec','sur','dans','par','aux','peut','doit','sont','être','sera','cette','ces','nous','vous','mais','plus','der','die','das','und','ist','nicht','wird','mit','für','von','auf','dem','den','ein','eine','einen','auch','oder','bei','nach','zum','zur','keine','kann','muss']);function nonLatinScripts(a){const b=[];for(const [c,d]of NON_LATIN_SCRIPT_PROBES){if(d['test'](a))b['push'](c);}return b;}function nonEnglishSignals(a){const b=[],c=a['match'](ACCENTED_LATIN)??[];if(c['length']>=0x2)b['push'](c['length']+'\x20accented\x20Latin\x20letters');const d=a['toLowerCase']()['match'](/[a-zà-öø-ÿß]+/g)??[],e=new Set(d['filter'](f=>NON_ENGLISH_FUNCTION_WORDS['has'](f)));return e['size']>=0x2&&b['push']('non-English\x20function\x20words:\x20'+[...e]['slice'](0x0,0x4)['join'](',\x20')),b;}export function trustedEnvelopes(a){const b=new Map(machineProseFields(a)['map'](d=>[d['address'],d['text']])),c=new Map();for(const [d,e]of Object['entries'](a['machine_prose']??{})){const f=MachineProseEnvelopeSchema['safeParse'](e);if(!f['success'])continue;const g=b['get'](d);if(g===undefined)continue;if(proseSourceDigest(g)!==f['data']['source_sha256'])continue;c['set'](d,f['data']);}return c;}export function proseClaim(a,b,c){const d=trustedEnvelopes(a)['get'](b);if(!d)return undefined;const e=(d['claims']??[])['find'](f=>f['key']===c);return e?.['value'];}export function canonicalizeMachineProse(a){const b=trustedEnvelopes(a);if(b['size']===0x0)return a;const c=(d,e)=>b['get'](d)?.['text_en']??e;return{...a,'allocator':{...a['allocator'],'description':c('allocator.description',a['allocator']['description'])},'build_notes':a['build_notes']['map']((d,e)=>c('build_notes['+e+']',d)),'trust_mechanisms':a['trust_mechanisms']['map']((d,e)=>c('trust_mechanisms['+e+']',d)),'guards':a['guards']['map']((d,e)=>({...d,'purpose':c('guards['+e+'].purpose',d['purpose'])})),'machine_shape':a['machine_shape']['map']((d,e)=>({...d,'role':c('machine_shape['+e+'].role',d['role'])}))};}const CLAIM_KEYWORDS={'refund_rail':['refund','money-back','money\x20back'],'reward_pool':['reward','bonus'],'escrow_release':['escrow'],'independent_arbitration':['arbitration','third-party','third\x20party']};function affirmativeClauses(a){return a['split'](/[.;]/)['filter'](b=>!/\b(?:never|no|not|don'?t|cannot|must not|avoid|prohibit\w*|forbid\w*|instead of|rather than|previously|without)\b/i['test'](b))['join']('\x20.\x20');}function mentions(a,b){return b['some'](c=>{const d=c['replace'](/[-/\\^$*+?.()|[\]{}]/g,'\x5c$&')['replace'](/ /g,'\x5cs+');return new RegExp('\x5cb'+d+'(?:s|es|ed|ing)?\x5cb','i')['test'](a);});}const NUMERIC_TOKEN=/-?\d+(?:[.,]\d+)?%?/g,IDENTIFIER_TOKEN=/[a-z][a-z0-9]*(?:[._][a-z0-9]+)+/g;function numericTokens(a){return new Set((a['match'](NUMERIC_TOKEN)??[])['map'](b=>b['replace'](/[,_]/g,'')));}function identifierTokens(a){return new Set((a['match'](IDENTIFIER_TOKEN)??[])['map'](b=>b['toLowerCase']()));}function envelopeIntegrityIssues(a,b){const c=[],d=normalizeText(a['text']),e=normalizeText(b['text_en']),f=d['toLowerCase'](),g=affirmativeClauses(e),h=nonLatinScripts(e);if(h['length']>0x0)c['push'](a['address']+':\x20text_en\x20is\x20not\x20English\x20(non-Latin\x20script:\x20'+h['join'](',\x20')+')');else{const m=nonEnglishSignals(e);m['length']>0x0&&c['push'](a['address']+':\x20text_en\x20is\x20not\x20English\x20('+m['join'](';\x20')+')');}for(const o of b['claims']??[]){const p=o['value']===!![]||o['key']==='review_mode'&&o['value']!=='none';if(!p)continue;const q=o['evidence']?normalizeText(o['evidence']):'';(q['length']===0x0||!f['includes'](q['toLowerCase']()))&&c['push'](a['address']+':\x20claim\x20\x27'+o['key']+'\x27\x20asserts\x20a\x20capability\x20without\x20a\x20verbatim\x20source\x20quote');}const i=numericTokens(d),j=numericTokens(e);for(const r of i){!j['has'](r)&&c['push'](a['address']+':\x20numeric\x20token\x20\x27'+r+'\x27\x20from\x20the\x20source\x20is\x20missing\x20in\x20text_en');}const k=identifierTokens(d),l=identifierTokens(e);for(const s of k){!l['has'](s)&&c['push'](a['address']+':\x20identifier\x20\x27'+s+'\x27\x20from\x20the\x20source\x20is\x20missing\x20in\x20text_en');}for(const [t,u]of Object['entries'](CLAIM_KEYWORDS)){if(!mentions(g,u))continue;const v=(b['claims']??[])['find'](w=>w['key']===t);if(v?.['value']===!![])continue;c['push'](a['address']+':\x20text_en\x20names\x20a\x20\x27'+t+'\x27\x20capability\x20that\x20no\x20claim\x20asserts\x20(over-claim)');}return c;}export function machineProseFindings(a){const b=[],c=machineProseFields(a),d=a['prose_language']??'en',e=a['machine_prose']??{},f=[];for(const i of c){const j=e[i['address']],k=j?'present\x20but\x20not\x20trusted\x20(stale\x20or\x20malformed)':'missing';if(j){const n=MachineProseEnvelopeSchema['safeParse'](j);if(n['success']&&proseSourceDigest(i['text'])===n['data']['source_sha256'])continue;}if(d==='other'){f['push'](i['address']+'\x20(declared\x20non-English;\x20canonical\x20envelope\x20'+k+';\x20'+('expected\x20source_sha256='+proseSourceDigest(i['text'])+')'));continue;}const l=nonLatinScripts(i['text']);if(l['length']>0x0){f['push'](i['address']+'\x20(non-Latin\x20script:\x20'+l['join'](',\x20')+';\x20'+('expected\x20source_sha256='+proseSourceDigest(i['text'])+')'));continue;}const m=nonEnglishSignals(i['text']);m['length']>0x0&&f['push'](i['address']+'\x20('+m['join'](';\x20')+';\x20expected\x20source_sha256='+proseSourceDigest(i['text'])+')');}f['length']>0x0&&b['push']({'rule_id':'R-PROSE-VERIFIABLE-01','severity':'high','title':'Machine-read\x20prose\x20is\x20not\x20verifiable\x20('+f['length']+'\x20field'+(f['length']===0x1?'':'s')+')','detail':'The\x20pre-deploy\x20prose\x20rules\x20are\x20an\x20English\x20lexical\x20canon.\x20These\x20machine-read\x20fields\x20are\x20'+'neither\x20verifiably\x20English\x20nor\x20backed\x20by\x20a\x20frozen\x20canonical\x20English\x20envelope:\x20'+(f['join'](';\x20')+'.\x20Prose\x20the\x20scanner\x20cannot\x20read\x20matches\x20no\x20pattern\x20and\x20would\x20pass\x20')+'as\x20compliant\x20purely\x20by\x20silence.','suggestion':'Either\x20write\x20the\x20machine-read\x20prose\x20in\x20English,\x20or\x20author\x20it\x20in\x20any\x20language\x20and\x20declare\x20'+'prose_language:\x20\x27other\x27\x20with\x20one\x20machine_prose\x20envelope\x20per\x20field\x20'+'({text_en,\x20source_sha256,\x20method,\x20claims})\x20so\x20the\x20scanner\x20reads\x20a\x20frozen\x20English\x20rendering.\x20'+'Each\x20listed\x20field\x20prints\x20its\x20expected\x20source_sha256\x20(sha256\x20of\x20the\x20whitespace-collapsed\x20'+'source)\x20—\x20copy\x20it\x20verbatim\x20into\x20the\x20envelope.\x20'+'This\x20finding\x20blocks\x20template_generate\x20(fail-closed)\x20until\x20the\x20prose\x20is\x20verifiable.'});const g=[],h=new Set(c['map'](o=>o['address']));for(const [o,p]of Object['entries'](e)){const q=MachineProseEnvelopeSchema['safeParse'](p);if(!q['success']){g['push'](o+':\x20envelope\x20does\x20not\x20match\x20the\x20contract\x20('+(q['error']['issues'][0x0]?.['message']??'invalid')+')');continue;}if(!h['has'](o)){g['push'](o+':\x20envelope\x20targets\x20a\x20prose\x20field\x20that\x20does\x20not\x20exist');continue;}const r=c['find'](s=>s['address']===o);if(proseSourceDigest(r['text'])!==q['data']['source_sha256']){g['push'](o+':\x20envelope\x20is\x20stale\x20(source_sha256\x20does\x20not\x20match\x20the\x20current\x20prose;\x20'+('expected\x20source_sha256='+proseSourceDigest(r['text'])+')'));continue;}q['data']['method']==='llm'&&!q['data']['model']&&!q['data']['prompt_version']&&g['push'](o+':\x20llm-normalized\x20envelope\x20carries\x20no\x20model\x20/\x20prompt_version\x20provenance'),g['push'](...envelopeIntegrityIssues(r,q['data']));}if(d==='other')for(const s of c){!e[s['address']]&&g['push'](s['address']+':\x20missing\x20envelope\x20(prose_language=\x27other\x27\x20requires\x20one\x20per\x20non-empty\x20'+('machine-read\x20field;\x20expected\x20source_sha256='+proseSourceDigest(s['text'])+')'));}return g['length']>0x0&&b['push']({'rule_id':'R-PROSE-CANONICAL-01','severity':'high','title':'Canonical\x20prose\x20envelope\x20integrity\x20failure\x20('+g['length']+')','detail':'A\x20canonical\x20envelope\x20must\x20be\x20FROZEN\x20(source_sha256\x20binds\x20the\x20exact\x20prose),\x20must\x20not\x20invent\x20'+'capabilities\x20(asserted\x20claims\x20need\x20a\x20verbatim\x20source\x20quote),\x20must\x20carry\x20numbers\x20and\x20code\x20'+('identifiers\x20verbatim,\x20and\x20must\x20not\x20name\x20a\x20capability\x20its\x20claims\x20deny:\x20'+g['join'](';\x20')+'.'),'suggestion':'Re-normalize\x20the\x20affected\x20field\x20from\x20the\x20CURRENT\x20prose,\x20copy\x20the\x20source\x20quote\x20verbatim\x20into\x20'+'the\x20claim\x20evidence,\x20keep\x20numbers\x20and\x20fee/param\x20identifiers\x20untranslated,\x20and\x20either\x20assert\x20the\x20'+'capability\x20in\x20a\x20claim\x20or\x20remove\x20it\x20from\x20text_en.\x20A\x20stale\x20binding\x20prints\x20the\x20expected\x20'+'source_sha256\x20—\x20copy\x20it\x20verbatim.\x20This\x20finding\x20blocks\x20template_generate\x20(fail-closed).'}),b;}