oh-my-customcode 1.1.99 → 1.1.101

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
@@ -206,7 +206,7 @@ var init_fs = () => {};
206
206
 
207
207
  // src/utils/home.ts
208
208
  import { homedir, userInfo } from "node:os";
209
- import { parse, sep as sep2 } from "node:path";
209
+ import { basename as basename3, dirname as dirname4, isAbsolute as isAbsolute2, join as join6, parse, sep as sep2 } from "node:path";
210
210
  function readEnvHome() {
211
211
  return process.env.HOME;
212
212
  }
@@ -246,7 +246,7 @@ var init_home = () => {};
246
246
  import { realpathSync } from "node:fs";
247
247
  import { mkdir, readFile, writeFile } from "node:fs/promises";
248
248
  import { tmpdir } from "node:os";
249
- import { basename as basename3, join as join6, resolve as resolve2, sep as sep3 } from "node:path";
249
+ import { basename as basename4, join as join7, resolve as resolve2, sep as sep3 } from "node:path";
250
250
  function isTempPath(projectPath) {
251
251
  const normalized = resolve2(projectPath);
252
252
  const candidates = new Set;
@@ -281,10 +281,10 @@ function registryDir(home) {
281
281
  if (resolved === "") {
282
282
  throw new Error("Could not determine the home directory for the project registry");
283
283
  }
284
- return join6(resolved, ".oh-my-customcode");
284
+ return join7(resolved, ".oh-my-customcode");
285
285
  }
286
286
  function registryPath() {
287
- return join6(registryDir(), "projects.json");
287
+ return join7(registryDir(), "projects.json");
288
288
  }
289
289
  function emptyRegistry() {
290
290
  return { projects: {} };
@@ -2807,14 +2807,14 @@ async function detectProvider(_options = {}) {
2807
2807
  };
2808
2808
  }
2809
2809
  // src/core/updater.ts
2810
- import { join as join7 } from "node:path";
2810
+ import { join as join8 } from "node:path";
2811
2811
  // package.json
2812
2812
  var package_default = {
2813
2813
  name: "oh-my-customcode",
2814
2814
  workspaces: [
2815
2815
  "packages/*"
2816
2816
  ],
2817
- version: "1.1.99",
2817
+ version: "1.1.101",
2818
2818
  description: "Batteries-included agent harness for Claude Code",
2819
2819
  type: "module",
2820
2820
  bin: {
@@ -5587,7 +5587,7 @@ function resolveCustomizations(customizations, configPreserveFiles, targetDir) {
5587
5587
  }
5588
5588
  async function updateEntryDoc(targetDir, config, options) {
5589
5589
  const layout = getProviderLayout();
5590
- const entryPath = join7(targetDir, layout.entryFile);
5590
+ const entryPath = join8(targetDir, layout.entryFile);
5591
5591
  const templateName = getEntryTemplateName2(config.language);
5592
5592
  const templatePath = resolveTemplatePath(templateName);
5593
5593
  if (!await fileExists(templatePath)) {
@@ -5625,7 +5625,7 @@ async function backfillStatusLineRefreshInterval(targetDir, options) {
5625
5625
  return;
5626
5626
  }
5627
5627
  const layout = getProviderLayout();
5628
- const settingsPath = join7(targetDir, layout.rootDir, "settings.local.json");
5628
+ const settingsPath = join8(targetDir, layout.rootDir, "settings.local.json");
5629
5629
  if (!await fileExists(settingsPath)) {
5630
5630
  return;
5631
5631
  }
@@ -5651,7 +5651,7 @@ async function migrateHookCommandsInSettingsLocal(targetDir, options) {
5651
5651
  return;
5652
5652
  }
5653
5653
  const layout = getProviderLayout();
5654
- const settingsPath = join7(targetDir, layout.rootDir, "settings.local.json");
5654
+ const settingsPath = join8(targetDir, layout.rootDir, "settings.local.json");
5655
5655
  if (!await fileExists(settingsPath)) {
5656
5656
  return;
5657
5657
  }
@@ -5746,7 +5746,7 @@ async function regenerateLockfile(targetDir, result) {
5746
5746
  }
5747
5747
  }
5748
5748
  async function shouldSkipSelfUpdate(targetDir, result) {
5749
- const targetPkgPath = join7(targetDir, "package.json");
5749
+ const targetPkgPath = join8(targetDir, "package.json");
5750
5750
  if (await fileExists(targetPkgPath)) {
5751
5751
  const targetPkg = await readJsonFile(targetPkgPath);
5752
5752
  if (targetPkg.name === "oh-my-customcode") {
@@ -5839,8 +5839,8 @@ async function checkForUpdates(targetDir) {
5839
5839
  async function applyUpdates(targetDir, updates) {
5840
5840
  const fs = await import("node:fs/promises");
5841
5841
  for (const update of updates) {
5842
- const fullPath = join7(targetDir, update.path);
5843
- await ensureDirectory(join7(fullPath, ".."));
5842
+ const fullPath = join8(targetDir, update.path);
5843
+ await ensureDirectory(join8(fullPath, ".."));
5844
5844
  await fs.writeFile(fullPath, update.content, "utf-8");
5845
5845
  debug("update.file_applied", { path: update.path });
5846
5846
  }
@@ -5849,7 +5849,7 @@ async function preserveCustomizations(targetDir, customizations) {
5849
5849
  const preserved = new Map;
5850
5850
  const fs = await import("node:fs/promises");
5851
5851
  for (const filePath of customizations) {
5852
- const fullPath = join7(targetDir, filePath);
5852
+ const fullPath = join8(targetDir, filePath);
5853
5853
  if (await fileExists(fullPath)) {
5854
5854
  const content = await fs.readFile(fullPath, "utf-8");
5855
5855
  preserved.set(filePath, content);
@@ -5906,11 +5906,11 @@ async function collectProtectedSkipPaths(srcPath, destPath, componentPath, force
5906
5906
  const warnedPaths = [];
5907
5907
  const updatedPaths = [];
5908
5908
  for (const p of protectedRelative) {
5909
- const targetFilePath = join7(targetDir, componentPath, p);
5909
+ const targetFilePath = join8(targetDir, componentPath, p);
5910
5910
  const lockfileKey = `${componentPath}/${p}`.replace(/\\/g, "/");
5911
5911
  const shouldSkip = await shouldSkipProtectedFile(targetFilePath, lockfileKey, lockfile);
5912
5912
  if (shouldSkip) {
5913
- skipPaths.push(path.relative(destPath, join7(destPath, p)));
5913
+ skipPaths.push(path.relative(destPath, join8(destPath, p)));
5914
5914
  warnedPaths.push(p);
5915
5915
  } else {
5916
5916
  updatedPaths.push(p);
@@ -5956,7 +5956,7 @@ async function updateComponent(targetDir, component, customizations, options, co
5956
5956
  const preservedFiles = [];
5957
5957
  const componentPath = getComponentPath2(component);
5958
5958
  const srcPath = resolveTemplatePath(componentPath);
5959
- const destPath = join7(targetDir, componentPath);
5959
+ const destPath = join8(targetDir, componentPath);
5960
5960
  const customComponents = config.customComponents || [];
5961
5961
  const skipPaths = [];
5962
5962
  if (customizations && !options.forceOverwriteAll) {
@@ -5998,7 +5998,7 @@ async function updateComponent(targetDir, component, customizations, options, co
5998
5998
  }
5999
5999
  skipPaths.push(...protectedSkipPaths);
6000
6000
  const path = await import("node:path");
6001
- const normalizedSkipPaths = skipPaths.map((p) => path.relative(destPath, join7(targetDir, p)));
6001
+ const normalizedSkipPaths = skipPaths.map((p) => path.relative(destPath, join8(targetDir, p)));
6002
6002
  const uniqueSkipPaths = [...new Set(normalizedSkipPaths)];
6003
6003
  await copyDirectory(srcPath, destPath, {
6004
6004
  overwrite: true,
@@ -6027,7 +6027,7 @@ async function syncRootLevelFiles(targetDir, options, customizations) {
6027
6027
  const preserved = [];
6028
6028
  const preserveSet = new Set(customizations && !options.forceOverwriteAll ? customizations.preserveFiles : []);
6029
6029
  for (const fileName of ROOT_LEVEL_FILES) {
6030
- const srcPath = resolveTemplatePath(join7(layout.rootDir, fileName));
6030
+ const srcPath = resolveTemplatePath(join8(layout.rootDir, fileName));
6031
6031
  if (!await fileExists(srcPath)) {
6032
6032
  continue;
6033
6033
  }
@@ -6036,8 +6036,8 @@ async function syncRootLevelFiles(targetDir, options, customizations) {
6036
6036
  preserved.push(relPath);
6037
6037
  continue;
6038
6038
  }
6039
- const destPath = join7(targetDir, layout.rootDir, fileName);
6040
- await ensureDirectory(join7(destPath, ".."));
6039
+ const destPath = join8(targetDir, layout.rootDir, fileName);
6040
+ await ensureDirectory(join8(destPath, ".."));
6041
6041
  await fs.copyFile(srcPath, destPath);
6042
6042
  if (fileName.endsWith(".sh")) {
6043
6043
  await fs.chmod(destPath, 493);
@@ -6072,7 +6072,7 @@ async function removeDeprecatedFiles(targetDir, options) {
6072
6072
  });
6073
6073
  continue;
6074
6074
  }
6075
- const fullPath = join7(targetDir, entry.path);
6075
+ const fullPath = join8(targetDir, entry.path);
6076
6076
  if (await fileExists(fullPath)) {
6077
6077
  await fs.unlink(fullPath);
6078
6078
  removed.push(entry.path);
@@ -6113,7 +6113,7 @@ async function syncNamespaceInFile(targetFilePath, upstreamFilePath) {
6113
6113
  async function processNamespaceSyncEntry(entry, relPath, fullSrcPath, destPath, componentPath, lockfile) {
6114
6114
  if (!entry.isFile() || !entry.name.endsWith(".md"))
6115
6115
  return null;
6116
- const targetFilePath = join7(destPath, relPath);
6116
+ const targetFilePath = join8(destPath, relPath);
6117
6117
  const lockfileKey = `${componentPath}/${relPath}`.replace(/\\/g, "/");
6118
6118
  const shouldSkip = await shouldSkipProtectedFile(targetFilePath, lockfileKey, lockfile);
6119
6119
  if (shouldSkip)
@@ -6128,7 +6128,7 @@ async function applyNamespaceSync(targetDir, component, lockfile) {
6128
6128
  return [];
6129
6129
  const componentPath = getComponentPath2(component);
6130
6130
  const srcPath = resolveTemplatePath(componentPath);
6131
- const destPath = join7(targetDir, componentPath);
6131
+ const destPath = join8(targetDir, componentPath);
6132
6132
  const fs = await import("node:fs/promises");
6133
6133
  const synced = [];
6134
6134
  const queue = [{ dir: srcPath, relDir: "" }];
@@ -6142,7 +6142,7 @@ async function applyNamespaceSync(targetDir, component, lockfile) {
6142
6142
  }
6143
6143
  for (const entry of entries) {
6144
6144
  const relPath = relDir ? `${relDir}/${entry.name}` : entry.name;
6145
- const fullSrcPath = join7(dir, entry.name);
6145
+ const fullSrcPath = join8(dir, entry.name);
6146
6146
  if (entry.isDirectory()) {
6147
6147
  queue.push({ dir: fullSrcPath, relDir: relPath });
6148
6148
  continue;
@@ -6165,26 +6165,26 @@ function getComponentPath2(component) {
6165
6165
  }
6166
6166
  async function backupInstallation(targetDir) {
6167
6167
  const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
6168
- const backupDir = join7(targetDir, `.omcustom-backup-${timestamp}`);
6168
+ const backupDir = join8(targetDir, `.omcustom-backup-${timestamp}`);
6169
6169
  const fs = await import("node:fs/promises");
6170
6170
  await ensureDirectory(backupDir);
6171
6171
  const layout = getProviderLayout();
6172
6172
  const dirsToBackup = [layout.rootDir, "guides"];
6173
6173
  for (const dir of dirsToBackup) {
6174
- const srcPath = join7(targetDir, dir);
6174
+ const srcPath = join8(targetDir, dir);
6175
6175
  if (await fileExists(srcPath)) {
6176
- const destPath = join7(backupDir, dir);
6176
+ const destPath = join8(backupDir, dir);
6177
6177
  await copyDirectory(srcPath, destPath, { overwrite: true });
6178
6178
  }
6179
6179
  }
6180
- const entryPath = join7(targetDir, layout.entryFile);
6180
+ const entryPath = join8(targetDir, layout.entryFile);
6181
6181
  if (await fileExists(entryPath)) {
6182
- await fs.copyFile(entryPath, join7(backupDir, layout.entryFile));
6182
+ await fs.copyFile(entryPath, join8(backupDir, layout.entryFile));
6183
6183
  }
6184
6184
  return backupDir;
6185
6185
  }
6186
6186
  async function loadCustomizationManifest(targetDir) {
6187
- const manifestPath = join7(targetDir, CUSTOMIZATION_MANIFEST_FILE);
6187
+ const manifestPath = join8(targetDir, CUSTOMIZATION_MANIFEST_FILE);
6188
6188
  if (await fileExists(manifestPath)) {
6189
6189
  return readJsonFile(manifestPath);
6190
6190
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "1.1.99",
6
+ "version": "1.1.101",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.99",
2
+ "version": "1.1.101",
3
3
  "lastUpdated": "2026-09-03",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",