@wowok/agent-mcp 2.3.16 → 2.3.18

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 (106) hide show
  1. package/dist/customer/index.d.ts +9 -0
  2. package/dist/customer/index.js +9 -0
  3. package/dist/customer/industry-risks.d.ts +4 -0
  4. package/dist/customer/industry-risks.js +14 -0
  5. package/dist/customer/user-preferences.d.ts +3 -0
  6. package/dist/customer/user-preferences.js +9 -0
  7. package/dist/experience/realtime-feedback.js +17 -0
  8. package/dist/index.js +360 -273
  9. package/dist/knowledge/acquisition-flywheel.d.ts +3 -0
  10. package/dist/knowledge/acquisition-flywheel.js +9 -0
  11. package/dist/knowledge/guard-ledger.d.ts +19 -0
  12. package/dist/knowledge/guard-ledger.js +219 -0
  13. package/dist/knowledge/guard-puzzle.d.ts +93 -0
  14. package/dist/knowledge/guard-puzzle.js +278 -0
  15. package/dist/knowledge/guard-risk.d.ts +60 -0
  16. package/dist/knowledge/guard-risk.js +474 -0
  17. package/dist/knowledge/guard-translation.d.ts +46 -0
  18. package/dist/knowledge/guard-translation.js +487 -0
  19. package/dist/knowledge/index.d.ts +13 -0
  20. package/dist/knowledge/index.js +13 -0
  21. package/dist/knowledge/industry-registry.d.ts +1 -2
  22. package/dist/knowledge/industry-registry.js +23 -3
  23. package/dist/knowledge/safety-rules.js +61 -0
  24. package/dist/knowledge/tool-constraints.js +12 -22
  25. package/dist/safety/confirm-gate.d.ts +4 -2
  26. package/dist/safety/confirm-gate.js +48 -4
  27. package/dist/schema/call/allocation.d.ts +24 -14
  28. package/dist/schema/call/arbitration.d.ts +142 -132
  29. package/dist/schema/call/base.d.ts +901 -43
  30. package/dist/schema/call/base.js +66 -2
  31. package/dist/schema/call/bridge-handler.js +15 -2
  32. package/dist/schema/call/bridge.d.ts +769 -1
  33. package/dist/schema/call/bridge.js +37 -0
  34. package/dist/schema/call/contact.d.ts +10 -0
  35. package/dist/schema/call/demand.d.ts +10 -0
  36. package/dist/schema/call/guard.d.ts +76 -46
  37. package/dist/schema/call/handler.js +46 -14
  38. package/dist/schema/call/machine.d.ts +158 -138
  39. package/dist/schema/call/order.d.ts +10 -0
  40. package/dist/schema/call/payment.d.ts +10 -0
  41. package/dist/schema/call/permission.d.ts +232 -222
  42. package/dist/schema/call/personal.d.ts +10 -0
  43. package/dist/schema/call/progress.d.ts +10 -0
  44. package/dist/schema/call/proof.d.ts +20 -0
  45. package/dist/schema/call/repository.d.ts +32 -22
  46. package/dist/schema/call/reward.d.ts +10 -0
  47. package/dist/schema/call/semantic.d.ts +9 -2
  48. package/dist/schema/call/semantic.js +409 -21
  49. package/dist/schema/call/service.d.ts +20 -10
  50. package/dist/schema/call/treasury.d.ts +10 -0
  51. package/dist/schema/config/index.d.ts +18 -0
  52. package/dist/schema/config/index.js +17 -0
  53. package/dist/schema/index.d.ts +6 -0
  54. package/dist/schema/index.js +5 -0
  55. package/dist/schema/local/index.d.ts +9 -9
  56. package/dist/schema/local/index.js +9 -0
  57. package/dist/schema/messenger/index.d.ts +350 -29
  58. package/dist/schema/messenger/index.js +17 -17
  59. package/dist/schema/operations.d.ts +1667 -545
  60. package/dist/schema/operations.js +91 -96
  61. package/dist/schema/project/index.d.ts +21 -0
  62. package/dist/schema/project/index.js +32 -0
  63. package/dist/schema/query/index.d.ts +1074 -168
  64. package/dist/schema/query/index.js +8 -8
  65. package/dist/schema/schema-query/index.d.ts +33 -0
  66. package/dist/schema/schema-query/index.js +36 -0
  67. package/dist/schema/schema-version.d.ts +25 -0
  68. package/dist/schema/schema-version.js +76 -0
  69. package/dist/schema/trust/index.d.ts +407 -0
  70. package/dist/schema/trust/index.js +113 -0
  71. package/dist/schemas/bridge_operation.output.json +224 -0
  72. package/dist/schemas/bridge_operation.schema.json +67 -8
  73. package/dist/schemas/config_operation.output.json +18 -0
  74. package/dist/schemas/config_operation.schema.json +34 -0
  75. package/dist/schemas/guard-node-schema.json +82 -0
  76. package/dist/schemas/guard2file.schema.json +8 -0
  77. package/dist/schemas/index.json +19 -1
  78. package/dist/schemas/machineNode2file.schema.json +8 -0
  79. package/dist/schemas/messenger_operation.output.json +224 -0
  80. package/dist/schemas/onchain_events.output.json +718 -0
  81. package/dist/schemas/onchain_operations.output.json +277 -2
  82. package/dist/schemas/onchain_operations.schema.json +19 -16
  83. package/dist/schemas/onchain_operations_allocation.schema.json +8 -0
  84. package/dist/schemas/onchain_operations_arbitration.schema.json +8 -0
  85. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  86. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  87. package/dist/schemas/onchain_operations_gen_passport.schema.json +16 -0
  88. package/dist/schemas/onchain_operations_guard.schema.json +11 -16
  89. package/dist/schemas/onchain_operations_machine.schema.json +8 -0
  90. package/dist/schemas/onchain_operations_order.schema.json +8 -0
  91. package/dist/schemas/onchain_operations_payment.schema.json +8 -0
  92. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  93. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  94. package/dist/schemas/onchain_operations_progress.schema.json +8 -0
  95. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  96. package/dist/schemas/onchain_operations_reward.schema.json +8 -0
  97. package/dist/schemas/onchain_operations_service.schema.json +8 -0
  98. package/dist/schemas/onchain_operations_treasury.schema.json +8 -0
  99. package/dist/schemas/onchain_table_data.output.json +718 -0
  100. package/dist/schemas/project_operation.output.json +18 -0
  101. package/dist/schemas/project_operation.schema.json +42 -0
  102. package/dist/schemas/query_toolkit.schema.json +360 -368
  103. package/dist/schemas/schema_query.schema.json +6 -3
  104. package/dist/schemas/trust_score.output.json +327 -0
  105. package/dist/schemas/trust_score.schema.json +46 -0
  106. package/package.json +2 -2
