@tencent-ai/codebuddy-code 2.111.0 → 2.112.0
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/CHANGELOG.md +18 -0
- package/dist/codebuddy-headless.js +31 -31
- package/dist/codebuddy.js +43 -43
- package/package.json +1 -1
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +12 -5
- package/product.json +12 -5
- package/product.selfhosted.json +2 -2
- package/vendor/ripgrep/arm64-darwin/rg +0 -0
- package/vendor/shim/genie-safe-delete.cjs +50 -1
- package/vendor/shim/sitecustomize.py +7 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tencent-ai/codebuddy-code",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.112.0",
|
|
4
4
|
"description": "Use CodeBuddy, Tencent's AI assistant, right from your terminal. CodeBuddy can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.",
|
|
5
5
|
"main": "lib/node/index.js",
|
|
6
6
|
"typings": "lib/node/index.d.ts",
|
package/product.cloudhosted.json
CHANGED
|
@@ -824,6 +824,6 @@
|
|
|
824
824
|
"SelectImage": true,
|
|
825
825
|
"SkipToolCallSupportCheck": true
|
|
826
826
|
},
|
|
827
|
-
"commit": "
|
|
828
|
-
"date": "2026-06-
|
|
827
|
+
"commit": "3851e20f891785418176b0753407f2d0ba7de138",
|
|
828
|
+
"date": "2026-06-26T06:43:21.432Z"
|
|
829
829
|
}
|
package/product.internal.json
CHANGED
package/product.ioa.json
CHANGED
|
@@ -1050,10 +1050,17 @@
|
|
|
1050
1050
|
},
|
|
1051
1051
|
{
|
|
1052
1052
|
"credits": "x10.00 credits",
|
|
1053
|
-
"id": "
|
|
1054
|
-
"name": "
|
|
1053
|
+
"id": "kling-v3-t2v",
|
|
1054
|
+
"name": "Kling-V3-T2V",
|
|
1055
|
+
"tags": [
|
|
1056
|
+
"text-to-video"
|
|
1057
|
+
]
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"credits": "x10.00 credits",
|
|
1061
|
+
"id": "kling-v3-i2v",
|
|
1062
|
+
"name": "Kling-V3-I2V",
|
|
1055
1063
|
"tags": [
|
|
1056
|
-
"text-to-video",
|
|
1057
1064
|
"image-to-video"
|
|
1058
1065
|
]
|
|
1059
1066
|
}
|
|
@@ -1106,6 +1113,6 @@
|
|
|
1106
1113
|
}
|
|
1107
1114
|
}
|
|
1108
1115
|
},
|
|
1109
|
-
"commit": "
|
|
1110
|
-
"date": "2026-06-
|
|
1116
|
+
"commit": "3851e20f891785418176b0753407f2d0ba7de138",
|
|
1117
|
+
"date": "2026-06-26T06:43:21.456Z"
|
|
1111
1118
|
}
|
package/product.json
CHANGED
|
@@ -479,10 +479,17 @@
|
|
|
479
479
|
},
|
|
480
480
|
{
|
|
481
481
|
"credits": "x10.00 credits",
|
|
482
|
-
"id": "
|
|
483
|
-
"name": "
|
|
482
|
+
"id": "kling-v3-t2v",
|
|
483
|
+
"name": "Kling-V3-T2V",
|
|
484
|
+
"tags": [
|
|
485
|
+
"text-to-video"
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"credits": "x10.00 credits",
|
|
490
|
+
"id": "kling-v3-i2v",
|
|
491
|
+
"name": "Kling-V3-I2V",
|
|
484
492
|
"tags": [
|
|
485
|
-
"text-to-video",
|
|
486
493
|
"image-to-video"
|
|
487
494
|
]
|
|
488
495
|
}
|
|
@@ -1769,6 +1776,6 @@
|
|
|
1769
1776
|
"deferLoading": true
|
|
1770
1777
|
}
|
|
1771
1778
|
],
|
|
1772
|
-
"commit": "
|
|
1773
|
-
"date": "2026-06-
|
|
1779
|
+
"commit": "3851e20f891785418176b0753407f2d0ba7de138",
|
|
1780
|
+
"date": "2026-06-26T06:43:21.312Z"
|
|
1774
1781
|
}
|
package/product.selfhosted.json
CHANGED
|
@@ -339,6 +339,6 @@
|
|
|
339
339
|
"ScheduledTasks": true,
|
|
340
340
|
"SkipToolCallSupportCheck": true
|
|
341
341
|
},
|
|
342
|
-
"commit": "
|
|
343
|
-
"date": "2026-06-
|
|
342
|
+
"commit": "3851e20f891785418176b0753407f2d0ba7de138",
|
|
343
|
+
"date": "2026-06-26T06:43:21.309Z"
|
|
344
344
|
}
|
|
Binary file
|
|
@@ -120,10 +120,59 @@ function buildNpmCacheTmpDirs() {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
const NPM_CACHE_TMP_DIRS = buildNpmCacheTmpDirs();
|
|
123
|
+
const WORKBUDDY_CONFIG_DIRS = [
|
|
124
|
+
process.env.WORKBUDDY_CONFIG_DIR,
|
|
125
|
+
process.env.CODEBUDDY_CONFIG_DIR,
|
|
126
|
+
].filter(candidate => candidate && candidate.trim())
|
|
127
|
+
.map(candidate => normalizePathForCompare(candidate.trim()));
|
|
128
|
+
const NPM_CACHE_LOG_DIRS = [
|
|
129
|
+
PLATFORM === 'win32' && process.env.LOCALAPPDATA
|
|
130
|
+
? path.join(process.env.LOCALAPPDATA, 'npm-cache', '_logs')
|
|
131
|
+
: null,
|
|
132
|
+
PLATFORM !== 'win32' && os.homedir()
|
|
133
|
+
? path.join(os.homedir(), '.npm', '_logs')
|
|
134
|
+
: null,
|
|
135
|
+
...WORKBUDDY_CONFIG_DIRS.map(configDir =>
|
|
136
|
+
path.join(configDir, 'binaries', 'node', 'cli-connector-cache', '_logs')
|
|
137
|
+
),
|
|
138
|
+
].filter(Boolean).map(root => normalizePathForCompare(root));
|
|
139
|
+
|
|
140
|
+
function isNpmCacheLogFile(absPath) {
|
|
141
|
+
const target = normalizePathForCompare(absPath);
|
|
142
|
+
const baseName = path.basename(target);
|
|
143
|
+
if (!baseName.toLowerCase().endsWith('.log')) return false;
|
|
144
|
+
const parent = normalizePathForCompare(path.dirname(target));
|
|
145
|
+
return NPM_CACHE_LOG_DIRS.includes(parent);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function isManagedNodeStagingName(name) {
|
|
149
|
+
const match = name.match(/^\.[^/\\]+-([A-Za-z0-9_-]{6,})$/);
|
|
150
|
+
return !!match && /[A-Za-z]/.test(match[1]) && /\d/.test(match[1]);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function isWorkBuddyManagedNodeInstallStagingPath(absPath) {
|
|
154
|
+
const target = normalizePathForCompare(absPath);
|
|
155
|
+
return WORKBUDDY_CONFIG_DIRS.some(configDir => {
|
|
156
|
+
const rel = path.relative(configDir, target);
|
|
157
|
+
if (!rel || rel === '..' || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const parts = rel.split(path.sep).filter(Boolean);
|
|
162
|
+
if (parts[0] !== 'binaries' || parts[1] !== 'node') return false;
|
|
163
|
+
const nodeModulesIndex = parts.lastIndexOf('node_modules');
|
|
164
|
+
const stagingName = parts[nodeModulesIndex + 1];
|
|
165
|
+
if (nodeModulesIndex < 0 || !stagingName || !isManagedNodeStagingName(stagingName)) return false;
|
|
166
|
+
return (parts[2] === 'versions' && nodeModulesIndex === 4)
|
|
167
|
+
|| parts[2] === 'cli-connector-packages';
|
|
168
|
+
});
|
|
169
|
+
}
|
|
123
170
|
|
|
124
171
|
function shouldUseNativeDelete(absPath) {
|
|
125
172
|
return isUnderAnyTempDir(absPath, OS_TMP_DIRS)
|
|
126
|
-
|| isUnderAnyTempDir(absPath, NPM_CACHE_TMP_DIRS)
|
|
173
|
+
|| isUnderAnyTempDir(absPath, NPM_CACHE_TMP_DIRS)
|
|
174
|
+
|| isNpmCacheLogFile(absPath)
|
|
175
|
+
|| isWorkBuddyManagedNodeInstallStagingPath(absPath);
|
|
127
176
|
}
|
|
128
177
|
|
|
129
178
|
function recordTrash(absPath) {
|
|
@@ -475,7 +475,7 @@ if _SESSION_ID:
|
|
|
475
475
|
return True
|
|
476
476
|
return False
|
|
477
477
|
|
|
478
|
-
def
|
|
478
|
+
def _is_pip_site_packages_temp_dir(abs_path):
|
|
479
479
|
try:
|
|
480
480
|
target = _path_for_compare(os.fsdecode(abs_path))
|
|
481
481
|
except (TypeError, UnicodeError):
|
|
@@ -485,7 +485,7 @@ if _SESSION_ID:
|
|
|
485
485
|
if part not in ("site-packages", "dist-packages"):
|
|
486
486
|
continue
|
|
487
487
|
backup_root = parts[index + 1]
|
|
488
|
-
if backup_root.startswith("~"):
|
|
488
|
+
if backup_root.startswith("~") or backup_root.startswith("accesstest_deleteme"):
|
|
489
489
|
return True
|
|
490
490
|
return False
|
|
491
491
|
|
|
@@ -498,7 +498,7 @@ if _SESSION_ID:
|
|
|
498
498
|
if dir_fd is not None:
|
|
499
499
|
return _orig_remove(path, dir_fd=dir_fd)
|
|
500
500
|
abs_path = os.path.abspath(os.fspath(path))
|
|
501
|
-
if _is_under_os_tmp_dir(abs_path) or
|
|
501
|
+
if _is_under_os_tmp_dir(abs_path) or _is_pip_site_packages_temp_dir(abs_path):
|
|
502
502
|
return _orig_remove(path)
|
|
503
503
|
st = _safe_lstat(abs_path)
|
|
504
504
|
if not st:
|
|
@@ -515,7 +515,7 @@ if _SESSION_ID:
|
|
|
515
515
|
if dir_fd is not None:
|
|
516
516
|
return _orig_rmdir(path, dir_fd=dir_fd)
|
|
517
517
|
abs_path = os.path.abspath(os.fspath(path))
|
|
518
|
-
if _is_under_os_tmp_dir(abs_path) or
|
|
518
|
+
if _is_under_os_tmp_dir(abs_path) or _is_pip_site_packages_temp_dir(abs_path):
|
|
519
519
|
return _orig_rmdir(path)
|
|
520
520
|
st = _safe_lstat(abs_path)
|
|
521
521
|
if not st:
|
|
@@ -539,7 +539,7 @@ if _SESSION_ID:
|
|
|
539
539
|
path, ignore_errors=ignore_errors, onerror=onerror, **kwargs
|
|
540
540
|
)
|
|
541
541
|
|
|
542
|
-
if _is_under_os_tmp_dir(abs_path) or
|
|
542
|
+
if _is_under_os_tmp_dir(abs_path) or _is_pip_site_packages_temp_dir(abs_path):
|
|
543
543
|
return _orig_shutil_rmtree(
|
|
544
544
|
path, ignore_errors=ignore_errors, onerror=onerror, **kwargs
|
|
545
545
|
)
|
|
@@ -571,7 +571,7 @@ if _SESSION_ID:
|
|
|
571
571
|
|
|
572
572
|
def _safe_path_unlink(self, missing_ok=False):
|
|
573
573
|
abs_path = os.path.abspath(str(self))
|
|
574
|
-
if _is_under_os_tmp_dir(abs_path) or
|
|
574
|
+
if _is_under_os_tmp_dir(abs_path) or _is_pip_site_packages_temp_dir(abs_path):
|
|
575
575
|
return _orig_path_unlink(self, missing_ok=missing_ok)
|
|
576
576
|
st = _safe_lstat(abs_path)
|
|
577
577
|
if not st:
|
|
@@ -584,7 +584,7 @@ if _SESSION_ID:
|
|
|
584
584
|
|
|
585
585
|
def _safe_path_rmdir(self):
|
|
586
586
|
abs_path = os.path.abspath(str(self))
|
|
587
|
-
if _is_under_os_tmp_dir(abs_path) or
|
|
587
|
+
if _is_under_os_tmp_dir(abs_path) or _is_pip_site_packages_temp_dir(abs_path):
|
|
588
588
|
return _orig_path_rmdir(self)
|
|
589
589
|
st = _safe_lstat(abs_path)
|
|
590
590
|
if not st:
|