@wowok/agent-mcp 3.1.5 → 3.1.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 (156) hide show
  1. package/dist/evaluation/arbitration-game.js +1 -1
  2. package/dist/evaluation/builtins/graph-service.js +1 -1
  3. package/dist/graph/onchain/analyze.js +1 -1
  4. package/dist/graph/onchain/analyze.spec.js +1 -1
  5. package/dist/graph/onchain/extract.js +1 -1
  6. package/dist/graph/onchain/facts.d.ts +1 -0
  7. package/dist/graph/onchain/facts.js +1 -1
  8. package/dist/graph/onchain/fixtures.js +1 -1
  9. package/dist/graph/onchain/onchain.spec.js +1 -1
  10. package/dist/graph/onchain/strategy.js +1 -1
  11. package/dist/graph/onchain/strategy.spec.js +1 -1
  12. package/dist/harness/recover.js +1 -1
  13. package/dist/knowledge/alloc-audit-policy.spec.js +1 -1
  14. package/dist/knowledge/allocation-risk.js +1 -1
  15. package/dist/knowledge/arbitration-ledger.js +1 -1
  16. package/dist/knowledge/audit-rules.d.ts +1 -0
  17. package/dist/knowledge/audit-rules.js +1 -1
  18. package/dist/knowledge/baselines/rules/alloc_audit.json +20 -0
  19. package/dist/knowledge/baselines/rules/allocation.json +1 -19
  20. package/dist/knowledge/baselines/rules/arb.json +1 -1
  21. package/dist/knowledge/baselines/rules/guard.json +8 -8
  22. package/dist/knowledge/fund-layer.js +1 -1
  23. package/dist/knowledge/guard-design-patterns.d.ts +2 -1
  24. package/dist/knowledge/guard-design-patterns.js +1 -1
  25. package/dist/knowledge/guard-design-patterns.spec.d.ts +1 -0
  26. package/dist/knowledge/guard-design-patterns.spec.js +1 -0
  27. package/dist/knowledge/guard-lint.d.ts +1 -1
  28. package/dist/knowledge/guard-lint.js +1 -1
  29. package/dist/knowledge/guard-puzzle.js +1 -1
  30. package/dist/knowledge/guard-render.js +1 -1
  31. package/dist/knowledge/guard-risk.js +1 -1
  32. package/dist/knowledge/guard-translation.js +1 -1
  33. package/dist/knowledge/index.js +1 -1
  34. package/dist/knowledge/industry-registry.js +1 -1
  35. package/dist/knowledge/jsonrpc-enum.js +1 -1
  36. package/dist/knowledge/permission-ledger.js +1 -1
  37. package/dist/knowledge/recipient-constraint.js +1 -1
  38. package/dist/knowledge/safety-rules.extract-amount.spec.d.ts +1 -0
  39. package/dist/knowledge/safety-rules.extract-amount.spec.js +1 -0
  40. package/dist/knowledge/safety-rules.js +1 -1
  41. package/dist/knowledge/service-ledger.js +1 -1
  42. package/dist/knowledge/template-registry.js +1 -1
  43. package/dist/knowledge/template-scanner.js +1 -1
  44. package/dist/knowledge/tool-constraints.js +1 -1
  45. package/dist/knowledge/tools-reference.js +1 -1
  46. package/dist/knowledge/workflow-guidance.js +1 -1
  47. package/dist/monitor/MonitorLoop.js +1 -1
  48. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  49. package/dist/playbooks/service-build/pipeline-actions.d.ts +1 -1
  50. package/dist/playbooks/service-build/pipeline-actions.js +1 -1
  51. package/dist/playbooks/service-build/risk-aggregator.js +1 -1
  52. package/dist/role/derivation.d.ts +1 -1
  53. package/dist/role/derivation.js +1 -1
  54. package/dist/safety/confirm-gate.js +1 -1
  55. package/dist/schema/call/allocation.d.ts +7 -0
  56. package/dist/schema/call/allocation.js +1 -1
  57. package/dist/schema/call/arbitration.d.ts +4 -0
  58. package/dist/schema/call/arbitration.js +1 -1
  59. package/dist/schema/call/base.d.ts +52 -0
  60. package/dist/schema/call/base.js +1 -1
  61. package/dist/schema/call/bridge.d.ts +27 -0
  62. package/dist/schema/call/contact.d.ts +4 -0
  63. package/dist/schema/call/demand.d.ts +4 -0
  64. package/dist/schema/call/error-codes.d.ts +1 -1
  65. package/dist/schema/call/error-codes.js +1 -1
  66. package/dist/schema/call/guard.d.ts +12 -0
  67. package/dist/schema/call/handler.js +1 -1
  68. package/dist/schema/call/machine.d.ts +8 -0
  69. package/dist/schema/call/order.d.ts +4 -0
  70. package/dist/schema/call/order.js +1 -1
  71. package/dist/schema/call/payment.d.ts +4 -0
  72. package/dist/schema/call/permission.d.ts +4 -0
  73. package/dist/schema/call/personal.d.ts +4 -0
  74. package/dist/schema/call/progress.d.ts +4 -0
  75. package/dist/schema/call/proof.d.ts +8 -0
  76. package/dist/schema/call/repository.d.ts +4 -0
  77. package/dist/schema/call/repository.js +1 -1
  78. package/dist/schema/call/reward.d.ts +4 -0
  79. package/dist/schema/call/semantic-customer-advice.spec.js +1 -1
  80. package/dist/schema/call/semantic.d.ts +11 -0
  81. package/dist/schema/call/semantic.js +1 -1
  82. package/dist/schema/call/service.d.ts +14 -0
  83. package/dist/schema/call/service.js +1 -1
  84. package/dist/schema/call/treasury.d.ts +4 -0
  85. package/dist/schema/common/index.js +1 -1
  86. package/dist/schema/keeper/index.d.ts +5 -0
  87. package/dist/schema/local/index.d.ts +36 -0
  88. package/dist/schema/local/index.js +1 -1
  89. package/dist/schema/local/wip.d.ts +73 -0
  90. package/dist/schema/local/wip.js +1 -1
  91. package/dist/schema/messenger/index.d.ts +5 -0
  92. package/dist/schema/messenger/index.js +1 -1
  93. package/dist/schema/operations.d.ts +101 -0
  94. package/dist/schema/operations.js +1 -1
  95. package/dist/schema/query/bi.js +1 -1
  96. package/dist/schema/query/index.d.ts +19 -3
  97. package/dist/schema/query/index.js +1 -1
  98. package/dist/schema/schema-version.js +1 -1
  99. package/dist/schema/workflow/index.d.ts +2 -0
  100. package/dist/schema/workflow/index.js +1 -1
  101. package/dist/schema-query-impl/index.js +1 -1
  102. package/dist/schemas/account_operation.output.json +26 -1
  103. package/dist/schemas/bridge_operation.output.json +26 -1
  104. package/dist/schemas/bridge_operation.schema.json +40 -0
  105. package/dist/schemas/guard2file.schema.json +8 -0
  106. package/dist/schemas/index.json +1 -1
  107. package/dist/schemas/keeper_operation.output.json +24 -1
  108. package/dist/schemas/local_history_operation.output.json +26 -1
  109. package/dist/schemas/local_info_operation.output.json +26 -1
  110. package/dist/schemas/local_mark_operation.output.json +26 -1
  111. package/dist/schemas/machineNode2file.schema.json +8 -0
  112. package/dist/schemas/messenger_operation.output.json +24 -1
  113. package/dist/schemas/messenger_operation.schema.json +2 -2
  114. package/dist/schemas/monitor_events.output.json +24 -1
  115. package/dist/schemas/monitor_subscription.output.json +24 -1
  116. package/dist/schemas/onchain_events.output.json +24 -1
  117. package/dist/schemas/onchain_operations.output.json +74 -3
  118. package/dist/schemas/onchain_operations.schema.json +3286 -821
  119. package/dist/schemas/onchain_operations_allocation.schema.json +12 -0
  120. package/dist/schemas/onchain_operations_arbitration.schema.json +18 -10
  121. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  122. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  123. package/dist/schemas/onchain_operations_gen_passport.schema.json +8 -0
  124. package/dist/schemas/onchain_operations_gen_proof.schema.json +8 -0
  125. package/dist/schemas/onchain_operations_guard.schema.json +2896 -596
  126. package/dist/schemas/onchain_operations_machine.schema.json +8 -0
  127. package/dist/schemas/onchain_operations_order.schema.json +10 -2
  128. package/dist/schemas/onchain_operations_payment.schema.json +8 -0
  129. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  130. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  131. package/dist/schemas/onchain_operations_progress.schema.json +8 -0
  132. package/dist/schemas/onchain_operations_proof.schema.json +8 -0
  133. package/dist/schemas/onchain_operations_repository.schema.json +14 -6
  134. package/dist/schemas/onchain_operations_reward.schema.json +8 -0
  135. package/dist/schemas/onchain_operations_service.schema.json +43 -10
  136. package/dist/schemas/onchain_operations_treasury.schema.json +8 -0
  137. package/dist/schemas/onchain_table_data.output.json +35 -12
  138. package/dist/schemas/query_toolkit.output.json +1179 -10
  139. package/dist/schemas/query_toolkit.schema.json +11 -11
  140. package/dist/schemas/wip_file.output.json +221 -0
  141. package/dist/schemas/wip_file.schema.json +125 -0
  142. package/dist/schemas/workflow_operation.schema.json +8 -0
  143. package/dist/tools/handlers/config.js +1 -1
  144. package/dist/tools/handlers/dispatch-expectations.js +1 -1
  145. package/dist/tools/handlers/dispatch-expectations.spec.d.ts +1 -0
  146. package/dist/tools/handlers/dispatch-expectations.spec.js +1 -0
  147. package/dist/tools/handlers/onchain.js +1 -1
  148. package/dist/tools/handlers/wip-upload.d.ts +22 -0
  149. package/dist/tools/handlers/wip-upload.js +1 -0
  150. package/dist/tools/handlers/wip.js +1 -1
  151. package/dist/tools/handlers/workflow.js +1 -1
  152. package/dist/tools/index.js +1 -1
  153. package/dist/tools/move-fn-index.gen.js +1 -1
  154. package/dist/tools/registry/files.js +1 -1
  155. package/dist/tools/wip-deploy-assist.js +1 -1
  156. package/package.json +2 -2
