windows-development-sandbox 0.0.0-stage → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/.sandbox-config.example.json +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +94 -2
  4. package/config.example.json +349 -0
  5. package/dist/api.d.ts +31 -0
  6. package/dist/api.js +31 -0
  7. package/dist/bin/agent-sandbox.d.ts +2 -0
  8. package/dist/bin/agent-sandbox.js +3 -0
  9. package/dist/bin/claude-host.d.ts +2 -0
  10. package/dist/bin/claude-host.js +5 -0
  11. package/dist/bin/claude-sbx.d.ts +2 -0
  12. package/dist/bin/claude-sbx.js +3 -0
  13. package/dist/bin/codex-sbx.d.ts +2 -0
  14. package/dist/bin/codex-sbx.js +3 -0
  15. package/dist/bin/gemini-sbx.d.ts +2 -0
  16. package/dist/bin/gemini-sbx.js +3 -0
  17. package/dist/bin/sandbox.d.ts +2 -0
  18. package/dist/bin/sandbox.js +4 -0
  19. package/dist/bin/sbx-hide.d.ts +2 -0
  20. package/dist/bin/sbx-hide.js +3 -0
  21. package/dist/bin/sbx-show.d.ts +2 -0
  22. package/dist/bin/sbx-show.js +3 -0
  23. package/dist/cli/args.d.ts +52 -0
  24. package/dist/cli/args.js +143 -0
  25. package/dist/cli/colors.d.ts +24 -0
  26. package/dist/cli/colors.js +42 -0
  27. package/dist/cli/commands/accounts.d.ts +2 -0
  28. package/dist/cli/commands/accounts.js +52 -0
  29. package/dist/cli/commands/agent-commands.d.ts +6 -0
  30. package/dist/cli/commands/agent-commands.js +61 -0
  31. package/dist/cli/commands/context.d.ts +23 -0
  32. package/dist/cli/commands/context.js +57 -0
  33. package/dist/cli/commands/data/clean.d.ts +15 -0
  34. package/dist/cli/commands/data/clean.js +101 -0
  35. package/dist/cli/commands/data/collect.d.ts +11 -0
  36. package/dist/cli/commands/data/collect.js +54 -0
  37. package/dist/cli/commands/data/index.d.ts +4 -0
  38. package/dist/cli/commands/data/index.js +45 -0
  39. package/dist/cli/commands/data/remove.d.ts +2 -0
  40. package/dist/cli/commands/data/remove.js +30 -0
  41. package/dist/cli/commands/index.d.ts +10 -0
  42. package/dist/cli/commands/index.js +10 -0
  43. package/dist/cli/commands/launch.d.ts +29 -0
  44. package/dist/cli/commands/launch.js +333 -0
  45. package/dist/cli/commands/maintenance.d.ts +8 -0
  46. package/dist/cli/commands/maintenance.js +154 -0
  47. package/dist/cli/commands/project.d.ts +29 -0
  48. package/dist/cli/commands/project.js +63 -0
  49. package/dist/cli/commands/projects.d.ts +14 -0
  50. package/dist/cli/commands/projects.js +146 -0
  51. package/dist/cli/commands/repair/checks.d.ts +2 -0
  52. package/dist/cli/commands/repair/checks.js +170 -0
  53. package/dist/cli/commands/repair/finders.d.ts +30 -0
  54. package/dist/cli/commands/repair/finders.js +108 -0
  55. package/dist/cli/commands/repair/index.d.ts +12 -0
  56. package/dist/cli/commands/repair/index.js +61 -0
  57. package/dist/cli/commands/repair/types.d.ts +26 -0
  58. package/dist/cli/commands/repair/types.js +3 -0
  59. package/dist/cli/commands/restart.d.ts +6 -0
  60. package/dist/cli/commands/restart.js +85 -0
  61. package/dist/cli/commands/sessions.d.ts +12 -0
  62. package/dist/cli/commands/sessions.js +257 -0
  63. package/dist/cli/commands/setup/checks.d.ts +13 -0
  64. package/dist/cli/commands/setup/checks.js +71 -0
  65. package/dist/cli/commands/setup/facts.d.ts +31 -0
  66. package/dist/cli/commands/setup/facts.js +60 -0
  67. package/dist/cli/commands/setup/index.d.ts +2 -0
  68. package/dist/cli/commands/setup/index.js +43 -0
  69. package/dist/cli/commands/user-config.d.ts +8 -0
  70. package/dist/cli/commands/user-config.js +41 -0
  71. package/dist/cli/history.d.ts +11 -0
  72. package/dist/cli/history.js +21 -0
  73. package/dist/cli/index.d.ts +20 -0
  74. package/dist/cli/index.js +121 -0
  75. package/dist/cli/manifest.d.ts +103 -0
  76. package/dist/cli/manifest.js +107 -0
  77. package/dist/cli/menu-multi.d.ts +12 -0
  78. package/dist/cli/menu-multi.js +82 -0
  79. package/dist/cli/menu.d.ts +14 -0
  80. package/dist/cli/menu.js +290 -0
  81. package/dist/cli/progress.d.ts +9 -0
  82. package/dist/cli/progress.js +49 -0
  83. package/dist/cli/settings/edit.d.ts +13 -0
  84. package/dist/cli/settings/edit.js +19 -0
  85. package/dist/cli/settings/index.d.ts +8 -0
  86. package/dist/cli/settings/index.js +131 -0
  87. package/dist/cli/settings/prompts.d.ts +7 -0
  88. package/dist/cli/settings/prompts.js +48 -0
  89. package/dist/cli/settings/schema.d.ts +33 -0
  90. package/dist/cli/settings/schema.js +29 -0
  91. package/dist/cli/validate.d.ts +17 -0
  92. package/dist/cli/validate.js +89 -0
  93. package/dist/core/config.d.ts +17 -0
  94. package/dist/core/config.js +106 -0
  95. package/dist/core/detect-databases.d.ts +15 -0
  96. package/dist/core/detect-databases.js +147 -0
  97. package/dist/core/detect-pwsh.d.ts +18 -0
  98. package/dist/core/detect-pwsh.js +111 -0
  99. package/dist/core/detect-toolchains.d.ts +30 -0
  100. package/dist/core/detect-toolchains.js +58 -0
  101. package/dist/core/disk.d.ts +16 -0
  102. package/dist/core/disk.js +55 -0
  103. package/dist/core/local-config.d.ts +20 -0
  104. package/dist/core/local-config.js +77 -0
  105. package/dist/core/project-policy.d.ts +15 -0
  106. package/dist/core/project-policy.js +35 -0
  107. package/dist/core/prompt.d.ts +4 -0
  108. package/dist/core/prompt.js +15 -0
  109. package/dist/core/safe-paths.d.ts +4 -0
  110. package/dist/core/safe-paths.js +37 -0
  111. package/dist/core/schema/common.d.ts +17 -0
  112. package/dist/core/schema/common.js +15 -0
  113. package/dist/core/schema/config.d.ts +594 -0
  114. package/dist/core/schema/config.js +63 -0
  115. package/dist/core/schema/databases.d.ts +33 -0
  116. package/dist/core/schema/databases.js +35 -0
  117. package/dist/core/schema/harness.d.ts +12 -0
  118. package/dist/core/schema/harness.js +17 -0
  119. package/dist/core/schema/json-schema.d.ts +5 -0
  120. package/dist/core/schema/json-schema.js +25 -0
  121. package/dist/core/schema/profile.d.ts +27 -0
  122. package/dist/core/schema/profile.js +29 -0
  123. package/dist/core/schema/projects.d.ts +9 -0
  124. package/dist/core/schema/projects.js +11 -0
  125. package/dist/core/schema/sandbox.d.ts +50 -0
  126. package/dist/core/schema/sandbox.js +36 -0
  127. package/dist/core/schema/toolchains.d.ts +93 -0
  128. package/dist/core/schema/toolchains.js +83 -0
  129. package/dist/core/schema.d.ts +6 -0
  130. package/dist/core/schema.js +8 -0
  131. package/dist/core/types.d.ts +190 -0
  132. package/dist/core/types.js +1 -0
  133. package/dist/core/util.d.ts +60 -0
  134. package/dist/core/util.js +154 -0
  135. package/dist/core/workspace.d.ts +18 -0
  136. package/dist/core/workspace.js +128 -0
  137. package/dist/guest/boot-env.d.ts +4 -0
  138. package/dist/guest/boot-env.js +25 -0
  139. package/dist/guest/cmdline.d.ts +12 -0
  140. package/dist/guest/cmdline.js +23 -0
  141. package/dist/guest/daemon/exec.d.ts +5 -0
  142. package/dist/guest/daemon/exec.js +32 -0
  143. package/dist/guest/daemon/project.d.ts +14 -0
  144. package/dist/guest/daemon/project.js +132 -0
  145. package/dist/guest/daemon/session.d.ts +13 -0
  146. package/dist/guest/daemon/session.js +139 -0
  147. package/dist/guest/daemon/shutdown.d.ts +1 -0
  148. package/dist/guest/daemon/shutdown.js +21 -0
  149. package/dist/guest/daemon/state.d.ts +17 -0
  150. package/dist/guest/daemon/state.js +31 -0
  151. package/dist/guest/daemon.d.ts +1 -0
  152. package/dist/guest/daemon.js +53 -0
  153. package/dist/guest/db.d.ts +1 -0
  154. package/dist/guest/db.js +75 -0
  155. package/dist/guest/env.d.ts +51 -0
  156. package/dist/guest/env.js +101 -0
  157. package/dist/guest/gitguard.d.ts +7 -0
  158. package/dist/guest/gitguard.js +60 -0
  159. package/dist/guest/gitrules.d.ts +2 -0
  160. package/dist/guest/gitrules.js +11 -0
  161. package/dist/guest/guide.d.ts +16 -0
  162. package/dist/guest/guide.js +69 -0
  163. package/dist/guest/helpers.d.ts +3 -0
  164. package/dist/guest/helpers.js +26 -0
  165. package/dist/guest/main.d.ts +1 -0
  166. package/dist/guest/main.js +130 -0
  167. package/dist/guest/ports.d.ts +6 -0
  168. package/dist/guest/ports.js +22 -0
  169. package/dist/guest/project-context.d.ts +7 -0
  170. package/dist/guest/project-context.js +10 -0
  171. package/dist/guest/project-env.d.ts +20 -0
  172. package/dist/guest/project-env.js +20 -0
  173. package/dist/guest/project-status.d.ts +5 -0
  174. package/dist/guest/project-status.js +17 -0
  175. package/dist/guest/ptyhost.d.ts +22 -0
  176. package/dist/guest/ptyhost.js +36 -0
  177. package/dist/guest/setup/agents.d.ts +11 -0
  178. package/dist/guest/setup/agents.js +87 -0
  179. package/dist/guest/setup/claude.d.ts +21 -0
  180. package/dist/guest/setup/claude.js +146 -0
  181. package/dist/guest/setup/environment.d.ts +16 -0
  182. package/dist/guest/setup/environment.js +69 -0
  183. package/dist/guest/setup/hooks.d.ts +9 -0
  184. package/dist/guest/setup/hooks.js +50 -0
  185. package/dist/guest/setup/network.d.ts +10 -0
  186. package/dist/guest/setup/network.js +99 -0
  187. package/dist/guest/setup/policy.d.ts +3 -0
  188. package/dist/guest/setup/policy.js +18 -0
  189. package/dist/guest/setup/user.d.ts +7 -0
  190. package/dist/guest/setup/user.js +47 -0
  191. package/dist/guest/toolchains/catalogue.d.ts +55 -0
  192. package/dist/guest/toolchains/catalogue.js +31 -0
  193. package/dist/guest/toolchains/cli.d.ts +10 -0
  194. package/dist/guest/toolchains/cli.js +72 -0
  195. package/dist/guest/toolchains/common.d.ts +54 -0
  196. package/dist/guest/toolchains/common.js +147 -0
  197. package/dist/guest/toolchains/databases/dynamodb.d.ts +8 -0
  198. package/dist/guest/toolchains/databases/dynamodb.js +52 -0
  199. package/dist/guest/toolchains/databases/index.d.ts +6 -0
  200. package/dist/guest/toolchains/databases/index.js +62 -0
  201. package/dist/guest/toolchains/databases/mongodb.d.ts +3 -0
  202. package/dist/guest/toolchains/databases/mongodb.js +31 -0
  203. package/dist/guest/toolchains/databases/mysql.d.ts +3 -0
  204. package/dist/guest/toolchains/databases/mysql.js +38 -0
  205. package/dist/guest/toolchains/databases/postgres.d.ts +5 -0
  206. package/dist/guest/toolchains/databases/postgres.js +38 -0
  207. package/dist/guest/toolchains/databases/redis.d.ts +3 -0
  208. package/dist/guest/toolchains/databases/redis.js +16 -0
  209. package/dist/guest/toolchains/databases/server.d.ts +14 -0
  210. package/dist/guest/toolchains/databases/server.js +52 -0
  211. package/dist/guest/toolchains/git.d.ts +3 -0
  212. package/dist/guest/toolchains/git.js +121 -0
  213. package/dist/guest/toolchains/go.d.ts +3 -0
  214. package/dist/guest/toolchains/go.js +33 -0
  215. package/dist/guest/toolchains/index.d.ts +17 -0
  216. package/dist/guest/toolchains/index.js +80 -0
  217. package/dist/guest/toolchains/java.d.ts +8 -0
  218. package/dist/guest/toolchains/java.js +96 -0
  219. package/dist/guest/toolchains/leftovers.d.ts +2 -0
  220. package/dist/guest/toolchains/leftovers.js +26 -0
  221. package/dist/guest/toolchains/managers.d.ts +16 -0
  222. package/dist/guest/toolchains/managers.js +84 -0
  223. package/dist/guest/toolchains/native/binstall.d.ts +7 -0
  224. package/dist/guest/toolchains/native/binstall.js +52 -0
  225. package/dist/guest/toolchains/native/cpp.d.ts +4 -0
  226. package/dist/guest/toolchains/native/cpp.js +38 -0
  227. package/dist/guest/toolchains/native/dotnet.d.ts +4 -0
  228. package/dist/guest/toolchains/native/dotnet.js +103 -0
  229. package/dist/guest/toolchains/native/mesa.d.ts +7 -0
  230. package/dist/guest/toolchains/native/mesa.js +46 -0
  231. package/dist/guest/toolchains/native/msvc/environment.d.ts +16 -0
  232. package/dist/guest/toolchains/native/msvc/environment.js +57 -0
  233. package/dist/guest/toolchains/native/msvc/index.d.ts +6 -0
  234. package/dist/guest/toolchains/native/msvc/index.js +48 -0
  235. package/dist/guest/toolchains/native/msvc/packages.d.ts +6 -0
  236. package/dist/guest/toolchains/native/msvc/packages.js +156 -0
  237. package/dist/guest/toolchains/native/msvc/tree.d.ts +15 -0
  238. package/dist/guest/toolchains/native/msvc/tree.js +21 -0
  239. package/dist/guest/toolchains/native/rust.d.ts +3 -0
  240. package/dist/guest/toolchains/native/rust.js +45 -0
  241. package/dist/guest/toolchains/node.d.ts +3 -0
  242. package/dist/guest/toolchains/node.js +152 -0
  243. package/dist/guest/toolchains/plan.d.ts +22 -0
  244. package/dist/guest/toolchains/plan.js +96 -0
  245. package/dist/guest/toolchains/pwsh.d.ts +4 -0
  246. package/dist/guest/toolchains/pwsh.js +14 -0
  247. package/dist/guest/toolchains/python.d.ts +3 -0
  248. package/dist/guest/toolchains/python.js +54 -0
  249. package/dist/guest/toolchains/runtimes.d.ts +19 -0
  250. package/dist/guest/toolchains/runtimes.js +38 -0
  251. package/dist/guest/toolchains/scripting/php.d.ts +3 -0
  252. package/dist/guest/toolchains/scripting/php.js +71 -0
  253. package/dist/guest/toolchains/scripting/ruby.d.ts +3 -0
  254. package/dist/guest/toolchains/scripting/ruby.js +47 -0
  255. package/dist/guest/toolchains/scripting/vcruntime.d.ts +7 -0
  256. package/dist/guest/toolchains/scripting/vcruntime.js +45 -0
  257. package/dist/guest/toolchains/versions.d.ts +47 -0
  258. package/dist/guest/toolchains/versions.js +77 -0
  259. package/dist/guest/toolchains/vscode.d.ts +2 -0
  260. package/dist/guest/toolchains/vscode.js +53 -0
  261. package/dist/guest/view.d.ts +1 -0
  262. package/dist/guest/view.js +42 -0
  263. package/dist/host/accounts.d.ts +32 -0
  264. package/dist/host/accounts.js +128 -0
  265. package/dist/host/agent-commands.d.ts +25 -0
  266. package/dist/host/agent-commands.js +145 -0
  267. package/dist/host/attach.d.ts +17 -0
  268. package/dist/host/attach.js +69 -0
  269. package/dist/host/channel.d.ts +38 -0
  270. package/dist/host/channel.js +162 -0
  271. package/dist/host/claude-profile.d.ts +15 -0
  272. package/dist/host/claude-profile.js +107 -0
  273. package/dist/host/cleanup.d.ts +23 -0
  274. package/dist/host/cleanup.js +57 -0
  275. package/dist/host/database-plan.d.ts +12 -0
  276. package/dist/host/database-plan.js +52 -0
  277. package/dist/host/generate.d.ts +7 -0
  278. package/dist/host/generate.js +98 -0
  279. package/dist/host/join.d.ts +28 -0
  280. package/dist/host/join.js +76 -0
  281. package/dist/host/launch/mappings.d.ts +3 -0
  282. package/dist/host/launch/mappings.js +50 -0
  283. package/dist/host/launch/projects.d.ts +15 -0
  284. package/dist/host/launch/projects.js +56 -0
  285. package/dist/host/launch/stage.d.ts +11 -0
  286. package/dist/host/launch/stage.js +66 -0
  287. package/dist/host/launch/wsb.d.ts +10 -0
  288. package/dist/host/launch/wsb.js +34 -0
  289. package/dist/host/pc-scan.d.ts +6 -0
  290. package/dist/host/pc-scan.js +37 -0
  291. package/dist/host/personalize.d.ts +10 -0
  292. package/dist/host/personalize.js +97 -0
  293. package/dist/host/platform.d.ts +19 -0
  294. package/dist/host/platform.js +126 -0
  295. package/dist/host/project-scan.d.ts +7 -0
  296. package/dist/host/project-scan.js +89 -0
  297. package/dist/host/projects.d.ts +100 -0
  298. package/dist/host/projects.js +147 -0
  299. package/dist/host/repo-guard.d.ts +36 -0
  300. package/dist/host/repo-guard.js +219 -0
  301. package/dist/host/secrets.d.ts +14 -0
  302. package/dist/host/secrets.js +133 -0
  303. package/dist/host/terminal.d.ts +32 -0
  304. package/dist/host/terminal.js +130 -0
  305. package/dist/host/test-guard.d.ts +6 -0
  306. package/dist/host/test-guard.js +15 -0
  307. package/dist/host/window.d.ts +4 -0
  308. package/dist/host/window.js +72 -0
  309. package/dist/host/wsb.d.ts +37 -0
  310. package/dist/host/wsb.js +101 -0
  311. package/dist/runtime/daemon.js +28494 -0
  312. package/dist/runtime/db.js +26387 -0
  313. package/dist/runtime/gitguard.js +84 -0
  314. package/dist/runtime/main.js +28622 -0
  315. package/dist/runtime/view.js +25841 -0
  316. package/dist/selftest/accounts.test.d.ts +2 -0
  317. package/dist/selftest/accounts.test.js +44 -0
  318. package/dist/selftest/agent-commands.test.d.ts +2 -0
  319. package/dist/selftest/agent-commands.test.js +47 -0
  320. package/dist/selftest/channel.test.d.ts +2 -0
  321. package/dist/selftest/channel.test.js +37 -0
  322. package/dist/selftest/cli.test.d.ts +2 -0
  323. package/dist/selftest/cli.test.js +118 -0
  324. package/dist/selftest/cmdline.test.d.ts +2 -0
  325. package/dist/selftest/cmdline.test.js +45 -0
  326. package/dist/selftest/config.test.d.ts +2 -0
  327. package/dist/selftest/config.test.js +38 -0
  328. package/dist/selftest/data.test.d.ts +2 -0
  329. package/dist/selftest/data.test.js +80 -0
  330. package/dist/selftest/detect.test.d.ts +2 -0
  331. package/dist/selftest/detect.test.js +58 -0
  332. package/dist/selftest/fixtures.d.ts +272 -0
  333. package/dist/selftest/fixtures.js +80 -0
  334. package/dist/selftest/generate.test.d.ts +2 -0
  335. package/dist/selftest/generate.test.js +63 -0
  336. package/dist/selftest/git-access.test.d.ts +2 -0
  337. package/dist/selftest/git-access.test.js +26 -0
  338. package/dist/selftest/guest-boot.test.d.ts +2 -0
  339. package/dist/selftest/guest-boot.test.js +76 -0
  340. package/dist/selftest/harness.d.ts +51 -0
  341. package/dist/selftest/harness.js +77 -0
  342. package/dist/selftest/host-sim.test.d.ts +2 -0
  343. package/dist/selftest/host-sim.test.js +93 -0
  344. package/dist/selftest/hostile-input.test.d.ts +2 -0
  345. package/dist/selftest/hostile-input.test.js +54 -0
  346. package/dist/selftest/index.d.ts +8 -0
  347. package/dist/selftest/index.js +155 -0
  348. package/dist/selftest/links.test.d.ts +2 -0
  349. package/dist/selftest/links.test.js +50 -0
  350. package/dist/selftest/live-daemon.test.d.ts +2 -0
  351. package/dist/selftest/live-daemon.test.js +91 -0
  352. package/dist/selftest/live-git.test.d.ts +2 -0
  353. package/dist/selftest/live-git.test.js +60 -0
  354. package/dist/selftest/live-projects.test.d.ts +2 -0
  355. package/dist/selftest/live-projects.test.js +127 -0
  356. package/dist/selftest/live.d.ts +65 -0
  357. package/dist/selftest/live.js +109 -0
  358. package/dist/selftest/local-config.test.d.ts +2 -0
  359. package/dist/selftest/local-config.test.js +107 -0
  360. package/dist/selftest/mirror.test.d.ts +2 -0
  361. package/dist/selftest/mirror.test.js +101 -0
  362. package/dist/selftest/network.test.d.ts +2 -0
  363. package/dist/selftest/network.test.js +28 -0
  364. package/dist/selftest/personalization.test.d.ts +2 -0
  365. package/dist/selftest/personalization.test.js +53 -0
  366. package/dist/selftest/projects.test.d.ts +2 -0
  367. package/dist/selftest/projects.test.js +254 -0
  368. package/dist/selftest/repair.test.d.ts +2 -0
  369. package/dist/selftest/repair.test.js +42 -0
  370. package/dist/selftest/repo-guard.test.d.ts +2 -0
  371. package/dist/selftest/repo-guard.test.js +63 -0
  372. package/dist/selftest/secrets.test.d.ts +2 -0
  373. package/dist/selftest/secrets.test.js +71 -0
  374. package/dist/selftest/setup.test.d.ts +2 -0
  375. package/dist/selftest/setup.test.js +46 -0
  376. package/dist/selftest/suite.d.ts +13 -0
  377. package/dist/selftest/suite.js +1 -0
  378. package/dist/selftest/sync.test.d.ts +2 -0
  379. package/dist/selftest/sync.test.js +94 -0
  380. package/dist/selftest/test-guard.test.d.ts +2 -0
  381. package/dist/selftest/test-guard.test.js +49 -0
  382. package/dist/selftest/toolchains.test.d.ts +2 -0
  383. package/dist/selftest/toolchains.test.js +103 -0
  384. package/dist/selftest/workspace.test.d.ts +2 -0
  385. package/dist/selftest/workspace.test.js +53 -0
  386. package/dist/shared/download.d.ts +60 -0
  387. package/dist/shared/download.js +215 -0
  388. package/dist/shared/guest-paths.d.ts +30 -0
  389. package/dist/shared/guest-paths.js +61 -0
  390. package/dist/shared/netrules.d.ts +18 -0
  391. package/dist/shared/netrules.js +98 -0
  392. package/dist/shared/paths.d.ts +14 -0
  393. package/dist/shared/paths.js +28 -0
  394. package/dist/shared/projects.d.ts +53 -0
  395. package/dist/shared/projects.js +67 -0
  396. package/dist/shared/pty-client.d.ts +86 -0
  397. package/dist/shared/pty-client.js +227 -0
  398. package/dist/shared/rundir.d.ts +39 -0
  399. package/dist/shared/rundir.js +94 -0
  400. package/dist/shared/safe-remove.d.ts +10 -0
  401. package/dist/shared/safe-remove.js +66 -0
  402. package/dist/shared/schema.d.ts +527 -0
  403. package/dist/shared/schema.js +90 -0
  404. package/dist/shared/system.d.ts +15 -0
  405. package/dist/shared/system.js +19 -0
  406. package/dist/shared/test-guard.d.ts +4 -0
  407. package/dist/shared/test-guard.js +37 -0
  408. package/dist/sync/claude-mem.d.ts +8 -0
  409. package/dist/sync/claude-mem.js +79 -0
  410. package/dist/sync/history.d.ts +41 -0
  411. package/dist/sync/history.js +161 -0
  412. package/dist/sync/watcher.d.ts +21 -0
  413. package/dist/sync/watcher.js +135 -0
  414. package/hooks/post-agent/README.txt +1 -0
  415. package/hooks/pre-provision/README.txt +1 -0
  416. package/package.json +91 -4
  417. package/sandbox/bootstrap.ps1 +258 -0
  418. package/sandbox/cpucap.ps1 +51 -0
  419. package/sandbox/gitshim.cs +35 -0
  420. package/sandbox/logon.cmd +18 -0
  421. package/sandbox/openssl.cs +42 -0
  422. package/sandbox/ptyhost.cs +614 -0
  423. package/sandbox/trust.cmd +35 -0
  424. package/sandbox/vswhere.cs +83 -0
  425. package/schemas/config.schema.json +1161 -0
  426. package/schemas/sandbox-config.schema.json +968 -0
