@tencent-ai/codebuddy-code 2.137.0 → 2.137.1
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 +9 -0
- package/dist/codebuddy-headless.js +18 -18
- package/dist/codebuddy.js +16 -16
- package/package.json +1 -1
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +2 -2
- package/product.json +4 -12
- package/product.selfhosted.json +2 -2
- package/vendor/shim/broker-program-policy-check.cjs +68 -0
- package/vendor/shim/brokered-bin/codebuddy-toybox-dispatch +5 -19
- package/vendor/shim/safe-bin/safe-delete-common.sh +21 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tencent-ai/codebuddy-code",
|
|
3
|
-
"version": "2.137.
|
|
3
|
+
"version": "2.137.1",
|
|
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
|
@@ -816,6 +816,6 @@
|
|
|
816
816
|
"SelectImage": true,
|
|
817
817
|
"SkipToolCallSupportCheck": true
|
|
818
818
|
},
|
|
819
|
-
"commit": "
|
|
820
|
-
"date": "2026-08-
|
|
819
|
+
"commit": "581a8fefa510a6f6277bf5e931807ad60b868a66",
|
|
820
|
+
"date": "2026-08-17T12:09:10.644Z"
|
|
821
821
|
}
|
package/product.internal.json
CHANGED
package/product.ioa.json
CHANGED
package/product.json
CHANGED
|
@@ -1559,16 +1559,8 @@
|
|
|
1559
1559
|
],
|
|
1560
1560
|
"builtInMarketplaces": {
|
|
1561
1561
|
"codebuddy-plugins-official": {
|
|
1562
|
-
"source": "
|
|
1563
|
-
"url": "https://
|
|
1564
|
-
"metaUrl": "https://download.codebuddy.cn/plugin-marketplace/codebuddy-plugins-official.json",
|
|
1565
|
-
"versionUrl": "https://download.codebuddy.cn/plugin-marketplace/version/codebuddy-plugins-official.txt"
|
|
1566
|
-
},
|
|
1567
|
-
"cb_teams_marketplace": {
|
|
1568
|
-
"source": "zip",
|
|
1569
|
-
"url": "https://download.codebuddy.cn/plugin-marketplace/cb_teams_marketplace.zip",
|
|
1570
|
-
"metaUrl": "https://download.codebuddy.cn/plugin-marketplace/cb_teams_marketplace.json",
|
|
1571
|
-
"versionUrl": "https://download.codebuddy.cn/plugin-marketplace/version/cb_teams_marketplace.txt"
|
|
1562
|
+
"source": "git",
|
|
1563
|
+
"url": "https://cnb.cool/codebuddy/marketplace"
|
|
1572
1564
|
}
|
|
1573
1565
|
},
|
|
1574
1566
|
"deploymentType": "SaaS",
|
|
@@ -1832,6 +1824,6 @@
|
|
|
1832
1824
|
"description": "tool-repl-description"
|
|
1833
1825
|
}
|
|
1834
1826
|
],
|
|
1835
|
-
"commit": "
|
|
1836
|
-
"date": "2026-08-
|
|
1827
|
+
"commit": "581a8fefa510a6f6277bf5e931807ad60b868a66",
|
|
1828
|
+
"date": "2026-08-17T12:09:10.825Z"
|
|
1837
1829
|
}
|
package/product.selfhosted.json
CHANGED
|
@@ -353,6 +353,6 @@
|
|
|
353
353
|
"ScheduledTasks": true,
|
|
354
354
|
"SkipToolCallSupportCheck": true
|
|
355
355
|
},
|
|
356
|
-
"commit": "
|
|
357
|
-
"date": "2026-08-
|
|
356
|
+
"commit": "581a8fefa510a6f6277bf5e931807ad60b868a66",
|
|
357
|
+
"date": "2026-08-17T12:09:10.651Z"
|
|
358
358
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared brokered Program Blacklist check for command shims.
|
|
3
|
+
*
|
|
4
|
+
* CLI contract: `node broker-program-policy-check.cjs <program> [runtime] [brokerClientPath]`
|
|
5
|
+
* Exit codes: 0 = allowed/not configured, 126 = forbidden program,
|
|
6
|
+
* 13 = policy check unavailable or otherwise denied.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
|
|
14
|
+
function checkProgramPolicy(program, runtime = 'brokered-program-policy', options = {}) {
|
|
15
|
+
const command = options.command || process.env.CODEBUDDY_SANDBOX_PROGRAM_POLICY_COMMAND;
|
|
16
|
+
if (!command) {
|
|
17
|
+
return { code: 0 };
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const socketPath = options.socketPath || process.env.CODEBUDDY_SANDBOX_BROKER_IPC_ADDRESS;
|
|
21
|
+
const sessionId = options.sessionId || process.env.CODEBUDDY_SANDBOX_BROKER_SESSION_ID;
|
|
22
|
+
const brokerClientPath = options.brokerClientPath || path.join(__dirname, 'broker-ipc-client.cjs');
|
|
23
|
+
if (!program || !socketPath || !sessionId || !fs.existsSync(brokerClientPath)) {
|
|
24
|
+
return { code: 13, error: 'Brokered program policy check unavailable' };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
const { sendBrokerRequestSync } = require(brokerClientPath);
|
|
29
|
+
const response = sendBrokerRequestSync({
|
|
30
|
+
command,
|
|
31
|
+
program,
|
|
32
|
+
sessionId,
|
|
33
|
+
toolCallId: options.toolCallId || process.env.CODEBUDDY_SANDBOX_BROKER_TOOL_CALL_ID,
|
|
34
|
+
brokerTraceId: options.brokerTraceId || process.env.CODEBUDDY_SANDBOX_BROKER_TRACE_ID,
|
|
35
|
+
runtime,
|
|
36
|
+
});
|
|
37
|
+
if (response && response.ok === true && response.decision === 'allow') {
|
|
38
|
+
return { code: 0, response };
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
code: response && response.reason === 'forbidden_program' ? 126 : 13,
|
|
42
|
+
error: response && response.error
|
|
43
|
+
? response.error
|
|
44
|
+
: `Brokered program policy denied "${program}"`,
|
|
45
|
+
response,
|
|
46
|
+
};
|
|
47
|
+
} catch (_) {
|
|
48
|
+
return { code: 13, error: 'Brokered program policy check unavailable' };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function runCli(argv = process.argv.slice(2)) {
|
|
53
|
+
const [program, runtime, brokerClientPath] = argv;
|
|
54
|
+
const result = checkProgramPolicy(program, runtime || 'brokered-program-policy', { brokerClientPath });
|
|
55
|
+
if (result.error) {
|
|
56
|
+
process.stderr.write(result.error);
|
|
57
|
+
}
|
|
58
|
+
return result.code;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
checkProgramPolicy,
|
|
63
|
+
runCli,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
if (require.main === module) {
|
|
67
|
+
process.exit(runCli());
|
|
68
|
+
}
|
|
@@ -4,6 +4,7 @@ __cb_app="${0##*/}"
|
|
|
4
4
|
__cb_toybox="${CODEBUDDY_TOYBOX_BIN:-}"
|
|
5
5
|
__cb_brokered_dir="${CODEBUDDY_BROKERED_BIN_DIR:-${0%/*}}"
|
|
6
6
|
__cb_broker_client="${CODEBUDDY_BROKER_IPC_CLIENT:-${__cb_brokered_dir%/brokered-bin}/broker-ipc-client.cjs}"
|
|
7
|
+
__cb_program_policy_helper="${__cb_brokered_dir%/brokered-bin}/broker-program-policy-check.cjs"
|
|
7
8
|
|
|
8
9
|
__cb_cleanup() { /bin/rm -f "$__cb_err" 2>/dev/null || true; }
|
|
9
10
|
|
|
@@ -13,28 +14,13 @@ __cb_check_program_policy() {
|
|
|
13
14
|
[ -n "${CODEBUDDY_SANDBOX_PROGRAM_POLICY_COMMAND:-}" ] || return 0
|
|
14
15
|
if [ -z "${CODEBUDDY_SANDBOX_BROKER_IPC_ADDRESS:-}" ] \
|
|
15
16
|
|| [ -z "${CODEBUDDY_SANDBOX_BROKER_SESSION_ID:-}" ] \
|
|
16
|
-
|| [ ! -f "$__cb_broker_client" ]
|
|
17
|
+
|| [ ! -f "$__cb_broker_client" ] \
|
|
18
|
+
|| [ ! -f "$__cb_program_policy_helper" ]; then
|
|
17
19
|
printf '%s' 'Brokered program policy check unavailable' >&2
|
|
18
20
|
return 13
|
|
19
21
|
fi
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const { sendBrokerRequestSync } = require(process.argv[2]);
|
|
23
|
-
const program = process.argv[3];
|
|
24
|
-
const response = sendBrokerRequestSync({
|
|
25
|
-
command: process.env.CODEBUDDY_SANDBOX_PROGRAM_POLICY_COMMAND,
|
|
26
|
-
program,
|
|
27
|
-
sessionId: process.env.CODEBUDDY_SANDBOX_BROKER_SESSION_ID,
|
|
28
|
-
toolCallId: process.env.CODEBUDDY_SANDBOX_BROKER_TOOL_CALL_ID,
|
|
29
|
-
brokerTraceId: process.env.CODEBUDDY_SANDBOX_BROKER_TRACE_ID,
|
|
30
|
-
runtime: 'toybox-dispatch',
|
|
31
|
-
});
|
|
32
|
-
if (response && response.ok === true && response.decision === 'allow') {
|
|
33
|
-
process.exit(0);
|
|
34
|
-
}
|
|
35
|
-
process.stderr.write(response && response.error ? response.error : `Brokered program policy denied "${program}"`);
|
|
36
|
-
process.exit(response && response.reason === 'forbidden_program' ? 126 : 13);
|
|
37
|
-
NODE
|
|
22
|
+
NODE_OPTIONS= "${CODEBUDDY_NODE_BIN:-node}" \
|
|
23
|
+
"$__cb_program_policy_helper" "$1" toybox-dispatch "$__cb_broker_client"
|
|
38
24
|
}
|
|
39
25
|
|
|
40
26
|
__cb_check_program_policy "$__cb_app"
|
|
@@ -459,6 +459,24 @@ trash_one() {
|
|
|
459
459
|
esac
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
+
safe_delete_check_program_policy() {
|
|
463
|
+
local program="$1"
|
|
464
|
+
[ -n "${CODEBUDDY_SANDBOX_PROGRAM_POLICY_COMMAND:-}" ] || return 0
|
|
465
|
+
|
|
466
|
+
local helper="${SAFE_DELETE_BIN_DIR%/safe-bin}/broker-program-policy-check.cjs"
|
|
467
|
+
local broker_client="${SAFE_DELETE_BIN_DIR%/safe-bin}/broker-ipc-client.cjs"
|
|
468
|
+
local node_bin="${CODEBUDDY_NODE_BIN:-node}"
|
|
469
|
+
if [ -z "${CODEBUDDY_SANDBOX_BROKER_IPC_ADDRESS:-}" ] \
|
|
470
|
+
|| [ -z "${CODEBUDDY_SANDBOX_BROKER_SESSION_ID:-}" ] \
|
|
471
|
+
|| [ ! -f "$broker_client" ] \
|
|
472
|
+
|| [ ! -f "$helper" ]; then
|
|
473
|
+
printf '%s' 'Brokered program policy check unavailable' >&2
|
|
474
|
+
return 13
|
|
475
|
+
fi
|
|
476
|
+
|
|
477
|
+
NODE_OPTIONS= "$node_bin" "$helper" "$program" safe-delete "$broker_client"
|
|
478
|
+
}
|
|
479
|
+
|
|
462
480
|
try_broker_delete() {
|
|
463
481
|
local abs="$1"
|
|
464
482
|
local recursive="${2:-false}"
|
|
@@ -733,6 +751,9 @@ safe_delete_rmdir() {
|
|
|
733
751
|
safe_delete_main() {
|
|
734
752
|
local mode="$1"
|
|
735
753
|
shift
|
|
754
|
+
safe_delete_check_program_policy "$mode"
|
|
755
|
+
local program_policy_rc=$?
|
|
756
|
+
[ $program_policy_rc -eq 0 ] || return $program_policy_rc
|
|
736
757
|
case "$mode" in
|
|
737
758
|
rm) safe_delete_rm "$@"; return $? ;;
|
|
738
759
|
unlink) safe_delete_unlink "$@"; return $? ;;
|