@@ -1612,13 +1612,18 @@
1612
1612
  "permission_denied",
1613
1613
  "immutable_violation",
1614
1614
  "network_error",
1615
+ "rate_limit",
1616
+ "gas_exceeded",
1617
+ "bcs_error",
1618
+ "signature_error",
1619
+ "config_error",
1615
1620
  "unknown"
1616
1621
  ],
1617
- "description": "Error classification for programmatic recovery. Constraint: enum of 9 values. Relation: drives Recover Loop strategy selection. Example: 'insufficient_balance'"
1622
+ "description": "Error classification for programmatic recovery. Constraint: enum of 14 values. Relation: drives Recover Loop strategy selection. Example: 'insufficient_balance'"
1618
1623
  },
1619
1624
  "retryable": {
1620
1625
  "type": "boolean",
1621
- "description": "Whether the same call can be retried as-is. Constraint: true only for network_error and insufficient_balance. Example: true"
1626
+ "description": "Whether the same call can be retried as-is. Constraint: true for network_error, rate_limit, gas_exceeded, and insufficient_balance. Example: true"
1622
1627
  },
1623
1628
  "recovery_hint": {
1624
1629
  "type": "string",
@@ -2378,6 +2383,230 @@
2378
2383
  ],
2379
2384
  "additionalProperties": false,