@@ -2378,7 +2378,7 @@
2378
2378
  "type": "string"
2379
2379
  }
2380
2380
  ],
2381
- "description": "Stock of the product or service"
2381
+ "description": "Current REMAINING stock of the product or service. Each order DECREMENTS it by the ordered quantity (a buy aborts when the remaining stock is lower than the ordered quantity). Writing this field SETS the remaining stock to the given value — it is NOT added to it. To top up one product's stock without resending the whole list, there is no per-item op in this tool; re-issue sales with op:\"set\" carrying the full list and the updated stock for that product."
2382
2382
  },
2383
2383
  "suspension": {
2384
2384
  "type": "boolean",
@@ -2390,7 +2390,7 @@
2390
2390
  },
2391
2391
  "wip_hash": {
2392
2392
  "type": "string",
2393
- "description": "SHA-256 hash (hex string) of the sale's WIP file, committed on-chain by the merchant. BUY RULE: if this is NON-EMPTY, the buyer MUST pass this exact value as wip_hash when creating an order (ServiceBuyItem.wip_hash) — NEVER use \"\". Pinning the on-chain hash prevents the merchant from replacing the WIP file (a legitimate update) between the buyer's view and order placement, ensuring 'what you see is what you get'. EMPTY means no hash was committed (TESTING ONLY, no delivery-integrity guarantee)."
2393
+ "description": "The 'meta.hash' field INSIDE the sale's WIP file (a content hash of the file's JSON payload), committed on-chain by the merchant. NOT the SHA-256 of the .wip file bytes — hashing the downloaded file (shasum -a 256) yields a DIFFERENT value and fails verification; use the hash embedded in the file's meta section (wip_file verify reports it). BUY RULE: if this is NON-EMPTY, the buyer MUST pass this exact value as wip_hash when creating an order (ServiceBuyItem.wip_hash) — NEVER use \"\". Pinning the on-chain hash prevents the merchant from replacing the WIP file (a legitimate update) between the buyer's view and order placement, ensuring 'what you see is what you get'. EMPTY means no hash was committed (TESTING ONLY, no delivery-integrity guarantee)."
2394
2394
  }
2395
2395
  },
2396
2396
  "required": [
@@ -4481,8 +4481,8 @@
4481
4481
  "FixedValue": {
4482
4482
  "type": "integer",
4483
4483
  "minimum": 0,
4484
- "maximum": 65535,
4485
- "description": "Fixed voting weight value"
4484
+ "maximum": 4294967295,
4485
+ "description": "Fixed voting weight value (u32)"
4486
4486
  }
4487
4487
  },
