@namzu/sdk 30.2.0 → 31.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 (718) hide show
  1. package/CHANGELOG.md +562 -0
  2. package/README.md +43 -2
  3. package/dist/advisory/executor.d.ts +2 -1
  4. package/dist/advisory/executor.d.ts.map +1 -1
  5. package/dist/advisory/executor.js +4 -1
  6. package/dist/advisory/executor.js.map +1 -1
  7. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  8. package/dist/agents/ReactiveAgent.js +12 -0
  9. package/dist/agents/ReactiveAgent.js.map +1 -1
  10. package/dist/agents/RouterAgent.d.ts.map +1 -1
  11. package/dist/agents/RouterAgent.js +21 -3
  12. package/dist/agents/RouterAgent.js.map +1 -1
  13. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  14. package/dist/agents/SupervisorAgent.js +34 -11
  15. package/dist/agents/SupervisorAgent.js.map +1 -1
  16. package/dist/agents/runAgent.d.ts +12 -0
  17. package/dist/agents/runAgent.d.ts.map +1 -1
  18. package/dist/agents/runAgent.js +26 -2
  19. package/dist/agents/runAgent.js.map +1 -1
  20. package/dist/authorization/command-line.d.ts +81 -0
  21. package/dist/authorization/command-line.d.ts.map +1 -0
  22. package/dist/authorization/command-line.js +347 -0
  23. package/dist/authorization/command-line.js.map +1 -0
  24. package/dist/authorization/rules.d.ts.map +1 -1
  25. package/dist/authorization/rules.js +22 -1
  26. package/dist/authorization/rules.js.map +1 -1
  27. package/dist/bridge/a2a/client.d.ts +23 -5
  28. package/dist/bridge/a2a/client.d.ts.map +1 -1
  29. package/dist/bridge/a2a/client.js +320 -73
  30. package/dist/bridge/a2a/client.js.map +1 -1
  31. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  32. package/dist/bridge/a2a/mapper.js +4 -0
  33. package/dist/bridge/a2a/mapper.js.map +1 -1
  34. package/dist/bridge/acp/server.d.ts +13 -1
  35. package/dist/bridge/acp/server.d.ts.map +1 -1
  36. package/dist/bridge/acp/server.js +150 -44
  37. package/dist/bridge/acp/server.js.map +1 -1
  38. package/dist/bridge/mcp/connector/adapter.d.ts +3 -2
  39. package/dist/bridge/mcp/connector/adapter.d.ts.map +1 -1
  40. package/dist/bridge/mcp/connector/adapter.js +17 -21
  41. package/dist/bridge/mcp/connector/adapter.js.map +1 -1
  42. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  43. package/dist/bridge/sse/mapper.js +3 -0
  44. package/dist/bridge/sse/mapper.js.map +1 -1
  45. package/dist/compaction/dangling.d.ts +29 -2
  46. package/dist/compaction/dangling.d.ts.map +1 -1
  47. package/dist/compaction/dangling.js +172 -35
  48. package/dist/compaction/dangling.js.map +1 -1
  49. package/dist/compaction/index.d.ts +3 -2
  50. package/dist/compaction/index.d.ts.map +1 -1
  51. package/dist/compaction/index.js +1 -1
  52. package/dist/compaction/index.js.map +1 -1
  53. package/dist/compaction/manual.d.ts +11 -1
  54. package/dist/compaction/manual.d.ts.map +1 -1
  55. package/dist/compaction/manual.js +89 -14
  56. package/dist/compaction/manual.js.map +1 -1
  57. package/dist/compaction/plan.d.ts +19 -6
  58. package/dist/compaction/plan.d.ts.map +1 -1
  59. package/dist/compaction/plan.js +18 -4
  60. package/dist/compaction/plan.js.map +1 -1
  61. package/dist/compaction/retention.d.ts +10 -7
  62. package/dist/compaction/retention.d.ts.map +1 -1
  63. package/dist/compaction/retention.js +26 -8
  64. package/dist/compaction/retention.js.map +1 -1
  65. package/dist/compaction/summary.d.ts +4 -4
  66. package/dist/compaction/summary.js +4 -4
  67. package/dist/compaction/verifier.d.ts +19 -1
  68. package/dist/compaction/verifier.d.ts.map +1 -1
  69. package/dist/compaction/verifier.js +20 -1
  70. package/dist/compaction/verifier.js.map +1 -1
  71. package/dist/config/runtime.d.ts +6 -6
  72. package/dist/connector/BaseConnector.d.ts +6 -4
  73. package/dist/connector/BaseConnector.d.ts.map +1 -1
  74. package/dist/connector/BaseConnector.js +8 -2
  75. package/dist/connector/BaseConnector.js.map +1 -1
  76. package/dist/connector/builtins/http.d.ts +16 -4
  77. package/dist/connector/builtins/http.d.ts.map +1 -1
  78. package/dist/connector/builtins/http.js +177 -44
  79. package/dist/connector/builtins/http.js.map +1 -1
  80. package/dist/connector/builtins/webhook.d.ts +15 -4
  81. package/dist/connector/builtins/webhook.d.ts.map +1 -1
  82. package/dist/connector/builtins/webhook.js +165 -45
  83. package/dist/connector/builtins/webhook.js.map +1 -1
  84. package/dist/connector/execution-contract.d.ts +11 -0
  85. package/dist/connector/execution-contract.d.ts.map +1 -0
  86. package/dist/connector/execution-contract.js +14 -0
  87. package/dist/connector/execution-contract.js.map +1 -0
  88. package/dist/connector/http-operation.d.ts +48 -0
  89. package/dist/connector/http-operation.d.ts.map +1 -0
  90. package/dist/connector/http-operation.js +205 -0
  91. package/dist/connector/http-operation.js.map +1 -0
  92. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  93. package/dist/connector/mcp/adapter.js +8 -3
  94. package/dist/connector/mcp/adapter.js.map +1 -1
  95. package/dist/connector/mcp/client.d.ts +14 -8
  96. package/dist/connector/mcp/client.d.ts.map +1 -1
  97. package/dist/connector/mcp/client.js +160 -44
  98. package/dist/connector/mcp/client.js.map +1 -1
  99. package/dist/connector/mcp/http-sse.d.ts +8 -2
  100. package/dist/connector/mcp/http-sse.d.ts.map +1 -1
  101. package/dist/connector/mcp/http-sse.js +70 -17
  102. package/dist/connector/mcp/http-sse.js.map +1 -1
  103. package/dist/connector/mcp/prompt-adapter.d.ts.map +1 -1
  104. package/dist/connector/mcp/prompt-adapter.js +9 -2
  105. package/dist/connector/mcp/prompt-adapter.js.map +1 -1
  106. package/dist/connector/mcp/stdio.d.ts +2 -2
  107. package/dist/connector/mcp/stdio.d.ts.map +1 -1
  108. package/dist/connector/mcp/stdio.js +14 -50
  109. package/dist/connector/mcp/stdio.js.map +1 -1
  110. package/dist/connector/mcp/streamable-http.d.ts +7 -2
  111. package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
  112. package/dist/connector/mcp/streamable-http.js +66 -18
  113. package/dist/connector/mcp/streamable-http.js.map +1 -1
  114. package/dist/connector/tools/adapter.d.ts +2 -2
  115. package/dist/connector/tools/adapter.d.ts.map +1 -1
  116. package/dist/connector/tools/adapter.js +23 -14
  117. package/dist/connector/tools/adapter.js.map +1 -1
  118. package/dist/connector/tools/definitions.d.ts.map +1 -1
  119. package/dist/connector/tools/definitions.js +5 -2
  120. package/dist/connector/tools/definitions.js.map +1 -1
  121. package/dist/connector/tools/result.d.ts +4 -0
  122. package/dist/connector/tools/result.d.ts.map +1 -0
  123. package/dist/connector/tools/result.js +20 -0
  124. package/dist/connector/tools/result.js.map +1 -0
  125. package/dist/connector/web/guarded-fetch.d.ts +4 -2
  126. package/dist/connector/web/guarded-fetch.d.ts.map +1 -1
  127. package/dist/connector/web/guarded-fetch.js +157 -43
  128. package/dist/connector/web/guarded-fetch.js.map +1 -1
  129. package/dist/constants/sandbox/index.d.ts +3 -2
  130. package/dist/constants/sandbox/index.d.ts.map +1 -1
  131. package/dist/constants/sandbox/index.js +3 -2
  132. package/dist/constants/sandbox/index.js.map +1 -1
  133. package/dist/contracts/api.d.ts +2 -0
  134. package/dist/contracts/api.d.ts.map +1 -1
  135. package/dist/contracts/schemas.d.ts +38 -12
  136. package/dist/contracts/schemas.d.ts.map +1 -1
  137. package/dist/contracts/schemas.js +7 -0
  138. package/dist/contracts/schemas.js.map +1 -1
  139. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  140. package/dist/directory/derive-supervisor.js +8 -0
  141. package/dist/directory/derive-supervisor.js.map +1 -1
  142. package/dist/directory/derive.d.ts.map +1 -1
  143. package/dist/directory/derive.js +8 -0
  144. package/dist/directory/derive.js.map +1 -1
  145. package/dist/directory/load.d.ts.map +1 -1
  146. package/dist/directory/load.js +2 -0
  147. package/dist/directory/load.js.map +1 -1
  148. package/dist/directory/types.d.ts +4 -0
  149. package/dist/directory/types.d.ts.map +1 -1
  150. package/dist/eval/experiment.d.ts +10 -10
  151. package/dist/eval/experiment.d.ts.map +1 -1
  152. package/dist/eval/experiment.js +121 -91
  153. package/dist/eval/experiment.js.map +1 -1
  154. package/dist/eval/judge.d.ts +6 -0
  155. package/dist/eval/judge.d.ts.map +1 -1
  156. package/dist/eval/judge.js +7 -2
  157. package/dist/eval/judge.js.map +1 -1
  158. package/dist/eval/types.d.ts +7 -1
  159. package/dist/eval/types.d.ts.map +1 -1
  160. package/dist/manager/agent/lifecycle.d.ts +12 -10
  161. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  162. package/dist/manager/agent/lifecycle.js +16 -3
  163. package/dist/manager/agent/lifecycle.js.map +1 -1
  164. package/dist/manager/connector/environment.d.ts +2 -2
  165. package/dist/manager/connector/environment.d.ts.map +1 -1
  166. package/dist/manager/connector/environment.js +2 -2
  167. package/dist/manager/connector/environment.js.map +1 -1
  168. package/dist/manager/connector/lifecycle.d.ts +10 -2
  169. package/dist/manager/connector/lifecycle.d.ts.map +1 -1
  170. package/dist/manager/connector/lifecycle.js +273 -24
  171. package/dist/manager/connector/lifecycle.js.map +1 -1
  172. package/dist/manager/connector/tenant.d.ts +5 -4
  173. package/dist/manager/connector/tenant.d.ts.map +1 -1
  174. package/dist/manager/connector/tenant.js +47 -22
  175. package/dist/manager/connector/tenant.js.map +1 -1
  176. package/dist/manager/goal/activation.d.ts +23 -0
  177. package/dist/manager/goal/activation.d.ts.map +1 -0
  178. package/dist/manager/goal/activation.js +41 -0
  179. package/dist/manager/goal/activation.js.map +1 -0
  180. package/dist/manager/index.d.ts +3 -2
  181. package/dist/manager/index.d.ts.map +1 -1
  182. package/dist/manager/index.js.map +1 -1
  183. package/dist/manager/run/persistence.d.ts +2 -0
  184. package/dist/manager/run/persistence.d.ts.map +1 -1
  185. package/dist/manager/run/persistence.js +5 -1
  186. package/dist/manager/run/persistence.js.map +1 -1
  187. package/dist/manager/topic/dependency.d.ts +24 -0
  188. package/dist/manager/topic/dependency.d.ts.map +1 -0
  189. package/dist/manager/topic/dependency.js +13 -0
  190. package/dist/manager/topic/dependency.js.map +1 -0
  191. package/dist/manager/topic/lifecycle.d.ts +9 -21
  192. package/dist/manager/topic/lifecycle.d.ts.map +1 -1
  193. package/dist/manager/topic/lifecycle.js +17 -29
  194. package/dist/manager/topic/lifecycle.js.map +1 -1
  195. package/dist/plugin/index.d.ts +1 -0
  196. package/dist/plugin/index.d.ts.map +1 -1
  197. package/dist/plugin/index.js.map +1 -1
  198. package/dist/plugin/lifecycle.d.ts +15 -0
  199. package/dist/plugin/lifecycle.d.ts.map +1 -1
  200. package/dist/plugin/lifecycle.js +144 -38
  201. package/dist/plugin/lifecycle.js.map +1 -1
  202. package/dist/plugin/loader.d.ts +3 -3
  203. package/dist/plugin/loader.d.ts.map +1 -1
  204. package/dist/plugin/loader.js +58 -12
  205. package/dist/plugin/loader.js.map +1 -1
  206. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  207. package/dist/provider/collect-chat-completion.js +4 -0
  208. package/dist/provider/collect-chat-completion.js.map +1 -1
  209. package/dist/provider/fallback.d.ts +3 -1
  210. package/dist/provider/fallback.d.ts.map +1 -1
  211. package/dist/provider/fallback.js +62 -10
  212. package/dist/provider/fallback.js.map +1 -1
  213. package/dist/provider/idle-timeout.d.ts +4 -0
  214. package/dist/provider/idle-timeout.d.ts.map +1 -1
  215. package/dist/provider/idle-timeout.js +131 -15
  216. package/dist/provider/idle-timeout.js.map +1 -1
  217. package/dist/provider/index.d.ts +2 -0
  218. package/dist/provider/index.d.ts.map +1 -1
  219. package/dist/provider/index.js +1 -0
  220. package/dist/provider/index.js.map +1 -1
  221. package/dist/provider/instrumentation.d.ts.map +1 -1
  222. package/dist/provider/instrumentation.js +1 -0
  223. package/dist/provider/instrumentation.js.map +1 -1
  224. package/dist/provider/retry.d.ts.map +1 -1
  225. package/dist/provider/retry.js +13 -1
  226. package/dist/provider/retry.js.map +1 -1
  227. package/dist/public-runtime.d.ts +57 -24
  228. package/dist/public-runtime.d.ts.map +1 -1
  229. package/dist/public-runtime.js +42 -35
  230. package/dist/public-runtime.js.map +1 -1
  231. package/dist/public-tools.d.ts +1 -0
  232. package/dist/public-tools.d.ts.map +1 -1
  233. package/dist/public-tools.js +5 -0
  234. package/dist/public-tools.js.map +1 -1
  235. package/dist/public-types.d.ts +33 -12
  236. package/dist/public-types.d.ts.map +1 -1
  237. package/dist/rag/embedding.d.ts +8 -3
  238. package/dist/rag/embedding.d.ts.map +1 -1
  239. package/dist/rag/embedding.js +120 -9
  240. package/dist/rag/embedding.js.map +1 -1
  241. package/dist/rag/index.d.ts +1 -1
  242. package/dist/rag/index.d.ts.map +1 -1
  243. package/dist/rag/index.js +1 -1
  244. package/dist/rag/index.js.map +1 -1
  245. package/dist/rag/ingestion.d.ts +2 -2
  246. package/dist/rag/ingestion.d.ts.map +1 -1
  247. package/dist/rag/ingestion.js +15 -3
  248. package/dist/rag/ingestion.js.map +1 -1
  249. package/dist/rag/knowledge-base.d.ts +3 -3
  250. package/dist/rag/knowledge-base.d.ts.map +1 -1
  251. package/dist/rag/knowledge-base.js +8 -4
  252. package/dist/rag/knowledge-base.js.map +1 -1
  253. package/dist/rag/operation.d.ts +10 -0
  254. package/dist/rag/operation.d.ts.map +1 -0
  255. package/dist/rag/operation.js +26 -0
  256. package/dist/rag/operation.js.map +1 -0
  257. package/dist/rag/rag-tool.d.ts.map +1 -1
  258. package/dist/rag/rag-tool.js +6 -3
  259. package/dist/rag/rag-tool.js.map +1 -1
  260. package/dist/rag/retriever.d.ts +2 -2
  261. package/dist/rag/retriever.d.ts.map +1 -1
  262. package/dist/rag/retriever.js +31 -15
  263. package/dist/rag/retriever.js.map +1 -1
  264. package/dist/rag/vector-store.d.ts +3 -3
  265. package/dist/rag/vector-store.d.ts.map +1 -1
  266. package/dist/rag/vector-store.js +4 -2
  267. package/dist/rag/vector-store.js.map +1 -1
  268. package/dist/registry/command/kernel-commands.d.ts +16 -4
  269. package/dist/registry/command/kernel-commands.d.ts.map +1 -1
  270. package/dist/registry/command/kernel-commands.js +171 -0
  271. package/dist/registry/command/kernel-commands.js.map +1 -1
  272. package/dist/run/reporter.d.ts.map +1 -1
  273. package/dist/run/reporter.js +9 -0
  274. package/dist/run/reporter.js.map +1 -1
  275. package/dist/run-query/index.d.ts +15 -1
  276. package/dist/run-query/index.d.ts.map +1 -1
  277. package/dist/run-query/index.js +69 -15
  278. package/dist/run-query/index.js.map +1 -1
  279. package/dist/runtime/query/context.d.ts.map +1 -1
  280. package/dist/runtime/query/context.js +10 -3
  281. package/dist/runtime/query/context.js.map +1 -1
  282. package/dist/runtime/query/executor.d.ts +3 -0
  283. package/dist/runtime/query/executor.d.ts.map +1 -1
  284. package/dist/runtime/query/executor.js +80 -18
  285. package/dist/runtime/query/executor.js.map +1 -1
  286. package/dist/runtime/query/guard.d.ts +9 -0
  287. package/dist/runtime/query/guard.d.ts.map +1 -1
  288. package/dist/runtime/query/guard.js +11 -0
  289. package/dist/runtime/query/guard.js.map +1 -1
  290. package/dist/runtime/query/index.d.ts +30 -1
  291. package/dist/runtime/query/index.d.ts.map +1 -1
  292. package/dist/runtime/query/index.js +548 -95
  293. package/dist/runtime/query/index.js.map +1 -1
  294. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  295. package/dist/runtime/query/iteration/index.js +74 -14
  296. package/dist/runtime/query/iteration/index.js.map +1 -1
  297. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  298. package/dist/runtime/query/iteration/phases/compaction.js +94 -53
  299. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  300. package/dist/runtime/query/iteration/phases/context.d.ts +3 -0
  301. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  302. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  303. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  304. package/dist/runtime/query/iteration/phases/tool-review.js +21 -0
  305. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  306. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  307. package/dist/runtime/query/iteration/stream-turn.js +4 -0
  308. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  309. package/dist/runtime/query/project-instructions.d.ts +69 -0
  310. package/dist/runtime/query/project-instructions.d.ts.map +1 -0
  311. package/dist/runtime/query/project-instructions.js +137 -0
  312. package/dist/runtime/query/project-instructions.js.map +1 -0
  313. package/dist/runtime/query/request-rich-content.d.ts +22 -0
  314. package/dist/runtime/query/request-rich-content.d.ts.map +1 -0
  315. package/dist/runtime/query/request-rich-content.js +122 -0
  316. package/dist/runtime/query/request-rich-content.js.map +1 -0
  317. package/dist/runtime/query/result.d.ts.map +1 -1
  318. package/dist/runtime/query/result.js +12 -1
  319. package/dist/runtime/query/result.js.map +1 -1
  320. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  321. package/dist/runtime/query/resume-pending.js +19 -20
  322. package/dist/runtime/query/resume-pending.js.map +1 -1
  323. package/dist/runtime/query/resume-run.d.ts.map +1 -1
  324. package/dist/runtime/query/resume-run.js +54 -8
  325. package/dist/runtime/query/resume-run.js.map +1 -1
  326. package/dist/runtime/query/run-state.d.ts +5 -0
  327. package/dist/runtime/query/run-state.d.ts.map +1 -1
  328. package/dist/runtime/query/run-state.js +6 -1
  329. package/dist/runtime/query/run-state.js.map +1 -1
  330. package/dist/runtime/query/sandbox-lifecycle.d.ts +54 -0
  331. package/dist/runtime/query/sandbox-lifecycle.d.ts.map +1 -0
  332. package/dist/runtime/query/sandbox-lifecycle.js +167 -0
  333. package/dist/runtime/query/sandbox-lifecycle.js.map +1 -0
  334. package/dist/sandbox/isolation.d.ts.map +1 -1
  335. package/dist/sandbox/isolation.js +9 -0
  336. package/dist/sandbox/isolation.js.map +1 -1
  337. package/dist/sandbox/provider/local.d.ts +56 -6
  338. package/dist/sandbox/provider/local.d.ts.map +1 -1
  339. package/dist/sandbox/provider/local.js +181 -76
  340. package/dist/sandbox/provider/local.js.map +1 -1
  341. package/dist/sandbox/terminal.d.ts +13 -5
  342. package/dist/sandbox/terminal.d.ts.map +1 -1
  343. package/dist/sandbox/terminal.js +11 -3
  344. package/dist/sandbox/terminal.js.map +1 -1
  345. package/dist/session/errors.d.ts +28 -29
  346. package/dist/session/errors.d.ts.map +1 -1
  347. package/dist/session/errors.js +28 -29
  348. package/dist/session/errors.js.map +1 -1
  349. package/dist/session/handoff/broadcast.d.ts +5 -8
  350. package/dist/session/handoff/broadcast.d.ts.map +1 -1
  351. package/dist/session/handoff/broadcast.js +16 -6
  352. package/dist/session/handoff/broadcast.js.map +1 -1
  353. package/dist/session/handoff/single.d.ts +5 -8
  354. package/dist/session/handoff/single.d.ts.map +1 -1
  355. package/dist/session/handoff/single.js +7 -4
  356. package/dist/session/handoff/single.js.map +1 -1
  357. package/dist/store/attachment/index.d.ts +11 -3
  358. package/dist/store/attachment/index.d.ts.map +1 -1
  359. package/dist/store/attachment/index.js +49 -4
  360. package/dist/store/attachment/index.js.map +1 -1
  361. package/dist/store/feedback/conformance.d.ts.map +1 -1
  362. package/dist/store/feedback/conformance.js +32 -0
  363. package/dist/store/feedback/conformance.js.map +1 -1
  364. package/dist/store/feedback/disk.d.ts +8 -6
  365. package/dist/store/feedback/disk.d.ts.map +1 -1
  366. package/dist/store/feedback/disk.js +111 -76
  367. package/dist/store/feedback/disk.js.map +1 -1
  368. package/dist/store/goal/index.d.ts +111 -0
  369. package/dist/store/goal/index.d.ts.map +1 -0
  370. package/dist/store/goal/index.js +436 -0
  371. package/dist/store/goal/index.js.map +1 -0
  372. package/dist/store/index.d.ts +1 -1
  373. package/dist/store/index.d.ts.map +1 -1
  374. package/dist/store/index.js +1 -1
  375. package/dist/store/index.js.map +1 -1
  376. package/dist/store/kv/revision-record-store.d.ts +70 -0
  377. package/dist/store/kv/revision-record-store.d.ts.map +1 -0
  378. package/dist/store/kv/revision-record-store.js +290 -0
  379. package/dist/store/kv/revision-record-store.js.map +1 -0
  380. package/dist/store/memory/disk.d.ts +9 -7
  381. package/dist/store/memory/disk.d.ts.map +1 -1
  382. package/dist/store/memory/disk.js +256 -98
  383. package/dist/store/memory/disk.js.map +1 -1
  384. package/dist/store/run/disk.d.ts +10 -2
  385. package/dist/store/run/disk.d.ts.map +1 -1
  386. package/dist/store/run/disk.js +70 -4
  387. package/dist/store/run/disk.js.map +1 -1
  388. package/dist/store/run/memory.d.ts +4 -2
  389. package/dist/store/run/memory.d.ts.map +1 -1
  390. package/dist/store/run/memory.js +15 -1
  391. package/dist/store/run/memory.js.map +1 -1
  392. package/dist/store/session/disk.d.ts +9 -0
  393. package/dist/store/session/disk.d.ts.map +1 -1
  394. package/dist/store/session/disk.js +57 -5
  395. package/dist/store/session/disk.js.map +1 -1
  396. package/dist/store/session/memory.d.ts +1 -0
  397. package/dist/store/session/memory.d.ts.map +1 -1
  398. package/dist/store/session/memory.js +14 -0
  399. package/dist/store/session/memory.js.map +1 -1
  400. package/dist/store/topic/memory.d.ts +1 -2
  401. package/dist/store/topic/memory.d.ts.map +1 -1
  402. package/dist/store/topic/memory.js +4 -5
  403. package/dist/store/topic/memory.js.map +1 -1
  404. package/dist/store/topic/objective.d.ts +8 -4
  405. package/dist/store/topic/objective.d.ts.map +1 -1
  406. package/dist/store/topic/objective.js +185 -100
  407. package/dist/store/topic/objective.js.map +1 -1
  408. package/dist/store/topic/state.d.ts +1 -2
  409. package/dist/store/topic/state.d.ts.map +1 -1
  410. package/dist/store/topic/state.js +50 -62
  411. package/dist/store/topic/state.js.map +1 -1
  412. package/dist/tools/builtins/bash.d.ts.map +1 -1
  413. package/dist/tools/builtins/bash.js +20 -0
  414. package/dist/tools/builtins/bash.js.map +1 -1
  415. package/dist/tools/builtins/computer-use.d.ts +9 -1
  416. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  417. package/dist/tools/builtins/computer-use.js.map +1 -1
  418. package/dist/tools/builtins/content-fingerprint.d.ts +8 -7
  419. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -1
  420. package/dist/tools/builtins/content-fingerprint.js +9 -10
  421. package/dist/tools/builtins/content-fingerprint.js.map +1 -1
  422. package/dist/tools/builtins/edit.d.ts +6 -1
  423. package/dist/tools/builtins/edit.d.ts.map +1 -1
  424. package/dist/tools/builtins/edit.js +166 -27
  425. package/dist/tools/builtins/edit.js.map +1 -1
  426. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  427. package/dist/tools/builtins/write-file.js +45 -19
  428. package/dist/tools/builtins/write-file.js.map +1 -1
  429. package/dist/tools/command-arguments.d.ts +43 -0
  430. package/dist/tools/command-arguments.d.ts.map +1 -0
  431. package/dist/tools/command-arguments.js +52 -0
  432. package/dist/tools/command-arguments.js.map +1 -0
  433. package/dist/tools/coordinator/index.d.ts +2 -0
  434. package/dist/tools/coordinator/index.d.ts.map +1 -1
  435. package/dist/tools/coordinator/index.js +3 -1
  436. package/dist/tools/coordinator/index.js.map +1 -1
  437. package/dist/tools/defineTool.d.ts +10 -0
  438. package/dist/tools/defineTool.d.ts.map +1 -1
  439. package/dist/tools/defineTool.js +1 -0
  440. package/dist/tools/defineTool.js.map +1 -1
  441. package/dist/tools/env-scrub.d.ts +7 -5
  442. package/dist/tools/env-scrub.d.ts.map +1 -1
  443. package/dist/tools/env-scrub.js +7 -5
  444. package/dist/tools/env-scrub.js.map +1 -1
  445. package/dist/tools/goal/index.d.ts +20 -0
  446. package/dist/tools/goal/index.d.ts.map +1 -0
  447. package/dist/tools/goal/index.js +104 -0
  448. package/dist/tools/goal/index.js.map +1 -0
  449. package/dist/tools/memory/index.d.ts +16 -0
  450. package/dist/tools/memory/index.d.ts.map +1 -1
  451. package/dist/tools/memory/index.js +6 -2
  452. package/dist/tools/memory/index.js.map +1 -1
  453. package/dist/tools/memory/search.d.ts +4 -1
  454. package/dist/tools/memory/search.d.ts.map +1 -1
  455. package/dist/tools/memory/search.js +10 -2
  456. package/dist/tools/memory/search.js.map +1 -1
  457. package/dist/types/agent/base.d.ts +11 -3
  458. package/dist/types/agent/base.d.ts.map +1 -1
  459. package/dist/types/agent/factory.d.ts +2 -0
  460. package/dist/types/agent/factory.d.ts.map +1 -1
  461. package/dist/types/agent/reactive.d.ts +2 -0
  462. package/dist/types/agent/reactive.d.ts.map +1 -1
  463. package/dist/types/agent/supervisor.d.ts +6 -0
  464. package/dist/types/agent/supervisor.d.ts.map +1 -1
  465. package/dist/types/agent/task.d.ts +6 -2
  466. package/dist/types/agent/task.d.ts.map +1 -1
  467. package/dist/types/connector/core.d.ts +13 -8
  468. package/dist/types/connector/core.d.ts.map +1 -1
  469. package/dist/types/connector/definition.d.ts +37 -18
  470. package/dist/types/connector/definition.d.ts.map +1 -1
  471. package/dist/types/connector/http.d.ts +6 -0
  472. package/dist/types/connector/http.d.ts.map +1 -1
  473. package/dist/types/connector/mcp.d.ts +24 -6
  474. package/dist/types/connector/mcp.d.ts.map +1 -1
  475. package/dist/types/connector/tenant.d.ts +17 -7
  476. package/dist/types/connector/tenant.d.ts.map +1 -1
  477. package/dist/types/connector/webhook.d.ts +6 -0
  478. package/dist/types/connector/webhook.d.ts.map +1 -1
  479. package/dist/types/goal/index.d.ts +46 -0
  480. package/dist/types/goal/index.d.ts.map +1 -0
  481. package/dist/types/goal/index.js +2 -0
  482. package/dist/types/goal/index.js.map +1 -0
  483. package/dist/types/ids/index.d.ts +2 -0
  484. package/dist/types/ids/index.d.ts.map +1 -1
  485. package/dist/types/ids/index.js.map +1 -1
  486. package/dist/types/message/index.d.ts +79 -13
  487. package/dist/types/message/index.d.ts.map +1 -1
  488. package/dist/types/message/index.js +49 -3
  489. package/dist/types/message/index.js.map +1 -1
  490. package/dist/types/plugin/index.d.ts +7 -5
  491. package/dist/types/plugin/index.d.ts.map +1 -1
  492. package/dist/types/plugin/index.js.map +1 -1
  493. package/dist/types/provider/chat.d.ts +27 -4
  494. package/dist/types/provider/chat.d.ts.map +1 -1
  495. package/dist/types/provider/index.d.ts +1 -1
  496. package/dist/types/provider/index.d.ts.map +1 -1
  497. package/dist/types/provider/interface.d.ts +18 -7
  498. package/dist/types/provider/interface.d.ts.map +1 -1
  499. package/dist/types/provider/model.d.ts +12 -0
  500. package/dist/types/provider/model.d.ts.map +1 -1
  501. package/dist/types/provider/stream.d.ts +6 -0
  502. package/dist/types/provider/stream.d.ts.map +1 -1
  503. package/dist/types/rag/embedding.d.ts +15 -2
  504. package/dist/types/rag/embedding.d.ts.map +1 -1
  505. package/dist/types/rag/ingestion.d.ts +2 -2
  506. package/dist/types/rag/ingestion.d.ts.map +1 -1
  507. package/dist/types/rag/knowledge-base.d.ts +3 -3
  508. package/dist/types/rag/knowledge-base.d.ts.map +1 -1
  509. package/dist/types/rag/retrieval.d.ts +2 -2
  510. package/dist/types/rag/retrieval.d.ts.map +1 -1
  511. package/dist/types/rag/scope.d.ts +4 -0
  512. package/dist/types/rag/scope.d.ts.map +1 -1
  513. package/dist/types/rag/vector.d.ts +5 -2
  514. package/dist/types/rag/vector.d.ts.map +1 -1
  515. package/dist/types/run/config.d.ts +20 -0
  516. package/dist/types/run/config.d.ts.map +1 -1
  517. package/dist/types/run/events.d.ts +25 -1
  518. package/dist/types/run/events.d.ts.map +1 -1
  519. package/dist/types/run/events.js.map +1 -1
  520. package/dist/types/run/metadata.d.ts +2 -0
  521. package/dist/types/run/metadata.d.ts.map +1 -1
  522. package/dist/types/run/step.d.ts +2 -6
  523. package/dist/types/run/step.d.ts.map +1 -1
  524. package/dist/types/run/step.js.map +1 -1
  525. package/dist/types/run/store.d.ts +55 -2
  526. package/dist/types/run/store.d.ts.map +1 -1
  527. package/dist/types/sandbox/index.d.ts +47 -6
  528. package/dist/types/sandbox/index.d.ts.map +1 -1
  529. package/dist/types/sandbox/index.js +23 -10
  530. package/dist/types/sandbox/index.js.map +1 -1
  531. package/dist/types/session/store.d.ts +13 -0
  532. package/dist/types/session/store.d.ts.map +1 -1
  533. package/dist/types/tool/index.d.ts +33 -11
  534. package/dist/types/tool/index.d.ts.map +1 -1
  535. package/dist/types/tool/index.js.map +1 -1
  536. package/dist/types/topic/entity.d.ts +3 -4
  537. package/dist/types/topic/entity.d.ts.map +1 -1
  538. package/dist/types/topic/store.d.ts +3 -3
  539. package/dist/utils/id.d.ts +3 -1
  540. package/dist/utils/id.d.ts.map +1 -1
  541. package/dist/utils/id.js +4 -0
  542. package/dist/utils/id.js.map +1 -1
  543. package/dist/utils/process-environment.d.ts +26 -0
  544. package/dist/utils/process-environment.d.ts.map +1 -0
  545. package/dist/utils/process-environment.js +78 -0
  546. package/dist/utils/process-environment.js.map +1 -0
  547. package/dist/vault/InMemoryCredentialVault.d.ts +2 -0
  548. package/dist/vault/InMemoryCredentialVault.d.ts.map +1 -1
  549. package/dist/vault/InMemoryCredentialVault.js +24 -4
  550. package/dist/vault/InMemoryCredentialVault.js.map +1 -1
  551. package/dist/vault/instrumentation.d.ts.map +1 -1
  552. package/dist/vault/instrumentation.js +15 -0
  553. package/dist/vault/instrumentation.js.map +1 -1
  554. package/package.json +1 -1
  555. package/src/advisory/executor.ts +4 -1
  556. package/src/agents/ReactiveAgent.ts +12 -0
  557. package/src/agents/RouterAgent.ts +25 -3
  558. package/src/agents/SupervisorAgent.ts +33 -11
  559. package/src/agents/runAgent.ts +38 -2
  560. package/src/authorization/command-line.ts +390 -0
  561. package/src/authorization/rules.ts +22 -1
  562. package/src/bridge/a2a/client.ts +384 -97
  563. package/src/bridge/a2a/mapper.ts +5 -0
  564. package/src/bridge/acp/server.ts +184 -42
  565. package/src/bridge/mcp/connector/adapter.ts +28 -20
  566. package/src/bridge/sse/mapper.ts +3 -0
  567. package/src/compaction/dangling.ts +203 -38
  568. package/src/compaction/index.ts +9 -2
  569. package/src/compaction/manual.ts +125 -18
  570. package/src/compaction/plan.ts +42 -11
  571. package/src/compaction/retention.ts +23 -8
  572. package/src/compaction/summary.ts +4 -4
  573. package/src/compaction/verifier.ts +66 -0
  574. package/src/connector/BaseConnector.ts +19 -4
  575. package/src/connector/builtins/http.ts +236 -46
  576. package/src/connector/builtins/webhook.ts +207 -47
  577. package/src/connector/execution-contract.ts +27 -0
  578. package/src/connector/http-operation.ts +238 -0
  579. package/src/connector/mcp/adapter.ts +8 -3
  580. package/src/connector/mcp/client.ts +207 -58
  581. package/src/connector/mcp/http-sse.ts +91 -23
  582. package/src/connector/mcp/prompt-adapter.ts +8 -2
  583. package/src/connector/mcp/stdio.ts +21 -46
  584. package/src/connector/mcp/streamable-http.ts +86 -22
  585. package/src/connector/tools/adapter.ts +23 -14
  586. package/src/connector/tools/definitions.ts +5 -2
  587. package/src/connector/tools/result.ts +21 -0
  588. package/src/connector/web/guarded-fetch.ts +188 -48
  589. package/src/constants/sandbox/index.ts +3 -2
  590. package/src/contracts/api.ts +2 -0
  591. package/src/contracts/schemas.ts +7 -0
  592. package/src/directory/derive-supervisor.ts +8 -0
  593. package/src/directory/derive.ts +8 -0
  594. package/src/directory/load.ts +2 -0
  595. package/src/directory/types.ts +4 -0
  596. package/src/eval/experiment.ts +160 -111
  597. package/src/eval/judge.ts +13 -2
  598. package/src/eval/types.ts +7 -1
  599. package/src/manager/agent/lifecycle.ts +28 -12
  600. package/src/manager/connector/environment.ts +3 -1
  601. package/src/manager/connector/lifecycle.ts +364 -24
  602. package/src/manager/connector/tenant.ts +56 -23
  603. package/src/manager/goal/activation.ts +52 -0
  604. package/src/manager/index.ts +10 -2
  605. package/src/manager/run/persistence.ts +6 -1
  606. package/src/manager/topic/dependency.ts +39 -0
  607. package/src/manager/topic/lifecycle.ts +19 -31
  608. package/src/plugin/index.ts +1 -0
  609. package/src/plugin/lifecycle.ts +180 -39
  610. package/src/plugin/loader.ts +70 -13
  611. package/src/provider/collect-chat-completion.ts +3 -0
  612. package/src/provider/fallback.ts +79 -11
  613. package/src/provider/idle-timeout.ts +143 -17
  614. package/src/provider/index.ts +2 -0
  615. package/src/provider/instrumentation.ts +1 -0
  616. package/src/provider/retry.ts +16 -1
  617. package/src/public-runtime.ts +190 -32
  618. package/src/public-tools.ts +5 -0
  619. package/src/public-types.ts +85 -11
  620. package/src/rag/embedding.ts +147 -19
  621. package/src/rag/index.ts +1 -1
  622. package/src/rag/ingestion.ts +16 -2
  623. package/src/rag/knowledge-base.ts +13 -4
  624. package/src/rag/operation.ts +28 -0
  625. package/src/rag/rag-tool.ts +6 -3
  626. package/src/rag/retriever.ts +62 -11
  627. package/src/rag/vector-store.ts +8 -2
  628. package/src/registry/command/kernel-commands.ts +223 -4
  629. package/src/run/reporter.ts +10 -0
  630. package/src/run-query/index.ts +84 -15
  631. package/src/runtime/query/context.ts +13 -3
  632. package/src/runtime/query/executor.ts +90 -17
  633. package/src/runtime/query/guard.ts +12 -0
  634. package/src/runtime/query/index.ts +652 -103
  635. package/src/runtime/query/iteration/index.ts +89 -13
  636. package/src/runtime/query/iteration/phases/compaction.ts +120 -55
  637. package/src/runtime/query/iteration/phases/context.ts +4 -0
  638. package/src/runtime/query/iteration/phases/tool-review.ts +28 -0
  639. package/src/runtime/query/iteration/stream-turn.ts +3 -0
  640. package/src/runtime/query/project-instructions.ts +212 -0
  641. package/src/runtime/query/request-rich-content.ts +153 -0
  642. package/src/runtime/query/result.ts +12 -1
  643. package/src/runtime/query/resume-pending.ts +20 -18
  644. package/src/runtime/query/resume-run.ts +52 -8
  645. package/src/runtime/query/run-state.ts +11 -1
  646. package/src/runtime/query/sandbox-lifecycle.ts +210 -0
  647. package/src/sandbox/isolation.ts +9 -0
  648. package/src/sandbox/provider/local.ts +255 -90
  649. package/src/sandbox/terminal.ts +13 -5
  650. package/src/session/errors.ts +68 -42
  651. package/src/session/handoff/broadcast.ts +20 -14
  652. package/src/session/handoff/single.ts +14 -13
  653. package/src/store/attachment/index.ts +65 -3
  654. package/src/store/feedback/conformance.ts +39 -0
  655. package/src/store/feedback/disk.ts +128 -82
  656. package/src/store/goal/index.ts +594 -0
  657. package/src/store/index.ts +1 -1
  658. package/src/store/kv/revision-record-store.ts +346 -0
  659. package/src/store/memory/disk.ts +288 -113
  660. package/src/store/run/disk.ts +96 -5
  661. package/src/store/run/memory.ts +22 -2
  662. package/src/store/session/disk.ts +93 -6
  663. package/src/store/session/memory.ts +22 -0
  664. package/src/store/topic/memory.ts +4 -5
  665. package/src/store/topic/objective.ts +215 -100
  666. package/src/store/topic/state.ts +100 -63
  667. package/src/tools/builtins/bash.ts +21 -0
  668. package/src/tools/builtins/computer-use.ts +9 -1
  669. package/src/tools/builtins/content-fingerprint.ts +9 -12
  670. package/src/tools/builtins/edit.ts +190 -27
  671. package/src/tools/builtins/write-file.ts +55 -19
  672. package/src/tools/command-arguments.ts +54 -0
  673. package/src/tools/coordinator/index.ts +4 -1
  674. package/src/tools/defineTool.ts +11 -0
  675. package/src/tools/env-scrub.ts +7 -5
  676. package/src/tools/goal/index.ts +129 -0
  677. package/src/tools/memory/index.ts +26 -3
  678. package/src/tools/memory/search.ts +20 -3
  679. package/src/types/agent/base.ts +12 -3
  680. package/src/types/agent/factory.ts +2 -0
  681. package/src/types/agent/reactive.ts +2 -0
  682. package/src/types/agent/supervisor.ts +6 -0
  683. package/src/types/agent/task.ts +6 -2
  684. package/src/types/connector/core.ts +13 -8
  685. package/src/types/connector/definition.ts +54 -20
  686. package/src/types/connector/http.ts +7 -0
  687. package/src/types/connector/mcp.ts +27 -6
  688. package/src/types/connector/tenant.ts +21 -7
  689. package/src/types/connector/webhook.ts +7 -0
  690. package/src/types/goal/index.ts +50 -0
  691. package/src/types/ids/index.ts +2 -0
  692. package/src/types/message/index.ts +147 -12
  693. package/src/types/plugin/index.ts +7 -5
  694. package/src/types/provider/chat.ts +35 -4
  695. package/src/types/provider/index.ts +1 -1
  696. package/src/types/provider/interface.ts +22 -7
  697. package/src/types/provider/model.ts +13 -0
  698. package/src/types/provider/stream.ts +6 -0
  699. package/src/types/rag/embedding.ts +16 -2
  700. package/src/types/rag/ingestion.ts +2 -1
  701. package/src/types/rag/knowledge-base.ts +7 -3
  702. package/src/types/rag/retrieval.ts +2 -1
  703. package/src/types/rag/scope.ts +5 -0
  704. package/src/types/rag/vector.ts +5 -2
  705. package/src/types/run/config.ts +20 -0
  706. package/src/types/run/events.ts +28 -3
  707. package/src/types/run/metadata.ts +2 -0
  708. package/src/types/run/step.ts +2 -7
  709. package/src/types/run/store.ts +60 -2
  710. package/src/types/sandbox/index.ts +57 -14
  711. package/src/types/session/store.ts +18 -0
  712. package/src/types/tool/index.ts +33 -11
  713. package/src/types/topic/entity.ts +3 -4
  714. package/src/types/topic/store.ts +3 -3
  715. package/src/utils/id.ts +6 -0
  716. package/src/utils/process-environment.ts +101 -0
  717. package/src/vault/InMemoryCredentialVault.ts +29 -4
  718. package/src/vault/instrumentation.ts +24 -0