2380
2385
  "description": "Phase 4 industry evolution context (populated when industry_evolution service is enabled). Provides AI with industry health signals and evolution advice."
2386
+ },
2387
+ "guard_advice": {
2388
+ "type": "object",
2389
+ "properties": {
2390
+ "current_round": {
2391
+ "type": "string",
2392
+ "enum": [
2393
+ "R1",
2394
+ "R2",
2395
+ "R3",
2396
+ "R4",
2397
+ "R5",
2398
+ "R6",
2399
+ "R7",
2400
+ "R8",
2401
+ "R9",
2402
+ "R10"
2403
+ ],
2404
+ "description": "Current R1-R10 dialogue round. R1=intent, R2=table, R3=tree, R4=rely, R5=binding, R6=review, R7=CREATE, R8=test, R9=bind, R10=verify. Example: 'R3'"
2405
+ },
2406
+ "puzzle_status": {
2407
+ "type": "object",
2408
+ "properties": {
2409
+ "intent": {
2410
+ "type": "boolean",
2411
+ "description": "Intent dimension complete (action + rule + failure conditions)"
2412
+ },
2413
+ "binding": {
2414
+ "type": "boolean",
2415
+ "description": "Binding dimension complete (host object + field + circular ref)"
2416
+ },
2417
+ "data": {
2418
+ "type": "boolean",
2419
+ "description": "Data dimension complete (table entries + witnesses)"
2420
+ },
2421
+ "query": {
2422
+ "type": "boolean",
2423
+ "description": "Query dimension complete (query instructions if needed)"
2424
+ },
2425
+ "logic": {
2426
+ "type": "boolean",
2427
+ "description": "Logic dimension complete (root node returns Bool)"
2428
+ },
2429
+ "constraints": {
2430
+ "type": "boolean",
2431
+ "description": "Constraints dimension complete (10 Pitfalls checked)"
2432
+ }
2433
+ },
2434
+ "required": [
2435
+ "intent",
2436
+ "binding",
2437
+ "data",
2438
+ "query",
2439
+ "logic",
2440
+ "constraints"
2441
+ ],
2442
+ "additionalProperties": false,
2443
+ "description": "Information puzzle completeness (6 dimensions). Missing dimensions need user input before CREATE."
2444
+ },
2445
+ "matched_scene": {
2446
+ "type": "string",
2447
+ "description": "Matched Guard scene id from the 8 binding scenarios ledger. Example: 'machine_forward_guard'"
2448
+ },
2449
+ "scene_description": {
2450
+ "type": "string",
2451
+ "description": "Human-readable scene description. Example: '工作流节点推进验证(Forward.guard)'"
2452
+ },
2453
+ "scene_constraints": {
2454
+ "type": "array",
2455
+ "items": {
2456
+ "type": "string"
2457
+ },
2458
+ "description": "Special constraints for the matched scene. Example: ['Machine 发布后 Forward.guard 不可修改']"
2459
+ },
2460
+ "suggested_patterns": {
2461
+ "type": "array",
2462
+ "items": {
2463
+ "type": "string"
2464
+ },
2465
+ "description": "Suggested Guard patterns based on user intent. Example: ['时间锁','进度状态检查']"
2466
+ },
2467
+ "available_queries": {
2468
+ "type": "array",
2469
+ "items": {
2470
+ "type": "object",
2471
+ "properties": {
2472
+ "id": {
2473
+ "type": "integer",
2474
+ "description": "Query instruction ID. Example: 1253"
2475
+ },
2476
+ "name": {
2477
+ "type": "string",
2478
+ "description": "Query instruction name. Example: 'progress.current_node_name'"
2479
+ },
2480
+ "objectType": {
2481
+ "type": "string",
2482
+ "description": "Target object type. Example: 'Progress'"
2483
+ },
2484
+ "returnType": {
2485
+ "type": "string",
2486
+ "description": "Return value type. Example: 'String'"
2487
+ },
2488
+ "description": {
2489
+ "type": "string",
2490
+ "description": "Query description"
2491
+ }
2492
+ },
2493
+ "required": [
2494
+ "id",
2495
+ "name",
2496
+ "objectType",
2497
+ "returnType"
2498
+ ],
2499
+ "additionalProperties": false,
2500
+ "description": "A Guard query instruction available for the current context (subset of GUARDQUERY 375 entries)."
2501
+ },
2502
+ "description": "Available query instructions for the current context (subset of 375 GUARDQUERY entries)"
2503
+ },
2504
+ "risk_warnings": {
2505
+ "type": "array",
2506
+ "items": {
2507
+ "type": "string"
2508
+ },
2509
+ "description": "Risk warnings for the current Guard design. Example: ['Guard 创建后不可修改','时间锁测试用 1000ms']"
2510
+ },
2511
+ "pending_questions": {
2512
+ "type": "array",
2513
+ "items": {
2514
+ "type": "string"
2515
+ },
2516
+ "description": "Questions for the user to complete the puzzle. Example: ['Guard 将绑定到哪个 Host Object?']"
2517
+ },
2518
+ "confirmation_text": {
2519
+ "type": "string",
2520
+ "description": "Structured semantic confirmation text for user review (generated when puzzle is complete). User must explicitly confirm before CREATE."
2521
+ },
2522
+ "test_result": {
2523
+ "type": "object",
2524
+ "properties": {
2525
+ "status": {
2526
+ "type": "string",
2527
+ "enum": [
2528
+ "pass",
2529
+ "fail",
2530
+ "not_tested"
2531
+ ]
2532
+ },
2533
+ "failure_node": {
2534
+ "type": "string",
2535
+ "description": "Node that caused failure (if fail)"
2536
+ },
2537
+ "passport_id": {
2538
+ "type": "string",
2539
+ "description": "Generated Passport ID (if pass)"
2540
+ }
2541
+ },
2542
+ "required": [
2543
+ "status"
2544
+ ],
2545
+ "additionalProperties": false,
2546
+ "description": "gen_passport static test result. Must pass before CREATE."
2547
+ },
2548
+ "risk_assessment": {
2549
+ "type": "object",
2550
+ "properties": {
2551
+ "overall_risk": {
2552
+ "type": "string",
2553
+ "enum": [
2554
+ "critical",
2555
+ "high",
2556
+ "medium",
2557
+ "low",
2558
+ "info"
2559
+ ],
2560
+ "description": "Overall risk level (highest from all risks)"
2561
+ },
2562
+ "risk_count": {
2563
+ "type": "integer",
2564
+ "description": "Total number of detected risks"
2565
+ },
2566
+ "critical_count": {
2567
+ "type": "integer",
2568
+ "description": "Number of critical risks"
2569
+ },
2570
+ "high_count": {
2571
+ "type": "integer",
2572
+ "description": "Number of high risks"
2573
+ },
2574
+ "needs_human_review": {
2575
+ "type": "boolean",
2576
+ "description": "Whether human review is required (critical or 2+ high risks)"
2577
+ },
2578
+ "top_risks": {
2579
+ "type": "array",
2580
+ "items": {
2581
+ "type": "string"
2582
+ },
2583
+ "description": "Top risk titles (critical and high, max 3)"
2584
+ },
2585
+ "stakeholder_advice": {
2586
+ "type": "object",
2587
+ "additionalProperties": {
2588
+ "type": "array",
2589
+ "items": {
2590
+ "type": "string"
2591
+ }
2592
+ },
2593
+ "description": "Per-stakeholder advice. Key=stakeholder (customer/provider/arbitrator/claimant), value=advice list"
2594
+ }
2595
+ },
2596
+ "required": [
2597
+ "overall_risk",
2598
+ "risk_count",
2599
+ "critical_count",
2600
+ "high_count",
2601
+ "needs_human_review",
2602
+ "top_risks"
2603
+ ],
2604
+ "additionalProperties": false,
2605
+ "description": "Business-layer risk assessment (game theory, data source trust, logic gaps). Populated during Guard design to warn about business risks beyond syntax."
2606
+ }
2607
+ },
2608
+ "additionalProperties": false,
2609
+ "description": "Phase 5 Guard capability advice (populated when user intent involves Guard). Provides puzzle status, scene matching, suggested patterns, available queries, risk warnings, and confirmation text. AI uses this to guide Guard design dialogue (R1-R10)."
2381
2610
  }
