@namzu/cli 26.2.0 → 27.0.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 (342) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/README.md +49 -34
  3. package/dist/bin.js +7 -0
  4. package/dist/bin.js.map +1 -1
  5. package/dist/checkpoints/store.d.ts +17 -4
  6. package/dist/checkpoints/store.d.ts.map +1 -1
  7. package/dist/checkpoints/store.js +20 -5
  8. package/dist/checkpoints/store.js.map +1 -1
  9. package/dist/cli.js +2 -2
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/acp.d.ts +23 -1
  12. package/dist/commands/acp.d.ts.map +1 -1
  13. package/dist/commands/acp.js +41 -2
  14. package/dist/commands/acp.js.map +1 -1
  15. package/dist/commands/drain.d.ts +69 -2
  16. package/dist/commands/drain.d.ts.map +1 -1
  17. package/dist/commands/drain.js +214 -134
  18. package/dist/commands/drain.js.map +1 -1
  19. package/dist/commands/eval.js +1 -1
  20. package/dist/commands/eval.js.map +1 -1
  21. package/dist/commands/provider-wait.d.ts +5 -5
  22. package/dist/commands/provider-wait.d.ts.map +1 -1
  23. package/dist/commands/provider-wait.js +2 -2
  24. package/dist/commands/resident.d.ts.map +1 -1
  25. package/dist/commands/resident.js +2 -1
  26. package/dist/commands/resident.js.map +1 -1
  27. package/dist/commands/run-flags.d.ts +7 -7
  28. package/dist/commands/run-flags.js +4 -4
  29. package/dist/commands/run-stream.d.ts +16 -12
  30. package/dist/commands/run-stream.d.ts.map +1 -1
  31. package/dist/commands/run-stream.js +142 -98
  32. package/dist/commands/run-stream.js.map +1 -1
  33. package/dist/commands/run.d.ts +6 -4
  34. package/dist/commands/run.d.ts.map +1 -1
  35. package/dist/commands/run.js +129 -45
  36. package/dist/commands/run.js.map +1 -1
  37. package/dist/commands/serve.js +2 -2
  38. package/dist/commands/serve.js.map +1 -1
  39. package/dist/commands/state.js +8 -8
  40. package/dist/commands/state.js.map +1 -1
  41. package/dist/config/load.d.ts +1 -1
  42. package/dist/config/load.d.ts.map +1 -1
  43. package/dist/config/load.js +17 -5
  44. package/dist/config/load.js.map +1 -1
  45. package/dist/config/run-limits.d.ts +20 -8
  46. package/dist/config/run-limits.d.ts.map +1 -1
  47. package/dist/config/run-limits.js +28 -46
  48. package/dist/config/run-limits.js.map +1 -1
  49. package/dist/config/schema.d.ts +44 -19
  50. package/dist/config/schema.d.ts.map +1 -1
  51. package/dist/config/schema.js.map +1 -1
  52. package/dist/config/tool-result-screens.js +1 -1
  53. package/dist/context/directories.d.ts +37 -0
  54. package/dist/context/directories.d.ts.map +1 -0
  55. package/dist/context/directories.js +69 -0
  56. package/dist/context/directories.js.map +1 -0
  57. package/dist/context/environment.d.ts +55 -0
  58. package/dist/context/environment.d.ts.map +1 -1
  59. package/dist/context/environment.js +96 -0
  60. package/dist/context/environment.js.map +1 -1
  61. package/dist/context/project-tracker.d.ts +3 -3
  62. package/dist/context/project-tracker.d.ts.map +1 -1
  63. package/dist/context/project-tracker.js +3 -3
  64. package/dist/context/project-tracker.js.map +1 -1
  65. package/dist/context/project.d.ts +1 -1
  66. package/dist/context/project.js +1 -1
  67. package/dist/context/sandbox.d.ts +22 -3
  68. package/dist/context/sandbox.d.ts.map +1 -1
  69. package/dist/context/sandbox.js +42 -4
  70. package/dist/context/sandbox.js.map +1 -1
  71. package/dist/doctor/checks/chain.d.ts +1 -1
  72. package/dist/doctor/checks/chain.js +5 -5
  73. package/dist/doctor/checks/chain.js.map +1 -1
  74. package/dist/doctor/checks/invariants.d.ts +2 -2
  75. package/dist/doctor/checks/invariants.js +5 -5
  76. package/dist/doctor/checks/invariants.js.map +1 -1
  77. package/dist/doctor/checks/logging.js +1 -1
  78. package/dist/doctor/checks/logging.js.map +1 -1
  79. package/dist/doctor/checks/sandbox.js +1 -1
  80. package/dist/doctor/checks/sandbox.js.map +1 -1
  81. package/dist/doctor/checks/session-export.d.ts +1 -1
  82. package/dist/doctor/checks/session-export.js +2 -2
  83. package/dist/doctor/checks/session-export.js.map +1 -1
  84. package/dist/doctor/checks/telemetry.d.ts +1 -1
  85. package/dist/doctor/checks/telemetry.js +1 -1
  86. package/dist/doctor/registry.js +2 -2
  87. package/dist/doctor/registry.js.map +1 -1
  88. package/dist/exit-codes.d.ts +2 -2
  89. package/dist/exit-codes.js +2 -2
  90. package/dist/integrations/mcp/servers.d.ts +1 -1
  91. package/dist/integrations/providers/chain-capabilities.d.ts +6 -6
  92. package/dist/integrations/providers/chain-capabilities.js +8 -8
  93. package/dist/integrations/providers/chain-capabilities.js.map +1 -1
  94. package/dist/integrations/providers/index.d.ts +1 -1
  95. package/dist/integrations/providers/index.d.ts.map +1 -1
  96. package/dist/integrations/providers/index.js +1 -1
  97. package/dist/integrations/providers/index.js.map +1 -1
  98. package/dist/integrations/providers/register.d.ts +1 -1
  99. package/dist/integrations/providers/register.js +1 -1
  100. package/dist/integrations/providers/registry.d.ts +74 -1
  101. package/dist/integrations/providers/registry.d.ts.map +1 -1
  102. package/dist/integrations/providers/registry.js +75 -0
  103. package/dist/integrations/providers/registry.js.map +1 -1
  104. package/dist/integrations/resident/inspection.d.ts +4 -1
  105. package/dist/integrations/resident/inspection.d.ts.map +1 -1
  106. package/dist/integrations/resident/inspection.js +53 -34
  107. package/dist/integrations/resident/inspection.js.map +1 -1
  108. package/dist/integrations/resident/learning-storage.d.ts +7 -2
  109. package/dist/integrations/resident/learning-storage.d.ts.map +1 -1
  110. package/dist/integrations/resident/learning-storage.js +12 -8
  111. package/dist/integrations/resident/learning-storage.js.map +1 -1
  112. package/dist/integrations/resident/runner-store.d.ts +1 -1
  113. package/dist/integrations/resident/runner-store.d.ts.map +1 -1
  114. package/dist/integrations/resident/runner-store.js +5 -2
  115. package/dist/integrations/resident/runner-store.js.map +1 -1
  116. package/dist/integrations/resident/runner-worker.js +1 -0
  117. package/dist/integrations/resident/runner-worker.js.map +1 -1
  118. package/dist/integrations/resident/session-log-reads.d.ts +37 -0
  119. package/dist/integrations/resident/session-log-reads.d.ts.map +1 -0
  120. package/dist/integrations/resident/session-log-reads.js +125 -0
  121. package/dist/integrations/resident/session-log-reads.js.map +1 -0
  122. package/dist/integrations/resident/session-step.d.ts +2 -0
  123. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  124. package/dist/integrations/resident/session-step.js +15 -13
  125. package/dist/integrations/resident/session-step.js.map +1 -1
  126. package/dist/integrations/resident/storage.d.ts +23 -1
  127. package/dist/integrations/resident/storage.d.ts.map +1 -1
  128. package/dist/integrations/resident/storage.js +60 -17
  129. package/dist/integrations/resident/storage.js.map +1 -1
  130. package/dist/integrations/resident/tool-evidence.d.ts +4 -2
  131. package/dist/integrations/resident/tool-evidence.d.ts.map +1 -1
  132. package/dist/integrations/resident/tool-evidence.js +36 -30
  133. package/dist/integrations/resident/tool-evidence.js.map +1 -1
  134. package/dist/integrations/resident/verification.d.ts +2 -2
  135. package/dist/integrations/resident/verification.d.ts.map +1 -1
  136. package/dist/integrations/resident/verification.js +4 -4
  137. package/dist/integrations/resident/verification.js.map +1 -1
  138. package/dist/integrations/sessions/checkpoint-view.d.ts +13 -0
  139. package/dist/integrations/sessions/checkpoint-view.d.ts.map +1 -0
  140. package/dist/integrations/sessions/checkpoint-view.js +48 -0
  141. package/dist/integrations/sessions/checkpoint-view.js.map +1 -0
  142. package/dist/integrations/sessions/context-inventory.js +1 -1
  143. package/dist/integrations/sessions/context-inventory.js.map +1 -1
  144. package/dist/integrations/sessions/conversation-search.d.ts +16 -20
  145. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  146. package/dist/integrations/sessions/conversation-search.js +305 -731
  147. package/dist/integrations/sessions/conversation-search.js.map +1 -1
  148. package/dist/integrations/sessions/evidence-page-validation.d.ts +4 -4
  149. package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -1
  150. package/dist/integrations/sessions/evidence-page-validation.js +1 -1
  151. package/dist/integrations/sessions/evidence-page-validation.js.map +1 -1
  152. package/dist/integrations/sessions/evidence-recall.d.ts +40 -2
  153. package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -1
  154. package/dist/integrations/sessions/evidence-recall.js +41 -97
  155. package/dist/integrations/sessions/evidence-recall.js.map +1 -1
  156. package/dist/integrations/sessions/store.d.ts +153 -85
  157. package/dist/integrations/sessions/store.d.ts.map +1 -1
  158. package/dist/integrations/sessions/store.js +414 -484
  159. package/dist/integrations/sessions/store.js.map +1 -1
  160. package/dist/integrations/sessions/task-context.d.ts +15 -2
  161. package/dist/integrations/sessions/task-context.d.ts.map +1 -1
  162. package/dist/integrations/sessions/task-context.js +34 -11
  163. package/dist/integrations/sessions/task-context.js.map +1 -1
  164. package/dist/integrations/sessions/transcript-export.d.ts +13 -6
  165. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  166. package/dist/integrations/sessions/transcript-export.js +148 -263
  167. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  168. package/dist/integrations/state/home.d.ts +4 -16
  169. package/dist/integrations/state/home.d.ts.map +1 -1
  170. package/dist/integrations/state/home.js +6 -42
  171. package/dist/integrations/state/home.js.map +1 -1
  172. package/dist/integrations/state/project.d.ts +6 -7
  173. package/dist/integrations/state/project.d.ts.map +1 -1
  174. package/dist/integrations/state/project.js +7 -9
  175. package/dist/integrations/state/project.js.map +1 -1
  176. package/dist/integrations/state/report.d.ts +27 -41
  177. package/dist/integrations/state/report.d.ts.map +1 -1
  178. package/dist/integrations/state/report.js +172 -464
  179. package/dist/integrations/state/report.js.map +1 -1
  180. package/dist/integrations/state/retention.d.ts +18 -0
  181. package/dist/integrations/state/retention.d.ts.map +1 -0
  182. package/dist/integrations/state/retention.js +18 -0
  183. package/dist/integrations/state/retention.js.map +1 -0
  184. package/dist/integrations/subagents/activity.d.ts +36 -31
  185. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  186. package/dist/integrations/subagents/activity.js +27 -23
  187. package/dist/integrations/subagents/activity.js.map +1 -1
  188. package/dist/integrations/subagents/batches.d.ts +91 -0
  189. package/dist/integrations/subagents/batches.d.ts.map +1 -0
  190. package/dist/integrations/subagents/batches.js +172 -0
  191. package/dist/integrations/subagents/batches.js.map +1 -0
  192. package/dist/integrations/subagents/parent.d.ts +26 -11
  193. package/dist/integrations/subagents/parent.d.ts.map +1 -1
  194. package/dist/integrations/subagents/parent.js +13 -28
  195. package/dist/integrations/subagents/parent.js.map +1 -1
  196. package/dist/integrations/subagents/policy.d.ts +2 -2
  197. package/dist/integrations/subagents/policy.d.ts.map +1 -1
  198. package/dist/integrations/subagents/policy.js +2 -2
  199. package/dist/integrations/subagents/policy.js.map +1 -1
  200. package/dist/integrations/subagents/replay.d.ts +91 -26
  201. package/dist/integrations/subagents/replay.d.ts.map +1 -1
  202. package/dist/integrations/subagents/replay.js +216 -114
  203. package/dist/integrations/subagents/replay.js.map +1 -1
  204. package/dist/integrations/subagents/runtime.d.ts +50 -26
  205. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  206. package/dist/integrations/subagents/runtime.js +132 -126
  207. package/dist/integrations/subagents/runtime.js.map +1 -1
  208. package/dist/integrations/subagents/saved-agents.d.ts +57 -0
  209. package/dist/integrations/subagents/saved-agents.d.ts.map +1 -0
  210. package/dist/integrations/subagents/saved-agents.js +102 -0
  211. package/dist/integrations/subagents/saved-agents.js.map +1 -0
  212. package/dist/integrations/subagents/slash.d.ts +55 -0
  213. package/dist/integrations/subagents/slash.d.ts.map +1 -0
  214. package/dist/integrations/subagents/slash.js +45 -0
  215. package/dist/integrations/subagents/slash.js.map +1 -0
  216. package/dist/integrations/telemetry/session-export.d.ts +6 -6
  217. package/dist/integrations/telemetry/session-export.d.ts.map +1 -1
  218. package/dist/integrations/telemetry/session-export.js +2 -2
  219. package/dist/memory/presentation.d.ts +11 -0
  220. package/dist/memory/presentation.d.ts.map +1 -1
  221. package/dist/memory/presentation.js +25 -0
  222. package/dist/memory/presentation.js.map +1 -1
  223. package/dist/memory/store.d.ts +13 -7
  224. package/dist/memory/store.d.ts.map +1 -1
  225. package/dist/memory/store.js +37 -11
  226. package/dist/memory/store.js.map +1 -1
  227. package/dist/memory/typed.d.ts +116 -0
  228. package/dist/memory/typed.d.ts.map +1 -0
  229. package/dist/memory/typed.js +336 -0
  230. package/dist/memory/typed.js.map +1 -0
  231. package/dist/permissions/checks.d.ts +1 -1
  232. package/dist/permissions/checks.js +1 -1
  233. package/dist/permissions/headless-trust.d.ts +2 -2
  234. package/dist/permissions/headless-trust.d.ts.map +1 -1
  235. package/dist/permissions/headless-trust.js +3 -3
  236. package/dist/permissions/headless-trust.js.map +1 -1
  237. package/dist/permissions/mode.d.ts +4 -4
  238. package/dist/permissions/mode.js +1 -1
  239. package/dist/permissions/rules.d.ts +1 -1
  240. package/dist/permissions/rules.js +1 -1
  241. package/dist/termination.d.ts +75 -0
  242. package/dist/termination.d.ts.map +1 -0
  243. package/dist/termination.js +143 -0
  244. package/dist/termination.js.map +1 -0
  245. package/dist/tui/AgentExplorer.d.ts +2 -2
  246. package/dist/tui/AgentExplorer.js +4 -4
  247. package/dist/tui/AgentExplorer.js.map +1 -1
  248. package/dist/tui/App.d.ts +9 -1
  249. package/dist/tui/App.d.ts.map +1 -1
  250. package/dist/tui/App.js +458 -304
  251. package/dist/tui/App.js.map +1 -1
  252. package/dist/tui/LiveActivity.d.ts +1 -1
  253. package/dist/tui/LiveActivity.d.ts.map +1 -1
  254. package/dist/tui/PermissionOverlay.d.ts +8 -0
  255. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  256. package/dist/tui/PermissionOverlay.js +25 -2
  257. package/dist/tui/PermissionOverlay.js.map +1 -1
  258. package/dist/tui/Picker.d.ts +14 -1
  259. package/dist/tui/Picker.d.ts.map +1 -1
  260. package/dist/tui/Picker.js +598 -132
  261. package/dist/tui/Picker.js.map +1 -1
  262. package/dist/tui/agent.d.ts +208 -132
  263. package/dist/tui/agent.d.ts.map +1 -1
  264. package/dist/tui/agent.js +523 -313
  265. package/dist/tui/agent.js.map +1 -1
  266. package/dist/tui/conversation-evidence-view.js +3 -3
  267. package/dist/tui/conversation-evidence-view.js.map +1 -1
  268. package/dist/tui/conversation-history.d.ts +4 -21
  269. package/dist/tui/conversation-history.d.ts.map +1 -1
  270. package/dist/tui/conversation-history.js +4 -28
  271. package/dist/tui/conversation-history.js.map +1 -1
  272. package/dist/tui/index.d.ts.map +1 -1
  273. package/dist/tui/index.js +27 -1
  274. package/dist/tui/index.js.map +1 -1
  275. package/dist/tui/log-pane.js +1 -1
  276. package/dist/tui/markdownParser.d.ts +1 -1
  277. package/dist/tui/markdownParser.js +1 -1
  278. package/dist/tui/model-choices.d.ts.map +1 -1
  279. package/dist/tui/model-choices.js +20 -1
  280. package/dist/tui/model-choices.js.map +1 -1
  281. package/dist/tui/permission-review.d.ts +16 -0
  282. package/dist/tui/permission-review.d.ts.map +1 -1
  283. package/dist/tui/permission-review.js +25 -2
  284. package/dist/tui/permission-review.js.map +1 -1
  285. package/dist/tui/provider-list.d.ts +206 -41
  286. package/dist/tui/provider-list.d.ts.map +1 -1
  287. package/dist/tui/provider-list.js +248 -52
  288. package/dist/tui/provider-list.js.map +1 -1
  289. package/dist/tui/slashCommands.d.ts +29 -40
  290. package/dist/tui/slashCommands.d.ts.map +1 -1
  291. package/dist/tui/slashCommands.js +70 -61
  292. package/dist/tui/slashCommands.js.map +1 -1
  293. package/dist/tui/terminal-choice-text.d.ts +22 -0
  294. package/dist/tui/terminal-choice-text.d.ts.map +1 -1
  295. package/dist/tui/terminal-choice-text.js +81 -0
  296. package/dist/tui/terminal-choice-text.js.map +1 -1
  297. package/dist/tui/{run-interruption.d.ts → turn-interruption.d.ts} +4 -4
  298. package/dist/tui/turn-interruption.d.ts.map +1 -0
  299. package/dist/tui/{run-interruption.js → turn-interruption.js} +20 -20
  300. package/dist/tui/turn-interruption.js.map +1 -0
  301. package/dist/tui/turn-limits-settings.d.ts +39 -0
  302. package/dist/tui/turn-limits-settings.d.ts.map +1 -0
  303. package/dist/tui/{run-limits-settings.js → turn-limits-settings.js} +18 -18
  304. package/dist/tui/turn-limits-settings.js.map +1 -0
  305. package/dist/tui/types.d.ts +3 -3
  306. package/dist/tui/types.d.ts.map +1 -1
  307. package/dist/user-commands/store.d.ts +1 -1
  308. package/dist/user-commands/store.js +1 -1
  309. package/package.json +8 -8
  310. package/dist/integrations/sessions/compaction-evidence.d.ts +0 -5
  311. package/dist/integrations/sessions/compaction-evidence.d.ts.map +0 -1
  312. package/dist/integrations/sessions/compaction-evidence.js +0 -59
  313. package/dist/integrations/sessions/compaction-evidence.js.map +0 -1
  314. package/dist/integrations/sessions/database.d.ts +0 -5
  315. package/dist/integrations/sessions/database.d.ts.map +0 -1
  316. package/dist/integrations/sessions/database.js +0 -34
  317. package/dist/integrations/sessions/database.js.map +0 -1
  318. package/dist/integrations/sessions/paths.d.ts +0 -7
  319. package/dist/integrations/sessions/paths.d.ts.map +0 -1
  320. package/dist/integrations/sessions/paths.js +0 -14
  321. package/dist/integrations/sessions/paths.js.map +0 -1
  322. package/dist/integrations/sessions/run-discovery.d.ts +0 -24
  323. package/dist/integrations/sessions/run-discovery.d.ts.map +0 -1
  324. package/dist/integrations/sessions/run-discovery.js +0 -142
  325. package/dist/integrations/sessions/run-discovery.js.map +0 -1
  326. package/dist/integrations/sessions/turn-evidence.d.ts +0 -129
  327. package/dist/integrations/sessions/turn-evidence.d.ts.map +0 -1
  328. package/dist/integrations/sessions/turn-evidence.js +0 -517
  329. package/dist/integrations/sessions/turn-evidence.js.map +0 -1
  330. package/dist/integrations/subagents/history.d.ts +0 -26
  331. package/dist/integrations/subagents/history.d.ts.map +0 -1
  332. package/dist/integrations/subagents/history.js +0 -76
  333. package/dist/integrations/subagents/history.js.map +0 -1
  334. package/dist/integrations/subagents/runs.d.ts +0 -72
  335. package/dist/integrations/subagents/runs.d.ts.map +0 -1
  336. package/dist/integrations/subagents/runs.js +0 -155
  337. package/dist/integrations/subagents/runs.js.map +0 -1
  338. package/dist/tui/run-interruption.d.ts.map +0 -1
  339. package/dist/tui/run-interruption.js.map +0 -1
  340. package/dist/tui/run-limits-settings.d.ts +0 -39
  341. package/dist/tui/run-limits-settings.d.ts.map +0 -1
  342. package/dist/tui/run-limits-settings.js.map +0 -1
