@objectstack/spec 1.0.11 → 1.1.0

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 (147) hide show
  1. package/README.md +41 -1
  2. package/dist/ai/index.d.mts +2 -1
  3. package/dist/ai/index.d.ts +2 -1
  4. package/dist/ai/index.js +2047 -1944
  5. package/dist/ai/index.js.map +1 -1
  6. package/dist/ai/index.mjs +2047 -1944
  7. package/dist/ai/index.mjs.map +1 -1
  8. package/dist/api/index.d.mts +3 -1
  9. package/dist/api/index.d.ts +3 -1
  10. package/dist/api/index.js +2599 -2292
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/api/index.mjs +2587 -2292
  13. package/dist/api/index.mjs.map +1 -1
  14. package/dist/automation/index.d.mts +2 -1
  15. package/dist/automation/index.d.ts +2 -1
  16. package/dist/automation/index.js +83 -0
  17. package/dist/automation/index.js.map +1 -1
  18. package/dist/automation/index.mjs +77 -0
  19. package/dist/automation/index.mjs.map +1 -1
  20. package/dist/contracts/index.d.mts +3 -2
  21. package/dist/contracts/index.d.ts +3 -2
  22. package/dist/data/index.d.mts +3 -2
  23. package/dist/data/index.d.ts +3 -2
  24. package/dist/data/index.js +658 -556
  25. package/dist/data/index.js.map +1 -1
  26. package/dist/data/index.mjs +656 -556
  27. package/dist/data/index.mjs.map +1 -1
  28. package/dist/{driver.zod-lfi00zVT.d.ts → driver.zod-CfGk9GYh.d.ts} +2164 -11
  29. package/dist/{driver.zod-BOM_Etco.d.mts → driver.zod-y1cX6R3c.d.mts} +2164 -11
  30. package/dist/hub/index.d.mts +1 -1
  31. package/dist/hub/index.d.ts +1 -1
  32. package/dist/hub/index.js +789 -724
  33. package/dist/hub/index.js.map +1 -1
  34. package/dist/hub/index.mjs +789 -724
  35. package/dist/hub/index.mjs.map +1 -1
  36. package/dist/{index-C67cfwmW.d.ts → index-B0Hf65bV.d.ts} +13 -5
  37. package/dist/{index-DLcySG7U.d.ts → index-B5pKM0My.d.ts} +335 -4370
  38. package/dist/{index-Os7lItRe.d.mts → index-BA022mg2.d.ts} +6178 -129
  39. package/dist/{index-B5-VbOKg.d.mts → index-BGeLoH2z.d.ts} +4251 -74
  40. package/dist/{index-CH5zloR3.d.ts → index-BwO__aqV.d.ts} +1 -1
  41. package/dist/{index-Dp7GFJ8V.d.mts → index-Cia3JPQ8.d.mts} +13 -5
  42. package/dist/{index-D12rNohm.d.mts → index-CpD1q1FP.d.ts} +35 -18
  43. package/dist/{index-Os7lItRe.d.ts → index-D5RSFPuB.d.mts} +6178 -129
  44. package/dist/{index-CU4m6noq.d.mts → index-DGjpaj0X.d.mts} +1 -1
  45. package/dist/{index-D12rNohm.d.ts → index-Dfn5VXl6.d.mts} +35 -18
  46. package/dist/{index-l6WIlmOD.d.mts → index-Dgybxlky.d.mts} +177 -158
  47. package/dist/{index-l6WIlmOD.d.ts → index-Dgybxlky.d.ts} +177 -158
  48. package/dist/{index-DLcySG7U.d.mts → index-Dpsk8PF4.d.mts} +335 -4370
  49. package/dist/{index-CyognKSZ.d.ts → index-DrNah5E0.d.ts} +1952 -6990
  50. package/dist/{index-DE_lJ11p.d.mts → index-OO84R20k.d.mts} +1952 -6990
  51. package/dist/{index-B5-VbOKg.d.ts → index-upA3Xt04.d.mts} +4251 -74
  52. package/dist/index.d.mts +8072 -1922
  53. package/dist/index.d.ts +8072 -1922
  54. package/dist/index.js +8563 -8249
  55. package/dist/index.js.map +1 -1
  56. package/dist/index.mjs +8563 -8249
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/integration/index.d.mts +1 -1
  59. package/dist/integration/index.d.ts +1 -1
  60. package/dist/kernel/index.d.mts +2 -1
  61. package/dist/kernel/index.d.ts +2 -1
  62. package/dist/kernel/index.js +884 -684
  63. package/dist/kernel/index.js.map +1 -1
  64. package/dist/kernel/index.mjs +870 -684
  65. package/dist/kernel/index.mjs.map +1 -1
  66. package/dist/package-registry.zod-JMcOYNxM.d.mts +21119 -0
  67. package/dist/package-registry.zod-JMcOYNxM.d.ts +21119 -0
  68. package/dist/state-machine.zod-B-lFFSxQ.d.mts +285 -0
  69. package/dist/state-machine.zod-B-lFFSxQ.d.ts +285 -0
  70. package/dist/system/index.d.mts +2 -1
  71. package/dist/system/index.d.ts +2 -1
  72. package/dist/system/index.js +749 -651
  73. package/dist/system/index.js.map +1 -1
  74. package/dist/system/index.mjs +749 -651
  75. package/dist/system/index.mjs.map +1 -1
  76. package/dist/ui/index.d.mts +1 -1
  77. package/dist/ui/index.d.ts +1 -1
  78. package/json-schema/ai/Agent.json +499 -0
  79. package/json-schema/ai/DevOpsAgent.json +499 -0
  80. package/json-schema/ai/FeedbackLoop.json +2188 -186
  81. package/json-schema/ai/Resolution.json +2188 -186
  82. package/json-schema/api/ApiRoutes.json +4 -0
  83. package/json-schema/api/CompileManifestResponse.json +40 -10
  84. package/json-schema/api/DisablePackageRequest.json +18 -0
  85. package/json-schema/api/DisablePackageResponse.json +1521 -0
  86. package/json-schema/api/Discovery.json +4 -0
  87. package/json-schema/api/EnablePackageRequest.json +18 -0
  88. package/json-schema/api/EnablePackageResponse.json +1521 -0
  89. package/json-schema/api/GetDiscoveryResponse.json +4 -0
  90. package/json-schema/api/GetPackageRequest.json +18 -0
  91. package/json-schema/api/GetPackageResponse.json +1518 -0
  92. package/json-schema/api/InstallPackageRequest.json +1483 -0
  93. package/json-schema/api/InstallPackageResponse.json +1521 -0
  94. package/json-schema/api/ListPackagesRequest.json +42 -0
  95. package/json-schema/api/ListPackagesResponse.json +1525 -0
  96. package/json-schema/api/ObjectDefinitionResponse.json +1001 -0
  97. package/json-schema/api/ObjectStackProtocol.json +86 -1
  98. package/json-schema/api/RestApiConfig.json +5 -0
  99. package/json-schema/api/RestServerConfig.json +5 -0
  100. package/json-schema/api/UninstallPackageRequest.json +18 -0
  101. package/json-schema/api/UninstallPackageResponse.json +25 -0
  102. package/json-schema/automation/ActionRef.json +30 -0
  103. package/json-schema/automation/Event.json +24 -0
  104. package/json-schema/automation/Flow.json +1 -0
  105. package/json-schema/automation/FlowNode.json +1 -0
  106. package/json-schema/automation/FlowNodeAction.json +1 -0
  107. package/json-schema/automation/GuardRef.json +30 -0
  108. package/json-schema/automation/StateMachine.json +504 -0
  109. package/json-schema/automation/StateNode.json +324 -0
  110. package/json-schema/automation/Transition.json +73 -0
  111. package/json-schema/data/Object.json +1001 -0
  112. package/json-schema/data/ObjectExtension.json +2376 -0
  113. package/json-schema/data/ObjectOwnershipEnum.json +13 -0
  114. package/json-schema/hub/ComposerResponse.json +40 -10
  115. package/json-schema/kernel/DisablePackageRequest.json +18 -0
  116. package/json-schema/kernel/DisablePackageResponse.json +1521 -0
  117. package/json-schema/kernel/EnablePackageRequest.json +18 -0
  118. package/json-schema/kernel/EnablePackageResponse.json +1521 -0
  119. package/json-schema/kernel/EventBusConfig.json +15 -0
  120. package/json-schema/kernel/EventHandler.json +6 -0
  121. package/json-schema/kernel/EventPersistence.json +3 -0
  122. package/json-schema/kernel/EventRoute.json +3 -0
  123. package/json-schema/kernel/EventWebhookConfig.json +3 -0
  124. package/json-schema/kernel/GetPackageRequest.json +18 -0
  125. package/json-schema/kernel/GetPackageResponse.json +1518 -0
  126. package/json-schema/kernel/InstallPackageRequest.json +1483 -0
  127. package/json-schema/kernel/InstallPackageResponse.json +1521 -0
  128. package/json-schema/kernel/InstalledPackage.json +1509 -0
  129. package/json-schema/kernel/ListPackagesRequest.json +42 -0
  130. package/json-schema/kernel/ListPackagesResponse.json +1525 -0
  131. package/json-schema/kernel/Manifest.json +40 -10
  132. package/json-schema/kernel/PackageStatusEnum.json +16 -0
  133. package/json-schema/kernel/Plugin.json +5 -0
  134. package/json-schema/kernel/PluginContext.json +31 -7
  135. package/json-schema/kernel/PluginLifecycle.json +7 -1
  136. package/json-schema/kernel/RealTimeNotificationConfig.json +3 -0
  137. package/json-schema/kernel/UninstallPackageRequest.json +18 -0
  138. package/json-schema/kernel/UninstallPackageResponse.json +25 -0
  139. package/json-schema/system/ChangeSet.json +2188 -186
  140. package/json-schema/system/CreateObjectOperation.json +1001 -0
  141. package/json-schema/system/MigrationOperation.json +1001 -0
  142. package/package.json +29 -15
  143. package/prompts/create-new-project.md +37 -19
  144. package/dist/{index-I3piy4U4.d.mts → index-BmU_sD1f.d.mts} +8 -8
  145. package/dist/{index-CkhpsEUw.d.ts → index-BnXuc_HO.d.ts} +8 -8
  146. package/dist/{index-CIDI-8zR.d.mts → index-C_NTOcet.d.mts} +98 -98
  147. package/dist/{index-CIDI-8zR.d.ts → index-C_NTOcet.d.ts} +98 -98
