@with-logic/elwood 0.1.0 → 0.1.1

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 (673) hide show
  1. package/CHANGELOG.md +166 -1
  2. package/LICENSE +1 -1
  3. package/README.md +276 -13
  4. package/dist/claude/command.d.ts +9 -2
  5. package/dist/claude/command.d.ts.map +1 -1
  6. package/dist/claude/command.js +23 -16
  7. package/dist/claude/command.js.map +1 -1
  8. package/dist/claude/session/index.d.ts.map +1 -1
  9. package/dist/claude/session/index.js +5 -2
  10. package/dist/claude/session/index.js.map +1 -1
  11. package/dist/claude/session/resume.d.ts +1 -1
  12. package/dist/claude/session/resume.d.ts.map +1 -1
  13. package/dist/claude/session/resume.js +5 -1
  14. package/dist/claude/session/resume.js.map +1 -1
  15. package/dist/claude/simple.d.ts.map +1 -1
  16. package/dist/claude/simple.js +4 -0
  17. package/dist/claude/simple.js.map +1 -1
  18. package/dist/cli/args/index.d.ts +3 -1
  19. package/dist/cli/args/index.d.ts.map +1 -1
  20. package/dist/cli/args/index.js +10 -2
  21. package/dist/cli/args/index.js.map +1 -1
  22. package/dist/cli/args/options.d.ts.map +1 -1
  23. package/dist/cli/args/options.js +2 -0
  24. package/dist/cli/args/options.js.map +1 -1
  25. package/dist/cli/args-commands.d.ts +10 -0
  26. package/dist/cli/args-commands.d.ts.map +1 -0
  27. package/dist/cli/args-commands.js +113 -0
  28. package/dist/cli/args-commands.js.map +1 -0
  29. package/dist/cli/command-types.d.ts +26 -0
  30. package/dist/cli/command-types.d.ts.map +1 -0
  31. package/dist/cli/command-types.js +9 -0
  32. package/dist/cli/command-types.js.map +1 -0
  33. package/dist/cli/config/codec-primitives.d.ts +20 -0
  34. package/dist/cli/config/codec-primitives.d.ts.map +1 -0
  35. package/dist/cli/config/codec-primitives.js +51 -0
  36. package/dist/cli/config/codec-primitives.js.map +1 -0
  37. package/dist/cli/config/codec.d.ts.map +1 -1
  38. package/dist/cli/config/codec.js +4 -46
  39. package/dist/cli/config/codec.js.map +1 -1
  40. package/dist/cli/config/effective.d.ts.map +1 -1
  41. package/dist/cli/config/effective.js +1 -0
  42. package/dist/cli/config/effective.js.map +1 -1
  43. package/dist/cli/config/keys.d.ts +1 -1
  44. package/dist/cli/config/keys.d.ts.map +1 -1
  45. package/dist/cli/config/keys.js +1 -0
  46. package/dist/cli/config/keys.js.map +1 -1
  47. package/dist/cli/entry.d.ts +4 -2
  48. package/dist/cli/entry.d.ts.map +1 -1
  49. package/dist/cli/entry.js +2 -1
  50. package/dist/cli/entry.js.map +1 -1
  51. package/dist/cli/help.d.ts +2 -2
  52. package/dist/cli/help.d.ts.map +1 -1
  53. package/dist/cli/help.js +40 -1
  54. package/dist/cli/help.js.map +1 -1
  55. package/dist/cli/interactive/index.d.ts +26 -0
  56. package/dist/cli/interactive/index.d.ts.map +1 -0
  57. package/dist/cli/interactive/index.js +33 -0
  58. package/dist/cli/interactive/index.js.map +1 -0
  59. package/dist/cli/interactive/launch.d.ts +14 -0
  60. package/dist/cli/interactive/launch.d.ts.map +1 -0
  61. package/dist/cli/interactive/launch.js +66 -0
  62. package/dist/cli/interactive/launch.js.map +1 -0
  63. package/dist/cli/interactive/spawn.d.ts +18 -0
  64. package/dist/cli/interactive/spawn.d.ts.map +1 -0
  65. package/dist/cli/interactive/spawn.js +32 -0
  66. package/dist/cli/interactive/spawn.js.map +1 -0
  67. package/dist/cli/main-failure.d.ts +28 -0
  68. package/dist/cli/main-failure.d.ts.map +1 -0
  69. package/dist/cli/main-failure.js +78 -0
  70. package/dist/cli/main-failure.js.map +1 -0
  71. package/dist/cli/main.d.ts +12 -4
  72. package/dist/cli/main.d.ts.map +1 -1
  73. package/dist/cli/main.js +27 -73
  74. package/dist/cli/main.js.map +1 -1
  75. package/dist/cli/models/index.d.ts +20 -0
  76. package/dist/cli/models/index.d.ts.map +1 -0
  77. package/dist/cli/models/index.js +60 -0
  78. package/dist/cli/models/index.js.map +1 -0
  79. package/dist/cli/models/render.d.ts +9 -0
  80. package/dist/cli/models/render.d.ts.map +1 -0
  81. package/dist/cli/models/render.js +33 -0
  82. package/dist/cli/models/render.js.map +1 -0
  83. package/dist/cli/request/index.d.ts.map +1 -1
  84. package/dist/cli/request/index.js +8 -2
  85. package/dist/cli/request/index.js.map +1 -1
  86. package/dist/cli/request/posture.d.ts +28 -0
  87. package/dist/cli/request/posture.d.ts.map +1 -0
  88. package/dist/cli/request/posture.js +70 -0
  89. package/dist/cli/request/posture.js.map +1 -0
  90. package/dist/cli/request/resolution-types.d.ts +1 -0
  91. package/dist/cli/request/resolution-types.d.ts.map +1 -1
  92. package/dist/cli/request/settings.d.ts +2 -12
  93. package/dist/cli/request/settings.d.ts.map +1 -1
  94. package/dist/cli/request/settings.js +2 -25
  95. package/dist/cli/request/settings.js.map +1 -1
  96. package/dist/cli/request/validation.d.ts +12 -0
  97. package/dist/cli/request/validation.d.ts.map +1 -1
  98. package/dist/cli/request/validation.js +30 -10
  99. package/dist/cli/request/validation.js.map +1 -1
  100. package/dist/cli/request/values.d.ts +1 -0
  101. package/dist/cli/request/values.d.ts.map +1 -1
  102. package/dist/cli/request/values.js +1 -0
  103. package/dist/cli/request/values.js.map +1 -1
  104. package/dist/cli/run/index.d.ts.map +1 -1
  105. package/dist/cli/run/index.js +5 -41
  106. package/dist/cli/run/index.js.map +1 -1
  107. package/dist/cli/run/subscribe.d.ts +19 -0
  108. package/dist/cli/run/subscribe.d.ts.map +1 -0
  109. package/dist/cli/run/subscribe.js +47 -0
  110. package/dist/cli/run/subscribe.js.map +1 -0
  111. package/dist/cli/session/launch.d.ts +3 -0
  112. package/dist/cli/session/launch.d.ts.map +1 -1
  113. package/dist/cli/session/launch.js +11 -0
  114. package/dist/cli/session/launch.js.map +1 -1
  115. package/dist/cli/sessions/index.d.ts +23 -0
  116. package/dist/cli/sessions/index.d.ts.map +1 -0
  117. package/dist/cli/sessions/index.js +65 -0
  118. package/dist/cli/sessions/index.js.map +1 -0
  119. package/dist/cli/sessions/list.d.ts +28 -0
  120. package/dist/cli/sessions/list.d.ts.map +1 -0
  121. package/dist/cli/sessions/list.js +63 -0
  122. package/dist/cli/sessions/list.js.map +1 -0
  123. package/dist/cli/table.d.ts +7 -0
  124. package/dist/cli/table.d.ts.map +1 -0
  125. package/dist/cli/table.js +14 -0
  126. package/dist/cli/table.js.map +1 -0
  127. package/dist/cli/types.d.ts +5 -1
  128. package/dist/cli/types.d.ts.map +1 -1
  129. package/dist/cli/types.js.map +1 -1
  130. package/dist/codex/command.d.ts +18 -2
  131. package/dist/codex/command.d.ts.map +1 -1
  132. package/dist/codex/command.js +39 -24
  133. package/dist/codex/command.js.map +1 -1
  134. package/dist/codex/session/index.d.ts.map +1 -1
  135. package/dist/codex/session/index.js +5 -2
  136. package/dist/codex/session/index.js.map +1 -1
  137. package/dist/codex/session/resume.d.ts +1 -1
  138. package/dist/codex/session/resume.d.ts.map +1 -1
  139. package/dist/codex/session/resume.js +5 -1
  140. package/dist/codex/session/resume.js.map +1 -1
  141. package/dist/codex/session/types.d.ts +3 -0
  142. package/dist/codex/session/types.d.ts.map +1 -1
  143. package/dist/codex/simple.d.ts.map +1 -1
  144. package/dist/codex/simple.js +4 -0
  145. package/dist/codex/simple.js.map +1 -1
  146. package/dist/core/errors.d.ts +1 -1
  147. package/dist/core/errors.d.ts.map +1 -1
  148. package/dist/core/errors.js.map +1 -1
  149. package/dist/core/high-trust.d.ts +41 -0
  150. package/dist/core/high-trust.d.ts.map +1 -0
  151. package/dist/core/high-trust.js +50 -0
  152. package/dist/core/high-trust.js.map +1 -0
  153. package/dist/core/trust/allowlist.d.ts +56 -0
  154. package/dist/core/trust/allowlist.d.ts.map +1 -0
  155. package/dist/core/{trust-prompts.js → trust/allowlist.js} +21 -38
  156. package/dist/core/trust/allowlist.js.map +1 -0
  157. package/dist/core/trust/prompts.d.ts +4 -46
  158. package/dist/core/trust/prompts.d.ts.map +1 -1
  159. package/dist/core/trust/prompts.js +2 -73
  160. package/dist/core/trust/prompts.js.map +1 -1
  161. package/dist/core/trust/responder.d.ts +2 -0
  162. package/dist/core/trust/responder.d.ts.map +1 -1
  163. package/dist/core/trust/responder.js +4 -0
  164. package/dist/core/trust/responder.js.map +1 -1
  165. package/dist/core/types.d.ts +3 -0
  166. package/dist/core/types.d.ts.map +1 -1
  167. package/dist/runtime/launch-arguments.d.ts +12 -0
  168. package/dist/runtime/launch-arguments.d.ts.map +1 -0
  169. package/dist/runtime/launch-arguments.js +15 -0
  170. package/dist/runtime/launch-arguments.js.map +1 -0
  171. package/docs/cli-behavior.md +88 -0
  172. package/docs/cli-output.md +60 -0
  173. package/docs/cli.md +10 -2
  174. package/package.json +8 -6
  175. package/dist/claude/hook-dispatch.d.ts +0 -9
  176. package/dist/claude/hook-dispatch.d.ts.map +0 -1
  177. package/dist/claude/hook-dispatch.js +0 -12
  178. package/dist/claude/hook-dispatch.js.map +0 -1
  179. package/dist/claude/hook-events-extra.d.ts +0 -81
  180. package/dist/claude/hook-events-extra.d.ts.map +0 -1
  181. package/dist/claude/hook-events-extra.js +0 -6
  182. package/dist/claude/hook-events-extra.js.map +0 -1
  183. package/dist/claude/hook-events.d.ts +0 -101
  184. package/dist/claude/hook-events.d.ts.map +0 -1
  185. package/dist/claude/hook-events.js +0 -6
  186. package/dist/claude/hook-events.js.map +0 -1
  187. package/dist/claude/hook-names.d.ts +0 -24
  188. package/dist/claude/hook-names.d.ts.map +0 -1
  189. package/dist/claude/hook-names.js +0 -45
  190. package/dist/claude/hook-names.js.map +0 -1
  191. package/dist/claude/hooks.d.ts +0 -78
  192. package/dist/claude/hooks.d.ts.map +0 -1
  193. package/dist/claude/hooks.js +0 -6
  194. package/dist/claude/hooks.js.map +0 -1
  195. package/dist/claude/session-bridge.d.ts +0 -11
  196. package/dist/claude/session-bridge.d.ts.map +0 -1
  197. package/dist/claude/session-bridge.js +0 -18
  198. package/dist/claude/session-bridge.js.map +0 -1
  199. package/dist/claude/session-build.d.ts +0 -15
  200. package/dist/claude/session-build.d.ts.map +0 -1
  201. package/dist/claude/session-build.js +0 -147
  202. package/dist/claude/session-build.js.map +0 -1
  203. package/dist/claude/session-hook-handler.d.ts +0 -34
  204. package/dist/claude/session-hook-handler.d.ts.map +0 -1
  205. package/dist/claude/session-hook-handler.js +0 -42
  206. package/dist/claude/session-hook-handler.js.map +0 -1
  207. package/dist/claude/session-instance.d.ts +0 -42
  208. package/dist/claude/session-instance.d.ts.map +0 -1
  209. package/dist/claude/session-instance.js +0 -146
  210. package/dist/claude/session-instance.js.map +0 -1
  211. package/dist/claude/session-interface.d.ts +0 -49
  212. package/dist/claude/session-interface.d.ts.map +0 -1
  213. package/dist/claude/session-interface.js +0 -10
  214. package/dist/claude/session-interface.js.map +0 -1
  215. package/dist/claude/session-resume.d.ts +0 -8
  216. package/dist/claude/session-resume.d.ts.map +0 -1
  217. package/dist/claude/session-resume.js +0 -47
  218. package/dist/claude/session-resume.js.map +0 -1
  219. package/dist/claude/session-runtime.d.ts +0 -43
  220. package/dist/claude/session-runtime.d.ts.map +0 -1
  221. package/dist/claude/session-runtime.js +0 -105
  222. package/dist/claude/session-runtime.js.map +0 -1
  223. package/dist/claude/session-transcript.d.ts +0 -62
  224. package/dist/claude/session-transcript.d.ts.map +0 -1
  225. package/dist/claude/session-transcript.js +0 -88
  226. package/dist/claude/session-transcript.js.map +0 -1
  227. package/dist/claude/session.d.ts +0 -18
  228. package/dist/claude/session.d.ts.map +0 -1
  229. package/dist/claude/session.js +0 -58
  230. package/dist/claude/session.js.map +0 -1
  231. package/dist/claude/start-or-resume.d.ts +0 -12
  232. package/dist/claude/start-or-resume.d.ts.map +0 -1
  233. package/dist/claude/start-or-resume.js +0 -32
  234. package/dist/claude/start-or-resume.js.map +0 -1
  235. package/dist/claude/tool-hook-events.d.ts +0 -10
  236. package/dist/claude/tool-hook-events.d.ts.map +0 -1
  237. package/dist/claude/tool-hook-events.js +0 -18
  238. package/dist/claude/tool-hook-events.js.map +0 -1
  239. package/dist/claude/tool-types.d.ts +0 -158
  240. package/dist/claude/tool-types.d.ts.map +0 -1
  241. package/dist/claude/tool-types.js +0 -6
  242. package/dist/claude/tool-types.js.map +0 -1
  243. package/dist/claude/validate-input.d.ts +0 -8
  244. package/dist/claude/validate-input.d.ts.map +0 -1
  245. package/dist/claude/validate-input.js +0 -137
  246. package/dist/claude/validate-input.js.map +0 -1
  247. package/dist/claude/validate-permission-update.d.ts +0 -10
  248. package/dist/claude/validate-permission-update.d.ts.map +0 -1
  249. package/dist/claude/validate-permission-update.js +0 -72
  250. package/dist/claude/validate-permission-update.js.map +0 -1
  251. package/dist/claude/validate-result.d.ts +0 -7
  252. package/dist/claude/validate-result.d.ts.map +0 -1
  253. package/dist/claude/validate-result.js +0 -118
  254. package/dist/claude/validate-result.js.map +0 -1
  255. package/dist/claude/validate-shapes.d.ts +0 -22
  256. package/dist/claude/validate-shapes.d.ts.map +0 -1
  257. package/dist/claude/validate-shapes.js +0 -15
  258. package/dist/claude/validate-shapes.js.map +0 -1
  259. package/dist/claude/validate-tool-update.d.ts +0 -15
  260. package/dist/claude/validate-tool-update.d.ts.map +0 -1
  261. package/dist/claude/validate-tool-update.js +0 -122
  262. package/dist/claude/validate-tool-update.js.map +0 -1
  263. package/dist/cli/agent-detect.d.ts +0 -44
  264. package/dist/cli/agent-detect.d.ts.map +0 -1
  265. package/dist/cli/agent-detect.js +0 -66
  266. package/dist/cli/agent-detect.js.map +0 -1
  267. package/dist/cli/arg-errors.d.ts +0 -6
  268. package/dist/cli/arg-errors.d.ts.map +0 -1
  269. package/dist/cli/arg-errors.js +0 -44
  270. package/dist/cli/arg-errors.js.map +0 -1
  271. package/dist/cli/arg-options.d.ts +0 -26
  272. package/dist/cli/arg-options.d.ts.map +0 -1
  273. package/dist/cli/arg-options.js +0 -50
  274. package/dist/cli/arg-options.js.map +0 -1
  275. package/dist/cli/args.d.ts +0 -7
  276. package/dist/cli/args.d.ts.map +0 -1
  277. package/dist/cli/args.js +0 -70
  278. package/dist/cli/args.js.map +0 -1
  279. package/dist/cli/lifecycle-outcome.d.ts +0 -13
  280. package/dist/cli/lifecycle-outcome.d.ts.map +0 -1
  281. package/dist/cli/lifecycle-outcome.js +0 -20
  282. package/dist/cli/lifecycle-outcome.js.map +0 -1
  283. package/dist/cli/lifecycle.d.ts +0 -61
  284. package/dist/cli/lifecycle.d.ts.map +0 -1
  285. package/dist/cli/lifecycle.js +0 -152
  286. package/dist/cli/lifecycle.js.map +0 -1
  287. package/dist/cli/request-finalize.d.ts +0 -10
  288. package/dist/cli/request-finalize.d.ts.map +0 -1
  289. package/dist/cli/request-finalize.js +0 -135
  290. package/dist/cli/request-finalize.js.map +0 -1
  291. package/dist/cli/request-layers.d.ts +0 -30
  292. package/dist/cli/request-layers.d.ts.map +0 -1
  293. package/dist/cli/request-layers.js +0 -44
  294. package/dist/cli/request-layers.js.map +0 -1
  295. package/dist/cli/request-settings.d.ts +0 -34
  296. package/dist/cli/request-settings.d.ts.map +0 -1
  297. package/dist/cli/request-settings.js +0 -66
  298. package/dist/cli/request-settings.js.map +0 -1
  299. package/dist/cli/request-sources.d.ts +0 -13
  300. package/dist/cli/request-sources.d.ts.map +0 -1
  301. package/dist/cli/request-sources.js +0 -23
  302. package/dist/cli/request-sources.js.map +0 -1
  303. package/dist/cli/request-validation.d.ts +0 -18
  304. package/dist/cli/request-validation.d.ts.map +0 -1
  305. package/dist/cli/request-validation.js +0 -84
  306. package/dist/cli/request-validation.js.map +0 -1
  307. package/dist/cli/request-values.d.ts +0 -33
  308. package/dist/cli/request-values.d.ts.map +0 -1
  309. package/dist/cli/request-values.js +0 -73
  310. package/dist/cli/request-values.js.map +0 -1
  311. package/dist/cli/request.d.ts +0 -12
  312. package/dist/cli/request.d.ts.map +0 -1
  313. package/dist/cli/request.js +0 -103
  314. package/dist/cli/request.js.map +0 -1
  315. package/dist/cli/resolution-types.d.ts +0 -35
  316. package/dist/cli/resolution-types.d.ts.map +0 -1
  317. package/dist/cli/resolution-types.js +0 -6
  318. package/dist/cli/resolution-types.js.map +0 -1
  319. package/dist/cli/run-output-lines.d.ts +0 -14
  320. package/dist/cli/run-output-lines.d.ts.map +0 -1
  321. package/dist/cli/run-output-lines.js +0 -42
  322. package/dist/cli/run-output-lines.js.map +0 -1
  323. package/dist/cli/run-output.d.ts +0 -48
  324. package/dist/cli/run-output.d.ts.map +0 -1
  325. package/dist/cli/run-output.js +0 -150
  326. package/dist/cli/run-output.js.map +0 -1
  327. package/dist/cli/run.d.ts +0 -20
  328. package/dist/cli/run.d.ts.map +0 -1
  329. package/dist/cli/run.js +0 -126
  330. package/dist/cli/run.js.map +0 -1
  331. package/dist/cli/session-launch.d.ts +0 -23
  332. package/dist/cli/session-launch.d.ts.map +0 -1
  333. package/dist/cli/session-launch.js +0 -57
  334. package/dist/cli/session-launch.js.map +0 -1
  335. package/dist/cli/session.d.ts +0 -68
  336. package/dist/cli/session.d.ts.map +0 -1
  337. package/dist/cli/session.js +0 -124
  338. package/dist/cli/session.js.map +0 -1
  339. package/dist/codex/attach-images.d.ts +0 -20
  340. package/dist/codex/attach-images.d.ts.map +0 -1
  341. package/dist/codex/attach-images.js +0 -66
  342. package/dist/codex/attach-images.js.map +0 -1
  343. package/dist/codex/clipboard-lock.d.ts +0 -15
  344. package/dist/codex/clipboard-lock.d.ts.map +0 -1
  345. package/dist/codex/clipboard-lock.js +0 -16
  346. package/dist/codex/clipboard-lock.js.map +0 -1
  347. package/dist/codex/clipboard.d.ts +0 -32
  348. package/dist/codex/clipboard.d.ts.map +0 -1
  349. package/dist/codex/clipboard.js +0 -92
  350. package/dist/codex/clipboard.js.map +0 -1
  351. package/dist/codex/config-lock.d.ts +0 -21
  352. package/dist/codex/config-lock.d.ts.map +0 -1
  353. package/dist/codex/config-lock.js +0 -22
  354. package/dist/codex/config-lock.js.map +0 -1
  355. package/dist/codex/config-restore.d.ts +0 -33
  356. package/dist/codex/config-restore.d.ts.map +0 -1
  357. package/dist/codex/config-restore.js +0 -90
  358. package/dist/codex/config-restore.js.map +0 -1
  359. package/dist/codex/config-transaction.d.ts +0 -26
  360. package/dist/codex/config-transaction.d.ts.map +0 -1
  361. package/dist/codex/config-transaction.js +0 -47
  362. package/dist/codex/config-transaction.js.map +0 -1
  363. package/dist/codex/hook-dispatch.d.ts +0 -9
  364. package/dist/codex/hook-dispatch.d.ts.map +0 -1
  365. package/dist/codex/hook-dispatch.js +0 -14
  366. package/dist/codex/hook-dispatch.js.map +0 -1
  367. package/dist/codex/hook-names.d.ts +0 -19
  368. package/dist/codex/hook-names.d.ts.map +0 -1
  369. package/dist/codex/hook-names.js +0 -17
  370. package/dist/codex/hook-names.js.map +0 -1
  371. package/dist/codex/hooks.d.ts +0 -99
  372. package/dist/codex/hooks.d.ts.map +0 -1
  373. package/dist/codex/hooks.js +0 -6
  374. package/dist/codex/hooks.js.map +0 -1
  375. package/dist/codex/initial-ready.d.ts +0 -19
  376. package/dist/codex/initial-ready.d.ts.map +0 -1
  377. package/dist/codex/initial-ready.js +0 -19
  378. package/dist/codex/initial-ready.js.map +0 -1
  379. package/dist/codex/serialize.d.ts +0 -8
  380. package/dist/codex/serialize.d.ts.map +0 -1
  381. package/dist/codex/serialize.js +0 -48
  382. package/dist/codex/serialize.js.map +0 -1
  383. package/dist/codex/session-bridge.d.ts +0 -14
  384. package/dist/codex/session-bridge.d.ts.map +0 -1
  385. package/dist/codex/session-bridge.js +0 -20
  386. package/dist/codex/session-bridge.js.map +0 -1
  387. package/dist/codex/session-build.d.ts +0 -15
  388. package/dist/codex/session-build.d.ts.map +0 -1
  389. package/dist/codex/session-build.js +0 -144
  390. package/dist/codex/session-build.js.map +0 -1
  391. package/dist/codex/session-cleanup.d.ts +0 -12
  392. package/dist/codex/session-cleanup.d.ts.map +0 -1
  393. package/dist/codex/session-cleanup.js +0 -15
  394. package/dist/codex/session-cleanup.js.map +0 -1
  395. package/dist/codex/session-hooks.d.ts +0 -13
  396. package/dist/codex/session-hooks.d.ts.map +0 -1
  397. package/dist/codex/session-hooks.js +0 -54
  398. package/dist/codex/session-hooks.js.map +0 -1
  399. package/dist/codex/session-instance.d.ts +0 -50
  400. package/dist/codex/session-instance.d.ts.map +0 -1
  401. package/dist/codex/session-instance.js +0 -117
  402. package/dist/codex/session-instance.js.map +0 -1
  403. package/dist/codex/session-resume.d.ts +0 -7
  404. package/dist/codex/session-resume.d.ts.map +0 -1
  405. package/dist/codex/session-resume.js +0 -44
  406. package/dist/codex/session-resume.js.map +0 -1
  407. package/dist/codex/session-runtime.d.ts +0 -7
  408. package/dist/codex/session-runtime.d.ts.map +0 -1
  409. package/dist/codex/session-runtime.js +0 -10
  410. package/dist/codex/session-runtime.js.map +0 -1
  411. package/dist/codex/session-transcript.d.ts +0 -30
  412. package/dist/codex/session-transcript.d.ts.map +0 -1
  413. package/dist/codex/session-transcript.js +0 -53
  414. package/dist/codex/session-transcript.js.map +0 -1
  415. package/dist/codex/session-types.d.ts +0 -87
  416. package/dist/codex/session-types.d.ts.map +0 -1
  417. package/dist/codex/session-types.js +0 -6
  418. package/dist/codex/session-types.js.map +0 -1
  419. package/dist/codex/session-warnings.d.ts +0 -27
  420. package/dist/codex/session-warnings.d.ts.map +0 -1
  421. package/dist/codex/session-warnings.js +0 -54
  422. package/dist/codex/session-warnings.js.map +0 -1
  423. package/dist/codex/session.d.ts +0 -16
  424. package/dist/codex/session.d.ts.map +0 -1
  425. package/dist/codex/session.js +0 -61
  426. package/dist/codex/session.js.map +0 -1
  427. package/dist/codex/start-or-resume.d.ts +0 -12
  428. package/dist/codex/start-or-resume.d.ts.map +0 -1
  429. package/dist/codex/start-or-resume.js +0 -31
  430. package/dist/codex/start-or-resume.js.map +0 -1
  431. package/dist/codex/transcript/cursor-io.d.ts +0 -7
  432. package/dist/codex/transcript/cursor-io.d.ts.map +0 -1
  433. package/dist/codex/transcript/cursor-io.js +0 -7
  434. package/dist/codex/transcript/cursor-io.js.map +0 -1
  435. package/dist/codex/transcript/cursor.d.ts +0 -8
  436. package/dist/codex/transcript/cursor.d.ts.map +0 -1
  437. package/dist/codex/transcript/cursor.js +0 -8
  438. package/dist/codex/transcript/cursor.js.map +0 -1
  439. package/dist/codex/transcript/drops.d.ts +0 -9
  440. package/dist/codex/transcript/drops.d.ts.map +0 -1
  441. package/dist/codex/transcript/drops.js +0 -9
  442. package/dist/codex/transcript/drops.js.map +0 -1
  443. package/dist/codex/transcript.d.ts +0 -12
  444. package/dist/codex/transcript.d.ts.map +0 -1
  445. package/dist/codex/transcript.js +0 -10
  446. package/dist/codex/transcript.js.map +0 -1
  447. package/dist/codex/validate-result.d.ts +0 -7
  448. package/dist/codex/validate-result.d.ts.map +0 -1
  449. package/dist/codex/validate-result.js +0 -84
  450. package/dist/codex/validate-result.js.map +0 -1
  451. package/dist/codex/validate.d.ts +0 -11
  452. package/dist/codex/validate.d.ts.map +0 -1
  453. package/dist/codex/validate.js +0 -88
  454. package/dist/codex/validate.js.map +0 -1
  455. package/dist/core/activity-lifecycle.d.ts +0 -21
  456. package/dist/core/activity-lifecycle.d.ts.map +0 -1
  457. package/dist/core/activity-lifecycle.js +0 -45
  458. package/dist/core/activity-lifecycle.js.map +0 -1
  459. package/dist/core/activity-meta.d.ts +0 -13
  460. package/dist/core/activity-meta.d.ts.map +0 -1
  461. package/dist/core/activity-meta.js +0 -67
  462. package/dist/core/activity-meta.js.map +0 -1
  463. package/dist/core/activity-transcript.d.ts +0 -19
  464. package/dist/core/activity-transcript.d.ts.map +0 -1
  465. package/dist/core/activity-transcript.js +0 -60
  466. package/dist/core/activity-transcript.js.map +0 -1
  467. package/dist/core/activity.d.ts +0 -51
  468. package/dist/core/activity.d.ts.map +0 -1
  469. package/dist/core/activity.js +0 -81
  470. package/dist/core/activity.js.map +0 -1
  471. package/dist/core/control-queue-state.d.ts +0 -29
  472. package/dist/core/control-queue-state.d.ts.map +0 -1
  473. package/dist/core/control-queue-state.js +0 -95
  474. package/dist/core/control-queue-state.js.map +0 -1
  475. package/dist/core/control-queue-traits.d.ts +0 -54
  476. package/dist/core/control-queue-traits.d.ts.map +0 -1
  477. package/dist/core/control-queue-traits.js +0 -118
  478. package/dist/core/control-queue-traits.js.map +0 -1
  479. package/dist/core/control-queue-types.d.ts +0 -45
  480. package/dist/core/control-queue-types.d.ts.map +0 -1
  481. package/dist/core/control-queue-types.js +0 -7
  482. package/dist/core/control-queue-types.js.map +0 -1
  483. package/dist/core/control-queue.d.ts +0 -21
  484. package/dist/core/control-queue.d.ts.map +0 -1
  485. package/dist/core/control-queue.js +0 -98
  486. package/dist/core/control-queue.js.map +0 -1
  487. package/dist/core/list-models.d.ts +0 -44
  488. package/dist/core/list-models.d.ts.map +0 -1
  489. package/dist/core/list-models.js +0 -73
  490. package/dist/core/list-models.js.map +0 -1
  491. package/dist/core/model-picker.d.ts +0 -22
  492. package/dist/core/model-picker.d.ts.map +0 -1
  493. package/dist/core/model-picker.js +0 -58
  494. package/dist/core/model-picker.js.map +0 -1
  495. package/dist/core/model-rows.d.ts +0 -21
  496. package/dist/core/model-rows.d.ts.map +0 -1
  497. package/dist/core/model-rows.js +0 -57
  498. package/dist/core/model-rows.js.map +0 -1
  499. package/dist/core/probe-state.d.ts +0 -21
  500. package/dist/core/probe-state.d.ts.map +0 -1
  501. package/dist/core/probe-state.js +0 -39
  502. package/dist/core/probe-state.js.map +0 -1
  503. package/dist/core/session-input-abort.d.ts +0 -10
  504. package/dist/core/session-input-abort.d.ts.map +0 -1
  505. package/dist/core/session-input-abort.js +0 -44
  506. package/dist/core/session-input-abort.js.map +0 -1
  507. package/dist/core/session-input.d.ts +0 -37
  508. package/dist/core/session-input.d.ts.map +0 -1
  509. package/dist/core/session-input.js +0 -154
  510. package/dist/core/session-input.js.map +0 -1
  511. package/dist/core/session-warnings.d.ts +0 -20
  512. package/dist/core/session-warnings.d.ts.map +0 -1
  513. package/dist/core/session-warnings.js +0 -32
  514. package/dist/core/session-warnings.js.map +0 -1
  515. package/dist/core/simple/loop-controls.d.ts +0 -7
  516. package/dist/core/simple/loop-controls.d.ts.map +0 -1
  517. package/dist/core/simple/loop-controls.js +0 -7
  518. package/dist/core/simple/loop-controls.js.map +0 -1
  519. package/dist/core/startup-automation.d.ts +0 -54
  520. package/dist/core/startup-automation.d.ts.map +0 -1
  521. package/dist/core/startup-automation.js +0 -40
  522. package/dist/core/startup-automation.js.map +0 -1
  523. package/dist/core/startup-frame.d.ts +0 -39
  524. package/dist/core/startup-frame.d.ts.map +0 -1
  525. package/dist/core/startup-frame.js +0 -60
  526. package/dist/core/startup-frame.js.map +0 -1
  527. package/dist/core/startup-write.d.ts +0 -47
  528. package/dist/core/startup-write.d.ts.map +0 -1
  529. package/dist/core/startup-write.js +0 -73
  530. package/dist/core/startup-write.js.map +0 -1
  531. package/dist/core/trust-blocking.d.ts +0 -22
  532. package/dist/core/trust-blocking.d.ts.map +0 -1
  533. package/dist/core/trust-blocking.js +0 -38
  534. package/dist/core/trust-blocking.js.map +0 -1
  535. package/dist/core/trust-prompts.d.ts +0 -135
  536. package/dist/core/trust-prompts.d.ts.map +0 -1
  537. package/dist/core/trust-prompts.js.map +0 -1
  538. package/dist/core/trust-responder.d.ts +0 -48
  539. package/dist/core/trust-responder.d.ts.map +0 -1
  540. package/dist/core/trust-responder.js +0 -119
  541. package/dist/core/trust-responder.js.map +0 -1
  542. package/dist/core/tui-screen.d.ts +0 -21
  543. package/dist/core/tui-screen.d.ts.map +0 -1
  544. package/dist/core/tui-screen.js +0 -56
  545. package/dist/core/tui-screen.js.map +0 -1
  546. package/dist/core/update-warning.d.ts +0 -25
  547. package/dist/core/update-warning.d.ts.map +0 -1
  548. package/dist/core/update-warning.js +0 -33
  549. package/dist/core/update-warning.js.map +0 -1
  550. package/dist/core/warning-lifecycle.d.ts +0 -23
  551. package/dist/core/warning-lifecycle.d.ts.map +0 -1
  552. package/dist/core/warning-lifecycle.js +0 -6
  553. package/dist/core/warning-lifecycle.js.map +0 -1
  554. package/dist/core/warning-reasons.d.ts +0 -62
  555. package/dist/core/warning-reasons.d.ts.map +0 -1
  556. package/dist/core/warning-reasons.js +0 -121
  557. package/dist/core/warning-reasons.js.map +0 -1
  558. package/dist/core/warnings.d.ts +0 -145
  559. package/dist/core/warnings.d.ts.map +0 -1
  560. package/dist/core/warnings.js +0 -12
  561. package/dist/core/warnings.js.map +0 -1
  562. package/dist/runtime/cleanup-latch.d.ts +0 -27
  563. package/dist/runtime/cleanup-latch.d.ts.map +0 -1
  564. package/dist/runtime/cleanup-latch.js +0 -43
  565. package/dist/runtime/cleanup-latch.js.map +0 -1
  566. package/dist/runtime/initial-ready-advance.d.ts +0 -22
  567. package/dist/runtime/initial-ready-advance.d.ts.map +0 -1
  568. package/dist/runtime/initial-ready-advance.js +0 -39
  569. package/dist/runtime/initial-ready-advance.js.map +0 -1
  570. package/dist/runtime/initial-ready-fallback.d.ts +0 -12
  571. package/dist/runtime/initial-ready-fallback.d.ts.map +0 -1
  572. package/dist/runtime/initial-ready-fallback.js +0 -20
  573. package/dist/runtime/initial-ready-fallback.js.map +0 -1
  574. package/dist/runtime/initial-ready.d.ts +0 -49
  575. package/dist/runtime/initial-ready.d.ts.map +0 -1
  576. package/dist/runtime/initial-ready.js +0 -81
  577. package/dist/runtime/initial-ready.js.map +0 -1
  578. package/dist/runtime/reap-tree.d.ts +0 -62
  579. package/dist/runtime/reap-tree.d.ts.map +0 -1
  580. package/dist/runtime/reap-tree.js +0 -108
  581. package/dist/runtime/reap-tree.js.map +0 -1
  582. package/dist/runtime/session-base-types.d.ts +0 -36
  583. package/dist/runtime/session-base-types.d.ts.map +0 -1
  584. package/dist/runtime/session-base-types.js +0 -14
  585. package/dist/runtime/session-base-types.js.map +0 -1
  586. package/dist/runtime/session-base.d.ts +0 -48
  587. package/dist/runtime/session-base.d.ts.map +0 -1
  588. package/dist/runtime/session-base.js +0 -76
  589. package/dist/runtime/session-base.js.map +0 -1
  590. package/dist/runtime/session-commands.d.ts +0 -43
  591. package/dist/runtime/session-commands.d.ts.map +0 -1
  592. package/dist/runtime/session-commands.js +0 -52
  593. package/dist/runtime/session-commands.js.map +0 -1
  594. package/dist/runtime/session-exit.d.ts +0 -16
  595. package/dist/runtime/session-exit.d.ts.map +0 -1
  596. package/dist/runtime/session-exit.js +0 -32
  597. package/dist/runtime/session-exit.js.map +0 -1
  598. package/dist/runtime/session-image-attach.d.ts +0 -45
  599. package/dist/runtime/session-image-attach.d.ts.map +0 -1
  600. package/dist/runtime/session-image-attach.js +0 -82
  601. package/dist/runtime/session-image-attach.js.map +0 -1
  602. package/dist/runtime/session-lifecycle.d.ts +0 -61
  603. package/dist/runtime/session-lifecycle.d.ts.map +0 -1
  604. package/dist/runtime/session-lifecycle.js +0 -164
  605. package/dist/runtime/session-lifecycle.js.map +0 -1
  606. package/dist/runtime/session-loops.d.ts +0 -32
  607. package/dist/runtime/session-loops.d.ts.map +0 -1
  608. package/dist/runtime/session-loops.js +0 -62
  609. package/dist/runtime/session-loops.js.map +0 -1
  610. package/dist/runtime/session-readiness.d.ts +0 -18
  611. package/dist/runtime/session-readiness.d.ts.map +0 -1
  612. package/dist/runtime/session-readiness.js +0 -22
  613. package/dist/runtime/session-readiness.js.map +0 -1
  614. package/dist/runtime/session-reap.d.ts +0 -28
  615. package/dist/runtime/session-reap.d.ts.map +0 -1
  616. package/dist/runtime/session-reap.js +0 -51
  617. package/dist/runtime/session-reap.js.map +0 -1
  618. package/dist/runtime/session-resize.d.ts +0 -20
  619. package/dist/runtime/session-resize.d.ts.map +0 -1
  620. package/dist/runtime/session-resize.js +0 -26
  621. package/dist/runtime/session-resize.js.map +0 -1
  622. package/dist/runtime/session-shutdown-binding.d.ts +0 -30
  623. package/dist/runtime/session-shutdown-binding.d.ts.map +0 -1
  624. package/dist/runtime/session-shutdown-binding.js +0 -37
  625. package/dist/runtime/session-shutdown-binding.js.map +0 -1
  626. package/dist/runtime/session-shutdown.d.ts +0 -60
  627. package/dist/runtime/session-shutdown.d.ts.map +0 -1
  628. package/dist/runtime/session-shutdown.js +0 -140
  629. package/dist/runtime/session-shutdown.js.map +0 -1
  630. package/dist/runtime/session-status-wiring.d.ts +0 -38
  631. package/dist/runtime/session-status-wiring.d.ts.map +0 -1
  632. package/dist/runtime/session-status-wiring.js +0 -41
  633. package/dist/runtime/session-status-wiring.js.map +0 -1
  634. package/dist/runtime/session-status.d.ts +0 -7
  635. package/dist/runtime/session-status.d.ts.map +0 -1
  636. package/dist/runtime/session-status.js +0 -22
  637. package/dist/runtime/session-status.js.map +0 -1
  638. package/dist/runtime/shutdown-coordinator.d.ts +0 -57
  639. package/dist/runtime/shutdown-coordinator.d.ts.map +0 -1
  640. package/dist/runtime/shutdown-coordinator.js +0 -77
  641. package/dist/runtime/shutdown-coordinator.js.map +0 -1
  642. package/dist/runtime/startup-buffer.d.ts +0 -33
  643. package/dist/runtime/startup-buffer.d.ts.map +0 -1
  644. package/dist/runtime/startup-buffer.js +0 -53
  645. package/dist/runtime/startup-buffer.js.map +0 -1
  646. package/dist/runtime/startup-cleanup.d.ts +0 -43
  647. package/dist/runtime/startup-cleanup.d.ts.map +0 -1
  648. package/dist/runtime/startup-cleanup.js +0 -89
  649. package/dist/runtime/startup-cleanup.js.map +0 -1
  650. package/dist/runtime/startup.d.ts +0 -17
  651. package/dist/runtime/startup.d.ts.map +0 -1
  652. package/dist/runtime/startup.js +0 -47
  653. package/dist/runtime/startup.js.map +0 -1
  654. package/dist/runtime/status-emit.d.ts +0 -14
  655. package/dist/runtime/status-emit.d.ts.map +0 -1
  656. package/dist/runtime/status-emit.js +0 -15
  657. package/dist/runtime/status-emit.js.map +0 -1
  658. package/dist/runtime/teardown.d.ts +0 -15
  659. package/dist/runtime/teardown.d.ts.map +0 -1
  660. package/dist/runtime/teardown.js +0 -40
  661. package/dist/runtime/teardown.js.map +0 -1
  662. package/dist/runtime/terminate.d.ts +0 -22
  663. package/dist/runtime/terminate.d.ts.map +0 -1
  664. package/dist/runtime/terminate.js +0 -129
  665. package/dist/runtime/terminate.js.map +0 -1
  666. package/dist/runtime/update-lock.d.ts +0 -19
  667. package/dist/runtime/update-lock.d.ts.map +0 -1
  668. package/dist/runtime/update-lock.js +0 -183
  669. package/dist/runtime/update-lock.js.map +0 -1
  670. package/dist/runtime/update-once.d.ts +0 -40
  671. package/dist/runtime/update-once.d.ts.map +0 -1
  672. package/dist/runtime/update-once.js +0 -88
  673. package/dist/runtime/update-once.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The allowlisted startup trust prompts and the affirmative option each one
