@wowok/agent-mcp 3.4.0 → 3.4.2

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 (412) hide show
  1. package/README.md +8 -0
  2. package/dist/chain-semantics/composition-truth.d.ts +102 -0
  3. package/dist/chain-semantics/composition-truth.js +1 -0
  4. package/dist/chain-semantics/eval-order.js +1 -1
  5. package/dist/chain-semantics/fund-flow.js +1 -1
  6. package/dist/chain-semantics/index.d.ts +1 -0
  7. package/dist/chain-semantics/index.js +1 -1
  8. package/dist/composition/audit.js +1 -1
  9. package/dist/composition/blueprint-view.d.ts +3 -3
  10. package/dist/composition/blueprint-view.js +1 -1
  11. package/dist/composition/compile.d.ts +24 -3
  12. package/dist/composition/compile.js +1 -1
  13. package/dist/composition/emit-phases.d.ts +206 -0
  14. package/dist/composition/emit-phases.js +1 -0
  15. package/dist/composition/generate.d.ts +40 -0
  16. package/dist/composition/generate.js +1 -0
  17. package/dist/composition/guard-fill.d.ts +44 -0
  18. package/dist/composition/guard-fill.js +1 -0
  19. package/dist/composition/inflight.d.ts +20 -2
  20. package/dist/composition/inflight.js +1 -1
  21. package/dist/composition/input-normalize.d.ts +15 -0
  22. package/dist/composition/input-normalize.js +1 -0
  23. package/dist/composition/materialize.d.ts +18 -13
  24. package/dist/composition/materialize.js +1 -1
  25. package/dist/composition/mode-gates.d.ts +35 -0
  26. package/dist/composition/mode-gates.js +1 -0
  27. package/dist/composition/param-disclosure.js +1 -1
  28. package/dist/composition/plan-retry-ledger.d.ts +21 -0
  29. package/dist/composition/plan-retry-ledger.js +1 -0
  30. package/dist/composition/plan.d.ts +7 -2
  31. package/dist/composition/plan.js +1 -1
  32. package/dist/composition/product-card.d.ts +94 -0
  33. package/dist/composition/product-card.js +1 -0
  34. package/dist/composition/supply-chain-emit.d.ts +46 -0
  35. package/dist/composition/supply-chain-emit.js +1 -0
  36. package/dist/config/config-audit.spec.js +1 -1
  37. package/dist/config/config-warnings.d.ts +2 -0
  38. package/dist/config/config-warnings.js +1 -0
  39. package/dist/config/exposure.d.ts +2 -2
  40. package/dist/config/judgment.d.ts +31 -5
  41. package/dist/config/judgment.js +1 -1
  42. package/dist/config/judgment.spec.js +1 -1
  43. package/dist/config/match-policy-file.d.ts +34 -0
  44. package/dist/config/match-policy-file.js +1 -0
  45. package/dist/config/match-policy-file.spec.d.ts +1 -0
  46. package/dist/config/match-policy-file.spec.js +1 -0
  47. package/dist/config/rule-engine.d.ts +5 -5
  48. package/dist/config/rule-engine.js +1 -1
  49. package/dist/config/runtime.d.ts +0 -1
  50. package/dist/config/runtime.js +1 -1
  51. package/dist/config/severity.d.ts +0 -2
  52. package/dist/config/severity.js +1 -1
  53. package/dist/config/store-policy.spec.js +1 -1
  54. package/dist/config/template-params.d.ts +42 -0
  55. package/dist/config/template-params.js +1 -0
  56. package/dist/config/template-params.spec.d.ts +1 -0
  57. package/dist/config/template-params.spec.js +1 -0
  58. package/dist/data/api/api.spec.js +1 -1
  59. package/dist/data/api/server.js +1 -1
  60. package/dist/data/projection/store.d.ts +2 -1
  61. package/dist/data/projection/store.js +1 -1
  62. package/dist/data/projection/types.d.ts +22 -0
  63. package/dist/data/sync/cdc.d.ts +1 -2
  64. package/dist/data/sync/cdc.js +1 -1
  65. package/dist/evaluation/acceptance.d.ts +8 -0
  66. package/dist/evaluation/acceptance.js +1 -1
  67. package/dist/evaluation/builtins/demand-match.js +1 -1
  68. package/dist/evaluation/builtins/graph-service.spec.js +1 -1
  69. package/dist/evaluation/capability.d.ts +2 -0
  70. package/dist/evaluation/category-match-rules.d.ts +0 -1
  71. package/dist/evaluation/category-match-rules.js +1 -1
  72. package/dist/evaluation/composer.d.ts +25 -0
  73. package/dist/evaluation/composer.js +1 -1
  74. package/dist/evaluation/engine.js +1 -1
  75. package/dist/evaluation/extract.d.ts +7 -0
  76. package/dist/evaluation/extract.js +1 -1
  77. package/dist/evaluation/game-strategy.d.ts +0 -3
  78. package/dist/evaluation/game-strategy.js +1 -1
  79. package/dist/evaluation/match-operation.d.ts +9 -0
  80. package/dist/evaluation/match-operation.js +1 -1
  81. package/dist/evaluation/match-policy-resolver.d.ts +9 -0
  82. package/dist/evaluation/match-policy-resolver.js +1 -0
  83. package/dist/evaluation/match-policy.d.ts +3 -1
  84. package/dist/evaluation/match-policy.js +1 -1
  85. package/dist/evaluation/region.d.ts +0 -6
  86. package/dist/evaluation/region.js +1 -1
  87. package/dist/evaluation/standards.d.ts +2 -1
  88. package/dist/evaluation/standards.js +1 -1
  89. package/dist/evaluation/structured-lines.d.ts +8 -0
  90. package/dist/evaluation/structured-lines.js +1 -0
  91. package/dist/evaluation/types.d.ts +6 -0
  92. package/dist/experience/realtime-feedback.js +1 -1
  93. package/dist/extensions/capability-manifest.d.ts +1 -0
  94. package/dist/extensions/capability-manifest.js +1 -1
  95. package/dist/extensions/capability.d.ts +91 -0
  96. package/dist/extensions/capability.js +1 -0
  97. package/dist/extensions/industry-audit.spec.js +1 -1
  98. package/dist/extensions/industry-pack.d.ts +13 -0
  99. package/dist/extensions/industry-pack.js +1 -1
  100. package/dist/extensions/modes.js +1 -1
  101. package/dist/extensions/registry.d.ts +0 -2
  102. package/dist/extensions/registry.js +1 -1
  103. package/dist/goal/GoalEngine.js +1 -1
  104. package/dist/graph/onchain/analyze.js +1 -1
  105. package/dist/graph/onchain/expand.js +1 -1
  106. package/dist/graph/onchain/exposure.js +1 -1
  107. package/dist/graph/onchain/facts.js +1 -1
  108. package/dist/graph/onchain/order-status.d.ts +0 -1
  109. package/dist/graph/onchain/order-status.js +1 -1
  110. package/dist/harness/recover.js +1 -1
  111. package/dist/harness/verify.d.ts +0 -3
  112. package/dist/harness/verify.js +1 -1
  113. package/dist/intent/types.d.ts +0 -1
  114. package/dist/intent/types.js +1 -1
  115. package/dist/keeper/detectors.js +1 -1
  116. package/dist/keeper/types.d.ts +0 -1
  117. package/dist/keeper/types.js +1 -1
  118. package/dist/knowledge/allocation-risk.d.ts +1 -0
  119. package/dist/knowledge/allocation-risk.js +1 -1
  120. package/dist/knowledge/allocator-rail-verifier.d.ts +6 -1
  121. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  122. package/dist/knowledge/arbitration-ledger.js +1 -1
  123. package/dist/knowledge/arbitration-puzzle.js +1 -1
  124. package/dist/knowledge/arbitration-templates.js +1 -1
  125. package/dist/knowledge/audit-rules.d.ts +4 -3
  126. package/dist/knowledge/audit-rules.js +1 -1
  127. package/dist/knowledge/baselines/judgment-baselines.json +21 -2
  128. package/dist/knowledge/baselines/rules/oracle.json +120 -0
  129. package/dist/knowledge/baselines/rules/plan.json +384 -17
  130. package/dist/knowledge/baselines/rules/progress.json +20 -2
  131. package/dist/knowledge/builtin-templates.d.ts +28 -1
  132. package/dist/knowledge/builtin-templates.js +1 -1
  133. package/dist/knowledge/component-schema.js +1 -1
  134. package/dist/knowledge/contact-templates.d.ts +0 -1
  135. package/dist/knowledge/contact-templates.js +1 -1
  136. package/dist/knowledge/dynamic-pricing.js +1 -1
  137. package/dist/knowledge/fee-param-bindings.js +1 -1
  138. package/dist/knowledge/fund-layer.d.ts +1 -0
  139. package/dist/knowledge/fund-layer.js +1 -1
  140. package/dist/knowledge/game-scenarios.js +1 -1
  141. package/dist/knowledge/getting-started.js +1 -1
  142. package/dist/knowledge/guard-binding-table.d.ts +52 -0
  143. package/dist/knowledge/guard-binding-table.js +1 -0
  144. package/dist/knowledge/guard-binding-verifier.d.ts +30 -0
  145. package/dist/knowledge/guard-binding-verifier.js +1 -0
  146. package/dist/knowledge/guard-bindings.js +1 -1
  147. package/dist/knowledge/guard-blueprint.d.ts +68 -0
  148. package/dist/knowledge/guard-blueprint.js +1 -0
  149. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  150. package/dist/knowledge/guard-design-patterns.js +1 -1
  151. package/dist/knowledge/guard-field-cognition.js +1 -1
  152. package/dist/knowledge/guard-host-context.d.ts +24 -0
  153. package/dist/knowledge/guard-host-context.js +1 -0
  154. package/dist/knowledge/guard-lint.js +1 -1
  155. package/dist/knowledge/guard-node-gates.d.ts +3 -0
  156. package/dist/knowledge/guard-node-gates.js +1 -1
  157. package/dist/knowledge/guard-puzzle.js +1 -1
  158. package/dist/knowledge/guard-render.js +1 -1
  159. package/dist/knowledge/guard-risk.js +1 -1
  160. package/dist/knowledge/guard-submission-prompt.d.ts +11 -0
  161. package/dist/knowledge/guard-submission-prompt.js +1 -1
  162. package/dist/knowledge/guard-templates.d.ts +1 -1
  163. package/dist/knowledge/guard-templates.js +1 -1
  164. package/dist/knowledge/guard-translation.js +1 -1
  165. package/dist/knowledge/index.d.ts +1 -1
  166. package/dist/knowledge/index.js +1 -1
  167. package/dist/knowledge/industry-generalizer.d.ts +6 -1
  168. package/dist/knowledge/industry-generalizer.js +1 -1
  169. package/dist/knowledge/industry-registry.js +1 -1
  170. package/dist/knowledge/jsonrpc-enum.d.ts +38 -0
  171. package/dist/knowledge/jsonrpc-enum.js +1 -1
  172. package/dist/knowledge/machine-topology.js +1 -1
  173. package/dist/knowledge/machine-translation.js +1 -1
  174. package/dist/knowledge/object-dependency.d.ts +31 -0
  175. package/dist/knowledge/object-dependency.js +1 -0
  176. package/dist/knowledge/onchain-constants.d.ts +2 -0
  177. package/dist/knowledge/onchain-constants.js +1 -1
  178. package/dist/knowledge/param-schema.d.ts +23 -0
  179. package/dist/knowledge/param-schema.js +1 -1
  180. package/dist/knowledge/param-tiers.js +1 -1
  181. package/dist/knowledge/passport-ledger.js +1 -1
  182. package/dist/knowledge/path-oracle/coverage.d.ts +16 -0
  183. package/dist/knowledge/path-oracle/coverage.js +1 -0
  184. package/dist/knowledge/path-oracle/index.d.ts +5 -0
  185. package/dist/knowledge/path-oracle/index.js +1 -0
  186. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +2 -0
  187. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -0
  188. package/dist/knowledge/path-oracle/schema.d.ts +188 -0
  189. package/dist/knowledge/path-oracle/schema.js +1 -0
  190. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  191. package/dist/knowledge/pattern-resolutions.js +1 -1
  192. package/dist/knowledge/progress-ledger.js +1 -1
  193. package/dist/knowledge/progress-risk.js +1 -1
  194. package/dist/knowledge/projection.spec.js +1 -1
  195. package/dist/knowledge/protocol-facts.js +1 -1
  196. package/dist/knowledge/requirement-families.d.ts +13 -0
  197. package/dist/knowledge/requirement-families.js +1 -0
  198. package/dist/knowledge/reward-ledger.js +1 -1
  199. package/dist/knowledge/scenario-modes.d.ts +1 -0
  200. package/dist/knowledge/scenario-modes.js +1 -1
  201. package/dist/knowledge/semantic-ir.d.ts +4 -0
  202. package/dist/knowledge/semantic-ir.js +1 -1
  203. package/dist/knowledge/service-ledger.d.ts +1 -1
  204. package/dist/knowledge/service-ledger.js +1 -1
  205. package/dist/knowledge/sku-name-gate.d.ts +17 -0
  206. package/dist/knowledge/sku-name-gate.js +1 -0
  207. package/dist/knowledge/supply-chain.d.ts +9 -0
  208. package/dist/knowledge/supply-chain.js +1 -1
  209. package/dist/knowledge/template-loader.d.ts +14 -6
  210. package/dist/knowledge/template-loader.js +1 -1
  211. package/dist/knowledge/template-nav.d.ts +3 -1
  212. package/dist/knowledge/template-nav.js +1 -1
  213. package/dist/knowledge/template-prose.d.ts +1 -1
  214. package/dist/knowledge/template-registry.js +1 -1
  215. package/dist/knowledge/template-scanner.d.ts +62 -0
  216. package/dist/knowledge/template-scanner.js +1 -1
  217. package/dist/knowledge/template-test-profiles.js +1 -1
  218. package/dist/knowledge/tools-reference.js +1 -1
  219. package/dist/knowledge/workflow-guidance.d.ts +5 -0
  220. package/dist/knowledge/workflow-guidance.js +1 -1
  221. package/dist/monitor/MonitorLoop.js +1 -1
  222. package/dist/participation/customer-interest.d.ts +4 -0
  223. package/dist/participation/customer-interest.js +1 -1
  224. package/dist/participation/node-action-advisor.d.ts +4 -0
  225. package/dist/participation/node-action-advisor.js +1 -1
  226. package/dist/participation/radar-core.js +1 -1
  227. package/dist/participation/time-window.d.ts +11 -0
  228. package/dist/participation/time-window.js +1 -1
  229. package/dist/persona/address-format.d.ts +0 -1
  230. package/dist/persona/address-format.js +1 -1
  231. package/dist/persona/bridge.js +1 -1
  232. package/dist/persona/index.d.ts +0 -2
  233. package/dist/persona/index.js +1 -1
  234. package/dist/persona/model.js +1 -1
  235. package/dist/persona/persona-audit.spec.js +1 -1
  236. package/dist/persona/types.d.ts +6 -0
  237. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  238. package/dist/playbooks/service-build/game-theory.d.ts +2 -2
  239. package/dist/playbooks/service-build/intent-analyzer.js +1 -1
  240. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  241. package/dist/playbooks/service-build/merchant-guide.d.ts +50 -23
  242. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  243. package/dist/playbooks/service-build/migration-planner.d.ts +2 -0
  244. package/dist/playbooks/service-build/migration-planner.js +1 -1
  245. package/dist/playbooks/service-build/mode-actions.js +1 -1
  246. package/dist/playbooks/service-build/object-panorama.d.ts +8 -0
  247. package/dist/playbooks/service-build/object-panorama.js +1 -1
  248. package/dist/playbooks/service-build/participation-radar.js +1 -1
  249. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  250. package/dist/playbooks/service-build/reverse-mapping.d.ts +6 -0
  251. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  252. package/dist/playbooks/service-build/service-panorama.d.ts +1 -0
  253. package/dist/playbooks/service-build/service-panorama.js +1 -1
  254. package/dist/playbooks/service-build/service-quote.js +1 -1
  255. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  256. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +10 -1
  257. package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
  258. package/dist/review/index.js +1 -1
  259. package/dist/review/repository.js +1 -1
  260. package/dist/safety/confirm-gate.js +1 -1
  261. package/dist/schema/benchmark-migration/index.d.ts +104 -0
  262. package/dist/schema/benchmark-migration/index.js +1 -1
  263. package/dist/schema/call/allocation.d.ts +15 -6
  264. package/dist/schema/call/allocation.js +1 -1
  265. package/dist/schema/call/base.d.ts +256 -0
  266. package/dist/schema/call/base.js +1 -1
  267. package/dist/schema/call/bridge.d.ts +32 -6
  268. package/dist/schema/call/demand.d.ts +15 -6
  269. package/dist/schema/call/demand.js +1 -1
  270. package/dist/schema/call/guard.d.ts +8 -8
  271. package/dist/schema/call/guard.js +1 -1
  272. package/dist/schema/call/handler.d.ts +3 -0
  273. package/dist/schema/call/handler.js +1 -1
  274. package/dist/schema/call/machine.d.ts +32 -8
  275. package/dist/schema/call/machine.js +1 -1
  276. package/dist/schema/call/order.d.ts +26 -8
  277. package/dist/schema/call/order.js +1 -1
  278. package/dist/schema/call/payment.d.ts +20 -8
  279. package/dist/schema/call/payment.js +1 -1
  280. package/dist/schema/call/permission-handler.js +1 -1
  281. package/dist/schema/call/permission.d.ts +330 -114
  282. package/dist/schema/call/permission.js +1 -1
  283. package/dist/schema/call/personal.d.ts +10 -4
  284. package/dist/schema/call/personal.js +1 -1
  285. package/dist/schema/call/progress.d.ts +16 -4
  286. package/dist/schema/call/proof.js +1 -1
  287. package/dist/schema/call/reward.d.ts +10 -4
  288. package/dist/schema/call/reward.js +1 -1
  289. package/dist/schema/call/semantic.d.ts +1 -0
  290. package/dist/schema/call/semantic.js +1 -1
  291. package/dist/schema/call/service.d.ts +143 -45
  292. package/dist/schema/call/service.js +1 -1
  293. package/dist/schema/call/treasury.d.ts +15 -6
  294. package/dist/schema/call/treasury.js +1 -1
  295. package/dist/schema/common/index.js +1 -1
  296. package/dist/schema/config/index.d.ts +61 -0
  297. package/dist/schema/config/index.js +1 -1
  298. package/dist/schema/envelope-unify.d.ts +4 -0
  299. package/dist/schema/envelope-unify.js +1 -0
  300. package/dist/schema/evaluation/index.d.ts +216 -19
  301. package/dist/schema/evaluation/index.js +1 -1
  302. package/dist/schema/goal/index.d.ts +47 -0
  303. package/dist/schema/goal/planning.d.ts +115 -1
  304. package/dist/schema/goal/planning.js +1 -1
  305. package/dist/schema/industry-pack/index.d.ts +137 -6
  306. package/dist/schema/industry-pack/index.js +1 -1
  307. package/dist/schema/industry-pack/modes.d.ts +6 -6
  308. package/dist/schema/keeper/index.d.ts +26 -0
  309. package/dist/schema/local/index.d.ts +137 -0
  310. package/dist/schema/local/index.js +1 -1
  311. package/dist/schema/local/wip.d.ts +6 -0
  312. package/dist/schema/local/wip.js +1 -1
  313. package/dist/schema/messenger/index.d.ts +26 -0
  314. package/dist/schema/operations.d.ts +345 -84
  315. package/dist/schema/operations.js +1 -1
  316. package/dist/schema/persona/index.d.ts +2907 -640
  317. package/dist/schema/persona/index.js +1 -1
  318. package/dist/schema/query/bi.d.ts +145 -4
  319. package/dist/schema/query/bi.js +1 -1
  320. package/dist/schema/query/index.d.ts +266 -73
  321. package/dist/schema/query/index.js +1 -1
  322. package/dist/schema/schema-query/index.d.ts +1 -1
  323. package/dist/schema/schema-query/index.js +1 -1
  324. package/dist/schema/schema-version.js +1 -1
  325. package/dist/schema/utils/permission-machine-check.d.ts +2 -0
  326. package/dist/schema/utils/permission-machine-check.js +1 -1
  327. package/dist/schema/watch/index.d.ts +16 -0
  328. package/dist/schema/watch/index.js +1 -1
  329. package/dist/schema/workflow/index.d.ts +2 -2
  330. package/dist/schema/workflow/index.js +1 -1
  331. package/dist/schema-query-impl/index.d.ts +1 -1
  332. package/dist/schema-query-impl/index.js +1 -1
  333. package/dist/schemas/account_operation.output.json +94 -0
  334. package/dist/schemas/benchmark_migration_operation.output.json +338 -9
  335. package/dist/schemas/benchmark_migration_operation.schema.json +27 -2
  336. package/dist/schemas/bridge_operation.output.json +94 -0
  337. package/dist/schemas/config_operation.output.json +352 -0
  338. package/dist/schemas/config_operation.schema.json +20 -2
  339. package/dist/schemas/evaluation_operation.output.json +570 -4
  340. package/dist/schemas/evaluation_operation.schema.json +194 -3
  341. package/dist/schemas/goal_operation.schema.json +183 -0
  342. package/dist/schemas/index.json +1 -1
  343. package/dist/schemas/industry_pack_operation.output.json +621 -0
  344. package/dist/schemas/industry_pack_operation.schema.json +20 -2
  345. package/dist/schemas/keeper_operation.output.json +94 -0
  346. package/dist/schemas/local_cache_operation.output.json +94 -0
  347. package/dist/schemas/local_history_operation.output.json +94 -0
  348. package/dist/schemas/local_info_operation.output.json +94 -0
  349. package/dist/schemas/local_mark_operation.output.json +94 -0
  350. package/dist/schemas/messenger_operation.output.json +94 -0
  351. package/dist/schemas/monitor_events.output.json +94 -0
  352. package/dist/schemas/monitor_subscription.output.json +94 -0
  353. package/dist/schemas/onchain_events.output.json +94 -0
  354. package/dist/schemas/onchain_operations.output.json +313 -1
  355. package/dist/schemas/onchain_operations.schema.json +1265 -671
  356. package/dist/schemas/onchain_operations_allocation.schema.json +30 -15
  357. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -2
  358. package/dist/schemas/onchain_operations_contact.schema.json +8 -1
  359. package/dist/schemas/onchain_operations_demand.schema.json +29 -14
  360. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -1
  361. package/dist/schemas/onchain_operations_guard.schema.json +290 -105
  362. package/dist/schemas/onchain_operations_machine.schema.json +49 -34
  363. package/dist/schemas/onchain_operations_order.schema.json +63 -40
  364. package/dist/schemas/onchain_operations_payment.schema.json +26 -11
  365. package/dist/schemas/onchain_operations_permission.schema.json +362 -235
  366. package/dist/schemas/onchain_operations_personal.schema.json +27 -15
  367. package/dist/schemas/onchain_operations_progress.schema.json +45 -30
  368. package/dist/schemas/onchain_operations_proof.schema.json +9 -2
  369. package/dist/schemas/onchain_operations_repository.schema.json +8 -1
  370. package/dist/schemas/onchain_operations_reward.schema.json +32 -17
  371. package/dist/schemas/onchain_operations_service.schema.json +232 -125
  372. package/dist/schemas/onchain_operations_treasury.schema.json +32 -17
  373. package/dist/schemas/onchain_table_data.output.json +258 -6
  374. package/dist/schemas/onchain_table_data.schema.json +92 -52
  375. package/dist/schemas/persona_operation.output.json +7752 -0
  376. package/dist/schemas/persona_operation.schema.json +1232 -4
  377. package/dist/schemas/query_toolkit.output.json +756 -116
  378. package/dist/schemas/query_toolkit.schema.json +138 -7
  379. package/dist/schemas/schema_query.schema.json +1 -1
  380. package/dist/schemas/watch_operation.output.json +83 -0
  381. package/dist/schemas/wip_file.output.json +8 -0
  382. package/dist/schemas/workflow_operation.schema.json +2 -2
  383. package/dist/tools/handlers/benchmark-migration.d.ts +20 -3
  384. package/dist/tools/handlers/benchmark-migration.js +1 -1
  385. package/dist/tools/handlers/config.js +1 -1
  386. package/dist/tools/handlers/evaluation.js +1 -1
  387. package/dist/tools/handlers/evaluation.spec.js +1 -1
  388. package/dist/tools/handlers/industry-pack.js +1 -1
  389. package/dist/tools/handlers/onchain.d.ts +30 -0
  390. package/dist/tools/handlers/onchain.js +1 -1
  391. package/dist/tools/handlers/persona.js +1 -1
  392. package/dist/tools/handlers/query.d.ts +8 -0
  393. package/dist/tools/handlers/query.js +1 -1
  394. package/dist/tools/handlers/winner-derivation.d.ts +20 -0
  395. package/dist/tools/handlers/winner-derivation.js +1 -0
  396. package/dist/tools/handlers/wip-upload.js +1 -1
  397. package/dist/tools/index.d.ts +1 -0
  398. package/dist/tools/index.js +1 -1
  399. package/dist/tools/registry/business.js +1 -1
  400. package/dist/tools/registry/config.js +1 -1
  401. package/dist/tools/registry/evaluation.js +1 -1
  402. package/dist/tools/registry/identity.js +1 -1
  403. package/dist/tools/registry/query.js +1 -1
  404. package/dist/tools/transport-integrity.d.ts +7 -0
  405. package/dist/tools/transport-integrity.js +1 -0
  406. package/dist/tools/upgrade-check.js +1 -1
  407. package/dist/tools/wrap.d.ts +5 -0
  408. package/dist/tools/wrap.js +1 -1
  409. package/package.json +2 -2
  410. package/dist/extensions/business-modules.d.ts +0 -54
  411. package/dist/extensions/business-modules.js +0 -1
  412. package/dist/schemas/guard-templates.json +0 -379
