@happyvertical/smrt-app-shell 0.60.18 → 0.61.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 (52) hide show
  1. package/AGENTS.md +51 -9
  2. package/README.md +378 -23
  3. package/agents/draft-ui.md +74 -0
  4. package/agents/engine.md +81 -0
  5. package/agents/shared-pieces.md +127 -0
  6. package/dist/engine/app-runtime.d.ts +7 -0
  7. package/dist/engine/app-runtime.js +30 -3
  8. package/dist/engine/commands.d.ts +23 -0
  9. package/dist/engine/commands.js +29 -0
  10. package/dist/engine/draft.d.ts +31 -0
  11. package/dist/engine/draft.js +88 -0
  12. package/dist/engine/host.d.ts +175 -1
  13. package/dist/engine/host.js +501 -9
  14. package/dist/engine/index.d.ts +4 -2
  15. package/dist/engine/index.js +2 -1
  16. package/dist/engine/publish.d.ts +100 -0
  17. package/dist/engine/publish.js +218 -0
  18. package/dist/engine/store.d.ts +8 -0
  19. package/dist/engine/store.js +8 -0
  20. package/dist/engine/worker-protocol.d.ts +1 -1
  21. package/dist/engine/worker-protocol.js +1 -0
  22. package/dist/lib/objects/App.d.ts +42 -1
  23. package/dist/lib/objects/App.js +72 -4
  24. package/dist/lib/objects/AppDraft.d.ts +31 -0
  25. package/dist/lib/objects/AppDraft.js +73 -0
  26. package/dist/lib/objects/AppDraftVersion.d.ts +25 -0
  27. package/dist/lib/objects/AppDraftVersion.js +68 -0
  28. package/dist/lib/objects/Approval.d.ts +4 -4
  29. package/dist/lib/objects/Approval.js +3 -3
  30. package/dist/lib/objects/index.d.ts +2 -0
  31. package/dist/lib/objects/index.js +2 -0
  32. package/dist/lib/server/approval-store.d.ts +6 -0
  33. package/dist/lib/server/approval-store.js +102 -0
  34. package/dist/lib/server/approvals.d.ts +15 -0
  35. package/dist/lib/server/approvals.js +62 -43
  36. package/dist/lib/server/builder.d.ts +18 -10
  37. package/dist/lib/server/builder.js +46 -18
  38. package/dist/lib/server/drafts.d.ts +100 -0
  39. package/dist/lib/server/drafts.js +324 -0
  40. package/dist/lib/server/events.d.ts +14 -0
  41. package/dist/lib/server/events.js +3 -0
  42. package/dist/lib/server/host.d.ts +44 -2
  43. package/dist/lib/server/host.js +155 -11
  44. package/dist/lib/server/results.d.ts +6 -0
  45. package/dist/lib/server/results.js +8 -0
  46. package/dist/lib/server/target.d.ts +24 -0
  47. package/dist/lib/server/target.js +64 -0
  48. package/dist/lib/server/version-store.d.ts +40 -1
  49. package/dist/lib/server/version-store.js +144 -32
  50. package/dist/manifest.json +699 -6
  51. package/dist/smrt-knowledge.okf.md +19 -2
  52. package/package.json +19 -15
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-app-shell",
5
- "packageVersion": "0.60.18",
5
+ "packageVersion": "0.61.0",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-app-shell:App": {
8
8
  "name": "app",
@@ -266,6 +266,64 @@
266
266
  "isStatic": true,
267
267
  "isPublic": true
268
268
  },