3
+ * accepts, kept apart from the matching logic in `prompts.ts` so the wording
4
+ * table can grow without crowding it.
5
+ * Implements PRD §5.1/§5.4/§5.5 (C-CLAUDE-10, C-CLAUDE-14, C-CLAUDE-21, C-CODEX-15).
6
+ */
7
+ /**
8
+ * The allowlist. Wording verified against claude 2.1.205–2.1.268 and codex-cli 0.142.5.
9
+ * `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
10
+ * and `mcp` cover the CLI's first-run trust prompts for loading third-party
11
+ * skills, plugins, and MCP servers under a full-trust launch.
12
+ */
13
+ export declare const trustPromptAllowlist: readonly [{
14
+ readonly id: "workspace_trust";
15
+ readonly agent: "claude";
16
+ readonly headerPattern: RegExp;
17
+ readonly accept: RegExp;
18
+ readonly answerPolicy: "autotrust";
19
+ }, {
20
+ readonly id: "skill_trust";
21
+ readonly agent: "claude";
22
+ readonly headerPattern: RegExp;
23
+ readonly accept: RegExp;
24
+ readonly answerPolicy: "autotrust";
25
+ }, {
26
+ readonly id: "plugin_trust";
27
+ readonly agent: "claude";
28
+ readonly headerPattern: RegExp;
29
+ readonly accept: RegExp;
30
+ readonly answerPolicy: "autotrust";
31
+ }, {
32
+ readonly id: "mcp_trust";
33
+ readonly agent: "claude";
34
+ readonly headerPattern: RegExp;
35
+ readonly accept: RegExp;
36
+ readonly answerPolicy: "autotrust";
37
+ }, {
38
+ readonly id: "bypass_permissions";
39
+ readonly agent: "claude";
40
+ readonly headerPattern: RegExp;
41
+ readonly accept: RegExp;
42
+ readonly answerPolicy: "autotrust";
43
+ }, {
44
+ readonly id: "workspace_trust";
45
+ readonly agent: "codex";
46
+ readonly headerPattern: RegExp;
47
+ readonly accept: RegExp;
48
+ readonly answerPolicy: "autotrust";
49
+ }, {
50
+ readonly id: "hook_trust";
51
+ readonly agent: "codex";
52
+ readonly headerPattern: RegExp;
53
+ readonly accept: RegExp;
54
+ readonly answerPolicy: "always";
55
+ }];
56
+ //# sourceMappingURL=allowlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;;;;GAKG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEc,CAAC"}
@@ -1,24 +1,20 @@
1
1
  /**
2
- * Allowlist of known adapter startup trust prompts and how to answer them.
3
- * Implements PRD §5.1 and §5.5 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
4
- *
5
- * This is an EXPLICIT allowlist, not an open-ended matcher: each entry names one
6
- * concrete prompt by its on-screen text and a fixed affirmative outcome. A new
7
- * CLI prompt is trusted only by adding a deliberate entry here — Elwood never
8
- * blanket-answers "any first-run confirmation", which would silently bypass a
9
- * future CLI security gate for third-party code or config.
2
+ * The allowlisted startup trust prompts and the affirmative option each one
3
+ * accepts, kept apart from the matching logic in `prompts.ts` so the wording
4
+ * table can grow without crowding it.
5
+ * Implements PRD §5.1/§5.4/§5.5 (C-CLAUDE-10, C-CLAUDE-14, C-CLAUDE-21, C-CODEX-15).
10
6
  */
