siclaw 0.1.1 → 0.1.2
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/README.md +74 -114
- package/dist/agentbox/gateway-client.d.ts +2 -1
- package/dist/agentbox/gateway-client.js +6 -2
- package/dist/agentbox/gateway-client.js.map +1 -1
- package/dist/agentbox/http-server.js +184 -19
- package/dist/agentbox/http-server.js.map +1 -1
- package/dist/agentbox/resource-handlers.d.ts +1 -0
- package/dist/agentbox/resource-handlers.js +23 -23
- package/dist/agentbox/resource-handlers.js.map +1 -1
- package/dist/agentbox/session.js +85 -5
- package/dist/agentbox/session.js.map +1 -1
- package/dist/agentbox-main.d.ts +2 -1
- package/dist/agentbox-main.js +65 -18
- package/dist/agentbox-main.js.map +1 -1
- package/dist/cli-credentials.d.ts +1 -0
- package/dist/cli-credentials.js +109 -0
- package/dist/cli-credentials.js.map +1 -0
- package/dist/cli-first-run.d.ts +11 -0
- package/dist/cli-first-run.js +99 -0
- package/dist/cli-first-run.js.map +1 -0
- package/dist/cli-main.js +33 -11
- package/dist/cli-main.js.map +1 -1
- package/dist/cli-setup.d.ts +5 -11
- package/dist/cli-setup.js +12 -225
- package/dist/cli-setup.js.map +1 -1
- package/dist/core/agent-factory.d.ts +4 -0
- package/dist/core/agent-factory.js +102 -151
- package/dist/core/agent-factory.js.map +1 -1
- package/dist/core/config.d.ts +10 -3
- package/dist/core/config.js +11 -95
- package/dist/core/config.js.map +1 -1
- package/dist/core/extensions/deep-investigation.d.ts +2 -1
- package/dist/core/extensions/deep-investigation.js +144 -24
- package/dist/core/extensions/deep-investigation.js.map +1 -1
- package/dist/core/extensions/setup.d.ts +8 -0
- package/dist/core/extensions/setup.js +669 -0
- package/dist/core/extensions/setup.js.map +1 -0
- package/dist/core/llm-proxy.js +7 -3
- package/dist/core/llm-proxy.js.map +1 -1
- package/dist/core/mcp-client.d.ts +0 -10
- package/dist/core/mcp-client.js +0 -65
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/prompt.d.ts +1 -1
- package/dist/core/prompt.js +42 -5
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/provider-presets.d.ts +14 -0
- package/dist/core/provider-presets.js +81 -0
- package/dist/core/provider-presets.js.map +1 -0
- package/dist/cron/cron-coordinator.d.ts +2 -0
- package/dist/cron/cron-coordinator.js +46 -14
- package/dist/cron/cron-coordinator.js.map +1 -1
- package/dist/cron/cron-executor.js +33 -8
- package/dist/cron/cron-executor.js.map +1 -1
- package/dist/cron/cron-scheduler.d.ts +1 -1
- package/dist/cron/gateway-client.d.ts +5 -0
- package/dist/cron/gateway-client.js +43 -8
- package/dist/cron/gateway-client.js.map +1 -1
- package/dist/cron-main.js +39 -9
- package/dist/cron-main.js.map +1 -1
- package/dist/gateway/agentbox/client.d.ts +11 -0
- package/dist/gateway/agentbox/client.js +18 -0
- package/dist/gateway/agentbox/client.js.map +1 -1
- package/dist/gateway/agentbox/k8s-spawner.d.ts +11 -2
- package/dist/gateway/agentbox/k8s-spawner.js +95 -52
- package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
- package/dist/gateway/agentbox/local-spawner.d.ts +1 -1
- package/dist/gateway/agentbox/local-spawner.js +4 -2
- package/dist/gateway/agentbox/local-spawner.js.map +1 -1
- package/dist/gateway/agentbox/manager.d.ts +0 -10
- package/dist/gateway/agentbox/manager.js +11 -30
- package/dist/gateway/agentbox/manager.js.map +1 -1
- package/dist/gateway/agentbox/types.d.ts +6 -4
- package/dist/gateway/cron/cron-service.d.ts +49 -0
- package/dist/gateway/cron/cron-service.js +259 -0
- package/dist/gateway/cron/cron-service.js.map +1 -0
- package/dist/gateway/db/init-schema.js +44 -0
- package/dist/gateway/db/init-schema.js.map +1 -1
- package/dist/gateway/db/migrate-sqlite.js +73 -4
- package/dist/gateway/db/migrate-sqlite.js.map +1 -1
- package/dist/gateway/db/repositories/chat-repo.d.ts +56 -2
- package/dist/gateway/db/repositories/chat-repo.js +132 -2
- package/dist/gateway/db/repositories/chat-repo.js.map +1 -1
- package/dist/gateway/db/repositories/config-repo.d.ts +31 -2
- package/dist/gateway/db/repositories/config-repo.js +57 -7
- package/dist/gateway/db/repositories/config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/env-repo.d.ts +14 -0
- package/dist/gateway/db/repositories/env-repo.js +15 -2
- package/dist/gateway/db/repositories/env-repo.js.map +1 -1
- package/dist/gateway/db/repositories/model-config-repo.js +6 -5
- package/dist/gateway/db/repositories/model-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/skill-repo.d.ts +0 -5
- package/dist/gateway/db/repositories/skill-review-repo.d.ts +1 -0
- package/dist/gateway/db/repositories/skill-review-repo.js +4 -1
- package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -1
- package/dist/gateway/db/repositories/skill-version-repo.js +0 -1
- package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -1
- package/dist/gateway/db/repositories/system-config-repo.d.ts +1 -1
- package/dist/gateway/db/repositories/system-config-repo.js +2 -1
- package/dist/gateway/db/repositories/system-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/user-env-config-repo.d.ts +13 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js +11 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/workspace-repo.d.ts +3 -2
- package/dist/gateway/db/repositories/workspace-repo.js +6 -2
- package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
- package/dist/gateway/db/schema-mysql.d.ts +473 -51
- package/dist/gateway/db/schema-mysql.js +35 -4
- package/dist/gateway/db/schema-mysql.js.map +1 -1
- package/dist/gateway/db/schema-sqlite.d.ts +522 -57
- package/dist/gateway/db/schema-sqlite.js +38 -6
- package/dist/gateway/db/schema-sqlite.js.map +1 -1
- package/dist/gateway/db/schema.d.ts +471 -51
- package/dist/gateway/db/schema.js +1 -1
- package/dist/gateway/db/schema.js.map +1 -1
- package/dist/gateway/metrics-aggregator.d.ts +65 -0
- package/dist/gateway/metrics-aggregator.js +244 -0
- package/dist/gateway/metrics-aggregator.js.map +1 -0
- package/dist/gateway/plugins/channel-bridge.d.ts +4 -1
- package/dist/gateway/plugins/channel-bridge.js +78 -86
- package/dist/gateway/plugins/channel-bridge.js.map +1 -1
- package/dist/gateway/rpc-methods.d.ts +4 -2
- package/dist/gateway/rpc-methods.js +852 -166
- package/dist/gateway/rpc-methods.js.map +1 -1
- package/dist/gateway/security/cert-manager.d.ts +2 -2
- package/dist/gateway/security/cert-manager.js +4 -2
- package/dist/gateway/security/cert-manager.js.map +1 -1
- package/dist/gateway/server.d.ts +4 -8
- package/dist/gateway/server.js +297 -261
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/skills/file-writer.js +17 -11
- package/dist/gateway/skills/file-writer.js.map +1 -1
- package/dist/gateway/skills/script-evaluator.js +12 -9
- package/dist/gateway/skills/script-evaluator.js.map +1 -1
- package/dist/gateway/web/dist/assets/index-0p17ZeTP.js +740 -0
- package/dist/gateway/web/dist/assets/index-9eP6nPUq.js +741 -0
- package/dist/gateway/web/dist/assets/index-9eP6nPUq.js.map +1 -0
- package/dist/gateway/web/dist/assets/index-DyowBCEj.css +1 -0
- package/dist/gateway/web/dist/assets/index-PDK5JJDO.css +1 -0
- package/dist/gateway/web/dist/index.html +2 -2
- package/dist/gateway-main.js +27 -10
- package/dist/gateway-main.js.map +1 -1
- package/dist/memory/embeddings.js +5 -4
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/indexer.d.ts +23 -3
- package/dist/memory/indexer.js +235 -23
- package/dist/memory/indexer.js.map +1 -1
- package/dist/memory/schema.js +15 -1
- package/dist/memory/schema.js.map +1 -1
- package/dist/memory/types.d.ts +18 -0
- package/dist/memory/types.js +6 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/shared/detect-language.d.ts +12 -0
- package/dist/shared/detect-language.js +78 -0
- package/dist/shared/detect-language.js.map +1 -0
- package/dist/shared/diagnostic-events.d.ts +70 -0
- package/dist/shared/diagnostic-events.js +38 -0
- package/dist/shared/diagnostic-events.js.map +1 -0
- package/dist/shared/local-collector.d.ts +56 -0
- package/dist/shared/local-collector.js +284 -0
- package/dist/shared/local-collector.js.map +1 -0
- package/dist/shared/metrics-types.d.ts +64 -0
- package/dist/shared/metrics-types.js +25 -0
- package/dist/shared/metrics-types.js.map +1 -0
- package/dist/shared/metrics.d.ts +19 -0
- package/dist/shared/metrics.js +185 -0
- package/dist/shared/metrics.js.map +1 -0
- package/dist/shared/path-utils.d.ts +15 -0
- package/dist/shared/path-utils.js +23 -0
- package/dist/shared/path-utils.js.map +1 -0
- package/dist/shared/retry.d.ts +35 -0
- package/dist/shared/retry.js +61 -0
- package/dist/shared/retry.js.map +1 -0
- package/dist/tools/command-sets.d.ts +18 -2
- package/dist/tools/command-sets.js +207 -32
- package/dist/tools/command-sets.js.map +1 -1
- package/dist/tools/command-validator.d.ts +56 -0
- package/dist/tools/command-validator.js +357 -0
- package/dist/tools/command-validator.js.map +1 -0
- package/dist/tools/create-skill.js +26 -1
- package/dist/tools/create-skill.js.map +1 -1
- package/dist/tools/credential-list.js +1 -23
- package/dist/tools/credential-list.js.map +1 -1
- package/dist/tools/credential-manager.d.ts +98 -0
- package/dist/tools/credential-manager.js +313 -0
- package/dist/tools/credential-manager.js.map +1 -0
- package/dist/tools/deep-search/engine.js +184 -127
- package/dist/tools/deep-search/engine.js.map +1 -1
- package/dist/tools/deep-search/prompts.d.ts +10 -2
- package/dist/tools/deep-search/prompts.js +37 -36
- package/dist/tools/deep-search/prompts.js.map +1 -1
- package/dist/tools/deep-search/schemas.d.ts +87 -0
- package/dist/tools/deep-search/schemas.js +85 -0
- package/dist/tools/deep-search/schemas.js.map +1 -0
- package/dist/tools/deep-search/sub-agent.d.ts +21 -0
- package/dist/tools/deep-search/sub-agent.js +153 -4
- package/dist/tools/deep-search/sub-agent.js.map +1 -1
- package/dist/tools/deep-search/tool.js +1 -0
- package/dist/tools/deep-search/tool.js.map +1 -1
- package/dist/tools/deep-search/types.d.ts +2 -0
- package/dist/tools/deep-search/types.js.map +1 -1
- package/dist/tools/dp-tools.js +29 -5
- package/dist/tools/dp-tools.js.map +1 -1
- package/dist/tools/exec-utils.d.ts +85 -0
- package/dist/tools/exec-utils.js +294 -0
- package/dist/tools/exec-utils.js.map +1 -0
- package/dist/tools/fork-skill.js +14 -2
- package/dist/tools/fork-skill.js.map +1 -1
- package/dist/tools/investigation-feedback.d.ts +3 -0
- package/dist/tools/investigation-feedback.js +71 -0
- package/dist/tools/investigation-feedback.js.map +1 -0
- package/dist/tools/manage-schedule.js +16 -6
- package/dist/tools/manage-schedule.js.map +1 -1
- package/dist/tools/netns-script.js +27 -281
- package/dist/tools/netns-script.js.map +1 -1
- package/dist/tools/node-exec.d.ts +2 -14
- package/dist/tools/node-exec.js +18 -225
- package/dist/tools/node-exec.js.map +1 -1
- package/dist/tools/node-script.js +14 -168
- package/dist/tools/node-script.js.map +1 -1
- package/dist/tools/pod-exec.d.ts +1 -1
- package/dist/tools/pod-exec.js +10 -26
- package/dist/tools/pod-exec.js.map +1 -1
- package/dist/tools/pod-nsenter-exec.js +21 -225
- package/dist/tools/pod-nsenter-exec.js.map +1 -1
- package/dist/tools/pod-script.js +10 -19
- package/dist/tools/pod-script.js.map +1 -1
- package/dist/tools/restricted-bash.d.ts +1 -17
- package/dist/tools/restricted-bash.js +38 -252
- package/dist/tools/restricted-bash.js.map +1 -1
- package/dist/tools/run-skill.d.ts +3 -1
- package/dist/tools/run-skill.js +21 -1
- package/dist/tools/run-skill.js.map +1 -1
- package/dist/tools/script-resolver.d.ts +3 -1
- package/dist/tools/script-resolver.js +74 -30
- package/dist/tools/script-resolver.js.map +1 -1
- package/dist/tools/update-skill.js +17 -6
- package/dist/tools/update-skill.js.map +1 -1
- package/package.json +4 -2
- package/siclaw.mjs +10 -1
- package/skills/core/cluster-events/SKILL.md +1 -1
- package/skills/core/deep-investigation/SKILL.md +11 -0
- package/skills/core/deployment-rollout-debug/SKILL.md +1 -1
- package/skills/core/dns-debug/SKILL.md +1 -0
- package/skills/core/meta.json +12 -1
- package/skills/core/networkpolicy-debug/SKILL.md +332 -0
- package/skills/core/node-logs/scripts/get-node-logs.sh +19 -9
- package/skills/core/pod-pending-debug/SKILL.md +1 -0
- package/skills/core/quota-debug/SKILL.md +203 -0
- package/skills/core/service-debug/SKILL.md +1 -0
- package/skills/core/statefulset-debug/SKILL.md +280 -0
- package/skills/core/volcano-diagnose-pod/SKILL.md +196 -0
- package/skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh +175 -0
- package/skills/core/volcano-gang-scheduling/SKILL.md +299 -0
- package/skills/core/volcano-job-diagnose/SKILL.md +319 -0
- package/skills/core/volcano-job-diagnose/scripts/diagnose-job.sh +253 -0
- package/skills/core/volcano-node-resources/SKILL.md +334 -0
- package/skills/core/volcano-node-resources/scripts/get-node-resources.sh +281 -0
- package/skills/core/volcano-queue-diagnose/SKILL.md +294 -0
- package/skills/core/volcano-queue-diagnose/scripts/diagnose-queue.sh +283 -0
- package/skills/core/volcano-resource-insufficient/SKILL.md +315 -0
- package/skills/core/volcano-scheduler-config/SKILL.md +371 -0
- package/skills/core/volcano-scheduler-config/scripts/get-scheduler-config.sh +297 -0
- package/skills/core/volcano-scheduler-logs/SKILL.md +241 -0
- package/skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh +159 -0
- package/skills/platform/create-skill/SKILL.md +35 -3
- package/skills/platform/manage-skill/SKILL.md +9 -2
- package/skills/platform/update-skill/SKILL.md +17 -6
|
@@ -136,27 +136,135 @@ export const ALLOWED_COMMANDS = new Set([
|
|
|
136
136
|
// math (bc removed — !command escapes to shell)
|
|
137
137
|
"expr", "seq",
|
|
138
138
|
]);
|
|
139
|
+
// ── Command categories and context-based whitelists ──────────────
|
|
140
|
+
/** Map each command to its functional category. */
|
|
141
|
+
export const COMMAND_CATEGORIES = {
|
|
142
|
+
// text processing
|
|
143
|
+
grep: "text", egrep: "text", fgrep: "text",
|
|
144
|
+
sort: "text", uniq: "text", wc: "text", head: "text", tail: "text",
|
|
145
|
+
cut: "text", tr: "text", jq: "text", yq: "text", column: "text",
|
|
146
|
+
// network
|
|
147
|
+
ip: "network", ifconfig: "network", ping: "network", traceroute: "network",
|
|
148
|
+
tracepath: "network", ss: "network", netstat: "network", route: "network",
|
|
149
|
+
arp: "network", ethtool: "network", mtr: "network", nslookup: "network",
|
|
150
|
+
dig: "network", host: "network", bridge: "network", tc: "network",
|
|
151
|
+
conntrack: "network", curl: "network",
|
|
152
|
+
// RDMA
|
|
153
|
+
ibstat: "rdma", ibstatus: "rdma", ibv_devinfo: "rdma", ibv_devices: "rdma",
|
|
154
|
+
rdma: "rdma", ibaddr: "rdma", iblinkinfo: "rdma", ibportstate: "rdma",
|
|
155
|
+
ibswitches: "rdma", ibroute: "rdma", show_gids: "rdma", ibdev2netdev: "rdma",
|
|
156
|
+
// perftest
|
|
157
|
+
ib_write_bw: "perftest", ib_write_lat: "perftest",
|
|
158
|
+
ib_read_bw: "perftest", ib_read_lat: "perftest",
|
|
159
|
+
ib_send_bw: "perftest", ib_send_lat: "perftest",
|
|
160
|
+
ib_atomic_bw: "perftest", ib_atomic_lat: "perftest",
|
|
161
|
+
raw_ethernet_bw: "perftest", raw_ethernet_lat: "perftest",
|
|
162
|
+
raw_ethernet_burst_lat: "perftest",
|
|
163
|
+
// GPU
|
|
164
|
+
"nvidia-smi": "gpu", gpustat: "gpu", nvtopo: "gpu",
|
|
165
|
+
// hardware
|
|
166
|
+
lspci: "hardware", lsusb: "hardware", lsblk: "hardware",
|
|
167
|
+
lscpu: "hardware", lsmem: "hardware", lshw: "hardware", dmidecode: "hardware",
|
|
168
|
+
// kernel
|
|
169
|
+
uname: "kernel", hostname: "kernel", uptime: "kernel",
|
|
170
|
+
dmesg: "kernel", sysctl: "kernel", lsmod: "kernel", modinfo: "kernel",
|
|
171
|
+
// process / resource
|
|
172
|
+
ps: "process", pgrep: "process", top: "process", free: "process",
|
|
173
|
+
vmstat: "process", iostat: "process", mpstat: "process",
|
|
174
|
+
df: "process", du: "process", mount: "process", findmnt: "process", nproc: "process",
|
|
175
|
+
// file (read-only) — blocked in local context
|
|
176
|
+
cat: "file", ls: "file", pwd: "file", stat: "file", file: "file",
|
|
177
|
+
find: "file", readlink: "file", realpath: "file", basename: "file", dirname: "file",
|
|
178
|
+
diff: "file", md5sum: "file", sha256sum: "file",
|
|
179
|
+
// diagnostic
|
|
180
|
+
sichek: "diagnostic",
|
|
181
|
+
// services
|
|
182
|
+
journalctl: "services", systemctl: "services",
|
|
183
|
+
timedatectl: "services", hostnamectl: "services",
|
|
184
|
+
// container
|
|
185
|
+
crictl: "container", ctr: "container",
|
|
186
|
+
// firewall
|
|
187
|
+
iptables: "firewall", ip6tables: "firewall",
|
|
188
|
+
// inspection — blocked in local context
|
|
189
|
+
lsof: "inspection", lsns: "inspection", strings: "inspection",
|
|
190
|
+
// compressed — blocked in local context
|
|
191
|
+
zcat: "compressed", zgrep: "compressed", bzcat: "compressed", xzcat: "compressed",
|
|
192
|
+
// activity
|
|
193
|
+
sar: "activity", blkid: "activity",
|
|
194
|
+
// stream
|
|
195
|
+
tee: "stream",
|
|
196
|
+
// general (env/printenv separated — blocked in local context)
|
|
197
|
+
date: "general", whoami: "general", id: "general", which: "general",
|
|
198
|
+
env: "general-env", printenv: "general-env",
|
|
199
|
+
// flow control
|
|
200
|
+
echo: "flow", printf: "flow", true: "flow", false: "flow",
|
|
201
|
+
sleep: "flow", wait: "flow", test: "flow", expr: "flow", seq: "flow",
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Categories allowed per execution context.
|
|
205
|
+
* local: agentbox / TUI process (no file/env access — use Read/Grep/Glob tools)
|
|
206
|
+
* node: remote node via debug pod
|
|
207
|
+
* pod: remote pod via kubectl exec
|
|
208
|
+
* nsenter: remote pod netns via debug pod
|
|
209
|
+
* ssh: remote host via SSH (future)
|
|
210
|
+
*/
|
|
211
|
+
const ALL_REMOTE_CATEGORIES = [
|
|
212
|
+
"text", "network", "rdma", "perftest", "gpu", "hardware", "kernel",
|
|
213
|
+
"process", "file", "diagnostic", "services", "container", "firewall",
|
|
214
|
+
"inspection", "compressed", "activity", "stream", "general", "general-env",
|
|
215
|
+
"flow",
|
|
216
|
+
];
|
|
217
|
+
export const CONTEXT_CATEGORIES = {
|
|
218
|
+
local: [
|
|
219
|
+
"text", "network", "rdma", "perftest", "gpu", "hardware", "kernel",
|
|
220
|
+
"process", "diagnostic", "services", "container", "firewall",
|
|
221
|
+
"activity", "stream", "general", "flow",
|
|
222
|
+
],
|
|
223
|
+
node: [...ALL_REMOTE_CATEGORIES],
|
|
224
|
+
pod: [...ALL_REMOTE_CATEGORIES],
|
|
225
|
+
nsenter: [...ALL_REMOTE_CATEGORIES],
|
|
226
|
+
ssh: [...ALL_REMOTE_CATEGORIES],
|
|
227
|
+
};
|
|
139
228
|
export const COMMAND_RULES = {
|
|
229
|
+
// ── Text commands: local-context stdin-only rules ──
|
|
230
|
+
// In local (agentbox) context, text commands must only process piped stdin.
|
|
231
|
+
// They cannot read files directly or traverse directories.
|
|
232
|
+
grep: { command: "grep", contexts: ["local"], pipeOnly: true, noFilePaths: true, blockedFlags: ["-r", "-R", "--recursive"] },
|
|
233
|
+
egrep: { command: "egrep", contexts: ["local"], pipeOnly: true, noFilePaths: true, blockedFlags: ["-r", "-R", "--recursive"] },
|
|
234
|
+
fgrep: { command: "fgrep", contexts: ["local"], pipeOnly: true, noFilePaths: true, blockedFlags: ["-r", "-R", "--recursive"] },
|
|
235
|
+
cut: { command: "cut", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
236
|
+
head: { command: "head", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
237
|
+
tail: { command: "tail", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
238
|
+
wc: { command: "wc", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
239
|
+
tr: { command: "tr", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
240
|
+
column: { command: "column", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
241
|
+
jq: { command: "jq", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
140
242
|
// ── Flag whitelist ──
|
|
141
|
-
sort:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
command: "
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
243
|
+
sort: [
|
|
244
|
+
{
|
|
245
|
+
command: "sort", category: "text",
|
|
246
|
+
allowedFlags: [
|
|
247
|
+
"-r", "-n", "-k", "-t", "-u", "-f", "-h", "-V", "-s", "-b", "-g", "-M", "-d", "-i",
|
|
248
|
+
"--reverse", "--numeric-sort", "--key", "--field-separator", "--unique",
|
|
249
|
+
"--human-numeric-sort", "--version-sort", "--stable", "--ignore-leading-blanks",
|
|
250
|
+
"--general-numeric-sort", "--month-sort", "--dictionary-order", "--ignore-case",
|
|
251
|
+
],
|
|
252
|
+
},
|
|
253
|
+
{ command: "sort", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
254
|
+
],
|
|
255
|
+
yq: [
|
|
256
|
+
{
|
|
257
|
+
command: "yq", category: "text",
|
|
258
|
+
allowedFlags: [
|
|
259
|
+
"-r", "--raw-output", "-e", "--exit-status", "-o", "--output-format",
|
|
260
|
+
"-P", "--prettyprint", "-C", "--colors", "-M", "--no-colors",
|
|
261
|
+
"-N", "--no-doc", "-j", "--tojson", "-p", "--input-format",
|
|
262
|
+
"--xml-attribute-prefix", "--xml-content-name",
|
|
263
|
+
"-s", "--split-exp", "--unwrapScalar", "--nul-output", "--header-preprocess",
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
{ command: "yq", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
267
|
+
],
|
|
160
268
|
ethtool: {
|
|
161
269
|
command: "ethtool", category: "network",
|
|
162
270
|
allowedFlags: [
|
|
@@ -226,10 +334,10 @@ export const COMMAND_RULES = {
|
|
|
226
334
|
allowedFlags: ["-a", "-s", "--all", "--short"],
|
|
227
335
|
positionals: 1,
|
|
228
336
|
},
|
|
229
|
-
uniq:
|
|
230
|
-
command: "uniq", category: "text",
|
|
231
|
-
|
|
232
|
-
|
|
337
|
+
uniq: [
|
|
338
|
+
{ command: "uniq", category: "text", positionals: 1 },
|
|
339
|
+
{ command: "uniq", contexts: ["local"], pipeOnly: true, noFilePaths: true },
|
|
340
|
+
],
|
|
233
341
|
// ── Subcommand whitelist (position: 0) ──
|
|
234
342
|
systemctl: {
|
|
235
343
|
command: "systemctl", category: "service",
|
|
@@ -315,8 +423,14 @@ for (const bin of [
|
|
|
315
423
|
COMMAND_RULES[bin] = { command: bin, category: "perftest", allowedFlags: PERFTEST_FLAGS };
|
|
316
424
|
}
|
|
317
425
|
// ── Generic rule engine ──────────────────────────────────────────
|
|
318
|
-
function validateByRule(args, rule) {
|
|
426
|
+
function validateByRule(args, rule, options) {
|
|
319
427
|
const cmd = rule.command;
|
|
428
|
+
// 0. pipeOnly: must appear after a pipe |
|
|
429
|
+
if (rule.pipeOnly && options?.piped !== undefined && !options.piped) {
|
|
430
|
+
return JSON.stringify({
|
|
431
|
+
error: `"${cmd}" can only be used after a pipe (|). Direct file reading is not allowed — use the dedicated file tools instead.`,
|
|
432
|
+
}, null, 2);
|
|
433
|
+
}
|
|
320
434
|
// 1. requiredFlags: at least one must be present
|
|
321
435
|
if (rule.requiredFlags?.length) {
|
|
322
436
|
if (!rule.requiredFlags.some((f) => args.includes(f))) {
|
|
@@ -361,9 +475,40 @@ function validateByRule(args, rule) {
|
|
|
361
475
|
error: `${cmd} does not allow more than ${positionalPolicy} positional argument(s).`,
|
|
362
476
|
}, null, 2);
|
|
363
477
|
}
|
|
478
|
+
// noFilePaths: block positional args that look like file/directory paths
|
|
479
|
+
if (rule.noFilePaths && arg !== "") {
|
|
480
|
+
if (arg.startsWith("/") ||
|
|
481
|
+
arg.startsWith("./") ||
|
|
482
|
+
arg.startsWith("../") ||
|
|
483
|
+
arg.startsWith("~")) {
|
|
484
|
+
return JSON.stringify({
|
|
485
|
+
error: `${cmd} cannot take file path arguments — it should only process piped input. Use the dedicated file tools instead.`,
|
|
486
|
+
}, null, 2);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
364
489
|
continue;
|
|
365
490
|
}
|
|
366
|
-
//
|
|
491
|
+
// blockedFlags: explicitly forbidden flags (checked before allowedFlags)
|
|
492
|
+
if (rule.blockedFlags) {
|
|
493
|
+
if (arg.startsWith("--")) {
|
|
494
|
+
if (rule.blockedFlags.includes(extractFlag(arg))) {
|
|
495
|
+
return JSON.stringify({
|
|
496
|
+
error: `${cmd} "${extractFlag(arg)}" is not allowed.`,
|
|
497
|
+
}, null, 2);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else if (arg.length > 1) {
|
|
501
|
+
// Combined short flags: -rl → check each char against blocked list
|
|
502
|
+
for (const ch of arg.slice(1)) {
|
|
503
|
+
if (rule.blockedFlags.includes(`-${ch}`)) {
|
|
504
|
+
return JSON.stringify({
|
|
505
|
+
error: `${cmd} "-${ch}" is not allowed.`,
|
|
506
|
+
}, null, 2);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
// allowedFlags check — skip if no allowedFlags defined
|
|
367
512
|
if (!rule.allowedFlags)
|
|
368
513
|
continue;
|
|
369
514
|
const flag = extractFlag(arg);
|
|
@@ -495,14 +640,26 @@ function checkCurlDataValue(flag, value) {
|
|
|
495
640
|
function validateCurl(args) {
|
|
496
641
|
for (let i = 1; i < args.length; i++) {
|
|
497
642
|
const arg = args[i];
|
|
498
|
-
if (!arg.startsWith("-"))
|
|
643
|
+
if (!arg.startsWith("-")) {
|
|
644
|
+
// Positional argument — must be a URL. Only allow http(s)://.
|
|
645
|
+
// Block file://, ftp://, dict://, gopher://, etc.
|
|
646
|
+
const lower = arg.toLowerCase();
|
|
647
|
+
if (lower.includes("://") && !lower.startsWith("http://") && !lower.startsWith("https://")) {
|
|
648
|
+
return JSON.stringify({
|
|
649
|
+
error: `curl "${arg}" uses a blocked protocol. Only http:// and https:// URLs are allowed.`,
|
|
650
|
+
}, null, 2);
|
|
651
|
+
}
|
|
499
652
|
continue;
|
|
653
|
+
}
|
|
500
654
|
// ── Long flags (--xxx) ──────────────────────────────────
|
|
501
655
|
if (arg.startsWith("--")) {
|
|
502
656
|
const flag = extractFlag(arg);
|
|
503
657
|
const hasValue = arg.includes("=");
|
|
504
658
|
const inlineValue = hasValue ? arg.slice(flag.length + 1) : undefined;
|
|
505
659
|
if (CURL_REQUEST_FLAGS.has(flag)) {
|
|
660
|
+
if (!hasValue && i + 1 >= args.length) {
|
|
661
|
+
return JSON.stringify({ error: `curl "${flag}" requires a value` }, null, 2);
|
|
662
|
+
}
|
|
506
663
|
const method = hasValue ? inlineValue : args[i + 1];
|
|
507
664
|
const err = checkCurlMethod(method);
|
|
508
665
|
if (err)
|
|
@@ -512,6 +669,9 @@ function validateCurl(args) {
|
|
|
512
669
|
continue;
|
|
513
670
|
}
|
|
514
671
|
if (CURL_DATA_FLAGS.has(flag)) {
|
|
672
|
+
if (!hasValue && i + 1 >= args.length) {
|
|
673
|
+
return JSON.stringify({ error: `curl "${flag}" requires a value` }, null, 2);
|
|
674
|
+
}
|
|
515
675
|
const value = hasValue ? inlineValue : args[i + 1];
|
|
516
676
|
const err = checkCurlDataValue(flag, value);
|
|
517
677
|
if (err)
|
|
@@ -827,19 +987,34 @@ const CUSTOM_VALIDATORS = {
|
|
|
827
987
|
/**
|
|
828
988
|
* Apply extra security restrictions to whitelisted commands.
|
|
829
989
|
* Takes a raw command string, parses it internally.
|
|
990
|
+
* Optionally accepts context (for context-specific rules) and piped
|
|
991
|
+
* (for pipe-only enforcement).
|
|
830
992
|
* Returns an error message string if blocked, or null if allowed.
|
|
831
993
|
*/
|
|
832
|
-
export function validateCommandRestrictions(cmd) {
|
|
994
|
+
export function validateCommandRestrictions(cmd, options) {
|
|
833
995
|
const args = parseArgs(cmd);
|
|
834
996
|
if (args.length === 0)
|
|
835
997
|
return null;
|
|
836
998
|
const baseName = args[0].split("/").pop()?.toLowerCase() ?? "";
|
|
837
|
-
const
|
|
838
|
-
if (!
|
|
999
|
+
const entry = COMMAND_RULES[baseName];
|
|
1000
|
+
if (!entry)
|
|
839
1001
|
return null;
|
|
840
|
-
|
|
841
|
-
|
|
1002
|
+
const rules = Array.isArray(entry) ? entry : [entry];
|
|
1003
|
+
for (const rule of rules) {
|
|
1004
|
+
// Skip rules that don't apply to the current context
|
|
1005
|
+
if (rule.contexts && (!options?.context || !rule.contexts.includes(options.context))) {
|
|
1006
|
+
continue;
|
|
1007
|
+
}
|
|
1008
|
+
if (rule.customValidator) {
|
|
1009
|
+
const err = CUSTOM_VALIDATORS[rule.customValidator]?.(args, baseName) ?? null;
|
|
1010
|
+
if (err)
|
|
1011
|
+
return err;
|
|
1012
|
+
continue;
|
|
1013
|
+
}
|
|
1014
|
+
const err = validateByRule(args, rule, { piped: options?.piped });
|
|
1015
|
+
if (err)
|
|
1016
|
+
return err;
|
|
842
1017
|
}
|
|
843
|
-
return
|
|
1018
|
+
return null;
|
|
844
1019
|
}
|
|
845
1020
|
//# sourceMappingURL=command-sets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-sets.js","sourceRoot":"","sources":["../../src/tools/command-sets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-sets.js","sourceRoot":"","sources":["../../src/tools/command-sets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type ExecContext = "local" | "node" | "pod" | "nsenter" | "ssh";
|
|
2
|
+
export interface ValidateCommandOptions {
|
|
3
|
+
/** Determines the base whitelist. Default: "node". */
|
|
4
|
+
context?: ExecContext;
|
|
5
|
+
/** Extra binaries allowed beyond the context whitelist (e.g. "kubectl"). */
|
|
6
|
+
extraAllowed?: Set<string>;
|
|
7
|
+
/** Custom predicate for commands not in any whitelist (e.g. skill scripts). */
|
|
8
|
+
isAllowed?: (cmd: string) => boolean;
|
|
9
|
+
/** Validators run against the full pipeline (e.g. kubectl subcommand check). */
|
|
10
|
+
pipelineValidators?: Array<(cmds: string[]) => string | null>;
|
|
11
|
+
/** Patterns that block commands touching sensitive paths. */
|
|
12
|
+
sensitivePathPatterns?: RegExp[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Extract individual commands from a shell pipeline.
|
|
16
|
+
* Splits on |, &&, ;, || while respecting quotes and subshells.
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractCommands(input: string): string[];
|
|
19
|
+
export interface PipelineSegment {
|
|
20
|
+
command: string;
|
|
21
|
+
/** true if this command was preceded by a pipe operator | (not ||) */
|
|
22
|
+
piped: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Extract individual commands from a shell pipeline, tracking whether each
|
|
26
|
+
* command follows a pipe (|) operator vs other separators (&&, ||, ;, &).
|
|
27
|
+
* Used by validateCommand to pass pipe position to COMMAND_RULES (pipeOnly).
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractPipeline(input: string): PipelineSegment[];
|
|
30
|
+
/**
|
|
31
|
+
* Validate that a command does not use dangerous shell operators.
|
|
32
|
+
* Scans character-by-character respecting quotes.
|
|
33
|
+
* Blocks: > >> (output redirection, except >&N fd duplication and >/dev/null),
|
|
34
|
+
* $() and backticks (command substitution), <() >() (process substitution).
|
|
35
|
+
* Returns an error message if blocked, or null if safe.
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateShellOperators(command: string): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* Get the set of commands allowed for a given execution context.
|
|
40
|
+
* Results are cached for performance.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getContextCommands(context: ExecContext): ReadonlySet<string>;
|
|
43
|
+
/**
|
|
44
|
+
* Validate a command string against context-based whitelist and restrictions.
|
|
45
|
+
* Pipeline:
|
|
46
|
+
* 1. validateShellOperators()
|
|
47
|
+
* 2. extractPipeline() (with pipe position tracking)
|
|
48
|
+
* 3. Per-command: context whitelist + extraAllowed + isAllowed
|
|
49
|
+
* 4. pipelineValidators (e.g. validateKubectlInPipeline)
|
|
50
|
+
* 5. validateCommandRestrictions() — includes pipeOnly, noFilePaths,
|
|
51
|
+
* blockedFlags via COMMAND_RULES (context + pipe-position-aware)
|
|
52
|
+
* 6. sensitivePathPatterns check
|
|
53
|
+
*
|
|
54
|
+
* Returns an error message string if blocked, or null if allowed.
|
|
55
|
+
*/
|
|
56
|
+
export declare function validateCommand(command: string, options?: ValidateCommandOptions): string | null;
|