@elie-laloum/outpost 10.0.1 → 11.1.2

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 (963) hide show
  1. package/CHANGELOG.md +67 -1
  2. package/README.md +13 -9
  3. package/SECURITY.md +38 -4
  4. package/dist/adapters/agents/antigravity/antigravity-adapter.js +2 -0
  5. package/dist/adapters/agents/antigravity/antigravity-adapter.js.map +1 -1
  6. package/dist/adapters/agents/antigravity/antigravity-request.js +4 -4
  7. package/dist/adapters/agents/antigravity/antigravity-request.js.map +1 -1
  8. package/dist/adapters/agents/antigravity/antigravity.types.d.ts +2 -0
  9. package/dist/adapters/agents/antigravity/antigravity.types.js.map +1 -1
  10. package/dist/adapters/agents/claude/claude-adapter.js +3 -0
  11. package/dist/adapters/agents/claude/claude-adapter.js.map +1 -1
  12. package/dist/adapters/agents/claude/claude-profile.constants.d.ts +6 -0
  13. package/dist/adapters/agents/claude/claude-profile.constants.js +25 -0
  14. package/dist/adapters/agents/claude/claude-profile.constants.js.map +1 -0
  15. package/dist/adapters/agents/claude/claude-profile.d.ts +3 -0
  16. package/dist/adapters/agents/claude/claude-profile.js +69 -0
  17. package/dist/adapters/agents/claude/claude-profile.js.map +1 -0
  18. package/dist/adapters/agents/claude/claude-request.js +9 -3
  19. package/dist/adapters/agents/claude/claude-request.js.map +1 -1
  20. package/dist/adapters/agents/codex/codex-adapter.js +2 -0
  21. package/dist/adapters/agents/codex/codex-adapter.js.map +1 -1
  22. package/dist/adapters/agents/codex/codex-app-session.js +3 -0
  23. package/dist/adapters/agents/codex/codex-app-session.js.map +1 -1
  24. package/dist/adapters/agents/codex/codex-profile.d.ts +2 -0
  25. package/dist/adapters/agents/codex/codex-profile.js +9 -0
  26. package/dist/adapters/agents/codex/codex-profile.js.map +1 -0
  27. package/dist/adapters/agents/codex/codex-request.js +5 -1
  28. package/dist/adapters/agents/codex/codex-request.js.map +1 -1
  29. package/dist/adapters/agents/copilot/copilot-adapter.js +2 -0
  30. package/dist/adapters/agents/copilot/copilot-adapter.js.map +1 -1
  31. package/dist/adapters/agents/copilot/copilot-request.js +4 -2
  32. package/dist/adapters/agents/copilot/copilot-request.js.map +1 -1
  33. package/dist/adapters/agents/copilot/copilot.types.d.ts +2 -0
  34. package/dist/adapters/agents/copilot/copilot.types.js.map +1 -1
  35. package/dist/adapters/agents/kimi/kimi-adapter.js +3 -0
  36. package/dist/adapters/agents/kimi/kimi-adapter.js.map +1 -1
  37. package/dist/adapters/agents/kimi/kimi-request.js +4 -2
  38. package/dist/adapters/agents/kimi/kimi-request.js.map +1 -1
  39. package/dist/adapters/agents/kimi/kimi.types.d.ts +2 -0
  40. package/dist/adapters/agents/kimi/kimi.types.js.map +1 -1
  41. package/dist/adapters/agents/model-support.js +5 -3
  42. package/dist/adapters/agents/model-support.js.map +1 -1
  43. package/dist/adapters/agents/profile-support.d.ts +3 -0
  44. package/dist/adapters/agents/profile-support.js +10 -0
  45. package/dist/adapters/agents/profile-support.js.map +1 -0
  46. package/dist/adapters/agents/settings.types.d.ts +3 -0
  47. package/dist/adapters/agents/settings.types.js.map +1 -1
  48. package/dist/adapters/models/model-prices.constants.d.ts +10 -0
  49. package/dist/adapters/models/model-prices.constants.js +11 -0
  50. package/dist/adapters/models/model-prices.constants.js.map +1 -0
  51. package/dist/adapters/models/model-prices.d.ts +3 -0
  52. package/dist/adapters/models/model-prices.js +105 -0
  53. package/dist/adapters/models/model-prices.js.map +1 -0
  54. package/dist/adapters/models/model-prices.types.d.ts +11 -0
  55. package/dist/adapters/models/model-prices.types.js +2 -0
  56. package/dist/adapters/models/model-prices.types.js.map +1 -0
  57. package/dist/adapters/secrets/aws.d.ts +4 -0
  58. package/dist/adapters/secrets/aws.js +43 -0
  59. package/dist/adapters/secrets/aws.js.map +1 -0
  60. package/dist/adapters/secrets/aws.types.d.ts +11 -0
  61. package/dist/adapters/secrets/aws.types.js +2 -0
  62. package/dist/adapters/secrets/aws.types.js.map +1 -0
  63. package/dist/adapters/secrets/azure.d.ts +4 -0
  64. package/dist/adapters/secrets/azure.js +23 -0
  65. package/dist/adapters/secrets/azure.js.map +1 -0
  66. package/dist/adapters/secrets/azure.types.d.ts +9 -0
  67. package/dist/adapters/secrets/azure.types.js +2 -0
  68. package/dist/adapters/secrets/azure.types.js.map +1 -0
  69. package/dist/adapters/secrets/gcp.d.ts +4 -0
  70. package/dist/adapters/secrets/gcp.js +28 -0
  71. package/dist/adapters/secrets/gcp.js.map +1 -0
  72. package/dist/adapters/secrets/gcp.types.d.ts +5 -0
  73. package/dist/adapters/secrets/gcp.types.js +2 -0
  74. package/dist/adapters/secrets/gcp.types.js.map +1 -0
  75. package/dist/adapters/secrets/infisical.d.ts +4 -0
  76. package/dist/adapters/secrets/infisical.js +40 -0
  77. package/dist/adapters/secrets/infisical.js.map +1 -0
  78. package/dist/adapters/secrets/infisical.types.d.ts +11 -0
  79. package/dist/adapters/secrets/infisical.types.js +2 -0
  80. package/dist/adapters/secrets/infisical.types.js.map +1 -0
  81. package/dist/adapters/secrets/onepassword.d.ts +4 -0
  82. package/dist/adapters/secrets/onepassword.js +12 -0
  83. package/dist/adapters/secrets/onepassword.js.map +1 -0
  84. package/dist/adapters/secrets/onepassword.types.d.ts +7 -0
  85. package/dist/adapters/secrets/onepassword.types.js +2 -0
  86. package/dist/adapters/secrets/onepassword.types.js.map +1 -0
  87. package/dist/adapters/secrets/secret-source.d.ts +4 -0
  88. package/dist/adapters/secrets/secret-source.js +29 -0
  89. package/dist/adapters/secrets/secret-source.js.map +1 -0
  90. package/dist/adapters/secrets/secret-source.types.d.ts +2 -0
  91. package/dist/adapters/secrets/secret-source.types.js +2 -0
  92. package/dist/adapters/secrets/secret-source.types.js.map +1 -0
  93. package/dist/adapters/secrets/vault-response.d.ts +1 -0
  94. package/dist/adapters/secrets/vault-response.js +43 -0
  95. package/dist/adapters/secrets/vault-response.js.map +1 -0
  96. package/dist/adapters/secrets/vault.constants.d.ts +1 -0
  97. package/dist/adapters/secrets/vault.constants.js +2 -0
  98. package/dist/adapters/secrets/vault.constants.js.map +1 -0
  99. package/dist/adapters/secrets/vault.d.ts +4 -0
  100. package/dist/adapters/secrets/vault.js +63 -0
  101. package/dist/adapters/secrets/vault.js.map +1 -0
  102. package/dist/adapters/secrets/vault.types.d.ts +8 -0
  103. package/dist/adapters/secrets/vault.types.js +2 -0
  104. package/dist/adapters/secrets/vault.types.js.map +1 -0
  105. package/dist/adapters/testing/scripted-agent.d.ts +3 -0
  106. package/dist/adapters/testing/scripted-agent.js +77 -0
  107. package/dist/adapters/testing/scripted-agent.js.map +1 -0
  108. package/dist/adapters/testing/scripted-agent.types.d.ts +17 -0
  109. package/dist/adapters/testing/scripted-agent.types.js +2 -0
  110. package/dist/adapters/testing/scripted-agent.types.js.map +1 -0
  111. package/dist/adapters/tools/file-tools.d.ts +2 -1
  112. package/dist/adapters/tools/file-tools.js +37 -15
  113. package/dist/adapters/tools/file-tools.js.map +1 -1
  114. package/dist/adapters/tools/filesystem-selection.constants.d.ts +1 -0
  115. package/dist/adapters/tools/filesystem-selection.constants.js +7 -0
  116. package/dist/adapters/tools/filesystem-selection.constants.js.map +1 -0
  117. package/dist/adapters/tools/git-tools.js +1 -0
  118. package/dist/adapters/tools/git-tools.js.map +1 -1
  119. package/dist/adapters/tools/search-tools.d.ts +2 -1
  120. package/dist/adapters/tools/search-tools.js +52 -22
  121. package/dist/adapters/tools/search-tools.js.map +1 -1
  122. package/dist/adapters/tools/tools.types.d.ts +3 -0
  123. package/dist/adapters/tools/tools.types.js.map +1 -1
  124. package/dist/application/activity-watchdog.d.ts +2 -1
  125. package/dist/application/activity-watchdog.js +2 -1
  126. package/dist/application/activity-watchdog.js.map +1 -1
  127. package/dist/application/agent-conflict-resolver.d.ts +3 -0
  128. package/dist/application/agent-conflict-resolver.js +71 -0
  129. package/dist/application/agent-conflict-resolver.js.map +1 -0
  130. package/dist/application/agent-turn.js +17 -2
  131. package/dist/application/agent-turn.js.map +1 -1
  132. package/dist/application/attach.d.ts +4 -0
  133. package/dist/application/attach.js +20 -0
  134. package/dist/application/attach.js.map +1 -1
  135. package/dist/application/brief-renderer.d.ts +2 -3
  136. package/dist/application/brief-renderer.js +6 -4
  137. package/dist/application/brief-renderer.js.map +1 -1
  138. package/dist/application/conflict-merge.d.ts +5 -0
  139. package/dist/application/conflict-merge.js +31 -0
  140. package/dist/application/conflict-merge.js.map +1 -0
  141. package/dist/application/conflict-resolution.constants.d.ts +4 -0
  142. package/dist/application/conflict-resolution.constants.js +5 -0
  143. package/dist/application/conflict-resolution.constants.js.map +1 -0
  144. package/dist/application/conflict-resolution.types.d.ts +35 -0
  145. package/dist/application/conflict-resolution.types.js +2 -0
  146. package/dist/application/conflict-resolution.types.js.map +1 -0
  147. package/dist/application/conflict-verification.d.ts +4 -0
  148. package/dist/application/conflict-verification.js +45 -0
  149. package/dist/application/conflict-verification.js.map +1 -0
  150. package/dist/application/custom-turn.js +18 -6
  151. package/dist/application/custom-turn.js.map +1 -1
  152. package/dist/application/decision-task.js +4 -1
  153. package/dist/application/decision-task.js.map +1 -1
  154. package/dist/application/dispatch-observation.js +63 -5
  155. package/dist/application/dispatch-observation.js.map +1 -1
  156. package/dist/application/dispatch-observation.types.d.ts +3 -0
  157. package/dist/application/dispatch-observation.types.js.map +1 -1
  158. package/dist/application/dispatch-validation.js +13 -1
  159. package/dist/application/dispatch-validation.js.map +1 -1
  160. package/dist/application/dispatch.d.ts +4 -0
  161. package/dist/application/dispatch.js +23 -0
  162. package/dist/application/dispatch.js.map +1 -1
  163. package/dist/application/doctor-image.js +4 -2
  164. package/dist/application/doctor-image.js.map +1 -1
  165. package/dist/application/doctor-sandbox.js +3 -1
  166. package/dist/application/doctor-sandbox.js.map +1 -1
  167. package/dist/application/doctor-sandbox.types.d.ts +1 -0
  168. package/dist/application/doctor-sandbox.types.js.map +1 -1
  169. package/dist/application/doctor.js +16 -8
  170. package/dist/application/doctor.js.map +1 -1
  171. package/dist/application/doctor.types.d.ts +2 -0
  172. package/dist/application/doctor.types.js.map +1 -1
  173. package/dist/application/execution.d.ts +2 -3
  174. package/dist/application/execution.js +35 -4
  175. package/dist/application/execution.js.map +1 -1
  176. package/dist/application/execution.types.d.ts +15 -0
  177. package/dist/application/execution.types.js.map +1 -1
  178. package/dist/application/file-interactive-task.d.ts +3 -0
  179. package/dist/application/file-interactive-task.js +189 -0
  180. package/dist/application/file-interactive-task.js.map +1 -0
  181. package/dist/application/file-run-report.d.ts +6 -0
  182. package/dist/application/file-run-report.js +33 -0
  183. package/dist/application/file-run-report.js.map +1 -0
  184. package/dist/application/file-sandbox.d.ts +9 -0
  185. package/dist/application/file-sandbox.js +674 -0
  186. package/dist/application/file-sandbox.js.map +1 -0
  187. package/dist/application/file-sandbox.types.d.ts +62 -0
  188. package/dist/application/file-sandbox.types.js +2 -0
  189. package/dist/application/file-sandbox.types.js.map +1 -0
  190. package/dist/application/file-workspace-recovery.d.ts +5 -0
  191. package/dist/application/file-workspace-recovery.js +80 -0
  192. package/dist/application/file-workspace-recovery.js.map +1 -0
  193. package/dist/application/file-workspace-recovery.types.d.ts +18 -0
  194. package/dist/application/file-workspace-recovery.types.js +2 -0
  195. package/dist/application/file-workspace-recovery.types.js.map +1 -0
  196. package/dist/application/file-workspace-registry.d.ts +2 -0
  197. package/dist/application/file-workspace-registry.js +2 -0
  198. package/dist/application/file-workspace-registry.js.map +1 -0
  199. package/dist/application/file-workspace.d.ts +9 -0
  200. package/dist/application/file-workspace.js +583 -0
  201. package/dist/application/file-workspace.js.map +1 -0
  202. package/dist/application/file-workspace.types.d.ts +79 -0
  203. package/dist/application/file-workspace.types.js +2 -0
  204. package/dist/application/file-workspace.types.js.map +1 -0
  205. package/dist/application/harness-budget.js +2 -1
  206. package/dist/application/harness-budget.js.map +1 -1
  207. package/dist/application/harness-model-provider.js +18 -3
  208. package/dist/application/harness-model-provider.js.map +1 -1
  209. package/dist/application/harness-model-provider.types.d.ts +1 -0
  210. package/dist/application/harness-model-provider.types.js.map +1 -1
  211. package/dist/application/harness-routing.js +7 -1
  212. package/dist/application/harness-routing.js.map +1 -1
  213. package/dist/application/harness-subagent.js +10 -1
  214. package/dist/application/harness-subagent.js.map +1 -1
  215. package/dist/application/harness.types.d.ts +2 -1
  216. package/dist/application/harness.types.js.map +1 -1
  217. package/dist/application/interactive-task-execution.js +1 -0
  218. package/dist/application/interactive-task-execution.js.map +1 -1
  219. package/dist/application/interactive-task.d.ts +2 -1
  220. package/dist/application/interactive-task.js +3 -0
  221. package/dist/application/interactive-task.js.map +1 -1
  222. package/dist/application/interactive-task.types.d.ts +20 -0
  223. package/dist/application/interactive-task.types.js.map +1 -1
  224. package/dist/application/lifecycle-hooks.d.ts +4 -2
  225. package/dist/application/lifecycle-hooks.js +46 -12
  226. package/dist/application/lifecycle-hooks.js.map +1 -1
  227. package/dist/application/lifecycle.constants.d.ts +1 -1
  228. package/dist/application/lifecycle.constants.js +1 -0
  229. package/dist/application/lifecycle.constants.js.map +1 -1
  230. package/dist/application/outpost.types.d.ts +6 -0
  231. package/dist/application/outpost.types.js.map +1 -1
  232. package/dist/application/recipe-configuration-providers.d.ts +3 -0
  233. package/dist/application/recipe-configuration-providers.js +45 -0
  234. package/dist/application/recipe-configuration-providers.js.map +1 -0
  235. package/dist/application/recipe-configuration-values.d.ts +10 -0
  236. package/dist/application/recipe-configuration-values.js +96 -0
  237. package/dist/application/recipe-configuration-values.js.map +1 -0
  238. package/dist/application/recipe-configuration.constants.d.ts +7 -0
  239. package/dist/application/recipe-configuration.constants.js +16 -0
  240. package/dist/application/recipe-configuration.constants.js.map +1 -0
  241. package/dist/application/recipe-configuration.d.ts +2 -0
  242. package/dist/application/recipe-configuration.js +52 -0
  243. package/dist/application/recipe-configuration.js.map +1 -0
  244. package/dist/application/recipe-report.constants.d.ts +5 -0
  245. package/dist/application/recipe-report.constants.js +15 -0
  246. package/dist/application/recipe-report.constants.js.map +1 -0
  247. package/dist/application/recipe-report.d.ts +4 -0
  248. package/dist/application/recipe-report.js +69 -0
  249. package/dist/application/recipe-report.js.map +1 -0
  250. package/dist/application/recipe-report.types.d.ts +33 -0
  251. package/dist/application/recipe-report.types.js +2 -0
  252. package/dist/application/recipe-report.types.js.map +1 -0
  253. package/dist/application/recipe-run.d.ts +7 -0
  254. package/dist/application/recipe-run.js +86 -0
  255. package/dist/application/recipe-run.js.map +1 -0
  256. package/dist/application/recipe.d.ts +6 -0
  257. package/dist/application/recipe.js +86 -0
  258. package/dist/application/recipe.js.map +1 -0
  259. package/dist/application/recipe.types.d.ts +22 -0
  260. package/dist/application/recipe.types.js +2 -0
  261. package/dist/application/recipe.types.js.map +1 -0
  262. package/dist/application/recipes/advanced-components.d.ts +15 -0
  263. package/dist/application/recipes/advanced-components.js +35 -0
  264. package/dist/application/recipes/advanced-components.js.map +1 -0
  265. package/dist/application/recipes/advanced-components.types.d.ts +16 -0
  266. package/dist/application/recipes/advanced-components.types.js +2 -0
  267. package/dist/application/recipes/advanced-components.types.js.map +1 -0
  268. package/dist/application/recipes/agent-components.d.ts +5 -0
  269. package/dist/application/recipes/agent-components.js +22 -0
  270. package/dist/application/recipes/agent-components.js.map +1 -0
  271. package/dist/application/recipes/agent-components.types.d.ts +32 -0
  272. package/dist/application/recipes/agent-components.types.js +2 -0
  273. package/dist/application/recipes/agent-components.types.js.map +1 -0
  274. package/dist/application/recipes/agent-preflight.d.ts +3 -0
  275. package/dist/application/recipes/agent-preflight.js +15 -0
  276. package/dist/application/recipes/agent-preflight.js.map +1 -0
  277. package/dist/application/recipes/components.types.d.ts +50 -0
  278. package/dist/application/recipes/components.types.js +2 -0
  279. package/dist/application/recipes/components.types.js.map +1 -0
  280. package/dist/application/recipes/configuration.d.ts +4 -0
  281. package/dist/application/recipes/configuration.js +76 -0
  282. package/dist/application/recipes/configuration.js.map +1 -0
  283. package/dist/application/recipes/durable-resources.d.ts +5 -0
  284. package/dist/application/recipes/durable-resources.js +183 -0
  285. package/dist/application/recipes/durable-resources.js.map +1 -0
  286. package/dist/application/recipes/durable-resources.types.d.ts +17 -0
  287. package/dist/application/recipes/durable-resources.types.js +2 -0
  288. package/dist/application/recipes/durable-resources.types.js.map +1 -0
  289. package/dist/application/recipes/durable-run.d.ts +28 -0
  290. package/dist/application/recipes/durable-run.js +89 -0
  291. package/dist/application/recipes/durable-run.js.map +1 -0
  292. package/dist/application/recipes/durable-schema.constants.d.ts +557 -0
  293. package/dist/application/recipes/durable-schema.constants.js +138 -0
  294. package/dist/application/recipes/durable-schema.constants.js.map +1 -0
  295. package/dist/application/recipes/durable-session.d.ts +8 -0
  296. package/dist/application/recipes/durable-session.js +178 -0
  297. package/dist/application/recipes/durable-session.js.map +1 -0
  298. package/dist/application/recipes/durable.types.d.ts +49 -0
  299. package/dist/application/recipes/durable.types.js +2 -0
  300. package/dist/application/recipes/durable.types.js.map +1 -0
  301. package/dist/application/recipes/errors.d.ts +2 -0
  302. package/dist/application/recipes/errors.js +21 -0
  303. package/dist/application/recipes/errors.js.map +1 -0
  304. package/dist/application/recipes/file-configuration.d.ts +3 -0
  305. package/dist/application/recipes/file-configuration.js +195 -0
  306. package/dist/application/recipes/file-configuration.js.map +1 -0
  307. package/dist/application/recipes/file-configuration.types.d.ts +26 -0
  308. package/dist/application/recipes/file-configuration.types.js +2 -0
  309. package/dist/application/recipes/file-configuration.types.js.map +1 -0
  310. package/dist/application/recipes/file-publication-report.constants.d.ts +1 -0
  311. package/dist/application/recipes/file-publication-report.constants.js +2 -0
  312. package/dist/application/recipes/file-publication-report.constants.js.map +1 -0
  313. package/dist/application/recipes/file-publication-report.d.ts +3 -0
  314. package/dist/application/recipes/file-publication-report.js +110 -0
  315. package/dist/application/recipes/file-publication-report.js.map +1 -0
  316. package/dist/application/recipes/file-run.d.ts +6 -0
  317. package/dist/application/recipes/file-run.js +263 -0
  318. package/dist/application/recipes/file-run.js.map +1 -0
  319. package/dist/application/recipes/file-validation.d.ts +3 -0
  320. package/dist/application/recipes/file-validation.js +32 -0
  321. package/dist/application/recipes/file-validation.js.map +1 -0
  322. package/dist/application/recipes/graph.d.ts +4 -0
  323. package/dist/application/recipes/graph.js +208 -0
  324. package/dist/application/recipes/graph.js.map +1 -0
  325. package/dist/application/recipes/job.d.ts +3 -0
  326. package/dist/application/recipes/job.js +100 -0
  327. package/dist/application/recipes/job.js.map +1 -0
  328. package/dist/application/recipes/native-catalog.constants.d.ts +4 -0
  329. package/dist/application/recipes/native-catalog.constants.js +930 -0
  330. package/dist/application/recipes/native-catalog.constants.js.map +1 -0
  331. package/dist/application/recipes/native-factories.d.ts +1 -0
  332. package/dist/application/recipes/native-factories.js +136 -0
  333. package/dist/application/recipes/native-factories.js.map +1 -0
  334. package/dist/application/recipes/native-schemas.constants.d.ts +2 -0
  335. package/dist/application/recipes/native-schemas.constants.js +26619 -0
  336. package/dist/application/recipes/native-schemas.constants.js.map +1 -0
  337. package/dist/application/recipes/native.d.ts +7 -0
  338. package/dist/application/recipes/native.js +184 -0
  339. package/dist/application/recipes/native.js.map +1 -0
  340. package/dist/application/recipes/observation.d.ts +4 -0
  341. package/dist/application/recipes/observation.js +88 -0
  342. package/dist/application/recipes/observation.js.map +1 -0
  343. package/dist/application/recipes/project-expressions.d.ts +3 -0
  344. package/dist/application/recipes/project-expressions.js +28 -0
  345. package/dist/application/recipes/project-expressions.js.map +1 -0
  346. package/dist/application/recipes/project.d.ts +3 -0
  347. package/dist/application/recipes/project.js +165 -0
  348. package/dist/application/recipes/project.js.map +1 -0
  349. package/dist/application/recipes/project.types.d.ts +53 -0
  350. package/dist/application/recipes/project.types.js +2 -0
  351. package/dist/application/recipes/project.types.js.map +1 -0
  352. package/dist/application/recipes/projection.d.ts +2 -0
  353. package/dist/application/recipes/projection.js +9 -0
  354. package/dist/application/recipes/projection.js.map +1 -0
  355. package/dist/application/recipes/reports.d.ts +4 -0
  356. package/dist/application/recipes/reports.js +27 -0
  357. package/dist/application/recipes/reports.js.map +1 -0
  358. package/dist/application/recipes/runtime.d.ts +4 -0
  359. package/dist/application/recipes/runtime.js +179 -0
  360. package/dist/application/recipes/runtime.js.map +1 -0
  361. package/dist/application/recipes/sandbox.d.ts +6 -0
  362. package/dist/application/recipes/sandbox.js +31 -0
  363. package/dist/application/recipes/sandbox.js.map +1 -0
  364. package/dist/application/recipes/schemas.constants.d.ts +2 -0
  365. package/dist/application/recipes/schemas.constants.js +15 -0
  366. package/dist/application/recipes/schemas.constants.js.map +1 -0
  367. package/dist/application/recipes/scope.d.ts +3 -0
  368. package/dist/application/recipes/scope.js +180 -0
  369. package/dist/application/recipes/scope.js.map +1 -0
  370. package/dist/application/recipes/service-components.d.ts +10 -0
  371. package/dist/application/recipes/service-components.js +78 -0
  372. package/dist/application/recipes/service-components.js.map +1 -0
  373. package/dist/application/recipes/service-components.types.d.ts +57 -0
  374. package/dist/application/recipes/service-components.types.js +2 -0
  375. package/dist/application/recipes/service-components.types.js.map +1 -0
  376. package/dist/application/recipes/services.d.ts +4 -0
  377. package/dist/application/recipes/services.js +60 -0
  378. package/dist/application/recipes/services.js.map +1 -0
  379. package/dist/application/recipes/speculation-usage.d.ts +3 -0
  380. package/dist/application/recipes/speculation-usage.js +69 -0
  381. package/dist/application/recipes/speculation-usage.js.map +1 -0
  382. package/dist/application/recipes/speculation.d.ts +3 -0
  383. package/dist/application/recipes/speculation.js +55 -0
  384. package/dist/application/recipes/speculation.js.map +1 -0
  385. package/dist/application/recipes/status.d.ts +4 -0
  386. package/dist/application/recipes/status.js +72 -0
  387. package/dist/application/recipes/status.js.map +1 -0
  388. package/dist/application/recipes/storage-components.d.ts +2 -0
  389. package/dist/application/recipes/storage-components.js +10 -0
  390. package/dist/application/recipes/storage-components.js.map +1 -0
  391. package/dist/application/recipes/storage-components.types.d.ts +13 -0
  392. package/dist/application/recipes/storage-components.types.js +2 -0
  393. package/dist/application/recipes/storage-components.types.js.map +1 -0
  394. package/dist/application/recipes/variables.d.ts +2 -0
  395. package/dist/application/recipes/variables.js +31 -0
  396. package/dist/application/recipes/variables.js.map +1 -0
  397. package/dist/application/recipes/variables.types.d.ts +7 -0
  398. package/dist/application/recipes/variables.types.js +2 -0
  399. package/dist/application/recipes/variables.types.js.map +1 -0
  400. package/dist/application/recipes/workflow-components.d.ts +6 -0
  401. package/dist/application/recipes/workflow-components.js +106 -0
  402. package/dist/application/recipes/workflow-components.js.map +1 -0
  403. package/dist/application/recipes/workflow-components.types.d.ts +52 -0
  404. package/dist/application/recipes/workflow-components.types.js +2 -0
  405. package/dist/application/recipes/workflow-components.types.js.map +1 -0
  406. package/dist/application/recipes/workflow-report.d.ts +3 -0
  407. package/dist/application/recipes/workflow-report.js +48 -0
  408. package/dist/application/recipes/workflow-report.js.map +1 -0
  409. package/dist/application/recipes/workflow-run.d.ts +6 -0
  410. package/dist/application/recipes/workflow-run.js +70 -0
  411. package/dist/application/recipes/workflow-run.js.map +1 -0
  412. package/dist/application/recipes/workflow-validation.d.ts +3 -0
  413. package/dist/application/recipes/workflow-validation.js +85 -0
  414. package/dist/application/recipes/workflow-validation.js.map +1 -0
  415. package/dist/application/recipes/workflow.constants.d.ts +1 -0
  416. package/dist/application/recipes/workflow.constants.js +20 -0
  417. package/dist/application/recipes/workflow.constants.js.map +1 -0
  418. package/dist/application/recipes/workflow.d.ts +6 -0
  419. package/dist/application/recipes/workflow.js +348 -0
  420. package/dist/application/recipes/workflow.js.map +1 -0
  421. package/dist/application/recipes/workspace.d.ts +4 -0
  422. package/dist/application/recipes/workspace.js +44 -0
  423. package/dist/application/recipes/workspace.js.map +1 -0
  424. package/dist/application/repetition-watchdog.d.ts +3 -0
  425. package/dist/application/repetition-watchdog.js +118 -0
  426. package/dist/application/repetition-watchdog.js.map +1 -0
  427. package/dist/application/repetition-watchdog.types.d.ts +12 -0
  428. package/dist/application/repetition-watchdog.types.js +2 -0
  429. package/dist/application/repetition-watchdog.types.js.map +1 -0
  430. package/dist/application/run-report-events.d.ts +2 -0
  431. package/dist/application/run-report-events.js +72 -0
  432. package/dist/application/run-report-events.js.map +1 -0
  433. package/dist/application/run-report.d.ts +5 -0
  434. package/dist/application/run-report.js +32 -0
  435. package/dist/application/run-report.js.map +1 -0
  436. package/dist/application/run-report.types.d.ts +13 -0
  437. package/dist/application/run-report.types.js +2 -0
  438. package/dist/application/run-report.types.js.map +1 -0
  439. package/dist/application/sandbox-attach.js +3 -0
  440. package/dist/application/sandbox-attach.js.map +1 -1
  441. package/dist/application/sandbox-dispatch.js +51 -2
  442. package/dist/application/sandbox-dispatch.js.map +1 -1
  443. package/dist/application/sandbox-provision.js +38 -13
  444. package/dist/application/sandbox-provision.js.map +1 -1
  445. package/dist/application/sandbox-session.types.d.ts +1 -0
  446. package/dist/application/sandbox-session.types.js.map +1 -1
  447. package/dist/application/sandbox.d.ts +6 -0
  448. package/dist/application/sandbox.js +23 -3
  449. package/dist/application/sandbox.js.map +1 -1
  450. package/dist/application/secrets.d.ts +2 -0
  451. package/dist/application/secrets.js +67 -0
  452. package/dist/application/secrets.js.map +1 -0
  453. package/dist/application/speculation-checkpoint.d.ts +1 -1
  454. package/dist/application/speculation-checkpoint.js +21 -4
  455. package/dist/application/speculation-checkpoint.js.map +1 -1
  456. package/dist/application/speculation-resume.js +1 -1
  457. package/dist/application/speculation-resume.js.map +1 -1
  458. package/dist/application/speculation-run.js +59 -8
  459. package/dist/application/speculation-run.js.map +1 -1
  460. package/dist/application/speculation-validation.d.ts +5 -0
  461. package/dist/application/speculation-validation.js +29 -0
  462. package/dist/application/speculation-validation.js.map +1 -0
  463. package/dist/application/speculation.js +3 -19
  464. package/dist/application/speculation.js.map +1 -1
  465. package/dist/application/speculation.types.d.ts +4 -1
  466. package/dist/application/speculation.types.js.map +1 -1
  467. package/dist/application/stop-reason.js +2 -0
  468. package/dist/application/stop-reason.js.map +1 -1
  469. package/dist/application/task-file-workspace.d.ts +8 -0
  470. package/dist/application/task-file-workspace.js +74 -0
  471. package/dist/application/task-file-workspace.js.map +1 -0
  472. package/dist/application/task-file-workspace.types.d.ts +6 -0
  473. package/dist/application/task-file-workspace.types.js +2 -0
  474. package/dist/application/task-file-workspace.types.js.map +1 -0
  475. package/dist/application/task-usage.d.ts +2 -0
  476. package/dist/application/task-usage.js +34 -15
  477. package/dist/application/task-usage.js.map +1 -1
  478. package/dist/application/task-usage.types.d.ts +4 -0
  479. package/dist/application/task-usage.types.js.map +1 -1
  480. package/dist/application/tasks.d.ts +7 -1
  481. package/dist/application/tasks.js +92 -5
  482. package/dist/application/tasks.js.map +1 -1
  483. package/dist/application/tasks.types.d.ts +28 -1
  484. package/dist/application/tasks.types.js.map +1 -1
  485. package/dist/application/transport-inspection.constants.js +1 -0
  486. package/dist/application/transport-inspection.constants.js.map +1 -1
  487. package/dist/application/workflow-job.d.ts +5 -1
  488. package/dist/application/workflow-job.js +11 -16
  489. package/dist/application/workflow-job.js.map +1 -1
  490. package/dist/application/workflow-job.types.d.ts +2 -1
  491. package/dist/application/workflow-job.types.js.map +1 -1
  492. package/dist/application/workspace-integration.d.ts +4 -0
  493. package/dist/application/workspace-integration.js +94 -0
  494. package/dist/application/workspace-integration.js.map +1 -0
  495. package/dist/application/workspace-output-baseline.d.ts +5 -0
  496. package/dist/application/workspace-output-baseline.js +44 -0
  497. package/dist/application/workspace-output-baseline.js.map +1 -0
  498. package/dist/application/workspace-publication-directories.d.ts +8 -0
  499. package/dist/application/workspace-publication-directories.js +170 -0
  500. package/dist/application/workspace-publication-directories.js.map +1 -0
  501. package/dist/application/workspace-publication.d.ts +7 -0
  502. package/dist/application/workspace-publication.js +537 -0
  503. package/dist/application/workspace-publication.js.map +1 -0
  504. package/dist/application/workspace-publication.types.d.ts +37 -0
  505. package/dist/application/workspace-publication.types.js +2 -0
  506. package/dist/application/workspace-publication.types.js.map +1 -0
  507. package/dist/application/workspace-source.d.ts +8 -0
  508. package/dist/application/workspace-source.js +18 -0
  509. package/dist/application/workspace-source.js.map +1 -0
  510. package/dist/application/workspace.d.ts +2 -0
  511. package/dist/application/workspace.js +10 -1
  512. package/dist/application/workspace.js.map +1 -1
  513. package/dist/cli/commands.js +17 -2
  514. package/dist/cli/commands.js.map +1 -1
  515. package/dist/cli/doctor-command.js +6 -1
  516. package/dist/cli/doctor-command.js.map +1 -1
  517. package/dist/cli/main.constants.d.ts +191 -3
  518. package/dist/cli/main.constants.js +275 -3
  519. package/dist/cli/main.constants.js.map +1 -1
  520. package/dist/cli/main.types.d.ts +1 -1
  521. package/dist/cli/main.types.js.map +1 -1
  522. package/dist/cli/recipe-actor.d.ts +2 -0
  523. package/dist/cli/recipe-actor.js +14 -0
  524. package/dist/cli/recipe-actor.js.map +1 -0
  525. package/dist/cli/recipe-catalog.d.ts +2 -0
  526. package/dist/cli/recipe-catalog.js +54 -0
  527. package/dist/cli/recipe-catalog.js.map +1 -0
  528. package/dist/cli/recipe-command.d.ts +2 -0
  529. package/dist/cli/recipe-command.js +184 -0
  530. package/dist/cli/recipe-command.js.map +1 -0
  531. package/dist/cli/recipe-configuration-providers.d.ts +1 -0
  532. package/dist/cli/recipe-configuration-providers.js +2 -0
  533. package/dist/cli/recipe-configuration-providers.js.map +1 -0
  534. package/dist/cli/recipe-configuration-values.d.ts +1 -0
  535. package/dist/cli/recipe-configuration-values.js +2 -0
  536. package/dist/cli/recipe-configuration-values.js.map +1 -0
  537. package/dist/cli/recipe-configuration.constants.d.ts +1 -0
  538. package/dist/cli/recipe-configuration.constants.js +2 -0
  539. package/dist/cli/recipe-configuration.constants.js.map +1 -0
  540. package/dist/cli/recipe-configuration.d.ts +1 -0
  541. package/dist/cli/recipe-configuration.js +2 -0
  542. package/dist/cli/recipe-configuration.js.map +1 -0
  543. package/dist/cli/recipe-dialogue.d.ts +5 -0
  544. package/dist/cli/recipe-dialogue.js +69 -0
  545. package/dist/cli/recipe-dialogue.js.map +1 -0
  546. package/dist/cli/recipe-dialogue.types.d.ts +11 -0
  547. package/dist/cli/recipe-dialogue.types.js +2 -0
  548. package/dist/cli/recipe-dialogue.types.js.map +1 -0
  549. package/dist/cli/recipe-gates.d.ts +5 -0
  550. package/dist/cli/recipe-gates.js +51 -0
  551. package/dist/cli/recipe-gates.js.map +1 -0
  552. package/dist/cli/recipe-init.constants.d.ts +7 -0
  553. package/dist/cli/recipe-init.constants.js +64 -0
  554. package/dist/cli/recipe-init.constants.js.map +1 -0
  555. package/dist/cli/recipe-init.d.ts +2 -0
  556. package/dist/cli/recipe-init.js +39 -0
  557. package/dist/cli/recipe-init.js.map +1 -0
  558. package/dist/cli/recipe-inputs.d.ts +2 -0
  559. package/dist/cli/recipe-inputs.js +31 -0
  560. package/dist/cli/recipe-inputs.js.map +1 -0
  561. package/dist/cli/recipe-report.constants.d.ts +1 -0
  562. package/dist/cli/recipe-report.constants.js +2 -0
  563. package/dist/cli/recipe-report.constants.js.map +1 -0
  564. package/dist/cli/recipe-report.d.ts +1 -0
  565. package/dist/cli/recipe-report.js +2 -0
  566. package/dist/cli/recipe-report.js.map +1 -0
  567. package/dist/cli/recipe-report.types.d.ts +1 -0
  568. package/dist/cli/recipe-report.types.js +2 -0
  569. package/dist/cli/recipe-report.types.js.map +1 -0
  570. package/dist/cli/recipe-run.d.ts +1 -0
  571. package/dist/cli/recipe-run.js +2 -0
  572. package/dist/cli/recipe-run.js.map +1 -0
  573. package/dist/cli/recipe-terminal.d.ts +4 -0
  574. package/dist/cli/recipe-terminal.js +52 -0
  575. package/dist/cli/recipe-terminal.js.map +1 -0
  576. package/dist/cli/recipe-yaml.d.ts +3 -0
  577. package/dist/cli/recipe-yaml.js +193 -0
  578. package/dist/cli/recipe-yaml.js.map +1 -0
  579. package/dist/cli/recovery-command.js +57 -0
  580. package/dist/cli/recovery-command.js.map +1 -1
  581. package/dist/cli/recovery-file-transport.d.ts +4 -0
  582. package/dist/cli/recovery-file-transport.js +40 -0
  583. package/dist/cli/recovery-file-transport.js.map +1 -0
  584. package/dist/cli/recovery-publication-command.d.ts +2 -0
  585. package/dist/cli/recovery-publication-command.js +121 -0
  586. package/dist/cli/recovery-publication-command.js.map +1 -0
  587. package/dist/cli/recovery-workspace-command.d.ts +2 -0
  588. package/dist/cli/recovery-workspace-command.js +63 -0
  589. package/dist/cli/recovery-workspace-command.js.map +1 -0
  590. package/dist/domain/agent-profile-permissions.d.ts +4 -0
  591. package/dist/domain/agent-profile-permissions.js +38 -0
  592. package/dist/domain/agent-profile-permissions.js.map +1 -0
  593. package/dist/domain/agent-profile.constants.d.ts +7 -0
  594. package/dist/domain/agent-profile.constants.js +16 -0
  595. package/dist/domain/agent-profile.constants.js.map +1 -0
  596. package/dist/domain/agent-profile.d.ts +5 -0
  597. package/dist/domain/agent-profile.js +45 -0
  598. package/dist/domain/agent-profile.js.map +1 -0
  599. package/dist/domain/agent-profile.types.d.ts +10 -0
  600. package/dist/domain/agent-profile.types.js +2 -0
  601. package/dist/domain/agent-profile.types.js.map +1 -0
  602. package/dist/domain/agent.types.d.ts +13 -2
  603. package/dist/domain/agent.types.js.map +1 -1
  604. package/dist/domain/conversation.types.d.ts +4 -1
  605. package/dist/domain/conversation.types.js.map +1 -1
  606. package/dist/domain/diff-guard.d.ts +4 -0
  607. package/dist/domain/diff-guard.js +56 -0
  608. package/dist/domain/diff-guard.js.map +1 -0
  609. package/dist/domain/diff-guard.types.d.ts +10 -0
  610. package/dist/domain/diff-guard.types.js +2 -0
  611. package/dist/domain/diff-guard.types.js.map +1 -0
  612. package/dist/domain/errors.types.d.ts +1 -1
  613. package/dist/domain/errors.types.js.map +1 -1
  614. package/dist/domain/file-workspace.constants.d.ts +476 -0
  615. package/dist/domain/file-workspace.constants.js +237 -0
  616. package/dist/domain/file-workspace.constants.js.map +1 -0
  617. package/dist/domain/file-workspace.types.d.ts +133 -0
  618. package/dist/domain/file-workspace.types.js +2 -0
  619. package/dist/domain/file-workspace.types.js.map +1 -0
  620. package/dist/domain/harness.constants.js +1 -0
  621. package/dist/domain/harness.constants.js.map +1 -1
  622. package/dist/domain/harness.js +7 -2
  623. package/dist/domain/harness.js.map +1 -1
  624. package/dist/domain/harness.types.d.ts +4 -1
  625. package/dist/domain/harness.types.js.map +1 -1
  626. package/dist/domain/lifecycle.d.ts +2 -0
  627. package/dist/domain/lifecycle.js +17 -0
  628. package/dist/domain/lifecycle.js.map +1 -0
  629. package/dist/domain/lifecycle.types.d.ts +8 -0
  630. package/dist/domain/lifecycle.types.js +2 -0
  631. package/dist/domain/lifecycle.types.js.map +1 -0
  632. package/dist/domain/observation.js +12 -6
  633. package/dist/domain/observation.js.map +1 -1
  634. package/dist/domain/observation.types.d.ts +4 -1
  635. package/dist/domain/observation.types.js.map +1 -1
  636. package/dist/domain/pricing.constants.d.ts +1 -0
  637. package/dist/domain/pricing.constants.js +2 -0
  638. package/dist/domain/pricing.constants.js.map +1 -0
  639. package/dist/domain/pricing.d.ts +4 -0
  640. package/dist/domain/pricing.js +60 -0
  641. package/dist/domain/pricing.js.map +1 -0
  642. package/dist/domain/pricing.types.d.ts +20 -0
  643. package/dist/domain/pricing.types.js +2 -0
  644. package/dist/domain/pricing.types.js.map +1 -0
  645. package/dist/domain/prompts.d.ts +1 -1
  646. package/dist/domain/prompts.js.map +1 -1
  647. package/dist/domain/recipe-catalog.constants.d.ts +7 -0
  648. package/dist/domain/recipe-catalog.constants.js +14 -0
  649. package/dist/domain/recipe-catalog.constants.js.map +1 -0
  650. package/dist/domain/recipe-catalog.d.ts +2 -0
  651. package/dist/domain/recipe-catalog.js +41 -0
  652. package/dist/domain/recipe-catalog.js.map +1 -0
  653. package/dist/domain/recipe-catalog.types.d.ts +11 -0
  654. package/dist/domain/recipe-catalog.types.js +2 -0
  655. package/dist/domain/recipe-catalog.types.js.map +1 -0
  656. package/dist/domain/recipe-inputs.d.ts +5 -0
  657. package/dist/domain/recipe-inputs.js +110 -0
  658. package/dist/domain/recipe-inputs.js.map +1 -0
  659. package/dist/domain/recipe-templates.d.ts +7 -0
  660. package/dist/domain/recipe-templates.js +85 -0
  661. package/dist/domain/recipe-templates.js.map +1 -0
  662. package/dist/domain/recipe.constants.d.ts +21 -0
  663. package/dist/domain/recipe.constants.js +59 -0
  664. package/dist/domain/recipe.constants.js.map +1 -0
  665. package/dist/domain/recipe.d.ts +2 -0
  666. package/dist/domain/recipe.js +294 -0
  667. package/dist/domain/recipe.js.map +1 -0
  668. package/dist/domain/recipe.types.d.ts +52 -0
  669. package/dist/domain/recipe.types.js +2 -0
  670. package/dist/domain/recipe.types.js.map +1 -0
  671. package/dist/domain/recipes/checkpoint-store.types.d.ts +10 -0
  672. package/dist/domain/recipes/checkpoint-store.types.js +2 -0
  673. package/dist/domain/recipes/checkpoint-store.types.js.map +1 -0
  674. package/dist/domain/recipes/component.d.ts +3 -0
  675. package/dist/domain/recipes/component.js +27 -0
  676. package/dist/domain/recipes/component.js.map +1 -0
  677. package/dist/domain/recipes/component.types.d.ts +39 -0
  678. package/dist/domain/recipes/component.types.js +2 -0
  679. package/dist/domain/recipes/component.types.js.map +1 -0
  680. package/dist/domain/recipes/expression-text.d.ts +2 -0
  681. package/dist/domain/recipes/expression-text.js +22 -0
  682. package/dist/domain/recipes/expression-text.js.map +1 -0
  683. package/dist/domain/recipes/expressions.d.ts +7 -0
  684. package/dist/domain/recipes/expressions.js +209 -0
  685. package/dist/domain/recipes/expressions.js.map +1 -0
  686. package/dist/domain/recipes/expressions.types.d.ts +17 -0
  687. package/dist/domain/recipes/expressions.types.js +2 -0
  688. package/dist/domain/recipes/expressions.types.js.map +1 -0
  689. package/dist/domain/recipes/schema-walk.d.ts +3 -0
  690. package/dist/domain/recipes/schema-walk.js +151 -0
  691. package/dist/domain/recipes/schema-walk.js.map +1 -0
  692. package/dist/domain/recipes/schema-walk.types.d.ts +2 -0
  693. package/dist/domain/recipes/schema-walk.types.js +2 -0
  694. package/dist/domain/recipes/schema-walk.types.js.map +1 -0
  695. package/dist/domain/recipes/schema.constants.d.ts +41 -0
  696. package/dist/domain/recipes/schema.constants.js +59 -0
  697. package/dist/domain/recipes/schema.constants.js.map +1 -0
  698. package/dist/domain/recipes/values.d.ts +6 -0
  699. package/dist/domain/recipes/values.js +24 -0
  700. package/dist/domain/recipes/values.js.map +1 -0
  701. package/dist/domain/redaction.constants.d.ts +1 -0
  702. package/dist/domain/redaction.constants.js +2 -0
  703. package/dist/domain/redaction.constants.js.map +1 -0
  704. package/dist/domain/redaction.d.ts +1 -0
  705. package/dist/domain/redaction.js +74 -0
  706. package/dist/domain/redaction.js.map +1 -0
  707. package/dist/domain/replay.constants.js +1 -0
  708. package/dist/domain/replay.constants.js.map +1 -1
  709. package/dist/domain/replay.js +3 -1
  710. package/dist/domain/replay.js.map +1 -1
  711. package/dist/domain/run-report.constants.d.ts +5 -0
  712. package/dist/domain/run-report.constants.js +6 -0
  713. package/dist/domain/run-report.constants.js.map +1 -0
  714. package/dist/domain/run-report.d.ts +2 -0
  715. package/dist/domain/run-report.js +84 -0
  716. package/dist/domain/run-report.js.map +1 -0
  717. package/dist/domain/run-report.types.d.ts +47 -0
  718. package/dist/domain/run-report.types.js +2 -0
  719. package/dist/domain/run-report.types.js.map +1 -0
  720. package/dist/domain/run.constants.d.ts +9 -0
  721. package/dist/domain/run.constants.js +34 -0
  722. package/dist/domain/run.constants.js.map +1 -0
  723. package/dist/domain/run.d.ts +8 -0
  724. package/dist/domain/run.js +154 -0
  725. package/dist/domain/run.js.map +1 -0
  726. package/dist/domain/run.types.d.ts +90 -0
  727. package/dist/domain/run.types.js +2 -0
  728. package/dist/domain/run.types.js.map +1 -0
  729. package/dist/domain/sandbox.types.d.ts +14 -0
  730. package/dist/domain/sandbox.types.js.map +1 -1
  731. package/dist/domain/secrets.constants.d.ts +4 -0
  732. package/dist/domain/secrets.constants.js +5 -0
  733. package/dist/domain/secrets.constants.js.map +1 -0
  734. package/dist/domain/secrets.d.ts +2 -0
  735. package/dist/domain/secrets.js +18 -0
  736. package/dist/domain/secrets.js.map +1 -0
  737. package/dist/domain/secrets.types.d.ts +10 -0
  738. package/dist/domain/secrets.types.js +2 -0
  739. package/dist/domain/secrets.types.js.map +1 -0
  740. package/dist/domain/task-queue.js +4 -12
  741. package/dist/domain/task-queue.js.map +1 -1
  742. package/dist/domain/tool.constants.js +1 -0
  743. package/dist/domain/tool.constants.js.map +1 -1
  744. package/dist/domain/tool.js +2 -0
  745. package/dist/domain/tool.js.map +1 -1
  746. package/dist/domain/tool.types.d.ts +2 -0
  747. package/dist/domain/tool.types.js.map +1 -1
  748. package/dist/domain/usage.d.ts +2 -0
  749. package/dist/domain/usage.js +83 -0
  750. package/dist/domain/usage.js.map +1 -1
  751. package/dist/domain/watchdog.constants.d.ts +2 -0
  752. package/dist/domain/watchdog.constants.js +3 -0
  753. package/dist/domain/watchdog.constants.js.map +1 -0
  754. package/dist/domain/watchdog.d.ts +2 -0
  755. package/dist/domain/watchdog.js +15 -0
  756. package/dist/domain/watchdog.js.map +1 -0
  757. package/dist/domain/watchdog.types.d.ts +20 -0
  758. package/dist/domain/watchdog.types.js +2 -0
  759. package/dist/domain/watchdog.types.js.map +1 -0
  760. package/dist/domain/workflow/budget.d.ts +7 -3
  761. package/dist/domain/workflow/budget.js +48 -12
  762. package/dist/domain/workflow/budget.js.map +1 -1
  763. package/dist/domain/workflow/budget.types.d.ts +8 -1
  764. package/dist/domain/workflow/budget.types.js.map +1 -1
  765. package/dist/domain/workflow/checkpoint-validation.js +9 -0
  766. package/dist/domain/workflow/checkpoint-validation.js.map +1 -1
  767. package/dist/domain/workflow/checkpoint.js +28 -1
  768. package/dist/domain/workflow/checkpoint.js.map +1 -1
  769. package/dist/domain/workflow/checkpoint.types.d.ts +11 -0
  770. package/dist/domain/workflow/checkpoint.types.js.map +1 -1
  771. package/dist/domain/workflow/task-runner.js +3 -2
  772. package/dist/domain/workflow/task-runner.js.map +1 -1
  773. package/dist/domain/workflow/termination.js +3 -1
  774. package/dist/domain/workflow/termination.js.map +1 -1
  775. package/dist/domain/workflow/workflow-scheduler.js +13 -1
  776. package/dist/domain/workflow/workflow-scheduler.js.map +1 -1
  777. package/dist/domain/workflow/workflow-state.js +22 -1
  778. package/dist/domain/workflow/workflow-state.js.map +1 -1
  779. package/dist/domain/workflow.types.d.ts +6 -0
  780. package/dist/domain/workflow.types.js.map +1 -1
  781. package/dist/domain/workspace.types.d.ts +4 -4
  782. package/dist/domain/workspace.types.js.map +1 -1
  783. package/dist/index.d.ts +43 -3
  784. package/dist/index.js +17 -1
  785. package/dist/index.js.map +1 -1
  786. package/dist/infrastructure/conversations/harness-store.d.ts +1 -1
  787. package/dist/infrastructure/conversations/harness-store.js +5 -5
  788. package/dist/infrastructure/conversations/harness-store.js.map +1 -1
  789. package/dist/infrastructure/conversations/harness-transcript.js +11 -6
  790. package/dist/infrastructure/conversations/harness-transcript.js.map +1 -1
  791. package/dist/infrastructure/conversations/harness-transcript.types.d.ts +3 -0
  792. package/dist/infrastructure/conversations/harness-transcript.types.js.map +1 -1
  793. package/dist/infrastructure/conversations/redaction.d.ts +3 -0
  794. package/dist/infrastructure/conversations/redaction.js +45 -0
  795. package/dist/infrastructure/conversations/redaction.js.map +1 -0
  796. package/dist/infrastructure/conversations/session-bundle.js +4 -1
  797. package/dist/infrastructure/conversations/session-bundle.js.map +1 -1
  798. package/dist/infrastructure/conversations/transcript-store.js +3 -2
  799. package/dist/infrastructure/conversations/transcript-store.js.map +1 -1
  800. package/dist/infrastructure/file-fingerprint.constants.d.ts +2 -0
  801. package/dist/infrastructure/file-fingerprint.constants.js +20 -0
  802. package/dist/infrastructure/file-fingerprint.constants.js.map +1 -0
  803. package/dist/infrastructure/file-fingerprint.d.ts +3 -0
  804. package/dist/infrastructure/file-fingerprint.js +23 -0
  805. package/dist/infrastructure/file-fingerprint.js.map +1 -0
  806. package/dist/infrastructure/file-manifest.d.ts +1 -0
  807. package/dist/infrastructure/file-manifest.js +17 -4
  808. package/dist/infrastructure/file-manifest.js.map +1 -1
  809. package/dist/infrastructure/git/diff-guard.d.ts +5 -0
  810. package/dist/infrastructure/git/diff-guard.js +76 -0
  811. package/dist/infrastructure/git/diff-guard.js.map +1 -0
  812. package/dist/infrastructure/git/diff-guard.types.d.ts +5 -0
  813. package/dist/infrastructure/git/diff-guard.types.js +2 -0
  814. package/dist/infrastructure/git/diff-guard.types.js.map +1 -0
  815. package/dist/infrastructure/git/diff-statistics.d.ts +4 -0
  816. package/dist/infrastructure/git/diff-statistics.js +79 -0
  817. package/dist/infrastructure/git/diff-statistics.js.map +1 -0
  818. package/dist/infrastructure/git/integration-candidate.d.ts +3 -0
  819. package/dist/infrastructure/git/integration-candidate.js +91 -0
  820. package/dist/infrastructure/git/integration-candidate.js.map +1 -0
  821. package/dist/infrastructure/git/workspace-lease.js +55 -4
  822. package/dist/infrastructure/git/workspace-lease.js.map +1 -1
  823. package/dist/infrastructure/git/workspace.js +2 -0
  824. package/dist/infrastructure/git/workspace.js.map +1 -1
  825. package/dist/infrastructure/git/workspace.types.d.ts +14 -1
  826. package/dist/infrastructure/git/workspace.types.js.map +1 -1
  827. package/dist/infrastructure/inspection-file.d.ts +2 -1
  828. package/dist/infrastructure/inspection-file.js +3 -1
  829. package/dist/infrastructure/inspection-file.js.map +1 -1
  830. package/dist/infrastructure/local-transport.js +1 -1
  831. package/dist/infrastructure/local-transport.js.map +1 -1
  832. package/dist/infrastructure/recipe-download.d.ts +2 -0
  833. package/dist/infrastructure/recipe-download.js +72 -0
  834. package/dist/infrastructure/recipe-download.js.map +1 -0
  835. package/dist/infrastructure/recipe-download.types.d.ts +4 -0
  836. package/dist/infrastructure/recipe-download.types.js +2 -0
  837. package/dist/infrastructure/recipe-download.types.js.map +1 -0
  838. package/dist/infrastructure/recipe.d.ts +7 -0
  839. package/dist/infrastructure/recipe.js +51 -0
  840. package/dist/infrastructure/recipe.js.map +1 -0
  841. package/dist/infrastructure/recipes/checkpoint-store.d.ts +3 -0
  842. package/dist/infrastructure/recipes/checkpoint-store.js +25 -0
  843. package/dist/infrastructure/recipes/checkpoint-store.js.map +1 -0
  844. package/dist/infrastructure/recipes/diagnostic.d.ts +1 -0
  845. package/dist/infrastructure/recipes/diagnostic.js +38 -0
  846. package/dist/infrastructure/recipes/diagnostic.js.map +1 -0
  847. package/dist/infrastructure/recipes/extensions.d.ts +3 -0
  848. package/dist/infrastructure/recipes/extensions.js +33 -0
  849. package/dist/infrastructure/recipes/extensions.js.map +1 -0
  850. package/dist/infrastructure/recipes/read.d.ts +1 -0
  851. package/dist/infrastructure/recipes/read.js +22 -0
  852. package/dist/infrastructure/recipes/read.js.map +1 -0
  853. package/dist/infrastructure/recipes/schema.d.ts +3 -0
  854. package/dist/infrastructure/recipes/schema.js +40 -0
  855. package/dist/infrastructure/recipes/schema.js.map +1 -0
  856. package/dist/infrastructure/recipes/workspace.d.ts +4 -0
  857. package/dist/infrastructure/recipes/workspace.js +49 -0
  858. package/dist/infrastructure/recipes/workspace.js.map +1 -0
  859. package/dist/infrastructure/reporter.js +3 -0
  860. package/dist/infrastructure/reporter.js.map +1 -1
  861. package/dist/infrastructure/run-observer.d.ts +2 -0
  862. package/dist/infrastructure/run-observer.js +143 -0
  863. package/dist/infrastructure/run-observer.js.map +1 -0
  864. package/dist/infrastructure/run-reader.d.ts +3 -0
  865. package/dist/infrastructure/run-reader.js +47 -0
  866. package/dist/infrastructure/run-reader.js.map +1 -0
  867. package/dist/infrastructure/run-storage.d.ts +6 -0
  868. package/dist/infrastructure/run-storage.js +200 -0
  869. package/dist/infrastructure/run-storage.js.map +1 -0
  870. package/dist/infrastructure/scripted-commit.d.ts +3 -0
  871. package/dist/infrastructure/scripted-commit.js +62 -0
  872. package/dist/infrastructure/scripted-commit.js.map +1 -0
  873. package/dist/infrastructure/scripted-turn.constants.d.ts +1 -0
  874. package/dist/infrastructure/scripted-turn.constants.js +2 -0
  875. package/dist/infrastructure/scripted-turn.constants.js.map +1 -0
  876. package/dist/infrastructure/scripted-turn.d.ts +3 -0
  877. package/dist/infrastructure/scripted-turn.js +53 -0
  878. package/dist/infrastructure/scripted-turn.js.map +1 -0
  879. package/dist/infrastructure/scripted-turn.types.d.ts +9 -0
  880. package/dist/infrastructure/scripted-turn.types.js +2 -0
  881. package/dist/infrastructure/scripted-turn.types.js.map +1 -0
  882. package/dist/infrastructure/storage-inventory.types.d.ts +1 -1
  883. package/dist/infrastructure/storage-inventory.types.js.map +1 -1
  884. package/dist/infrastructure/transport-checkpoint.d.ts +1 -0
  885. package/dist/infrastructure/transport-checkpoint.js +3 -3
  886. package/dist/infrastructure/transport-checkpoint.js.map +1 -1
  887. package/dist/infrastructure/workspace-cleanup.d.ts +1 -0
  888. package/dist/infrastructure/workspace-cleanup.js +33 -0
  889. package/dist/infrastructure/workspace-cleanup.js.map +1 -0
  890. package/dist/infrastructure/workspace-files.constants.d.ts +6 -0
  891. package/dist/infrastructure/workspace-files.constants.js +7 -0
  892. package/dist/infrastructure/workspace-files.constants.js.map +1 -0
  893. package/dist/infrastructure/workspace-files.d.ts +6 -0
  894. package/dist/infrastructure/workspace-files.js +214 -0
  895. package/dist/infrastructure/workspace-files.js.map +1 -0
  896. package/dist/infrastructure/workspace-lock.constants.d.ts +2 -0
  897. package/dist/infrastructure/workspace-lock.constants.js +6 -0
  898. package/dist/infrastructure/workspace-lock.constants.js.map +1 -0
  899. package/dist/infrastructure/workspace-lock.d.ts +9 -0
  900. package/dist/infrastructure/workspace-lock.js +208 -0
  901. package/dist/infrastructure/workspace-lock.js.map +1 -0
  902. package/dist/infrastructure/workspace-lock.types.d.ts +20 -0
  903. package/dist/infrastructure/workspace-lock.types.js +2 -0
  904. package/dist/infrastructure/workspace-lock.types.js.map +1 -0
  905. package/dist/infrastructure/workspace-snapshot.d.ts +3 -0
  906. package/dist/infrastructure/workspace-snapshot.js +69 -0
  907. package/dist/infrastructure/workspace-snapshot.js.map +1 -0
  908. package/dist/providers/cloud-cache.constants.d.ts +6 -0
  909. package/dist/providers/cloud-cache.constants.js +7 -0
  910. package/dist/providers/cloud-cache.constants.js.map +1 -0
  911. package/dist/providers/cloud-cache.d.ts +5 -0
  912. package/dist/providers/cloud-cache.js +151 -0
  913. package/dist/providers/cloud-cache.js.map +1 -0
  914. package/dist/providers/cloud-cache.types.d.ts +5 -0
  915. package/dist/providers/cloud-cache.types.js +2 -0
  916. package/dist/providers/cloud-cache.types.js.map +1 -0
  917. package/dist/providers/container-cache.d.ts +2 -1
  918. package/dist/providers/container-cache.js +8 -5
  919. package/dist/providers/container-cache.js.map +1 -1
  920. package/dist/providers/container-mounts.js +15 -3
  921. package/dist/providers/container-mounts.js.map +1 -1
  922. package/dist/providers/container.js +26 -2
  923. package/dist/providers/container.js.map +1 -1
  924. package/dist/providers/daytona.d.ts +1 -0
  925. package/dist/providers/daytona.js +28 -8
  926. package/dist/providers/daytona.js.map +1 -1
  927. package/dist/providers/daytona.types.d.ts +2 -0
  928. package/dist/providers/daytona.types.js.map +1 -1
  929. package/dist/providers/firecracker.js +4 -3
  930. package/dist/providers/firecracker.js.map +1 -1
  931. package/dist/providers/local.js +16 -1
  932. package/dist/providers/local.js.map +1 -1
  933. package/dist/providers/memory.d.ts +3 -0
  934. package/dist/providers/memory.js +134 -0
  935. package/dist/providers/memory.js.map +1 -0
  936. package/dist/providers/memory.types.d.ts +8 -0
  937. package/dist/providers/memory.types.js +2 -0
  938. package/dist/providers/memory.types.js.map +1 -0
  939. package/dist/providers/vercel.d.ts +1 -0
  940. package/dist/providers/vercel.js +28 -8
  941. package/dist/providers/vercel.js.map +1 -1
  942. package/dist/providers/vercel.types.d.ts +2 -0
  943. package/dist/providers/vercel.types.js.map +1 -1
  944. package/dist/providers/workspace-context.d.ts +3 -0
  945. package/dist/providers/workspace-context.js +31 -0
  946. package/dist/providers/workspace-context.js.map +1 -0
  947. package/dist/recipes.d.ts +7 -0
  948. package/dist/recipes.js +4 -0
  949. package/dist/recipes.js.map +1 -0
  950. package/dist/testing.d.ts +4 -0
  951. package/dist/testing.js +3 -0
  952. package/dist/testing.js.map +1 -0
  953. package/package.json +76 -9
  954. package/recipe-configuration.schema.json +44324 -0
  955. package/recipe.schema.json +38554 -0
  956. package/recipes/catalog.json +54 -0
  957. package/recipes/compare-candidates.yaml +12 -0
  958. package/recipes/fix-and-check.yaml +22 -0
  959. package/recipes/queued-review.yaml +20 -0
  960. package/recipes/review-and-approve.yaml +27 -0
  961. package/recipes/review-change.yaml +24 -0
  962. package/recipes/review.yaml +13 -0
  963. package/recipes/update-docs.yaml +16 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,72 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 11.1.2
