@elie-laloum/outpost 11.1.2 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +2 -1
  3. package/SECURITY.md +5 -1
  4. package/dist/adapters/agents/antigravity/antigravity-adapter.js +9 -0
  5. package/dist/adapters/agents/antigravity/antigravity-adapter.js.map +1 -1
  6. package/dist/adapters/agents/antigravity/antigravity-hook-plan.d.ts +3 -0
  7. package/dist/adapters/agents/antigravity/antigravity-hook-plan.js +39 -0
  8. package/dist/adapters/agents/antigravity/antigravity-hook-plan.js.map +1 -0
  9. package/dist/adapters/agents/antigravity/antigravity-hooks.constants.d.ts +3 -0
  10. package/dist/adapters/agents/antigravity/antigravity-hooks.constants.js +394 -0
  11. package/dist/adapters/agents/antigravity/antigravity-hooks.constants.js.map +1 -0
  12. package/dist/adapters/agents/antigravity/antigravity-hooks.d.ts +2 -0
  13. package/dist/adapters/agents/antigravity/antigravity-hooks.js +6 -0
  14. package/dist/adapters/agents/antigravity/antigravity-hooks.js.map +1 -0
  15. package/dist/adapters/agents/antigravity/antigravity-hooks.types.d.ts +114 -0
  16. package/dist/adapters/agents/antigravity/antigravity-hooks.types.js +2 -0
  17. package/dist/adapters/agents/antigravity/antigravity-hooks.types.js.map +1 -0
  18. package/dist/adapters/agents/antigravity/antigravity.types.d.ts +1 -0
  19. package/dist/adapters/agents/antigravity/antigravity.types.js.map +1 -1
  20. package/dist/adapters/agents/authentication.js +1 -0
  21. package/dist/adapters/agents/authentication.js.map +1 -1
  22. package/dist/adapters/agents/claude/claude-adapter.js +15 -0
  23. package/dist/adapters/agents/claude/claude-adapter.js.map +1 -1
  24. package/dist/adapters/agents/claude/claude-hook-plan.constants.d.ts +1 -0
  25. package/dist/adapters/agents/claude/claude-hook-plan.constants.js +20 -0
  26. package/dist/adapters/agents/claude/claude-hook-plan.constants.js.map +1 -0
  27. package/dist/adapters/agents/claude/claude-hook-plan.d.ts +4 -0
  28. package/dist/adapters/agents/claude/claude-hook-plan.js +60 -0
  29. package/dist/adapters/agents/claude/claude-hook-plan.js.map +1 -0
  30. package/dist/adapters/agents/claude/claude-hooks.constants.d.ts +3 -0
  31. package/dist/adapters/agents/claude/claude-hooks.constants.js +2968 -0
  32. package/dist/adapters/agents/claude/claude-hooks.constants.js.map +1 -0
  33. package/dist/adapters/agents/claude/claude-hooks.d.ts +2 -0
  34. package/dist/adapters/agents/claude/claude-hooks.js +6 -0
  35. package/dist/adapters/agents/claude/claude-hooks.js.map +1 -0
  36. package/dist/adapters/agents/claude/claude-hooks.types.d.ts +900 -0
  37. package/dist/adapters/agents/claude/claude-hooks.types.js +2 -0
  38. package/dist/adapters/agents/claude/claude-hooks.types.js.map +1 -0
  39. package/dist/adapters/agents/claude/claude-profile.d.ts +1 -0
  40. package/dist/adapters/agents/claude/claude-profile.js +23 -11
  41. package/dist/adapters/agents/claude/claude-profile.js.map +1 -1
  42. package/dist/adapters/agents/codex/codex-adapter.js +17 -1
  43. package/dist/adapters/agents/codex/codex-adapter.js.map +1 -1
  44. package/dist/adapters/agents/codex/codex-authentication.js +1 -0
  45. package/dist/adapters/agents/codex/codex-authentication.js.map +1 -1
  46. package/dist/adapters/agents/codex/codex-conversations.constants.d.ts +1 -0
  47. package/dist/adapters/agents/codex/codex-conversations.constants.js +2 -0
  48. package/dist/adapters/agents/codex/codex-conversations.constants.js.map +1 -0
  49. package/dist/adapters/agents/codex/codex-conversations.js +8 -5
  50. package/dist/adapters/agents/codex/codex-conversations.js.map +1 -1
  51. package/dist/adapters/agents/codex/codex-hook-plan.d.ts +3 -0
  52. package/dist/adapters/agents/codex/codex-hook-plan.js +72 -0
  53. package/dist/adapters/agents/codex/codex-hook-plan.js.map +1 -0
  54. package/dist/adapters/agents/codex/codex-hooks.constants.d.ts +3 -0
  55. package/dist/adapters/agents/codex/codex-hooks.constants.js +942 -0
  56. package/dist/adapters/agents/codex/codex-hooks.constants.js.map +1 -0
  57. package/dist/adapters/agents/codex/codex-hooks.d.ts +2 -0
  58. package/dist/adapters/agents/codex/codex-hooks.js +6 -0
  59. package/dist/adapters/agents/codex/codex-hooks.js.map +1 -0
  60. package/dist/adapters/agents/codex/codex-hooks.types.d.ts +255 -0
  61. package/dist/adapters/agents/codex/codex-hooks.types.js +2 -0
  62. package/dist/adapters/agents/codex/codex-hooks.types.js.map +1 -0
  63. package/dist/adapters/agents/codex/codex-provider.js +2 -2
  64. package/dist/adapters/agents/codex/codex-provider.js.map +1 -1
  65. package/dist/adapters/agents/copilot/copilot-adapter.js +14 -0
  66. package/dist/adapters/agents/copilot/copilot-adapter.js.map +1 -1
  67. package/dist/adapters/agents/copilot/copilot-hook-plan.d.ts +3 -0
  68. package/dist/adapters/agents/copilot/copilot-hook-plan.js +26 -0
  69. package/dist/adapters/agents/copilot/copilot-hook-plan.js.map +1 -0
  70. package/dist/adapters/agents/copilot/copilot-hooks.constants.d.ts +3 -0
  71. package/dist/adapters/agents/copilot/copilot-hooks.constants.js +528 -0
  72. package/dist/adapters/agents/copilot/copilot-hooks.constants.js.map +1 -0
  73. package/dist/adapters/agents/copilot/copilot-hooks.d.ts +2 -0
  74. package/dist/adapters/agents/copilot/copilot-hooks.js +6 -0
  75. package/dist/adapters/agents/copilot/copilot-hooks.js.map +1 -0
  76. package/dist/adapters/agents/copilot/copilot-hooks.types.d.ts +166 -0
  77. package/dist/adapters/agents/copilot/copilot-hooks.types.js +2 -0
  78. package/dist/adapters/agents/copilot/copilot-hooks.types.js.map +1 -0
  79. package/dist/adapters/agents/copilot/copilot.types.d.ts +1 -0
  80. package/dist/adapters/agents/copilot/copilot.types.js.map +1 -1
  81. package/dist/adapters/agents/hook-groups.d.ts +2 -0
  82. package/dist/adapters/agents/hook-groups.js +17 -0
  83. package/dist/adapters/agents/hook-groups.js.map +1 -0
  84. package/dist/adapters/agents/kimi/kimi-adapter.js +16 -1
  85. package/dist/adapters/agents/kimi/kimi-adapter.js.map +1 -1
  86. package/dist/adapters/agents/kimi/kimi-hook-plan.d.ts +3 -0
  87. package/dist/adapters/agents/kimi/kimi-hook-plan.js +33 -0
  88. package/dist/adapters/agents/kimi/kimi-hook-plan.js.map +1 -0
  89. package/dist/adapters/agents/kimi/kimi-hooks.constants.d.ts +3 -0
  90. package/dist/adapters/agents/kimi/kimi-hooks.constants.js +747 -0
  91. package/dist/adapters/agents/kimi/kimi-hooks.constants.js.map +1 -0
  92. package/dist/adapters/agents/kimi/kimi-hooks.d.ts +2 -0
  93. package/dist/adapters/agents/kimi/kimi-hooks.js +6 -0
  94. package/dist/adapters/agents/kimi/kimi-hooks.js.map +1 -0
  95. package/dist/adapters/agents/kimi/kimi-hooks.types.d.ts +226 -0
  96. package/dist/adapters/agents/kimi/kimi-hooks.types.js +2 -0
  97. package/dist/adapters/agents/kimi/kimi-hooks.types.js.map +1 -0
  98. package/dist/adapters/agents/kimi/kimi-request.js +2 -0
  99. package/dist/adapters/agents/kimi/kimi-request.js.map +1 -1
  100. package/dist/adapters/agents/kimi/kimi.constants.d.ts +1 -0
  101. package/dist/adapters/agents/kimi/kimi.constants.js +1 -0
  102. package/dist/adapters/agents/kimi/kimi.constants.js.map +1 -1
  103. package/dist/adapters/agents/kimi/kimi.types.d.ts +1 -0
  104. package/dist/adapters/agents/kimi/kimi.types.js.map +1 -1
  105. package/dist/adapters/agents/native-hooks.d.ts +4 -0
  106. package/dist/adapters/agents/native-hooks.js +63 -0
  107. package/dist/adapters/agents/native-hooks.js.map +1 -0
  108. package/dist/adapters/agents/native-hooks.types.d.ts +22 -0
  109. package/dist/adapters/agents/native-hooks.types.js +2 -0
  110. package/dist/adapters/agents/native-hooks.types.js.map +1 -0
  111. package/dist/adapters/agents/settings.types.d.ts +2 -0
  112. package/dist/adapters/agents/settings.types.js.map +1 -1
  113. package/dist/adapters/decisions/system-one-provider.constants.d.ts +1 -1
  114. package/dist/adapters/decisions/system-one-provider.constants.js +1 -1
  115. package/dist/adapters/decisions/system-one-provider.constants.js.map +1 -1
  116. package/dist/adapters/decisions/system-one-provider.js +8 -21
  117. package/dist/adapters/decisions/system-one-provider.js.map +1 -1
  118. package/dist/adapters/models/anthropic-model-provider.constants.d.ts +1 -0
  119. package/dist/adapters/models/anthropic-model-provider.constants.js +4 -0
  120. package/dist/adapters/models/anthropic-model-provider.constants.js.map +1 -1
  121. package/dist/adapters/models/anthropic-model-provider.js +7 -1
  122. package/dist/adapters/models/anthropic-model-provider.js.map +1 -1
  123. package/dist/adapters/models/http-failure.d.ts +3 -0
  124. package/dist/adapters/models/http-failure.js +43 -0
  125. package/dist/adapters/models/http-failure.js.map +1 -0
  126. package/dist/adapters/models/http-provider.js +14 -20
  127. package/dist/adapters/models/http-provider.js.map +1 -1
  128. package/dist/adapters/models/model-protocol.types.d.ts +1 -0
  129. package/dist/adapters/models/model-protocol.types.js.map +1 -1
  130. package/dist/adapters/models/model.constants.d.ts +2 -0
  131. package/dist/adapters/models/model.constants.js +17 -0
  132. package/dist/adapters/models/model.constants.js.map +1 -1
  133. package/dist/adapters/models/openai-chat-stream.js +3 -1
  134. package/dist/adapters/models/openai-chat-stream.js.map +1 -1
  135. package/dist/adapters/models/openai-responses.js +4 -0
  136. package/dist/adapters/models/openai-responses.js.map +1 -1
  137. package/dist/adapters/secrets/aws.js +5 -4
  138. package/dist/adapters/secrets/aws.js.map +1 -1
  139. package/dist/adapters/secrets/azure.constants.d.ts +1 -0
  140. package/dist/adapters/secrets/azure.constants.js +2 -0
  141. package/dist/adapters/secrets/azure.constants.js.map +1 -0
  142. package/dist/adapters/secrets/azure.js +2 -1
  143. package/dist/adapters/secrets/azure.js.map +1 -1
  144. package/dist/adapters/secrets/gcp.constants.d.ts +1 -0
  145. package/dist/adapters/secrets/gcp.constants.js +2 -0
  146. package/dist/adapters/secrets/gcp.constants.js.map +1 -0
  147. package/dist/adapters/secrets/gcp.js +11 -9
  148. package/dist/adapters/secrets/gcp.js.map +1 -1
  149. package/dist/adapters/secrets/infisical.js +3 -2
  150. package/dist/adapters/secrets/infisical.js.map +1 -1
  151. package/dist/adapters/secrets/onepassword.constants.d.ts +1 -0
  152. package/dist/adapters/secrets/onepassword.constants.js +2 -0
  153. package/dist/adapters/secrets/onepassword.constants.js.map +1 -0
  154. package/dist/adapters/secrets/onepassword.js +2 -1
  155. package/dist/adapters/secrets/onepassword.js.map +1 -1
  156. package/dist/adapters/secrets/secret-source.js +3 -1
  157. package/dist/adapters/secrets/secret-source.js.map +1 -1
  158. package/dist/adapters/secrets/vault-response.js +5 -5
  159. package/dist/adapters/secrets/vault-response.js.map +1 -1
  160. package/dist/adapters/secrets/vault.js +4 -3
  161. package/dist/adapters/secrets/vault.js.map +1 -1
  162. package/dist/adapters/testing/scripted-agent.d.ts +3 -1
  163. package/dist/adapters/testing/scripted-agent.js +3 -1
  164. package/dist/adapters/testing/scripted-agent.js.map +1 -1
  165. package/dist/adapters/tools/edit-tools.js +3 -3
  166. package/dist/adapters/tools/edit-tools.js.map +1 -1
  167. package/dist/adapters/tools/git-tools.js +16 -1
  168. package/dist/adapters/tools/git-tools.js.map +1 -1
  169. package/dist/adapters/tools/mcp-launcher.constants.d.ts +1 -1
  170. package/dist/adapters/tools/mcp-launcher.constants.js +29 -7
  171. package/dist/adapters/tools/mcp-launcher.constants.js.map +1 -1
  172. package/dist/adapters/tools/mcp-resources.js +5 -1
  173. package/dist/adapters/tools/mcp-resources.js.map +1 -1
  174. package/dist/adapters/tools/mcp.constants.d.ts +0 -6
  175. package/dist/adapters/tools/mcp.constants.js +0 -6
  176. package/dist/adapters/tools/mcp.constants.js.map +1 -1
  177. package/dist/adapters/tools/mcp.js +1 -0
  178. package/dist/adapters/tools/mcp.js.map +1 -1
  179. package/dist/adapters/tools/sandbox-files.constants.d.ts +1 -0
  180. package/dist/adapters/tools/sandbox-files.constants.js +17 -0
  181. package/dist/adapters/tools/sandbox-files.constants.js.map +1 -0
  182. package/dist/adapters/tools/sandbox-files.d.ts +1 -0
  183. package/dist/adapters/tools/sandbox-files.js +14 -1
  184. package/dist/adapters/tools/sandbox-files.js.map +1 -1
  185. package/dist/adapters/tools/tools.constants.js +1 -0
  186. package/dist/adapters/tools/tools.constants.js.map +1 -1
  187. package/dist/adapters/triggers/github-webhook.js +14 -11
  188. package/dist/adapters/triggers/github-webhook.js.map +1 -1
  189. package/dist/adapters/triggers/gitlab-webhook.js +16 -13
  190. package/dist/adapters/triggers/gitlab-webhook.js.map +1 -1
  191. package/dist/adapters/triggers/slack-request.js +10 -7
  192. package/dist/adapters/triggers/slack-request.js.map +1 -1
  193. package/dist/adapters/triggers/standard-webhook.js +10 -7
  194. package/dist/adapters/triggers/standard-webhook.js.map +1 -1
  195. package/dist/application/agent-authentication.js +4 -1
  196. package/dist/application/agent-authentication.js.map +1 -1
  197. package/dist/application/agent-turn.js +20 -5
  198. package/dist/application/agent-turn.js.map +1 -1
  199. package/dist/application/cli-hooks.constants.d.ts +2 -0
  200. package/dist/application/cli-hooks.constants.js +69 -0
  201. package/dist/application/cli-hooks.constants.js.map +1 -0
  202. package/dist/application/cli-hooks.d.ts +3 -0
  203. package/dist/application/cli-hooks.js +168 -0
  204. package/dist/application/cli-hooks.js.map +1 -0
  205. package/dist/application/cli-steering.js +33 -2
  206. package/dist/application/cli-steering.js.map +1 -1
  207. package/dist/application/custom-turn.js +10 -1
  208. package/dist/application/custom-turn.js.map +1 -1
  209. package/dist/application/diagnostic-probe.d.ts +1 -1
  210. package/dist/application/diagnostic-probe.js +7 -3
  211. package/dist/application/diagnostic-probe.js.map +1 -1
  212. package/dist/application/dispatch-observation.js +4 -0
  213. package/dist/application/dispatch-observation.js.map +1 -1
  214. package/dist/application/doctor-agent.d.ts +1 -1
  215. package/dist/application/doctor-agent.js +2 -2
  216. package/dist/application/doctor-agent.js.map +1 -1
  217. package/dist/application/doctor-deadline.d.ts +1 -0
  218. package/dist/application/doctor-deadline.js +10 -0
  219. package/dist/application/doctor-deadline.js.map +1 -0
  220. package/dist/application/doctor-image.js +9 -7
  221. package/dist/application/doctor-image.js.map +1 -1
  222. package/dist/application/doctor-sandbox.js +4 -4
  223. package/dist/application/doctor-sandbox.js.map +1 -1
  224. package/dist/application/doctor.constants.d.ts +2 -0
  225. package/dist/application/doctor.constants.js +2 -0
  226. package/dist/application/doctor.constants.js.map +1 -1
  227. package/dist/application/doctor.js +12 -8
  228. package/dist/application/doctor.js.map +1 -1
  229. package/dist/application/doctor.types.d.ts +2 -0
  230. package/dist/application/doctor.types.js.map +1 -1
  231. package/dist/application/file-sandbox.js +49 -11
  232. package/dist/application/file-sandbox.js.map +1 -1
  233. package/dist/application/harness-context.js +4 -2
  234. package/dist/application/harness-context.js.map +1 -1
  235. package/dist/application/harness-hook-transforms.d.ts +8 -0
  236. package/dist/application/harness-hook-transforms.js +115 -0
  237. package/dist/application/harness-hook-transforms.js.map +1 -0
  238. package/dist/application/harness-hooks.d.ts +5 -3
  239. package/dist/application/harness-hooks.js +37 -50
  240. package/dist/application/harness-hooks.js.map +1 -1
  241. package/dist/application/harness-loop.d.ts +2 -1
  242. package/dist/application/harness-loop.js +95 -21
  243. package/dist/application/harness-loop.js.map +1 -1
  244. package/dist/application/harness-subagent.d.ts +1 -1
  245. package/dist/application/harness-subagent.js +63 -12
  246. package/dist/application/harness-subagent.js.map +1 -1
  247. package/dist/application/harness.types.d.ts +3 -0
  248. package/dist/application/harness.types.js.map +1 -1
  249. package/dist/application/hook-invocation.d.ts +4 -0
  250. package/dist/application/hook-invocation.js +59 -0
  251. package/dist/application/hook-invocation.js.map +1 -0
  252. package/dist/application/queue-worker.js +51 -9
  253. package/dist/application/queue-worker.js.map +1 -1
  254. package/dist/application/queue-worker.types.d.ts +1 -0
  255. package/dist/application/queue-worker.types.js.map +1 -1
  256. package/dist/application/recipes/native-schemas.constants.js +1439 -218
  257. package/dist/application/recipes/native-schemas.constants.js.map +1 -1
  258. package/dist/application/recovery-inspection.js +4 -1
  259. package/dist/application/recovery-inspection.js.map +1 -1
  260. package/dist/application/remote-download.js +15 -5
  261. package/dist/application/remote-download.js.map +1 -1
  262. package/dist/application/remote-paths.d.ts +1 -0
  263. package/dist/application/remote-paths.js +7 -0
  264. package/dist/application/remote-paths.js.map +1 -0
  265. package/dist/application/remote-validation.js +40 -9
  266. package/dist/application/remote-validation.js.map +1 -1
  267. package/dist/application/remote-workspace.js +17 -2
  268. package/dist/application/remote-workspace.js.map +1 -1
  269. package/dist/application/repetition-watchdog.js +3 -1
  270. package/dist/application/repetition-watchdog.js.map +1 -1
  271. package/dist/application/sandbox-attach.js +38 -9
  272. package/dist/application/sandbox-attach.js.map +1 -1
  273. package/dist/application/sandbox-dispatch.js +7 -1
  274. package/dist/application/sandbox-dispatch.js.map +1 -1
  275. package/dist/application/schedules.js +2 -0
  276. package/dist/application/schedules.js.map +1 -1
  277. package/dist/application/secrets.js +4 -0
  278. package/dist/application/secrets.js.map +1 -1
  279. package/dist/application/tool-execution.js +28 -8
  280. package/dist/application/tool-execution.js.map +1 -1
  281. package/dist/application/transport-retention.js +3 -3
  282. package/dist/application/transport-retention.js.map +1 -1
  283. package/dist/application/workspace-fingerprint.d.ts +1 -0
  284. package/dist/application/workspace-fingerprint.js +19 -4
  285. package/dist/application/workspace-fingerprint.js.map +1 -1
  286. package/dist/cli/doctor-command.js +12 -2
  287. package/dist/cli/doctor-command.js.map +1 -1
  288. package/dist/cli/image.js +2 -0
  289. package/dist/cli/image.js.map +1 -1
  290. package/dist/cli/main.constants.d.ts +14 -2
  291. package/dist/cli/main.constants.js +27 -1
  292. package/dist/cli/main.constants.js.map +1 -1
  293. package/dist/cli/project-settings.js +7 -1
  294. package/dist/cli/project-settings.js.map +1 -1
  295. package/dist/cli/recipe-yaml.js +8 -0
  296. package/dist/cli/recipe-yaml.js.map +1 -1
  297. package/dist/cli/recovery-command.js +3 -0
  298. package/dist/cli/recovery-command.js.map +1 -1
  299. package/dist/cli/recovery-unlock-command.d.ts +2 -0
  300. package/dist/cli/recovery-unlock-command.js +19 -0
  301. package/dist/cli/recovery-unlock-command.js.map +1 -0
  302. package/dist/cli/scaffold-files.js +4 -1
  303. package/dist/cli/scaffold-files.js.map +1 -1
  304. package/dist/cli/scaffold-validation.js +3 -0
  305. package/dist/cli/scaffold-validation.js.map +1 -1
  306. package/dist/cli/scaffold.js +2 -0
  307. package/dist/cli/scaffold.js.map +1 -1
  308. package/dist/domain/agent-hook.types.d.ts +28 -0
  309. package/dist/domain/agent-hook.types.js +2 -0
  310. package/dist/domain/agent-hook.types.js.map +1 -0
  311. package/dist/domain/agent-profile-hooks.d.ts +2 -0
  312. package/dist/domain/agent-profile-hooks.js +52 -0
  313. package/dist/domain/agent-profile-hooks.js.map +1 -0
  314. package/dist/domain/agent-profile-permissions.js +11 -1
  315. package/dist/domain/agent-profile-permissions.js.map +1 -1
  316. package/dist/domain/agent-profile.constants.d.ts +1 -0
  317. package/dist/domain/agent-profile.constants.js +9 -0
  318. package/dist/domain/agent-profile.constants.js.map +1 -1
  319. package/dist/domain/agent-profile.js +6 -1
  320. package/dist/domain/agent-profile.js.map +1 -1
  321. package/dist/domain/agent-profile.types.d.ts +11 -0
  322. package/dist/domain/agent-profile.types.js.map +1 -1
  323. package/dist/domain/agent.types.d.ts +2 -0
  324. package/dist/domain/agent.types.js.map +1 -1
  325. package/dist/domain/container-image.d.ts +1 -0
  326. package/dist/domain/container-image.js +8 -0
  327. package/dist/domain/container-image.js.map +1 -0
  328. package/dist/domain/context.constants.d.ts +1 -0
  329. package/dist/domain/context.constants.js +1 -0
  330. package/dist/domain/context.constants.js.map +1 -1
  331. package/dist/domain/context.js +6 -1
  332. package/dist/domain/context.js.map +1 -1
  333. package/dist/domain/egress.js +6 -1
  334. package/dist/domain/egress.js.map +1 -1
  335. package/dist/domain/glob.js +1 -1
  336. package/dist/domain/glob.js.map +1 -1
  337. package/dist/domain/harness.js +4 -1
  338. package/dist/domain/harness.js.map +1 -1
  339. package/dist/domain/hook-command.d.ts +2 -0
  340. package/dist/domain/hook-command.js +26 -0
  341. package/dist/domain/hook-command.js.map +1 -0
  342. package/dist/domain/hook-command.types.d.ts +7 -0
  343. package/dist/domain/hook-command.types.js +2 -0
  344. package/dist/domain/hook-command.types.js.map +1 -0
  345. package/dist/domain/hook-decision.d.ts +2 -0
  346. package/dist/domain/hook-decision.js +38 -0
  347. package/dist/domain/hook-decision.js.map +1 -0
  348. package/dist/domain/hook.constants.d.ts +3 -0
  349. package/dist/domain/hook.constants.js +31 -1
  350. package/dist/domain/hook.constants.js.map +1 -1
  351. package/dist/domain/hook.js +49 -5
  352. package/dist/domain/hook.js.map +1 -1
  353. package/dist/domain/hook.types.d.ts +82 -5
  354. package/dist/domain/hook.types.js.map +1 -1
  355. package/dist/domain/mcp-server.constants.d.ts +6 -0
  356. package/dist/domain/mcp-server.constants.js +6 -0
  357. package/dist/domain/mcp-server.constants.js.map +1 -1
  358. package/dist/domain/mcp-server.js +1 -0
  359. package/dist/domain/mcp-server.js.map +1 -1
  360. package/dist/domain/permissions.types.d.ts +1 -0
  361. package/dist/domain/permissions.types.js.map +1 -1
  362. package/dist/domain/pricing.js +4 -2
  363. package/dist/domain/pricing.js.map +1 -1
  364. package/dist/domain/redaction.js +6 -3
  365. package/dist/domain/redaction.js.map +1 -1
  366. package/dist/domain/secret-fault.d.ts +4 -0
  367. package/dist/domain/secret-fault.js +11 -0
  368. package/dist/domain/secret-fault.js.map +1 -0
  369. package/dist/domain/secrets.js +3 -2
  370. package/dist/domain/secrets.js.map +1 -1
  371. package/dist/domain/steering.js +2 -0
  372. package/dist/domain/steering.js.map +1 -1
  373. package/dist/domain/steering.types.d.ts +1 -1
  374. package/dist/domain/steering.types.js.map +1 -1
  375. package/dist/domain/transport.js +5 -1
  376. package/dist/domain/transport.js.map +1 -1
  377. package/dist/domain/trigger-payload.d.ts +4 -0
  378. package/dist/domain/trigger-payload.js +15 -0
  379. package/dist/domain/trigger-payload.js.map +1 -0
  380. package/dist/domain/workflow/checkpoint.js +19 -2
  381. package/dist/domain/workflow/checkpoint.js.map +1 -1
  382. package/dist/domain/workflow/retry.constants.d.ts +1 -0
  383. package/dist/domain/workflow/retry.constants.js +1 -0
  384. package/dist/domain/workflow/retry.constants.js.map +1 -1
  385. package/dist/domain/workflow/retry.js +6 -2
  386. package/dist/domain/workflow/retry.js.map +1 -1
  387. package/dist/domain/workflow/task-runner.js +5 -3
  388. package/dist/domain/workflow/task-runner.js.map +1 -1
  389. package/dist/domain/workflow/workflow-state.js +2 -1
  390. package/dist/domain/workflow/workflow-state.js.map +1 -1
  391. package/dist/domain/workflow.types.d.ts +1 -0
  392. package/dist/domain/workflow.types.js.map +1 -1
  393. package/dist/index.d.ts +15 -1
  394. package/dist/index.js +6 -0
  395. package/dist/index.js.map +1 -1
  396. package/dist/infrastructure/conversations/transcript-store.js +32 -5
  397. package/dist/infrastructure/conversations/transcript-store.js.map +1 -1
  398. package/dist/infrastructure/files.d.ts +1 -0
  399. package/dist/infrastructure/files.js +8 -4
  400. package/dist/infrastructure/files.js.map +1 -1
  401. package/dist/infrastructure/git/integration-candidate.js +3 -2
  402. package/dist/infrastructure/git/integration-candidate.js.map +1 -1
  403. package/dist/infrastructure/git/lock-recovery.d.ts +3 -0
  404. package/dist/infrastructure/git/lock-recovery.js +58 -0
  405. package/dist/infrastructure/git/lock-recovery.js.map +1 -0
  406. package/dist/infrastructure/git/lock-recovery.types.d.ts +11 -0
  407. package/dist/infrastructure/git/lock-recovery.types.js +2 -0
  408. package/dist/infrastructure/git/lock-recovery.types.js.map +1 -0
  409. package/dist/infrastructure/git/managed-worktree.js +5 -8
  410. package/dist/infrastructure/git/managed-worktree.js.map +1 -1
  411. package/dist/infrastructure/git/verification-command.js +35 -30
  412. package/dist/infrastructure/git/verification-command.js.map +1 -1
  413. package/dist/infrastructure/git/workspace-lease.js +12 -5
  414. package/dist/infrastructure/git/workspace-lease.js.map +1 -1
  415. package/dist/infrastructure/hook-configuration.constants.d.ts +1 -0
  416. package/dist/infrastructure/hook-configuration.constants.js +59 -0
  417. package/dist/infrastructure/hook-configuration.constants.js.map +1 -0
  418. package/dist/infrastructure/hook-configuration.d.ts +3 -0
  419. package/dist/infrastructure/hook-configuration.js +16 -0
  420. package/dist/infrastructure/hook-configuration.js.map +1 -0
  421. package/dist/infrastructure/hook-configuration.types.d.ts +14 -0
  422. package/dist/infrastructure/hook-configuration.types.js +2 -0
  423. package/dist/infrastructure/hook-configuration.types.js.map +1 -0
  424. package/dist/infrastructure/http-transport.constants.d.ts +1 -0
  425. package/dist/infrastructure/http-transport.constants.js +14 -0
  426. package/dist/infrastructure/http-transport.constants.js.map +1 -0
  427. package/dist/infrastructure/http-transport.d.ts +7 -0
  428. package/dist/infrastructure/http-transport.js +19 -0
  429. package/dist/infrastructure/http-transport.js.map +1 -0
  430. package/dist/infrastructure/input-failure.d.ts +4 -0
  431. package/dist/infrastructure/input-failure.js +14 -0
  432. package/dist/infrastructure/input-failure.js.map +1 -0
  433. package/dist/infrastructure/inspection-file.d.ts +1 -0
  434. package/dist/infrastructure/inspection-file.js +8 -2
  435. package/dist/infrastructure/inspection-file.js.map +1 -1
  436. package/dist/infrastructure/local-transport.js +16 -11
  437. package/dist/infrastructure/local-transport.js.map +1 -1
  438. package/dist/infrastructure/process.constants.d.ts +1 -0
  439. package/dist/infrastructure/process.constants.js +1 -0
  440. package/dist/infrastructure/process.constants.js.map +1 -1
  441. package/dist/infrastructure/process.d.ts +1 -0
  442. package/dist/infrastructure/process.js +48 -8
  443. package/dist/infrastructure/process.js.map +1 -1
  444. package/dist/infrastructure/reservation-ledger.d.ts +2 -0
  445. package/dist/infrastructure/reservation-ledger.js +84 -0
  446. package/dist/infrastructure/reservation-ledger.js.map +1 -0
  447. package/dist/infrastructure/reservation-recovery.d.ts +4 -0
  448. package/dist/infrastructure/reservation-recovery.js +28 -0
  449. package/dist/infrastructure/reservation-recovery.js.map +1 -0
  450. package/dist/infrastructure/s3-tombstones.d.ts +3 -0
  451. package/dist/infrastructure/s3-tombstones.js +46 -0
  452. package/dist/infrastructure/s3-tombstones.js.map +1 -0
  453. package/dist/infrastructure/s3-tombstones.types.d.ts +6 -0
  454. package/dist/infrastructure/s3-tombstones.types.js +2 -0
  455. package/dist/infrastructure/s3-tombstones.types.js.map +1 -0
  456. package/dist/infrastructure/s3-transport.d.ts +2 -0
  457. package/dist/infrastructure/s3-transport.js +4 -2
  458. package/dist/infrastructure/s3-transport.js.map +1 -1
  459. package/dist/infrastructure/sse.js +6 -3
  460. package/dist/infrastructure/sse.js.map +1 -1
  461. package/dist/infrastructure/task-queue-bullmq-connection.d.ts +3 -0
  462. package/dist/infrastructure/task-queue-bullmq-connection.js +32 -0
  463. package/dist/infrastructure/task-queue-bullmq-connection.js.map +1 -0
  464. package/dist/infrastructure/task-queue-bullmq-connection.types.d.ts +8 -0
  465. package/dist/infrastructure/task-queue-bullmq-connection.types.js +2 -0
  466. package/dist/infrastructure/task-queue-bullmq-connection.types.js.map +1 -0
  467. package/dist/infrastructure/task-queue-bullmq-resources.js +21 -15
  468. package/dist/infrastructure/task-queue-bullmq-resources.js.map +1 -1
  469. package/dist/infrastructure/task-queue-bullmq-state.d.ts +1 -0
  470. package/dist/infrastructure/task-queue-bullmq-state.js +1 -0
  471. package/dist/infrastructure/task-queue-bullmq-state.js.map +1 -1
  472. package/dist/infrastructure/task-queue-bullmq.constants.d.ts +2 -1
  473. package/dist/infrastructure/task-queue-bullmq.constants.js +2 -1
  474. package/dist/infrastructure/task-queue-bullmq.constants.js.map +1 -1
  475. package/dist/infrastructure/task-queue-bullmq.js +10 -1
  476. package/dist/infrastructure/task-queue-bullmq.js.map +1 -1
  477. package/dist/infrastructure/task-queue.js +13 -4
  478. package/dist/infrastructure/task-queue.js.map +1 -1
  479. package/dist/infrastructure/transfer-copy.d.ts +1 -0
  480. package/dist/infrastructure/transfer-copy.js +16 -1
  481. package/dist/infrastructure/transfer-copy.js.map +1 -1
  482. package/dist/infrastructure/transport-archive.d.ts +3 -3
  483. package/dist/infrastructure/transport-archive.js +71 -48
  484. package/dist/infrastructure/transport-archive.js.map +1 -1
  485. package/dist/infrastructure/transport-archive.types.d.ts +3 -0
  486. package/dist/infrastructure/transport-archive.types.js.map +1 -1
  487. package/dist/infrastructure/transport-checkpoint.js +14 -4
  488. package/dist/infrastructure/transport-checkpoint.js.map +1 -1
  489. package/dist/infrastructure/transport-envelope.d.ts +1 -0
  490. package/dist/infrastructure/transport-envelope.js +22 -5
  491. package/dist/infrastructure/transport-envelope.js.map +1 -1
  492. package/dist/infrastructure/transport-reservations.constants.d.ts +2 -0
  493. package/dist/infrastructure/transport-reservations.constants.js +3 -0
  494. package/dist/infrastructure/transport-reservations.constants.js.map +1 -0
  495. package/dist/infrastructure/transport-reservations.d.ts +1 -2
  496. package/dist/infrastructure/transport-reservations.js +18 -22
  497. package/dist/infrastructure/transport-reservations.js.map +1 -1
  498. package/dist/infrastructure/transport-reservations.types.d.ts +23 -2
  499. package/dist/infrastructure/transport-reservations.types.js.map +1 -1
  500. package/dist/infrastructure/trigger-server.js +12 -9
  501. package/dist/infrastructure/trigger-server.js.map +1 -1
  502. package/dist/infrastructure/trigger-server.types.d.ts +1 -1
  503. package/dist/infrastructure/trigger-server.types.js.map +1 -1
  504. package/dist/infrastructure/workflow-checkpoint.constants.d.ts +1 -0
  505. package/dist/infrastructure/workflow-checkpoint.constants.js +1 -0
  506. package/dist/infrastructure/workflow-checkpoint.constants.js.map +1 -1
  507. package/dist/infrastructure/workspace-lock.constants.d.ts +2 -1
  508. package/dist/infrastructure/workspace-lock.constants.js +2 -1
  509. package/dist/infrastructure/workspace-lock.constants.js.map +1 -1
  510. package/dist/infrastructure/workspace-lock.js +48 -10
  511. package/dist/infrastructure/workspace-lock.js.map +1 -1
  512. package/dist/providers/cloud-cache.js +14 -9
  513. package/dist/providers/cloud-cache.js.map +1 -1
  514. package/dist/providers/cloud-cache.types.d.ts +1 -0
  515. package/dist/providers/cloud-cache.types.js.map +1 -1
  516. package/dist/providers/cloud-files.js +3 -4
  517. package/dist/providers/cloud-files.js.map +1 -1
  518. package/dist/providers/cloud-input.constants.d.ts +2 -2
  519. package/dist/providers/cloud-input.constants.js +2 -1
  520. package/dist/providers/cloud-input.constants.js.map +1 -1
  521. package/dist/providers/cloud-input.d.ts +2 -2
  522. package/dist/providers/cloud-input.js +14 -3
  523. package/dist/providers/cloud-input.js.map +1 -1
  524. package/dist/providers/container-command.js +30 -5
  525. package/dist/providers/container-command.js.map +1 -1
  526. package/dist/providers/container-egress.constants.d.ts +7 -0
  527. package/dist/providers/container-egress.constants.js +8 -0
  528. package/dist/providers/container-egress.constants.js.map +1 -0
  529. package/dist/providers/container-egress.d.ts +7 -0
  530. package/dist/providers/container-egress.js +101 -0
  531. package/dist/providers/container-egress.js.map +1 -0
  532. package/dist/providers/container-files.js +10 -11
  533. package/dist/providers/container-files.js.map +1 -1
  534. package/dist/providers/container-mounts.js +3 -0
  535. package/dist/providers/container-mounts.js.map +1 -1
  536. package/dist/providers/container-network.js +16 -1
  537. package/dist/providers/container-network.js.map +1 -1
  538. package/dist/providers/container-plan.js +7 -10
  539. package/dist/providers/container-plan.js.map +1 -1
  540. package/dist/providers/container-recovery.js +8 -3
  541. package/dist/providers/container-recovery.js.map +1 -1
  542. package/dist/providers/container.js +36 -5
  543. package/dist/providers/container.js.map +1 -1
  544. package/dist/providers/container.types.d.ts +1 -0
  545. package/dist/providers/container.types.js.map +1 -1
  546. package/dist/providers/daytona-command.constants.js +4 -1
  547. package/dist/providers/daytona-command.constants.js.map +1 -1
  548. package/dist/providers/daytona-command.js +39 -16
  549. package/dist/providers/daytona-command.js.map +1 -1
  550. package/dist/providers/daytona-files.js +5 -5
  551. package/dist/providers/daytona-files.js.map +1 -1
  552. package/dist/providers/daytona-output.js +11 -3
  553. package/dist/providers/daytona-output.js.map +1 -1
  554. package/dist/providers/daytona.js +11 -9
  555. package/dist/providers/daytona.js.map +1 -1
  556. package/dist/providers/egress/address.d.ts +3 -0
  557. package/dist/providers/egress/address.js +26 -0
  558. package/dist/providers/egress/address.js.map +1 -0
  559. package/dist/providers/egress/egress.constants.d.ts +22 -0
  560. package/dist/providers/egress/egress.constants.js +23 -0
  561. package/dist/providers/egress/egress.constants.js.map +1 -0
  562. package/dist/providers/egress/egress.types.d.ts +11 -0
  563. package/dist/providers/egress/egress.types.js +2 -0
  564. package/dist/providers/egress/egress.types.js.map +1 -0
  565. package/dist/providers/egress/firewall.d.ts +3 -0
  566. package/dist/providers/egress/firewall.js +29 -0
  567. package/dist/providers/egress/firewall.js.map +1 -0
  568. package/dist/providers/egress/main.d.ts +1 -0
  569. package/dist/providers/egress/main.js +90 -0
  570. package/dist/providers/egress/main.js.map +1 -0
  571. package/dist/providers/egress/policy.d.ts +5 -0
  572. package/dist/providers/egress/policy.js +54 -0
  573. package/dist/providers/egress/policy.js.map +1 -0
  574. package/dist/providers/egress/proxy.d.ts +2 -0
  575. package/dist/providers/egress/proxy.js +129 -0
  576. package/dist/providers/egress/proxy.js.map +1 -0
  577. package/dist/providers/egress/tls-hello.d.ts +1 -0
  578. package/dist/providers/egress/tls-hello.js +75 -0
  579. package/dist/providers/egress/tls-hello.js.map +1 -0
  580. package/dist/providers/firecracker-command.js +12 -6
  581. package/dist/providers/firecracker-command.js.map +1 -1
  582. package/dist/providers/local-files.d.ts +2 -0
  583. package/dist/providers/local-files.js +24 -0
  584. package/dist/providers/local-files.js.map +1 -0
  585. package/dist/providers/local.js +2 -20
  586. package/dist/providers/local.js.map +1 -1
  587. package/dist/providers/vercel-command.js +33 -9
  588. package/dist/providers/vercel-command.js.map +1 -1
  589. package/dist/providers/vercel.js +11 -9
  590. package/dist/providers/vercel.js.map +1 -1
  591. package/dist/testing.d.ts +1 -1
  592. package/dist/testing.js +1 -1
  593. package/dist/testing.js.map +1 -1
  594. package/package.json +2 -2
  595. package/recipe-configuration.schema.json +2164 -35
  596. package/recipe.schema.json +2512 -404
