@wowok/agent-mcp 3.3.6 → 3.3.7

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 (137) hide show
  1. package/dist/chain-semantics/eval-order.js +1 -1
  2. package/dist/chain-semantics/field-capability.js +1 -1
  3. package/dist/chain-semantics/fund-flow.js +1 -1
  4. package/dist/chain-semantics/guard-verbs.js +1 -1
  5. package/dist/chain-semantics/object-graph.js +1 -1
  6. package/dist/composition/audit.js +1 -1
  7. package/dist/composition/compile.d.ts +2 -1
  8. package/dist/composition/compile.js +1 -1
  9. package/dist/composition/materialize.js +1 -1
  10. package/dist/data/projection/facets.spec.js +1 -1
  11. package/dist/evaluation/match-policy.d.ts +30 -6
  12. package/dist/evaluation/match-policy.js +1 -1
  13. package/dist/evaluation/match-policy.spec.js +1 -1
  14. package/dist/extensions/business-modules.js +1 -1
  15. package/dist/harness/recover.js +1 -1
  16. package/dist/intent/types.d.ts +1 -1
  17. package/dist/intent/types.js +1 -1
  18. package/dist/keeper/detectors.d.ts +3 -0
  19. package/dist/keeper/detectors.js +1 -1
  20. package/dist/keeper/keeper.spec.js +1 -1
  21. package/dist/knowledge/allocator-rail-verifier.js +1 -1
  22. package/dist/knowledge/audit-rules.js +1 -1
  23. package/dist/knowledge/baselines/rules/plan.json +97 -2
  24. package/dist/knowledge/builtin-templates.d.ts +6 -1
  25. package/dist/knowledge/builtin-templates.js +1 -1
  26. package/dist/knowledge/event-semantics.js +1 -1
  27. package/dist/knowledge/guard-design-patterns.js +1 -1
  28. package/dist/knowledge/guard-templates.d.ts +1 -1
  29. package/dist/knowledge/guard-templates.js +1 -1
  30. package/dist/knowledge/industry-generalizer.d.ts +4 -0
  31. package/dist/knowledge/industry-generalizer.js +1 -1
  32. package/dist/knowledge/semantic-ir.d.ts +113 -0
  33. package/dist/knowledge/semantic-ir.js +1 -0
  34. package/dist/knowledge/strategy-manuals.js +1 -1
  35. package/dist/knowledge/template-loader.d.ts +34 -0
  36. package/dist/knowledge/template-loader.js +1 -1
  37. package/dist/knowledge/template-prose.d.ts +50 -0
  38. package/dist/knowledge/template-prose.js +1 -0
  39. package/dist/knowledge/template-registry.js +1 -1
  40. package/dist/knowledge/template-scanner.d.ts +1 -1
  41. package/dist/knowledge/template-scanner.js +1 -1
  42. package/dist/knowledge/tools-reference.js +1 -1
  43. package/dist/monitor/MonitorLoop.js +1 -1
  44. package/dist/monitor/normalize.d.ts +1 -1
  45. package/dist/monitor/normalize.js +1 -1
  46. package/dist/monitor/types.js +1 -1
  47. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  48. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  49. package/dist/playbooks/service-build/merchant-guide.d.ts +4 -0
  50. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  51. package/dist/playbooks/service-build/migration-planner.d.ts +2 -1
  52. package/dist/playbooks/service-build/migration-planner.js +1 -1
  53. package/dist/playbooks/service-build/mode-actions.d.ts +7 -0
  54. package/dist/playbooks/service-build/mode-actions.js +1 -1
  55. package/dist/playbooks/service-build/object-panorama.d.ts +22 -1
  56. package/dist/playbooks/service-build/object-panorama.js +1 -1
  57. package/dist/playbooks/service-build/participation-radar.js +1 -1
  58. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  59. package/dist/playbooks/service-build/reverse-mapping-nk4.spec.js +1 -1
  60. package/dist/playbooks/service-build/reverse-mapping.d.ts +1 -0
  61. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  62. package/dist/playbooks/service-build/service-panorama.js +1 -1
  63. package/dist/playbooks/service-build/service-quote.js +1 -1
  64. package/dist/review/index.js +1 -1
  65. package/dist/safety/confirm-gate.js +1 -1
  66. package/dist/schema/benchmark-migration/index.d.ts +64 -10
  67. package/dist/schema/benchmark-migration/index.js +1 -1
  68. package/dist/schema/call/arbitration.js +1 -1
  69. package/dist/schema/call/base.d.ts +8 -0
  70. package/dist/schema/call/bridge.d.ts +2 -0
  71. package/dist/schema/call/error-codes.d.ts +1 -1
  72. package/dist/schema/call/error-codes.js +1 -1
  73. package/dist/schema/call/reward.d.ts +10 -0
  74. package/dist/schema/call/reward.js +1 -1
  75. package/dist/schema/call/semantic.js +1 -1
  76. package/dist/schema/call/service.js +1 -1
  77. package/dist/schema/common/index.js +1 -1
  78. package/dist/schema/evaluation/index.d.ts +152 -0
  79. package/dist/schema/evaluation/index.js +1 -1
  80. package/dist/schema/goal/index.d.ts +2 -0
  81. package/dist/schema/goal/planning.d.ts +3 -0
  82. package/dist/schema/goal/planning.js +1 -1
  83. package/dist/schema/industry-pack/index.d.ts +62 -0
  84. package/dist/schema/industry-pack/modes.d.ts +62 -0
  85. package/dist/schema/industry-pack/modes.js +1 -1
  86. package/dist/schema/intent-radar/index.d.ts +3 -0
  87. package/dist/schema/intent-radar/index.js +1 -1
  88. package/dist/schema/local/index.d.ts +20 -0
  89. package/dist/schema/local/index.js +1 -1
  90. package/dist/schema/operations.d.ts +5 -0
  91. package/dist/schema/query/index.d.ts +145 -47
  92. package/dist/schema/query/index.js +1 -1
  93. package/dist/schema/schema-version.js +1 -1
  94. package/dist/schema-query-impl/index.js +1 -1
  95. package/dist/schemas/account_operation.output.json +2 -0
  96. package/dist/schemas/benchmark_migration_operation.output.json +42 -0
  97. package/dist/schemas/benchmark_migration_operation.schema.json +208 -5
  98. package/dist/schemas/bridge_operation.output.json +2 -0
  99. package/dist/schemas/evaluation_operation.output.json +240 -0
  100. package/dist/schemas/evaluation_operation.schema.json +397 -1
  101. package/dist/schemas/goal_operation.schema.json +18 -10
  102. package/dist/schemas/index.json +1 -1
  103. package/dist/schemas/industry_pack_operation.output.json +86 -2
  104. package/dist/schemas/industry_pack_operation.schema.json +199 -0
  105. package/dist/schemas/intent_radar.output.json +2 -0
  106. package/dist/schemas/intent_radar.schema.json +1 -0
  107. package/dist/schemas/local_cache_operation.output.json +2 -0
  108. package/dist/schemas/local_history_operation.output.json +2 -0
  109. package/dist/schemas/local_info_operation.output.json +2 -0
  110. package/dist/schemas/local_mark_operation.output.json +2 -0
  111. package/dist/schemas/onchain_events.output.json +281 -11
  112. package/dist/schemas/onchain_events.schema.json +5 -1
  113. package/dist/schemas/onchain_operations.output.json +2 -0
  114. package/dist/schemas/onchain_operations.schema.json +37 -3
  115. package/dist/schemas/onchain_operations_arbitration.schema.json +1 -1
  116. package/dist/schemas/onchain_operations_reward.schema.json +35 -1
  117. package/dist/schemas/onchain_operations_service.schema.json +1 -1
  118. package/dist/schemas/query_toolkit.output.json +34 -0
  119. package/dist/tools/handlers/benchmark-migration.d.ts +1 -0
  120. package/dist/tools/handlers/benchmark-migration.js +1 -1
  121. package/dist/tools/handlers/config.js +1 -1
  122. package/dist/tools/handlers/evaluation.js +1 -1
  123. package/dist/tools/handlers/evaluation.spec.js +1 -1
  124. package/dist/tools/handlers/intent-radar.js +1 -1
  125. package/dist/tools/handlers/messenger.d.ts +1 -0
  126. package/dist/tools/handlers/messenger.js +1 -1
  127. package/dist/tools/handlers/onchain.d.ts +1 -0
  128. package/dist/tools/handlers/onchain.js +1 -1
  129. package/dist/tools/handlers/query.js +1 -1
  130. package/dist/tools/handlers/wip.js +1 -1
  131. package/dist/tools/registry/agent.js +1 -1
  132. package/dist/tools/registry/query.js +1 -1
  133. package/dist/tools/wip-verify-ledger.d.ts +14 -0
  134. package/dist/tools/wip-verify-ledger.js +1 -0
  135. package/dist/tools/wrap.d.ts +4 -0
  136. package/dist/tools/wrap.js +1 -1
  137. package/package.json +2 -2
