@wowok/agent-mcp 3.4.0 → 3.4.1

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 (405) 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/audit-rules.d.ts +2 -2
  125. package/dist/knowledge/audit-rules.js +1 -1
  126. package/dist/knowledge/baselines/judgment-baselines.json +21 -2
  127. package/dist/knowledge/baselines/rules/oracle.json +120 -0
  128. package/dist/knowledge/baselines/rules/plan.json +384 -17
  129. package/dist/knowledge/baselines/rules/progress.json +20 -2
  130. package/dist/knowledge/builtin-templates.d.ts +12 -1
  131. package/dist/knowledge/builtin-templates.js +1 -1
  132. package/dist/knowledge/component-schema.js +1 -1
  133. package/dist/knowledge/contact-templates.d.ts +0 -1
  134. package/dist/knowledge/contact-templates.js +1 -1
  135. package/dist/knowledge/dynamic-pricing.js +1 -1
  136. package/dist/knowledge/fee-param-bindings.js +1 -1
  137. package/dist/knowledge/fund-layer.d.ts +1 -0
  138. package/dist/knowledge/fund-layer.js +1 -1
  139. package/dist/knowledge/game-scenarios.js +1 -1
  140. package/dist/knowledge/getting-started.js +1 -1
  141. package/dist/knowledge/guard-binding-table.d.ts +52 -0
  142. package/dist/knowledge/guard-binding-table.js +1 -0
  143. package/dist/knowledge/guard-binding-verifier.d.ts +30 -0
  144. package/dist/knowledge/guard-binding-verifier.js +1 -0
  145. package/dist/knowledge/guard-bindings.js +1 -1
  146. package/dist/knowledge/guard-blueprint.d.ts +68 -0
  147. package/dist/knowledge/guard-blueprint.js +1 -0
  148. package/dist/knowledge/guard-design-patterns.d.ts +1 -1
  149. package/dist/knowledge/guard-design-patterns.js +1 -1
  150. package/dist/knowledge/guard-field-cognition.js +1 -1
  151. package/dist/knowledge/guard-host-context.d.ts +24 -0
  152. package/dist/knowledge/guard-host-context.js +1 -0
  153. package/dist/knowledge/guard-lint.js +1 -1
  154. package/dist/knowledge/guard-node-gates.d.ts +3 -0
  155. package/dist/knowledge/guard-node-gates.js +1 -1
  156. package/dist/knowledge/guard-puzzle.js +1 -1
  157. package/dist/knowledge/guard-render.js +1 -1
  158. package/dist/knowledge/guard-risk.js +1 -1
  159. package/dist/knowledge/guard-submission-prompt.d.ts +11 -0
  160. package/dist/knowledge/guard-submission-prompt.js +1 -1
  161. package/dist/knowledge/guard-templates.d.ts +1 -1
  162. package/dist/knowledge/guard-templates.js +1 -1
  163. package/dist/knowledge/guard-translation.js +1 -1
  164. package/dist/knowledge/index.d.ts +1 -1
  165. package/dist/knowledge/index.js +1 -1
  166. package/dist/knowledge/industry-generalizer.d.ts +6 -1
  167. package/dist/knowledge/industry-generalizer.js +1 -1
  168. package/dist/knowledge/industry-registry.js +1 -1
  169. package/dist/knowledge/jsonrpc-enum.d.ts +38 -0
  170. package/dist/knowledge/jsonrpc-enum.js +1 -1
  171. package/dist/knowledge/machine-topology.js +1 -1
  172. package/dist/knowledge/machine-translation.js +1 -1
  173. package/dist/knowledge/object-dependency.d.ts +31 -0
  174. package/dist/knowledge/object-dependency.js +1 -0
  175. package/dist/knowledge/onchain-constants.d.ts +2 -0
  176. package/dist/knowledge/onchain-constants.js +1 -1
  177. package/dist/knowledge/param-schema.d.ts +23 -0
  178. package/dist/knowledge/param-schema.js +1 -1
  179. package/dist/knowledge/param-tiers.js +1 -1
  180. package/dist/knowledge/passport-ledger.js +1 -1
  181. package/dist/knowledge/path-oracle/coverage.d.ts +16 -0
  182. package/dist/knowledge/path-oracle/coverage.js +1 -0
  183. package/dist/knowledge/path-oracle/index.d.ts +5 -0
  184. package/dist/knowledge/path-oracle/index.js +1 -0
  185. package/dist/knowledge/path-oracle/products/food-delivery.d.ts +2 -0
  186. package/dist/knowledge/path-oracle/products/food-delivery.js +1 -0
  187. package/dist/knowledge/path-oracle/schema.d.ts +188 -0
  188. package/dist/knowledge/path-oracle/schema.js +1 -0
  189. package/dist/knowledge/pattern-resolutions.d.ts +2 -0
  190. package/dist/knowledge/pattern-resolutions.js +1 -1
  191. package/dist/knowledge/progress-ledger.js +1 -1
  192. package/dist/knowledge/progress-risk.js +1 -1
  193. package/dist/knowledge/projection.spec.js +1 -1
  194. package/dist/knowledge/protocol-facts.js +1 -1
  195. package/dist/knowledge/requirement-families.d.ts +13 -0
  196. package/dist/knowledge/requirement-families.js +1 -0
  197. package/dist/knowledge/reward-ledger.js +1 -1
  198. package/dist/knowledge/scenario-modes.d.ts +1 -0
  199. package/dist/knowledge/scenario-modes.js +1 -1
  200. package/dist/knowledge/semantic-ir.d.ts +4 -0
  201. package/dist/knowledge/semantic-ir.js +1 -1
  202. package/dist/knowledge/service-ledger.d.ts +1 -1
  203. package/dist/knowledge/service-ledger.js +1 -1
  204. package/dist/knowledge/sku-name-gate.d.ts +17 -0
  205. package/dist/knowledge/sku-name-gate.js +1 -0
  206. package/dist/knowledge/supply-chain.d.ts +9 -0
  207. package/dist/knowledge/supply-chain.js +1 -1
  208. package/dist/knowledge/template-loader.d.ts +14 -6
  209. package/dist/knowledge/template-loader.js +1 -1
  210. package/dist/knowledge/template-nav.d.ts +3 -1
  211. package/dist/knowledge/template-nav.js +1 -1
  212. package/dist/knowledge/template-prose.d.ts +1 -1
  213. package/dist/knowledge/template-registry.js +1 -1
  214. package/dist/knowledge/template-scanner.d.ts +62 -0
  215. package/dist/knowledge/template-scanner.js +1 -1
  216. package/dist/knowledge/template-test-profiles.js +1 -1
  217. package/dist/knowledge/tools-reference.js +1 -1
  218. package/dist/knowledge/workflow-guidance.d.ts +5 -0
  219. package/dist/knowledge/workflow-guidance.js +1 -1
  220. package/dist/monitor/MonitorLoop.js +1 -1
  221. package/dist/participation/radar-core.js +1 -1
  222. package/dist/participation/time-window.js +1 -1
  223. package/dist/persona/address-format.d.ts +0 -1
  224. package/dist/persona/address-format.js +1 -1
  225. package/dist/persona/bridge.js +1 -1
  226. package/dist/persona/index.d.ts +0 -2
  227. package/dist/persona/index.js +1 -1
  228. package/dist/persona/model.js +1 -1
  229. package/dist/persona/persona-audit.spec.js +1 -1
  230. package/dist/persona/types.d.ts +6 -0
  231. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  232. package/dist/playbooks/service-build/game-theory.d.ts +2 -2
  233. package/dist/playbooks/service-build/intent-analyzer.js +1 -1
  234. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  235. package/dist/playbooks/service-build/merchant-guide.d.ts +50 -23
  236. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  237. package/dist/playbooks/service-build/migration-planner.d.ts +2 -0
  238. package/dist/playbooks/service-build/migration-planner.js +1 -1
  239. package/dist/playbooks/service-build/mode-actions.js +1 -1
  240. package/dist/playbooks/service-build/object-panorama.d.ts +8 -0
  241. package/dist/playbooks/service-build/object-panorama.js +1 -1
  242. package/dist/playbooks/service-build/participation-radar.js +1 -1
  243. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  244. package/dist/playbooks/service-build/reverse-mapping.d.ts +6 -0
  245. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  246. package/dist/playbooks/service-build/service-panorama.d.ts +1 -0
  247. package/dist/playbooks/service-build/service-panorama.js +1 -1
  248. package/dist/playbooks/service-build/service-quote.js +1 -1
  249. package/dist/playbooks/service-build/service-quote.spec.js +1 -1
  250. package/dist/playbooks/service-build/workflow-design-assessment.d.ts +10 -1
  251. package/dist/playbooks/service-build/workflow-design-assessment.js +1 -1
  252. package/dist/review/index.js +1 -1
  253. package/dist/review/repository.js +1 -1
  254. package/dist/safety/confirm-gate.js +1 -1
  255. package/dist/schema/benchmark-migration/index.d.ts +104 -0
  256. package/dist/schema/benchmark-migration/index.js +1 -1
  257. package/dist/schema/call/allocation.d.ts +15 -6
  258. package/dist/schema/call/allocation.js +1 -1
  259. package/dist/schema/call/base.d.ts +256 -0
  260. package/dist/schema/call/base.js +1 -1
  261. package/dist/schema/call/bridge.d.ts +32 -6
  262. package/dist/schema/call/demand.d.ts +15 -6
  263. package/dist/schema/call/demand.js +1 -1
  264. package/dist/schema/call/guard.d.ts +8 -8
  265. package/dist/schema/call/guard.js +1 -1
  266. package/dist/schema/call/handler.d.ts +3 -0
  267. package/dist/schema/call/handler.js +1 -1
  268. package/dist/schema/call/machine.d.ts +32 -8
  269. package/dist/schema/call/machine.js +1 -1
  270. package/dist/schema/call/order.d.ts +26 -8
  271. package/dist/schema/call/order.js +1 -1
  272. package/dist/schema/call/payment.d.ts +20 -8
  273. package/dist/schema/call/payment.js +1 -1
  274. package/dist/schema/call/permission-handler.js +1 -1
  275. package/dist/schema/call/permission.d.ts +330 -114
  276. package/dist/schema/call/permission.js +1 -1
  277. package/dist/schema/call/personal.d.ts +10 -4
  278. package/dist/schema/call/personal.js +1 -1
  279. package/dist/schema/call/progress.d.ts +16 -4
  280. package/dist/schema/call/reward.d.ts +10 -4
  281. package/dist/schema/call/reward.js +1 -1
  282. package/dist/schema/call/semantic.d.ts +1 -0
  283. package/dist/schema/call/semantic.js +1 -1
  284. package/dist/schema/call/service.d.ts +128 -40
  285. package/dist/schema/call/service.js +1 -1
  286. package/dist/schema/call/treasury.d.ts +15 -6
  287. package/dist/schema/call/treasury.js +1 -1
  288. package/dist/schema/common/index.js +1 -1
  289. package/dist/schema/config/index.d.ts +61 -0
  290. package/dist/schema/config/index.js +1 -1
  291. package/dist/schema/envelope-unify.d.ts +4 -0
  292. package/dist/schema/envelope-unify.js +1 -0
  293. package/dist/schema/evaluation/index.d.ts +216 -19
  294. package/dist/schema/evaluation/index.js +1 -1
  295. package/dist/schema/goal/index.d.ts +47 -0
  296. package/dist/schema/goal/planning.d.ts +115 -1
  297. package/dist/schema/goal/planning.js +1 -1
  298. package/dist/schema/industry-pack/index.d.ts +137 -6
  299. package/dist/schema/industry-pack/index.js +1 -1
  300. package/dist/schema/industry-pack/modes.d.ts +6 -6
  301. package/dist/schema/keeper/index.d.ts +26 -0
  302. package/dist/schema/local/index.d.ts +137 -0
  303. package/dist/schema/local/index.js +1 -1
  304. package/dist/schema/local/wip.d.ts +6 -0
  305. package/dist/schema/local/wip.js +1 -1
  306. package/dist/schema/messenger/index.d.ts +26 -0
  307. package/dist/schema/operations.d.ts +342 -83
  308. package/dist/schema/operations.js +1 -1
  309. package/dist/schema/persona/index.d.ts +2907 -640
  310. package/dist/schema/persona/index.js +1 -1
  311. package/dist/schema/query/bi.d.ts +145 -4
  312. package/dist/schema/query/bi.js +1 -1
  313. package/dist/schema/query/index.d.ts +266 -73
  314. package/dist/schema/query/index.js +1 -1
  315. package/dist/schema/schema-query/index.d.ts +1 -1
  316. package/dist/schema/schema-query/index.js +1 -1
  317. package/dist/schema/schema-version.js +1 -1
  318. package/dist/schema/utils/permission-machine-check.d.ts +2 -0
  319. package/dist/schema/utils/permission-machine-check.js +1 -1
  320. package/dist/schema/watch/index.d.ts +16 -0
  321. package/dist/schema/watch/index.js +1 -1
  322. package/dist/schema/workflow/index.d.ts +2 -2
  323. package/dist/schema/workflow/index.js +1 -1
  324. package/dist/schema-query-impl/index.d.ts +1 -1
  325. package/dist/schema-query-impl/index.js +1 -1
  326. package/dist/schemas/account_operation.output.json +94 -0
  327. package/dist/schemas/benchmark_migration_operation.output.json +338 -9
  328. package/dist/schemas/benchmark_migration_operation.schema.json +26 -1
  329. package/dist/schemas/bridge_operation.output.json +94 -0
  330. package/dist/schemas/config_operation.output.json +352 -0
  331. package/dist/schemas/config_operation.schema.json +20 -2
  332. package/dist/schemas/evaluation_operation.output.json +570 -4
  333. package/dist/schemas/evaluation_operation.schema.json +194 -3
  334. package/dist/schemas/goal_operation.schema.json +183 -0
  335. package/dist/schemas/index.json +1 -1
  336. package/dist/schemas/industry_pack_operation.output.json +621 -0
  337. package/dist/schemas/industry_pack_operation.schema.json +20 -2
  338. package/dist/schemas/keeper_operation.output.json +94 -0
  339. package/dist/schemas/local_cache_operation.output.json +94 -0
  340. package/dist/schemas/local_history_operation.output.json +94 -0
  341. package/dist/schemas/local_info_operation.output.json +94 -0
  342. package/dist/schemas/local_mark_operation.output.json +94 -0
  343. package/dist/schemas/messenger_operation.output.json +94 -0
  344. package/dist/schemas/monitor_events.output.json +94 -0
  345. package/dist/schemas/monitor_subscription.output.json +94 -0
  346. package/dist/schemas/onchain_events.output.json +94 -0
  347. package/dist/schemas/onchain_operations.output.json +313 -1
  348. package/dist/schemas/onchain_operations.schema.json +1248 -664
  349. package/dist/schemas/onchain_operations_allocation.schema.json +30 -15
  350. package/dist/schemas/onchain_operations_arbitration.schema.json +9 -2
  351. package/dist/schemas/onchain_operations_contact.schema.json +8 -1
  352. package/dist/schemas/onchain_operations_demand.schema.json +29 -14
  353. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -1
  354. package/dist/schemas/onchain_operations_guard.schema.json +290 -105
  355. package/dist/schemas/onchain_operations_machine.schema.json +49 -34
  356. package/dist/schemas/onchain_operations_order.schema.json +63 -40
  357. package/dist/schemas/onchain_operations_payment.schema.json +26 -11
  358. package/dist/schemas/onchain_operations_permission.schema.json +362 -235
  359. package/dist/schemas/onchain_operations_personal.schema.json +27 -15
  360. package/dist/schemas/onchain_operations_progress.schema.json +45 -30
  361. package/dist/schemas/onchain_operations_proof.schema.json +8 -1
  362. package/dist/schemas/onchain_operations_repository.schema.json +8 -1
  363. package/dist/schemas/onchain_operations_reward.schema.json +32 -17
  364. package/dist/schemas/onchain_operations_service.schema.json +221 -124
  365. package/dist/schemas/onchain_operations_treasury.schema.json +32 -17
  366. package/dist/schemas/onchain_table_data.output.json +258 -6
  367. package/dist/schemas/onchain_table_data.schema.json +92 -52
  368. package/dist/schemas/persona_operation.output.json +7752 -0
  369. package/dist/schemas/persona_operation.schema.json +1232 -4
  370. package/dist/schemas/query_toolkit.output.json +756 -116
  371. package/dist/schemas/query_toolkit.schema.json +138 -7
  372. package/dist/schemas/schema_query.schema.json +1 -1
  373. package/dist/schemas/watch_operation.output.json +83 -0
  374. package/dist/schemas/wip_file.output.json +8 -0
  375. package/dist/schemas/workflow_operation.schema.json +2 -2
  376. package/dist/tools/handlers/benchmark-migration.d.ts +11 -3
  377. package/dist/tools/handlers/benchmark-migration.js +1 -1
  378. package/dist/tools/handlers/config.js +1 -1
  379. package/dist/tools/handlers/evaluation.js +1 -1
  380. package/dist/tools/handlers/evaluation.spec.js +1 -1
  381. package/dist/tools/handlers/industry-pack.js +1 -1
  382. package/dist/tools/handlers/onchain.d.ts +20 -0
  383. package/dist/tools/handlers/onchain.js +1 -1
  384. package/dist/tools/handlers/persona.js +1 -1
  385. package/dist/tools/handlers/query.d.ts +8 -0
  386. package/dist/tools/handlers/query.js +1 -1
  387. package/dist/tools/handlers/winner-derivation.d.ts +20 -0
  388. package/dist/tools/handlers/winner-derivation.js +1 -0
  389. package/dist/tools/handlers/wip-upload.js +1 -1
  390. package/dist/tools/index.d.ts +1 -0
  391. package/dist/tools/index.js +1 -1
  392. package/dist/tools/registry/business.js +1 -1
  393. package/dist/tools/registry/config.js +1 -1
  394. package/dist/tools/registry/evaluation.js +1 -1
  395. package/dist/tools/registry/identity.js +1 -1
  396. package/dist/tools/registry/query.js +1 -1
  397. package/dist/tools/transport-integrity.d.ts +7 -0
  398. package/dist/tools/transport-integrity.js +1 -0
  399. package/dist/tools/upgrade-check.js +1 -1
  400. package/dist/tools/wrap.d.ts +5 -0
  401. package/dist/tools/wrap.js +1 -1
  402. package/package.json +2 -2
  403. package/dist/extensions/business-modules.d.ts +0 -54
  404. package/dist/extensions/business-modules.js +0 -1
  405. package/dist/schemas/guard-templates.json +0 -379