@@ -7643,6 +7643,19 @@ export const nativeRecipeSchemas = {
7643
7643
  leaseMs: {
7644
7644
  type: "number",
7645
7645
  },
7646
+ onError: {
7647
+ type: "object",
7648
+ properties: {
7649
+ $ref: {
7650
+ type: "string",
7651
+ minLength: 1,
7652
+ },
7653
+ },
7654
+ required: ["$ref"],
7655
+ additionalProperties: false,
7656
+ component: "callback",
7657
+ contract: "service.worker.onError",
7658
+ },
7646
7659
  },
7647
7660
  required: ["queue", "worker", "handlers"],
7648
7661
  additionalProperties: false,
@@ -9647,6 +9660,9 @@ export const nativeRecipeSchemas = {
9647
9660
  maxDelayMs: {
9648
9661
  type: "number",
9649
9662
  },
9663
+ maxRetryAfterMs: {
9664
+ type: "number",
9665
+ },
9650
9666
  jitter: {
9651
9667
  anyOf: [
9652
9668
  {
@@ -15288,49 +15304,192 @@ export const nativeRecipeSchemas = {
15288
15304
  additionalProperties: false,
15289
15305
  },
15290
15306
  "hook.custom": {
15291
- type: "object",
15292
- properties: {
15293
- on: {
15294
- anyOf: [
15295
- {
15296
- const: "stop",
15297
- },
15298
- {
15299
- const: "session-start",
15300
- },
15301
- {
15302
- const: "before-model",
15307
+ anyOf: [
15308
+ {
15309
+ type: "object",
15310
+ properties: {
15311
+ on: {
15312
+ anyOf: [
15313
+ {
15314
+ const: "model-error",
15315
+ },
15316
+ {
15317
+ const: "stop",
15318
+ },
15319
+ {
15320
+ const: "session-start",
15321
+ },
15322
+ {
15323
+ const: "before-model",
15324
+ },
15325
+ {
15326
+ const: "after-model",
15327
+ },
15328
+ {
15329
+ const: "before-tool",
15330
+ },
15331
+ {
15332
+ const: "after-tool",
15333
+ },
15334
+ {
15335
+ const: "before-prompt",
15336
+ },
15337
+ {
15338
+ const: "before-compaction",
15339
+ },
15340
+ {
15341
+ const: "after-compaction",
15342
+ },
15343
+ {
15344
+ const: "before-subagent",
15345
+ },
15346
+ {
15347
+ const: "after-subagent",
15348
+ },
15349
+ {
15350
+ const: "run-end",
15351
+ },
15352
+ ],
15303
15353
  },
15304
- {
15305
- const: "after-model",
15354
+ name: {
15355
+ type: "string",
15306
15356
  },
15307
- {
15308
- const: "before-tool",
15357
+ timeoutMs: {
15358
+ type: "number",
15309
15359
  },
15310
- {
15311
- const: "after-tool",
15360
+ command: false,
15361
+ run: {
15362
+ type: "object",
15363
+ properties: {
15364
+ $ref: {
15365
+ type: "string",
15366
+ minLength: 1,
15367
+ },
15368
+ },
15369
+ required: ["$ref"],
15370
+ additionalProperties: false,
15371
+ component: "callback",
15372
+ contract: "hook.custom.run",
15312
15373
  },
15313
- ],
15314
- },
15315
- name: {
15316
- type: "string",
15374
+ },
15375
+ required: ["on", "run"],
15376
+ additionalProperties: false,
15317
15377
  },
15318
- run: {
15378
+ {
15319
15379
  type: "object",
15320
15380
  properties: {
15321
- $ref: {
15381
+ on: {
15382
+ anyOf: [
15383
+ {
15384
+ const: "model-error",
15385
+ },
15386
+ {
15387
+ const: "stop",
15388
+ },
15389
+ {
15390
+ const: "session-start",
15391
+ },
15392
+ {
15393
+ const: "before-model",
15394
+ },
15395
+ {
15396
+ const: "after-model",
15397
+ },
15398
+ {
15399
+ const: "before-tool",
15400
+ },
15401
+ {
15402
+ const: "after-tool",
15403
+ },
15404
+ {
15405
+ const: "before-prompt",
15406
+ },
15407
+ {
15408
+ const: "before-compaction",
15409
+ },
15410
+ {
15411
+ const: "after-compaction",
15412
+ },
15413
+ {
15414
+ const: "before-subagent",
15415
+ },
15416
+ {
15417
+ const: "after-subagent",
15418
+ },
15419
+ {
15420
+ const: "run-end",
15421
+ },
15422
+ ],
15423
+ },
15424
+ name: {
15322
15425
  type: "string",
15323
- minLength: 1,
15324
15426
  },
15427
+ timeoutMs: {
15428
+ type: "number",
15429
+ },
15430
+ command: {
15431
+ type: "object",
15432
+ properties: {
15433
+ executable: {
15434
+ type: "string",
15435
+ },
15436
+ arguments: {
15437
+ type: "array",
15438
+ items: {
15439
+ type: "string",
15440
+ },
15441
+ },
15442
+ directory: {
15443
+ type: "string",
15444
+ },
15445
+ variables: {
15446
+ anyOf: [
15447
+ {
15448
+ type: "object",
15449
+ properties: {
15450
+ $ref: {
15451
+ type: "string",
15452
+ minLength: 1,
15453
+ },
15454
+ },
15455
+ required: ["$ref"],
15456
+ additionalProperties: false,
15457
+ component: "variables",
15458
+ },
15459
+ {
15460
+ type: "object",
15461
+ additionalProperties: {
15462
+ anyOf: [
15463
+ {
15464
+ type: "string",
15465
+ },
15466
+ {
15467
+ type: "object",
15468
+ properties: {
15469
+ env: {
15470
+ type: "string",
15471
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
15472
+ },
15473
+ },
15474
+ required: ["env"],
15475
+ additionalProperties: false,
15476
+ secret: true,
15477
+ },
15478
+ ],
15479
+ },
15480
+ },
15481
+ ],
15482
+ },
15483
+ },
15484
+ required: ["executable"],
15485
+ additionalProperties: false,
15486
+ },
15487
+ run: false,
15325
15488
  },
15326
- required: ["$ref"],
15489
+ required: ["on", "command"],
15327
15490
  additionalProperties: false,
15328
- component: "callback",
15329
- contract: "hook.custom.run",
15330
15491
  },
15331
- },
15332
- required: ["on", "run"],
15333
- additionalProperties: false,
15492
+ ],
15334
15493
  },
15335
15494
  "skill.custom": {
15336
15495
  type: "object",
@@ -16471,6 +16630,9 @@ export const nativeRecipeSchemas = {
16471
16630
  },
16472
16631
  ],
16473
16632
  },
16633
+ egressImage: {
16634
+ type: "string",
16635
+ },
16474
16636
  repositoryMode: {
16475
16637
  anyOf: [
16476
16638
  {
@@ -16690,6 +16852,9 @@ export const nativeRecipeSchemas = {
16690
16852
  },
16691
16853
  ],
16692
16854
  },
16855
+ egressImage: {
16856
+ type: "string",
16857
+ },
16693
16858
  repositoryMode: {
16694
16859
  anyOf: [
16695
16860
  {
@@ -16928,6 +17093,9 @@ export const nativeRecipeSchemas = {
16928
17093
  additionalProperties: false,
16929
17094
  component: "transport",
16930
17095
  },
17096
+ timeoutMs: {
17097
+ type: "number",
17098
+ },
16931
17099
  name: {
16932
17100
  type: "string",
16933
17101
  },
@@ -21439,6 +21607,9 @@ export const nativeRecipeSchemas = {
21439
21607
  additionalProperties: false,
21440
21608
  component: "transport",
21441
21609
  },
21610
+ timeoutMs: {
21611
+ type: "number",
21612
+ },
21442
21613
  name: {
21443
21614
  type: "string",
21444
21615
  },
@@ -22133,72 +22304,313 @@ export const nativeRecipeSchemas = {
22133
22304
  "profile.portable": {
22134
22305
  type: "object",
22135
22306
  properties: {
22136
- instructions: {
22137
- type: "string",
22138
- },
22139
- allowedTools: {
22140
- type: "array",
22141
- items: {
22142
- anyOf: [
22143
- {
22144
- const: "read",
22145
- },
22146
- {
22147
- const: "edit",
22148
- },
22149
- {
22150
- const: "shell",
22151
- },
22152
- {
22153
- type: "string",
22154
- },
22155
- ],
22156
- },
22157
- },
22158
- mcpServers: {
22307
+ hooks: {
22159
22308
  type: "object",
22160
- properties: {},
22161
- additionalProperties: {
22162
- anyOf: [
22163
- {
22309
+ properties: {
22310
+ claude: {
22311
+ type: "array",
22312
+ items: {
22164
22313
  type: "object",
22165
22314
  properties: {
22166
- command: {
22315
+ kind: {
22316
+ const: "native-hook",
22317
+ },
22318
+ agent: {
22319
+ const: "claude",
22320
+ },
22321
+ on: {
22167
22322
  type: "string",
22168
22323
  },
22169
- arguments: {
22170
- type: "array",
22171
- items: {
22172
- type: "string",
22173
- },
22324
+ name: {
22325
+ type: "string",
22174
22326
  },
22175
- environment: {
22176
- type: "object",
22177
- properties: {},
22178
- additionalProperties: {
22179
- type: "string",
22180
- },
22327
+ timeoutMs: {
22328
+ type: "number",
22181
22329
  },
22182
- variables: {
22183
- type: "array",
22184
- items: {
22185
- type: "string",
22186
- },
22330
+ command: {
22331
+ $ref: "#/$defs/option0",
22187
22332
  },
22188
- tools: {
22333
+ matcher: {
22334
+ type: "string",
22335
+ },
22336
+ run: {
22189
22337
  type: "object",
22190
22338
  properties: {
22191
- include: {
22192
- type: "array",
22193
- items: {
22194
- type: "string",
22195
- },
22339
+ $ref: {
22340
+ type: "string",
22341
+ minLength: 1,
22196
22342
  },
22197
- exclude: {
22198
- type: "array",
22199
- items: {
22200
- type: "string",
22201
- },
22343
+ },
22344
+ required: ["$ref"],
22345
+ additionalProperties: false,
22346
+ component: "callback",
22347
+ contract: "profile.portable.hooks.claude.*.run",
22348
+ },
22349
+ },
22350
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
22351
+ additionalProperties: false,
22352
+ },
22353
+ },
22354
+ codex: {
22355
+ type: "array",
22356
+ items: {
22357
+ type: "object",
22358
+ properties: {
22359
+ kind: {
22360
+ const: "native-hook",
22361
+ },
22362
+ agent: {
22363
+ const: "codex",
22364
+ },
22365
+ on: {
22366
+ type: "string",
22367
+ },
22368
+ name: {
22369
+ type: "string",
22370
+ },
22371
+ timeoutMs: {
22372
+ type: "number",
22373
+ },
22374
+ command: {
22375
+ $ref: "#/$defs/option0",
22376
+ },
22377
+ matcher: {
22378
+ type: "string",
22379
+ },
22380
+ run: {
22381
+ type: "object",
22382
+ properties: {
22383
+ $ref: {
22384
+ type: "string",
22385
+ minLength: 1,
22386
+ },
22387
+ },
22388
+ required: ["$ref"],
22389
+ additionalProperties: false,
22390
+ component: "callback",
22391
+ contract: "profile.portable.hooks.codex.*.run",
22392
+ },
22393
+ },
22394
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
22395
+ additionalProperties: false,
22396
+ },
22397
+ },
22398
+ copilot: {
22399
+ type: "array",
22400
+ items: {
22401
+ type: "object",
22402
+ properties: {
22403
+ kind: {
22404
+ const: "native-hook",
22405
+ },
22406
+ agent: {
22407
+ const: "copilot",
22408
+ },
22409
+ on: {
22410
+ type: "string",
22411
+ },
22412
+ name: {
22413
+ type: "string",
22414
+ },
22415
+ timeoutMs: {
22416
+ type: "number",
22417
+ },
22418
+ command: {
22419
+ $ref: "#/$defs/option0",
22420
+ },
22421
+ matcher: {
22422
+ type: "string",
22423
+ },
22424
+ run: {
22425
+ type: "object",
22426
+ properties: {
22427
+ $ref: {
22428
+ type: "string",
22429
+ minLength: 1,
22430
+ },
22431
+ },
22432
+ required: ["$ref"],
22433
+ additionalProperties: false,
22434
+ component: "callback",
22435
+ contract: "profile.portable.hooks.copilot.*.run",
22436
+ },
22437
+ },
22438
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
22439
+ additionalProperties: false,
22440
+ },
22441
+ },
22442
+ kimi: {
22443
+ type: "array",
22444
+ items: {
22445
+ type: "object",
22446
+ properties: {
22447
+ kind: {
22448
+ const: "native-hook",
22449
+ },
22450
+ agent: {
22451
+ const: "kimi",
22452
+ },
22453
+ on: {
22454
+ type: "string",
22455
+ },
22456
+ name: {
22457
+ type: "string",
22458
+ },
22459
+ timeoutMs: {
22460
+ type: "number",
22461
+ },
22462
+ command: {
22463
+ $ref: "#/$defs/option0",
22464
+ },
22465
+ matcher: {
22466
+ type: "string",
22467
+ },
22468
+ run: {
22469
+ type: "object",
22470
+ properties: {
22471
+ $ref: {
22472
+ type: "string",
22473
+ minLength: 1,
22474
+ },
22475
+ },
22476
+ required: ["$ref"],
22477
+ additionalProperties: false,
22478
+ component: "callback",
22479
+ contract: "profile.portable.hooks.kimi.*.run",
22480
+ },
22481
+ },
22482
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
22483
+ additionalProperties: false,
22484
+ },
22485
+ },
22486
+ antigravity: {
22487
+ type: "array",
22488
+ items: {
22489
+ type: "object",
22490
+ properties: {
22491
+ kind: {
22492
+ const: "native-hook",
22493
+ },
22494
+ agent: {
22495
+ const: "antigravity",
22496
+ },
22497
+ on: {
22498
+ type: "string",
22499
+ },
22500
+ name: {
22501
+ type: "string",
22502
+ },
22503
+ timeoutMs: {
22504
+ type: "number",
22505
+ },
22506
+ command: {
22507
+ $ref: "#/$defs/option0",
22508
+ },
22509
+ matcher: {
22510
+ type: "string",
22511
+ },
22512
+ run: {
22513
+ type: "object",
22514
+ properties: {
22515
+ $ref: {
22516
+ type: "string",
22517
+ minLength: 1,
22518
+ },
22519
+ },
22520
+ required: ["$ref"],
22521
+ additionalProperties: false,
22522
+ component: "callback",
22523
+ contract: "profile.portable.hooks.antigravity.*.run",
22524
+ },
22525
+ },
22526
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
22527
+ additionalProperties: false,
22528
+ },
22529
+ },
22530
+ outpost: {
22531
+ type: "array",
22532
+ items: {
22533
+ type: "object",
22534
+ properties: {
22535
+ $ref: {
22536
+ type: "string",
22537
+ minLength: 1,
22538
+ },
22539
+ },
22540
+ required: ["$ref"],
22541
+ additionalProperties: false,
22542
+ component: "hook",
22543
+ },
22544
+ },
22545
+ },
22546
+ additionalProperties: false,
22547
+ },
22548
+ instructions: {
22549
+ type: "string",
22550
+ },
22551
+ allowedTools: {
22552
+ type: "array",
22553
+ items: {
22554
+ anyOf: [
22555
+ {
22556
+ const: "read",
22557
+ },
22558
+ {
22559
+ const: "edit",
22560
+ },
22561
+ {
22562
+ const: "shell",
22563
+ },
22564
+ {
22565
+ type: "string",
22566
+ },
22567
+ ],
22568
+ },
22569
+ },
22570
+ mcpServers: {
22571
+ type: "object",
22572
+ properties: {},
22573
+ additionalProperties: {
22574
+ anyOf: [
22575
+ {
22576
+ type: "object",
22577
+ properties: {
22578
+ command: {
22579
+ type: "string",
22580
+ },
22581
+ arguments: {
22582
+ type: "array",
22583
+ items: {
22584
+ type: "string",
22585
+ },
22586
+ },
22587
+ environment: {
22588
+ type: "object",
22589
+ properties: {},
22590
+ additionalProperties: {
22591
+ type: "string",
22592
+ },
22593
+ },
22594
+ variables: {
22595
+ type: "array",
22596
+ items: {
22597
+ type: "string",
22598
+ },
22599
+ },
22600
+ tools: {
22601
+ type: "object",
22602
+ properties: {
22603
+ include: {
22604
+ type: "array",
22605
+ items: {
22606
+ type: "string",
22607
+ },
22608
+ },
22609
+ exclude: {
22610
+ type: "array",
22611
+ items: {
22612
+ type: "string",
22613
+ },
22202
22614
  },
22203
22615
  },
22204
22616
  additionalProperties: false,
@@ -22282,6 +22694,65 @@ export const nativeRecipeSchemas = {
22282
22694
  },
22283
22695
  },
22284
22696
  additionalProperties: false,
22697
+ $defs: {
22698
+ option0: {
22699
+ type: "object",
22700
+ properties: {
22701
+ executable: {
22702
+ type: "string",
22703
+ },
22704
+ arguments: {
22705
+ type: "array",
22706
+ items: {
22707
+ type: "string",
22708
+ },
22709
+ },
22710
+ directory: {
22711
+ type: "string",
22712
+ },
22713
+ variables: {
22714
+ anyOf: [
22715
+ {
22716
+ type: "object",
22717
+ properties: {
22718
+ $ref: {
22719
+ type: "string",
22720
+ minLength: 1,
22721
+ },
22722
+ },
22723
+ required: ["$ref"],
22724
+ additionalProperties: false,
22725
+ component: "variables",
22726
+ },
22727
+ {
22728
+ type: "object",
22729
+ additionalProperties: {
22730
+ anyOf: [
22731
+ {
22732
+ type: "string",
22733
+ },
22734
+ {
22735
+ type: "object",
22736
+ properties: {
22737
+ env: {
22738
+ type: "string",
22739
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
22740
+ },
22741
+ },
22742
+ required: ["env"],
22743
+ additionalProperties: false,
22744
+ secret: true,
22745
+ },
22746
+ ],
22747
+ },
22748
+ },
22749
+ ],
22750
+ },
22751
+ },
22752
+ required: ["executable"],
22753
+ additionalProperties: false,
22754
+ },
22755
+ },
22285
22756
  },
22286
22757
  "secretSource.vault": {
22287
22758
  type: "object",
@@ -24792,42 +25263,177 @@ export const nativeRecipeSchemas = {
24792
25263
  minLength: 1,
24793
25264
  },
24794
25265
  },
24795
- required: ["$ref"],
24796
- additionalProperties: false,
24797
- component: "object",
24798
- },
24799
- output: {
24800
- type: "object",
24801
- properties: {
24802
- $ref: {
24803
- type: "string",
24804
- minLength: 1,
24805
- },
25266
+ required: ["$ref"],
25267
+ additionalProperties: false,
25268
+ component: "object",
25269
+ },
25270
+ output: {
25271
+ type: "object",
25272
+ properties: {
25273
+ $ref: {
25274
+ type: "string",
25275
+ minLength: 1,
25276
+ },
25277
+ },
25278
+ required: ["$ref"],
25279
+ additionalProperties: false,
25280
+ component: "object",
25281
+ },
25282
+ error: {
25283
+ type: "object",
25284
+ properties: {
25285
+ $ref: {
25286
+ type: "string",
25287
+ minLength: 1,
25288
+ },
25289
+ },
25290
+ required: ["$ref"],
25291
+ additionalProperties: false,
25292
+ component: "object",
25293
+ },
25294
+ },
25295
+ additionalProperties: false,
25296
+ },
25297
+ },
25298
+ },
25299
+ "harness.codex": {
25300
+ type: "object",
25301
+ properties: {
25302
+ hooks: {
25303
+ type: "array",
25304
+ items: {
25305
+ type: "object",
25306
+ properties: {
25307
+ kind: {
25308
+ const: "native-hook",
25309
+ },
25310
+ agent: {
25311
+ const: "codex",
25312
+ },
25313
+ on: {
25314
+ anyOf: [
25315
+ {
25316
+ const: "SessionStart",
25317
+ },
25318
+ {
25319
+ const: "SessionEnd",
25320
+ },
25321
+ {
25322
+ const: "UserPromptSubmit",
25323
+ },
25324
+ {
25325
+ const: "PreToolUse",
25326
+ },
25327
+ {
25328
+ const: "PermissionRequest",
25329
+ },
25330
+ {
25331
+ const: "PostToolUse",
25332
+ },
25333
+ {
25334
+ const: "PreCompact",
25335
+ },
25336
+ {
25337
+ const: "PostCompact",
25338
+ },
25339
+ {
25340
+ const: "SubagentStart",
25341
+ },
25342
+ {
25343
+ const: "SubagentStop",
25344
+ },
25345
+ {
25346
+ const: "Stop",
25347
+ },
25348
+ {
25349
+ const: "Interrupt",
25350
+ },
25351
+ ],
25352
+ },
25353
+ name: {
25354
+ type: "string",
25355
+ },
25356
+ timeoutMs: {
25357
+ type: "number",
25358
+ },
25359
+ command: {
25360
+ type: "object",
25361
+ properties: {
25362
+ executable: {
25363
+ type: "string",
25364
+ },
25365
+ arguments: {
25366
+ type: "array",
25367
+ items: {
25368
+ type: "string",
25369
+ },
25370
+ },
25371
+ directory: {
25372
+ type: "string",
25373
+ },
25374
+ variables: {
25375
+ anyOf: [
25376
+ {
25377
+ type: "object",
25378
+ properties: {
25379
+ $ref: {
25380
+ type: "string",
25381
+ minLength: 1,
25382
+ },
25383
+ },
25384
+ required: ["$ref"],
25385
+ additionalProperties: false,
25386
+ component: "variables",
25387
+ },
25388
+ {
25389
+ type: "object",
25390
+ additionalProperties: {
25391
+ anyOf: [
25392
+ {
25393
+ type: "string",
25394
+ },
25395
+ {
25396
+ type: "object",
25397
+ properties: {
25398
+ env: {
25399
+ type: "string",
25400
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
25401
+ },
25402
+ },
25403
+ required: ["env"],
25404
+ additionalProperties: false,
25405
+ secret: true,
25406
+ },
25407
+ ],
25408
+ },
25409
+ },
25410
+ ],
25411
+ },
25412
+ },
25413
+ required: ["executable"],
25414
+ additionalProperties: false,
25415
+ },
25416
+ matcher: {
25417
+ type: "string",
24806
25418
  },
24807
- required: ["$ref"],
24808
- additionalProperties: false,
24809
- component: "object",
24810
- },
24811
- error: {
24812
- type: "object",
24813
- properties: {
24814
- $ref: {
24815
- type: "string",
24816
- minLength: 1,
25419
+ run: {
25420
+ type: "object",
25421
+ properties: {
25422
+ $ref: {
25423
+ type: "string",
25424
+ minLength: 1,
25425
+ },
24817
25426
  },
25427
+ required: ["$ref"],
25428
+ additionalProperties: false,
25429
+ component: "callback",
25430
+ contract: "harness.codex.hooks.*.run",
24818
25431
  },
24819
- required: ["$ref"],
24820
- additionalProperties: false,
24821
- component: "object",
24822
25432
  },
25433
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
25434
+ additionalProperties: false,
24823
25435
  },
24824
- additionalProperties: false,
24825
25436
  },
24826
- },
24827
- },
24828
- "harness.codex": {
24829
- type: "object",
24830
- properties: {
24831
25437
  modelProvider: {
24832
25438
  type: "object",
24833
25439
  properties: {
@@ -25036,132 +25642,330 @@ export const nativeRecipeSchemas = {
25036
25642
  type: "string",
25037
25643
  },
25038
25644
  },
25039
- environment: {
25040
- type: "object",
25041
- properties: {},
25042
- additionalProperties: {
25043
- type: "string",
25044
- },
25645
+ environment: {
25646
+ type: "object",
25647
+ properties: {},
25648
+ additionalProperties: {
25649
+ type: "string",
25650
+ },
25651
+ },
25652
+ variables: {
25653
+ type: "array",
25654
+ items: {
25655
+ type: "string",
25656
+ },
25657
+ },
25658
+ tools: {
25659
+ type: "object",
25660
+ properties: {
25661
+ include: {
25662
+ type: "array",
25663
+ items: {
25664
+ type: "string",
25665
+ },
25666
+ },
25667
+ exclude: {
25668
+ type: "array",
25669
+ items: {
25670
+ type: "string",
25671
+ },
25672
+ },
25673
+ },
25674
+ additionalProperties: false,
25675
+ },
25676
+ startupTimeoutMs: {
25677
+ type: "number",
25678
+ },
25679
+ },
25680
+ required: ["command"],
25681
+ additionalProperties: false,
25682
+ },
25683
+ {
25684
+ type: "object",
25685
+ properties: {
25686
+ url: {
25687
+ type: "string",
25688
+ },
25689
+ headers: {
25690
+ type: "object",
25691
+ properties: {},
25692
+ additionalProperties: {
25693
+ type: "string",
25694
+ },
25695
+ },
25696
+ bearerTokenVariable: {
25697
+ type: "string",
25698
+ },
25699
+ oauth: {
25700
+ anyOf: [
25701
+ {
25702
+ const: "login",
25703
+ },
25704
+ {
25705
+ type: "object",
25706
+ properties: {
25707
+ clientIdVariable: {
25708
+ type: "string",
25709
+ },
25710
+ clientSecretVariable: {
25711
+ type: "string",
25712
+ },
25713
+ scopes: {
25714
+ type: "array",
25715
+ items: {
25716
+ type: "string",
25717
+ },
25718
+ },
25719
+ },
25720
+ required: ["clientIdVariable", "clientSecretVariable"],
25721
+ additionalProperties: false,
25722
+ },
25723
+ ],
25724
+ },
25725
+ tools: {
25726
+ type: "object",
25727
+ properties: {
25728
+ include: {
25729
+ type: "array",
25730
+ items: {
25731
+ type: "string",
25732
+ },
25733
+ },
25734
+ exclude: {
25735
+ type: "array",
25736
+ items: {
25737
+ type: "string",
25738
+ },
25739
+ },
25740
+ },
25741
+ additionalProperties: false,
25742
+ },
25743
+ startupTimeoutMs: {
25744
+ type: "number",
25745
+ },
25746
+ },
25747
+ required: ["url"],
25748
+ additionalProperties: false,
25749
+ },
25750
+ ],
25751
+ },
25752
+ },
25753
+ profile: {
25754
+ type: "object",
25755
+ properties: {
25756
+ $ref: {
25757
+ type: "string",
25758
+ minLength: 1,
25759
+ },
25760
+ },
25761
+ required: ["$ref"],
25762
+ additionalProperties: false,
25763
+ component: "profile",
25764
+ },
25765
+ },
25766
+ additionalProperties: false,
25767
+ },
25768
+ "harness.claude": {
25769
+ type: "object",
25770
+ properties: {
25771
+ hooks: {
25772
+ type: "array",
25773
+ items: {
25774
+ type: "object",
25775
+ properties: {
25776
+ kind: {
25777
+ const: "native-hook",
25778
+ },
25779
+ agent: {
25780
+ const: "claude",
25781
+ },
25782
+ on: {
25783
+ anyOf: [
25784
+ {
25785
+ const: "SessionStart",
25786
+ },
25787
+ {
25788
+ const: "SessionEnd",
25789
+ },
25790
+ {
25791
+ const: "UserPromptSubmit",
25792
+ },
25793
+ {
25794
+ const: "PreToolUse",
25795
+ },
25796
+ {
25797
+ const: "PermissionRequest",
25798
+ },
25799
+ {
25800
+ const: "PostToolUse",
25801
+ },
25802
+ {
25803
+ const: "PreCompact",
25804
+ },
25805
+ {
25806
+ const: "PostCompact",
25807
+ },
25808
+ {
25809
+ const: "SubagentStart",
25810
+ },
25811
+ {
25812
+ const: "SubagentStop",
25813
+ },
25814
+ {
25815
+ const: "Stop",
25816
+ },
25817
+ {
25818
+ const: "Setup",
25819
+ },
25820
+ {
25821
+ const: "UserPromptExpansion",
25822
+ },
25823
+ {
25824
+ const: "PermissionDenied",
25825
+ },
25826
+ {
25827
+ const: "PostToolUseFailure",
25828
+ },
25829
+ {
25830
+ const: "PostToolBatch",
25831
+ },
25832
+ {
25833
+ const: "Notification",
25834
+ },
25835
+ {
25836
+ const: "MessageDisplay",
25837
+ },
25838
+ {
25839
+ const: "TaskCreated",
25840
+ },
25841
+ {
25842
+ const: "TaskCompleted",
25843
+ },
25844
+ {
25845
+ const: "StopFailure",
25846
+ },
25847
+ {
25848
+ const: "TeammateIdle",
25849
+ },
25850
+ {
25851
+ const: "InstructionsLoaded",
25852
+ },
25853
+ {
25854
+ const: "ConfigChange",
25855
+ },
25856
+ {
25857
+ const: "CwdChanged",
25858
+ },
25859
+ {
25860
+ const: "DirectoryAdded",
25861
+ },
25862
+ {
25863
+ const: "FileChanged",
25864
+ },
25865
+ {
25866
+ const: "WorktreeCreate",
25867
+ },
25868
+ {
25869
+ const: "WorktreeRemove",
25870
+ },
25871
+ {
25872
+ const: "PreModelSwitch",
25045
25873
  },
25046
- variables: {
25047
- type: "array",
25048
- items: {
25049
- type: "string",
25050
- },
25874
+ {
25875
+ const: "PostModelSwitch",
25051
25876
  },
25052
- tools: {
25053
- type: "object",
25054
- properties: {
25055
- include: {
25056
- type: "array",
25057
- items: {
25058
- type: "string",
25059
- },
25060
- },
25061
- exclude: {
25062
- type: "array",
25063
- items: {
25064
- type: "string",
25065
- },
25066
- },
25067
- },
25068
- additionalProperties: false,
25877
+ {
25878
+ const: "Elicitation",
25069
25879
  },
25070
- startupTimeoutMs: {
25071
- type: "number",
25880
+ {
25881
+ const: "ElicitationResult",
25072
25882
  },
25073
- },
25074
- required: ["command"],
25075
- additionalProperties: false,
25883
+ ],
25076
25884
  },
25077
- {
25885
+ name: {
25886
+ type: "string",
25887
+ },
25888
+ timeoutMs: {
25889
+ type: "number",
25890
+ },
25891
+ command: {
25078
25892
  type: "object",
25079
25893
  properties: {
25080
- url: {
25894
+ executable: {
25081
25895
  type: "string",
25082
25896
  },
25083
- headers: {
25084
- type: "object",
25085
- properties: {},
25086
- additionalProperties: {
25897
+ arguments: {
25898
+ type: "array",
25899
+ items: {
25087
25900
  type: "string",
25088
25901
  },
25089
25902
  },
25090
- bearerTokenVariable: {
25903
+ directory: {
25091
25904
  type: "string",
25092
25905
  },
25093
- oauth: {
25906
+ variables: {
25094
25907
  anyOf: [
25095
- {
25096
- const: "login",
25097
- },
25098
25908
  {
25099
25909
  type: "object",
25100
25910
  properties: {
25101
- clientIdVariable: {
25102
- type: "string",
25103
- },
25104
- clientSecretVariable: {
25911
+ $ref: {
25105
25912
  type: "string",
25106
- },
25107
- scopes: {
25108
- type: "array",
25109
- items: {
25110
- type: "string",
25111
- },
25913
+ minLength: 1,
25112
25914
  },
25113
25915
  },
25114
- required: ["clientIdVariable", "clientSecretVariable"],
25916
+ required: ["$ref"],
25115
25917
  additionalProperties: false,
25918
+ component: "variables",
25116
25919
  },
25117
- ],
25118
- },
25119
- tools: {
25120
- type: "object",
25121
- properties: {
25122
- include: {
25123
- type: "array",
25124
- items: {
25125
- type: "string",
25126
- },
25127
- },
25128
- exclude: {
25129
- type: "array",
25130
- items: {
25131
- type: "string",
25920
+ {
25921
+ type: "object",
25922
+ additionalProperties: {
25923
+ anyOf: [
25924
+ {
25925
+ type: "string",
25926
+ },
25927
+ {
25928
+ type: "object",
25929
+ properties: {
25930
+ env: {
25931
+ type: "string",
25932
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
25933
+ },
25934
+ },
25935
+ required: ["env"],
25936
+ additionalProperties: false,
25937
+ secret: true,
25938
+ },
25939
+ ],
25132
25940
  },
25133
25941
  },
25134
- },
25135
- additionalProperties: false,
25942
+ ],
25136
25943
  },
25137
- startupTimeoutMs: {
25138
- type: "number",
25944
+ },
25945
+ required: ["executable"],
25946
+ additionalProperties: false,
25947
+ },
25948
+ matcher: {
25949
+ type: "string",
25950
+ },
25951
+ run: {
25952
+ type: "object",
25953
+ properties: {
25954
+ $ref: {
25955
+ type: "string",
25956
+ minLength: 1,
25139
25957
  },
25140
25958
  },
25141
- required: ["url"],
25959
+ required: ["$ref"],
25142
25960
  additionalProperties: false,
25961
+ component: "callback",
25962
+ contract: "harness.claude.hooks.*.run",
25143
25963
  },
25144
- ],
25145
- },
25146
- },
25147
- profile: {
25148
- type: "object",
25149
- properties: {
25150
- $ref: {
25151
- type: "string",
25152
- minLength: 1,
25153
25964
  },
25965
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
25966
+ additionalProperties: false,
25154
25967
  },
25155
- required: ["$ref"],
25156
- additionalProperties: false,
25157
- component: "profile",
25158
25968
  },
25159
- },
25160
- additionalProperties: false,
25161
- },
25162
- "harness.claude": {
25163
- type: "object",
25164
- properties: {
25165
25969
  partialMessages: {
25166
25970
  anyOf: [
25167
25971
  {
@@ -25488,16 +26292,133 @@ export const nativeRecipeSchemas = {
25488
26292
  minLength: 1,
25489
26293
  },
25490
26294
  },
25491
- required: ["$ref"],
25492
- additionalProperties: false,
25493
- component: "profile",
26295
+ required: ["$ref"],
26296
+ additionalProperties: false,
26297
+ component: "profile",
26298
+ },
26299
+ },
26300
+ additionalProperties: false,
26301
+ },
26302
+ "harness.agy": {
26303
+ type: "object",
26304
+ properties: {
26305
+ hooks: {
26306
+ type: "array",
26307
+ items: {
26308
+ type: "object",
26309
+ properties: {
26310
+ kind: {
26311
+ const: "native-hook",
26312
+ },
26313
+ agent: {
26314
+ const: "antigravity",
26315
+ },
26316
+ on: {
26317
+ anyOf: [
26318
+ {
26319
+ const: "SessionStart",
26320
+ },
26321
+ {
26322
+ const: "PreToolUse",
26323
+ },
26324
+ {
26325
+ const: "PostToolUse",
26326
+ },
26327
+ {
26328
+ const: "Stop",
26329
+ },
26330
+ {
26331
+ const: "PreInvocation",
26332
+ },
26333
+ {
26334
+ const: "PostInvocation",
26335
+ },
26336
+ ],
26337
+ },
26338
+ name: {
26339
+ type: "string",
26340
+ },
26341
+ timeoutMs: {
26342
+ type: "number",
26343
+ },
26344
+ command: {
26345
+ type: "object",
26346
+ properties: {
26347
+ executable: {
26348
+ type: "string",
26349
+ },
26350
+ arguments: {
26351
+ type: "array",
26352
+ items: {
26353
+ type: "string",
26354
+ },
26355
+ },
26356
+ directory: {
26357
+ type: "string",
26358
+ },
26359
+ variables: {
26360
+ anyOf: [
26361
+ {
26362
+ type: "object",
26363
+ properties: {
26364
+ $ref: {
26365
+ type: "string",
26366
+ minLength: 1,
26367
+ },
26368
+ },
26369
+ required: ["$ref"],
26370
+ additionalProperties: false,
26371
+ component: "variables",
26372
+ },
26373
+ {
26374
+ type: "object",
26375
+ additionalProperties: {
26376
+ anyOf: [
26377
+ {
26378
+ type: "string",
26379
+ },
26380
+ {
26381
+ type: "object",
26382
+ properties: {
26383
+ env: {
26384
+ type: "string",
26385
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
26386
+ },
26387
+ },
26388
+ required: ["env"],
26389
+ additionalProperties: false,
26390
+ secret: true,
26391
+ },
26392
+ ],
26393
+ },
26394
+ },
26395
+ ],
26396
+ },
26397
+ },
26398
+ required: ["executable"],
26399
+ additionalProperties: false,
26400
+ },
26401
+ matcher: {
26402
+ type: "string",
26403
+ },
26404
+ run: {
26405
+ type: "object",
26406
+ properties: {
26407
+ $ref: {
26408
+ type: "string",
26409
+ minLength: 1,
26410
+ },
26411
+ },
26412
+ required: ["$ref"],
26413
+ additionalProperties: false,
26414
+ component: "callback",
26415
+ contract: "harness.agy.hooks.*.run",
26416
+ },
26417
+ },
26418
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
26419
+ additionalProperties: false,
26420
+ },
25494
26421
  },
25495
- },
25496
- additionalProperties: false,
25497
- },
25498
- "harness.agy": {
25499
- type: "object",
25500
- properties: {
25501
26422
  authentication: {
25502
26423
  anyOf: [
25503
26424
  {
@@ -25790,6 +26711,147 @@ export const nativeRecipeSchemas = {
25790
26711
  "harness.copilot": {
25791
26712
  type: "object",
25792
26713
  properties: {
26714
+ hooks: {
26715
+ type: "array",
26716
+ items: {
26717
+ type: "object",
26718
+ properties: {
26719
+ kind: {
26720
+ const: "native-hook",
26721
+ },
26722
+ agent: {
26723
+ const: "copilot",
26724
+ },
26725
+ on: {
26726
+ anyOf: [
26727
+ {
26728
+ const: "sessionStart",
26729
+ },
26730
+ {
26731
+ const: "sessionEnd",
26732
+ },
26733
+ {
26734
+ const: "userPromptSubmitted",
26735
+ },
26736
+ {
26737
+ const: "userPromptTransformed",
26738
+ },
26739
+ {
26740
+ const: "preToolUse",
26741
+ },
26742
+ {
26743
+ const: "postToolUse",
26744
+ },
26745
+ {
26746
+ const: "postToolUseFailure",
26747
+ },
26748
+ {
26749
+ const: "permissionRequest",
26750
+ },
26751
+ {
26752
+ const: "agentStop",
26753
+ },
26754
+ {
26755
+ const: "subagentStart",
26756
+ },
26757
+ {
26758
+ const: "subagentStop",
26759
+ },
26760
+ {
26761
+ const: "preCompact",
26762
+ },
26763
+ {
26764
+ const: "notification",
26765
+ },
26766
+ {
26767
+ const: "errorOccurred",
26768
+ },
26769
+ ],
26770
+ },
26771
+ name: {
26772
+ type: "string",
26773
+ },
26774
+ timeoutMs: {
26775
+ type: "number",
26776
+ },
26777
+ command: {
26778
+ type: "object",
26779
+ properties: {
26780
+ executable: {
26781
+ type: "string",
26782
+ },
26783
+ arguments: {
26784
+ type: "array",
26785
+ items: {
26786
+ type: "string",
26787
+ },
26788
+ },
26789
+ directory: {
26790
+ type: "string",
26791
+ },
26792
+ variables: {
26793
+ anyOf: [
26794
+ {
26795
+ type: "object",
26796
+ properties: {
26797
+ $ref: {
26798
+ type: "string",
26799
+ minLength: 1,
26800
+ },
26801
+ },
26802
+ required: ["$ref"],
26803
+ additionalProperties: false,
26804
+ component: "variables",
26805
+ },
26806
+ {
26807
+ type: "object",
26808
+ additionalProperties: {
26809
+ anyOf: [
26810
+ {
26811
+ type: "string",
26812
+ },
26813
+ {
26814
+ type: "object",
26815
+ properties: {
26816
+ env: {
26817
+ type: "string",
26818
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
26819
+ },
26820
+ },
26821
+ required: ["env"],
26822
+ additionalProperties: false,
26823
+ secret: true,
26824
+ },
26825
+ ],
26826
+ },
26827
+ },
26828
+ ],
26829
+ },
26830
+ },
26831
+ required: ["executable"],
26832
+ additionalProperties: false,
26833
+ },
26834
+ matcher: {
26835
+ type: "string",
26836
+ },
26837
+ run: {
26838
+ type: "object",
26839
+ properties: {
26840
+ $ref: {
26841
+ type: "string",
26842
+ minLength: 1,
26843
+ },
26844
+ },
26845
+ required: ["$ref"],
26846
+ additionalProperties: false,
26847
+ component: "callback",
26848
+ contract: "harness.copilot.hooks.*.run",
26849
+ },
26850
+ },
26851
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
26852
+ additionalProperties: false,
26853
+ },
26854
+ },
25793
26855
  authentication: {
25794
26856
  anyOf: [
25795
26857
  {
@@ -26084,6 +27146,165 @@ export const nativeRecipeSchemas = {
26084
27146
  "harness.kimi": {
26085
27147
  type: "object",
26086
27148
  properties: {
27149
+ hooks: {
27150
+ type: "array",
27151
+ items: {
27152
+ type: "object",
27153
+ properties: {
27154
+ kind: {
27155
+ const: "native-hook",
27156
+ },
27157
+ agent: {
27158
+ const: "kimi",
27159
+ },
27160
+ on: {
27161
+ anyOf: [
27162
+ {
27163
+ const: "SessionStart",
27164
+ },
27165
+ {
27166
+ const: "SessionEnd",
27167
+ },
27168
+ {
27169
+ const: "UserPromptSubmit",
27170
+ },
27171
+ {
27172
+ const: "PreToolUse",
27173
+ },
27174
+ {
27175
+ const: "PermissionRequest",
27176
+ },
27177
+ {
27178
+ const: "PostToolUse",
27179
+ },
27180
+ {
27181
+ const: "PreCompact",
27182
+ },
27183
+ {
27184
+ const: "PostCompact",
27185
+ },
27186
+ {
27187
+ const: "SubagentStart",
27188
+ },
27189
+ {
27190
+ const: "SubagentStop",
27191
+ },
27192
+ {
27193
+ const: "Stop",
27194
+ },
27195
+ {
27196
+ const: "Interrupt",
27197
+ },
27198
+ {
27199
+ const: "PostToolUseFailure",
27200
+ },
27201
+ {
27202
+ const: "Notification",
27203
+ },
27204
+ {
27205
+ const: "StopFailure",
27206
+ },
27207
+ {
27208
+ const: "UserPromptQueued",
27209
+ },
27210
+ {
27211
+ const: "TurnStarted",
27212
+ },
27213
+ {
27214
+ const: "PermissionResult",
27215
+ },
27216
+ {
27217
+ const: "SessionHeartbeat",
27218
+ },
27219
+ {
27220
+ const: "TaskStarted",
27221
+ },
27222
+ ],
27223
+ },
27224
+ name: {
27225
+ type: "string",
27226
+ },
27227
+ timeoutMs: {
27228
+ type: "number",
27229
+ },
27230
+ command: {
27231
+ type: "object",
27232
+ properties: {
27233
+ executable: {
27234
+ type: "string",
27235
+ },
27236
+ arguments: {
27237
+ type: "array",
27238
+ items: {
27239
+ type: "string",
27240
+ },
27241
+ },
27242
+ directory: {
27243
+ type: "string",
27244
+ },
27245
+ variables: {
27246
+ anyOf: [
27247
+ {
27248
+ type: "object",
27249
+ properties: {
27250
+ $ref: {
27251
+ type: "string",
27252
+ minLength: 1,
27253
+ },
27254
+ },
27255
+ required: ["$ref"],
27256
+ additionalProperties: false,
27257
+ component: "variables",
27258
+ },
27259
+ {
27260
+ type: "object",
27261
+ additionalProperties: {
27262
+ anyOf: [
27263
+ {
27264
+ type: "string",
27265
+ },
27266
+ {
27267
+ type: "object",
27268
+ properties: {
27269
+ env: {
27270
+ type: "string",
27271
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
27272
+ },
27273
+ },
27274
+ required: ["env"],
27275
+ additionalProperties: false,
27276
+ secret: true,
27277
+ },
27278
+ ],
27279
+ },
27280
+ },
27281
+ ],
27282
+ },
27283
+ },
27284
+ required: ["executable"],
27285
+ additionalProperties: false,
27286
+ },
27287
+ matcher: {
27288
+ type: "string",
27289
+ },
27290
+ run: {
27291
+ type: "object",
27292
+ properties: {
27293
+ $ref: {
27294
+ type: "string",
27295
+ minLength: 1,
27296
+ },
27297
+ },
27298
+ required: ["$ref"],
27299
+ additionalProperties: false,
27300
+ component: "callback",
27301
+ contract: "harness.kimi.hooks.*.run",
27302
+ },
27303
+ },
27304
+ required: ["kind", "agent", "on", "name", "timeoutMs", "run"],
27305
+ additionalProperties: false,
27306
+ },
27307
+ },
26087
27308
  region: {
26088
27309
  anyOf: [
26089
27310
  {