11
- import { nonOptionText } from "./terminal-options.js";
12
- // Affirmative option shapes. Each rejects decline words so "No, ..." never matches.
7
+ // Affirmative option shapes. Each rejects decline words so "No, ..." never
8
+ // matches. Prompts with a SPECIFIC affirmative (MCP, hook trust, bypass
9
+ // acceptance) get their own matcher so a nearby dialog's generic "Yes" cannot
10
+ // be selected for them.
13
11
  const notDecline = "(?!.*\\b(no|without|not|quit|cancel|deny|don't)\\b)";
14
12
  const yesOption = new RegExp(`^${notDecline}.*\\b(yes|trust|continue|proceed)\\b`, "i");
15
13
  const useMcpOption = new RegExp(`^${notDecline}.*\\buse this(?:.*\\bMCP)? server`, "i");
16
- // Codex hook trust's real affirmative is "Trust all and continue" / "Trust
17
- // hooks" — matched specifically so a nearby unrelated dialog's generic "Yes,
18
- // continue" (e.g. a credential prompt) can never be selected for hook trust.
19
14
  const trustHooksOption = new RegExp(`^${notDecline}.*\\btrust\\b.*\\b(hooks?|all)\\b`, "i");
15
+ const acceptOption = new RegExp(`^${notDecline}.*\\byes\\b.*\\baccept\\b`, "i");
20
16
  /**
21
- * The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
17
+ * The allowlist. Wording verified against claude 2.1.205–2.1.268 and codex-cli 0.142.5.
22
18
  * `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
23
19
  * and `mcp` cover the CLI's first-run trust prompts for loading third-party
24
20
  * skills, plugins, and MCP servers under a full-trust launch.
@@ -61,6 +57,16 @@ export const trustPromptAllowlist = [
61
57
  accept: useMcpOption,
62
58
  answerPolicy: "autotrust",
63
59
  },
60
+ {
61
+ // Claude's one-time bypassPermissions disclaimer: "WARNING: Claude Code
62
+ // running in Bypass Permissions mode", "Yes, I accept" / "No, exit"
63
+ // (C-CLAUDE-21). "running in" keeps the live footer from matching.
64
+ id: "bypass_permissions",
65
+ agent: "claude",
66
+ headerPattern: /running in Bypass Permissions mode/i,
67
+ accept: acceptOption,
68
+ answerPolicy: "autotrust",
69
+ },
64
70
  {
65
71
  // Codex's directory-trust gate keeps the stable `workspace_trust` label
66
72
  // (PRD §5.4) even though its wording differs from Claude's.
@@ -82,27 +88,4 @@ export const trustPromptAllowlist = [
82
88
  answerPolicy: "always",
83
89
  },
84
90
  ];
85
- /**
86
- * True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
87
- * text as produced by `nonOptionText`. This is the ONE shared, option-aware
88
- * recognizer: the responder, the cursor navigator, and the screen-fact blocking
89
- * rules all go through it (each computes `nonOptionText` once per frame and
90
- * tests every spec against that), so a numbered or cursor-selectable option whose
91
- * label merely contains a trust phrase is never recognized as a prompt. Matching
92
- * joined non-option lines also keeps wrapped headers matchable (§5.1).
93
- */
94
- export function trustHeaderMatches(header, spec) {
95
- return spec.headerPattern.test(header);
96
- }
97
- /** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
98
- export function trustPromptHeaderVisible(frame, spec) {
99
- return trustHeaderMatches(nonOptionText(frame), spec);
100
- }
101
- /** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
102
- export function blockingTrustSpecs(agent, autotrust) {
103
- return trustPromptAllowlist.filter(
104
- // An `answerPolicy: "always"` prompt (hook trust) is auto-handled, so it must
105
- // NOT be classified as human-blocking. Others block only when autotrust is off.
106
- (spec) => spec.agent === agent && spec.answerPolicy !== "always" && !autotrust);
107
- }
108
- //# sourceMappingURL=trust-prompts.js.map
91
+ //# sourceMappingURL=allowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,wBAAwB;AACxB,MAAM,UAAU,GAAG,qDAAqD,CAAC;AACzE,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,sCAAsC,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AAC5F,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,2BAA2B,EAAE,GAAG,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,2EAA2E;QAC3E,0EAA0E;QAC1E,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,0EAA0E;QACzF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,mEAAmE;QAClF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,wEAAwE;QACxE,oEAAoE;QACpE,mEAAmE;QACnE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,qCAAqC;QACpD,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,wEAAwE;QACxE,4DAA4D;QAC5D,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,8CAA8C;QAC7D,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD,+EAA+E;IAC/E,iFAAiF;IACjF;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,oBAAoB;QACnC,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,QAAQ;KACvB;CAC4C,CAAC"}
@@ -9,6 +9,8 @@
9
9
  * future CLI security gate for third-party code or config.
10
10
  */