@@ -1754,6 +1754,126 @@
1754
1754
  ],
1755
1755
  "additionalProperties": false,
1756
1756
  "description": "Honest enumeration scope; event_window is never a complete chain universe."
1757
+ },
1758
+ "policy_effect": {
1759
+ "description": "Present only when a match_policy was supplied: the private-policy effect report for the gates applied in this stage (R4).",
1760
+ "type": "object",
1761
+ "properties": {
1762
+ "policy_id": {
1763
+ "type": "string"
1764
+ },
1765
+ "version": {
1766
+ "type": "integer",
1767
+ "minimum": 0,
1768
+ "maximum": 9007199254740991
1769
+ },
1770
+ "direction": {
1771
+ "type": "string",
1772
+ "enum": [
1773
+ "demand_to_supply",
1774
+ "supply_to_demand"
1775
+ ]
1776
+ },
1777
+ "policy_hash": {
1778
+ "type": "string",
1779
+ "description": "sha256 of the canonical policy JSON — local reproducibility fingerprint, never uploaded."
1780
+ },
1781
+ "unknown_policy": {
1782
+ "type": "string",
1783
+ "enum": [
1784
+ "pass",
1785
+ "drop",
1786
+ "neutral_score"
1787
+ ]
1788
+ },
1789
+ "dropped": {
1790
+ "type": "array",
1791
+ "items": {
1792
+ "type": "object",
1793
+ "properties": {
1794
+ "object": {
1795
+ "type": "string"
1796
+ },
1797
+ "reason": {
1798
+ "type": "string"
1799
+ }
1800
+ },
1801
+ "required": [
1802
+ "object",
1803
+ "reason"
1804
+ ],
1805
+ "additionalProperties": false
1806
+ },
1807
+ "description": "Candidates eliminated by a gate/exclude, each with its reason."
1808
+ },
1809
+ "unknown_kept": {
1810
+ "type": "array",
1811
+ "items": {
1812
+ "type": "object",
1813
+ "properties": {
1814
+ "object": {
1815
+ "type": "string"
1816
+ },
1817
+ "dim": {
1818
+ "type": "string"
1819
+ },
1820
+ "reason": {
1821
+ "type": "string"
1822
+ }
1823
+ },
1824
+ "required": [
1825
+ "object",
1826
+ "dim",
1827
+ "reason"
1828
+ ],
1829
+ "additionalProperties": false
1830
+ },
1831
+ "description": "Gate inputs that were missing; candidate kept under pass/neutral_score semantics (K5-05 axiom 3)."
1832
+ },
1833
+ "weights_applied": {
1834
+ "type": "object",
1835
+ "propertyNames": {
1836
+ "type": "string"
1837
+ },
1838
+ "additionalProperties": {
1839
+ "type": "number"
1840
+ },
1841
+ "description": "demand_match rule weights overridden by the policy."
1842
+ },
1843
+ "rerank": {
1844
+ "type": "string",
1845
+ "description": "Final private ordering in effect."
1846
+ },
1847
+ "deferred_by_diversity": {
1848
+ "type": "integer",
1849
+ "minimum": 0,
1850
+ "maximum": 9007199254740991
1851
+ },
1852
+ "ignored": {
1853
+ "type": "array",
1854
+ "items": {
1855
+ "type": "string"
1856
+ },
1857
+ "description": "Policy directives not enforceable in this build — reported, never silently dropped."
1858
+ },
1859
+ "privacy": {
1860
+ "type": "string"
1861
+ }
1862
+ },
1863
+ "required": [
1864
+ "policy_id",
1865
+ "direction",
1866
+ "policy_hash",
1867
+ "unknown_policy",
1868
+ "dropped",
1869
+ "unknown_kept",
1870
+ "weights_applied",
1871
+ "rerank",
1872
+ "deferred_by_diversity",
1873
+ "ignored",
1874
+ "privacy"
1875
+ ],
1876
+ "additionalProperties": false
1757
1877
  }