2382
2611
  },
2383
2612
  "required": [
@@ -2531,6 +2760,52 @@
2531
2760
  ],
2532
2761
  "additionalProperties": false,
2533
2762
  "description": "L4 Harness report (Verify + Recover). Present only when the Harness is injected and an Expected Result was declared for this operation. Relation: produced by handler.ts calling harness.verify() and harness.recover(). Example: {verify:{status:'fail', mismatches:[...]}, recovery:{strategy:'recreate'}}"
2763
+ },
2764
+ "schema_warning": {
2765
+ "type": "object",
2766
+ "properties": {
2767
+ "compatible": {
2768
+ "type": "boolean",
2769
+ "description": "Whether the client schema version is compatible with the server."
2770
+ },
2771
+ "warnings": {
2772
+ "type": "array",
2773
+ "items": {
2774
+ "type": "string"
2775
+ },
2776
+ "description": "Schema compatibility warnings or errors."
2777
+ },
2778
+ "client_version": {
2779
+ "type": "string",
2780
+ "description": "The client schema version that was checked."
2781
+ },
2782
+ "server_versions": {
2783
+ "type": "object",
2784
+ "properties": {
2785
+ "sdk": {
2786
+ "type": "string",
2787
+ "description": "Server-side SDK schema version."
2788
+ },
2789
+ "mcp": {
2790
+ "type": "string",
2791
+ "description": "Server-side MCP tool schema version."
2792
+ }
2793
+ },
2794
+ "required": [
2795
+ "sdk",
2796
+ "mcp"
2797
+ ],
2798
+ "additionalProperties": false,
2799
+ "description": "Server-side schema versions."
2800
+ }
2801
+ },
2802
+ "required": [
2803
+ "compatible",
2804
+ "warnings",
2805
+ "server_versions"
2806
+ ],
2807
+ "additionalProperties": false,
2808
+ "description": "Schema compatibility warning. Present only when client_schema_version is provided in env and a mismatch is detected."
2534
2809
  }