@@ -31,11 +31,66 @@
31
31
  * text only changes when the fact changes, a fresh read costs a cache miss
32
32
  * exactly when a cache hit would have been wrong.
33
33
  */
34
+ /**
35
+ * Where the tools run and how the model gets past the edge of it.
36
+ *
37
+ * The model used to learn its boundary from refusal strings — "Path escapes
38
+ * the working directory… Tools may only reach inside X" — and read every one
39
+ * as a wall, including the ones with a door in them. Stated up front, it can
40
+ * say what it can reach, and ask for the right thing when it cannot.
41
+ */
42
+ export interface ExecutionBoundary {
43
+ /** Present when commands run in the OS sandbox; absent means the host. */
44
+ readonly sandbox?: {
45
+ /** The environment the sandbox resolved to, e.g. `linux-bwrap`. */
46
+ readonly environment: string;
47
+ /** Controls this machine actually applies, e.g. `filesystem`, `network`. */
48
+ readonly enforced: readonly string[];
49
+ };
50
+ /**
51
+ * What a sandboxed command's `dangerously_disable_sandbox` gets: put to the
52
+ * user (`ask`), granted unasked by configuration (`unattended`), or refused
53
+ * (`refused` — escapes off, or nobody to ask). Ignored on the host.
54
+ */
55
+ readonly escape: 'ask' | 'unattended' | 'refused';
56
+ /** Whether a person answers the permission prompts in this session. */
57
+ readonly interactive: boolean;
58
+ }
59
+ /** What the model needs to know about running under WSL. */
60
+ export interface WslFacts {
61
+ /** `WSL_DISTRO_NAME`, when the environment carries it. */
62
+ readonly distro: string | null;
63
+ /** Windows executables can be started from the Linux side. */
64
+ readonly interop: boolean;
65
+ /** Windows drives mounted under `/mnt`, as `/mnt/<letter>`. */
66
+ readonly drives: readonly string[];
67
+ }
68
+ /**
69
+ * WSL, or `undefined` on any other Linux.
70
+ *
71
+ * The environment is the signal: WSL sets `WSL_DISTRO_NAME` in every
72
+ * process it starts, and `WSL_INTEROP` names the interop socket when interop
73
+ * is on. Interop also counts as on when its binfmt handler is registered
74
+ * (`/proc/sys/fs/binfmt_misc/WSLInterop`), which survives a shell that
75
+ * dropped the variable. Drives are the one-letter directories under `/mnt`
76
+ * — `/mnt/wsl` and `/mnt/wslg` are WSL's own and are not drives.
77
+ *
78
+ * Every probe is injectable so a test can describe a machine it is not
79
+ * running on; the defaults read this one.
80
+ */
81
+ export declare function detectWsl(env?: NodeJS.ProcessEnv, probe?: {
82
+ readonly exists?: (path: string) => boolean;
83
+ readonly list?: (path: string) => readonly string[];
84
+ }): WslFacts | undefined;
34
85
  export interface EnvironmentFacts {
35
86
  /** ISO calendar date, `YYYY-MM-DD`, in the machine's own timezone. */
36
87
  readonly today: string;
37
88
  /** Directories besides the working directory the file tools may reach, absolute. */
38
89
  readonly additionalDirectories?: readonly string[];
90
+ /** Where the tools run; absent leaves the boundary unstated, as before. */
91
+ readonly boundary?: ExecutionBoundary;
92
+ /** Present when this is WSL. */
93
+ readonly wsl?: WslFacts;
39
94
  /**
40
95
  * `branch` when on one, `null` when the working directory is not a
41
96
  * repository, `'detached'` when it is one with no branch checked out.
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/context/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAUH,MAAM,WAAW,gBAAgB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,oFAAoF;IACpF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAG9C;AAeD,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,IAAiB,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAoBxE"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/context/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAWH;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,mEAAmE;QACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,4EAA4E;QAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KACpC,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,YAAY,GAAG,SAAS,CAAA;IACjD,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC7B;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,KAAK,GAAE;IACN,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAA;CAC9C,GACJ,QAAQ,GAAG,SAAS,CAoBtB;AAED,MAAM,WAAW,gBAAgB;IAChC,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,oFAAoF;IACpF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClD,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IACrC,gCAAgC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAG9C;AAeD,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,IAAiB,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAsBxE"}
@@ -32,10 +32,46 @@
32
32
  * exactly when a cache hit would have been wrong.
33
33
  */
34
34
  import { execFile } from 'node:child_process';
35
+ import { existsSync, readdirSync } from 'node:fs';
35
36
  import { promisify } from 'node:util';
36
37
  const run = promisify(execFile);
37
38
  /** Bound on a single git call. A wedged repository must not stall a turn. */
38
39
  const GIT_TIMEOUT_MS = 2_000;
40
+ /**
41
+ * WSL, or `undefined` on any other Linux.
42
+ *
43
+ * The environment is the signal: WSL sets `WSL_DISTRO_NAME` in every
44
+ * process it starts, and `WSL_INTEROP` names the interop socket when interop
45
+ * is on. Interop also counts as on when its binfmt handler is registered
46
+ * (`/proc/sys/fs/binfmt_misc/WSLInterop`), which survives a shell that
47
+ * dropped the variable. Drives are the one-letter directories under `/mnt`
48
+ * — `/mnt/wsl` and `/mnt/wslg` are WSL's own and are not drives.
49
+ *
50
+ * Every probe is injectable so a test can describe a machine it is not
51
+ * running on; the defaults read this one.
52
+ */
53
+ export function detectWsl(env = process.env, probe = {}) {
54
+ const distro = env.WSL_DISTRO_NAME?.trim() || null;
55
+ const socket = env.WSL_INTEROP?.trim() || null;
56
+ if (!distro && !socket)
57
+ return undefined;
58
+ const exists = probe.exists ?? existsSync;
59
+ const list = probe.list ??
60
+ ((path) => {
61
+ try {
62
+ return readdirSync(path);
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ });
68
+ const interop = socket !== null || exists('/proc/sys/fs/binfmt_misc/WSLInterop');
69
+ const drives = list('/mnt')
70
+ .filter((name) => /^[a-z]$/i.test(name))
71
+ .sort()
72
+ .map((name) => `/mnt/${name}`);
73
+ return { distro, interop, drives };
74
+ }
39
75
  /**
40
76
  * The machine's local calendar date.
41
77
  *
@@ -94,7 +130,67 @@ export function composeEnvironmentPrompt(facts) {
94
130
  if (facts.additionalDirectories && facts.additionalDirectories.length > 0) {
95
131
  lines.push(`Besides the working directory, the file tools may reach these directories, by absolute path: ${facts.additionalDirectories.map((d) => `\`${d}\``).join(', ')}. Relative paths still resolve against the working directory.`);
96
132
  }
133
+ if (facts.boundary)
134
+ lines.push(...boundaryLines(facts.boundary));
135
+ if (facts.wsl)
136
+ lines.push(...wslLines(facts.wsl, facts.boundary));
97
137
  lines.push('These are facts about right now. Prefer them over any date or branch you would otherwise assume.');
98
138
  return `## Environment\n\n${lines.join('\n')}`;
99
139
  }
140
+ /** The boundary, and the way past it, in the words the model acts on. */
141
+ function boundaryLines(boundary) {
142
+ if (!boundary.sandbox) {
143
+ const outside = boundary.interactive
144
+ ? 'A path anywhere else is not refused outright: the user is asked to approve that call first, every time — in plan mode too, for a read; the strict permission mode refuses it. When you need a directory repeatedly, suggest the user add it with `/add-dir <path>`.'
145
+ : 'A path anywhere else is refused in this session, because it needs a person to approve it and nobody is at the terminal. If you need one, say which directory and why, so the user can add it (`--add-dir <path>`) and run again.';
146
+ return [
147
+ 'Tools run on this machine, not in a sandbox: shell commands and file changes go through the permission settings, which may ask the user before they run.',
148
+ `The file tools reach the working directory and any added directories directly. ${outside} A refusal that remains is a decision, not a missing file; say so rather than retrying another spelling.`,
149
+ ];
150
+ }
151
+ const { environment, enforced } = boundary.sandbox;
152
+ const network = enforced.includes('network')
153
+ ? ' The network is cut inside it.'
154
+ : ' It does not cut the network on this machine.';
155
+ const escapeRoute = boundary.escape === 'ask'
156
+ ? 'When one command genuinely cannot work inside it (it needs the network, a path it does not mount, or a host tool), set `dangerously_disable_sandbox: true` on that one `bash` call: the user is asked to approve it every time, whatever else is approved; the plan and strict permission modes refuse it. Never use it to get around a permission refusal.'
157
+ : boundary.escape === 'unattended'
158
+ ? 'When one command genuinely cannot work inside it, `dangerously_disable_sandbox: true` on that `bash` call runs it on the host: this session is configured to allow that without asking, and every use is recorded. Use it only when the sandbox is the obstacle.'
159
+ : 'Commands cannot leave the sandbox in this session. When one needs something the sandbox withholds, say what and why, and let the user decide.';
160
+ // Said per what the platform enforces, never more. A tier that does not
161
+ // confine the file system (`linux-namespace`, `basic`) leaves the whole
162
+ // host visible to a command; one that does still shows it the system
163
+ // directories programs need, read-only, and a private /tmp.
164
+ const files = enforced.includes('filesystem')
165
+ ? ' Inside it, commands can read and write the working directory and the added directories; the system directories programs need are readable, /tmp is private to the command, and the rest of this machine (the home directory, other projects, other mounts) cannot be reached from it, so no spelling of such a path will be found.'
166
+ : ' It does not confine the file system here, so commands can still see files outside the working directory.';
167
+ return [
168
+ `Shell commands run in a sandbox (${environment}${enforced.length > 0 ? `, enforcing ${enforced.join(', ')}` : ', enforcing nothing on this platform'}).${files}${network} The file tools reach only the working directory and the added directories.`,
169
+ `To reach another directory, ask the user to add it with \`/add-dir <path>\` (the next turn binds it). ${escapeRoute}`,
170
+ ];
171
+ }
172
+ /** WSL: where the Windows side is, and how to reach it from here. */
173
+ function wslLines(wsl, boundary) {
174
+ // Only a sandbox that confines the file system hides the drives; one that
175
+ // does not leaves them visible to commands, like the host.
176
+ const sandboxed = boundary?.sandbox?.enforced.includes('filesystem') === true;
177
+ const fileTools = boundary?.sandbox !== undefined
178
+ ? 'the file tools reach them only once added with `/add-dir`'
179
+ : boundary?.interactive === false
180
+ ? 'a file tool reaching them is refused in this session, since nobody is here to approve it'
181
+ : 'a file tool reaching them asks for approval first, like any other outside path';
182
+ const drives = wsl.drives.length > 0
183
+ ? `Windows drives are mounted under ${wsl.drives.map((d) => `\`${d}\``).join(', ')} (\`C:\\Users\` is \`/mnt/c/Users\`; \`wslpath -w\` and \`wslpath -u\` convert).`
184
+ : 'No Windows drive is mounted under `/mnt` right now.';
185
+ const reach = sandboxed
186
+ ? 'They are outside the sandbox, so a command there needs `/add-dir` or the sandbox escape.'
187
+ : `They are outside the working directory, so ${fileTools}.`;
188
+ const interop = wsl.interop
189
+ ? `Windows programs start from the shell through WSL interop, by their \`.exe\` name: \`powershell.exe -NoProfile -Command ...\`, \`cmd.exe /c ...\`, \`explorer.exe .\`. \`cmd.exe\` started from a Linux directory warns that UNC paths are unsupported and falls back to C:\\Windows, so \`cd\` under \`/mnt/c\` first or use \`powershell.exe\`. If a name is not found, the Windows side of \`PATH\` was not appended; \`cmd.exe\` is under \`/mnt/c/Windows/System32\` and \`powershell.exe\` under its \`WindowsPowerShell/v1.0\`.${sandboxed ? ' The sandbox does not mount the Windows drives those programs live on, so running one needs the sandbox escape.' : ''}`
190
+ : 'WSL interop is off here, so Windows `.exe` programs cannot be started from the shell.';
191
+ return [
192
+ `This machine is Windows Subsystem for Linux${wsl.distro ? ` (distro \`${wsl.distro}\`)` : ''}. ${drives} ${reach}`,
193
+ interop,
194
+ ];
195
+ }
100
196
  //# sourceMappingURL=environment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/context/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAE/B,6EAA6E;AAC7E,MAAM,cAAc,GAAG,KAAK,CAAA;AAe5B;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAS;IACrC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7D,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAA;AAC/E,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,GAAW,EAAE,IAAuB;IACtD,IAAI,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;QAChF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QACzB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACR,sEAAsE;QACtE,uEAAuE;QACvE,4CAA4C;QAC5C,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,GAAW,EACX,MAAY,IAAI,IAAI,EAAE;IAEtB,uEAAuE;IACvE,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,WAAW;IACX,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;KAC7C,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,cAAc,KAAK,MAAM,CAAA;IAC9C,OAAO;QACN,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;QACxB,0EAA0E;QAC1E,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QACpD,YAAY;KACZ,CAAA;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAuB;IAC/D,MAAM,KAAK,GAAG,CAAC,mBAAmB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;IACjD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC7D,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CACT,oJAAoJ,CACpJ,CAAA;IACF,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,yDAAyD,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;IACvF,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CACT,gGAAgG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,+DAA+D,CAC5N,CAAA;IACF,CAAC;IACD,KAAK,CAAC,IAAI,CACT,kGAAkG,CAClG,CAAA;IACD,OAAO,qBAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/context/environment.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { type SkippedInstructionFile } from './project.js';
3
3
  /** Total model-visible instruction text held by one session. */
4
4
  export declare const MAX_TOTAL_PROJECT_INSTRUCTION_CHARS = 256000;
5
5
  /**
6
- * Session-owned live instruction state. Each run gets its own drain cursor;
6
+ * Session-owned live instruction state. Each turn gets its own drain cursor;
7
7
  * children share discovery without being able to consume the parent's update.
8
8
  */
9
9
  export declare class ProjectInstructionTracker {
@@ -15,8 +15,8 @@ export declare class ProjectInstructionTracker {
15
15
  rehydrate(messages: readonly Message[]): void;
16
16
  /** Refresh known scopes and return the exact policy for a new human turn. */
17
17
  prepareSnapshot(messages: readonly Message[]): UserMessage | null;
18
- /** Each run's durable messages are its cursor over the shared discovered state. */
19
- createRunContext(): ProjectInstructionContext;
18
+ /** Each turn's durable messages are its cursor over the shared discovered state. */
19
+ createTurnContext(): ProjectInstructionContext;
20
20
  get instructionFiles(): readonly string[];
21
21
  get skippedInstructionFiles(): readonly SkippedInstructionFile[];
22
22
  private observe;
@@ -1 +1 @@
1
- {"version":3,"file":"project-tracker.d.ts","sourceRoot":"","sources":["../../src/context/project-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,OAAO,EACZ,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAGhB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAIN,KAAK,sBAAsB,EAG3B,MAAM,cAAc,CAAA;AAErB,gEAAgE;AAChE,eAAO,MAAM,mCAAmC,SAAU,CAAA;AA0D1D;;;GAGG;AACH,qBAAa,yBAAyB;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,GAAG,EAAE,MAAM;IAMvB,mFAAmF;IACnF,SAAS,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAa7C,6EAA6E;IAC7E,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,WAAW,GAAG,IAAI;IAKjE,mFAAmF;IACnF,gBAAgB,IAAI,yBAAyB;IAa7C,IAAI,gBAAgB,IAAI,SAAS,MAAM,EAAE,CAExC;IAED,IAAI,uBAAuB,IAAI,SAAS,sBAAsB,EAAE,CAE/D;IAED,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,IAAI;IAkDZ,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,uBAAuB;CAa/B"}
1
+ {"version":3,"file":"project-tracker.d.ts","sourceRoot":"","sources":["../../src/context/project-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,OAAO,EACZ,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAGhB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAIN,KAAK,sBAAsB,EAG3B,MAAM,cAAc,CAAA;AAErB,gEAAgE;AAChE,eAAO,MAAM,mCAAmC,SAAU,CAAA;AA0D1D;;;GAGG;AACH,qBAAa,yBAAyB;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,GAAG,EAAE,MAAM;IAMvB,mFAAmF;IACnF,SAAS,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAa7C,6EAA6E;IAC7E,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,WAAW,GAAG,IAAI;IAKjE,oFAAoF;IACpF,iBAAiB,IAAI,yBAAyB;IAa9C,IAAI,gBAAgB,IAAI,SAAS,MAAM,EAAE,CAExC;IAED,IAAI,uBAAuB,IAAI,SAAS,sBAAsB,EAAE,CAE/D;IAED,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,IAAI;IAkDZ,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,uBAAuB;CAa/B"}
@@ -51,7 +51,7 @@ function composeLivePrompt(root, files) {
51
51
  ].join('\n');
52
52
  }
53
53
  /**
54
- * Session-owned live instruction state. Each run gets its own drain cursor;
54
+ * Session-owned live instruction state. Each turn gets its own drain cursor;
55
55
  * children share discovery without being able to consume the parent's update.
56
56
  */
57
57
  export class ProjectInstructionTracker {
@@ -84,8 +84,8 @@ export class ProjectInstructionTracker {
84
84
  this.rehydrate(messages);
85
85
  return this.snapshot();
86
86
  }
87
- /** Each run's durable messages are its cursor over the shared discovered state. */
88
- createRunContext() {
87
+ /** Each turn's durable messages are its cursor over the shared discovered state. */
88
+ createTurnContext() {
89
89
  return {
90
90
  prepareInitialSnapshot: ({ messages }) => this.prepareSnapshot(messages),
91
91
  observeToolResult: (observation, { messages }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"project-tracker.js","sourceRoot":"","sources":["../../src/context/project-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-tracker.js","sourceRoot":"","sources":["../../src/context/project-tracker.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@
60
60
  * cut. Cutting matters because this text is re-sent every turn: an
61
61
  * instructions file is normally a few kilobytes, and nothing stops one from
62
62
  * being a megabyte. Saying so matters more — a silent truncation is the
63
- * failure this repository keeps finding, where the run succeeds while quietly
63
+ * failure this repository keeps finding, where the turn succeeds while quietly
64
64
  * not doing what was asked, and here it would show up as the agent ignoring
65
65
  * the second half of a policy nobody could see was missing.
66
66
  */
@@ -60,7 +60,7 @@
60
60
  * cut. Cutting matters because this text is re-sent every turn: an
61
61
  * instructions file is normally a few kilobytes, and nothing stops one from
62
62
  * being a megabyte. Saying so matters more — a silent truncation is the
63
- * failure this repository keeps finding, where the run succeeds while quietly
63
+ * failure this repository keeps finding, where the turn succeeds while quietly
64
64
  * not doing what was asked, and here it would show up as the agent ignoring
65
65
  * the second half of a policy nobody could see was missing.
66
66
  */
@@ -10,9 +10,28 @@ import type { SandboxConfig } from '../config/schema.js';
10
10
  * to every command the model chose to run. The isolation the docs
11
11
  * described held on no path.
12
12
  *
13
- * On by default now. What it enforces is a property of the machine, and
14
- * this module's other job is to make sure nobody has to guess which.
13
+ * It was then turned on by default, and that default is reversed again, on
14
+ * purpose and for a different reason: on a machine where the sandbox binds
15
+ * only the working directory and cuts the network, a coding agent could not
16
+ * read a file the user pointed it at, reach a package registry, or run a
17
+ * host tool, and every one of those failures read to the model like a wall.
18
+ * The default is now host execution under the permission system — each shell
19
+ * command reviewed, each path outside the working directory an approval
20
+ * request — and the sandbox is the opt-in (`sandbox.enabled: true`) for an
21
+ * operator who wants commands confined. What it enforces when on is a
22
+ * property of the machine, and this module's other job is to make sure
23
+ * nobody has to guess which.
15
24
  */
25
+ /**
26
+ * Whether the operator asked for the sandbox.
27
+ *
28
+ * `enabled` decides when it is written. Unset, a `requireIsolation` that names
29
+ * a control or an `ephemeral` workspace turns it on: both only mean something
30
+ * inside a sandbox, and silently dropping a stated requirement because a
31
+ * switch sat at its default is the downgrade `requireIsolation` exists to
32
+ * make impossible.
33
+ */
34
+ export declare function sandboxRequested(config: SandboxConfig | undefined): boolean;
16
35
  /**
17
36
  * What a reader needs to know about the sandbox, without the live provider.
18
37
  *
@@ -53,7 +72,7 @@ export interface ResolvedSandbox extends SandboxSummary {
53
72
  readonly notice: string;
54
73
  }
55
74
  /**
56
- * Build the sandbox for a run, or explain why there is none.
75
+ * Build the sandbox for a turn, or explain why there is none.
57
76
  *
58
77
  * Never throws for an ordinary platform shortfall — a machine that cannot
59
78
  * confine the network still runs the CLI, and says so. It DOES throw when
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/context/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,MAAM,EAEX,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EAEpB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD;;;;;;;;;;;;GAYG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IACzC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACrD;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,WAAW,CAAA;CAC/D;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACtD,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;IACnC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,eAAe,CAuD9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAEjF"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/context/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,MAAM,EAEX,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EAEpB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAG3E;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IACzC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACrD;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,WAAW,CAAA;CAC/D;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACtD,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAA;IACnC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,eAAe,CAyD9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAEjF"}
@@ -1,6 +1,42 @@
1
1
  import { LocalSandboxProvider, SANDBOX_ISOLATION_CONTROLS, isolationOf, } from '@namzu/sdk';
2
2
  /**
3
- * Build the sandbox for a run, or explain why there is none.
3
+ * The sandbox a CLI run executes its commands in.
4
+ *
5
+ * There was none. `sandboxProvider` appeared zero times in this package,
6
+ * so `context.sandbox` was always undefined and `BashTool` took its
7
+ * fallback branch — `execAsync` in the host process, with the host
8
+ * environment, meaning every credential the operator's shell holds went
9
+ * to every command the model chose to run. The isolation the docs
10
+ * described held on no path.
11
+ *
12
+ * It was then turned on by default, and that default is reversed again, on
13
+ * purpose and for a different reason: on a machine where the sandbox binds
14
+ * only the working directory and cuts the network, a coding agent could not
15
+ * read a file the user pointed it at, reach a package registry, or run a
16
+ * host tool, and every one of those failures read to the model like a wall.
17
+ * The default is now host execution under the permission system — each shell
18
+ * command reviewed, each path outside the working directory an approval
19
+ * request — and the sandbox is the opt-in (`sandbox.enabled: true`) for an
20
+ * operator who wants commands confined. What it enforces when on is a
21
+ * property of the machine, and this module's other job is to make sure
22
+ * nobody has to guess which.
23
+ */
24
+ /**
25
+ * Whether the operator asked for the sandbox.
26
+ *
27
+ * `enabled` decides when it is written. Unset, a `requireIsolation` that names
28
+ * a control or an `ephemeral` workspace turns it on: both only mean something
29
+ * inside a sandbox, and silently dropping a stated requirement because a
30
+ * switch sat at its default is the downgrade `requireIsolation` exists to
31
+ * make impossible.
32
+ */
33
+ export function sandboxRequested(config) {
34
+ if (config?.enabled !== undefined)
35
+ return config.enabled;
36
+ return (config?.requireIsolation?.length ?? 0) > 0 || config?.workspace === 'ephemeral';
37
+ }
38
+ /**
39
+ * Build the sandbox for a turn, or explain why there is none.
4
40
  *
5
41
  * Never throws for an ordinary platform shortfall — a machine that cannot
6
42
  * confine the network still runs the CLI, and says so. It DOES throw when
@@ -10,9 +46,11 @@ import { LocalSandboxProvider, SANDBOX_ISOLATION_CONTROLS, isolationOf, } from '
10
46
  * answer than the true one.
11
47
  */
12
48
  export function resolveSandbox(log, config) {
13
- if (config?.enabled === false) {
49
+ if (!sandboxRequested(config)) {
14
50
  return {
15
- notice: "Sandbox off by configuration: commands run in this process, with this shell's environment, against the real working directory. Remove `sandbox.enabled: false` to turn it back on.",
51
+ notice: config?.enabled === false
52
+ ? "Sandbox off by configuration: commands and file tools run on this machine, with this shell's environment, under the permission prompts; a path outside the working directory asks before it is used. Set `sandbox.enabled: true` to confine commands."
53
+ : "Sandbox off (the default): commands and file tools run on this machine, with this shell's environment, under the permission prompts; a path outside the working directory asks before it is used. Set `sandbox.enabled: true` to confine commands.",
16
54
  unconfined: true,
17
55
  enforced: [],
18
56
  required: (config?.requireIsolation ?? []),
@@ -22,7 +60,7 @@ export function resolveSandbox(log, config) {
22
60
  const workspace = config?.workspace ?? 'working-directory';
23
61
  const workspaceNotice = workspace === 'working-directory'
24
62
  ? 'The real working directory is mounted; changes persist across turns.'
25
- : 'Each run receives a disposable workspace; changes are removed at teardown.';
63
+ : 'Each turn receives a disposable workspace; changes are removed at teardown.';
26
64
  const required = (config?.requireIsolation ?? []);
27
65
  // Constructing with the requirement is what makes `requireIsolation`
28
66
  // mean something: the provider refuses rather than downgrading, and the
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/context/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EAEpB,0BAA0B,EAI1B,WAAW,GACX,MAAM,YAAY,CAAA;AA2DnB;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,MAAiC;IAC5E,IAAI,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO;YACN,MAAM,EACL,oLAAoL;YACrL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,IAAI,EAAE,CAAuC;YAChF,SAAS,EAAE,MAAM;SACjB,CAAA;IACF,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,mBAAmB,CAAA;IAC1D,MAAM,eAAe,GACpB,SAAS,KAAK,mBAAmB;QAChC,CAAC,CAAC,sEAAsE;QACxE,CAAC,CAAC,4EAA4E,CAAA;IAEhF,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,gBAAgB,IAAI,EAAE,CAAuC,CAAA;IACvF,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,sCAAsC;IACtC,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAA;IAE9E,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAEpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,8DAA8D;QAC9D,qEAAqE;QACrE,iDAAiD;QACjD,OAAO;YACN,QAAQ;YACR,MAAM,EAAE,eAAe,QAAQ,CAAC,WAAW,yCAAyC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,eAAe,4FAA4F;YACrQ,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,EAAE;YACZ,QAAQ;YACR,SAAS;SACT,CAAA;IACF,CAAC;IAED,OAAO;QACN,QAAQ;QACR,MAAM,EACL,OAAO,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,eAAe,QAAQ,CAAC,WAAW,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,EAAE;YAC9F,CAAC,CAAC,eAAe,QAAQ,CAAC,WAAW,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,EAAE;QACrI,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ;QACR,QAAQ;QACR,SAAS;KACT,CAAA;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC/D,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/context/sandbox.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export interface ProviderChainCheckOptions {
29
29
  * A credential is the obvious one. The other is a capability DISAGREEMENT: a
30
30
  * run negotiates tools, vision and documents once, against the primary, and
31
31
  * keeps that answer across a swap — so a chain whose members declare different
32
- * abilities would land a run on a member holding a request shaped for someone
32
+ * abilities would land a turn on a member holding a request shaped for someone
33
33
  * else. `createAgentSession` refuses such a chain outright, which means an
34
34
  * operator who has one learns about it by trying to start a session.
35
35
  *
@@ -24,7 +24,7 @@ import { PROVIDER_REGISTRY } from '../../integrations/providers/registry.js';
24
24
  * A credential is the obvious one. The other is a capability DISAGREEMENT: a
25
25
  * run negotiates tools, vision and documents once, against the primary, and
26
26
  * keeps that answer across a swap — so a chain whose members declare different
27
- * abilities would land a run on a member holding a request shaped for someone
27
+ * abilities would land a turn on a member holding a request shaped for someone
28
28
  * else. `createAgentSession` refuses such a chain outright, which means an
29
29
  * operator who has one learns about it by trying to start a session.
30
30
  *
@@ -157,14 +157,14 @@ export async function describeProviderChain(options = {}) {
157
157
  sections.push('Could not read what these members declare:', ...unreadable.map((line) => ` - ${line}`));
158
158
  }
159
159
  const message = sections.join('\n');
160
- // Ordered by what stops a run. An unaccepted disagreement and an unusable
160
+ // Ordered by what stops a turn. An unaccepted disagreement and an unusable
161
161
  // primary both mean no session starts at all; everything else leaves namzu
162
162
  // working with less than the operator declared.
163
163
  if (disagreements.length > 0 && !accepted) {
164
164
  return {
165
165
  status: 'fail',
166
166
  message: `provider chain cannot be honoured as written:\n${message}`,
167
- remediation: 'Drop the member that disagrees, or set "allowCapabilityMismatch": true in your preferences to accept the limitation. namzu will not choose between advertising abilities a fallback lacks and costing your primary a capability on every run.',
167
+ remediation: 'Drop the member that disagrees, or set "allowCapabilityMismatch": true in your preferences to accept the limitation. namzu will not choose between advertising abilities a fallback lacks and costing your primary a capability on every turn.',
168
168
  };
169
169
  }
170
170
  if (primaryUnusable || primaryUnreadable) {
@@ -172,8 +172,8 @@ export async function describeProviderChain(options = {}) {
172
172
  status: 'fail',
173
173
  message: `${unusable} of ${members.length} chain member(s) cannot be used:\n${message}`,
174
174
  remediation: primaryUnusable
175
- ? 'The primary provider has no usable credential, so no run can start. Set its key, or run `namzu` to pick a provider that has one.'
176
- : 'The primary provider could not be loaded, so no run can start. Run `namzu` to pick a provider that can.',
175
+ ? 'The primary provider has no usable credential, so no turn can start. Set its key, or run `namzu` to pick a provider that has one.'
176
+ : 'The primary provider could not be loaded, so no turn can start. Run `namzu` to pick a provider that can.',
177
177
  };
178
178
  }
179
179
  if (unusable > 0 || unreadable.length > 0 || disagreements.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/doctor/checks/chain.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@ import type { DoctorCheck, DoctorCheckResult, InvariantRegistry } from '@namzu/s
11
11
  * about whether the check reaches it.
12
12
  *
13
13
  * Every invariant is evaluated with `ctx: undefined`. `namzu doctor` runs
14
- * with no live run and no candidate compaction reduction — there is nothing
15
- * a real invariant's check could read that is specific to one run — so
14
+ * with no live turn and no candidate compaction reduction — there is nothing
15
+ * a real invariant's check could read that is specific to one turn — so
16
16
  * `undefined` is the honest context, not a shortcut: each check registered
17
17
  * against it is written to answer `unknown` rather than guess (see
18
18
  * `compaction.ts` and `claim-disk.ts` in `@namzu/sdk`), and this row reports
@@ -14,8 +14,8 @@ function label(row) {
14
14
  * about whether the check reaches it.
15
15
  *
16
16
  * Every invariant is evaluated with `ctx: undefined`. `namzu doctor` runs
17
- * with no live run and no candidate compaction reduction — there is nothing
18
- * a real invariant's check could read that is specific to one run — so
17
+ * with no live turn and no candidate compaction reduction — there is nothing
18
+ * a real invariant's check could read that is specific to one turn — so
19
19
  * `undefined` is the honest context, not a shortcut: each check registered
20
20
  * against it is written to answer `unknown` rather than guess (see
21
21
  * `compaction.ts` and `claim-disk.ts` in `@namzu/sdk`), and this row reports
@@ -49,7 +49,7 @@ export async function describeInvariants(registry) {
49
49
  // behaviour of this row. `inconclusive` maps to exit 69 in
50
50
  // `doctor/registry.ts` and means "I asked and could not establish an
51
51
  // answer" — a real signal that something is wrong with the check
52
- // itself. A runtime invariant outside a live run is a different thing:
52
+ // itself. A runtime invariant outside a live turn is a different thing:
53
53
  // the question has no subject yet, every registered check is written
54
54
  // to answer `unknown` here on purpose, and so this state is reached on
55
55
  // EVERY doctor run. Reporting it as inconclusive made `namzu doctor`
@@ -59,11 +59,11 @@ export async function describeInvariants(registry) {
59
59
  // `skipped` is not "satisfied" either — the summary counts it
60
60
  // separately from `pass`, and the message still names which invariants
61
61
  // went unevaluated and how many violations each has accumulated. The
62
- // violation counters above are what actually carry a live run's
62
+ // violation counters above are what actually carry a live turn's
63
63
  // findings back to this row.
64
64
  return {
65
65
  status: 'skipped',
66
- message: `${unknown.length}/${ids.length} invariant(s) have no subject outside a live run: ${names}`,
66
+ message: `${unknown.length}/${ids.length} invariant(s) have no subject outside a live turn: ${names}`,
67
67
  };
68
68
  }
69
69
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"invariants.js","sourceRoot":"","sources":["../../../src/doctor/checks/invariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invariants.js","sourceRoot":"","sources":["../../../src/doctor/checks/invariants.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ export function describeLogPipeline(counters) {
50
50
  return {
51
51
  status: 'fail',
52
52
  message: `${counters.dropped} log record(s) never reached the sink — ${summarise(counters)}`,
53
- remediation: 'A record is counted dropped when the installed sink threw, or when the sink is NOOP_SINK. Check the sink passed to installProcessSink: a sink that throws is caught so one bad record cannot fail a run, which is exactly why the count is the only place this shows up.',
53
+ remediation: 'A record is counted dropped when the installed sink threw, or when the sink is NOOP_SINK. Check the sink passed to installProcessSink: a sink that throws is caught so one bad record cannot fail a turn, which is exactly why the count is the only place this shows up.',
54
54
  };
55
55
  }
56
56
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/doctor/checks/logging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;;;;;;;;;;;GAgBG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,GAAuC;IAClD,SAAS;IACT,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;CAClB,CAAA;AAED,SAAS,SAAS,CAAC,QAAyB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAqC;IACxE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,OAAO;YACN,MAAM,EAAE,cAAc;YACtB,OAAO,EACN,yHAAyH;YAC1H,WAAW,EACV,8KAA8K;SAC/K,CAAA;IACF,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,2CAA2C,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC5F,WAAW,EACV,0QAA0Q;SAC3Q,CAAA;IACF,CAAC;IAED,OAAO;QACN,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,wCAAwC,SAAS,CAAC,QAAQ,CAAC,EAAE;KACtE,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAChD,EAAE,EAAE,kBAAkB;IACtB,0EAA0E;IAC1E,wEAAwE;IACxE,sDAAsD;IACtD,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAA+B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC;CAC7F,CAAA"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/doctor/checks/logging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;;;;;;;;;;;GAgBG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,GAAuC;IAClD,SAAS;IACT,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;CAClB,CAAA;AAED,SAAS,SAAS,CAAC,QAAyB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAqC;IACxE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,OAAO;YACN,MAAM,EAAE,cAAc;YACtB,OAAO,EACN,yHAAyH;YAC1H,WAAW,EACV,8KAA8K;SAC/K,CAAA;IACF,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,2CAA2C,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC5F,WAAW,EACV,2QAA2Q;SAC5Q,CAAA;IACF,CAAC;IAED,OAAO;QACN,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,wCAAwC,SAAS,CAAC,QAAQ,CAAC,EAAE;KACtE,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAChD,EAAE,EAAE,kBAAkB;IACtB,0EAA0E;IAC1E,wEAAwE;IACxE,sDAAsD;IACtD,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAA+B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC;CAC7F,CAAA"}