@@ -1 +1 @@
1
- {"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../src/sandbox/isolation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAEtE;;;;;;;;;;;;;;GAcG;AACH,MAAM,wBAAwB,GAAiE;IAC9F,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACpE,iBAAiB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACtE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;CAC5D,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,WAA+B;IAC1D,MAAM,MAAM,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAA;IACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAC/B,WAA+B,EAC/B,QAA4C;IAE5C,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,OAAO,0BAA0B,CAAC,MAAM,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3D,CAAA;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC9B,WAA+B,EAC/B,QAA4C;IAE5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEhC,MAAM,IAAI,KAAK,CACd,wBAAwB,WAAW,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD,iBAAiB,CAAC,WAAW,CAAC,4GAA4G,CAC1Q,CAAA;AACF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB,CAAC,WAA+B;IAChE,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAChF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../src/sandbox/isolation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,wBAAwB,GAAiE;IAC9F,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACjE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACpE,iBAAiB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACtE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;CAC5D,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,WAA+B;IAC1D,MAAM,MAAM,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAA;IACpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAC/B,WAA+B,EAC/B,QAA4C;IAE5C,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,OAAO,0BAA0B,CAAC,MAAM,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3D,CAAA;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC9B,WAA+B,EAC/B,QAA4C;IAE5C,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEhC,MAAM,IAAI,KAAK,CACd,wBAAwB,WAAW,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD,iBAAiB,CAAC,WAAW,CAAC,4GAA4G,CAC1Q,CAAA;AACF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,iBAAiB,CAAC,WAA+B;IAChE,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAChF,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC"}
@@ -1,6 +1,23 @@
1
1
  import type { Sandbox, SandboxCreateConfig, SandboxEnvironment, SandboxIsolationControl, SandboxProvider } from '../../types/sandbox/index.js';