2535
2810
  },
2536
2811
  "required": [
@@ -342,24 +342,11 @@
342
342
  }
343
343
  },
344
344
  "root": {
345
- "description": "Root definition: either a direct node tree (type='node') or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content. For the node structure, see guard-node-schema.json for complete GuardNode definitions.",
345
+ "description": "Root definition: either a direct GuardNode computation tree (no type wrapper) or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content. For the node structure, see guard-node-schema.json for complete GuardNode definitions. IMPORTANT: The root node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.)",
346
346
  "oneOf": [
347
347
  {
348
- "type": "object",
349
- "description": "Direct node tree - the node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.)",
350
- "properties": {
351
- "type": {
352
- "const": "node"
353
- },
354
- "node": {
355
- "$ref": "guard-node-schema.json",
356
- "description": "Guard computational tree root node. MUST return a Bool value (pass/fail). See guard-node-schema.json for complete node type definitions including: identifier, query, logic_*, calc_*, convert_*, vec_*, query_reward_record_*, query_progress_history_*, etc."
357
- }
358
- },
359
- "required": [
360
- "type",
361
- "node"
362
- ]
348
+ "$ref": "guard-node-schema.json",
349
+ "description": "Direct GuardNode computation tree - the node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.). No 'type: node' wrapper needed."
363
350
  },
364
351
  {
365
352
  "type": "object",
@@ -606,6 +593,14 @@
606
593
  "project": {
607
594
  "type": "string",
608
595
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
596
+ },
597
+ "client_schema_version": {
598
+ "type": "string",
599
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
600
+ },
601
+ "schema_strict_mode": {
602
+ "type": "boolean",
603
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
609
604
  }
610
605
  },
611
606
  "additionalProperties": false,
@@ -8712,6 +8707,14 @@
8712
8707
  "project": {
8713
8708
  "type": "string",
8714
8709
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
8710
+ },
8711
+ "client_schema_version": {
8712
+ "type": "string",
8713
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
8714
+ },
8715
+ "schema_strict_mode": {
8716
+ "type": "boolean",
8717
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
8715
8718
  }
8716
8719
  },
8717
8720
  "additionalProperties": false,
@@ -413,6 +413,14 @@
413
413
  "project": {
414
414
  "type": "string",
415
415
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
416
+ },
417
+ "client_schema_version": {
418
+ "type": "string",
419
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
420
+ },
421
+ "schema_strict_mode": {
422
+ "type": "boolean",
423
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
416
424
  }
417
425
  },