269
+ "undoTo": {
270
+ "name": "undoTo",
271
+ "async": true,
272
+ "parameters": [
273
+ {
274
+ "name": "version",
275
+ "type": "number",
276
+ "optional": false
277
+ }
278
+ ],
279
+ "returnType": "any",
280
+ "isStatic": true,
281
+ "isPublic": true
282
+ },
283
+ "startDraft": {
284
+ "name": "startDraft",
285
+ "async": true,
286
+ "parameters": [
287
+ {
288
+ "name": "name",
289
+ "type": "string",
290
+ "optional": true
291
+ }
292
+ ],
293
+ "returnType": "any",
294
+ "isStatic": true,
295
+ "isPublic": true
296
+ },
297
+ "previewPublish": {
298
+ "name": "previewPublish",
299
+ "async": true,
300
+ "parameters": [],
301
+ "returnType": "any",
302
+ "isStatic": true,
303
+ "isPublic": true
304
+ },
305
+ "publishDraft": {
306
+ "name": "publishDraft",
307
+ "async": true,
308
+ "parameters": [
309
+ {
310
+ "name": "expect",
311
+ "type": "string",
312
+ "optional": true
313
+ }
314
+ ],
315
+ "returnType": "any",
316
+ "isStatic": true,
317
+ "isPublic": true
318
+ },
319
+ "discardDraft": {
320
+ "name": "discardDraft",
321
+ "async": true,
322
+ "parameters": [],
323
+ "returnType": "any",
324
+ "isStatic": true,
325
+ "isPublic": true
326
+ },
269
327
  "describe": {
270
328
  "name": "describe",
271
329
  "async": true,
@@ -304,7 +362,12 @@
304
362
  "exportTemplate",
305
363
  "importTemplate",
306
364
  "describe",
307
- "history"
365
+ "history",
366
+ "undoTo",
367
+ "startDraft",
368
+ "previewPublish",
369
+ "publishDraft",
370
+ "discardDraft"
308
371
  ]
309
372
  },
310
373
  "mcp": {
@@ -323,7 +386,12 @@
323
386
  "exportTemplate",
324
387
  "importTemplate",
325
388
  "describe",
326
- "history"
389
+ "history",
390
+ "undoTo",
391
+ "startDraft",
392
+ "previewPublish",
393
+ "publishDraft",
394
+ "discardDraft"
327
395
  ]
328
396
  },
329
397
  "cli": {
@@ -342,7 +410,12 @@
342
410
  "exportTemplate",
343
411
  "importTemplate",
344
412
  "describe",
345
- "history"
413
+ "history",
414
+ "undoTo",
415
+ "startDraft",
416
+ "previewPublish",
417
+ "publishDraft",
418
+ "discardDraft"
346
419
  ]
347
420
  },
348
421
  "operationPermissions": {
@@ -390,6 +463,21 @@
390
463
  },
391
464
  "history": {
392
465
  "action": "read"
466
+ },
467
+ "undoTo": {
468
+ "action": "update"
469
+ },
470
+ "startDraft": {
471
+ "action": "update"
472
+ },
473
+ "previewPublish": {
474
+ "action": "read"
475
+ },
476
+ "publishDraft": {
477
+ "action": "update"
478
+ },
479
+ "discardDraft": {
480
+ "action": "update"
393
481
  }
394
482
  }
395
483
  },
@@ -568,6 +656,604 @@
568
656
  },
569
657
  "importPath": "@happyvertical/smrt-app-shell"
570
658
  },
