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.
Files changed (267) hide show
  1. package/README.md +74 -114
  2. package/dist/agentbox/gateway-client.d.ts +2 -1
  3. package/dist/agentbox/gateway-client.js +6 -2
  4. package/dist/agentbox/gateway-client.js.map +1 -1
  5. package/dist/agentbox/http-server.js +184 -19
  6. package/dist/agentbox/http-server.js.map +1 -1
  7. package/dist/agentbox/resource-handlers.d.ts +1 -0
  8. package/dist/agentbox/resource-handlers.js +23 -23
  9. package/dist/agentbox/resource-handlers.js.map +1 -1
  10. package/dist/agentbox/session.js +85 -5
  11. package/dist/agentbox/session.js.map +1 -1
  12. package/dist/agentbox-main.d.ts +2 -1
  13. package/dist/agentbox-main.js +65 -18
  14. package/dist/agentbox-main.js.map +1 -1
  15. package/dist/cli-credentials.d.ts +1 -0
  16. package/dist/cli-credentials.js +109 -0
  17. package/dist/cli-credentials.js.map +1 -0
  18. package/dist/cli-first-run.d.ts +11 -0
  19. package/dist/cli-first-run.js +99 -0
  20. package/dist/cli-first-run.js.map +1 -0
  21. package/dist/cli-main.js +33 -11
  22. package/dist/cli-main.js.map +1 -1
  23. package/dist/cli-setup.d.ts +5 -11
  24. package/dist/cli-setup.js +12 -225
  25. package/dist/cli-setup.js.map +1 -1
  26. package/dist/core/agent-factory.d.ts +4 -0
  27. package/dist/core/agent-factory.js +102 -151
  28. package/dist/core/agent-factory.js.map +1 -1
  29. package/dist/core/config.d.ts +10 -3
  30. package/dist/core/config.js +11 -95
  31. package/dist/core/config.js.map +1 -1
  32. package/dist/core/extensions/deep-investigation.d.ts +2 -1
  33. package/dist/core/extensions/deep-investigation.js +144 -24
  34. package/dist/core/extensions/deep-investigation.js.map +1 -1
  35. package/dist/core/extensions/setup.d.ts +8 -0
  36. package/dist/core/extensions/setup.js +669 -0
  37. package/dist/core/extensions/setup.js.map +1 -0
  38. package/dist/core/llm-proxy.js +7 -3
  39. package/dist/core/llm-proxy.js.map +1 -1
  40. package/dist/core/mcp-client.d.ts +0 -10
  41. package/dist/core/mcp-client.js +0 -65
  42. package/dist/core/mcp-client.js.map +1 -1
  43. package/dist/core/prompt.d.ts +1 -1
  44. package/dist/core/prompt.js +42 -5
  45. package/dist/core/prompt.js.map +1 -1
  46. package/dist/core/provider-presets.d.ts +14 -0
  47. package/dist/core/provider-presets.js +81 -0
  48. package/dist/core/provider-presets.js.map +1 -0
  49. package/dist/cron/cron-coordinator.d.ts +2 -0
  50. package/dist/cron/cron-coordinator.js +46 -14
  51. package/dist/cron/cron-coordinator.js.map +1 -1
  52. package/dist/cron/cron-executor.js +33 -8
  53. package/dist/cron/cron-executor.js.map +1 -1
  54. package/dist/cron/cron-scheduler.d.ts +1 -1
  55. package/dist/cron/gateway-client.d.ts +5 -0
  56. package/dist/cron/gateway-client.js +43 -8
  57. package/dist/cron/gateway-client.js.map +1 -1
  58. package/dist/cron-main.js +39 -9
  59. package/dist/cron-main.js.map +1 -1
  60. package/dist/gateway/agentbox/client.d.ts +11 -0
  61. package/dist/gateway/agentbox/client.js +18 -0
  62. package/dist/gateway/agentbox/client.js.map +1 -1
  63. package/dist/gateway/agentbox/k8s-spawner.d.ts +11 -2
  64. package/dist/gateway/agentbox/k8s-spawner.js +95 -52
  65. package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
  66. package/dist/gateway/agentbox/local-spawner.d.ts +1 -1
  67. package/dist/gateway/agentbox/local-spawner.js +4 -2
  68. package/dist/gateway/agentbox/local-spawner.js.map +1 -1
  69. package/dist/gateway/agentbox/manager.d.ts +0 -10
  70. package/dist/gateway/agentbox/manager.js +11 -30
  71. package/dist/gateway/agentbox/manager.js.map +1 -1
  72. package/dist/gateway/agentbox/types.d.ts +6 -4
  73. package/dist/gateway/cron/cron-service.d.ts +49 -0
  74. package/dist/gateway/cron/cron-service.js +259 -0
  75. package/dist/gateway/cron/cron-service.js.map +1 -0
  76. package/dist/gateway/db/init-schema.js +44 -0
  77. package/dist/gateway/db/init-schema.js.map +1 -1
  78. package/dist/gateway/db/migrate-sqlite.js +73 -4
  79. package/dist/gateway/db/migrate-sqlite.js.map +1 -1
  80. package/dist/gateway/db/repositories/chat-repo.d.ts +56 -2
  81. package/dist/gateway/db/repositories/chat-repo.js +132 -2
  82. package/dist/gateway/db/repositories/chat-repo.js.map +1 -1
  83. package/dist/gateway/db/repositories/config-repo.d.ts +31 -2
  84. package/dist/gateway/db/repositories/config-repo.js +57 -7
  85. package/dist/gateway/db/repositories/config-repo.js.map +1 -1
  86. package/dist/gateway/db/repositories/env-repo.d.ts +14 -0
  87. package/dist/gateway/db/repositories/env-repo.js +15 -2
  88. package/dist/gateway/db/repositories/env-repo.js.map +1 -1
  89. package/dist/gateway/db/repositories/model-config-repo.js +6 -5
  90. package/dist/gateway/db/repositories/model-config-repo.js.map +1 -1
  91. package/dist/gateway/db/repositories/skill-repo.d.ts +0 -5
  92. package/dist/gateway/db/repositories/skill-review-repo.d.ts +1 -0
  93. package/dist/gateway/db/repositories/skill-review-repo.js +4 -1
  94. package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -1
  95. package/dist/gateway/db/repositories/skill-version-repo.js +0 -1
  96. package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -1
  97. package/dist/gateway/db/repositories/system-config-repo.d.ts +1 -1
  98. package/dist/gateway/db/repositories/system-config-repo.js +2 -1
  99. package/dist/gateway/db/repositories/system-config-repo.js.map +1 -1
  100. package/dist/gateway/db/repositories/user-env-config-repo.d.ts +13 -0
  101. package/dist/gateway/db/repositories/user-env-config-repo.js +11 -0
  102. package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -1
  103. package/dist/gateway/db/repositories/workspace-repo.d.ts +3 -2
  104. package/dist/gateway/db/repositories/workspace-repo.js +6 -2
  105. package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
  106. package/dist/gateway/db/schema-mysql.d.ts +473 -51
  107. package/dist/gateway/db/schema-mysql.js +35 -4
  108. package/dist/gateway/db/schema-mysql.js.map +1 -1
  109. package/dist/gateway/db/schema-sqlite.d.ts +522 -57
  110. package/dist/gateway/db/schema-sqlite.js +38 -6
  111. package/dist/gateway/db/schema-sqlite.js.map +1 -1
  112. package/dist/gateway/db/schema.d.ts +471 -51
  113. package/dist/gateway/db/schema.js +1 -1
  114. package/dist/gateway/db/schema.js.map +1 -1
  115. package/dist/gateway/metrics-aggregator.d.ts +65 -0
  116. package/dist/gateway/metrics-aggregator.js +244 -0
  117. package/dist/gateway/metrics-aggregator.js.map +1 -0
  118. package/dist/gateway/plugins/channel-bridge.d.ts +4 -1
  119. package/dist/gateway/plugins/channel-bridge.js +78 -86
  120. package/dist/gateway/plugins/channel-bridge.js.map +1 -1
  121. package/dist/gateway/rpc-methods.d.ts +4 -2
  122. package/dist/gateway/rpc-methods.js +852 -166
  123. package/dist/gateway/rpc-methods.js.map +1 -1
  124. package/dist/gateway/security/cert-manager.d.ts +2 -2
  125. package/dist/gateway/security/cert-manager.js +4 -2
  126. package/dist/gateway/security/cert-manager.js.map +1 -1
  127. package/dist/gateway/server.d.ts +4 -8
  128. package/dist/gateway/server.js +297 -261
  129. package/dist/gateway/server.js.map +1 -1
  130. package/dist/gateway/skills/file-writer.js +17 -11
  131. package/dist/gateway/skills/file-writer.js.map +1 -1
  132. package/dist/gateway/skills/script-evaluator.js +12 -9
  133. package/dist/gateway/skills/script-evaluator.js.map +1 -1
  134. package/dist/gateway/web/dist/assets/index-0p17ZeTP.js +740 -0
  135. package/dist/gateway/web/dist/assets/index-9eP6nPUq.js +741 -0
  136. package/dist/gateway/web/dist/assets/index-9eP6nPUq.js.map +1 -0
  137. package/dist/gateway/web/dist/assets/index-DyowBCEj.css +1 -0
  138. package/dist/gateway/web/dist/assets/index-PDK5JJDO.css +1 -0
  139. package/dist/gateway/web/dist/index.html +2 -2
  140. package/dist/gateway-main.js +27 -10
  141. package/dist/gateway-main.js.map +1 -1
  142. package/dist/memory/embeddings.js +5 -4
  143. package/dist/memory/embeddings.js.map +1 -1
  144. package/dist/memory/indexer.d.ts +23 -3
  145. package/dist/memory/indexer.js +235 -23
  146. package/dist/memory/indexer.js.map +1 -1
  147. package/dist/memory/schema.js +15 -1
  148. package/dist/memory/schema.js.map +1 -1
  149. package/dist/memory/types.d.ts +18 -0
  150. package/dist/memory/types.js +6 -1
  151. package/dist/memory/types.js.map +1 -1
  152. package/dist/shared/detect-language.d.ts +12 -0
  153. package/dist/shared/detect-language.js +78 -0
  154. package/dist/shared/detect-language.js.map +1 -0
  155. package/dist/shared/diagnostic-events.d.ts +70 -0
  156. package/dist/shared/diagnostic-events.js +38 -0
  157. package/dist/shared/diagnostic-events.js.map +1 -0
  158. package/dist/shared/local-collector.d.ts +56 -0
  159. package/dist/shared/local-collector.js +284 -0
  160. package/dist/shared/local-collector.js.map +1 -0
  161. package/dist/shared/metrics-types.d.ts +64 -0
  162. package/dist/shared/metrics-types.js +25 -0
  163. package/dist/shared/metrics-types.js.map +1 -0
  164. package/dist/shared/metrics.d.ts +19 -0
  165. package/dist/shared/metrics.js +185 -0
  166. package/dist/shared/metrics.js.map +1 -0
  167. package/dist/shared/path-utils.d.ts +15 -0
  168. package/dist/shared/path-utils.js +23 -0
  169. package/dist/shared/path-utils.js.map +1 -0
  170. package/dist/shared/retry.d.ts +35 -0
  171. package/dist/shared/retry.js +61 -0
  172. package/dist/shared/retry.js.map +1 -0
  173. package/dist/tools/command-sets.d.ts +18 -2
  174. package/dist/tools/command-sets.js +207 -32
  175. package/dist/tools/command-sets.js.map +1 -1
  176. package/dist/tools/command-validator.d.ts +56 -0
  177. package/dist/tools/command-validator.js +357 -0
  178. package/dist/tools/command-validator.js.map +1 -0
  179. package/dist/tools/create-skill.js +26 -1
  180. package/dist/tools/create-skill.js.map +1 -1
  181. package/dist/tools/credential-list.js +1 -23
  182. package/dist/tools/credential-list.js.map +1 -1
  183. package/dist/tools/credential-manager.d.ts +98 -0
  184. package/dist/tools/credential-manager.js +313 -0
  185. package/dist/tools/credential-manager.js.map +1 -0
  186. package/dist/tools/deep-search/engine.js +184 -127
  187. package/dist/tools/deep-search/engine.js.map +1 -1
  188. package/dist/tools/deep-search/prompts.d.ts +10 -2
  189. package/dist/tools/deep-search/prompts.js +37 -36
  190. package/dist/tools/deep-search/prompts.js.map +1 -1
  191. package/dist/tools/deep-search/schemas.d.ts +87 -0
  192. package/dist/tools/deep-search/schemas.js +85 -0
  193. package/dist/tools/deep-search/schemas.js.map +1 -0
  194. package/dist/tools/deep-search/sub-agent.d.ts +21 -0
  195. package/dist/tools/deep-search/sub-agent.js +153 -4
  196. package/dist/tools/deep-search/sub-agent.js.map +1 -1
  197. package/dist/tools/deep-search/tool.js +1 -0
  198. package/dist/tools/deep-search/tool.js.map +1 -1
  199. package/dist/tools/deep-search/types.d.ts +2 -0
  200. package/dist/tools/deep-search/types.js.map +1 -1
  201. package/dist/tools/dp-tools.js +29 -5
  202. package/dist/tools/dp-tools.js.map +1 -1
  203. package/dist/tools/exec-utils.d.ts +85 -0
  204. package/dist/tools/exec-utils.js +294 -0
  205. package/dist/tools/exec-utils.js.map +1 -0
  206. package/dist/tools/fork-skill.js +14 -2
  207. package/dist/tools/fork-skill.js.map +1 -1
  208. package/dist/tools/investigation-feedback.d.ts +3 -0
  209. package/dist/tools/investigation-feedback.js +71 -0
  210. package/dist/tools/investigation-feedback.js.map +1 -0
  211. package/dist/tools/manage-schedule.js +16 -6
  212. package/dist/tools/manage-schedule.js.map +1 -1
  213. package/dist/tools/netns-script.js +27 -281
  214. package/dist/tools/netns-script.js.map +1 -1
  215. package/dist/tools/node-exec.d.ts +2 -14
  216. package/dist/tools/node-exec.js +18 -225
  217. package/dist/tools/node-exec.js.map +1 -1
  218. package/dist/tools/node-script.js +14 -168
  219. package/dist/tools/node-script.js.map +1 -1
  220. package/dist/tools/pod-exec.d.ts +1 -1
  221. package/dist/tools/pod-exec.js +10 -26
  222. package/dist/tools/pod-exec.js.map +1 -1
  223. package/dist/tools/pod-nsenter-exec.js +21 -225
  224. package/dist/tools/pod-nsenter-exec.js.map +1 -1
  225. package/dist/tools/pod-script.js +10 -19
  226. package/dist/tools/pod-script.js.map +1 -1
  227. package/dist/tools/restricted-bash.d.ts +1 -17
  228. package/dist/tools/restricted-bash.js +38 -252
  229. package/dist/tools/restricted-bash.js.map +1 -1
  230. package/dist/tools/run-skill.d.ts +3 -1
  231. package/dist/tools/run-skill.js +21 -1
  232. package/dist/tools/run-skill.js.map +1 -1
  233. package/dist/tools/script-resolver.d.ts +3 -1
  234. package/dist/tools/script-resolver.js +74 -30
  235. package/dist/tools/script-resolver.js.map +1 -1
  236. package/dist/tools/update-skill.js +17 -6
  237. package/dist/tools/update-skill.js.map +1 -1
  238. package/package.json +4 -2
  239. package/siclaw.mjs +10 -1
  240. package/skills/core/cluster-events/SKILL.md +1 -1
  241. package/skills/core/deep-investigation/SKILL.md +11 -0
  242. package/skills/core/deployment-rollout-debug/SKILL.md +1 -1
  243. package/skills/core/dns-debug/SKILL.md +1 -0
  244. package/skills/core/meta.json +12 -1
  245. package/skills/core/networkpolicy-debug/SKILL.md +332 -0
  246. package/skills/core/node-logs/scripts/get-node-logs.sh +19 -9
  247. package/skills/core/pod-pending-debug/SKILL.md +1 -0
  248. package/skills/core/quota-debug/SKILL.md +203 -0
  249. package/skills/core/service-debug/SKILL.md +1 -0
  250. package/skills/core/statefulset-debug/SKILL.md +280 -0
  251. package/skills/core/volcano-diagnose-pod/SKILL.md +196 -0
  252. package/skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh +175 -0
  253. package/skills/core/volcano-gang-scheduling/SKILL.md +299 -0
  254. package/skills/core/volcano-job-diagnose/SKILL.md +319 -0
  255. package/skills/core/volcano-job-diagnose/scripts/diagnose-job.sh +253 -0
  256. package/skills/core/volcano-node-resources/SKILL.md +334 -0
  257. package/skills/core/volcano-node-resources/scripts/get-node-resources.sh +281 -0
  258. package/skills/core/volcano-queue-diagnose/SKILL.md +294 -0
  259. package/skills/core/volcano-queue-diagnose/scripts/diagnose-queue.sh +283 -0
  260. package/skills/core/volcano-resource-insufficient/SKILL.md +315 -0
  261. package/skills/core/volcano-scheduler-config/SKILL.md +371 -0
  262. package/skills/core/volcano-scheduler-config/scripts/get-scheduler-config.sh +297 -0
  263. package/skills/core/volcano-scheduler-logs/SKILL.md +241 -0
  264. package/skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh +159 -0
  265. package/skills/platform/create-skill/SKILL.md +35 -3
  266. package/skills/platform/manage-skill/SKILL.md +9 -2
  267. 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