11
11
  import type { ElwoodAgentKind } from "../activity/index.ts";
12
+ import { trustPromptAllowlist } from "./allowlist.ts";
13
+ export { trustPromptAllowlist } from "./allowlist.ts";
12
14
  /**
13
15
  * The fields common to every allowlisted trust prompt. The prompt and its answer
14
16
  * are BOTH matched within the same current frame: `headerPattern` identifies the
@@ -35,6 +37,8 @@ type TrustPromptBase = {
35
37
  * under the caller's full-trust posture; `"always"` prompts are answered
36
38
  * regardless of it (Elwood's own hook bridge, never third-party code).
37
39
  */
40
+ /** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
41
+ type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust" | "bypass_permissions";
38
42
  export type TrustAnswerPolicy = "always" | "autotrust";
39
43
  /**
40
44
  * One allowlisted trust prompt, as an agent+id-DISCRIMINATED union so that (a) a
@@ -60,51 +64,6 @@ export type TrustPromptSpec = ({
60
64
  /** Answered regardless of `autotrust`: Elwood's own hook bridge (never third-party code). */
61
65
  readonly answerPolicy: "always";
62
66
  } & TrustPromptBase);
63
- /** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
64
- type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust";
65
- /**
66
- * The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
67
- * `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
68
- * and `mcp` cover the CLI's first-run trust prompts for loading third-party
69
- * skills, plugins, and MCP servers under a full-trust launch.
70
- */
71
- export declare const trustPromptAllowlist: readonly [{
72
- readonly id: "workspace_trust";
73
- readonly agent: "claude";
74
- readonly headerPattern: RegExp;
75
- readonly accept: RegExp;
76
- readonly answerPolicy: "autotrust";
77
- }, {
78
- readonly id: "skill_trust";
79
- readonly agent: "claude";
80
- readonly headerPattern: RegExp;
81
- readonly accept: RegExp;
82
- readonly answerPolicy: "autotrust";
83
- }, {
84
- readonly id: "plugin_trust";
85
- readonly agent: "claude";
86
- readonly headerPattern: RegExp;
87
- readonly accept: RegExp;
88
- readonly answerPolicy: "autotrust";
89
- }, {
90
- readonly id: "mcp_trust";
91
- readonly agent: "claude";
92
- readonly headerPattern: RegExp;
93
- readonly accept: RegExp;
94
- readonly answerPolicy: "autotrust";
95
- }, {
96
- readonly id: "workspace_trust";
97
- readonly agent: "codex";
98
- readonly headerPattern: RegExp;
99
- readonly accept: RegExp;
100
- readonly answerPolicy: "autotrust";
101
- }, {
102
- readonly id: "hook_trust";
103
- readonly agent: "codex";
104
- readonly headerPattern: RegExp;
105
- readonly accept: RegExp;
106
- readonly answerPolicy: "always";
107
- }];
108
67
  /**
109
68
  * True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
110
69
  * text as produced by `nonOptionText`. This is the ONE shared, option-aware
@@ -131,5 +90,4 @@ export type TrustPromptIdFor<A extends ElwoodAgentKind> = Extract<(typeof trustP
131
90
  }>["id"];
132
91
  /** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
133
92
  export declare function blockingTrustSpecs(agent: ElwoodAgentKind, autotrust: boolean): readonly TrustPromptSpec[];
134
- export {};
135
93
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB,iGAAiG;AACjG,KAAK,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAW5F;;;;;GAKG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsDc,CAAC;AAEhD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,iGAAiG;AACjG,KAAK,mBAAmB,GACpB,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,WAAW,GACX,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
@@ -9,79 +9,8 @@
9
9
  * future CLI security gate for third-party code or config.
10
10
  */