2
2
  import type { Logger } from '../../utils/logger.js';
3
- import { type PtyLoader } from '../terminal.js';
3
+ import type { PtyLoader } from '../terminal.js';
4
+ interface SpawnProbeObservation {
5
+ readonly error?: unknown;
6
+ readonly status: number | null;
7
+ readonly signal: NodeJS.Signals | null;
8
+ readonly stdout: string | null;
9
+ }
10
+ /**
11
+ * A wrapper is usable only when the same direct-spawn shape as a real command
12
+ * can execute and carry its output back through a pipe.
13
+ *
14
+ * Checking only the exit status is insufficient: a host policy can let a
15
+ * shell launch a namespace helper while refusing or partially virtualising a
16
+ * direct `spawn()` of that helper. In that state the old shell-string probe
17
+ * selected the tier, but production commands returned exit zero with empty
18
+ * output. Treat a spawn error, signal, or damaged pipe as an unavailable tier.
19
+ */
20
+ export declare function acceptsSandboxSpawnProbe(observation: SpawnProbeObservation): boolean;
4
21
  /**
5
22
  * One output stream, accumulated under a byte cap that it reports hitting.
6
23
  *
@@ -22,6 +39,8 @@ export declare class CappedStream {
22
39
  }
23
40
  export interface LimitedSpawnRequest {
24
41
  readonly environment: SandboxEnvironment;
42
+ /** Canonical outer wrapper selected and probed by the provider. */
43
+ readonly wrapperCommand?: string;
25
44
  readonly command: string;