@@ -2618,6 +2618,1007 @@
2618
2618
  },
2619
2619
  "description": "Object-level validation rules"
2620
2620
  },
2621
+ "stateMachine": {
2622
+ "type": "object",
2623
+ "properties": {
2624
+ "id": {
2625
+ "type": "string",
2626
+ "minLength": 2,
2627
+ "pattern": "^[a-z][a-z0-9_]*$",
2628
+ "description": "Unique Machine ID"
2629
+ },
2630
+ "description": {
2631
+ "type": "string"
2632
+ },
2633
+ "contextSchema": {
2634
+ "type": "object",
2635
+ "additionalProperties": {},
2636
+ "description": "Zod Schema for the machine context/memory"
2637
+ },
2638
+ "initial": {
2639
+ "type": "string",
2640
+ "description": "Initial State ID"
2641
+ },
2642
+ "states": {
2643
+ "type": "object",
2644
+ "additionalProperties": {
2645
+ "type": "object",
2646
+ "properties": {
2647
+ "type": {
2648
+ "type": "string",
2649
+ "enum": [
2650
+ "atomic",
2651
+ "compound",
2652
+ "parallel",
2653
+ "final",
2654
+ "history"
2655
+ ],
2656
+ "default": "atomic"
2657
+ },
2658
+ "entry": {
2659
+ "type": "array",
2660
+ "items": {
2661
+ "anyOf": [
2662
+ {
2663
+ "type": "string",
2664
+ "description": "Action Name"
2665
+ },
2666
+ {
2667
+ "type": "object",
2668
+ "properties": {
2669
+ "type": {
2670
+ "type": "string"
2671
+ },
2672
+ "params": {
2673
+ "type": "object",
2674
+ "additionalProperties": {}
2675
+ }
2676
+ },
2677
+ "required": [
2678
+ "type"
2679
+ ],
2680
+ "additionalProperties": false
2681
+ }
2682
+ ]
2683
+ },
2684
+ "description": "Actions to run when entering this state"
2685
+ },
2686
+ "exit": {
2687
+ "type": "array",
2688
+ "items": {
2689
+ "anyOf": [
2690
+ {
2691
+ "type": "string",
2692
+ "description": "Action Name"
2693
+ },
2694
+ {
2695
+ "type": "object",
2696
+ "properties": {
2697
+ "type": {
2698
+ "type": "string"
2699
+ },
2700
+ "params": {
2701
+ "type": "object",
2702
+ "additionalProperties": {}
2703
+ }
2704
+ },
2705
+ "required": [
2706
+ "type"
2707
+ ],
2708
+ "additionalProperties": false
2709
+ }
2710
+ ]
2711
+ },
2712
+ "description": "Actions to run when leaving this state"
2713
+ },
2714
+ "on": {
2715
+ "type": "object",
2716
+ "additionalProperties": {
2717
+ "anyOf": [
2718
+ {
2719
+ "type": "string"
2720
+ },
2721
+ {
2722
+ "type": "object",
2723
+ "properties": {
2724
+ "target": {
2725
+ "type": "string",
2726
+ "description": "Target State ID"
2727
+ },
2728
+ "cond": {
2729
+ "anyOf": [
2730
+ {
2731
+ "type": "string",
2732
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
2733
+ },
2734
+ {
2735
+ "type": "object",
2736
+ "properties": {
2737
+ "type": {
2738
+ "type": "string"
2739
+ },
2740
+ "params": {
2741
+ "type": "object",
2742
+ "additionalProperties": {}
2743
+ }
2744
+ },
2745
+ "required": [
2746
+ "type"
2747
+ ],
2748
+ "additionalProperties": false
2749
+ }
2750
+ ],
2751
+ "description": "Condition (Guard) required to take this path"
2752
+ },
2753
+ "actions": {
2754
+ "type": "array",
2755
+ "items": {
2756
+ "anyOf": [
2757
+ {
2758
+ "type": "string",
2759
+ "description": "Action Name"
2760
+ },
2761
+ {
2762
+ "type": "object",
2763
+ "properties": {
2764
+ "type": {
2765
+ "type": "string"
2766
+ },
2767
+ "params": {
2768
+ "type": "object",
2769
+ "additionalProperties": {}
2770
+ }
2771
+ },
2772
+ "required": [
2773
+ "type"
2774
+ ],
2775
+ "additionalProperties": false
2776
+ }
2777
+ ]
2778
+ },
2779
+ "description": "Actions to execute during transition"
2780
+ },
2781
+ "description": {
2782
+ "type": "string",
2783
+ "description": "Human readable description of this rule"
2784
+ }
2785
+ },
2786
+ "additionalProperties": false
2787
+ },
2788
+ {
2789
+ "type": "array",
2790
+ "items": {
2791
+ "type": "object",
2792
+ "properties": {
2793
+ "target": {
2794
+ "type": "string",
2795
+ "description": "Target State ID"
2796
+ },
2797
+ "cond": {
2798
+ "anyOf": [
2799
+ {
2800
+ "type": "string",
2801
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
2802
+ },
2803
+ {
2804
+ "type": "object",
2805
+ "properties": {
2806
+ "type": {
2807
+ "type": "string"
2808
+ },
2809
+ "params": {
2810
+ "type": "object",
2811
+ "additionalProperties": {}
2812
+ }
2813
+ },
2814
+ "required": [
2815
+ "type"
2816
+ ],
2817
+ "additionalProperties": false
2818
+ }
2819
+ ],
2820
+ "description": "Condition (Guard) required to take this path"
2821
+ },
2822
+ "actions": {
2823
+ "type": "array",
2824
+ "items": {
2825
+ "anyOf": [
2826
+ {
2827
+ "type": "string",
2828
+ "description": "Action Name"
2829
+ },
2830
+ {
2831
+ "type": "object",
2832
+ "properties": {
2833
+ "type": {
2834
+ "type": "string"
2835
+ },
2836
+ "params": {
2837
+ "type": "object",
2838
+ "additionalProperties": {}
2839
+ }
2840
+ },
2841
+ "required": [
2842
+ "type"
2843
+ ],
2844
+ "additionalProperties": false
2845
+ }
2846
+ ]
2847
+ },
2848
+ "description": "Actions to execute during transition"
2849
+ },
2850
+ "description": {
2851
+ "type": "string",
2852
+ "description": "Human readable description of this rule"
2853
+ }
2854
+ },
2855
+ "additionalProperties": false
2856
+ }
2857
+ }
2858
+ ]
2859
+ },
2860
+ "description": "Map of Event Type -> Transition Definition"
2861
+ },
2862
+ "always": {
2863
+ "type": "array",
2864
+ "items": {
2865
+ "type": "object",
2866
+ "properties": {
2867
+ "target": {
2868
+ "type": "string",
2869
+ "description": "Target State ID"
2870
+ },
2871
+ "cond": {
2872
+ "anyOf": [
2873
+ {
2874
+ "type": "string",
2875
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
2876
+ },
2877
+ {
2878
+ "type": "object",
2879
+ "properties": {
2880
+ "type": {
2881
+ "type": "string"
2882
+ },
2883
+ "params": {
2884
+ "type": "object",
2885
+ "additionalProperties": {}
2886
+ }
2887
+ },
2888
+ "required": [
2889
+ "type"
2890
+ ],
2891
+ "additionalProperties": false
2892
+ }
2893
+ ],
2894
+ "description": "Condition (Guard) required to take this path"
2895
+ },
2896
+ "actions": {
2897
+ "type": "array",
2898
+ "items": {
2899
+ "anyOf": [
2900
+ {
2901
+ "type": "string",
2902
+ "description": "Action Name"
2903
+ },
2904
+ {
2905
+ "type": "object",
2906
+ "properties": {
2907
+ "type": {
2908
+ "type": "string"
2909
+ },
2910
+ "params": {
2911
+ "type": "object",
2912
+ "additionalProperties": {}
2913
+ }
2914
+ },
2915
+ "required": [
2916
+ "type"
2917
+ ],
2918
+ "additionalProperties": false
2919
+ }
2920
+ ]
2921
+ },
2922
+ "description": "Actions to execute during transition"
2923
+ },
2924
+ "description": {
2925
+ "type": "string",
2926
+ "description": "Human readable description of this rule"
2927
+ }
2928
+ },
2929
+ "additionalProperties": false
2930
+ }
2931
+ },
2932
+ "initial": {
2933
+ "type": "string",
2934
+ "description": "Initial child state (if compound)"
2935
+ },
2936
+ "states": {
2937
+ "type": "object",
2938
+ "additionalProperties": {}
2939
+ },
2940
+ "meta": {
2941
+ "type": "object",
2942
+ "properties": {
2943
+ "label": {
2944
+ "type": "string"
2945
+ },
2946
+ "description": {
2947
+ "type": "string"
2948
+ },
2949
+ "color": {
2950
+ "type": "string"
2951
+ },
2952
+ "aiInstructions": {
2953
+ "type": "string",
2954
+ "description": "Specific instructions for AI when in this state"
2955
+ }
2956
+ },
2957
+ "additionalProperties": false
2958
+ }
2959
+ },
2960
+ "additionalProperties": false
2961
+ },
2962
+ "description": "State Nodes"
2963
+ },
2964
+ "on": {
2965
+ "type": "object",
2966
+ "additionalProperties": {
2967
+ "anyOf": [
2968
+ {
2969
+ "type": "string"
2970
+ },
2971
+ {
2972
+ "type": "object",
2973
+ "properties": {
2974
+ "target": {
2975
+ "type": "string",
2976
+ "description": "Target State ID"
2977
+ },
2978
+ "cond": {
2979
+ "anyOf": [
2980
+ {
2981
+ "type": "string",
2982
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
2983
+ },
2984
+ {
2985
+ "type": "object",
2986
+ "properties": {
2987
+ "type": {
2988
+ "type": "string"
2989
+ },
2990
+ "params": {
2991
+ "type": "object",
2992
+ "additionalProperties": {}
2993
+ }
2994
+ },
2995
+ "required": [
2996
+ "type"
2997
+ ],
2998
+ "additionalProperties": false
2999
+ }
3000
+ ],
3001
+ "description": "Condition (Guard) required to take this path"
3002
+ },
3003
+ "actions": {
3004
+ "type": "array",
3005
+ "items": {
3006
+ "anyOf": [
3007
+ {
3008
+ "type": "string",
3009
+ "description": "Action Name"
3010
+ },
3011
+ {
3012
+ "type": "object",
3013
+ "properties": {
3014
+ "type": {
3015
+ "type": "string"
3016
+ },
3017
+ "params": {
3018
+ "type": "object",
3019
+ "additionalProperties": {}
3020
+ }
3021
+ },
3022
+ "required": [
3023
+ "type"
3024
+ ],
3025
+ "additionalProperties": false
3026
+ }
3027
+ ]
3028
+ },
3029
+ "description": "Actions to execute during transition"
3030
+ },
3031
+ "description": {
3032
+ "type": "string",
3033
+ "description": "Human readable description of this rule"
3034
+ }
3035
+ },
3036
+ "additionalProperties": false
3037
+ },
3038
+ {
3039
+ "type": "array",
3040
+ "items": {
3041
+ "type": "object",
3042
+ "properties": {
3043
+ "target": {
3044
+ "type": "string",
3045
+ "description": "Target State ID"
3046
+ },
3047
+ "cond": {
3048
+ "anyOf": [
3049
+ {
3050
+ "type": "string",
3051
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3052
+ },
3053
+ {
3054
+ "type": "object",
3055
+ "properties": {
3056
+ "type": {
3057
+ "type": "string"
3058
+ },
3059
+ "params": {
3060
+ "type": "object",
3061
+ "additionalProperties": {}
3062
+ }
3063
+ },
3064
+ "required": [
3065
+ "type"
3066
+ ],
3067
+ "additionalProperties": false
3068
+ }
3069
+ ],
3070
+ "description": "Condition (Guard) required to take this path"
3071
+ },
3072
+ "actions": {
3073
+ "type": "array",
3074
+ "items": {
3075
+ "anyOf": [
3076
+ {
3077
+ "type": "string",
3078
+ "description": "Action Name"
3079
+ },
3080
+ {
3081
+ "type": "object",
3082
+ "properties": {
3083
+ "type": {
3084
+ "type": "string"
3085
+ },
3086
+ "params": {
3087
+ "type": "object",
3088
+ "additionalProperties": {}
3089
+ }
3090
+ },
3091
+ "required": [
3092
+ "type"
3093
+ ],
3094
+ "additionalProperties": false
3095
+ }
3096
+ ]
3097
+ },
3098
+ "description": "Actions to execute during transition"
3099
+ },
3100
+ "description": {
3101
+ "type": "string",
3102
+ "description": "Human readable description of this rule"
3103
+ }
3104
+ },
3105
+ "additionalProperties": false
3106
+ }
3107
+ }
3108
+ ]
3109
+ }
3110
+ }
3111
+ },
3112
+ "required": [
3113
+ "id",
3114
+ "initial",
3115
+ "states"
3116
+ ],
3117
+ "additionalProperties": false,
3118
+ "description": "Single state machine for record lifecycle (shorthand)"
3119
+ },
3120
+ "stateMachines": {
3121
+ "type": "object",
3122
+ "additionalProperties": {
3123
+ "type": "object",
3124
+ "properties": {
3125
+ "id": {
3126
+ "type": "string",
3127
+ "minLength": 2,
3128
+ "pattern": "^[a-z][a-z0-9_]*$",
3129
+ "description": "Unique Machine ID"
3130
+ },
3131
+ "description": {
3132
+ "type": "string"
3133
+ },
3134
+ "contextSchema": {
3135
+ "type": "object",
3136
+ "additionalProperties": {},
3137
+ "description": "Zod Schema for the machine context/memory"
3138
+ },
3139
+ "initial": {
3140
+ "type": "string",
3141
+ "description": "Initial State ID"
3142
+ },
3143
+ "states": {
3144
+ "type": "object",
3145
+ "additionalProperties": {
3146
+ "type": "object",
3147
+ "properties": {
3148
+ "type": {
3149
+ "type": "string",
3150
+ "enum": [
3151
+ "atomic",
3152
+ "compound",
3153
+ "parallel",
3154
+ "final",
3155
+ "history"
3156
+ ],
3157
+ "default": "atomic"
3158
+ },
3159
+ "entry": {
3160
+ "type": "array",
3161
+ "items": {
3162
+ "anyOf": [
3163
+ {
3164
+ "type": "string",
3165
+ "description": "Action Name"
3166
+ },
3167
+ {
3168
+ "type": "object",
3169
+ "properties": {
3170
+ "type": {
3171
+ "type": "string"
3172
+ },
3173
+ "params": {
3174
+ "type": "object",
3175
+ "additionalProperties": {}
3176
+ }
3177
+ },
3178
+ "required": [
3179
+ "type"
3180
+ ],
3181
+ "additionalProperties": false
3182
+ }
3183
+ ]
3184
+ },
3185
+ "description": "Actions to run when entering this state"
3186
+ },
3187
+ "exit": {
3188
+ "type": "array",
3189
+ "items": {
3190
+ "anyOf": [
3191
+ {
3192
+ "type": "string",
3193
+ "description": "Action Name"
3194
+ },
3195
+ {
3196
+ "type": "object",
3197
+ "properties": {
3198
+ "type": {
3199
+ "type": "string"
3200
+ },
3201
+ "params": {
3202
+ "type": "object",
3203
+ "additionalProperties": {}
3204
+ }
3205
+ },
3206
+ "required": [
3207
+ "type"
3208
+ ],
3209
+ "additionalProperties": false
3210
+ }
3211
+ ]
3212
+ },
3213
+ "description": "Actions to run when leaving this state"
3214
+ },
3215
+ "on": {
3216
+ "type": "object",
3217
+ "additionalProperties": {
3218
+ "anyOf": [
3219
+ {
3220
+ "type": "string"
3221
+ },
3222
+ {
3223
+ "type": "object",
3224
+ "properties": {
3225
+ "target": {
3226
+ "type": "string",
3227
+ "description": "Target State ID"
3228
+ },
3229
+ "cond": {
3230
+ "anyOf": [
3231
+ {
3232
+ "type": "string",
3233
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3234
+ },
3235
+ {
3236
+ "type": "object",
3237
+ "properties": {
3238
+ "type": {
3239
+ "type": "string"
3240
+ },
3241
+ "params": {
3242
+ "type": "object",
3243
+ "additionalProperties": {}
3244
+ }
3245
+ },
3246
+ "required": [
3247
+ "type"
3248
+ ],
3249
+ "additionalProperties": false
3250
+ }
3251
+ ],
3252
+ "description": "Condition (Guard) required to take this path"
3253
+ },
3254
+ "actions": {
3255
+ "type": "array",
3256
+ "items": {
3257
+ "anyOf": [
3258
+ {
3259
+ "type": "string",
3260
+ "description": "Action Name"
3261
+ },
3262
+ {
3263
+ "type": "object",
3264
+ "properties": {
3265
+ "type": {
3266
+ "type": "string"
3267
+ },
3268
+ "params": {
3269
+ "type": "object",
3270
+ "additionalProperties": {}
3271
+ }
3272
+ },
3273
+ "required": [
3274
+ "type"
3275
+ ],
3276
+ "additionalProperties": false
3277
+ }
3278
+ ]
3279
+ },
3280
+ "description": "Actions to execute during transition"
3281
+ },
3282
+ "description": {
3283
+ "type": "string",
3284
+ "description": "Human readable description of this rule"
3285
+ }
3286
+ },
3287
+ "additionalProperties": false
3288
+ },
3289
+ {
3290
+ "type": "array",
3291
+ "items": {
3292
+ "type": "object",
3293
+ "properties": {
3294
+ "target": {
3295
+ "type": "string",
3296
+ "description": "Target State ID"
3297
+ },
3298
+ "cond": {
3299
+ "anyOf": [
3300
+ {
3301
+ "type": "string",
3302
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3303
+ },
3304
+ {
3305
+ "type": "object",
3306
+ "properties": {
3307
+ "type": {
3308
+ "type": "string"
3309
+ },
3310
+ "params": {
3311
+ "type": "object",
3312
+ "additionalProperties": {}
3313
+ }
3314
+ },
3315
+ "required": [
3316
+ "type"
3317
+ ],
3318
+ "additionalProperties": false
3319
+ }
3320
+ ],
3321
+ "description": "Condition (Guard) required to take this path"
3322
+ },
3323
+ "actions": {
3324
+ "type": "array",
3325
+ "items": {
3326
+ "anyOf": [
3327
+ {
3328
+ "type": "string",
3329
+ "description": "Action Name"
3330
+ },
3331
+ {
3332
+ "type": "object",
3333
+ "properties": {
3334
+ "type": {
3335
+ "type": "string"
3336
+ },
3337
+ "params": {
3338
+ "type": "object",
3339
+ "additionalProperties": {}
3340
+ }
3341
+ },
3342
+ "required": [
3343
+ "type"
3344
+ ],
3345
+ "additionalProperties": false
3346
+ }
3347
+ ]
3348
+ },
3349
+ "description": "Actions to execute during transition"
3350
+ },
3351
+ "description": {
3352
+ "type": "string",
3353
+ "description": "Human readable description of this rule"
3354
+ }
3355
+ },
3356
+ "additionalProperties": false
3357
+ }
3358
+ }
3359
+ ]
3360
+ },
3361
+ "description": "Map of Event Type -> Transition Definition"
3362
+ },
3363
+ "always": {
3364
+ "type": "array",
3365
+ "items": {
3366
+ "type": "object",
3367
+ "properties": {
3368
+ "target": {
3369
+ "type": "string",
3370
+ "description": "Target State ID"
3371
+ },
3372
+ "cond": {
3373
+ "anyOf": [
3374
+ {
3375
+ "type": "string",
3376
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3377
+ },
3378
+ {
3379
+ "type": "object",
3380
+ "properties": {
3381
+ "type": {
3382
+ "type": "string"
3383
+ },
3384
+ "params": {
3385
+ "type": "object",
3386
+ "additionalProperties": {}
3387
+ }
3388
+ },
3389
+ "required": [
3390
+ "type"
3391
+ ],
3392
+ "additionalProperties": false
3393
+ }
3394
+ ],
3395
+ "description": "Condition (Guard) required to take this path"
3396
+ },
3397
+ "actions": {
3398
+ "type": "array",
3399
+ "items": {
3400
+ "anyOf": [
3401
+ {
3402
+ "type": "string",
3403
+ "description": "Action Name"
3404
+ },
3405
+ {
3406
+ "type": "object",
3407
+ "properties": {
3408
+ "type": {
3409
+ "type": "string"
3410
+ },
3411
+ "params": {
3412
+ "type": "object",
3413
+ "additionalProperties": {}
3414
+ }
3415
+ },
3416
+ "required": [
3417
+ "type"
3418
+ ],
3419
+ "additionalProperties": false
3420
+ }
3421
+ ]
3422
+ },
3423
+ "description": "Actions to execute during transition"
3424
+ },
3425
+ "description": {
3426
+ "type": "string",
3427
+ "description": "Human readable description of this rule"
3428
+ }
3429
+ },
3430
+ "additionalProperties": false
3431
+ }
3432
+ },
3433
+ "initial": {
3434
+ "type": "string",
3435
+ "description": "Initial child state (if compound)"
3436
+ },
3437
+ "states": {
3438
+ "type": "object",
3439
+ "additionalProperties": {}
3440
+ },
3441
+ "meta": {
3442
+ "type": "object",
3443
+ "properties": {
3444
+ "label": {
3445
+ "type": "string"
3446
+ },
3447
+ "description": {
3448
+ "type": "string"
3449
+ },
3450
+ "color": {
3451
+ "type": "string"
3452
+ },
3453
+ "aiInstructions": {
3454
+ "type": "string",
3455
+ "description": "Specific instructions for AI when in this state"
3456
+ }
3457
+ },
3458
+ "additionalProperties": false
3459
+ }
3460
+ },
3461
+ "additionalProperties": false
3462
+ },
3463
+ "description": "State Nodes"
3464
+ },
3465
+ "on": {
3466
+ "type": "object",
3467
+ "additionalProperties": {
3468
+ "anyOf": [
3469
+ {
3470
+ "type": "string"
3471
+ },
3472
+ {
3473
+ "type": "object",
3474
+ "properties": {
3475
+ "target": {
3476
+ "type": "string",
3477
+ "description": "Target State ID"
3478
+ },
3479
+ "cond": {
3480
+ "anyOf": [
3481
+ {
3482
+ "type": "string",
3483
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3484
+ },
3485
+ {
3486
+ "type": "object",
3487
+ "properties": {
3488
+ "type": {
3489
+ "type": "string"
3490
+ },
3491
+ "params": {
3492
+ "type": "object",
3493
+ "additionalProperties": {}
3494
+ }
3495
+ },
3496
+ "required": [
3497
+ "type"
3498
+ ],
3499
+ "additionalProperties": false
3500
+ }
3501
+ ],
3502
+ "description": "Condition (Guard) required to take this path"
3503
+ },
3504
+ "actions": {
3505
+ "type": "array",
3506
+ "items": {
3507
+ "anyOf": [
3508
+ {
3509
+ "type": "string",
3510
+ "description": "Action Name"
3511
+ },
3512
+ {
3513
+ "type": "object",
3514
+ "properties": {
3515
+ "type": {
3516
+ "type": "string"
3517
+ },
3518
+ "params": {
3519
+ "type": "object",
3520
+ "additionalProperties": {}
3521
+ }
3522
+ },
3523
+ "required": [
3524
+ "type"
3525
+ ],
3526
+ "additionalProperties": false
3527
+ }
3528
+ ]
3529
+ },
3530
+ "description": "Actions to execute during transition"
3531
+ },
3532
+ "description": {
3533
+ "type": "string",
3534
+ "description": "Human readable description of this rule"
3535
+ }
3536
+ },
3537
+ "additionalProperties": false
3538
+ },
3539
+ {
3540
+ "type": "array",
3541
+ "items": {
3542
+ "type": "object",
3543
+ "properties": {
3544
+ "target": {
3545
+ "type": "string",
3546
+ "description": "Target State ID"
3547
+ },
3548
+ "cond": {
3549
+ "anyOf": [
3550
+ {
3551
+ "type": "string",
3552
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3553
+ },
3554
+ {
3555
+ "type": "object",
3556
+ "properties": {
3557
+ "type": {
3558
+ "type": "string"
3559
+ },
3560
+ "params": {
3561
+ "type": "object",
3562
+ "additionalProperties": {}
3563
+ }
3564
+ },
3565
+ "required": [
3566
+ "type"
3567
+ ],
3568
+ "additionalProperties": false
3569
+ }
3570
+ ],
3571
+ "description": "Condition (Guard) required to take this path"
3572
+ },
3573
+ "actions": {
3574
+ "type": "array",
3575
+ "items": {
3576
+ "anyOf": [
3577
+ {
3578
+ "type": "string",
3579
+ "description": "Action Name"
3580
+ },
3581
+ {
3582
+ "type": "object",
3583
+ "properties": {
3584
+ "type": {
3585
+ "type": "string"
3586
+ },
3587
+ "params": {
3588
+ "type": "object",
3589
+ "additionalProperties": {}
3590
+ }
3591
+ },
3592
+ "required": [
3593
+ "type"
3594
+ ],
3595
+ "additionalProperties": false
3596
+ }
3597
+ ]
3598
+ },
3599
+ "description": "Actions to execute during transition"
3600
+ },
3601
+ "description": {
3602
+ "type": "string",
3603
+ "description": "Human readable description of this rule"
3604
+ }
3605
+ },
3606
+ "additionalProperties": false
3607
+ }
3608
+ }
3609
+ ]
3610
+ }
3611
+ }
3612
+ },
3613
+ "required": [
3614
+ "id",
3615
+ "initial",
3616
+ "states"
3617
+ ],
3618
+ "additionalProperties": false
3619
+ },
3620
+ "description": "Named state machines for parallel lifecycles (e.g., status, payment, approval)"
3621
+ },
2621
3622
  "titleFormat": {
2622
3623
  "type": "string",
2623
3624
  "description": "Title expression (e.g. \"{name} - {code}\"). Overrides nameField."