11
11
  import { nonOptionText } from "../terminal-options.js";
12
- // Affirmative option shapes. Each rejects decline words so "No, ..." never matches.
13
- const notDecline = "(?!.*\\b(no|without|not|quit|cancel|deny|don't)\\b)";
14
- const yesOption = new RegExp(`^${notDecline}.*\\b(yes|trust|continue|proceed)\\b`, "i");
15
- const useMcpOption = new RegExp(`^${notDecline}.*\\buse this(?:.*\\bMCP)? server`, "i");
16
- // Codex hook trust's real affirmative is "Trust all and continue" / "Trust
17
- // hooks" — matched specifically so a nearby unrelated dialog's generic "Yes,
18
- // continue" (e.g. a credential prompt) can never be selected for hook trust.
19
- const trustHooksOption = new RegExp(`^${notDecline}.*\\btrust\\b.*\\b(hooks?|all)\\b`, "i");
20
- /**
21
- * The allowlist. Wording verified against claude 2.1.205–2.1.252 and codex-cli 0.142.5.
22
- * `workspace`/`directory` trust are the folder-trust gates; `skill`, `plugin`,
23
- * and `mcp` cover the CLI's first-run trust prompts for loading third-party
24
- * skills, plugins, and MCP servers under a full-trust launch.
25
- */
26
- // Each `headerPattern` matches the prompt's QUESTION/HEADER wording — never a
27
- // phrase that lives only in an affirmative option — so recognition anchors on a
28
- // header line (matched via `trustHeaderMatches` over the frame's non-option
29
- // text), which a hostile option cannot spoof (PRD §5.1).
30
- export const trustPromptAllowlist = [
31
- {
32
- // Header renders as "Do you trust this folder?" or "Quick safety check: Is
33
- // this a project you created or one you trust?" (claude 2.1.205/2.1.206).
34
- id: "workspace_trust",
35
- agent: "claude",
36
- headerPattern: /do you trust this folder|project you .*\bor one you trust/i,
37
- accept: yesOption,
38
- answerPolicy: "autotrust",
39
- },
40
- {
41
- id: "skill_trust",
42
- agent: "claude",
43
- headerPattern: /do you (?:want to )?(?:trust|load) (?:this|the) skill|load this skill\?/i,
44
- accept: yesOption,
45
- answerPolicy: "autotrust",
46
- },
47
- {
48
- id: "plugin_trust",
49
- agent: "claude",
50
- headerPattern: /do you (?:want to )?trust (?:this|the) plugin|trust the plugin\?/i,
51
- accept: yesOption,
52
- answerPolicy: "autotrust",
53
- },
54
- {
55
- // Header "New MCP server found in this project"; the affirmative option is
56
- // "Use this MCP server" (no yes/trust/continue word), needing a per-prompt
57
- // accept — the generic yes-matcher would leave it wedged.
58
- id: "mcp_trust",
59
- agent: "claude",
60
- headerPattern: /New MCP server found|do you trust (?:this|the) MCP server/i,
61
- accept: useMcpOption,
62
- answerPolicy: "autotrust",
63
- },
64
- {
65
- // Codex's directory-trust gate keeps the stable `workspace_trust` label
66
- // (PRD §5.4) even though its wording differs from Claude's.
67
- id: "workspace_trust",
68
- agent: "codex",
69
- headerPattern: /Do you trust the contents of this directory/i,
70
- accept: yesOption,
71
- answerPolicy: "autotrust",
72
- },
73
- // Hook trust is Elwood's own integration, required for the session to work, so
74
- // it is always answered (not gated on autotrust) — see `answerPolicy: "always"`.
75
- {
76
- id: "hook_trust",
77
- agent: "codex",
78
- headerPattern: /Hooks need review/i,
79
- // Specific to hook trust's own option ("Trust all and continue"), never a
80
- // generic "Yes" that could belong to a different dialog in the same frame.
81
- accept: trustHooksOption,
82
- answerPolicy: "always",
83
- },
84
- ];
12
+ import { trustPromptAllowlist } from "./allowlist.js";
13
+ export { trustPromptAllowlist } from "./allowlist.js";
85
14
  /**
86
15
  * True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
87
16
  * text as produced by `nonOptionText`. This is the ONE shared, option-aware
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8DvD,oFAAoF;AACpF,MAAM,UAAU,GAAG,qDAAqD,CAAC;AACzE,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,sCAAsC,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AACxF,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,mCAAmC,EAAE,GAAG,CAAC,CAAC;AAE5F;;;;;GAKG;AACH,8EAA8E;AAC9E,gFAAgF;AAChF,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,2EAA2E;QAC3E,0EAA0E;QAC1E,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,0EAA0E;QACzF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,mEAAmE;QAClF,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,4DAA4D;QAC3E,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,WAAW;KAC1B;IACD;QACE,wEAAwE;QACxE,4DAA4D;QAC5D,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,8CAA8C;QAC7D,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,WAAW;KAC1B;IACD,+EAA+E;IAC/E,iFAAiF;IACjF;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,oBAAoB;QACnC,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,QAAQ;KACvB;CAC4C,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAqB;IACtE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,IAAqB;IAC3E,OAAO,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAiBD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,SAAkB;IAElB,OAAO,oBAAoB,CAAC,MAAM;IAChC,8EAA8E;IAC9E,gFAAgF;IAChF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAC/E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAmEtD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAqB;IACtE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,IAAqB;IAC3E,OAAO,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAiBD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,SAAkB;IAElB,OAAO,oBAAoB,CAAC,MAAM;IAChC,8EAA8E;IAC9E,gFAAgF;IAChF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAC/E,CAAC;AACJ,CAAC"}
@@ -45,4 +45,6 @@ export declare class TrustPromptResponder<A extends ElwoodAgentKind> {
45
45
  /** `frame` MUST be the CURRENT rendered screen, not an accumulated buffer. */