4
+
5
+ This release adds YAML workflow composition, terminal recipe dialogues and Git-free file workspaces while preserving existing Git APIs and defaults.
6
+
7
+ - Reorganize the English and French Guide around user tasks, with focused pages, preserved routes and section anchors, clearer setup paths and nine downloadable example projects. Make mobile diagrams readable without zoom and clarify desktop flow conditions. Correct journal/replay side effects, Git path handling and recovery instructions; document the local review report produced by the webhook example.
8
+ - Show every public API overload and its own property table, correctly mark required fields from mapped types, and link reference contracts to their practical guides.
9
+ - Define private vulnerability reporting through GitHub Security and security-fix support for the latest major version.
10
+ - Make recipe contract classification portable across Windows and POSIX source paths, and resolve temporary directory aliases in the macOS recovery test.
11
+ - Build public declarations before checking consumer fixture types so validation works on a fresh checkout.
12
+ - Prepare the Git-free Node image explicitly for container tests and document the required image pull.
13
+ - Create the host UID's account in the Git-free package test image, and adapt container documentation checks to the simplified setup example.
14
+ - Fix Windows output publication permission checks and relative file/directory link copies. Keep ownership and escape checks, and make recipe test cleanup, process assertions and host commands portable.
15
+
16
+ - Add explicit directory-copy, read-only/writable source-mount and ephemeral file workspaces without host Git, configuration version 3, provider workspace capabilities and file dispatch/report contracts. Preserve legacy Git APIs and configuration defaults. Journal protected output publication with conditional rollback and explicit recovery; conserve settled files and conversations for local or explicit Transport-backed portable resume. Cover independent commands, cross-process dialogue, interrupted publication and an installed CLI running with Node, Docker and tar on a host without Git. Native CLI file variants and live cloud/Firecracker validation remain unvalidated.
17
+
18
+ - Add a runnable Linear development recipe with a separate TypeScript application, validated private API-key caching, issue selection, plan approval, implementation, enforced tests and formatted observation. Extend terminal recipe interaction to unsigned gates with saved evidence and explicit decisions; signed gates retain external proof submission. Test the flow offline with real Git and simulated services; live Linear/Codex remains unvalidated.
19
+
20
+ - Handle durable recipe questions directly in the CLI: automatic terminal prompts, actor selection, saved answers and continuation without a custom runner. Add interactive/headless flags, keep JSON reporting final-only, and preserve pending questions on cancellation. Cover offline cross-process resume and real terminal input; no paid agent calls.
21
+
22
+ - Serve recipe and configuration JSON Schemas from documentation URLs under `/schemas/`, with immutable per-version copies reconstructed from stable Git tags. Preserve archives across GitHub Pages deployments, check JSON content and HTTP responses, and document editor setup in English and French.
23
+
24
+ - Complete the seven YAML composition lots with explicit experimental speculation, cumulative durable usage receipts, conflict resolvers, native reporters and OpenTelemetry. Keep machine settings in named local components, synchronize and close execution sandboxes before integration, and report resolver usage separately. Generate component documentation and enforce per-export/per-option parity classifications in CI. Add an offline community recipe and example; paid/cloud/remote-SDK validation remains absent.
25
+
26
+ - Compose YAML SQLite/HTTP/BullMQ queues, recipe and native workflow jobs, queued tasks, cron schedules and authenticated webhook services. Add explicit recipe enqueue/serve commands with native ownership, cancellation, token rotation and job identities. Verify local service composition and real Redis 7 without paid calls.
27
+
28
+ - Add durable YAML checkpoints with exact Git workspace restoration, artifacts, caches, signed gates, dialogues, quota pauses and cumulative budgets. Add recipe status/resume/answer/decide; require explicit replay and revision-fenced recovery after interruption. Exercise separate processes, preserved uncommitted files and original diff guards offline; live cloud restoration remains unvalidated.
29
+
30
+ - Compose format-3 workflows with structured JSON inputs, typed result references, conditions, transformations, local task callbacks, native loop and decision tasks, and isolated multi-repository dispatch. Preserve native scheduling and usage accounting, refuse overlapping shared workspaces, and project execution results to JSON. Add an offline example and YAML/TypeScript equivalence tests using real Git repositories.
31
+
32
+ - Compose the Outpost harness, model and decision providers, tools, skills, hooks, permissions, context strategies, routing, fallback agents and conversation stores from YAML. Format-3 agent steps accept dispatch options and structured response references. Callback extensions declare a static slot contract; schemas distinguish data schemas from component references. Compare delegated YAML and TypeScript runs offline, and exercise the compiled CLI against a local streaming model fixture.
33
+
34
+ - Extend YAML configuration with named providers, native sandbox and workspace options, portable profiles, CLI harness settings, MCP declarations, local transports and host-side secret selections. Generate option schemas from TypeScript contracts, reject dependency cycles before imports, resolve installed ESM-only extensions, and redact selected values from observation and reports. Cover local lifecycle execution and YAML/TypeScript request equivalence; cloud and paid agent calls remain unvalidated.
35
+
36
+ - Begin YAML composition parity with configuration format 2, recipe format 3, the `/recipes` registry/runtime API, explicit observation and final reports, static extension validation and a versioned public-contract inventory. Recipe execution is silent unless outputs or `--json` are requested; failures still print diagnostics.
37
+
38
+ - Add reusable YAML recipes with typed inputs, defaults and enums, dependency result references and editor schemas. Run with separate recipe and execution YAML files covering sandbox providers, CLI agents, model selection and explicit credential references; retain literal format 1 and TypeScript configuration compatibility. Add `recipe init`, allocation-free `validate`, `list` and integrity-checked `fetch`, repeated `--input` flags, three bundled Git catalogue recipes and third-party HTTPS catalogues. Fix CLI Git integration, bounded outputs and diagnostics, and final reporting after cleanup. Cover real local Git execution and cross-repository reuse; HTTP downloads are tested with simulated responses and paid agent/cloud runs remain unvalidated.
39
+
40
+ ## 11.1.1
41
+
42
+ Publication was blocked after coverage passed: the SQLite recipe example deleted its temporary directory before closing its inspection queue on Windows. No package or documentation deployment was published. Version 11.1.2 fixes cleanup order and checks examples and package consumption before coverage in CI.
43
+
44
+ ## 11.1.0
45
+
46
+ Publication was blocked by a Windows regression test that incremented an inode beyond JavaScript's safe integer precision. No package or documentation deployment was published. The fixture was corrected for the next release attempt.
47
+
48
+ ## 11.0.1
49
+
50
+ This major release adds workspace integration safeguards, portable agent profiles, execution reports and state tracking, monetary budgets, incremental preparation, cloud dependency caches, offline workflow testing and optional secret sources. Update exhaustive consumers for `FaultCode` (`guard`, `stuck`), `AgentEvent` and `ObservationEvent` (`stuck`), stopped reasons (`stuck`), `StorageCategoryName` (`runs`) and `WorkflowBudgetExceeded.dimension` (`cost`). Implementations and test doubles of `DispatchResult` and `WarmDispatchResult` must provide `report()`; custom `ObservationHub` implementations must provide `redacting` and `redact()`. Existing entry points remain available. Best-of-N speculation remains experimental, and the live-validation limits below still apply.
51
+
52
+ - Add `SecretSource` and bounded `fromSecrets()` startup resolution with optional adapters for Vault/OpenBao KV v2, 1Password, Infisical, AWS Secrets Manager, Google Cloud Secret Manager and Azure Key Vault. Resolve declared names into immutable variables without writing values to disk or changing the host environment; sanitize vendor errors and retain caller ownership of host SDK clients. Add bilingual Guide/API documentation and a selectable service example. Deterministic HTTP and SDK-boundary tests cover behavior; live service authentication remains unvalidated.
53
+ - Add `@elie-laloum/outpost/testing` with `scriptedAgent()` and `createMemorySandboxProvider()` for offline workflow CI: predefined events, usage, real Git commits, response repairs and strict command fixtures. Add bilingual Guide/API documentation and an executable workflow example; Git workspaces remain on disk and transfers, cold conversation resume and arbitrary command execution are unsupported.
54
+ - Add opt-in Vercel and Daytona dependency download caches backed by a caller-owned Transport: restore before preparation, archive before disposal, retain compatibility hashing and fence concurrent publishers. Add bilingual Guide/API documentation and a cloud example. Deterministic SDK and filesystem fixtures cover binary transfers, permissions, concurrency and cleanup failures; live cloud/S3 validation remains pending.
55
+ - Add incremental lifecycle preparation with `when: changed(files)`: fingerprint exact file contents in the hook environment and rerun conditional hooks before operations on a reused sandbox. Save fingerprints only after success and retry failed preparations without closing a warm sandbox. Add bilingual Guide/API documentation and an offline `npm ci` example. Deterministic local-process and simulated-remote tests cover reuse, failures, cancellation and deadlines; real Docker checks the live sandbox files. Live cloud validation remains pending.
56
+ - Add opt-in dispatch repetition watchdogs over decoded tool calls and file changes, with `stuck` events, explicit stop/warn policies and bounded steering instructions. Preserve sandbox reuse, recovery, response instructions and synchronous policy enforcement independently of observer delivery. Add bilingual Guide/API documentation and an offline example; deterministic process, simulated-model and real Docker tests cover behavior. Live native CLI and cloud validation remains pending.
57
+ - Add portable `defineAgentProfile()` declarations for literal instructions, built-in tool allowlists and MCP servers across CLI presets and the Outpost harness. Project native Claude/Codex instructions, preserve request-prefix guidance on other CLIs, enforce exact shell commands through Claude hooks and intersected harness permissions, and refuse unsupported allowlists explicitly. Add bilingual Guide/API documentation and an offline local/MCP example. Deterministic protocol, command-hook and local-model tests cover behavior; paid CLI/model runs and native CLI continuation remain unvalidated.
58
+ - Fix lock-free local transport reads when an atomic replacement grows between size sampling and inspection. Retry changed snapshots while preserving caller byte limits and bounded allocation; a deterministic race regression covers the failure.
59
+ - Add synchronous `result.report()` to cold and warm dispatch results, with Markdown and versioned JSON snapshots of committed Git changes, observed failed commands/tools, duration, tokens and optional estimated cost. Preserve reports after workspace cleanup, aggregate cold passes as a net diff, apply inherited redaction and report collection limits without changing execution outcomes. Add bilingual Guide/API documentation and an offline local example; deterministic Git, process and simulated-model tests cover behavior, with no paid model calls.
60
+ - Add transport-backed execution projections by ID with `createRunObserver()`, `readRun()` and cursor-based `watchRun()`. Record tasks, dispatch agents, branches, commits, errors and cumulative workflow usage; detect suspected abandonment through heartbeats without changing ownership. Fence writers, preserve cursors across settled workflow resumes and expose detected observation gaps. Deterministic local-process and HTTP S3-fixture tests cover behavior; live AWS validation remains pending.
61
+ - Add optional EUR/USD workflow cost budgets, per-model token pricing, explicit Models.dev/OpenRouter catalog loading and inherited observation/conversation redaction. Preserve cumulative model counters through checkpoints; stop strict monetary budgets on unknown charges. Deterministic mock-model, local-process and HTTP-fixture tests cover behavior; public Models.dev and OpenRouter catalog loading was checked; paid-model billing and native CLI resume with masked reasoning remain unvalidated.
62
+ - Add experimental best-of-N speculation with `select: "best"` and a required finite `score`. Let admitted candidates finish, choose the highest score with declaration-order ties, preserve cancellation, budgets and cleanup ownership, and persist scores for durable recovery. Keep first-valid selection as the default. Deterministic local-agent and crash-recovery tests cover the behavior; live judge-agent and cloud validation remains pending.
63
+ - Add opt-in agent conflict resolution through `workspace.integrate({ onConflict: createAgentConflictResolver(...) })`. Resolve in a separate branch and sandbox, require verification, recheck final diff guards and frozen input commits, and preserve both workspaces on failure. Return resolution usage and verification output separately. Deterministic tests use real temporary Git repositories, a simulated remote provider and real Docker in mounted and isolated modes; live agent and cloud validation remains pending.
64
+ - Add workspace diff guards (`guard.protectedPaths`, `guard.maxChangedLines`) for named and integration branches, independently of the agent. Check the final committed diff after synchronization and again before merging the inspected commit; reject protected paths, oversized text changes, uncountable binaries with a line limit and incomplete inspection with code `guard`. Retain rejected branches and worktrees; refuse `current` before execution. Deterministic tests use real temporary Git repositories, local agents and a simulated remote provider; no paid model calls are required.
65
+
66
+ - Make the simulated Daytona dependency-cache sandbox provide its own Linux `setsid --wait` wrapper so its host-process fixtures also run on macOS. Production sandbox process supervision is unchanged.
67
+ - Freeze the queue clock in the scheduler deduplication fixture so slow Windows runners cannot expire the first claim between assertions. Queue lease expiry remains covered separately.
68
+
69
+ The v11.0.0 release was blocked by the macOS dependency-cache fixture and a timing-sensitive Windows scheduler fixture and was not published.
4
70
 