@@ -1 +1 @@
1
- export const GAME_SCENARIOS=[{'id':'GS-REVIEW-DELAY','attack_role':'customer','victim_role':'merchant','move':'Walks\x20a\x20review\x20through\x20the\x20detour\x20path\x20instead\x20of\x20the\x20reviewed\x20node,\x20pushing\x20the\x20settlement\x20anchor\x20out\x20by\x20the\x20review\x20window\x20(14\x20days).','context_filter':{'phases':['in_flight','post']},'expected_detection':'Settlement/reward\x20windows\x20anchor\x20on\x20the\x20delivered\x20ENTRY\x20time,\x20never\x20a\x20drifting\x20current_time\x20—\x20detour\x20reviews\x20cannot\x20move\x20the\x20anchor.','detection_refs':[{'anchor':'TIME-ANCHOR-01','registry':'extensions/business-modules.ts'},{'anchor':'after_sales_window_anchored','registry':'extensions/business-modules.ts'}],'observed_in':'E-10/D-14'},{'id':'GS-SELF-CONFIRM','attack_role':'merchant','victim_role':'customer','move':'Self-confirms\x20delivery\x20(advances\x20a\x20delivered-class\x20node\x20reserved\x20to\x20the\x20buyer).','context_filter':{'phases':['in_flight']},'expected_detection':'delivered-class\x20nodes\x20are\x20order-holder\x20gated\x20(namedOperator\x20\x22\x22\x20resolves\x20to\x20the\x20order\x20holder\x20only)\x20—\x20a\x20merchant-side\x20confirm\x20aborts\x20at\x20the\x20chain\x20boundary.','detection_refs':[{'anchor':'namedOperator\x20\x27\x27\x20(empty)\x20=\x20order\x20holder','registry':'chain-semantics/object-graph.ts'}],'observed_in':'mainnet\x20abort\x207'},{'id':'GS-FAKE-RECEIPT','attack_role':'any','victim_role':'customer','move':'Forges\x20a\x20refund/receipt\x20proof\x20naming\x20someone\x20else\x27s\x20order\x20or\x20authorship.','context_filter':{'phases':['in_flight','dispute']},'expected_detection':'Guard\x20submissions\x20bind\x20proofs\x20to\x20the\x20paying\x20order\x20AND\x20the\x20owner\x27s\x20authorship\x20at\x20write\x20time\x20—\x20a\x20forged\x20receipt\x20is\x20rejected,\x20nothing\x20is\x20written.','detection_refs':[{'anchor':'proof-about==order\x20&&\x20proof-creator==owner','registry':'chain-semantics/object-graph.ts'}],'observed_in':'field-tested\x20rejection'},{'id':'GS-REFUND-REPLAY','attack_role':'any','victim_role':'both','move':'Replays\x20a\x20refund/claim\x20to\x20draw\x20the\x20escrow\x20twice.','context_filter':{'phases':['in_flight','post']},'expected_detection':'Protocol-owned\x20once\x20slots\x20(254/255)\x20arm\x20per\x20order/allocation\x20—\x20a\x20replay\x20aborts\x20on\x20the\x20already-spent\x20slot.','detection_refs':[{'anchor':'254/255\x20are\x20the\x20two\x20protocol-owned\x20once\x20slots','registry':'knowledge/allocation-ledger.ts'}],'observed_in':'mainnet\x20abort\x2016'},{'id':'GS-DUAL-DRAW','attack_role':'arbitrator','victim_role':'both','move':'Draws\x20the\x20refund\x20rail\x20AND\x20the\x20arbitration\x20indemnity\x20for\x20the\x20same\x20order\x20(double\x20remedy).','context_filter':{'phases':['dispute','post']},'expected_detection':'Dual-rail\x20separation:\x20the\x20escrow\x20allocator\x20never\x20reads\x20the\x20claim\x20marker\x20and\x20the\x20compensation\x20write\x20never\x20touches\x20escrow\x20—\x20template\x20convention\x20must\x20assert\x20claim-none\x20on\x20the\x20refund\x20guard\x20(audit\x20DUAL-RAIL-01).','detection_refs':[{'anchor':'A-3\x20dual\x20rail','registry':'chain-semantics/fund-flow.ts'},{'anchor':'after_sales_no_double_remedy','registry':'extensions/business-modules.ts'}],'observed_in':'A-3'},{'id':'GS-HOLD-GRAB','attack_role':'merchant','victim_role':'both','move':'Grabs\x20the\x20hold/lock\x20primitive\x20on\x20a\x20Progress\x20without\x20satisfying\x20its\x20guard.','context_filter':{'phases':['in_flight']},'expected_detection':'hold\x20semantics\x20are\x20registered\x20as\x20a\x20chain\x20finding\x20(A-6\x20family)\x20—\x20the\x20keeper/monitoring\x20surface\x20watches\x20for\x20guard-bypassing\x20holds.','detection_refs':[{'anchor':'\x22A-6\x22','registry':'chain-semantics/object-graph.ts'}],'observed_in':'A-6'},{'id':'GS-REFUND-RAIL-REMOVAL','attack_role':'merchant','victim_role':'customer','move':'Publishes\x20a\x20machine\x20with\x20the\x20refund\x20rail\x20removed\x20(zero\x20allocator\x20rows\x20/\x20no\x20refund\x20exit),\x20stranding\x20the\x20buyer\x27s\x20escrow.','context_filter':{'phases':['build']},'expected_detection':'Build-time\x20audits\x20block\x20it:\x20zero\x20allocator\x20rows\x20abort\x20materialization\x20(PLAN-ALLOC-01)\x20and\x20an\x20uncovered\x20terminal\x20has\x20no\x20fund\x20exit\x20(FUND-EXIT-01).','detection_refs':[{'anchor':'PLAN-ALLOC-01','registry':'composition/materialize.ts'},{'anchor':'FUND-EXIT-01','registry':'composition/compile.ts'}],'observed_in':'B-1/F-2'},{'id':'GS-INDEMNITY-HIJACK','attack_role':'arbitrator','victim_role':'customer','move':'Re-binds\x20the\x20compensation\x20claim\x20(claimed_by)\x20to\x20divert\x20the\x20indemnity\x20payout.','context_filter':{'phases':['dispute','post']},'expected_detection':'Compensation\x20claims\x20require\x20the\x20arbitration\x20whitelist\x20and\x20hit\x20the\x20permission-conflict\x20check\x20—\x20a\x20re-bind\x20aborts\x20(E33).','detection_refs':[{'anchor':'E33\x20conflict\x20check','registry':'chain-semantics/fund-flow.ts'}],'observed_in':'governance\x20review'},{'id':'GS-UPSTREAM-STALL','attack_role':'merchant','victim_role':'supplier','move':'Withholds\x20the\x20guard-gated\x20upstream\x20forward\x20that\x20releases\x20the\x20sub-order\x27s\x20share,\x20parking\x20the\x20supplier\x27s\x20payout\x20in\x20the\x20upstream\x20allocation\x20pool\x20indefinitely.','context_filter':{'phases':['in_flight']},'expected_detection':'allocation-advice\x27s\x20supplier\x20line\x20names\x20the\x20upstream\x20pool\x20as\x20context\x20and\x20routes\x20the\x20chase\x20through\x20the\x20upstream\x20order\x20(or\x20its\x20dispute\x20path)\x20—\x20never\x20a\x20silent\x20wait\x20past\x20the\x20after-sales\x20window.','detection_refs':[{'anchor':'firing\x20the\x20guard\x20is\x20the\x20upstream\x20merchant\x27s\x20move','registry':'participation/allocation-advice.ts'}],'observed_in':'G2'}];export function scenarioById(a){return GAME_SCENARIOS['find'](b=>b['id']===a)??null;}export function counterpartyMoves(a,b){if(a==='neutral'||a==='system')return[];return GAME_SCENARIOS['filter'](c=>c['context_filter']['phases']['includes'](b)&&(c['victim_role']===a||c['victim_role']==='both'&&isTransactionSide(a)));}function isTransactionSide(a){return a==='customer'||a==='merchant';}
1
+ export const GAME_SCENARIOS=[{'id':'GS-REVIEW-DELAY','attack_role':'customer','victim_role':'merchant','move':'Walks\x20a\x20review\x20through\x20the\x20detour\x20path\x20instead\x20of\x20the\x20reviewed\x20node,\x20pushing\x20the\x20settlement\x20anchor\x20out\x20by\x20the\x20review\x20window\x20(14\x20days).','context_filter':{'phases':['in_flight','post']},'expected_detection':'Settlement/reward\x20windows\x20anchor\x20on\x20the\x20delivered\x20ENTRY\x20time,\x20never\x20a\x20drifting\x20current_time\x20—\x20detour\x20reviews\x20cannot\x20move\x20the\x20anchor.','detection_refs':[{'anchor':'TIME-ANCHOR-01','registry':'knowledge/baselines/rules/plan.json'},{'anchor':'after_sales_window_anchored','registry':'extensions/capability.ts'}],'observed_in':'E-10/D-14'},{'id':'GS-SELF-CONFIRM','attack_role':'merchant','victim_role':'customer','move':'Self-confirms\x20delivery\x20(advances\x20a\x20delivered-class\x20node\x20reserved\x20to\x20the\x20buyer).','context_filter':{'phases':['in_flight']},'expected_detection':'delivered-class\x20nodes\x20are\x20order-holder\x20gated\x20(namedOperator\x20\x22\x22\x20resolves\x20to\x20the\x20order\x20holder\x20only)\x20—\x20a\x20merchant-side\x20confirm\x20aborts\x20at\x20the\x20chain\x20boundary.','detection_refs':[{'anchor':'namedOperator\x20\x27\x27\x20(empty)\x20=\x20order\x20holder','registry':'chain-semantics/object-graph.ts'}],'observed_in':'mainnet\x20abort\x207'},{'id':'GS-FAKE-RECEIPT','attack_role':'any','victim_role':'customer','move':'Forges\x20a\x20refund/receipt\x20proof\x20naming\x20someone\x20else\x27s\x20order\x20or\x20authorship.','context_filter':{'phases':['in_flight','dispute']},'expected_detection':'Guard\x20submissions\x20bind\x20proofs\x20to\x20the\x20paying\x20order\x20AND\x20the\x20owner\x27s\x20authorship\x20at\x20write\x20time\x20—\x20a\x20forged\x20receipt\x20is\x20rejected,\x20nothing\x20is\x20written.','detection_refs':[{'anchor':'proof-about==order\x20&&\x20proof-creator==owner','registry':'chain-semantics/object-graph.ts'}],'observed_in':'field-tested\x20rejection'},{'id':'GS-REFUND-REPLAY','attack_role':'any','victim_role':'both','move':'Replays\x20a\x20refund/claim\x20to\x20draw\x20the\x20escrow\x20twice.','context_filter':{'phases':['in_flight','post']},'expected_detection':'Protocol-owned\x20once\x20slots\x20(254/255)\x20arm\x20per\x20order/allocation\x20—\x20a\x20replay\x20aborts\x20on\x20the\x20already-spent\x20slot.','detection_refs':[{'anchor':'254/255\x20are\x20the\x20two\x20protocol-owned\x20once\x20slots','registry':'knowledge/allocation-ledger.ts'}],'observed_in':'mainnet\x20abort\x2016'},{'id':'GS-DUAL-DRAW','attack_role':'arbitrator','victim_role':'both','move':'Draws\x20the\x20refund\x20rail\x20AND\x20the\x20arbitration\x20indemnity\x20for\x20the\x20same\x20order\x20(double\x20remedy).','context_filter':{'phases':['dispute','post']},'expected_detection':'Dual-rail\x20separation:\x20the\x20escrow\x20allocator\x20never\x20reads\x20the\x20claim\x20marker\x20and\x20the\x20compensation\x20write\x20never\x20touches\x20escrow\x20—\x20template\x20convention\x20must\x20assert\x20claim-none\x20on\x20the\x20refund\x20guard\x20(audit\x20DUAL-RAIL-01).','detection_refs':[{'anchor':'A-3\x20dual\x20rail','registry':'chain-semantics/fund-flow.ts'},{'anchor':'after_sales_no_double_remedy','registry':'extensions/capability.ts'}],'observed_in':'A-3'},{'id':'GS-HOLD-GRAB','attack_role':'merchant','victim_role':'both','move':'Grabs\x20the\x20hold/lock\x20primitive\x20on\x20a\x20Progress\x20without\x20satisfying\x20its\x20guard.','context_filter':{'phases':['in_flight']},'expected_detection':'hold\x20semantics\x20are\x20registered\x20as\x20a\x20chain\x20finding\x20(A-6\x20family)\x20—\x20the\x20keeper/monitoring\x20surface\x20watches\x20for\x20guard-bypassing\x20holds.','detection_refs':[{'anchor':'\x22A-6\x22','registry':'chain-semantics/object-graph.ts'}],'observed_in':'A-6'},{'id':'GS-REFUND-RAIL-REMOVAL','attack_role':'merchant','victim_role':'customer','move':'Publishes\x20a\x20machine\x20with\x20the\x20refund\x20rail\x20removed\x20(zero\x20allocator\x20rows\x20/\x20no\x20refund\x20exit),\x20stranding\x20the\x20buyer\x27s\x20escrow.','context_filter':{'phases':['build']},'expected_detection':'Build-time\x20audits\x20block\x20it:\x20zero\x20allocator\x20rows\x20abort\x20materialization\x20(PLAN-ALLOC-01)\x20and\x20an\x20uncovered\x20terminal\x20has\x20no\x20fund\x20exit\x20(FUND-EXIT-01).','detection_refs':[{'anchor':'PLAN-ALLOC-01','registry':'composition/materialize.ts'},{'anchor':'FUND-EXIT-01','registry':'composition/audit.ts'}],'observed_in':'B-1/F-2'},{'id':'GS-INDEMNITY-HIJACK','attack_role':'arbitrator','victim_role':'customer','move':'Re-binds\x20the\x20compensation\x20claim\x20(claimed_by)\x20to\x20divert\x20the\x20indemnity\x20payout.','context_filter':{'phases':['dispute','post']},'expected_detection':'Compensation\x20claims\x20require\x20the\x20arbitration\x20whitelist\x20and\x20hit\x20the\x20permission-conflict\x20check\x20—\x20a\x20re-bind\x20aborts\x20(E33).','detection_refs':[{'anchor':'E33\x20conflict\x20check','registry':'chain-semantics/fund-flow.ts'}],'observed_in':'governance\x20review'},{'id':'GS-UPSTREAM-STALL','attack_role':'merchant','victim_role':'supplier','move':'Withholds\x20the\x20guard-gated\x20upstream\x20forward\x20that\x20releases\x20the\x20sub-order\x27s\x20share,\x20parking\x20the\x20supplier\x27s\x20payout\x20in\x20the\x20upstream\x20allocation\x20pool\x20indefinitely.','context_filter':{'phases':['in_flight']},'expected_detection':'allocation-advice\x27s\x20supplier\x20line\x20names\x20the\x20upstream\x20pool\x20as\x20context\x20and\x20routes\x20the\x20chase\x20through\x20the\x20upstream\x20order\x20(or\x20its\x20dispute\x20path)\x20—\x20never\x20a\x20silent\x20wait\x20past\x20the\x20after-sales\x20window.','detection_refs':[{'anchor':'firing\x20the\x20guard\x20is\x20the\x20upstream\x20merchant\x27s\x20move','registry':'participation/allocation-advice.ts'}],'observed_in':'G2'}];export function scenarioById(a){return GAME_SCENARIOS['find'](b=>b['id']===a)??null;}export function counterpartyMoves(a,b){if(a==='neutral'||a==='system')return[];return GAME_SCENARIOS['filter'](c=>c['context_filter']['phases']['includes'](b)&&(c['victim_role']===a||c['victim_role']==='both'&&isTransactionSide(a)));}function isTransactionSide(a){return a==='customer'||a==='merchant';}
@@ -1 +1 @@
1
- import*as a231a from'fs';import*as a231b from'os';import*as a231c from'path';export const SKILLS_PACKAGE='@wowok'+'/skills';export const SKILLS_INSTALL_COMMAND='npm\x20install\x20-g\x20@wowok'+'/skills';export const SKILLS_DOCTOR_COMMAND='wowok-skills\x20doctor';export const SKILLS_REPAIR_COMMAND='wowok-skills\x20init\x20--force';export const COLD_START_SECONDS=0x14;export const SKILL_ROLES=['wowok-onboard','wowok-provider','wowok-order','wowok-supplier','wowok-collaborator','wowok-machine','wowok-arbitrator','wowok-messenger','wowok-market','wowok-governance','wowok-planner','wowok-auditor','wowok-output'];export const COMMON_GOALS=[{'goal':'Onboard\x20a\x20new\x20merchant\x20and\x20publish\x20a\x20commercial\x20service\x20end-to-end','skills':['wowok-onboard','wowok-provider'],'tools':['goal_operation','onchain_operations','query_toolkit']},{'goal':'Design\x20or\x20modify\x20a\x20Machine\x20workflow\x20(nodes,\x20forwards,\x20guards)','skills':['wowok-machine','wowok-auditor'],'tools':['onchain_operations','machineNode2file','guard2file']},{'goal':'Evaluate\x20or\x20buy\x20a\x20service\x20/\x20handle\x20an\x20in-order\x20customer\x20lifecycle','skills':['wowok-order'],'tools':['query_toolkit','onchain_operations','messenger_operation']},{'goal':'Fulfill\x20a\x20sub-order\x20as\x20a\x20supplier\x20and\x20collect\x20settlement','skills':['wowok-supplier','wowok-collaborator'],'tools':['watch_operation','workflow_operation','keeper_operation']},{'goal':'Operate\x20order\x20workflows\x20/\x20advance\x20progress\x20on\x20behalf\x20of\x20a\x20merchant','skills':['wowok-collaborator'],'tools':['workflow_operation','watch_operation','keeper_operation']},{'goal':'Handle\x20a\x20dispute\x20or\x20run\x20an\x20arbitration\x20service','skills':['wowok-arbitrator','wowok-messenger'],'tools':['evaluation_operation','onchain_operations','messenger_operation']},{'goal':'Govern\x20permissions,\x20treasury\x20funds\x20and\x20the\x20on-chain\x20profile\x20after\x20setup','skills':['wowok-governance'],'tools':['permission_operation','onchain_operations','query_toolkit']},{'goal':'Obtain\x20WOW\x20gas\x20/\x20payment\x20tokens\x20before\x20the\x20first\x20transaction','skills':['wowok-onboard'],'tools':['wowok_buildin_info','bridge_operation','account_operation']}];function candidateSkillRoots(a){const b=a231b['homedir'](),c=[a231c['join'](b,'.claude','skills'),a231c['join'](b,'.agents','skills'),a231c['join'](b,'.codex','skills'),a231c['join'](b,'.cursor','skills'),a231c['join'](b,'.codebuddy','skills'),a231c['join'](b,'.kilo','skills'),a231c['join'](b,'.roo','skills'),a231c['join'](b,'.cline','skills'),a231c['join'](b,'.copilot','skills'),a231c['join'](b,'.codeium','windsurf','skills'),a231a['existsSync'](a231c['join'](b,'.trae-cn','skills'))?a231c['join'](b,'.trae-cn','skills'):a231c['join'](b,'.trae','skills')],d=['.agents/skills','.claude/skills','.cursor/skills','.trae/skills','.codebuddy/skills','.roo/skills','.cline/skills','.kilo/skills','.github/skills']['map'](e=>a231c['resolve'](a,e));return[...new Set([...c,...d])];}function rootHasWowokSkill(a){let b;try{b=a231a['readdirSync'](a,{'withFileTypes':!![]});}catch{return![];}if(b['some'](c=>c['isFile']()&&c['name']==='.wowok-skills.json'))return!![];return b['some'](c=>c['isDirectory']()&&c['name']['startsWith']('wowok-'));}export function detectInstalledSkills(a=process['cwd']()){const b=[];for(const c of candidateSkillRoots(a)){try{if(rootHasWowokSkill(c))b['push'](c);}catch{}}return{'status':b['length']>0x0?'detected':'not_detected','detected_roots':b};}export function getGettingStarted(a=process['cwd']()){return{'skills':{'what':'WoWok\x20Skills\x20are\x20role-based\x20playbooks\x20(SKILL.md\x20files\x20installed\x20into\x20AI\x20clients)\x20that\x20sit\x20on\x20top\x20of\x20this\x20MCP\x20server.\x20The\x20MCP\x20exposes\x20the\x20tools;\x20the\x20skills\x20tell\x20an\x20agent\x20WHEN\x20and\x20in\x20what\x20ORDER\x20to\x20use\x20them\x20for\x20complex\x20goals\x20(onboarding,\x20buying,\x20fulfillment,\x20arbitration,\x20governance),\x20and\x20materially\x20reduce\x20failed\x20calls.\x20This\x20server\x20works\x20without\x20them;\x20with\x20them\x20loaded,\x20agents\x20start\x20from\x20structured\x20guidance\x20instead\x20of\x20discovering\x20sub-tools\x20by\x20trial\x20and\x20error.','package':SKILLS_PACKAGE,'recommended':!![],'install_command':SKILLS_INSTALL_COMMAND,'doctor_command':SKILLS_DOCTOR_COMMAND,'repair_command':SKILLS_REPAIR_COMMAND,'detection':detectInstalledSkills(a),'detection_note':'Best-effort\x20scan\x20of\x20standard\x20client\x20skill\x20roots\x20on\x20this\x20machine.\x20`wowok-skills\x20doctor`\x20is\x20authoritative\x20and\x20also\x20reports\x20MCP\x20registration\x20state\x20per\x20client.\x20If\x20detection\x20says\x20not_detected\x20but\x20skills\x20were\x20installed\x20for\x20a\x20client\x20with\x20a\x20non-standard\x20root,\x20trust\x20doctor.','roles':[...SKILL_ROLES]},'cold_start':{'ready_seconds':COLD_START_SECONDS,'note':'The\x20first\x20call\x20after\x20the\x20server\x20boots\x20can\x20take\x20around\x2020\x20seconds\x20while\x20@wowok/agent-mcp\x20is\x20bootstrapped\x20(especially\x20via\x20npx\x20on\x20Windows).\x20A\x20transport\x20timeout\x20on\x20the\x20FIRST\x20call\x20is\x20startup\x20latency,\x20not\x20a\x20broken\x20server\x20—\x20wait\x20and\x20retry;\x20subsequent\x20calls\x20are\x20fast.\x20Never\x20interpret\x20a\x20delayed\x20first\x20response\x20as\x20a\x20failed\x20on-chain\x20transaction.'},'common_goals':COMMON_GOALS['map'](b=>({...b,'skills':[...b['skills']],'tools':[...b['tools']]})),'first_calls':['wowok_buildin_info\x20info=\x27getting\x20started\x27\x20—\x20this\x20orientation','wowok_buildin_info\x20info=\x27current\x20network\x27\x20—\x20which\x20chain\x20(mainnet/testnet)\x20the\x20SDK\x20defaults\x20to','wowok_buildin_info\x20info=\x27funding\x20guidance\x27\x20—\x20testnet\x20faucet\x20/\x20mainnet\x20bridge\x20/\x20airdrop','wowok_buildin_info\x20info=\x27upgrade_check\x27\x20—\x20whether\x20the\x20MCP\x20server\x20and\x20SDK\x20are\x20current','schema_query\x20action=\x27list\x27\x20—\x20enumerate\x20every\x20sub-tool\x20and\x20fetch\x20its\x20input\x20schema']};}
1
+ import*as a247a from'fs';import*as a247b from'os';import*as a247c from'path';export const SKILLS_PACKAGE='@wowok'+'/skills';export const SKILLS_INSTALL_COMMAND='npm\x20install\x20-g\x20@wowok'+'/skills';export const SKILLS_DOCTOR_COMMAND='wowok-skills\x20doctor';export const SKILLS_REPAIR_COMMAND='wowok-skills\x20init\x20--force';export const COLD_START_SECONDS=0x14;export const SKILL_ROLES=['wowok-onboard','wowok-provider','wowok-order','wowok-supplier','wowok-collaborator','wowok-machine','wowok-arbitrator','wowok-messenger','wowok-market','wowok-governance','wowok-planner','wowok-auditor','wowok-output'];export const COMMON_GOALS=[{'goal':'Onboard\x20a\x20new\x20merchant\x20and\x20publish\x20a\x20commercial\x20service\x20end-to-end','skills':['wowok-onboard','wowok-provider'],'tools':['goal_operation','onchain_operations','query_toolkit']},{'goal':'Design\x20or\x20modify\x20a\x20Machine\x20workflow\x20(nodes,\x20forwards,\x20guards)','skills':['wowok-machine','wowok-auditor'],'tools':['onchain_operations','machineNode2file','guard2file']},{'goal':'Evaluate\x20or\x20buy\x20a\x20service\x20/\x20handle\x20an\x20in-order\x20customer\x20lifecycle','skills':['wowok-order'],'tools':['query_toolkit','onchain_operations','messenger_operation']},{'goal':'Fulfill\x20a\x20sub-order\x20as\x20a\x20supplier\x20and\x20collect\x20settlement','skills':['wowok-supplier','wowok-collaborator'],'tools':['watch_operation','workflow_operation','keeper_operation']},{'goal':'Operate\x20order\x20workflows\x20/\x20advance\x20progress\x20on\x20behalf\x20of\x20a\x20merchant','skills':['wowok-collaborator'],'tools':['workflow_operation','watch_operation','keeper_operation']},{'goal':'Handle\x20a\x20dispute\x20or\x20run\x20an\x20arbitration\x20service','skills':['wowok-arbitrator','wowok-messenger'],'tools':['evaluation_operation','onchain_operations','messenger_operation']},{'goal':'Govern\x20permissions,\x20treasury\x20funds\x20and\x20the\x20on-chain\x20profile\x20after\x20setup','skills':['wowok-governance'],'tools':['permission_operation','onchain_operations','query_toolkit']},{'goal':'Obtain\x20WOW\x20gas\x20/\x20payment\x20tokens\x20before\x20the\x20first\x20transaction','skills':['wowok-onboard'],'tools':['wowok_buildin_info','bridge_operation','account_operation']}];function candidateSkillRoots(a){const b=a247b['homedir'](),c=[a247c['join'](b,'.claude','skills'),a247c['join'](b,'.agents','skills'),a247c['join'](b,'.codex','skills'),a247c['join'](b,'.cursor','skills'),a247c['join'](b,'.codebuddy','skills'),a247c['join'](b,'.kilo','skills'),a247c['join'](b,'.roo','skills'),a247c['join'](b,'.cline','skills'),a247c['join'](b,'.copilot','skills'),a247c['join'](b,'.codeium','windsurf','skills'),a247a['existsSync'](a247c['join'](b,'.trae-cn','skills'))?a247c['join'](b,'.trae-cn','skills'):a247c['join'](b,'.trae','skills')],d=['.agents/skills','.claude/skills','.cursor/skills','.trae/skills','.codebuddy/skills','.roo/skills','.cline/skills','.kilo/skills','.github/skills']['map'](e=>a247c['resolve'](a,e));return[...new Set([...c,...d])];}function rootHasWowokSkill(a){let b;try{b=a247a['readdirSync'](a,{'withFileTypes':!![]});}catch{return![];}if(b['some'](c=>c['isFile']()&&c['name']==='.wowok-skills.json'))return!![];return b['some'](c=>c['isDirectory']()&&c['name']['startsWith']('wowok-'));}export function detectInstalledSkills(a=process['cwd']()){const b=[];for(const c of candidateSkillRoots(a)){try{if(rootHasWowokSkill(c))b['push'](c);}catch{}}return{'status':b['length']>0x0?'detected':'not_detected','detected_roots':b};}export function getGettingStarted(a=process['cwd']()){return{'skills':{'what':'WoWok\x20Skills\x20are\x20role-based\x20playbooks\x20(SKILL.md\x20files\x20installed\x20into\x20AI\x20clients)\x20that\x20sit\x20on\x20top\x20of\x20this\x20MCP\x20server.\x20The\x20MCP\x20exposes\x20the\x20tools;\x20the\x20skills\x20tell\x20an\x20agent\x20WHEN\x20and\x20in\x20what\x20ORDER\x20to\x20use\x20them\x20for\x20complex\x20goals\x20(onboarding,\x20buying,\x20fulfillment,\x20arbitration,\x20governance),\x20and\x20materially\x20reduce\x20failed\x20calls.\x20This\x20server\x20works\x20without\x20them;\x20with\x20them\x20loaded,\x20agents\x20start\x20from\x20structured\x20guidance\x20instead\x20of\x20discovering\x20sub-tools\x20by\x20trial\x20and\x20error.','package':SKILLS_PACKAGE,'recommended':!![],'install_command':SKILLS_INSTALL_COMMAND,'doctor_command':SKILLS_DOCTOR_COMMAND,'repair_command':SKILLS_REPAIR_COMMAND,'detection':detectInstalledSkills(a),'detection_note':'Best-effort\x20scan\x20of\x20standard\x20client\x20skill\x20roots\x20on\x20this\x20machine.\x20`wowok-skills\x20doctor`\x20is\x20authoritative\x20and\x20also\x20reports\x20MCP\x20registration\x20state\x20per\x20client.\x20If\x20detection\x20says\x20not_detected\x20but\x20skills\x20were\x20installed\x20for\x20a\x20client\x20with\x20a\x20non-standard\x20root,\x20trust\x20doctor.','roles':[...SKILL_ROLES]},'cold_start':{'ready_seconds':COLD_START_SECONDS,'note':'The\x20first\x20call\x20after\x20the\x20server\x20boots\x20can\x20take\x20around\x2020\x20seconds\x20while\x20@wowok/agent-mcp\x20is\x20bootstrapped\x20(especially\x20via\x20npx\x20on\x20Windows).\x20A\x20transport\x20timeout\x20on\x20the\x20FIRST\x20call\x20is\x20startup\x20latency,\x20not\x20a\x20broken\x20server\x20—\x20wait\x20and\x20retry;\x20subsequent\x20calls\x20are\x20fast.\x20Never\x20interpret\x20a\x20delayed\x20first\x20response\x20as\x20a\x20failed\x20on-chain\x20transaction.'},'common_goals':COMMON_GOALS['map'](b=>({...b,'skills':[...b['skills']],'tools':[...b['tools']]})),'first_calls':['wowok_buildin_info\x20info=\x27getting\x20started\x27\x20—\x20this\x20orientation','wowok_buildin_info\x20info=\x27current\x20network\x27\x20—\x20which\x20chain\x20(mainnet/testnet)\x20the\x20SDK\x20defaults\x20to','wowok_buildin_info\x20info=\x27funding\x20guidance\x27\x20—\x20testnet\x20faucet\x20/\x20mainnet\x20bridge\x20/\x20airdrop','wowok_buildin_info\x20info=\x27upgrade_check\x27\x20—\x20whether\x20the\x20MCP\x20server\x20and\x20SDK\x20are\x20current','schema_query\x20action=\x27list\x27\x20—\x20enumerate\x20every\x20sub-tool\x20and\x20fetch\x20its\x20input\x20schema']};}
@@ -0,0 +1,52 @@
1
+ export interface BindingSpecView {
2
+ key?: string;
3
+ template_id: string;
4
+ host?: string;
5
+ }
6
+ export interface BindingTemplateView {
7
+ id: string;
8
+ fee_params?: Record<string, unknown>;
9
+ allocator?: {
10
+ rows?: ReadonlyArray<Record<string, unknown>>;
11
+ };
12
+ }
13
+ export interface BindingDiscriminant {
14
+ field: string;
15
+ equals: unknown;
16
+ }
17
+ export interface BindingDerive {
18
+ param: string;
19
+ value?: unknown;
20
+ from?: "fee_params";
21
+ key?: string;
22
+ scale?: "hours_to_ms";
23
+ }
24
+ export interface BindingRow {
25
+ id: string;
26
+ intent: string;
27
+ site?: {
28
+ template: string;
29
+ key?: string;
30
+ };
31
+ host?: string;
32
+ discriminants?: BindingDiscriminant[];
33
+ binding: {
34
+ kind: "guard_template";
35
+ id: string;
36
+ };
37
+ derive?: BindingDerive[];
38
+ note: string;
39
+ }
40
+ export interface BindingResolution {
41
+ row: string;
42
+ template_id: string;
43
+ params: Record<string, unknown>;
44
+ }
45
+ export declare const BINDING_ROWS: BindingRow[];
46
+ export interface BindingNote {
47
+ scope: string;
48
+ status: "deliberate-pending" | "deferred";
49
+ reason: string;
50
+ }
51
+ export declare const BINDING_NOTES: BindingNote[];
52
+ export declare function lookupBinding(spec: BindingSpecView, template: BindingTemplateView): BindingResolution | undefined;
@@ -0,0 +1 @@
1
+ import{MS_PER_HOUR}from'./pattern-resolutions.js';export const BINDING_ROWS=[{'id':'bind.identity_single.pinned_ruler','intent':'pattern.identity_check_single','binding':{'kind':'guard_template','id':'tpl_identity_check_single'},'derive':[],'note':'Single-ruler\x20forwards\x20(the\x20independent\x20triager\x27s\x20four\x20ruling\x20edges\x20on\x20freelance/bug-bounty,\x20the\x20judge\x27s\x20two\x20on\x20freelance/design-contest):\x20the\x20catalog\x27s\x20level-1\x20twin\x20ships\x20the\x20pinned-address\x20leg.\x20RAIL\x20SPLIT\x20(tpl\x20creation\x20notes):\x20the\x20entity\x20slot\x20rides\x20the\x20forward\x27s\x20permission_index;\x20this\x20guard\x20adds\x20the\x20address\x20pin,\x20so\x20BOTH\x20must\x20hold.\x20pinned_address\x20keeps\x20the\x20tpl\x27s\x20deliberate\x20EMPTY\x20default\x20—\x20the\x20edge\x20compiles\x20FAIL-CLOSED\x20(unsatisfiable\x20until\x20the\x20builder\x20pins\x20the\x20real\x20ruler\x20address\x20at\x20generation)\x20instead\x20of\x20shipping\x20the\x20forward\x20with\x20NO\x20Guard\x20at\x20all,\x20which\x20is\x20what\x20a\x20pending\x20spec\x20does.'},{'id':'bind.repo_write.groupbuy_contribution','intent':'pattern.repository_write_authorization','site':{'template':'group_buy/leader-sourced-community','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_order_holder'},'derive':[],'note':'Contribution-ledger\x20write_guard:\x20the\x20policy\x20is\x20ORDER-KEYED\x20(id_from\x20none)\x20and\x20the\x20writer\x20set\x20is\x20the\x20two-holder\x20union\x20—\x20the\x20backer\x20(order.owner\x20==\x20Signer)\x20or\x20their\x20registered\x20agent\x20—\x20reading\x20THE\x20SAME\x20submitted\x20Order\x20slot\x20the\x20row\x20is\x20keyed\x20by,\x20so\x20write\x20authorization\x20and\x20row\x20keying\x20cannot\x20diverge.\x20The\x20backer\x27s\x20tooling\x20zeroes\x20the\x20row\x20on\x20withdrawal\x20so\x20the\x20escrow-bound\x20aggregate\x20stops\x20counting\x20the\x20pledge;\x20the\x20guard\x20is\x20the\x20ATTRIBUTION\x20boundary\x20and\x20the\x20bound\x20aggregate\x20the\x20VALUE\x20truth\x20—\x20ship\x20both\x20(R-X1-17).'},{'id':'bind.rail.preorder.deposit_forfeit','intent':'pattern.progress_state_check','site':{'template':'retail/preorder-deposit','key':'deposit_forfeit'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'reservation_cancelled'}],'note':'Kill-fee\x20deposit-exit\x20forfeit\x20(selector-gated:\x20mounts\x20only\x20when\x20deposit_exit_policy\x20==\x20\x27kill_fee\x27;\x20dropped\x20keys\x20never\x20reach\x20resolution).\x20The\x20purpose\x20names\x20ONE\x20refund\x20terminal;\x20the\x20guard\x20serves\x20both\x20Rate\x20legs\x20of\x20the\x20group\x20(merchant\x20kill_fee_bps\x20+\x20buyer\x20remainder,\x20summing\x2010000).\x20Node\x20gate\x20and\x20caller-authorization\x20leg\x20ship\x20IN\x20the\x20twin\x20root\x20(decision\x2011:\x20no\x20claimed_by\x20leg\x20—\x20fund\x20rails\x20never\x20read\x20the\x20payout\x20stamp).'},{'id':'bind.rail.preorder.full_refund','intent':'pattern.progress_state_check','site':{'template':'retail/preorder-deposit','key':'full_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'Post-balance\x20full\x20refund:\x20the\x20purpose\x20names\x20the\x20twin\x20and\x20the\x20single\x20terminal\x20explicitly\x20(a\x20paid-in-full\x20buyer\x20is\x20always\x20made\x20whole;\x20reservation_cancelled\x20is\x20a\x20DISTINCT\x20node\x20so\x20the\x20kill-fee\x20selector\x20never\x20touches\x20a\x20paid-in-full\x20order).'},{'id':'bind.rail.restock.full_refund','intent':'pattern.progress_state_check','site':{'template':'retail/restock-supply','key':'full_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'Full-pool\x20refund\x20at\x20the\x20cancel\x20terminal\x20(the\x20purpose\x20names\x20the\x20twin\x20and\x20the\x20node;\x20refunds\x20read\x20BALANCE\x20so\x20the\x20buyer\x20is\x20always\x20made\x20whole).'},{'id':'bind.rail.talent.refund_gate','intent':'pattern.progress_state_check','site':{'template':'freelance/enterprise-talent-market','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'Pre-award\x20refund\x20rail;\x20the\x20purpose\x20names\x20the\x20twin\x20and\x20the\x20node\x20gate\x20(anti-hijack\x20is\x20structural:\x20the\x20GuardIdentifier(0)\x20order-anchored\x20recipient,\x20not\x20a\x20signer\x20leg\x20—\x20CAT-B2;\x20decision\x2011:\x20the\x20twin\x20carries\x20no\x20claimed_by\x20leg).'},{'id':'bind.rail.tiers.refund_gate','intent':'pattern.progress_state_check','site':{'template':'freelance/catalog-tiers','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'Same\x20shape\x20as\x20the\x20enterprise-talent\x20rail;\x20the\x20paired\x20recover\x20rail\x20(terminal-node-gated)\x20keeps\x20the\x20awarded\x20escrow\x20exiting\x20—\x20two\x20independent\x20node-keyed\x20exits,\x20no\x20polarity\x20coupling\x20(decision\x2011).'},{'id':'bind.rail.contest.refund_gate','intent':'pattern.progress_state_check','site':{'template':'freelance/design-contest','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'},{'param':'refund_node_alt','value':'voided'}],'note':'TWO\x20refund\x20terminals\x20named\x20by\x20the\x20purpose\x20(the\x20void\x20terminal\x20is\x20mandatory\x20—\x20omitting\x20it\x20deadlocks\x20the\x20escrow,\x20OFN\x20#P-02);\x20alt2\x20defaults\x20to\x20the\x20primary\x20(duplicate\x20tautology\x20leg,\x20legal\x20per\x20the\x20twin).'},{'id':'bind.rail.longstay.nofault','intent':'pattern.progress_state_check','site':{'template':'rental/institutional-longstay','key':'nofault_refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'No-fault\x20exit\x20full\x20sweep\x20(a\x20full\x20sweep\x20is\x20correct:\x20no\x20rent\x20release\x20can\x20have\x20fired\x20yet\x20—\x20month_1\x20opens\x2030\x20days\x20after\x20handover).'},{'id':'bind.rail.longstay.deposit_refund','intent':'pattern.progress_state_check','site':{'template':'rental/institutional-longstay','key':'deposit_refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'completed'}],'note':'Deposit\x20refund\x20at\x20the\x20golden-path\x20terminal,\x20node-gated\x20per\x20the\x20purpose\x20(decision\x2011:\x20the\x20twin\x20carries\x20no\x20claimed_by\x20leg).\x20Amount\x20leg\x20self-limits;\x20no\x20once\x20slot\x20by\x20design\x20(refund\x20rails\x20arm\x20no\x20254).'},{'id':'bind.rail.longstay.damage','intent':'pattern.progress_state_check','site':{'template':'rental/institutional-longstay','key':'damage_refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'damage_confirmed'}],'note':'ONE\x20guard\x20serves\x20BOTH\x20allocator\x20rows\x20of\x20the\x20group\x20(landlord\x20Amount\x20capped\x20at\x20damage_max_amount\x20+\x20tenant\x20Rate\x20remainder);\x20the\x20node\x20pin\x20is\x20the\x20state\x20the\x20purpose\x20names.'},{'id':'bind.rail.longstay.early_exit','intent':'pattern.progress_state_check','site':{'template':'rental/institutional-longstay','key':'early_exit_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'early_terminated'}],'note':'Same\x20two-row\x20group\x20shape\x20as\x20the\x20damage\x20rail\x20(penalty\x20Amount\x20to\x20the\x20landlord\x20+\x20remainder\x20Rate\x20to\x20the\x20tenant)\x20at\x20the\x20early-termination\x20terminal.'},{'id':'bind.rail.liveclass.refund_gate','intent':'pattern.progress_state_check','site':{'template':'education/live-class-cohort','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'withdrawn'}],'note':'Pre-start\x20full\x20refund\x20at\x20the\x20withdrawn\x20terminal\x20(post-start\x20withdrawals\x20ride\x20the\x20terminal_settlement\x20residual\x20sweep\x20below\x20—\x20earned\x20tuition\x20has\x20already\x20left\x20via\x20the\x20per-session\x20releases).'},{'id':'bind.rail.mooc.refund_gate','intent':'pattern.progress_state_check','site':{'template':'education/mooc-single-course','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'returned'}],'note':'Refund\x20at\x20the\x20returned\x20terminal;\x20the\x20purpose\x20names\x20the\x20twin\x20and\x20the\x20node\x20gate\x20(decision\x2011:\x20no\x20claimed_by\x20leg),\x20and\x20forbids\x20both\x20the\x20254\x20slot\x20(the\x20twin\x20arms\x20none)\x20and\x20the\x20dispute-count\x20gate\x20(append-only\x20one-way\x20door).'},{'id':'bind.rail.groupbuy.missed_refund','intent':'pattern.progress_state_check','site':{'template':'group_buy/leader-sourced-community','key':'missed_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'missed_refunded'}],'note':'Missed-round\x20pledge\x20refund;\x20disjoint\x20from\x20withdraw_refund\x20BY\x20NODE\x20PREDICATE\x20(the\x20purpose\x27s\x20own\x20words),\x20not\x20by\x20a\x20once\x20slot.'},{'id':'bind.rail.groupbuy.withdraw_refund','intent':'pattern.progress_state_check','site':{'template':'group_buy/leader-sourced-community','key':'withdraw_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'withdrawn'}],'note':'Pre-deadline\x20withdrawal\x20refund;\x20the\x20backer\x27s\x20tooling\x20zeroes\x20the\x20contribution\x20row\x20for\x20the\x20aggregate\x20to\x20stop\x20counting\x20it\x20(the\x20write\x20side\x20is\x20the\x20batch-one\x20order-holder\x20row).'},{'id':'bind.rail.handmade.refund_execute','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'retail/vertical-handmade','key':'refund_execute'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'returned'},{'param':'refund_node_alt','value':'closed_cancel'}],'note':'BOTH\x20refund\x20terminals\x20covered\x20(FUND-EXIT-01).\x20Residual\x20disclosed:\x20the\x20purpose\x27s\x20optional\x20program-executor\x20slot\x20and\x20arbiter\x20spelling\x20stay\x20a\x20caller\x20resolution\x20—\x20the\x20twin\x27s\x20caller\x20leg\x20authorizes\x20buyer\x20OR\x20service-permission\x20staff,\x20the\x20dynamic\x20form\x20the\x20purposes\x20describe.'},{'id':'bind.rail.preorder.refund_execute','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'retail/preorder-deposit','key':'refund_execute'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'returned'},{'param':'refund_node_alt','value':'refunded'}],'note':'Pays\x20at\x20returned\x20(RMA\x20evidenced)\x20and\x20stays\x20TRIGGERABLE\x20at\x20the\x20refunded\x20record\x20terminal\x20(a\x20balance-exhausted\x20no-op\x20after\x20the\x20drain\x20—\x20the\x20FUND-EXIT-01\x20proof\x20that\x20the\x20refunded\x20terminal\x20keeps\x20a\x20fund\x20exit).'},{'id':'bind.rail.errand.refund_full','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'delivery/on-demand-errand','key':'refund_full'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_cancel'}],'note':'The\x20money\x20authority\x20for\x20closed_cancel;\x20the\x20purpose\x20demands\x20the\x20node\x20gate\x20(the\x20twin\x27s\x20only\x20state\x20leg\x20—\x20decision\x2011:\x20no\x20claimed_by\x20leg)\x20and\x20no\x20254\x20(the\x20twin\x20arms\x20none).'},{'id':'bind.rail.errand.refund_kill','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'delivery/on-demand-errand','key':'refund_kill'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'closed_kill'}],'note':'Kill-fee\x20money\x20authority\x20for\x20closed_kill;\x20a\x20DIFFERENT\x20guard\x20key\x20from\x20refund_full\x20so\x20a\x20kill\x20and\x20a\x20full\x20refund\x20can\x20never\x20double-fire\x20(the\x20purpose\x27s\x20allocator-disjointness).'},{'id':'bind.rail.groupbuy.refund_full','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'group_buy/leader-sourced-community','key':'refund_full'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'claim_closed'}],'note':'Pre-award\x20arbitration-refund\x20authority:\x20node-gated\x20at\x20claim_closed\x20(decision\x2011\x20two-rail\x20independence\x20—\x20the\x20refund\x20rail\x20completes\x20by\x20node\x20state\x20and\x20never\x20reads\x20the\x20claim\x20stamp;\x20a\x20refund\x20plus\x20a\x20claimed\x20indemnity\x20is\x20disclosed\x20double\x20collection\x20at\x20the\x20MCP\x20confirmation\x20gate,\x20not\x20a\x20polarity\x20condition).'},{'id':'bind.forward.warehouse.pick','intent':'pattern.identity_check_service_provider_dynamic','site':{'template':'retail/warehouse-club','key':'pick'},'binding':{'kind':'guard_template','id':'tpl_forward_staff_node_check'},'derive':[{'param':'expected_node','value':'paid'},{'param':'staff_permission_index','value':0x3e9}],'note':'The\x20purpose\x20names\x20the\x20forward\x20operator\x27s\x20STAFF\x20identity\x20and\x20the\x20edge\x20ships\x20its\x20own\x20chain-side\x20operator\x20gate\x20(1001):\x20the\x20twin\x20pins\x20the\x20mount\x27s\x20own\x20prev\x20(paid\x20—\x20the\x20mount\x20edge\x20IS\x20the\x20pin),\x20binds\x20the\x20submitted\x20Permission\x20to\x20the\x20Service\x27s\x20live\x20org\x20(1488\x20—\x20rotation-proof)\x20and\x20reads\x20the\x20staff\x20slot\x20through\x20query\x201008\x20(Signer,\x20index\x201001\x20—\x20the\x20edge\x27s\x20own\x20permission_index\x20as\x20reviewed\x20template\x20data).\x20Additive\x20to\x20the\x20chain\x20gate,\x20never\x20a\x20replacement\x20(the\x20twin\x27s\x20creation\x20notes:\x20guard-is-additive).\x20service_name\x20is\x20kernel-seeded;\x20the\x20Order/Permission\x20slots\x20are\x20runtime\x20submissions.'},{'id':'bind.rail.creatorzero.settle','intent':'pattern.progress_state_check','site':{'template':'freelance/creator-zero-commission','key':'settle'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle_once'},'derive':[{'param':'settle_node','value':'completed'}],'note':'The\x20purpose\x20names\x20settle_once\x20explicitly\x20(node\x20gate\x20+\x20the\x20chain-derived\x20254\x20once\x20key\x20ship\x20in\x20its\x20root\x20—\x20decision\x2011:\x20no\x20claimed_by\x20leg);\x20completed\x20is\x20the\x20only\x20settle\x20terminal\x20on\x20this\x20shape\x20(closed_cancel\x20is\x20the\x20refund\x20rail\x27s).\x20Alts\x20default\x20to\x20the\x20primary.'},{'id':'bind.rail.liveclass.terminal_settlement','intent':'pattern.progress_state_check','site':{'template':'education/live-class-cohort','key':'terminal_settlement'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle_once'},'derive':[{'param':'settle_node','value':'completed'},{'param':'settle_node_alt','value':'renewal_window'},{'param':'settle_node_alt2','value':'withdrawn'}],'note':'FUND-EXIT-01\x20always-on\x20residual\x20sweep\x20over\x20ALL\x20THREE\x20terminals\x20the\x20purpose\x20enumerates\x20—\x20the\x20settle_once\x20twin\x27s\x20three\x20node\x20slots\x20fit\x20exactly.\x20Dormant\x20on\x20the\x20golden\x20path\x20(empty\x20pool\x20aborts\x2014\x20harmlessly);\x20residue\x20exits\x20to\x20the\x20buyer\x20instead\x20of\x20stranding.'},{'id':'bind.rail.longstay.residual_sweep','intent':'pattern.progress_state_check','site':{'template':'rental/institutional-longstay','key':'terminal_residual_sweep'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle_once'},'derive':[{'param':'settle_node','value':'completed'}],'note':'KLK-P0-2\x20residual\x20sweep.\x20DELIBERATE\x20UPGRADE\x20over\x20the\x20purpose\x27s\x20255\x20spelling:\x20the\x20sweep\x20is\x20single-shot\x20at\x20a\x20TERMINAL\x20node,\x20so\x20the\x20settle_once\x20twin\x27s\x20chain-derived\x20254\x20(exactly-once\x20per\x20order,\x20publicly\x20unforgeable)\x20is\x20the\x20stricter\x20once\x20key\x20for\x20the\x20same\x20semantics\x20—\x20255\x27s\x20history-count\x20key\x20was\x20the\x20pre-settle_once\x20idiom\x20and\x20an\x20off-by-one\x20keeper\x20permanently\x20locks\x20a\x20255\x20sweep\x20(the\x20KLK\x20live\x20face).\x20Node\x20pin\x20and\x20the\x20caller\x20leg\x20ship\x20in\x20the\x20twin\x20root\x20(the\x20former\x20claimed_by-false\x20leg\x20is\x20removed\x20by\x20decision\x2011).'},{'id':'bind.rail.p2p.payout_release','intent':'pattern.progress_state_check','site':{'template':'rental/p2p-shortstay','key':'payout_release_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'payout_released'},{'param':'window_node','value':'claim_window'},{'param':'claim_window_days','from':'fee_params','key':'claim_window_days'}],'note':'Serial\x20release\x20(ABNB2-validated\x20shape):\x20the\x20reached-node\x20pin\x20plus\x20the\x20claim-window\x20lock.\x20DELIBERATELY\x20NOT\x20settle_once:\x20the\x20payout\x20must\x20stay\x20contestable\x20through\x20the\x20claim\x20window,\x20and\x20only\x20the\x20serial-window\x20twin\x20carries\x20the\x20Clock\x20window\x20lock\x20(settle_once\x20has\x20no\x20window\x20vocabulary\x20—\x20and\x20since\x20decision\x2011\x20neither\x20twin\x20reads\x20order.claimed_by,\x20the\x20old\x20denied-claim\x20weld\x20argument\x20is\x20moot;\x20the\x20window\x20lock\x20is\x20the\x20standing\x20reason).\x20The\x20twin\x27s\x20Clock\x20leg\x20carries\x20the\x20window\x20lock\x20(and\x20the\x20Clock\x20exemption\x20of\x20the\x20caller-authorization\x20gate);\x20the\x20window\x20length\x20rides\x20the\x20template\x27s\x20own\x20fee\x20knob\x20so\x20the\x20merchant\x27s\x20knob\x20moves\x20the\x20chain.'},{'id':'bind.rail.creatormb.settle_rail','intent':'pattern.progress_state_check','site':{'template':'subscription/creator-membership','key':'settle_rail'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle'},'derive':[{'param':'settle_node','value':'completed'}],'note':'Per-period\x20release\x20(state-based,\x20the\x20completed\x20advance\x20is\x20the\x20keeper\x27s\x20clock\x20duty):\x20the\x20255\x20once\x20key\x20pins\x20to\x20the\x20monotonic\x20history\x20count\x20so\x20each\x20renewal\x20period\x20gets\x20a\x20fresh\x20key\x20—\x20settle_once\x27s\x20per-order\x20254\x20would\x20abort\x20from\x20period\x202\x20(the\x20twin\x20description\x27s\x20own\x20split).'},{'id':'bind.rail.directfan.settle_rail','intent':'pattern.progress_state_check','site':{'template':'subscription/direct-fan-subscription','key':'settle_rail'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle'},'derive':[{'param':'settle_node','value':'completed'}],'note':'Same\x20per-period\x20shape;\x20the\x20guard\x20is\x20shared\x20by\x20the\x20settlement\x20row\x20and\x20the\x20Rate-0\x20ORDER\x20anchor\x20row\x20(they\x20merge\x20into\x20ONE\x20allocator\x20—\x2010000\x20+\x200\x20=\x2010000).'},{'id':'bind.rail.deliverymb.settle_rail','intent':'pattern.progress_state_check','site':{'template':'subscription/delivery-membership','key':'settle_rail'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle'},'derive':[{'param':'settle_node','value':'completed'}],'note':'Same\x20per-period\x20shape;\x20the\x20merchant\x20leg\x20and\x20the\x20Rate-0\x20ORDER\x20anchor\x20leg\x20share\x20the\x20ONE\x20allocator\x20through\x20this\x20guard.'},{'id':'bind.repo_write.scale_staff_union','intent':'pattern.repository_write_authorization','site':{'template':'retail/scale-marketplace','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_staff_union'},'derive':[],'note':'Evidence\x20policy\x20is\x20order-keyed\x20(id_from\x20none)\x20and\x20the\x20writer\x20set\x20is\x20the\x20union\x20the\x20purpose\x20names:\x20merchant\x20staff\x20through\x20the\x20live\x20permission\x20object,\x20or\x20the\x20order\x20holder/agent.\x20The\x20tracking/return-receipt/lost-package\x20rows\x20behind\x20the\x20ship\x20and\x20evidence\x20gates\x20can\x20then\x20only\x20be\x20authored\x20by\x20these\x20writers\x20(R-X1-17).'},{'id':'bind.repo_write.preorder_staff_union','intent':'pattern.repository_write_authorization','site':{'template':'retail/preorder-deposit','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_staff_union'},'derive':[],'note':'Same\x20union\x20shape;\x20the\x20policy\x27s\x20order-keying\x20is\x20the\x20azq9\x20TPL-B\x20fix\x20(a\x20signer-keyed\x20policy\x20would\x20collide\x20every\x20order\x27s\x20evidence\x20rows\x20into\x20one\x20writer-keyed\x20row).'},{'id':'bind.repo_write.restock_staff_union','intent':'pattern.repository_write_authorization','site':{'template':'retail/restock-supply','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_staff_union'},'derive':[],'note':'Supplier-side\x20spelling\x20of\x20the\x20same\x20union\x20(the\x20purpose\x27s\x20writer\x20set\x20names\x20the\x20supplier\x20staff\x20slot);\x20the\x20order-keyed\x20pairing\x20discipline\x20is\x20identical.'},{'id':'bind.repo_write.warehouse_staff_union','intent':'pattern.repository_write_authorization','site':{'template':'retail/warehouse-club','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_staff_union'},'derive':[],'note':'Club-floor\x20staff\x20are\x20the\x20operational\x20writers\x20(the\x20picking\x20stage\x20is\x20evidenced\x20staff\x20labor);\x20the\x20testnet\x20HIGH-04\x20open-write\x20face\x20closes\x20with\x20this\x20row.'},{'id':'bind.repo_write.errand_staff_union','intent':'pattern.repository_write_authorization','site':{'template':'delivery/on-demand-errand','key':'repo_write'},'binding':{'kind':'guard_template','id':'tpl_repository_write_staff_union'},'derive':[],'note':'The\x20desk\x27s\x20dispatcher/settlement\x20staff\x20write\x20the\x20dispatch/pickup/handover\x20rows;\x20the\x20RUNNER\x20writes\x20nothing\x20(the\x20roster\x20authorizes\x20the\x20runner\x27s\x20FORWARD,\x20never\x20a\x20repository\x20write\x20—\x20the\x20purpose\x27s\x20own\x20boundary).'},{'id':'bind.repo_data.scale.ship','intent':'pattern.repository_data_check','site':{'template':'retail/scale-marketplace','key':'ship'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'shipped'}],'note':'Tracking-hash\x20row\x20must\x20exist\x20(value\x20carries\x20the\x20\x27shipped\x27\x20marker\x20+\x20the\x20hash)\x20before\x20the\x20merchant\x27s\x20ship\x20forward\x20passes.'},{'id':'bind.repo_data.scale.return_received','intent':'pattern.repository_data_check','site':{'template':'retail/scale-marketplace','key':'return_received'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'RMA'}],'note':'RMA\x20receipt\x20row\x20under\x20the\x20same\x20order-keyed\x20evidence\x20policy\x20gates\x20return_in_transit\x20->\x20returned.'},{'id':'bind.repo_data.scale.lost_evidence','intent':'pattern.repository_data_check','site':{'template':'retail/scale-marketplace','key':'lost_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'item_lost'}],'note':'Carrier\x20lost-package\x20record\x20(same\x20writer\x20authorization\x20as\x20tracking\x20rows)\x20gates\x20the\x20item_lost\x20filing.'},{'id':'bind.repo_data.preorder.ship','intent':'pattern.repository_data_check','site':{'template':'retail/preorder-deposit','key':'ship'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'shipped'}],'note':'Tracking\x20hash\x20in\x20the\x20order-keyed\x20evidence\x20policy\x20gates\x20balance_paid\x20->\x20shipped.'},{'id':'bind.repo_data.preorder.return_received','intent':'pattern.repository_data_check','site':{'template':'retail/preorder-deposit','key':'return_received'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'RMA'}],'note':'RMA\x20row\x20under\x20the\x20SAME\x20order-keyed\x20evidence\x20policy\x20as\x20the\x20tracking\x20rows\x20(the\x20purpose\x27s\x20pairing)\x20gates\x20return_in_transit\x20->\x20returned.'},{'id':'bind.repo_data.restock.ship','intent':'pattern.repository_data_check','site':{'template':'retail/restock-supply','key':'ship'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'shipped'}],'note':'Carrier\x20tracking\x20hash\x20gates\x20paid\x20->\x20shipped\x20on\x20the\x20supplier\x20side.'},{'id':'bind.repo_data.warehouse.ship','intent':'pattern.repository_data_check','site':{'template':'retail/warehouse-club','key':'ship'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'shipped'}],'note':'Tracking\x20hash\x20gates\x20picking\x20->\x20shipped\x20(the\x20club\x27s\x20staff-labor\x20stage\x20is\x20upstream).'},{'id':'bind.repo_data.warehouse.return_received','intent':'pattern.repository_data_check','site':{'template':'retail/warehouse-club','key':'return_received'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'RMA'}],'note':'RMA\x20receipt\x20row\x20gates\x20the\x20return\x20advance.'},{'id':'bind.repo_data.warehouse.lost_evidence','intent':'pattern.repository_data_check','site':{'template':'retail/warehouse-club','key':'lost_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'item_lost'}],'note':'Lost-package\x20record\x20gates\x20the\x20item_lost\x20filing.'},{'id':'bind.repo_data.bugbounty.submit_evidence','intent':'pattern.repository_data_check','site':{'template':'freelance/bug-bounty','key':'submit_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'report'},{'param':'evidence_marker','value':'0x'}],'note':'The\x20report\x20policy\x27s\x20row\x20value\x20IS\x20the\x20hunter\x27s\x20address,\x20so\x20the\x20marker\x20is\x20the\x20address\x20prefix\x20—\x20the\x20gate\x20proves\x20an\x20address-valued\x20report\x20row\x20exists\x20for\x20THIS\x20order\x20(the\x20order-pin\x20leg),\x20and\x20the\x20recorded\x20reporter\x20is\x20the\x20anchor\x20the\x20settlement\x20Signer-binding\x20leg\x20reads.\x20The\x20write\x20side\x20is\x20the\x20template\x27s\x20own\x20hunter-bound\x20report_write\x20guard.'},{'id':'bind.repo_data.errand.dispatch_record','intent':'pattern.repository_data_check','site':{'template':'delivery/on-demand-errand','key':'dispatch_record'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'evidence'},{'param':'evidence_marker','value':'dispatch'}],'note':'The\x20desk\x27s\x20dispatch\x20row\x20(runner\x20assignment\x20id,\x20fee-table\x20version\x20LOCKED\x20at\x20order\x20time)\x20must\x20exist\x20before\x20the\x20assignment\x20is\x20on\x20chain\x20—\x20the\x20runner\x20assignment\x20itself\x20is\x20an\x20off-chain\x20keeper\x20decision,\x20this\x20row\x20is\x20its\x20record.'},{'id':'bind.repo_data.groupbuy.sourcing','intent':'pattern.repository_data_check','site':{'template':'group_buy/leader-sourced-community','key':'sourcing_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'sourcing'},{'param':'evidence_marker','value':'sourcing'}],'note':'Supplier-order\x20row\x20(refs,\x20unit\x20costs,\x20quantities\x20for\x20THIS\x20round)\x20gates\x20SourceGoods\x20—\x20the\x20round\x27s\x20money\x20trail\x20starts\x20here.\x20Row\x20name\x20follows\x20the\x20W5-13\x20five-way\x20evidence\x20split\x20(one\x20evidence\x20KIND\x20per\x20policy\x20so\x20kinds\x20cannot\x20overwrite\x20each\x20other).\x20Write\x20side:\x20the\x20template\x27s\x20own\x20sourcing_write\x20staff-allowlist\x20guard.'},{'id':'bind.repo_data.groupbuy.distribution','intent':'pattern.repository_data_check','site':{'template':'group_buy/leader-sourced-community','key':'distribution_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'distribution'},{'param':'evidence_marker','value':'distribution'}],'note':'Community-point\x20distribution\x20row\x20(batch\x20id,\x20quantities\x20delivered)\x20gates\x20DistributeGoods.\x20Row\x20name\x20follows\x20the\x20W5-13\x20five-way\x20evidence\x20split.\x20Write\x20side:\x20the\x20template\x27s\x20own\x20distribution_write\x20staff-allowlist\x20guard.'},{'id':'bind.repo_data.contest.final_files','intent':'pattern.repository_data_check','site':{'template':'freelance/design-contest','key':'final_files'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'final_files'},{'param':'evidence_marker','value':'0x'}],'note':'The\x20winner\x27s\x20final\x20source-file\x20WIP-hash\x20row\x20(order-keyed,\x20so\x20the\x20twin\x27s\x20order-pin\x20holds)\x20must\x20exist\x20before\x20DeliverFinal\x20passes\x20—\x20the\x20sponsor\x20accepts\x20against\x20a\x20tamper-evident\x20artifact,\x20not\x20prose.\x20The\x20marker\x20is\x20the\x20hash-prefix\x20idiom\x20(the\x20row\x20value\x20IS\x20the\x20hash\x20—\x20the\x20bug-bounty\x20report\x20face).\x20Write\x20side:\x20the\x20template\x27s\x20own\x20final_files_write\x20guard;\x20deliberately\x20NO\x20write_once\x20so\x20a\x20revision\x20round\x20(Redeliver)\x20re-delivers\x20and\x20re-writes.'},{'id':'bind.repo_data.longstay.handover','intent':'pattern.repository_data_check','site':{'template':'rental/institutional-longstay','key':'handover'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'handover'},{'param':'evidence_marker','value':'handover'}],'note':'Move-in\x20checklist\x20hash\x20row\x20gates\x20deposit_paid\x20->\x20in_use;\x20the\x20writer\x20embeds\x20the\x20\x27handover\x27\x20token\x20(the\x20scale-marketplace\x20composite-value\x20convention).\x20Write\x20side:\x20the\x20template\x27s\x20own\x20handover_write\x20guard.'},{'id':'bind.repo_data.longstay.damage','intent':'pattern.repository_data_check','site':{'template':'rental/institutional-longstay','key':'damage_evidence'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present'},'derive':[{'param':'row_name','value':'damage_evidence'},{'param':'evidence_marker','value':'damage'}],'note':'Pre+post\x20evidence-diff\x20row\x20gates\x20the\x20damage\x20verdict\x20(verdict_damage,\x20verifier\x20slot\x201002);\x20the\x20natural-wear\x20exclusion\x20stays\x20prose\x20—\x20a\x20policy\x20authorizes\x20WHO\x20writes,\x20never\x20compares\x20VALUES\x20(upw-mn-261016\x20F-01).\x20Write\x20side:\x20the\x20template\x27s\x20own\x20damage_evidence_write\x20guard.'},{'id':'bind.repo_data.creatormb.content_hash','intent':'pattern.repository_data_check','site':{'template':'subscription/creator-membership','key':'content_hash'},'binding':{'kind':'guard_template','id':'tpl_repository_row_equals_order_field'},'derive':[{'param':'row_name','value':'content_hash'},{'param':'order_field','value':'order.item.wip_hash'}],'note':'The\x20EQUALITY\x20twin,\x20not\x20mere\x20presence:\x20the\x20purpose\x20demands\x20the\x20submission\x20MATCH\x20the\x20order\x20item\x20commitment,\x20and\x20the\x20order-keyed\x20read\x20(query\x201167\x20with\x20THE\x20SUBMITTED\x20ORDER\x20—\x20no\x20candidate\x20list\x20to\x20pad)\x20is\x20chain-bound.\x20Deliberately\x20NO\x20write_once:\x20each\x20renewal\x20period\x20re-writes\x20the\x20row\x20(the\x20OFN5-10\x20known\x20face\x20—\x20content\x20evidence\x20is\x20per-order;\x20period-N\x20keyed\x20rows\x20stay\x20the\x20protocol\x20decision\x20list).\x20Write\x20side:\x20the\x20template\x27s\x20own\x20content_write\x20guard.'},{'id':'bind.repo_data.contest.appeal','intent':'pattern.repository_data_check','site':{'template':'freelance/design-contest','key':'appeal_filed'},'binding':{'kind':'guard_template','id':'tpl_repository_row_present_signer'},'derive':[{'param':'row_name','value':'entry'},{'param':'evidence_marker','value':'0x'}],'note':'Signer-pinned\x20presence:\x20the\x20entry\x20policy\x20is\x20SIGNER-keyed\x20(id_from\x20signer\x20—\x20one\x20row\x20per\x20designer),\x20so\x20the\x20twin\x27s\x20candidate\x20set\x20is\x20stringContains(0x)\x20rows\x20and\x20the\x20context(Signer)\x20pin\x20proves\x20the\x20appellant\x20AUTHORED\x20an\x20entry\x20(a\x20bystander\x20with\x20no\x20entry\x20of\x20their\x20own\x20cannot\x20grieve\x20the\x20contest).\x20The\x200x\x20marker\x20is\x20a\x20DECLARED\x20write-point\x20convention:\x20entry\x20values\x20are\x20WIP-hash\x20strings\x20(entry_write,\x20the\x200x\x20hash-prefix\x20idiom\x20same\x20as\x20final_files)\x20—\x20a\x20policy\x20authorizes\x20WHO\x20writes\x20and\x20never\x20compares\x20VALUES,\x20so\x20the\x20convention\x20had\x20to\x20be\x20declared\x20at\x20the\x20write\x20side\x20before\x20any\x20read\x20could\x20match\x20it.\x20Write\x20side:\x20the\x20template\x27s\x20own\x20entry_write\x20guard.'},{'id':'bind.rail.p2p.claim_paid','intent':'pattern.progress_state_check','site':{'template':'rental/p2p-shortstay','key':'claim_paid_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_claim_settle'},'derive':[{'param':'settle_node','value':'claim_paid'}],'note':'Host-side\x20settlement\x20from\x20the\x20intact\x20booking\x20pool\x20at\x20the\x20single\x20terminal\x20claim_paid\x20(the\x20alt\x20slots\x20default\x20to\x20it;\x20claim_paid\x20is\x20single-entry\x20with\x20no\x20back\x20edge\x20and\x20mutually\x20exclusive\x20with\x20guest_claim_paid,\x20so\x20exactly-once\x20is\x20topological\x20—\x20the\x20twin\x20arms\x20no\x20254\x20slot\x20by\x20design).\x20DELIBERATELY\x20NO\x20claimed_by\x20leg\x20(the\x202026-10-30\x20polarity\x20ruling,\x20generalized\x20to\x20decision\x2011\x20two-rail\x20independence):\x20the\x20arbitration\x20award\x20(compensation\x20fund\x20->\x20order\x20owner)\x20and\x20this\x20booking\x20pool\x20(->\x20host)\x20are\x20independent\x20channels,\x20and\x20claimed_by\x20records\x20the\x20compensation\x20EVENT,\x20not\x20the\x20winner\x27s\x20direction\x20(D-BUG-2)\x20—\x20a\x20claimed_by==false\x20leg\x20would\x20weld\x20the\x20pool\x20shut\x20on\x20a\x20split\x20award\x20or\x20a\x20zero-award\x20ruling\x20on\x20an\x20upheld\x20appeal,\x20either\x20of\x20which\x20still\x20writes\x20claimed_by\x20before\x20the\x20host\x27s\x20share\x20is\x20paid.\x20NO\x20order.service\x20binding\x20either\x20(bsw4\x20F-06\x20—\x20the\x20settle\x20family\x20dropped\x20the\x20host\x20pin\x20under\x20v148\x27s\x20chain-side\x20task-binding\x20check).'},{'id':'bind.rail.liveclass.session_release','intent':'pattern.identity_check_order_holder','site':{'template':'education/live-class-cohort','key':'session_release_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_session_release'},'derive':[{'param':'session_node','value':'session_1'},{'param':'session_node_alt','value':'session_2'},{'param':'session_node_alt2','value':'session_3'},{'param':'session_node_alt3','value':'completed_ready'},{'param':'session_node_alt4','value':'completed'},{'param':'session_node_alt5','value':'renewal_window'}],'note':'Per-session\x20staged\x20settlement\x20—\x20the\x20purpose\x27s\x20release-sequence\x20lock\x20MATERIALIZED:\x20the\x20255\x20once\x20leg\x20pins\x20the\x20monotonic\x20progress.history\x20count,\x20so\x20each\x20attended\x20session\x27s\x20release\x20gets\x20a\x20fresh\x20chain\x20OnceKey\x20and\x20a\x20same-session\x20replay\x20aborts\x2016\x20(OFN\x20#P-04),\x20and\x20the\x20six-node\x20qualifying\x20set\x20keeps\x20the\x20finalization\x20states\x20admissible\x20as\x20the\x20exit\x20safety\x20net\x20(FUND-EXIT-01).\x20The\x20caller\x20rail\x20is\x20BUYER-ONLY\x20by\x20ruling\x20(2026-10-30):\x20the\x20institution\x20advances\x20the\x20workflow\x20but\x20can\x20never\x20self-claim\x20attendance\x20money;\x20a\x20parent-gone\x20order\x20still\x20exits\x20via\x20the\x20terminal\x20residual\x20sweep\x20(bind.rail.liveclass.terminal_settlement)\x20and\x20its\x20recover\x20twin.\x20DELIBERATELY\x20NO\x20claimed_by\x20leg\x20(decision\x2011)\x20—\x20a\x20staged\x20rail\x20must\x20keep\x20firing\x20after\x20an\x20award\x20pays;\x20award\x20and\x20release\x20are\x20independent\x20channels.'},{'id':'bind.rail.creatormb.refund_gate','intent':'pattern.identity_check_order_holder','site':{'template':'subscription/creator-membership','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund_renewal'},'derive':[{'param':'refund_node','value':'subscribed'},{'param':'refund_node_alt','value':'charging'},{'param':'refund_node_alt2','value':'delivering'},{'param':'refund_node_alt3','value':'closed_cancel'},{'param':'refund_node_alt4','value':'expired'}],'note':'RAIL-03\x20resolution\x20(ruling\x202026-10-30,\x20recast\x20decision\x2011):\x20the\x20twin\x20is\x20node-gated\x20over\x20the\x20refundable\x20node\x20set\x20—\x20the\x20former\x20claimed_by\x20some\x20==\x20false\x20polarity\x20leg\x20was\x20removed\x20template-wide,\x20so\x20the\x20old\x20polarity-disjointness\x20argument\x20vs\x20awarded_recover\x20is\x20retired;\x20both\x20rails\x20now\x20key\x20on\x20NODE\x20state\x20and\x20their\x20overlap\x20is\x20a\x20disclosed\x20double-collection\x20surface\x20at\x20the\x20MCP\x20confirmation\x20gate.\x20Plus\x20the\x20255\x20history-count\x20once\x20key\x20(\x27period-<N>\x27)\x20for\x20the\x20re-enterable\x20refund\x20nodes\x20and\x20the\x20BUYER-OR-KEEPER\x20caller\x20leg:\x20the\x20lapsed\x20member\x20is\x20gone\x20at\x20expired\x20and\x20needs\x20a\x20keeper\x20to\x20fire\x20(K-4),\x20while\x20the\x20order-anchored\x20recipient\x20binds\x20WHERE\x20funds\x20land,\x20so\x20the\x20keeper\x20can\x20only\x20pay\x20the\x20member,\x20never\x20themselves.\x20The\x20five-node\x20set\x20covers\x20every\x20refundable\x20node\x20AND\x20both\x20mandatory\x20terminals\x20(closed_cancel,\x20expired\x20—\x20OFN\x20#P-02).'},{'id':'bind.rail.deliverymb.refund_gate','intent':'pattern.identity_check_order_holder','site':{'template':'subscription/delivery-membership','key':'refund_gate'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund_renewal'},'derive':[{'param':'refund_node','value':'subscribed'},{'param':'refund_node_alt','value':'charging'},{'param':'refund_node_alt2','value':'active'},{'param':'refund_node_alt3','value':'closed_cancel'}],'note':'Same\x20renewal-safe\x20twin,\x20four-node\x20set\x20{subscribed,\x20charging,\x20active,\x20closed_cancel}:\x20this\x20shape\x20has\x20NO\x20expired\x20terminal,\x20so\x20the\x20twin\x27s\x20fifth\x20slot\x20rides\x20its\x20duplicate-tautology\x20default\x20(a\x20legal\x20tautology,\x20never\x20a\x20dead\x20literal).\x20Caller-leg\x20rationale\x20as\x20the\x20creator-membership\x20row\x20—\x20the\x20keeper\x20leg\x20covers\x20the\x20mid-period\x20cancel\x20whose\x20member\x20has\x20walked\x20away\x20(decision\x2011:\x20no\x20polarity\x20leg;\x20node-keyed\x20exits,\x20overlap\x20disclosed\x20at\x20the\x20MCP\x20confirmation\x20gate).'},{'id':'bind.rail.p2p.tier1_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_1_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-1\x20(flexible)\x20guest-cancel\x20refund:\x20full-refund\x20legs\x20(Rate\x2010000\x20to\x20the\x20order\x20anchor).\x20Node\x20gate\x20+\x20caller\x20legs\x20ship\x20in\x20the\x20twin\x20root\x20(decision\x2011:\x20no\x20claimed_by\x20leg)\x20—\x20the\x20same\x20shape\x20the\x20template\x27s\x20own\x20confirm_expire_refund\x20/\x20host_cancel_refund\x20specs\x20already\x20instantiate\x20directly.\x20The\x20band\x20disclosure\x20above\x20applies:\x20cancellation\x20timing\x20is\x20not\x20on-chain-enforceable,\x20the\x20selector\x20scopes\x20the\x20economics.'},{'id':'bind.rail.p2p.tier2_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_2_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-2\x20(moderate)\x20guest-cancel\x20refund:\x20full-refund\x20legs;\x20same\x20shape\x20and\x20disclosure\x20as\x20the\x20tier-1\x20row.'},{'id':'bind.rail.p2p.tier3_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_3_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-3\x20(firm)\x20guest-cancel\x20refund:\x20full-refund\x20legs;\x20same\x20shape\x20and\x20disclosure\x20as\x20the\x20tier-1\x20row.'},{'id':'bind.rail.p2p.tier4_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_4_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-4\x20(strict)\x20guest-cancel\x20refund:\x20full-refund\x20legs;\x20same\x20shape\x20and\x20disclosure\x20as\x20the\x20tier-1\x20row.'},{'id':'bind.rail.p2p.tier5_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_5_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-5\x20(strict-partial)\x20guest-cancel\x20refund:\x20the\x20group\x27s\x20own\x20legs\x20are\x20the\x20PARTIAL\x20split\x20(tier5_guest_bps\x20to\x20the\x20order\x20anchor\x20+\x20tier5_host_bps\x20to\x20the\x20host,\x20sum\x2010000)\x20—\x20the\x20guard\x20is\x20the\x20same\x20node-gate\x20twin;\x20the\x20split\x20economics\x20live\x20in\x20the\x20allocator\x20rows,\x20not\x20the\x20guard.'},{'id':'bind.rail.p2p.tier6_refund','intent':'pattern.time_lock_progress','site':{'template':'rental/p2p-shortstay','key':'cancel_tier_6_refund'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_refund'},'derive':[{'param':'refund_node','value':'guest_cancelled'}],'note':'Tier-6\x20(long-stay)\x20guest-cancel\x20refund:\x20partial\x20split\x20like\x20tier\x205\x20(tier6_guest_bps\x20+\x20tier6_host_bps,\x20sum\x2010000);\x20same\x20node-gate\x20twin\x20and\x20disclosure.'},{'id':'bind.rail.p2p.residual_sweep','intent':'pattern.progress_state_check','site':{'template':'rental/p2p-shortstay','key':'terminal_residual_sweep'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle_once'},'derive':[{'param':'settle_node','value':'completed'}],'note':'KLK-P0-2\x20terminal\x20residual\x20sweep\x20(longstay\x20parity):\x20the\x20sweep\x20is\x20single-shot\x20at\x20a\x20TERMINAL\x20node,\x20so\x20the\x20settle_once\x20twin\x27s\x20chain-derived\x20254\x20(exactly-once\x20per\x20order,\x20publicly\x20unforgeable)\x20is\x20the\x20stricter\x20once\x20key\x20for\x20the\x20same\x20semantics;\x20Node\x20pin\x20and\x20the\x20caller\x20leg\x20ship\x20in\x20the\x20twin\x20root\x20(the\x20former\x20claimed_by-false\x20leg\x20is\x20removed\x20by\x20decision\x2011).\x20rk3b-tn-261030:\x20resolving\x20the\x20tier\x20refund\x20rails\x20emptied\x20the\x20pending-allocator\x20bucket\x20and\x20FUND-EXIT-01\x20flipped\x20CRITICAL\x20on\x20completed\x20—\x20the\x20strand\x20this\x20sweep\x20closes\x20(the\x20keeper\x20finalizes\x20past\x20payout_released/claim_paid\x20without\x20firing\x20the\x20release\x20alloc;\x20Machine+Allocator\x20are\x20immutable\x20after\x20publish)\x20was\x20real\x20the\x20whole\x20time,\x20the\x20medium\x20tier\x20had\x20merely\x20been\x20hiding\x20it\x20behind\x20an\x20unrelated\x20pending\x20design.'},{'id':'bind.rail.longstay.month1','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_1_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x1e}],'note':'Month\x201\x20of\x20the\x20staged\x20rent\x20schedule:\x20the\x20Amount\x20rail\x20opens\x2030\x20days\x20after\x20the\x20handover\x20entry.\x20The\x20release_node\x20pin\x20IS\x20the\x20mid-lease\x20stay\x20(alloc\x20evaluates\x20while\x20the\x20order\x20sits\x20at\x20in_use)\x20and\x20the\x20opening\x20clock\x20makes\x20same-day\x20double\x20releases\x20impossible\x20(each\x20month\x27s\x20rail\x20opens\x20only\x20at\x20its\x20own\x2030-day\x20mark\x20—\x20the\x20single-shared-Guard\x20hazard\x20the\x20template\x27s\x20staged-release\x20comment\x20names).\x20A\x20pending\x20rail\x20aborted\x20alloc_by_guard:\x20rent\x20releases\x20stranded\x20and\x20the\x20sweep\x20paid\x20the\x20landlord\x27s\x20income\x20to\x20the\x20tenant.'},{'id':'bind.rail.longstay.month2','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_2_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x3c}],'note':'Month\x202:\x20opens\x2060\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month3','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_3_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x5a}],'note':'Month\x203:\x20opens\x2090\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month4','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_4_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x78}],'note':'Month\x204:\x20opens\x20120\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month5','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_5_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x96}],'note':'Month\x205:\x20opens\x20150\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month6','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_6_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0xb4}],'note':'Month\x206:\x20opens\x20180\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month7','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_7_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0xd2}],'note':'Month\x207:\x20opens\x20210\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month8','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_8_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0xf0}],'note':'Month\x208:\x20opens\x20240\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month9','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_9_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x10e}],'note':'Month\x209:\x20opens\x20270\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month10','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_10_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x12c}],'note':'Month\x2010:\x20opens\x20300\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month11','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_11_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x14a}],'note':'Month\x2011:\x20opens\x20330\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.longstay.month12','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'month_12_release'},'binding':{'kind':'guard_template','id':'tpl_allocator_serial_window_release'},'derive':[{'param':'release_node','value':'in_use'},{'param':'window_node','value':'in_use'},{'param':'claim_window_days','value':0x168}],'note':'Month\x2012\x20(final):\x20opens\x20360\x20days\x20after\x20handover;\x20rationale\x20as\x20the\x20month-1\x20row.'},{'id':'bind.rail.directfan.expired_settle','intent':'pattern.time_lock_progress','site':{'template':'subscription/direct-fan-subscription','key':'expired_settle'},'binding':{'kind':'guard_template','id':'tpl_allocator_node_gate_settle'},'derive':[{'param':'settle_node','value':'expired'}],'note':'Lapsed-period\x20settlement\x20(D-30\x20completion):\x20the\x20rail\x20row\x20has\x20existed\x20since\x20the\x20D-30\x20fix\x20but\x20its\x20guard\x20stayed\x20pending,\x20so\x20alloc_by_guard\x20kept\x20aborting\x20and\x20the\x20natural\x20lapse\x20still\x20stranded\x20the\x20escrow.\x20The\x20255\x20once\x20key\x20matches\x20the\x20sibling\x20settle_rail\x20row\x27s\x20per-period\x20discipline.'},{'id':'bind.rail.longstay.inspect_timeout','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'inspect_timeout'},'binding':{'kind':'guard_template','id':'tpl_time_lock_progress'},'derive':[{'param':'expected_node','value':'inspected'},{'param':'duration_ms','from':'fee_params','key':'inspection_deadline_hours','scale':'hours_to_ms'}],'note':'Verifier\x20no-show\x20opener:\x20the\x20tenant\x20may\x20self-complete\x20only\x20after\x20inspection_deadline_hours\x20from\x20the\x20inspected\x20entry\x20—\x20the\x20fee\x20knob\x20stops\x20being\x20prose.\x20Anchor\x20=\x20the\x20mount\x27s\x20prev\x20(single\x20buyer\x20mount,\x20NODE-MATCH-01\x20safe);\x20the\x20resolved\x20spec\x20displaces\x20the\x20F05\x20identity\x20injection\x20on\x20this\x20edge\x20(a\x20resolved\x20spec\x20wins\x20—\x20f05\x20doctrine),\x20leaving\x20the\x20deadline\x20as\x20the\x20designed\x20nofault\x20gate.'},{'id':'bind.rail.longstay.no_inspect_timeout','intent':'pattern.time_lock_progress','site':{'template':'rental/institutional-longstay','key':'no_inspect_timeout'},'binding':{'kind':'guard_template','id':'tpl_time_lock_progress'},'derive':[{'param':'expected_node','value':'returned'},{'param':'duration_ms','from':'fee_params','key':'inspection_deadline_hours','scale':'hours_to_ms'}],'note':'Inspection-never-started\x20opener:\x20the\x20tenant\x20may\x20self-complete\x20after\x20inspection_deadline_hours\x20from\x20the\x20RETURN\x20entry\x20(the\x20verifier\x20never\x20opened\x20the\x20inspection).\x20Same\x20shape\x20and\x20rationale\x20as\x20the\x20inspect_timeout\x20row.'},{'id':'bind.rail.p2p.claim_window_open','intent':'pattern.time_window_upper_bound','site':{'template':'rental/p2p-shortstay','key':'claim_window_open'},'binding':{'kind':'guard_template','id':'tpl_time_window_upper_deadline_days'},'derive':[{'param':'expected_node','value':'claim_window'},{'param':'claim_window_days','from':'fee_params','key':'claim_window_days'}],'note':'Host\x20filing\x20deadline\x20—\x20the\x20keeper\x20mirror\x20of\x20the\x20census-resolved\x20guest_claim_window_open\x20row:\x20the\x20filing\x20host\x20may\x20open\x20a\x20claim\x20only\x20INSIDE\x20claim_window_days\x20of\x20the\x20claim_window\x20entry.\x20The\x20window\x20length\x20rides\x20the\x20template\x27s\x20own\x20fee\x20knob;\x20after\x20expiry\x20the\x20no-claim\x20release\x20rail\x20(claim_window_closed,\x20census-resolved)\x20is\x20the\x20only\x20exit,\x20so\x20a\x20late\x20claim\x20strands\x20nothing.'},{'id':'bind.rail.longstay.inspect_window','intent':'pattern.time_window_upper_bound','site':{'template':'rental/institutional-longstay','key':'inspect_window'},'binding':{'kind':'guard_template','id':'tpl_time_window_upper_deadline'},'derive':[{'param':'expected_node','value':'inspected'},{'param':'duration_ms','from':'fee_params','key':'inspection_deadline_hours','scale':'hours_to_ms'}],'note':'Verifier\x20pass\x20window:\x20the\x20inspection\x20may\x20be\x20passed\x20only\x20INSIDE\x20inspection_deadline_hours\x20of\x20the\x20inspected\x20entry;\x20after\x20expiry\x20the\x20tenant\x27s\x20self-complete\x20opener\x20(the\x20inspect_timeout\x20row\x20above)\x20is\x20the\x20only\x20advance\x20—\x20the\x20designed\x20deadline/opener\x20belt\x20on\x20one\x20fee\x20knob.'}];export const BINDING_NOTES=[{'scope':'pattern.required_info_evidence_gate','status':'deliberate-pending','reason':'COMPOSITION\x20PRESCRIPTION\x20(amz9-ln-261023\x20A-4):\x20customer_required\x20is\x20DECLARATIVE\x20—\x20the\x20purchase\x20entry\x20never\x20reads\x20it\x20and\x20order.required_info\x20is\x20an\x20Option\x20the\x20buyer\x20may\x20leave\x20empty,\x20so\x20an\x20unconditional\x20presence\x20gate\x20bricks\x20every\x20order\x20of\x20an\x20info-free\x20shop.\x20The\x20ENFORCED\x20form\x20is\x20an\x20inline\x20AND-composition\x20(the\x20mount\x27s\x20identity\x20root\x20AND\x20tpl_required_info_present)\x20resolved\x20per\x20shop\x20via\x20guard_resolutions\x20—\x20never\x20a\x20standalone\x20tpl\x20mount.\x20A\x20binding\x20row\x20can\x20only\x20mount\x20ONE\x20tpl,\x20so\x20this\x20family\x20is\x20out\x20of\x20the\x20table\x27s\x20expressiveness\x20by\x20design.'},{'scope':'pattern.identity_check_allowlist','status':'deliberate-pending','reason':'TPL-02/F3-01\x20+\x20rex3\x20ruling\x20④:\x20an\x20allowlist\x20has\x20NO\x20safe\x20instanceable\x20default\x20—\x20an\x20empty/default\x20vector\x20denies\x20every\x20buyer\x20(brick)\x20and\x20a\x20populated\x20one\x20fabricates\x20an\x20eligibility\x20policy\x20the\x20merchant\x20never\x20stated.\x20Open\x20stores\x20drop\x20the\x20gate\x20via\x20guard_resolutions\x20({kind:\x27omit\x27}\x20on\x20unbound\x20designs).'},{'scope':'pattern.buy_guard_blocklist','status':'deliberate-pending','reason':'Same\x20no-safe-default\x20family\x20as\x20the\x20allowlist:\x20the\x20five\x20freelance\x20buy\x20gates\x20encode\x20\x27Passport-gated\x20purchase\x20once\x20set\x27\x20—\x20a\x20disjoint-identity\x20policy\x20(funder/triager/hunter\x20three-way)\x20whose\x20default\x20shape\x20would\x20fabricate\x20either\x20an\x20open\x20or\x20a\x20bricked\x20store.\x20Merchant\x20resolution\x20only.'},{'scope':'pattern.time_lock_progress\x20/\x20pattern.time_window_upper_bound\x20(absolute-date\x20class:\x20p2p\x20tier\x20forwards\x20cancel_tier_1..6,\x20checkin_gate,\x20checkout_gate,\x20host_cancel)','status':'deferred','reason':'ABSOLUTE-DATE\x20typed\x20gates:\x20the\x20policy\x20counts\x20from\x20a\x20per-order\x20real-world\x20date\x20(check-in\x2016:00,\x20departure\x2011:00,\x20\x27until\x2024h\x20before\x20check-in\x27)\x20and\x20the\x20booking\x20dates\x20have\x20NO\x20on-chain\x20row\x20—\x20the\x20progress-anchored\x20twins\x20cannot\x20express\x20them,\x20and\x20a\x20relative\x20pin\x20would\x20enforce\x20a\x20DIFFERENT\x20policy\x20(an\x20order.time-anchored\x20window\x20expires\x20before\x20the\x20stay\x20even\x20starts\x20when\x20the\x20lead\x20time\x20is\x20long\x20—\x20TIME-ANCHOR-01).\x20Needs\x20a\x20future\x20booking-date\x20repository\x20row\x20+\x20Clock\x20comparison\x20twin\x20(protocol-train\x20adjacent).\x20The\x20tier\x20refund\x20RAILS\x20left\x20this\x20note\x20in\x20batch\x20six\x20(bind.rail.p2p.tier1-6_refund):\x20the\x20selector\x20plus\x20the\x20per-tier\x20allocator\x20legs\x20carry\x20the\x20economics,\x20disclosed\x20weakening.'},{'scope':'pattern.time_lock_progress\x20(p2p\x20claim_review)','status':'deliberate-pending','reason':'COMPOSITE\x20ADJUDICATION\x20PRESCRIPTION:\x20the\x20purpose\x20is\x20an\x20evidence\x20pre+post\x20comparison\x20chain\x20+\x20a\x2024h\x20guest\x20response\x20window\x20+\x20any\x20arbitration\x20ruling\x20—\x20a\x20composition,\x20not\x20one\x20clock.\x20No\x20single-clock\x20twin\x20expresses\x20it;\x20an\x20inline\x20guard_resolutions\x20composite\x20resolved\x20per\x20shop\x20is\x20the\x20sanctioned\x20form\x20(the\x20deliver_work\x20family\x27s\x20disposition).'},{'scope':'pattern.time_lock_progress\x20(institutional\x20early_exit_window)','status':'deliberate-pending','reason':'The\x20purpose\x27s\x20own\x20DIRECTION\x20CAVEAT\x20refuses\x20a\x20default:\x20an\x20early\x20exit\x20is\x20typically\x20allowed\x20THROUGHOUT\x20the\x20lease\x20and\x20the\x20penalty\x20allocator\x20carries\x20the\x20economics\x20—\x20a\x20default\x20time\x20leg\x20would\x20fabricate\x20policy\x20(opening\x20=\x20notice-period-elapsed,\x20closing\x20=\x20exit-by\x20deadline;\x20bind\x20only\x20deliberately).'},{'scope':'pattern.repository_data_check\x20(catalog-tiers\x20deliver_work,\x20p2p-shortstay\x20guest_claim_evidence)','status':'deliberate-pending','reason':'COMPOSITION\x20PRESCRIPTIONS\x20—\x20out\x20of\x20the\x20table\x27s\x20one-tpl\x20expressiveness\x20by\x20design.\x20deliver_work:\x20the\x20evidence\x20is\x20a\x20retained_submission\x20in\x20progress\x20history,\x20not\x20a\x20repository\x20row\x20—\x20no\x20row_present\x20mapping\x20exists.\x20guest_claim_evidence:\x20the\x20purpose\x20is\x20an\x20inline\x20composition\x20recipe;\x20a\x20standalone\x20mount\x20is\x20forbidden.\x20The\x20bug-bounty\x20refund_gate\x20face\x20left\x20this\x20list:\x20its\x20FOUR-node\x20refundable\x20set\x20{rejected,\x20closed_cancel,\x20duplicate,\x20withdrawn}\x20resolved\x20through\x20the\x20twin\x27s\x20shipped\x20fourth\x20node\x20slot\x20(refund_node_alt3,\x20table\x20identifier\x207)\x20—\x20the\x20declaration\x20now\x20mounts\x20tpl_allocator_node_gate_refund\x20directly,\x20no\x20by-copy\x20extension.'},{'scope':'pattern.repository_data_check\x20(direct-fan\x20content_hash,\x20after\x20the\x20template-data\x20fix)','status':'deliberate-pending','reason':'COMPOSITION\x20PRESCRIPTION\x20—\x20the\x20purpose\x20demands\x20the\x20content\x20row\x20EQUAL\x20the\x20order\x20item\x20commitment\x20AND\x20allocation.balance\x20>=\x20order.amount\x20(query\x201051\x20+\x20witness,\x20ofn5\x20F-04:\x20a\x20drained\x20pool\x20must\x20stop\x20fulfillment\x20structurally);\x20a\x20binding\x20row\x20mounts\x20ONE\x20tpl,\x20so\x20only\x20a\x20guard_resolution\x20can\x20ship\x20both\x20legs.\x20The\x20content_hash\x20policy\x20IS\x20declared\x20(content_write)\x20for\x20that\x20resolution\x20to\x20bind\x20—\x20creator-membership,\x20whose\x20purpose\x20carries\x20NO\x20balance\x20leg,\x20takes\x20the\x20plain\x20equality\x20row.'},{'scope':'pattern.repository_write_authorization\x20(member_roster_write)','status':'deliberate-pending','reason':'SIGNER-KEYED\x20PAIRING\x20PROHIBITION:\x20the\x20member\x20roster\x20is\x20deliberately\x20signer-keyed\x20(row\x20id\x20=\x20the\x20member\x27s\x20own\x20address;\x20the\x20T-11\x20credentialed\x20buy\x20guard\x20reads\x20row\x20id\x20=\x20the\x20calling\x20Signer),\x20and\x20BOTH\x20repository-write\x20twins\x20in\x20the\x20library\x20are\x20ORDER-KEYED\x20—\x20their\x20creation\x20notes\x20forbid\x20pairing\x20with\x20a\x20signer-keyed\x20policy\x20(the\x20order-keyed\x20identity\x20leaf\x20would\x20re-key\x20rows\x20and\x20break\x20the\x20signer-addressed\x20roster\x20read).\x20Pending\x20is\x20correct\x20until\x20a\x20signer-keyed\x20identity-write\x20twin\x20(a\x20future\x20library\x20contribution)\x20exists.'},{'scope':'pattern.verifier_evidence_philosophy','status':'deliberate-pending','reason':'Benchmark-cap\x20buy\x20gates\x20(max\x20prepay\x20/\x20max\x20sessions\x20/\x20rent-sum\x20equality):\x20the\x20numbers\x20are\x20per-shop\x20commercial\x20policy,\x20the\x20check\x20shapes\x20vary\x20per\x20template,\x20and\x20no\x20single\x20twin\x20exists.\x20Merchant/judgment\x20surface\x20by\x20design.'},{'scope':'retail/warehouse-club\x20buy\x20(tpl_buy_guard_payment_voucher)','status':'deliberate-pending','reason':'Already\x20a\x20direct\x20tpl_*\x20ref\x20—\x20out\x20of\x20the\x20table\x27s\x20channel\x20entirely.\x20Its\x20GUARD_TEMPLATE_PARAMS\x20failure\x20is\x20the\x20designed\x20wizard\x20question\x20(merchant_address\x20has\x20no\x20declarable\x20default:\x20the\x20club\x27s\x20claimable\x20wallet\x20is\x20a\x20real-world\x20answer),\x20not\x20an\x20unresolved\x20design.'}];const ALLOCATOR_ROW_FIELD='allocator.rows[].',FEE_PARAM_FIELD='fee_params.';function discriminantsMatch(a,b,c){for(const e of a['discriminants']??[]){if(e['field']['startsWith'](ALLOCATOR_ROW_FIELD)){const f=e['field']['slice'](ALLOCATOR_ROW_FIELD['length']),g=c['allocator']?.['rows']??[];if(!g['some'](h=>h[f]===e['equals']))return![];}else{if(e['field']==='spec.key'){if(b['key']!==e['equals'])return![];}else{if(e['field']==='host'){if(b['host']!==e['equals'])return![];}else{if(e['field']['startsWith'](FEE_PARAM_FIELD)){if(c['fee_params']?.[e['field']['slice'](FEE_PARAM_FIELD['length'])]!==e['equals'])return![];}else return![];}}}}return!![];}export function lookupBinding(a,b){if(a['template_id']['startsWith']('tpl_'))return undefined;for(const c of BINDING_ROWS){if(c['intent']!==a['template_id'])continue;if(c['host']!==undefined&&c['host']!==a['host'])continue;if(c['site']!==undefined){if(c['site']['template']!==b['id'])continue;if(c['site']['key']!==undefined&&c['site']['key']!==a['key'])continue;}if(!discriminantsMatch(c,a,b))continue;const e={};for(const f of c['derive']??[]){if(f['value']!==undefined)e[f['param']]=f['value'];else{if(f['from']==='fee_params'){const g=b['fee_params']?.[f['key']??f['param']];if(typeof g==='number'&&f['scale']==='hours_to_ms')e[f['param']]=g*MS_PER_HOUR;else g!==undefined&&(e[f['param']]=g);}}}return{'row':c['id'],'template_id':c['binding']['id'],'params':e};}return undefined;}
@@ -0,0 +1,30 @@
1
+ export interface BindingHostFacts {
2
+ declared_slots?: number[];
3
+ amount_slot?: number;
4
+ order_submission_declared?: boolean;
5
+ demand_guard_count?: number;
6
+ open_write_aggregate_rows?: boolean;
7
+ }
8
+ export interface BindingFinding {
9
+ code: string;
10
+ host: string;
11
+ level: "critical" | "warning" | "info";
12
+ detail: string;
13
+ }
14
+ export interface GuardBindingInput {
15
+ host: string;
16
+ root?: unknown;
17
+ facts?: BindingHostFacts;
18
+ }
19
+ export declare function verifyGuardBinding(input: GuardBindingInput): BindingFinding[];
20
+ export declare function auditGuardRelies(input: {
21
+ from_host: string;
22
+ to_host: string;
23
+ child_count: number;
24
+ logic_and?: boolean;
25
+ }): BindingFinding[];
26
+ export declare function auditQuoteGuardCandidate(input: {
27
+ immutable?: boolean;
28
+ rep?: boolean;
29
+ relies_count?: number;
30
+ }): BindingFinding[];
@@ -0,0 +1 @@
1
+ import{getGuardHostContext}from'./guard-host-context.js';function isIdentityQuery(a){const b=a['toLowerCase']();if(b['startsWith']('context')||b['includes']('signer'))return!![];return/order\.agent|permission\.(owner|admin)|named.?operator/['test'](b);}function children(a){if(Array['isArray'](a['nodes']))return a['nodes'];if(a['node'])return[a['node']];return[];}function walk(a,b){if(!a||typeof a!=='object')return;const d=a;b(d);for(const e of children(d))walk(e,b);}function deadNamespaces(a){switch(a){case'reward_claim':case'service_buy_guard':case'gen_passport':case'demand_present':case'treasury_external_deposit':case'treasury_external_withdraw':return['order.','progress.'];case'arbitration_usage':return['order.','arb.'];default:return[];}}function deadLegCode(a){switch(a){case'reward_claim':return'RC_NO_ORDER_ANCHOR';case'service_buy_guard':return'SB_NO_ORDER_STATE';case'gen_passport':return'GP_NO_ORDER_AT_ISSUANCE';case'arbitration_usage':return'AU_DEAD_CASE_SCOPES';default:return'BV_DEAD_NAMESPACE_LEG';}}function slotInComparison(a,b){let c=![];return walk(a,d=>{if(c)return;if(!Array['isArray'](d['nodes'])||d['nodes']['length']<0x2)return;if(!/logic_/['test'](d['type']??''))return;for(const e of d['nodes']){if(e?.['type']==='identifier'&&e['identifier']===b){c=!![];return;}}}),c;}export function verifyGuardBinding(a){const b=[],{host:c,root:d,facts:e}=a;if(!d)return b;if(c==='reward_claim'&&e?.['order_submission_declared']){}else{const f=deadNamespaces(c);if(f['length']>0x0){const g=[];walk(d,h=>{if(typeof h['query']==='string')for(const i of f){if(h['query']['startsWith'](i)&&!g['includes'](i))g['push'](i);}});if(g['length']>0x0){const h=getGuardHostContext(c);b['push']({'code':deadLegCode(c),'host':c,'level':'warning','detail':'Query\x20namespace(s)\x20'+g['map'](i=>'\x22'+i+'*\x22')['join'](',\x20')+'\x20cannot\x20resolve\x20in\x20the\x20'+(c+'\x20evaluation\x20context\x20('+(h?.['order_anchor']??'no\x20anchor')+')\x20—\x20these\x20legs\x20are\x20')+'structurally\x20dead\x20here;\x20under\x20an\x20AND\x20scope\x20they\x20brick\x20the\x20branch,\x20negated\x20they\x20'+'short-circuit\x20it.\x20See\x20guard-host-context.ts.'});}}}(c==='treasury_external_withdraw'||c==='treasury_external_deposit')&&e?.['amount_slot']!==undefined&&(!slotInComparison(d,e['amount_slot'])&&(c==='treasury_external_withdraw'?b['push']({'code':'TW_AMOUNT_UNBOUNDED','host':c,'level':'warning','detail':'Amount\x20slot\x20'+e['amount_slot']+'\x20appears\x20only\x20as\x20a\x20submission\x20source,\x20never\x20inside\x20a\x20'+'comparison\x20leg\x20—\x20the\x20withdrawal\x20size\x20is\x20caller-chosen\x20up\x20to\x20the\x20full\x20balance\x20(the\x20'+'chain\x20debits\x20the\x20declared\x20number).\x20Non-open\x20venues\x20must\x20bound\x20the\x20slot.'}):b['push']({'code':'TD_AMOUNT_SLOT_SEMANTICS','host':c,'level':'info','detail':'Amount\x20slot\x20'+e['amount_slot']+'\x20is\x20unconstrained\x20—\x20the\x20depositor\x20sizes\x20the\x20credit\x20'+'(partial\x20deposit,\x20remainder\x20refunded;\x20whole\x20coin\x20when\x20the\x20identifier\x20is\x20omitted).\x20'+'Lower\x20stakes\x20than\x20the\x20withdraw\x20channel;\x20disclosure\x20only.'})));if(c==='machine_forward'&&e?.['declared_slots']){const i=e['declared_slots'],j=[];walk(d,k=>{if(!Array['isArray'](k['nodes'])||k['nodes']['length']<0x2)return;if(!/logic_/['test'](k['type']??''))return;for(const [l,m]of[[k['nodes'][0x0],k['nodes'][0x1]],[k['nodes'][0x1],k['nodes'][0x0]]]){if(typeof l?.['query']==='string'&&isIdentityQuery(l['query'])&&m?.['type']==='identifier'&&m['identifier']!==undefined){if(!i['includes'](m['identifier'])&&!j['includes'](m['identifier']))j['push'](m['identifier']);}}}),j['length']>0x0&&b['push']({'code':'MF_SLOT_IDENTITY_ANCHOR','host':c,'level':'critical','detail':'Identity\x20leg(s)\x20anchored\x20to\x20submission\x20slot(s)\x20'+j['join'](',\x20')+'\x20that\x20the\x20edge\x20does\x20not\x20'+('declare\x20(declared:\x20'+(i['join'](',\x20')||'none')+')\x20—\x20the\x20caller\x20controls\x20those\x20slots,\x20')+'so\x20the\x20identity\x20check\x20reads\x20attacker-chosen\x20data\x20(T10\x20hijack).\x20Anchor\x20to\x20the\x20edge\x27s\x20'+'task-binding\x20slot\x20instead.'});}if(c==='progress_submission'){let k=![];walk(d,l=>{if(typeof l['query']==='string'&&isIdentityQuery(l['query']))k=!![];}),!k&&b['push']({'code':'PS_IDENTITY_REQUIRED','host':c,'level':'info','detail':'No\x20identity\x20leg\x20on\x20this\x20attestation\x20guard\x20—\x20attestations\x20are\x20replayable\x20without\x20one.\x20'+'Acceptable\x20only\x20when\x20the\x20riding\x20edge\x20verifies\x20the\x20submitter\x20upstream.'});}{let l=![];walk(d,m=>{if(typeof m['query']==='string'&&m['query']['startsWith']('repository'))l=!![];}),l&&b['push']({'code':c==='repository_write'?'RW_QUOTE_GUARD_CARRY':'RQ_CARRY_OBLIGATION','host':c,'level':'info','detail':'This\x20tree\x20reads\x20repository\x20data\x20—\x20the\x20consuming\x20passport\x20must\x20declare\x20the\x20governing\x20'+'policy\x27s\x20quote_guard\x20in\x20its\x20impack\x20(QUOTE-GUARD\x20CARRY),\x20or\x20the\x20query\x20fails\x20closed\x20at\x20'+'evaluation\x20time.'});}if(c==='repository_write'){let m=![];walk(d,o=>{typeof o['query']==='string'&&/(sum_where|count_where|find_where)/['test'](o['query'])&&(m=!![]);}),m&&b['push']({'code':'RW_OPEN_WRITE_FEEDS_AGGREGATE','host':c,'level':e?.['open_write_aggregate_rows']===!![]?'critical':'warning','detail':'This\x20write\x20channel\x27s\x20guard\x20reads\x20repository\x20AGGREGATES\x20(row-set\x20sum\x20/\x20count\x20/\x20find)\x20—\x20'+'the\x20aggregate\x20is\x20forgeable\x20by\x20write\x20whenever\x20the\x20rows\x20feeding\x20it\x20can\x20be\x20written\x20through\x20'+'an\x20open\x20(unguarded)\x20channel,\x20and\x20every\x20decision\x20this\x20guard\x20derives\x20from\x20the\x20aggregate\x20is\x20'+'forged\x20with\x20it.\x20Verify\x20every\x20feeding\x20row\x20policy\x20carries\x20a\x20write_guard\x20binding\x20a\x20trusted\x20'+'writer\x20role\x20BEFORE\x20this\x20binding\x20goes\x20live'+(e?.['open_write_aggregate_rows']===!![]?';\x20host\x20facts\x20PROVE\x20at\x20least\x20one\x20feeding\x20row\x20is\x20openly\x20writable\x20—\x20treat\x20as\x20a\x20hard\x20block.':';\x20the\x20feeding\x20policies\x20could\x20not\x20be\x20proven\x20either\x20way\x20at\x20binding\x20time\x20—\x20disclosure.')});}return c==='demand_present'&&(e?.['demand_guard_count']??0x0)>0x1&&b['push']({'code':'DP_MULTI_GUARD_IS_OR','host':c,'level':'info','detail':e['demand_guard_count']+'\x20guards\x20registered\x20on\x20the\x20demand\x20—\x20the\x20presenter\x20passes\x20ANY\x20ONE\x20'+'of\x20them\x20(presenter-chosen\x20OR).\x20A\x20strict\x20gate\x20belongs\x20inside\x20EVERY\x20'+'guard\x20(or\x20one\x20guard),\x20not\x20across\x20the\x20list.'}),b;}export function auditGuardRelies(a){const b=[];if(a['child_count']<=0x0)return b;const c=a['from_host']!==a['to_host'];return b['push']({'code':'GR_CHILD_HOST_REAUDIT','host':'guard_relied','level':c?'warning':'info','detail':a['child_count']+'\x20relied\x20child\x20guard(s)\x20INHERIT\x20the\x20parent\x27s\x20host\x20context.\x20'+(c?'Host\x20change\x20'+(a['from_host']||'(unbound)')+'\x20→\x20'+a['to_host']+':\x20re-audit\x20EVERY\x20child\x20against\x20'+'the\x20new\x20host\x27s\x20signer\x20/\x20order\x20anchor\x20/\x20submission\x20channel\x20(guard-host-context.ts,\x20'+('host\x20\x22'+a['to_host']+'\x22)\x20before\x20binding.'):'Binding\x20host\x20\x22'+a['to_host']+'\x22\x20unchanged\x20—\x20children\x20already\x20audited\x20for\x20this\x20context.')}),b['push']({'code':'GR_CLOSURE_CARRY','host':'guard_relied','level':'info','detail':'Every\x20passport\x20carrying\x20the\x20parent\x20must\x20carry\x20ALL\x20relied\x20children\x20first\x20(E_RELIES_GUARD_NOT_ADDED).\x20'+'Communicate\x20the\x20full\x20carry\x20closure\x20in\x20the\x20passport\x20build\x20steps.'+(a['logic_and']===![]?'\x20relies_logic_and\x20is\x20OR:\x20any\x20passing\x20child\x20satisfies\x20—\x20the\x20acceptance\x20surface\x20is\x20the\x20UNION\x20of\x20the\x20children.':'')}),b;}export function auditQuoteGuardCandidate(a){const b=[];if(a['immutable']===![])b['push']('mutable\x20(immutable\x20flag\x20false)');if(a['rep']===![])b['push']('rep\x20flag\x20false');if((a['relies_count']??0x0)>0x0)b['push']('carries\x20relies\x20(depth\x20must\x20be\x200)');if(b['length']===0x0)return[];return[{'code':'RQ_DEPENDED_ONLY','host':'repository_quote','level':'warning','detail':'Quote-guard\x20candidate\x20is\x20NOT\x20depended:\x20'+b['join'](';\x20')+'\x20—\x20quote-guard\x20binding\x20aborts\x20'+'(E_NEED_DEPENDENT_GUARD;\x20the\x20depended\x20shape\x20=\x20relies\x20empty\x20+\x20immutable\x20+\x20rep).\x20Rebuild\x20the\x20'+'guard\x20as\x20a\x20frozen\x20leaf\x20before\x20binding.'}];}
@@ -1 +1 @@
1
- export const OWNER_RECEIVE_COGNITION='owner_receive\x20extracts\x20objects\x20RECEIVED\x20via\x20transfer\x20(Receiving<CoinWrapper<K>>\x20with\x20ANY\x20token\x20K,\x20'+'or\x20any\x20K:key+store\x20object\x20such\x20as\x20an\x20NFT)\x20and\x20sends\x20them\x20to\x20the\x20Permission\x20owner\x20—\x20it\x20never\x20touches\x20the\x20'+'object\x27s\x20balance\x20field.\x20The\x20balance\x20field\x27s\x20only\x20exits\x20are:\x20Reward\x20→\x20guard-gated\x20claim;\x20Treasury\x20→\x20'+'permission-gated\x20withdraw\x20/\x20guard-gated\x20external_withdraw.\x20receive(154)\x20is\x20what\x20joins\x20a\x20received\x20payment\x20'+'INTO\x20the\x20balance.';export const GUARD_BINDING_REGISTRY=[{'id':'reward.recipient.guard_identifier','object':'Reward','slot':'RewardGuard.recipient\x20=\x20Recipient::GuardIdentifier(identifier)','preset_kind':'recipient','submission_type':'address','asserted_at':'reward.move\x20L102-104\x20(is_identifier_address)','consumed_at':'reward.move\x20L154-156\x20(de_address\x20→\x20claim\x20payee)','neutral':'The\x20claim\x20payee\x20is\x20resolved\x20from\x20the\x20claimer\x27s\x20submission\x20for\x20this\x20identifier.','creator':'Design\x20lever:\x20dynamic\x20payee\x20—\x20the\x20guard\x20decides\x20who\x20gets\x20paid\x20(e.g.\x20reimbursement\x20to\x20the\x20address\x20the\x20'+'guard\x20derives,\x20proxy\x20claims).\x20Alternative\x20presets:\x20Entity\x20(fixed\x20payee)\x20or\x20Signer\x20(payer\x20=\x20the\x20tx\x20sender\x20who\x20passed\x20the\x20guard).','user':'Who\x20receives\x20the\x20reward\x20is\x20determined\x20by\x20the\x20submitted\x20address\x20for\x20this\x20slot\x20—\x20not\x20necessarily\x20you,\x20even\x20if\x20you\x20triggered\x20the\x20claim.','risk_hooks':['R-R-2-01']},{'id':'reward.amount.guard_u64_identifier','object':'Reward','slot':'RewardGuard.amount\x20=\x20Amount::GuardU64Identifier(identifier)','preset_kind':'amount','submission_type':'u64','asserted_at':'reward.move\x20L107-113\x20(submission\x20value\x20type\x20must\x20be\x20u64)','consumed_at':'reward.move\x20L165-168\x20(de_u64\x20→\x20claim\x20amount;\x20L174\x20asserts\x20amount\x20≤\x20balance)','neutral':'The\x20claim\x20amount\x20is\x20resolved\x20from\x20the\x20claimer\x27s\x20submission\x20for\x20this\x20identifier.','creator':'Design\x20lever:\x20credential-based\x20dynamic\x20amounts\x20(marketing:\x20submit\x20receipt\x20→\x20get\x20proportional\x20cashback;\x20'+'fund\x20recovery:\x20owner\x20escape\x20hatch\x20submits\x20the\x20FULL\x20remaining\x20balance\x20to\x20recover\x20100%).\x20'+'Alternative\x20preset:\x20Fixed(u64).','user':'You\x20claim\x20exactly\x20what\x20you\x20submit\x20(bounded\x20by\x20the\x20reward\x20balance)\x20—\x20check\x20whether\x20the\x20guard\x20validates\x20your\x20submitted\x20amount\x20against\x20other\x20evidence.','risk_hooks':['R-R-7-01']},{'id':'reward.expiration_time','object':'Reward','slot':'RewardGuard.expiration_time:\x20Option<u64>','preset_kind':'deadline','submission_type':'any','consumed_at':'reward.move\x20L147-150\x20(claim\x20asserts\x20clock\x20≤\x20expiration_time),\x20guard_add\x20L247-249','neutral':'Time\x20window\x20of\x20the\x20guard:\x20after\x20it\x20elapses\x20the\x20guard\x20no\x20longer\x20opens\x20(claim\x20aborts\x20E_GUARD_EXPIRED).','creator':'Dual\x20meaning\x20by\x20design:\x20for\x20MARKETING\x20guards\x20it\x20is\x20the\x20campaign\x20deadline;\x20for\x20an\x20OWNER\x20ESCAPE\x20guard\x20'+'(recipient=Signer,\x20amount=GuardU64Identifier)\x20it\x20is\x20the\x20FUND\x20LOCK\x20PERIOD\x20—\x20set\x20it\x20in\x20the\x20future\x20(e.g.\x2030\x20days)\x20'+'and\x20after\x20expiry\x20you\x20reclaim\x20the\x20residual\x20balance\x20by\x20submitting\x20the\x20full\x20amount\x20(R-R-7-01).','user':'This\x20is\x20your\x20claim\x20deadline\x20—\x20after\x20expiration_time\x20the\x20guard\x20cannot\x20be\x20claimed\x20and\x20is\x20swept\x20away\x20by\x20the\x20owner\x27s\x20expired-guard\x20cleanup.','risk_hooks':['R-R-4-01']},{'id':'reward.store_from_id','object':'Reward','slot':'RewardGuard.store_from_id:\x20Option<u8>','preset_kind':'source','submission_type':'address','asserted_at':'reward.move\x20L36-38\x20/\x20reward.ts\x20schema\x20(address-compatible\x20identifier)','consumed_at':'reward.move\x20L175-178\x20(de_address_compatible\x20→\x20Record.store_from_id;\x20an\x20absent\x20slot\x20persists\x20none,\x20which\x20matches\x20no\x20store_from_id\x20predicate)','neutral':'Each\x20claim\x20record\x20is\x20tagged\x20with\x20an\x20origin\x20object\x20address\x20submitted\x20at\x20claim\x20time.','creator':'Audit\x20lever:\x20tie\x20every\x20payout\x20to\x20its\x20campaign/repo/order\x20source\x20—\x20the\x20Record\x20table\x20then\x20answers\x20\x27what\x20did\x20this\x20campaign\x20actually\x20pay\x20out\x27.','user':'Your\x20claim\x20is\x20permanently\x20tagged\x20with\x20the\x20source\x20you\x20submitted\x20—\x20use\x20it\x20to\x20prove\x20your\x20payout\x20came\x20from\x20a\x20specific\x20campaign.'},{'id':'allocation.who.guard_identifier','object':'Allocation','slot':'Sharing.who\x20=\x20Recipient::GuardIdentifier(identifier)','preset_kind':'recipient','submission_type':'address','asserted_at':'allocation.move\x20L150-151\x20(is_identifier_address)','consumed_at':'allocation.move\x20L232-233\x20(de_address\x20→\x20payout\x20recipient)','neutral':'The\x20revenue-split\x20payee\x20is\x20resolved\x20from\x20the\x20alloc\x20caller\x27s\x20submission.','creator':'Design\x20lever:\x20dynamic\x20split\x20counterparties\x20—\x20e.g.\x20the\x20guard\x20derives\x20\x27the\x20order\x27s\x20actual\x20supplier\x27\x20from\x20evidence.\x20'+'Alternatives:\x20Entity\x20(fixed\x20payee)\x20or\x20Signer\x20(payer\x20=\x20whoever\x20executes\x20the\x20guard-gated\x20alloc).','user':'The\x20split\x20payee\x20comes\x20from\x20the\x20submission\x20resolved\x20at\x20alloc\x20time\x20—\x20verify\x20the\x20guard\x20logic\x20to\x20know\x20who\x20it\x20resolves\x20to.'},{'id':'allocation.mode_and_sharing','object':'Allocation','slot':'Sharing\x20{\x20mode:\x20Amount|Rate|Surplus|RateGross,\x20sharing:\x20u64\x20}','preset_kind':'amount','submission_type':'u64','asserted_at':'allocation.move\x20L224-256\x20(rate\x20invariants:\x20NET\x20Rate\x20and\x20RateGross\x20share\x20one\x20total_rate\x20counter;\x20without\x20Surplus\x20the\x20rates\x20must\x20sum\x20to\x20exactly\x2010000;\x20a\x20pure-RateGross\x20plan\x20also\x20caps\x20fix\x20+\x20rates\x20x\x20max)','consumed_at':'allocation.move\x20L280-405\x20(alloc:\x20Amount\x20splits\x20a\x20fixed\x20value\x20/\x20Rate\x20computes\x20basis\x20points\x20of\x20pool-fix\x20/\x20RateGross\x20computes\x20basis\x20points\x20of\x20the\x20full\x20pool\x20or\x20the\x20max\x20cap\x20/\x20Surplus\x20takes\x20the\x20remainder)','neutral':'How\x20much\x20each\x20sharing\x20entry\x20receives\x20from\x20an\x20allocated\x20payment.','creator':'Design\x20lever:\x20fixed\x20amounts\x20(Amount),\x20proportional\x20splits\x20on\x20the\x20net\x20pool\x20(Rate,\x20basis\x20points\x20over\x20pool-fix,\x20must\x20complete\x2010000\x20unless\x20a\x20Surplus\x20remainder\x20exists),\x20'+'proportional\x20splits\x20on\x20the\x20gross\x20pool\x20(RateGross,\x20basis\x20points\x20over\x20the\x20full\x20pool\x20or\x20max\x20cap\x20—\x20expresses\x20\x27fixed\x20fee\x20+\x20commission\x20on\x20the\x20order\x20total\x27),\x20'+'or\x20residual\x20beneficiary\x20(Surplus\x20—\x20exactly\x20one,\x20takes\x20what\x20is\x20left).','user':'Your\x20Rate/RateGross\x20sharing\x20is\x20in\x20basis\x20points\x20(3000\x20=\x2030%);\x20a\x20Surplus\x20entry\x20receives\x20whatever\x20the\x20other\x20entries\x20did\x20not\x20consume.'},{'id':'demand.service_identifier','object':'Demand','slot':'ServiceGuard.service_identifier:\x20Option<u8>','preset_kind':'service','submission_type':'address','consumed_at':'demand.move\x20L132-133\x20(de_address\x20→\x20the\x20service\x20being\x20presented)','neutral':'Which\x20service\x20a\x20presenter\x20is\x20presenting\x20for\x20is\x20resolved\x20from\x20their\x20passport\x20submission.','creator':'Design\x20lever:\x20qualification-gated\x20presentation\x20—\x20only\x20guards\x20that\x20resolve\x20to\x20approved\x20services\x20let\x20suppliers\x20present\x20'+'(e.g.\x20whitelist,\x20passport,\x20or\x20proof-of-capability\x20guards).','user':'You\x20may\x20only\x20present\x20the\x20service\x20your\x20submission\x20resolves\x20to\x20—\x20the\x20guard\x20defines\x20which\x20services\x20you\x20are\x20eligible\x20to\x20present.'},{'id':'treasury.deposit.identifier','object':'Treasury','slot':'AmountFromDepositGuard.identifier:\x20Option<u8>','preset_kind':'amount','submission_type':'number','asserted_at':'treasury.move\x20L138-141\x20(submission\x20value\x20type\x20must\x20be\x20a\x20number)','consumed_at':'treasury.move\x20L371-385\x20(de_number\x20→\x20deposit\x20amount;\x20excess\x20is\x20refunded\x20to\x20the\x20depositor)','neutral':'The\x20amount\x20actually\x20deposited\x20is\x20resolved\x20from\x20the\x20depositor\x27s\x20submission.','creator':'Design\x20lever:\x20guard-driven\x20external\x20inflow\x20—\x20outside\x20parties\x20deposit\x20against\x20a\x20guard\x20(e.g.\x20invoice-backed\x20payment:\x20'+'the\x20guard\x20validates\x20the\x20invoice,\x20the\x20submission\x20states\x20the\x20amount).','user':'You\x20deposit\x20the\x20amount\x20you\x20submit;\x20anything\x20beyond\x20it\x20is\x20transferred\x20back\x20to\x20you\x20in\x20the\x20same\x20call.'},{'id':'treasury.withdraw.identifier','object':'Treasury','slot':'AmountFromWithdrawGuard.identifier:\x20u8','preset_kind':'amount','submission_type':'number','consumed_at':'treasury.move\x20L409-410\x20(de_number\x20→\x20withdraw\x20amount,\x20asserted\x20≤\x20balance)','neutral':'The\x20amount\x20withdrawn\x20by\x20an\x20outside\x20party\x20is\x20resolved\x20from\x20their\x20submission.','creator':'Design\x20lever:\x20guard-driven\x20external\x20outflow\x20—\x20NOTE\x20this\x20is\x20a\x20PAYMENT\x20AUTHORIZATION:\x20whoever\x20satisfies\x20the\x20guard\x20can\x20'+'withdraw\x20up\x20to\x20the\x20balance.\x20Treat\x20the\x20guard\x20design\x20as\x20the\x20spending\x20boundary.','user':'You\x20receive\x20the\x20amount\x20you\x20submit\x20(bounded\x20by\x20the\x20treasury\x20balance).'},{'id':'treasury.store_from_id','object':'Treasury','slot':'AmountFrom{Deposit,Withdraw}Guard.store_from_id:\x20Option<u8>','preset_kind':'source','submission_type':'address','asserted_at':'treasury.move\x20L143-145\x20(is_identifier_address_compatible)','consumed_at':'treasury.move\x20L367-369\x20/\x20L412-414\x20(de_address_compatible\x20→\x20Record.store_from_id)','neutral':'Each\x20external\x20deposit/withdraw\x20record\x20is\x20tagged\x20with\x20a\x20submitted\x20origin\x20address.','creator':'Audit\x20lever:\x20reconcile\x20external\x20flows\x20against\x20their\x20origin\x20(invoice,\x20order,\x20campaign).','user':'Your\x20flow\x20is\x20permanently\x20tagged\x20with\x20the\x20source\x20you\x20submitted.'},{'id':'repository.id_from_submission','object':'Repository','slot':'PolicyGuard.id_from_submission:\x20Option<u8>','preset_kind':'row_key','submission_type':'address','asserted_at':'repository.move\x20L90-92\x20(is_identifier_address_compatible)','consumed_at':'repository.move\x20L346/L393\x20(submission_get\x20→\x20table\x20row\x20identity)','neutral':'Which\x20table\x20row\x20a\x20guarded\x20write\x20targets\x20is\x20resolved\x20from\x20the\x20writer\x27s\x20submission.','creator':'Design\x20lever:\x20dynamic\x20rows\x20—\x20or\x20pin\x20the\x20row\x20statically\x20via\x20PolicyRule.id_from\x20(which\x20then\x20takes\x20priority\x20over\x20this\x20slot).','user':'Your\x20write\x20lands\x20on\x20the\x20row\x20your\x20submitted\x20address\x20identifies.'},{'id':'repository.data_from_submission','object':'Repository','slot':'PolicyGuard.data_from_submission:\x20Option<u8>','preset_kind':'row_data','submission_type':'any','asserted_at':'repository.move\x20L93-96\x20(has_identifier\x20—\x20ANY\x20value\x20type\x20is\x20supported)','consumed_at':'repository.move\x20L350/L361/L215\x20(submission_get\x20→\x20the\x20value\x20written)','neutral':'The\x20value\x20written\x20into\x20the\x20row\x20IS\x20the\x20writer\x27s\x20submission\x20(any\x20type).','creator':'Design\x20lever:\x20the\x20guard\x20itself\x20becomes\x20the\x20data\x20format\x20—\x20reviews,\x20scores,\x20attestations\x20written\x20by\x20qualified\x20parties.\x20'+'The\x20write\x20policy\x27s\x20value_type\x20constrains\x20what\x20is\x20storable.','user':'What\x20you\x20submit\x20is\x20what\x20gets\x20stored\x20—\x20the\x20guard\x20decides\x20whether\x20your\x20data\x20qualifies,\x20not\x20the\x20object.'},{'id':'arbitration.vote_weight.guard_identifier','object':'Arbitration','slot':'VotingGuard.vote_weight\x20=\x20VoteValue::GuardIdentifier(identifier)','preset_kind':'vote_weight','submission_type':'number','asserted_at':'arbitration.move\x20L125-126\x20(submission\x20value\x20type\x20must\x20be\x20a\x20number)','consumed_at':'arbitration.move\x20L288-289\x20(de_number\x20→\x20ballot\x20weight)','neutral':'Each\x20voter\x27s\x20ballot\x20weight\x20is\x20resolved\x20from\x20their\x20own\x20submission.','creator':'Design\x20lever:\x20stake/role-weighted\x20voting\x20—\x20the\x20guard\x20derives\x20the\x20weight\x20(e.g.\x20token-balance\x20tier,\x20credential\x20level).\x20'+'Alternative\x20preset:\x20FixedValue(u32)\x20for\x20flat-weight\x20open\x20voting\x20(an\x20EMPTY\x20voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20plain\x20votes\x20then\x20hard-require\x20the\x20vote\x20permission\x20358,\x20admin-only\x20by\x20default,\x20and\x20disputes\x20dead-lock;\x20R-ARB-VOTE-LOCK,\x20crs9-F-36).','user':'The\x20number\x20you\x20submit\x20IS\x20your\x20vote\x27s\x20weight\x20—\x20the\x20guard\x20defines\x20what\x20qualifies\x20you\x20to\x20claim\x20that\x20weight.'},{'id':'arbitration.usage_guard','object':'Arbitration','slot':'usage_guard:\x20Option<address>','preset_kind':'evidence','submission_type':'any','consumed_at':'arbitration.move\x20L314\x20/\x20L320-321\x20(checked\x20when\x20dispute\x20filing\x20reaches\x20the\x20package-internal\x20channels\x20at\x20L313-316\x20/\x20L318-325,\x20which\x20are\x20only\x20reachable\x20through\x20the\x20Service-bound\x20filing\x20entries):\x20the\x20no-passport\x20channel\x20requires\x20the\x20usage_guard\x20to\x20be\x20None;\x20the\x20passport\x20channel\x20verifies\x20it\x20in\x20the\x20same\x20transaction','neutral':'Who\x20may\x20OPEN\x20a\x20dispute\x20at\x20this\x20arbitration\x20—\x20disputants\x20must\x20satisfy\x20this\x20guard.','creator':'Design\x20lever:\x20qualification\x20gate\x20for\x20disputants\x20(reputation/kyc/holding\x20guards)\x20—\x20keeps\x20frivolous\x20disputes\x20out.\x20'+'Set\x20to\x20None\x20for\x20open\x20access.','user':'To\x20open\x20a\x20dispute\x20at\x20this\x20arbitration\x20you\x20must\x20pass\x20its\x20usage_guard;\x20without\x20a\x20passport\x20the\x20arbitration\x20refuses\x20disputes\x20outright.'},{'id':'machine.forward.retained_submission','object':'MachineForward','slot':'ForwardGuard.retained_submission:\x20vector<u8>','preset_kind':'evidence','submission_type':'any','asserted_at':'machine.move\x20L80-81\x20(has_submissions\x20—\x20every\x20id\x20must\x20be\x20a\x20submission\x20slot\x20of\x20the\x20guard)','consumed_at':'progress.move\x20L471-474\x20(submissions_get\x20→\x20values\x20stored\x20into\x20the\x20session\x20history)','neutral':'Progressing\x20along\x20this\x20forward\x20REQUIRES\x20submitting\x20these\x20guard\x20slots;\x20the\x20submitted\x20values\x20are\x20persisted\x20into\x20the\x20workflow\x20session\x20history.','creator':'Design\x20lever:\x20evidence-carrying\x20workflow\x20steps\x20—\x20the\x20step\x20cannot\x20advance\x20without\x20the\x20proof,\x20and\x20the\x20proof\x20is\x20'+'permanently\x20recorded\x20in\x20the\x20session\x20(auditable\x20trail,\x20usable\x20later\x20by\x20downstream\x20guards/arb).','user':'You\x20cannot\x20advance\x20this\x20step\x20without\x20submitting\x20the\x20required\x20evidence\x20—\x20and\x20what\x20you\x20submit\x20becomes\x20part\x20of\x20the\x20on-chain\x20record.'}];export const GUARD_BINDINGS_VERSION='1.0.0';export function getGuardBindingsByObject(a){return GUARD_BINDING_REGISTRY['filter'](c=>c['object']===a);}export function getGuardBinding(a){return GUARD_BINDING_REGISTRY['find'](c=>c['id']===a);}export function summarizeGuardBinding(a){return'['+a['object']+']\x20'+a['slot']+'\x20—\x20creator:\x20'+a['creator']['split']('\x20—\x20')[0x0]+'\x20|\x20user:\x20'+a['user'];}
1
+ export const OWNER_RECEIVE_COGNITION='owner_receive\x20extracts\x20objects\x20RECEIVED\x20via\x20transfer\x20(Receiving<CoinWrapper<K>>\x20with\x20ANY\x20token\x20K,\x20'+'or\x20any\x20K:key+store\x20object\x20such\x20as\x20an\x20NFT)\x20and\x20sends\x20them\x20to\x20the\x20Permission\x20owner\x20—\x20it\x20never\x20touches\x20the\x20'+'object\x27s\x20balance\x20field.\x20The\x20balance\x20field\x27s\x20only\x20exits\x20are:\x20Reward\x20→\x20guard-gated\x20claim;\x20Treasury\x20→\x20'+'permission-gated\x20withdraw\x20/\x20guard-gated\x20external_withdraw.\x20receive(154)\x20is\x20what\x20joins\x20a\x20received\x20payment\x20'+'INTO\x20the\x20balance.';export const GUARD_BINDING_REGISTRY=[{'id':'reward.recipient.guard_identifier','object':'Reward','slot':'RewardGuard.recipient\x20=\x20Recipient::GuardIdentifier(identifier)','preset_kind':'recipient','submission_type':'address','asserted_at':'reward.move\x20L102-104\x20(is_identifier_address)','consumed_at':'reward.move\x20L154-156\x20(de_address\x20→\x20claim\x20payee)','neutral':'The\x20claim\x20payee\x20is\x20resolved\x20from\x20the\x20claimer\x27s\x20submission\x20for\x20this\x20identifier.','creator':'Design\x20lever:\x20dynamic\x20payee\x20—\x20the\x20guard\x20decides\x20who\x20gets\x20paid\x20(e.g.\x20reimbursement\x20to\x20the\x20address\x20the\x20'+'guard\x20derives,\x20proxy\x20claims).\x20Alternative\x20presets:\x20Entity\x20(fixed\x20payee)\x20or\x20Signer\x20(payer\x20=\x20the\x20tx\x20sender\x20who\x20passed\x20the\x20guard).','user':'Who\x20receives\x20the\x20reward\x20is\x20determined\x20by\x20the\x20submitted\x20address\x20for\x20this\x20slot\x20—\x20not\x20necessarily\x20you,\x20even\x20if\x20you\x20triggered\x20the\x20claim.','risk_hooks':['R-R-2-01']},{'id':'reward.amount.guard_u64_identifier','object':'Reward','slot':'RewardGuard.amount\x20=\x20Amount::GuardU64Identifier(identifier)','preset_kind':'amount','submission_type':'u64','asserted_at':'reward.move\x20L107-113\x20(submission\x20value\x20type\x20must\x20be\x20u64)','consumed_at':'reward.move\x20L165-168\x20(de_u64\x20→\x20claim\x20amount;\x20L174\x20asserts\x20amount\x20≤\x20balance)','neutral':'The\x20claim\x20amount\x20is\x20resolved\x20from\x20the\x20claimer\x27s\x20submission\x20for\x20this\x20identifier.','creator':'Design\x20lever:\x20credential-based\x20dynamic\x20amounts\x20(marketing:\x20submit\x20receipt\x20→\x20get\x20proportional\x20cashback;\x20'+'fund\x20recovery:\x20owner\x20escape\x20hatch\x20submits\x20the\x20FULL\x20remaining\x20balance\x20to\x20recover\x20100%).\x20'+'Alternative\x20preset:\x20Fixed(u64).','user':'You\x20claim\x20exactly\x20what\x20you\x20submit\x20(bounded\x20by\x20the\x20reward\x20balance)\x20—\x20check\x20whether\x20the\x20guard\x20validates\x20your\x20submitted\x20amount\x20against\x20other\x20evidence.','risk_hooks':['R-R-7-01']},{'id':'reward.expiration_time','object':'Reward','slot':'RewardGuard.expiration_time:\x20Option<u64>','preset_kind':'deadline','submission_type':'any','consumed_at':'reward.move\x20L147-150\x20(claim\x20asserts\x20clock\x20≤\x20expiration_time),\x20guard_add\x20L247-249','neutral':'Time\x20window\x20of\x20the\x20guard:\x20after\x20it\x20elapses\x20the\x20guard\x20no\x20longer\x20opens\x20(claim\x20aborts\x20E_GUARD_EXPIRED).','creator':'Dual\x20meaning\x20by\x20design:\x20for\x20MARKETING\x20guards\x20it\x20is\x20the\x20campaign\x20deadline;\x20for\x20an\x20OWNER\x20ESCAPE\x20guard\x20'+'(recipient=Signer,\x20amount=GuardU64Identifier)\x20it\x20is\x20the\x20FUND\x20LOCK\x20PERIOD\x20—\x20set\x20it\x20in\x20the\x20future\x20(e.g.\x2030\x20days)\x20'+'and\x20after\x20expiry\x20you\x20reclaim\x20the\x20residual\x20balance\x20by\x20submitting\x20the\x20full\x20amount\x20(R-R-7-01).','user':'This\x20is\x20your\x20claim\x20deadline\x20—\x20after\x20expiration_time\x20the\x20guard\x20cannot\x20be\x20claimed\x20and\x20is\x20swept\x20away\x20by\x20the\x20owner\x27s\x20expired-guard\x20cleanup.','risk_hooks':['R-R-4-01']},{'id':'reward.store_from_id','object':'Reward','slot':'RewardGuard.store_from_id:\x20Option<u8>','preset_kind':'source','submission_type':'address','asserted_at':'reward.move\x20L36-38\x20/\x20reward.ts\x20schema\x20(address-compatible\x20identifier)','consumed_at':'reward.move\x20L175-178\x20(de_address_compatible\x20→\x20Record.store_from_id;\x20an\x20absent\x20slot\x20persists\x20none,\x20which\x20matches\x20no\x20store_from_id\x20predicate)','neutral':'Each\x20claim\x20record\x20is\x20tagged\x20with\x20an\x20origin\x20object\x20address\x20submitted\x20at\x20claim\x20time.','creator':'Audit\x20lever:\x20tie\x20every\x20payout\x20to\x20its\x20campaign/repo/order\x20source\x20—\x20the\x20Record\x20table\x20then\x20answers\x20\x27what\x20did\x20this\x20campaign\x20actually\x20pay\x20out\x27.','user':'Your\x20claim\x20is\x20permanently\x20tagged\x20with\x20the\x20source\x20you\x20submitted\x20—\x20use\x20it\x20to\x20prove\x20your\x20payout\x20came\x20from\x20a\x20specific\x20campaign.'},{'id':'allocation.who.guard_identifier','object':'Allocation','slot':'Sharing.who\x20=\x20Recipient::GuardIdentifier(identifier)','preset_kind':'recipient','submission_type':'address','asserted_at':'allocation.move\x20L150-151\x20(is_identifier_address)','consumed_at':'allocation.move\x20L232-233\x20(de_address\x20→\x20payout\x20recipient)','neutral':'The\x20revenue-split\x20payee\x20is\x20resolved\x20from\x20the\x20alloc\x20caller\x27s\x20submission.','creator':'Design\x20lever:\x20dynamic\x20split\x20counterparties\x20—\x20e.g.\x20the\x20guard\x20derives\x20\x27the\x20order\x27s\x20actual\x20supplier\x27\x20from\x20evidence.\x20'+'Alternatives:\x20Entity\x20(fixed\x20payee)\x20or\x20Signer\x20(payer\x20=\x20whoever\x20executes\x20the\x20guard-gated\x20alloc).','user':'The\x20split\x20payee\x20comes\x20from\x20the\x20submission\x20resolved\x20at\x20alloc\x20time\x20—\x20verify\x20the\x20guard\x20logic\x20to\x20know\x20who\x20it\x20resolves\x20to.'},{'id':'allocation.mode_and_sharing','object':'Allocation','slot':'Sharing\x20{\x20mode:\x20Amount|Rate|Surplus|RateGross,\x20sharing:\x20u64\x20}','preset_kind':'amount','submission_type':'u64','asserted_at':'allocation.move\x20L224-256\x20(rate\x20invariants:\x20NET\x20Rate\x20and\x20RateGross\x20share\x20one\x20total_rate\x20counter;\x20without\x20Surplus\x20the\x20rates\x20must\x20sum\x20to\x20exactly\x2010000;\x20a\x20pure-RateGross\x20plan\x20also\x20caps\x20fix\x20+\x20rates\x20x\x20max)','consumed_at':'allocation.move\x20L280-405\x20(alloc:\x20Amount\x20splits\x20a\x20fixed\x20value\x20/\x20Rate\x20computes\x20basis\x20points\x20of\x20pool-fix\x20/\x20RateGross\x20computes\x20basis\x20points\x20of\x20the\x20full\x20pool\x20or\x20the\x20max\x20cap\x20/\x20Surplus\x20takes\x20the\x20remainder)','neutral':'How\x20much\x20each\x20sharing\x20entry\x20receives\x20from\x20an\x20allocated\x20payment.','creator':'Design\x20lever:\x20fixed\x20amounts\x20(Amount),\x20proportional\x20splits\x20on\x20the\x20net\x20pool\x20(Rate,\x20basis\x20points\x20over\x20pool-fix,\x20must\x20complete\x2010000\x20unless\x20a\x20Surplus\x20remainder\x20exists),\x20'+'proportional\x20splits\x20on\x20the\x20gross\x20pool\x20(RateGross,\x20basis\x20points\x20over\x20the\x20full\x20pool\x20or\x20max\x20cap\x20—\x20expresses\x20\x27fixed\x20fee\x20+\x20commission\x20on\x20the\x20order\x20total\x27),\x20'+'or\x20residual\x20beneficiary\x20(Surplus\x20—\x20exactly\x20one,\x20takes\x20what\x20is\x20left).','user':'Your\x20Rate/RateGross\x20sharing\x20is\x20in\x20basis\x20points\x20(3000\x20=\x2030%);\x20a\x20Surplus\x20entry\x20receives\x20whatever\x20the\x20other\x20entries\x20did\x20not\x20consume.'},{'id':'demand.service_identifier','object':'Demand','slot':'ServiceGuard.service_identifier:\x20Option<u8>','preset_kind':'service','submission_type':'address','consumed_at':'demand.move\x20L132-133\x20(de_address\x20→\x20the\x20service\x20being\x20presented)','neutral':'Which\x20service\x20a\x20presenter\x20is\x20presenting\x20for\x20is\x20resolved\x20from\x20their\x20passport\x20submission.','creator':'Design\x20lever:\x20qualification-gated\x20presentation\x20—\x20only\x20guards\x20that\x20resolve\x20to\x20approved\x20services\x20let\x20suppliers\x20present\x20'+'(e.g.\x20whitelist,\x20passport,\x20or\x20proof-of-capability\x20guards).','user':'You\x20may\x20only\x20present\x20the\x20service\x20your\x20submission\x20resolves\x20to\x20—\x20the\x20guard\x20defines\x20which\x20services\x20you\x20are\x20eligible\x20to\x20present.'},{'id':'treasury.deposit.identifier','object':'Treasury','slot':'AmountFromDepositGuard.identifier:\x20Option<u8>','preset_kind':'amount','submission_type':'number','asserted_at':'treasury.move\x20L138-141\x20(submission\x20value\x20type\x20must\x20be\x20a\x20number)','consumed_at':'treasury.move\x20L371-385\x20(de_number\x20→\x20deposit\x20amount;\x20excess\x20is\x20refunded\x20to\x20the\x20depositor)','neutral':'The\x20amount\x20actually\x20deposited\x20is\x20resolved\x20from\x20the\x20depositor\x27s\x20submission.','creator':'Design\x20lever:\x20guard-driven\x20external\x20inflow\x20—\x20outside\x20parties\x20deposit\x20against\x20a\x20guard\x20(e.g.\x20invoice-backed\x20payment:\x20'+'the\x20guard\x20validates\x20the\x20invoice,\x20the\x20submission\x20states\x20the\x20amount).','user':'You\x20deposit\x20the\x20amount\x20you\x20submit;\x20anything\x20beyond\x20it\x20is\x20transferred\x20back\x20to\x20you\x20in\x20the\x20same\x20call.'},{'id':'treasury.withdraw.identifier','object':'Treasury','slot':'AmountFromWithdrawGuard.identifier:\x20u8','preset_kind':'amount','submission_type':'number','consumed_at':'treasury.move\x20L409-410\x20(de_number\x20→\x20withdraw\x20amount,\x20asserted\x20≤\x20balance)','neutral':'The\x20amount\x20withdrawn\x20by\x20an\x20outside\x20party\x20is\x20resolved\x20from\x20their\x20submission.','creator':'Design\x20lever:\x20guard-driven\x20external\x20outflow\x20—\x20NOTE\x20this\x20is\x20a\x20PAYMENT\x20AUTHORIZATION:\x20whoever\x20satisfies\x20the\x20guard\x20can\x20'+'withdraw\x20up\x20to\x20the\x20balance.\x20Treat\x20the\x20guard\x20design\x20as\x20the\x20spending\x20boundary.','user':'You\x20receive\x20the\x20amount\x20you\x20submit\x20(bounded\x20by\x20the\x20treasury\x20balance).'},{'id':'treasury.store_from_id','object':'Treasury','slot':'AmountFrom{Deposit,Withdraw}Guard.store_from_id:\x20Option<u8>','preset_kind':'source','submission_type':'address','asserted_at':'treasury.move\x20L143-145\x20(is_identifier_address_compatible)','consumed_at':'treasury.move\x20L367-369\x20/\x20L412-414\x20(de_address_compatible\x20→\x20Record.store_from_id)','neutral':'Each\x20external\x20deposit/withdraw\x20record\x20is\x20tagged\x20with\x20a\x20submitted\x20origin\x20address.','creator':'Audit\x20lever:\x20reconcile\x20external\x20flows\x20against\x20their\x20origin\x20(invoice,\x20order,\x20campaign).','user':'Your\x20flow\x20is\x20permanently\x20tagged\x20with\x20the\x20source\x20you\x20submitted.'},{'id':'repository.id_from_submission','object':'Repository','slot':'PolicyGuard.id_from_submission:\x20Option<u8>','preset_kind':'row_key','submission_type':'address','asserted_at':'repository.move\x20L90-92\x20(is_identifier_address_compatible)','consumed_at':'repository.move\x20L346/L393\x20(submission_get\x20→\x20table\x20row\x20identity)','neutral':'Which\x20table\x20row\x20a\x20guarded\x20write\x20targets\x20is\x20resolved\x20from\x20the\x20writer\x27s\x20submission.','creator':'Design\x20lever:\x20dynamic\x20rows\x20—\x20or\x20pin\x20the\x20row\x20statically\x20via\x20PolicyRule.id_from\x20(which\x20then\x20takes\x20priority\x20over\x20this\x20slot).','user':'Your\x20write\x20lands\x20on\x20the\x20row\x20your\x20submitted\x20address\x20identifies.'},{'id':'repository.data_from_submission','object':'Repository','slot':'PolicyGuard.data_from_submission:\x20Option<u8>','preset_kind':'row_data','submission_type':'any','asserted_at':'repository.move\x20L93-96\x20(has_identifier\x20—\x20ANY\x20value\x20type\x20is\x20supported)','consumed_at':'repository.move\x20L350/L361/L215\x20(submission_get\x20→\x20the\x20value\x20written)','neutral':'The\x20value\x20written\x20into\x20the\x20row\x20IS\x20the\x20writer\x27s\x20submission\x20(any\x20type).','creator':'Design\x20lever:\x20the\x20guard\x20itself\x20becomes\x20the\x20data\x20format\x20—\x20reviews,\x20scores,\x20attestations\x20written\x20by\x20qualified\x20parties.\x20'+'The\x20write\x20policy\x27s\x20value_type\x20constrains\x20what\x20is\x20storable.','user':'What\x20you\x20submit\x20is\x20what\x20gets\x20stored\x20—\x20the\x20guard\x20decides\x20whether\x20your\x20data\x20qualifies,\x20not\x20the\x20object.'},{'id':'arbitration.vote_weight.guard_identifier','object':'Arbitration','slot':'VotingGuard.vote_weight\x20=\x20VoteValue::GuardIdentifier(identifier)','preset_kind':'vote_weight','submission_type':'number','asserted_at':'arbitration.move\x20L125-126\x20(submission\x20value\x20type\x20must\x20be\x20a\x20number)','consumed_at':'arbitration.move\x20L288-289\x20(de_number\x20→\x20ballot\x20weight)','neutral':'Each\x20voter\x27s\x20ballot\x20weight\x20is\x20resolved\x20from\x20their\x20own\x20submission.','creator':'Design\x20lever:\x20stake/role-weighted\x20voting\x20—\x20the\x20guard\x20derives\x20the\x20weight\x20(e.g.\x20token-balance\x20tier,\x20credential\x20level).\x20'+'Alternative\x20preset:\x20FixedValue(u32)\x20for\x20flat-weight\x20open\x20voting\x20(an\x20EMPTY\x20voting_guard\x20is\x20NOT\x20open\x20voting\x20—\x20'+'plain\x20votes\x20then\x20hard-require\x20the\x20vote\x20permission\x20358,\x20admin-only\x20by\x20default,\x20and\x20disputes\x20dead-lock;\x20R-ARB-VOTE-LOCK,\x20crs9-F-36).','user':'The\x20number\x20you\x20submit\x20IS\x20your\x20vote\x27s\x20weight\x20—\x20the\x20guard\x20defines\x20what\x20qualifies\x20you\x20to\x20claim\x20that\x20weight.'},{'id':'arbitration.usage_guard','object':'Arbitration','slot':'usage_guard:\x20Option<address>','preset_kind':'evidence','submission_type':'any','consumed_at':'arbitration.move\x20L314\x20/\x20L320-321\x20(checked\x20when\x20dispute\x20filing\x20reaches\x20the\x20package-internal\x20channels\x20at\x20L313-316\x20/\x20L318-325,\x20which\x20are\x20only\x20reachable\x20through\x20the\x20Service-bound\x20filing\x20entries):\x20the\x20no-passport\x20channel\x20requires\x20the\x20usage_guard\x20to\x20be\x20None;\x20the\x20passport\x20channel\x20verifies\x20it\x20in\x20the\x20same\x20transaction','neutral':'Who\x20may\x20OPEN\x20a\x20dispute\x20at\x20this\x20arbitration\x20—\x20disputants\x20must\x20satisfy\x20this\x20guard.','creator':'Design\x20lever:\x20qualification\x20gate\x20for\x20disputants\x20(reputation/kyc/holding\x20guards)\x20—\x20keeps\x20frivolous\x20disputes\x20out.\x20'+'Set\x20to\x20None\x20for\x20open\x20access.','user':'To\x20open\x20a\x20dispute\x20at\x20this\x20arbitration\x20you\x20must\x20pass\x20its\x20usage_guard;\x20without\x20a\x20passport\x20the\x20arbitration\x20refuses\x20disputes\x20outright.'},{'id':'machine.forward.retained_submission','object':'MachineForward','slot':'ForwardGuard.retained_submission:\x20vector<u8>','preset_kind':'evidence','submission_type':'any','asserted_at':'machine.move\x20L80-81\x20(has_submissions\x20—\x20every\x20id\x20must\x20be\x20a\x20submission\x20slot\x20of\x20the\x20guard)','consumed_at':'progress.move\x20L471-474\x20(submissions_get\x20→\x20values\x20stored\x20into\x20the\x20session\x20history)','neutral':'Progressing\x20along\x20this\x20forward\x20REQUIRES\x20submitting\x20these\x20guard\x20slots;\x20the\x20submitted\x20values\x20are\x20persisted\x20into\x20the\x20workflow\x20session\x20history.','creator':'Design\x20lever:\x20evidence-carrying\x20workflow\x20steps\x20—\x20the\x20step\x20cannot\x20advance\x20without\x20the\x20proof,\x20and\x20the\x20proof\x20is\x20'+'permanently\x20recorded\x20in\x20the\x20session\x20(auditable\x20trail,\x20usable\x20later\x20by\x20downstream\x20guards/arb).','user':'You\x20cannot\x20advance\x20this\x20step\x20without\x20submitting\x20the\x20required\x20evidence\x20—\x20and\x20what\x20you\x20submit\x20becomes\x20part\x20of\x20the\x20on-chain\x20record.'}];export const GUARD_BINDINGS_VERSION='1.0.0';export function getGuardBindingsByObject(a){return GUARD_BINDING_REGISTRY['filter'](c=>c['object']===a);}export function getGuardBinding(a){return GUARD_BINDING_REGISTRY['find'](c=>c['id']===a);}export function summarizeGuardBinding(a){return'['+a['object']+']\x20'+a['slot']+'\x20—\x20creator:\x20'+a['creator']['split']('\x20—\x20')[0x0]+'\x20|\x20user:\x20'+a['user'];}
@@ -0,0 +1,68 @@
1
+ import type { BindingHostFacts, BindingFinding } from "./guard-binding-verifier.js";
2
+ import { type GuardHostContext } from "./guard-host-context.js";
3
+ export interface BlueprintReliesChild {
4
+ id: string;
5
+ host?: string;
6
+ immutable?: boolean;
7
+ rep?: boolean;
8
+ relies_count?: number;
9
+ }
10
+ export interface BlueprintTableEntry {
11
+ identifier: number;
12
+ name?: string;
13
+ value_type?: string;
14
+ b_submission?: boolean;
15
+ object_type?: string;
16
+ value?: unknown;
17
+ }
18
+ export interface GuardBlueprintInput {
19
+ host: string;
20
+ business_intent?: string;
21
+ pattern_id?: string;
22
+ root?: unknown;
23
+ root_deferred_reason?: string;
24
+ table?: BlueprintTableEntry[];
25
+ relies?: BlueprintReliesChild[];
26
+ logic_and?: boolean;
27
+ from_host?: string;
28
+ quote_candidate?: {
29
+ immutable?: boolean;
30
+ rep?: boolean;
31
+ relies_count?: number;
32
+ };
33
+ facts?: BindingHostFacts;
34
+ }
35
+ export type BlueprintFindingSource = "verifyGuardBinding" | "auditGuardRelies" | "auditQuoteGuardCandidate" | "blueprint";
36
+ export interface BlueprintFinding {
37
+ source: BlueprintFindingSource;
38
+ code: string;
39
+ host: string;
40
+ level: BindingFinding["level"];
41
+ detail: string;
42
+ }
43
+ export type BlueprintStatus = "blocked" | "proceed_with_warnings" | "proceed";
44
+ export interface BlueprintVerdict {
45
+ status: BlueprintStatus;
46
+ blockers: BlueprintFinding[];
47
+ warnings: BlueprintFinding[];
48
+ notes: BlueprintFinding[];
49
+ statement: string;
50
+ }
51
+ export interface GuardBlueprint {
52
+ host: string;
53
+ business_intent: string;
54
+ pattern_id?: string;
55
+ host_context: GuardHostContext | null;
56
+ spec: {
57
+ description: string;
58
+ table: BlueprintTableEntry[];
59
+ root: unknown;
60
+ relies: Array<{
61
+ id: string;
62
+ }>;
63
+ logic_and: boolean;
64
+ };
65
+ findings: BlueprintFinding[];
66
+ verdict: BlueprintVerdict;
67
+ }
68
+ export declare function composeGuardBlueprint(input: GuardBlueprintInput): GuardBlueprint;
@@ -0,0 +1 @@
1
+ import{auditGuardRelies,auditQuoteGuardCandidate,verifyGuardBinding}from'./guard-binding-verifier.js';import{getGuardHostContext}from'./guard-host-context.js';const MAX_RELIES_CHILDREN=0x4;function tag(a,b){return a['map'](c=>({...c,'source':b}));}function referencedSlots(a){const b=[],c=d=>{if(!d||typeof d!=='object')return;const e=d;e['type']==='identifier'&&e['identifier']!==undefined&&!b['includes'](e['identifier'])&&b['push'](e['identifier']);for(const f of e['nodes']??[])c(f);if(e['node'])c(e['node']);};return c(a),b;}function blueprintChecks(a){const b=[];!a['root']&&(a['root_deferred_reason']?b['push']({'source':'blueprint','code':'BLUEPRINT_BODY_DEFERRED','host':a['host'],'level':'info','detail':'Body\x20not\x20composable\x20here\x20('+a['root_deferred_reason']+')\x20—\x20the\x20tree\x20checks\x20run\x20when\x20'+'the\x20body\x20resolves:\x20the\x20binding-time\x20analysis\x20and\x20the\x20publish\x20gate\x20re-run\x20this\x20'+'blueprint\x27s\x20verifier\x20battery\x20on\x20the\x20materialized\x20guard.'}):b['push']({'source':'blueprint','code':'BLUEPRINT_NO_BODY','host':a['host'],'level':'critical','detail':'No\x20logic\x20tree\x20supplied\x20—\x20this\x20blueprint\x20would\x20bind\x20a\x20path\x20UNGUARDED\x20behind\x20a\x20plausible\x20'+'pending\x20label.\x20A\x20Guard\x20without\x20a\x20body\x20is\x20not\x20a\x20placeholder;\x20at\x20create()\x20it\x20is\x20frozen\x20'+'empty\x20and\x20the\x20bound\x20path\x20ships\x20open.'}));(!a['business_intent']||a['business_intent']['trim']()==='')&&b['push']({'source':'blueprint','code':'BLUEPRINT_NO_INTENT','host':a['host'],'level':'warning','detail':'No\x20business\x20intent\x20supplied\x20—\x20the\x20blob\x20ships\x20without\x20its\x20WHY.\x20Later\x20re-audits,\x20host\x20moves,\x20'+'and\x20dispute\x20negotiations\x20lose\x20the\x20intent\x20anchor\x20that\x20says\x20what\x20this\x20guard\x20was\x20FOR.'});!getGuardHostContext(a['host'])&&b['push']({'source':'blueprint','code':'BLUEPRINT_UNKNOWN_HOST','host':a['host'],'level':'warning','detail':'Host\x20\x22'+a['host']+'\x22\x20is\x20not\x20in\x20the\x20guard-host-context\x20catalog\x20—\x20the\x20per-host\x20semantics\x20'+'(signer\x20subject,\x20order\x20anchor,\x20submission\x20channel)\x20cannot\x20be\x20assessed\x20and\x20every\x20'+'host-relative\x20check\x20is\x20flying\x20blind.\x20Use\x20a\x20catalog\x20host\x20id\x20(e.g.\x20machine_forward,\x20'+'service_allocator_guard,\x20treasury_external_withdraw).'});if(a['table']&&a['root']){const d=new Set(a['table']['map'](f=>f['identifier'])),e=referencedSlots(a['root'])['filter'](f=>!d['has'](f));e['length']>0x0&&b['push']({'source':'blueprint','code':'BLUEPRINT_SLOT_UNDECLARED','host':a['host'],'level':'critical','detail':'Tree\x20references\x20table\x20slot(s)\x20'+e['join'](',\x20')+'\x20absent\x20from\x20the\x20declared\x20table\x20'+('('+(a['table']['map'](f=>f['identifier'])['join'](',\x20')||'empty')+')\x20—\x20the\x20comparison\x20cannot\x20')+'resolve\x20at\x20evaluation\x20time.\x20Declare\x20the\x20entries\x20or\x20drop\x20the\x20legs.'});}const c=a['relies']??[];c['length']>MAX_RELIES_CHILDREN&&b['push']({'source':'blueprint','code':'BLUEPRINT_RELIES_OVERFLOW','host':a['host'],'level':'critical','detail':c['length']+'\x20relied\x20children\x20exceed\x20MAX_DEPENDED_COUNT\x20'+MAX_RELIES_CHILDREN+'\x20'+'(the\x20chain\x20aborts\x20the\x20fourth\x20add,\x20E_DEPENDED_COUNT_EXCEEDED)\x20—\x20relies\x20composition\x20'+'refuses\x20past\x20four\x20children.\x20Fold\x20children\x20or\x20split\x20the\x20guard.'});for(const f of c){const g=[];if(f['immutable']===![])g['push']('mutable\x20(immutable\x20flag\x20false)');if(f['rep']===![])g['push']('rep\x20flag\x20false');if((f['relies_count']??0x0)>0x0)g['push']('carries\x20relies\x20of\x20its\x20own\x20(depth\x20must\x20be\x201)');g['length']>0x0&&b['push']({'source':'blueprint','code':'BLUEPRINT_RELIES_CHILD_NOT_DEPENDED','host':a['host'],'level':'critical','detail':'Relied\x20child\x20\x22'+f['id']+'\x22\x20is\x20NOT\x20depended:\x20'+g['join'](';\x20')+'\x20—\x20the\x20rely-adding\x20entry\x20'+'asserts\x20the\x20depended\x20shape\x20on\x20every\x20child\x20(relies\x20empty\x20+\x20immutable\x20+\x20rep,\x20'+'E_NOT_DEPENDED_GUARD).\x20Rebuild\x20the\x20child\x20as\x20a\x20frozen\x20leaf\x20first\x20(relying\x20composition\x20'+'is\x20depth-strict).'}),f['host']!==undefined&&f['host']!==a['host']&&b['push']({'source':'blueprint','code':'GR_CHILD_HOST_MISMATCH','host':a['host'],'level':'warning','detail':'Relied\x20child\x20\x22'+f['id']+'\x22\x20was\x20designed\x20for\x20host\x20\x22'+f['host']+'\x22\x20but\x20inherits\x20THIS\x20'+('guard\x27s\x20host\x20context\x20(\x22'+a['host']+'\x22)\x20—\x20signer\x20subject,\x20order\x20anchor,\x20and\x20submission\x20')+'channel\x20all\x20change\x20under\x20it.\x20Re-audit\x20the\x20child\x20against\x20the\x20catalog\x20entry\x20for\x20'+('\x22'+a['host']+'\x22\x20before\x20relying\x20on\x20it.')});}return b;}export function composeGuardBlueprint(a){const b=a['host'],c=a['business_intent']??'',d=a['relies']??[],e=[...tag(verifyGuardBinding({'host':b,'root':a['root'],'facts':a['facts']}),'verifyGuardBinding'),...d['length']>0x0?tag(auditGuardRelies({'from_host':a['from_host']??'','to_host':b,'child_count':d['length'],'logic_and':a['logic_and']??!![]}),'auditGuardRelies'):[],...a['quote_candidate']?tag(auditQuoteGuardCandidate(a['quote_candidate']),'auditQuoteGuardCandidate'):[],...blueprintChecks(a)],f=e['filter'](l=>l['level']==='critical'),g=e['filter'](l=>l['level']==='warning'),h=e['filter'](l=>l['level']==='info'),i=f['length']>0x0?'blocked':g['length']>0x0?'proceed_with_warnings':'proceed',j=l=>l['map'](m=>m['code'])['join'](',\x20'),k=i==='blocked'?'BLOCKED\x20—\x20'+f['length']+'\x20critical\x20finding(s)\x20['+j(f)+'].\x20Do\x20NOT\x20create\x20or\x20bind:\x20'+'guards\x20are\x20immutable\x20after\x20create(),\x20so\x20a\x20frozen\x20defect\x20is\x20only\x20fixable\x20by\x20rebuilding\x20the\x20'+'whole\x20object\x20family.\x20Resolve\x20the\x20findings\x20and\x20recompose.':i==='proceed_with_warnings'?'PROCEED\x20WITH\x20WARNINGS\x20—\x20'+g['length']+'\x20disclosure(s)\x20['+j(g)+'].\x20No\x20structural\x20'+'abort,\x20but\x20each\x20warning\x20must\x20be\x20consciously\x20accepted\x20or\x20fixed\x20before\x20create().':'PROCEED\x20—\x20no\x20structural\x20finding\x20at\x20blueprint\x20compose\x20time.\x20Host\x20semantics\x20inlined\x20below\x20'+'remain\x20the\x20audit\x20reference\x20for\x20every\x20future\x20re-bind.';return{'host':b,'business_intent':c,'pattern_id':a['pattern_id'],'host_context':getGuardHostContext(b)??null,'spec':{'description':c,'table':a['table']??[],'root':a['root'],'relies':d['map'](l=>({'id':l['id']})),'logic_and':a['logic_and']??!![]},'findings':e,'verdict':{'status':i,'blockers':f,'warnings':g,'notes':h,'statement':k}};}
@@ -35,4 +35,4 @@ export declare function suggestPatternForRequirement(requirement: string): {
35
35
  best: GuardDesignPattern;
36
36
  alternatives: GuardDesignPattern[];
37
37
  };
38
- export declare const GUARD_DESIGN_PATTERNS_VERSION = 17;
38
+ export declare const GUARD_DESIGN_PATTERNS_VERSION = 19;