4488
4488
  "required": [
@@ -4492,7 +4492,7 @@
4492
4492
  "description": "Fixed voting weight"
4493
4493
  }
4494
4494
  ],
4495
- "description": "Voting weight"
4495
+ "description": "Voting weight — an OBJECT, never a bare number: {\"FixedValue\": <0-4294967295, u32>} = constant weight; {\"GuardIdentifier\": <u8, 0-255>} = the number the voter SUBMITS at vote time (looked up in the Guard's table slot) becomes their weight."
4496
4496
  }
4497
4497
  },
4498
4498
  "required": [
@@ -5692,7 +5692,7 @@
5692
5692
  "additionalProperties": false,
5693
5693
  "description": "Guard object that needs verification when writing policy"
5694
5694
  },
5695
- "description": "Guard object list that can be verified when writing data. REQUIRED (non-empty) when id_from is 0/None (chain abort 22); optional when id_from is Clock/Signer."
5695
+ "description": "Guard object list that can be verified when writing data. REQUIRED (non-empty) when id_from is 0/None (chain abort 22); optional when id_from is Clock/Signer. ⚠️ If EMPTY for a Clock/Signer policy, ANY account can write data to this policy — the Repository's Permission is NOT consulted for data_add/data_remove in that case (an open write log; intended only for deliberately public policies such as sensor logs). Attach guards if writes must be restricted."
5696
5696
  },
5697
5697
  "quote_guard": {
5698
5698
  "description": "Guard object ID that needs verification when referencing this policy data on-chain (e.g., verifying if user has paid subscription). If null, no verification is needed for on-chain references. The Guard must have empty 'relies' field and 'rep' field true.",
@@ -9254,7 +9254,7 @@
9254
9254
  },
9255
9255
  {}
9256
9256
  ],
9257
- "description": "Discount type. If rate(0), discount is based on proportion of product amount (e.g., 1000 means 10% discount); if fixed(1), discount is based on fixed value of product amount (e.g., 100 means 100 yuan discount)."
9257
+ "description": "Discount type. RATES (0): per-10000 off rate applied to the order total (e.g., off 1000 means 10% off); FIXED (1): fixed deduction from the order total in the Service token's smallest units."
9258
9258
  },
9259
9259
  "benchmark": {
9260
9260
  "anyOf": [
@@ -9273,7 +9273,7 @@
9273
9273
  "type": "null"
9274
9274
  }
9275
9275
  ],
9276
- "description": "Discount benchmark amount. If RATES, discount is based on proportion of this amount; if MINUS, discount is based on fixed value of this amount."
9276
+ "description": "Minimum order total for the discount to apply (smallest units) — the discount applies only when the order total is greater than or equal to this value. null means the discount never applies (a used coupon object is still consumed, with no effect on the total)."
9277
9277
  },
9278
9278
  "off": {
9279
9279
  "anyOf": [
@@ -9284,7 +9284,7 @@
9284
9284
  "type": "string"
9285
9285
  }
9286
9286
  ],
9287
- "description": "Discount value. If RATES, discount is based on proportion of product amount (e.g., 1000 means 10% discount); if MINUS, discount is based on fixed value of product amount (e.g., 100 means maximum 100 yuan discount)."
9287
+ "description": "Discount magnitude. If RATES, per-10000 off rate (e.g., 1000 means 10% off, 10000 means 100% off); if MINUS, fixed deduction from the order total in the Service token's smallest units."
9288
9288
  },
