@memberjunction/cli 6.2.0-edge.4 → 6.2.0-edge.6

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 (53) hide show
  1. package/README.md +22 -0
  2. package/dist/commands/agent/init.d.ts +5 -0
  3. package/dist/commands/agent/init.d.ts.map +1 -1
  4. package/dist/commands/agent/init.js +109 -0
  5. package/dist/commands/agent/init.js.map +1 -1
  6. package/dist/commands/ai/actions/run.d.ts.map +1 -1
  7. package/dist/commands/ai/actions/run.js +5 -1
  8. package/dist/commands/ai/actions/run.js.map +1 -1
  9. package/dist/commands/ai/agents/run.d.ts +1 -0
  10. package/dist/commands/ai/agents/run.d.ts.map +1 -1
  11. package/dist/commands/ai/agents/run.js +20 -6
  12. package/dist/commands/ai/agents/run.js.map +1 -1
  13. package/dist/commands/ai/prompts/run.d.ts.map +1 -1
  14. package/dist/commands/ai/prompts/run.js +5 -1
  15. package/dist/commands/ai/prompts/run.js.map +1 -1
  16. package/dist/commands/app/install.d.ts.map +1 -1
  17. package/dist/commands/app/install.js +17 -2
  18. package/dist/commands/app/install.js.map +1 -1
  19. package/dist/commands/app/upgrade.d.ts.map +1 -1
  20. package/dist/commands/app/upgrade.js +7 -1
  21. package/dist/commands/app/upgrade.js.map +1 -1
  22. package/dist/commands/dbdoc/analyze.d.ts +1 -0
  23. package/dist/commands/dbdoc/analyze.d.ts.map +1 -1
  24. package/dist/commands/dbdoc/analyze.js +7 -0
  25. package/dist/commands/dbdoc/analyze.js.map +1 -1
  26. package/dist/commands/dbdoc/export.d.ts +6 -0
  27. package/dist/commands/dbdoc/export.d.ts.map +1 -1
  28. package/dist/commands/dbdoc/export.js +32 -0
  29. package/dist/commands/dbdoc/export.js.map +1 -1
  30. package/dist/commands/sync/watch.d.ts.map +1 -1
  31. package/dist/commands/sync/watch.js +3 -5
  32. package/dist/commands/sync/watch.js.map +1 -1
  33. package/dist/init-templates/citizen-builder/.agents/skills/new-agent/SKILL.md +19 -6
  34. package/dist/init-templates/citizen-builder/.agents/skills/test-agent/SKILL.md +4 -1
  35. package/dist/init-templates/citizen-builder/.claude/skills/new-agent/SKILL.md +19 -6
  36. package/dist/init-templates/citizen-builder/.claude/skills/test-agent/SKILL.md +4 -1
  37. package/dist/init-templates/citizen-builder/.env.example +4 -2
  38. package/dist/init-templates/citizen-builder/AGENTS.md +136 -40
  39. package/dist/init-templates/citizen-builder/README.md +18 -5
  40. package/dist/init-templates/citizen-builder/docker-compose.yml +6 -5
  41. package/dist/init-templates/citizen-builder/metadata/.mj-sync.json +7 -4
  42. package/dist/init-templates/citizen-builder/metadata/agents/.customer-insight-agent.json +17 -13
  43. package/dist/init-templates/citizen-builder/metadata/prompts/.customer-insight-prompt.json +3 -1
  44. package/dist/init-templates/citizen-builder/metadata/prompts/templates/customer-insight.template.md +8 -0
  45. package/dist/init-templates/citizen-builder/scripts/docker-entrypoint.sh +140 -38
  46. package/dist/init-templates/citizen-builder/scripts/sync-metadata.sh +1 -1
  47. package/dist/lib/dev-workspace/build.d.ts.map +1 -1
  48. package/dist/lib/dev-workspace/build.js +43 -11
  49. package/dist/lib/dev-workspace/build.js.map +1 -1
  50. package/dist/lib/dev-workspace/types.d.ts +9 -5
  51. package/dist/lib/dev-workspace/types.d.ts.map +1 -1
  52. package/oclif.manifest.json +864 -791
  53. package/package.json +26 -26
@@ -280,13 +280,14 @@
280
280
  "required": true
281
281
  }
282
282
  },
283
- "description": "Install an MJ Open App from a GitHub repository",
283
+ "description": "Install an MJ Open App from a GitHub repository.\n\nPrivate repositories need a GitHub credential. GitHub returns 404 (not 403) for a repo it will not show you, so without one an install fails as though the app or its version did not exist. Set GITHUB_TOKEN in the environment, or add the repo to openApps.github.tokens (or set openApps.github.token) in mj.config.cjs.",
284
284
  "examples": [
285
285
  "<%= config.bin %> app install https://github.com/acme/mj-crm",
286
286
  "<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0",
287
287
  "<%= config.bin %> app install https://github.com/acme/mj-crm --verbose",
288
288
  "<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot",
289
- "<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive"
289
+ "<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive",
290
+ "GITHUB_TOKEN=$(gh auth token) <%= config.bin %> app install https://github.com/acme/private-app"
290
291
  ],
291
292
  "flags": {
292
293
  "version": {
@@ -988,65 +989,79 @@
988
989
  "usage.js"
989
990
  ]
990
991
  },