46
46
  handle(frame: string, write: (input: string) => TrustWriteResult, readFrame?: () => string): TrustPromptResult<A>;
47
47
  }
48
+ /** Whether any allowlisted trust prompt for `agent` is showing its header in `text`. */
49
+ export declare function trustPromptVisible(text: string, agent: ElwoodAgentKind): boolean;
48
50
  //# sourceMappingURL=responder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"responder.d.ts","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQ5D,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAQtB,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAC/E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAG9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,GACzE,SAAS,CAAC;AAEd,qBAAa,oBAAoB,CAAC,CAAC,SAAS,eAAe;IAGzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAI1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;gBAEtD,KAAK,EAAE,CAAC,EAAE,SAAS,UAAQ;IAKvC,8EAA8E;IAC9E,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,GACvB,iBAAiB,CAAC,CAAC,CAAC;CA0CxB"}
1
+ {"version":3,"file":"responder.d.ts","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQ5D,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,cAAc,CAAC;AAQtB,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAC/E,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAG9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;CAAE,GACzE,SAAS,CAAC;AAEd,qBAAa,oBAAoB,CAAC,CAAC,SAAS,eAAe;IAGzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAI1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;gBAEtD,KAAK,EAAE,CAAC,EAAE,SAAS,UAAQ;IAKvC,8EAA8E;IAC9E,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,GACvB,iBAAiB,CAAC,CAAC,CAAC;CA0CxB;AAuDD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAIhF"}
@@ -116,4 +116,8 @@ async function waitForCursorProgress(spec, priorOffset, readFrame) {
116
116
  }