1758
1878
  },
1759
1879
  "required": [
@@ -2143,6 +2263,126 @@
2143
2263
  ],
2144
2264
  "additionalProperties": false,
2145
2265
  "description": "Honest enumeration scope; event_window is never a complete chain universe."
2266
+ },
2267
+ "policy_effect": {
2268
+ "description": "Present only when a match_policy was supplied: the full private-policy effect report (R4).",
2269
+ "type": "object",
2270
+ "properties": {
2271
+ "policy_id": {
2272
+ "type": "string"
2273
+ },
2274
+ "version": {
2275
+ "type": "integer",
2276
+ "minimum": 0,
2277
+ "maximum": 9007199254740991
2278
+ },
2279
+ "direction": {
2280
+ "type": "string",
2281
+ "enum": [
2282
+ "demand_to_supply",
2283
+ "supply_to_demand"
2284
+ ]
2285
+ },
2286
+ "policy_hash": {
2287
+ "type": "string",
2288
+ "description": "sha256 of the canonical policy JSON — local reproducibility fingerprint, never uploaded."
2289
+ },
2290
+ "unknown_policy": {
2291
+ "type": "string",
2292
+ "enum": [
2293
+ "pass",
2294
+ "drop",
2295
+ "neutral_score"
2296
+ ]
2297
+ },
2298
+ "dropped": {
2299
+ "type": "array",
2300
+ "items": {
2301
+ "type": "object",
2302
+ "properties": {
2303
+ "object": {
2304
+ "type": "string"
2305
+ },
2306
+ "reason": {
2307
+ "type": "string"
2308
+ }
2309
+ },
2310
+ "required": [
2311
+ "object",
2312
+ "reason"
2313
+ ],
2314
+ "additionalProperties": false
2315
+ },
2316
+ "description": "Candidates eliminated by a gate/exclude, each with its reason."
2317
+ },
2318
+ "unknown_kept": {
2319
+ "type": "array",
2320
+ "items": {
2321
+ "type": "object",
2322
+ "properties": {
2323
+ "object": {
2324
+ "type": "string"
2325
+ },
2326
+ "dim": {
2327
+ "type": "string"
2328
+ },
2329
+ "reason": {
2330
+ "type": "string"
2331
+ }
2332
+ },
2333
+ "required": [
2334
+ "object",
2335
+ "dim",
2336
+ "reason"
2337
+ ],
2338
+ "additionalProperties": false
2339
+ },
2340
+ "description": "Gate inputs that were missing; candidate kept under pass/neutral_score semantics (K5-05 axiom 3)."
2341
+ },
2342
+ "weights_applied": {
2343
+ "type": "object",
2344
+ "propertyNames": {
2345
+ "type": "string"
2346
+ },
2347
+ "additionalProperties": {
2348
+ "type": "number"
2349
+ },
2350
+ "description": "demand_match rule weights overridden by the policy."
2351
+ },
2352
+ "rerank": {
2353
+ "type": "string",
2354
+ "description": "Final private ordering in effect."
2355
+ },
2356
+ "deferred_by_diversity": {
2357
+ "type": "integer",
2358
+ "minimum": 0,
2359
+ "maximum": 9007199254740991
2360
+ },
2361
+ "ignored": {
2362
+ "type": "array",
2363
+ "items": {
2364
+ "type": "string"
2365
+ },
2366
+ "description": "Policy directives not enforceable in this build — reported, never silently dropped."
2367
+ },
2368
+ "privacy": {
2369
+ "type": "string"
2370
+ }
2371
+ },
2372
+ "required": [
2373
+ "policy_id",
2374
+ "direction",
2375
+ "policy_hash",
2376
+ "unknown_policy",
2377
+ "dropped",
2378
+ "unknown_kept",
2379
+ "weights_applied",
2380
+ "rerank",
2381
+ "deferred_by_diversity",
2382
+ "ignored",
2383
+ "privacy"
2384
+ ],
2385
+ "additionalProperties": false
2146
2386
  }