991
- "bump": {
992
+ "bundle": {
992
993
  "aliases": [],
993
994
  "args": {},
994
- "description": "Bumps MemberJunction dependency versions",
995
+ "description": "Create a self-contained MemberJunction distribution zip for offline/air-gapped installs",
995
996
  "examples": [
996
- {
997
- "command": "<%= config.bin %> <%= command.id %>",
998
- "description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
999
- },
1000
- {
1001
- "command": "<%= config.bin %> <%= command.id %> -rdv",
1002
- "description": "Preview all recursive packages bumps without writing any changes."
1003
- },
1004
- {
1005
- "command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
1006
- "description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
1007
- }
997
+ "<%= config.bin %> <%= command.id %> --out ./mj-install.zip",
998
+ "<%= config.bin %> <%= command.id %> --tag v5.38.0 --out ./mj-install.zip",
999
+ "<%= config.bin %> <%= command.id %> --source . --out ./mj-install.zip",
1000
+ "<%= config.bin %> <%= command.id %> --tag v5.38.0 --with-migrations --out ./mj-install.zip",
1001
+ "<%= config.bin %> <%= command.id %> --with-migrations --db-platform postgresql --out ./mj-install.zip"
1008
1002
  ],
1009
1003
  "flags": {
1010
- "verbose": {
1011
- "char": "v",
1012
- "description": "Enable additional logging",
1013
- "name": "verbose",
1014
- "allowNo": false,
1015
- "type": "boolean"
1016
- },
1017
- "recursive": {
1018
- "char": "r",
1019
- "description": "Bump version in current directory and all subdirectories",
1020
- "name": "recursive",
1021
- "allowNo": false,
1022
- "type": "boolean"
1004
+ "out": {
1005
+ "char": "o",
1006
+ "description": "Output zip path",
1007
+ "name": "out",
1008
+ "required": true,
1009
+ "hasDynamicHelp": false,
1010
+ "multiple": false,
1011
+ "type": "option"
1023
1012
  },
1024
1013
  "tag": {
1025
1014
  "char": "t",
1026
- "description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
1015
+ "description": "Release tag to bundle (e.g. v5.38.0). Defaults to the latest branch tip.",
1027
1016
  "name": "tag",
1028
1017
  "hasDynamicHelp": false,
1029
1018
  "multiple": false,
1030
1019
  "type": "option"
1031
1020
  },
1032
- "quiet": {
1033
- "char": "q",
1034
- "description": "Only output paths for updated packages",
1035
- "name": "quiet",
1021
+ "source": {
1022
+ "description": "Bundle from a local working-tree directory instead of fetching from the repo",
1023
+ "name": "source",
1024
+ "hasDynamicHelp": false,
1025
+ "multiple": false,
1026
+ "type": "option"
1027
+ },
1028
+ "with-migrations": {
1029
+ "description": "Include the migration tree(s) so an air-gapped \"mj migrate\" can run offline. Ships both SQL Server and PostgreSQL trees by default.",
1030
+ "name": "with-migrations",
1036
1031
  "allowNo": false,
1037
1032
  "type": "boolean"
1038
1033
  },
1039
- "dry": {
1040
- "char": "d",
1041
- "description": "Dry run, do not write changes to package.json files",
1042
- "name": "dry",
1034
+ "db-platform": {
1035
+ "dependsOn": [
1036
+ "with-migrations"
1037
+ ],
1038
+ "description": "With --with-migrations, ship only this platform's migration tree instead of both",
1039
+ "name": "db-platform",
1040
+ "hasDynamicHelp": false,
1041
+ "multiple": false,
1042
+ "options": [
1043
+ "sqlserver",
1044
+ "postgresql"
1045
+ ],
1046
+ "type": "option"
1047
+ },
1048
+ "no-claude-pack": {
1049
+ "description": "Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.",
1050
+ "name": "no-claude-pack",
1051
+ "allowNo": false,
1052
+ "type": "boolean"
1053
+ },
1054
+ "verbose": {
1055
+ "char": "v",
1056
+ "description": "Show detailed output",
1057
+ "name": "verbose",
1043
1058
  "allowNo": false,
1044
1059
  "type": "boolean"
1045
1060
  }
1046
1061
  },
1047
1062
  "hasDynamicHelp": false,
1048
1063
  "hiddenAliases": [],
1049
- "id": "bump",
1064
+ "id": "bundle",
1050
1065
  "pluginAlias": "@memberjunction/cli",
1051
1066
  "pluginName": "@memberjunction/cli",
1052
1067
  "pluginType": "core",
@@ -1056,14 +1071,14 @@
1056
1071
  "relativePath": [
1057
1072
  "dist",
1058
1073
  "commands",
1059
- "bump",
1074
+ "bundle",
1060
1075
  "index.js"
1061
1076
  ]
1062
1077
  },
1063
- "bump:usage": {
1078
+ "bundle:usage": {
1064
1079
  "aliases": [],
1065
1080
  "args": {},
1066
- "description": "Show usage, flags, examples, and runtime hints for every `mj bump` command.",
1081
+ "description": "Show usage, flags, examples, and runtime hints for every `mj bundle` command.",
1067
1082
  "flags": {
1068
1083
  "format": {
1069
1084
  "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
@@ -1080,7 +1095,7 @@
1080
1095
  },
1081
1096
  "hasDynamicHelp": false,
1082
1097
  "hiddenAliases": [],
1083
- "id": "bump:usage",
1098
+ "id": "bundle:usage",
1084
1099
  "pluginAlias": "@memberjunction/cli",
1085
1100
  "pluginName": "@memberjunction/cli",
1086
1101
  "pluginType": "core",
@@ -1090,83 +1105,69 @@
1090
1105
  "relativePath": [
1091
1106
  "dist",
1092
1107
  "commands",
1093
- "bump",
1108
+ "bundle",
1094
1109
  "usage.js"
1095
1110
  ]
1096
1111
  },
1097
- "bundle": {
1112
+ "bump": {
1098
1113
  "aliases": [],
1099
1114
  "args": {},
1100
- "description": "Create a self-contained MemberJunction distribution zip for offline/air-gapped installs",
1115
+ "description": "Bumps MemberJunction dependency versions",
1101
1116
  "examples": [
1102
- "<%= config.bin %> <%= command.id %> --out ./mj-install.zip",
1103
- "<%= config.bin %> <%= command.id %> --tag v5.38.0 --out ./mj-install.zip",
1104
- "<%= config.bin %> <%= command.id %> --source . --out ./mj-install.zip",
1105
- "<%= config.bin %> <%= command.id %> --tag v5.38.0 --with-migrations --out ./mj-install.zip",
1106
- "<%= config.bin %> <%= command.id %> --with-migrations --db-platform postgresql --out ./mj-install.zip"
1107
- ],
1108
- "flags": {
1109
- "out": {
1110
- "char": "o",
1111
- "description": "Output zip path",
1112
- "name": "out",
1113
- "required": true,
1114
- "hasDynamicHelp": false,
1115
- "multiple": false,
1116
- "type": "option"
1117
+ {
1118
+ "command": "<%= config.bin %> <%= command.id %>",
1119
+ "description": "Bump all @memberjunction/* dependencies in the current directory's package.json to the CLI version"
1117
1120
  },
1118
- "tag": {
1119
- "char": "t",
1120
- "description": "Release tag to bundle (e.g. v5.38.0). Defaults to the latest branch tip.",
1121
- "name": "tag",
1122
- "hasDynamicHelp": false,
1123
- "multiple": false,
1124
- "type": "option"
1121
+ {
1122
+ "command": "<%= config.bin %> <%= command.id %> -rdv",
1123
+ "description": "Preview all recursive packages bumps without writing any changes."
1125
1124
  },
1126
- "source": {
1127
- "description": "Bundle from a local working-tree directory instead of fetching from the repo",
1128
- "name": "source",
1129
- "hasDynamicHelp": false,
1130
- "multiple": false,
1131
- "type": "option"
1125
+ {
1126
+ "command": "<%= config.bin %> <%= command.id %> -rqt v2.10.0 | xargs -n1 -I{} npm install --prefix {}",
1127
+ "description": "Recursively bump all @memberjunction/* dependencies in all packages to version v2.10.0 and output only the paths containing the updated package.json files. Pipe the output to xargs to run npm install in each directory and update the package-lock.json files as well."
1128
+ }
1129
+ ],
1130
+ "flags": {
1131
+ "verbose": {
1132
+ "char": "v",
1133
+ "description": "Enable additional logging",
1134
+ "name": "verbose",
1135
+ "allowNo": false,
1136
+ "type": "boolean"
1132
1137
  },
1133
- "with-migrations": {
1134
- "description": "Include the migration tree(s) so an air-gapped \"mj migrate\" can run offline. Ships both SQL Server and PostgreSQL trees by default.",
1135
- "name": "with-migrations",
1138
+ "recursive": {
1139
+ "char": "r",
1140
+ "description": "Bump version in current directory and all subdirectories",
1141
+ "name": "recursive",
1136
1142
  "allowNo": false,
1137
1143
  "type": "boolean"
1138
1144
  },
1139
- "db-platform": {
1140
- "dependsOn": [
1141
- "with-migrations"
1142
- ],
1143
- "description": "With --with-migrations, ship only this platform's migration tree instead of both",
1144
- "name": "db-platform",
1145
+ "tag": {
1146
+ "char": "t",
1147
+ "description": "Version tag to bump target for bump (e.g. v2.10.0), defaults to the CLI version",
1148
+ "name": "tag",
1145
1149
  "hasDynamicHelp": false,
1146
1150
  "multiple": false,
1147
- "options": [
1148
- "sqlserver",
1149
- "postgresql"
1150
- ],
1151
1151
  "type": "option"
1152
1152
  },
1153
- "no-claude-pack": {
1154
- "description": "Exclude the Claude Code pack (CLAUDE.md + .claude/) from the bundle. By default the pack is included so air-gapped installs get the same out-of-the-box Claude experience as online installs.",
1155
- "name": "no-claude-pack",
1153
+ "quiet": {
1154
+ "char": "q",
1155
+ "description": "Only output paths for updated packages",
1156
+ "name": "quiet",
1156
1157
  "allowNo": false,
1157
1158
  "type": "boolean"
1158
1159
  },
1159
- "verbose": {
1160
- "char": "v",
1161
- "description": "Show detailed output",
1162
- "name": "verbose",
1160
+ "dry": {
1161
+ "char": "d",
1162
+ "description": "Dry run, do not write changes to package.json files",
1163
+ "name": "dry",
1163
1164
  "allowNo": false,
1164
1165
  "type": "boolean"
1165
1166
  }
1166
1167
  },
1167
1168
  "hasDynamicHelp": false,
1168
1169
  "hiddenAliases": [],
1169
- "id": "bundle",
1170
+ "id": "bump",
1170
1171
  "pluginAlias": "@memberjunction/cli",
1171
1172
  "pluginName": "@memberjunction/cli",
1172
1173
  "pluginType": "core",
@@ -1176,14 +1177,14 @@
1176
1177
  "relativePath": [
1177
1178
  "dist",
1178
1179
  "commands",
1179
- "bundle",
1180
+ "bump",
1180
1181
  "index.js"
1181
1182
  ]
1182
1183
  },
1183
- "bundle:usage": {
1184
+ "bump:usage": {
1184
1185
  "aliases": [],
1185
1186
  "args": {},
1186
- "description": "Show usage, flags, examples, and runtime hints for every `mj bundle` command.",
1187
+ "description": "Show usage, flags, examples, and runtime hints for every `mj bump` command.",
1187
1188
  "flags": {
1188
1189
  "format": {
1189
1190
  "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
@@ -1200,7 +1201,7 @@
1200
1201
  },
1201
1202
  "hasDynamicHelp": false,
1202
1203
  "hiddenAliases": [],
1203
- "id": "bundle:usage",
1204
+ "id": "bump:usage",
1204
1205
  "pluginAlias": "@memberjunction/cli",
1205
1206
  "pluginName": "@memberjunction/cli",
1206
1207
  "pluginType": "core",
@@ -1210,7 +1211,7 @@
1210
1211
  "relativePath": [
1211
1212
  "dist",
1212
1213
  "commands",
1213
- "bundle",
1214
+ "bump",
1214
1215
  "usage.js"
1215
1216
  ]
1216
1217
  },
@@ -1940,6 +1941,62 @@
1940
1941
  "usage.js"
1941
1942
  ]
1942
1943
  },
1944
+ "dev": {
1945
+ "aliases": [],
1946
+ "args": {},
1947
+ "description": "Local development tooling: generate, inspect, and tear down the cross-repo pnpm workspace that links sibling repo clones. Run `mj dev usage` for every command's flags, examples, and runtime hints.",
1948
+ "flags": {},
1949
+ "hasDynamicHelp": false,
1950
+ "hidden": false,
1951
+ "hiddenAliases": [],
1952
+ "id": "dev",
1953
+ "pluginAlias": "@memberjunction/cli",
1954
+ "pluginName": "@memberjunction/cli",
1955
+ "pluginType": "core",
1956
+ "strict": true,
1957
+ "enableJsonFlag": false,
1958
+ "isESM": true,
1959
+ "relativePath": [
1960
+ "dist",
1961
+ "commands",
1962
+ "dev",
1963
+ "index.js"
1964
+ ]
1965
+ },
1966
+ "dev:usage": {
1967
+ "aliases": [],
1968
+ "args": {},
1969
+ "description": "Show usage, flags, examples, and runtime hints for every `mj dev` command.",
1970
+ "flags": {
1971
+ "format": {
1972
+ "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
1973
+ "name": "format",
1974
+ "hasDynamicHelp": false,
1975
+ "multiple": false,
1976
+ "options": [
1977
+ "text",
1978
+ "json",
1979
+ "md"
1980
+ ],
1981
+ "type": "option"
1982
+ }
1983
+ },
1984
+ "hasDynamicHelp": false,
1985
+ "hiddenAliases": [],
1986
+ "id": "dev:usage",
1987
+ "pluginAlias": "@memberjunction/cli",
1988
+ "pluginName": "@memberjunction/cli",
1989
+ "pluginType": "core",
1990
+ "strict": true,
1991
+ "enableJsonFlag": false,
1992
+ "isESM": true,
1993
+ "relativePath": [
1994
+ "dist",
1995
+ "commands",
1996
+ "dev",
1997
+ "usage.js"
1998
+ ]
1999
+ },
1943
2000
  "dbdoc:analyze": {
1944
2001
  "aliases": [],
1945
2002
  "args": {},
@@ -1967,6 +2024,12 @@
1967
2024
  "hasDynamicHelp": false,
1968
2025
  "multiple": false,
1969
2026
  "type": "option"
2027
+ },
2028
+ "skip-sampling": {
2029
+ "description": "Skip table data sampling pass (useful for large databases or when schema/dictionary is already provided)",
2030
+ "name": "skip-sampling",
2031
+ "allowNo": false,
2032
+ "type": "boolean"
1970
2033
  }
1971
2034
  },
1972
2035
  "hasDynamicHelp": false,
@@ -2178,7 +2241,59 @@
2178
2241
  "hasDynamicHelp": false,
2179
2242
  "multiple": false,
2180
2243
  "type": "option"
2181
- }
2244
+ },
2245
+ "erd-mode": {
2246
+ "description": "ERD layout: full, clusters (one diagram per subject area) or both",
2247
+ "name": "erd-mode",
2248
+ "hasDynamicHelp": false,
2249
+ "multiple": false,
2250
+ "options": [
2251
+ "full",
2252
+ "clusters",
2253
+ "both"
2254
+ ],
2255
+ "type": "option"
2256
+ },
2257
+ "erd-columns": {
2258
+ "description": "Columns drawn per entity: all, keys (PK/FK only) or none",
2259
+ "name": "erd-columns",
2260
+ "hasDynamicHelp": false,
2261
+ "multiple": false,
2262
+ "options": [
2263
+ "all",
2264
+ "keys",
2265
+ "none"
2266
+ ],
2267
+ "type": "option"
2268
+ },
2269
+ "erd-hub-min-inbound": {
2270
+ "description": "A table referenced by at least this many tables is a subject-area hub",
2271
+ "name": "erd-hub-min-inbound",
2272
+ "hasDynamicHelp": false,
2273
+ "multiple": false,
2274
+ "type": "option"
2275
+ },
2276
+ "erd-lookup-max-rows": {
2277
+ "description": "A table that references nothing and has fewer rows than this is a reference table",
2278
+ "name": "erd-lookup-max-rows",
2279
+ "hasDynamicHelp": false,
2280
+ "multiple": false,
2281
+ "type": "option"
2282
+ },
2283
+ "erd-page-size": {
2284
+ "description": "Tables per diagram page beyond the hub",
2285
+ "name": "erd-page-size",
2286
+ "hasDynamicHelp": false,
2287
+ "multiple": false,
2288
+ "type": "option"
2289
+ },
2290
+ "erd-min-cluster-size": {
2291
+ "description": "Subject areas smaller than this fold into a neighbour",
2292
+ "name": "erd-min-cluster-size",
2293
+ "hasDynamicHelp": false,
2294
+ "multiple": false,
2295
+ "type": "option"
2296
+ }
2182
2297
  },
2183
2298
  "hasDynamicHelp": false,
2184
2299
  "hiddenAliases": [],
@@ -2411,62 +2526,6 @@
2411
2526
  "usage.js"
2412
2527
  ]
2413
2528
  },
2414
- "dev": {
2415
- "aliases": [],
2416
- "args": {},
2417
- "description": "Local development tooling: generate, inspect, and tear down the cross-repo pnpm workspace that links sibling repo clones. Run `mj dev usage` for every command's flags, examples, and runtime hints.",
2418
- "flags": {},
2419
- "hasDynamicHelp": false,
2420
- "hidden": false,
2421
- "hiddenAliases": [],
2422
- "id": "dev",
2423
- "pluginAlias": "@memberjunction/cli",
2424
- "pluginName": "@memberjunction/cli",
2425
- "pluginType": "core",
2426
- "strict": true,
2427
- "enableJsonFlag": false,
2428
- "isESM": true,
2429
- "relativePath": [
2430
- "dist",
2431
- "commands",
2432
- "dev",
2433
- "index.js"
2434
- ]
2435
- },
2436
- "dev:usage": {
2437
- "aliases": [],
2438
- "args": {},
2439
- "description": "Show usage, flags, examples, and runtime hints for every `mj dev` command.",
2440
- "flags": {
2441
- "format": {
2442
- "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
2443
- "name": "format",
2444
- "hasDynamicHelp": false,
2445
- "multiple": false,
2446
- "options": [
2447
- "text",
2448
- "json",
2449
- "md"
2450
- ],
2451
- "type": "option"
2452
- }
2453
- },
2454
- "hasDynamicHelp": false,
2455
- "hiddenAliases": [],
2456
- "id": "dev:usage",
2457
- "pluginAlias": "@memberjunction/cli",
2458
- "pluginName": "@memberjunction/cli",
2459
- "pluginType": "core",
2460
- "strict": true,
2461
- "enableJsonFlag": false,
2462
- "isESM": true,
2463
- "relativePath": [
2464
- "dist",
2465
- "commands",
2466
- "dev",
2467
- "usage.js"
2468
- ]
2469
- },
2470
2529
  "doctor": {
2471
2530
  "aliases": [],
2472
2531
  "args": {},
@@ -3531,34 +3590,30 @@
3531
3590
  "validate.js"
3532
3591
  ]
3533
3592
  },
3534
- "queue:backlog": {
3593
+ "rubric:diff": {
3535
3594
  "aliases": [],
3536
- "args": {},
3537
- "description": "Show the autoscaler metric for one subscription: claimable pending plus in-flight deliveries",
3538
- "examples": [
3539
- "<%= config.bin %> <%= command.id %> --subscription venue-import",
3540
- "<%= config.bin %> <%= command.id %> --subscription venue-import --json"
3541
- ],
3542
- "flags": {
3543
- "subscription": {
3544
- "char": "s",
3545
- "description": "Subscription name",
3546
- "name": "subscription",
3547
- "required": true,
3548
- "hasDynamicHelp": false,
3549
- "multiple": false,
3550
- "type": "option"
3595
+ "args": {
3596
+ "rubric": {
3597
+ "description": "Rubric name or id",
3598
+ "name": "rubric",
3599
+ "required": true
3551
3600
  },
3552
- "json": {
3553
- "description": "Print JSON instead of text",
3554
- "name": "json",
3555
- "allowNo": false,
3556
- "type": "boolean"
3601
+ "from": {
3602
+ "description": "Version 1.2.0 or id",
3603
+ "name": "from",
3604
+ "required": true
3605
+ },
3606
+ "to": {
3607
+ "description": "Version 1.2.0 or id",
3608
+ "name": "to",
3609
+ "required": true
3557
3610
  }
3558
3611
  },
3612
+ "description": "Print the version bump between two rubric versions.",
3613
+ "flags": {},
3559
3614
  "hasDynamicHelp": false,
3560
3615
  "hiddenAliases": [],
3561
- "id": "queue:backlog",
3616
+ "id": "rubric:diff",
3562
3617
  "pluginAlias": "@memberjunction/cli",
3563
3618
  "pluginName": "@memberjunction/cli",
3564
3619
  "pluginType": "core",
@@ -3568,52 +3623,76 @@
3568
3623
  "relativePath": [
3569
3624
  "dist",
3570
3625
  "commands",
3571
- "queue",
3572
- "backlog.js"
3626
+ "rubric",
3627
+ "diff.js"
3573
3628
  ]
3574
3629
  },
3575
- "queue:dead-letters": {
3630
+ "rubric:evaluate": {
3576
3631
  "aliases": [],
3577
3632
  "args": {},
3578
- "description": "List a work-queue subscription's dead-lettered deliveries",
3579
- "examples": [
3580
- "<%= config.bin %> <%= command.id %> --subscription integration.apply --page-size 20"
3581
- ],
3633
+ "description": "Evaluate one record against a rubric. Does not publish.",
3582
3634
  "flags": {
3583
- "subscription": {
3584
- "char": "s",
3585
- "description": "Subscription name",
3586
- "name": "subscription",
3635
+ "rubric": {
3636
+ "description": "Rubric name or id, optionally @version",
3637
+ "name": "rubric",
3587
3638
  "required": true,
3588
3639
  "hasDynamicHelp": false,
3589
3640
  "multiple": false,
3590
3641
  "type": "option"
3591
3642
  },
3592
- "cursor": {
3593
- "description": "nextCursor from a previous page",
3594
- "name": "cursor",
3643
+ "entity": {
3644
+ "description": "Subject entity name",
3645
+ "name": "entity",
3646
+ "required": true,
3595
3647
  "hasDynamicHelp": false,
3596
3648
  "multiple": false,
3597
3649
  "type": "option"
3598
3650
  },
3599
- "page-size": {
3600
- "description": "Items per page (1–500)",
3601
- "name": "page-size",
3602
- "default": 50,
3651
+ "record": {
3652
+ "description": "Subject record id",
3653
+ "name": "record",
3654
+ "required": true,
3603
3655
  "hasDynamicHelp": false,
3604
3656
  "multiple": false,
3605
3657
  "type": "option"
3606
3658
  },
3607
- "json": {
3608
- "description": "Print JSON instead of a table",
3609
- "name": "json",
3610
- "allowNo": false,
3611
- "type": "boolean"
3659
+ "evaluator": {
3660
+ "description": "A registered evaluator: LLM, Decision, Agent, Deterministic, or a custom one",
3661
+ "name": "evaluator",
3662
+ "default": "LLM",
3663
+ "hasDynamicHelp": false,
3664
+ "multiple": false,
3665
+ "type": "option"
3666
+ },
3667
+ "prompt": {
3668
+ "description": "LLM: the judge prompt composed into Rubric Evaluator (default Rubric Evaluator - Default Judge). Decision: the decision prompt (default Default Decision)",
3669
+ "name": "prompt",
3670
+ "hasDynamicHelp": false,
3671
+ "multiple": false,
3672
+ "type": "option"
3673
+ },
3674
+ "model": {
3675
+ "description": "AI Model ID to pin. Otherwise the prompt's bindings choose",
3676
+ "name": "model",
3677
+ "hasDynamicHelp": false,
3678
+ "multiple": false,
3679
+ "type": "option"
3680
+ },
3681
+ "mode": {
3682
+ "description": "LLM only: SinglePass or PerCriterion",
3683
+ "name": "mode",
3684
+ "hasDynamicHelp": false,
3685
+ "multiple": false,
3686
+ "options": [
3687
+ "SinglePass",
3688
+ "PerCriterion"
3689
+ ],
3690
+ "type": "option"
3612
3691
  }
3613
3692
  },
3614
3693
  "hasDynamicHelp": false,
3615
3694
  "hiddenAliases": [],
3616
- "id": "queue:dead-letters",
3695
+ "id": "rubric:evaluate",
3617
3696
  "pluginAlias": "@memberjunction/cli",
3618
3697
  "pluginName": "@memberjunction/cli",
3619
3698
  "pluginType": "core",
@@ -3623,49 +3702,18 @@
3623
3702
  "relativePath": [
3624
3703
  "dist",
3625
3704
  "commands",
3626
- "queue",
3627
- "dead-letters.js"
3705
+ "rubric",
3706
+ "evaluate.js"
3628
3707
  ]
3629
3708
  },
3630
- "queue:discard": {
3709
+ "rubric": {
3631
3710
  "aliases": [],
3632
3711
  "args": {},
3633
- "description": "Discard one pending or dead-lettered work-queue delivery, or cancel one that is in flight",
3634
- "examples": [
3635
- "<%= config.bin %> <%= command.id %> --subscription integration.apply --delivery <id> --reason \"bad batch, republished\""
3636
- ],
3637
- "flags": {
3638
- "subscription": {
3639
- "char": "s",
3640
- "description": "Subscription name",
3641
- "name": "subscription",
3642
- "required": true,
3643
- "hasDynamicHelp": false,
3644
- "multiple": false,
3645
- "type": "option"
3646
- },
3647
- "delivery": {
3648
- "char": "d",
3649
- "description": "DeliveryID to discard",
3650
- "name": "delivery",
3651
- "required": true,
3652
- "hasDynamicHelp": false,
3653
- "multiple": false,
3654
- "type": "option"
3655
- },
3656
- "reason": {
3657
- "char": "r",
3658
- "description": "Why the work is dropped (at most 1000 characters)",
3659
- "name": "reason",
3660
- "required": true,
3661
- "hasDynamicHelp": false,
3662
- "multiple": false,
3663
- "type": "option"
3664
- }
3665
- },
3712
+ "description": "List, show, diff, validate, and evaluate rubrics.",
3713
+ "flags": {},
3666
3714
  "hasDynamicHelp": false,
3667
3715
  "hiddenAliases": [],
3668
- "id": "queue:discard",
3716
+ "id": "rubric",
3669
3717
  "pluginAlias": "@memberjunction/cli",
3670
3718
  "pluginName": "@memberjunction/cli",
3671
3719
  "pluginType": "core",
@@ -3675,20 +3723,344 @@
3675
3723
  "relativePath": [
3676
3724
  "dist",
3677
3725
  "commands",
3678
- "queue",
3679
- "discard.js"
3726
+ "rubric",
3727
+ "index.js"
3680
3728
  ]
3681
3729
  },
3682
- "queue:export-topology": {
3730
+ "rubric:list": {
3683
3731
  "aliases": [],
3684
3732
  "args": {},
3685
- "description": "Write the topology manifest for one transport (input to the Terraform module)",
3686
- "examples": [
3687
- "<%= config.bin %> <%= command.id %> --transport AWS-prod --output infrastructure/work-queue/manifest.json"
3688
- ],
3689
- "flags": {
3690
- "transport": {
3691
- "char": "t",
3733
+ "description": "List rubrics.",
3734
+ "flags": {},
3735
+ "hasDynamicHelp": false,
3736
+ "hiddenAliases": [],
3737
+ "id": "rubric:list",
3738
+ "pluginAlias": "@memberjunction/cli",
3739
+ "pluginName": "@memberjunction/cli",
3740
+ "pluginType": "core",
3741
+ "strict": true,
3742
+ "enableJsonFlag": false,
3743
+ "isESM": true,
3744
+ "relativePath": [
3745
+ "dist",
3746
+ "commands",
3747
+ "rubric",
3748
+ "list.js"
3749
+ ]
3750
+ },
3751
+ "rubric:show": {
3752
+ "aliases": [],
3753
+ "args": {
3754
+ "rubric": {
3755
+ "description": "Rubric name or id, optionally @version",
3756
+ "name": "rubric",
3757
+ "required": true
3758
+ }
3759
+ },
3760
+ "description": "Show a rubric version and its criteria.",
3761
+ "flags": {},
3762
+ "hasDynamicHelp": false,
3763
+ "hiddenAliases": [],
3764
+ "id": "rubric:show",
3765
+ "pluginAlias": "@memberjunction/cli",
3766
+ "pluginName": "@memberjunction/cli",
3767
+ "pluginType": "core",
3768
+ "strict": true,
3769
+ "enableJsonFlag": false,
3770
+ "isESM": true,
3771
+ "relativePath": [
3772
+ "dist",
3773
+ "commands",
3774
+ "rubric",
3775
+ "show.js"
3776
+ ]
3777
+ },
3778
+ "rubric:validate": {
3779
+ "aliases": [],
3780
+ "args": {
3781
+ "file": {
3782
+ "description": "JSON snapshot file",
3783
+ "name": "file",
3784
+ "required": true
3785
+ }
3786
+ },
3787
+ "description": "Check a rubric snapshot file for duplicate keys, gates, weights, and scales.",
3788
+ "flags": {},
3789
+ "hasDynamicHelp": false,
3790
+ "hiddenAliases": [],
3791
+ "id": "rubric:validate",
3792
+ "pluginAlias": "@memberjunction/cli",
3793
+ "pluginName": "@memberjunction/cli",
3794
+ "pluginType": "core",
3795
+ "strict": true,
3796
+ "enableJsonFlag": false,
3797
+ "isESM": true,
3798
+ "relativePath": [
3799
+ "dist",
3800
+ "commands",
3801
+ "rubric",
3802
+ "validate.js"
3803
+ ]
3804
+ },
3805
+ "sql-audit": {
3806
+ "aliases": [],
3807
+ "args": {},
3808
+ "description": "Compare source and target databases for migration verification",
3809
+ "examples": [
3810
+ "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\"",
3811
+ "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --output report.txt",
3812
+ "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --source-schema __mj --target-schema __mj"
3813
+ ],
3814
+ "flags": {
3815
+ "source": {
3816
+ "description": "Source database connection string (mssql://... or postgres://...)",
3817
+ "name": "source",
3818
+ "required": true,
3819
+ "hasDynamicHelp": false,
3820
+ "multiple": false,
3821
+ "type": "option"
3822
+ },
3823
+ "target": {
3824
+ "description": "Target database connection string (mssql://... or postgres://...)",
3825
+ "name": "target",
3826
+ "required": true,
3827
+ "hasDynamicHelp": false,
3828
+ "multiple": false,
3829
+ "type": "option"
3830
+ },
3831
+ "source-schema": {
3832
+ "description": "Source schema name",
3833
+ "name": "source-schema",
3834
+ "default": "__mj",
3835
+ "hasDynamicHelp": false,
3836
+ "multiple": false,
3837
+ "type": "option"
3838
+ },
3839
+ "target-schema": {
3840
+ "description": "Target schema name",
3841
+ "name": "target-schema",
3842
+ "default": "__mj",
3843
+ "hasDynamicHelp": false,
3844
+ "multiple": false,
3845
+ "type": "option"
3846
+ },
3847
+ "output": {
3848
+ "char": "o",
3849
+ "description": "Save report to file",
3850
+ "name": "output",
3851
+ "hasDynamicHelp": false,
3852
+ "multiple": false,
3853
+ "type": "option"
3854
+ }
3855
+ },
3856
+ "hasDynamicHelp": false,
3857
+ "hiddenAliases": [],
3858
+ "id": "sql-audit",
3859
+ "pluginAlias": "@memberjunction/cli",
3860
+ "pluginName": "@memberjunction/cli",
3861
+ "pluginType": "core",
3862
+ "strict": true,
3863
+ "enableJsonFlag": false,
3864
+ "isESM": true,
3865
+ "relativePath": [
3866
+ "dist",
3867
+ "commands",
3868
+ "sql-audit",
3869
+ "index.js"
3870
+ ]
3871
+ },
3872
+ "sql-audit:usage": {
3873
+ "aliases": [],
3874
+ "args": {},
3875
+ "description": "Show usage, flags, examples, and runtime hints for every `mj sql-audit` command.",
3876
+ "flags": {
3877
+ "format": {
3878
+ "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
3879
+ "name": "format",
3880
+ "hasDynamicHelp": false,
3881
+ "multiple": false,
3882
+ "options": [
3883
+ "text",
3884
+ "json",
3885
+ "md"
3886
+ ],
3887
+ "type": "option"
3888
+ }
3889
+ },
3890
+ "hasDynamicHelp": false,
3891
+ "hiddenAliases": [],
3892
+ "id": "sql-audit:usage",
3893
+ "pluginAlias": "@memberjunction/cli",
3894
+ "pluginName": "@memberjunction/cli",
3895
+ "pluginType": "core",
3896
+ "strict": true,
3897
+ "enableJsonFlag": false,
3898
+ "isESM": true,
3899
+ "relativePath": [
3900
+ "dist",
3901
+ "commands",
3902
+ "sql-audit",
3903
+ "usage.js"
3904
+ ]
3905
+ },
3906
+ "queue:backlog": {
3907
+ "aliases": [],
3908
+ "args": {},
3909
+ "description": "Show the autoscaler metric for one subscription: claimable pending plus in-flight deliveries",
3910
+ "examples": [
3911
+ "<%= config.bin %> <%= command.id %> --subscription venue-import",
3912
+ "<%= config.bin %> <%= command.id %> --subscription venue-import --json"
3913
+ ],
3914
+ "flags": {
3915
+ "subscription": {
3916
+ "char": "s",
3917
+ "description": "Subscription name",
3918
+ "name": "subscription",
3919
+ "required": true,
3920
+ "hasDynamicHelp": false,
3921
+ "multiple": false,
3922
+ "type": "option"
3923
+ },
3924
+ "json": {
3925
+ "description": "Print JSON instead of text",
3926
+ "name": "json",
3927
+ "allowNo": false,
3928
+ "type": "boolean"
3929
+ }
3930
+ },
3931
+ "hasDynamicHelp": false,
3932
+ "hiddenAliases": [],
3933
+ "id": "queue:backlog",
3934
+ "pluginAlias": "@memberjunction/cli",
3935
+ "pluginName": "@memberjunction/cli",
3936
+ "pluginType": "core",
3937
+ "strict": true,
3938
+ "enableJsonFlag": false,
3939
+ "isESM": true,
3940
+ "relativePath": [
3941
+ "dist",
3942
+ "commands",
3943
+ "queue",
3944
+ "backlog.js"
3945
+ ]
3946
+ },
3947
+ "queue:dead-letters": {
3948
+ "aliases": [],
3949
+ "args": {},
3950
+ "description": "List a work-queue subscription's dead-lettered deliveries",
3951
+ "examples": [
3952
+ "<%= config.bin %> <%= command.id %> --subscription integration.apply --page-size 20"
3953
+ ],
3954
+ "flags": {
3955
+ "subscription": {
3956
+ "char": "s",
3957
+ "description": "Subscription name",
3958
+ "name": "subscription",
3959
+ "required": true,
3960
+ "hasDynamicHelp": false,
3961
+ "multiple": false,
3962
+ "type": "option"
3963
+ },
3964
+ "cursor": {
3965
+ "description": "nextCursor from a previous page",
3966
+ "name": "cursor",
3967
+ "hasDynamicHelp": false,
3968
+ "multiple": false,
3969
+ "type": "option"
3970
+ },
3971
+ "page-size": {
3972
+ "description": "Items per page (1–500)",
3973
+ "name": "page-size",
3974
+ "default": 50,
3975
+ "hasDynamicHelp": false,
3976
+ "multiple": false,
3977
+ "type": "option"
3978
+ },
3979
+ "json": {
3980
+ "description": "Print JSON instead of a table",
3981
+ "name": "json",
3982
+ "allowNo": false,
3983
+ "type": "boolean"
3984
+ }
3985
+ },
3986
+ "hasDynamicHelp": false,
3987
+ "hiddenAliases": [],
3988
+ "id": "queue:dead-letters",
3989
+ "pluginAlias": "@memberjunction/cli",
3990
+ "pluginName": "@memberjunction/cli",
3991
+ "pluginType": "core",
3992
+ "strict": true,
3993
+ "enableJsonFlag": false,
3994
+ "isESM": true,
3995
+ "relativePath": [
3996
+ "dist",
3997
+ "commands",
3998
+ "queue",
3999
+ "dead-letters.js"
4000
+ ]
4001
+ },
4002
+ "queue:discard": {
4003
+ "aliases": [],
4004
+ "args": {},
4005
+ "description": "Discard one pending or dead-lettered work-queue delivery, or cancel one that is in flight",
4006
+ "examples": [
4007
+ "<%= config.bin %> <%= command.id %> --subscription integration.apply --delivery <id> --reason \"bad batch, republished\""
4008
+ ],
4009
+ "flags": {
4010
+ "subscription": {
4011
+ "char": "s",
4012
+ "description": "Subscription name",
4013
+ "name": "subscription",
4014
+ "required": true,
4015
+ "hasDynamicHelp": false,
4016
+ "multiple": false,
4017
+ "type": "option"
4018
+ },
4019
+ "delivery": {
4020
+ "char": "d",
4021
+ "description": "DeliveryID to discard",
4022
+ "name": "delivery",
4023
+ "required": true,
4024
+ "hasDynamicHelp": false,
4025
+ "multiple": false,
4026
+ "type": "option"
4027
+ },
4028
+ "reason": {
4029
+ "char": "r",
4030
+ "description": "Why the work is dropped (at most 1000 characters)",
4031
+ "name": "reason",
4032
+ "required": true,
4033
+ "hasDynamicHelp": false,
4034
+ "multiple": false,
4035
+ "type": "option"
4036
+ }
4037
+ },
4038
+ "hasDynamicHelp": false,
4039
+ "hiddenAliases": [],
4040
+ "id": "queue:discard",
4041
+ "pluginAlias": "@memberjunction/cli",
4042
+ "pluginName": "@memberjunction/cli",
4043
+ "pluginType": "core",
4044
+ "strict": true,
4045
+ "enableJsonFlag": false,
4046
+ "isESM": true,
4047
+ "relativePath": [
4048
+ "dist",
4049
+ "commands",
4050
+ "queue",
4051
+ "discard.js"
4052
+ ]
4053
+ },
4054
+ "queue:export-topology": {
4055
+ "aliases": [],
4056
+ "args": {},
4057
+ "description": "Write the topology manifest for one transport (input to the Terraform module)",
4058
+ "examples": [
4059
+ "<%= config.bin %> <%= command.id %> --transport AWS-prod --output infrastructure/work-queue/manifest.json"
4060
+ ],
4061
+ "flags": {
4062
+ "transport": {
4063
+ "char": "t",
3692
4064
  "description": "Transport name",
3693
4065
  "name": "transport",
3694
4066
  "required": true,
@@ -4188,107 +4560,6 @@
4188
4560
  "work.js"
4189
4561
  ]
4190
4562
  },
4191
- "sql-audit": {
4192
- "aliases": [],
4193
- "args": {},
4194
- "description": "Compare source and target databases for migration verification",
4195
- "examples": [
4196
- "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\"",
4197
- "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --output report.txt",
4198
- "<%= config.bin %> sql-audit --source \"mssql://sa:pass@host/db\" --target \"postgres://user:pass@host:5432/db\" --source-schema __mj --target-schema __mj"
4199
- ],
4200
- "flags": {
4201
- "source": {
4202
- "description": "Source database connection string (mssql://... or postgres://...)",
4203
- "name": "source",
4204
- "required": true,
4205
- "hasDynamicHelp": false,
4206
- "multiple": false,
4207
- "type": "option"
4208
- },
4209
- "target": {
4210
- "description": "Target database connection string (mssql://... or postgres://...)",
4211
- "name": "target",
4212
- "required": true,
4213
- "hasDynamicHelp": false,
4214
- "multiple": false,
4215
- "type": "option"
4216
- },
4217
- "source-schema": {
4218
- "description": "Source schema name",
4219
- "name": "source-schema",
4220
- "default": "__mj",
4221
- "hasDynamicHelp": false,
4222
- "multiple": false,
4223
- "type": "option"
4224
- },
4225
- "target-schema": {
4226
- "description": "Target schema name",
4227
- "name": "target-schema",
4228
- "default": "__mj",
4229
- "hasDynamicHelp": false,
4230
- "multiple": false,
4231
- "type": "option"
4232
- },
4233
- "output": {
4234
- "char": "o",
4235
- "description": "Save report to file",
4236
- "name": "output",
4237
- "hasDynamicHelp": false,
4238
- "multiple": false,
4239
- "type": "option"
4240
- }
4241
- },
4242
- "hasDynamicHelp": false,
4243
- "hiddenAliases": [],
4244
- "id": "sql-audit",
4245
- "pluginAlias": "@memberjunction/cli",
4246
- "pluginName": "@memberjunction/cli",
4247
- "pluginType": "core",
4248
- "strict": true,
4249
- "enableJsonFlag": false,
4250
- "isESM": true,
4251
- "relativePath": [
4252
- "dist",
4253
- "commands",
4254
- "sql-audit",
4255
- "index.js"
4256
- ]
4257
- },
4258
- "sql-audit:usage": {
4259
- "aliases": [],
4260
- "args": {},
4261
- "description": "Show usage, flags, examples, and runtime hints for every `mj sql-audit` command.",
4262
- "flags": {
4263
- "format": {
4264
- "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
4265
- "name": "format",
4266
- "hasDynamicHelp": false,
4267
- "multiple": false,
4268
- "options": [
4269
- "text",
4270
- "json",
4271
- "md"
4272
- ],
4273
- "type": "option"
4274
- }
4275
- },
4276
- "hasDynamicHelp": false,
4277
- "hiddenAliases": [],
4278
- "id": "sql-audit:usage",
4279
- "pluginAlias": "@memberjunction/cli",
4280
- "pluginName": "@memberjunction/cli",
4281
- "pluginType": "core",
4282
- "strict": true,
4283
- "enableJsonFlag": false,
4284
- "isESM": true,
4285
- "relativePath": [
4286
- "dist",
4287
- "commands",
4288
- "sql-audit",
4289
- "usage.js"
4290
- ]
4291
- },
4292
4563
  "sql-convert": {
4293
4564
  "aliases": [],
4294
4565
  "args": {
@@ -4511,78 +4782,211 @@
4511
4782
  "command": "<%= config.bin %> <%= command.id %> --check ui-layers",
4512
4783
  "description": "Run one standard"
4513
4784
  },
4514
- {
4515
- "command": "<%= config.bin %> <%= command.id %> --strict",
4516
- "description": "Fail on warnings too"
4517
- }
4518
- ],
4519
- "flags": {
4520
- "cwd": {
4521
- "description": "Repository root. Defaults to the current directory.",
4522
- "name": "cwd",
4785
+ {
4786
+ "command": "<%= config.bin %> <%= command.id %> --strict",
4787
+ "description": "Fail on warnings too"
4788
+ }
4789
+ ],
4790
+ "flags": {
4791
+ "cwd": {
4792
+ "description": "Repository root. Defaults to the current directory.",
4793
+ "name": "cwd",
4794
+ "hasDynamicHelp": false,
4795
+ "multiple": false,
4796
+ "type": "option"
4797
+ },
4798
+ "check": {
4799
+ "description": "Only run these check ids.",
4800
+ "name": "check",
4801
+ "hasDynamicHelp": false,
4802
+ "multiple": true,
4803
+ "type": "option"
4804
+ },
4805
+ "strict": {
4806
+ "description": "Treat warnings as errors. Use in CI once a newly adopted check is clean.",
4807
+ "name": "strict",
4808
+ "allowNo": false,
4809
+ "type": "boolean"
4810
+ },
4811
+ "quiet": {
4812
+ "description": "Print only the summary line.",
4813
+ "name": "quiet",
4814
+ "allowNo": false,
4815
+ "type": "boolean"
4816
+ }
4817
+ },
4818
+ "hasDynamicHelp": false,
4819
+ "hiddenAliases": [],
4820
+ "id": "standards:check",
4821
+ "pluginAlias": "@memberjunction/cli",
4822
+ "pluginName": "@memberjunction/cli",
4823
+ "pluginType": "core",
4824
+ "strict": true,
4825
+ "enableJsonFlag": false,
4826
+ "isESM": true,
4827
+ "relativePath": [
4828
+ "dist",
4829
+ "commands",
4830
+ "standards",
4831
+ "check.js"
4832
+ ]
4833
+ },
4834
+ "standards:list": {
4835
+ "aliases": [],
4836
+ "args": {},
4837
+ "description": "List every MemberJunction standard and this repository’s stance on it",
4838
+ "flags": {
4839
+ "cwd": {
4840
+ "description": "Repository root. Defaults to the current directory.",
4841
+ "name": "cwd",
4842
+ "hasDynamicHelp": false,
4843
+ "multiple": false,
4844
+ "type": "option"
4845
+ },
4846
+ "verbose": {
4847
+ "char": "v",
4848
+ "description": "Include the full description of each standard.",
4849
+ "name": "verbose",
4850
+ "allowNo": false,
4851
+ "type": "boolean"
4852
+ }
4853
+ },
4854
+ "hasDynamicHelp": false,
4855
+ "hiddenAliases": [],
4856
+ "id": "standards:list",
4857
+ "pluginAlias": "@memberjunction/cli",
4858
+ "pluginName": "@memberjunction/cli",
4859
+ "pluginType": "core",
4860
+ "strict": true,
4861
+ "enableJsonFlag": false,
4862
+ "isESM": true,
4863
+ "relativePath": [
4864
+ "dist",
4865
+ "commands",
4866
+ "standards",
4867
+ "list.js"
4868
+ ]
4869
+ },
4870
+ "standards:usage": {
4871
+ "aliases": [],
4872
+ "args": {},
4873
+ "description": "Show usage, flags, examples, and runtime hints for every `mj standards` command.",
4874
+ "flags": {
4875
+ "format": {
4876
+ "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
4877
+ "name": "format",
4878
+ "hasDynamicHelp": false,
4879
+ "multiple": false,
4880
+ "options": [
4881
+ "text",
4882
+ "json",
4883
+ "md"
4884
+ ],
4885
+ "type": "option"
4886
+ }
4887
+ },
4888
+ "hasDynamicHelp": false,
4889
+ "hiddenAliases": [],
4890
+ "id": "standards:usage",
4891
+ "pluginAlias": "@memberjunction/cli",
4892
+ "pluginName": "@memberjunction/cli",
4893
+ "pluginType": "core",
4894
+ "strict": true,
4895
+ "enableJsonFlag": false,
4896
+ "isESM": true,
4897
+ "relativePath": [
4898
+ "dist",
4899
+ "commands",
4900
+ "standards",
4901
+ "usage.js"
4902
+ ]
4903
+ },
4904
+ "translate-sql": {
4905
+ "aliases": [],
4906
+ "args": {},
4907
+ "description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
4908
+ "examples": [
4909
+ "<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
4910
+ "<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
4911
+ "<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
4912
+ "<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
4913
+ ],
4914
+ "flags": {
4915
+ "from": {
4916
+ "description": "Source SQL dialect",
4917
+ "name": "from",
4918
+ "required": true,
4919
+ "hasDynamicHelp": false,
4920
+ "multiple": false,
4921
+ "options": [
4922
+ "sqlserver",
4923
+ "postgresql"
4924
+ ],
4925
+ "type": "option"
4926
+ },
4927
+ "to": {
4928
+ "description": "Target SQL dialect",
4929
+ "name": "to",
4930
+ "required": true,
4931
+ "hasDynamicHelp": false,
4932
+ "multiple": false,
4933
+ "options": [
4934
+ "sqlserver",
4935
+ "postgresql"
4936
+ ],
4937
+ "type": "option"
4938
+ },
4939
+ "scope": {
4940
+ "description": "What to scan for translation",
4941
+ "name": "scope",
4942
+ "default": "all",
4523
4943
  "hasDynamicHelp": false,
4524
4944
  "multiple": false,
4945
+ "options": [
4946
+ "queries",
4947
+ "views",
4948
+ "filters",
4949
+ "all"
4950
+ ],
4525
4951
  "type": "option"
4526
4952
  },
4527
- "check": {
4528
- "description": "Only run these check ids.",
4529
- "name": "check",
4953
+ "sql": {
4954
+ "description": "Translate a single SQL fragment (inline mode)",
4955
+ "name": "sql",
4530
4956
  "hasDynamicHelp": false,
4531
- "multiple": true,
4957
+ "multiple": false,
4532
4958
  "type": "option"
4533
4959
  },
4534
- "strict": {
4535
- "description": "Treat warnings as errors. Use in CI once a newly adopted check is clean.",
4536
- "name": "strict",
4960
+ "dry-run": {
4961
+ "description": "Show what would be translated without making changes",
4962
+ "name": "dry-run",
4537
4963
  "allowNo": false,
4538
4964
  "type": "boolean"
4539
4965
  },
4540
- "quiet": {
4541
- "description": "Print only the summary line.",
4542
- "name": "quiet",
4966
+ "review": {
4967
+ "description": "Generate review report only (no writes to database)",
4968
+ "name": "review",
4543
4969
  "allowNo": false,
4544
4970
  "type": "boolean"
4545
- }
4546
- },
4547
- "hasDynamicHelp": false,
4548
- "hiddenAliases": [],
4549
- "id": "standards:check",
4550
- "pluginAlias": "@memberjunction/cli",
4551
- "pluginName": "@memberjunction/cli",
4552
- "pluginType": "core",
4553
- "strict": true,
4554
- "enableJsonFlag": false,
4555
- "isESM": true,
4556
- "relativePath": [
4557
- "dist",
4558
- "commands",
4559
- "standards",
4560
- "check.js"
4561
- ]
4562
- },
4563
- "standards:list": {
4564
- "aliases": [],
4565
- "args": {},
4566
- "description": "List every MemberJunction standard and this repository’s stance on it",
4567
- "flags": {
4568
- "cwd": {
4569
- "description": "Repository root. Defaults to the current directory.",
4570
- "name": "cwd",
4971
+ },
4972
+ "output": {
4973
+ "char": "o",
4974
+ "description": "Output directory for the translation report",
4975
+ "name": "output",
4571
4976
  "hasDynamicHelp": false,
4572
4977
  "multiple": false,
4573
4978
  "type": "option"
4574
4979
  },
4575
- "verbose": {
4576
- "char": "v",
4577
- "description": "Include the full description of each standard.",
4578
- "name": "verbose",
4980
+ "force": {
4981
+ "description": "Re-translate even if platform variants already exist",
4982
+ "name": "force",
4579
4983
  "allowNo": false,
4580
4984
  "type": "boolean"
4581
4985
  }
4582
4986
  },
4583
4987
  "hasDynamicHelp": false,
4584
4988
  "hiddenAliases": [],
4585
- "id": "standards:list",
4989
+ "id": "translate-sql",
4586
4990
  "pluginAlias": "@memberjunction/cli",
4587
4991
  "pluginName": "@memberjunction/cli",
4588
4992
  "pluginType": "core",
@@ -4592,14 +4996,14 @@
4592
4996
  "relativePath": [
4593
4997
  "dist",
4594
4998
  "commands",
4595
- "standards",
4596
- "list.js"
4999
+ "translate-sql",
5000
+ "index.js"
4597
5001
  ]
4598
5002
  },
4599
- "standards:usage": {
5003
+ "translate-sql:usage": {
4600
5004
  "aliases": [],
4601
5005
  "args": {},
4602
- "description": "Show usage, flags, examples, and runtime hints for every `mj standards` command.",
5006
+ "description": "Show usage, flags, examples, and runtime hints for every `mj translate-sql` command.",
4603
5007
  "flags": {
4604
5008
  "format": {
4605
5009
  "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
@@ -4616,7 +5020,7 @@
4616
5020
  },
4617
5021
  "hasDynamicHelp": false,
4618
5022
  "hiddenAliases": [],
4619
- "id": "standards:usage",
5023
+ "id": "translate-sql:usage",
4620
5024
  "pluginAlias": "@memberjunction/cli",
4621
5025
  "pluginName": "@memberjunction/cli",
4622
5026
  "pluginType": "core",
@@ -4626,7 +5030,7 @@
4626
5030
  "relativePath": [
4627
5031
  "dist",
4628
5032
  "commands",
4629
- "standards",
5033
+ "translate-sql",
4630
5034
  "usage.js"
4631
5035
  ]
4632
5036
  },
@@ -4849,15 +5253,15 @@
4849
5253
  "type": "boolean"
4850
5254
  },
4851
5255
  "update-existing": {
4852
- "description": "Update existing records during pull",
5256
+ "description": "Update existing records during pull (default: the folder config, else true)",
4853
5257
  "name": "update-existing",
4854
- "allowNo": false,
5258
+ "allowNo": true,
4855
5259
  "type": "boolean"
4856
5260
  },
4857
5261
  "create-new": {
4858
- "description": "Create new files for records not found locally",
5262
+ "description": "Create new files for records not found locally (default: the folder config, else true)",
4859
5263
  "name": "create-new",
4860
- "allowNo": false,
5264
+ "allowNo": true,
4861
5265
  "type": "boolean"
4862
5266
  },
4863
5267
  "backup-before-update": {
@@ -4867,9 +5271,8 @@
4867
5271
  "type": "boolean"
4868
5272
  },
4869
5273
  "merge-strategy": {
4870
- "description": "Merge strategy for updates",
5274
+ "description": "Merge strategy for updates (default: the folder config, else merge)",
4871
5275
  "name": "merge-strategy",
4872
- "default": "merge",
4873
5276
  "hasDynamicHelp": false,
4874
5277
  "multiple": false,
4875
5278
  "options": [
@@ -6152,180 +6555,47 @@
6152
6555
  },
6153
6556
  "save-report": {
6154
6557
  "description": "Save validation report to file",
6155
- "name": "save-report",
6156
- "allowNo": false,
6157
- "type": "boolean"
6158
- },
6159
- "format": {
6160
- "char": "f",
6161
- "description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
6162
- "name": "format",
6163
- "hasDynamicHelp": false,
6164
- "multiple": false,
6165
- "options": [
6166
- "text",
6167
- "json",
6168
- "md",
6169
- "human",
6170
- "console",
6171
- "markdown",
6172
- "compact",
6173
- "table"
6174
- ],
6175
- "type": "option"
6176
- },
6177
- "output": {
6178
- "char": "o",
6179
- "description": "Output file path",
6180
- "name": "output",
6181
- "hasDynamicHelp": false,
6182
- "multiple": false,
6183
- "type": "option"
6184
- },
6185
- "verbose": {
6186
- "char": "v",
6187
- "description": "Show detailed information",
6188
- "name": "verbose",
6189
- "allowNo": false,
6190
- "type": "boolean"
6191
- }
6192
- },
6193
- "hasDynamicHelp": false,
6194
- "hiddenAliases": [],
6195
- "id": "test:validate",
6196
- "pluginAlias": "@memberjunction/cli",
6197
- "pluginName": "@memberjunction/cli",
6198
- "pluginType": "core",
6199
- "strict": true,
6200
- "enableJsonFlag": false,
6201
- "isESM": true,
6202
- "relativePath": [
6203
- "dist",
6204
- "commands",
6205
- "test",
6206
- "validate.js"
6207
- ]
6208
- },
6209
- "translate-sql": {
6210
- "aliases": [],
6211
- "args": {},
6212
- "description": "Translate SQL fragments between database dialects (SQL Server ↔ PostgreSQL)",
6213
- "examples": [
6214
- "<%= config.bin %> translate-sql --from sqlserver --to postgresql --dry-run",
6215
- "<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope queries",
6216
- "<%= config.bin %> translate-sql --from sqlserver --to postgresql --sql \"SELECT TOP 10 [Name] FROM [Users]\"",
6217
- "<%= config.bin %> translate-sql --from sqlserver --to postgresql --scope all --output ./reports"
6218
- ],
6219
- "flags": {
6220
- "from": {
6221
- "description": "Source SQL dialect",
6222
- "name": "from",
6223
- "required": true,
6224
- "hasDynamicHelp": false,
6225
- "multiple": false,
6226
- "options": [
6227
- "sqlserver",
6228
- "postgresql"
6229
- ],
6230
- "type": "option"
6231
- },
6232
- "to": {
6233
- "description": "Target SQL dialect",
6234
- "name": "to",
6235
- "required": true,
6236
- "hasDynamicHelp": false,
6237
- "multiple": false,
6238
- "options": [
6239
- "sqlserver",
6240
- "postgresql"
6241
- ],
6242
- "type": "option"
6243
- },
6244
- "scope": {
6245
- "description": "What to scan for translation",
6246
- "name": "scope",
6247
- "default": "all",
6248
- "hasDynamicHelp": false,
6249
- "multiple": false,
6250
- "options": [
6251
- "queries",
6252
- "views",
6253
- "filters",
6254
- "all"
6255
- ],
6256
- "type": "option"
6257
- },
6258
- "sql": {
6259
- "description": "Translate a single SQL fragment (inline mode)",
6260
- "name": "sql",
6261
- "hasDynamicHelp": false,
6262
- "multiple": false,
6263
- "type": "option"
6264
- },
6265
- "dry-run": {
6266
- "description": "Show what would be translated without making changes",
6267
- "name": "dry-run",
6268
- "allowNo": false,
6269
- "type": "boolean"
6270
- },
6271
- "review": {
6272
- "description": "Generate review report only (no writes to database)",
6273
- "name": "review",
6274
- "allowNo": false,
6275
- "type": "boolean"
6276
- },
6277
- "output": {
6278
- "char": "o",
6279
- "description": "Output directory for the translation report",
6280
- "name": "output",
6281
- "hasDynamicHelp": false,
6282
- "multiple": false,
6283
- "type": "option"
6284
- },
6285
- "force": {
6286
- "description": "Re-translate even if platform variants already exist",
6287
- "name": "force",
6288
- "allowNo": false,
6289
- "type": "boolean"
6290
- }
6291
- },
6292
- "hasDynamicHelp": false,
6293
- "hiddenAliases": [],
6294
- "id": "translate-sql",
6295
- "pluginAlias": "@memberjunction/cli",
6296
- "pluginName": "@memberjunction/cli",
6297
- "pluginType": "core",
6298
- "strict": true,
6299
- "enableJsonFlag": false,
6300
- "isESM": true,
6301
- "relativePath": [
6302
- "dist",
6303
- "commands",
6304
- "translate-sql",
6305
- "index.js"
6306
- ]
6307
- },
6308
- "translate-sql:usage": {
6309
- "aliases": [],
6310
- "args": {},
6311
- "description": "Show usage, flags, examples, and runtime hints for every `mj translate-sql` command.",
6312
- "flags": {
6558
+ "name": "save-report",
6559
+ "allowNo": false,
6560
+ "type": "boolean"
6561
+ },
6313
6562
  "format": {
6314
- "description": "Output format. Defaults to text on a terminal and json when stdout is piped.",
6563
+ "char": "f",
6564
+ "description": "Output format: text (human), json (machine-readable), md (Markdown). Defaults to human output on a terminal and json when stdout is piped. Legacy spellings (console/markdown/compact/table) are accepted.",
6315
6565
  "name": "format",
6316
6566
  "hasDynamicHelp": false,
6317
6567
  "multiple": false,
6318
6568
  "options": [
6319
6569
  "text",
6320
6570
  "json",
6321
- "md"
6571
+ "md",
6572
+ "human",
6573
+ "console",
6574
+ "markdown",
6575
+ "compact",
6576
+ "table"
6322
6577
  ],
6323
6578
  "type": "option"
6579
+ },
6580
+ "output": {
6581
+ "char": "o",
6582
+ "description": "Output file path",
6583
+ "name": "output",
6584
+ "hasDynamicHelp": false,
6585
+ "multiple": false,
6586
+ "type": "option"
6587
+ },
6588
+ "verbose": {
6589
+ "char": "v",
6590
+ "description": "Show detailed information",
6591
+ "name": "verbose",
6592
+ "allowNo": false,
6593
+ "type": "boolean"
6324
6594
  }
6325
6595
  },
6326
6596
  "hasDynamicHelp": false,
6327
6597
  "hiddenAliases": [],
6328
- "id": "translate-sql:usage",
6598
+ "id": "test:validate",
6329
6599
  "pluginAlias": "@memberjunction/cli",
6330
6600
  "pluginName": "@memberjunction/cli",
6331
6601
  "pluginType": "core",
@@ -6335,8 +6605,8 @@
6335
6605
  "relativePath": [
6336
6606
  "dist",
6337
6607
  "commands",
6338
- "translate-sql",
6339
- "usage.js"
6608
+ "test",
6609
+ "validate.js"
6340
6610
  ]
6341
6611
  },
6342
6612
  "update:claude": {
@@ -6812,6 +7082,7 @@
6812
7082
  "description": "Execute an AI agent with a prompt or start interactive chat",
6813
7083
  "examples": [
6814
7084
  "<%= config.bin %> <%= command.id %> -a \"Skip: Requirements Expert\" -p \"Create a dashboard for sales metrics\"",
7085
+ "<%= config.bin %> <%= command.id %> -a \"Customer Insight Agent\" -f ./prompt.txt",
6815
7086
  "<%= config.bin %> <%= command.id %> -a \"Child Component Generator Sub-agent\" --chat",
6816
7087
  "<%= config.bin %> <%= command.id %> -a \"Skip: Technical Design Expert\" -p \"Build a React component\" --verbose --timeout=600000"
6817
7088
  ],
@@ -6829,18 +7100,32 @@
6829
7100
  "char": "p",
6830
7101
  "description": "Prompt to execute",
6831
7102
  "exclusive": [
6832
- "chat"
7103
+ "chat",
7104
+ "prompt-file"
6833
7105
  ],
6834
7106
  "name": "prompt",
6835
7107
  "hasDynamicHelp": false,
6836
7108
  "multiple": false,
6837
7109
  "type": "option"
6838
7110
  },
7111
+ "prompt-file": {
7112
+ "char": "f",
7113
+ "description": "Path to a file containing the prompt to execute",
7114
+ "exclusive": [
7115
+ "chat",
7116
+ "prompt"
7117
+ ],
7118
+ "name": "prompt-file",
7119
+ "hasDynamicHelp": false,
7120
+ "multiple": false,
7121
+ "type": "option"
7122
+ },
6839
7123
  "chat": {
6840
7124
  "char": "c",
6841
7125
  "description": "Start interactive chat mode",
6842
7126
  "exclusive": [
6843
- "prompt"
7127
+ "prompt",
7128
+ "prompt-file"
6844
7129
  ],
6845
7130
  "name": "chat",
6846
7131
  "allowNo": false,
@@ -7299,218 +7584,6 @@
7299
7584
  "run.js"
7300
7585
  ]
7301
7586
  },
7302
- "rubric:diff": {
7303
- "aliases": [],
7304
- "args": {
7305
- "rubric": {
7306
- "description": "Rubric name or id",
7307
- "name": "rubric",
7308
- "required": true
7309
- },
7310
- "from": {
7311
- "description": "Version 1.2.0 or id",
7312
- "name": "from",
7313
- "required": true
7314
- },
7315
- "to": {
7316
- "description": "Version 1.2.0 or id",
7317
- "name": "to",
7318
- "required": true
7319
- }
7320
- },
7321
- "description": "Print the version bump between two rubric versions.",
7322
- "flags": {},
7323
- "hasDynamicHelp": false,
7324
- "hiddenAliases": [],
7325
- "id": "rubric:diff",
7326
- "pluginAlias": "@memberjunction/cli",
7327
- "pluginName": "@memberjunction/cli",
7328
- "pluginType": "core",
7329
- "strict": true,
7330
- "enableJsonFlag": false,
7331
- "isESM": true,
7332
- "relativePath": [
7333
- "dist",
7334
- "commands",
7335
- "rubric",
7336
- "diff.js"
7337
- ]
7338
- },
7339
- "rubric:evaluate": {
7340
- "aliases": [],
7341
- "args": {},
7342
- "description": "Evaluate one record against a rubric. Does not publish.",
7343
- "flags": {
7344
- "rubric": {
7345
- "description": "Rubric name or id, optionally @version",
7346
- "name": "rubric",
7347
- "required": true,
7348
- "hasDynamicHelp": false,
7349
- "multiple": false,
7350
- "type": "option"
7351
- },
7352
- "entity": {
7353
- "description": "Subject entity name",
7354
- "name": "entity",
7355
- "required": true,
7356
- "hasDynamicHelp": false,
7357
- "multiple": false,
7358
- "type": "option"
7359
- },
7360
- "record": {
7361
- "description": "Subject record id",
7362
- "name": "record",
7363
- "required": true,
7364
- "hasDynamicHelp": false,
7365
- "multiple": false,
7366
- "type": "option"
7367
- },
7368
- "evaluator": {
7369
- "description": "A registered evaluator: LLM, Decision, Agent, Deterministic, or a custom one",
7370
- "name": "evaluator",
7371
- "default": "LLM",
7372
- "hasDynamicHelp": false,
7373
- "multiple": false,
7374
- "type": "option"
7375
- },
7376
- "prompt": {
7377
- "description": "LLM: the judge prompt composed into Rubric Evaluator (default Rubric Evaluator - Default Judge). Decision: the decision prompt (default Default Decision)",
7378
- "name": "prompt",
7379
- "hasDynamicHelp": false,
7380
- "multiple": false,
7381
- "type": "option"
7382
- },
7383
- "model": {
7384
- "description": "AI Model ID to pin. Otherwise the prompt's bindings choose",
7385
- "name": "model",
7386
- "hasDynamicHelp": false,
7387
- "multiple": false,
7388
- "type": "option"
7389
- },
7390
- "mode": {
7391
- "description": "LLM only: SinglePass or PerCriterion",
7392
- "name": "mode",
7393
- "hasDynamicHelp": false,
7394
- "multiple": false,
7395
- "options": [
7396
- "SinglePass",
7397
- "PerCriterion"
7398
- ],
7399
- "type": "option"
7400
- }
7401
- },
7402
- "hasDynamicHelp": false,
7403
- "hiddenAliases": [],
7404
- "id": "rubric:evaluate",
7405
- "pluginAlias": "@memberjunction/cli",
7406
- "pluginName": "@memberjunction/cli",
7407
- "pluginType": "core",
7408
- "strict": true,
7409
- "enableJsonFlag": false,
7410
- "isESM": true,
7411
- "relativePath": [
7412
- "dist",
7413
- "commands",
7414
- "rubric",
7415
- "evaluate.js"
7416
- ]
7417
- },
7418
- "rubric": {
7419
- "aliases": [],
7420
- "args": {},
7421
- "description": "List, show, diff, validate, and evaluate rubrics.",
7422
- "flags": {},
7423
- "hasDynamicHelp": false,
7424
- "hiddenAliases": [],
7425
- "id": "rubric",
7426
- "pluginAlias": "@memberjunction/cli",
7427
- "pluginName": "@memberjunction/cli",
7428
- "pluginType": "core",
7429
- "strict": true,
7430
- "enableJsonFlag": false,
7431
- "isESM": true,
7432
- "relativePath": [
7433
- "dist",
7434
- "commands",
7435
- "rubric",
7436
- "index.js"
7437
- ]
7438
- },
7439
- "rubric:list": {
7440
- "aliases": [],
7441
- "args": {},
7442
- "description": "List rubrics.",
7443
- "flags": {},
7444
- "hasDynamicHelp": false,
7445
- "hiddenAliases": [],
7446
- "id": "rubric:list",
7447
- "pluginAlias": "@memberjunction/cli",
7448
- "pluginName": "@memberjunction/cli",
7449
- "pluginType": "core",
7450
- "strict": true,
7451
- "enableJsonFlag": false,
7452
- "isESM": true,
7453
- "relativePath": [
7454
- "dist",
7455
- "commands",
7456
- "rubric",
7457
- "list.js"
7458
- ]
7459
- },
7460
- "rubric:show": {
7461
- "aliases": [],
7462
- "args": {
7463
- "rubric": {
7464
- "description": "Rubric name or id, optionally @version",
7465
- "name": "rubric",
7466
- "required": true
7467
- }
7468
- },
7469
- "description": "Show a rubric version and its criteria.",
7470
- "flags": {},
7471
- "hasDynamicHelp": false,
7472
- "hiddenAliases": [],
7473
- "id": "rubric:show",
7474
- "pluginAlias": "@memberjunction/cli",
7475
- "pluginName": "@memberjunction/cli",
7476
- "pluginType": "core",
7477
- "strict": true,
7478
- "enableJsonFlag": false,
7479
- "isESM": true,
7480
- "relativePath": [
7481
- "dist",
7482
- "commands",
7483
- "rubric",
7484
- "show.js"
7485
- ]
7486
- },
7487
- "rubric:validate": {
7488
- "aliases": [],
7489
- "args": {
7490
- "file": {
7491
- "description": "JSON snapshot file",
7492
- "name": "file",
7493
- "required": true
7494
- }
7495
- },
7496
- "description": "Check a rubric snapshot file for duplicate keys, gates, weights, and scales.",
7497
- "flags": {},
7498
- "hasDynamicHelp": false,
7499
- "hiddenAliases": [],
7500
- "id": "rubric:validate",
7501
- "pluginAlias": "@memberjunction/cli",
7502
- "pluginName": "@memberjunction/cli",
7503
- "pluginType": "core",
7504
- "strict": true,
7505
- "enableJsonFlag": false,
7506
- "isESM": true,
7507
- "relativePath": [
7508
- "dist",
7509
- "commands",
7510
- "rubric",
7511
- "validate.js"
7512
- ]
7513
- },
7514
7587
  "dev:workspace:clean": {
7515
7588
  "aliases": [],
7516
7589
  "args": {},
@@ -8165,5 +8238,5 @@
8165
8238
  ]
8166
8239
  }
8167
8240
  },
8168
- "version": "6.2.0-edge.4"
8241
+ "version": "6.2.0-edge.6"
8169
8242
  }