9289
9289
  "time_start": {
9290
9290
  "anyOf": [
@@ -21466,7 +21466,7 @@
21466
21466
  "type": "string"
21467
21467
  },
21468
21468
  "test_result": {
21469
- "description": "gen_passport static test result. Must pass before CREATE.",
21469
+ "description": "gen_passport static test result. status is read from the created Passport's on-chain result field; tx success alone never means the Guard passed.",
21470
21470
  "type": "object",
21471
21471
  "properties": {
21472
21472
  "status": {
@@ -21484,6 +21484,29 @@
21484
21484
  "passport_id": {
21485
21485
  "description": "Generated Passport ID (if pass)",
21486
21486
  "type": "string"
21487
+ },
21488
+ "guard_results": {
21489
+ "description": "Per-Guard evaluation result read from the Passport (docs#40: the pass/fail status comes from Passport.result, not transaction success)",
21490
+ "type": "array",
21491
+ "items": {
21492
+ "type": "object",
21493
+ "properties": {
21494
+ "guard": {
21495
+ "type": "string"
21496
+ },
21497
+ "result": {
21498
+ "type": "boolean"
21499
+ },
21500
+ "impack": {
21501
+ "type": "boolean"
21502
+ }
21503
+ },
21504
+ "required": [
21505
+ "guard",
21506
+ "result"
21507
+ ],
21508
+ "additionalProperties": false
21509
+ }
21487
21510
  }
21488
21511
  },
21489
21512
  "required": [
@@ -24430,6 +24453,1152 @@
24430
24453
  ],
24431
24454
  "additionalProperties": false,
24432
24455
  "description": "Returns U64. Counts the number of retained submissions within the specified forward operation."
24456
+ },
24457
+ {
24458
+ "type": "object",
24459
+ "properties": {
24460
+ "type": {
24461
+ "type": "string",
24462
+ "const": "query_repository_data_count_where"
24463
+ },
24464
+ "object": {
24465
+ "type": "object",
24466
+ "properties": {
24467
+ "identifier": {
24468
+ "type": "integer",
24469
+ "minimum": 0,
24470
+ "maximum": 255,
24471
+ "description": "Identifier (0-255) for data lookup in Guard table."
24472
+ }
24473
+ },
24474
+ "required": [
24475
+ "identifier"
24476
+ ],
24477
+ "additionalProperties": false,
24478
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
24479
+ },
24480
+ "key": {
24481
+ "type": "object",
24482
+ "properties": {
24483
+ "identifier": {
24484
+ "type": "integer",
24485
+ "minimum": 0,
24486
+ "maximum": 255,
24487
+ "description": "Identifier (0-255) for data lookup in Guard table."
24488
+ }
24489
+ },
24490
+ "required": [
24491
+ "identifier"
24492
+ ],
24493
+ "additionalProperties": false,
24494
+ "description": "Reference to the policy key (String type table entry) whose data table is scanned."
24495
+ },
24496
+ "ids": {
24497
+ "type": "object",
24498
+ "properties": {
24499
+ "identifier": {
24500
+ "type": "integer",
24501
+ "minimum": 0,
24502
+ "maximum": 255,
24503
+ "description": "Identifier (0-255) for data lookup in Guard table."
24504
+ }
24505
+ },
24506
+ "required": [
24507
+ "identifier"
24508
+ ],
24509
+ "additionalProperties": false,
24510
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
24511
+ },
24512
+ "where": {
24513
+ "oneOf": [
24514
+ {
24515
+ "type": "object",
24516
+ "properties": {
24517
+ "kind": {
24518
+ "type": "string",
24519
+ "const": "range"
24520
+ },
24521
+ "valueMin": {
24522
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
24523
+ "type": "string"
24524
+ },
24525
+ "valueMax": {
24526
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
24527
+ "type": "string"
24528
+ },
24529
+ "minInclusive": {
24530
+ "description": "Default true. false makes the lower bound exclusive.",
24531
+ "type": "boolean"
24532
+ },
24533
+ "maxInclusive": {
24534
+ "description": "Default true. false makes the upper bound exclusive.",
24535
+ "type": "boolean"
24536
+ }
24537
+ },
24538
+ "required": [
24539
+ "kind"
24540
+ ],
24541
+ "additionalProperties": false,
24542
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
24543
+ },
24544
+ {
24545
+ "type": "object",
24546
+ "properties": {
24547
+ "kind": {
24548
+ "type": "string",
24549
+ "const": "numEq"
24550
+ },
24551
+ "value": {
24552
+ "type": "string",
24553
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
24554
+ }
24555
+ },
24556
+ "required": [
24557
+ "kind",
24558
+ "value"
24559
+ ],
24560
+ "additionalProperties": false
24561
+ },
24562
+ {
24563
+ "type": "object",
24564
+ "properties": {
24565
+ "kind": {
24566
+ "type": "string",
24567
+ "const": "gt"
24568
+ },
24569
+ "value": {
24570
+ "type": "string",
24571
+ "description": "Greater than. Plain number string (U256 semantics)."
24572
+ }
24573
+ },
24574
+ "required": [
24575
+ "kind",
24576
+ "value"
24577
+ ],
24578
+ "additionalProperties": false
24579
+ },
24580
+ {
24581
+ "type": "object",
24582
+ "properties": {
24583
+ "kind": {
24584
+ "type": "string",
24585
+ "const": "gte"
24586
+ },
24587
+ "value": {
24588
+ "type": "string",
24589
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
24590
+ }
24591
+ },
24592
+ "required": [
24593
+ "kind",
24594
+ "value"
24595
+ ],
24596
+ "additionalProperties": false
24597
+ },
24598
+ {
24599
+ "type": "object",
24600
+ "properties": {
24601
+ "kind": {
24602
+ "type": "string",
24603
+ "const": "lt"
24604
+ },
24605
+ "value": {
24606
+ "type": "string",
24607
+ "description": "Less than. Plain number string (U256 semantics)."
24608
+ }
24609
+ },
24610
+ "required": [
24611
+ "kind",
24612
+ "value"
24613
+ ],
24614
+ "additionalProperties": false
24615
+ },
24616
+ {
24617
+ "type": "object",
24618
+ "properties": {
24619
+ "kind": {
24620
+ "type": "string",
24621
+ "const": "lte"
24622
+ },
24623
+ "value": {
24624
+ "type": "string",
24625
+ "description": "Less than or equal. Plain number string (U256 semantics)."
24626
+ }
24627
+ },
24628
+ "required": [
24629
+ "kind",
24630
+ "value"
24631
+ ],
24632
+ "additionalProperties": false
24633
+ },
24634
+ {
24635
+ "type": "object",
24636
+ "properties": {
24637
+ "kind": {
24638
+ "type": "string",
24639
+ "const": "addressEq"
24640
+ },
24641
+ "identifier": {
24642
+ "type": "integer",
24643
+ "minimum": 0,
24644
+ "maximum": 255,
24645
+ "description": "Identifier of the Address-type table entry to compare against."
24646
+ }
24647
+ },
24648
+ "required": [
24649
+ "kind",
24650
+ "identifier"
24651
+ ],
24652
+ "additionalProperties": false
24653
+ },
24654
+ {
24655
+ "type": "object",
24656
+ "properties": {
24657
+ "kind": {
24658
+ "type": "string",
24659
+ "const": "stringEq"
24660
+ },
24661
+ "value": {
24662
+ "type": "string",
24663
+ "description": "Exact string match (byte equality, UTF-8)."
24664
+ }
24665
+ },
24666
+ "required": [
24667
+ "kind",
24668
+ "value"
24669
+ ],
24670
+ "additionalProperties": false
24671
+ },
24672
+ {
24673
+ "type": "object",
24674
+ "properties": {
24675
+ "kind": {
24676
+ "type": "string",
24677
+ "const": "stringContains"
24678
+ },
24679
+ "value": {
24680
+ "type": "string",
24681
+ "description": "Substring match, case-sensitive."
24682
+ }
24683
+ },
24684
+ "required": [
24685
+ "kind",
24686
+ "value"
24687
+ ],
24688
+ "additionalProperties": false
24689
+ },
24690
+ {
24691
+ "type": "object",
24692
+ "properties": {
24693
+ "kind": {
24694
+ "type": "string",
24695
+ "const": "stringNoCaseContains"
24696
+ },
24697
+ "value": {
24698
+ "type": "string",
24699
+ "description": "Substring match, case-insensitive."
24700
+ }
24701
+ },
24702
+ "required": [
24703
+ "kind",
24704
+ "value"
24705
+ ],
24706
+ "additionalProperties": false
24707
+ },
24708
+ {
24709
+ "type": "object",
24710
+ "properties": {
24711
+ "kind": {
24712
+ "type": "string",
24713
+ "const": "boolEq"
24714
+ },
24715
+ "value": {
24716
+ "type": "boolean",
24717
+ "description": "Boolean equality."
24718
+ }
24719
+ },
24720
+ "required": [
24721
+ "kind",
24722
+ "value"
24723
+ ],
24724
+ "additionalProperties": false
24725
+ }
24726
+ ],
24727
+ "description": "Predicate filter applied to each candidate's data value."
24728
+ }
24729
+ },
24730
+ "required": [
24731
+ "type",
24732
+ "object",
24733
+ "key",
24734
+ "ids",
24735
+ "where"
24736
+ ],
24737
+ "additionalProperties": false,
24738
+ "description": "Returns U64. Counts candidates whose stored value matches the predicate. Numeric predicates: U256 semantics (pass plain number strings). Range is closed interval per side (minInclusive/maxInclusive default true); a missing side is unbounded. numEq/gt/gte/lt/lte are sugar over range. Entries whose value type does not match the predicate kind are skipped (never error), so the count only reflects matching entries."
24739
+ },
24740
+ {
24741
+ "type": "object",
24742
+ "properties": {
24743
+ "type": {
24744
+ "type": "string",
24745
+ "const": "query_repository_data_sum_where"
24746
+ },
24747
+ "object": {
24748
+ "type": "object",
24749
+ "properties": {
24750
+ "identifier": {
24751
+ "type": "integer",
24752
+ "minimum": 0,
24753
+ "maximum": 255,
24754
+ "description": "Identifier (0-255) for data lookup in Guard table."
24755
+ }
24756
+ },
24757
+ "required": [
24758
+ "identifier"
24759
+ ],
24760
+ "additionalProperties": false,
24761
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
24762
+ },
24763
+ "key": {
24764
+ "type": "object",
24765
+ "properties": {
24766
+ "identifier": {
24767
+ "type": "integer",
24768
+ "minimum": 0,
24769
+ "maximum": 255,
24770
+ "description": "Identifier (0-255) for data lookup in Guard table."
24771
+ }
24772
+ },
24773
+ "required": [
24774
+ "identifier"
24775
+ ],
24776
+ "additionalProperties": false,
24777
+ "description": "Reference to the policy key (String type table entry) whose data table is scanned."
24778
+ },
24779
+ "ids": {
24780
+ "type": "object",
24781
+ "properties": {
24782
+ "identifier": {
24783
+ "type": "integer",
24784
+ "minimum": 0,
24785
+ "maximum": 255,
24786
+ "description": "Identifier (0-255) for data lookup in Guard table."
24787
+ }
24788
+ },
24789
+ "required": [
24790
+ "identifier"
24791
+ ],
24792
+ "additionalProperties": false,
24793
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
24794
+ },
24795
+ "where": {
24796
+ "oneOf": [
24797
+ {
24798
+ "type": "object",
24799
+ "properties": {
24800
+ "kind": {
24801
+ "type": "string",
24802
+ "const": "range"
24803
+ },
24804
+ "valueMin": {
24805
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
24806
+ "type": "string"
24807
+ },
24808
+ "valueMax": {
24809
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
24810
+ "type": "string"
24811
+ },
24812
+ "minInclusive": {
24813
+ "description": "Default true. false makes the lower bound exclusive.",
24814
+ "type": "boolean"
24815
+ },
24816
+ "maxInclusive": {
24817
+ "description": "Default true. false makes the upper bound exclusive.",
24818
+ "type": "boolean"
24819
+ }
24820
+ },
24821
+ "required": [
24822
+ "kind"
24823
+ ],
24824
+ "additionalProperties": false,
24825
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
24826
+ },
24827
+ {
24828
+ "type": "object",
24829
+ "properties": {
24830
+ "kind": {
24831
+ "type": "string",
24832
+ "const": "numEq"
24833
+ },
24834
+ "value": {
24835
+ "type": "string",
24836
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
24837
+ }
24838
+ },
24839
+ "required": [
24840
+ "kind",
24841
+ "value"
24842
+ ],
24843
+ "additionalProperties": false
24844
+ },
24845
+ {
24846
+ "type": "object",
24847
+ "properties": {
24848
+ "kind": {
24849
+ "type": "string",
24850
+ "const": "gt"
24851
+ },
24852
+ "value": {
24853
+ "type": "string",
24854
+ "description": "Greater than. Plain number string (U256 semantics)."
24855
+ }
24856
+ },
24857
+ "required": [
24858
+ "kind",
24859
+ "value"
24860
+ ],
24861
+ "additionalProperties": false
24862
+ },
24863
+ {
24864
+ "type": "object",
24865
+ "properties": {
24866
+ "kind": {
24867
+ "type": "string",
24868
+ "const": "gte"
24869
+ },
24870
+ "value": {
24871
+ "type": "string",
24872
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
24873
+ }
24874
+ },
24875
+ "required": [
24876
+ "kind",
24877
+ "value"
24878
+ ],
24879
+ "additionalProperties": false
24880
+ },
24881
+ {
24882
+ "type": "object",
24883
+ "properties": {
24884
+ "kind": {
24885
+ "type": "string",
24886
+ "const": "lt"
24887
+ },
24888
+ "value": {
24889
+ "type": "string",
24890
+ "description": "Less than. Plain number string (U256 semantics)."
24891
+ }
24892
+ },
24893
+ "required": [
24894
+ "kind",
24895
+ "value"
24896
+ ],
24897
+ "additionalProperties": false
24898
+ },
24899
+ {
24900
+ "type": "object",
24901
+ "properties": {
24902
+ "kind": {
24903
+ "type": "string",
24904
+ "const": "lte"
24905
+ },
24906
+ "value": {
24907
+ "type": "string",
24908
+ "description": "Less than or equal. Plain number string (U256 semantics)."
24909
+ }
24910
+ },
24911
+ "required": [
24912
+ "kind",
24913
+ "value"
24914
+ ],
24915
+ "additionalProperties": false
24916
+ },
24917
+ {
24918
+ "type": "object",
24919
+ "properties": {
24920
+ "kind": {
24921
+ "type": "string",
24922
+ "const": "addressEq"
24923
+ },
24924
+ "identifier": {
24925
+ "type": "integer",
24926
+ "minimum": 0,
24927
+ "maximum": 255,
24928
+ "description": "Identifier of the Address-type table entry to compare against."
24929
+ }
24930
+ },
24931
+ "required": [
24932
+ "kind",
24933
+ "identifier"
24934
+ ],
24935
+ "additionalProperties": false
24936
+ },
24937
+ {
24938
+ "type": "object",
24939
+ "properties": {
24940
+ "kind": {
24941
+ "type": "string",
24942
+ "const": "stringEq"
24943
+ },
24944
+ "value": {
24945
+ "type": "string",
24946
+ "description": "Exact string match (byte equality, UTF-8)."
24947
+ }
24948
+ },
24949
+ "required": [
24950
+ "kind",
24951
+ "value"
24952
+ ],
24953
+ "additionalProperties": false
24954
+ },
24955
+ {
24956
+ "type": "object",
24957
+ "properties": {
24958
+ "kind": {
24959
+ "type": "string",
24960
+ "const": "stringContains"
24961
+ },
24962
+ "value": {
24963
+ "type": "string",
24964
+ "description": "Substring match, case-sensitive."
24965
+ }
24966
+ },
24967
+ "required": [
24968
+ "kind",
24969
+ "value"
24970
+ ],
24971
+ "additionalProperties": false
24972
+ },
24973
+ {
24974
+ "type": "object",
24975
+ "properties": {
24976
+ "kind": {
24977
+ "type": "string",
24978
+ "const": "stringNoCaseContains"
24979
+ },
24980
+ "value": {
24981
+ "type": "string",
24982
+ "description": "Substring match, case-insensitive."
24983
+ }
24984
+ },
24985
+ "required": [
24986
+ "kind",
24987
+ "value"
24988
+ ],
24989
+ "additionalProperties": false
24990
+ },
24991
+ {
24992
+ "type": "object",
24993
+ "properties": {
24994
+ "kind": {
24995
+ "type": "string",
24996
+ "const": "boolEq"
24997
+ },
24998
+ "value": {
24999
+ "type": "boolean",
25000
+ "description": "Boolean equality."
25001
+ }
25002
+ },
25003
+ "required": [
25004
+ "kind",
25005
+ "value"
25006
+ ],
25007
+ "additionalProperties": false
25008
+ }
25009
+ ],
25010
+ "description": "Predicate filter applied to each candidate's data value."
25011
+ }
25012
+ },
25013
+ "required": [
25014
+ "type",
25015
+ "object",
25016
+ "key",
25017
+ "ids",
25018
+ "where"
25019
+ ],
25020
+ "additionalProperties": false,
25021
+ "description": "Returns U256. Sums the numeric payloads of candidates whose stored value matches the predicate (on-chain checked add, overflow aborts). Non-numeric or mismatching entries contribute 0. Use logic_as_u256_* to compare the sum."
25022
+ },
25023
+ {
25024
+ "type": "object",
25025
+ "properties": {
25026
+ "type": {
25027
+ "type": "string",
25028
+ "const": "query_repository_data_find_where"
25029
+ },
25030
+ "object": {
25031
+ "type": "object",
25032
+ "properties": {
25033
+ "identifier": {
25034
+ "type": "integer",
25035
+ "minimum": 0,
25036
+ "maximum": 255,
25037
+ "description": "Identifier (0-255) for data lookup in Guard table."
25038
+ }
25039
+ },
25040
+ "required": [
25041
+ "identifier"
25042
+ ],
25043
+ "additionalProperties": false,
25044
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
25045
+ },
25046
+ "key": {
25047
+ "type": "object",
25048
+ "properties": {
25049
+ "identifier": {
25050
+ "type": "integer",
25051
+ "minimum": 0,
25052
+ "maximum": 255,
25053
+ "description": "Identifier (0-255) for data lookup in Guard table."
25054
+ }
25055
+ },
25056
+ "required": [
25057
+ "identifier"
25058
+ ],
25059
+ "additionalProperties": false,
25060
+ "description": "Reference to the policy key (String type table entry) whose data table is scanned."
25061
+ },
25062
+ "ids": {
25063
+ "type": "object",
25064
+ "properties": {
25065
+ "identifier": {
25066
+ "type": "integer",
25067
+ "minimum": 0,
25068
+ "maximum": 255,
25069
+ "description": "Identifier (0-255) for data lookup in Guard table."
25070
+ }
25071
+ },
25072
+ "required": [
25073
+ "identifier"
25074
+ ],
25075
+ "additionalProperties": false,
25076
+ "description": "Reference to the candidate ID list (VecAddress type table entry). Duplicates are deduped; max 100 candidates."
25077
+ },
25078
+ "where": {
25079
+ "oneOf": [
25080
+ {
25081
+ "type": "object",
25082
+ "properties": {
25083
+ "kind": {
25084
+ "type": "string",
25085
+ "const": "range"
25086
+ },
25087
+ "valueMin": {
25088
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
25089
+ "type": "string"
25090
+ },
25091
+ "valueMax": {
25092
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
25093
+ "type": "string"
25094
+ },
25095
+ "minInclusive": {
25096
+ "description": "Default true. false makes the lower bound exclusive.",
25097
+ "type": "boolean"
25098
+ },
25099
+ "maxInclusive": {
25100
+ "description": "Default true. false makes the upper bound exclusive.",
25101
+ "type": "boolean"
25102
+ }
25103
+ },
25104
+ "required": [
25105
+ "kind"
25106
+ ],
25107
+ "additionalProperties": false,
25108
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
25109
+ },
25110
+ {
25111
+ "type": "object",
25112
+ "properties": {
25113
+ "kind": {
25114
+ "type": "string",
25115
+ "const": "numEq"
25116
+ },
25117
+ "value": {
25118
+ "type": "string",
25119
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
25120
+ }
25121
+ },
25122
+ "required": [
25123
+ "kind",
25124
+ "value"
25125
+ ],
25126
+ "additionalProperties": false
25127
+ },
25128
+ {
25129
+ "type": "object",
25130
+ "properties": {
25131
+ "kind": {
25132
+ "type": "string",
25133
+ "const": "gt"
25134
+ },
25135
+ "value": {
25136
+ "type": "string",
25137
+ "description": "Greater than. Plain number string (U256 semantics)."
25138
+ }
25139
+ },
25140
+ "required": [
25141
+ "kind",
25142
+ "value"
25143
+ ],
25144
+ "additionalProperties": false
25145
+ },
25146
+ {
25147
+ "type": "object",
25148
+ "properties": {
25149
+ "kind": {
25150
+ "type": "string",
25151
+ "const": "gte"
25152
+ },
25153
+ "value": {
25154
+ "type": "string",
25155
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
25156
+ }
25157
+ },
25158
+ "required": [
25159
+ "kind",
25160
+ "value"
25161
+ ],
25162
+ "additionalProperties": false
25163
+ },
25164
+ {
25165
+ "type": "object",
25166
+ "properties": {
25167
+ "kind": {
25168
+ "type": "string",
25169
+ "const": "lt"
25170
+ },
25171
+ "value": {
25172
+ "type": "string",
25173
+ "description": "Less than. Plain number string (U256 semantics)."
25174
+ }
25175
+ },
25176
+ "required": [
25177
+ "kind",
25178
+ "value"
25179
+ ],
25180
+ "additionalProperties": false
25181
+ },
25182
+ {
25183
+ "type": "object",
25184
+ "properties": {
25185
+ "kind": {
25186
+ "type": "string",
25187
+ "const": "lte"
25188
+ },
25189
+ "value": {
25190
+ "type": "string",
25191
+ "description": "Less than or equal. Plain number string (U256 semantics)."
25192
+ }
25193
+ },
25194
+ "required": [
25195
+ "kind",
25196
+ "value"
25197
+ ],
25198
+ "additionalProperties": false
25199
+ },
25200
+ {
25201
+ "type": "object",
25202
+ "properties": {
25203
+ "kind": {
25204
+ "type": "string",
25205
+ "const": "addressEq"
25206
+ },
25207
+ "identifier": {
25208
+ "type": "integer",
25209
+ "minimum": 0,
25210
+ "maximum": 255,
25211
+ "description": "Identifier of the Address-type table entry to compare against."
25212
+ }
25213
+ },
25214
+ "required": [
25215
+ "kind",
25216
+ "identifier"
25217
+ ],
25218
+ "additionalProperties": false
25219
+ },
25220
+ {
25221
+ "type": "object",
25222
+ "properties": {
25223
+ "kind": {
25224
+ "type": "string",
25225
+ "const": "stringEq"
25226
+ },
25227
+ "value": {
25228
+ "type": "string",
25229
+ "description": "Exact string match (byte equality, UTF-8)."
25230
+ }
25231
+ },
25232
+ "required": [
25233
+ "kind",
25234
+ "value"
25235
+ ],
25236
+ "additionalProperties": false
25237
+ },
25238
+ {
25239
+ "type": "object",
25240
+ "properties": {
25241
+ "kind": {
25242
+ "type": "string",
25243
+ "const": "stringContains"
25244
+ },
25245
+ "value": {
25246
+ "type": "string",
25247
+ "description": "Substring match, case-sensitive."
25248
+ }
25249
+ },
25250
+ "required": [
25251
+ "kind",
25252
+ "value"
25253
+ ],
25254
+ "additionalProperties": false
25255
+ },
25256
+ {
25257
+ "type": "object",
25258
+ "properties": {
25259
+ "kind": {
25260
+ "type": "string",
25261
+ "const": "stringNoCaseContains"
25262
+ },
25263
+ "value": {
25264
+ "type": "string",
25265
+ "description": "Substring match, case-insensitive."
25266
+ }
25267
+ },
25268
+ "required": [
25269
+ "kind",
25270
+ "value"
25271
+ ],
25272
+ "additionalProperties": false
25273
+ },
25274
+ {
25275
+ "type": "object",
25276
+ "properties": {
25277
+ "kind": {
25278
+ "type": "string",
25279
+ "const": "boolEq"
25280
+ },
25281
+ "value": {
25282
+ "type": "boolean",
25283
+ "description": "Boolean equality."
25284
+ }
25285
+ },
25286
+ "required": [
25287
+ "kind",
25288
+ "value"
25289
+ ],
25290
+ "additionalProperties": false
25291
+ }
25292
+ ],
25293
+ "description": "Predicate filter applied to each candidate's data value."
25294
+ }
25295
+ },
25296
+ "required": [
25297
+ "type",
25298
+ "object",
25299
+ "key",
25300
+ "ids",
25301
+ "where"
25302
+ ],
25303
+ "additionalProperties": false,
25304
+ "description": "Returns VecAddress. Lists the IDs of ALL matching candidates in candidate order. Compose: vec_length + logic_as_u256_greater_than_or_equal (existence/threshold), vec_indexof_address (first/last position), vec_contains_address (membership)."
25305
+ },
25306
+ {
25307
+ "type": "object",
25308
+ "properties": {
25309
+ "type": {
25310
+ "type": "string",
25311
+ "const": "query_repository_data_keys_where"
25312
+ },
25313
+ "object": {
25314
+ "type": "object",
25315
+ "properties": {
25316
+ "identifier": {
25317
+ "type": "integer",
25318
+ "minimum": 0,
25319
+ "maximum": 255,
25320
+ "description": "Identifier (0-255) for data lookup in Guard table."
25321
+ }
25322
+ },
25323
+ "required": [
25324
+ "identifier"
25325
+ ],
25326
+ "additionalProperties": false,
25327
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
25328
+ },
25329
+ "id": {
25330
+ "type": "object",
25331
+ "properties": {
25332
+ "identifier": {
25333
+ "type": "integer",
25334
+ "minimum": 0,
25335
+ "maximum": 255,
25336
+ "description": "Identifier (0-255) for data lookup in Guard table."
25337
+ }
25338
+ },
25339
+ "required": [
25340
+ "identifier"
25341
+ ],
25342
+ "additionalProperties": false,
25343
+ "description": "Reference to the single candidate ID (Address type table entry) to probe across policies."
25344
+ },
25345
+ "where": {
25346
+ "oneOf": [
25347
+ {
25348
+ "type": "object",
25349
+ "properties": {
25350
+ "kind": {
25351
+ "type": "string",
25352
+ "const": "range"
25353
+ },
25354
+ "valueMin": {
25355
+ "description": "Optional lower bound (inclusive unless minInclusive=false). Plain number string (U256 semantics).",
25356
+ "type": "string"
25357
+ },
25358
+ "valueMax": {
25359
+ "description": "Optional upper bound (inclusive unless maxInclusive=false). Plain number string (U256 semantics).",
25360
+ "type": "string"
25361
+ },
25362
+ "minInclusive": {
25363
+ "description": "Default true. false makes the lower bound exclusive.",
25364
+ "type": "boolean"
25365
+ },
25366
+ "maxInclusive": {
25367
+ "description": "Default true. false makes the upper bound exclusive.",
25368
+ "type": "boolean"
25369
+ }
25370
+ },
25371
+ "required": [
25372
+ "kind"
25373
+ ],
25374
+ "additionalProperties": false,
25375
+ "description": "Numeric closed/open range. min=max inclusive is an equality match. At least one bound required."
25376
+ },
25377
+ {
25378
+ "type": "object",
25379
+ "properties": {
25380
+ "kind": {
25381
+ "type": "string",
25382
+ "const": "numEq"
25383
+ },
25384
+ "value": {
25385
+ "type": "string",
25386
+ "description": "Exact numeric match. Plain number string (U256 semantics)."
25387
+ }
25388
+ },
25389
+ "required": [
25390
+ "kind",
25391
+ "value"
25392
+ ],
25393
+ "additionalProperties": false
25394
+ },
25395
+ {
25396
+ "type": "object",
25397
+ "properties": {
25398
+ "kind": {
25399
+ "type": "string",
25400
+ "const": "gt"
25401
+ },
25402
+ "value": {
25403
+ "type": "string",
25404
+ "description": "Greater than. Plain number string (U256 semantics)."
25405
+ }
25406
+ },
25407
+ "required": [
25408
+ "kind",
25409
+ "value"
25410
+ ],
25411
+ "additionalProperties": false
25412
+ },
25413
+ {
25414
+ "type": "object",
25415
+ "properties": {
25416
+ "kind": {
25417
+ "type": "string",
25418
+ "const": "gte"
25419
+ },
25420
+ "value": {
25421
+ "type": "string",
25422
+ "description": "Greater than or equal. Plain number string (U256 semantics)."
25423
+ }
25424
+ },
25425
+ "required": [
25426
+ "kind",
25427
+ "value"
25428
+ ],
25429
+ "additionalProperties": false
25430
+ },
25431
+ {
25432
+ "type": "object",
25433
+ "properties": {
25434
+ "kind": {
25435
+ "type": "string",
25436
+ "const": "lt"
25437
+ },
25438
+ "value": {
25439
+ "type": "string",
25440
+ "description": "Less than. Plain number string (U256 semantics)."
25441
+ }
25442
+ },
25443
+ "required": [
25444
+ "kind",
25445
+ "value"
25446
+ ],
25447
+ "additionalProperties": false
25448
+ },
25449
+ {
25450
+ "type": "object",
25451
+ "properties": {
25452
+ "kind": {
25453
+ "type": "string",
25454
+ "const": "lte"
25455
+ },
25456
+ "value": {
25457
+ "type": "string",
25458
+ "description": "Less than or equal. Plain number string (U256 semantics)."
25459
+ }
25460
+ },
25461
+ "required": [
25462
+ "kind",
25463
+ "value"
25464
+ ],
25465
+ "additionalProperties": false
25466
+ },
25467
+ {
25468
+ "type": "object",
25469
+ "properties": {
25470
+ "kind": {
25471
+ "type": "string",
25472
+ "const": "addressEq"
25473
+ },
25474
+ "identifier": {
25475
+ "type": "integer",
25476
+ "minimum": 0,
25477
+ "maximum": 255,
25478
+ "description": "Identifier of the Address-type table entry to compare against."
25479
+ }
25480
+ },
25481
+ "required": [
25482
+ "kind",
25483
+ "identifier"
25484
+ ],
25485
+ "additionalProperties": false
25486
+ },
25487
+ {
25488
+ "type": "object",
25489
+ "properties": {
25490
+ "kind": {
25491
+ "type": "string",
25492
+ "const": "stringEq"
25493
+ },
25494
+ "value": {
25495
+ "type": "string",
25496
+ "description": "Exact string match (byte equality, UTF-8)."
25497
+ }
25498
+ },
25499
+ "required": [
25500
+ "kind",
25501
+ "value"
25502
+ ],
25503
+ "additionalProperties": false
25504
+ },
25505
+ {
25506
+ "type": "object",
25507
+ "properties": {
25508
+ "kind": {
25509
+ "type": "string",
25510
+ "const": "stringContains"
25511
+ },
25512
+ "value": {
25513
+ "type": "string",
25514
+ "description": "Substring match, case-sensitive."
25515
+ }
25516
+ },
25517
+ "required": [
25518
+ "kind",
25519
+ "value"
25520
+ ],
25521
+ "additionalProperties": false
25522
+ },
25523
+ {
25524
+ "type": "object",
25525
+ "properties": {
25526
+ "kind": {
25527
+ "type": "string",
25528
+ "const": "stringNoCaseContains"
25529
+ },
25530
+ "value": {
25531
+ "type": "string",
25532
+ "description": "Substring match, case-insensitive."
25533
+ }
25534
+ },
25535
+ "required": [
25536
+ "kind",
25537
+ "value"
25538
+ ],
25539
+ "additionalProperties": false
25540
+ },
25541
+ {
25542
+ "type": "object",
25543
+ "properties": {
25544
+ "kind": {
25545
+ "type": "string",
25546
+ "const": "boolEq"
25547
+ },
25548
+ "value": {
25549
+ "type": "boolean",
25550
+ "description": "Boolean equality."
25551
+ }
25552
+ },
25553
+ "required": [
25554
+ "kind",
25555
+ "value"
25556
+ ],
25557
+ "additionalProperties": false
25558
+ }
25559
+ ],
25560
+ "description": "Predicate filter applied to the value stored under each policy key for this ID."
25561
+ }
25562
+ },
25563
+ "required": [
25564
+ "type",
25565
+ "object",
25566
+ "id",
25567
+ "where"
25568
+ ],
25569
+ "additionalProperties": false,
25570
+ "description": "Returns VecString. Reverse lookup: all policy keys whose stored value for the given ID matches the predicate (scans the policy schema and probes each key). Compose: vec_length (how many keys match), vec_indexof_string + logic_as_u256_equal (does a specific key match), vec_contains_string (specific key membership)."
25571
+ },
25572
+ {
25573
+ "type": "object",
25574
+ "properties": {
25575
+ "type": {
25576
+ "type": "string",
25577
+ "const": "query_repository_policies_keys"
25578
+ },
25579
+ "object": {
25580
+ "type": "object",
25581
+ "properties": {
25582
+ "identifier": {
25583
+ "type": "integer",
25584
+ "minimum": 0,
25585
+ "maximum": 255,
25586
+ "description": "Identifier (0-255) for data lookup in Guard table."
25587
+ }
25588
+ },
25589
+ "required": [
25590
+ "identifier"
25591
+ ],
25592
+ "additionalProperties": false,
25593
+ "description": "Reference to the Repository object in the Guard table (must be Address type)."
25594
+ }
25595
+ },
25596
+ "required": [
25597
+ "type",
25598
+ "object"
25599
+ ],
25600
+ "additionalProperties": false,
25601
+ "description": "Returns VecString. Lists ALL policy key names of the Repository (max 50). Use vec_length to bound per-key composite queries or vec_contains_string to assert a key exists."
24433
25602
  }
24434
25603
  ]
24435
25604
  }