26
45
  readonly args: readonly string[];
27
46
  readonly rootDir: string;
@@ -42,6 +61,34 @@ export declare function buildLimitedSpawn(request: LimitedSpawnRequest): {
42
61
  spawnCommand: string;
43
62
  spawnArgs: string[];
44
63
  };
64
+ /**
65
+ * Build a macOS seatbelt (SBPL) profile for sandbox isolation.
66
+ *
67
+ * Key principle: (deny default) + explicit allows. Network always denied.
68
+ */
69
+ /**
70
+ * A mount table containing the sandbox and the system paths a binary needs,
71
+ * and nothing else.
72
+ *
73
+ * The difference from the namespace tier is the whole point: that one unshares
74
+ * a mount table and keeps the host's contents in it, so the child sees
75
+ * everything and this file reports `filesystem: false` for it. Here each path
76
+ * is bound in deliberately, so a path nobody listed is not unreadable — it is
77
+ * absent. `ls /home` fails with ENOENT rather than EACCES, which is the
78
+ * behaviour a caller relying on `filesystem` isolation is entitled to.
79
+ *
80
+ * `--unshare-all` covers the network and process controls in the same call, so
81
+ * all three rows of this tier's isolation report come from one spawn rather
82
+ * than from three mechanisms that could drift apart.
83
+ *
84
+ * The system paths are bound READ-ONLY and only when present: a distribution
85
+ * with a merged `/usr` has no real `/lib`, and binding a path that does not
86
+ * exist is a hard failure rather than a no-op. `/proc` and `/dev` get their
87
+ * own fresh instances instead of a bind, so the child cannot read the host's
88
+ * process table through them — a bound `/proc` would hand back the process
89
+ * isolation the same flag just removed.
90
+ */
91
+ export declare function buildBwrapArgs(sandboxRoot: string): string[];
45
92
  export interface LocalSandboxProviderOptions {
46
93
  /**
47
94
  * Controls this run relies on. Construction throws when the detected
@@ -50,11 +97,13 @@ export interface LocalSandboxProviderOptions {
50
97
  */
51
98
  readonly requireIsolation?: readonly SandboxIsolationControl[];
52
99
  /**
53
- * How a sandbox loads the pty binding for {@link Sandbox.openTerminal}.
100
+ * Legacy test injection for the local backend's former terminal method.
54
101
  *
55
- * Injectable so a test needs no native build. Absent means the real
56
- * `import`, which is what a host gets and what refuses, by name, when
57
- * the binding is not installed.
102
+ * @deprecated The local backend cannot preserve its selected isolation
103
+ * tier or own the complete terminal process tree, so it no longer exposes
104
+ * `Sandbox.openTerminal`. Supplying this option now throws. Use the
105
+ * host-scoped terminal helpers directly only when unconfined execution is
106
+ * intentional, or provide a backend that owns confinement and teardown.
58
107
  */
59
108
  readonly ptyLoader?: PtyLoader;
60
109
  }