418
426
  "additionalProperties": false,
@@ -665,6 +665,14 @@
665
665
  "project": {
666
666
  "type": "string",
667
667
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
668
+ },
669
+ "client_schema_version": {
670
+ "type": "string",
671
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
672
+ },
673
+ "schema_strict_mode": {
674
+ "type": "boolean",
675
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
668
676
  }
669
677
  },
670
678
  "additionalProperties": false,
@@ -352,6 +352,14 @@
352
352
  "project": {
353
353
  "type": "string",
354
354
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
355
+ },
356
+ "client_schema_version": {
357
+ "type": "string",
358
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
359
+ },
360
+ "schema_strict_mode": {
361
+ "type": "boolean",
362
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
355
363
  }
356
364
  },
357
365
  "additionalProperties": false,
@@ -483,6 +483,14 @@
483
483
  "project": {
484
484
  "type": "string",
485
485
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
486
+ },
487
+ "client_schema_version": {
488
+ "type": "string",
489
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
490
+ },
491
+ "schema_strict_mode": {
492
+ "type": "boolean",
493
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
486
494
  }
487
495
  },
488
496
  "additionalProperties": false,
@@ -600,6 +600,14 @@
600
600
  "project": {
601
601
  "type": "string",
602
602
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
603
+ },
604
+ "client_schema_version": {
605
+ "type": "string",
606
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
607
+ },
608
+ "schema_strict_mode": {
609
+ "type": "boolean",
610
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
603
611
  }
604
612
  },
605
613
  "additionalProperties": false,
@@ -658,6 +666,14 @@
658
666
  "project": {
659
667
  "type": "string",
660
668
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
669
+ },
670
+ "client_schema_version": {
671
+ "type": "string",
672
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
673
+ },
674
+ "schema_strict_mode": {
675
+ "type": "boolean",
676
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
661
677
  }
662
678
  },
663
679
  "additionalProperties": false,
@@ -78,24 +78,11 @@
78
78
  }
79
79
  },
80
80
  "root": {
81
- "description": "Root definition: either a direct node tree (type='node') or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content. For the node structure, see guard-node-schema.json for complete GuardNode definitions.",
81
+ "description": "Root definition: either a direct GuardNode computation tree (no type wrapper) or a file reference (type='file'). When type='file', the file can define all Guard fields (namedNew, description, table, root, rely), and schema fields override file content. For the node structure, see guard-node-schema.json for complete GuardNode definitions. IMPORTANT: The root node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.)",
82
82
  "oneOf": [
83
83
  {
84
- "type": "object",
85
- "description": "Direct node tree - the node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.)",
86
- "properties": {
87
- "type": {
88
- "const": "node"
89
- },
90
- "node": {
91
- "$ref": "guard-node-schema.json",
92
- "description": "Guard computational tree root node. MUST return a Bool value (pass/fail). See guard-node-schema.json for complete node type definitions including: identifier, query, logic_*, calc_*, convert_*, vec_*, query_reward_record_*, query_progress_history_*, etc."
93
- }
94
- },
95
- "required": [
96
- "type",
97
- "node"
98
- ]
84
+ "$ref": "guard-node-schema.json",
85
+ "description": "Direct GuardNode computation tree - the node MUST be a logical operation returning Bool (e.g., logic_and, logic_or, logic_equal, query_reward_record_exists, etc.). No 'type: node' wrapper needed."
99
86
  },
100
87
  {
101
88
  "type": "object",
@@ -210,6 +197,14 @@
210
197
  "project": {
211
198
  "type": "string",
212
199
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
200
+ },
201
+ "client_schema_version": {
202
+ "type": "string",
203
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
204
+ },
205
+ "schema_strict_mode": {
206
+ "type": "boolean",
207
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
213
208
  }
214
209
  },
215
210
  "additionalProperties": false,
@@ -854,6 +854,14 @@
854
854
  "project": {
855
855
  "type": "string",
856
856
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
857
+ },
858
+ "client_schema_version": {
859
+ "type": "string",
860
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
861
+ },
862
+ "schema_strict_mode": {
863
+ "type": "boolean",
864
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
857
865
  }
858
866
  },
859
867
  "additionalProperties": false,
@@ -329,6 +329,14 @@
329
329
  "project": {
330
330
  "type": "string",
331
331
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
332
+ },
333
+ "client_schema_version": {
334
+ "type": "string",
335
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
336
+ },
337
+ "schema_strict_mode": {
338
+ "type": "boolean",
339
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
332
340
  }
333
341
  },
