@phuetz/code-buddy 0.1.18 → 0.1.20

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 (355) hide show
  1. package/dist/agent/background-tasks.d.ts +49 -0
  2. package/dist/agent/background-tasks.js +153 -0
  3. package/dist/agent/background-tasks.js.map +1 -0
  4. package/dist/agent/definitions/agent-definition-loader.d.ts +21 -0
  5. package/dist/agent/definitions/agent-definition-loader.js +161 -0
  6. package/dist/agent/definitions/agent-definition-loader.js.map +1 -0
  7. package/dist/agent/definitions/index.d.ts +1 -0
  8. package/dist/agent/definitions/index.js +2 -0
  9. package/dist/agent/definitions/index.js.map +1 -0
  10. package/dist/agent/extended-thinking.d.ts +64 -0
  11. package/dist/agent/extended-thinking.js +103 -0
  12. package/dist/agent/extended-thinking.js.map +1 -0
  13. package/dist/agent/prompt-suggestions.d.ts +55 -0
  14. package/dist/agent/prompt-suggestions.js +125 -0
  15. package/dist/agent/prompt-suggestions.js.map +1 -0
  16. package/dist/agent/rewind-manager.d.ts +59 -0
  17. package/dist/agent/rewind-manager.js +124 -0
  18. package/dist/agent/rewind-manager.js.map +1 -0
  19. package/dist/agent/teams/agent-team.d.ts +54 -0
  20. package/dist/agent/teams/agent-team.js +114 -0
  21. package/dist/agent/teams/agent-team.js.map +1 -0
  22. package/dist/agent/teams/index.d.ts +1 -0
  23. package/dist/agent/teams/index.js +2 -0
  24. package/dist/agent/teams/index.js.map +1 -0
  25. package/dist/agent/teams/team-v2.d.ts +166 -0
  26. package/dist/agent/teams/team-v2.js +376 -0
  27. package/dist/agent/teams/team-v2.js.map +1 -0
  28. package/dist/analytics/dashboard.js +1 -1
  29. package/dist/analytics/dashboard.js.map +1 -1
  30. package/dist/channels/imessage/index.d.ts +40 -0
  31. package/dist/channels/imessage/index.js +69 -0
  32. package/dist/channels/imessage/index.js.map +1 -0
  33. package/dist/channels/line/index.d.ts +36 -0
  34. package/dist/channels/line/index.js +71 -0
  35. package/dist/channels/line/index.js.map +1 -0
  36. package/dist/channels/mattermost/index.d.ts +34 -0
  37. package/dist/channels/mattermost/index.js +56 -0
  38. package/dist/channels/mattermost/index.js.map +1 -0
  39. package/dist/channels/nextcloud-talk/index.d.ts +37 -0
  40. package/dist/channels/nextcloud-talk/index.js +67 -0
  41. package/dist/channels/nextcloud-talk/index.js.map +1 -0
  42. package/dist/channels/niche-channels.d.ts +61 -0
  43. package/dist/channels/niche-channels.js +131 -0
  44. package/dist/channels/niche-channels.js.map +1 -0
  45. package/dist/channels/nostr/index.d.ts +30 -0
  46. package/dist/channels/nostr/index.js +68 -0
  47. package/dist/channels/nostr/index.js.map +1 -0
  48. package/dist/channels/twilio-voice/index.d.ts +37 -0
  49. package/dist/channels/twilio-voice/index.js +76 -0
  50. package/dist/channels/twilio-voice/index.js.map +1 -0
  51. package/dist/channels/whatsapp/index.js +0 -1
  52. package/dist/channels/whatsapp/index.js.map +1 -1
  53. package/dist/channels/zalo/index.d.ts +28 -0
  54. package/dist/channels/zalo/index.js +53 -0
  55. package/dist/channels/zalo/index.js.map +1 -0
  56. package/dist/cloud/cloud-sessions.d.ts +56 -0
  57. package/dist/cloud/cloud-sessions.js +187 -0
  58. package/dist/cloud/cloud-sessions.js.map +1 -0
  59. package/dist/codebuddy/tool-definitions/advanced-tools.d.ts +1 -0
  60. package/dist/codebuddy/tool-definitions/advanced-tools.js +24 -0
  61. package/dist/codebuddy/tool-definitions/advanced-tools.js.map +1 -1
  62. package/dist/codebuddy/tool-definitions/index.d.ts +1 -1
  63. package/dist/codebuddy/tool-definitions/index.js +1 -1
  64. package/dist/codebuddy/tool-definitions/index.js.map +1 -1
  65. package/dist/commands/delegate.js +2 -2
  66. package/dist/commands/delegate.js.map +1 -1
  67. package/dist/commands/features.d.ts +1 -1
  68. package/dist/commands/features.js +1 -1
  69. package/dist/commands/handlers/auth-handler.d.ts +32 -0
  70. package/dist/commands/handlers/auth-handler.js +137 -0
  71. package/dist/commands/handlers/auth-handler.js.map +1 -0
  72. package/dist/commands/handlers/context-handler.d.ts +46 -0
  73. package/dist/commands/handlers/context-handler.js +102 -0
  74. package/dist/commands/handlers/context-handler.js.map +1 -0
  75. package/dist/commands/handlers/core-handlers.js +1 -1
  76. package/dist/commands/handlers/core-handlers.js.map +1 -1
  77. package/dist/commands/handlers/keybindings-handler.d.ts +30 -0
  78. package/dist/commands/handlers/keybindings-handler.js +124 -0
  79. package/dist/commands/handlers/keybindings-handler.js.map +1 -0
  80. package/dist/commands/handlers/missing-handlers.js +15 -14
  81. package/dist/commands/handlers/missing-handlers.js.map +1 -1
  82. package/dist/commands/handlers/session-commands.d.ts +17 -0
  83. package/dist/commands/handlers/session-commands.js +119 -0
  84. package/dist/commands/handlers/session-commands.js.map +1 -0
  85. package/dist/commands/handlers/worktree-handlers.d.ts +1 -1
  86. package/dist/commands/handlers/worktree-handlers.js +2 -2
  87. package/dist/commands/slash/builtin-commands.js +2 -2
  88. package/dist/commands/slash/builtin-commands.js.map +1 -1
  89. package/dist/config/admin-config.d.ts +54 -0
  90. package/dist/config/admin-config.js +144 -0
  91. package/dist/config/admin-config.js.map +1 -0
  92. package/dist/config/advanced-config.d.ts +118 -0
  93. package/dist/config/advanced-config.js +364 -0
  94. package/dist/config/advanced-config.js.map +1 -0
  95. package/dist/config/constants.d.ts +2 -2
  96. package/dist/config/constants.js +2 -2
  97. package/dist/config/constants.js.map +1 -1
  98. package/dist/config/managed-policies.d.ts +50 -0
  99. package/dist/config/managed-policies.js +120 -0
  100. package/dist/config/managed-policies.js.map +1 -0
  101. package/dist/config/settings-hierarchy.d.ts +59 -0
  102. package/dist/config/settings-hierarchy.js +188 -0
  103. package/dist/config/settings-hierarchy.js.map +1 -0
  104. package/dist/config/toml-config.js +1 -1
  105. package/dist/config/toml-config.js.map +1 -1
  106. package/dist/config/tool-profiles.d.ts +37 -0
  107. package/dist/config/tool-profiles.js +150 -0
  108. package/dist/config/tool-profiles.js.map +1 -0
  109. package/dist/config/user-settings.d.ts +31 -0
  110. package/dist/config/user-settings.js +66 -0
  111. package/dist/config/user-settings.js.map +1 -0
  112. package/dist/context/context-files.d.ts +1 -1
  113. package/dist/context/context-files.js +3 -3
  114. package/dist/context/context-files.js.map +1 -1
  115. package/dist/context/partial-summarizer.d.ts +32 -0
  116. package/dist/context/partial-summarizer.js +144 -0
  117. package/dist/context/partial-summarizer.js.map +1 -0
  118. package/dist/desktop/desktop-app.d.ts +44 -0
  119. package/dist/desktop/desktop-app.js +136 -0
  120. package/dist/desktop/desktop-app.js.map +1 -0
  121. package/dist/features/index.d.ts +1 -1
  122. package/dist/features/index.js +2 -2
  123. package/dist/features/index.js.map +1 -1
  124. package/dist/git/worktree-sessions.d.ts +24 -0
  125. package/dist/git/worktree-sessions.js +93 -0
  126. package/dist/git/worktree-sessions.js.map +1 -0
  127. package/dist/hooks/advanced-hooks.d.ts +110 -0
  128. package/dist/hooks/advanced-hooks.js +256 -0
  129. package/dist/hooks/advanced-hooks.js.map +1 -0
  130. package/dist/hooks/async-hooks.d.ts +73 -0
  131. package/dist/hooks/async-hooks.js +213 -0
  132. package/dist/hooks/async-hooks.js.map +1 -0
  133. package/dist/hooks/env-persistence.d.ts +58 -0
  134. package/dist/hooks/env-persistence.js +195 -0
  135. package/dist/hooks/env-persistence.js.map +1 -0
  136. package/dist/hooks/hook-events.d.ts +36 -0
  137. package/dist/hooks/hook-events.js +55 -0
  138. package/dist/hooks/hook-events.js.map +1 -0
  139. package/dist/hooks/hook-system.js +1 -1
  140. package/dist/hooks/hook-system.js.map +1 -1
  141. package/dist/hooks/smart-hooks.d.ts +85 -0
  142. package/dist/hooks/smart-hooks.js +199 -0
  143. package/dist/hooks/smart-hooks.js.map +1 -0
  144. package/dist/ide/jetbrains-plugin.d.ts +55 -0
  145. package/dist/ide/jetbrains-plugin.js +156 -0
  146. package/dist/ide/jetbrains-plugin.js.map +1 -0
  147. package/dist/ide/vscode-extension.d.ts +94 -0
  148. package/dist/ide/vscode-extension.js +229 -0
  149. package/dist/ide/vscode-extension.js.map +1 -0
  150. package/dist/index.js +77 -3
  151. package/dist/index.js.map +1 -1
  152. package/dist/input/file-autocomplete.d.ts +42 -0
  153. package/dist/input/file-autocomplete.js +154 -0
  154. package/dist/input/file-autocomplete.js.map +1 -0
  155. package/dist/integrations/chrome-bridge.d.ts +90 -0
  156. package/dist/integrations/chrome-bridge.js +151 -0
  157. package/dist/integrations/chrome-bridge.js.map +1 -0
  158. package/dist/integrations/github-action-runner.d.ts +40 -0
  159. package/dist/integrations/github-action-runner.js +163 -0
  160. package/dist/integrations/github-action-runner.js.map +1 -0
  161. package/dist/integrations/github-actions.js +1 -1
  162. package/dist/integrations/github-actions.js.map +1 -1
  163. package/dist/integrations/gitlab-ci-runner.d.ts +34 -0
  164. package/dist/integrations/gitlab-ci-runner.js +104 -0
  165. package/dist/integrations/gitlab-ci-runner.js.map +1 -0
  166. package/dist/integrations/pr-session-linker.d.ts +44 -0
  167. package/dist/integrations/pr-session-linker.js +103 -0
  168. package/dist/integrations/pr-session-linker.js.map +1 -0
  169. package/dist/integrations/tailscale.d.ts +36 -0
  170. package/dist/integrations/tailscale.js +101 -0
  171. package/dist/integrations/tailscale.js.map +1 -0
  172. package/dist/lsp/lsp-client.d.ts +68 -0
  173. package/dist/lsp/lsp-client.js +182 -0
  174. package/dist/lsp/lsp-client.js.map +1 -0
  175. package/dist/lsp/server.js +3 -3
  176. package/dist/lsp/server.js.map +1 -1
  177. package/dist/mcp/connectors.d.ts +28 -0
  178. package/dist/mcp/connectors.js +148 -0
  179. package/dist/mcp/connectors.js.map +1 -0
  180. package/dist/mcp/index.d.ts +7 -4
  181. package/dist/mcp/index.js +7 -4
  182. package/dist/mcp/index.js.map +1 -1
  183. package/dist/mcp/mcp-auto-discovery.d.ts +49 -0
  184. package/dist/mcp/mcp-auto-discovery.js +104 -0
  185. package/dist/mcp/mcp-auto-discovery.js.map +1 -0
  186. package/dist/mcp/mcp-server.d.ts +70 -0
  187. package/dist/mcp/mcp-server.js +374 -0
  188. package/dist/mcp/mcp-server.js.map +1 -0
  189. package/dist/memory/auto-memory.d.ts +53 -0
  190. package/dist/memory/auto-memory.js +250 -0
  191. package/dist/memory/auto-memory.js.map +1 -0
  192. package/dist/memory/hybrid-search.d.ts +51 -0
  193. package/dist/memory/hybrid-search.js +199 -0
  194. package/dist/memory/hybrid-search.js.map +1 -0
  195. package/dist/memory/memory-flush.d.ts +51 -0
  196. package/dist/memory/memory-flush.js +102 -0
  197. package/dist/memory/memory-flush.js.map +1 -0
  198. package/dist/memory/subagent-memory.d.ts +73 -0
  199. package/dist/memory/subagent-memory.js +172 -0
  200. package/dist/memory/subagent-memory.js.map +1 -0
  201. package/dist/nodes/device-node.d.ts +40 -0
  202. package/dist/nodes/device-node.js +117 -0
  203. package/dist/nodes/device-node.js.map +1 -0
  204. package/dist/observability/dashboard.d.ts +1 -1
  205. package/dist/observability/dashboard.js +2 -2
  206. package/dist/observability/dashboard.js.map +1 -1
  207. package/dist/offline/offline-mode.d.ts +1 -1
  208. package/dist/offline/offline-mode.js +1 -1
  209. package/dist/output/json-schema-output.d.ts +67 -0
  210. package/dist/output/json-schema-output.js +273 -0
  211. package/dist/output/json-schema-output.js.map +1 -0
  212. package/dist/persistence/session-picker.d.ts +22 -0
  213. package/dist/persistence/session-picker.js +47 -0
  214. package/dist/persistence/session-picker.js.map +1 -0
  215. package/dist/persistence/session-store.d.ts +11 -0
  216. package/dist/persistence/session-store.js +17 -0
  217. package/dist/persistence/session-store.js.map +1 -1
  218. package/dist/plugins/git-pinned-marketplace.d.ts +39 -0
  219. package/dist/plugins/git-pinned-marketplace.js +152 -0
  220. package/dist/plugins/git-pinned-marketplace.js.map +1 -0
  221. package/dist/plugins/marketplace.d.ts +1 -1
  222. package/dist/plugins/marketplace.js +1 -1
  223. package/dist/plugins/plugin-manifest.d.ts +116 -0
  224. package/dist/plugins/plugin-manifest.js +283 -0
  225. package/dist/plugins/plugin-manifest.js.map +1 -0
  226. package/dist/prompts/index.d.ts +1 -1
  227. package/dist/prompts/index.js +1 -1
  228. package/dist/providers/local-llm-provider.d.ts +1 -1
  229. package/dist/providers/local-llm-provider.js +1 -1
  230. package/dist/sandbox/os-sandbox.d.ts +49 -1
  231. package/dist/sandbox/os-sandbox.js +347 -6
  232. package/dist/sandbox/os-sandbox.js.map +1 -1
  233. package/dist/scripting/codebuddy-bindings.js +1 -1
  234. package/dist/scripting/codebuddy-bindings.js.map +1 -1
  235. package/dist/sdk/agent-sdk.d.ts +61 -0
  236. package/dist/sdk/agent-sdk.js +90 -0
  237. package/dist/sdk/agent-sdk.js.map +1 -0
  238. package/dist/security/index.d.ts +1 -1
  239. package/dist/security/index.js +1 -1
  240. package/dist/security/permission-modes.d.ts +76 -0
  241. package/dist/security/permission-modes.js +195 -0
  242. package/dist/security/permission-modes.js.map +1 -0
  243. package/dist/security/permission-patterns.d.ts +61 -0
  244. package/dist/security/permission-patterns.js +171 -0
  245. package/dist/security/permission-patterns.js.map +1 -0
  246. package/dist/security/safe-binaries.d.ts +23 -0
  247. package/dist/security/safe-binaries.js +96 -0
  248. package/dist/security/safe-binaries.js.map +1 -0
  249. package/dist/security/sender-policies.d.ts +46 -0
  250. package/dist/security/sender-policies.js +90 -0
  251. package/dist/security/sender-policies.js.map +1 -0
  252. package/dist/server/dashboard.d.ts +53 -0
  253. package/dist/server/dashboard.js +93 -0
  254. package/dist/server/dashboard.js.map +1 -0
  255. package/dist/services/system-prompt-override.d.ts +34 -0
  256. package/dist/services/system-prompt-override.js +64 -0
  257. package/dist/services/system-prompt-override.js.map +1 -0
  258. package/dist/skills/skill-enhancements.d.ts +37 -0
  259. package/dist/skills/skill-enhancements.js +69 -0
  260. package/dist/skills/skill-enhancements.js.map +1 -0
  261. package/dist/telemetry/otel-tracer.d.ts +98 -0
  262. package/dist/telemetry/otel-tracer.js +245 -0
  263. package/dist/telemetry/otel-tracer.js.map +1 -0
  264. package/dist/templates/export/html.template.js +2 -2
  265. package/dist/templates/export/markdown.template.js +1 -1
  266. package/dist/templates/export/markdown.template.js.map +1 -1
  267. package/dist/themes/default-themes.d.ts +1 -1
  268. package/dist/themes/default-themes.js +1 -1
  269. package/dist/themes/index.d.ts +1 -1
  270. package/dist/themes/index.js +1 -1
  271. package/dist/themes/theme-manager.d.ts +1 -1
  272. package/dist/themes/theme-manager.js +1 -1
  273. package/dist/themes/theme.d.ts +1 -1
  274. package/dist/themes/theme.js +1 -1
  275. package/dist/tools/browser-stub.d.ts +61 -0
  276. package/dist/tools/browser-stub.js +184 -0
  277. package/dist/tools/browser-stub.js.map +1 -0
  278. package/dist/tools/gateway-tool.d.ts +43 -0
  279. package/dist/tools/gateway-tool.js +92 -0
  280. package/dist/tools/gateway-tool.js.map +1 -0
  281. package/dist/tools/image-stub.d.ts +32 -0
  282. package/dist/tools/image-stub.js +97 -0
  283. package/dist/tools/image-stub.js.map +1 -0
  284. package/dist/tools/js-repl.d.ts +78 -0
  285. package/dist/tools/js-repl.js +280 -0
  286. package/dist/tools/js-repl.js.map +1 -0
  287. package/dist/tools/message-tool.d.ts +42 -0
  288. package/dist/tools/message-tool.js +113 -0
  289. package/dist/tools/message-tool.js.map +1 -0
  290. package/dist/types/errors.d.ts +1 -1
  291. package/dist/types/errors.js +1 -1
  292. package/dist/ui/app.js +1 -1
  293. package/dist/ui/app.js.map +1 -1
  294. package/dist/ui/cli-enhancements.d.ts +178 -0
  295. package/dist/ui/cli-enhancements.js +430 -0
  296. package/dist/ui/cli-enhancements.js.map +1 -0
  297. package/dist/ui/components/HelpSystem.d.ts +1 -1
  298. package/dist/ui/components/HelpSystem.js +1 -1
  299. package/dist/ui/context/theme-context.d.ts +1 -1
  300. package/dist/ui/context/theme-context.js +1 -1
  301. package/dist/ui/dashboard/dashboard.js +1 -1
  302. package/dist/ui/dashboard/dashboard.js.map +1 -1
  303. package/dist/ui/status-line.d.ts +90 -0
  304. package/dist/ui/status-line.js +160 -0
  305. package/dist/ui/status-line.js.map +1 -0
  306. package/dist/ui/terminal-enhancements.d.ts +34 -0
  307. package/dist/ui/terminal-enhancements.js +97 -0
  308. package/dist/ui/terminal-enhancements.js.map +1 -0
  309. package/dist/ui/ui-enhancements.d.ts +38 -0
  310. package/dist/ui/ui-enhancements.js +116 -0
  311. package/dist/ui/ui-enhancements.js.map +1 -0
  312. package/dist/undo/checkpoint-manager.d.ts +1 -1
  313. package/dist/undo/checkpoint-manager.js +1 -1
  314. package/dist/utils/codebuddy-home.d.ts +1 -1
  315. package/dist/utils/codebuddy-home.js +1 -1
  316. package/dist/utils/conversation-export.js +3 -3
  317. package/dist/utils/conversation-export.js.map +1 -1
  318. package/dist/utils/custom-commands.js +1 -1
  319. package/dist/utils/custom-instructions.js +4 -1
  320. package/dist/utils/custom-instructions.js.map +1 -1
  321. package/dist/utils/debug-logger.d.ts +1 -1
  322. package/dist/utils/debug-logger.js +1 -1
  323. package/dist/utils/errors.d.ts +2 -2
  324. package/dist/utils/errors.js +2 -2
  325. package/dist/utils/export-manager.js +3 -3
  326. package/dist/utils/export-manager.js.map +1 -1
  327. package/dist/utils/headless-output.js +1 -1
  328. package/dist/utils/headless-output.js.map +1 -1
  329. package/dist/utils/init-project.d.ts +1 -1
  330. package/dist/utils/init-project.js +20 -20
  331. package/dist/utils/init-project.js.map +1 -1
  332. package/dist/utils/logger.d.ts +1 -1
  333. package/dist/utils/logger.js +1 -1
  334. package/dist/utils/output-schema-validator.d.ts +40 -0
  335. package/dist/utils/output-schema-validator.js +137 -0
  336. package/dist/utils/output-schema-validator.js.map +1 -0
  337. package/dist/utils/safety-misc.d.ts +24 -0
  338. package/dist/utils/safety-misc.js +91 -0
  339. package/dist/utils/safety-misc.js.map +1 -0
  340. package/dist/utils/session-enhancements.d.ts +40 -0
  341. package/dist/utils/session-enhancements.js +118 -0
  342. package/dist/utils/session-enhancements.js.map +1 -0
  343. package/dist/utils/shell-completions.js +6 -6
  344. package/dist/utils/shell-snapshot.d.ts +38 -0
  345. package/dist/utils/shell-snapshot.js +323 -0
  346. package/dist/utils/shell-snapshot.js.map +1 -0
  347. package/dist/utils/stream-json-formatter.d.ts +77 -0
  348. package/dist/utils/stream-json-formatter.js +61 -0
  349. package/dist/utils/stream-json-formatter.js.map +1 -0
  350. package/dist/utils/terminal-notifications.js +1 -1
  351. package/dist/utils/terminal-notifications.js.map +1 -1
  352. package/dist/workflows/lobster-engine.d.ts +43 -0
  353. package/dist/workflows/lobster-engine.js +167 -0
  354. package/dist/workflows/lobster-engine.js.map +1 -0
  355. package/package.json +3 -6