2147
2387
  },
2148
2388
  "required": [
@@ -1988,6 +1988,204 @@
1988
1988
  "description": "Client-side substring filter on demand.location (omit = all demands).",
1989
1989
  "type": "string"
1990
1990
  },
1991
+ "match_policy": {
1992
+ "description": "R4 private policy (supply_to_demand direction, e.g. preset 'supplier_hunting'), resolved/applied entirely on-device. discover_demands applies gates+excludes only (no private scoring); weights/rerank are reported as not applicable in policy_effect.",
1993
+ "anyOf": [
1994
+ {
1995
+ "type": "string"
1996
+ },
1997
+ {
1998
+ "type": "object",
1999
+ "properties": {
2000
+ "policy_id": {
2001
+ "type": "string",
2002
+ "minLength": 1
2003
+ },
2004
+ "version": {
2005
+ "type": "integer",
2006
+ "minimum": 0,
2007
+ "maximum": 9007199254740991
2008
+ },
2009
+ "direction": {
2010
+ "description": "Default demand_to_supply. A demand_to_supply policy drives match_discover; a supply_to_demand policy drives demand_present / discover_demands (and is rejected by match_discover).",
2011
+ "type": "string",
2012
+ "enum": [
2013
+ "demand_to_supply",
2014
+ "supply_to_demand"
2015
+ ]
2016
+ },
2017
+ "unknown_policy": {
2018
+ "description": "What a gate with missing input does (K5-05 axiom 3). Default neutral_score (= pass, reported).",
2019
+ "type": "string",
2020
+ "enum": [
2021
+ "pass",
2022
+ "drop",
2023
+ "neutral_score"
2024
+ ]
2025
+ },
2026
+ "gates": {
2027
+ "type": "array",
2028
+ "items": {
2029
+ "type": "object",
2030
+ "properties": {
2031
+ "dim": {
2032
+ "type": "string",
2033
+ "description": "Gate dimension. Enforced client-side: live, price, arb, compensation, machine, messenger, buy_guard, wip_verify, text, owner. Others are reported as ignored (not enforceable on-device yet)."
2034
+ },
2035
+ "op": {
2036
+ "description": "Comparison operator (eq/lte/gte/in/not_in/must_contain/must_not_contain) — validated per dim at apply time.",
2037
+ "type": "string"
2038
+ },
2039
+ "value": {
2040
+ "anyOf": [
2041
+ {
2042
+ "type": "boolean"
2043
+ },
2044
+ {
2045
+ "type": "number"
2046
+ },
2047
+ {
2048
+ "type": "string"
2049
+ },
2050
+ {
2051
+ "type": "array",
2052
+ "items": {
2053
+ "type": "string"
2054
+ }
2055
+ }
2056
+ ]
2057
+ },
2058
+ "params": {
2059
+ "description": "Extra params; `from_budget: true` on a price gate uses the request budget as the threshold.",
2060
+ "type": "object",
2061
+ "propertyNames": {
2062
+ "type": "string"
2063
+ },
2064
+ "additionalProperties": {}
2065
+ }
2066
+ },
2067
+ "required": [
2068
+ "dim"
2069
+ ],
2070
+ "additionalProperties": false
2071
+ }
2072
+ },
2073
+ "excludes": {
2074
+ "type": "array",
2075
+ "items": {
2076
+ "type": "object",
2077
+ "properties": {
2078
+ "dim": {
2079
+ "type": "string",
2080
+ "description": "Exclude dimension. Enforced client-side: blacklist (objects/owners lists). anti_cheat/structure dims are reported as ignored (no client-side facet)."
2081
+ },
2082
+ "objects": {
2083
+ "type": "array",
2084
+ "items": {
2085
+ "type": "string"
2086
+ }
2087
+ },
2088
+ "owners": {
2089
+ "type": "array",
2090
+ "items": {
2091
+ "type": "string"
2092
+ }
2093
+ },
2094
+ "flags": {
2095
+ "type": "array",
2096
+ "items": {
2097
+ "type": "string"
2098
+ }
2099
+ },
2100
+ "source": {
2101
+ "type": "array",
2102
+ "items": {
2103
+ "type": "string"
2104
+ }
2105
+ },
2106
+ "rule": {
2107
+ "type": "string"
2108
+ }
2109
+ },
2110
+ "required": [
2111
+ "dim"
2112
+ ],
2113
+ "additionalProperties": false
2114
+ }
2115
+ },
2116
+ "weights": {
2117
+ "description": "demand_match rule id → weight (region/industry/price/trust/capabilities/tags/acceptance). Unregistered ids are reported as ignored.",
2118
+ "type": "object",
2119
+ "propertyNames": {
2120
+ "type": "string"
2121
+ },
2122
+ "additionalProperties": {
2123
+ "type": "number",
2124
+ "minimum": 0
2125
+ }
2126
+ },
2127
+ "rerank": {
2128
+ "type": "object",
2129
+ "properties": {
2130
+ "diversity": {
2131
+ "description": "Greedy per-group cap over the score-ordered list. `permission` is not enforceable client-side yet (reported ignored); use `owner`.",
2132
+ "type": "object",
2133
+ "properties": {
2134
+ "by": {
2135
+ "type": "string",
2136
+ "enum": [
2137
+ "owner",
2138
+ "permission"
2139
+ ]
2140
+ },
2141
+ "max_per_group": {
2142
+ "type": "integer",
2143
+ "minimum": 1,
2144
+ "maximum": 9007199254740991
2145
+ }
2146
+ },
2147
+ "required": [
2148
+ "by",
2149
+ "max_per_group"
2150
+ ],
2151
+ "additionalProperties": false
2152
+ },
2153
+ "explore": {},
2154
+ "llm": {},
2155
+ "fairness": {}
2156
+ },
2157
+ "additionalProperties": false
2158
+ },
2159
+ "recall": {
2160
+ "description": "Server/recall directives — accepted for portability, not enforceable from the client (reported ignored)."
2161
+ },
2162
+ "verify": {
2163
+ "description": "Facet verification directives — accepted for portability, not enforceable client-side (reported ignored)."
2164
+ },
2165
+ "output": {
2166
+ "type": "object",
2167
+ "properties": {
2168
+ "top_n": {
2169
+ "type": "integer",
2170
+ "minimum": 1,
2171
+ "maximum": 500
2172
+ },
2173
+ "explain": {
2174
+ "type": "boolean"
2175
+ },
2176
+ "evidence_chain": {},
2177
+ "coverage_report": {}
2178
+ },
2179
+ "additionalProperties": false
2180
+ }
2181
+ },
2182
+ "required": [
2183
+ "policy_id"
2184
+ ],
2185
+ "additionalProperties": false
2186
+ }
2187
+ ]
2188
+ },
1991
2189
  "max_objects": {
1992
2190
  "description": "Enumeration cap before filtering (default 200).",
1993
2191
  "type": "integer",
@@ -2185,6 +2383,204 @@
2185
2383
  "description": "Client-side substring filter on demand.location (omit = all demands).",
2186
2384
  "type": "string"
2187
2385
  },