@@ -1 +1 @@
1
- import{getJudgmentDoc}from'../config/judgment.js';import{evaluateRuleBook}from'../config/rule-engine.js';import{isPathDependentTimeQuery}from'../chain-semantics/index.js';import{MAX_INDEMNITY_MULTIPLE,TASK_BINDING_SLOT}from'../knowledge/onchain-constants.js';import{numericAmount}from'../knowledge/audit-rules.js';import{createsOf,isRef,refsOf,validatePlan}from'./plan.js';function collectQueries(a,b=[]){if(Array['isArray'](a)){for(const c of a)collectQueries(c,b);}else{if(typeof a==='object'&&a!==null){const d=a;d['type']==='query'&&typeof d['query']==='string'&&b['push']({'query':d['query']});for(const e of Object['values'](d))collectQueries(e,b);}}return b;}function acceptedProgressNodes(a,b){const c=new Map();if(Array['isArray'](b))for(const g of b){if(typeof g==='object'&&g!==null){const h=g;typeof h['identifier']==='number'&&typeof h['value']==='string'&&c['set'](h['identifier'],h['value']);}}const d=i=>{if(typeof i!=='object'||i===null)return undefined;const j=i;if(j['type']==='constant'&&typeof j['value']==='string')return j['value'];if(j['type']==='identifier'&&typeof j['identifier']==='number')return c['get'](j['identifier']);return undefined;},e=[],f=i=>{if(Array['isArray'](i)){for(const n of i)f(n);return;}if(typeof i!=='object'||i===null)return;const j=i,k=Array['isArray'](j['nodes'])?j['nodes']:undefined,l=k?.[0x0]??j['left'],m=k?.[0x1]??j['right'];if(typeof j['type']==='string'&&j['type']['startsWith']('logic')&&typeof l==='object'&&l!==null&&l['type']==='query'&&l['query']==='progress.current'){const o=d(m);if(o!==undefined)e['push'](o);}for(const p of Object['values'](j))f(p);};return f(a),e;}const REPO_WHERE_QUERY_TYPES=new Set(['query_repository_data_count_where','query_repository_data_sum_where','query_repository_data_sum_where_bound','query_repository_data_find_where']);function collectRepoWhereQueries(a,b=[]){if(Array['isArray'](a)){for(const c of a)collectRepoWhereQueries(c,b);}else{if(typeof a==='object'&&a!==null){const d=a;typeof d['type']==='string'&&REPO_WHERE_QUERY_TYPES['has'](d['type'])&&b['push'](d);for(const e of Object['values'](d))collectRepoWhereQueries(e,b);}}return b;}function isRepoDataHasRef(a){if(a['type']==='query'){const c=a['query'];if(typeof c==='string'&&c['trim']()['toLowerCase']()==='repository.data\x20has')return!![];if(c===0x48e||c==='1166')return!![];}const b=a['type'];return typeof b==='string'&&b['toLowerCase']()==='query_repository_data_has';}function subtreeRefsRepoDataHas(a){if(Array['isArray'](a))return a['some'](subtreeRefsRepoDataHas);if(typeof a!=='object'||a===null)return![];const b=a;if(isRepoDataHasRef(b))return!![];return Object['values'](b)['some'](subtreeRefsRepoDataHas);}function rootNegatesRepoDataHas(a){if(Array['isArray'](a))return a['some'](rootNegatesRepoDataHas);if(typeof a!=='object'||a===null)return![];const b=a;if(b['type']==='logic_not'&&subtreeRefsRepoDataHas(b['node']))return!![];return Object['values'](b)['some'](rootNegatesRepoDataHas);}function staticStringOperand(a,b){if(typeof a!=='object'||a===null)return undefined;const c=a;if(typeof c['identifier']==='number'){const d=b['find'](e=>typeof e==='object'&&e!==null&&e['identifier']===c['identifier']);if(d===undefined||d['b_submission']===!![])return undefined;return typeof d['value']==='string'?d['value']:undefined;}return typeof c['value']==='string'?c['value']:undefined;}function isPlanLocalObjectOperand(a,b){if(typeof a!=='object'||a===null)return![];const c=a;if(typeof c['identifier']!=='number')return![];const d=b['find'](f=>typeof f==='object'&&f!==null&&f['identifier']===c['identifier']);if(d===undefined||d['b_submission']===!![])return![];const e=d['value'];if(typeof e==='object'&&e!==null)return!![];return typeof e==='string'&&e['startsWith']('$');}const REACH_GREATER_TYPES={'logic_as_u256_greater':'gt','logic_as_u256_greater_or_equal':'ge'},REACH_LESSER_TYPES={'logic_as_u256_lesser':'lt','logic_as_u256_lesser_or_equal':'le'},REACH_EQUAL_TYPES=new Set(['logic_as_u256_equal','logic_equal']);function reachChannel(a){if(a['type']==='context'&&typeof a['context']==='string')return'context:'+a['context'];const b=a['query'];if(a['type']==='query'&&(typeof b==='string'||typeof b==='number'))return'query:'+String(b)['trim']()['toLowerCase']();return undefined;}function reachConstant(a,b){const c=d=>typeof d==='string'||typeof d==='number'||typeof d==='boolean';if(a['type']==='identifier'&&typeof a['identifier']==='number'){const d=b['find'](e=>typeof e==='object'&&e!==null&&e['identifier']===a['identifier']);if(d===undefined||d['b_submission']===!![])return undefined;return c(d['value'])?d['value']:undefined;}if(a['type']==='constant')return c(a['value'])?a['value']:undefined;return undefined;}function flattenAndChain(a,b=[]){if(typeof a!=='object'||a===null)return b;const c=a;if(c['type']==='logic_and'){const d=Array['isArray'](c['nodes'])?c['nodes']:Array['isArray'](c['and'])?c['and']:[];for(const e of d)flattenAndChain(e,b);return b;}return b['push'](c),b;}function reachLegsOf(a){const b=Array['isArray'](a['params']['table'])?a['params']['table']:[],c=a['params']['root']??a['params']['logic'],d={'legs':[],'selfStrict':[]};if(typeof c!=='object'||c===null)return d;for(const e of flattenAndChain(c)){const f=typeof e['type']==='string'?e['type']:'',g=Array['isArray'](e['nodes'])?e['nodes']:undefined;if(g===undefined||g['length']<0x2)continue;const h=REACH_GREATER_TYPES[f],j=REACH_LESSER_TYPES[f],k=REACH_EQUAL_TYPES['has'](f);if(h===undefined&&j===undefined&&!k)continue;const l=g[0x0];if(typeof l!=='object'||l===null)continue;const m=reachChannel(l),n=reachConstant(l,b);for(let o=0x1;o<g['length'];o++){const p=g[o];if(typeof p!=='object'||p===null)continue;const q=reachConstant(p,b),r=reachChannel(p);if(m!==undefined&&q!==undefined)d['legs']['push']({'channel':m,'dir':k?'eq':h??j,'constant':q});else{if(r!==undefined&&n!==undefined){const s=k?'eq':h!==undefined?h==='gt'?'lt':'le':j==='lt'?'gt':'ge';d['legs']['push']({'channel':r,'dir':s,'constant':n});}else m!==undefined&&r!==undefined&&(m===r&&(h==='gt'||j==='lt')&&d['selfStrict']['push']({'channel':m,'dir':h==='gt'?'gt':'lt'}));}}}return d;}function reachNumeric(a){if(typeof a==='number')return Number['isFinite'](a)?a:undefined;if(typeof a==='string'&&a['trim']()!==''&&!Number['isNaN'](Number(a)))return Number(a);return undefined;}function findReachContradictions(c,f,g=[]){const h=[];for(const l of g){h['push']('guard\x20\x27'+c+'\x27\x20('+l['channel']+'):\x20'+(l['dir']==='gt'?'>':'<')+'\x20itself\x20—\x20'+'unsatisfiable\x20(same-binding\x20self-comparison)');}const k=new Map();for(const m of f){const n=k['get'](m['channel'])??[];n['push'](m),k['set'](m['channel'],n);}for(const [o,p]of k){const q=p['filter'](v=>v['dir']==='gt'||v['dir']==='ge'),r=p['filter'](v=>v['dir']==='lt'||v['dir']==='le');for(const v of q){const w=reachNumeric(v['constant']);if(w===undefined)continue;for(const x of r){const y=reachNumeric(x['constant']);if(y===undefined)continue;(w>y||w===y&&(v['dir']==='gt'||x['dir']==='lt'))&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20'+(v['dir']==='gt'?'>':'>=')+'\x20'+String(v['constant'])+'\x20'+('contradicts\x20'+(x['dir']==='lt'?'<':'<=')+'\x20'+String(x['constant'])+'\x20—\x20unsatisfiable'));}}const t=p['filter'](z=>z['dir']==='eq');for(let z=0x0;z<t['length'];z++){for(let A=z+0x1;A<t['length'];A++){const B=t[z],C=t[A],D=reachNumeric(B['constant']),E=reachNumeric(C['constant']),F=typeof B['constant']==='boolean'&&typeof C['constant']==='boolean'&&B['constant']!==C['constant'],G=D!==undefined&&E!==undefined&&D!==E;(F||G)&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(B['constant'])+'\x20'+('contradicts\x20==\x20'+String(C['constant'])+'\x20—\x20unsatisfiable'));}}for(const H of t){const I=reachNumeric(H['constant']);if(I===undefined)continue;for(const J of q){J['dir']==='gt'&&reachNumeric(J['constant'])===I&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(H['constant'])+'\x20'+('contradicts\x20>\x20'+String(J['constant'])+'\x20—\x20unsatisfiable'));}for(const K of r){K['dir']==='lt'&&reachNumeric(K['constant'])===I&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(H['constant'])+'\x20'+('contradicts\x20<\x20'+String(K['constant'])+'\x20—\x20unsatisfiable'));}}}return h;}function guardProjection(a){const b=a['params']['root']??a['params']['logic'],c=collectQueries(b)['map'](d=>d['query']);return{'stepId':a['id'],'queries':c,'acceptedNodes':acceptedProgressNodes(b,a['params']['table']),'table':Array['isArray'](a['params']['table'])?a['params']['table']:[]};}function allocatorRows(a){const b=[],c=d=>{if(typeof d==='object'&&d!==null&&!Array['isArray'](d)){const e=d;if(Array['isArray'](e['allocators']))d=e['allocators'];}if(!Array['isArray'](d))return;for(const f of d){if(typeof f!=='object'||f===null)continue;const g=f,h=g['guard'],i=g['guard_key'],j=Array['isArray'](g['sharing'])?g['sharing']:[],k=j['map'](l=>typeof l==='object'&&l!==null?l['who']:undefined)['map'](l=>typeof l==='object'&&l!==null?l['GuardIdentifier']:undefined)['filter'](l=>typeof l==='number');b['push']({'track':typeof g['track']==='string'?g['track']:'settlement','guardStep':isRef(h)?h['$ref']:undefined,'guardKey':typeof i==='string'?i:undefined,'identifierLegs':k});}};for(const d of a['steps']){if(d['op']==='create'&&d['object']==='service')c(d['params']['order_allocators']);if(d['op']==='configure'&&d['method']==='order_allocators')c(d['params']['allocators']);}return b;}function machineProjection(a){const b=createsOf(a,'machine')[0x0];if(b===undefined)return undefined;const c=b['params']['nodes'];if(!Array['isArray'](c))return{'nodes':[],'edges':[],'terminals':[],'optionalNodes':[],'forwardGuardRefs':[]};const d=[],e=[],f=[],h=[];for(const k of c){if(typeof k!=='object'||k===null)continue;const l=k,m=typeof l['name']==='string'?l['name']:undefined;if(m===undefined)continue;d['push'](m);if(l['optional']===!![])f['push'](m);const n=Array['isArray'](l['pairs'])?l['pairs']:[];for(const o of n){const q=o,r=q?.['prev_node'],s=Array['isArray'](q?.['forwards'])?q['forwards']:[],t=[];for(const u of s){const v=u?.['guard'];isRef(v)&&(t['push'](v['$ref']),h['push'](v['$ref']));}if(typeof r==='string')e['push']({'prev':r,'next':m,'guards':t});}}const i=b['params']['pairs'];if(Array['isArray'](i))for(const w of i){const x=w;if(typeof x?.['prev_node']==='string'&&typeof x?.['next_node']==='string'){const y=Array['isArray'](x['forwards'])?x['forwards']:[],z=[];for(const A of y){const B=A?.['guard'];isRef(B)&&(z['push'](B['$ref']),h['push'](B['$ref']));}e['push']({'prev':x['prev_node'],'next':x['next_node'],'guards':z});}}const j=new Set(e['filter'](C=>C['prev']!==''&&C['prev']!==C['next'])['map'](C=>C['prev']));return{'nodes':d,'edges':e,'terminals':d['filter'](C=>!j['has'](C)),'optionalNodes':f,'forwardGuardRefs':h};}function pathCountCap2(a,b){const c=new Map();for(const g of a){const h=c['get'](g['prev'])??[];h['push'](g['next']),c['set'](g['prev'],h);}let d=0x0;const f=(i,j)=>{if(d>=0x2)return;if(i===b){d+=0x1;return;}if(j['has'](i))return;const k=new Set(j)['add'](i);for(const l of c['get'](i)??[])f(l,k);};for(const i of c['get']('')??[])f(i,new Set());return d;}const WRITE_ONLY_ENFORCEMENT_SOURCES=[{'object':'service','param':'customer_required','coverQuery':'order.required_info','extract':a=>Array['isArray'](a['params']['customer_required'])&&a['params']['customer_required']['length']>0x0},{'object':'service','param':'sales[].wip','coverQuery':'service.sale.wip','extract':a=>Array['isArray'](a['params']['sales'])&&a['params']['sales']['some'](b=>typeof b==='object'&&b!==null&&typeof b['wip']==='string'&&b['wip']['length']>0x0)}],PROSE_UNIT_MS={'minute':0xea60,'hour':0x36ee80,'hrs':0x36ee80,'hr':0x36ee80,'h':0x36ee80,'day':0x5265c00,'week':0x240c8400},PROSE_DURATION_RE=/(\d+)\s*[-\s]?\s*(minute|hour|hrs|hr|h|day|week)s?\b/gi,WINDOW_CONTEXT_RE=/review|accept|cancel|refund|return|window|claim|bounty|escrow|release|revision|dispute/i;function isPlausibleMsDuration(a){return Number['isFinite'](a)&&a>=0xea60&&a%0x3e8===0x0&&a<=0xa*0x16d*0x5265c00;}function formatMs(a){const b=a/0x5265c00;if(Number['isInteger'](b)&&b>=0x2)return b+'\x20days';const c=a/0x36ee80;if(Number['isInteger'](c)&&c>=0x2)return c+'\x20hours';return a/0xea60+'\x20minutes';}export function extractProseWindowPromises(a){const b=[];for(const c of a['matchAll'](PROSE_DURATION_RE)){const d=Number(c[0x1])*(PROSE_UNIT_MS[c[0x2]['toLowerCase']()]??NaN);if(!Number['isFinite'](d)||d<=0x0||c['index']===undefined)continue;const e=Math['max'](0x0,c['index']-0x50),f=Math['min'](a['length'],c['index']+c[0x0]['length']+0x50);if(!WINDOW_CONTEXT_RE['test'](a['slice'](e,f)))continue;b['push']({'ms':d,'quote':c[0x0]});}return b;}const UNANCHORED_RESTART_RE=/\b(?:restart|reset|renew|start(?:s)? again|begin(?:s)? again)[^.]{0,60}\b(?:window|timer|clock|period)\b|\b(?:window|timer|clock|period)\b[^.]{0,60}\b(?:restart|reset|renew)s?\b/i;function collectEnforcedWindowMs(a){const b=new Set();for(const c of createsOf(a,'guard')){const d=Array['isArray'](c['params']['table'])?c['params']['table']:[];for(const e of d){const f=e;if(f['b_submission']===!![]||f['value_type']!=='U64')continue;const g=f['value'],h=typeof g==='number'?g:typeof g==='string'&&g!==''&&!Number['isNaN'](Number(g))?Number(g):NaN;if(isPlausibleMsDuration(h))b['add'](h);}}return b;}const TIME_CMP_TYPES={'logic_as_u256_greater':'gt','logic_as_u256_greater_or_equal':'ge','logic_as_u256_lesser':'lt','logic_as_u256_lesser_or_equal':'le','logic_as_u256_equal':'eq','logic_equal':'eq'};function isClockContext(a){return a['type']==='context'&&a['context']==='Clock';}function subtreeHasBranch(a){if(Array['isArray'](a))return a['some'](subtreeHasBranch);if(typeof a!=='object'||a===null)return![];const b=a;if(b['type']==='logic_or'||b['type']==='logic_not')return!![];return Object['values'](b)['some'](subtreeHasBranch);}function guardWindowOpen(c){if(typeof c!=='object'||c===null)return!![];if(subtreeHasBranch(c))return!![];let d=![];for(const e of flattenAndChain(c)){const f=TIME_CMP_TYPES[typeof e['type']==='string'?e['type']:''];if(f===undefined)continue;const g=Array['isArray'](e['nodes'])?e['nodes']:undefined;if(g===undefined||g['length']<0x2)continue;const h=g[0x0],i=g[0x1];if(typeof h!=='object'||h===null||typeof i!=='object'||i===null)continue;const j=isClockContext(h),k=isClockContext(i);if(j&&!k){if(f==='lt'||f==='le'||f==='eq')d=!![];}else{if(!j&&k){const l=f==='gt'||f==='ge'?'lt':f==='lt'||f==='le'?'gt':'eq';if(l==='lt')d=!![];}}}return!d;}export function planFacts(a){const b=new Map(createsOf(a,'guard')['map'](as=>[as['id'],guardProjection(as)])),c=allocatorRows(a),d=machineProjection(a),f=createsOf(a,'service')['length']>0x0,h=createsOf(a,'repository')['length']>0x0,i=a['steps']['some'](as=>{if(!(as['op']==='create'&&as['object']==='service'||as['op']==='configure'&&as['method']==='sales'))return![];const at=as['params']['sales'];return Array['isArray'](at)&&at['length']>0x0;}),j=new Set();for(const as of c){const at=as['guardStep']===undefined?undefined:b['get'](as['guardStep']);for(const au of at?.['acceptedNodes']??[])j['add'](au);}const k=new Set(d?.['optionalNodes']??[]),l=(d?.['terminals']??[])['filter'](av=>!k['has'](av)),o=new Set(),q=new Set(c['map'](av=>av['guardStep'])['filter'](av=>av!==undefined));for(const av of d?.['edges']??[]){if(av['next']===''||av['guards']['length']===0x0)continue;for(const aw of av['guards']){if(!q['has'](aw))continue;if((b['get'](aw)?.['acceptedNodes']['length']??0x0)===0x0)o['add'](av['next']);}}const u=l['find'](ax=>!j['has'](ax)&&!o['has'](ax)),w=a['pending_guards']??[],x=w['filter'](ax=>ax['site']==='allocator')['length'],y=w['filter'](ax=>ax['site']==='allocator'||ax['site']==='machine_edge'),z=w['filter'](ax=>ax['site']==='service_buy'),A=y[0x0]?.['key'],B=z[0x0]?.['key'],C=d?.['nodes']['find'](ax=>/return/i['test'](ax)),D=a['steps']['some'](ax=>{if(ax['op']==='configure'&&ax['method']==='arbitrations'){const ay=ax['params']['objects'];return Array['isArray'](ay)&&ay['length']>0x0;}if(ax['op']==='create'&&ax['object']==='service'){const az=ax['params']['arbitrations'];return Array['isArray'](az)&&az['length']>0x0;}return![];});let E,F=![];for(const ax of a['steps']){if(ax['op']==='configure'&&ax['method']==='compensation_fund_add'){F=!![];const ay=numericAmount(ax['params']['balance']);if(ay!==undefined)E=(E??0x0)+ay;}}let G,H;const I=az=>{if(!Array['isArray'](az))return;for(const aA of az){const aB=numericAmount(aA?.['price']);aB!==undefined&&aB>0x0&&(G=Math['max'](G??0x0,aB),H=H===undefined?aB:Math['min'](H,aB));}};for(const az of a['steps']){if(az['op']==='create'&&az['object']==='service')I(az['params']['sales']);if(az['op']==='configure'&&az['method']==='sales')I(az['params']['sales']);}const J=E!==undefined&&G!==undefined,K=createsOf(a,'reward')['length']>0x0;let L,M;if(K)for(const aA of a['steps']){if(aA['op']==='configure'&&aA['method']==='guard_add'){const aB=aA['params']['amount'];if(aB!==undefined&&aB!==null&&aB['type']==='Fixed'){const aC=numericAmount(aB['value']);if(aC!==undefined)L=Math['max'](L??0x0,aC);}}if(aA['op']==='configure'&&aA['method']==='coin_add'&&/^reward/['test'](aA['id'])){const aD=numericAmount(aA['params']['coin']);if(aD!==undefined)M=(M??0x0)+aD;}}const N=L!==undefined&&H!==undefined,O=/^(arb\.indemnity|arb\.order|arb\.status|order\.dispute)/,P=/settled|refunded|reviewed|completed|closed|cancel/i;let Q;if(d!==undefined)for(const aE of d['edges']){if(aE['next']===''||aE['guards']['length']===0x0)continue;if(!P['test'](aE['prev']))continue;if(aE['guards']['some'](aF=>b['get'](aF)?.['queries']['some'](aG=>O['test'](aG)))){Q=aE['prev'];break;}}const R=Q!==undefined&&(!F||E===0x0),S=new Map();for(const aF of createsOf(a,'guard')){S['set'](aF['id'],aF['params']['root']??aF['params']['logic']);}const T=d?.['edges']??[],U=aG=>aG['guards']['length']===0x0||aG['guards']['every'](aH=>{const aI=S['get'](aH);return aI===undefined||guardWindowOpen(aI);});let V;for(const aG of T){if(aG['prev']!==''||aG['next']==='')continue;const aH=T['filter'](aI=>aI['prev']===aG['next']);if(aH['length']===0x0)continue;if(aH['every'](aI=>!U(aI)))V??=aG['next'];}const W=c['some'](aI=>aI['guardStep']===undefined&&aI['guardKey']!==undefined),X=T['filter'](aI=>aI['guards']['length']>0x0&&aI['guards']['some'](aJ=>b['get'](aJ)?.['queries']['some'](aK=>O['test'](aK))));let Y=![];if(X['length']>0x0&&!W){const aI=new Set(X['map'](aL=>aL['next'])['filter'](aL=>aL!=='')),aJ=new Set(X['flatMap'](aL=>aL['guards'])),aK=new Set();for(const aL of c){const aM=aL['guardStep']===undefined?undefined:b['get'](aL['guardStep']);if(aM===undefined)continue;if(aM['acceptedNodes']['length']>0x0){for(const aN of aM['acceptedNodes'])aK['add'](aN);}else for(const aO of T){aO['next']!==''&&aO['guards']['includes'](aL['guardStep'])&&aK['add'](aO['next']);}}for(const aP of c){const aQ=aP['guardStep']===undefined?undefined:b['get'](aP['guardStep']);if(aQ===undefined)continue;if(aQ['queries']['some'](aR=>O['test'](aR))||aJ['has'](aP['guardStep'])){Y=!![];break;}}if(!Y)for(const aR of aI){if(aK['has'](aR)){Y=!![];break;}}}const Z=X['length']>0x0&&!Y&&!W,a0=X[0x0]===undefined?undefined:X[0x0]['prev']!==''?X[0x0]['prev']:X[0x0]['next'],a1=[];for(const aS of a['steps']){const aT=aS['op']==='create'&&aS['object']==='service',aU=aS['op']==='configure'&&aS['method']==='sales';if(!aT&&!aU)continue;const aV=aS['params'];if(typeof aV['description']==='string')a1['push'](aV['description']);if(!Array['isArray'](aV['sales']))continue;for(const aW of aV['sales']){if(typeof aW!=='object'||aW===null)continue;for(const aX of Object['values'](aW)){if(typeof aX==='string')a1['push'](aX);}}}const a2=a1['flatMap'](aY=>extractProseWindowPromises(aY)),a3=collectEnforcedWindowMs(a),a4=a2['filter'](aY=>!a3['has'](aY['ms'])),a5=[];for(const aY of a1){const aZ=UNANCHORED_RESTART_RE['exec'](aY);if(aZ)a5['push'](aZ[0x0]);}const a6=c['filter'](b0=>b0['track']==='refund'),a7=a6['map'](b0=>b0['guardStep']===undefined?undefined:b['get'](b0['guardStep']))['find'](b0=>b0!==undefined&&!b0['queries']['some'](b1=>b1['startsWith']('order.claimed_by')))?.['stepId'],a8=new Map();for(const b0 of d?.['edges']??[]){for(const b1 of b0['guards']){const b2=a8['get'](b1)??[];if(b0['prev']!=='')b2['push'](b0['prev']);if(b0['next']!=='')b2['push'](b0['next']);a8['set'](b1,b2);}}let a9,aa=![];for(const b3 of b['values']()){if(b3['queries']['some'](isPathDependentTimeQuery)){a9??=b3['stepId'];if(d!==undefined){const b4=[...b3['acceptedNodes'],...a8['get'](b3['stepId'])??[]];for(const b5 of b4){if(pathCountCap2(d['edges'],b5)>=0x2){aa=!![],a9=b3['stepId'];break;}}}}if(aa)break;}const ab=[...b['values']()]['flatMap'](b6=>b6['queries']);let ac;for(const b6 of WRITE_ONLY_ENFORCEMENT_SOURCES){for(const b7 of createsOf(a,b6['object'])){if(b6['extract'](b7)&&!ab['some'](b8=>b8['startsWith'](b6['coverQuery']))){ac=b6['param'];break;}}if(ac!==undefined)break;}const ad=new Set();for(const b8 of a['steps']){if(b8['op']==='create'&&b8['object']==='guard')continue;const b9=refsOf(b8['op']==='publish'?b8['target']:b8['params']);for(const ba of b9)ad['add'](ba);if(b8['op']==='configure'){for(const bb of refsOf(b8['target']))ad['add'](bb);}}const ae=[...b['keys']()]['find'](bc=>!ad['has'](bc)),af=[...b['values']()]['find'](bc=>!h&&bc['queries']['some'](bd=>bd['startsWith']('repository.')))?.['stepId'];let ag;if(f&&d!==undefined)for(const bc of d['forwardGuardRefs']){const bd=b['get'](bc);if(bd===undefined)continue;const be=bd['table']['some'](bf=>bf['identifier']===TASK_BINDING_SLOT&&bf['b_submission']===!![]);if(!be){ag=bc;break;}}let ah;for(const bf of c){if(bf['guardStep']===undefined||bf['identifierLegs']['length']===0x0)continue;const bg=b['get'](bf['guardStep']);if(bg===undefined)continue;for(const bh of bf['identifierLegs']){const bi=bg['table']['find'](bj=>bj['identifier']===bh);if(bi===undefined||bi['b_submission']!==!![]||bi['value_type']!=='Address'){ah='slot\x20'+bh+'\x20of\x20guard\x20\x27'+bf['guardStep']+'\x27';break;}}if(ah!==undefined)break;}const ai=new Set();for(const bj of createsOf(a,'repository')){const bk=bj['params']['policies'];if(!Array['isArray'](bk))continue;for(const bl of bk){const bm=bl?.['name'];if(typeof bm==='string')ai['add'](bm);}}const aj=[];if(ai['size']>0x0)for(const bn of createsOf(a,'guard')){const bo=Array['isArray'](bn['params']['table'])?bn['params']['table']:[];for(const bp of collectRepoWhereQueries(bn['params']['root']??bn['params']['logic'])){const bq=staticStringOperand(bp['key'],bo);if(bq===undefined)continue;if(!isPlanLocalObjectOperand(bp['object'],bo))continue;!ai['has'](bq)&&aj['push']('\x27'+bq+'\x27\x20in\x20guard\x20\x27'+bn['id']+'\x27');}}const ak=new Set();for(const br of createsOf(a,'repository')){const bs=br['params']['policies'];if(!Array['isArray'](bs))continue;for(const bt of bs){const bu=bt?.['write_guard'];if(!Array['isArray'](bu))continue;for(const bv of bu){const bw=bv?.['guard'],bx=isRef(bw)?bw['$ref']:bw;if(typeof bx==='string')ak['add'](bx);}}}let al,am=0x0;for(const by of createsOf(a,'guard')){if(!ak['has'](by['id']))continue;rootNegatesRepoDataHas(by['params']['root']??by['params']['logic'])&&(am++,al??=by['id']);}let an,ao=0x0;for(const bz of createsOf(a,'service')){const bA=bz['params']['customer_required'];if(!Array['isArray'](bA)||bA['length']===0x0)continue;bz['params']['buy_guard']===undefined&&(ao++,an??=bz['id']);}let ap,aq=0x0;for(const bB of d?.['edges']??[]){if(bB['prev']===''||bB['guards']['length']===0x0)continue;for(const bC of bB['guards']){const bD=b['get'](bC);if(bD===undefined||bD['acceptedNodes']['length']===0x0)continue;!bD['acceptedNodes']['includes'](bB['prev'])&&(aq++,ap??=bC+'\x20on\x20edge\x20'+bB['prev']+'->'+bB['next']+'\x20(guard\x20pins\x20progress.current\x20in\x20'+('['+bD['acceptedNodes']['join'](',\x20')+']\x20—\x20never\x20\x27'+bB['prev']+'\x27)'));}}const ar=[];for(const bE of createsOf(a,'guard')){const bF=reachLegsOf(bE);ar['push'](...findReachContradictions(bE['id'],bF['legs'],bF['selfStrict']));}return{'has_service':f,'has_machine':d!==undefined,'has_repository':h,'sales_step_present':i,'allocator_row_count':c['length'],'refund_row_count':a6['length'],'terminal_count':l['length'],'terminal_nodes_display':l['join'](',\x20'),'pending_allocator_guard_count':x,'pending_guard_total':w['length'],...u===undefined?{}:{'first_uncovered_terminal':u},...a7===undefined?{}:{'first_refund_guard_missing_claimed_by':a7},...a9===undefined?{}:{'first_path_dependent_anchor':a9},'path_sensitive':aa,...ac===undefined?{}:{'first_write_only_unenforced_field':ac},...ae===undefined?{}:{'first_orphan_guard':ae},...af===undefined?{}:{'first_repo_query_without_repository':af},'repo_write_once_guard_count':am,...al===undefined?{}:{'first_repo_write_once_guard':al},'customer_required_unbacked_count':ao,...an===undefined?{}:{'first_customer_required_unbacked':an},...ag===undefined?{}:{'first_edge_guard_missing_254':ag},'node_mismatched_guard_count':aq,...ap===undefined?{}:{'first_node_mismatched_guard':ap},'guard_reach_contradiction_count':ar['length'],...ar['length']>0x0?{'first_guard_reach_contradiction':ar[0x0],'guard_reach_contradiction_display':ar['join'](';\x20')}:{},...ah===undefined?{}:{'first_alloc_slot_missing':ah},...A===undefined?{}:{'first_pending_fund_guard':A,'pending_fund_guard_count':y['length'],'pending_fund_guard_keys_display':y['map'](bG=>bG['key'])['join'](',\x20')},...B===undefined?{}:{'first_pending_buy_guard':B,'pending_buy_guard_count':z['length'],'pending_buy_guard_keys_display':z['map'](bG=>bG['key'])['join'](',\x20')},'has_return_rail':C!==undefined,...C===undefined?{}:{'return_rail_node':C},'has_arbitration_binding':D,'fund_topup_present':F,...E===undefined?{}:{'fund_topup_amount':E},...J?{'fund_ceiling_breach':E<MAX_INDEMNITY_MULTIPLE*G,'fund_ceiling_basis':MAX_INDEMNITY_MULTIPLE+'x\x20the\x20highest\x20SKU\x20price','fund_concurrent_orders_coverable':Math['floor'](E/(MAX_INDEMNITY_MULTIPLE*G))}:{},'fund_ceiling_unverifiable':F&&!J,...L!==undefined?{'reward_bounty_amount':L,...M!==undefined?{'reward_funding_amount':M}:{},...M!==undefined&&L>0x0?{'reward_max_claims':Math['floor'](M/L)}:{},...N?{'lowest_sku_price':H,'reward_scale_breach':L>0.5*H,'reward_scale_ratio_display':(L/H)['toFixed'](0x2)+'x\x20the\x20cheapest\x20SKU\x20price'}:{'reward_scale_unverifiable':!![]}}:{},...R?{'first_arb_exit_node':Q,'fund_arb_route_unfunded':!![]}:{},...V===undefined?{}:{'entry_no_open_exit':!![],'entry_strand_node':V},...Z&&a0!==undefined?{'arb_promise_without_settle_rail':!![],'arb_promise_node':a0}:{},...X['length']>0x0&&W&&a0!==undefined?{'arb_key_plane_opaque':!![],'arb_key_plane_node':a0}:{},...a2['length']>0x0?{'prose_window_promise_count':a2['length'],'enforced_window_ms_display':[...a3]['sort']((bG,bH)=>bG-bH)['map'](formatMs)['join'](',\x20')||'none',...a4['length']>0x0?{'prose_time_mismatch_count':a4['length'],'first_prose_time_mismatch':a4[0x0]['quote'],'prose_time_mismatch_display':a4['map'](bG=>bG['quote'])['join'](';\x20')}:{}}:{},...a5['length']>0x0?{'unanchored_window_promise_count':a5['length'],'first_unanchored_window_promise':a5[0x0]}:{},...ai['size']>0x0?{'repo_policy_keys_display':[...ai]['join'](',\x20'),...aj['length']>0x0?{'repo_gate_key_unbacked_count':aj['length'],'first_repo_gate_key_unbacked':aj[0x0],'repo_gate_key_unbacked_display':aj['join'](',\x20')}:{}}:{}};}function planRuleBook(){const a=getJudgmentDoc()['rules']['domains']['plan'];if(!a)throw new Error('factory\x20rule\x20pack\x20\x27plan\x27\x20missing\x20—\x20broken\x20installation');return a['rules'];}export function auditPlan(a){const b=validatePlan(a),c=planFacts(a),{findings:d}=evaluateRuleBook(planRuleBook(),c),e=b['length']>0x0||d['some'](g=>g['level']==='critical'||g['level']==='high');return{'issues':b,'findings':d,'facts':c,'blocking':e};}
1
+ import{getJudgmentDoc}from'../config/judgment.js';import{evaluateRuleBook}from'../config/rule-engine.js';import{COMPOSITION_VARIANTS,disclosuresFor,primitivesForVariant,isPathDependentTimeQuery}from'../chain-semantics/index.js';import{MAX_INDEMNITY_MULTIPLE,ONCE_SLOT_BYTES,TASK_BINDING_SLOT}from'../knowledge/onchain-constants.js';import{numericAmount}from'../knowledge/audit-rules.js';import{SKU_NAME_MAX_BYTES,skuNameByteLen}from'../knowledge/sku-name-gate.js';import{createsOf,isRef,refsOf,validatePlan}from'./plan.js';function collectQueries(a,b=[]){if(Array['isArray'](a)){for(const c of a)collectQueries(c,b);}else{if(typeof a==='object'&&a!==null){const d=a;d['type']==='query'&&typeof d['query']==='string'&&b['push']({'query':d['query']});for(const e of Object['values'](d))collectQueries(e,b);}}return b;}function acceptedProgressNodes(a,b){const c=new Map();if(Array['isArray'](b))for(const g of b){if(typeof g==='object'&&g!==null){const h=g;typeof h['identifier']==='number'&&typeof h['value']==='string'&&c['set'](h['identifier'],h['value']);}}const d=i=>{if(typeof i!=='object'||i===null)return undefined;const j=i;if(j['type']==='constant'&&typeof j['value']==='string')return j['value'];if(j['type']==='identifier'&&typeof j['identifier']==='number')return c['get'](j['identifier']);return undefined;},e=[],f=i=>{if(Array['isArray'](i)){for(const n of i)f(n);return;}if(typeof i!=='object'||i===null)return;const j=i,k=Array['isArray'](j['nodes'])?j['nodes']:undefined,l=k?.[0x0]??j['left'],m=k?.[0x1]??j['right'];if(typeof j['type']==='string'&&j['type']['startsWith']('logic')&&typeof l==='object'&&l!==null&&l['type']==='query'&&l['query']==='progress.current'){const o=d(m);if(o!==undefined)e['push'](o);}for(const p of Object['values'](j))f(p);};return f(a),e;}const REPO_WHERE_QUERY_TYPES=new Set(['query_repository_data_count_where','query_repository_data_sum_where','query_repository_data_sum_where_bound','query_repository_data_find_where']);function collectRepoWhereQueries(a,b=[]){if(Array['isArray'](a)){for(const c of a)collectRepoWhereQueries(c,b);}else{if(typeof a==='object'&&a!==null){const d=a;typeof d['type']==='string'&&REPO_WHERE_QUERY_TYPES['has'](d['type'])&&b['push'](d);for(const e of Object['values'](d))collectRepoWhereQueries(e,b);}}return b;}const REPO_ROW_READ_TYPES=new Set(['query_repository_data_has','query_repository_data','query_repository_data_count_where','query_repository_data_sum_where','query_repository_data_sum_where_bound','query_repository_data_find_where','query_repository_data_keys_where']);function subtreeReadsRepositoryRow(a){if(Array['isArray'](a))return a['some'](subtreeReadsRepositoryRow);if(typeof a!=='object'||a===null)return![];const b=a,c=b['type'];if(typeof c==='string'&&REPO_ROW_READ_TYPES['has'](c))return!![];if(c==='query'){const d=b['query'];if(typeof d==='string'&&d['startsWith']('repository.data'))return!![];if(d===0x48e||d===0x48f||d===0x495||d===0x496||d===0x498||d===0x499)return!![];}return Object['values'](b)['some'](subtreeReadsRepositoryRow);}function isRepoDataHasRef(a){if(a['type']==='query'){const c=a['query'];if(typeof c==='string'&&c['trim']()['toLowerCase']()==='repository.data\x20has')return!![];if(c===0x48e||c==='1166')return!![];}const b=a['type'];return typeof b==='string'&&b['toLowerCase']()==='query_repository_data_has';}function subtreeRefsRepoDataHas(a){if(Array['isArray'](a))return a['some'](subtreeRefsRepoDataHas);if(typeof a!=='object'||a===null)return![];const b=a;if(isRepoDataHasRef(b))return!![];return Object['values'](b)['some'](subtreeRefsRepoDataHas);}function rootNegatesRepoDataHas(a){if(Array['isArray'](a))return a['some'](rootNegatesRepoDataHas);if(typeof a!=='object'||a===null)return![];const b=a;if(b['type']==='logic_not'&&subtreeRefsRepoDataHas(b['node']))return!![];return Object['values'](b)['some'](rootNegatesRepoDataHas);}const SYSTEM_ENTITY_ADDRESS='0xaab',WRITE_GUARD_PROMISE_RE=/\b(?:only\s+\w+|must\s+(?:be|bind)\w*|restrict\w*|whitelist\w*|allowlist\w*|allow\s+list\b|authoriz\w*|permissioned|vetted|pre-?approv\w*|approved\s+\w+)\b/i,WRITE_GUARD_TAUTOLOGY_DISCLOSURE_RE=/\b(?:tautolog\w*|self[- ]?report\w*|self[- ]?assert\w*)\b/i;function writeGuardLegClass(a,b){const c=new Map();if(Array['isArray'](b))for(const j of b){if(typeof j==='object'&&j!==null){const k=j;if(typeof k['identifier']==='number')c['set'](k['identifier'],k);}}const d=l=>typeof l==='object'&&l!==null&&l['type']==='context'&&l['context']==='Signer',e=l=>{if(Array['isArray'](l))return l['some'](e);if(typeof l!=='object'||l===null)return![];const m=l;if(m['type']==='context'&&m['context']==='Signer')return!![];return Object['values'](m)['some'](e);},f=l=>{if(typeof l!=='object'||l===null)return![];const m=l;if(m['type']==='identifier'){const n=c['get'](m['identifier']);if(n===undefined||n['b_submission']===!![])return![];const o=n['value'];return typeof o==='string'&&o['trim']()!==''&&!o['includes']('${');}if(m['type']==='constant'){const p=m['value'];if(typeof p!=='string'||p['includes']('${'))return![];if(p['trim']()['toLowerCase']()===SYSTEM_ENTITY_ADDRESS)return![];return!![];}if(m['type']==='query')return!![];return![];};let g=![];const h=(l,m)=>{if(Array['isArray'](l)){let u=![];for(const w of l)u=h(w,m)||u;return u;}if(typeof l!=='object'||l===null)return![];const n=l,o=n['type'];if(o==='logic_not'){const x=n['node']??(Array['isArray'](n['nodes'])?n['nodes'][0x0]:undefined);return x!==undefined?h(x,m+0x1):![];}if((o==='logic_and'||o==='logic_or')&&Array['isArray'](n['nodes'])){const y=n['nodes'];let z=![],A=!![];for(const B of y){const C=h(B,m);z=z||C;if(!C)A=![];}return o==='logic_and'?z:z&&A;}if(typeof o==='string'&&o['startsWith']('query')&&e(n)&&m%0x2===0x0)return g=!![],!![];const p=Array['isArray'](n['nodes'])?n['nodes']:undefined,q=p?.[0x0]??n['left'],r=p?.[0x1]??n['right'];if(o==='vec_contains_address'&&q!==undefined&&r!==undefined){const D=d(q)?r:d(r)?q:undefined;if(D===undefined||m%0x2!==0x0)return![];g=!![];const E=D,F=E['type']==='identifier'?c['get'](E['identifier']):undefined;if(F===undefined||F['b_submission']===!![])return![];const G=F['value'];if(Array['isArray'](G))return G['length']>0x0;if(typeof G!=='string'||G['trim']()===''||G['includes']('${'))return![];try{const H=JSON['parse'](G);return Array['isArray'](H)&&H['length']>0x0;}catch{return![];}}if(o==='logic_equal'&&q!==undefined&&r!==undefined){if(m%0x2!==0x0||!(d(q)||d(r)))return![];return g=!![],f(d(q)?r:q);}let s=![];for(const I of Object['values'](n)){if(typeof I==='object'&&I!==null)s=h(I,m)||s;}return s;},i=h(a,0x0);return{'hasSignerLeg':g,'hasBindingLeg':i};}function staticStringOperand(a,b){if(typeof a!=='object'||a===null)return undefined;const c=a;if(typeof c['identifier']==='number'){const d=b['find'](e=>typeof e==='object'&&e!==null&&e['identifier']===c['identifier']);if(d===undefined||d['b_submission']===!![])return undefined;return typeof d['value']==='string'?d['value']:undefined;}return typeof c['value']==='string'?c['value']:undefined;}function isPlanLocalObjectOperand(a,b){if(typeof a!=='object'||a===null)return![];const c=a;if(typeof c['identifier']!=='number')return![];const d=b['find'](f=>typeof f==='object'&&f!==null&&f['identifier']===c['identifier']);if(d===undefined||d['b_submission']===!![])return![];const e=d['value'];if(typeof e==='object'&&e!==null)return!![];return typeof e==='string'&&e['startsWith']('$');}const REACH_GREATER_TYPES={'logic_as_u256_greater':'gt','logic_as_u256_greater_or_equal':'ge'},REACH_LESSER_TYPES={'logic_as_u256_lesser':'lt','logic_as_u256_lesser_or_equal':'le'},REACH_EQUAL_TYPES=new Set(['logic_as_u256_equal','logic_equal']);function reachChannel(a){if(a['type']==='context'&&typeof a['context']==='string')return'context:'+a['context'];const b=a['query'];if(a['type']==='query'&&(typeof b==='string'||typeof b==='number'))return'query:'+String(b)['trim']()['toLowerCase']();return undefined;}function reachConstant(a,b){const c=d=>typeof d==='string'||typeof d==='number'||typeof d==='boolean';if(a['type']==='identifier'&&typeof a['identifier']==='number'){const d=b['find'](e=>typeof e==='object'&&e!==null&&e['identifier']===a['identifier']);if(d===undefined||d['b_submission']===!![])return undefined;return c(d['value'])?d['value']:undefined;}if(a['type']==='constant')return c(a['value'])?a['value']:undefined;return undefined;}function flattenAndChain(a,b=[]){if(typeof a!=='object'||a===null)return b;const c=a;if(c['type']==='logic_and'){const d=Array['isArray'](c['nodes'])?c['nodes']:[];for(const e of d)flattenAndChain(e,b);return b;}return b['push'](c),b;}function reachLegsOf(a){const b=Array['isArray'](a['params']['table'])?a['params']['table']:[],c=a['params']['root']??a['params']['logic'],d={'legs':[],'selfStrict':[]};if(typeof c!=='object'||c===null)return d;for(const e of flattenAndChain(c)){const f=typeof e['type']==='string'?e['type']:'',g=Array['isArray'](e['nodes'])?e['nodes']:undefined;if(g===undefined||g['length']<0x2)continue;const h=REACH_GREATER_TYPES[f],j=REACH_LESSER_TYPES[f],k=REACH_EQUAL_TYPES['has'](f);if(h===undefined&&j===undefined&&!k)continue;const l=g[0x0];if(typeof l!=='object'||l===null)continue;const m=reachChannel(l),n=reachConstant(l,b);for(let o=0x1;o<g['length'];o++){const p=g[o];if(typeof p!=='object'||p===null)continue;const q=reachConstant(p,b),r=reachChannel(p);if(m!==undefined&&q!==undefined)d['legs']['push']({'channel':m,'dir':k?'eq':h??j,'constant':q});else{if(r!==undefined&&n!==undefined){const s=k?'eq':h!==undefined?h==='gt'?'lt':'le':j==='lt'?'gt':'ge';d['legs']['push']({'channel':r,'dir':s,'constant':n});}else m!==undefined&&r!==undefined&&(m===r&&(h==='gt'||j==='lt')&&d['selfStrict']['push']({'channel':m,'dir':h==='gt'?'gt':'lt'}));}}}return d;}function reachNumeric(a){if(typeof a==='number')return Number['isFinite'](a)?a:undefined;if(typeof a==='string'&&a['trim']()!==''&&!Number['isNaN'](Number(a)))return Number(a);return undefined;}function findReachContradictions(c,f,g=[]){const h=[];for(const l of g){h['push']('guard\x20\x27'+c+'\x27\x20('+l['channel']+'):\x20'+(l['dir']==='gt'?'>':'<')+'\x20itself\x20—\x20'+'unsatisfiable\x20(same-binding\x20self-comparison)');}const k=new Map();for(const m of f){const n=k['get'](m['channel'])??[];n['push'](m),k['set'](m['channel'],n);}for(const [o,p]of k){const q=p['filter'](v=>v['dir']==='gt'||v['dir']==='ge'),r=p['filter'](v=>v['dir']==='lt'||v['dir']==='le');for(const v of q){const w=reachNumeric(v['constant']);if(w===undefined)continue;for(const x of r){const y=reachNumeric(x['constant']);if(y===undefined)continue;(w>y||w===y&&(v['dir']==='gt'||x['dir']==='lt'))&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20'+(v['dir']==='gt'?'>':'>=')+'\x20'+String(v['constant'])+'\x20'+('contradicts\x20'+(x['dir']==='lt'?'<':'<=')+'\x20'+String(x['constant'])+'\x20—\x20unsatisfiable'));}}const t=p['filter'](z=>z['dir']==='eq');for(let z=0x0;z<t['length'];z++){for(let A=z+0x1;A<t['length'];A++){const B=t[z],C=t[A],D=reachNumeric(B['constant']),E=reachNumeric(C['constant']),F=typeof B['constant']==='boolean'&&typeof C['constant']==='boolean'&&B['constant']!==C['constant'],G=D!==undefined&&E!==undefined&&D!==E;(F||G)&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(B['constant'])+'\x20'+('contradicts\x20==\x20'+String(C['constant'])+'\x20—\x20unsatisfiable'));}}for(const H of t){const I=reachNumeric(H['constant']);if(I===undefined)continue;for(const J of q){J['dir']==='gt'&&reachNumeric(J['constant'])===I&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(H['constant'])+'\x20'+('contradicts\x20>\x20'+String(J['constant'])+'\x20—\x20unsatisfiable'));}for(const K of r){K['dir']==='lt'&&reachNumeric(K['constant'])===I&&h['push']('guard\x20\x27'+c+'\x27\x20('+o+'):\x20==\x20'+String(H['constant'])+'\x20'+('contradicts\x20<\x20'+String(K['constant'])+'\x20—\x20unsatisfiable'));}}}return h;}function guardProjection(a){const b=a['params']['root']??a['params']['logic'],c=collectQueries(b)['map'](d=>d['query']);return{'stepId':a['id'],'queries':c,'acceptedNodes':acceptedProgressNodes(b,a['params']['table']),'table':Array['isArray'](a['params']['table'])?a['params']['table']:[]};}function allocatorRows(a){const b=[],c=d=>{if(typeof d==='object'&&d!==null&&!Array['isArray'](d)){const e=d;if(Array['isArray'](e['allocators']))d=e['allocators'];}if(!Array['isArray'](d))return;for(const f of d){if(typeof f!=='object'||f===null)continue;const g=f,h=g['guard'],i=g['guard_key'],j=Array['isArray'](g['sharing'])?g['sharing']:[],k=j['map'](l=>typeof l==='object'&&l!==null?l['who']:undefined)['map'](l=>typeof l==='object'&&l!==null?l['GuardIdentifier']:undefined)['filter'](l=>typeof l==='number');b['push']({'track':typeof g['track']==='string'?g['track']:'settlement','guardStep':isRef(h)?h['$ref']:undefined,'guardKey':typeof i==='string'?i:undefined,'identifierLegs':k});}};for(const d of a['steps']){if(d['op']==='create'&&d['object']==='service')c(d['params']['order_allocators']);if(d['op']==='configure'&&d['method']==='order_allocators')c(d['params']['allocators']);}return b;}function machineProjection(a){const b=createsOf(a,'machine')[0x0];if(b===undefined)return undefined;const c=b['params']['nodes'];if(!Array['isArray'](c))return{'nodes':[],'edges':[],'terminals':[],'optionalNodes':[],'forwardGuardRefs':[],'finalRoleNodes':[],'cancelledNodes':[]};const d=[],e=[],h=o=>({'name':typeof o?.['name']==='string'?o['name']:'','roster':typeof o?.['namedOperator']==='string'?o['namedOperator']:typeof o?.['named_operator']==='string'?o['named_operator']:undefined,'perm':typeof o?.['permissionIndex']==='number'?o['permissionIndex']:typeof o?.['permission_index']==='number'?o['permission_index']:undefined}),i=[],j=[],k=[],l=[];for(const o of c){if(typeof o!=='object'||o===null)continue;const q=o,r=typeof q['name']==='string'?q['name']:undefined;if(r===undefined)continue;d['push'](r);const s=typeof q['role']==='string'?q['role']:undefined;if(s==='final'||s==='cancelled')k['push'](r);if(s==='cancelled')l['push'](r);if(q['optional']===!![])i['push'](r);const t=Array['isArray'](q['pairs'])?q['pairs']:[];for(const u of t){const v=u,w=v?.['prev_node'],x=Array['isArray'](v?.['forwards'])?v['forwards']:[],y=[],z=[],A=[];for(const B of x){const C=B,D=C?.['guard'];isRef(D)&&(y['push'](D['$ref']),j['push'](D['$ref']));if(typeof C?.['name']==='string')z['push'](C['name']);A['push'](h(C));}if(typeof w==='string')e['push']({'prev':w,'next':r,'guards':y,'forwardNames':z,'forwardRails':A});}}const m=b['params']['pairs'];if(Array['isArray'](m))for(const E of m){const F=E;if(typeof F?.['prev_node']==='string'&&typeof F?.['next_node']==='string'){const G=Array['isArray'](F['forwards'])?F['forwards']:[],H=[],I=[],J=[];for(const K of G){const L=K,M=L?.['guard'];isRef(M)&&(H['push'](M['$ref']),j['push'](M['$ref']));if(typeof L?.['name']==='string')I['push'](L['name']);J['push'](h(L));}e['push']({'prev':F['prev_node'],'next':F['next_node'],'guards':H,'forwardNames':I,'forwardRails':J});}}const n=new Set(e['filter'](N=>N['prev']!==''&&N['prev']!==N['next'])['map'](N=>N['prev']));return{'nodes':d,'edges':e,'terminals':d['filter'](N=>!n['has'](N)),'optionalNodes':i,'forwardGuardRefs':j,'finalRoleNodes':k,'cancelledNodes':l};}function pathCountCap2(a,b){const c=new Map();for(const g of a){const h=c['get'](g['prev'])??[];h['push'](g['next']),c['set'](g['prev'],h);}let d=0x0;const f=(i,j)=>{if(d>=0x2)return;if(i===b){d+=0x1;return;}if(j['has'](i))return;const k=new Set(j)['add'](i);for(const l of c['get'](i)??[])f(l,k);};for(const i of c['get']('')??[])f(i,new Set());return d;}const WRITE_ONLY_ENFORCEMENT_SOURCES=[{'object':'service','param':'customer_required','coverQuery':'order.required_info','extract':a=>Array['isArray'](a['params']['customer_required'])&&a['params']['customer_required']['length']>0x0},{'object':'service','param':'sales[].wip','coverQuery':'service.sale.wip','extract':a=>Array['isArray'](a['params']['sales'])&&a['params']['sales']['some'](b=>typeof b==='object'&&b!==null&&typeof b['wip']==='string'&&b['wip']['length']>0x0)}],PROSE_UNIT_MS={'minute':0xea60,'hour':0x36ee80,'hrs':0x36ee80,'hr':0x36ee80,'h':0x36ee80,'day':0x5265c00,'week':0x240c8400},PROSE_DURATION_RE=/(\d+)\s*[-\s]?\s*(minute|hour|hrs|hr|h|day|week)s?\b/gi,WINDOW_CONTEXT_RE=/review|accept|cancel|refund|return|window|claim|bounty|escrow|release|revision|dispute/i;function isPlausibleMsDuration(a){return Number['isFinite'](a)&&a>=0xea60&&a%0x3e8===0x0&&a<=0xa*0x16d*0x5265c00;}function formatMs(a){const b=a/0x5265c00;if(Number['isInteger'](b)&&b>=0x2)return b+'\x20days';const c=a/0x36ee80;if(Number['isInteger'](c)&&c>=0x2)return c+'\x20hours';return a/0xea60+'\x20minutes';}export function extractProseWindowPromises(a){const b=[];for(const c of a['matchAll'](PROSE_DURATION_RE)){const d=Number(c[0x1])*(PROSE_UNIT_MS[c[0x2]['toLowerCase']()]??NaN);if(!Number['isFinite'](d)||d<=0x0||c['index']===undefined)continue;const e=Math['max'](0x0,c['index']-0x50),f=Math['min'](a['length'],c['index']+c[0x0]['length']+0x50);if(!WINDOW_CONTEXT_RE['test'](a['slice'](e,f)))continue;b['push']({'ms':d,'quote':c[0x0]});}return b;}const UNANCHORED_RESTART_RE=/\b(?:restart|reset|renew|start(?:s)? again|begin(?:s)? again)[^.]{0,60}\b(?:window|timer|clock|period)\b|\b(?:window|timer|clock|period)\b[^.]{0,60}\b(?:restart|reset|renew)s?\b/i;function collectEnforcedWindowMs(a){const b=new Set();for(const c of createsOf(a,'guard')){const d=Array['isArray'](c['params']['table'])?c['params']['table']:[];for(const e of d){const f=e;if(f['b_submission']===!![]||f['value_type']!=='U64')continue;const g=f['value'],h=typeof g==='number'?g:typeof g==='string'&&g!==''&&!Number['isNaN'](Number(g))?Number(g):NaN;if(isPlausibleMsDuration(h))b['add'](h);}}return b;}const TIME_CMP_TYPES={'logic_as_u256_greater':'gt','logic_as_u256_greater_or_equal':'ge','logic_as_u256_lesser':'lt','logic_as_u256_lesser_or_equal':'le','logic_as_u256_equal':'eq','logic_equal':'eq'};function isClockContext(a){return a['type']==='context'&&a['context']==='Clock';}function subtreeHasBranch(a){if(Array['isArray'](a))return a['some'](subtreeHasBranch);if(typeof a!=='object'||a===null)return![];const b=a;if(b['type']==='logic_or'||b['type']==='logic_not')return!![];return Object['values'](b)['some'](subtreeHasBranch);}function guardWindowOpen(c){if(typeof c!=='object'||c===null)return!![];if(subtreeHasBranch(c))return!![];let d=![];for(const e of flattenAndChain(c)){const f=TIME_CMP_TYPES[typeof e['type']==='string'?e['type']:''];if(f===undefined)continue;const g=Array['isArray'](e['nodes'])?e['nodes']:undefined;if(g===undefined||g['length']<0x2)continue;const h=g[0x0],i=g[0x1];if(typeof h!=='object'||h===null||typeof i!=='object'||i===null)continue;const j=isClockContext(h),k=isClockContext(i);if(j&&!k){if(f==='lt'||f==='le'||f==='eq')d=!![];}else{if(!j&&k){const l=f==='gt'||f==='ge'?'lt':f==='lt'||f==='le'?'gt':'eq';if(l==='lt')d=!![];}}}return!d;}function collectSlotQueries(a,b=[]){if(Array['isArray'](a)){for(const d of a)collectSlotQueries(d,b);return b;}if(typeof a!=='object'||a===null)return b;const c=a;if(c['type']==='query'&&typeof c['query']==='string'){const e=c['object'],f=typeof e==='object'&&e!==null?e:undefined;b['push']({'query':c['query'],'slot':typeof f?.['identifier']==='number'?f['identifier']:undefined,'witness':typeof f?.['convert_witness']==='string'?f['convert_witness']:undefined});}for(const g of Object['values'](c))collectSlotQueries(g,b);return b;}function tableRows(a){const b=a['params']['table'];if(!Array['isArray'](b))return[];return b['filter'](c=>typeof c==='object'&&c!==null);}function rowIdentifier(a){return typeof a['identifier']==='number'?a['identifier']:undefined;}function servicePinRowIds(a,b){const c=[],d=f=>{const g=f['object'];return f['type']==='query'&&f['query']==='order.service'&&typeof g==='object'&&g!==null&&g['identifier']===b;},e=f=>{if(Array['isArray'](f)){for(const i of f)e(i);return;}if(typeof f!=='object'||f===null)return;const g=f,h=g['nodes'];if(g['type']==='logic_equal'&&Array['isArray'](h)&&h['length']===0x2)for(const [j,k]of[[h[0x0],h[0x1]],[h[0x1],h[0x0]]]){if(typeof j!=='object'||j===null||typeof k!=='object'||k===null)continue;const l=k;d(j)&&l['type']==='identifier'&&typeof l['identifier']==='number'&&c['push'](l['identifier']);}for(const m of Object['values'](g))e(m);};return e(a),c;}function ownServiceIdentities(a){const b=new Set();for(const c of createsOf(a,'service')){b['add'](c['id']);const d=c['params']['name'];if(typeof d==='string')b['add'](d);}return b;}function pinIsExternal(a,b){if(typeof a==='string')return!b['has'](a);if(typeof a==='object'&&a!==null){const c=a;if(typeof c['$ref']==='string')return!b['has'](c['$ref']);const d=c['$late'];if(typeof d==='object'&&d!==null){const e=d['mark'];if(typeof e==='string')return!b['has'](e);}}return!![];}function guardCompositionShapes(a){const b=[],c=ownServiceIdentities(a),d=repositoryWriteGuardIds(a),e=writeOnceKeyedSlots(a);for(const f of createsOf(a,'guard')){const g=f['params']['root']??f['params']['logic'],h=collectSlotQueries(g),i=h['filter'](s=>s['query']['startsWith']('order.')),j=[...new Set(i['map'](s=>s['slot'])['filter'](t=>t!==undefined&&t!==HOST_ORDER_SLOT&&t!==TASK_BINDING_SLOT&&t!==ONCE_SLOT_BYTES))],k=tableRows(f),l=new Set(k['filter'](s=>s['b_submission']===![]&&s['value_type']==='Address')['map'](s=>rowIdentifier(s))['filter'](s=>s!==undefined)),m=j['flatMap'](t=>servicePinRowIds(g,t))['filter'](s=>l['has'](s)),n=[...new Set(i['filter'](s=>s['query']==='order.service')['map'](s=>s['slot'])['filter'](t=>t!==undefined))],o=new Map(k['map'](s=>[rowIdentifier(s),s['value']])),p=s=>s['flatMap'](t=>servicePinRowIds(g,t))['filter'](t=>l['has'](t)&&pinIsExternal(o['get'](t),c)),q=p(j)['length']>0x0||d['has'](f['id'])&&p(n)['length']>0x0,r=i['filter'](s=>s['query']==='order.owner')['map'](s=>s['slot']);b['push']({'stepId':f['id'],'foreignSlots':j,'paired':subtreeReadsRepositoryRow(g)||k['some'](s=>rowIdentifier(s)===ONCE_SLOT_BYTES&&s['b_submission']===!![])||j['some'](t=>e['get'](f['id'])?.['has'](t)),'pinned':m['length']>0x0,'pinnedRowIds':m,'procurementPin':q,'ownerCrossed':r['includes'](HOST_ORDER_SLOT)&&j['some'](t=>r['includes'](t))});}return b;}function repositoryPoliciesMerged(a){const b=new Map();for(const d of a['steps']){if(d['op']!=='configure'||d['method']!=='policies')continue;const e=d['target'],f=typeof e==='object'&&e!==null&&typeof e['$ref']==='string'?e['$ref']:undefined;if(f===undefined)continue;const g=d['params']['policy'];if(!Array['isArray'](g))continue;const h=b['get'](f)??[];h['push'](...g['filter'](i=>typeof i==='object'&&i!==null)),b['set'](f,h);}const c=[];for(const i of createsOf(a,'repository')){const j=Array['isArray'](i['params']['policies'])?i['params']['policies']:[];c['push']({'step':i,'policies':[...j,...b['get'](i['id'])??[]]});}return c;}function repositoryWriteGuardIds(a){const b=new Set();for(const {policies:c}of repositoryPoliciesMerged(a)){for(const d of c){if(typeof d!=='object'||d===null)continue;const e=d['write_guard'];if(!Array['isArray'](e))continue;for(const f of e){if(typeof f!=='object'||f===null)continue;const h=f['guard'];typeof h==='object'&&h!==null&&typeof h['$ref']==='string'&&b['add'](h['$ref']);}}}return b;}function writeOnceKeyedSlots(a){const b=new Map();for(const {policies:c}of repositoryPoliciesMerged(a)){for(const d of c){if(typeof d!=='object'||d===null)continue;const e=d;if(e['write_once']!==!![])continue;const f=e['write_guard'];if(!Array['isArray'](f))continue;for(const h of f){if(typeof h!=='object'||h===null)continue;const i=h,j=i['id_from_submission'];if(typeof j!=='number'||j===HOST_ORDER_SLOT)continue;const k=i['guard'];if(typeof k!=='object'||k===null)continue;const l=k['$ref'];if(typeof l!=='string')continue;const m=b['get'](l)??new Set();m['add'](j),b['set'](l,m);}}}return b;}function emittedPrimitives(a,b){const c=new Set();for(const d of createsOf(a,'guard')){const e=d['params']['root']??d['params']['logic'];if(subtreeReadsRepositoryRow(e))c['add']('P1');}if(b['some'](f=>f['foreignSlots']['length']>0x0))c['add']('P2');if(b['some'](f=>f['procurementPin']))c['add']('P3');for(const f of createsOf(a,'machine')){const g=f['params']['nodes'];if(!Array['isArray'](g))continue;if(JSON['stringify'](g)['includes']('retained_submission'))c['add']('P3');}if(maxDistinctGuardsPerTrack(a)>0x1)c['add']('P4');if(planHasFormulaSharing(a))c['add']('P5');if(createsOf(a,'reward')['length']>0x0)c['add']('P6');return c;}const HOST_ORDER_SLOT=0x0;function maxDistinctGuardsPerTrack(a){const b=new Map(),c=f=>{const h=f['guard'];if(h!==undefined)return JSON['stringify'](h);if(typeof f['guard_key']==='string')return'key:'+f['guard_key'];return'<unbound>';},d=f=>{if(typeof f==='object'&&f!==null&&!Array['isArray'](f)){const g=f;if(Array['isArray'](g['allocators']))f=g['allocators'];}if(!Array['isArray'](f))return;for(const h of f){if(typeof h!=='object'||h===null)continue;const i=h,j=typeof i['track']==='string'?i['track']:'settlement',k=b['get'](j);if(k===undefined)b['set'](j,new Set([c(i)]));else k['add'](c(i));}};for(const f of a['steps']){if(f['op']==='create'&&f['object']==='service')d(f['params']['order_allocators']);if(f['op']==='configure'&&f['method']==='order_allocators')d(f['params']['allocators']);}let e=0x0;for(const g of b['values']())e=Math['max'](e,g['size']);return e;}function planHasFormulaSharing(a){const b=c=>{if(typeof c==='object'&&c!==null&&!Array['isArray'](c)){const d=c;if(Array['isArray'](d['allocators']))c=d['allocators'];}if(!Array['isArray'](c))return![];return c['some'](e=>{if(typeof e!=='object'||e===null)return![];const f=e['sharing'];if(!Array['isArray'](f))return![];return f['some'](g=>{if(typeof g!=='object'||g===null)return![];const h=g;return h['mode']===0x4||h['formula']!==undefined;});});};for(const c of a['steps']){if(c['op']==='create'&&c['object']==='service'&&b(c['params']['order_allocators']))return!![];if(c['op']==='configure'&&c['method']==='order_allocators'&&b(c['params']['allocators']))return!![];}return![];}function thirdPartyLegs(a){const b=[],c=d=>{if(typeof d==='object'&&d!==null&&!Array['isArray'](d)){const e=d;if(Array['isArray'](e['allocators']))d=e['allocators'];}if(!Array['isArray'](d))return;for(const f of d){if(typeof f!=='object'||f===null)continue;const g=f,h=typeof g['track']==='string'?g['track']:'settlement',i=Array['isArray'](g['sharing'])?g['sharing']:[];for(const j of i){if(typeof j!=='object'||j===null)continue;const k=j['who'];if(typeof k!=='object'||k===null)continue;const l=k;if(l['Entity']!==undefined)b['push']({'track':h,'kind':'Entity'});else{if(l['Signer']!==undefined)b['push']({'track':h,'kind':'Signer'});}}}};for(const d of a['steps']){if(d['op']==='create'&&d['object']==='service')c(d['params']['order_allocators']);if(d['op']==='configure'&&d['method']==='order_allocators')c(d['params']['allocators']);}return b;}function publicFaceStrings(a){const b=[],c={'service':['description','location'],'contact':['description','location'],'proof':['description','proof'],'repository':['description'],'demand':['description']};for(const d of a['steps']){if(d['op']!=='create')continue;const e=c[d['object']];if(e===undefined)continue;for(const h of e){const i=d['params'][h];if(typeof i==='string'&&i['length']>0x0)b['push']({'face':d['object']+'.'+h,'stepId':d['id'],'text':i});}const g=d['params']['sales'];if(Array['isArray'](g))for(const j of g){if(typeof j!=='object'||j===null)continue;const k=j;for(const l of['description','name','title']){const m=k[l];typeof m==='string'&&m['length']>0x0&&b['push']({'face':d['object']+'.sales.'+l,'stepId':d['id'],'text':m});}}}for(const n of a['steps']){if(n['op']!=='configure')continue;const o=JSON['stringify'](n['params']);if(o['includes']('\x22data\x22')){const p=n['params']['data'];typeof p==='string'&&p['length']>0x0&&b['push']({'face':'repository.data','stepId':n['id'],'text':p});}}return b;}const PII_PATTERNS=[{'kind':'email','re':/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/},{'kind':'street_number','re':/\b\d{1,6}\s+[A-Za-z\u00c0-\u024f\u4e00-\u9fff]+(?:\s+[A-Za-z\u00c0-\u024f\u4e00-\u9fff]+){0,3}\s+(?:st|street|rd|road|ave|avenue|blvd|ln|lane|dr|drive|way|ct|court|fl|floor|apt|unit|rm|room)\b/i},{'kind':'phone','re':/(?:\+\d{1,3}[\s.-]?)?(?:\(\d{2,4}\)[\s.-]?)?\d{3,4}[\s.-]?\d{4}(?:[\s.-]?\d{2,4})?/,'proseOnly':!![]},{'kind':'national_id','re':/\b\d{15}\b|\b\d{17}[\dXx]\b/,'proseOnly':!![]}];function firstPiiHit(a){for(const b of publicFaceStrings(a)){const c=b['face']!=='repository.data';for(const d of PII_PATTERNS){if(d['proseOnly']===!![]&&!c)continue;if(d['re']['test'](b['text']))return{'face':b['face'],'stepId':b['stepId'],'kind':d['kind']};}}return undefined;}const HASH_SHAPE=/^(?:[a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{64}|[A-Za-z0-9+/]{43}={0,1}|[A-Za-z0-9+/]{44})$/,TRACKING_SHAPE=/^(?:[A-Za-z]{2,4}[\s-]?\d{8,15}|\d{1,7}[\s-]\d{4,15})$/;function firstRawTrackingValue(a){for(const b of a['steps']){if(b['op']!=='configure')continue;const c=b['params']['data'];if(typeof c!=='string')continue;const d=c['trim']();if(d['length']===0x0||HASH_SHAPE['test'](d))continue;if(TRACKING_SHAPE['test'](d))return{'stepId':b['id'],'value':d};}return undefined;}function perOrderProofBinding(a){for(const b of createsOf(a,'proof')){const c=JSON['stringify'](b['params']['about']??'');if(c['includes']('order'))return b['id'];}for(const d of a['steps']){if(d['op']!=='configure')continue;if(d['method']!=='required_info'&&d['method']!=='required_info_bind')continue;if(JSON['stringify'](d['params'])['includes']('proof'))return d['id'];}return undefined;}function compositionFacts(a){const b=guardCompositionShapes(a),c=emittedPrimitives(a,b),d=b['filter'](t=>t['foreignSlots']['length']>0x0),e=thirdPartyLegs(a),f=c['has']('P6'),g=typeof a['inputs']['composition_variant']==='string'?a['inputs']['composition_variant']:undefined,h=g!==undefined&&g in COMPOSITION_VARIANTS,i=typeof a['inputs']['fulfillment_axis']==='string'?a['inputs']['fulfillment_axis']:undefined,j=i??(h?COMPOSITION_VARIANTS[g]['fulfillmentAxis']:undefined),k=j==='merchant_procured'||j==='user_procured'||j==='mixed',l=d['length']>0x0||k,m=e['length']>0x0||f,n=h?primitivesForVariant(g)['filter'](s=>!c['has'](s)):[],o=firstPiiHit(a),p={'composition_primitives_emitted':[...c]['sort']()['join'](',\x20'),'composition_cross_order_guard_count':d['length'],'third_party_fulfilment_present':l,'third_party_payout_leg_present':m,'third_party_leg_count':e['length'],'reward_pool_present':f,...j!==undefined?{'fulfillment_axis':j}:{},...g!==undefined?{'composition_variant':g,'composition_variant_known':h}:{}};if(d['length']>0x0){const s=d['find'](w=>!w['paired']),t=d['find'](w=>!w['pinned']),u=j!=='merchant_procured'&&j!=='mixed',v=u?d['find'](w=>!w['ownerCrossed']):undefined;p['first_cross_order_guard']=d[0x0]['stepId'],p['cross_order_slots_display']=d[0x0]['foreignSlots']['join'](',\x20');s!==undefined&&(p['first_cross_order_guard_unpaired']=s['stepId'],p['cross_order_unpaired_count']=d['filter'](w=>!w['paired'])['length']);if(t!==undefined)p['first_cross_order_guard_unpinned']=t['stepId'];if(v!==undefined)p['first_cross_order_guard_no_owner_cross']=v['stepId'];!u&&d['some'](w=>!w['ownerCrossed'])&&(p['cross_order_owner_tie_not_expressible']=!![]);}l&&!m&&(p['third_party_fulfilment_without_payout']=!![]);h&&n['length']>0x0&&(p['composition_variant_missing_primitives']=n['join'](',\x20'),p['composition_variant_missing_count']=n['length']);g==='V3'&&(p['composition_dual_refund_unblockable']=!![],p['composition_disclosure_count']=disclosuresFor('V3')['length']);o!==undefined&&(p['first_pii_public_face']=o['face'],p['first_pii_public_face_step']=o['stepId'],p['first_pii_kind']=o['kind']);const q=firstRawTrackingValue(a);q!==undefined&&(p['first_raw_tracking_value_step']=q['stepId'],p['first_raw_tracking_value']=q['value']);const r=perOrderProofBinding(a);if(r!==undefined)p['per_order_proof_binding_step']=r;return p;}export function planFacts(a){const b=new Map(createsOf(a,'guard')['map'](aM=>[aM['id'],guardProjection(aM)])),c=allocatorRows(a),d=machineProjection(a),f=createsOf(a,'service')['length']>0x0,h=createsOf(a,'repository')['length']>0x0,i=a['steps']['some'](aM=>{if(!(aM['op']==='create'&&aM['object']==='service'||aM['op']==='configure'&&aM['method']==='sales'))return![];const aN=aM['params']['sales'];return Array['isArray'](aN)&&aN['length']>0x0;}),j=new Set();for(const aM of c){const aN=aM['guardStep']===undefined?undefined:b['get'](aM['guardStep']);for(const aO of aN?.['acceptedNodes']??[])j['add'](aO);}const k=new Set(d?.['optionalNodes']??[]),l=(d?.['terminals']??[])['filter'](aP=>!k['has'](aP)),o=new Set(),q=new Set(c['map'](aP=>aP['guardStep'])['filter'](aP=>aP!==undefined));for(const aP of d?.['edges']??[]){if(aP['next']===''||aP['guards']['length']===0x0)continue;for(const aQ of aP['guards']){if(!q['has'](aQ))continue;if((b['get'](aQ)?.['acceptedNodes']['length']??0x0)===0x0)o['add'](aP['next']);}}const u=l['find'](aR=>!j['has'](aR)&&!o['has'](aR)),w=(d?.['finalRoleNodes']??[])['find'](aR=>!j['has'](aR)&&!o['has'](aR)),x=(d?.['edges']??[])['find'](aR=>(d?.['cancelledNodes']??[])['includes'](aR['prev'])&&(aR['forwardNames']['some'](aS=>/review|reward/i['test'](aS))||/review|reward/i['test'](aR['next']))),y=new Set([...d?.['finalRoleNodes']??[],...j,...o]),z=[[/settle|release|payout|\bband\b/i,'settle'],[/recover|award/i,'recover'],[/refund|return/i,'refund'],[/arb|indemnity|dispute/i,'arb']],A=aR=>{const aS=[aR['next'],...aR['forwardNames'],...aR['guards']['flatMap'](aT=>b['get'](aT)?.['queries']??[])];for(const [aT,aU]of z){if(aS['some'](aV=>aT['test'](aV)))return aU;}return undefined;};let B;for(const aR of d?.['edges']??[]){if(aR['next']===''||!y['has'](aR['next']))continue;for(const aS of aR['forwardRails']){const aT=aS['perm']!==undefined&&aS['perm']>0x0;typeof aS['roster']==='string'&&aS['roster']!==''&&!aT&&(B??=aR['prev']+'->'+aR['next']+'\x20(forward\x20'+aS['name']+')');}}const C=new Map();for(const aU of d?.['edges']??[]){if(aU['next']===''||!y['has'](aU['next']))continue;const aV=A(aU);if(aV===undefined)continue;for(const aW of aU['forwardRails']){if(typeof aW['perm']==='number'&&aW['perm']>0x0){const aX=C['get'](aW['perm'])??C['set'](aW['perm'],new Set())['get'](aW['perm']);aX['add'](aV);}}}const D=[...C['entries']()]['find'](([,aY])=>aY['size']>=0x2),E=a['pending_guards']??[],F=E['filter'](aY=>aY['site']==='allocator')['length'],G=E['filter'](aY=>aY['site']==='allocator'||aY['site']==='machine_edge'),H=E['filter'](aY=>aY['site']==='service_buy'),I=G[0x0]?.['key'],J=H[0x0]?.['key'],K=d?.['nodes']['find'](aY=>/return/i['test'](aY)),L=a['steps']['some'](aY=>{if(aY['op']==='configure'&&aY['method']==='arbitrations'){const aZ=aY['params']['objects'];return Array['isArray'](aZ)&&aZ['length']>0x0;}if(aY['op']==='create'&&aY['object']==='service'){const b0=aY['params']['arbitrations'];return Array['isArray'](b0)&&b0['length']>0x0;}return![];});let M,N=![];for(const aY of a['steps']){if(aY['op']==='configure'&&aY['method']==='compensation_fund_add'){N=!![];const aZ=numericAmount(aY['params']['balance']);if(aZ!==undefined)M=(M??0x0)+aZ;}}let O,P;const Q=b0=>{if(!Array['isArray'](b0))return;for(const b1 of b0){const b2=numericAmount(b1?.['price']);b2!==undefined&&b2>0x0&&(O=Math['max'](O??0x0,b2),P=P===undefined?b2:Math['min'](P,b2));}};for(const b0 of a['steps']){if(b0['op']==='create'&&b0['object']==='service')Q(b0['params']['sales']);if(b0['op']==='configure'&&b0['method']==='sales')Q(b0['params']['sales']);}const R=M!==undefined&&O!==undefined;let S,T=0x0,U=0x0;const V=b1=>{if(!Array['isArray'](b1))return;for(const b2 of b1){const b3=b2?.['name'];if(typeof b3!=='string'||b3==='')continue;const b4=skuNameByteLen(b3);b4>SKU_NAME_MAX_BYTES&&(U+=0x1,S===undefined&&(S=b3,T=b4));}};for(const b1 of a['steps']){if(b1['op']==='create'&&b1['object']==='service')V(b1['params']['sales']);if(b1['op']==='configure'&&b1['method']==='sales')V(b1['params']['sales']);}const W=createsOf(a,'reward')['length']>0x0;let X,Y;if(W)for(const b2 of a['steps']){if(b2['op']==='configure'&&b2['method']==='guard_add'){const b3=b2['params']['amount'];if(b3!==undefined&&b3!==null&&b3['type']==='Fixed'){const b4=numericAmount(b3['value']);if(b4!==undefined)X=Math['max'](X??0x0,b4);}}if(b2['op']==='configure'&&b2['method']==='coin_add'&&/^reward/['test'](b2['id'])){const b5=numericAmount(b2['params']['coin']);if(b5!==undefined)Y=(Y??0x0)+b5;}}const Z=X!==undefined&&P!==undefined,a0=/^(arb\.indemnity|arb\.order|arb\.status|order\.dispute)/,a1=/settled|refunded|reviewed|completed|closed|cancel/i;let a2;if(d!==undefined)for(const b6 of d['edges']){if(b6['next']===''||b6['guards']['length']===0x0)continue;if(!a1['test'](b6['prev']))continue;if(b6['guards']['some'](b7=>b['get'](b7)?.['queries']['some'](b8=>a0['test'](b8)))){a2=b6['prev'];break;}}const a3=a2!==undefined&&(!N||M===0x0),a4=new Map();for(const b7 of createsOf(a,'guard')){a4['set'](b7['id'],b7['params']['root']??b7['params']['logic']);}const a5=d?.['edges']??[],a6=b8=>b8['guards']['length']===0x0||b8['guards']['every'](b9=>{const ba=a4['get'](b9);return ba===undefined||guardWindowOpen(ba);});let a7;for(const b8 of a5){if(b8['prev']!==''||b8['next']==='')continue;const b9=a5['filter'](ba=>ba['prev']===b8['next']);if(b9['length']===0x0)continue;if(b9['every'](ba=>!a6(ba)))a7??=b8['next'];}const a8=c['some'](ba=>ba['guardStep']===undefined&&ba['guardKey']!==undefined),a9=a5['filter'](ba=>ba['guards']['length']>0x0&&ba['guards']['some'](bb=>b['get'](bb)?.['queries']['some'](bc=>a0['test'](bc))));let aa=![];if(a9['length']>0x0&&!a8){const ba=new Set(a9['map'](bd=>bd['next'])['filter'](bd=>bd!=='')),bb=new Set(a9['flatMap'](bd=>bd['guards'])),bc=new Set();for(const bd of c){const be=bd['guardStep']===undefined?undefined:b['get'](bd['guardStep']);if(be===undefined)continue;if(be['acceptedNodes']['length']>0x0){for(const bf of be['acceptedNodes'])bc['add'](bf);}else for(const bg of a5){bg['next']!==''&&bg['guards']['includes'](bd['guardStep'])&&bc['add'](bg['next']);}}for(const bh of c){const bi=bh['guardStep']===undefined?undefined:b['get'](bh['guardStep']);if(bi===undefined)continue;if(bi['queries']['some'](bj=>a0['test'](bj))||bb['has'](bh['guardStep'])){aa=!![];break;}}if(!aa)for(const bj of ba){if(bc['has'](bj)){aa=!![];break;}}}const ab=a9['length']>0x0&&!aa&&!a8,ac=a9[0x0]===undefined?undefined:a9[0x0]['prev']!==''?a9[0x0]['prev']:a9[0x0]['next'],ad=[];for(const bk of a['steps']){const bl=bk['op']==='create'&&bk['object']==='service',bm=bk['op']==='configure'&&bk['method']==='sales';if(!bl&&!bm)continue;const bn=bk['params'];if(typeof bn['description']==='string')ad['push'](bn['description']);if(!Array['isArray'](bn['sales']))continue;for(const bo of bn['sales']){if(typeof bo!=='object'||bo===null)continue;for(const bp of Object['values'](bo)){if(typeof bp==='string')ad['push'](bp);}}}const ae=ad['flatMap'](bq=>extractProseWindowPromises(bq)),af=collectEnforcedWindowMs(a),ag=ae['filter'](bq=>!af['has'](bq['ms'])),ah=[];for(const bq of ad){const br=UNANCHORED_RESTART_RE['exec'](bq);if(br)ah['push'](br[0x0]);}const ai=c['filter'](bs=>bs['track']==='refund'),aj=new Map();for(const bs of d?.['edges']??[]){for(const bt of bs['guards']){const bu=aj['get'](bt)??[];if(bs['prev']!=='')bu['push'](bs['prev']);if(bs['next']!=='')bu['push'](bs['next']);aj['set'](bt,bu);}}let ak,al=![];for(const bv of b['values']()){if(bv['queries']['some'](isPathDependentTimeQuery)){ak??=bv['stepId'];if(d!==undefined){const bw=[...bv['acceptedNodes'],...aj['get'](bv['stepId'])??[]];for(const bx of bw){if(pathCountCap2(d['edges'],bx)>=0x2){al=!![],ak=bv['stepId'];break;}}}}if(al)break;}const am=[...b['values']()]['flatMap'](by=>by['queries']);let an;for(const by of WRITE_ONLY_ENFORCEMENT_SOURCES){for(const bz of createsOf(a,by['object'])){if(by['extract'](bz)&&!am['some'](bA=>bA['startsWith'](by['coverQuery']))){an=by['param'];break;}}if(an!==undefined)break;}const ao=new Set();for(const bA of a['steps']){if(bA['op']==='create'&&bA['object']==='guard')continue;const bB=refsOf(bA['op']==='publish'?bA['target']:bA['params']);for(const bC of bB)ao['add'](bC);if(bA['op']==='configure'){for(const bD of refsOf(bA['target']))ao['add'](bD);}}const ap=[...b['keys']()]['find'](bE=>!ao['has'](bE)),aq=[...b['values']()]['find'](bE=>!h&&bE['queries']['some'](bF=>bF['startsWith']('repository.')))?.['stepId'];let ar;if(f&&d!==undefined)for(const bE of d['forwardGuardRefs']){const bF=b['get'](bE);if(bF===undefined)continue;const bG=bF['table']['some'](bH=>bH['identifier']===TASK_BINDING_SLOT&&bH['b_submission']===!![]);if(!bG){ar=bE;break;}}let as;for(const bH of c){if(bH['guardStep']===undefined||bH['identifierLegs']['length']===0x0)continue;const bI=b['get'](bH['guardStep']);if(bI===undefined)continue;for(const bJ of bH['identifierLegs']){const bK=bI['table']['find'](bL=>bL['identifier']===bJ);if(bK===undefined||bK['b_submission']!==!![]||bK['value_type']!=='Address'){as='slot\x20'+bJ+'\x20of\x20guard\x20\x27'+bH['guardStep']+'\x27';break;}}if(as!==undefined)break;}const at=new Set();for(const {policies:bL}of repositoryPoliciesMerged(a)){for(const bM of bL){const bN=bM?.['name'];if(typeof bN==='string')at['add'](bN);}}const au=[];if(at['size']>0x0)for(const bO of createsOf(a,'guard')){const bP=Array['isArray'](bO['params']['table'])?bO['params']['table']:[];for(const bQ of collectRepoWhereQueries(bO['params']['root']??bO['params']['logic'])){const bR=staticStringOperand(bQ['key'],bP);if(bR===undefined)continue;if(!isPlanLocalObjectOperand(bQ['object'],bP))continue;!at['has'](bR)&&au['push']('\x27'+bR+'\x27\x20in\x20guard\x20\x27'+bO['id']+'\x27');}}const av=new Set();for(const {policies:bS}of repositoryPoliciesMerged(a)){for(const bT of bS){const bU=bT?.['write_guard'];if(!Array['isArray'](bU))continue;for(const bV of bU){const bW=bV?.['guard'],bX=isRef(bW)?bW['$ref']:bW;if(typeof bX==='string')av['add'](bX);}}}let aw,ax=0x0;for(const bY of createsOf(a,'guard')){if(!av['has'](bY['id']))continue;rootNegatesRepoDataHas(bY['params']['root']??bY['params']['logic'])&&(ax++,aw??=bY['id']);}const ay=new Map(createsOf(a,'guard')['map'](bZ=>[bZ['id'],bZ]));let az,aA=0x0,aB,aC=0x0,aD;for(const {policies:bZ}of repositoryPoliciesMerged(a)){for(const c0 of bZ){const c1=c0,c2=c1['write_guard'];if(!Array['isArray'](c2))continue;const c3=typeof c1['id_from']==='string'?c1['id_from']['toLowerCase']():'none',c4=c3==='none'?'caller-keyed':c3+'-keyed',c5=typeof c1['description']==='string'?c1['description']:'';for(const c6 of c2){const c7=c6?.['guard'],c8=isRef(c7)?c7['$ref']:c7,c9=typeof c8==='string'?ay['get'](c8):undefined;if(c9===undefined)continue;const ca=writeGuardLegClass(c9['params']['root']??c9['params']['logic'],c9['params']['table']);if(!ca['hasSignerLeg']||ca['hasBindingLeg'])continue;const cb='guard\x20\x27'+c9['id']+'\x27\x20(policy\x20\x27'+String(c1['name']??'?')+'\x27,\x20'+c4+')';c3==='signer'||c3==='clock'?(aC++,aB??=cb):(aA++,az??=cb),WRITE_GUARD_PROMISE_RE['test'](c5)&&!WRITE_GUARD_TAUTOLOGY_DISCLOSURE_RE['test'](c5)&&(aD??=cb+'\x20—\x20its\x20description\x20promises\x20a\x20bound\x20writer\x20set\x20the\x20guard\x20legs\x20never\x20encode');}}}let aE,aF=0x0;for(const cc of createsOf(a,'service')){const cd=cc['params']['customer_required'];if(!Array['isArray'](cd)||cd['length']===0x0)continue;cc['params']['buy_guard']===undefined&&(aF++,aE??=cc['id']);}let aG,aH=0x0;for(const ce of d?.['edges']??[]){if(ce['prev']===''||ce['guards']['length']===0x0)continue;for(const cf of ce['guards']){const cg=b['get'](cf);if(cg===undefined||cg['acceptedNodes']['length']===0x0)continue;!cg['acceptedNodes']['includes'](ce['prev'])&&(aH++,aG??=cf+'\x20on\x20edge\x20'+ce['prev']+'->'+ce['next']+'\x20(guard\x20pins\x20progress.current\x20in\x20'+('['+cg['acceptedNodes']['join'](',\x20')+']\x20—\x20never\x20\x27'+ce['prev']+'\x27)'));}}let aI;if(d!==undefined){const ch=(d['edges']['find'](cj=>cj['prev']==='')??{'next':''})['next'],ci=new Set([...d['finalRoleNodes'],...d['optionalNodes']]);for(const cj of d['nodes']){if(ci['has'](cj)||cj===ch)continue;const ck=d['edges']['filter'](cm=>cm['prev']===cj&&cm['next']!==cj);if(ck['length']===0x0)continue;const cl=ck['some'](cm=>cm['guards']['length']===0x0||cm['guards']['some'](cn=>{const co=b['get'](cn);return co===undefined||co['acceptedNodes']['length']===0x0||co['acceptedNodes']['includes'](cj);}));if(!cl)aI??=cj;}}let aJ,aK=0x0;{const cm=new Set(d?.['forwardGuardRefs']??[]);for(const cn of d?.['edges']??[])for(const co of cn['guards'])cm['add'](co);for(const cp of c){const cq=/refund|settle|recover/i['test'](cp['track'])||/refund|settle|recover/i['test'](cp['guardKey']??'');if(!cq||cp['guardStep']===undefined)continue;const cs=b['get'](cp['guardStep']);if(cs===undefined)continue;const ct=cs['acceptedNodes']['length']>0x0||cm['has'](cp['guardStep'])||cs['queries']['includes']('order.dispute.open'),cu=cs['queries']['includes']('order.owner')||cs['queries']['includes']('order.agent\x20has')||cs['queries']['includes']('order.service');if(ct||cu)continue;aK++,aJ??=cp['track']+'\x20row\x20on\x20guard\x20\x27'+(cp['guardKey']??cp['guardStep'])+'\x27\x20('+cp['guardStep']+')\x20—\x20pins\x20no\x20progress\x20node,\x20rides\x20no\x20machine\x20edge,\x20references\x20no\x20order\x20identity\x20or\x20dispute\x20state';}}const aL=[];for(const cv of createsOf(a,'guard')){const cw=reachLegsOf(cv);aL['push'](...findReachContradictions(cv['id'],cw['legs'],cw['selfStrict']));}return{...compositionFacts(a),'has_service':f,'has_machine':d!==undefined,'has_repository':h,'sales_step_present':i,'allocator_row_count':c['length'],'refund_row_count':ai['length'],'terminal_count':l['length'],'terminal_nodes_display':l['join'](',\x20'),'pending_allocator_guard_count':F,'pending_guard_total':E['length'],...u===undefined?{}:{'first_uncovered_terminal':u},...w===undefined?{}:{'first_uncovered_final_node':w},...x===undefined?{}:{'first_cancelled_review_bridge':x['prev']+'\x20->\x20'+x['next']+(x['forwardNames']['length']>0x0?'\x20(forward\x20'+x['forwardNames']['join'](',\x20')+')':'')},...B===undefined?{}:{'first_roster_null_perm_edge':B},...D===undefined?{}:{'coarse_perm_bucket_index':D[0x0],'coarse_perm_bucket_classes':[...D[0x1]]['sort']()['join'](',\x20')},...aI===undefined?{}:{'first_pinned_away_exit_node':aI},'direction_blind_pay_edge_count':aK,...aJ===undefined?{}:{'first_direction_blind_pay_edge':aJ},...ak===undefined?{}:{'first_path_dependent_anchor':ak},'path_sensitive':al,...an===undefined?{}:{'first_write_only_unenforced_field':an},...ap===undefined?{}:{'first_orphan_guard':ap},...aq===undefined?{}:{'first_repo_query_without_repository':aq},'repo_write_once_guard_count':ax,...aw===undefined?{}:{'first_repo_write_once_guard':aw},'tautology_write_guard_count':aA,...az===undefined?{}:{'first_tautology_write_guard':az},'keyed_tautology_write_guard_count':aC,...aB===undefined?{}:{'first_keyed_tautology_write_guard':aB},...aD===undefined?{}:{'first_promise_gap_write_guard':aD},'customer_required_unbacked_count':aF,...aE===undefined?{}:{'first_customer_required_unbacked':aE},...ar===undefined?{}:{'first_edge_guard_missing_254':ar},'node_mismatched_guard_count':aH,...aG===undefined?{}:{'first_node_mismatched_guard':aG},'guard_reach_contradiction_count':aL['length'],...aL['length']>0x0?{'first_guard_reach_contradiction':aL[0x0],'guard_reach_contradiction_display':aL['join'](';\x20')}:{},...as===undefined?{}:{'first_alloc_slot_missing':as},...I===undefined?{}:{'first_pending_fund_guard':I,'pending_fund_guard_count':G['length'],'pending_fund_guard_keys_display':G['map'](cx=>cx['key'])['join'](',\x20')},...J===undefined?{}:{'first_pending_buy_guard':J,'pending_buy_guard_count':H['length'],'pending_buy_guard_keys_display':H['map'](cx=>cx['key'])['join'](',\x20')},'has_return_rail':K!==undefined,...K===undefined?{}:{'return_rail_node':K},'has_arbitration_binding':L,'fund_topup_present':N,...M===undefined?{}:{'fund_topup_amount':M},...R?{'fund_ceiling_breach':M<MAX_INDEMNITY_MULTIPLE*O,'fund_ceiling_basis':MAX_INDEMNITY_MULTIPLE+'x\x20the\x20highest\x20SKU\x20price','fund_concurrent_orders_coverable':Math['floor'](M/(MAX_INDEMNITY_MULTIPLE*O))}:{},'fund_ceiling_unverifiable':N&&!R,...X!==undefined?{'reward_bounty_amount':X,...Y!==undefined?{'reward_funding_amount':Y}:{},...Y!==undefined&&X>0x0?{'reward_max_claims':Math['floor'](Y/X)}:{},...Z?{'lowest_sku_price':P,'reward_scale_breach':X>0.5*P,'reward_scale_ratio_display':(X/P)['toFixed'](0x2)+'x\x20the\x20cheapest\x20SKU\x20price'}:{'reward_scale_unverifiable':!![]}}:{},...U>0x0?{'dead_sku_count':U,'first_dead_sku_name':S,'first_dead_sku_bytes':T}:{},...a3?{'first_arb_exit_node':a2,'fund_arb_route_unfunded':!![]}:{},...a7===undefined?{}:{'entry_no_open_exit':!![],'entry_strand_node':a7},...ab&&ac!==undefined?{'arb_promise_without_settle_rail':!![],'arb_promise_node':ac}:{},...a9['length']>0x0&&a8&&ac!==undefined?{'arb_key_plane_opaque':!![],'arb_key_plane_node':ac}:{},...ae['length']>0x0?{'prose_window_promise_count':ae['length'],'enforced_window_ms_display':[...af]['sort']((cx,cy)=>cx-cy)['map'](formatMs)['join'](',\x20')||'none',...ag['length']>0x0?{'prose_time_mismatch_count':ag['length'],'first_prose_time_mismatch':ag[0x0]['quote'],'prose_time_mismatch_display':ag['map'](cx=>cx['quote'])['join'](';\x20')}:{}}:{},...ah['length']>0x0?{'unanchored_window_promise_count':ah['length'],'first_unanchored_window_promise':ah[0x0]}:{},...at['size']>0x0?{'repo_policy_keys_display':[...at]['join'](',\x20'),...au['length']>0x0?{'repo_gate_key_unbacked_count':au['length'],'first_repo_gate_key_unbacked':au[0x0],'repo_gate_key_unbacked_display':au['join'](',\x20')}:{}}:{}};}function planRuleBook(){const a=getJudgmentDoc()['rules']['domains']['plan'];if(!a)throw new Error('factory\x20rule\x20pack\x20\x27plan\x27\x20missing\x20—\x20broken\x20installation');return a['rules'];}export function auditPlan(a){const b=validatePlan(a),c=planFacts(a),{findings:d}=evaluateRuleBook(planRuleBook(),c),e=b['length']>0x0||d['some'](g=>g['level']==='critical'||g['level']==='high');return{'issues':b,'findings':d,'facts':c,'blocking':e};}
@@ -1,5 +1,5 @@
1
1
  import type { BusinessIntent } from "../playbooks/service-build/intent-analyzer.js";
2
- import type { BusinessModuleId } from "../extensions/business-modules.js";
2
+ import type { CapabilityId } from "../extensions/capability.js";
3
3
  import type { Plan } from "./plan.js";
4
4
  export declare function guardObjectName(nameBase: string, templateId: string, occurrence?: number): string;
5
5
  export interface BlueprintNode {
@@ -56,8 +56,8 @@ export interface Blueprint {
56
56
  edges: BlueprintEdge[];
57
57
  constraints: BlueprintConstraint[];
58
58
  evaluationPreview?: BlueprintEvaluationPreview;
59
- adoptedModules: BusinessModuleId[];
59
+ adoptedModules: CapabilityId[];
60
60
  businessIntent: BusinessIntent;
61
61
  plan: Plan;
62
62
  }
63
- export declare function planBlueprint(plan: Plan, intent: BusinessIntent, adoptedModules: BusinessModuleId[]): Blueprint;
63
+ export declare function planBlueprint(plan: Plan, intent: BusinessIntent, adoptedModules: CapabilityId[]): Blueprint;
@@ -1 +1 @@
1
- import{createHash}from'node:crypto';import{MAX_NAME_LENGTH}from'@wowok/wowok';import{createsOf}from'./plan.js';export function guardObjectName(a,b,c=0x0){const d=c>0x0?'_'+(c+0x1):'',e=(a+'_'+b+d)['replace'](/[^A-Za-z0-9_-]/g,'_');if(Buffer['byteLength'](e,'utf8')<=MAX_NAME_LENGTH)return e;const f=createHash('sha1')['update'](e)['digest']('hex')['slice'](0x0,0x8),g=Math['max'](0x8,MAX_NAME_LENGTH-f['length']-0x1);return e['slice'](0x0,g)+'_'+f;}function configValueFromParam(a,b){if(typeof b==='string')return{'type':'string','value':b};if(typeof b==='number')return{'type':'number','value':b};if(typeof b==='boolean')return{'type':'boolean','value':b};if(typeof b==='object'&&b!==null&&'$ref'in b)return{'type':'address_ref','targetId':b['$ref']};return undefined;}function stepToNode(a){if(a['op']!=='create')return undefined;const b={};for(const [c,d]of Object['entries'](a['params'])){const e=configValueFromParam(c,d);if(e!==undefined)b[c]=e;}return{'id':a['id'],'type':a['object'],'purpose':a['notes']??'create\x20'+a['object'],'config':b,'expectedState':{'published':![],'paused':![]}};}function buildEdges(a){const b=[],c=(l,m,n,o)=>{b['push']({'from':l,'to':m,'relation':n,'required':o});},d=createsOf(a,'service')[0x0],e=createsOf(a,'permission')[0x0];d&&e&&c(d['id'],e['id'],'requires_permission',!![]);const f=createsOf(a,'machine')[0x0];d&&f&&c(d['id'],f['id'],'uses_machine',!![]);const g=createsOf(a,'contact')[0x0];d&&g&&c(d['id'],g['id'],'has_contact',![]);const h=createsOf(a,'repository')[0x0];d&&h&&c(d['id'],h['id'],'has_repository',![]);const i=createsOf(a,'arbitration')[0x0];d&&i&&c(d['id'],i['id'],'has_arbitration',![]);const j=createsOf(a,'permission')['find'](l=>l['id']==='permission_arb');i&&j&&c(i['id'],j['id'],'requires_permission',!![]);const k=a['steps']['find'](l=>l['op']==='configure'&&l['method']==='order_allocators');d&&k&&c(d['id'],k['id'],'has_order_allocators',!![]);for(const l of a['steps']){if(l['op']==='create'&&l['object']==='guard'){const m=l['id']['includes']('machine')?f:l['id']['includes']('service')||l['id']['includes']('buy')?d:undefined;m&&c(m['id'],l['id'],'has_guard',![]);}}for(const n of a['steps']){n['op']==='publish'&&c(n['id'],n['target']['$ref'],'publishes',!![]);}return b;}function deriveConstraints(a){const b=[],c=createsOf(a,'service')['length']>0x0,d=createsOf(a,'arbitration')['length']>0x0,e=createsOf(a,'machine')['length']>0x0;return b['push']({'id':'service_permission_bound','level':'hard','description':'Service\x20must\x20be\x20bound\x20to\x20a\x20Permission\x20object','fixSuggestion':'Create\x20Permission\x20object\x20first,\x20then\x20reference\x20it\x20in\x20Service.object.permission'}),d&&b['push']({'id':'arbitration_permission_independent','level':'hard','description':'Arbitration.permission\x20MUST\x20be\x20different\x20from\x20Service.permission','fixSuggestion':'Create\x20a\x20dedicated\x20Permission\x20object\x20for\x20Arbitration,\x20do\x20NOT\x20reuse\x20Service.permission'}),e&&b['push']({'id':'machine_bound_before_publish','level':'hard','description':'Machine\x20must\x20be\x20published\x20and\x20bound\x20to\x20Service\x20before\x20Service.publish','fixSuggestion':'Create\x20and\x20publish\x20Machine\x20before\x20calling\x20Service.publish.\x20Machine\x20cannot\x20be\x20changed\x20after\x20Service\x20is\x20published.'}),b;}export function planBlueprint(a,b,c){const d=[];for(const h of a['steps']){const i=stepToNode(h);if(i!==undefined)d['push'](i);}const e=buildEdges(a),f=deriveConstraints(a),g={'estimatedRiskScore':0x0,'estimatedCompletenessScore':0x0,'keyRisks':[],'strengths':[],'moduleBoosts':{}};return{'nodes':d,'edges':e,'constraints':f,'evaluationPreview':g,'adoptedModules':c,'businessIntent':b,'plan':a};}
1
+ import{createHash}from'node:crypto';import{MAX_NAME_LENGTH}from'@wowok/wowok';import{createsOf}from'./plan.js';export function guardObjectName(a,b,c=0x0){const d=c>0x0?'_'+(c+0x1):'',e=(a+'_'+b+d)['replace'](/[^A-Za-z0-9_-]/g,'_');if(Buffer['byteLength'](e,'utf8')<=MAX_NAME_LENGTH)return e;const f=createHash('sha1')['update'](e)['digest']('hex')['slice'](0x0,0x8),g=Math['max'](0x8,MAX_NAME_LENGTH-f['length']-0x1);return e['slice'](0x0,g)+'_'+f;}function configValueFromParam(a,b){if(typeof b==='string')return{'type':'string','value':b};if(typeof b==='number')return{'type':'number','value':b};if(typeof b==='boolean')return{'type':'boolean','value':b};if(typeof b==='object'&&b!==null&&'$ref'in b)return{'type':'address_ref','targetId':b['$ref']};return undefined;}function stepToNode(a){if(a['op']!=='create')return undefined;const b={};for(const [c,d]of Object['entries'](a['params'])){const e=configValueFromParam(c,d);if(e!==undefined)b[c]=e;}return{'id':a['id'],'type':a['object'],'purpose':a['notes']??'create\x20'+a['object'],'config':b,'expectedState':{'published':![],'paused':![]}};}function buildEdges(a){const b=[],c=(l,m,n,o)=>{b['push']({'from':l,'to':m,'relation':n,'required':o});},d=createsOf(a,'service')[0x0],e=createsOf(a,'permission')[0x0];d&&e&&c(d['id'],e['id'],'requires_permission',!![]);const f=createsOf(a,'machine')[0x0];d&&f&&c(d['id'],f['id'],'uses_machine',!![]);const g=createsOf(a,'contact')[0x0];d&&g&&c(d['id'],g['id'],'has_contact',![]);const h=createsOf(a,'repository')[0x0];d&&h&&c(d['id'],h['id'],'has_repository',![]);const i=createsOf(a,'arbitration')[0x0];d&&i&&c(d['id'],i['id'],'has_arbitration',![]);const j=createsOf(a,'permission')['find'](l=>l['id']==='permission_arb');i&&j&&c(i['id'],j['id'],'requires_permission',!![]);const k=a['steps']['find'](l=>l['op']==='configure'&&l['method']==='order_allocators');d&&k&&c(d['id'],k['id'],'has_order_allocators',!![]);for(const l of a['steps']){if(l['op']==='create'&&l['object']==='guard'){const m=l['id']['includes']('machine')?f:l['id']['includes']('service')||l['id']['includes']('buy')?d:undefined;m&&c(m['id'],l['id'],'has_guard',![]);}}for(const n of a['steps']){n['op']==='publish'&&c(n['id'],n['target']['$ref'],'publishes',!![]);}return b;}function deriveConstraints(a){const b=[],c=createsOf(a,'arbitration')['length']>0x0,d=createsOf(a,'machine')['length']>0x0;return b['push']({'id':'service_permission_bound','level':'hard','description':'Service\x20must\x20be\x20bound\x20to\x20a\x20Permission\x20object','fixSuggestion':'Create\x20Permission\x20object\x20first,\x20then\x20reference\x20it\x20in\x20Service.object.permission'}),c&&b['push']({'id':'arbitration_permission_independent','level':'hard','description':'Arbitration.permission\x20MUST\x20be\x20different\x20from\x20Service.permission','fixSuggestion':'Create\x20a\x20dedicated\x20Permission\x20object\x20for\x20Arbitration,\x20do\x20NOT\x20reuse\x20Service.permission'}),d&&b['push']({'id':'machine_bound_before_publish','level':'hard','description':'Machine\x20must\x20be\x20published\x20and\x20bound\x20to\x20Service\x20before\x20Service.publish','fixSuggestion':'Create\x20and\x20publish\x20Machine\x20before\x20calling\x20Service.publish.\x20Machine\x20cannot\x20be\x20changed\x20after\x20Service\x20is\x20published.'}),b;}export function planBlueprint(a,b,c){const d=[];for(const h of a['steps']){const i=stepToNode(h);if(i!==undefined)d['push'](i);}const e=buildEdges(a),f=deriveConstraints(a),g={'estimatedRiskScore':0x0,'estimatedCompletenessScore':0x0,'keyRisks':[],'strengths':[],'moduleBoosts':{}};return{'nodes':d,'edges':e,'constraints':f,'evaluationPreview':g,'adoptedModules':c,'businessIntent':b,'plan':a};}
@@ -1,5 +1,9 @@
1
1
  import type { IndustryTemplate } from "../knowledge/template-loader.js";
2
2
  import type { JsonValue, Plan } from "./plan.js";
3
+ import type { SupplyChainEmission, SupplyChainPromise } from "./supply-chain-emit.js";
4
+ export { normalizeInlineGuardTable } from "./guard-fill.js";
5
+ export type { ResolvedGuard } from "./guard-fill.js";
6
+ export { normalizeCurrency } from "./emit-phases.js";
3
7
  export type CompilableTemplate = Pick<IndustryTemplate, "id" | "machine_shape" | "guards" | "allocator" | "fee_params" | "arbitration_mode" | "conditional_guards" | "review_mode" | "after_sales_mode" | "acceptance_mode" | "installment_mode" | "affiliate_mode" | "crowdfunding_mode" | "logistics_mode" | "compensation_fund_policy" | "settlement_window_merge"> & {
4
8
  build_notes?: string[];
5
9
  };
@@ -31,9 +35,11 @@ export type GuardResolution = {
31
35
  root: unknown;
32
36
  } | {
33
37
  kind: "omit";
38
+ } | {
39
+ kind: "declare";
40
+ reason: string;
34
41
  };
35
- export type CompileBlockerCode = "MACHINE_EDGES_MISSING" | "SELECTOR_VALUE_UNKNOWN" | "EDGE_UNKNOWN_PREV" | "GUARD_CYCLE" | "RELEASE_EDGE_NO_IDENTITY" | "GUARD_KEY_UNKNOWN" | "GUARD_TEMPLATE_PARAMS" | "GUARD_PATTERN_UNKNOWN" | "GUARD_RESOLUTION_UNKNOWN" | "GUARD_OMIT_UNSUPPORTED" | "GUARD_SLOT_UNKNOWN" | "GUARD_FOREIGN_SERVICE" | "ALLOCATOR_VALUE_MISSING" | "ALLOCATOR_COMPLEMENT_INVALID" | "RATE_SUM_INVALID" | "ALLOCATOR_FIX_UNSUPPORTED" | "REVIEW_NODE_MISSING" | "REVIEW_REWARD_GUARD_MISSING" | "REVIEW_REWARD_UNFUNDED" | "REVIEW_REWARD_AMOUNT_MISSING" | "REVIEW_REWARD_EVIDENCE_NO_STAMP" | "COMPENSATION_FUND_REQUIRED" | "REVIEW_REWARD_UNARMED" | "AFTER_SALES_RAIL_MISSING" | "ACCEPTANCE_JUDGE_NOT_INDEPENDENT" | "ACCEPTANCE_REVISION_UNBOUNDED" | "INSTALLMENT_FUNDING_UNGATED" | "INSTALLMENT_DEPOSIT_STRANDED" | "REPO_GUARD_POLICY_MISSING" | "REPO_GUARD_SUBMISSION_ID_FORBIDDEN" | "REPO_GUARD_SUBMISSION_SLOT_UNKNOWN" | "RAIL_TERMINAL_UNCOVERED" | "RAIL_AWARD_EXIT_MISSING" | "RAIL_POLARITY_COLLISION" | "RAIL_DEAD_LITERAL" | "FORWARD_GUARD_PINNED_TO_NON_PREV" | "FORWARD_GUARD_IDENTITY_PERM_CONFLICT" | "GUARD_IDENTITY_SLOT_NOT_TASKBOUND" | "PAIR_THRESHOLD_UNREACHABLE" | "PAIR_THRESHOLD_SINGLE_OPERATOR" | "AFFILIATE_RAIL_MISSING" | "AFFILIATE_CLAWBACK_UNDISCLOSED" | "CROWDFUNDING_THRESHOLD_GATE_MISSING" | "CROWDFUNDING_AGGREGATE_UNBOUND" | "CROWDFUNDING_SIGNER_KEYED_ROWS" | "CROWDFUNDING_DISCLOSURE_MISSING" | "POLICY_KEY_UNRESOLVED" | "CREDENTIAL_CYCLE" | "NAMED_OPERATOR_RAIL_CONFLICT" | "NAMED_OPERATOR_ROSTER_UNDISCLOSED" | "FORWARD_GUARD_IDENTITY_NAMED_CONFLICT" | "LOGISTICS_COURIER_RAIL_MISSING" | "LOGISTICS_COURIER_FEE_POOLED" | "LOGISTICS_PICKUP_CUTOFF_MISSING" | "LOGISTICS_CARRIER_EVIDENCE_MISSING" | "LOGISTICS_TRANSIT_LOSS_UNCOVERED" | "LOGISTICS_DISPATCH_UNDISCLOSED" | "PERMISSION_INDEX_DROPPED" | "RELEASE_EDGE_PERMISSIONLESS" | "FEE_PARAM_COUPLING_MISMATCH" | "WINDOW_MATH_MISMATCH" | "INCENTIVE_RATING_FLOOR_MISMATCH" | "MONEY_RAIL_CALLER_LEG_MISSING" | "CAMPAIGN_DEADLINE_CONFLICT" | "MERGED_LOCK_MISMATCH";
36
- export declare function normalizeInlineGuardTable(table: unknown[], base: string): unknown[];
42
+ export type CompileBlockerCode = "COMPILE_ORDER_DRIFT" | "MACHINE_EDGES_MISSING" | "SELECTOR_VALUE_UNKNOWN" | "EDGE_UNKNOWN_PREV" | "GUARD_CYCLE" | "RELEASE_EDGE_NO_IDENTITY" | "GUARD_KEY_UNKNOWN" | "GUARD_TEMPLATE_PARAMS" | "GUARD_PATTERN_UNKNOWN" | "GUARD_RESOLUTION_UNKNOWN" | "GUARD_OMIT_UNSUPPORTED" | "GUARD_DECLARE_UNSUPPORTED" | "GUARD_SLOT_UNKNOWN" | "GUARD_FOREIGN_SERVICE" | "GUARD_EMPTY_VEC_ROW" | "CURRENCY_UNRESOLVED" | "ALLOCATOR_VALUE_MISSING" | "ALLOCATOR_COMPLEMENT_INVALID" | "RATE_SUM_INVALID" | "ALLOCATOR_FIX_UNSUPPORTED" | "REVIEW_NODE_MISSING" | "REVIEW_REWARD_GUARD_MISSING" | "REVIEW_REWARD_UNFUNDED" | "REVIEW_REWARD_AMOUNT_MISSING" | "REVIEW_REWARD_EVIDENCE_NO_STAMP" | "COMPENSATION_FUND_REQUIRED" | "REVIEW_REWARD_UNARMED" | "AFTER_SALES_RAIL_MISSING" | "ACCEPTANCE_JUDGE_NOT_INDEPENDENT" | "ACCEPTANCE_REVISION_UNBOUNDED" | "INSTALLMENT_FUNDING_UNGATED" | "INSTALLMENT_DEPOSIT_STRANDED" | "REPO_GUARD_POLICY_MISSING" | "REPO_POLICY_WRITE_GUARD_REQUIRED" | "REPO_GUARD_SUBMISSION_ID_FORBIDDEN" | "REPO_GUARD_SUBMISSION_SLOT_UNKNOWN" | "RAIL_TERMINAL_UNCOVERED" | "RAIL_AWARD_EXIT_MISSING" | "RAIL_CLAIMED_BY_LEG" | "RAIL_NO_CALLER_IDENTITY_BOUND" | "RAIL_DEAD_LITERAL" | "FORWARD_GUARD_PINNED_TO_NON_PREV" | "FORWARD_GUARD_IDENTITY_PERM_CONFLICT" | "GUARD_IDENTITY_SLOT_NOT_TASKBOUND" | "PAIR_THRESHOLD_UNREACHABLE" | "PAIR_THRESHOLD_SINGLE_OPERATOR" | "AFFILIATE_RAIL_MISSING" | "AFFILIATE_CLAWBACK_UNDISCLOSED" | "CROWDFUNDING_THRESHOLD_GATE_MISSING" | "CROWDFUNDING_AGGREGATE_UNBOUND" | "CROWDFUNDING_SIGNER_KEYED_ROWS" | "CROWDFUNDING_DISCLOSURE_MISSING" | "POLICY_KEY_UNRESOLVED" | "CREDENTIAL_CYCLE" | "NAMED_OPERATOR_RAIL_CONFLICT" | "NAMED_OPERATOR_ROSTER_UNDISCLOSED" | "FORWARD_GUARD_IDENTITY_NAMED_CONFLICT" | "LOGISTICS_COURIER_RAIL_MISSING" | "LOGISTICS_COURIER_FEE_POOLED" | "LOGISTICS_PICKUP_CUTOFF_MISSING" | "LOGISTICS_CARRIER_EVIDENCE_MISSING" | "LOGISTICS_TRANSIT_LOSS_UNCOVERED" | "LOGISTICS_DISPATCH_UNDISCLOSED" | "PERMISSION_INDEX_DROPPED" | "RELEASE_EDGE_PERMISSIONLESS" | "FEE_PARAM_COUPLING_MISMATCH" | "WINDOW_MATH_MISMATCH" | "INCENTIVE_RATING_FLOOR_MISMATCH" | "INCENTIVE_WINDOW_MISMATCH" | "DAYS_SLOT_UNIT_MISMATCH" | "WINDOW_TRUNCATION_ZERO" | "MONEY_RAIL_CALLER_LEG_MISSING" | "CAMPAIGN_DEADLINE_CONFLICT" | "MERGED_LOCK_MISMATCH" | "SALE_ZERO_PRICE" | "CROWDFUNDING_DEADLINE_UNSET" | "CROWDFUNDING_DEADLINE_PAST" | "CROWDFUNDING_DEADLINE_IMMINENT" | "SUPPLY_CHAIN_PROMISE_INCOMPLETE" | "SUPPLY_CHAIN_GATE_TEMPLATE" | "SUPPLY_CHAIN_ACK_WITHOUT_DEADLINE" | "SUPPLY_CHAIN_PAYOUT_RATE" | "SUPPLY_CHAIN_ID_CONFLICT";
37
43
  export interface CompileBlocker {
38
44
  code: CompileBlockerCode;
39
45
  detail: string;
@@ -44,6 +50,7 @@ export interface CompileOptions {
44
50
  merchantPermissionIndex?: number;
45
51
  guardResolutions?: Record<string, GuardResolution>;
46
52
  buildTimeMs?: number;
53
+ supplyChain?: SupplyChainPromise[];
47
54
  }
48
55
  export interface CompileResult {
49
56
  plan: Plan;
@@ -51,5 +58,19 @@ export interface CompileResult {
51
58
  unresolved: GuardSpec[];
52
59
  blockers: CompileBlocker[];
53
60
  omitted: string[];
61
+ supplyChain?: SupplyChainEmission[];
62
+ }
63
+ export interface AllocatorRowData {
64
+ track: "settlement" | "refund";
65
+ recipient: "entity" | "guard_identifier" | "signer";
66
+ recipient_key?: string;
67
+ mode: "amount" | "rate" | "surplus";
68
+ value?: string | number;
69
+ value_from?: string;
70
+ value_from_complement?: string;
71
+ fix?: string | number;
72
+ fix_from?: string;
73
+ guard_key?: string;
74
+ note?: string;
54
75
  }
55
- export declare function compileTemplate(template: CompilableTemplate, inputs: Record<string, JsonValue>, options?: CompileOptions): CompileResult;
76
+ export declare function compileTemplate(template: CompilableTemplate, rawInputs: Record<string, JsonValue>, options?: CompileOptions): CompileResult;