@namzu/sdk 48.3.1 → 50.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (838) hide show
  1. package/CHANGELOG.md +542 -0
  2. package/README.md +137 -125
  3. package/dist/agents/QueryAgent.d.ts.map +1 -1
  4. package/dist/agents/QueryAgent.js +1 -0
  5. package/dist/agents/QueryAgent.js.map +1 -1
  6. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -1
  7. package/dist/agents/examples/SupervisorAgent.js +1 -0
  8. package/dist/agents/examples/SupervisorAgent.js.map +1 -1
  9. package/dist/agents/runAgent.d.ts +2 -0
  10. package/dist/agents/runAgent.d.ts.map +1 -1
  11. package/dist/agents/runAgent.js +1 -0
  12. package/dist/agents/runAgent.js.map +1 -1
  13. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  14. package/dist/authorization/shell-lexer.js +16 -1
  15. package/dist/authorization/shell-lexer.js.map +1 -1
  16. package/dist/bridge/acp/permission.d.ts +8 -2
  17. package/dist/bridge/acp/permission.d.ts.map +1 -1
  18. package/dist/bridge/acp/permission.js +1 -0
  19. package/dist/bridge/acp/permission.js.map +1 -1
  20. package/dist/bridge/acp/server.d.ts +25 -1
  21. package/dist/bridge/acp/server.d.ts.map +1 -1
  22. package/dist/bridge/acp/server.js +205 -21
  23. package/dist/bridge/acp/server.js.map +1 -1
  24. package/dist/bridge/acp/tasks.d.ts +5 -0
  25. package/dist/bridge/acp/tasks.d.ts.map +1 -0
  26. package/dist/bridge/acp/tasks.js +19 -0
  27. package/dist/bridge/acp/tasks.js.map +1 -0
  28. package/dist/bridge/acp/update.d.ts.map +1 -1
  29. package/dist/bridge/acp/update.js +148 -13
  30. package/dist/bridge/acp/update.js.map +1 -1
  31. package/dist/config/registry.d.ts +2 -0
  32. package/dist/config/registry.d.ts.map +1 -1
  33. package/dist/config/registry.js +23 -3
  34. package/dist/config/registry.js.map +1 -1
  35. package/dist/config/runtime.d.ts +31 -31
  36. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  37. package/dist/connector/mcp/adapter.js +11 -4
  38. package/dist/connector/mcp/adapter.js.map +1 -1
  39. package/dist/connector/mcp/client.d.ts.map +1 -1
  40. package/dist/connector/mcp/client.js +6 -3
  41. package/dist/connector/mcp/client.js.map +1 -1
  42. package/dist/connector/mcp/discovery.d.ts +9 -5
  43. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  44. package/dist/connector/mcp/discovery.js +16 -8
  45. package/dist/connector/mcp/discovery.js.map +1 -1
  46. package/dist/connector/mcp/mcp-toolset.d.ts +3 -0
  47. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -1
  48. package/dist/connector/mcp/mcp-toolset.js +20 -2
  49. package/dist/connector/mcp/mcp-toolset.js.map +1 -1
  50. package/dist/connector/mcp/reconnect.d.ts +2 -0
  51. package/dist/connector/mcp/reconnect.d.ts.map +1 -1
  52. package/dist/connector/mcp/reconnect.js +36 -5
  53. package/dist/connector/mcp/reconnect.js.map +1 -1
  54. package/dist/constants/acp/index.d.ts +3 -0
  55. package/dist/constants/acp/index.d.ts.map +1 -1
  56. package/dist/constants/acp/index.js +3 -0
  57. package/dist/constants/acp/index.js.map +1 -1
  58. package/dist/contracts/a2a.d.ts +80 -80
  59. package/dist/contracts/schemas.d.ts +2 -2
  60. package/dist/contracts/session/schemas.d.ts +10 -10
  61. package/dist/manager/agent/lifecycle.d.ts +11 -0
  62. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  63. package/dist/manager/agent/lifecycle.js +178 -3
  64. package/dist/manager/agent/lifecycle.js.map +1 -1
  65. package/dist/manager/plan/lifecycle.d.ts +7 -8
  66. package/dist/manager/plan/lifecycle.d.ts.map +1 -1
  67. package/dist/manager/plan/lifecycle.js +7 -8
  68. package/dist/manager/plan/lifecycle.js.map +1 -1
  69. package/dist/manager/resident/consumption.d.ts +8 -8
  70. package/dist/manager/resident/learning-cycle.d.ts +2 -2
  71. package/dist/manager/resident/learning-observation.d.ts +12 -12
  72. package/dist/manager/resident/learning.d.ts +82 -82
  73. package/dist/manager/resident/outbox.d.ts +8 -8
  74. package/dist/manager/resident/proposal.d.ts +2 -2
  75. package/dist/manager/resident/store.d.ts +10 -10
  76. package/dist/manager/session/attribution.d.ts +1 -0
  77. package/dist/manager/session/attribution.d.ts.map +1 -1
  78. package/dist/manager/session/attribution.js +9 -1
  79. package/dist/manager/session/attribution.js.map +1 -1
  80. package/dist/manager/session/streamed-message-identity.d.ts +6 -0
  81. package/dist/manager/session/streamed-message-identity.d.ts.map +1 -0
  82. package/dist/manager/session/streamed-message-identity.js +14 -0
  83. package/dist/manager/session/streamed-message-identity.js.map +1 -0
  84. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  85. package/dist/manager/session/turn-recorder.js +4 -3
  86. package/dist/manager/session/turn-recorder.js.map +1 -1
  87. package/dist/pals/activity/causality.d.ts +23 -0
  88. package/dist/pals/activity/causality.d.ts.map +1 -0
  89. package/dist/pals/activity/causality.js +205 -0
  90. package/dist/pals/activity/causality.js.map +1 -0
  91. package/dist/pals/activity/projection.d.ts +5 -0
  92. package/dist/pals/activity/projection.d.ts.map +1 -0
  93. package/dist/pals/activity/projection.js +79 -0
  94. package/dist/pals/activity/projection.js.map +1 -0
  95. package/dist/pals/activity/source.d.ts +16 -0
  96. package/dist/pals/activity/source.d.ts.map +1 -0
  97. package/dist/pals/activity/source.js +235 -0
  98. package/dist/pals/activity/source.js.map +1 -0
  99. package/dist/pals/activity/subscription-policy.d.ts +38 -0
  100. package/dist/pals/activity/subscription-policy.d.ts.map +1 -0
  101. package/dist/pals/activity/subscription-policy.js +183 -0
  102. package/dist/pals/activity/subscription-policy.js.map +1 -0
  103. package/dist/pals/activity/subscription-schema.d.ts +353 -0
  104. package/dist/pals/activity/subscription-schema.d.ts.map +1 -0
  105. package/dist/pals/activity/subscription-schema.js +24 -0
  106. package/dist/pals/activity/subscription-schema.js.map +1 -0
  107. package/dist/pals/activity/subscription-store.d.ts +25 -0
  108. package/dist/pals/activity/subscription-store.d.ts.map +1 -0
  109. package/dist/pals/activity/subscription-store.js +152 -0
  110. package/dist/pals/activity/subscription-store.js.map +1 -0
  111. package/dist/pals/activity/subscription-types.d.ts +42 -0
  112. package/dist/pals/activity/subscription-types.d.ts.map +1 -0
  113. package/dist/pals/activity/subscription-types.js +2 -0
  114. package/dist/pals/activity/subscription-types.js.map +1 -0
  115. package/dist/pals/activity/subscriptions.d.ts +32 -0
  116. package/dist/pals/activity/subscriptions.d.ts.map +1 -0
  117. package/dist/pals/activity/subscriptions.js +151 -0
  118. package/dist/pals/activity/subscriptions.js.map +1 -0
  119. package/dist/pals/activity/types.d.ts +77 -0
  120. package/dist/pals/activity/types.d.ts.map +1 -0
  121. package/dist/pals/activity/types.js +2 -0
  122. package/dist/pals/activity/types.js.map +1 -0
  123. package/dist/pals/channels/ingress.d.ts +9 -0
  124. package/dist/pals/channels/ingress.d.ts.map +1 -0
  125. package/dist/pals/channels/ingress.js +131 -0
  126. package/dist/pals/channels/ingress.js.map +1 -0
  127. package/dist/pals/channels/routes.d.ts +20 -0
  128. package/dist/pals/channels/routes.d.ts.map +1 -0
  129. package/dist/pals/channels/routes.js +111 -0
  130. package/dist/pals/channels/routes.js.map +1 -0
  131. package/dist/pals/channels/routing.d.ts +37 -0
  132. package/dist/pals/channels/routing.d.ts.map +1 -0
  133. package/dist/pals/channels/routing.js +150 -0
  134. package/dist/pals/channels/routing.js.map +1 -0
  135. package/dist/pals/channels/schema.d.ts +234 -0
  136. package/dist/pals/channels/schema.d.ts.map +1 -0
  137. package/dist/pals/channels/schema.js +94 -0
  138. package/dist/pals/channels/schema.js.map +1 -0
  139. package/dist/pals/channels/types.d.ts +115 -0
  140. package/dist/pals/channels/types.d.ts.map +1 -0
  141. package/dist/pals/channels/types.js +2 -0
  142. package/dist/pals/channels/types.js.map +1 -0
  143. package/dist/pals/communication/broker.d.ts +8 -0
  144. package/dist/pals/communication/broker.d.ts.map +1 -0
  145. package/dist/pals/communication/broker.js +121 -0
  146. package/dist/pals/communication/broker.js.map +1 -0
  147. package/dist/pals/communication/dispatch.d.ts +4 -0
  148. package/dist/pals/communication/dispatch.d.ts.map +1 -0
  149. package/dist/pals/communication/dispatch.js +57 -0
  150. package/dist/pals/communication/dispatch.js.map +1 -0
  151. package/dist/pals/communication/inbound.d.ts +9 -0
  152. package/dist/pals/communication/inbound.d.ts.map +1 -0
  153. package/dist/pals/communication/inbound.js +155 -0
  154. package/dist/pals/communication/inbound.js.map +1 -0
  155. package/dist/pals/communication/ingress-dispatch.d.ts +5 -0
  156. package/dist/pals/communication/ingress-dispatch.d.ts.map +1 -0
  157. package/dist/pals/communication/ingress-dispatch.js +51 -0
  158. package/dist/pals/communication/ingress-dispatch.js.map +1 -0
  159. package/dist/pals/communication/ingress-inbound.d.ts +9 -0
  160. package/dist/pals/communication/ingress-inbound.d.ts.map +1 -0
  161. package/dist/pals/communication/ingress-inbound.js +222 -0
  162. package/dist/pals/communication/ingress-inbound.js.map +1 -0
  163. package/dist/pals/communication/ingress-schema.d.ts +7829 -0
  164. package/dist/pals/communication/ingress-schema.d.ts.map +1 -0
  165. package/dist/pals/communication/ingress-schema.js +479 -0
  166. package/dist/pals/communication/ingress-schema.js.map +1 -0
  167. package/dist/pals/communication/ingress-types.d.ts +187 -0
  168. package/dist/pals/communication/ingress-types.d.ts.map +1 -0
  169. package/dist/pals/communication/ingress-types.js +73 -0
  170. package/dist/pals/communication/ingress-types.js.map +1 -0
  171. package/dist/pals/communication/operator.d.ts +75 -0
  172. package/dist/pals/communication/operator.d.ts.map +1 -0
  173. package/dist/pals/communication/operator.js +217 -0
  174. package/dist/pals/communication/operator.js.map +1 -0
  175. package/dist/pals/communication/policy.d.ts +41 -0
  176. package/dist/pals/communication/policy.d.ts.map +1 -0
  177. package/dist/pals/communication/policy.js +138 -0
  178. package/dist/pals/communication/policy.js.map +1 -0
  179. package/dist/pals/communication/schema.d.ts +2000 -0
  180. package/dist/pals/communication/schema.d.ts.map +1 -0
  181. package/dist/pals/communication/schema.js +170 -0
  182. package/dist/pals/communication/schema.js.map +1 -0
  183. package/dist/pals/communication/store.d.ts +61 -0
  184. package/dist/pals/communication/store.d.ts.map +1 -0
  185. package/dist/pals/communication/store.js +450 -0
  186. package/dist/pals/communication/store.js.map +1 -0
  187. package/dist/pals/communication/tools.d.ts +23 -0
  188. package/dist/pals/communication/tools.d.ts.map +1 -0
  189. package/dist/pals/communication/tools.js +107 -0
  190. package/dist/pals/communication/tools.js.map +1 -0
  191. package/dist/pals/communication/types.d.ts +168 -0
  192. package/dist/pals/communication/types.d.ts.map +1 -0
  193. package/dist/pals/communication/types.js +24 -0
  194. package/dist/pals/communication/types.js.map +1 -0
  195. package/dist/pals/communication/verify.d.ts +22 -0
  196. package/dist/pals/communication/verify.d.ts.map +1 -0
  197. package/dist/pals/communication/verify.js +142 -0
  198. package/dist/pals/communication/verify.js.map +1 -0
  199. package/dist/pals/lifecycle.d.ts +37 -0
  200. package/dist/pals/lifecycle.d.ts.map +1 -0
  201. package/dist/pals/lifecycle.js +22 -0
  202. package/dist/pals/lifecycle.js.map +1 -0
  203. package/dist/pals/prompt.d.ts +30 -0
  204. package/dist/pals/prompt.d.ts.map +1 -0
  205. package/dist/pals/prompt.js +65 -0
  206. package/dist/pals/prompt.js.map +1 -0
  207. package/dist/pals/reference-images.d.ts +44 -0
  208. package/dist/pals/reference-images.d.ts.map +1 -0
  209. package/dist/pals/reference-images.js +248 -0
  210. package/dist/pals/reference-images.js.map +1 -0
  211. package/dist/pals/runtime.d.ts +46 -0
  212. package/dist/pals/runtime.d.ts.map +1 -0
  213. package/dist/pals/runtime.js +624 -0
  214. package/dist/pals/runtime.js.map +1 -0
  215. package/dist/pals/store.d.ts +26 -0
  216. package/dist/pals/store.d.ts.map +1 -0
  217. package/dist/pals/store.js +334 -0
  218. package/dist/pals/store.js.map +1 -0
  219. package/dist/pals/types.d.ts +145 -0
  220. package/dist/pals/types.d.ts.map +1 -0
  221. package/dist/pals/types.js +2 -0
  222. package/dist/pals/types.js.map +1 -0
  223. package/dist/peers/envelope.js +1 -1
  224. package/dist/peers/envelope.js.map +1 -1
  225. package/dist/peers/protocol.d.ts +83 -83
  226. package/dist/peers/record.d.ts +10 -10
  227. package/dist/plugin/lifecycle.d.ts +14 -10
  228. package/dist/plugin/lifecycle.d.ts.map +1 -1
  229. package/dist/plugin/lifecycle.js +178 -41
  230. package/dist/plugin/lifecycle.js.map +1 -1
  231. package/dist/plugin/shell-hook.d.ts.map +1 -1
  232. package/dist/plugin/shell-hook.js +7 -2
  233. package/dist/plugin/shell-hook.js.map +1 -1
  234. package/dist/process/kill-tree.d.ts.map +1 -1
  235. package/dist/process/kill-tree.js +9 -1
  236. package/dist/process/kill-tree.js.map +1 -1
  237. package/dist/prompt/resident-learning.js +2 -2
  238. package/dist/prompt/resident-learning.js.map +1 -1
  239. package/dist/prompt/resident-step.d.ts +2 -2
  240. package/dist/prompt/resident-step.js +4 -4
  241. package/dist/prompt/resident-step.js.map +1 -1
  242. package/dist/provider/errors.d.ts +19 -0
  243. package/dist/provider/errors.d.ts.map +1 -1
  244. package/dist/provider/errors.js +123 -2
  245. package/dist/provider/errors.js.map +1 -1
  246. package/dist/public-runtime.d.ts +43 -15
  247. package/dist/public-runtime.d.ts.map +1 -1
  248. package/dist/public-runtime.js +37 -9
  249. package/dist/public-runtime.js.map +1 -1
  250. package/dist/public-tools.d.ts +8 -3
  251. package/dist/public-tools.d.ts.map +1 -1
  252. package/dist/public-tools.js +8 -3
  253. package/dist/public-tools.js.map +1 -1
  254. package/dist/public-types.d.ts +27 -7
  255. package/dist/public-types.d.ts.map +1 -1
  256. package/dist/registry/tool/presentation.d.ts +1 -0
  257. package/dist/registry/tool/presentation.d.ts.map +1 -1
  258. package/dist/registry/tool/presentation.js +9 -7
  259. package/dist/registry/tool/presentation.js.map +1 -1
  260. package/dist/registry/tool/screen.d.ts.map +1 -1
  261. package/dist/registry/tool/screen.js +33 -2
  262. package/dist/registry/tool/screen.js.map +1 -1
  263. package/dist/runtime/harness-session/index.d.ts +5 -0
  264. package/dist/runtime/harness-session/index.d.ts.map +1 -0
  265. package/dist/runtime/harness-session/index.js +928 -0
  266. package/dist/runtime/harness-session/index.js.map +1 -0
  267. package/dist/runtime/harness-session/journal.d.ts +37 -0
  268. package/dist/runtime/harness-session/journal.d.ts.map +1 -0
  269. package/dist/runtime/harness-session/journal.js +177 -0
  270. package/dist/runtime/harness-session/journal.js.map +1 -0
  271. package/dist/runtime/harness-session/saved-view.d.ts +8 -0
  272. package/dist/runtime/harness-session/saved-view.d.ts.map +1 -0
  273. package/dist/runtime/harness-session/saved-view.js +112 -0
  274. package/dist/runtime/harness-session/saved-view.js.map +1 -0
  275. package/dist/runtime/jobs/awaited-jobs.d.ts +2 -1
  276. package/dist/runtime/jobs/awaited-jobs.d.ts.map +1 -1
  277. package/dist/runtime/jobs/awaited-jobs.js +2 -1
  278. package/dist/runtime/jobs/awaited-jobs.js.map +1 -1
  279. package/dist/runtime/jobs/registry.d.ts +56 -1
  280. package/dist/runtime/jobs/registry.d.ts.map +1 -1
  281. package/dist/runtime/jobs/registry.js +377 -39
  282. package/dist/runtime/jobs/registry.js.map +1 -1
  283. package/dist/runtime/query/abandon-turn.d.ts +12 -1
  284. package/dist/runtime/query/abandon-turn.d.ts.map +1 -1
  285. package/dist/runtime/query/abandon-turn.js +3 -1
  286. package/dist/runtime/query/abandon-turn.js.map +1 -1
  287. package/dist/runtime/query/checkpoint.d.ts +4 -0
  288. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  289. package/dist/runtime/query/checkpoint.js +10 -0
  290. package/dist/runtime/query/checkpoint.js.map +1 -1
  291. package/dist/runtime/query/durable-inbound.d.ts +5 -0
  292. package/dist/runtime/query/durable-inbound.d.ts.map +1 -0
  293. package/dist/runtime/query/durable-inbound.js +89 -0
  294. package/dist/runtime/query/durable-inbound.js.map +1 -0
  295. package/dist/runtime/query/events.d.ts +4 -0
  296. package/dist/runtime/query/events.d.ts.map +1 -1
  297. package/dist/runtime/query/events.js +22 -5
  298. package/dist/runtime/query/events.js.map +1 -1
  299. package/dist/runtime/query/executor/tool-call-admission.d.ts +5 -1
  300. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  301. package/dist/runtime/query/executor/tool-call-admission.js +85 -13
  302. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  303. package/dist/runtime/query/executor.d.ts +41 -18
  304. package/dist/runtime/query/executor.d.ts.map +1 -1
  305. package/dist/runtime/query/executor.js +227 -114
  306. package/dist/runtime/query/executor.js.map +1 -1
  307. package/dist/runtime/query/index.d.ts +9 -0
  308. package/dist/runtime/query/index.d.ts.map +1 -1
  309. package/dist/runtime/query/index.js +41 -5
  310. package/dist/runtime/query/index.js.map +1 -1
  311. package/dist/runtime/query/iteration/index.d.ts +18 -6
  312. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  313. package/dist/runtime/query/iteration/index.js +176 -75
  314. package/dist/runtime/query/iteration/index.js.map +1 -1
  315. package/dist/runtime/query/iteration/outstanding-work.d.ts +9 -5
  316. package/dist/runtime/query/iteration/outstanding-work.d.ts.map +1 -1
  317. package/dist/runtime/query/iteration/outstanding-work.js +63 -6
  318. package/dist/runtime/query/iteration/outstanding-work.js.map +1 -1
  319. package/dist/runtime/query/iteration/phases/context.d.ts +8 -0
  320. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  321. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  322. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  323. package/dist/runtime/query/iteration/phases/tool-review.js +106 -17
  324. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  325. package/dist/runtime/query/iteration/step-shaping.d.ts +2 -0
  326. package/dist/runtime/query/iteration/step-shaping.d.ts.map +1 -1
  327. package/dist/runtime/query/iteration/step-shaping.js +5 -1
  328. package/dist/runtime/query/iteration/step-shaping.js.map +1 -1
  329. package/dist/runtime/query/observation-context.d.ts +2 -2
  330. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  331. package/dist/runtime/query/observation-context.js +20 -13
  332. package/dist/runtime/query/observation-context.js.map +1 -1
  333. package/dist/runtime/query/prepare-turn.js +2 -2
  334. package/dist/runtime/query/prepare-turn.js.map +1 -1
  335. package/dist/runtime/query/prompt-cache.d.ts +1 -0
  336. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  337. package/dist/runtime/query/prompt-cache.js +2 -0
  338. package/dist/runtime/query/prompt-cache.js.map +1 -1
  339. package/dist/runtime/query/prompt.d.ts +2 -0
  340. package/dist/runtime/query/prompt.d.ts.map +1 -1
  341. package/dist/runtime/query/prompt.js +23 -1
  342. package/dist/runtime/query/prompt.js.map +1 -1
  343. package/dist/runtime/query/repeat-call.d.ts +12 -3
  344. package/dist/runtime/query/repeat-call.d.ts.map +1 -1
  345. package/dist/runtime/query/repeat-call.js +33 -10
  346. package/dist/runtime/query/repeat-call.js.map +1 -1
  347. package/dist/runtime/query/resume-pending.d.ts +5 -6
  348. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  349. package/dist/runtime/query/resume-pending.js +30 -3
  350. package/dist/runtime/query/resume-pending.js.map +1 -1
  351. package/dist/runtime/query/resume-session.js +1 -1
  352. package/dist/runtime/query/resume-session.js.map +1 -1
  353. package/dist/runtime/query/review-policy.d.ts +8 -1
  354. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  355. package/dist/runtime/query/review-policy.js +6 -0
  356. package/dist/runtime/query/review-policy.js.map +1 -1
  357. package/dist/runtime/query/saved-presentation.d.ts +13 -0
  358. package/dist/runtime/query/saved-presentation.d.ts.map +1 -0
  359. package/dist/runtime/query/saved-presentation.js +63 -0
  360. package/dist/runtime/query/saved-presentation.js.map +1 -0
  361. package/dist/runtime/query/steering.d.ts +6 -9
  362. package/dist/runtime/query/steering.d.ts.map +1 -1
  363. package/dist/runtime/query/steering.js.map +1 -1
  364. package/dist/runtime/query/tool-executions.d.ts +7 -3
  365. package/dist/runtime/query/tool-executions.d.ts.map +1 -1
  366. package/dist/runtime/query/tool-executions.js +89 -9
  367. package/dist/runtime/query/tool-executions.js.map +1 -1
  368. package/dist/runtime/query/tooling.d.ts +3 -1
  369. package/dist/runtime/query/tooling.d.ts.map +1 -1
  370. package/dist/runtime/query/tooling.js +3 -0
  371. package/dist/runtime/query/tooling.js.map +1 -1
  372. package/dist/scheduler/completion-inbox.d.ts +25 -1
  373. package/dist/scheduler/completion-inbox.d.ts.map +1 -1
  374. package/dist/scheduler/completion-inbox.js +102 -8
  375. package/dist/scheduler/completion-inbox.js.map +1 -1
  376. package/dist/scheduler/delegating.d.ts.map +1 -1
  377. package/dist/scheduler/delegating.js +5 -0
  378. package/dist/scheduler/delegating.js.map +1 -1
  379. package/dist/scheduler/local.d.ts.map +1 -1
  380. package/dist/scheduler/local.js +2 -0
  381. package/dist/scheduler/local.js.map +1 -1
  382. package/dist/session/summary/materialize.d.ts +10 -6
  383. package/dist/session/summary/materialize.d.ts.map +1 -1
  384. package/dist/session/summary/materialize.js +41 -8
  385. package/dist/session/summary/materialize.js.map +1 -1
  386. package/dist/store/budget/ledger.d.ts +9 -0
  387. package/dist/store/budget/ledger.d.ts.map +1 -1
  388. package/dist/store/budget/ledger.js +58 -6
  389. package/dist/store/budget/ledger.js.map +1 -1
  390. package/dist/store/evidence/index-page.d.ts +12 -12
  391. package/dist/store/evidence/source-text.d.ts +4 -4
  392. package/dist/store/index.d.ts +1 -0
  393. package/dist/store/index.d.ts.map +1 -1
  394. package/dist/store/index.js +1 -0
  395. package/dist/store/index.js.map +1 -1
  396. package/dist/store/memory/disk.d.ts +7 -2
  397. package/dist/store/memory/disk.d.ts.map +1 -1
  398. package/dist/store/memory/disk.js +58 -5
  399. package/dist/store/memory/disk.js.map +1 -1
  400. package/dist/store/memory/index.d.ts +9 -0
  401. package/dist/store/memory/index.d.ts.map +1 -1
  402. package/dist/store/memory/index.js +43 -5
  403. package/dist/store/memory/index.js.map +1 -1
  404. package/dist/store/memory/markdown.d.ts +7 -2
  405. package/dist/store/memory/markdown.d.ts.map +1 -1
  406. package/dist/store/memory/markdown.js +33 -0
  407. package/dist/store/memory/markdown.js.map +1 -1
  408. package/dist/store/memory/memory.d.ts +7 -2
  409. package/dist/store/memory/memory.d.ts.map +1 -1
  410. package/dist/store/memory/memory.js +34 -0
  411. package/dist/store/memory/memory.js.map +1 -1
  412. package/dist/store/memory/revision.d.ts +16 -0
  413. package/dist/store/memory/revision.d.ts.map +1 -0
  414. package/dist/store/memory/revision.js +144 -0
  415. package/dist/store/memory/revision.js.map +1 -0
  416. package/dist/store/session/disk.d.ts +9 -4
  417. package/dist/store/session/disk.d.ts.map +1 -1
  418. package/dist/store/session/disk.js +57 -11
  419. package/dist/store/session/disk.js.map +1 -1
  420. package/dist/store/session/memory.d.ts +5 -3
  421. package/dist/store/session/memory.d.ts.map +1 -1
  422. package/dist/store/session/memory.js +24 -7
  423. package/dist/store/session/memory.js.map +1 -1
  424. package/dist/store/session-log/core.d.ts +26 -6
  425. package/dist/store/session-log/core.d.ts.map +1 -1
  426. package/dist/store/session-log/core.js +61 -8
  427. package/dist/store/session-log/core.js.map +1 -1
  428. package/dist/store/session-log/disk.d.ts +2 -2
  429. package/dist/store/session-log/disk.d.ts.map +1 -1
  430. package/dist/store/session-log/disk.js +1 -0
  431. package/dist/store/session-log/disk.js.map +1 -1
  432. package/dist/store/session-log/fold.d.ts +7 -0
  433. package/dist/store/session-log/fold.d.ts.map +1 -1
  434. package/dist/store/session-log/fold.js +21 -0
  435. package/dist/store/session-log/fold.js.map +1 -1
  436. package/dist/store/session-log/index.d.ts +5 -3
  437. package/dist/store/session-log/index.d.ts.map +1 -1
  438. package/dist/store/session-log/index.js +3 -1
  439. package/dist/store/session-log/index.js.map +1 -1
  440. package/dist/store/session-log/memory.d.ts +1 -1
  441. package/dist/store/session-log/memory.d.ts.map +1 -1
  442. package/dist/store/session-log/memory.js +1 -0
  443. package/dist/store/session-log/memory.js.map +1 -1
  444. package/dist/store/session-log/spill.d.ts +10 -3
  445. package/dist/store/session-log/spill.d.ts.map +1 -1
  446. package/dist/store/session-log/spill.js +70 -5
  447. package/dist/store/session-log/spill.js.map +1 -1
  448. package/dist/store/session-log/structured-result.d.ts +21 -0
  449. package/dist/store/session-log/structured-result.d.ts.map +1 -0
  450. package/dist/store/session-log/structured-result.js +67 -0
  451. package/dist/store/session-log/structured-result.js.map +1 -0
  452. package/dist/store/task/disk.d.ts +11 -0
  453. package/dist/store/task/disk.d.ts.map +1 -1
  454. package/dist/store/task/disk.js +41 -2
  455. package/dist/store/task/disk.js.map +1 -1
  456. package/dist/store/task/memory.d.ts.map +1 -1
  457. package/dist/store/task/memory.js +15 -3
  458. package/dist/store/task/memory.js.map +1 -1
  459. package/dist/tools/admit-facts.d.ts +13 -0
  460. package/dist/tools/admit-facts.d.ts.map +1 -0
  461. package/dist/tools/admit-facts.js +142 -0
  462. package/dist/tools/admit-facts.js.map +1 -0
  463. package/dist/tools/builtins/bash.d.ts +4 -1
  464. package/dist/tools/builtins/bash.d.ts.map +1 -1
  465. package/dist/tools/builtins/bash.js +108 -22
  466. package/dist/tools/builtins/bash.js.map +1 -1
  467. package/dist/tools/builtins/browser.d.ts +10 -10
  468. package/dist/tools/builtins/computer-use.d.ts +90 -90
  469. package/dist/tools/builtins/edit.d.ts +17 -0
  470. package/dist/tools/builtins/edit.d.ts.map +1 -1
  471. package/dist/tools/builtins/edit.js +34 -0
  472. package/dist/tools/builtins/edit.js.map +1 -1
  473. package/dist/tools/builtins/file-write-result.d.ts.map +1 -1
  474. package/dist/tools/builtins/file-write-result.js +13 -0
  475. package/dist/tools/builtins/file-write-result.js.map +1 -1
  476. package/dist/tools/builtins/glob.d.ts.map +1 -1
  477. package/dist/tools/builtins/glob.js +12 -0
  478. package/dist/tools/builtins/glob.js.map +1 -1
  479. package/dist/tools/builtins/grep.d.ts.map +1 -1
  480. package/dist/tools/builtins/grep.js +14 -0
  481. package/dist/tools/builtins/grep.js.map +1 -1
  482. package/dist/tools/builtins/index.d.ts +2 -0
  483. package/dist/tools/builtins/index.d.ts.map +1 -1
  484. package/dist/tools/builtins/index.js +1 -0
  485. package/dist/tools/builtins/index.js.map +1 -1
  486. package/dist/tools/builtins/job.d.ts.map +1 -1
  487. package/dist/tools/builtins/job.js +4 -1
  488. package/dist/tools/builtins/job.js.map +1 -1
  489. package/dist/tools/builtins/lsp.d.ts +2 -2
  490. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  491. package/dist/tools/builtins/read-file.js +49 -0
  492. package/dist/tools/builtins/read-file.js.map +1 -1
  493. package/dist/tools/builtins/view-image.d.ts +24 -0
  494. package/dist/tools/builtins/view-image.d.ts.map +1 -0
  495. package/dist/tools/builtins/view-image.js +385 -0
  496. package/dist/tools/builtins/view-image.js.map +1 -0
  497. package/dist/tools/builtins/wait-for-job-bounds.d.ts +8 -4
  498. package/dist/tools/builtins/wait-for-job-bounds.d.ts.map +1 -1
  499. package/dist/tools/builtins/wait-for-job-bounds.js +43 -8
  500. package/dist/tools/builtins/wait-for-job-bounds.js.map +1 -1
  501. package/dist/tools/builtins/wait-for-job.d.ts +3 -0
  502. package/dist/tools/builtins/wait-for-job.d.ts.map +1 -1
  503. package/dist/tools/builtins/wait-for-job.js +127 -15
  504. package/dist/tools/builtins/wait-for-job.js.map +1 -1
  505. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  506. package/dist/tools/builtins/write-file.js +1 -0
  507. package/dist/tools/builtins/write-file.js.map +1 -1
  508. package/dist/tools/command-shell.d.ts +37 -2
  509. package/dist/tools/command-shell.d.ts.map +1 -1
  510. package/dist/tools/command-shell.js +100 -3
  511. package/dist/tools/command-shell.js.map +1 -1
  512. package/dist/tools/coordinator/agent.d.ts +9 -19
  513. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  514. package/dist/tools/coordinator/agent.js.map +1 -1
  515. package/dist/tools/coordinator/index.d.ts.map +1 -1
  516. package/dist/tools/coordinator/index.js +127 -67
  517. package/dist/tools/coordinator/index.js.map +1 -1
  518. package/dist/tools/coordinator/wait-with-idle-bound.d.ts +2 -0
  519. package/dist/tools/coordinator/wait-with-idle-bound.d.ts.map +1 -1
  520. package/dist/tools/coordinator/wait-with-idle-bound.js +1 -1
  521. package/dist/tools/coordinator/wait-with-idle-bound.js.map +1 -1
  522. package/dist/tools/defineTool.d.ts.map +1 -1
  523. package/dist/tools/defineTool.js +4 -0
  524. package/dist/tools/defineTool.js.map +1 -1
  525. package/dist/tools/failure-facts.d.ts +8 -0
  526. package/dist/tools/failure-facts.d.ts.map +1 -0
  527. package/dist/tools/failure-facts.js +24 -0
  528. package/dist/tools/failure-facts.js.map +1 -0
  529. package/dist/tools/host-output.d.ts +24 -0
  530. package/dist/tools/host-output.d.ts.map +1 -0
  531. package/dist/tools/host-output.js +117 -0
  532. package/dist/tools/host-output.js.map +1 -0
  533. package/dist/tools/memory/delete.d.ts.map +1 -1
  534. package/dist/tools/memory/delete.js +38 -3
  535. package/dist/tools/memory/delete.js.map +1 -1
  536. package/dist/tools/memory/read.d.ts.map +1 -1
  537. package/dist/tools/memory/read.js +38 -2
  538. package/dist/tools/memory/read.js.map +1 -1
  539. package/dist/tools/memory/search.d.ts.map +1 -1
  540. package/dist/tools/memory/search.js +38 -7
  541. package/dist/tools/memory/search.js.map +1 -1
  542. package/dist/tools/memory/update.d.ts.map +1 -1
  543. package/dist/tools/memory/update.js +30 -3
  544. package/dist/tools/memory/update.js.map +1 -1
  545. package/dist/tools/oem-code-pages.d.ts +8 -0
  546. package/dist/tools/oem-code-pages.d.ts.map +1 -0
  547. package/dist/tools/oem-code-pages.js +23 -0
  548. package/dist/tools/oem-code-pages.js.map +1 -0
  549. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  550. package/dist/tools/schedules/schedule-tool.js +35 -6
  551. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  552. package/dist/tools/schedules/types.d.ts +23 -3
  553. package/dist/tools/schedules/types.d.ts.map +1 -1
  554. package/dist/tools/task/list.d.ts.map +1 -1
  555. package/dist/tools/task/list.js +14 -6
  556. package/dist/tools/task/list.js.map +1 -1
  557. package/dist/tools/task/present.d.ts.map +1 -1
  558. package/dist/tools/task/present.js +26 -6
  559. package/dist/tools/task/present.js.map +1 -1
  560. package/dist/tools/task/update.d.ts.map +1 -1
  561. package/dist/tools/task/update.js +12 -5
  562. package/dist/tools/task/update.js.map +1 -1
  563. package/dist/tools/text-window.d.ts +19 -0
  564. package/dist/tools/text-window.d.ts.map +1 -0
  565. package/dist/tools/text-window.js +83 -0
  566. package/dist/tools/text-window.js.map +1 -0
  567. package/dist/toolsets/manager.d.ts +24 -0
  568. package/dist/toolsets/manager.d.ts.map +1 -1
  569. package/dist/toolsets/manager.js +105 -2
  570. package/dist/toolsets/manager.js.map +1 -1
  571. package/dist/turn/memory-recall.d.ts +2 -0
  572. package/dist/turn/memory-recall.d.ts.map +1 -1
  573. package/dist/turn/memory-recall.js +3 -1
  574. package/dist/turn/memory-recall.js.map +1 -1
  575. package/dist/types/acp/index.d.ts +137 -1
  576. package/dist/types/acp/index.d.ts.map +1 -1
  577. package/dist/types/agent/base.d.ts +3 -0
  578. package/dist/types/agent/base.d.ts.map +1 -1
  579. package/dist/types/agent/manager.d.ts +8 -23
  580. package/dist/types/agent/manager.d.ts.map +1 -1
  581. package/dist/types/agent/scheduler.d.ts +10 -1
  582. package/dist/types/agent/scheduler.d.ts.map +1 -1
  583. package/dist/types/agent/task.d.ts +4 -0
  584. package/dist/types/agent/task.d.ts.map +1 -1
  585. package/dist/types/authorization/index.d.ts +30 -30
  586. package/dist/types/connector/mcp.d.ts +7 -0
  587. package/dist/types/connector/mcp.d.ts.map +1 -1
  588. package/dist/types/errors/catalog.d.ts.map +1 -1
  589. package/dist/types/errors/catalog.js +4 -2
  590. package/dist/types/errors/catalog.js.map +1 -1
  591. package/dist/types/harness/schema.d.ts +354 -0
  592. package/dist/types/harness/schema.d.ts.map +1 -0
  593. package/dist/types/harness/schema.js +203 -0
  594. package/dist/types/harness/schema.js.map +1 -0
  595. package/dist/types/harness/session.d.ts +278 -0
  596. package/dist/types/harness/session.d.ts.map +1 -0
  597. package/dist/types/harness/session.js +2 -0
  598. package/dist/types/harness/session.js.map +1 -0
  599. package/dist/types/hitl/index.d.ts +12 -0
  600. package/dist/types/hitl/index.d.ts.map +1 -1
  601. package/dist/types/hitl/index.js.map +1 -1
  602. package/dist/types/job/index.d.ts +47 -0
  603. package/dist/types/job/index.d.ts.map +1 -0
  604. package/dist/types/job/index.js +2 -0
  605. package/dist/types/job/index.js.map +1 -0
  606. package/dist/types/memory/index.d.ts +29 -0
  607. package/dist/types/memory/index.d.ts.map +1 -1
  608. package/dist/types/memory/index.js +6 -0
  609. package/dist/types/memory/index.js.map +1 -1
  610. package/dist/types/message/inbound-delivery.d.ts +44 -0
  611. package/dist/types/message/inbound-delivery.d.ts.map +1 -0
  612. package/dist/types/message/inbound-delivery.js +14 -0
  613. package/dist/types/message/inbound-delivery.js.map +1 -0
  614. package/dist/types/message/index.d.ts +4 -1
  615. package/dist/types/message/index.d.ts.map +1 -1
  616. package/dist/types/message/index.js +5 -1
  617. package/dist/types/message/index.js.map +1 -1
  618. package/dist/types/plugin/index.d.ts +18 -8
  619. package/dist/types/plugin/index.d.ts.map +1 -1
  620. package/dist/types/plugin/index.js +5 -2
  621. package/dist/types/plugin/index.js.map +1 -1
  622. package/dist/types/sandbox/index.d.ts +39 -2
  623. package/dist/types/sandbox/index.d.ts.map +1 -1
  624. package/dist/types/sandbox/index.js.map +1 -1
  625. package/dist/types/session/checkpoint.d.ts +24 -17
  626. package/dist/types/session/checkpoint.d.ts.map +1 -1
  627. package/dist/types/session/checkpoint.js +1 -0
  628. package/dist/types/session/checkpoint.js.map +1 -1
  629. package/dist/types/session/events.d.ts +23 -1
  630. package/dist/types/session/events.d.ts.map +1 -1
  631. package/dist/types/session/events.js.map +1 -1
  632. package/dist/types/session/records.d.ts +1514 -565
  633. package/dist/types/session/records.d.ts.map +1 -1
  634. package/dist/types/session/records.js +89 -1
  635. package/dist/types/session/records.js.map +1 -1
  636. package/dist/types/session/step.d.ts +2 -0
  637. package/dist/types/session/step.d.ts.map +1 -1
  638. package/dist/types/session/step.js.map +1 -1
  639. package/dist/types/session/store.d.ts +19 -10
  640. package/dist/types/session/store.d.ts.map +1 -1
  641. package/dist/types/session/tool-execution.d.ts +6 -0
  642. package/dist/types/session/tool-execution.d.ts.map +1 -1
  643. package/dist/types/structured-output/index.d.ts +12 -2
  644. package/dist/types/structured-output/index.d.ts.map +1 -1
  645. package/dist/types/summary/ref.d.ts +3 -1
  646. package/dist/types/summary/ref.d.ts.map +1 -1
  647. package/dist/types/tool/index.d.ts +32 -4
  648. package/dist/types/tool/index.d.ts.map +1 -1
  649. package/dist/types/tool/index.js.map +1 -1
  650. package/dist/types/tool/presentation.d.ts +106 -0
  651. package/dist/types/tool/presentation.d.ts.map +1 -1
  652. package/dist/utils/json-snapshot.d.ts +6 -2
  653. package/dist/utils/json-snapshot.d.ts.map +1 -1
  654. package/dist/utils/json-snapshot.js +19 -9
  655. package/dist/utils/json-snapshot.js.map +1 -1
  656. package/dist/utils/structured-result-json.d.ts +5 -0
  657. package/dist/utils/structured-result-json.d.ts.map +1 -0
  658. package/dist/utils/structured-result-json.js +10 -0
  659. package/dist/utils/structured-result-json.js.map +1 -0
  660. package/package.json +1 -1
  661. package/src/agents/QueryAgent.ts +1 -0
  662. package/src/agents/examples/SupervisorAgent.ts +1 -0
  663. package/src/agents/runAgent.ts +3 -0
  664. package/src/authorization/shell-lexer.ts +16 -1
  665. package/src/bridge/acp/permission.ts +17 -3
  666. package/src/bridge/acp/server.ts +271 -25
  667. package/src/bridge/acp/tasks.ts +23 -0
  668. package/src/bridge/acp/update.ts +167 -13
  669. package/src/config/registry.ts +24 -3
  670. package/src/connector/mcp/adapter.ts +16 -4
  671. package/src/connector/mcp/client.ts +6 -2
  672. package/src/connector/mcp/discovery.ts +29 -8
  673. package/src/connector/mcp/mcp-toolset.ts +25 -4
  674. package/src/connector/mcp/reconnect.ts +34 -4
  675. package/src/constants/acp/index.ts +4 -0
  676. package/src/manager/agent/lifecycle.ts +230 -3
  677. package/src/manager/plan/lifecycle.ts +11 -9
  678. package/src/manager/session/attribution.ts +12 -2
  679. package/src/manager/session/streamed-message-identity.ts +21 -0
  680. package/src/manager/session/turn-recorder.ts +4 -3
  681. package/src/pals/activity/causality.ts +261 -0
  682. package/src/pals/activity/projection.ts +89 -0
  683. package/src/pals/activity/source.ts +240 -0
  684. package/src/pals/activity/subscription-policy.ts +230 -0
  685. package/src/pals/activity/subscription-schema.ts +27 -0
  686. package/src/pals/activity/subscription-store.ts +172 -0
  687. package/src/pals/activity/subscription-types.ts +48 -0
  688. package/src/pals/activity/subscriptions.ts +209 -0
  689. package/src/pals/activity/types.ts +108 -0
  690. package/src/pals/channels/ingress.ts +153 -0
  691. package/src/pals/channels/routes.ts +118 -0
  692. package/src/pals/channels/routing.ts +197 -0
  693. package/src/pals/channels/schema.ts +108 -0
  694. package/src/pals/channels/types.ts +156 -0
  695. package/src/pals/communication/broker.ts +131 -0
  696. package/src/pals/communication/dispatch.ts +66 -0
  697. package/src/pals/communication/inbound.ts +193 -0
  698. package/src/pals/communication/ingress-dispatch.ts +63 -0
  699. package/src/pals/communication/ingress-inbound.ts +269 -0
  700. package/src/pals/communication/ingress-schema.ts +526 -0
  701. package/src/pals/communication/ingress-types.ts +336 -0
  702. package/src/pals/communication/operator.ts +315 -0
  703. package/src/pals/communication/policy.ts +174 -0
  704. package/src/pals/communication/schema.ts +173 -0
  705. package/src/pals/communication/store.ts +577 -0
  706. package/src/pals/communication/tools.ts +139 -0
  707. package/src/pals/communication/types.ts +227 -0
  708. package/src/pals/communication/verify.ts +220 -0
  709. package/src/pals/lifecycle.ts +54 -0
  710. package/src/pals/prompt.ts +101 -0
  711. package/src/pals/reference-images.ts +322 -0
  712. package/src/pals/runtime.ts +670 -0
  713. package/src/pals/store.ts +369 -0
  714. package/src/pals/types.ts +157 -0
  715. package/src/peers/envelope.ts +1 -1
  716. package/src/plugin/lifecycle.ts +217 -46
  717. package/src/plugin/shell-hook.ts +8 -2
  718. package/src/process/kill-tree.ts +10 -1
  719. package/src/prompt/resident-learning.ts +2 -2
  720. package/src/prompt/resident-step.ts +4 -4
  721. package/src/provider/errors.ts +135 -2
  722. package/src/public-runtime.ts +119 -12
  723. package/src/public-tools.ts +13 -1
  724. package/src/public-types.ts +69 -7
  725. package/src/registry/tool/presentation.ts +9 -4
  726. package/src/registry/tool/screen.ts +34 -2
  727. package/src/runtime/harness-session/index.ts +1125 -0
  728. package/src/runtime/harness-session/journal.ts +209 -0
  729. package/src/runtime/harness-session/saved-view.ts +122 -0
  730. package/src/runtime/jobs/awaited-jobs.ts +2 -1
  731. package/src/runtime/jobs/registry.ts +423 -50
  732. package/src/runtime/query/abandon-turn.ts +18 -2
  733. package/src/runtime/query/checkpoint.ts +11 -0
  734. package/src/runtime/query/durable-inbound.ts +101 -0
  735. package/src/runtime/query/events.ts +22 -5
  736. package/src/runtime/query/executor/tool-call-admission.ts +125 -32
  737. package/src/runtime/query/executor.ts +316 -130
  738. package/src/runtime/query/index.ts +48 -5
  739. package/src/runtime/query/iteration/index.ts +253 -114
  740. package/src/runtime/query/iteration/outstanding-work.ts +57 -7
  741. package/src/runtime/query/iteration/phases/context.ts +8 -0
  742. package/src/runtime/query/iteration/phases/tool-review.ts +124 -22
  743. package/src/runtime/query/iteration/step-shaping.ts +9 -1
  744. package/src/runtime/query/observation-context.ts +22 -16
  745. package/src/runtime/query/prepare-turn.ts +2 -2
  746. package/src/runtime/query/prompt-cache.ts +3 -0
  747. package/src/runtime/query/prompt.ts +32 -1
  748. package/src/runtime/query/repeat-call.ts +40 -10
  749. package/src/runtime/query/resume-pending.ts +60 -7
  750. package/src/runtime/query/resume-session.ts +1 -1
  751. package/src/runtime/query/review-policy.ts +23 -2
  752. package/src/runtime/query/saved-presentation.ts +70 -0
  753. package/src/runtime/query/steering.ts +6 -9
  754. package/src/runtime/query/tool-executions.ts +108 -9
  755. package/src/runtime/query/tooling.ts +6 -1
  756. package/src/scheduler/completion-inbox.ts +108 -7
  757. package/src/scheduler/delegating.ts +5 -0
  758. package/src/scheduler/local.ts +2 -0
  759. package/src/session/summary/materialize.ts +51 -9
  760. package/src/store/budget/ledger.ts +60 -5
  761. package/src/store/index.ts +1 -0
  762. package/src/store/memory/disk.ts +82 -7
  763. package/src/store/memory/index.ts +66 -7
  764. package/src/store/memory/markdown.ts +54 -2
  765. package/src/store/memory/memory.ts +52 -2
  766. package/src/store/memory/revision.ts +158 -0
  767. package/src/store/session/disk.ts +77 -10
  768. package/src/store/session/memory.ts +32 -7
  769. package/src/store/session-log/core.ts +118 -11
  770. package/src/store/session-log/disk.ts +9 -2
  771. package/src/store/session-log/fold.ts +22 -0
  772. package/src/store/session-log/index.ts +5 -0
  773. package/src/store/session-log/memory.ts +2 -1
  774. package/src/store/session-log/spill.ts +89 -6
  775. package/src/store/session-log/structured-result.ts +96 -0
  776. package/src/store/task/disk.ts +46 -2
  777. package/src/store/task/memory.ts +13 -3
  778. package/src/tools/admit-facts.ts +145 -0
  779. package/src/tools/builtins/bash.ts +132 -24
  780. package/src/tools/builtins/edit.ts +42 -0
  781. package/src/tools/builtins/file-write-result.ts +14 -0
  782. package/src/tools/builtins/glob.ts +12 -0
  783. package/src/tools/builtins/grep.ts +14 -0
  784. package/src/tools/builtins/index.ts +2 -0
  785. package/src/tools/builtins/job.ts +4 -1
  786. package/src/tools/builtins/read-file.ts +57 -0
  787. package/src/tools/builtins/view-image.ts +409 -0
  788. package/src/tools/builtins/wait-for-job-bounds.ts +45 -7
  789. package/src/tools/builtins/wait-for-job.ts +159 -36
  790. package/src/tools/builtins/write-file.ts +4 -2
  791. package/src/tools/command-shell.ts +132 -5
  792. package/src/tools/coordinator/agent.ts +9 -19
  793. package/src/tools/coordinator/index.ts +150 -75
  794. package/src/tools/coordinator/wait-with-idle-bound.ts +3 -1
  795. package/src/tools/defineTool.ts +4 -0
  796. package/src/tools/failure-facts.ts +24 -0
  797. package/src/tools/host-output.ts +136 -0
  798. package/src/tools/memory/delete.ts +33 -3
  799. package/src/tools/memory/read.ts +35 -2
  800. package/src/tools/memory/search.ts +38 -7
  801. package/src/tools/memory/update.ts +28 -3
  802. package/src/tools/oem-code-pages.ts +22 -0
  803. package/src/tools/schedules/schedule-tool.ts +38 -5
  804. package/src/tools/schedules/types.ts +23 -3
  805. package/src/tools/task/list.ts +15 -7
  806. package/src/tools/task/present.ts +37 -7
  807. package/src/tools/task/update.ts +12 -5
  808. package/src/tools/text-window.ts +87 -0
  809. package/src/toolsets/manager.ts +132 -2
  810. package/src/turn/memory-recall.ts +5 -1
  811. package/src/types/acp/index.ts +150 -4
  812. package/src/types/agent/base.ts +3 -0
  813. package/src/types/agent/manager.ts +8 -23
  814. package/src/types/agent/scheduler.ts +10 -1
  815. package/src/types/agent/task.ts +4 -0
  816. package/src/types/connector/mcp.ts +7 -0
  817. package/src/types/errors/catalog.ts +4 -2
  818. package/src/types/harness/schema.ts +203 -0
  819. package/src/types/harness/session.ts +306 -0
  820. package/src/types/hitl/index.ts +17 -1
  821. package/src/types/job/index.ts +42 -0
  822. package/src/types/memory/index.ts +43 -0
  823. package/src/types/message/inbound-delivery.ts +63 -0
  824. package/src/types/message/index.ts +8 -1
  825. package/src/types/plugin/index.ts +11 -6
  826. package/src/types/sandbox/index.ts +46 -0
  827. package/src/types/session/checkpoint.ts +4 -1
  828. package/src/types/session/events.ts +23 -1
  829. package/src/types/session/records.ts +114 -2
  830. package/src/types/session/step.ts +2 -0
  831. package/src/types/session/store.ts +23 -9
  832. package/src/types/session/tool-execution.ts +6 -0
  833. package/src/types/structured-output/index.ts +13 -2
  834. package/src/types/summary/ref.ts +3 -1
  835. package/src/types/tool/index.ts +39 -5
  836. package/src/types/tool/presentation.ts +121 -0
  837. package/src/utils/json-snapshot.ts +26 -9
  838. package/src/utils/structured-result-json.ts +10 -0