@@ -2,6 +2,7 @@
2
2
  * OS-Level Sandbox
3
3
  *
4
4
  * Native sandboxing using OS-level isolation:
5
+ * - Linux: Landlock + seccomp (bwrap with seccomp BPF filters, strongest)
5
6
  * - Linux: bubblewrap (bwrap)
6
7
  * - macOS: sandbox-exec (seatbelt)
7
8
  * - Windows: Not yet supported (falls back to Docker)
@@ -9,7 +10,7 @@
9
10
  * Inspired by Codex CLI's execpolicy and sandbox implementation.
10
11
  */
11
12
  import { EventEmitter } from 'events';
12
- export type SandboxBackend = 'bubblewrap' | 'seatbelt' | 'docker' | 'none';
13
+ export type SandboxBackend = 'landlock' | 'bubblewrap' | 'seatbelt' | 'docker' | 'none';
13
14
  export interface OSSandboxConfig {
14
15
  /** Sandbox backend to use (auto-detected if not specified) */
15
16
  backend?: SandboxBackend;
@@ -38,6 +39,12 @@ export interface OSSandboxConfig {
38
39
  /** Max file size in bytes */
39
40
  maxFileSize?: number;
40
41
  };
42
+ /** Domain allowlist when network is enabled */
43
+ allowedDomains: string[];
44
+ /** Commands that bypass the sandbox */
45
+ excludedCommands: string[];
46
+ /** Allow running unsandboxed as fallback (default: true) */
47
+ allowUnsandboxed: boolean;
41
48
  }