334
342
  "additionalProperties": false,
@@ -216,6 +216,14 @@
216
216
  "project": {
217
217
  "type": "string",
218
218
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
219
+ },
220
+ "client_schema_version": {
221
+ "type": "string",
222
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
223
+ },
224
+ "schema_strict_mode": {
225
+ "type": "boolean",
226
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
219
227
  }
220
228
  },
221
229
  "additionalProperties": false,
@@ -587,6 +587,14 @@
587
587
  "project": {
588
588
  "type": "string",
589
589
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
590
+ },
591
+ "client_schema_version": {
592
+ "type": "string",
593
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
594
+ },
595
+ "schema_strict_mode": {
596
+ "type": "boolean",
597
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
590
598
  }
591
599
  },
592
600
  "additionalProperties": false,
@@ -781,6 +781,14 @@
781
781
  "project": {
782
782
  "type": "string",
783
783
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
784
+ },
785
+ "client_schema_version": {
786
+ "type": "string",
787
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
788
+ },
789
+ "schema_strict_mode": {
790
+ "type": "boolean",
791
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
784
792
  }
785
793
  },
786
794
  "additionalProperties": false,
@@ -250,6 +250,14 @@
250
250
  "project": {
251
251
  "type": "string",
252
252
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
253
+ },
254
+ "client_schema_version": {
255
+ "type": "string",
256
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
257
+ },
258
+ "schema_strict_mode": {
259
+ "type": "boolean",
260
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
253
261
  }
254
262
  },
255
263
  "additionalProperties": false,
@@ -1074,6 +1074,14 @@
1074
1074
  "project": {
1075
1075
  "type": "string",
1076
1076
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
1077
+ },
1078
+ "client_schema_version": {
1079
+ "type": "string",
1080
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
1081
+ },
1082
+ "schema_strict_mode": {
1083
+ "type": "boolean",
1084
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
1077
1085
  }
1078
1086
  },
1079
1087
  "additionalProperties": false,
@@ -454,6 +454,14 @@
454
454
  "project": {
455
455
  "type": "string",
456
456
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
457
+ },
458
+ "client_schema_version": {
459
+ "type": "string",
460
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
461
+ },
462
+ "schema_strict_mode": {
463
+ "type": "boolean",
464
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
457
465
  }
458
466
  },
459
467
  "additionalProperties": false,
@@ -913,6 +913,14 @@
913
913
  "project": {
914
914
  "type": "string",
915
915
  "description": "Phase 2 ProjectService: explicit project prefix to assign this object to (e.g. 'myshop'). When set, the object is tagged with 'project:<prefix>' automatically. Overrides the prefix parsed from the object name."
916
+ },
917
+ "client_schema_version": {
918
+ "type": "string",
919
+ "description": "Client-side schema version (semver, e.g. '1.0.0'). When provided, the server checks compatibility and attaches warnings if mismatched."
920
+ },
921
+ "schema_strict_mode": {
922
+ "type": "boolean",
923
+ "description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
916
924
  }
917
925
  },
918
926
  "additionalProperties": false,