codebyplan 1.13.31 → 1.13.32

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 (2) hide show
  1. package/dist/cli.js +36 -11
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -14,7 +14,7 @@ var VERSION, PACKAGE_NAME;
14
14
  var init_version = __esm({
15
15
  "src/lib/version.ts"() {
16
16
  "use strict";
17
- VERSION = "1.13.31";
17
+ VERSION = "1.13.32";
18
18
  PACKAGE_NAME = "codebyplan";
19
19
  }
20
20
  });
@@ -1493,6 +1493,23 @@ function mergeBaseSettingsIntoSettings(settings, base) {
1493
1493
  if (base.permissions.skipDangerousModePermissionPrompt !== void 0 && existing.skipDangerousModePermissionPrompt === void 0) {
1494
1494
  existing.skipDangerousModePermissionPrompt = base.permissions.skipDangerousModePermissionPrompt;
1495
1495
  }
1496
+ const baseEntryTier = /* @__PURE__ */ new Map();
1497
+ for (const key of ["deny", "ask", "allow"]) {
1498
+ const baseArr = base.permissions[key];
1499
+ if (!baseArr) continue;
1500
+ for (const entry of baseArr) {
1501
+ baseEntryTier.set(entry, key);
1502
+ }
1503
+ }
1504
+ if (baseEntryTier.size > 0) {
1505
+ for (const key of ["deny", "ask", "allow"]) {
1506
+ const current = existing[key];
1507
+ if (!current) continue;
1508
+ existing[key] = current.filter(
1509
+ (entry) => !baseEntryTier.has(entry) || baseEntryTier.get(entry) === key
1510
+ );
1511
+ }
1512
+ }
1496
1513
  for (const key of ["deny", "ask", "allow"]) {
1497
1514
  const incoming = base.permissions[key];
1498
1515
  if (!incoming || incoming.length === 0) continue;
@@ -1507,6 +1524,11 @@ function mergeBaseSettingsIntoSettings(settings, base) {
1507
1524
  }
1508
1525
  existing[key] = merged;
1509
1526
  }
1527
+ for (const key of ["deny", "ask", "allow"]) {
1528
+ if (existing[key]?.length === 0) {
1529
+ delete existing[key];
1530
+ }
1531
+ }
1510
1532
  if (settings.permissions !== void 0 || Object.keys(existing).length > 0) {
1511
1533
  settings.permissions = existing;
1512
1534
  }
@@ -1550,17 +1572,20 @@ function stripBaseSettingsFromSettings(settings, base) {
1550
1572
  if (base.permissions.skipDangerousModePermissionPrompt !== void 0 && perms.skipDangerousModePermissionPrompt === base.permissions.skipDangerousModePermissionPrompt) {
1551
1573
  delete perms.skipDangerousModePermissionPrompt;
1552
1574
  }
1575
+ const baseOwned = /* @__PURE__ */ new Set();
1553
1576
  for (const key of ["deny", "ask", "allow"]) {
1554
- const baseList = base.permissions[key];
1555
- if (!baseList || baseList.length === 0) continue;
1556
- const current = perms[key];
1557
- if (!current) continue;
1558
- const baseSet = new Set(baseList);
1559
- const filtered = current.filter((x) => !baseSet.has(x));
1560
- if (filtered.length === 0) {
1561
- delete perms[key];
1562
- } else {
1563
- perms[key] = filtered;
1577
+ for (const entry of base.permissions[key] ?? []) baseOwned.add(entry);
1578
+ }
1579
+ if (baseOwned.size > 0) {
1580
+ for (const key of ["deny", "ask", "allow"]) {
1581
+ const current = perms[key];
1582
+ if (!current) continue;
1583
+ const filtered = current.filter((x) => !baseOwned.has(x));
1584
+ if (filtered.length === 0) {
1585
+ delete perms[key];
1586
+ } else {
1587
+ perms[key] = filtered;
1588
+ }
1564
1589
  }
1565
1590
  }
1566
1591
  if (Object.keys(perms).length === 0) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebyplan",
3
- "version": "1.13.31",
3
+ "version": "1.13.32",
4
4
  "description": "CLI for CodeByPlan — AI-powered development planning and tracking",
5
5
  "type": "module",
6
6
  "bin": {