@ai-support-agent/cli 0.1.9-beta.0 → 0.1.10-beta.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/dist/cli/service/darwin-service.d.ts +0 -12
- package/dist/cli/service/darwin-service.d.ts.map +1 -1
- package/dist/cli/service/darwin-service.js +73 -50
- package/dist/cli/service/darwin-service.js.map +1 -1
- package/dist/cli/service/linux-service.d.ts +0 -25
- package/dist/cli/service/linux-service.d.ts.map +1 -1
- package/dist/cli/service/linux-service.js +143 -99
- package/dist/cli/service/linux-service.js.map +1 -1
- package/dist/cli/service/wrapper-helpers.d.ts +70 -0
- package/dist/cli/service/wrapper-helpers.d.ts.map +1 -0
- package/dist/cli/service/wrapper-helpers.js +140 -0
- package/dist/cli/service/wrapper-helpers.js.map +1 -0
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +13 -2
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/file-transfer.d.ts +1 -0
- package/dist/commands/file-transfer.d.ts.map +1 -1
- package/dist/commands/file-transfer.js +8 -2
- package/dist/commands/file-transfer.js.map +1 -1
- package/dist/docker/docker-supervisor.d.ts.map +1 -1
- package/dist/docker/docker-supervisor.js +24 -2
- package/dist/docker/docker-supervisor.js.map +1 -1
- package/dist/docker/volume-mount-builder.d.ts.map +1 -1
- package/dist/docker/volume-mount-builder.js +15 -1
- package/dist/docker/volume-mount-builder.js.map +1 -1
- package/dist/locales/en.json +7 -1
- package/dist/locales/ja.json +7 -1
- package/dist/security.d.ts +24 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +41 -0
- package/dist/security.js.map +1 -1
- package/package.json +1 -1
package/dist/security.js
CHANGED
|
@@ -37,6 +37,8 @@ exports.SAFE_ENV_KEYS = exports.ALLOWED_SIGNALS = exports.BLOCKED_PATH_PREFIXES
|
|
|
37
37
|
exports.getSensitiveHomePaths = getSensitiveHomePaths;
|
|
38
38
|
exports.buildSafeEnv = buildSafeEnv;
|
|
39
39
|
exports.validateCommand = validateCommand;
|
|
40
|
+
exports.isProjectCodeSafe = isProjectCodeSafe;
|
|
41
|
+
exports.assertProjectCodeIsSafe = assertProjectCodeIsSafe;
|
|
40
42
|
exports.validateBindMountPathSync = validateBindMountPathSync;
|
|
41
43
|
exports.validateFilePath = validateFilePath;
|
|
42
44
|
exports.resolveAndValidatePath = resolveAndValidatePath;
|
|
@@ -44,6 +46,7 @@ const fs = __importStar(require("fs"));
|
|
|
44
46
|
const os = __importStar(require("os"));
|
|
45
47
|
const path = __importStar(require("path"));
|
|
46
48
|
const constants_1 = require("./constants");
|
|
49
|
+
const i18n_1 = require("./i18n");
|
|
47
50
|
const utils_1 = require("./utils");
|
|
48
51
|
exports.BLOCKED_COMMAND_PATTERNS = [
|
|
49
52
|
/\brm\s+-rf\s+\/(?!\w)/,
|
|
@@ -97,6 +100,36 @@ function validateCommand(command) {
|
|
|
97
100
|
}
|
|
98
101
|
return null;
|
|
99
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Pure predicate variant of `assertProjectCodeIsSafe`. Use this when you
|
|
105
|
+
* only need a yes/no answer (e.g. pre-pass filters) without paying the
|
|
106
|
+
* i18n + Error construction cost the assert variant incurs on every
|
|
107
|
+
* rejected input.
|
|
108
|
+
*/
|
|
109
|
+
function isProjectCodeSafe(projectCode) {
|
|
110
|
+
return /^[A-Za-z0-9_-]+$/.test(projectCode);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Reject projectCodes / tenantCodes whose characters would break the
|
|
114
|
+
* `AI_SUPPORT_AGENT_PROJECT_DIR_MAP` env format.
|
|
115
|
+
*
|
|
116
|
+
* The env value uses `;` as entry separator and `=` as key/value separator;
|
|
117
|
+
* a code containing either would silently truncate the map and let
|
|
118
|
+
* `resolveProjectDir()` fall back to the default template, silently
|
|
119
|
+
* re-introducing the doubly-nested layout the recent fixes prevent.
|
|
120
|
+
* Allow `[A-Za-z0-9_-]` only — matching the naming convention
|
|
121
|
+
* (UPPER_SNAKE_CASE for project, lower_snake_case for tenant).
|
|
122
|
+
*
|
|
123
|
+
* Lives in `security.ts` (not `cli/service/wrapper-helpers.ts`) because
|
|
124
|
+
* it's called by both the install path (cli/service/*) AND the docker
|
|
125
|
+
* supervisor path (docker/volume-mount-builder.ts). Keeping it here
|
|
126
|
+
* avoids a layering inversion where `docker/*` reaches into `cli/*`.
|
|
127
|
+
*/
|
|
128
|
+
function assertProjectCodeIsSafe(projectCode) {
|
|
129
|
+
if (!isProjectCodeSafe(projectCode)) {
|
|
130
|
+
throw new Error((0, i18n_1.t)('service.invalidProjectCode', { projectCode }));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
100
133
|
/**
|
|
101
134
|
* Synchronous variant of `validateFilePath`'s blocked-prefix check, for use
|
|
102
135
|
* at script-generation / install time where async fs APIs aren't available.
|
|
@@ -105,6 +138,14 @@ function validateCommand(command) {
|
|
|
105
138
|
* is OK to bind-mount into a container.
|
|
106
139
|
*/
|
|
107
140
|
function validateBindMountPathSync(hostPath) {
|
|
141
|
+
// Empty / falsy / whitespace-only path: reject up front. `fs.realpathSync('')`
|
|
142
|
+
// returns the process cwd (and `realpathSync(' ')` throws → falls back to
|
|
143
|
+
// `path.resolve(' ')` = `<cwd>/ `) which then likely passes the
|
|
144
|
+
// blocked-prefix check, making the function answer "safe" for what is
|
|
145
|
+
// clearly a misconfigured value.
|
|
146
|
+
if (!hostPath || !hostPath.trim()) {
|
|
147
|
+
return 'Access denied: empty path';
|
|
148
|
+
}
|
|
108
149
|
let resolved;
|
|
109
150
|
try {
|
|
110
151
|
const real = fs.realpathSync(hostPath);
|
package/dist/security.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
|