2386
+ "match_policy": {
2387
+ "description": "R4 private ranking policy (supply_to_demand direction, e.g. preset 'supplier_hunting'), resolved/applied entirely on-device; the policy and its hash never leave this device.",
2388
+ "anyOf": [
2389
+ {
2390
+ "type": "string"
2391
+ },
2392
+ {
2393
+ "type": "object",
2394
+ "properties": {
2395
+ "policy_id": {
2396
+ "type": "string",
2397
+ "minLength": 1
2398
+ },
2399
+ "version": {
2400
+ "type": "integer",
2401
+ "minimum": 0,
2402
+ "maximum": 9007199254740991
2403
+ },
2404
+ "direction": {
2405
+ "description": "Default demand_to_supply. A demand_to_supply policy drives match_discover; a supply_to_demand policy drives demand_present / discover_demands (and is rejected by match_discover).",
2406
+ "type": "string",
2407
+ "enum": [
2408
+ "demand_to_supply",
2409
+ "supply_to_demand"
2410
+ ]
2411
+ },
2412
+ "unknown_policy": {
2413
+ "description": "What a gate with missing input does (K5-05 axiom 3). Default neutral_score (= pass, reported).",
2414
+ "type": "string",
2415
+ "enum": [
2416
+ "pass",
2417
+ "drop",
2418
+ "neutral_score"
2419
+ ]
2420
+ },
2421
+ "gates": {
2422
+ "type": "array",
2423
+ "items": {
2424
+ "type": "object",
2425
+ "properties": {
2426
+ "dim": {
2427
+ "type": "string",
2428
+ "description": "Gate dimension. Enforced client-side: live, price, arb, compensation, machine, messenger, buy_guard, wip_verify, text, owner. Others are reported as ignored (not enforceable on-device yet)."
2429
+ },
2430
+ "op": {
2431
+ "description": "Comparison operator (eq/lte/gte/in/not_in/must_contain/must_not_contain) — validated per dim at apply time.",
2432
+ "type": "string"
2433
+ },
2434
+ "value": {
2435
+ "anyOf": [
2436
+ {
2437
+ "type": "boolean"
2438
+ },
2439
+ {
2440
+ "type": "number"
2441
+ },
2442
+ {
2443
+ "type": "string"
2444
+ },
2445
+ {
2446
+ "type": "array",
2447
+ "items": {
2448
+ "type": "string"
2449
+ }
2450
+ }
2451
+ ]
2452
+ },
2453
+ "params": {
2454
+ "description": "Extra params; `from_budget: true` on a price gate uses the request budget as the threshold.",
2455
+ "type": "object",
2456
+ "propertyNames": {
2457
+ "type": "string"
2458
+ },
2459
+ "additionalProperties": {}
2460
+ }
2461
+ },
2462
+ "required": [
2463
+ "dim"
2464
+ ],
2465
+ "additionalProperties": false
2466
+ }
2467
+ },
2468
+ "excludes": {
2469
+ "type": "array",
2470
+ "items": {
2471
+ "type": "object",
2472
+ "properties": {
2473
+ "dim": {
2474
+ "type": "string",
2475
+ "description": "Exclude dimension. Enforced client-side: blacklist (objects/owners lists). anti_cheat/structure dims are reported as ignored (no client-side facet)."
2476
+ },
2477
+ "objects": {
2478
+ "type": "array",
2479
+ "items": {
2480
+ "type": "string"
2481
+ }
2482
+ },
2483
+ "owners": {
2484
+ "type": "array",
2485
+ "items": {
2486
+ "type": "string"
2487
+ }
2488
+ },
2489
+ "flags": {
2490
+ "type": "array",
2491
+ "items": {
2492
+ "type": "string"
2493
+ }
2494
+ },
2495
+ "source": {
2496
+ "type": "array",
2497
+ "items": {
2498
+ "type": "string"
2499
+ }
2500
+ },
2501
+ "rule": {
2502
+ "type": "string"
2503
+ }
2504
+ },
2505
+ "required": [
2506
+ "dim"
2507
+ ],
2508
+ "additionalProperties": false
2509
+ }
2510
+ },
2511
+ "weights": {
2512
+ "description": "demand_match rule id → weight (region/industry/price/trust/capabilities/tags/acceptance). Unregistered ids are reported as ignored.",
2513
+ "type": "object",
2514
+ "propertyNames": {
2515
+ "type": "string"
2516
+ },
2517
+ "additionalProperties": {
2518
+ "type": "number",
2519
+ "minimum": 0
2520
+ }
2521
+ },
2522
+ "rerank": {
2523
+ "type": "object",
2524
+ "properties": {
2525
+ "diversity": {
2526
+ "description": "Greedy per-group cap over the score-ordered list. `permission` is not enforceable client-side yet (reported ignored); use `owner`.",
2527
+ "type": "object",
2528
+ "properties": {
2529
+ "by": {
2530
+ "type": "string",
2531
+ "enum": [
2532
+ "owner",
2533
+ "permission"
2534
+ ]
2535
+ },
2536
+ "max_per_group": {
2537
+ "type": "integer",
2538
+ "minimum": 1,
2539
+ "maximum": 9007199254740991
2540
+ }
2541
+ },
2542
+ "required": [
2543
+ "by",
2544
+ "max_per_group"
2545
+ ],
2546
+ "additionalProperties": false
2547
+ },
2548
+ "explore": {},
2549
+ "llm": {},
2550
+ "fairness": {}
2551
+ },
2552
+ "additionalProperties": false
2553
+ },
2554
+ "recall": {
2555
+ "description": "Server/recall directives — accepted for portability, not enforceable from the client (reported ignored)."
2556
+ },
2557
+ "verify": {
2558
+ "description": "Facet verification directives — accepted for portability, not enforceable client-side (reported ignored)."
2559
+ },
2560
+ "output": {
2561
+ "type": "object",
2562
+ "properties": {
2563
+ "top_n": {
2564
+ "type": "integer",
2565
+ "minimum": 1,
2566
+ "maximum": 500
2567
+ },
2568
+ "explain": {
2569
+ "type": "boolean"
2570
+ },
2571
+ "evidence_chain": {},
2572
+ "coverage_report": {}
2573
+ },
2574
+ "additionalProperties": false
2575
+ }
2576
+ },
2577
+ "required": [
2578
+ "policy_id"
2579
+ ],
2580
+ "additionalProperties": false
2581
+ }
2582
+ ]
2583
+ },
2188
2584
  "max_objects": {
2189
2585
  "description": "Enumeration cap before filtering (default 200).",
2190
2586
  "type": "integer",
@@ -2827,7 +3223,7 @@
2827
3223
  "maximum": 9007199254740991
2828
3224
  },
2829
3225
  "direction": {
2830
- "description": "Default demand_to_supply. A supply_to_demand policy is rejected by match_discover (use demand_present).",
3226
+ "description": "Default demand_to_supply. A demand_to_supply policy drives match_discover; a supply_to_demand policy drives demand_present / discover_demands (and is rejected by match_discover).",
2831
3227
  "type": "string",
2832
3228
  "enum": [
2833
3229
  "demand_to_supply",