659
+ "@happyvertical/smrt-app-shell:AppDraft": {
660
+ "name": "appdraft",
661
+ "className": "AppDraft",
662
+ "qualifiedName": "@happyvertical/smrt-app-shell:AppDraft",
663
+ "collection": "appdrafts",
664
+ "description": "One draft of the user app (shell.db): a test copy the owner builds in while the live app keeps serving records. At most one is starting or open at a time.",
665
+ "filePath": "/home/runner/work/smrt/smrt/packages/app-shell/src/lib/objects/AppDraft.ts",
666
+ "packageName": "@happyvertical/smrt-app-shell",
667
+ "fields": {
668
+ "name": {
669
+ "type": "text",
670
+ "required": true,
671
+ "_meta": {
672
+ "required": true
673
+ }
674
+ },
675
+ "status": {
676
+ "type": "text",
677
+ "required": false,
678
+ "_meta": {},
679
+ "enum": [
680
+ "starting",
681
+ "open",
682
+ "published",
683
+ "discarded"
684
+ ]
685
+ },
686
+ "baseVersion": {
687
+ "type": "integer",
688
+ "required": false,
689
+ "_meta": {}
690
+ },
691
+ "currentVersion": {
692
+ "type": "integer",
693
+ "required": false,
694
+ "_meta": {}
695
+ },
696
+ "createdBy": {
697
+ "type": "text",
698
+ "required": false,
699
+ "_meta": {}
700
+ },
701
+ "createdAt": {
702
+ "type": "text",
703
+ "required": false,
704
+ "_meta": {}
705
+ },
706
+ "endedAt": {
707
+ "type": "text",
708
+ "required": false,
709
+ "_meta": {}
710
+ },
711
+ "publishedVersions": {
712
+ "type": "text",
713
+ "required": false,
714
+ "_meta": {}
715
+ },
716
+ "note": {
717
+ "type": "text",
718
+ "required": false,
719
+ "_meta": {}
720
+ }
721
+ },
722
+ "methods": {},
723
+ "decoratorConfig": {
724
+ "tableName": "app_drafts",
725
+ "api": false,
726
+ "mcp": false,
727
+ "cli": false,
728
+ "conflictColumns": [
729
+ "id"
730
+ ]
731
+ },
732
+ "extends": "SmrtObject",
733
+ "exportName": "AppDraft",
734
+ "collectionExportName": "AppDraftCollection",
735
+ "displayLabelField": "name",
736
+ "validationRules": [
737
+ {
738
+ "field": "name",
739
+ "rule": "required",
740
+ "fieldType": "text"
741
+ }
742
+ ],
743
+ "schema": {
744
+ "tableName": "app_drafts",
745
+ "ddl": "CREATE TABLE IF NOT EXISTS \"app_drafts\" (\n \"_sync_origin_device_id\" TEXT,\n \"_sync_revision\" INTEGER,\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"name\" TEXT NOT NULL,\n \"status\" TEXT,\n \"base_version\" INTEGER,\n \"current_version\" INTEGER,\n \"created_by\" TEXT,\n \"ended_at\" TEXT,\n \"published_versions\" TEXT,\n \"note\" TEXT\n);",
746
+ "columns": {
747
+ "_sync_origin_device_id": {
748
+ "type": "TEXT"
749
+ },
750
+ "_sync_revision": {
751
+ "type": "INTEGER"
752
+ },
753
+ "id": {
754
+ "type": "UUID",
755
+ "primaryKey": true,
756
+ "referenceKind": "id",
757
+ "notNull": true
758
+ },
759
+ "slug": {
760
+ "type": "TEXT",
761
+ "notNull": true
762
+ },
763
+ "context": {
764
+ "type": "TEXT",
765
+ "notNull": true,
766
+ "default": ""
767
+ },
768
+ "created_at": {
769
+ "type": "TIMESTAMP",
770
+ "notNull": true,
771
+ "default": "current_timestamp"
772
+ },
773
+ "updated_at": {
774
+ "type": "TIMESTAMP",
775
+ "notNull": true,
776
+ "default": "current_timestamp"
777
+ },
778
+ "name": {
779
+ "type": "TEXT",
780
+ "notNull": true,
781
+ "unique": false
782
+ },
783
+ "status": {
784
+ "type": "TEXT",
785
+ "notNull": false,
786
+ "unique": false
787
+ },
788
+ "base_version": {
789
+ "type": "INTEGER",
790
+ "notNull": false,
791
+ "unique": false
792
+ },
793
+ "current_version": {
794
+ "type": "INTEGER",
795
+ "notNull": false,
796
+ "unique": false
797
+ },
798
+ "created_by": {
799
+ "type": "TEXT",
800
+ "notNull": false,
801
+ "unique": false
802
+ },
803
+ "ended_at": {
804
+ "type": "TEXT",
805
+ "notNull": false,
806
+ "unique": false
807
+ },
808
+ "published_versions": {
809
+ "type": "TEXT",
810
+ "notNull": false,
811
+ "unique": false
812
+ },
813
+ "note": {
814
+ "type": "TEXT",
815
+ "notNull": false,
816
+ "unique": false
817
+ }
818
+ },
819
+ "indexes": [
820
+ {
821
+ "name": "app_drafts_slug_context_idx",
822
+ "columns": [
823
+ "slug",
824
+ "context"
825
+ ]
826
+ },
827
+ {
828
+ "name": "app_drafts_created_at_idx",
829
+ "columns": [
830
+ "created_at"
831
+ ]
832
+ }
833
+ ],
834
+ "version": "d80e96fc"
835
+ },
836
+ "importPath": "@happyvertical/smrt-app-shell"
837
+ },
838
+ "@happyvertical/smrt-app-shell:AppDraftCollection": {
839
+ "name": "appdraftcollection",
840
+ "className": "AppDraftCollection",
841
+ "qualifiedName": "@happyvertical/smrt-app-shell:AppDraftCollection",
842
+ "collection": "appdrafts",
843
+ "filePath": "/home/runner/work/smrt/smrt/packages/app-shell/src/lib/objects/AppDraft.ts",
844
+ "packageName": "@happyvertical/smrt-app-shell",
845
+ "fields": {},
846
+ "methods": {},
847
+ "decoratorConfig": {
848
+ "tableName": "app_drafts",
849
+ "api": false,
850
+ "mcp": false,
851
+ "cli": false
852
+ },
853
+ "extends": "SmrtCollection",
854
+ "extendsTypeArg": "AppDraft",
855
+ "exportName": "AppDraftCollection",
856
+ "collectionExportName": "AppDraftCollectionCollection",
857
+ "collectionOf": "@happyvertical/smrt-app-shell:AppDraft",
858
+ "inheritedExposure": [
859
+ "api",
860
+ "mcp",
861
+ "cli"
862
+ ],
863
+ "schema": {
864
+ "tableName": "app_drafts",
865
+ "ddl": "CREATE TABLE IF NOT EXISTS \"app_drafts\" (\n \"_sync_origin_device_id\" TEXT,\n \"_sync_revision\" INTEGER,\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"name\" TEXT NOT NULL,\n \"status\" TEXT,\n \"base_version\" INTEGER,\n \"current_version\" INTEGER,\n \"created_by\" TEXT,\n \"ended_at\" TEXT,\n \"published_versions\" TEXT,\n \"note\" TEXT\n);",
866
+ "columns": {
867
+ "_sync_origin_device_id": {
868
+ "type": "TEXT"
869
+ },
870
+ "_sync_revision": {
871
+ "type": "INTEGER"
872
+ },
873
+ "id": {
874
+ "type": "UUID",
875
+ "primaryKey": true,
876
+ "referenceKind": "id",
877
+ "notNull": true
878
+ },
879
+ "slug": {
880
+ "type": "TEXT",
881
+ "notNull": true
882
+ },
883
+ "context": {
884
+ "type": "TEXT",
885
+ "notNull": true,
886
+ "default": ""
887
+ },
888
+ "created_at": {
889
+ "type": "TIMESTAMP",
890
+ "notNull": true,
891
+ "default": "current_timestamp"
892
+ },
893
+ "updated_at": {
894
+ "type": "TIMESTAMP",
895
+ "notNull": true,
896
+ "default": "current_timestamp"
897
+ },
898
+ "name": {
899
+ "type": "TEXT",
900
+ "notNull": true,
901
+ "unique": false
902
+ },
903
+ "status": {
904
+ "type": "TEXT",
905
+ "notNull": false,
906
+ "unique": false
907
+ },
908
+ "base_version": {
909
+ "type": "INTEGER",
910
+ "notNull": false,
911
+ "unique": false
912
+ },
913
+ "current_version": {
914
+ "type": "INTEGER",
915
+ "notNull": false,
916
+ "unique": false
917
+ },
918
+ "created_by": {
919
+ "type": "TEXT",
920
+ "notNull": false,
921
+ "unique": false
922
+ },
923
+ "ended_at": {
924
+ "type": "TEXT",
925
+ "notNull": false,
926
+ "unique": false
927
+ },
928
+ "published_versions": {
929
+ "type": "TEXT",
930
+ "notNull": false,
931
+ "unique": false
932
+ },
933
+ "note": {
934
+ "type": "TEXT",
935
+ "notNull": false,
936
+ "unique": false
937
+ }
938
+ },
939
+ "indexes": [
940
+ {
941
+ "name": "app_drafts_slug_context_idx",
942
+ "columns": [
943
+ "slug",
944
+ "context"
945
+ ]
946
+ },
947
+ {
948
+ "name": "app_drafts_created_at_idx",
949
+ "columns": [
950
+ "created_at"
951
+ ]
952
+ }
953
+ ],
954
+ "version": "d80e96fc"
955
+ },
956
+ "importPath": "@happyvertical/smrt-app-shell"
957
+ },
958
+ "@happyvertical/smrt-app-shell:AppDraftVersion": {
959
+ "name": "appdraftversion",
960
+ "className": "AppDraftVersion",
961
+ "qualifiedName": "@happyvertical/smrt-app-shell:AppDraftVersion",
962
+ "collection": "appdraftversions",
963
+ "description": "One version of a draft's definition (shell.db), the same shape as AppVersion plus the draft it belongs to.",
964
+ "filePath": "/home/runner/work/smrt/smrt/packages/app-shell/src/lib/objects/AppDraftVersion.ts",
965
+ "packageName": "@happyvertical/smrt-app-shell",
966
+ "fields": {
967
+ "draftId": {
968
+ "type": "text",
969
+ "required": true,
970
+ "_meta": {
971
+ "required": true
972
+ }
973
+ },
974
+ "version": {
975
+ "type": "integer",
976
+ "required": true,
977
+ "_meta": {
978
+ "required": true
979
+ }
980
+ },
981
+ "parent": {
982
+ "type": "integer",
983
+ "required": false,
984
+ "_meta": {}
985
+ },
986
+ "author": {
987
+ "type": "text",
988
+ "required": false,
989
+ "_meta": {}
990
+ },
991
+ "summary": {
992
+ "type": "text",
993
+ "required": false,
994
+ "_meta": {}
995
+ },
996
+ "definition": {
997
+ "type": "text",
998
+ "required": false,
999
+ "_meta": {}
1000
+ },
1001
+ "migration": {
1002
+ "type": "text",
1003
+ "required": false,
1004
+ "_meta": {}
1005
+ },
1006
+ "createdAt": {
1007
+ "type": "text",
1008
+ "required": false,
1009
+ "_meta": {}
1010
+ },
1011
+ "purged": {
1012
+ "type": "boolean",
1013
+ "required": false,
1014
+ "_meta": {}
1015
+ }
1016
+ },
1017
+ "methods": {},
1018
+ "decoratorConfig": {
1019
+ "tableName": "app_draft_versions",
1020
+ "api": false,
1021
+ "mcp": false,
1022
+ "cli": false,
1023
+ "conflictColumns": [
1024
+ "id"
1025
+ ]
1026
+ },
1027
+ "extends": "SmrtObject",
1028
+ "exportName": "AppDraftVersion",
1029
+ "collectionExportName": "AppDraftVersionCollection",
1030
+ "validationRules": [
1031
+ {
1032
+ "field": "draftId",
1033
+ "rule": "required",
1034
+ "fieldType": "text"
1035
+ },
1036
+ {
1037
+ "field": "version",
1038
+ "rule": "required",
1039
+ "fieldType": "integer"
1040
+ }
1041
+ ],
1042
+ "schema": {
1043
+ "tableName": "app_draft_versions",
1044
+ "ddl": "CREATE TABLE IF NOT EXISTS \"app_draft_versions\" (\n \"_sync_origin_device_id\" TEXT,\n \"_sync_revision\" INTEGER,\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"draft_id\" TEXT NOT NULL,\n \"version\" INTEGER NOT NULL,\n \"parent\" INTEGER,\n \"author\" TEXT,\n \"summary\" TEXT,\n \"definition\" TEXT,\n \"migration\" TEXT,\n \"purged\" BOOLEAN\n);",
1045
+ "columns": {
1046
+ "_sync_origin_device_id": {
1047
+ "type": "TEXT"
1048
+ },
1049
+ "_sync_revision": {
1050
+ "type": "INTEGER"
1051
+ },
1052
+ "id": {
1053
+ "type": "UUID",
1054
+ "primaryKey": true,
1055
+ "referenceKind": "id",
1056
+ "notNull": true
1057
+ },
1058
+ "slug": {
1059
+ "type": "TEXT",
1060
+ "notNull": true
1061
+ },
1062
+ "context": {
1063
+ "type": "TEXT",
1064
+ "notNull": true,
1065
+ "default": ""
1066
+ },
1067
+ "created_at": {
1068
+ "type": "TIMESTAMP",
1069
+ "notNull": true,
1070
+ "default": "current_timestamp"
1071
+ },
1072
+ "updated_at": {
1073
+ "type": "TIMESTAMP",
1074
+ "notNull": true,
1075
+ "default": "current_timestamp"
1076
+ },
1077
+ "draft_id": {
1078
+ "type": "TEXT",
1079
+ "notNull": true,
1080
+ "unique": false
1081
+ },
1082
+ "version": {
1083
+ "type": "INTEGER",
1084
+ "notNull": true,
1085
+ "unique": false
1086
+ },
1087
+ "parent": {
1088
+ "type": "INTEGER",
1089
+ "notNull": false,
1090
+ "unique": false
1091
+ },
1092
+ "author": {
1093
+ "type": "TEXT",
1094
+ "notNull": false,
1095
+ "unique": false
1096
+ },
1097
+ "summary": {
1098
+ "type": "TEXT",
1099
+ "notNull": false,
1100
+ "unique": false
1101
+ },
1102
+ "definition": {
1103
+ "type": "TEXT",
1104
+ "notNull": false,
1105
+ "unique": false
1106
+ },
1107
+ "migration": {
1108
+ "type": "TEXT",
1109
+ "notNull": false,
1110
+ "unique": false
1111
+ },
1112
+ "purged": {
1113
+ "type": "BOOLEAN",
1114
+ "notNull": false,
1115
+ "unique": false
1116
+ }
1117
+ },
1118
+ "indexes": [
1119
+ {
1120
+ "name": "app_draft_versions_slug_context_idx",
1121
+ "columns": [
1122
+ "slug",
1123
+ "context"
1124
+ ]
1125
+ },
1126
+ {
1127
+ "name": "app_draft_versions_created_at_idx",
1128
+ "columns": [
1129
+ "created_at"
1130
+ ]
1131
+ }
1132
+ ],
1133
+ "version": "ccb7abb4"
1134
+ },
1135
+ "importPath": "@happyvertical/smrt-app-shell"
1136
+ },
1137
+ "@happyvertical/smrt-app-shell:AppDraftVersionCollection": {
1138
+ "name": "appdraftversioncollection",
1139
+ "className": "AppDraftVersionCollection",
1140
+ "qualifiedName": "@happyvertical/smrt-app-shell:AppDraftVersionCollection",
1141
+ "collection": "appdraftversions",
1142
+ "filePath": "/home/runner/work/smrt/smrt/packages/app-shell/src/lib/objects/AppDraftVersion.ts",
1143
+ "packageName": "@happyvertical/smrt-app-shell",
1144
+ "fields": {},
1145
+ "methods": {},
1146
+ "decoratorConfig": {
1147
+ "tableName": "app_draft_versions",
1148
+ "api": false,
1149
+ "mcp": false,
1150
+ "cli": false
1151
+ },
1152
+ "extends": "SmrtCollection",
1153
+ "extendsTypeArg": "AppDraftVersion",
1154
+ "exportName": "AppDraftVersionCollection",
1155
+ "collectionExportName": "AppDraftVersionCollectionCollection",
1156
+ "collectionOf": "@happyvertical/smrt-app-shell:AppDraftVersion",
1157
+ "inheritedExposure": [
1158
+ "api",
1159
+ "mcp",
1160
+ "cli"
1161
+ ],
1162
+ "schema": {
1163
+ "tableName": "app_draft_versions",
1164
+ "ddl": "CREATE TABLE IF NOT EXISTS \"app_draft_versions\" (\n \"_sync_origin_device_id\" TEXT,\n \"_sync_revision\" INTEGER,\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"draft_id\" TEXT NOT NULL,\n \"version\" INTEGER NOT NULL,\n \"parent\" INTEGER,\n \"author\" TEXT,\n \"summary\" TEXT,\n \"definition\" TEXT,\n \"migration\" TEXT,\n \"purged\" BOOLEAN\n);",
1165
+ "columns": {
1166
+ "_sync_origin_device_id": {
1167
+ "type": "TEXT"
1168
+ },
1169
+ "_sync_revision": {
1170
+ "type": "INTEGER"
1171
+ },
1172
+ "id": {
1173
+ "type": "UUID",
1174
+ "primaryKey": true,
1175
+ "referenceKind": "id",
1176
+ "notNull": true
1177
+ },
1178
+ "slug": {
1179
+ "type": "TEXT",
1180
+ "notNull": true
1181
+ },
1182
+ "context": {
1183
+ "type": "TEXT",
1184
+ "notNull": true,
1185
+ "default": ""
1186
+ },
1187
+ "created_at": {
1188
+ "type": "TIMESTAMP",
1189
+ "notNull": true,
1190
+ "default": "current_timestamp"
1191
+ },
1192
+ "updated_at": {
1193
+ "type": "TIMESTAMP",
1194
+ "notNull": true,
1195
+ "default": "current_timestamp"
1196
+ },
1197
+ "draft_id": {
1198
+ "type": "TEXT",
1199
+ "notNull": true,
1200
+ "unique": false
1201
+ },
1202
+ "version": {
1203
+ "type": "INTEGER",
1204
+ "notNull": true,
1205
+ "unique": false
1206
+ },
1207
+ "parent": {
1208
+ "type": "INTEGER",
1209
+ "notNull": false,
1210
+ "unique": false
1211
+ },
1212
+ "author": {
1213
+ "type": "TEXT",
1214
+ "notNull": false,
1215
+ "unique": false
1216
+ },
1217
+ "summary": {
1218
+ "type": "TEXT",
1219
+ "notNull": false,
1220
+ "unique": false
1221
+ },
1222
+ "definition": {
1223
+ "type": "TEXT",
1224
+ "notNull": false,
1225
+ "unique": false
1226
+ },
1227
+ "migration": {
1228
+ "type": "TEXT",
1229
+ "notNull": false,
1230
+ "unique": false
1231
+ },
1232
+ "purged": {
1233
+ "type": "BOOLEAN",
1234
+ "notNull": false,
1235
+ "unique": false
1236
+ }
1237
+ },
1238
+ "indexes": [
1239
+ {
1240
+ "name": "app_draft_versions_slug_context_idx",
1241
+ "columns": [
1242
+ "slug",
1243
+ "context"
1244
+ ]
1245
+ },
1246
+ {
1247
+ "name": "app_draft_versions_created_at_idx",
1248
+ "columns": [
1249
+ "created_at"
1250
+ ]
1251
+ }
1252
+ ],
1253
+ "version": "ccb7abb4"
1254
+ },
1255
+ "importPath": "@happyvertical/smrt-app-shell"
1256
+ },
571
1257
  "@happyvertical/smrt-app-shell:AppVersion": {
572
1258
  "name": "appversion",
573
1259
  "className": "AppVersion",
@@ -850,7 +1536,7 @@
850
1536
  "className": "Approval",
851
1537
  "qualifiedName": "@happyvertical/smrt-app-shell:Approval",
852
1538
  "collection": "approvals",
853
- "description": "A risky change waiting for the owner.",
1539
+ "description": "Compatibility facade for installed Tricia approval storage and generated decide/pending operations.",
854
1540
  "filePath": "/home/runner/work/smrt/smrt/packages/app-shell/src/lib/objects/Approval.ts",
855
1541
  "packageName": "@happyvertical/smrt-app-shell",
856
1542
  "fields": {
@@ -882,7 +1568,10 @@
882
1568
  "pending",
883
1569
  "approved",
884
1570
  "denied",
885
- "failed"
1571
+ "failed",
1572
+ "accepted",
1573
+ "executing",
1574
+ "expired"
886
1575
  ]
887
1576
  },
888
1577
  "requestedBy": {
@@ -1672,8 +2361,12 @@
1672
2361
  "smrtDependencies": [
1673
2362
  "@happyvertical/smrt-app-mcp",
1674
2363
  "@happyvertical/smrt-app-runtime",
2364
+ "@happyvertical/smrt-chat",
1675
2365
  "@happyvertical/smrt-core",
2366
+ "@happyvertical/smrt-inference",
2367
+ "@happyvertical/smrt-preferences",
1676
2368
  "@happyvertical/smrt-profiles",
2369
+ "@happyvertical/smrt-secrets",
1677
2370
  "@happyvertical/smrt-tenancy",
1678
2371
  "@happyvertical/smrt-users"
1679
2372
  ]