@@ -63,8 +112,9 @@ export declare class LocalSandboxProvider implements SandboxProvider {
63
112
  readonly name = "Local Sandbox";
64
113
  readonly environment: SandboxEnvironment;
65
114
  private readonly log;
66
- private readonly ptyLoader;
115
+ private readonly wrapperCommand;
67
116
  constructor(log: Logger, options?: LocalSandboxProviderOptions);
68
117
  create(config?: SandboxCreateConfig): Promise<Sandbox>;
69
118
  }
119
+ export {};
70
120
  //# sourceMappingURL=local.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/sandbox/provider/local.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACX,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAIlB,uBAAuB,EACvB,eAAe,EAEf,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAEN,KAAK,SAAS,EAId,MAAM,gBAAgB,CAAA;AAyBvB;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAIZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAI;gBAEY,QAAQ,EAAE,MAAM;IAE7C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,4CAA4C;IAC5C,IAAI,SAAS,IAAI,OAAO,CAEvB;CACD;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC9B;AAOD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAChE,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB,CA6CA;AA+cD,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC9D;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAC9B;AAED,qBAAa,oBAAqB,YAAW,eAAe;IAC3D,QAAQ,CAAC,EAAE,WAAU;IACrB,QAAQ,CAAC,IAAI,mBAAkB;IAC/B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IAExC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;gBAErC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC;IA4B5D,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAc5D"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/sandbox/provider/local.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACX,OAAO,EACP,mBAAmB,EAEnB,kBAAkB,EAIlB,uBAAuB,EACvB,eAAe,EAEf,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAOnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AA2B/C,UAAU,qBAAqB;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAOpF;AAuCD;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAIZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAI;gBAEY,QAAQ,EAAE,MAAM;IAE7C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,4CAA4C;IAC5C,IAAI,SAAS,IAAI,OAAO,CAEvB;CACD;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC9B;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG;IAChE,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACnB,CAmDA;AA6DD;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAwD5D;AA+XD,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC9D;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAC9B;AAED,qBAAa,oBAAqB,YAAW,eAAe;IAC3D,QAAQ,CAAC,EAAE,WAAU;IACrB,QAAQ,CAAC,IAAI,mBAAkB;IAC/B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IAExC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;gBAEvC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC;IAkC5D,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B5D"}