42
49
  export interface OSSandboxResult {
43
50
  exitCode: number;
@@ -49,11 +56,17 @@ export interface OSSandboxResult {
49
56
  sandboxed: boolean;
50
57
  }
51
58
  export interface SandboxCapabilities {
59
+ landlock: boolean;
52
60
  bubblewrap: boolean;
53
61
  seatbelt: boolean;
54
62
  docker: boolean;
55
63
  recommended: SandboxBackend;
56
64
  }
65
+ export interface OSSandboxStats {
66
+ commandsRun: number;
67
+ commandsSandboxed: number;
68
+ commandsBypassed: number;
69
+ }
57
70
  /**
58
71
  * Detect available sandbox backends
59
72
  */
@@ -62,10 +75,29 @@ export declare function detectCapabilities(): Promise<SandboxCapabilities>;
62
75
  * Clear cached capabilities
63
76
  */
64
77
  export declare function clearCapabilitiesCache(): void;
78
+ /**
79
+ * Check if the Linux kernel supports Landlock LSM.
80
+ * Returns true if /proc/sys/kernel/unprivileged_landlock_restrict exists
81
+ * or kernel version >= 5.13.
82
+ */
83
+ export declare function checkLandlockSupport(): boolean;
84
+ /**
85
+ * Generate a seccomp BPF filter file that blocks dangerous syscalls.
86
+ *
87
+ * The filter is a minimal BPF program in binary format:
88
+ * - Load syscall number (BPF_LD | BPF_W | BPF_ABS, offset 0 for seccomp data)
89
+ * - For each blocked syscall: compare and jump to KILL if matched
90
+ * - Default action: ALLOW
91
+ *
92
+ * Format: each BPF instruction is 8 bytes (struct sock_filter):
93
+ * uint16 code, uint8 jt, uint8 jf, uint32 k
94
+ */
95
+ export declare function generateSeccompFilter(): Buffer;
65
96
  export declare class OSSandbox extends EventEmitter {
66
97
  private config;
67
98
  private backend;
68
99
  private initialized;
100
+ private stats;
69
101
  constructor(config?: Partial<OSSandboxConfig>);
70
102
  /**
71
103
  * Initialize sandbox and detect backend
@@ -95,6 +127,22 @@ export declare class OSSandbox extends EventEmitter {
95
127
  * Get current configuration
96
128
  */
97
129
  getConfig(): OSSandboxConfig;
130
+ /**
131
+ * Check if a domain should be allowed through the network filter
132
+ */
133
+ shouldAllowDomain(domain: string): boolean;
134
+ /**
135
+ * Check if a command should bypass the sandbox
136
+ */
137
+ isCommandExcluded(command: string): boolean;
138
+ /**
139
+ * Get execution statistics
140
+ */
141
+ getStats(): OSSandboxStats;
142
+ /**
143
+ * Execute a shell command with exclusion and stats tracking
144
+ */
145
+ execShellTracked(shellCommand: string): Promise<OSSandboxResult>;
98
146
  }
99
147
  export declare function getOSSandbox(config?: Partial<OSSandboxConfig>): OSSandbox;
100
148
  export declare function resetOSSandbox(): void;
@@ -2,6 +2,7 @@
2
2
  * OS-Level Sandbox
3
3
  *
4
4
  * Native sandboxing using OS-level isolation:
5
+ * - Linux: Landlock + seccomp (bwrap with seccomp BPF filters, strongest)
5
6
  * - Linux: bubblewrap (bwrap)
6
7
  * - macOS: sandbox-exec (seatbelt)
7
8
  * - Windows: Not yet supported (falls back to Docker)
@@ -13,9 +14,6 @@ import { EventEmitter } from 'events';
13
14
  import * as os from 'os';
14
15
  import * as path from 'path';
15
16
  import * as fs from 'fs';
16
- // ============================================================================
17
- // Default Configuration
18
- // ============================================================================
19
17
  const DEFAULT_CONFIG = {
20
18
  workDir: process.cwd(),
21
19
  readOnlyPaths: ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc'],
@@ -30,6 +28,9 @@ const DEFAULT_CONFIG = {
30
28
  maxProcesses: 100,
31
29
  maxFileSize: 100 * 1024 * 1024, // 100MB
32
30
  },
31
+ allowedDomains: [],
32
+ excludedCommands: [],
33
+ allowUnsandboxed: true,
33
34
  };
34
35
  // ============================================================================
35
36
  // Capability Detection
@@ -44,11 +45,16 @@ export async function detectCapabilities() {
44
45
  }
45
46
  const platform = os.platform();
46
47
  const capabilities = {
48
+ landlock: false,
47
49
  bubblewrap: false,
48
50
  seatbelt: false,
49
51
  docker: false,
50
52
  recommended: 'none',
51
53
  };
54
+ // Check for Landlock support (Linux kernel >= 5.13)
55
+ if (platform === 'linux') {
56
+ capabilities.landlock = checkLandlockSupport();
57
+ }
52
58
  // Check for bubblewrap (Linux)
53
59
  if (platform === 'linux') {
54
60
  try {
@@ -78,8 +84,11 @@ export async function detectCapabilities() {
78
84
  catch {
79
85
  capabilities.docker = false;
80
86
  }
81
- // Determine recommended backend
82
- if (platform === 'linux' && capabilities.bubblewrap) {
87
+ // Determine recommended backend (priority: landlock > bubblewrap > seatbelt > docker)
88
+ if (platform === 'linux' && capabilities.landlock && capabilities.bubblewrap) {
89
+ capabilities.recommended = 'landlock';
90
+ }
91
+ else if (platform === 'linux' && capabilities.bubblewrap) {
83
92
  capabilities.recommended = 'bubblewrap';
84
93
  }
85
94
  else if (platform === 'darwin' && capabilities.seatbelt) {
@@ -244,12 +253,283 @@ async function execSeatbelt(command, args, config) {
244
253
  }
245
254
  }
246
255
  // ============================================================================
256
+ // Landlock + Seccomp Sandbox (Linux)
257
+ // ============================================================================
258
+ /**
259
+ * Dangerous syscall numbers (x86_64) to block via seccomp BPF.
260
+ * These syscalls allow kernel-level operations that should never
261
+ * be available inside a sandbox.
262
+ */
263
+ const BLOCKED_SYSCALLS = {
264
+ mount: 165,
265
+ umount2: 166,
266
+ reboot: 169,
267
+ kexec_load: 246,
268
+ ptrace: 101,
269
+ pivot_root: 155,
270
+ };
271
+ /**
272
+ * Check if the Linux kernel supports Landlock LSM.
273
+ * Returns true if /proc/sys/kernel/unprivileged_landlock_restrict exists
274
+ * or kernel version >= 5.13.
275
+ */
276
+ export function checkLandlockSupport() {
277
+ try {
278
+ // Primary check: proc filesystem indicator
279
+ if (fs.existsSync('/proc/sys/kernel/unprivileged_landlock_restrict')) {
280
+ return true;
281
+ }
282
+ }
283
+ catch {
284
+ // Ignore filesystem errors
285
+ }
286
+ try {
287
+ // Fallback: check kernel version >= 5.13
288
+ const release = os.release(); // e.g. "5.15.0-generic"
289
+ const match = release.match(/^(\d+)\.(\d+)/);
290
+ if (match) {
291
+ const major = parseInt(match[1], 10);
292
+ const minor = parseInt(match[2], 10);
293
+ if (major > 5 || (major === 5 && minor >= 13)) {
294
+ return true;
295
+ }
296
+ }
297
+ }
298
+ catch {
299
+ // Ignore parse errors
300
+ }
301
+ return false;
302
+ }
303
+ /**
304
+ * Generate a seccomp BPF filter file that blocks dangerous syscalls.
305
+ *
306
+ * The filter is a minimal BPF program in binary format:
307
+ * - Load syscall number (BPF_LD | BPF_W | BPF_ABS, offset 0 for seccomp data)
308
+ * - For each blocked syscall: compare and jump to KILL if matched
309
+ * - Default action: ALLOW
310
+ *
311
+ * Format: each BPF instruction is 8 bytes (struct sock_filter):
312
+ * uint16 code, uint8 jt, uint8 jf, uint32 k
313
+ */
314
+ export function generateSeccompFilter() {
315
+ const syscalls = Object.values(BLOCKED_SYSCALLS);
316
+ const numSyscalls = syscalls.length;
317
+ // BPF constants
318
+ const BPF_LD = 0x00;
319
+ const BPF_W = 0x00;
320
+ const BPF_ABS = 0x20;
321
+ const BPF_JMP = 0x05;
322
+ const BPF_JEQ = 0x10;
323
+ const BPF_K = 0x00;
324
+ const BPF_RET = 0x06;
325
+ const SECCOMP_RET_ALLOW = 0x7fff0000;
326
+ const SECCOMP_RET_KILL = 0x00000000;
327
+ // Layout: load + N compares + allow + kill
328
+ // Compare i jt target: skip remaining compares + allow to reach kill
329
+ // Compare i jf target: 0 (fall through to next compare)
330
+ const totalInstructions = 1 + numSyscalls + 1 + 1;
331
+ const buf = Buffer.alloc(totalInstructions * 8);
332
+ let off = 0;
333
+ // Instruction 0: Load syscall number from seccomp_data.nr (offset 0)
334
+ buf.writeUInt16LE(BPF_LD | BPF_W | BPF_ABS, off);
335
+ buf.writeUInt8(0, off + 2); // jt (unused for LD)
336
+ buf.writeUInt8(0, off + 3); // jf (unused for LD)
337
+ buf.writeUInt32LE(0, off + 4); // k = offsetof(seccomp_data, nr)
338
+ off += 8;
339
+ // Instructions 1..N: Compare each blocked syscall
340
+ for (let i = 0; i < numSyscalls; i++) {
341
+ const remainingCompares = numSyscalls - 1 - i;
342
+ const jumpToKill = remainingCompares + 1; // skip remaining compares + allow
343
+ buf.writeUInt16LE(BPF_JMP | BPF_JEQ | BPF_K, off);
344
+ buf.writeUInt8(jumpToKill, off + 2); // jt: jump to KILL
345
+ buf.writeUInt8(0, off + 3); // jf: next instruction
346
+ buf.writeUInt32LE(syscalls[i], off + 4);
347
+ off += 8;
348
+ }
349
+ // ALLOW (default action for non-blocked syscalls)
350
+ buf.writeUInt16LE(BPF_RET | BPF_K, off);
351
+ buf.writeUInt8(0, off + 2);
352
+ buf.writeUInt8(0, off + 3);
353
+ buf.writeUInt32LE(SECCOMP_RET_ALLOW, off + 4);
354
+ off += 8;
355
+ // KILL (action for blocked syscalls)
356
+ buf.writeUInt16LE(BPF_RET | BPF_K, off);
357
+ buf.writeUInt8(0, off + 2);
358
+ buf.writeUInt8(0, off + 3);
359
+ buf.writeUInt32LE(SECCOMP_RET_KILL, off + 4);
360
+ return buf;
361
+ }
362
+ /**
363
+ * Execute command in Landlock-enhanced sandbox.
364
+ *
365
+ * Uses bubblewrap with seccomp BPF filters for the strongest available
366
+ * sandbox on Linux. If seccomp filter generation fails, falls back to
367
+ * standard bubblewrap.
368
+ */
369
+ async function execLandlock(command, args, config) {
370
+ let seccompPath = null;
371
+ try {
372
+ // Generate seccomp BPF filter
373
+ const filter = generateSeccompFilter();
374
+ seccompPath = path.join(os.tmpdir(), `grok-seccomp-${Date.now()}-${process.pid}.bpf`);
375
+ fs.writeFileSync(seccompPath, filter);
376
+ }
377
+ catch {
378
+ // If seccomp filter generation fails, fall back to standard bubblewrap
379
+ return execBubblewrap(command, args, config);
380
+ }
381
+ try {
382
+ const bwrapArgs = [
383
+ // Unshare namespaces
384
+ '--unshare-user',
385
+ '--unshare-pid',
386
+ '--unshare-uts',
387
+ '--unshare-cgroup',
388
+ ];
389
+ // Network namespace
390
+ if (!config.allowNetwork) {
391
+ bwrapArgs.push('--unshare-net');
392
+ }
393
+ // Die with parent
394
+ bwrapArgs.push('--die-with-parent');
395
+ // Apply seccomp BPF filter
396
+ bwrapArgs.push('--seccomp', '9');
397
+ // Create minimal root filesystem
398
+ bwrapArgs.push('--tmpfs', '/');
399
+ // Mount /proc (required for many tools)
400
+ bwrapArgs.push('--proc', '/proc');
401
+ // Mount /dev minimally
402
+ bwrapArgs.push('--dev', '/dev');
403
+ // Mount read-only paths
404
+ for (const p of config.readOnlyPaths) {
405
+ if (fs.existsSync(p)) {
406
+ bwrapArgs.push('--ro-bind', p, p);
407
+ }
408
+ }
409
+ // Mount read-write paths
410
+ for (const p of config.readWritePaths) {
411
+ if (fs.existsSync(p)) {
412
+ bwrapArgs.push('--bind', p, p);
413
+ }
414
+ }
415
+ // Mount working directory
416
+ if (fs.existsSync(config.workDir)) {
417
+ bwrapArgs.push('--bind', config.workDir, config.workDir);
418
+ bwrapArgs.push('--chdir', config.workDir);
419
+ }
420
+ // Create /tmp
421
+ bwrapArgs.push('--tmpfs', '/tmp');
422
+ // Set hostname
423
+ bwrapArgs.push('--hostname', 'sandbox');
424
+ // Environment variables
425
+ bwrapArgs.push('--clearenv');
426
+ const envVars = {
427
+ HOME: '/tmp',
428
+ PATH: '/usr/local/bin:/usr/bin:/bin',
429
+ TERM: process.env.TERM || 'xterm',
430
+ ...config.env,
431
+ };
432
+ for (const [key, value] of Object.entries(envVars)) {
433
+ bwrapArgs.push('--setenv', key, value);
434
+ }
435
+ // Add the command
436
+ bwrapArgs.push(command, ...args);
437
+ // Execute bwrap with the seccomp filter passed via fd 9
438
+ const result = await execWithSeccomp('bwrap', bwrapArgs, config.timeout, seccompPath);
439
+ return result;
440
+ }
441
+ finally {
442
+ // Clean up seccomp filter file
443
+ if (seccompPath) {
444
+ try {
445
+ fs.unlinkSync(seccompPath);
446
+ }
447
+ catch {
448
+ // Ignore cleanup errors
449
+ }
450
+ }
451
+ }
452
+ }
453
+ /**
454
+ * Execute bwrap with a seccomp filter file passed via file descriptor.
455
+ * The seccomp BPF data is piped through fd 9 to bwrap's --seccomp option.
456
+ */
457
+ function execWithSeccomp(command, args, timeout, seccompPath) {
458
+ return new Promise((resolve) => {
459
+ const startTime = Date.now();
460
+ // Verify the seccomp filter file is readable
461
+ try {
462
+ fs.accessSync(seccompPath, fs.constants.R_OK);
463
+ }
464
+ catch {
465
+ resolve({
466
+ exitCode: 1,
467
+ stdout: '',
468
+ stderr: 'Failed to read seccomp filter',
469
+ duration: Date.now() - startTime,
470
+ timedOut: false,
471
+ backend: 'landlock',
472
+ sandboxed: false,
473
+ });
474
+ return;
475
+ }
476
+ // Use a shell wrapper to pass the seccomp filter via fd 9
477
+ // bwrap --seccomp 9 ... 9< seccompfile
478
+ const shellCmd = `${command} ${args.map(a => `'${a.replace(/'/g, "'\\''")}'`).join(' ')} 9< '${seccompPath.replace(/'/g, "'\\''")}'`;
479
+ const proc = spawn('sh', ['-c', shellCmd], {
480
+ stdio: ['ignore', 'pipe', 'pipe'],
481
+ });
482
+ let stdout = '';
483
+ let stderr = '';
484
+ let timedOut = false;
485
+ proc.stdout?.on('data', (data) => {
486
+ stdout += data.toString();
487
+ });
488
+ proc.stderr?.on('data', (data) => {
489
+ stderr += data.toString();
490
+ });
491
+ const timer = setTimeout(() => {
492
+ timedOut = true;
493
+ proc.kill('SIGKILL');
494
+ }, timeout);
495
+ proc.on('close', (code) => {
496
+ clearTimeout(timer);
497
+ resolve({
498
+ exitCode: code ?? 1,
499
+ stdout,
500
+ stderr,
501
+ duration: Date.now() - startTime,
502
+ timedOut,
503
+ backend: 'landlock',
504
+ sandboxed: true,
505
+ });
506
+ });
507
+ proc.on('error', (err) => {
508
+ clearTimeout(timer);
509
+ resolve({
510
+ exitCode: 1,
511
+ stdout: '',
512
+ stderr: err.message,
513
+ duration: Date.now() - startTime,
514
+ timedOut: false,
515
+ backend: 'landlock',
516
+ sandboxed: false,
517
+ });
518
+ });
519
+ });
520
+ }
521
+ // ============================================================================
247
522
  // OS Sandbox Class
248
523
  // ============================================================================
249
524
  export class OSSandbox extends EventEmitter {
250
525
  config;
251
526
  backend = 'none';
252
527
  initialized = false;
528
+ stats = {
529
+ commandsRun: 0,
530
+ commandsSandboxed: 0,
531
+ commandsBypassed: 0,
532
+ };
253
533
  constructor(config = {}) {
254
534
  super();
255
535
  this.config = { ...DEFAULT_CONFIG, ...config };
@@ -263,7 +543,10 @@ export class OSSandbox extends EventEmitter {
263
543
  const capabilities = await detectCapabilities();
264
544
  if (this.config.backend) {
265
545
  // Use specified backend if available
266
- if (this.config.backend === 'bubblewrap' && capabilities.bubblewrap) {
546
+ if (this.config.backend === 'landlock' && capabilities.landlock && capabilities.bubblewrap) {
547
+ this.backend = 'landlock';
548
+ }
549
+ else if (this.config.backend === 'bubblewrap' && capabilities.bubblewrap) {
267
550
  this.backend = 'bubblewrap';
268
551
  }
269
552
  else if (this.config.backend === 'seatbelt' && capabilities.seatbelt) {
@@ -307,6 +590,9 @@ export class OSSandbox extends EventEmitter {
307
590
  let result;
308
591
  try {
309
592
  switch (this.backend) {
593
+ case 'landlock':
594
+ result = await execLandlock(command, args, this.config);
595
+ break;
310
596
  case 'bubblewrap':
311
597
  result = await execBubblewrap(command, args, this.config);
312
598
  break;
@@ -363,6 +649,61 @@ export class OSSandbox extends EventEmitter {
363
649
  getConfig() {
364
650
  return { ...this.config };
365
651
  }
652
+ /**
653
+ * Check if a domain should be allowed through the network filter
654
+ */
655
+ shouldAllowDomain(domain) {
656
+ if (!this.config.allowNetwork) {
657
+ return false;
658
+ }
659
+ if (this.config.allowedDomains.length === 0) {
660
+ // No allowlist means allow all when network is enabled
661
+ return true;
662
+ }
663
+ const normalizedDomain = domain.toLowerCase();
664
+ return this.config.allowedDomains.some((allowed) => {
665
+ const normalizedAllowed = allowed.toLowerCase();
666
+ return (normalizedDomain === normalizedAllowed ||
667
+ normalizedDomain.endsWith('.' + normalizedAllowed));
668
+ });
669
+ }
670
+ /**
671
+ * Check if a command should bypass the sandbox
672
+ */
673
+ isCommandExcluded(command) {
674
+ const trimmed = command.trim();
675
+ const baseCommand = trimmed.split(/\s+/)[0];
676
+ const binaryName = baseCommand.split('/').pop() || baseCommand;
677
+ return this.config.excludedCommands.some((excluded) => {
678
+ return binaryName === excluded || baseCommand === excluded;
679
+ });
680
+ }
681
+ /**
682
+ * Get execution statistics
683
+ */
684
+ getStats() {
685
+ return { ...this.stats };
686
+ }
687
+ /**
688
+ * Execute a shell command with exclusion and stats tracking
689
+ */
690
+ async execShellTracked(shellCommand) {
691
+ this.stats.commandsRun++;
692
+ if (this.isCommandExcluded(shellCommand)) {
693
+ this.stats.commandsBypassed++;
694
+ const shell = os.platform() === 'win32' ? 'cmd' : 'sh';
695
+ const shellArg = os.platform() === 'win32' ? '/c' : '-c';
696
+ return execUnsandboxed(shell, [shellArg, shellCommand], this.config.timeout);
697
+ }
698
+ if (!this.isAvailable() && this.config.allowUnsandboxed) {
699
+ this.stats.commandsBypassed++;
700
+ const shell = os.platform() === 'win32' ? 'cmd' : 'sh';
701
+ const shellArg = os.platform() === 'win32' ? '/c' : '-c';
702
+ return execUnsandboxed(shell, [shellArg, shellCommand], this.config.timeout);
703
+ }
704
+ this.stats.commandsSandboxed++;
705
+ return this.execShell(shellCommand);
706
+ }
366
707
  }
367
708
  // ============================================================================
368
709
  // Helper Functions
@@ -1 +1 @@
1
- {"version":3,"file":"os-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/os-sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"os-sandbox.js","sourceRoot":"","sources":["../../src/sandbox/os-sandbox.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export function createGrokBindings(config, print) {
35
35
  const grok = {};
36
36
  const askFn = async (prompt) => {
37
37
  if (!codebuddyClientInstance) {
38
- print('[grok.ask] No Grok client available - returning mock response');
38
+ print('[buddy.ask] No Code Buddy client available - returning mock response');
39
39
  return `[Mock AI Response to: ${prompt}]`;
40
40
  }
41
41
  try {