- command: "sort", category: "text",
143
- allowedFlags: [
144
- "-r", "-n", "-k", "-t", "-u", "-f", "-h", "-V", "-s", "-b", "-g", "-M", "-d", "-i",
145
- "--reverse", "--numeric-sort", "--key", "--field-separator", "--unique",
146
- "--human-numeric-sort", "--version-sort", "--stable", "--ignore-leading-blanks",
147
- "--general-numeric-sort", "--month-sort", "--dictionary-order", "--ignore-case",
148
- ],
149
- },
150
- yq: {
151
- command: "yq", category: "text",
152
- allowedFlags: [
153
- "-r", "--raw-output", "-e", "--exit-status", "-o", "--output-format",
154
- "-P", "--prettyprint", "-C", "--colors", "-M", "--no-colors",
155
- "-N", "--no-doc", "-j", "--tojson", "-p", "--input-format",
156
- "--xml-attribute-prefix", "--xml-content-name",
157
- "-s", "--split-exp", "--unwrapScalar", "--nul-output", "--header-preprocess",
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
- positionals: 1,
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
- // flag check skip if no allowedFlags defined
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 rule = COMMAND_RULES[baseName];
838
- if (!rule)
999
+ const entry = COMMAND_RULES[baseName];
1000
+ if (!entry)
839
1001
  return null;
840
- if (rule.customValidator) {
841
- return CUSTOM_VALIDATORS[rule.customValidator]?.(args, baseName) ?? null;
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 validateByRule(args, rule);
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;