@memberjunction/cli 5.40.1 → 5.41.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.
- package/dist/commands/sync/push.d.ts +1 -0
- package/dist/commands/sync/push.d.ts.map +1 -1
- package/dist/commands/sync/push.js +90 -19
- package/dist/commands/sync/push.js.map +1 -1
- package/dist/hooks/prerun.d.ts.map +1 -1
- package/dist/hooks/prerun.js +15 -9
- package/dist/hooks/prerun.js.map +1 -1
- package/dist/light-commands.d.ts.map +1 -1
- package/dist/light-commands.js +4 -0
- package/dist/light-commands.js.map +1 -1
- package/oclif.manifest.json +802 -796
- package/package.json +18 -18
package/oclif.manifest.json
CHANGED
|
@@ -338,67 +338,6 @@
|
|
|
338
338
|
"upgrade.js"
|
|
339
339
|
]
|
|
340
340
|
},
|
|
341
|
-
"artifacts:reclassify": {
|
|
342
|
-
"aliases": [],
|
|
343
|
-
"args": {},
|
|
344
|
-
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
345
|
-
"examples": [
|
|
346
|
-
"<%= config.bin %> <%= command.id %>",
|
|
347
|
-
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
348
|
-
],
|
|
349
|
-
"flags": {
|
|
350
|
-
"conversation-id": {
|
|
351
|
-
"description": "Scope to artifacts attached to the given conversation.",
|
|
352
|
-
"name": "conversation-id",
|
|
353
|
-
"hasDynamicHelp": false,
|
|
354
|
-
"multiple": false,
|
|
355
|
-
"type": "option"
|
|
356
|
-
},
|
|
357
|
-
"since": {
|
|
358
|
-
"description": "Scope to artifacts created on/after this ISO date.",
|
|
359
|
-
"name": "since",
|
|
360
|
-
"hasDynamicHelp": false,
|
|
361
|
-
"multiple": false,
|
|
362
|
-
"type": "option"
|
|
363
|
-
},
|
|
364
|
-
"limit": {
|
|
365
|
-
"description": "Maximum number of rows to inspect.",
|
|
366
|
-
"name": "limit",
|
|
367
|
-
"default": 100,
|
|
368
|
-
"hasDynamicHelp": false,
|
|
369
|
-
"multiple": false,
|
|
370
|
-
"type": "option"
|
|
371
|
-
},
|
|
372
|
-
"apply": {
|
|
373
|
-
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
374
|
-
"name": "apply",
|
|
375
|
-
"allowNo": false,
|
|
376
|
-
"type": "boolean"
|
|
377
|
-
},
|
|
378
|
-
"verbose": {
|
|
379
|
-
"char": "v",
|
|
380
|
-
"description": "Print every candidate row, not just the summary.",
|
|
381
|
-
"name": "verbose",
|
|
382
|
-
"allowNo": false,
|
|
383
|
-
"type": "boolean"
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
|
-
"hasDynamicHelp": false,
|
|
387
|
-
"hiddenAliases": [],
|
|
388
|
-
"id": "artifacts:reclassify",
|
|
389
|
-
"pluginAlias": "@memberjunction/cli",
|
|
390
|
-
"pluginName": "@memberjunction/cli",
|
|
391
|
-
"pluginType": "core",
|
|
392
|
-
"strict": true,
|
|
393
|
-
"enableJsonFlag": false,
|
|
394
|
-
"isESM": true,
|
|
395
|
-
"relativePath": [
|
|
396
|
-
"dist",
|
|
397
|
-
"commands",
|
|
398
|
-
"artifacts",
|
|
399
|
-
"reclassify.js"
|
|
400
|
-
]
|
|
401
|
-
},
|
|
402
341
|
"baseline:build": {
|
|
403
342
|
"aliases": [],
|
|
404
343
|
"args": {},
|
|
@@ -737,6 +676,67 @@
|
|
|
737
676
|
"roundtrip.js"
|
|
738
677
|
]
|
|
739
678
|
},
|
|
679
|
+
"artifacts:reclassify": {
|
|
680
|
+
"aliases": [],
|
|
681
|
+
"args": {},
|
|
682
|
+
"description": "Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. Normally a no-op: the v5.35 backfill migration handles this automatically. This command is only relevant when the migration ran BEFORE the artifact-type metadata (Generic Text / Generic Binary) was pushed via `mj sync push`, in which case the migration prints a notice telling you to run this. Reports \"no candidates\" once everything is reconciled. Dry-run by default; --apply writes through Record Changes.",
|
|
683
|
+
"examples": [
|
|
684
|
+
"<%= config.bin %> <%= command.id %>",
|
|
685
|
+
"<%= config.bin %> <%= command.id %> --apply --limit 50"
|
|
686
|
+
],
|
|
687
|
+
"flags": {
|
|
688
|
+
"conversation-id": {
|
|
689
|
+
"description": "Scope to artifacts attached to the given conversation.",
|
|
690
|
+
"name": "conversation-id",
|
|
691
|
+
"hasDynamicHelp": false,
|
|
692
|
+
"multiple": false,
|
|
693
|
+
"type": "option"
|
|
694
|
+
},
|
|
695
|
+
"since": {
|
|
696
|
+
"description": "Scope to artifacts created on/after this ISO date.",
|
|
697
|
+
"name": "since",
|
|
698
|
+
"hasDynamicHelp": false,
|
|
699
|
+
"multiple": false,
|
|
700
|
+
"type": "option"
|
|
701
|
+
},
|
|
702
|
+
"limit": {
|
|
703
|
+
"description": "Maximum number of rows to inspect.",
|
|
704
|
+
"name": "limit",
|
|
705
|
+
"default": 100,
|
|
706
|
+
"hasDynamicHelp": false,
|
|
707
|
+
"multiple": false,
|
|
708
|
+
"type": "option"
|
|
709
|
+
},
|
|
710
|
+
"apply": {
|
|
711
|
+
"description": "Write changes. Without this flag, this command only reports what it would do.",
|
|
712
|
+
"name": "apply",
|
|
713
|
+
"allowNo": false,
|
|
714
|
+
"type": "boolean"
|
|
715
|
+
},
|
|
716
|
+
"verbose": {
|
|
717
|
+
"char": "v",
|
|
718
|
+
"description": "Print every candidate row, not just the summary.",
|
|
719
|
+
"name": "verbose",
|
|
720
|
+
"allowNo": false,
|
|
721
|
+
"type": "boolean"
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"hasDynamicHelp": false,
|
|
725
|
+
"hiddenAliases": [],
|
|
726
|
+
"id": "artifacts:reclassify",
|
|
727
|
+
"pluginAlias": "@memberjunction/cli",
|
|
728
|
+
"pluginName": "@memberjunction/cli",
|
|
729
|
+
"pluginType": "core",
|
|
730
|
+
"strict": true,
|
|
731
|
+
"enableJsonFlag": false,
|
|
732
|
+
"isESM": true,
|
|
733
|
+
"relativePath": [
|
|
734
|
+
"dist",
|
|
735
|
+
"commands",
|
|
736
|
+
"artifacts",
|
|
737
|
+
"reclassify.js"
|
|
738
|
+
]
|
|
739
|
+
},
|
|
740
740
|
"bump": {
|
|
741
741
|
"aliases": [],
|
|
742
742
|
"args": {},
|
|
@@ -921,38 +921,68 @@
|
|
|
921
921
|
"index.js"
|
|
922
922
|
]
|
|
923
923
|
},
|
|
924
|
-
"
|
|
924
|
+
"codegen:5-0-fix-entity-names": {
|
|
925
925
|
"aliases": [],
|
|
926
926
|
"args": {},
|
|
927
|
-
"description": "
|
|
927
|
+
"description": "[v5.0 Migration] Scan TypeScript files for entity names AND class names that need updating.\n\nThree strategies are applied:\n 1. Class name renames (regex) — ActionEntity -> MJActionEntity, ActionSchema -> MJActionSchema,\n ActionEntityExtended -> MJActionEntityExtended (extended subclasses),\n ActionEntityServerEntity -> MJActionEntityServer (server subclass suffix standardization),\n ActionFormComponentExtended -> MJActionFormComponentExtended (Angular form components).\n Explicit subclass mappings (57 entries from subclass-rename-map.json) take priority over\n auto-generated suffix rules, enabling suffix changes (e.g., _Server -> Server, ServerEntity -> Server).\n 2. Multi-word entity name renames (regex) — 'AI Models' -> 'MJ: AI Models'\n 3. Single-word entity name renames (AST) — 'Actions' -> 'MJ: Actions' in GetEntityObject, OpenEntityRecord,\n navigateToEntity, EntityName: assignments, .Name === comparisons, @RegisterClass decorators.\n\nThe rename map (272 entity entries + 57 subclass entries) is built from entity_subclasses.ts @RegisterClass\ndecorators plus embedded rename maps. Runs in dry-run mode by default; use --fix to apply.",
|
|
928
928
|
"examples": [
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
929
|
+
{
|
|
930
|
+
"description": "Dry-run scan of the packages directory",
|
|
931
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/"
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"description": "Scan a single file",
|
|
935
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"description": "Apply fixes across the codebase",
|
|
939
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"description": "Quiet mode (summary only)",
|
|
943
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
944
|
+
}
|
|
932
945
|
],
|
|
933
946
|
"flags": {
|
|
934
|
-
"
|
|
935
|
-
"char": "
|
|
936
|
-
"description": "
|
|
937
|
-
"name": "
|
|
938
|
-
"required": false,
|
|
947
|
+
"path": {
|
|
948
|
+
"char": "p",
|
|
949
|
+
"description": "File or directory to scan. Accepts a single .ts file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
950
|
+
"name": "path",
|
|
939
951
|
"hasDynamicHelp": false,
|
|
940
952
|
"multiple": false,
|
|
941
953
|
"type": "option"
|
|
942
954
|
},
|
|
943
|
-
"
|
|
944
|
-
"
|
|
945
|
-
"
|
|
946
|
-
"
|
|
947
|
-
"
|
|
955
|
+
"fix": {
|
|
956
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
957
|
+
"name": "fix",
|
|
958
|
+
"allowNo": false,
|
|
959
|
+
"type": "boolean"
|
|
960
|
+
},
|
|
961
|
+
"entity-subclasses": {
|
|
962
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
963
|
+
"name": "entity-subclasses",
|
|
948
964
|
"hasDynamicHelp": false,
|
|
949
965
|
"multiple": false,
|
|
950
966
|
"type": "option"
|
|
967
|
+
},
|
|
968
|
+
"quiet": {
|
|
969
|
+
"char": "q",
|
|
970
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
971
|
+
"name": "quiet",
|
|
972
|
+
"allowNo": false,
|
|
973
|
+
"type": "boolean"
|
|
974
|
+
},
|
|
975
|
+
"verbose": {
|
|
976
|
+
"char": "v",
|
|
977
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
978
|
+
"name": "verbose",
|
|
979
|
+
"allowNo": false,
|
|
980
|
+
"type": "boolean"
|
|
951
981
|
}
|
|
952
982
|
},
|
|
953
983
|
"hasDynamicHelp": false,
|
|
954
984
|
"hiddenAliases": [],
|
|
955
|
-
"id": "
|
|
985
|
+
"id": "codegen:5-0-fix-entity-names",
|
|
956
986
|
"pluginAlias": "@memberjunction/cli",
|
|
957
987
|
"pluginName": "@memberjunction/cli",
|
|
958
988
|
"pluginType": "core",
|
|
@@ -962,60 +992,433 @@
|
|
|
962
992
|
"relativePath": [
|
|
963
993
|
"dist",
|
|
964
994
|
"commands",
|
|
965
|
-
"
|
|
966
|
-
"
|
|
995
|
+
"codegen",
|
|
996
|
+
"5-0-fix-entity-names.js"
|
|
967
997
|
]
|
|
968
998
|
},
|
|
969
|
-
"
|
|
999
|
+
"codegen:5-0-fix-html-entity-names": {
|
|
970
1000
|
"aliases": [],
|
|
971
1001
|
"args": {},
|
|
972
|
-
"description": "
|
|
1002
|
+
"description": "[v5.0 Migration] Scan Angular HTML template files for hardcoded entity names that need \"MJ: \" prefix updates.\n\nUses targeted regex patterns to find entity name references in template expressions\nand attribute values. Detects method calls like navigateToEntity('Actions'),\nOpenEntityRecord('Entities', id), and attribute values like RowsEntityName=\"Users\".\nRuns in dry-run mode by default; use --fix to apply.\n\nThe rename map is built dynamically from entity_subclasses.ts by parsing all\n@RegisterClass(BaseEntity, 'MJ: XYZ') decorators (~272 entries).",
|
|
973
1003
|
"examples": [
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
1004
|
+
{
|
|
1005
|
+
"description": "Dry-run scan of Angular templates",
|
|
1006
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/"
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"description": "Apply fixes to HTML templates",
|
|
1010
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
1011
|
+
},
|
|
1012
|
+
{
|
|
1013
|
+
"description": "Scan with verbose output",
|
|
1014
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"description": "Scan a single template file",
|
|
1018
|
+
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
1019
|
+
}
|
|
978
1020
|
],
|
|
979
1021
|
"flags": {
|
|
980
|
-
"
|
|
981
|
-
"char": "
|
|
982
|
-
"description": "
|
|
983
|
-
"name": "
|
|
984
|
-
"required": true,
|
|
985
|
-
"hasDynamicHelp": false,
|
|
986
|
-
"multiple": false,
|
|
987
|
-
"type": "option"
|
|
988
|
-
},
|
|
989
|
-
"output": {
|
|
990
|
-
"char": "o",
|
|
991
|
-
"description": "Output path for the .queries.json metadata file",
|
|
992
|
-
"name": "output",
|
|
993
|
-
"required": true,
|
|
1022
|
+
"path": {
|
|
1023
|
+
"char": "p",
|
|
1024
|
+
"description": "File or directory to scan. Accepts a single .html file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
1025
|
+
"name": "path",
|
|
994
1026
|
"hasDynamicHelp": false,
|
|
995
1027
|
"multiple": false,
|
|
996
1028
|
"type": "option"
|
|
997
1029
|
},
|
|
998
|
-
"
|
|
999
|
-
"description": "
|
|
1000
|
-
"name": "
|
|
1030
|
+
"fix": {
|
|
1031
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1032
|
+
"name": "fix",
|
|
1001
1033
|
"allowNo": false,
|
|
1002
1034
|
"type": "boolean"
|
|
1003
1035
|
},
|
|
1004
|
-
"
|
|
1005
|
-
"description": "
|
|
1006
|
-
"name": "
|
|
1007
|
-
"default": "SQL",
|
|
1036
|
+
"entity-subclasses": {
|
|
1037
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1038
|
+
"name": "entity-subclasses",
|
|
1008
1039
|
"hasDynamicHelp": false,
|
|
1009
1040
|
"multiple": false,
|
|
1010
1041
|
"type": "option"
|
|
1011
1042
|
},
|
|
1012
|
-
"
|
|
1013
|
-
"
|
|
1014
|
-
"
|
|
1015
|
-
"
|
|
1016
|
-
"
|
|
1017
|
-
"
|
|
1018
|
-
|
|
1043
|
+
"quiet": {
|
|
1044
|
+
"char": "q",
|
|
1045
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1046
|
+
"name": "quiet",
|
|
1047
|
+
"allowNo": false,
|
|
1048
|
+
"type": "boolean"
|
|
1049
|
+
},
|
|
1050
|
+
"verbose": {
|
|
1051
|
+
"char": "v",
|
|
1052
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1053
|
+
"name": "verbose",
|
|
1054
|
+
"allowNo": false,
|
|
1055
|
+
"type": "boolean"
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"hasDynamicHelp": false,
|
|
1059
|
+
"hiddenAliases": [],
|
|
1060
|
+
"id": "codegen:5-0-fix-html-entity-names",
|
|
1061
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1062
|
+
"pluginName": "@memberjunction/cli",
|
|
1063
|
+
"pluginType": "core",
|
|
1064
|
+
"strict": true,
|
|
1065
|
+
"enableJsonFlag": false,
|
|
1066
|
+
"isESM": true,
|
|
1067
|
+
"relativePath": [
|
|
1068
|
+
"dist",
|
|
1069
|
+
"commands",
|
|
1070
|
+
"codegen",
|
|
1071
|
+
"5-0-fix-html-entity-names.js"
|
|
1072
|
+
]
|
|
1073
|
+
},
|
|
1074
|
+
"codegen:5-0-fix-metadata-names": {
|
|
1075
|
+
"aliases": [],
|
|
1076
|
+
"args": {},
|
|
1077
|
+
"description": "[v5.0 Migration] Scan metadata JSON files for entity names that need \"MJ: \" prefix updates.\n\nTargets the metadata/ directory used by \"mj sync\". Detects entity name references in\n@lookup: directives (both the entity name and lookup value), .mj-sync.json and\n.mj-folder.json config files (entity/entityName fields), relatedEntities object keys,\nand fields.Name values in Entities-managing folders. Runs in dry-run mode by default;\nuse --fix to apply.\n\nThe rename map is built dynamically from entity_subclasses.ts by parsing all\n@RegisterClass(BaseEntity, 'MJ: XYZ') decorators (~272 entries).",
|
|
1078
|
+
"examples": [
|
|
1079
|
+
{
|
|
1080
|
+
"description": "Dry-run scan of the metadata directory",
|
|
1081
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/"
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
"description": "Apply fixes to metadata files",
|
|
1085
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/ --fix"
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
"description": "Scan a specific subdirectory",
|
|
1089
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1092
|
+
"description": "Scan and fix a single metadata file",
|
|
1093
|
+
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
1094
|
+
}
|
|
1095
|
+
],
|
|
1096
|
+
"flags": {
|
|
1097
|
+
"path": {
|
|
1098
|
+
"char": "p",
|
|
1099
|
+
"description": "File or directory to scan. Accepts a single .json file or a directory (scanned recursively, including dotfiles like .mj-sync.json). Defaults to the current working directory.",
|
|
1100
|
+
"name": "path",
|
|
1101
|
+
"hasDynamicHelp": false,
|
|
1102
|
+
"multiple": false,
|
|
1103
|
+
"type": "option"
|
|
1104
|
+
},
|
|
1105
|
+
"fix": {
|
|
1106
|
+
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1107
|
+
"name": "fix",
|
|
1108
|
+
"allowNo": false,
|
|
1109
|
+
"type": "boolean"
|
|
1110
|
+
},
|
|
1111
|
+
"entity-subclasses": {
|
|
1112
|
+
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1113
|
+
"name": "entity-subclasses",
|
|
1114
|
+
"hasDynamicHelp": false,
|
|
1115
|
+
"multiple": false,
|
|
1116
|
+
"type": "option"
|
|
1117
|
+
},
|
|
1118
|
+
"quiet": {
|
|
1119
|
+
"char": "q",
|
|
1120
|
+
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1121
|
+
"name": "quiet",
|
|
1122
|
+
"allowNo": false,
|
|
1123
|
+
"type": "boolean"
|
|
1124
|
+
},
|
|
1125
|
+
"verbose": {
|
|
1126
|
+
"char": "v",
|
|
1127
|
+
"description": "Show detailed progress including each file being scanned.",
|
|
1128
|
+
"name": "verbose",
|
|
1129
|
+
"allowNo": false,
|
|
1130
|
+
"type": "boolean"
|
|
1131
|
+
}
|
|
1132
|
+
},
|
|
1133
|
+
"hasDynamicHelp": false,
|
|
1134
|
+
"hiddenAliases": [],
|
|
1135
|
+
"id": "codegen:5-0-fix-metadata-names",
|
|
1136
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1137
|
+
"pluginName": "@memberjunction/cli",
|
|
1138
|
+
"pluginType": "core",
|
|
1139
|
+
"strict": true,
|
|
1140
|
+
"enableJsonFlag": false,
|
|
1141
|
+
"isESM": true,
|
|
1142
|
+
"relativePath": [
|
|
1143
|
+
"dist",
|
|
1144
|
+
"commands",
|
|
1145
|
+
"codegen",
|
|
1146
|
+
"5-0-fix-metadata-names.js"
|
|
1147
|
+
]
|
|
1148
|
+
},
|
|
1149
|
+
"codegen": {
|
|
1150
|
+
"aliases": [],
|
|
1151
|
+
"args": {},
|
|
1152
|
+
"description": "Run the full MemberJunction code generation pipeline.\n\nAnalyzes your SQL Server database schema, updates MemberJunction metadata, and\ngenerates synchronized code across the entire stack:\n\n - SQL views, stored procedures, indexes, and permissions\n - TypeScript entity classes with Zod validation schemas\n - Angular form components with AI-driven layouts\n - GraphQL resolvers and type definitions\n - Action subclasses and DB schema JSON\n\nConfiguration is loaded from mj.config.cjs in the current directory (or parent\ndirectories). Database connection can also be set via environment variables:\nDB_HOST, DB_DATABASE, CODEGEN_DB_USERNAME, CODEGEN_DB_PASSWORD.\n\nUse --skipdb to skip all database operations (metadata sync, SQL object\ngeneration) and only regenerate TypeScript, Angular, and GraphQL output from\nexisting metadata.\n\nUse --skipfiles to skip all file-generation operations (TypeScript entities,\nAngular components, GraphQL resolvers, action subclasses, DB schema JSON) and\nonly run database-side operations (metadata sync, SQL object generation,\npermissions, custom SQL scripts).\n\n--skipdb and --skipfiles are independent and can be combined in any mix.\n\nUse --force-advanced-gen to bypass Pass 2 entity scoping and re-run the LLM-driven\nadvanced generation (smart fields, form layout) for ALL entities. Useful when AI\nprompts have changed and you want unchanged entities re-evaluated.",
|
|
1153
|
+
"examples": [
|
|
1154
|
+
{
|
|
1155
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1156
|
+
"description": "Run the full code generation pipeline"
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"command": "<%= config.bin %> <%= command.id %> --skipdb",
|
|
1160
|
+
"description": "Regenerate code files without touching the database"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"command": "<%= config.bin %> <%= command.id %> --skipfiles",
|
|
1164
|
+
"description": "Run database-side operations only, without regenerating any code files"
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
"command": "<%= config.bin %> <%= command.id %> --force-advanced-gen",
|
|
1168
|
+
"description": "Re-run advanced generation for all entities (bypasses changed-entity scoping)"
|
|
1169
|
+
}
|
|
1170
|
+
],
|
|
1171
|
+
"flags": {
|
|
1172
|
+
"skipdb": {
|
|
1173
|
+
"description": "Skip database operations (metadata sync, SQL generation). Only regenerate TypeScript entities, Angular components, and GraphQL resolvers from existing metadata.",
|
|
1174
|
+
"name": "skipdb",
|
|
1175
|
+
"allowNo": false,
|
|
1176
|
+
"type": "boolean"
|
|
1177
|
+
},
|
|
1178
|
+
"skipfiles": {
|
|
1179
|
+
"description": "Skip file-generation operations (TypeScript entities, Angular components, GraphQL resolvers, action subclasses, DB schema JSON). Only run database-side operations.",
|
|
1180
|
+
"name": "skipfiles",
|
|
1181
|
+
"allowNo": false,
|
|
1182
|
+
"type": "boolean"
|
|
1183
|
+
},
|
|
1184
|
+
"force-advanced-gen": {
|
|
1185
|
+
"description": "Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities. Used when AI prompts have changed and unchanged entities should be re-evaluated.",
|
|
1186
|
+
"name": "force-advanced-gen",
|
|
1187
|
+
"allowNo": false,
|
|
1188
|
+
"type": "boolean"
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
"hasDynamicHelp": false,
|
|
1192
|
+
"hiddenAliases": [],
|
|
1193
|
+
"id": "codegen",
|
|
1194
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1195
|
+
"pluginName": "@memberjunction/cli",
|
|
1196
|
+
"pluginType": "core",
|
|
1197
|
+
"strict": true,
|
|
1198
|
+
"enableJsonFlag": false,
|
|
1199
|
+
"isESM": true,
|
|
1200
|
+
"relativePath": [
|
|
1201
|
+
"dist",
|
|
1202
|
+
"commands",
|
|
1203
|
+
"codegen",
|
|
1204
|
+
"index.js"
|
|
1205
|
+
]
|
|
1206
|
+
},
|
|
1207
|
+
"codegen:manifest": {
|
|
1208
|
+
"aliases": [],
|
|
1209
|
+
"args": {},
|
|
1210
|
+
"description": "Generate a class registration manifest to prevent tree-shaking.\n\nMemberJunction uses @RegisterClass decorators with a dynamic class factory.\nModern bundlers (ESBuild, Vite) cannot detect dynamic instantiation and will\ntree-shake these classes out of production builds. This command scans the\ndependency tree for all @RegisterClass-decorated classes and emits a manifest\nfile with static imports that the bundler cannot eliminate.\n\nTypically used as a prebuild/prestart script for MJAPI and MJExplorer. For\nMJ distribution users, pre-built manifests ship inside @memberjunction/server-bootstrap\nand @memberjunction/ng-bootstrap -- use --exclude-packages @memberjunction to\ngenerate a supplemental manifest covering only your own application classes.",
|
|
1211
|
+
"examples": [
|
|
1212
|
+
{
|
|
1213
|
+
"command": "<%= config.bin %> <%= command.id %>",
|
|
1214
|
+
"description": "Generate manifest with default output path"
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
1218
|
+
"description": "Generate manifest for a specific application directory"
|
|
1219
|
+
},
|
|
1220
|
+
{
|
|
1221
|
+
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
1222
|
+
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction --no-sync-deps",
|
|
1226
|
+
"description": "Exclude MJ packages and skip dependency reconciliation"
|
|
1227
|
+
},
|
|
1228
|
+
{
|
|
1229
|
+
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
1230
|
+
"description": "Only include specific base classes with detailed progress"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"command": "<%= config.bin %> <%= command.id %> --scan-dist",
|
|
1234
|
+
"description": "Include dist/ scanning for npm-published packages without src/"
|
|
1235
|
+
}
|
|
1236
|
+
],
|
|
1237
|
+
"flags": {
|
|
1238
|
+
"output": {
|
|
1239
|
+
"char": "o",
|
|
1240
|
+
"description": "Output file path for the generated manifest. The file will contain named imports and a CLASS_REGISTRATIONS array.",
|
|
1241
|
+
"name": "output",
|
|
1242
|
+
"default": "./src/generated/class-registrations-manifest.ts",
|
|
1243
|
+
"hasDynamicHelp": false,
|
|
1244
|
+
"multiple": false,
|
|
1245
|
+
"type": "option"
|
|
1246
|
+
},
|
|
1247
|
+
"appDir": {
|
|
1248
|
+
"char": "a",
|
|
1249
|
+
"description": "Root directory of the application whose package.json dependency tree will be scanned. Defaults to the current working directory.",
|
|
1250
|
+
"name": "appDir",
|
|
1251
|
+
"hasDynamicHelp": false,
|
|
1252
|
+
"multiple": false,
|
|
1253
|
+
"type": "option"
|
|
1254
|
+
},
|
|
1255
|
+
"filter": {
|
|
1256
|
+
"char": "f",
|
|
1257
|
+
"description": "Only include classes extending this base class. Can be repeated (e.g., --filter BaseEngine --filter BaseAction).",
|
|
1258
|
+
"name": "filter",
|
|
1259
|
+
"hasDynamicHelp": false,
|
|
1260
|
+
"multiple": true,
|
|
1261
|
+
"type": "option"
|
|
1262
|
+
},
|
|
1263
|
+
"exclude-packages": {
|
|
1264
|
+
"char": "e",
|
|
1265
|
+
"description": "Skip packages whose name starts with this prefix. Useful for excluding @memberjunction packages when using pre-built bootstrap manifests. Can be repeated.",
|
|
1266
|
+
"name": "exclude-packages",
|
|
1267
|
+
"hasDynamicHelp": false,
|
|
1268
|
+
"multiple": true,
|
|
1269
|
+
"type": "option"
|
|
1270
|
+
},
|
|
1271
|
+
"no-sync-deps": {
|
|
1272
|
+
"description": "Skip automatic dependency reconciliation. By default, the manifest generator adds any manifest-imported packages that are missing from package.json dependencies. Use this flag when generating supplemental manifests with --exclude-packages, where excluded packages are already covered by a pre-built bootstrap manifest.",
|
|
1273
|
+
"name": "no-sync-deps",
|
|
1274
|
+
"allowNo": false,
|
|
1275
|
+
"type": "boolean"
|
|
1276
|
+
},
|
|
1277
|
+
"quiet": {
|
|
1278
|
+
"char": "q",
|
|
1279
|
+
"description": "Suppress all output except errors.",
|
|
1280
|
+
"name": "quiet",
|
|
1281
|
+
"allowNo": false,
|
|
1282
|
+
"type": "boolean"
|
|
1283
|
+
},
|
|
1284
|
+
"verbose": {
|
|
1285
|
+
"char": "v",
|
|
1286
|
+
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
1287
|
+
"name": "verbose",
|
|
1288
|
+
"allowNo": false,
|
|
1289
|
+
"type": "boolean"
|
|
1290
|
+
},
|
|
1291
|
+
"scan-dist": {
|
|
1292
|
+
"description": "Scan compiled JavaScript files in dist/ directories for packages without src/. Use this when your dependency tree includes npm-published packages that contain @RegisterClass decorators. Without this flag, only TypeScript source in src/ is scanned.",
|
|
1293
|
+
"name": "scan-dist",
|
|
1294
|
+
"allowNo": false,
|
|
1295
|
+
"type": "boolean"
|
|
1296
|
+
},
|
|
1297
|
+
"lazy-config": {
|
|
1298
|
+
"description": "Output path for a generated lazy-loading feature config file. Maps @RegisterClass keys from excluded packages to dynamic import() loaders based on package.json subpath exports. Only packages with subpath exports in their package.json are included. Requires --exclude-packages.",
|
|
1299
|
+
"name": "lazy-config",
|
|
1300
|
+
"hasDynamicHelp": false,
|
|
1301
|
+
"multiple": false,
|
|
1302
|
+
"type": "option"
|
|
1303
|
+
},
|
|
1304
|
+
"strict": {
|
|
1305
|
+
"description": "Treat coverage audit gaps as fatal errors. A gap is a @RegisterClass class in an excluded package that is not reachable from any lazy chunk subpath export. Use in CI to catch tree-shaking issues before merge.",
|
|
1306
|
+
"name": "strict",
|
|
1307
|
+
"allowNo": false,
|
|
1308
|
+
"type": "boolean"
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
"hasDynamicHelp": false,
|
|
1312
|
+
"hiddenAliases": [],
|
|
1313
|
+
"id": "codegen:manifest",
|
|
1314
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1315
|
+
"pluginName": "@memberjunction/cli",
|
|
1316
|
+
"pluginType": "core",
|
|
1317
|
+
"strict": true,
|
|
1318
|
+
"enableJsonFlag": false,
|
|
1319
|
+
"isESM": true,
|
|
1320
|
+
"relativePath": [
|
|
1321
|
+
"dist",
|
|
1322
|
+
"commands",
|
|
1323
|
+
"codegen",
|
|
1324
|
+
"manifest.js"
|
|
1325
|
+
]
|
|
1326
|
+
},
|
|
1327
|
+
"dbdoc:analyze": {
|
|
1328
|
+
"aliases": [],
|
|
1329
|
+
"args": {},
|
|
1330
|
+
"description": "Analyze database and generate documentation (delegates to db-auto-doc analyze)",
|
|
1331
|
+
"examples": [
|
|
1332
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1333
|
+
"<%= config.bin %> <%= command.id %> --resume ./output/run-6/state.json",
|
|
1334
|
+
"<%= config.bin %> <%= command.id %> --config ./my-config.json"
|
|
1335
|
+
],
|
|
1336
|
+
"flags": {
|
|
1337
|
+
"resume": {
|
|
1338
|
+
"char": "r",
|
|
1339
|
+
"description": "Resume from an existing state file",
|
|
1340
|
+
"name": "resume",
|
|
1341
|
+
"required": false,
|
|
1342
|
+
"hasDynamicHelp": false,
|
|
1343
|
+
"multiple": false,
|
|
1344
|
+
"type": "option"
|
|
1345
|
+
},
|
|
1346
|
+
"config": {
|
|
1347
|
+
"char": "c",
|
|
1348
|
+
"description": "Path to config file",
|
|
1349
|
+
"name": "config",
|
|
1350
|
+
"default": "./config.json",
|
|
1351
|
+
"hasDynamicHelp": false,
|
|
1352
|
+
"multiple": false,
|
|
1353
|
+
"type": "option"
|
|
1354
|
+
}
|
|
1355
|
+
},
|
|
1356
|
+
"hasDynamicHelp": false,
|
|
1357
|
+
"hiddenAliases": [],
|
|
1358
|
+
"id": "dbdoc:analyze",
|
|
1359
|
+
"pluginAlias": "@memberjunction/cli",
|
|
1360
|
+
"pluginName": "@memberjunction/cli",
|
|
1361
|
+
"pluginType": "core",
|
|
1362
|
+
"strict": true,
|
|
1363
|
+
"enableJsonFlag": false,
|
|
1364
|
+
"isESM": true,
|
|
1365
|
+
"relativePath": [
|
|
1366
|
+
"dist",
|
|
1367
|
+
"commands",
|
|
1368
|
+
"dbdoc",
|
|
1369
|
+
"analyze.js"
|
|
1370
|
+
]
|
|
1371
|
+
},
|
|
1372
|
+
"dbdoc:export-sample-queries": {
|
|
1373
|
+
"aliases": [],
|
|
1374
|
+
"args": {},
|
|
1375
|
+
"description": "Export sample queries to MemberJunction metadata format (delegates to db-auto-doc export-sample-queries)",
|
|
1376
|
+
"examples": [
|
|
1377
|
+
"<%= config.bin %> <%= command.id %> --input ./output/sample-queries.json --output ./metadata/queries/.queries.json",
|
|
1378
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./metadata/queries/.queries.json --separate-sql-files",
|
|
1379
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --category \"Database Documentation\"",
|
|
1380
|
+
"<%= config.bin %> <%= command.id %> --input ./sample-queries.json --output ./queries/.queries.json --status Pending --min-confidence 0.8"
|
|
1381
|
+
],
|
|
1382
|
+
"flags": {
|
|
1383
|
+
"input": {
|
|
1384
|
+
"char": "i",
|
|
1385
|
+
"description": "Path to sample-queries.json file generated by generate-queries command",
|
|
1386
|
+
"name": "input",
|
|
1387
|
+
"required": true,
|
|
1388
|
+
"hasDynamicHelp": false,
|
|
1389
|
+
"multiple": false,
|
|
1390
|
+
"type": "option"
|
|
1391
|
+
},
|
|
1392
|
+
"output": {
|
|
1393
|
+
"char": "o",
|
|
1394
|
+
"description": "Output path for the .queries.json metadata file",
|
|
1395
|
+
"name": "output",
|
|
1396
|
+
"required": true,
|
|
1397
|
+
"hasDynamicHelp": false,
|
|
1398
|
+
"multiple": false,
|
|
1399
|
+
"type": "option"
|
|
1400
|
+
},
|
|
1401
|
+
"separate-sql-files": {
|
|
1402
|
+
"description": "Write SQL to separate files and use @file: references",
|
|
1403
|
+
"name": "separate-sql-files",
|
|
1404
|
+
"allowNo": false,
|
|
1405
|
+
"type": "boolean"
|
|
1406
|
+
},
|
|
1407
|
+
"sql-dir": {
|
|
1408
|
+
"description": "Directory for SQL files when using --separate-sql-files (relative to output file)",
|
|
1409
|
+
"name": "sql-dir",
|
|
1410
|
+
"default": "SQL",
|
|
1411
|
+
"hasDynamicHelp": false,
|
|
1412
|
+
"multiple": false,
|
|
1413
|
+
"type": "option"
|
|
1414
|
+
},
|
|
1415
|
+
"category": {
|
|
1416
|
+
"description": "Category name for @lookup reference (e.g., \"Database Documentation\")",
|
|
1417
|
+
"name": "category",
|
|
1418
|
+
"required": false,
|
|
1419
|
+
"hasDynamicHelp": false,
|
|
1420
|
+
"multiple": false,
|
|
1421
|
+
"type": "option"
|
|
1019
1422
|
},
|
|
1020
1423
|
"status": {
|
|
1021
1424
|
"description": "Status to assign to exported queries",
|
|
@@ -1141,202 +1544,21 @@
|
|
|
1141
1544
|
"type": "boolean"
|
|
1142
1545
|
},
|
|
1143
1546
|
"apply": {
|
|
1144
|
-
"description": "Apply SQL to database",
|
|
1145
|
-
"name": "apply",
|
|
1146
|
-
"allowNo": false,
|
|
1147
|
-
"type": "boolean"
|
|
1148
|
-
},
|
|
1149
|
-
"approved-only": {
|
|
1150
|
-
"description": "Only export approved items",
|
|
1151
|
-
"name": "approved-only",
|
|
1152
|
-
"allowNo": false,
|
|
1153
|
-
"type": "boolean"
|
|
1154
|
-
},
|
|
1155
|
-
"confidence-threshold": {
|
|
1156
|
-
"description": "Minimum confidence threshold",
|
|
1157
|
-
"name": "confidence-threshold",
|
|
1158
|
-
"default": "0",
|
|
1159
|
-
"hasDynamicHelp": false,
|
|
1160
|
-
"multiple": false,
|
|
1161
|
-
"type": "option"
|
|
1162
|
-
}
|
|
1163
|
-
},
|
|
1164
|
-
"hasDynamicHelp": false,
|
|
1165
|
-
"hiddenAliases": [],
|
|
1166
|
-
"id": "dbdoc:export",
|
|
1167
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1168
|
-
"pluginName": "@memberjunction/cli",
|
|
1169
|
-
"pluginType": "core",
|
|
1170
|
-
"strict": true,
|
|
1171
|
-
"enableJsonFlag": false,
|
|
1172
|
-
"isESM": true,
|
|
1173
|
-
"relativePath": [
|
|
1174
|
-
"dist",
|
|
1175
|
-
"commands",
|
|
1176
|
-
"dbdoc",
|
|
1177
|
-
"export.js"
|
|
1178
|
-
]
|
|
1179
|
-
},
|
|
1180
|
-
"dbdoc:generate-queries": {
|
|
1181
|
-
"aliases": [],
|
|
1182
|
-
"args": {},
|
|
1183
|
-
"description": "Generate sample SQL queries from existing analysis state (delegates to db-auto-doc generate-queries)",
|
|
1184
|
-
"examples": [
|
|
1185
|
-
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json",
|
|
1186
|
-
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --output-dir ./queries",
|
|
1187
|
-
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --queries-per-table 10"
|
|
1188
|
-
],
|
|
1189
|
-
"flags": {
|
|
1190
|
-
"from-state": {
|
|
1191
|
-
"description": "Path to existing state.json file from previous analysis",
|
|
1192
|
-
"name": "from-state",
|
|
1193
|
-
"required": true,
|
|
1194
|
-
"hasDynamicHelp": false,
|
|
1195
|
-
"multiple": false,
|
|
1196
|
-
"type": "option"
|
|
1197
|
-
},
|
|
1198
|
-
"output-dir": {
|
|
1199
|
-
"description": "Output directory for generated queries",
|
|
1200
|
-
"name": "output-dir",
|
|
1201
|
-
"required": false,
|
|
1202
|
-
"hasDynamicHelp": false,
|
|
1203
|
-
"multiple": false,
|
|
1204
|
-
"type": "option"
|
|
1205
|
-
},
|
|
1206
|
-
"config": {
|
|
1207
|
-
"char": "c",
|
|
1208
|
-
"description": "Path to config file (for database connection and AI settings)",
|
|
1209
|
-
"name": "config",
|
|
1210
|
-
"default": "./config.json",
|
|
1211
|
-
"hasDynamicHelp": false,
|
|
1212
|
-
"multiple": false,
|
|
1213
|
-
"type": "option"
|
|
1214
|
-
},
|
|
1215
|
-
"queries-per-table": {
|
|
1216
|
-
"description": "Number of queries to generate per table",
|
|
1217
|
-
"name": "queries-per-table",
|
|
1218
|
-
"required": false,
|
|
1219
|
-
"hasDynamicHelp": false,
|
|
1220
|
-
"multiple": false,
|
|
1221
|
-
"type": "option"
|
|
1222
|
-
},
|
|
1223
|
-
"max-execution-time": {
|
|
1224
|
-
"description": "Maximum execution time for query validation (ms)",
|
|
1225
|
-
"name": "max-execution-time",
|
|
1226
|
-
"required": false,
|
|
1227
|
-
"hasDynamicHelp": false,
|
|
1228
|
-
"multiple": false,
|
|
1229
|
-
"type": "option"
|
|
1230
|
-
}
|
|
1231
|
-
},
|
|
1232
|
-
"hasDynamicHelp": false,
|
|
1233
|
-
"hiddenAliases": [],
|
|
1234
|
-
"id": "dbdoc:generate-queries",
|
|
1235
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1236
|
-
"pluginName": "@memberjunction/cli",
|
|
1237
|
-
"pluginType": "core",
|
|
1238
|
-
"strict": true,
|
|
1239
|
-
"enableJsonFlag": false,
|
|
1240
|
-
"isESM": true,
|
|
1241
|
-
"relativePath": [
|
|
1242
|
-
"dist",
|
|
1243
|
-
"commands",
|
|
1244
|
-
"dbdoc",
|
|
1245
|
-
"generate-queries.js"
|
|
1246
|
-
]
|
|
1247
|
-
},
|
|
1248
|
-
"dbdoc": {
|
|
1249
|
-
"aliases": [],
|
|
1250
|
-
"args": {},
|
|
1251
|
-
"description": "AI-powered database documentation generator",
|
|
1252
|
-
"flags": {},
|
|
1253
|
-
"hasDynamicHelp": false,
|
|
1254
|
-
"hidden": false,
|
|
1255
|
-
"hiddenAliases": [],
|
|
1256
|
-
"id": "dbdoc",
|
|
1257
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1258
|
-
"pluginName": "@memberjunction/cli",
|
|
1259
|
-
"pluginType": "core",
|
|
1260
|
-
"strict": true,
|
|
1261
|
-
"enableJsonFlag": false,
|
|
1262
|
-
"isESM": true,
|
|
1263
|
-
"relativePath": [
|
|
1264
|
-
"dist",
|
|
1265
|
-
"commands",
|
|
1266
|
-
"dbdoc",
|
|
1267
|
-
"index.js"
|
|
1268
|
-
]
|
|
1269
|
-
},
|
|
1270
|
-
"dbdoc:init": {
|
|
1271
|
-
"aliases": [],
|
|
1272
|
-
"args": {},
|
|
1273
|
-
"description": "Initialize DBAutoDoc project (delegates to db-auto-doc init)",
|
|
1274
|
-
"examples": [
|
|
1275
|
-
"<%= config.bin %> <%= command.id %>"
|
|
1276
|
-
],
|
|
1277
|
-
"flags": {},
|
|
1278
|
-
"hasDynamicHelp": false,
|
|
1279
|
-
"hiddenAliases": [],
|
|
1280
|
-
"id": "dbdoc:init",
|
|
1281
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1282
|
-
"pluginName": "@memberjunction/cli",
|
|
1283
|
-
"pluginType": "core",
|
|
1284
|
-
"strict": true,
|
|
1285
|
-
"enableJsonFlag": false,
|
|
1286
|
-
"isESM": true,
|
|
1287
|
-
"relativePath": [
|
|
1288
|
-
"dist",
|
|
1289
|
-
"commands",
|
|
1290
|
-
"dbdoc",
|
|
1291
|
-
"init.js"
|
|
1292
|
-
]
|
|
1293
|
-
},
|
|
1294
|
-
"dbdoc:reset": {
|
|
1295
|
-
"aliases": [],
|
|
1296
|
-
"args": {},
|
|
1297
|
-
"description": "Reset analysis state (delegates to db-auto-doc reset)",
|
|
1298
|
-
"examples": [
|
|
1299
|
-
"<%= config.bin %> <%= command.id %>",
|
|
1300
|
-
"<%= config.bin %> <%= command.id %> --force"
|
|
1301
|
-
],
|
|
1302
|
-
"flags": {
|
|
1303
|
-
"force": {
|
|
1304
|
-
"char": "f",
|
|
1305
|
-
"description": "Force reset without confirmation",
|
|
1306
|
-
"name": "force",
|
|
1307
|
-
"allowNo": false,
|
|
1308
|
-
"type": "boolean"
|
|
1309
|
-
}
|
|
1310
|
-
},
|
|
1311
|
-
"hasDynamicHelp": false,
|
|
1312
|
-
"hiddenAliases": [],
|
|
1313
|
-
"id": "dbdoc:reset",
|
|
1314
|
-
"pluginAlias": "@memberjunction/cli",
|
|
1315
|
-
"pluginName": "@memberjunction/cli",
|
|
1316
|
-
"pluginType": "core",
|
|
1317
|
-
"strict": true,
|
|
1318
|
-
"enableJsonFlag": false,
|
|
1319
|
-
"isESM": true,
|
|
1320
|
-
"relativePath": [
|
|
1321
|
-
"dist",
|
|
1322
|
-
"commands",
|
|
1323
|
-
"dbdoc",
|
|
1324
|
-
"reset.js"
|
|
1325
|
-
]
|
|
1326
|
-
},
|
|
1327
|
-
"dbdoc:status": {
|
|
1328
|
-
"aliases": [],
|
|
1329
|
-
"args": {},
|
|
1330
|
-
"description": "Show analysis status and progress (delegates to db-auto-doc status)",
|
|
1331
|
-
"examples": [
|
|
1332
|
-
"<%= config.bin %> <%= command.id %>",
|
|
1333
|
-
"<%= config.bin %> <%= command.id %> --state-file ./custom-state.json"
|
|
1334
|
-
],
|
|
1335
|
-
"flags": {
|
|
1336
|
-
"state-file": {
|
|
1337
|
-
"char": "s",
|
|
1338
|
-
"description": "Path to state JSON file",
|
|
1339
|
-
"name": "state-file",
|
|
1547
|
+
"description": "Apply SQL to database",
|
|
1548
|
+
"name": "apply",
|
|
1549
|
+
"allowNo": false,
|
|
1550
|
+
"type": "boolean"
|
|
1551
|
+
},
|
|
1552
|
+
"approved-only": {
|
|
1553
|
+
"description": "Only export approved items",
|
|
1554
|
+
"name": "approved-only",
|
|
1555
|
+
"allowNo": false,
|
|
1556
|
+
"type": "boolean"
|
|
1557
|
+
},
|
|
1558
|
+
"confidence-threshold": {
|
|
1559
|
+
"description": "Minimum confidence threshold",
|
|
1560
|
+
"name": "confidence-threshold",
|
|
1561
|
+
"default": "0",
|
|
1340
1562
|
"hasDynamicHelp": false,
|
|
1341
1563
|
"multiple": false,
|
|
1342
1564
|
"type": "option"
|
|
@@ -1344,7 +1566,7 @@
|
|
|
1344
1566
|
},
|
|
1345
1567
|
"hasDynamicHelp": false,
|
|
1346
1568
|
"hiddenAliases": [],
|
|
1347
|
-
"id": "dbdoc:
|
|
1569
|
+
"id": "dbdoc:export",
|
|
1348
1570
|
"pluginAlias": "@memberjunction/cli",
|
|
1349
1571
|
"pluginName": "@memberjunction/cli",
|
|
1350
1572
|
"pluginType": "core",
|
|
@@ -1355,71 +1577,64 @@
|
|
|
1355
1577
|
"dist",
|
|
1356
1578
|
"commands",
|
|
1357
1579
|
"dbdoc",
|
|
1358
|
-
"
|
|
1580
|
+
"export.js"
|
|
1359
1581
|
]
|
|
1360
1582
|
},
|
|
1361
|
-
"
|
|
1583
|
+
"dbdoc:generate-queries": {
|
|
1362
1584
|
"aliases": [],
|
|
1363
1585
|
"args": {},
|
|
1364
|
-
"description": "
|
|
1586
|
+
"description": "Generate sample SQL queries from existing analysis state (delegates to db-auto-doc generate-queries)",
|
|
1365
1587
|
"examples": [
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
},
|
|
1370
|
-
{
|
|
1371
|
-
"description": "Scan a single file",
|
|
1372
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/components/actions-overview.component.ts"
|
|
1373
|
-
},
|
|
1374
|
-
{
|
|
1375
|
-
"description": "Apply fixes across the codebase",
|
|
1376
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ --fix"
|
|
1377
|
-
},
|
|
1378
|
-
{
|
|
1379
|
-
"description": "Quiet mode (summary only)",
|
|
1380
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -q"
|
|
1381
|
-
}
|
|
1588
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json",
|
|
1589
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --output-dir ./queries",
|
|
1590
|
+
"<%= config.bin %> <%= command.id %> --from-state ./output/run-1/state.json --queries-per-table 10"
|
|
1382
1591
|
],
|
|
1383
1592
|
"flags": {
|
|
1384
|
-
"
|
|
1385
|
-
"
|
|
1386
|
-
"
|
|
1387
|
-
"
|
|
1593
|
+
"from-state": {
|
|
1594
|
+
"description": "Path to existing state.json file from previous analysis",
|
|
1595
|
+
"name": "from-state",
|
|
1596
|
+
"required": true,
|
|
1388
1597
|
"hasDynamicHelp": false,
|
|
1389
1598
|
"multiple": false,
|
|
1390
1599
|
"type": "option"
|
|
1391
1600
|
},
|
|
1392
|
-
"
|
|
1393
|
-
"description": "
|
|
1394
|
-
"name": "
|
|
1395
|
-
"
|
|
1396
|
-
"
|
|
1601
|
+
"output-dir": {
|
|
1602
|
+
"description": "Output directory for generated queries",
|
|
1603
|
+
"name": "output-dir",
|
|
1604
|
+
"required": false,
|
|
1605
|
+
"hasDynamicHelp": false,
|
|
1606
|
+
"multiple": false,
|
|
1607
|
+
"type": "option"
|
|
1397
1608
|
},
|
|
1398
|
-
"
|
|
1399
|
-
"
|
|
1400
|
-
"
|
|
1609
|
+
"config": {
|
|
1610
|
+
"char": "c",
|
|
1611
|
+
"description": "Path to config file (for database connection and AI settings)",
|
|
1612
|
+
"name": "config",
|
|
1613
|
+
"default": "./config.json",
|
|
1401
1614
|
"hasDynamicHelp": false,
|
|
1402
1615
|
"multiple": false,
|
|
1403
1616
|
"type": "option"
|
|
1404
1617
|
},
|
|
1405
|
-
"
|
|
1406
|
-
"
|
|
1407
|
-
"
|
|
1408
|
-
"
|
|
1409
|
-
"
|
|
1410
|
-
"
|
|
1618
|
+
"queries-per-table": {
|
|
1619
|
+
"description": "Number of queries to generate per table",
|
|
1620
|
+
"name": "queries-per-table",
|
|
1621
|
+
"required": false,
|
|
1622
|
+
"hasDynamicHelp": false,
|
|
1623
|
+
"multiple": false,
|
|
1624
|
+
"type": "option"
|
|
1411
1625
|
},
|
|
1412
|
-
"
|
|
1413
|
-
"
|
|
1414
|
-
"
|
|
1415
|
-
"
|
|
1416
|
-
"
|
|
1417
|
-
"
|
|
1626
|
+
"max-execution-time": {
|
|
1627
|
+
"description": "Maximum execution time for query validation (ms)",
|
|
1628
|
+
"name": "max-execution-time",
|
|
1629
|
+
"required": false,
|
|
1630
|
+
"hasDynamicHelp": false,
|
|
1631
|
+
"multiple": false,
|
|
1632
|
+
"type": "option"
|
|
1418
1633
|
}
|
|
1419
1634
|
},
|
|
1420
1635
|
"hasDynamicHelp": false,
|
|
1421
1636
|
"hiddenAliases": [],
|
|
1422
|
-
"id": "
|
|
1637
|
+
"id": "dbdoc:generate-queries",
|
|
1423
1638
|
"pluginAlias": "@memberjunction/cli",
|
|
1424
1639
|
"pluginName": "@memberjunction/cli",
|
|
1425
1640
|
"pluginType": "core",
|
|
@@ -1429,72 +1644,19 @@
|
|
|
1429
1644
|
"relativePath": [
|
|
1430
1645
|
"dist",
|
|
1431
1646
|
"commands",
|
|
1432
|
-
"
|
|
1433
|
-
"
|
|
1647
|
+
"dbdoc",
|
|
1648
|
+
"generate-queries.js"
|
|
1434
1649
|
]
|
|
1435
1650
|
},
|
|
1436
|
-
"
|
|
1651
|
+
"dbdoc": {
|
|
1437
1652
|
"aliases": [],
|
|
1438
1653
|
"args": {},
|
|
1439
|
-
"description": "
|
|
1440
|
-
"
|
|
1441
|
-
{
|
|
1442
|
-
"description": "Dry-run scan of Angular templates",
|
|
1443
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/"
|
|
1444
|
-
},
|
|
1445
|
-
{
|
|
1446
|
-
"description": "Apply fixes to HTML templates",
|
|
1447
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/ --fix"
|
|
1448
|
-
},
|
|
1449
|
-
{
|
|
1450
|
-
"description": "Scan with verbose output",
|
|
1451
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/ -v"
|
|
1452
|
-
},
|
|
1453
|
-
{
|
|
1454
|
-
"description": "Scan a single template file",
|
|
1455
|
-
"command": "<%= config.bin %> <%= command.id %> --path packages/Angular/Explorer/dashboards/src/Actions/actions-dashboard.component.html"
|
|
1456
|
-
}
|
|
1457
|
-
],
|
|
1458
|
-
"flags": {
|
|
1459
|
-
"path": {
|
|
1460
|
-
"char": "p",
|
|
1461
|
-
"description": "File or directory to scan. Accepts a single .html file or a directory (scanned recursively). Defaults to the current working directory.",
|
|
1462
|
-
"name": "path",
|
|
1463
|
-
"hasDynamicHelp": false,
|
|
1464
|
-
"multiple": false,
|
|
1465
|
-
"type": "option"
|
|
1466
|
-
},
|
|
1467
|
-
"fix": {
|
|
1468
|
-
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1469
|
-
"name": "fix",
|
|
1470
|
-
"allowNo": false,
|
|
1471
|
-
"type": "boolean"
|
|
1472
|
-
},
|
|
1473
|
-
"entity-subclasses": {
|
|
1474
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1475
|
-
"name": "entity-subclasses",
|
|
1476
|
-
"hasDynamicHelp": false,
|
|
1477
|
-
"multiple": false,
|
|
1478
|
-
"type": "option"
|
|
1479
|
-
},
|
|
1480
|
-
"quiet": {
|
|
1481
|
-
"char": "q",
|
|
1482
|
-
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1483
|
-
"name": "quiet",
|
|
1484
|
-
"allowNo": false,
|
|
1485
|
-
"type": "boolean"
|
|
1486
|
-
},
|
|
1487
|
-
"verbose": {
|
|
1488
|
-
"char": "v",
|
|
1489
|
-
"description": "Show detailed progress including each file being scanned.",
|
|
1490
|
-
"name": "verbose",
|
|
1491
|
-
"allowNo": false,
|
|
1492
|
-
"type": "boolean"
|
|
1493
|
-
}
|
|
1494
|
-
},
|
|
1654
|
+
"description": "AI-powered database documentation generator",
|
|
1655
|
+
"flags": {},
|
|
1495
1656
|
"hasDynamicHelp": false,
|
|
1657
|
+
"hidden": false,
|
|
1496
1658
|
"hiddenAliases": [],
|
|
1497
|
-
"id": "
|
|
1659
|
+
"id": "dbdoc",
|
|
1498
1660
|
"pluginAlias": "@memberjunction/cli",
|
|
1499
1661
|
"pluginName": "@memberjunction/cli",
|
|
1500
1662
|
"pluginType": "core",
|
|
@@ -1504,72 +1666,21 @@
|
|
|
1504
1666
|
"relativePath": [
|
|
1505
1667
|
"dist",
|
|
1506
1668
|
"commands",
|
|
1507
|
-
"
|
|
1508
|
-
"
|
|
1669
|
+
"dbdoc",
|
|
1670
|
+
"index.js"
|
|
1509
1671
|
]
|
|
1510
1672
|
},
|
|
1511
|
-
"
|
|
1673
|
+
"dbdoc:init": {
|
|
1512
1674
|
"aliases": [],
|
|
1513
1675
|
"args": {},
|
|
1514
|
-
"description": "
|
|
1676
|
+
"description": "Initialize DBAutoDoc project (delegates to db-auto-doc init)",
|
|
1515
1677
|
"examples": [
|
|
1516
|
-
|
|
1517
|
-
"description": "Dry-run scan of the metadata directory",
|
|
1518
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/"
|
|
1519
|
-
},
|
|
1520
|
-
{
|
|
1521
|
-
"description": "Apply fixes to metadata files",
|
|
1522
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/ --fix"
|
|
1523
|
-
},
|
|
1524
|
-
{
|
|
1525
|
-
"description": "Scan a specific subdirectory",
|
|
1526
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/resource-types"
|
|
1527
|
-
},
|
|
1528
|
-
{
|
|
1529
|
-
"description": "Scan and fix a single metadata file",
|
|
1530
|
-
"command": "<%= config.bin %> <%= command.id %> --path metadata/entities/.audit-related-entities.json --fix"
|
|
1531
|
-
}
|
|
1678
|
+
"<%= config.bin %> <%= command.id %>"
|
|
1532
1679
|
],
|
|
1533
|
-
"flags": {
|
|
1534
|
-
"path": {
|
|
1535
|
-
"char": "p",
|
|
1536
|
-
"description": "File or directory to scan. Accepts a single .json file or a directory (scanned recursively, including dotfiles like .mj-sync.json). Defaults to the current working directory.",
|
|
1537
|
-
"name": "path",
|
|
1538
|
-
"hasDynamicHelp": false,
|
|
1539
|
-
"multiple": false,
|
|
1540
|
-
"type": "option"
|
|
1541
|
-
},
|
|
1542
|
-
"fix": {
|
|
1543
|
-
"description": "Apply fixes in place. Without this flag, the command runs in dry-run mode and only reports findings.",
|
|
1544
|
-
"name": "fix",
|
|
1545
|
-
"allowNo": false,
|
|
1546
|
-
"type": "boolean"
|
|
1547
|
-
},
|
|
1548
|
-
"entity-subclasses": {
|
|
1549
|
-
"description": "Explicit path to entity_subclasses.ts for building the rename map. If omitted, the tool searches common locations relative to the target path.",
|
|
1550
|
-
"name": "entity-subclasses",
|
|
1551
|
-
"hasDynamicHelp": false,
|
|
1552
|
-
"multiple": false,
|
|
1553
|
-
"type": "option"
|
|
1554
|
-
},
|
|
1555
|
-
"quiet": {
|
|
1556
|
-
"char": "q",
|
|
1557
|
-
"description": "Suppress detailed per-file output; only show the final summary counts.",
|
|
1558
|
-
"name": "quiet",
|
|
1559
|
-
"allowNo": false,
|
|
1560
|
-
"type": "boolean"
|
|
1561
|
-
},
|
|
1562
|
-
"verbose": {
|
|
1563
|
-
"char": "v",
|
|
1564
|
-
"description": "Show detailed progress including each file being scanned.",
|
|
1565
|
-
"name": "verbose",
|
|
1566
|
-
"allowNo": false,
|
|
1567
|
-
"type": "boolean"
|
|
1568
|
-
}
|
|
1569
|
-
},
|
|
1680
|
+
"flags": {},
|
|
1570
1681
|
"hasDynamicHelp": false,
|
|
1571
1682
|
"hiddenAliases": [],
|
|
1572
|
-
"id": "
|
|
1683
|
+
"id": "dbdoc:init",
|
|
1573
1684
|
"pluginAlias": "@memberjunction/cli",
|
|
1574
1685
|
"pluginName": "@memberjunction/cli",
|
|
1575
1686
|
"pluginType": "core",
|
|
@@ -1579,55 +1690,30 @@
|
|
|
1579
1690
|
"relativePath": [
|
|
1580
1691
|
"dist",
|
|
1581
1692
|
"commands",
|
|
1582
|
-
"
|
|
1583
|
-
"
|
|
1693
|
+
"dbdoc",
|
|
1694
|
+
"init.js"
|
|
1584
1695
|
]
|
|
1585
1696
|
},
|
|
1586
|
-
"
|
|
1697
|
+
"dbdoc:reset": {
|
|
1587
1698
|
"aliases": [],
|
|
1588
1699
|
"args": {},
|
|
1589
|
-
"description": "
|
|
1700
|
+
"description": "Reset analysis state (delegates to db-auto-doc reset)",
|
|
1590
1701
|
"examples": [
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
"description": "Run the full code generation pipeline"
|
|
1594
|
-
},
|
|
1595
|
-
{
|
|
1596
|
-
"command": "<%= config.bin %> <%= command.id %> --skipdb",
|
|
1597
|
-
"description": "Regenerate code files without touching the database"
|
|
1598
|
-
},
|
|
1599
|
-
{
|
|
1600
|
-
"command": "<%= config.bin %> <%= command.id %> --skipfiles",
|
|
1601
|
-
"description": "Run database-side operations only, without regenerating any code files"
|
|
1602
|
-
},
|
|
1603
|
-
{
|
|
1604
|
-
"command": "<%= config.bin %> <%= command.id %> --force-advanced-gen",
|
|
1605
|
-
"description": "Re-run advanced generation for all entities (bypasses changed-entity scoping)"
|
|
1606
|
-
}
|
|
1702
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1703
|
+
"<%= config.bin %> <%= command.id %> --force"
|
|
1607
1704
|
],
|
|
1608
1705
|
"flags": {
|
|
1609
|
-
"
|
|
1610
|
-
"
|
|
1611
|
-
"
|
|
1612
|
-
"
|
|
1613
|
-
"type": "boolean"
|
|
1614
|
-
},
|
|
1615
|
-
"skipfiles": {
|
|
1616
|
-
"description": "Skip file-generation operations (TypeScript entities, Angular components, GraphQL resolvers, action subclasses, DB schema JSON). Only run database-side operations.",
|
|
1617
|
-
"name": "skipfiles",
|
|
1618
|
-
"allowNo": false,
|
|
1619
|
-
"type": "boolean"
|
|
1620
|
-
},
|
|
1621
|
-
"force-advanced-gen": {
|
|
1622
|
-
"description": "Bypass entity scoping in Pass 2 and force advanced generation to re-run for all entities. Used when AI prompts have changed and unchanged entities should be re-evaluated.",
|
|
1623
|
-
"name": "force-advanced-gen",
|
|
1706
|
+
"force": {
|
|
1707
|
+
"char": "f",
|
|
1708
|
+
"description": "Force reset without confirmation",
|
|
1709
|
+
"name": "force",
|
|
1624
1710
|
"allowNo": false,
|
|
1625
1711
|
"type": "boolean"
|
|
1626
1712
|
}
|
|
1627
1713
|
},
|
|
1628
1714
|
"hasDynamicHelp": false,
|
|
1629
1715
|
"hiddenAliases": [],
|
|
1630
|
-
"id": "
|
|
1716
|
+
"id": "dbdoc:reset",
|
|
1631
1717
|
"pluginAlias": "@memberjunction/cli",
|
|
1632
1718
|
"pluginName": "@memberjunction/cli",
|
|
1633
1719
|
"pluginType": "core",
|
|
@@ -1637,117 +1723,31 @@
|
|
|
1637
1723
|
"relativePath": [
|
|
1638
1724
|
"dist",
|
|
1639
1725
|
"commands",
|
|
1640
|
-
"
|
|
1641
|
-
"
|
|
1726
|
+
"dbdoc",
|
|
1727
|
+
"reset.js"
|
|
1642
1728
|
]
|
|
1643
1729
|
},
|
|
1644
|
-
"
|
|
1730
|
+
"dbdoc:status": {
|
|
1645
1731
|
"aliases": [],
|
|
1646
1732
|
"args": {},
|
|
1647
|
-
"description": "
|
|
1733
|
+
"description": "Show analysis status and progress (delegates to db-auto-doc status)",
|
|
1648
1734
|
"examples": [
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
"description": "Generate manifest with default output path"
|
|
1652
|
-
},
|
|
1653
|
-
{
|
|
1654
|
-
"command": "<%= config.bin %> <%= command.id %> --appDir ./packages/MJAPI --output ./packages/MJAPI/src/generated/class-registrations-manifest.ts",
|
|
1655
|
-
"description": "Generate manifest for a specific application directory"
|
|
1656
|
-
},
|
|
1657
|
-
{
|
|
1658
|
-
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction",
|
|
1659
|
-
"description": "Exclude MJ packages (use pre-built bootstrap manifests instead)"
|
|
1660
|
-
},
|
|
1661
|
-
{
|
|
1662
|
-
"command": "<%= config.bin %> <%= command.id %> --exclude-packages @memberjunction --no-sync-deps",
|
|
1663
|
-
"description": "Exclude MJ packages and skip dependency reconciliation"
|
|
1664
|
-
},
|
|
1665
|
-
{
|
|
1666
|
-
"command": "<%= config.bin %> <%= command.id %> --filter BaseEngine --filter BaseAction --verbose",
|
|
1667
|
-
"description": "Only include specific base classes with detailed progress"
|
|
1668
|
-
},
|
|
1669
|
-
{
|
|
1670
|
-
"command": "<%= config.bin %> <%= command.id %> --scan-dist",
|
|
1671
|
-
"description": "Include dist/ scanning for npm-published packages without src/"
|
|
1672
|
-
}
|
|
1735
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1736
|
+
"<%= config.bin %> <%= command.id %> --state-file ./custom-state.json"
|
|
1673
1737
|
],
|
|
1674
1738
|
"flags": {
|
|
1675
|
-
"
|
|
1676
|
-
"char": "
|
|
1677
|
-
"description": "
|
|
1678
|
-
"name": "
|
|
1679
|
-
"default": "./src/generated/class-registrations-manifest.ts",
|
|
1680
|
-
"hasDynamicHelp": false,
|
|
1681
|
-
"multiple": false,
|
|
1682
|
-
"type": "option"
|
|
1683
|
-
},
|
|
1684
|
-
"appDir": {
|
|
1685
|
-
"char": "a",
|
|
1686
|
-
"description": "Root directory of the application whose package.json dependency tree will be scanned. Defaults to the current working directory.",
|
|
1687
|
-
"name": "appDir",
|
|
1688
|
-
"hasDynamicHelp": false,
|
|
1689
|
-
"multiple": false,
|
|
1690
|
-
"type": "option"
|
|
1691
|
-
},
|
|
1692
|
-
"filter": {
|
|
1693
|
-
"char": "f",
|
|
1694
|
-
"description": "Only include classes extending this base class. Can be repeated (e.g., --filter BaseEngine --filter BaseAction).",
|
|
1695
|
-
"name": "filter",
|
|
1696
|
-
"hasDynamicHelp": false,
|
|
1697
|
-
"multiple": true,
|
|
1698
|
-
"type": "option"
|
|
1699
|
-
},
|
|
1700
|
-
"exclude-packages": {
|
|
1701
|
-
"char": "e",
|
|
1702
|
-
"description": "Skip packages whose name starts with this prefix. Useful for excluding @memberjunction packages when using pre-built bootstrap manifests. Can be repeated.",
|
|
1703
|
-
"name": "exclude-packages",
|
|
1704
|
-
"hasDynamicHelp": false,
|
|
1705
|
-
"multiple": true,
|
|
1706
|
-
"type": "option"
|
|
1707
|
-
},
|
|
1708
|
-
"no-sync-deps": {
|
|
1709
|
-
"description": "Skip automatic dependency reconciliation. By default, the manifest generator adds any manifest-imported packages that are missing from package.json dependencies. Use this flag when generating supplemental manifests with --exclude-packages, where excluded packages are already covered by a pre-built bootstrap manifest.",
|
|
1710
|
-
"name": "no-sync-deps",
|
|
1711
|
-
"allowNo": false,
|
|
1712
|
-
"type": "boolean"
|
|
1713
|
-
},
|
|
1714
|
-
"quiet": {
|
|
1715
|
-
"char": "q",
|
|
1716
|
-
"description": "Suppress all output except errors.",
|
|
1717
|
-
"name": "quiet",
|
|
1718
|
-
"allowNo": false,
|
|
1719
|
-
"type": "boolean"
|
|
1720
|
-
},
|
|
1721
|
-
"verbose": {
|
|
1722
|
-
"char": "v",
|
|
1723
|
-
"description": "Show detailed progress including per-package scanning info and skipped classes.",
|
|
1724
|
-
"name": "verbose",
|
|
1725
|
-
"allowNo": false,
|
|
1726
|
-
"type": "boolean"
|
|
1727
|
-
},
|
|
1728
|
-
"scan-dist": {
|
|
1729
|
-
"description": "Scan compiled JavaScript files in dist/ directories for packages without src/. Use this when your dependency tree includes npm-published packages that contain @RegisterClass decorators. Without this flag, only TypeScript source in src/ is scanned.",
|
|
1730
|
-
"name": "scan-dist",
|
|
1731
|
-
"allowNo": false,
|
|
1732
|
-
"type": "boolean"
|
|
1733
|
-
},
|
|
1734
|
-
"lazy-config": {
|
|
1735
|
-
"description": "Output path for a generated lazy-loading feature config file. Maps @RegisterClass keys from excluded packages to dynamic import() loaders based on package.json subpath exports. Only packages with subpath exports in their package.json are included. Requires --exclude-packages.",
|
|
1736
|
-
"name": "lazy-config",
|
|
1739
|
+
"state-file": {
|
|
1740
|
+
"char": "s",
|
|
1741
|
+
"description": "Path to state JSON file",
|
|
1742
|
+
"name": "state-file",
|
|
1737
1743
|
"hasDynamicHelp": false,
|
|
1738
1744
|
"multiple": false,
|
|
1739
1745
|
"type": "option"
|
|
1740
|
-
},
|
|
1741
|
-
"strict": {
|
|
1742
|
-
"description": "Treat coverage audit gaps as fatal errors. A gap is a @RegisterClass class in an excluded package that is not reachable from any lazy chunk subpath export. Use in CI to catch tree-shaking issues before merge.",
|
|
1743
|
-
"name": "strict",
|
|
1744
|
-
"allowNo": false,
|
|
1745
|
-
"type": "boolean"
|
|
1746
1746
|
}
|
|
1747
1747
|
},
|
|
1748
1748
|
"hasDynamicHelp": false,
|
|
1749
1749
|
"hiddenAliases": [],
|
|
1750
|
-
"id": "
|
|
1750
|
+
"id": "dbdoc:status",
|
|
1751
1751
|
"pluginAlias": "@memberjunction/cli",
|
|
1752
1752
|
"pluginName": "@memberjunction/cli",
|
|
1753
1753
|
"pluginType": "core",
|
|
@@ -1757,8 +1757,8 @@
|
|
|
1757
1757
|
"relativePath": [
|
|
1758
1758
|
"dist",
|
|
1759
1759
|
"commands",
|
|
1760
|
-
"
|
|
1761
|
-
"
|
|
1760
|
+
"dbdoc",
|
|
1761
|
+
"status.js"
|
|
1762
1762
|
]
|
|
1763
1763
|
},
|
|
1764
1764
|
"doctor": {
|
|
@@ -2818,6 +2818,12 @@
|
|
|
2818
2818
|
"name": "incremental",
|
|
2819
2819
|
"allowNo": false,
|
|
2820
2820
|
"type": "boolean"
|
|
2821
|
+
},
|
|
2822
|
+
"change-detail": {
|
|
2823
|
+
"description": "Write a detailed per-record change report (primary keys + field diffs) to a file",
|
|
2824
|
+
"name": "change-detail",
|
|
2825
|
+
"allowNo": false,
|
|
2826
|
+
"type": "boolean"
|
|
2821
2827
|
}
|
|
2822
2828
|
},
|
|
2823
2829
|
"hasDynamicHelp": false,
|
|
@@ -3642,63 +3648,185 @@
|
|
|
3642
3648
|
"required": true,
|
|
3643
3649
|
"hasDynamicHelp": false,
|
|
3644
3650
|
"multiple": false,
|
|
3645
|
-
"options": [
|
|
3646
|
-
"sqlserver",
|
|
3647
|
-
"postgresql"
|
|
3648
|
-
],
|
|
3649
|
-
"type": "option"
|
|
3650
|
-
},
|
|
3651
|
-
"scope": {
|
|
3652
|
-
"description": "What to scan for translation",
|
|
3653
|
-
"name": "scope",
|
|
3654
|
-
"default": "all",
|
|
3655
|
-
"hasDynamicHelp": false,
|
|
3656
|
-
"multiple": false,
|
|
3657
|
-
"options": [
|
|
3658
|
-
"queries",
|
|
3659
|
-
"views",
|
|
3660
|
-
"filters",
|
|
3661
|
-
"all"
|
|
3662
|
-
],
|
|
3651
|
+
"options": [
|
|
3652
|
+
"sqlserver",
|
|
3653
|
+
"postgresql"
|
|
3654
|
+
],
|
|
3655
|
+
"type": "option"
|
|
3656
|
+
},
|
|
3657
|
+
"scope": {
|
|
3658
|
+
"description": "What to scan for translation",
|
|
3659
|
+
"name": "scope",
|
|
3660
|
+
"default": "all",
|
|
3661
|
+
"hasDynamicHelp": false,
|
|
3662
|
+
"multiple": false,
|
|
3663
|
+
"options": [
|
|
3664
|
+
"queries",
|
|
3665
|
+
"views",
|
|
3666
|
+
"filters",
|
|
3667
|
+
"all"
|
|
3668
|
+
],
|
|
3669
|
+
"type": "option"
|
|
3670
|
+
},
|
|
3671
|
+
"sql": {
|
|
3672
|
+
"description": "Translate a single SQL fragment (inline mode)",
|
|
3673
|
+
"name": "sql",
|
|
3674
|
+
"hasDynamicHelp": false,
|
|
3675
|
+
"multiple": false,
|
|
3676
|
+
"type": "option"
|
|
3677
|
+
},
|
|
3678
|
+
"dry-run": {
|
|
3679
|
+
"description": "Show what would be translated without making changes",
|
|
3680
|
+
"name": "dry-run",
|
|
3681
|
+
"allowNo": false,
|
|
3682
|
+
"type": "boolean"
|
|
3683
|
+
},
|
|
3684
|
+
"review": {
|
|
3685
|
+
"description": "Generate review report only (no writes to database)",
|
|
3686
|
+
"name": "review",
|
|
3687
|
+
"allowNo": false,
|
|
3688
|
+
"type": "boolean"
|
|
3689
|
+
},
|
|
3690
|
+
"output": {
|
|
3691
|
+
"char": "o",
|
|
3692
|
+
"description": "Output directory for the translation report",
|
|
3693
|
+
"name": "output",
|
|
3694
|
+
"hasDynamicHelp": false,
|
|
3695
|
+
"multiple": false,
|
|
3696
|
+
"type": "option"
|
|
3697
|
+
},
|
|
3698
|
+
"force": {
|
|
3699
|
+
"description": "Re-translate even if platform variants already exist",
|
|
3700
|
+
"name": "force",
|
|
3701
|
+
"allowNo": false,
|
|
3702
|
+
"type": "boolean"
|
|
3703
|
+
}
|
|
3704
|
+
},
|
|
3705
|
+
"hasDynamicHelp": false,
|
|
3706
|
+
"hiddenAliases": [],
|
|
3707
|
+
"id": "translate-sql",
|
|
3708
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3709
|
+
"pluginName": "@memberjunction/cli",
|
|
3710
|
+
"pluginType": "core",
|
|
3711
|
+
"strict": true,
|
|
3712
|
+
"enableJsonFlag": false,
|
|
3713
|
+
"isESM": true,
|
|
3714
|
+
"relativePath": [
|
|
3715
|
+
"dist",
|
|
3716
|
+
"commands",
|
|
3717
|
+
"translate-sql",
|
|
3718
|
+
"index.js"
|
|
3719
|
+
]
|
|
3720
|
+
},
|
|
3721
|
+
"ai:actions:list": {
|
|
3722
|
+
"aliases": [],
|
|
3723
|
+
"args": {},
|
|
3724
|
+
"description": "List available AI actions",
|
|
3725
|
+
"examples": [
|
|
3726
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3727
|
+
"<%= config.bin %> <%= command.id %> --output=table",
|
|
3728
|
+
"<%= config.bin %> <%= command.id %> --output=json"
|
|
3729
|
+
],
|
|
3730
|
+
"flags": {
|
|
3731
|
+
"output": {
|
|
3732
|
+
"char": "o",
|
|
3733
|
+
"description": "Output format",
|
|
3734
|
+
"name": "output",
|
|
3735
|
+
"default": "compact",
|
|
3736
|
+
"hasDynamicHelp": false,
|
|
3737
|
+
"multiple": false,
|
|
3738
|
+
"options": [
|
|
3739
|
+
"compact",
|
|
3740
|
+
"json",
|
|
3741
|
+
"table"
|
|
3742
|
+
],
|
|
3743
|
+
"type": "option"
|
|
3744
|
+
}
|
|
3745
|
+
},
|
|
3746
|
+
"hasDynamicHelp": false,
|
|
3747
|
+
"hiddenAliases": [],
|
|
3748
|
+
"id": "ai:actions:list",
|
|
3749
|
+
"pluginAlias": "@memberjunction/cli",
|
|
3750
|
+
"pluginName": "@memberjunction/cli",
|
|
3751
|
+
"pluginType": "core",
|
|
3752
|
+
"strict": true,
|
|
3753
|
+
"enableJsonFlag": false,
|
|
3754
|
+
"isESM": true,
|
|
3755
|
+
"relativePath": [
|
|
3756
|
+
"dist",
|
|
3757
|
+
"commands",
|
|
3758
|
+
"ai",
|
|
3759
|
+
"actions",
|
|
3760
|
+
"list.js"
|
|
3761
|
+
]
|
|
3762
|
+
},
|
|
3763
|
+
"ai:actions:run": {
|
|
3764
|
+
"aliases": [],
|
|
3765
|
+
"args": {},
|
|
3766
|
+
"description": "Execute an AI action with parameters",
|
|
3767
|
+
"examples": [
|
|
3768
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Weather\" --param \"Location=Boston\"",
|
|
3769
|
+
"<%= config.bin %> <%= command.id %> -n \"Get Stock Price\" --param \"Ticker=AAPL\"",
|
|
3770
|
+
"<%= config.bin %> <%= command.id %> -n \"Send Single Message\" --param \"To=user@example.com\" --param \"Subject=Test\" --param \"Body=Hello\" --param \"MessageType=Email\" --param \"Provider=SendGrid\"",
|
|
3771
|
+
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3772
|
+
],
|
|
3773
|
+
"flags": {
|
|
3774
|
+
"name": {
|
|
3775
|
+
"char": "n",
|
|
3776
|
+
"description": "Action name",
|
|
3777
|
+
"name": "name",
|
|
3778
|
+
"required": true,
|
|
3779
|
+
"hasDynamicHelp": false,
|
|
3780
|
+
"multiple": false,
|
|
3663
3781
|
"type": "option"
|
|
3664
3782
|
},
|
|
3665
|
-
"
|
|
3666
|
-
"
|
|
3667
|
-
"
|
|
3783
|
+
"param": {
|
|
3784
|
+
"char": "p",
|
|
3785
|
+
"description": "Action parameters in key=value format",
|
|
3786
|
+
"name": "param",
|
|
3668
3787
|
"hasDynamicHelp": false,
|
|
3669
|
-
"multiple":
|
|
3788
|
+
"multiple": true,
|
|
3670
3789
|
"type": "option"
|
|
3671
3790
|
},
|
|
3672
3791
|
"dry-run": {
|
|
3673
|
-
"description": "
|
|
3792
|
+
"description": "Validate without executing",
|
|
3674
3793
|
"name": "dry-run",
|
|
3675
3794
|
"allowNo": false,
|
|
3676
3795
|
"type": "boolean"
|
|
3677
3796
|
},
|
|
3678
|
-
"review": {
|
|
3679
|
-
"description": "Generate review report only (no writes to database)",
|
|
3680
|
-
"name": "review",
|
|
3681
|
-
"allowNo": false,
|
|
3682
|
-
"type": "boolean"
|
|
3683
|
-
},
|
|
3684
3797
|
"output": {
|
|
3685
3798
|
"char": "o",
|
|
3686
|
-
"description": "Output
|
|
3799
|
+
"description": "Output format",
|
|
3687
3800
|
"name": "output",
|
|
3801
|
+
"default": "compact",
|
|
3688
3802
|
"hasDynamicHelp": false,
|
|
3689
3803
|
"multiple": false,
|
|
3804
|
+
"options": [
|
|
3805
|
+
"compact",
|
|
3806
|
+
"json",
|
|
3807
|
+
"table"
|
|
3808
|
+
],
|
|
3690
3809
|
"type": "option"
|
|
3691
3810
|
},
|
|
3692
|
-
"
|
|
3693
|
-
"
|
|
3694
|
-
"
|
|
3811
|
+
"verbose": {
|
|
3812
|
+
"char": "v",
|
|
3813
|
+
"description": "Show detailed execution information",
|
|
3814
|
+
"name": "verbose",
|
|
3695
3815
|
"allowNo": false,
|
|
3696
3816
|
"type": "boolean"
|
|
3817
|
+
},
|
|
3818
|
+
"timeout": {
|
|
3819
|
+
"description": "Execution timeout in milliseconds",
|
|
3820
|
+
"name": "timeout",
|
|
3821
|
+
"default": 300000,
|
|
3822
|
+
"hasDynamicHelp": false,
|
|
3823
|
+
"multiple": false,
|
|
3824
|
+
"type": "option"
|
|
3697
3825
|
}
|
|
3698
3826
|
},
|
|
3699
3827
|
"hasDynamicHelp": false,
|
|
3700
3828
|
"hiddenAliases": [],
|
|
3701
|
-
"id": "
|
|
3829
|
+
"id": "ai:actions:run",
|
|
3702
3830
|
"pluginAlias": "@memberjunction/cli",
|
|
3703
3831
|
"pluginName": "@memberjunction/cli",
|
|
3704
3832
|
"pluginType": "core",
|
|
@@ -3708,14 +3836,15 @@
|
|
|
3708
3836
|
"relativePath": [
|
|
3709
3837
|
"dist",
|
|
3710
3838
|
"commands",
|
|
3711
|
-
"
|
|
3712
|
-
"
|
|
3839
|
+
"ai",
|
|
3840
|
+
"actions",
|
|
3841
|
+
"run.js"
|
|
3713
3842
|
]
|
|
3714
3843
|
},
|
|
3715
|
-
"ai:
|
|
3844
|
+
"ai:agents:list": {
|
|
3716
3845
|
"aliases": [],
|
|
3717
3846
|
"args": {},
|
|
3718
|
-
"description": "List available AI
|
|
3847
|
+
"description": "List available AI agents",
|
|
3719
3848
|
"examples": [
|
|
3720
3849
|
"<%= config.bin %> <%= command.id %>",
|
|
3721
3850
|
"<%= config.bin %> <%= command.id %> --output=table",
|
|
@@ -3739,7 +3868,7 @@
|
|
|
3739
3868
|
},
|
|
3740
3869
|
"hasDynamicHelp": false,
|
|
3741
3870
|
"hiddenAliases": [],
|
|
3742
|
-
"id": "ai:
|
|
3871
|
+
"id": "ai:agents:list",
|
|
3743
3872
|
"pluginAlias": "@memberjunction/cli",
|
|
3744
3873
|
"pluginName": "@memberjunction/cli",
|
|
3745
3874
|
"pluginType": "core",
|
|
@@ -3750,41 +3879,47 @@
|
|
|
3750
3879
|
"dist",
|
|
3751
3880
|
"commands",
|
|
3752
3881
|
"ai",
|
|
3753
|
-
"
|
|
3882
|
+
"agents",
|
|
3754
3883
|
"list.js"
|
|
3755
3884
|
]
|
|
3756
3885
|
},
|
|
3757
|
-
"ai:
|
|
3886
|
+
"ai:agents:run": {
|
|
3758
3887
|
"aliases": [],
|
|
3759
3888
|
"args": {},
|
|
3760
|
-
"description": "Execute an AI
|
|
3889
|
+
"description": "Execute an AI agent with a prompt or start interactive chat",
|
|
3761
3890
|
"examples": [
|
|
3762
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3763
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3764
|
-
"<%= config.bin %> <%= command.id %> -
|
|
3765
|
-
"<%= config.bin %> <%= command.id %> -n \"Calculate Expression\" --param \"Expression=2+2*3\" --dry-run"
|
|
3891
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Requirements Expert\" -p \"Create a dashboard for sales metrics\"",
|
|
3892
|
+
"<%= config.bin %> <%= command.id %> -a \"Child Component Generator Sub-agent\" --chat",
|
|
3893
|
+
"<%= config.bin %> <%= command.id %> -a \"Skip: Technical Design Expert\" -p \"Build a React component\" --verbose --timeout=600000"
|
|
3766
3894
|
],
|
|
3767
3895
|
"flags": {
|
|
3768
|
-
"
|
|
3769
|
-
"char": "
|
|
3770
|
-
"description": "
|
|
3771
|
-
"name": "
|
|
3896
|
+
"agent": {
|
|
3897
|
+
"char": "a",
|
|
3898
|
+
"description": "Agent name",
|
|
3899
|
+
"name": "agent",
|
|
3772
3900
|
"required": true,
|
|
3773
3901
|
"hasDynamicHelp": false,
|
|
3774
3902
|
"multiple": false,
|
|
3775
3903
|
"type": "option"
|
|
3776
3904
|
},
|
|
3777
|
-
"
|
|
3905
|
+
"prompt": {
|
|
3778
3906
|
"char": "p",
|
|
3779
|
-
"description": "
|
|
3780
|
-
"
|
|
3907
|
+
"description": "Prompt to execute",
|
|
3908
|
+
"exclusive": [
|
|
3909
|
+
"chat"
|
|
3910
|
+
],
|
|
3911
|
+
"name": "prompt",
|
|
3781
3912
|
"hasDynamicHelp": false,
|
|
3782
|
-
"multiple":
|
|
3913
|
+
"multiple": false,
|
|
3783
3914
|
"type": "option"
|
|
3784
3915
|
},
|
|
3785
|
-
"
|
|
3786
|
-
"
|
|
3787
|
-
"
|
|
3916
|
+
"chat": {
|
|
3917
|
+
"char": "c",
|
|
3918
|
+
"description": "Start interactive chat mode",
|
|
3919
|
+
"exclusive": [
|
|
3920
|
+
"prompt"
|
|
3921
|
+
],
|
|
3922
|
+
"name": "chat",
|
|
3788
3923
|
"allowNo": false,
|
|
3789
3924
|
"type": "boolean"
|
|
3790
3925
|
},
|
|
@@ -3820,7 +3955,7 @@
|
|
|
3820
3955
|
},
|
|
3821
3956
|
"hasDynamicHelp": false,
|
|
3822
3957
|
"hiddenAliases": [],
|
|
3823
|
-
"id": "ai:
|
|
3958
|
+
"id": "ai:agents:run",
|
|
3824
3959
|
"pluginAlias": "@memberjunction/cli",
|
|
3825
3960
|
"pluginName": "@memberjunction/cli",
|
|
3826
3961
|
"pluginType": "core",
|
|
@@ -3831,7 +3966,7 @@
|
|
|
3831
3966
|
"dist",
|
|
3832
3967
|
"commands",
|
|
3833
3968
|
"ai",
|
|
3834
|
-
"
|
|
3969
|
+
"agents",
|
|
3835
3970
|
"run.js"
|
|
3836
3971
|
]
|
|
3837
3972
|
},
|
|
@@ -4051,135 +4186,6 @@
|
|
|
4051
4186
|
"index.js"
|
|
4052
4187
|
]
|
|
4053
4188
|
},
|
|
4054
|
-
"ai:agents:list": {
|
|
4055
|
-
"aliases": [],
|
|
4056
|
-
"args": {},
|
|
4057
|
-
"description": "List available AI agents",
|
|
4058
|
-
"examples": [
|
|
4059
|
-
"<%= config.bin %> <%= command.id %>",
|
|
4060
|
-
"<%= config.bin %> <%= command.id %> --output=table",
|
|
4061
|
-
"<%= config.bin %> <%= command.id %> --output=json"
|
|
4062
|
-
],
|
|
4063
|
-
"flags": {
|
|
4064
|
-
"output": {
|
|
4065
|
-
"char": "o",
|
|
4066
|
-
"description": "Output format",
|
|
4067
|
-
"name": "output",
|
|
4068
|
-
"default": "compact",
|
|
4069
|
-
"hasDynamicHelp": false,
|
|
4070
|
-
"multiple": false,
|
|
4071
|
-
"options": [
|
|
4072
|
-
"compact",
|
|
4073
|
-
"json",
|
|
4074
|
-
"table"
|
|
4075
|
-
],
|
|
4076
|
-
"type": "option"
|
|
4077
|
-
}
|
|
4078
|
-
},
|
|
4079
|
-
"hasDynamicHelp": false,
|
|
4080
|
-
"hiddenAliases": [],
|
|
4081
|
-
"id": "ai:agents:list",
|
|
4082
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4083
|
-
"pluginName": "@memberjunction/cli",
|
|
4084
|
-
"pluginType": "core",
|
|
4085
|
-
"strict": true,
|
|
4086
|
-
"enableJsonFlag": false,
|
|
4087
|
-
"isESM": true,
|
|
4088
|
-
"relativePath": [
|
|
4089
|
-
"dist",
|
|
4090
|
-
"commands",
|
|
4091
|
-
"ai",
|
|
4092
|
-
"agents",
|
|
4093
|
-
"list.js"
|
|
4094
|
-
]
|
|
4095
|
-
},
|
|
4096
|
-
"ai:agents:run": {
|
|
4097
|
-
"aliases": [],
|
|
4098
|
-
"args": {},
|
|
4099
|
-
"description": "Execute an AI agent with a prompt or start interactive chat",
|
|
4100
|
-
"examples": [
|
|
4101
|
-
"<%= config.bin %> <%= command.id %> -a \"Skip: Requirements Expert\" -p \"Create a dashboard for sales metrics\"",
|
|
4102
|
-
"<%= config.bin %> <%= command.id %> -a \"Child Component Generator Sub-agent\" --chat",
|
|
4103
|
-
"<%= config.bin %> <%= command.id %> -a \"Skip: Technical Design Expert\" -p \"Build a React component\" --verbose --timeout=600000"
|
|
4104
|
-
],
|
|
4105
|
-
"flags": {
|
|
4106
|
-
"agent": {
|
|
4107
|
-
"char": "a",
|
|
4108
|
-
"description": "Agent name",
|
|
4109
|
-
"name": "agent",
|
|
4110
|
-
"required": true,
|
|
4111
|
-
"hasDynamicHelp": false,
|
|
4112
|
-
"multiple": false,
|
|
4113
|
-
"type": "option"
|
|
4114
|
-
},
|
|
4115
|
-
"prompt": {
|
|
4116
|
-
"char": "p",
|
|
4117
|
-
"description": "Prompt to execute",
|
|
4118
|
-
"exclusive": [
|
|
4119
|
-
"chat"
|
|
4120
|
-
],
|
|
4121
|
-
"name": "prompt",
|
|
4122
|
-
"hasDynamicHelp": false,
|
|
4123
|
-
"multiple": false,
|
|
4124
|
-
"type": "option"
|
|
4125
|
-
},
|
|
4126
|
-
"chat": {
|
|
4127
|
-
"char": "c",
|
|
4128
|
-
"description": "Start interactive chat mode",
|
|
4129
|
-
"exclusive": [
|
|
4130
|
-
"prompt"
|
|
4131
|
-
],
|
|
4132
|
-
"name": "chat",
|
|
4133
|
-
"allowNo": false,
|
|
4134
|
-
"type": "boolean"
|
|
4135
|
-
},
|
|
4136
|
-
"output": {
|
|
4137
|
-
"char": "o",
|
|
4138
|
-
"description": "Output format",
|
|
4139
|
-
"name": "output",
|
|
4140
|
-
"default": "compact",
|
|
4141
|
-
"hasDynamicHelp": false,
|
|
4142
|
-
"multiple": false,
|
|
4143
|
-
"options": [
|
|
4144
|
-
"compact",
|
|
4145
|
-
"json",
|
|
4146
|
-
"table"
|
|
4147
|
-
],
|
|
4148
|
-
"type": "option"
|
|
4149
|
-
},
|
|
4150
|
-
"verbose": {
|
|
4151
|
-
"char": "v",
|
|
4152
|
-
"description": "Show detailed execution information",
|
|
4153
|
-
"name": "verbose",
|
|
4154
|
-
"allowNo": false,
|
|
4155
|
-
"type": "boolean"
|
|
4156
|
-
},
|
|
4157
|
-
"timeout": {
|
|
4158
|
-
"description": "Execution timeout in milliseconds",
|
|
4159
|
-
"name": "timeout",
|
|
4160
|
-
"default": 300000,
|
|
4161
|
-
"hasDynamicHelp": false,
|
|
4162
|
-
"multiple": false,
|
|
4163
|
-
"type": "option"
|
|
4164
|
-
}
|
|
4165
|
-
},
|
|
4166
|
-
"hasDynamicHelp": false,
|
|
4167
|
-
"hiddenAliases": [],
|
|
4168
|
-
"id": "ai:agents:run",
|
|
4169
|
-
"pluginAlias": "@memberjunction/cli",
|
|
4170
|
-
"pluginName": "@memberjunction/cli",
|
|
4171
|
-
"pluginType": "core",
|
|
4172
|
-
"strict": true,
|
|
4173
|
-
"enableJsonFlag": false,
|
|
4174
|
-
"isESM": true,
|
|
4175
|
-
"relativePath": [
|
|
4176
|
-
"dist",
|
|
4177
|
-
"commands",
|
|
4178
|
-
"ai",
|
|
4179
|
-
"agents",
|
|
4180
|
-
"run.js"
|
|
4181
|
-
]
|
|
4182
|
-
},
|
|
4183
4189
|
"ai:prompts:list": {
|
|
4184
4190
|
"aliases": [],
|
|
4185
4191
|
"args": {},
|
|
@@ -4760,5 +4766,5 @@
|
|
|
4760
4766
|
]
|
|
4761
4767
|
}
|
|
4762
4768
|
},
|
|
4763
|
-
"version": "5.
|
|
4769
|
+
"version": "5.41.0"
|
|
4764
4770
|
}
|