@jvittechs/jai1-cli 0.1.93 → 0.1.94

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/cli.js CHANGED
@@ -33,7 +33,7 @@ var NetworkError = class extends Jai1Error {
33
33
  // package.json
34
34
  var package_default = {
35
35
  name: "@jvittechs/jai1-cli",
36
- version: "0.1.93",
36
+ version: "0.1.94",
37
37
  description: "A unified CLI tool for JV-IT TECHS developers to manage Jai1 Framework. Please contact TeamAI for usage instructions.",
38
38
  type: "module",
39
39
  bin: {
@@ -778,6 +778,16 @@ import path from "path";
778
778
  import matter from "gray-matter";
779
779
 
780
780
  // src/constants/ide-migration-configs.ts
781
+ function isAlwaysTrigger(trigger) {
782
+ return trigger === "always_on" || trigger === "always";
783
+ }
784
+ function getGlobFromTrigger(trigger, globs) {
785
+ if (globs && globs.length > 0) return globs;
786
+ if (trigger && !isAlwaysTrigger(trigger) && trigger !== "manual") {
787
+ return [trigger];
788
+ }
789
+ return void 0;
790
+ }
781
791
  var IDE_MIGRATION_CONFIGS = {
782
792
  cursor: {
783
793
  id: "cursor",
@@ -793,10 +803,12 @@ var IDE_MIGRATION_CONFIGS = {
793
803
  if (opts.description) {
794
804
  lines.push(`description: ${opts.description}`);
795
805
  }
796
- if (opts.globs && opts.globs.length > 0) {
797
- lines.push(`globs: ${opts.globs.join(", ")}`);
806
+ const alwaysApply = opts.alwaysApply || isAlwaysTrigger(opts.trigger);
807
+ const globs = getGlobFromTrigger(opts.trigger, opts.globs);
808
+ if (globs && globs.length > 0) {
809
+ lines.push(`globs: ${globs.join(", ")}`);
798
810
  }
799
- lines.push(`alwaysApply: ${opts.alwaysApply}`);
811
+ lines.push(`alwaysApply: ${alwaysApply}`);
800
812
  lines.push("---");
801
813
  return lines.join("\n");
802
814
  }
@@ -811,7 +823,16 @@ var IDE_MIGRATION_CONFIGS = {
811
823
  commandsPath: null,
812
824
  fileExtension: ".md",
813
825
  generateFrontmatter: (opts) => {
814
- const trigger = opts.alwaysApply ? "always" : "glob";
826
+ let trigger;
827
+ if (opts.trigger) {
828
+ trigger = opts.trigger === "always" ? "always_on" : opts.trigger;
829
+ } else if (opts.alwaysApply) {
830
+ trigger = "always_on";
831
+ } else if (opts.globs && opts.globs.length > 0) {
832
+ trigger = opts.globs[0];
833
+ } else {
834
+ trigger = "always_on";
835
+ }
815
836
  return `---
816
837
  trigger: ${trigger}
817
838
  ---`;
@@ -827,7 +848,16 @@ trigger: ${trigger}
827
848
  commandsPath: null,
828
849
  fileExtension: ".md",
829
850
  generateFrontmatter: (opts) => {
830
- const trigger = opts.alwaysApply ? "always" : "glob";
851
+ let trigger;
852
+ if (opts.trigger) {
853
+ trigger = opts.trigger === "always" ? "always_on" : opts.trigger;
854
+ } else if (opts.alwaysApply) {
855
+ trigger = "always_on";
856
+ } else if (opts.globs && opts.globs.length > 0) {
857
+ trigger = opts.globs[0];
858
+ } else {
859
+ trigger = "always_on";
860
+ }
831
861
  return `---
832
862
  trigger: ${trigger}
833
863
  ---`;
@@ -847,8 +877,12 @@ trigger: ${trigger}
847
877
  if (opts.description) {
848
878
  lines.push(`description: ${opts.description}`);
849
879
  }
850
- if (opts.globs && opts.globs.length > 0) {
851
- lines.push(`paths: ${opts.globs.join(", ")}`);
880
+ const isAlways = opts.alwaysApply || isAlwaysTrigger(opts.trigger);
881
+ if (!isAlways) {
882
+ const paths = getGlobFromTrigger(opts.trigger, opts.globs);
883
+ if (paths && paths.length > 0) {
884
+ lines.push(`paths: ${paths.join(", ")}`);
885
+ }
852
886
  }
853
887
  lines.push("---");
854
888
  return lines.join("\n");
@@ -864,7 +898,16 @@ trigger: ${trigger}
864
898
  commandsPath: null,
865
899
  fileExtension: ".md",
866
900
  generateFrontmatter: (opts) => {
867
- const trigger = opts.alwaysApply ? "always" : "glob";
901
+ let trigger;
902
+ if (opts.trigger) {
903
+ trigger = opts.trigger === "always" ? "always_on" : opts.trigger;
904
+ } else if (opts.alwaysApply) {
905
+ trigger = "always_on";
906
+ } else if (opts.globs && opts.globs.length > 0) {
907
+ trigger = opts.globs[0];
908
+ } else {
909
+ trigger = "always_on";
910
+ }
868
911
  return `---
869
912
  trigger: ${trigger}
870
913
  ---`;
@@ -923,14 +966,18 @@ var MigrateIdeService = class {
923
966
  frontmatter = data;
924
967
  } catch {
925
968
  }
969
+ const name = path.basename(file, ".mdc");
970
+ const trigger = this.extractTrigger(frontmatter);
971
+ const alwaysApply = this.isAlwaysTrigger(trigger);
926
972
  items.push({
927
973
  type: "rules",
928
- name: path.basename(file, ".mdc"),
974
+ name,
929
975
  filepath,
930
976
  relativePath: path.relative(this.projectPath, filepath),
931
977
  description: frontmatter.description,
932
978
  globs: this.extractGlobs(frontmatter),
933
- alwaysApply: this.extractAlwaysApply(frontmatter)
979
+ trigger,
980
+ alwaysApply
934
981
  });
935
982
  }
936
983
  return items;
@@ -954,14 +1001,18 @@ var MigrateIdeService = class {
954
1001
  if (!stat.isFile()) continue;
955
1002
  const content = await fs4.readFile(filepath, "utf-8");
956
1003
  const { data: frontmatter } = matter(content);
1004
+ const name = path.basename(file, ".md");
1005
+ const trigger = this.extractTrigger(frontmatter);
1006
+ const alwaysApply = this.isAlwaysTrigger(trigger);
957
1007
  items.push({
958
1008
  type,
959
- name: path.basename(file, ".md"),
1009
+ name,
960
1010
  filepath,
961
1011
  relativePath: path.relative(this.projectPath, filepath),
962
1012
  description: frontmatter.description,
963
1013
  globs: this.extractGlobs(frontmatter),
964
- alwaysApply: this.extractAlwaysApply(frontmatter)
1014
+ trigger,
1015
+ alwaysApply
965
1016
  });
966
1017
  }
967
1018
  return items;
@@ -975,6 +1026,7 @@ var MigrateIdeService = class {
975
1026
  const frontmatter = config.generateFrontmatter({
976
1027
  description: sourceItem.description,
977
1028
  globs: sourceItem.globs,
1029
+ trigger: sourceItem.trigger,
978
1030
  alwaysApply: sourceItem.alwaysApply,
979
1031
  sourceFile: sourceItem.relativePath
980
1032
  });
@@ -1071,14 +1123,38 @@ ${reference}
1071
1123
  return path.join(this.projectPath, config.basePath, contentPath, filename);
1072
1124
  }
1073
1125
  // Helper methods
1126
+ /**
1127
+ * Extract trigger from frontmatter
1128
+ * Jai1 source format uses 'trigger' field (Windsurf/Antigravity compatible)
1129
+ */
1130
+ extractTrigger(frontmatter) {
1131
+ const trigger = frontmatter.trigger;
1132
+ if (typeof trigger === "string") {
1133
+ return trigger;
1134
+ }
1135
+ if (frontmatter.alwaysApply === true) {
1136
+ return "always_on";
1137
+ }
1138
+ const globs = this.extractGlobs(frontmatter);
1139
+ if (globs && globs.length > 0) {
1140
+ return globs[0];
1141
+ }
1142
+ return void 0;
1143
+ }
1144
+ /**
1145
+ * Extract globs from frontmatter
1146
+ */
1074
1147
  extractGlobs(frontmatter) {
1075
1148
  const globs = frontmatter.globs;
1076
1149
  if (typeof globs === "string") return [globs];
1077
1150
  if (Array.isArray(globs)) return globs;
1078
1151
  return void 0;
1079
1152
  }
1080
- extractAlwaysApply(frontmatter) {
1081
- return frontmatter.alwaysApply === true || frontmatter.trigger === "always" || frontmatter.trigger === "always_on";
1153
+ /**
1154
+ * Check if trigger indicates "always apply"
1155
+ */
1156
+ isAlwaysTrigger(trigger) {
1157
+ return trigger === "always" || trigger === "always_on";
1082
1158
  }
1083
1159
  };
1084
1160