thanh-kit 2.5.10 → 2.5.11

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/index.js CHANGED
@@ -175,9 +175,11 @@ function isAkProject(dir = process.cwd()) {
175
175
  const akConfig = join(dir, ".ak", "state.json");
176
176
  const claudeDir = join(dir, ".claude");
177
177
  const geminiDir = join(dir, ".gemini");
178
+ const codexDir = join(dir, ".codex");
179
+ const agentsDir = join(dir, ".agents");
178
180
  const opencodeDir = join(dir, ".opencode");
179
181
  const agentDir = join(dir, ".agent");
180
- return existsSync(akConfig) || existsSync(claudeDir) || existsSync(geminiDir) || existsSync(opencodeDir) || existsSync(agentDir);
182
+ return existsSync(akConfig) || existsSync(claudeDir) || existsSync(geminiDir) || existsSync(codexDir) || existsSync(agentsDir) || existsSync(opencodeDir) || existsSync(agentDir);
181
183
  }
182
184
  function getTargetDir(projectDir, target = "claude") {
183
185
  const folder = TARGETS[target] || TARGETS.claude;
@@ -245,6 +247,8 @@ var init_paths = __esm({
245
247
  TARGETS = {
246
248
  claude: ".claude",
247
249
  gemini: ".gemini",
250
+ codex: ".agents",
251
+ // Codex uses .agents for skills, .codex for config
248
252
  discord: ".discord",
249
253
  opencode: ".opencode",
250
254
  generic: ".agent"
@@ -732,12 +736,24 @@ var init_gemini_adapter = __esm({
732
736
  const { CLI_ROOT: CLI_ROOT2 } = await Promise.resolve().then(() => (init_paths(), paths_exports));
733
737
  const geminiTemplates = join4(CLI_ROOT2, "templates", "gemini");
734
738
  const copied = [];
735
- const settingsPath = join4(geminiTemplates, "settings.json");
736
- const destSettingsPath = join4(targetDir, "settings.json");
737
- if (fs3.existsSync(settingsPath)) {
738
- if (!(mergeMode && fs3.existsSync(destSettingsPath))) {
739
- await fs3.copy(settingsPath, destSettingsPath, { overwrite: !mergeMode });
740
- copied.push("settings.json");
739
+ const projectRoot = join4(targetDir, "..");
740
+ const settingsFiles = ["settings.json", "settings.local.json"];
741
+ for (const file of settingsFiles) {
742
+ const srcPath = join4(geminiTemplates, file);
743
+ const destPath = join4(targetDir, file);
744
+ if (fs3.existsSync(srcPath)) {
745
+ if (!(mergeMode && fs3.existsSync(destPath))) {
746
+ await fs3.copy(srcPath, destPath, { overwrite: !mergeMode });
747
+ copied.push(file);
748
+ }
749
+ }
750
+ }
751
+ const geminiMdSrc = join4(geminiTemplates, "GEMINI.md");
752
+ const geminiMdDest = join4(projectRoot, "GEMINI.md");
753
+ if (fs3.existsSync(geminiMdSrc)) {
754
+ if (!(mergeMode && fs3.existsSync(geminiMdDest))) {
755
+ await fs3.copy(geminiMdSrc, geminiMdDest, { overwrite: !mergeMode });
756
+ copied.push("GEMINI.md (project root)");
741
757
  }
742
758
  }
743
759
  return copied;
@@ -791,6 +807,7 @@ var init_codex_adapter = __esm({
791
807
  name: "codex",
792
808
  displayName: "Codex CLI",
793
809
  directory: ".agents",
810
+ // Main directory for skills/agents
794
811
  features: {
795
812
  agents: true,
796
813
  skills: true,
@@ -895,12 +912,26 @@ var init_codex_adapter = __esm({
895
912
  const { CLI_ROOT: CLI_ROOT2 } = await Promise.resolve().then(() => (init_paths(), paths_exports));
896
913
  const codexTemplates = join5(CLI_ROOT2, "templates", "codex");
897
914
  const copied = [];
898
- const configPath = join5(codexTemplates, "config.toml");
899
- const destConfigPath = join5(targetDir, "config.toml");
900
- if (fs4.existsSync(configPath)) {
901
- if (!(mergeMode && fs4.existsSync(destConfigPath))) {
902
- await fs4.copy(configPath, destConfigPath, { overwrite: !mergeMode });
903
- copied.push("config.toml");
915
+ const projectRoot = join5(targetDir, "..");
916
+ const codexConfigDir = join5(projectRoot, ".codex");
917
+ await fs4.ensureDir(codexConfigDir);
918
+ const configFiles = ["config.toml", "config.local.toml"];
919
+ for (const file of configFiles) {
920
+ const srcPath = join5(codexTemplates, file);
921
+ const destPath = join5(codexConfigDir, file);
922
+ if (fs4.existsSync(srcPath)) {
923
+ if (!(mergeMode && fs4.existsSync(destPath))) {
924
+ await fs4.copy(srcPath, destPath, { overwrite: !mergeMode });
925
+ copied.push(`.codex/${file}`);
926
+ }
927
+ }
928
+ }
929
+ const agentsMdSrc = join5(codexTemplates, "AGENTS.md");
930
+ const agentsMdDest = join5(projectRoot, "AGENTS.md");
931
+ if (fs4.existsSync(agentsMdSrc)) {
932
+ if (!(mergeMode && fs4.existsSync(agentsMdDest))) {
933
+ await fs4.copy(agentsMdSrc, agentsMdDest, { overwrite: !mergeMode });
934
+ copied.push("AGENTS.md");
904
935
  }
905
936
  }
906
937
  return copied;
@@ -1615,6 +1646,7 @@ async function promptCliTargets() {
1615
1646
  options: [
1616
1647
  { value: "claude", label: "Claude Code", hint: ".claude/" },
1617
1648
  { value: "gemini", label: "Gemini CLI", hint: ".gemini/" },
1649
+ { value: "codex", label: "Codex CLI", hint: ".agents/ + .codex/" },
1618
1650
  { value: "discord", label: "Discord + Clawbot", hint: ".discord/" }
1619
1651
  ],
1620
1652
  initialValues: ["claude"],