@@ -1,5 +1,5 @@
1
- import { execSync, spawn } from 'node:child_process';
2
- import { realpathSync } from 'node:fs';
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+ import { constants, accessSync, existsSync, realpathSync } from 'node:fs';
3
3
  import { readFile as fsReadFile, writeFile as fsWriteFile, mkdir, readdir, rename, rm, stat, } from 'node:fs/promises';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
@@ -11,8 +11,8 @@ import { SANDBOX_DEFAULT_TIMEOUT_MS, SANDBOX_KILL_GRACE_MS, SANDBOX_MAX_OUTPUT_B
11
11
  // every bug the original's comment was written to record.
12
12
  import { killTree } from '../../process/kill-tree.js';
13
13
  import { generateSandboxId } from '../../utils/id.js';
14
+ import { WINDOWS_CORE_ENV_KEYS, applyEnvironmentOverrides, pickEnvironmentEntries, } from '../../utils/process-environment.js';
14
15
  import { assertIsolation, describeIsolation } from '../isolation.js';
15
- import { loadPty, openTerminalWith, } from '../terminal.js';
16
16
  // ---------------------------------------------------------------------------
17
17
  // Path safety
18
18
  // ---------------------------------------------------------------------------
@@ -32,6 +32,54 @@ function assertInsideSandbox(sandboxRoot, targetPath) {
32
32
  * tests the isolation that will actually be applied, not a weaker subset.
33
33
  */
34
34
  const LINUX_UNSHARE_FLAGS = ['--mount', '--pid', '--fork', '--map-root-user', '--net'];
35
+ const SPAWN_PROBE_SENTINEL = 'namzu-sandbox-spawn-probe';
36
+ /**
37
+ * A wrapper is usable only when the same direct-spawn shape as a real command
38
+ * can execute and carry its output back through a pipe.
39
+ *
40
+ * Checking only the exit status is insufficient: a host policy can let a
41
+ * shell launch a namespace helper while refusing or partially virtualising a
42
+ * direct `spawn()` of that helper. In that state the old shell-string probe
43
+ * selected the tier, but production commands returned exit zero with empty
44
+ * output. Treat a spawn error, signal, or damaged pipe as an unavailable tier.
45
+ */
46
+ export function acceptsSandboxSpawnProbe(observation) {
47
+ return (observation.error === undefined &&
48
+ observation.status === 0 &&
49
+ observation.signal === null &&
50
+ observation.stdout === SPAWN_PROBE_SENTINEL);
51
+ }
52
+ function probeSandboxSpawn(command, wrapperArgs) {
53
+ const observation = spawnSync(command, [
54
+ ...wrapperArgs,
55
+ '--',
56
+ process.execPath,
57
+ '-e',
58
+ `process.stdout.write(${JSON.stringify(SPAWN_PROBE_SENTINEL)})`,
59
+ ], {
60
+ encoding: 'utf8',
61
+ timeout: 5_000,
62
+ });
63
+ return acceptsSandboxSpawnProbe(observation);
64
+ }
65
+ const TRUSTED_WRAPPER_CANDIDATES = {
66
+ bwrap: ['/usr/bin/bwrap', '/bin/bwrap', '/usr/sbin/bwrap'],
67
+ unshare: ['/usr/bin/unshare', '/bin/unshare', '/usr/sbin/unshare'],
68
+ 'sandbox-exec': ['/usr/bin/sandbox-exec'],
69
+ };
70
+ function resolveTrustedWrapper(name) {
71
+ for (const candidate of TRUSTED_WRAPPER_CANDIDATES[name]) {
72
+ try {
73
+ accessSync(candidate, constants.X_OK);
74
+ return realpathSync(candidate);
75
+ }
76
+ catch {
77
+ // Try the next fixed system location. Caller-controlled PATH is not
78
+ // part of wrapper discovery because it is also configurable per run.
79
+ }
80
+ }
81
+ return undefined;
82
+ }
35
83
  /**
36
84
  * One output stream, accumulated under a byte cap that it reports hitting.
37
85
  *
@@ -62,6 +110,12 @@ export class CappedStream {
62
110
  return this.bytes > this.capBytes;
63
111
  }
64
112
  }
113
+ function requiredWrapper(request) {
114
+ if (request.wrapperCommand === undefined || !isAbsolute(request.wrapperCommand)) {
115
+ throw new Error(`Sandbox environment ${request.environment} requires the absolute wrapper path that was probed`);
116
+ }
117
+ return request.wrapperCommand;
118
+ }
65
119
  /** Single-quote for a shell, escaping any quote already inside. */
66
120
  function shellQuote(value) {
67
121
  return `'${value.replace(/'/g, "'\\''")}'`;
@@ -95,14 +149,19 @@ export function buildLimitedSpawn(request) {
95
149
  ]
96
150
  : [command, ...args];
97
151
  switch (environment) {
152
+ case 'linux-bwrap':
153
+ return {
154
+ spawnCommand: requiredWrapper(request),
155
+ spawnArgs: [...buildBwrapArgs(rootDir), '--', ...inner],
156
+ };
98
157
  case 'linux-namespace':
99
158
  return {
100
- spawnCommand: 'unshare',
159
+ spawnCommand: requiredWrapper(request),
101
160
  spawnArgs: [...LINUX_UNSHARE_FLAGS, '--', ...inner],
102
161
  };
103
162
  case 'macos-seatbelt':
104
163
  return {
105
- spawnCommand: 'sandbox-exec',
164
+ spawnCommand: requiredWrapper(request),
106
165
  spawnArgs: ['-p', buildSeatbeltProfile(rootDir), '--', ...inner],
107
166
  };
108
167
  case 'basic': {
@@ -118,31 +177,27 @@ export function buildLimitedSpawn(request) {
118
177
  function detectEnvironment() {
119
178
  const { platform } = process;
120
179
  if (platform === 'linux') {
121
- try {
122
- // Probe the real flags, not just the binary. `unshare --version`
123
- // succeeds on a host where unprivileged user namespaces are
124
- // disabled by sysctl and every actual spawn would fail — the tier
125
- // would be claimed and never delivered. The other platform's probe
126
- // already runs its sandbox for real; this one now does too.
127
- execSync(`unshare ${LINUX_UNSHARE_FLAGS.join(' ')} -- /bin/true`, {
128
- stdio: 'ignore',
129
- });
130
- return 'linux-namespace';
180
+ // Probe the direct child-process boundary used in production, including
181
+ // its stdout pipe. A shell-string probe is a different capability on
182
+ // hosts that mediate namespace helpers and can claim a tier production
183
+ // cannot actually drive.
184
+ const bwrap = resolveTrustedWrapper('bwrap');
185
+ if (bwrap !== undefined && probeSandboxSpawn(bwrap, buildBwrapArgs(tmpdir()))) {
186
+ return { environment: 'linux-bwrap', wrapperCommand: bwrap };
131
187
  }
132
- catch {
133
- // unshare missing, or the host refuses the namespaces we need
188
+ const unshare = resolveTrustedWrapper('unshare');
189
+ if (unshare !== undefined && probeSandboxSpawn(unshare, LINUX_UNSHARE_FLAGS)) {
190
+ return { environment: 'linux-namespace', wrapperCommand: unshare };
134
191
  }
135
192
  }
136
193
  if (platform === 'darwin') {
137
- try {
138
- execSync('sandbox-exec -n no-network /usr/bin/true', { stdio: 'ignore' });
139
- return 'macos-seatbelt';
140
- }
141
- catch {
142
- // sandbox-exec not available
194
+ const seatbelt = resolveTrustedWrapper('sandbox-exec');
195
+ if (seatbelt !== undefined &&
196
+ probeSandboxSpawn(seatbelt, ['-p', buildSeatbeltProfile(tmpdir())])) {
197
+ return { environment: 'macos-seatbelt', wrapperCommand: seatbelt };
143
198
  }
144
199
  }
145
- return 'basic';
200
+ return { environment: 'basic' };
146
201
  }
147
202
  // ---------------------------------------------------------------------------
148
203
  // Seatbelt profile
@@ -170,6 +225,84 @@ function canonicalizePath(p) {
170
225
  *
171
226
  * Key principle: (deny default) + explicit allows. Network always denied.
172
227
  */
228
+ /**
229
+ * A mount table containing the sandbox and the system paths a binary needs,
230
+ * and nothing else.
231
+ *
232
+ * The difference from the namespace tier is the whole point: that one unshares
233
+ * a mount table and keeps the host's contents in it, so the child sees
234
+ * everything and this file reports `filesystem: false` for it. Here each path
235
+ * is bound in deliberately, so a path nobody listed is not unreadable — it is
236
+ * absent. `ls /home` fails with ENOENT rather than EACCES, which is the
237
+ * behaviour a caller relying on `filesystem` isolation is entitled to.
238
+ *
239
+ * `--unshare-all` covers the network and process controls in the same call, so
240
+ * all three rows of this tier's isolation report come from one spawn rather
241
+ * than from three mechanisms that could drift apart.
242
+ *
243
+ * The system paths are bound READ-ONLY and only when present: a distribution
244
+ * with a merged `/usr` has no real `/lib`, and binding a path that does not
245
+ * exist is a hard failure rather than a no-op. `/proc` and `/dev` get their
246
+ * own fresh instances instead of a bind, so the child cannot read the host's
247
+ * process table through them — a bound `/proc` would hand back the process
248
+ * isolation the same flag just removed.
249
+ */
250
+ export function buildBwrapArgs(sandboxRoot) {
251
+ const root = canonicalizePath(sandboxRoot);
252
+ const args = [
253
+ '--unshare-all',
254
+ // The child dies with the parent rather than outliving a killed run.
255
+ // Without it an escaped grandchild keeps the mount namespace alive and
256
+ // the sandbox's temporary root cannot be removed.
257
+ '--die-with-parent',
258
+ '--new-session',
259
+ ];
260
+ for (const path of BWRAP_SYSTEM_PATHS) {
261
+ if (existsSync(path))
262
+ args.push('--ro-bind', path, path);
263
+ }
264
+ // The runtime this process is running under, when it lives outside those.
265
+ //
266
+ // Found by the tier breaking four existing tests the moment it worked: they
267
+ // spawn `node` inside the sandbox, and a Node installed under a home
268
+ // directory — a tarball, a version manager, anything but the distribution's
269
+ // package — is simply not there once the host filesystem is gone. The
270
+ // failure reads as `execvp: No such file or directory`, which sounds like a
271
+ // broken test rather than a sandbox doing its job.
272
+ //
273
+ // The PREFIX rather than the `bin` directory: `bin` alone is enough to run
274
+ // `node`, but `npm` and `npx` resolve their own code through `../lib`, and a
275
+ // model that runs one of those is not doing anything unusual.
276
+ //
277
+ // Read-only, and skipped when a system path already covers it, so a
278
+ // distribution-packaged runtime adds no second bind.
279
+ const interpreterPrefix = dirname(dirname(canonicalizePath(process.execPath)));
280
+ const alreadyCovered = BWRAP_SYSTEM_PATHS.some((path) => interpreterPrefix === path || interpreterPrefix.startsWith(`${path}/`));
281
+ if (!alreadyCovered && existsSync(interpreterPrefix)) {
282
+ args.push('--ro-bind', interpreterPrefix, interpreterPrefix);
283
+ }
284
+ args.push('--proc', '/proc', '--dev', '/dev',
285
+ // A private /tmp, because the sandbox root is where writes belong and a
286
+ // shared /tmp is a channel between runs.
287
+ '--tmpfs', '/tmp', '--bind', root, root, '--chdir', root);
288
+ return args;
289
+ }
290
+ /**
291
+ * Read-only host paths a spawned binary needs to run at all.
292
+ *
293
+ * Bound rather than assumed: `/etc` carries the resolver and user database a
294
+ * shell reads on startup, and omitting it produces failures that look like the
295
+ * command is broken rather than like the sandbox is doing its job.
296
+ */
297
+ const BWRAP_SYSTEM_PATHS = [
298
+ '/usr',
299
+ '/bin',
300
+ '/sbin',
301
+ '/lib',
302
+ '/lib64',
303
+ '/etc',
304
+ '/opt',
305
+ ];
173
306
  function buildSeatbeltProfile(sandboxRoot) {
174
307
  const root = canonicalizePath(sandboxRoot);
175
308
  return [
@@ -242,25 +375,19 @@ function buildSeatbeltProfile(sandboxRoot) {
242
375
  // Environment building
243
376
  // ---------------------------------------------------------------------------
244
377
  function buildSafeEnv(configEnv, optsEnv) {
245
- const env = {};
246
- for (const key of SANDBOX_SAFE_ENV_KEYS) {
247
- const value = process.env[key];
248
- if (value !== undefined) {
249
- env[key] = value;
250
- }
251
- }
252
- if (configEnv) {
253
- Object.assign(env, configEnv);
254
- }
255
- if (optsEnv) {
256
- Object.assign(env, optsEnv);
257
- }
378
+ const allowed = process.platform === 'win32'
379
+ ? [...SANDBOX_SAFE_ENV_KEYS, ...WINDOWS_CORE_ENV_KEYS]
380
+ : SANDBOX_SAFE_ENV_KEYS;
381
+ const env = pickEnvironmentEntries(allowed);
382
+ applyEnvironmentOverrides(env, configEnv);
383
+ applyEnvironmentOverrides(env, optsEnv);
258
384
  return env;
259
385
  }
260
386
  // ---------------------------------------------------------------------------
261
387
  // LocalSandbox
262
388
  // ---------------------------------------------------------------------------
263
389
  class LocalSandbox {
390
+ wrapperCommand;
264
391
  id;
265
392
  rootDir;
266
393
  environment;
@@ -270,14 +397,8 @@ class LocalSandbox {
270
397
  get status() {
271
398
  return this._status;
272
399
  }
273
- /**
274
- * How the pty binding is loaded. Injectable so a test needs no native
275
- * build — the refusal path and the session wiring are both worth
276
- * covering, and neither should require compiling C++ on CI.
277
- */
278
- ptyLoader;
279
- constructor(id, rootDir, environment, config, log, ptyLoader) {
280
- this.ptyLoader = ptyLoader;
400
+ constructor(id, rootDir, environment, wrapperCommand, config, log) {
401
+ this.wrapperCommand = wrapperCommand;
281
402
  this.id = id;
282
403
  this.rootDir = rootDir;
283
404
  this.environment = environment;
@@ -330,32 +451,6 @@ class LocalSandbox {
330
451
  }
331
452
  }
332
453
  }
333
- /**
334
- * A real pseudo-terminal, or a refusal that says what to install.
335
- *
336
- * Deliberately NOT confined the way `exec` is. `exec` wraps every
337
- * command in this class's isolation tiers (`unshare …`,
338
- * `sandbox-exec …`); a terminal is an interactive session a human is
339
- * driving, and wrapping it would put the tier's own shell between the
340
- * operator's keystrokes and the program. So this runs inside the
341
- * sandbox's ROOT DIRECTORY and nothing more — which is stated here
342
- * because a caller reading "sandbox" would otherwise assume the tier
343
- * applies, and it is exactly the assumption that makes a boundary
344
- * imaginary.
345
- *
346
- * A host that needs the tier runs its interactive program through
347
- * `exec` and accepts that it is not a terminal, or supplies a backend
348
- * whose terminals are confined by construction — a container's `exec`,
349
- * for instance, where the confinement is the container and not a
350
- * wrapper.
351
- */
352
- async openTerminal(options) {
353
- if (this._status === 'destroyed') {
354
- throw new Error(`Sandbox ${this.id} is destroyed`);
355
- }
356
- const pty = await loadPty(this.ptyLoader);
357
- return openTerminalWith(pty, options, { shell: '/bin/sh', cwd: this.rootDir });
358
- }
359
454
  async writeFile(path, content) {
360
455
  if (this._status === 'destroyed') {
361
456
  throw new Error(`Sandbox ${this.id} is destroyed`);
@@ -406,7 +501,7 @@ class LocalSandbox {
406
501
  }
407
502
  return entries;
408
503
  }
409
- async destroy() {
504
+ async destroy(_options) {
410
505
  if (this._status === 'destroyed') {
411
506
  return;
412
507
  }
@@ -420,6 +515,7 @@ class LocalSandbox {
420
515
  buildSpawnArgs(command, args) {
421
516
  return buildLimitedSpawn({
422
517
  environment: this.environment,
518
+ ...(this.wrapperCommand !== undefined ? { wrapperCommand: this.wrapperCommand } : {}),
423
519
  command,
424
520
  args,
425
521
  rootDir: this.rootDir,
@@ -504,10 +600,14 @@ export class LocalSandboxProvider {
504
600
  name = 'Local Sandbox';
505
601
  environment;
506
602
  log;
507
- ptyLoader;
603
+ wrapperCommand;
508
604
  constructor(log, options = {}) {
509
- this.ptyLoader = options.ptyLoader;
510
- this.environment = detectEnvironment();
605
+ if (options.ptyLoader !== undefined) {
606
+ throw new Error('LocalSandboxProvider no longer accepts ptyLoader because its terminal could not preserve the selected isolation tier or sandbox teardown ownership. Use the host-scoped terminal helpers only for intentional host execution, or provide a confined terminal backend.');
607
+ }
608
+ const detected = detectEnvironment();
609
+ this.environment = detected.environment;
610
+ this.wrapperCommand = 'wrapperCommand' in detected ? detected.wrapperCommand : undefined;
511
611
  this.log = log.child({ [SCOPE_ATTRIBUTE]: 'sandbox/provider/local' });
512
612
  assertIsolation(this.environment, options.requireIsolation ?? []);
513
613
  const enforced = describeIsolation(this.environment);
@@ -532,15 +632,20 @@ export class LocalSandboxProvider {
532
632
  }
533
633
  }
534
634
  async create(config) {
635
+ config?.signal?.throwIfAborted();
535
636
  const id = generateSandboxId();
536
637
  // mkdtemp is in node:fs/promises but requires an async import-style usage.
537
638
  // We use the same pattern: create a unique dir under os.tmpdir().
538
639
  const { mkdtemp } = await import('node:fs/promises');
539
640
  const rawDir = await mkdtemp(join(tmpdir(), SANDBOX_TEMP_DIR_PREFIX));
641
+ if (config?.signal?.aborted) {
642
+ await rm(rawDir, { recursive: true, force: true });
643
+ throw config.signal.reason;
644
+ }
540
645
  // Canonicalize — macOS symlinks like /var → /private/var must be resolved
541
646
  const rootDir = canonicalizePath(rawDir);
542
647
  this.log.info('Creating sandbox', { 'namzu.sandbox.id': id, 'namzu.sandbox.root_dir': rootDir });
543
- return new LocalSandbox(id, rootDir, this.environment, config ?? {}, this.log, this.ptyLoader);
648
+ return new LocalSandbox(id, rootDir, this.environment, this.wrapperCommand, config ?? {}, this.log);
544
649
  }
545
650
  }
546
651
  //# sourceMappingURL=local.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/sandbox/provider/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/sandbox/provider/local.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A real terminal inside the sandbox, or nothing.
2
+ * A real host pseudo-terminal, or nothing.
3
3
  *
4
4
  * `exec` runs a command and hands back what it printed. That is the whole
5
5
  * shape of it, and a large class of work does not fit: an interactive
@@ -18,13 +18,19 @@
18
18
  * why. That is the same rule `Sandbox.setNetworkPolicy` states for itself:
19
19
  * a capability accepted and not applied is worse than one never offered,
20
20
  * because the caller stops looking.
21
+ *
22
+ * Nothing in this module creates a sandbox or owns a complete descendant
23
+ * process tree. `openTerminalWith` starts exactly the program, arguments and
24
+ * working directory it is handed through the supplied binding. A sandbox or
25
+ * durable terminal backend must wrap that argv under its own confinement and
26
+ * make teardown await every process it owns before using this primitive.
21
27
  */
22
28
  export interface TerminalSize {
23
29
  readonly cols: number;
24
30
  readonly rows: number;
25
31
  }
26
32
  export interface OpenTerminalOptions {
27
- /** The program to run. Defaults to the sandbox's own shell. */
33
+ /** The program to run. Defaults to the caller-supplied shell. */
28
34
  readonly command?: string;
29
35
  readonly args?: readonly string[];
30
36
  readonly cwd?: string;
@@ -57,7 +63,7 @@ export interface TerminalSession {
57
63
  exitCode: number;
58
64
  signal?: number;
59
65
  }>;
60
- /** Stop it. */
66
+ /** Ask the backing binding to stop its top-level terminal process. */
61
67
  kill(signal?: string): void;
62
68
  }
63
69
  /** A terminal asked for where none can be provided. */
@@ -117,11 +123,13 @@ export type PtyLoader = () => Promise<PtyModule>;
117
123
  */
118
124
  export declare function loadPty(loader?: PtyLoader): Promise<PtyModule>;
119
125
  /**
120
- * Open a terminal, given a loaded binding.
126
+ * Open a host terminal, given a loaded binding.
121
127
  *
122
128
  * Separated from `loadPty` so the refusal and the session are testable
123
129
  * apart: one is about a missing dependency, the other about wiring a
124
- * process that exists.
130
+ * process that exists. This helper does not add confinement or descendant
131
+ * cleanup; those belong to the backend that supplies its argv and owns the
132
+ * returned session.
125
133
  */
126
134
  export declare function openTerminalWith(pty: PtyModule, options: OpenTerminalOptions, defaults: {
127
135
  readonly shell: string;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/sandbox/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/sandbox/terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC/B,8EAA8E;IAC9E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IAChC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACrD,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/D,sEAAsE;IACtE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,uDAAuD;AACvD,qBAAa,wBAAyB,SAAQ,KAAK;IAClD,QAAQ,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;gBAExE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;CASvF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,aAAa,CAAA;AAEvC,uFAAuF;AACvF,MAAM,WAAW,SAAS;IACzB,KAAK,CACJ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAC5B,GACC,UAAU,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;QAAE,OAAO,IAAI,IAAI,CAAA;KAAE,CAAA;IAC7D,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG;QAAE,OAAO,IAAI,IAAI,CAAA;KAAE,CAAA;IAC7F,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAoBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACxD,eAAe,CA0CjB"}