@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
@@ -3492,6 +3492,1007 @@
3492
3492
  },
3493
3493
  "description": "Object-level validation rules"
3494
3494
  },
3495
+ "stateMachine": {
3496
+ "type": "object",
3497
+ "properties": {
3498
+ "id": {
3499
+ "type": "string",
3500
+ "minLength": 2,
3501
+ "pattern": "^[a-z][a-z0-9_]*$",
3502
+ "description": "Unique Machine ID"
3503
+ },
3504
+ "description": {
3505
+ "type": "string"
3506
+ },
3507
+ "contextSchema": {
3508
+ "type": "object",
3509
+ "additionalProperties": {},
3510
+ "description": "Zod Schema for the machine context/memory"
3511
+ },
3512
+ "initial": {
3513
+ "type": "string",
3514
+ "description": "Initial State ID"
3515
+ },
3516
+ "states": {
3517
+ "type": "object",
3518
+ "additionalProperties": {
3519
+ "type": "object",
3520
+ "properties": {
3521
+ "type": {
3522
+ "type": "string",
3523
+ "enum": [
3524
+ "atomic",
3525
+ "compound",
3526
+ "parallel",
3527
+ "final",
3528
+ "history"
3529
+ ],
3530
+ "default": "atomic"
3531
+ },
3532
+ "entry": {
3533
+ "type": "array",
3534
+ "items": {
3535
+ "anyOf": [
3536
+ {
3537
+ "type": "string",
3538
+ "description": "Action Name"
3539
+ },
3540
+ {
3541
+ "type": "object",
3542
+ "properties": {
3543
+ "type": {
3544
+ "type": "string"
3545
+ },
3546
+ "params": {
3547
+ "type": "object",
3548
+ "additionalProperties": {}
3549
+ }
3550
+ },
3551
+ "required": [
3552
+ "type"
3553
+ ],
3554
+ "additionalProperties": false
3555
+ }
3556
+ ]
3557
+ },
3558
+ "description": "Actions to run when entering this state"
3559
+ },
3560
+ "exit": {
3561
+ "type": "array",
3562
+ "items": {
3563
+ "anyOf": [
3564
+ {
3565
+ "type": "string",
3566
+ "description": "Action Name"
3567
+ },
3568
+ {
3569
+ "type": "object",
3570
+ "properties": {
3571
+ "type": {
3572
+ "type": "string"
3573
+ },
3574
+ "params": {
3575
+ "type": "object",
3576
+ "additionalProperties": {}
3577
+ }
3578
+ },
3579
+ "required": [
3580
+ "type"
3581
+ ],
3582
+ "additionalProperties": false
3583
+ }
3584
+ ]
3585
+ },
3586
+ "description": "Actions to run when leaving this state"
3587
+ },
3588
+ "on": {
3589
+ "type": "object",
3590
+ "additionalProperties": {
3591
+ "anyOf": [
3592
+ {
3593
+ "type": "string"
3594
+ },
3595
+ {
3596
+ "type": "object",
3597
+ "properties": {
3598
+ "target": {
3599
+ "type": "string",
3600
+ "description": "Target State ID"
3601
+ },
3602
+ "cond": {
3603
+ "anyOf": [
3604
+ {
3605
+ "type": "string",
3606
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3607
+ },
3608
+ {
3609
+ "type": "object",
3610
+ "properties": {
3611
+ "type": {
3612
+ "type": "string"
3613
+ },
3614
+ "params": {
3615
+ "type": "object",
3616
+ "additionalProperties": {}
3617
+ }
3618
+ },
3619
+ "required": [
3620
+ "type"
3621
+ ],
3622
+ "additionalProperties": false
3623
+ }
3624
+ ],
3625
+ "description": "Condition (Guard) required to take this path"
3626
+ },
3627
+ "actions": {
3628
+ "type": "array",
3629
+ "items": {
3630
+ "anyOf": [
3631
+ {
3632
+ "type": "string",
3633
+ "description": "Action Name"
3634
+ },
3635
+ {
3636
+ "type": "object",
3637
+ "properties": {
3638
+ "type": {
3639
+ "type": "string"
3640
+ },
3641
+ "params": {
3642
+ "type": "object",
3643
+ "additionalProperties": {}
3644
+ }
3645
+ },
3646
+ "required": [
3647
+ "type"
3648
+ ],
3649
+ "additionalProperties": false
3650
+ }
3651
+ ]
3652
+ },
3653
+ "description": "Actions to execute during transition"
3654
+ },
3655
+ "description": {
3656
+ "type": "string",
3657
+ "description": "Human readable description of this rule"
3658
+ }
3659
+ },
3660
+ "additionalProperties": false
3661
+ },
3662
+ {
3663
+ "type": "array",
3664
+ "items": {
3665
+ "type": "object",
3666
+ "properties": {
3667
+ "target": {
3668
+ "type": "string",
3669
+ "description": "Target State ID"
3670
+ },
3671
+ "cond": {
3672
+ "anyOf": [
3673
+ {
3674
+ "type": "string",
3675
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3676
+ },
3677
+ {
3678
+ "type": "object",
3679
+ "properties": {
3680
+ "type": {
3681
+ "type": "string"
3682
+ },
3683
+ "params": {
3684
+ "type": "object",
3685
+ "additionalProperties": {}
3686
+ }
3687
+ },
3688
+ "required": [
3689
+ "type"
3690
+ ],
3691
+ "additionalProperties": false
3692
+ }
3693
+ ],
3694
+ "description": "Condition (Guard) required to take this path"
3695
+ },
3696
+ "actions": {
3697
+ "type": "array",
3698
+ "items": {
3699
+ "anyOf": [
3700
+ {
3701
+ "type": "string",
3702
+ "description": "Action Name"
3703
+ },
3704
+ {
3705
+ "type": "object",
3706
+ "properties": {
3707
+ "type": {
3708
+ "type": "string"
3709
+ },
3710
+ "params": {
3711
+ "type": "object",
3712
+ "additionalProperties": {}
3713
+ }
3714
+ },
3715
+ "required": [
3716
+ "type"
3717
+ ],
3718
+ "additionalProperties": false
3719
+ }
3720
+ ]
3721
+ },
3722
+ "description": "Actions to execute during transition"
3723
+ },
3724
+ "description": {
3725
+ "type": "string",
3726
+ "description": "Human readable description of this rule"
3727
+ }
3728
+ },
3729
+ "additionalProperties": false
3730
+ }
3731
+ }
3732
+ ]
3733
+ },
3734
+ "description": "Map of Event Type -> Transition Definition"
3735
+ },
3736
+ "always": {
3737
+ "type": "array",
3738
+ "items": {
3739
+ "type": "object",
3740
+ "properties": {
3741
+ "target": {
3742
+ "type": "string",
3743
+ "description": "Target State ID"
3744
+ },
3745
+ "cond": {
3746
+ "anyOf": [
3747
+ {
3748
+ "type": "string",
3749
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3750
+ },
3751
+ {
3752
+ "type": "object",
3753
+ "properties": {
3754
+ "type": {
3755
+ "type": "string"
3756
+ },
3757
+ "params": {
3758
+ "type": "object",
3759
+ "additionalProperties": {}
3760
+ }
3761
+ },
3762
+ "required": [
3763
+ "type"
3764
+ ],
3765
+ "additionalProperties": false
3766
+ }
3767
+ ],
3768
+ "description": "Condition (Guard) required to take this path"
3769
+ },
3770
+ "actions": {
3771
+ "type": "array",
3772
+ "items": {
3773
+ "anyOf": [
3774
+ {
3775
+ "type": "string",
3776
+ "description": "Action Name"
3777
+ },
3778
+ {
3779
+ "type": "object",
3780
+ "properties": {
3781
+ "type": {
3782
+ "type": "string"
3783
+ },
3784
+ "params": {
3785
+ "type": "object",
3786
+ "additionalProperties": {}
3787
+ }
3788
+ },
3789
+ "required": [
3790
+ "type"
3791
+ ],
3792
+ "additionalProperties": false
3793
+ }
3794
+ ]
3795
+ },
3796
+ "description": "Actions to execute during transition"
3797
+ },
3798
+ "description": {
3799
+ "type": "string",
3800
+ "description": "Human readable description of this rule"
3801
+ }
3802
+ },
3803
+ "additionalProperties": false
3804
+ }
3805
+ },
3806
+ "initial": {
3807
+ "type": "string",
3808
+ "description": "Initial child state (if compound)"
3809
+ },
3810
+ "states": {
3811
+ "type": "object",
3812
+ "additionalProperties": {}
3813
+ },
3814
+ "meta": {
3815
+ "type": "object",
3816
+ "properties": {
3817
+ "label": {
3818
+ "type": "string"
3819
+ },
3820
+ "description": {
3821
+ "type": "string"
3822
+ },
3823
+ "color": {
3824
+ "type": "string"
3825
+ },
3826
+ "aiInstructions": {
3827
+ "type": "string",
3828
+ "description": "Specific instructions for AI when in this state"
3829
+ }
3830
+ },
3831
+ "additionalProperties": false
3832
+ }
3833
+ },
3834
+ "additionalProperties": false
3835
+ },
3836
+ "description": "State Nodes"
3837
+ },
3838
+ "on": {
3839
+ "type": "object",
3840
+ "additionalProperties": {
3841
+ "anyOf": [
3842
+ {
3843
+ "type": "string"
3844
+ },
3845
+ {
3846
+ "type": "object",
3847
+ "properties": {
3848
+ "target": {
3849
+ "type": "string",
3850
+ "description": "Target State ID"
3851
+ },
3852
+ "cond": {
3853
+ "anyOf": [
3854
+ {
3855
+ "type": "string",
3856
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3857
+ },
3858
+ {
3859
+ "type": "object",
3860
+ "properties": {
3861
+ "type": {
3862
+ "type": "string"
3863
+ },
3864
+ "params": {
3865
+ "type": "object",
3866
+ "additionalProperties": {}
3867
+ }
3868
+ },
3869
+ "required": [
3870
+ "type"
3871
+ ],
3872
+ "additionalProperties": false
3873
+ }
3874
+ ],
3875
+ "description": "Condition (Guard) required to take this path"
3876
+ },
3877
+ "actions": {
3878
+ "type": "array",
3879
+ "items": {
3880
+ "anyOf": [
3881
+ {
3882
+ "type": "string",
3883
+ "description": "Action Name"
3884
+ },
3885
+ {
3886
+ "type": "object",
3887
+ "properties": {
3888
+ "type": {
3889
+ "type": "string"
3890
+ },
3891
+ "params": {
3892
+ "type": "object",
3893
+ "additionalProperties": {}
3894
+ }
3895
+ },
3896
+ "required": [
3897
+ "type"
3898
+ ],
3899
+ "additionalProperties": false
3900
+ }
3901
+ ]
3902
+ },
3903
+ "description": "Actions to execute during transition"
3904
+ },
3905
+ "description": {
3906
+ "type": "string",
3907
+ "description": "Human readable description of this rule"
3908
+ }
3909
+ },
3910
+ "additionalProperties": false
3911
+ },
3912
+ {
3913
+ "type": "array",
3914
+ "items": {
3915
+ "type": "object",
3916
+ "properties": {
3917
+ "target": {
3918
+ "type": "string",
3919
+ "description": "Target State ID"
3920
+ },
3921
+ "cond": {
3922
+ "anyOf": [
3923
+ {
3924
+ "type": "string",
3925
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
3926
+ },
3927
+ {
3928
+ "type": "object",
3929
+ "properties": {
3930
+ "type": {
3931
+ "type": "string"
3932
+ },
3933
+ "params": {
3934
+ "type": "object",
3935
+ "additionalProperties": {}
3936
+ }
3937
+ },
3938
+ "required": [
3939
+ "type"
3940
+ ],
3941
+ "additionalProperties": false
3942
+ }
3943
+ ],
3944
+ "description": "Condition (Guard) required to take this path"
3945
+ },
3946
+ "actions": {
3947
+ "type": "array",
3948
+ "items": {
3949
+ "anyOf": [
3950
+ {
3951
+ "type": "string",
3952
+ "description": "Action Name"
3953
+ },
3954
+ {
3955
+ "type": "object",
3956
+ "properties": {
3957
+ "type": {
3958
+ "type": "string"
3959
+ },
3960
+ "params": {
3961
+ "type": "object",
3962
+ "additionalProperties": {}
3963
+ }
3964
+ },
3965
+ "required": [
3966
+ "type"
3967
+ ],
3968
+ "additionalProperties": false
3969
+ }
3970
+ ]
3971
+ },
3972
+ "description": "Actions to execute during transition"
3973
+ },
3974
+ "description": {
3975
+ "type": "string",
3976
+ "description": "Human readable description of this rule"
3977
+ }
3978
+ },
3979
+ "additionalProperties": false
3980
+ }
3981
+ }
3982
+ ]
3983
+ }
3984
+ }
3985
+ },
3986
+ "required": [
3987
+ "id",
3988
+ "initial",
3989
+ "states"
3990
+ ],
3991
+ "additionalProperties": false,
3992
+ "description": "Single state machine for record lifecycle (shorthand)"
3993
+ },
3994
+ "stateMachines": {
3995
+ "type": "object",
3996
+ "additionalProperties": {
3997
+ "type": "object",
3998
+ "properties": {
3999
+ "id": {
4000
+ "type": "string",
4001
+ "minLength": 2,
4002
+ "pattern": "^[a-z][a-z0-9_]*$",
4003
+ "description": "Unique Machine ID"
4004
+ },
4005
+ "description": {
4006
+ "type": "string"
4007
+ },
4008
+ "contextSchema": {
4009
+ "type": "object",
4010
+ "additionalProperties": {},
4011
+ "description": "Zod Schema for the machine context/memory"
4012
+ },
4013
+ "initial": {
4014
+ "type": "string",
4015
+ "description": "Initial State ID"
4016
+ },
4017
+ "states": {
4018
+ "type": "object",
4019
+ "additionalProperties": {
4020
+ "type": "object",
4021
+ "properties": {
4022
+ "type": {
4023
+ "type": "string",
4024
+ "enum": [
4025
+ "atomic",
4026
+ "compound",
4027
+ "parallel",
4028
+ "final",
4029
+ "history"
4030
+ ],
4031
+ "default": "atomic"
4032
+ },
4033
+ "entry": {
4034
+ "type": "array",
4035
+ "items": {
4036
+ "anyOf": [
4037
+ {
4038
+ "type": "string",
4039
+ "description": "Action Name"
4040
+ },
4041
+ {
4042
+ "type": "object",
4043
+ "properties": {
4044
+ "type": {
4045
+ "type": "string"
4046
+ },
4047
+ "params": {
4048
+ "type": "object",
4049
+ "additionalProperties": {}
4050
+ }
4051
+ },
4052
+ "required": [
4053
+ "type"
4054
+ ],
4055
+ "additionalProperties": false
4056
+ }
4057
+ ]
4058
+ },
4059
+ "description": "Actions to run when entering this state"
4060
+ },
4061
+ "exit": {
4062
+ "type": "array",
4063
+ "items": {
4064
+ "anyOf": [
4065
+ {
4066
+ "type": "string",
4067
+ "description": "Action Name"
4068
+ },
4069
+ {
4070
+ "type": "object",
4071
+ "properties": {
4072
+ "type": {
4073
+ "type": "string"
4074
+ },
4075
+ "params": {
4076
+ "type": "object",
4077
+ "additionalProperties": {}
4078
+ }
4079
+ },
4080
+ "required": [
4081
+ "type"
4082
+ ],
4083
+ "additionalProperties": false
4084
+ }
4085
+ ]
4086
+ },
4087
+ "description": "Actions to run when leaving this state"
4088
+ },
4089
+ "on": {
4090
+ "type": "object",
4091
+ "additionalProperties": {
4092
+ "anyOf": [
4093
+ {
4094
+ "type": "string"
4095
+ },
4096
+ {
4097
+ "type": "object",
4098
+ "properties": {
4099
+ "target": {
4100
+ "type": "string",
4101
+ "description": "Target State ID"
4102
+ },
4103
+ "cond": {
4104
+ "anyOf": [
4105
+ {
4106
+ "type": "string",
4107
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
4108
+ },
4109
+ {
4110
+ "type": "object",
4111
+ "properties": {
4112
+ "type": {
4113
+ "type": "string"
4114
+ },
4115
+ "params": {
4116
+ "type": "object",
4117
+ "additionalProperties": {}
4118
+ }
4119
+ },
4120
+ "required": [
4121
+ "type"
4122
+ ],
4123
+ "additionalProperties": false
4124
+ }
4125
+ ],
4126
+ "description": "Condition (Guard) required to take this path"
4127
+ },
4128
+ "actions": {
4129
+ "type": "array",
4130
+ "items": {
4131
+ "anyOf": [
4132
+ {
4133
+ "type": "string",
4134
+ "description": "Action Name"
4135
+ },
4136
+ {
4137
+ "type": "object",
4138
+ "properties": {
4139
+ "type": {
4140
+ "type": "string"
4141
+ },
4142
+ "params": {
4143
+ "type": "object",
4144
+ "additionalProperties": {}
4145
+ }
4146
+ },
4147
+ "required": [
4148
+ "type"
4149
+ ],
4150
+ "additionalProperties": false
4151
+ }
4152
+ ]
4153
+ },
4154
+ "description": "Actions to execute during transition"
4155
+ },
4156
+ "description": {
4157
+ "type": "string",
4158
+ "description": "Human readable description of this rule"
4159
+ }
4160
+ },
4161
+ "additionalProperties": false
4162
+ },
4163
+ {
4164
+ "type": "array",
4165
+ "items": {
4166
+ "type": "object",
4167
+ "properties": {
4168
+ "target": {
4169
+ "type": "string",
4170
+ "description": "Target State ID"
4171
+ },
4172
+ "cond": {
4173
+ "anyOf": [
4174
+ {
4175
+ "type": "string",
4176
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
4177
+ },
4178
+ {
4179
+ "type": "object",
4180
+ "properties": {
4181
+ "type": {
4182
+ "type": "string"
4183
+ },
4184
+ "params": {
4185
+ "type": "object",
4186
+ "additionalProperties": {}
4187
+ }
4188
+ },
4189
+ "required": [
4190
+ "type"
4191
+ ],
4192
+ "additionalProperties": false
4193
+ }
4194
+ ],
4195
+ "description": "Condition (Guard) required to take this path"
4196
+ },
4197
+ "actions": {
4198
+ "type": "array",
4199
+ "items": {
4200
+ "anyOf": [
4201
+ {
4202
+ "type": "string",
4203
+ "description": "Action Name"
4204
+ },
4205
+ {
4206
+ "type": "object",
4207
+ "properties": {
4208
+ "type": {
4209
+ "type": "string"
4210
+ },
4211
+ "params": {
4212
+ "type": "object",
4213
+ "additionalProperties": {}
4214
+ }
4215
+ },
4216
+ "required": [
4217
+ "type"
4218
+ ],
4219
+ "additionalProperties": false
4220
+ }
4221
+ ]
4222
+ },
4223
+ "description": "Actions to execute during transition"
4224
+ },
4225
+ "description": {
4226
+ "type": "string",
4227
+ "description": "Human readable description of this rule"
4228
+ }
4229
+ },
4230
+ "additionalProperties": false
4231
+ }
4232
+ }
4233
+ ]
4234
+ },
4235
+ "description": "Map of Event Type -> Transition Definition"
4236
+ },
4237
+ "always": {
4238
+ "type": "array",
4239
+ "items": {
4240
+ "type": "object",
4241
+ "properties": {
4242
+ "target": {
4243
+ "type": "string",
4244
+ "description": "Target State ID"
4245
+ },
4246
+ "cond": {
4247
+ "anyOf": [
4248
+ {
4249
+ "type": "string",
4250
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
4251
+ },
4252
+ {
4253
+ "type": "object",
4254
+ "properties": {
4255
+ "type": {
4256
+ "type": "string"
4257
+ },
4258
+ "params": {
4259
+ "type": "object",
4260
+ "additionalProperties": {}
4261
+ }
4262
+ },
4263
+ "required": [
4264
+ "type"
4265
+ ],
4266
+ "additionalProperties": false
4267
+ }
4268
+ ],
4269
+ "description": "Condition (Guard) required to take this path"
4270
+ },
4271
+ "actions": {
4272
+ "type": "array",
4273
+ "items": {
4274
+ "anyOf": [
4275
+ {
4276
+ "type": "string",
4277
+ "description": "Action Name"
4278
+ },
4279
+ {
4280
+ "type": "object",
4281
+ "properties": {
4282
+ "type": {
4283
+ "type": "string"
4284
+ },
4285
+ "params": {
4286
+ "type": "object",
4287
+ "additionalProperties": {}
4288
+ }
4289
+ },
4290
+ "required": [
4291
+ "type"
4292
+ ],
4293
+ "additionalProperties": false
4294
+ }
4295
+ ]
4296
+ },
4297
+ "description": "Actions to execute during transition"
4298
+ },
4299
+ "description": {
4300
+ "type": "string",
4301
+ "description": "Human readable description of this rule"
4302
+ }
4303
+ },
4304
+ "additionalProperties": false
4305
+ }
4306
+ },
4307
+ "initial": {
4308
+ "type": "string",
4309
+ "description": "Initial child state (if compound)"
4310
+ },
4311
+ "states": {
4312
+ "type": "object",
4313
+ "additionalProperties": {}
4314
+ },
4315
+ "meta": {
4316
+ "type": "object",
4317
+ "properties": {
4318
+ "label": {
4319
+ "type": "string"
4320
+ },
4321
+ "description": {
4322
+ "type": "string"
4323
+ },
4324
+ "color": {
4325
+ "type": "string"
4326
+ },
4327
+ "aiInstructions": {
4328
+ "type": "string",
4329
+ "description": "Specific instructions for AI when in this state"
4330
+ }
4331
+ },
4332
+ "additionalProperties": false
4333
+ }
4334
+ },
4335
+ "additionalProperties": false
4336
+ },
4337
+ "description": "State Nodes"
4338
+ },
4339
+ "on": {
4340
+ "type": "object",
4341
+ "additionalProperties": {
4342
+ "anyOf": [
4343
+ {
4344
+ "type": "string"
4345
+ },
4346
+ {
4347
+ "type": "object",
4348
+ "properties": {
4349
+ "target": {
4350
+ "type": "string",
4351
+ "description": "Target State ID"
4352
+ },
4353
+ "cond": {
4354
+ "anyOf": [
4355
+ {
4356
+ "type": "string",
4357
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
4358
+ },
4359
+ {
4360
+ "type": "object",
4361
+ "properties": {
4362
+ "type": {
4363
+ "type": "string"
4364
+ },
4365
+ "params": {
4366
+ "type": "object",
4367
+ "additionalProperties": {}
4368
+ }
4369
+ },
4370
+ "required": [
4371
+ "type"
4372
+ ],
4373
+ "additionalProperties": false
4374
+ }
4375
+ ],
4376
+ "description": "Condition (Guard) required to take this path"
4377
+ },
4378
+ "actions": {
4379
+ "type": "array",
4380
+ "items": {
4381
+ "anyOf": [
4382
+ {
4383
+ "type": "string",
4384
+ "description": "Action Name"
4385
+ },
4386
+ {
4387
+ "type": "object",
4388
+ "properties": {
4389
+ "type": {
4390
+ "type": "string"
4391
+ },
4392
+ "params": {
4393
+ "type": "object",
4394
+ "additionalProperties": {}
4395
+ }
4396
+ },
4397
+ "required": [
4398
+ "type"
4399
+ ],
4400
+ "additionalProperties": false
4401
+ }
4402
+ ]
4403
+ },
4404
+ "description": "Actions to execute during transition"
4405
+ },
4406
+ "description": {
4407
+ "type": "string",
4408
+ "description": "Human readable description of this rule"
4409
+ }
4410
+ },
4411
+ "additionalProperties": false
4412
+ },
4413
+ {
4414
+ "type": "array",
4415
+ "items": {
4416
+ "type": "object",
4417
+ "properties": {
4418
+ "target": {
4419
+ "type": "string",
4420
+ "description": "Target State ID"
4421
+ },
4422
+ "cond": {
4423
+ "anyOf": [
4424
+ {
4425
+ "type": "string",
4426
+ "description": "Guard Name (e.g., \"isManager\", \"amountGT1000\")"
4427
+ },
4428
+ {
4429
+ "type": "object",
4430
+ "properties": {
4431
+ "type": {
4432
+ "type": "string"
4433
+ },
4434
+ "params": {
4435
+ "type": "object",
4436
+ "additionalProperties": {}
4437
+ }
4438
+ },
4439
+ "required": [
4440
+ "type"
4441
+ ],
4442
+ "additionalProperties": false
4443
+ }
4444
+ ],
4445
+ "description": "Condition (Guard) required to take this path"
4446
+ },
4447
+ "actions": {
4448
+ "type": "array",
4449
+ "items": {
4450
+ "anyOf": [
4451
+ {
4452
+ "type": "string",
4453
+ "description": "Action Name"
4454
+ },
4455
+ {
4456
+ "type": "object",
4457
+ "properties": {
4458
+ "type": {
4459
+ "type": "string"
4460
+ },
4461
+ "params": {
4462
+ "type": "object",
4463
+ "additionalProperties": {}
4464
+ }
4465
+ },
4466
+ "required": [
4467
+ "type"
4468
+ ],
4469
+ "additionalProperties": false
4470
+ }
4471
+ ]
4472
+ },
4473
+ "description": "Actions to execute during transition"
4474
+ },
4475
+ "description": {
4476
+ "type": "string",
4477
+ "description": "Human readable description of this rule"
4478
+ }
4479
+ },
4480
+ "additionalProperties": false
4481
+ }
4482
+ }
4483
+ ]
4484
+ }
4485
+ }
4486
+ },
4487
+ "required": [
4488
+ "id",
4489
+ "initial",
4490
+ "states"
4491
+ ],
4492
+ "additionalProperties": false
4493
+ },
4494
+ "description": "Named state machines for parallel lifecycles (e.g., status, payment, approval)"
4495
+ },
3495
4496
  "titleFormat": {
3496
4497
  "type": "string",
3497
4498
  "description": "Title expression (e.g. \"{name} - {code}\"). Overrides nameField."