@@ -144,8 +144,10 @@ export const DEFAULT_ERROR_RULES: readonly ErrorCatalogRule[] = [
144
144
  // separates them when the provider sent it.
145
145
  id: 'provider.permission',
146
146
  when: (facts) => facts.status === 403,
147
- message: 'The credentials are valid but not permitted to use this model.',
148
- hint: 'The key authenticated, so this is an entitlement rather than a secret problem: check the model name and whether the account has access to it.',
147
+ // A 403 says the request was refused, not that a key was accepted: some providers answer
148
+ // a request that carried no key at all (a keyless free tier) with the same status.
149
+ message: 'The provider refused this request.',
150
+ hint: 'Check the model name and whether the account behind your key has access to it. If no key was sent, add one or choose another provider.',
149
151
  },
150
152
  {
151
153
  id: 'provider.auth',
@@ -0,0 +1,203 @@
1
+ import { z } from 'zod'
2
+ import { isEntityId } from '../../utils/id.js'
3
+ import type { MessageId, TurnId } from '../ids/index.js'
4
+ import type { HarnessEvent, HarnessJson } from './session.js'
5
+
6
+ const opaque = z
7
+ .string()
8
+ .min(1)
9
+ .max(4096)
10
+ .refine((v) => !Array.from(v).some((c) => c.charCodeAt(0) < 32))
11
+ const text = z.string().max(1024 * 1024)
12
+ const digest = z.string().regex(/^[a-f0-9]{64}$/)
13
+ const turnId = z.custom<TurnId>((v) => isEntityId(v, 'turn'))
14
+ const messageId = z.custom<MessageId>((v) => isEntityId(v, 'message'))
15
+
16
+ function validJson(value: unknown, depth = 0, budget = { nodes: 0 }): boolean {
17
+ if (depth > 32 || ++budget.nodes > 50000) return false
18
+ if (value === null || typeof value === 'boolean') return true
19
+ if (typeof value === 'number') return Number.isFinite(value)
20
+ if (typeof value === 'string') return value.length <= 1024 * 1024
21
+ if (Array.isArray(value)) return value.every((v) => validJson(v, depth + 1, budget))
22
+ if (typeof value !== 'object' || Object.getPrototypeOf(value) !== Object.prototype) return false
23
+ return Object.entries(value).every(
24
+ ([k, v]) => k.length <= 4096 && validJson(v, depth + 1, budget),
25
+ )
26
+ }
27
+ const json = z
28
+ .custom<HarnessJson>((v) => validJson(v))
29
+ .refine((v) => JSON.stringify(v).length <= 1024 * 1024)
30
+
31
+ export const HarnessBindingSchema = z
32
+ .object({
33
+ v: z.literal(1),
34
+ engineId: opaque,
35
+ profileRef: opaque,
36
+ nativeSessionId: opaque,
37
+ cwd: opaque,
38
+ initialModel: opaque,
39
+ })
40
+ .strict()
41
+ const nativeTurn = {
42
+ nativeSessionId: opaque,
43
+ nativeTurnId: opaque,
44
+ turnIdSource: z.enum(['engine', 'operation']).optional(),
45
+ }
46
+ const nativeItem = { ...nativeTurn, nativeItemId: opaque }
47
+ export const HarnessNativeTurnSchema = z.object(nativeTurn).strict()
48
+ export const HarnessReviewRequestSchema = z
49
+ .object({
50
+ ...nativeTurn,
51
+ requestId: opaque,
52
+ nativeItemId: opaque.optional(),
53
+ kind: z.enum(['command', 'file-change', 'tool']),
54
+ title: opaque,
55
+ input: json,
56
+ decisions: z
57
+ .array(z.enum(['approve-once', 'reject', 'cancel']))
58
+ .min(1)
59
+ .max(3),
60
+ })
61
+ .strict()
62
+ export const HarnessDecisionSchema = z.discriminatedUnion('kind', [
63
+ z.object({ kind: z.literal('approve-once'), updatedInput: json.optional() }).strict(),
64
+ z.object({ kind: z.literal('reject'), feedback: text.optional() }).strict(),
65
+ z.object({ kind: z.literal('cancel') }).strict(),
66
+ ])
67
+ const part = z
68
+ .object({ id: opaque, text, phase: z.enum(['commentary', 'final_answer']).optional() })
69
+ .strict()
70
+ export const HarnessEventSchema: z.ZodType<HarnessEvent> = z.discriminatedUnion('kind', [
71
+ z.object({ kind: z.literal('turn-started'), ...nativeTurn, model: opaque.optional() }).strict(),
72
+ z.object({ kind: z.literal('message-started'), ...nativeItem }).strict(),
73
+ z
74
+ .object({
75
+ kind: z.literal('text-delta'),
76
+ ...nativeItem,
77
+ text,
78
+ part: part.omit({ text: true }).optional(),
79
+ })
80
+ .strict(),
81
+ z
82
+ .object({
83
+ kind: z.literal('message-completed'),
84
+ ...nativeItem,
85
+ content: text,
86
+ parts: z.array(part).max(10000).optional(),
87
+ stopReason: z.enum([
88
+ 'end_turn',
89
+ 'tool_use',
90
+ 'max_tokens',
91
+ 'stop_sequence',
92
+ 'pause_turn',
93
+ 'refusal',
94
+ 'forced_finalize',
95
+ 'cancelled',
96
+ ]),
97
+ })
98
+ .strict(),
99
+ z
100
+ .object({
101
+ kind: z.literal('reasoning'),
102
+ ...nativeItem,
103
+ blockId: opaque,
104
+ status: z.enum(['pending', 'completed']),
105
+ text: text.optional(),
106
+ })
107
+ .strict(),
108
+ z.object({ kind: z.literal('tool-started'), ...nativeItem, name: opaque, input: json }).strict(),
109
+ z.object({ kind: z.literal('tool-output'), ...nativeItem, text }).strict(),
110
+ z
111
+ .object({
112
+ kind: z.literal('tool-completed'),
113
+ ...nativeItem,
114
+ name: opaque,
115
+ result: text,
116
+ status: z.enum(['completed', 'failed', 'declined', 'cancelled']),
117
+ durationMs: z.number().int().nonnegative().safe().optional(),
118
+ })
119
+ .strict(),
120
+ z.object({ kind: z.literal('review-requested'), request: HarnessReviewRequestSchema }).strict(),
121
+ z.object({ kind: z.literal('review-resolved'), ...nativeTurn, requestId: opaque }).strict(),
122
+ z
123
+ .object({
124
+ kind: z.literal('turn-completed'),
125
+ ...nativeTurn,
126
+ status: z.enum(['completed', 'failed', 'cancelled']),
127
+ finalItemId: opaque.optional(),
128
+ result: text.optional(),
129
+ error: z.object({ code: opaque, message: text }).strict().optional(),
130
+ })
131
+ .strict(),
132
+ z
133
+ .object({ kind: z.literal('connection-lost'), code: opaque, mayBeRunning: z.boolean() })
134
+ .strict(),
135
+ ])
136
+
137
+ export const HarnessJournalTransitionSchema = z.discriminatedUnion('kind', [
138
+ z
139
+ .object({
140
+ kind: z.literal('dispatch-prepared'),
141
+ model: opaque.optional(),
142
+ effort: z
143
+ .enum(['none', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max', 'ultra'])
144
+ .optional(),
145
+ permissionMode: z.enum(['prompt', 'auto', 'accept-edits', 'plan', 'strict']).optional(),
146
+ operationId: opaque,
147
+ turnId,
148
+ promptId: messageId,
149
+ digest,
150
+ })
151
+ .strict(),
152
+ z
153
+ .object({
154
+ kind: z.literal('dispatch-accepted'),
155
+ operationId: opaque,
156
+ turnId,
157
+ nativeTurn: HarnessNativeTurnSchema,
158
+ })
159
+ .strict(),
160
+ z
161
+ .object({
162
+ kind: z.literal('item-bound'),
163
+ turnId,
164
+ nativeItem: z.object(nativeItem).strict(),
165
+ messageId: messageId.optional(),
166
+ toolUseId: opaque.optional(),
167
+ })
168
+ .strict(),
169
+ z
170
+ .object({
171
+ kind: z.literal('review-requested'),
172
+ turnId,
173
+ request: HarnessReviewRequestSchema,
174
+ digest,
175
+ })
176
+ .strict(),
177
+ z
178
+ .object({
179
+ kind: z.literal('review-decided'),
180
+ turnId,
181
+ requestId: opaque,
182
+ requestDigest: digest,
183
+ decisionDigest: digest,
184
+ decision: HarnessDecisionSchema,
185
+ })
186
+ .strict(),
187
+ z.object({ kind: z.literal('review-resolved'), turnId, requestId: opaque }).strict(),
188
+ z
189
+ .object({ kind: z.literal('connection-lost'), turnId: turnId.optional(), code: opaque })
190
+ .strict(),
191
+ ])
192
+
193
+ /** Clone at ingress, before any host callback can suspend, and freeze every nested value. */
194
+ export function harnessSnapshot<T>(value: T): T {
195
+ const copy = structuredClone(value)
196
+ const freeze = (v: unknown): void => {
197
+ if (!v || typeof v !== 'object') return
198
+ for (const entry of Object.values(v)) freeze(entry)
199
+ Object.freeze(v)
200
+ }
201
+ freeze(copy)
202
+ return copy
203
+ }
@@ -0,0 +1,306 @@
1
+ import type { ReviewMode } from '../../runtime/query/review-policy.js'
2
+ import type { SessionLog } from '../../store/session-log/index.js'
3
+ /**
4
+ * A session whose execution and tools belong to a host-composed external harness.
5
+ * SDK code contains no vendor import, process runner or credential discovery.
6
+ * Existing Namzu query/LLMProvider/tool execution is unchanged.
7
+ */
8
+ import type {
9
+ MessageId,
10
+ ProjectId,
11
+ SessionId,
12
+ TenantId,
13
+ ToolUseId,
14
+ TopicId,
15
+ TurnId,
16
+ } from '../ids/index.js'
17
+ import type { Message } from '../message/index.js'
18
+ import type { ReasoningEffort } from '../provider/index.js'
19
+ import type { SessionEvent } from '../session/events.js'
20
+
21
+ export type HarnessJson =
22
+ | null
23
+ | boolean
24
+ | number
25
+ | string
26
+ | readonly HarnessJson[]
27
+ | { readonly [key: string]: HarnessJson }
28
+
29
+ /** Native IDs remain opaque strings and are NEVER parsed as Namzu UUIDs. */
30
+ export interface HarnessBinding {
31
+ readonly v: 1
32
+ readonly engineId: string
33
+ /** Host-owned opaque identity for executable/state-home/account selection; no credentials. */
34
+ readonly profileRef: string
35
+ /** Exact native conversation/thread identifier, not a shared root or Namzu session ID. */
36
+ readonly nativeSessionId: string
37
+ /** Canonical absolute native execution directory, confirmed by the adapter. */
38
+ readonly cwd: string
39
+ /** Verified initial selection; later changes are captured per turn, never engine changes. */
40
+ readonly initialModel: string
41
+ }
42
+
43
+ export interface HarnessScope {
44
+ readonly sessionId: SessionId
45
+ readonly tenantId: TenantId
46
+ readonly projectId: ProjectId
47
+ readonly topicId: TopicId
48
+ readonly cwd: string
49
+ }
50
+
51
+ /** Values established from the installed engine/protocol, never copied from Namzu providers. */
52
+ export interface HarnessCapabilities {
53
+ readonly persistentSessions: boolean
54
+ readonly history: 'snapshot' | 'unavailable'
55
+ readonly models: 'discover' | 'configured' | 'unavailable'
56
+ readonly permissions: 'interactive' | 'deny-only' | 'unavailable'
57
+ readonly interrupt: 'native-terminal' | 'process-stop' | 'unavailable'
58
+ readonly attachments: readonly ('image' | 'file')[]
59
+ readonly effortLevels?: readonly ReasoningEffort[]
60
+ /** Common UI may offer only modes actually mapped by this engine. */
61
+ readonly reviewModes: readonly ReviewMode[]
62
+ }
63
+
64
+ export interface HarnessModel {
65
+ readonly id: string
66
+ readonly label: string
67
+ readonly effortLevels?: readonly ReasoningEffort[]
68
+ readonly defaultEffort?: ReasoningEffort
69
+ }
70
+
71
+ export interface HarnessNativeTurn {
72
+ readonly nativeSessionId: string
73
+ readonly nativeTurnId: string
74
+ /** Explicit operation correlation when the engine exposes no native turn ID. */
75
+ readonly turnIdSource?: 'engine' | 'operation'
76
+ }
77
+
78
+ export interface HarnessNativeItem extends HarnessNativeTurn {
79
+ readonly nativeItemId: string
80
+ }
81
+
82
+ export interface HarnessPublicTextPart {
83
+ readonly id: string
84
+ readonly text: string
85
+ readonly phase?: 'commentary' | 'final_answer'
86
+ }
87
+
88
+ export type HarnessDecision =
89
+ | { readonly kind: 'approve-once'; readonly updatedInput?: HarnessJson }
90
+ | { readonly kind: 'reject'; readonly feedback?: string }
91
+ | { readonly kind: 'cancel' }
92
+
93
+ export interface HarnessReviewRequest extends HarnessNativeTurn {
94
+ readonly requestId: string
95
+ readonly nativeItemId?: string
96
+ readonly kind: 'command' | 'file-change' | 'tool'
97
+ readonly title: string
98
+ /** Public proposed operation only. No raw RPC frame, credentials or private thinking. */
99
+ readonly input: HarnessJson
100
+ readonly decisions: readonly HarnessDecision['kind'][]
101
+ }
102
+
103
+ /** A NEW, namespaced port union. No new existing SessionEvent discriminants. */
104
+ export type HarnessEvent =
105
+ | (HarnessNativeTurn & { readonly kind: 'turn-started'; readonly model?: string })
106
+ | (HarnessNativeItem & { readonly kind: 'message-started' })
107
+ | (HarnessNativeItem & {
108
+ readonly kind: 'text-delta'
109
+ readonly text: string
110
+ readonly part?: Pick<HarnessPublicTextPart, 'id' | 'phase'>
111
+ })
112
+ | (HarnessNativeItem & {
113
+ readonly kind: 'message-completed'
114
+ readonly content: string
115
+ readonly parts?: readonly HarnessPublicTextPart[]
116
+ readonly stopReason: import('../session/stop-reason.js').MessageStopReason
117
+ })
118
+ | (HarnessNativeItem & {
119
+ readonly kind: 'reasoning'
120
+ readonly blockId: string
121
+ readonly status: 'pending' | 'completed'
122
+ /** Only engine-documented public summary/thinking; never replay/signature material. */
123
+ readonly text?: string
124
+ })
125
+ | (HarnessNativeItem & {
126
+ readonly kind: 'tool-started'
127
+ readonly name: string
128
+ readonly input: HarnessJson
129
+ })
130
+ | (HarnessNativeItem & { readonly kind: 'tool-output'; readonly text: string })
131
+ | (HarnessNativeItem & {
132
+ readonly kind: 'tool-completed'
133
+ readonly name: string
134
+ readonly result: string
135
+ readonly status: 'completed' | 'failed' | 'declined' | 'cancelled'
136
+ readonly durationMs?: number
137
+ })
138
+ | { readonly kind: 'review-requested'; readonly request: HarnessReviewRequest }
139
+ | (HarnessNativeTurn & { readonly kind: 'review-resolved'; readonly requestId: string })
140
+ | (HarnessNativeTurn & {
141
+ readonly kind: 'turn-completed'
142
+ readonly status: 'completed' | 'failed' | 'cancelled'
143
+ readonly finalItemId?: string
144
+ readonly result?: string
145
+ readonly error?: { readonly code: string; readonly message: string }
146
+ })
147
+ | {
148
+ readonly kind: 'connection-lost'
149
+ readonly code: string
150
+ /** True never implies that native work stopped. */
151
+ readonly mayBeRunning: boolean
152
+ }
153
+
154
+ /** Resolve after validation/persistence/publication, never await a human answer here. */
155
+ export type HarnessEventSink = (event: HarnessEvent) => Promise<void>
156
+
157
+ export interface HarnessPrompt {
158
+ /** Actual host operation identity for this admitted prompt, persisted before send. */
159
+ readonly operationId: string
160
+ readonly prompt: string
161
+ readonly model: string
162
+ readonly effort?: ReasoningEffort
163
+ readonly permissionMode: ReviewMode
164
+ readonly signal?: AbortSignal
165
+ }
166
+
167
+ export interface HarnessHistorySnapshot {
168
+ readonly binding: HarnessBinding
169
+ readonly activeTurn?: HarnessNativeTurn
170
+ /** Authoritative lifecycle/items, not byte-for-byte replay of ephemeral deltas. */
171
+ readonly events: readonly Exclude<
172
+ HarnessEvent,
173
+ { readonly kind: 'text-delta' | 'tool-output' | 'connection-lost' }
174
+ >[]
175
+ readonly pendingReviews: readonly HarnessReviewRequest[]
176
+ readonly complete: boolean
177
+ }
178
+
179
+ export interface HarnessConnection {
180
+ readonly binding: HarnessBinding
181
+ readonly capabilities: HarnessCapabilities
182
+ models(signal?: AbortSignal): Promise<readonly HarnessModel[]>
183
+ /** ACK may follow terminal event. It must not resurrect a finished turn. */
184
+ dispatch(input: HarnessPrompt): Promise<HarnessNativeTurn>
185
+ /** Receipt means requested only; SDK waits for correlated terminal/confirmed owned stop. */
186
+ interrupt(turn: HarnessNativeTurn): Promise<{ readonly requested: true }>
187
+ /** Validate exact current native request, then send one of that request's decisions. */
188
+ respond(
189
+ request: HarnessReviewRequest,
190
+ decision: HarnessDecision,
191
+ ): Promise<{ readonly sent: true }>
192
+ /** Never resends a prompt. Absence/incomplete history leaves explicit reconciliation required. */
193
+ readHistory(signal?: AbortSignal): Promise<HarnessHistorySnapshot>
194
+ /** Success confirms own process/children stopped; rejection retains handle for retry. */
195
+ close(): Promise<{ readonly stopped: true }>
196
+ }
197
+
198
+ export interface HarnessAdapter {
199
+ readonly engineId: string
200
+ readonly profileRef: string
201
+ /** Subscribe BEFORE spawn/initialize/open/resume so early items/requests cannot be lost. */
202
+ open(
203
+ input: {
204
+ readonly cwd: string
205
+ readonly model?: string
206
+ readonly resume?: HarnessBinding
207
+ readonly signal?: AbortSignal
208
+ },
209
+ onEvent: HarnessEventSink,
210
+ ): Promise<HarnessConnection>
211
+ }
212
+
213
+ export interface HarnessAdmissionRequest {
214
+ readonly kind: 'open' | 'run' | 'approval' | 'reconnect'
215
+ readonly scope: HarnessScope
216
+ readonly binding?: HarnessBinding
217
+ readonly nativeTurn?: HarnessNativeTurn
218
+ readonly review?: HarnessReviewRequest
219
+ }
220
+
221
+ export interface HarnessSessionOptions {
222
+ readonly scope: HarnessScope
223
+ readonly sessionLog: SessionLog
224
+ readonly adapter: HarnessAdapter
225
+ /** REQUIRED current trusted host boundary: canonical cwd/trust/user ownership, ordinary only. */
226
+ readonly assertAdmission: (
227
+ request: HarnessAdmissionRequest,
228
+ signal?: AbortSignal,
229
+ ) => Promise<void>
230
+ readonly onEvent: (event: SessionEvent) => void | Promise<void>
231
+ readonly onReview: (request: HarnessReviewRequest) => void | Promise<void>
232
+ }
233
+
234
+ export interface HarnessTurnOutcome {
235
+ readonly turnId: TurnId
236
+ readonly nativeTurn: HarnessNativeTurn
237
+ readonly status: 'completed' | 'failed' | 'cancelled'
238
+ readonly messages: readonly Message[]
239
+ }
240
+
241
+ export interface HarnessSession {
242
+ readonly scope: HarnessScope
243
+ readonly binding: HarnessBinding | undefined
244
+ /** Exact admitted turn pointer for host cancellation; never a model-supplied ID. */
245
+ readonly currentTurnId: TurnId | undefined
246
+ readonly status:
247
+ | 'disconnected'
248
+ | 'idle'
249
+ | 'running'
250
+ | 'waiting'
251
+ | 'reconciliation-required'
252
+ | 'closed'
253
+ /** Public durable text only; no native process startup. */
254
+ history(): Promise<readonly Message[]>
255
+ /** Reject concurrent turn operations. CLI/desktop owns its visible queue. */
256
+ run(input: Omit<HarnessPrompt, 'operationId'>): Promise<HarnessTurnOutcome>
257
+ /** Exact expected turn pointer prevents a stale Stop from cancelling the next turn. */
258
+ cancel(expectedTurnId: TurnId): Promise<{ readonly stopped: true; readonly turnId: TurnId }>
259
+ /** SDK adds current writer generation/request digest internally; renderer cannot supply authority. */
260
+ respond(request: HarnessReviewRequest, decision: HarnessDecision): Promise<void>
261
+ reconnect(signal?: AbortSignal): Promise<void>
262
+ close(): Promise<void>
263
+ }
264
+
265
+ /** Typed journal receipts stored in the existing session_updated record. */
266
+ export type HarnessJournalTransition =
267
+ | {
268
+ readonly kind: 'dispatch-prepared'
269
+ /** Actual admitted selection; engine binding remains immutable. */
270
+ readonly model?: string
271
+ readonly effort?: ReasoningEffort
272
+ readonly permissionMode?: ReviewMode
273
+ readonly operationId: string
274
+ readonly turnId: TurnId
275
+ readonly promptId: MessageId
276
+ readonly digest: string
277
+ }
278
+ | {
279
+ readonly kind: 'dispatch-accepted'
280
+ readonly operationId: string
281
+ readonly turnId: TurnId
282
+ readonly nativeTurn: HarnessNativeTurn
283
+ }
284
+ | {
285
+ readonly kind: 'item-bound'
286
+ readonly turnId: TurnId
287
+ readonly nativeItem: HarnessNativeItem
288
+ readonly messageId?: MessageId
289
+ readonly toolUseId?: ToolUseId
290
+ }
291
+ | {
292
+ readonly kind: 'review-requested'
293
+ readonly turnId: TurnId
294
+ readonly request: HarnessReviewRequest
295
+ readonly digest: string
296
+ }
297
+ | {
298
+ readonly kind: 'review-decided'
299
+ readonly turnId: TurnId
300
+ readonly requestId: string
301
+ readonly requestDigest: string
302
+ readonly decisionDigest: string
303
+ readonly decision: HarnessDecision
304
+ }
305
+ | { readonly kind: 'review-resolved'; readonly turnId: TurnId; readonly requestId: string }
306
+ | { readonly kind: 'connection-lost'; readonly turnId?: TurnId; readonly code: string }
@@ -3,6 +3,12 @@ import type { CheckpointId, PlanId, SessionId, TurnId } from '../ids/index.js'
3
3
 
4
4
  export type { CheckpointId }
5
5
 
6
+ /** A person's No to a tool call. See the `declined` field of `reject_tools`. */
7
+ export interface ToolCallDeclined {
8
+ /** What the person said about it, in their own words. */
9
+ readonly note?: string
10
+ }
11
+
6
12
  export type HITLResumeDecision =
7
13
  | { action: 'continue' }
8
14
  | { action: 'approve_plan'; feedback?: string }
@@ -56,7 +62,17 @@ export type HITLResumeDecision =
56
62
  /** See the `approve_tools` field of the same name. */
57
63
  confirmedEscalations?: readonly string[]
58
64
  }
59
- | { action: 'reject_tools'; feedback: string }
65
+ | {
66
+ action: 'reject_tools'
67
+ feedback: string
68
+ /**
69
+ * Present only when a person answered No. `feedback` is what the
70
+ * MODEL is told and a policy refusal fills it too, so it cannot say
71
+ * who refused; this does. `note` is the person's own words, apart
72
+ * from any wrapper a host put around them in `feedback`.
73
+ */
74
+ declined?: ToolCallDeclined
75
+ }
60
76
  | {
61
77
  action: 'answer_question'
62
78
  selectedOptionIds: string[]
@@ -0,0 +1,42 @@
1
+ /** A literal condition on one existing background job's output. */
2
+ export interface BackgroundJobOutputWaitOptions {
3
+ /** Non-empty UTF-8 literal, at most 4096 bytes. Never a regular expression. */
4
+ readonly literal: string
5
+ /** Match each pipe independently; `either` never joins stdout to stderr. */
6
+ readonly stream?: 'stdout' | 'stderr' | 'either'
7
+ /** Combined output byte cursor, as returned by `read` or an earlier wait. */
8
+ readonly fromOffset?: number
9
+ /** Required wall bound, from 1 millisecond through one hour. */
10
+ readonly timeoutMs: number
11
+ /** Optional silence bound, reset by output from either pipe. */
12
+ readonly idleTimeoutMs?: number
13
+ /** Cancels this observation, without stopping the process. */
14
+ readonly signal?: AbortSignal
15
+ }
16
+
17
+ /** Evidence and cursor common to every readiness wait outcome. */
18
+ export interface BackgroundJobOutputWaitProgress {
19
+ readonly status: string
20
+ readonly exitCode?: number
21
+ /** Why the command never started, when it could not. */
22
+ readonly error?: string
23
+ /** Mixed stdout/stderr tail, at most 32 KiB. Treat process output as untrusted. */
24
+ readonly output: string
25
+ readonly nextOffset: number
26
+ /** Bytes unavailable because the job's normal output cap discarded them. */
27
+ readonly droppedBytes: number
28
+ /** Available output excluded from matching by the bounded channel history. */
29
+ readonly unsearchedBytes: number
30
+ /** Earlier observed bytes omitted from the bounded result text. */
31
+ readonly omittedOutputBytes: number
32
+ }
33
+
34
+ /** A matched marker proves its appearance, not process completion or service health. */
35
+ export type BackgroundJobOutputWaitResult = BackgroundJobOutputWaitProgress &
36
+ (
37
+ | { readonly kind: 'matched'; readonly matchedStream: 'stdout' | 'stderr' }
38
+ | { readonly kind: 'exited' }
39
+ | { readonly kind: 'stopped' }
40
+ | { readonly kind: 'timeout'; readonly cause: 'wall' | 'idle'; readonly elapsedMs: number }
41
+ | { readonly kind: 'aborted' }
42
+ )
@@ -80,6 +80,11 @@ export interface MemoryRecord {
80
80
  readonly content: MemoryContent
81
81
  }
82
82
 
83
+ /** A full record and an opaque token for that exact logical snapshot. */
84
+ export interface VersionedMemoryRecord extends MemoryRecord {
85
+ readonly revision: string
86
+ }
87
+
83
88
  export interface MemorySearchParams {
84
89
  readonly query?: string
85
90
  readonly tags?: string[]
@@ -87,11 +92,22 @@ export interface MemorySearchParams {
87
92
  readonly limit?: number
88
93
  /** Match at least one exact normalized word token before limiting results. Empty means no constraint. */
89
94
  readonly requiredIdentifiers?: readonly string[]
95
+ /** Maximum indexed candidates to examine in one page; omitted scans all. */
96
+ readonly maxScanned?: number
97
+ /** Skip this many candidates in newest-first scan order; a new search starts at zero. */
98
+ readonly scanOffset?: number
90
99
  }
91
100
 
92
101
  export interface MemorySearchResult {
93
102
  readonly entries: readonly MemoryIndexEntry[]
103
+ /** Exact unless truncated is true; then counts matches in the scanned candidates only. */
94
104
  readonly totalCount: number
105
+ /** True when the search stopped before examining all eligible candidates. */
106
+ readonly truncated?: boolean
107
+ /** Number of eligible candidates examined in this page. */
108
+ readonly scannedCount?: number
109
+ /** Pass as scanOffset to inspect the next page; absent when this scan reached the end. */
110
+ readonly nextScanOffset?: number
95
111
  }
96
112
 
97
113
  export interface CreateMemoryParams {
@@ -128,6 +144,33 @@ export interface MemoryStore {
128
144
  list(params?: MemorySearchParams): Promise<MemorySearchResult>
129
145
  }
130
146
 
147
+ /**
148
+ * Opt-in compare-and-set operations. A supplied revision is checked together
149
+ * with the mutation, under the store's own coordination boundary. Implementing
150
+ * only one of these methods is not enough to advertise conditional writes.
151
+ */
152
+ export interface ConditionalMemoryStore extends MemoryStore {
153
+ /** The record and a token covering its complete logical snapshot. */
154
+ getVersionedRecord(id: MemoryId): Promise<VersionedMemoryRecord | undefined>
155
+ /** Throw MemoryRevisionConflictError if the record changed or disappeared. */
156
+ updateIfRevision(
157
+ id: MemoryId,
158
+ updates: UpdateMemoryParams,
159
+ expectedRevision: string,
160
+ ): Promise<MemoryIndexEntry>
161
+ /** Throw MemoryRevisionConflictError if the record changed or disappeared. */
162
+ deleteIfRevision(id: MemoryId, expectedRevision: string): Promise<void>
163
+ }
164
+
165
+ export function hasConditionalMemoryWrites(store: MemoryStore): store is ConditionalMemoryStore {
166
+ const candidate = store as Partial<ConditionalMemoryStore>
167
+ return (
168
+ typeof candidate.getVersionedRecord === 'function' &&
169
+ typeof candidate.updateIfRevision === 'function' &&
170
+ typeof candidate.deleteIfRevision === 'function'
171
+ )
172
+ }
173
+
131
174
  export interface MemoryIndex {
132
175
  search(params: MemorySearchParams): MemorySearchResult
133
176
  getEntry(id: MemoryId): MemoryIndexEntry | undefined