5
71
  ## 10.0.1
6
72
 
package/README.md CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
  Outpost is a TypeScript library and CLI for running coding agents in sandboxes and composing their work. Give an agent a task, choose its execution environment, and collect its answer, commits and usage. Start with one request; add parallel tasks, verification loops and human decisions as your workflow grows.
26
26
 
27
+ Directory and ephemeral workspaces run commands and compatible harnesses without host Git. Configuration version 3 declares file sources, runtime storage and protected output publication; existing Git defaults stay unchanged. See the [English guide](docs/src/content/docs/guide/workspaces.md) or [French guide](docs/src/content/docs/fr/guide/workspaces.md).
28
+
27
29
  ## Why Outpost?
28
30
 
29
31
  - **Choose your agent and sandbox independently.** Run Claude Code, Codex, Antigravity, GitHub Copilot CLI or Kimi Code with Docker, Podman, Vercel or Daytona.
@@ -34,7 +36,7 @@ Outpost is a TypeScript library and CLI for running coding agents in sandboxes a
34
36
 
35
37
  ## Quickstart
36
38
 
37
- You need **Node.js 24+**, **Git**, a repository with at least one commit, and **Docker** running. This example uses Codex with account authentication: prepare its host login using the [Codex guide](https://elie-laloum.github.io/outpost/guide/codex/) before running a task. [Authentication](https://elie-laloum.github.io/outpost/guide/authentication/) covers other agents and API-key billing.
39
+ You need **Node.js 24+**, **Git**, a repository with a committed README, and **Docker** running. This example uses Codex with account authentication: prepare its host login using the [Codex guide](https://elie-laloum.github.io/outpost/guide/codex/) before running a task. [Authentication](https://elie-laloum.github.io/outpost/guide/authentication/) covers other agents and API-key billing.
38
40
 
39
41
  Install the package, then build the agent image in a dedicated directory:
40
42
 
@@ -54,7 +56,6 @@ Use an ESM directory (`"type": "module"` in `package.json`); a CommonJS reposito
54
56
  import {
55
57
  createAgent,
56
58
  createCodexHarness,
57
- createReporter,
58
59
  dispatch,
59
60
  } from "@elie-laloum/outpost";
60
61
  import { createDockerSandboxProvider } from "@elie-laloum/outpost/providers/docker";
@@ -65,17 +66,15 @@ const result = await dispatch({
65
66
  harness: createCodexHarness({ authentication: "account" }),
66
67
  }),
67
68
  sandboxProvider: createDockerSandboxProvider({ image: "outpost:dev" }),
68
- observe: createReporter(),
69
- branch: { mode: "named", name: "outpost/fix-tests" },
69
+ branch: { mode: "named", name: "outpost/readme-review" },
70
70
  brief: {
71
- text: "Fix the failing tests, run them to verify and commit the change.",
71
+ text: "Review the README setup instructions. Report problems or say none were found. Do not edit files.",
72
72
  },
73
73
  });