117
117
  return "retry";
118
118
  }
119
+ /** Whether any allowlisted trust prompt for `agent` is showing its header in `text`. */
120
+ export function trustPromptVisible(text, agent) {
121
+ return trustPromptAllowlist.some((spec) => spec.agent === agent && trustPromptHeaderVisible(text, spec));
122
+ }
119
123
  //# sourceMappingURL=responder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responder.js","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responder.js","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export type StartClaudeOptions = {
42
42
  readonly disallowedTools?: readonly ClaudeToolRule[];
43
43
  readonly tools?: readonly ClaudeToolRule[];
44
44
  readonly settingsOverrides?: ClaudeSettingsOverrides;
45
+ /** Agent-neutral "never ask": expands to `permissionMode: "bypassPermissions"` (C-API-54). */
46
+ readonly highTrust?: boolean;
45
47
  readonly autoupdate?: boolean;
46
48
  readonly autotrust?: boolean;
47
49
  readonly hookTimeoutMs?: number;
@@ -58,6 +60,7 @@ export type ResumeClaudeOptions = {
58
60
  readonly allowedTools?: readonly ClaudeToolRule[];
59
61
  readonly disallowedTools?: readonly ClaudeToolRule[];
60
62
  readonly tools?: readonly ClaudeToolRule[];
63
+ readonly highTrust?: boolean;
61
64
  readonly autoupdate?: boolean;
62
65
  readonly autotrust?: boolean;
63
66
  readonly hookTimeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Flag/value launch-argument pairs shared by the adapters' shell commands and the
3
+ * foreground `elwood interactive` spawn, so one mapping serves both launch paths.
4
+ * Implements PRD §4.2 and §12A.9.
5
+ */
6
+ /** One agent argument: a flag or bare word followed by its value. */
7
+ export type LaunchArgument = readonly [flag: string, value: string];
8
+ /** The argv form for a direct `spawn` (no shell, nothing quoted). */
9
+ export declare function launchArgv(args: readonly LaunchArgument[]): readonly string[];
10
+ /** The login-shell form: flags stay bare, every value is single-quoted. */
11
+ export declare function launchShellWords(args: readonly LaunchArgument[]): readonly string[];
12
+ //# sourceMappingURL=launch-arguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-arguments.d.ts","sourceRoot":"","sources":["../../src/runtime/launch-arguments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEpE,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,MAAM,EAAE,CAE7E;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,MAAM,EAAE,CAEnF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Flag/value launch-argument pairs shared by the adapters' shell commands and the
3
+ * foreground `elwood interactive` spawn, so one mapping serves both launch paths.
4
+ * Implements PRD §4.2 and §12A.9.
5
+ */
6
+ import { shellQuote } from "./shell.js";
7
+ /** The argv form for a direct `spawn` (no shell, nothing quoted). */
8
+ export function launchArgv(args) {
9
+ return args.flatMap((argument) => [argument[0], argument[1]]);
10
+ }
11
+ /** The login-shell form: flags stay bare, every value is single-quoted. */
12
+ export function launchShellWords(args) {
13
+ return args.map((argument) => `${argument[0]} ${shellQuote(argument[1])}`);
14
+ }
15
+ //# sourceMappingURL=launch-arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-arguments.js","sourceRoot":"","sources":["../../src/runtime/launch-arguments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,IAA+B;IACxD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC"}
@@ -191,6 +191,46 @@ select a destructive-rider affirmative, and never answer a specific-affirmative
191
191
  prompt (e.g. hook trust) with a generic "Yes". `src/core/trust/responder.ts`,
192
192
  `src/core/trust/prompts.ts`, verified by `tests/e2e/trust-prompt-claude.e2e.ts`.
193
193
 
194
+ ### Bypass-permissions acceptance dialog (`--high-trust`)
195
+
196
+ Claude Code carries a one-time disclaimer for bypass mode. Its wording, taken
197
+ from the 2.1.268 binary (it is not in the public docs), is:
198
+
199
+ ```
200
+ WARNING: Claude Code running in Bypass Permissions mode
201
+ In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands.
202
+ By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode.
203
+ Yes, I accept
204
+ No, exit
205
+ ```
206
+
207
+ The acceptance is persisted in Claude's global config as
208
+ `bypassPermissionsModeAccepted` (the binary describes it as "Whether the user has
209
+ accepted the bypass permissions mode dialog"), and `--bg` refuses bypass mode
210
+ until it has been accepted once interactively, so the dialog is at most
211
+ once-per-machine. **Empirically, on 2.1.268 (Claude Max account, macOS) the
212
+ dialog did NOT render at all** — neither through Elwood's `--permission-mode
213
+ bypassPermissions` launch nor with a raw `--dangerously-skip-permissions`
214
+ launch — and no `bypassPermissionsModeAccepted` key existed anywhere under
215
+ `~/.claude*`; the session went straight to the composer with the persistent
216
+ `⏵⏵ bypass permissions on (shift+tab to cycle)` footer. Whether it appears is
217
+ therefore version/account-gated, and Elwood must be correct in BOTH states:
218
+
219
+ - The dialog is an allowlisted trust prompt (`bypass_permissions`), answered
220
+ under `autotrust` by the same header-anchored, numbered-or-cursor machinery as
221
+ folder trust. The header pattern anchors on `running in Bypass Permissions
222
+ mode` so the always-present `bypass permissions on` footer can never match, and
223
+ the affirmative matcher is specific to `Yes, I accept` (never a generic yes).
224
+ - When the dialog does not render, nothing is written and the session simply
225
+ reaches `ready`; `tests/e2e/high-trust.e2e.ts` asserts a `bypass_permissions`
226
+ `startup_prompt` exactly when the dialog was seen, and logs which case ran.
227
+ - The folder-trust gate still renders first under bypass mode (see above), so a
228
+ fresh temp workspace answers `workspace_trust` and then, if shown, the
229
+ disclaimer.
230
+ - `--dangerously-skip-permissions cannot be used with root/sudo privileges for
231
+ security reasons` is the CLI's own refusal; Elwood does not special-case it —
232
+ it surfaces as the ordinary start failure with the CLI's message.
233
+
194
234
  **Do not equate `autotrust` with “not blocking” until the write clears the real
195
235
  screen.** Trust rules are omitted from human-blocking classification under
196
236
  `autotrust`, because automation owns the gate. If option parsing drifts and writes
@@ -404,6 +444,54 @@ Verified manually in a real PTY with successful headed turns on Codex 0.153.4 an
404
444
  Claude 2.1.261, including terminal restoration and clean JSON terminal records.
405
445
  C-CLI-18/C-CODEX-12.
406
446
 
447
+ ## Interactive mode, session listing, and model listing
448
+
449
+ `elwood interactive` is the one command that does NOT drive the interactive TUI
450
+ through Elwood: it spawns `claude`/`codex` directly with inherited stdio and the
451
+ adapters' shared launch-argument builders, so every dialog the headless path
452
+ automates is the user's to answer. Verified in a real PTY on Claude 2.1.268 and
453
+ Codex 0.153.4:
454
+
455
+ - Codex shows its in-TUI update prompt first, then the directory-trust prompt
456
+ ("Do you trust the contents of this directory?"), before the `›` composer. A
457
+ PTY driver must answer both (Skip = `2`, Yes = `1`) before the composer
458
+ appears; answering `2` to the trust prompt ("No, quit") exits 0. Codex draws
459
+ words with cursor moves, so match dialog text with `\s*` between words. A
460
+ typed `/quit` + Enter did not end the idle Codex TUI within 10s; its idle
461
+ double Ctrl-C did (status 0), so the e2e driver quits Codex that way.
462
+ - Claude in a fresh temp directory went straight to the `❯` composer here, and
463
+ `/exit` returned 0. The footer's "don't ask on" came from the user's own
464
+ `~/.claude/settings.json` `permissions.defaultMode`, not from Elwood: with no
465
+ configured posture Elwood passes no `--permission-mode` (source `built-in` is
466
+ omitted), which is exactly the direct-launch experience.
467
+ - `elwood interactive <id>` after a headless `--keep` run reopened the prior
468
+ conversation (the kept prompt and answer were on screen) via
469
+ `claude --resume <conversation id>` in the stored workspace, and Claude
470
+ printed its own "Resume this session with: claude --resume …" on exit. The
471
+ Elwood record's `lastUsedAt` did not change, confirming no state writes.
472
+ - A stored headless session carries `permissionMode: dontAsk`, so an interactive
473
+ resume of it runs Claude in don't-ask mode until `--claude-permission-mode`
474
+ overrides it (documented in the README).
475
+
476
+ `elwood models` reuses the headless facade plus `CliLifecycle`, so timeout,
477
+ SIGINT, blocked prompts, and teardown behave as for a run. Real Claude lists
478
+ five rows in ~6s; real Codex six rows in ~5s. Two environment facts matter:
479
+
480
+ - When Elwood itself runs nested inside a Claude Code session (`CLAUDECODE` and
481
+ `CLAUDE_CODE_*` set), claude >= 2.1.201 skips transcript persistence for the
482
+ nested instance; a headless run then fails `wait_timeout` ("transcript did not
483
+ catch up after ready") and floods `transcript_read_error (ENOENT)`. The e2e
484
+ helper strips those variables; do the same for manual smoke runs.
485
+ - Even outside nesting, one `transcript_read_error (ENOENT)` warning appears at
486
+ Claude startup before the first turn creates the transcript file. It is
487
+ pre-existing run behavior, not specific to `models`.
488
+
489
+ `elwood sessions` reports `live` from the presence of a `.sock` file in the
490
+ session's stable socket home. A connect probe was rejected on purpose: the
491
+ bridge treats any connection that closes without a frame as a malformed request
492
+ and emits `hookError`/`activity` on the live owner, so presence is the only
493
+ side-effect-free signal. C-CLI-21 through C-CLI-24.
494
+
407
495
  ## Testing against the real CLIs
408
496
 
409
497
  - `test:e2e` runs **serially** (`--test-concurrency=1`): Codex config-file
@@ -79,6 +79,66 @@ share `toolCallId` when the agent supplies one:
79
79
  JSONL warning records stay on stdout so the machine protocol remains ordered;
80
80
  text and JSON runs surface warnings on stderr.
81
81
 
82
+ ## Session and model listings
83
+
84
+ `elwood sessions` and `elwood models` accept `--output text` (default) or
85
+ `--output json`; JSONL is not a listing protocol. Both emit exactly one document
86
+ in JSON mode, and `sessions` never starts an agent:
87
+
88
+ ```json
89
+ {
90
+ "schemaVersion": 1,
91
+ "type": "sessions",
92
+ "stateDir": "/Users/me/.local/state/elwood",
93
+ "sessions": [
94
+ {
95
+ "id": "6f0c2c1e-3f1a-4d2b-9c6e-1f2a3b4c5d6e",
96
+ "agent": "codex",
97
+ "cwd": "/Users/me/project",
98
+ "createdAt": "2026-09-10T18:21:04.512Z",
99
+ "lastUsedAt": "2026-09-10T18:24:39.001Z",
100
+ "resumable": true,
101
+ "live": false
102
+ }
103
+ ]
104
+ }
105
+ ```
106
+
107
+ `live` means a launch's bridge socket file is present; it is a cheap presence
108
+ check, so a force-killed owner can leave a stale "live" until the session is
109
+ next started or torn down. An empty state directory yields an empty `sessions`
110
+ array (text mode prints a notice on stderr and nothing on stdout). Unreadable
111
+ records are skipped with one stderr warning each.
112
+
113
+ `elwood models` starts the agent briefly to read its own model picker, then
114
+ tears the session down:
115
+
116
+ ```json
117
+ {
118
+ "schemaVersion": 1,
119
+ "type": "models",
120
+ "agent": "claude",
121
+ "models": [
122
+ { "id": "opus", "label": "Opus", "description": "…", "isCurrent": true, "isDefault": false, "raw": "…" },
123
+ { "id": "sonnet", "label": "Sonnet", "description": "…", "isCurrent": false, "isDefault": true, "raw": "…" }
124
+ ]
125
+ }
126
+ ```
127
+
128
+ Failures use the same `error` document and statuses as a run. Useful recipes:
129
+
130
+ ```sh
131
+ id=$(elwood sessions --output json | jq -r '.sessions[0].id')
132
+ elwood resume "$id" --output json "Summarize what we decided" | jq -er .response
133
+ elwood models --agent codex --output json | jq -r '.models[] | select(.isDefault) | .id'
134
+ ```
135
+
136
+ `elwood resume <id> [prompt...]` is exactly `elwood run --resume <id>`; the
137
+ stored agent and workspace apply, and piped stdin composes with positional words
138
+ the same way. `elwood interactive [id]` is not scriptable: it requires a terminal
139
+ on stdin and stdout, hands the terminal to the agent's own TUI, writes no
140
+ protocol to stdout, and exits with the agent's exit status.
141
+
82
142
  ## Exit codes
83
143
 
84
144
  | Status | Meaning |