@@ -0,0 +1,527 @@
1
+ import { z } from 'zod';
2
+ export declare const Id: z.ZodString;
3
+ export declare const AttachEndpoint: z.ZodObject<{
4
+ addresses: z.ZodArray<z.ZodString>;
5
+ port: z.ZodNumber;
6
+ token: z.ZodString;
7
+ }, z.core.$strict>;
8
+ /** C:\AgentData\run\sandbox.json: boot progress of the sandbox as a whole. */
9
+ export declare const SandboxStatus: z.ZodObject<{
10
+ launchId: z.ZodString;
11
+ phase: z.ZodEnum<{
12
+ provisioning: "provisioning";
13
+ booting: "booting";
14
+ ready: "ready";
15
+ failed: "failed";
16
+ }>;
17
+ message: z.ZodString;
18
+ updatedAt: z.ZodString;
19
+ workspaceHost: z.ZodString;
20
+ guestWorkspace: z.ZodString;
21
+ headless: z.ZodBoolean;
22
+ }, z.core.$strip>;
23
+ /**
24
+ * A project the host registered after boot (sandbox claude from another folder): everything the guest needs to
25
+ * provision it and run its sessions with its own environment, resolved on the host exactly like a fresh launch (its
26
+ * approved .sandbox-config.json, version files, toolchain detection, database plan). Host -> guest only.
27
+ */
28
+ export declare const ProjectSpec: z.ZodObject<{
29
+ name: z.ZodString;
30
+ workspace: z.ZodString;
31
+ workspaceHost: z.ZodString;
32
+ toolchains: z.ZodObject<{
33
+ node: z.ZodObject<{
34
+ version: z.ZodString;
35
+ extraVersions: z.ZodArray<z.ZodString>;
36
+ corepack: z.ZodBoolean;
37
+ volta: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
38
+ globalPackages: z.ZodArray<z.ZodString>;
39
+ }, z.core.$strict>;
40
+ python: z.ZodObject<{
41
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
42
+ version: z.ZodString;
43
+ python2: z.ZodBoolean;
44
+ pyenv: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
45
+ tools: z.ZodArray<z.ZodString>;
46
+ }, z.core.$strict>;
47
+ rust: z.ZodObject<{
48
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
49
+ toolchain: z.ZodString;
50
+ host: z.ZodString;
51
+ components: z.ZodArray<z.ZodString>;
52
+ targets: z.ZodArray<z.ZodString>;
53
+ crates: z.ZodArray<z.ZodString>;
54
+ targetDir: z.ZodString;
55
+ }, z.core.$strict>;
56
+ msvc: z.ZodObject<{
57
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
58
+ acceptLicense: z.ZodBoolean;
59
+ msvcVersion: z.ZodString;
60
+ sdkVersion: z.ZodString;
61
+ }, z.core.$strict>;
62
+ cpp: z.ZodObject<{
63
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
64
+ flexBison: z.ZodBoolean;
65
+ }, z.core.$strict>;
66
+ dotnet: z.ZodObject<{
67
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
68
+ channels: z.ZodArray<z.ZodString>;
69
+ tools: z.ZodArray<z.ZodString>;
70
+ workloads: z.ZodArray<z.ZodString>;
71
+ frameworkTargets: z.ZodArray<z.ZodString>;
72
+ netfx35: z.ZodBoolean;
73
+ }, z.core.$strict>;
74
+ go: z.ZodObject<{
75
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
76
+ version: z.ZodString;
77
+ tools: z.ZodArray<z.ZodString>;
78
+ }, z.core.$strict>;
79
+ java: z.ZodObject<{
80
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
81
+ version: z.ZodString;
82
+ maven: z.ZodBoolean;
83
+ gradle: z.ZodBoolean;
84
+ }, z.core.$strict>;
85
+ ruby: z.ZodObject<{
86
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
87
+ version: z.ZodString;
88
+ gems: z.ZodArray<z.ZodString>;
89
+ }, z.core.$strict>;
90
+ php: z.ZodObject<{
91
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
92
+ version: z.ZodString;
93
+ composer: z.ZodBoolean;
94
+ }, z.core.$strict>;
95
+ deno: z.ZodObject<{
96
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
97
+ }, z.core.$strict>;
98
+ pwsh: z.ZodObject<{
99
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
100
+ }, z.core.$strict>;
101
+ cli: z.ZodObject<{
102
+ gh: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
103
+ zstd: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
104
+ openssl: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
105
+ }, z.core.$strict>;
106
+ bun: z.ZodObject<{
107
+ enabled: z.ZodBoolean;
108
+ }, z.core.$strict>;
109
+ uv: z.ZodObject<{
110
+ enabled: z.ZodBoolean;
111
+ }, z.core.$strict>;
112
+ vcRuntime: z.ZodObject<{
113
+ enabled: z.ZodBoolean;
114
+ }, z.core.$strict>;
115
+ mesa: z.ZodObject<{
116
+ enabled: z.ZodBoolean;
117
+ vulkan: z.ZodBoolean;
118
+ }, z.core.$strict>;
119
+ vscode: z.ZodObject<{
120
+ enabled: z.ZodBoolean;
121
+ }, z.core.$strict>;
122
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
123
+ }, z.core.$strict>;
124
+ versions: z.ZodObject<{
125
+ node: z.ZodObject<{
126
+ spec: z.ZodString;
127
+ source: z.ZodString;
128
+ }, z.core.$strict>;
129
+ nodeExtra: z.ZodArray<z.ZodString>;
130
+ python: z.ZodObject<{
131
+ spec: z.ZodString;
132
+ source: z.ZodString;
133
+ }, z.core.$strict>;
134
+ }, z.core.$strict>;
135
+ databases: z.ZodArray<z.ZodObject<{
136
+ database: z.ZodEnum<{
137
+ postgres: "postgres";
138
+ mysql: "mysql";
139
+ mongodb: "mongodb";
140
+ redis: "redis";
141
+ dynamodb: "dynamodb";
142
+ sqlserver: "sqlserver";
143
+ }>;
144
+ reasons: z.ZodArray<z.ZodString>;
145
+ version: z.ZodString;
146
+ port: z.ZodNumber;
147
+ adminPort: z.ZodOptional<z.ZodNumber>;
148
+ }, z.core.$strict>>;
149
+ harnesses: z.ZodRecord<z.ZodString, z.ZodObject<{
150
+ hostExecutable: z.ZodOptional<z.ZodString>;
151
+ hostDir: z.ZodOptional<z.ZodString>;
152
+ npmPackage: z.ZodOptional<z.ZodString>;
153
+ npmBin: z.ZodOptional<z.ZodString>;
154
+ uvPackage: z.ZodOptional<z.ZodString>;
155
+ uvBin: z.ZodOptional<z.ZodString>;
156
+ arguments: z.ZodArray<z.ZodString>;
157
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
158
+ resumeArguments: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ }, z.core.$strict>>;
160
+ hooks: z.ZodBoolean;
161
+ }, z.core.$strict>;
162
+ /** C:\AgentData\run\requests\<id>.json: the ONLY things the host can ask the sandbox to do. */
163
+ export declare const GuestRequest: z.ZodDiscriminatedUnion<[z.ZodObject<{
164
+ kind: z.ZodLiteral<"session">;
165
+ id: z.ZodString;
166
+ harness: z.ZodString;
167
+ args: z.ZodArray<z.ZodString>;
168
+ cwd: z.ZodString;
169
+ project: z.ZodOptional<z.ZodObject<{
170
+ name: z.ZodString;
171
+ workspace: z.ZodString;
172
+ workspaceHost: z.ZodString;
173
+ toolchains: z.ZodObject<{
174
+ node: z.ZodObject<{
175
+ version: z.ZodString;
176
+ extraVersions: z.ZodArray<z.ZodString>;
177
+ corepack: z.ZodBoolean;
178
+ volta: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
179
+ globalPackages: z.ZodArray<z.ZodString>;
180
+ }, z.core.$strict>;
181
+ python: z.ZodObject<{
182
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
183
+ version: z.ZodString;
184
+ python2: z.ZodBoolean;
185
+ pyenv: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
186
+ tools: z.ZodArray<z.ZodString>;
187
+ }, z.core.$strict>;
188
+ rust: z.ZodObject<{
189
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
190
+ toolchain: z.ZodString;
191
+ host: z.ZodString;
192
+ components: z.ZodArray<z.ZodString>;
193
+ targets: z.ZodArray<z.ZodString>;
194
+ crates: z.ZodArray<z.ZodString>;
195
+ targetDir: z.ZodString;
196
+ }, z.core.$strict>;
197
+ msvc: z.ZodObject<{
198
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
199
+ acceptLicense: z.ZodBoolean;
200
+ msvcVersion: z.ZodString;
201
+ sdkVersion: z.ZodString;
202
+ }, z.core.$strict>;
203
+ cpp: z.ZodObject<{
204
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
205
+ flexBison: z.ZodBoolean;
206
+ }, z.core.$strict>;
207
+ dotnet: z.ZodObject<{
208
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
209
+ channels: z.ZodArray<z.ZodString>;
210
+ tools: z.ZodArray<z.ZodString>;
211
+ workloads: z.ZodArray<z.ZodString>;
212
+ frameworkTargets: z.ZodArray<z.ZodString>;
213
+ netfx35: z.ZodBoolean;
214
+ }, z.core.$strict>;
215
+ go: z.ZodObject<{
216
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
217
+ version: z.ZodString;
218
+ tools: z.ZodArray<z.ZodString>;
219
+ }, z.core.$strict>;
220
+ java: z.ZodObject<{
221
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
222
+ version: z.ZodString;
223
+ maven: z.ZodBoolean;
224
+ gradle: z.ZodBoolean;
225
+ }, z.core.$strict>;
226
+ ruby: z.ZodObject<{
227
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
228
+ version: z.ZodString;
229
+ gems: z.ZodArray<z.ZodString>;
230
+ }, z.core.$strict>;
231
+ php: z.ZodObject<{
232
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
233
+ version: z.ZodString;
234
+ composer: z.ZodBoolean;
235
+ }, z.core.$strict>;
236
+ deno: z.ZodObject<{
237
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
238
+ }, z.core.$strict>;
239
+ pwsh: z.ZodObject<{
240
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
241
+ }, z.core.$strict>;
242
+ cli: z.ZodObject<{
243
+ gh: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
244
+ zstd: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
245
+ openssl: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
246
+ }, z.core.$strict>;
247
+ bun: z.ZodObject<{
248
+ enabled: z.ZodBoolean;
249
+ }, z.core.$strict>;
250
+ uv: z.ZodObject<{
251
+ enabled: z.ZodBoolean;
252
+ }, z.core.$strict>;
253
+ vcRuntime: z.ZodObject<{
254
+ enabled: z.ZodBoolean;
255
+ }, z.core.$strict>;
256
+ mesa: z.ZodObject<{
257
+ enabled: z.ZodBoolean;
258
+ vulkan: z.ZodBoolean;
259
+ }, z.core.$strict>;
260
+ vscode: z.ZodObject<{
261
+ enabled: z.ZodBoolean;
262
+ }, z.core.$strict>;
263
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
264
+ }, z.core.$strict>;
265
+ versions: z.ZodObject<{
266
+ node: z.ZodObject<{
267
+ spec: z.ZodString;
268
+ source: z.ZodString;
269
+ }, z.core.$strict>;
270
+ nodeExtra: z.ZodArray<z.ZodString>;
271
+ python: z.ZodObject<{
272
+ spec: z.ZodString;
273
+ source: z.ZodString;
274
+ }, z.core.$strict>;
275
+ }, z.core.$strict>;
276
+ databases: z.ZodArray<z.ZodObject<{
277
+ database: z.ZodEnum<{
278
+ postgres: "postgres";
279
+ mysql: "mysql";
280
+ mongodb: "mongodb";
281
+ redis: "redis";
282
+ dynamodb: "dynamodb";
283
+ sqlserver: "sqlserver";
284
+ }>;
285
+ reasons: z.ZodArray<z.ZodString>;
286
+ version: z.ZodString;
287
+ port: z.ZodNumber;
288
+ adminPort: z.ZodOptional<z.ZodNumber>;
289
+ }, z.core.$strict>>;
290
+ harnesses: z.ZodRecord<z.ZodString, z.ZodObject<{
291
+ hostExecutable: z.ZodOptional<z.ZodString>;
292
+ hostDir: z.ZodOptional<z.ZodString>;
293
+ npmPackage: z.ZodOptional<z.ZodString>;
294
+ npmBin: z.ZodOptional<z.ZodString>;
295
+ uvPackage: z.ZodOptional<z.ZodString>;
296
+ uvBin: z.ZodOptional<z.ZodString>;
297
+ arguments: z.ZodArray<z.ZodString>;
298
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
299
+ resumeArguments: z.ZodOptional<z.ZodArray<z.ZodString>>;
300
+ }, z.core.$strict>>;
301
+ hooks: z.ZodBoolean;
302
+ }, z.core.$strict>>;
303
+ harnessSpec: z.ZodOptional<z.ZodObject<{
304
+ hostExecutable: z.ZodOptional<z.ZodString>;
305
+ hostDir: z.ZodOptional<z.ZodString>;
306
+ npmPackage: z.ZodOptional<z.ZodString>;
307
+ npmBin: z.ZodOptional<z.ZodString>;
308
+ uvPackage: z.ZodOptional<z.ZodString>;
309
+ uvBin: z.ZodOptional<z.ZodString>;
310
+ arguments: z.ZodArray<z.ZodString>;
311
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
312
+ resumeArguments: z.ZodOptional<z.ZodArray<z.ZodString>>;
313
+ }, z.core.$strict>>;
314
+ createdAt: z.ZodString;
315
+ }, z.core.$strict>, z.ZodObject<{
316
+ kind: z.ZodLiteral<"project">;
317
+ id: z.ZodString;
318
+ project: z.ZodObject<{
319
+ name: z.ZodString;
320
+ workspace: z.ZodString;
321
+ workspaceHost: z.ZodString;
322
+ toolchains: z.ZodObject<{
323
+ node: z.ZodObject<{
324
+ version: z.ZodString;
325
+ extraVersions: z.ZodArray<z.ZodString>;
326
+ corepack: z.ZodBoolean;
327
+ volta: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
328
+ globalPackages: z.ZodArray<z.ZodString>;
329
+ }, z.core.$strict>;
330
+ python: z.ZodObject<{
331
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
332
+ version: z.ZodString;
333
+ python2: z.ZodBoolean;
334
+ pyenv: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
335
+ tools: z.ZodArray<z.ZodString>;
336
+ }, z.core.$strict>;
337
+ rust: z.ZodObject<{
338
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
339
+ toolchain: z.ZodString;
340
+ host: z.ZodString;
341
+ components: z.ZodArray<z.ZodString>;
342
+ targets: z.ZodArray<z.ZodString>;
343
+ crates: z.ZodArray<z.ZodString>;
344
+ targetDir: z.ZodString;
345
+ }, z.core.$strict>;
346
+ msvc: z.ZodObject<{
347
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
348
+ acceptLicense: z.ZodBoolean;
349
+ msvcVersion: z.ZodString;
350
+ sdkVersion: z.ZodString;
351
+ }, z.core.$strict>;
352
+ cpp: z.ZodObject<{
353
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
354
+ flexBison: z.ZodBoolean;
355
+ }, z.core.$strict>;
356
+ dotnet: z.ZodObject<{
357
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
358
+ channels: z.ZodArray<z.ZodString>;
359
+ tools: z.ZodArray<z.ZodString>;
360
+ workloads: z.ZodArray<z.ZodString>;
361
+ frameworkTargets: z.ZodArray<z.ZodString>;
362
+ netfx35: z.ZodBoolean;
363
+ }, z.core.$strict>;
364
+ go: z.ZodObject<{
365
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
366
+ version: z.ZodString;
367
+ tools: z.ZodArray<z.ZodString>;
368
+ }, z.core.$strict>;
369
+ java: z.ZodObject<{
370
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
371
+ version: z.ZodString;
372
+ maven: z.ZodBoolean;
373
+ gradle: z.ZodBoolean;
374
+ }, z.core.$strict>;
375
+ ruby: z.ZodObject<{
376
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
377
+ version: z.ZodString;
378
+ gems: z.ZodArray<z.ZodString>;
379
+ }, z.core.$strict>;
380
+ php: z.ZodObject<{
381
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
382
+ version: z.ZodString;
383
+ composer: z.ZodBoolean;
384
+ }, z.core.$strict>;
385
+ deno: z.ZodObject<{
386
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
387
+ }, z.core.$strict>;
388
+ pwsh: z.ZodObject<{
389
+ enabled: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
390
+ }, z.core.$strict>;
391
+ cli: z.ZodObject<{
392
+ gh: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
393
+ zstd: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
394
+ openssl: z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"auto">]>;
395
+ }, z.core.$strict>;
396
+ bun: z.ZodObject<{
397
+ enabled: z.ZodBoolean;
398
+ }, z.core.$strict>;
399
+ uv: z.ZodObject<{
400
+ enabled: z.ZodBoolean;
401
+ }, z.core.$strict>;
402
+ vcRuntime: z.ZodObject<{
403
+ enabled: z.ZodBoolean;
404
+ }, z.core.$strict>;
405
+ mesa: z.ZodObject<{
406
+ enabled: z.ZodBoolean;
407
+ vulkan: z.ZodBoolean;
408
+ }, z.core.$strict>;
409
+ vscode: z.ZodObject<{
410
+ enabled: z.ZodBoolean;
411
+ }, z.core.$strict>;
412
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
413
+ }, z.core.$strict>;
414
+ versions: z.ZodObject<{
415
+ node: z.ZodObject<{
416
+ spec: z.ZodString;
417
+ source: z.ZodString;
418
+ }, z.core.$strict>;
419
+ nodeExtra: z.ZodArray<z.ZodString>;
420
+ python: z.ZodObject<{
421
+ spec: z.ZodString;
422
+ source: z.ZodString;
423
+ }, z.core.$strict>;
424
+ }, z.core.$strict>;
425
+ databases: z.ZodArray<z.ZodObject<{
426
+ database: z.ZodEnum<{
427
+ postgres: "postgres";
428
+ mysql: "mysql";
429
+ mongodb: "mongodb";
430
+ redis: "redis";
431
+ dynamodb: "dynamodb";
432
+ sqlserver: "sqlserver";
433
+ }>;
434
+ reasons: z.ZodArray<z.ZodString>;
435
+ version: z.ZodString;
436
+ port: z.ZodNumber;
437
+ adminPort: z.ZodOptional<z.ZodNumber>;
438
+ }, z.core.$strict>>;
439
+ harnesses: z.ZodRecord<z.ZodString, z.ZodObject<{
440
+ hostExecutable: z.ZodOptional<z.ZodString>;
441
+ hostDir: z.ZodOptional<z.ZodString>;
442
+ npmPackage: z.ZodOptional<z.ZodString>;
443
+ npmBin: z.ZodOptional<z.ZodString>;
444
+ uvPackage: z.ZodOptional<z.ZodString>;
445
+ uvBin: z.ZodOptional<z.ZodString>;
446
+ arguments: z.ZodArray<z.ZodString>;
447
+ environment: z.ZodRecord<z.ZodString, z.ZodString>;
448
+ resumeArguments: z.ZodOptional<z.ZodArray<z.ZodString>>;
449
+ }, z.core.$strict>>;
450
+ hooks: z.ZodBoolean;
451
+ }, z.core.$strict>;
452
+ createdAt: z.ZodString;
453
+ }, z.core.$strict>, z.ZodObject<{
454
+ kind: z.ZodLiteral<"exec">;
455
+ id: z.ZodString;
456
+ command: z.ZodArray<z.ZodString>;
457
+ cwd: z.ZodString;
458
+ timeoutSeconds: z.ZodNumber;
459
+ createdAt: z.ZodString;
460
+ }, z.core.$strict>, z.ZodObject<{
461
+ kind: z.ZodLiteral<"restart">;
462
+ id: z.ZodString;
463
+ harness: z.ZodNullable<z.ZodString>;
464
+ cwd: z.ZodOptional<z.ZodString>;
465
+ createdAt: z.ZodString;
466
+ }, z.core.$strict>, z.ZodObject<{
467
+ kind: z.ZodLiteral<"ping">;
468
+ id: z.ZodString;
469
+ createdAt: z.ZodString;
470
+ }, z.core.$strict>], "kind">;
471
+ /** C:\AgentData\run\responses\<id>.json: the guest's reply. */
472
+ export declare const GuestResponse: z.ZodObject<{
473
+ id: z.ZodString;
474
+ ok: z.ZodBoolean;
475
+ message: z.ZodString;
476
+ exitCode: z.ZodOptional<z.ZodNumber>;
477
+ stdout: z.ZodOptional<z.ZodString>;
478
+ stderr: z.ZodOptional<z.ZodString>;
479
+ finishedAt: z.ZodString;
480
+ }, z.core.$strip>;
481
+ /** C:\AgentData\run\sessions\<id>.json: one agent session (its own pseudo console and terminal tab). */
482
+ export declare const SessionStatus: z.ZodObject<{
483
+ id: z.ZodString;
484
+ launchId: z.ZodString;
485
+ harness: z.ZodString;
486
+ cwd: z.ZodString;
487
+ project: z.ZodOptional<z.ZodString>;
488
+ phase: z.ZodEnum<{
489
+ failed: "failed";
490
+ starting: "starting";
491
+ running: "running";
492
+ exited: "exited";
493
+ }>;
494
+ message: z.ZodString;
495
+ updatedAt: z.ZodString;
496
+ startedAt: z.ZodString;
497
+ exitCode: z.ZodOptional<z.ZodNumber>;
498
+ attach: z.ZodOptional<z.ZodObject<{
499
+ addresses: z.ZodArray<z.ZodString>;
500
+ port: z.ZodNumber;
501
+ token: z.ZodString;
502
+ }, z.core.$strict>>;
503
+ }, z.core.$strip>;
504
+ /** C:\AgentData\run\projects\<name>.json: how far a project's provisioning is (guest-written, so validated and capped). */
505
+ export declare const ProjectStatus: z.ZodObject<{
506
+ name: z.ZodString;
507
+ workspace: z.ZodString;
508
+ phase: z.ZodEnum<{
509
+ provisioning: "provisioning";
510
+ ready: "ready";
511
+ failed: "failed";
512
+ }>;
513
+ message: z.ZodString;
514
+ updatedAt: z.ZodString;
515
+ databases: z.ZodArray<z.ZodObject<{
516
+ database: z.ZodString;
517
+ port: z.ZodNumber;
518
+ }, z.core.$strip>>;
519
+ summary: z.ZodArray<z.ZodString>;
520
+ }, z.core.$strip>;
521
+ export type ProjectSpecT = z.output<typeof ProjectSpec>;
522
+ export type ProjectStatusT = z.output<typeof ProjectStatus>;
523
+ export type AttachEndpointT = z.output<typeof AttachEndpoint>;
524
+ export type SandboxStatusT = z.output<typeof SandboxStatus>;
525
+ export type GuestRequestT = z.output<typeof GuestRequest>;
526
+ export type GuestResponseT = z.output<typeof GuestResponse>;
527
+ export type SessionStatusT = z.output<typeof SessionStatus>;
@@ -0,0 +1,90 @@
1
+ // The host <-> sandbox channel messages, defined once with zod. Both sides parse what they read: the guest only acts on
2
+ // these request kinds, and the host treats everything the guest writes as untrusted (shapes checked, sizes capped).
3
+ import { z } from 'zod';
4
+ import { Harness, Toolchains } from '../core/schema.js';
5
+ export const Id = z.string().regex(/^[A-Za-z0-9_-]{1,64}$/, 'invalid id');
6
+ const Text = (max = 4096) => z.string().max(max);
7
+ const Time = Text(64);
8
+ export const AttachEndpoint = z.strictObject({
9
+ addresses: z.array(Text(64)).max(16),
10
+ port: z.number().int().min(1024).max(65535),
11
+ token: Text(256),
12
+ });
13
+ /** C:\AgentData\run\sandbox.json: boot progress of the sandbox as a whole. */
14
+ export const SandboxStatus = z.object({
15
+ launchId: Text(64),
16
+ phase: z.enum(['booting', 'provisioning', 'ready', 'failed']),
17
+ message: Text(),
18
+ updatedAt: Time,
19
+ workspaceHost: Text(),
20
+ guestWorkspace: Text(),
21
+ headless: z.boolean(),
22
+ });
23
+ const Version = z.strictObject({ spec: Text(128), source: Text(256) });
24
+ const DatabasePlan = z.strictObject({
25
+ database: z.enum(['postgres', 'mysql', 'sqlserver', 'mongodb', 'redis', 'dynamodb']),
26
+ reasons: z.array(Text(1024)).max(32), version: Text(64), port: z.number().int().min(1024).max(65535), adminPort: z.number().int().min(1024).max(65535).optional(),
27
+ });
28
+ /**
29
+ * A project the host registered after boot (sandbox claude from another folder): everything the guest needs to
30
+ * provision it and run its sessions with its own environment, resolved on the host exactly like a fresh launch (its
31
+ * approved .sandbox-config.json, version files, toolchain detection, database plan). Host -> guest only.
32
+ */
33
+ export const ProjectSpec = z.strictObject({
34
+ name: Id,
35
+ /** Inside the sandbox: C:\Projects\<name>. */
36
+ workspace: Text(1024),
37
+ workspaceHost: Text(1024),
38
+ toolchains: Toolchains,
39
+ versions: z.strictObject({ node: Version, nodeExtra: z.array(Text(128)).max(16), python: Version }),
40
+ databases: z.array(DatabasePlan).max(8),
41
+ /** Agents this project may start that the sandbox did not boot with (its .sandbox-config.json "harness"). */
42
+ harnesses: z.record(Text(64), Harness).refine((h) => Object.keys(h).length <= 8, 'at most 8 agents'),
43
+ /** Its hooks were staged in C:\AgentLaunch\projects\<name>\hooks. */
44
+ hooks: z.boolean(),
45
+ });
46
+ /** C:\AgentData\run\requests\<id>.json: the ONLY things the host can ask the sandbox to do. */
47
+ export const GuestRequest = z.discriminatedUnion('kind', [
48
+ z.strictObject({ kind: z.literal('session'), id: Id, harness: Text(64), args: z.array(Text()).max(256), cwd: Text(), project: ProjectSpec.optional(), harnessSpec: Harness.optional(), createdAt: Time }),
49
+ /** Provision a registered project without starting an agent (sandbox start / exec / db from its folder). */
50
+ z.strictObject({ kind: z.literal('project'), id: Id, project: ProjectSpec, createdAt: Time }),
51
+ z.strictObject({ kind: z.literal('exec'), id: Id, command: z.array(Text()).min(1).max(256), cwd: Text(), timeoutSeconds: z.number().positive().max(86400), createdAt: Time }),
52
+ /** cwd: only the sessions in this folder or below (one project's); omitted = every session. */
53
+ z.strictObject({ kind: z.literal('restart'), id: Id, harness: Text(64).nullable(), cwd: Text().optional(), createdAt: Time }),
54
+ z.strictObject({ kind: z.literal('ping'), id: Id, createdAt: Time }),
55
+ ]);
56
+ /** C:\AgentData\run\responses\<id>.json: the guest's reply. */
57
+ export const GuestResponse = z.object({
58
+ id: Id,
59
+ ok: z.boolean(),
60
+ message: Text(65536),
61
+ exitCode: z.number().int().optional(),
62
+ stdout: Text(4 * 1024 * 1024).optional(),
63
+ stderr: Text(4 * 1024 * 1024).optional(),
64
+ finishedAt: Time,
65
+ });
66
+ /** C:\AgentData\run\sessions\<id>.json: one agent session (its own pseudo console and terminal tab). */
67
+ export const SessionStatus = z.object({
68
+ id: Id,
69
+ launchId: Text(64),
70
+ harness: Text(64),
71
+ cwd: Text(),
72
+ /** The project it runs in: its hub name, or the launch folder's for the first project. */
73
+ project: Text(64).optional(),
74
+ phase: z.enum(['starting', 'running', 'exited', 'failed']),
75
+ message: Text(),
76
+ updatedAt: Time,
77
+ startedAt: Time,
78
+ exitCode: z.number().int().optional(),
79
+ attach: AttachEndpoint.optional(),
80
+ });
81
+ /** C:\AgentData\run\projects\<name>.json: how far a project's provisioning is (guest-written, so validated and capped). */
82
+ export const ProjectStatus = z.object({
83
+ name: Id,
84
+ workspace: Text(1024),
85
+ phase: z.enum(['provisioning', 'ready', 'failed']),
86
+ message: Text(),
87
+ updatedAt: Time,
88
+ databases: z.array(z.object({ database: Text(32), port: z.number().int() })).max(16),
89
+ summary: z.array(Text(512)).max(64),
90
+ });
@@ -0,0 +1,15 @@
1
+ export declare const system32: (exe: string) => string;
2
+ export declare const SYSTEM: {
3
+ readonly cmd: () => string;
4
+ readonly powershell: () => string;
5
+ readonly tasklist: () => string;
6
+ readonly tar: () => string;
7
+ readonly reg: () => string;
8
+ readonly netsh: () => string;
9
+ readonly netstat: () => string;
10
+ readonly route: () => string;
11
+ readonly ipconfig: () => string;
12
+ readonly robocopy: () => string;
13
+ readonly shutdown: () => string;
14
+ readonly dism: () => string;
15
+ };
@@ -0,0 +1,19 @@
1
+ // Absolute paths for the Windows programs agent-sandbox runs. Never spawn them by bare name: Windows looks in the
2
+ // current folder before PATH, and the current folder is often the workspace, which the sandbox can write.
3
+ import path from 'node:path';
4
+ const systemRoot = () => process.env.SystemRoot ?? process.env.WINDIR ?? 'C:\\Windows';
5
+ export const system32 = (exe) => path.join(systemRoot(), 'System32', exe);
6
+ export const SYSTEM = {
7
+ cmd: () => system32('cmd.exe'),
8
+ powershell: () => system32('WindowsPowerShell\\v1.0\\powershell.exe'),
9
+ tasklist: () => system32('tasklist.exe'),
10
+ tar: () => system32('tar.exe'),
11
+ reg: () => system32('reg.exe'),
12
+ netsh: () => system32('netsh.exe'),
13
+ netstat: () => system32('NETSTAT.EXE'),
14
+ route: () => system32('ROUTE.EXE'),
15
+ ipconfig: () => system32('ipconfig.exe'),
16
+ robocopy: () => system32('Robocopy.exe'),
17
+ shutdown: () => system32('shutdown.exe'),
18
+ dism: () => system32('Dism.exe'),
19
+ };
@@ -0,0 +1,4 @@
1
+ export declare const selfTestRunning: () => boolean;
2
+ /** Why the self-test may not write, copy or delete at `target` (anywhere but the temp folder), or null. */
3
+ export declare const testWriteRefusal: (target: string) => string | null;
4
+ export declare const assertTestWritable: (target: string) => void;