74
74
 
75
- // Example output:
76
- // [outpost · pass 1] running · codex
77
- // Fixed the failing tests and committed the change.
78
- // [outpost · pass 1] finished · 12.00s · status 0 · input 1200 · cache read 0 · cache write 0 · output 320
75
+ console.log(result.text);
76
+ console.log(result.commits);
77
+ // Expected commits: []
79
78
  ```
80
79
 
81
80
  `dispatch()` closes the sandbox it allocates; the named branch remains for review. Use a fresh branch name for each independent task. The agent’s answer is not an enforced test result: add explicit verification when checks must gate integration.
@@ -84,13 +83,18 @@ const result = await dispatch({
84
83
 
85
84
  | You want to… | Start here |
86
85
  | --------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
86
+ | Share instructions, tools and MCP configuration | [Portable agent profiles](https://elie-laloum.github.io/outpost/guide/agent-profiles/) |
87
87
  | Choose an agent, model and credentials | [Agent configuration](https://elie-laloum.github.io/outpost/guide/choose-an-agent/) |
88
88
  | Run locally in containers or in the cloud | [Execution backends](https://elie-laloum.github.io/outpost/guide/choose-a-sandbox/) |
89
89
  | Reuse a sandbox across commands and agent turns | [Sandbox sessions](https://elie-laloum.github.io/outpost/guide/sandbox-sessions/) |
90
90
  | Connect tasks and run independent work in parallel | [Task dependencies](https://elie-laloum.github.io/outpost/guide/task-dependencies/) |
91
91
  | Coordinate changes across repositories | [Multi-repository workflows](https://elie-laloum.github.io/outpost/guide/multiple-repositories/) |
92
+ | Export a run summary for review | [Run reports](https://elie-laloum.github.io/outpost/guide/run-reports/) |
92
93
  | Return data your application can validate | [Validated output](https://elie-laloum.github.io/outpost/guide/typed-responses/) |
93
94
  | Build an agent with your own tools and instructions | [Custom harness](https://elie-laloum.github.io/outpost/guide/harness/) |
95
+ | Read execution state by ID | [Execution state](https://elie-laloum.github.io/outpost/guide/run-state/) |
96
+ | Test workflows without accounts or model calls | [Workflow testing](https://elie-laloum.github.io/outpost/guide/testing-workflows/) |
97
+ | Create, share and run YAML recipes | [YAML recipes](https://elie-laloum.github.io/outpost/guide/yaml-recipes/) |
94
98
  | Resume or recover interrupted work | [Failure recovery](https://elie-laloum.github.io/outpost/guide/recovery/) |
95
99
 
96
100
  The [Guide](https://elie-laloum.github.io/outpost/guide/introduction/) explains behavior with focused examples. The [Reference](https://elie-laloum.github.io/outpost/reference/) documents exact contracts. Both are available in English and French.
package/SECURITY.md CHANGED
@@ -2,9 +2,21 @@
2
2
 
3
3
  Outpost runs coding agents that execute arbitrary project commands. Use it with repositories and credentials appropriate for that task.
4
4
 
5
+ ## File workspaces
6
+
7
+ File workspaces can run without Git. Directory copies exclude Git and Outpost control metadata; ordinary source files remain data, including any credential files the caller selected. New copies, snapshots and publications reject outgoing links and special files; link checks expand captured aliases before parent traversal and refuse missing targets or excluded aliases. Explicit source mounts expose the complete source; writable mounts change it immediately and cleanup never rolls those effects back. Owned working roots and runtime control storage remain separate. The local provider remains unisolated.
8
+
9
+ Protected publication uses destination manifests, host-user overlap locks, same-filesystem quarantine, exclusive installation and conditional reverse rollback. These locks coordinate Outpost writers without preventing external edits. Publication is recoverable across operations, not an atomic transaction over an entire tree. Concurrent changes can leave backups and journal operations requiring explicit recovery. File snapshots establish file integrity, not disposal of unknown cloud resources or authorization to recover owners and replay interrupted work.
10
+
11
+ ## Sandbox access
12
+
5
13
  By default, Docker/Podman expose the selected checkout, Git metadata and explicit volumes. The Docker socket is not mounted by default. Containers use a chosen UID/GID, dropped capabilities, no-new-privileges and a private home. Extra devices, writable mounts and elevated hooks expand the boundary deliberately.
6
14
 
7
- Shared Git metadata is writable by the agent. A mounted sandbox is not an adversarial boundary protecting the host repository or its configuration. Outpost disables host Git hooks for its own Git commands, but a malicious repository can contain other executable configuration or project tooling. Do not run untrusted repositories with valuable host credentials. Host `local()` provides no isolation.
15
+ Shared Git metadata is writable by the agent. A mounted sandbox is not an adversarial boundary protecting the host repository or its configuration. Outpost disables host Git hooks for its own Git commands, but a malicious repository can contain other executable configuration or project tooling. Do not run untrusted repositories with valuable host credentials. Host `createLocalSandboxProvider()` provides no isolation.
16
+
17
+ ## Git and integration
18
+
19
+ Workspace diff guards are integration checks, not filesystem permissions or an adversarial security boundary. They inspect only the final committed diff: an agent can modify files and restore them before the check, and uncommitted files are excluded. Use named or integration workspaces to retain refused work separately from the host checkout.
8
20
 
9
21
  The opt-in Docker/Podman `repositoryMode: "isolated"` prototype uses a private container checkout and Git directory, without mounting the host checkout or Git metadata. Bundle transfer and validated synchronization import changes into the host workspace; host hooks, configuration and unrelated refs are not copied back. Explicit mounts overlapping canonical host repository/workspace/Git paths or container workspace/control paths are rejected, including read-only mounts. Dependency caches remain separate engine-managed volumes. Trust the container image, engine and host mount configuration: custom devices, external mounts, credentials, network access and shared caches expand the boundary. This is not a certified hostile-agent sandbox or protection against container/kernel escapes, malicious host path replacement during allocation, or dangerous project code later executed on the host.
10
22
 
@@ -14,18 +26,40 @@ Prompt command expansion only recognizes commands present in the original prompt
14
26
 
15
27
  Agent authentication is explicit. `account` reads only the selected CLI's own session file (or the file or profile named by `account.file`) on the host, refuses links, directories and files above 1 MiB, and never reads a system keychain. Isolated providers receive a copy in the private sandbox home through stdin, with 0700 directories and 0600 files; `createLocalSandboxProvider()` receives credential variables only and no host file is written. A sandbox copy can refresh and rotate a subscription refresh token, invalidating the host login; use a dedicated profile through `account.file` when that matters. Agents can read every credential they receive, so give them only the access their task requires. Generated images and remote bootstrap install pinned CLI versions. Antigravity archives use versioned Google URLs and SHA-512 digests recorded in Outpost; installation rejects mismatches before extraction. Generated images and Outpost's Antigravity requests and diagnostics disable automatic updates. Bootstrap reuses an existing executable without replacing or verifying its bytes; `outpost doctor --agent antigravity` compares its reported version with `agentVersions.antigravity`. A checksum verifies the selected archive's integrity, not the safety of its code.
16
28
 
29
+ Portable agent profiles carry literal guidance and protocol tool restrictions, not filesystem or network isolation. A permitted shell command or MCP tool can have arbitrary side effects. Claude allowlists use native tool selection and an in-sandbox Node.js command hook, with inherited user/project/local setting sources disabled for that request; trust the CLI, managed policy and hook execution environment. The Outpost harness intersects profile restrictions with its permissions and inherited subagent policies. Adapters that cannot enforce a built-in allowlist refuse it when composing the agent.
30
+
17
31
  MCP servers are programs or endpoints you choose; they receive the variables you name and act with the agent's authority. Outpost writes MCP configuration with variable references only, never secret values. Kimi and Antigravity configuration is merged into the agent home file, which is the user's own home with `createLocalSandboxProvider()`. Built-in harness servers and their HTTP bridge run inside the sandbox, so egress policies apply to them; CLI agents contact HTTP servers themselves from the sandbox. `oauth: "login"` copies the selected MCP OAuth tokens of Claude Code, Codex or Kimi from the host into the private sandbox home; a refresh there can rotate the refresh token and invalidate the host login. OAuth client secrets for the built-in harness stay in the sandbox environment.
18
32
 
19
- Conversation transcripts, logs, bundles and patches may contain secrets. Runtime files are ignored by Git and sensitive files are created with restrictive permissions where supported. Keep API keys in environment variables or ignored `.env` files. Never embed tokens in tracked configuration, remote URLs or examples.
33
+ ## Secrets in saved data
34
+
35
+ Conversation transcripts, logs, bundles and patches may contain secrets. Optional `redact` expressions mask matching strings before Outpost observation receivers and supported conversation captures, including decoded text session bundles. They do not detect unknown secrets, join fragments across event boundaries, rewrite native sandbox files or temporary staging, sanitize checkpoints, returned values other than run reports or existing archives, or make arbitrary binary content safe. A masked transcript can lose data needed for native resume or signed reasoning replay. Runtime files are ignored by Git and sensitive files are created with restrictive permissions where supported. Keep API keys in environment variables or ignored `.env` files. Never embed tokens in tracked configuration, remote URLs or examples.
36
+
37
+ ## Reporting and supported versions
20
38
 
21
- Report vulnerabilities privately using the repository's security reporting channel when enabled, or contact the maintainer through the hosting profile. Do not include live credentials in reports. V1 receives fixes for reproducible security defects.
39
+ Report vulnerabilities privately through [GitHub Security](https://github.com/elie-laloum/outpost/security/advisories/new). Do not include live credentials in reports. Only the latest major version receives security fixes; upgrade to that major before requesting a fix for an older release.
22
40
 
23
- Explicit storage transports can send artifacts, journals, transcripts, recovery payloads and operational metadata to the configured object store. The caller owns the S3 client and credentials; they are not forwarded to agents. Use a dedicated private bucket prefix and access policy. Object revisions fence cooperating writers but do not authenticate artifact producers or operators. Stop an abandoned runner independently before releasing its checkpoint ownership; a remote PID is not proof of inactivity.
41
+ ## Shared storage and ownership
42
+
43
+ Explicit storage transports can send artifacts, journals, transcripts, recovery payloads, execution snapshots, observation events and operational metadata to the configured object store. Run projections share the bounded delivery and redaction limits of other observation sinks; an expired heartbeat is suspected abandonment and never authorizes replay or resource recovery. The caller owns the S3 client and credentials; they are not forwarded to agents. Use a dedicated private bucket prefix and access policy. Object revisions fence cooperating writers but do not authenticate artifact producers or operators. Stop an abandoned runner independently before releasing its checkpoint ownership; a remote PID is not proof of inactivity.
44
+
45
+ ## Firecracker
24
46
 
25
47
  The optional Firecracker jailer mode requires a trusted root supervisor and root-owned boot assets, executables, SSH trust files, jail base and cgroup v2 parent. Outpost does not elevate privileges. The VMM drops to the explicitly selected non-root UID/GID, uses the jailer's mount namespace and receives CPU, memory, swap and process limits. The supervisor remains privileged and outside the VMM cgroup; its workflow code, configuration, dependencies and transfer destinations must be trusted. Guest file downloads currently buffer individual files in the supervisor, so the VMM memory limit is not a total host-resource budget. Kernel work outside that cgroup is likewise not charged to its CPU quota. Operators own TAP setup, network filtering, parent resources and crash recovery. Control-plane resource accounting and adversarial validation of this mode remain open.
26
48
 
49
+ ## Network policies
50
+
27
51
  Egress policies restrict sandbox outbound connections, not host model-provider or decision-provider calls, image downloads or cloud control-plane traffic. Vercel domain rules inspect TLS SNI rather than encrypted HTTP Host headers; allowed CIDRs grant independent IP access and denied CIDRs take precedence. A domain allowlist is not a general defense against exfiltration through allowed services or shared infrastructure. Mounted host sockets can expose separate network capabilities. Outpost copies network configuration at provider composition.
28
52
 
29
53
  Daytona egress is sent at creation and confirmed through its network-update API before Outpost prepares the workspace or exposes the lease. A rejected confirmation fails acquisition and triggers deletion. Tier 3/4 and WRITE_SANDBOXES are required; native creation options alone do not establish this guarantee. Autonomous image startup precedes confirmation and must be trusted, without embedded secrets or startup workloads. Unsupported combinations and wildcard patterns that would implicitly grant apex access are rejected. Docker/Podman allowlists remain unsupported; local and Firecracker execution reject Outpost egress policies. See the bilingual outbound-network guide for capabilities and live-validation limits.
30
54
 
55
+ ## Approvals and idempotency
56
+
31
57
  Signed workflow gates verify an Ed25519 key bound to an approver, not a human login. The signing service must authenticate the user and their intent. Keep private keys outside worker sandboxes; trust the configured verifier and public-key source. Gate authentication requirements participate in checkpoint identity, but signatures do not authenticate checkpoint storage. Revocation rejects new proofs and does not undo already persisted decisions. HTTP queue bearer tokens authorize all queue operations; dynamic token sources allow rotation, not tenant isolation. Use trusted TLS termination for remote connections. Idempotency keys only prevent duplicate external effects when the effect service atomically deduplicates them and retains receipts throughout the replay window.
58
+
59
+ ## Dependency caches
60
+
61
+ Cloud dependency caches archive only the declared download directories through a host-side Transport. Storage credentials are not installed in the sandbox. Later runs trust the bytes written by previous agents and transport writers; keep credentials out of caches and use a private prefix. Immutable cache snapshots persist until explicitly removed, including superseded or unpublished snapshots. Compatibility hashes and chunk digests provide isolation and integrity, not producer authentication.
62
+
63
+ ## Secret managers
64
+
65
+ Secret-source resolution runs on the host before sandbox allocation. Outpost reads only requested names and returns immutable variables without writing the values to disk or changing process.env. Vault/OpenBao KV v2 and AWS JSON fields require fetching an enclosing document; split unrelated secrets when they must not be fetched together. Injected SDK clients are caller-owned, and their authentication configuration and caching remain the caller’s responsibility. fromSecrets discards vendor exception messages and causes; never log the returned object. The selected values become readable by every process receiving those variables. Startup snapshots do not rotate inside a running sandbox.
@@ -1,3 +1,4 @@
1
+ import { rejectProfileTools } from "../profile-support.js";
1
2
  import { mcpConfigurationPlanner, supportMcpServers, } from "../mcp-configuration.js";
2
3
  import { antigravityMcpFile } from "./antigravity-mcp.js";
3
4
  import { textMatcher } from "../text-matcher.js";
@@ -11,6 +12,7 @@ import { credentialPlanner } from "../authentication.js";
11
12
  import { configuredSettings, harnessSettings, supportModel, } from "../model-support.js";
12
13
  function bindAntigravity(settings) {
13
14
  supportModel(antigravityModelSupport, settings.model);
15
+ rejectProfileTools(antigravityLabel, settings.profile);
14
16
  supportMcpServers(antigravityMcpSupport, settings.mcpServers);
15
17
  const credentials = credentialPlanner(antigravityLabel, antigravityCredentials, settings.authentication, settings.model);
16
18
  const configuration = mcpConfigurationPlanner(antigravityLabel, settings.mcpServers, antigravityMcpFile);
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,SAAS,eAAe,CAAC,QAAoC;IAC3D,YAAY,CAAC,uBAAuB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,iBAAiB,CACnC,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,KAAK,CACf,CAAC;IACF,MAAM,aAAa,GAAG,uBAAuB,CAC3C,gBAAgB,EAChB,QAAQ,CAAC,UAAU,EACnB,kBAAkB,CACnB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,aAAa;QACnB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,qBAAqB,EAAE,IAAI;QAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,GAAG,oBAAoB;YACvB,GAAG,QAAQ,CAAC,SAAS;SACtB,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;QACvD,MAAM,EAAE,iBAAiB;QACzB,KAAK,EAAE,WAAW,CAAC,wBAAwB,CAAC;QAC5C,WAAW,EAAE,WAAW,CACtB,8BAA8B,EAC9B,uBAAuB,CACxB;KACqB,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,WAAgC,EAAE;IAElC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1B,SAAS,CACP,CAAC,CAAC,eAAe,IAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EACtE,kFAAkF,CACnF,CAAC;IACF,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC,KAAkB,EAAE,EAAE,CAC3B,eAAe,CAAC;YACd,GAAG,UAAU;YACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C,CAAC;KACL,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n mcpConfigurationPlanner,\n supportMcpServers,\n} from \"../mcp-configuration.ts\";\nimport { antigravityMcpFile } from \"./antigravity-mcp.ts\";\nimport { textMatcher } from \"../text-matcher.ts\";\nimport { transientNoticePatterns } from \"../unavailable.constants.ts\";\nimport type { AgentAdapter, CliHarness } from \"../../../domain/agent.types.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport type { AgentModel } from \"../../../domain/model.types.ts\";\nimport { antigravityCredentials } from \"./antigravity-authentication.ts\";\nimport {\n antigravityVariables,\n antigravityLabel,\n antigravityMcpSupport,\n antigravityModelSupport,\n antigravityQuotaPatterns,\n antigravityUnavailablePatterns,\n} from \"./antigravity.constants.ts\";\nimport { antigravityEvents } from \"./antigravity-events.ts\";\nimport { antigravityRequest } from \"./antigravity-request.ts\";\nimport type { AntigravitySettings } from \"./antigravity.types.ts\";\nimport { credentialPlanner } from \"../authentication.ts\";\nimport {\n configuredSettings,\n harnessSettings,\n supportModel,\n} from \"../model-support.ts\";\nimport type { Bound } from \"../settings.types.ts\";\n\nfunction bindAntigravity(settings: Bound<AntigravitySettings>): AgentAdapter {\n supportModel(antigravityModelSupport, settings.model);\n supportMcpServers(antigravityMcpSupport, settings.mcpServers);\n const credentials = credentialPlanner(\n antigravityLabel,\n antigravityCredentials,\n settings.authentication,\n settings.model,\n );\n const configuration = mcpConfigurationPlanner(\n antigravityLabel,\n settings.mcpServers,\n antigravityMcpFile,\n );\n return Object.freeze({\n name: \"antigravity\",\n ...(credentials ? { credentials } : {}),\n ...(configuration ? { configuration } : {}),\n bootstrap: \"antigravity\",\n resumable: true,\n forkable: false,\n capture: false,\n requiresFinishedEvent: true,\n variables: Object.freeze({\n ...antigravityVariables,\n ...settings.variables,\n }),\n request: (input) => antigravityRequest(settings, input),\n events: antigravityEvents,\n quota: textMatcher(antigravityQuotaPatterns),\n unavailable: textMatcher(\n antigravityUnavailablePatterns,\n transientNoticePatterns,\n ),\n } satisfies AgentAdapter);\n}\n\nexport function createAntigravityHarness(\n settings: AntigravitySettings = {},\n): CliHarness {\n harnessSettings(settings);\n invariant(\n !(\"conversations\" in settings) || settings.conversations === undefined,\n \"Antigravity has no portable conversation capture; conversations cannot be stored\",\n );\n const configured = configuredSettings(settings);\n return Object.freeze({\n kind: \"cli\",\n bind: (model?: AgentModel) =>\n bindAntigravity({\n ...configured,\n ...(model === undefined ? {} : { model }),\n }),\n });\n}\n"]}
1
+ {"version":3,"file":"antigravity-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { rejectProfileTools } from \"../profile-support.ts\";\nimport {\n mcpConfigurationPlanner,\n supportMcpServers,\n} from \"../mcp-configuration.ts\";\nimport { antigravityMcpFile } from \"./antigravity-mcp.ts\";\nimport { textMatcher } from \"../text-matcher.ts\";\nimport { transientNoticePatterns } from \"../unavailable.constants.ts\";\nimport type { AgentAdapter, CliHarness } from \"../../../domain/agent.types.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport type { AgentModel } from \"../../../domain/model.types.ts\";\nimport { antigravityCredentials } from \"./antigravity-authentication.ts\";\nimport {\n antigravityVariables,\n antigravityLabel,\n antigravityMcpSupport,\n antigravityModelSupport,\n antigravityQuotaPatterns,\n antigravityUnavailablePatterns,\n} from \"./antigravity.constants.ts\";\nimport { antigravityEvents } from \"./antigravity-events.ts\";\nimport { antigravityRequest } from \"./antigravity-request.ts\";\nimport type { AntigravitySettings } from \"./antigravity.types.ts\";\nimport { credentialPlanner } from \"../authentication.ts\";\nimport {\n configuredSettings,\n harnessSettings,\n supportModel,\n} from \"../model-support.ts\";\nimport type { Bound } from \"../settings.types.ts\";\n\nfunction bindAntigravity(settings: Bound<AntigravitySettings>): AgentAdapter {\n supportModel(antigravityModelSupport, settings.model);\n rejectProfileTools(antigravityLabel, settings.profile);\n supportMcpServers(antigravityMcpSupport, settings.mcpServers);\n const credentials = credentialPlanner(\n antigravityLabel,\n antigravityCredentials,\n settings.authentication,\n settings.model,\n );\n const configuration = mcpConfigurationPlanner(\n antigravityLabel,\n settings.mcpServers,\n antigravityMcpFile,\n );\n return Object.freeze({\n name: \"antigravity\",\n ...(credentials ? { credentials } : {}),\n ...(configuration ? { configuration } : {}),\n bootstrap: \"antigravity\",\n resumable: true,\n forkable: false,\n capture: false,\n requiresFinishedEvent: true,\n variables: Object.freeze({\n ...antigravityVariables,\n ...settings.variables,\n }),\n request: (input) => antigravityRequest(settings, input),\n events: antigravityEvents,\n quota: textMatcher(antigravityQuotaPatterns),\n unavailable: textMatcher(\n antigravityUnavailablePatterns,\n transientNoticePatterns,\n ),\n } satisfies AgentAdapter);\n}\n\nexport function createAntigravityHarness(\n settings: AntigravitySettings = {},\n): CliHarness {\n harnessSettings(settings);\n invariant(\n !(\"conversations\" in settings) || settings.conversations === undefined,\n \"Antigravity has no portable conversation capture; conversations cannot be stored\",\n );\n const configured = configuredSettings(settings);\n return Object.freeze({\n kind: \"cli\",\n bind: (model?: AgentModel) =>\n bindAntigravity({\n ...configured,\n ...(model === undefined ? {} : { model }),\n }),\n });\n}\n"]}
@@ -1,7 +1,9 @@
1
+ import { profileText } from "../profile-support.js";
1
2
  import { validId } from "../../../infrastructure/conversations/identity.js";
2
3
  import { invariant } from "../../../domain/errors.js";
3
4
  import { antigravityVariables } from "./antigravity.constants.js";
4
5
  export function antigravityRequest(settings, input) {
6
+ const text = profileText(settings.profile, input.text);
5
7
  invariant(!input.continuation?.fork, "Antigravity does not support automated fork in Outpost");
6
8
  const args = [];
7
9
  if (input.continuation) {
@@ -18,9 +20,7 @@ export function antigravityRequest(settings, input) {
18
20
  variables: antigravityVariables,
19
21
  arguments: [
20
22
  ...args,
21
- ...(input.text === undefined
22
- ? []
23
- : ["--prompt-interactive", input.text]),
23
+ ...(text === undefined ? [] : ["--prompt-interactive", text]),
24
24
  ],
25
25
  interactive: true,
26
26
  };
@@ -31,7 +31,7 @@ export function antigravityRequest(settings, input) {
31
31
  executable: "agy",
32
32
  variables: antigravityVariables,
33
33
  arguments: args,
34
- stdin: `${JSON.stringify({ event: "user", message: { content: input.text ?? "" } })}\n`,
34
+ stdin: `${JSON.stringify({ event: "user", message: { content: text ?? "" } })}\n`,
35
35
  };
36
36
  }
37
37
  //# sourceMappingURL=antigravity-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity-request.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mDAAmD,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIlE,MAAM,UAAU,kBAAkB,CAChC,QAAoC,EACpC,KAAiB;IAEjB,SAAS,CACP,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EACzB,wDAAwD,CACzD,CAAC;IACF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,WAAW;QACnB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,oBAAoB;YAC/B,SAAS,EAAE;gBACT,GAAG,IAAI;gBACP,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBAC1B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1C;YACD,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC7E,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;KACxF,CAAC;AACJ,CAAC","sourcesContent":["import { validId } from \"../../../infrastructure/conversations/identity.ts\";\nimport type { AgentInput } from \"../../../domain/agent.types.ts\";\nimport type { Command } from \"../../../domain/command.types.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport { antigravityVariables } from \"./antigravity.constants.ts\";\nimport type { AntigravitySettings } from \"./antigravity.types.ts\";\nimport type { Bound } from \"../settings.types.ts\";\n\nexport function antigravityRequest(\n settings: Bound<AntigravitySettings>,\n input: AgentInput,\n): Command {\n invariant(\n !input.continuation?.fork,\n \"Antigravity does not support automated fork in Outpost\",\n );\n const args: string[] = [];\n if (input.continuation) {\n validId(input.continuation.id);\n args.push(\"--conversation\", input.continuation.id);\n }\n if (settings.model) args.push(\"--model\", settings.model.name);\n if (settings.mode) args.push(\"--mode\", settings.mode);\n if (input.interactive)\n return {\n executable: \"agy\",\n variables: antigravityVariables,\n arguments: [\n ...args,\n ...(input.text === undefined\n ? []\n : [\"--prompt-interactive\", input.text]),\n ],\n interactive: true,\n };\n if (!settings.mode) args.push(\"--dangerously-skip-permissions\");\n args.push(\"--input-format\", \"stream-json\", \"--output-format\", \"stream-json\");\n return {\n executable: \"agy\",\n variables: antigravityVariables,\n arguments: args,\n stdin: `${JSON.stringify({ event: \"user\", message: { content: input.text ?? \"\" } })}\\n`,\n };\n}\n"]}
1
+ {"version":3,"file":"antigravity-request.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mDAAmD,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIlE,MAAM,UAAU,kBAAkB,CAChC,QAAoC,EACpC,KAAiB;IAEjB,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,CACP,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EACzB,wDAAwD,CACzD,CAAC;IACF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,WAAW;QACnB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,oBAAoB;YAC/B,SAAS,EAAE;gBACT,GAAG,IAAI;gBACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;aAC9D;YACD,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC7E,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI;KAClF,CAAC;AACJ,CAAC","sourcesContent":["import { profileText } from \"../profile-support.ts\";\nimport { validId } from \"../../../infrastructure/conversations/identity.ts\";\nimport type { AgentInput } from \"../../../domain/agent.types.ts\";\nimport type { Command } from \"../../../domain/command.types.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport { antigravityVariables } from \"./antigravity.constants.ts\";\nimport type { AntigravitySettings } from \"./antigravity.types.ts\";\nimport type { Bound } from \"../settings.types.ts\";\n\nexport function antigravityRequest(\n settings: Bound<AntigravitySettings>,\n input: AgentInput,\n): Command {\n const text = profileText(settings.profile, input.text);\n invariant(\n !input.continuation?.fork,\n \"Antigravity does not support automated fork in Outpost\",\n );\n const args: string[] = [];\n if (input.continuation) {\n validId(input.continuation.id);\n args.push(\"--conversation\", input.continuation.id);\n }\n if (settings.model) args.push(\"--model\", settings.model.name);\n if (settings.mode) args.push(\"--mode\", settings.mode);\n if (input.interactive)\n return {\n executable: \"agy\",\n variables: antigravityVariables,\n arguments: [\n ...args,\n ...(text === undefined ? [] : [\"--prompt-interactive\", text]),\n ],\n interactive: true,\n };\n if (!settings.mode) args.push(\"--dangerously-skip-permissions\");\n args.push(\"--input-format\", \"stream-json\", \"--output-format\", \"stream-json\");\n return {\n executable: \"agy\",\n variables: antigravityVariables,\n arguments: args,\n stdin: `${JSON.stringify({ event: \"user\", message: { content: text ?? \"\" } })}\\n`,\n };\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { AgentProfile } from "../../../domain/agent-profile.types.ts";
1
2
  import type { AgentAuthentication } from "../../../domain/agent.types.ts";
2
3
  import type { Variables } from "../../../domain/command.types.ts";
3
4
  import type { McpServers } from "../../../domain/mcp-server.types.ts";
@@ -5,5 +6,6 @@ export interface AntigravitySettings {
5
6
  readonly authentication?: AgentAuthentication;
6
7
  readonly variables?: Variables;
7
8
  readonly mcpServers?: McpServers;
9
+ readonly profile?: AgentProfile;
8
10
  readonly mode?: "accept-edits" | "plan";
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity.types.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AgentAuthentication } from \"../../../domain/agent.types.ts\";\nimport type { Variables } from \"../../../domain/command.types.ts\";\nimport type { McpServers } from \"../../../domain/mcp-server.types.ts\";\n\nexport interface AntigravitySettings {\n readonly authentication?: AgentAuthentication;\n readonly variables?: Variables;\n readonly mcpServers?: McpServers;\n readonly mode?: \"accept-edits\" | \"plan\";\n}\n"]}
1
+ {"version":3,"file":"antigravity.types.js","sourceRoot":"","sources":["../../../../src/adapters/agents/antigravity/antigravity.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AgentProfile } from \"../../../domain/agent-profile.types.ts\";\nimport type { AgentAuthentication } from \"../../../domain/agent.types.ts\";\nimport type { Variables } from \"../../../domain/command.types.ts\";\nimport type { McpServers } from \"../../../domain/mcp-server.types.ts\";\n\nexport interface AntigravitySettings {\n readonly authentication?: AgentAuthentication;\n readonly variables?: Variables;\n readonly mcpServers?: McpServers;\n readonly profile?: AgentProfile;\n readonly mode?: \"accept-edits\" | \"plan\";\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import { supportClaudeProfile } from "./claude-profile.js";
1
2
  import { createClaudeConversations, claudeConversationLayout, } from "./claude-conversations.js";
2
3
  import { claudeLabel, claudeMcpSupport, claudeModelSupport, claudeQuotaPatterns, claudeUnavailablePatterns, CLAUDE_MAX_OUTPUT_VARIABLE, CLAUDE_MCP_TIMEOUT_VARIABLE, } from "./claude.constants.js";
3
4
  import { claudeMcpLogins } from "./claude-mcp.js";
@@ -14,6 +15,7 @@ import { claudeRequest } from "./claude-request.js";
14
15
  import { configuredSettings, harnessSettings, supportModel, } from "../model-support.js";
15
16
  function bindClaude(settings) {
16
17
  supportModel(claudeModelSupport, settings.model);
18
+ supportClaudeProfile(settings);
17
19
  supportMcpServers(claudeMcpSupport, settings.mcpServers);
18
20
  const maxOutputTokens = settings.model?.maxOutputTokens;
19
21
  invariant(maxOutputTokens === undefined ||
@@ -24,6 +26,7 @@ function bindClaude(settings) {
24
26
  const credentials = credentialPlanner(claudeLabel, claudeCredentials, settings.authentication, settings.model);
25
27
  const configuration = mcpConfigurationPlanner(claudeLabel, settings.mcpServers, undefined, claudeMcpLogins);
26
28
  return Object.freeze({
29
+ usageInput: "uncached",
27
30
  name: "claude",
28
31
  ...(credentials ? { credentials } : {}),
29
32
  ...(configuration ? { configuration } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createClaudeConversations,\n claudeConversationLayout,\n} from \"./claude-conversations.ts\";\nimport {\n claudeLabel,\n claudeMcpSupport,\n claudeModelSupport,\n claudeQuotaPatterns,\n claudeUnavailablePatterns,\n CLAUDE_MAX_OUTPUT_VARIABLE,\n CLAUDE_MCP_TIMEOUT_VARIABLE,\n} from \"./claude.constants.ts\";\nimport { claudeMcpLogins } from \"./claude-mcp.ts\";\nimport {\n mcpConfigurationPlanner,\n sharedStartupTimeout,\n supportMcpServers,\n} from \"../mcp-configuration.ts\";\nimport { textMatcher } from \"../text-matcher.ts\";\nimport {\n conversationSettings,\n conversationStorage,\n} from \"../conversation-settings.ts\";\nimport { transientNoticePatterns } from \"../unavailable.constants.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport type { AgentModel } from \"../../../domain/model.types.ts\";\nimport { credentialPlanner } from \"../authentication.ts\";\nimport { claudeCredentials } from \"./claude-authentication.ts\";\nimport type { AgentAdapter, CliHarness } from \"../../../domain/agent.types.ts\";\nimport { claudeEvents, claudeTranscriptUsage } from \"./claude-events.ts\";\nimport { claudeLiveInput } from \"./claude-input.ts\";\nimport { claudeRequest } from \"./claude-request.ts\";\nimport {\n configuredSettings,\n harnessSettings,\n supportModel,\n} from \"../model-support.ts\";\nimport type { Bound, ClaudeSettings } from \"../settings.types.ts\";\n\nfunction bindClaude(settings: Bound<ClaudeSettings>): AgentAdapter {\n supportModel(claudeModelSupport, settings.model);\n supportMcpServers(claudeMcpSupport, settings.mcpServers);\n const maxOutputTokens = settings.model?.maxOutputTokens;\n invariant(\n maxOutputTokens === undefined ||\n !Object.hasOwn(settings.variables ?? {}, CLAUDE_MAX_OUTPUT_VARIABLE),\n `Set maxOutputTokens on the agent model or ${CLAUDE_MAX_OUTPUT_VARIABLE}, not both`,\n );\n const mcpTimeout = sharedStartupTimeout(settings.mcpServers);\n invariant(\n mcpTimeout === undefined ||\n !Object.hasOwn(settings.variables ?? {}, CLAUDE_MCP_TIMEOUT_VARIABLE),\n `Set startupTimeoutMs on MCP servers or ${CLAUDE_MCP_TIMEOUT_VARIABLE}, not both`,\n );\n const credentials = credentialPlanner(\n claudeLabel,\n claudeCredentials,\n settings.authentication,\n settings.model,\n );\n const configuration = mcpConfigurationPlanner(\n claudeLabel,\n settings.mcpServers,\n undefined,\n claudeMcpLogins,\n );\n return Object.freeze({\n name: \"claude\",\n ...(credentials ? { credentials } : {}),\n ...(configuration ? { configuration } : {}),\n bootstrap: \"claude\",\n ...conversationStorage(settings, createClaudeConversations),\n resumable: true,\n capture: settings.saveConversations ?? true,\n variables: Object.freeze({\n ...settings.variables,\n ...(maxOutputTokens === undefined\n ? {}\n : { [CLAUDE_MAX_OUTPUT_VARIABLE]: String(maxOutputTokens) }),\n ...(mcpTimeout === undefined\n ? {}\n : { [CLAUDE_MCP_TIMEOUT_VARIABLE]: String(mcpTimeout) }),\n }),\n request: (input) => claudeRequest(settings, input),\n events: claudeEvents,\n liveInput: claudeLiveInput,\n quota: textMatcher(claudeQuotaPatterns),\n unavailable: textMatcher(\n claudeUnavailablePatterns,\n transientNoticePatterns,\n ),\n transcriptUsage: claudeTranscriptUsage,\n } satisfies AgentAdapter);\n}\n\nexport function createClaudeHarness(settings: ClaudeSettings = {}): CliHarness {\n harnessSettings(settings);\n conversationSettings(claudeLabel, claudeConversationLayout.format, settings);\n const configured = configuredSettings(settings);\n return Object.freeze({\n kind: \"cli\",\n bind: (model?: AgentModel) =>\n bindClaude({\n ...configured,\n ...(model === undefined ? {} : { model }),\n }),\n });\n}\n"]}
1
+ {"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,SAAS,UAAU,CAAC,QAA+B;IACjD,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/B,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IACxD,SAAS,CACP,eAAe,KAAK,SAAS;QAC3B,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,0BAA0B,CAAC,EACtE,6CAA6C,0BAA0B,YAAY,CACpF,CAAC;IACF,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7D,SAAS,CACP,UAAU,KAAK,SAAS;QACtB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,2BAA2B,CAAC,EACvE,0CAA0C,2BAA2B,YAAY,CAClF,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CACnC,WAAW,EACX,iBAAiB,EACjB,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,KAAK,CACf,CAAC;IACF,MAAM,aAAa,GAAG,uBAAuB,CAC3C,WAAW,EACX,QAAQ,CAAC,UAAU,EACnB,SAAS,EACT,eAAe,CAChB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,SAAS,EAAE,QAAQ;QACnB,GAAG,mBAAmB,CAAC,QAAQ,EAAE,yBAAyB,CAAC;QAC3D,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,QAAQ,CAAC,iBAAiB,IAAI,IAAI;QAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,GAAG,QAAQ,CAAC,SAAS;YACrB,GAAG,CAAC,eAAe,KAAK,SAAS;gBAC/B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,UAAU,KAAK,SAAS;gBAC1B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;SAC3D,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClD,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC;QACvC,WAAW,EAAE,WAAW,CACtB,yBAAyB,EACzB,uBAAuB,CACxB;QACD,eAAe,EAAE,qBAAqB;KAChB,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAA2B,EAAE;IAC/D,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1B,oBAAoB,CAAC,WAAW,EAAE,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC,KAAkB,EAAE,EAAE,CAC3B,UAAU,CAAC;YACT,GAAG,UAAU;YACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C,CAAC;KACL,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { supportClaudeProfile } from \"./claude-profile.ts\";\nimport {\n createClaudeConversations,\n claudeConversationLayout,\n} from \"./claude-conversations.ts\";\nimport {\n claudeLabel,\n claudeMcpSupport,\n claudeModelSupport,\n claudeQuotaPatterns,\n claudeUnavailablePatterns,\n CLAUDE_MAX_OUTPUT_VARIABLE,\n CLAUDE_MCP_TIMEOUT_VARIABLE,\n} from \"./claude.constants.ts\";\nimport { claudeMcpLogins } from \"./claude-mcp.ts\";\nimport {\n mcpConfigurationPlanner,\n sharedStartupTimeout,\n supportMcpServers,\n} from \"../mcp-configuration.ts\";\nimport { textMatcher } from \"../text-matcher.ts\";\nimport {\n conversationSettings,\n conversationStorage,\n} from \"../conversation-settings.ts\";\nimport { transientNoticePatterns } from \"../unavailable.constants.ts\";\nimport { invariant } from \"../../../domain/errors.ts\";\nimport type { AgentModel } from \"../../../domain/model.types.ts\";\nimport { credentialPlanner } from \"../authentication.ts\";\nimport { claudeCredentials } from \"./claude-authentication.ts\";\nimport type { AgentAdapter, CliHarness } from \"../../../domain/agent.types.ts\";\nimport { claudeEvents, claudeTranscriptUsage } from \"./claude-events.ts\";\nimport { claudeLiveInput } from \"./claude-input.ts\";\nimport { claudeRequest } from \"./claude-request.ts\";\nimport {\n configuredSettings,\n harnessSettings,\n supportModel,\n} from \"../model-support.ts\";\nimport type { Bound, ClaudeSettings } from \"../settings.types.ts\";\n\nfunction bindClaude(settings: Bound<ClaudeSettings>): AgentAdapter {\n supportModel(claudeModelSupport, settings.model);\n supportClaudeProfile(settings);\n supportMcpServers(claudeMcpSupport, settings.mcpServers);\n const maxOutputTokens = settings.model?.maxOutputTokens;\n invariant(\n maxOutputTokens === undefined ||\n !Object.hasOwn(settings.variables ?? {}, CLAUDE_MAX_OUTPUT_VARIABLE),\n `Set maxOutputTokens on the agent model or ${CLAUDE_MAX_OUTPUT_VARIABLE}, not both`,\n );\n const mcpTimeout = sharedStartupTimeout(settings.mcpServers);\n invariant(\n mcpTimeout === undefined ||\n !Object.hasOwn(settings.variables ?? {}, CLAUDE_MCP_TIMEOUT_VARIABLE),\n `Set startupTimeoutMs on MCP servers or ${CLAUDE_MCP_TIMEOUT_VARIABLE}, not both`,\n );\n const credentials = credentialPlanner(\n claudeLabel,\n claudeCredentials,\n settings.authentication,\n settings.model,\n );\n const configuration = mcpConfigurationPlanner(\n claudeLabel,\n settings.mcpServers,\n undefined,\n claudeMcpLogins,\n );\n return Object.freeze({\n usageInput: \"uncached\",\n name: \"claude\",\n ...(credentials ? { credentials } : {}),\n ...(configuration ? { configuration } : {}),\n bootstrap: \"claude\",\n ...conversationStorage(settings, createClaudeConversations),\n resumable: true,\n capture: settings.saveConversations ?? true,\n variables: Object.freeze({\n ...settings.variables,\n ...(maxOutputTokens === undefined\n ? {}\n : { [CLAUDE_MAX_OUTPUT_VARIABLE]: String(maxOutputTokens) }),\n ...(mcpTimeout === undefined\n ? {}\n : { [CLAUDE_MCP_TIMEOUT_VARIABLE]: String(mcpTimeout) }),\n }),\n request: (input) => claudeRequest(settings, input),\n events: claudeEvents,\n liveInput: claudeLiveInput,\n quota: textMatcher(claudeQuotaPatterns),\n unavailable: textMatcher(\n claudeUnavailablePatterns,\n transientNoticePatterns,\n ),\n transcriptUsage: claudeTranscriptUsage,\n } satisfies AgentAdapter);\n}\n\nexport function createClaudeHarness(settings: ClaudeSettings = {}): CliHarness {\n harnessSettings(settings);\n conversationSettings(claudeLabel, claudeConversationLayout.format, settings);\n const configured = configuredSettings(settings);\n return Object.freeze({\n kind: \"cli\",\n bind: (model?: AgentModel) =>\n bindClaude({\n ...configured,\n ...(model === undefined ? {} : { model }),\n }),\n });\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const CLAUDE_PROFILE_TOOLS: Readonly<{
2
+ read: readonly string[];
3
+ edit: readonly string[];
4
+ shell: readonly string[];
5
+ }>;
6
+ export declare const CLAUDE_PROFILE_HOOK = "let data = \"\";\nprocess.stdin.setEncoding(\"utf8\");\nprocess.stdin.on(\"data\", (chunk) => { data += chunk; });\nprocess.stdin.on(\"end\", () => {\n try {\n const input = JSON.parse(data);\n const name = input.tool_name;\n const permitted = tools.includes(name) &&\n (name !== \"Bash\" || shell || commands.includes(input.tool_input?.command));\n const mcp = servers.some((server) => typeof name === \"string\" && name.startsWith(\"mcp__\" + server + \"__\"));\n if (excluded.includes(name) || (!permitted && !mcp)) throw new Error(\"Denied by agent profile allowedTools\");\n process.stdout.write(JSON.stringify({ hookSpecificOutput: {\n hookEventName: \"PreToolUse\", permissionDecision: \"allow\"\n } }));\n } catch {\n process.stderr.write(\"Denied by agent profile allowedTools\");\n process.exitCode = 2;\n }\n});";
@@ -0,0 +1,25 @@
1
+ export const CLAUDE_PROFILE_TOOLS = Object.freeze({
2
+ read: Object.freeze(["Read", "Glob", "Grep"]),
3
+ edit: Object.freeze(["Edit", "Write", "NotebookEdit"]),
4
+ shell: Object.freeze(["Bash"]),
5
+ });
6
+ export const CLAUDE_PROFILE_HOOK = `let data = "";
7
+ process.stdin.setEncoding("utf8");
8
+ process.stdin.on("data", (chunk) => { data += chunk; });
9
+ process.stdin.on("end", () => {
10
+ try {
11
+ const input = JSON.parse(data);
12
+ const name = input.tool_name;
13
+ const permitted = tools.includes(name) &&
14
+ (name !== "Bash" || shell || commands.includes(input.tool_input?.command));
15
+ const mcp = servers.some((server) => typeof name === "string" && name.startsWith("mcp__" + server + "__"));
16
+ if (excluded.includes(name) || (!permitted && !mcp)) throw new Error("Denied by agent profile allowedTools");
17
+ process.stdout.write(JSON.stringify({ hookSpecificOutput: {
18
+ hookEventName: "PreToolUse", permissionDecision: "allow"
19
+ } }));
20
+ } catch {
21
+ process.stderr.write("Denied by agent profile allowedTools");
22
+ process.exitCode = 2;
23
+ }
24
+ });`;
25
+ //# sourceMappingURL=claude-profile.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-profile.constants.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-profile.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;IAkB/B,CAAC","sourcesContent":["export const CLAUDE_PROFILE_TOOLS = Object.freeze({\n read: Object.freeze([\"Read\", \"Glob\", \"Grep\"]),\n edit: Object.freeze([\"Edit\", \"Write\", \"NotebookEdit\"]),\n shell: Object.freeze([\"Bash\"]),\n});\n\nexport const CLAUDE_PROFILE_HOOK = `let data = \"\";\nprocess.stdin.setEncoding(\"utf8\");\nprocess.stdin.on(\"data\", (chunk) => { data += chunk; });\nprocess.stdin.on(\"end\", () => {\n try {\n const input = JSON.parse(data);\n const name = input.tool_name;\n const permitted = tools.includes(name) &&\n (name !== \"Bash\" || shell || commands.includes(input.tool_input?.command));\n const mcp = servers.some((server) => typeof name === \"string\" && name.startsWith(\"mcp__\" + server + \"__\"));\n if (excluded.includes(name) || (!permitted && !mcp)) throw new Error(\"Denied by agent profile allowedTools\");\n process.stdout.write(JSON.stringify({ hookSpecificOutput: {\n hookEventName: \"PreToolUse\", permissionDecision: \"allow\"\n } }));\n } catch {\n process.stderr.write(\"Denied by agent profile allowedTools\");\n process.exitCode = 2;\n }\n});`;\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ClaudeSettings } from "../settings.types.ts";
2
+ export declare function supportClaudeProfile(settings: ClaudeSettings): void;
3
+ export declare function claudeProfileArguments(settings: ClaudeSettings): readonly string[];
@@ -0,0 +1,69 @@
1
+ import { invariant } from "../../../domain/errors.js";
2
+ import { quote } from "../../../infrastructure/process.js";
3
+ import { CLAUDE_PROFILE_HOOK, CLAUDE_PROFILE_TOOLS, } from "./claude-profile.constants.js";
4
+ export function supportClaudeProfile(settings) {
5
+ invariant(settings.profile?.allowedTools === undefined ||
6
+ settings.permissions === undefined ||
7
+ settings.permissions === "dontAsk", "Claude Code agent profile allowedTools requires permission mode dontAsk; remove conflicting permissions");
8
+ }
9
+ export function claudeProfileArguments(settings) {
10
+ const profile = settings.profile;
11
+ if (!profile)
12
+ return [];
13
+ const instructions = profile.instructions === undefined
14
+ ? []
15
+ : [
16
+ "--append-system-prompt",
17
+ profile.instructions,
18
+ "--system-prompt-snapshot",
19
+ "off",
20
+ ];
21
+ if (profile.allowedTools === undefined)
22
+ return instructions;
23
+ const tools = [
24
+ ...new Set(profile.allowedTools.flatMap((tool) => {
25
+ if (tool.startsWith("shell:"))
26
+ return ["Bash"];
27
+ if (tool === "read" || tool === "edit" || tool === "shell")
28
+ return CLAUDE_PROFILE_TOOLS[tool];
29
+ return [];
30
+ })),
31
+ ];
32
+ const commands = profile.allowedTools
33
+ .filter((tool) => tool.startsWith("shell:"))
34
+ .map((tool) => tool.slice(6));
35
+ const script = [
36
+ `const tools = ${JSON.stringify(tools)};`,
37
+ `const commands = ${JSON.stringify(commands)};`,
38
+ `const shell = ${profile.allowedTools.includes("shell")};`,
39
+ `const servers = ${JSON.stringify(Object.keys(settings.mcpServers ?? {}))};`,
40
+ `const excluded = ${JSON.stringify(Object.entries(settings.mcpServers ?? {}).flatMap(([server, entry]) => (entry.tools?.exclude ?? []).map((tool) => `mcp__${server}__${tool}`)))};`,
41
+ CLAUDE_PROFILE_HOOK,
42
+ ].join("\n");
43
+ return [
44
+ ...instructions,
45
+ `--tools=${tools.join(",")}`,
46
+ "--permission-mode",
47
+ "dontAsk",
48
+ "--setting-sources",
49
+ "",
50
+ "--strict-mcp-config",
51
+ "--settings",
52
+ JSON.stringify({
53
+ hooks: {
54
+ PreToolUse: [
55
+ {
56
+ matcher: "*",
57
+ hooks: [
58
+ {
59
+ type: "command",
60
+ command: `node -e ${quote(script)} || exit 2`,
61
+ },
62
+ ],
63
+ },
64
+ ],
65
+ },
66
+ }),
67
+ ];
68
+ }
69
+ //# sourceMappingURL=claude-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-profile.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-profile.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from \"../../../domain/errors.ts\";\nimport { quote } from \"../../../infrastructure/process.ts\";\nimport {\n CLAUDE_PROFILE_HOOK,\n CLAUDE_PROFILE_TOOLS,\n} from \"./claude-profile.constants.ts\";\nimport type { ClaudeSettings } from \"../settings.types.ts\";\n\nexport function supportClaudeProfile(settings: ClaudeSettings): void {\n invariant(\n settings.profile?.allowedTools === undefined ||\n settings.permissions === undefined ||\n settings.permissions === \"dontAsk\",\n \"Claude Code agent profile allowedTools requires permission mode dontAsk; remove conflicting permissions\",\n );\n}\n\nexport function claudeProfileArguments(\n settings: ClaudeSettings,\n): readonly string[] {\n const profile = settings.profile;\n if (!profile) return [];\n const instructions =\n profile.instructions === undefined\n ? []\n : [\n \"--append-system-prompt\",\n profile.instructions,\n \"--system-prompt-snapshot\",\n \"off\",\n ];\n if (profile.allowedTools === undefined) return instructions;\n const tools = [\n ...new Set(\n profile.allowedTools.flatMap((tool) => {\n if (tool.startsWith(\"shell:\")) return [\"Bash\"];\n if (tool === \"read\" || tool === \"edit\" || tool === \"shell\")\n return CLAUDE_PROFILE_TOOLS[tool];\n return [];\n }),\n ),\n ];\n const commands = profile.allowedTools\n .filter((tool) => tool.startsWith(\"shell:\"))\n .map((tool) => tool.slice(6));\n const script = [\n `const tools = ${JSON.stringify(tools)};`,\n `const commands = ${JSON.stringify(commands)};`,\n `const shell = ${profile.allowedTools.includes(\"shell\")};`,\n `const servers = ${JSON.stringify(Object.keys(settings.mcpServers ?? {}))};`,\n `const excluded = ${JSON.stringify(Object.entries(settings.mcpServers ?? {}).flatMap(([server, entry]) => (entry.tools?.exclude ?? []).map((tool) => `mcp__${server}__${tool}`)))};`,\n CLAUDE_PROFILE_HOOK,\n ].join(\"\\n\");\n return [\n ...instructions,\n `--tools=${tools.join(\",\")}`,\n \"--permission-mode\",\n \"dontAsk\",\n \"--setting-sources\",\n \"\",\n \"--strict-mcp-config\",\n \"--settings\",\n JSON.stringify({\n hooks: {\n PreToolUse: [\n {\n matcher: \"*\",\n hooks: [\n {\n type: \"command\",\n command: `node -e ${quote(script)} || exit 2`,\n },\n ],\n },\n ],\n },\n }),\n ];\n}\n"]}
@@ -1,9 +1,13 @@
1
+ import { claudeProfileArguments } from "./claude-profile.js";
1
2
  import { claudeUserMessage } from "./claude-input.js";
2
3
  import { claudeMcpArguments } from "./claude-mcp.js";
3
4
  import { validateContinuation } from "../continuation.js";
4
5
  export function claudeRequest(settings, input) {
5
6
  validateContinuation(input);
6
- const args = [...claudeMcpArguments(settings.mcpServers)];
7
+ const args = [
8
+ ...claudeMcpArguments(settings.mcpServers),
9
+ ...claudeProfileArguments(settings),
10
+ ];
7
11
  if (!input.interactive)
8
12
  args.push("--print", "--verbose", "--output-format", "stream-json");
9
13
  if (!input.interactive && input.liveInput)
@@ -14,9 +18,11 @@ export function claudeRequest(settings, input) {
14
18
  args.push("--model", settings.model.name);
15
19
  if (settings.model?.reasoning)
16
20
  args.push("--effort", settings.model.reasoning);
17
- if (settings.permissions)
21
+ if (settings.profile?.allowedTools === undefined && settings.permissions)
18
22
  args.push("--permission-mode", settings.permissions);
19
- if (!settings.permissions && !input.interactive)
23
+ if (settings.profile?.allowedTools === undefined &&
24
+ !settings.permissions &&
25
+ !input.interactive)
20
26
  args.push("--dangerously-skip-permissions");
21
27
  if (input.continuation) {
22
28
  args.push("--resume", input.continuation.id);
@@ -1 +1 @@
1
- {"version":3,"file":"claude-request.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,UAAU,aAAa,CAC3B,QAA+B,EAC/B,KAAiB;IAEjB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAa,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,CAAC,WAAW;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS;QACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe;QAChD,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,WAAW;QACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW;QAC7C,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,IAAI;QACf,GAAG,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;YACvB,CAAC,CAAC;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS;oBACpB,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aACvB,CAAC;KACP,CAAC;AACJ,CAAC","sourcesContent":["import type { AgentInput } from \"../../../domain/agent.types.ts\";\nimport type { Command } from \"../../../domain/command.types.ts\";\nimport { claudeUserMessage } from \"./claude-input.ts\";\nimport { claudeMcpArguments } from \"./claude-mcp.ts\";\nimport { validateContinuation } from \"../continuation.ts\";\nimport type { Bound, ClaudeSettings } from \"../settings.types.ts\";\n\nexport function claudeRequest(\n settings: Bound<ClaudeSettings>,\n input: AgentInput,\n): Command {\n validateContinuation(input);\n const args: string[] = [...claudeMcpArguments(settings.mcpServers)];\n if (!input.interactive)\n args.push(\"--print\", \"--verbose\", \"--output-format\", \"stream-json\");\n if (!input.interactive && input.liveInput)\n args.push(\"--input-format\", \"stream-json\", \"--replay-user-messages\");\n if (!input.interactive && settings.partialMessages)\n args.push(\"--include-partial-messages\");\n if (settings.model) args.push(\"--model\", settings.model.name);\n if (settings.model?.reasoning)\n args.push(\"--effort\", settings.model.reasoning);\n if (settings.permissions)\n args.push(\"--permission-mode\", settings.permissions);\n if (!settings.permissions && !input.interactive)\n args.push(\"--dangerously-skip-permissions\");\n if (input.continuation) {\n args.push(\"--resume\", input.continuation.id);\n if (input.continuation.fork) args.push(\"--fork-session\");\n }\n if (input.interactive && input.text !== undefined)\n args.push(\"--\", input.text);\n return {\n executable: \"claude\",\n arguments: args,\n ...(input.interactive\n ? { interactive: true }\n : {\n stdin: input.liveInput\n ? claudeUserMessage(input.text ?? \"\")\n : (input.text ?? \"\"),\n }),\n };\n}\n"]}
1
+ {"version":3,"file":"claude-request.js","sourceRoot":"","sources":["../../../../src/adapters/agents/claude/claude-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,UAAU,aAAa,CAC3B,QAA+B,EAC/B,KAAiB;IAEjB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAa;QACrB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC1C,GAAG,sBAAsB,CAAC,QAAQ,CAAC;KACpC,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,WAAW;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACtE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS;QACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe;QAChD,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1C,IAAI,QAAQ,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW;QACtE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvD,IACE,QAAQ,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS;QAC5C,CAAC,QAAQ,CAAC,WAAW;QACrB,CAAC,KAAK,CAAC,WAAW;QAElB,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,IAAI;QACf,GAAG,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;YACvB,CAAC,CAAC;gBACE,KAAK,EAAE,KAAK,CAAC,SAAS;oBACpB,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aACvB,CAAC;KACP,CAAC;AACJ,CAAC","sourcesContent":["import type { AgentInput } from \"../../../domain/agent.types.ts\";\nimport type { Command } from \"../../../domain/command.types.ts\";\nimport { claudeProfileArguments } from \"./claude-profile.ts\";\nimport { claudeUserMessage } from \"./claude-input.ts\";\nimport { claudeMcpArguments } from \"./claude-mcp.ts\";\nimport { validateContinuation } from \"../continuation.ts\";\nimport type { Bound, ClaudeSettings } from \"../settings.types.ts\";\n\nexport function claudeRequest(\n settings: Bound<ClaudeSettings>,\n input: AgentInput,\n): Command {\n validateContinuation(input);\n const args: string[] = [\n ...claudeMcpArguments(settings.mcpServers),\n ...claudeProfileArguments(settings),\n ];\n if (!input.interactive)\n args.push(\"--print\", \"--verbose\", \"--output-format\", \"stream-json\");\n if (!input.interactive && input.liveInput)\n args.push(\"--input-format\", \"stream-json\", \"--replay-user-messages\");\n if (!input.interactive && settings.partialMessages)\n args.push(\"--include-partial-messages\");\n if (settings.model) args.push(\"--model\", settings.model.name);\n if (settings.model?.reasoning)\n args.push(\"--effort\", settings.model.reasoning);\n if (settings.profile?.allowedTools === undefined && settings.permissions)\n args.push(\"--permission-mode\", settings.permissions);\n if (\n settings.profile?.allowedTools === undefined &&\n !settings.permissions &&\n !input.interactive\n )\n args.push(\"--dangerously-skip-permissions\");\n if (input.continuation) {\n args.push(\"--resume\", input.continuation.id);\n if (input.continuation.fork) args.push(\"--fork-session\");\n }\n if (input.interactive && input.text !== undefined)\n args.push(\"--\", input.text);\n return {\n executable: \"claude\",\n arguments: args,\n ...(input.interactive\n ? { interactive: true }\n : {\n stdin: input.liveInput\n ? claudeUserMessage(input.text ?? \"\")\n : (input.text ?? \"\"),\n }),\n };\n}\n"]}