@xrkseek/harness 0.4.2 → 0.4.4

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 (423) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/node_modules/@xrkseek/a2a/README.md +43 -0
  6. package/node_modules/@xrkseek/a2a/dist/client.d.ts +35 -0
  7. package/node_modules/@xrkseek/a2a/dist/client.d.ts.map +1 -0
  8. package/node_modules/@xrkseek/a2a/dist/client.js +229 -0
  9. package/node_modules/@xrkseek/a2a/dist/client.js.map +1 -0
  10. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts +42 -0
  11. package/node_modules/@xrkseek/a2a/dist/inbound.d.ts.map +1 -0
  12. package/node_modules/@xrkseek/a2a/dist/inbound.js +263 -0
  13. package/node_modules/@xrkseek/a2a/dist/inbound.js.map +1 -0
  14. package/node_modules/@xrkseek/a2a/dist/index.d.ts +6 -0
  15. package/node_modules/@xrkseek/a2a/dist/index.d.ts.map +1 -0
  16. package/node_modules/@xrkseek/a2a/dist/index.js +6 -0
  17. package/node_modules/@xrkseek/a2a/dist/index.js.map +1 -0
  18. package/node_modules/@xrkseek/a2a/dist/peers.d.ts +25 -0
  19. package/node_modules/@xrkseek/a2a/dist/peers.d.ts.map +1 -0
  20. package/node_modules/@xrkseek/a2a/dist/peers.js +90 -0
  21. package/node_modules/@xrkseek/a2a/dist/peers.js.map +1 -0
  22. package/node_modules/@xrkseek/a2a/dist/protocol.d.ts +45 -0
  23. package/node_modules/@xrkseek/a2a/dist/protocol.d.ts.map +1 -0
  24. package/node_modules/@xrkseek/a2a/dist/protocol.js +172 -0
  25. package/node_modules/@xrkseek/a2a/dist/protocol.js.map +1 -0
  26. package/node_modules/@xrkseek/a2a/dist/tools.d.ts +10 -0
  27. package/node_modules/@xrkseek/a2a/dist/tools.d.ts.map +1 -0
  28. package/node_modules/@xrkseek/a2a/dist/tools.js +145 -0
  29. package/node_modules/@xrkseek/a2a/dist/tools.js.map +1 -0
  30. package/node_modules/@xrkseek/a2a/package.json +28 -0
  31. package/node_modules/@xrkseek/attachment/README.md +23 -17
  32. package/node_modules/@xrkseek/attachment/dist/image-tokens.d.ts +30 -0
  33. package/node_modules/@xrkseek/attachment/dist/image-tokens.d.ts.map +1 -0
  34. package/node_modules/@xrkseek/attachment/dist/image-tokens.js +142 -0
  35. package/node_modules/@xrkseek/attachment/dist/image-tokens.js.map +1 -0
  36. package/node_modules/@xrkseek/attachment/dist/index.d.ts +2 -0
  37. package/node_modules/@xrkseek/attachment/dist/index.d.ts.map +1 -1
  38. package/node_modules/@xrkseek/attachment/dist/index.js +2 -0
  39. package/node_modules/@xrkseek/attachment/dist/index.js.map +1 -1
  40. package/node_modules/@xrkseek/attachment/dist/request-projection.d.ts +20 -0
  41. package/node_modules/@xrkseek/attachment/dist/request-projection.d.ts.map +1 -0
  42. package/node_modules/@xrkseek/attachment/dist/request-projection.js +49 -0
  43. package/node_modules/@xrkseek/attachment/dist/request-projection.js.map +1 -0
  44. package/node_modules/@xrkseek/attachment-local/dist/request-image.d.ts +2 -11
  45. package/node_modules/@xrkseek/attachment-local/dist/request-image.d.ts.map +1 -1
  46. package/node_modules/@xrkseek/attachment-local/dist/request-image.js +3 -29
  47. package/node_modules/@xrkseek/attachment-local/dist/request-image.js.map +1 -1
  48. package/node_modules/@xrkseek/checkpoint/README.md +4 -2
  49. package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts +6 -0
  50. package/node_modules/@xrkseek/checkpoint/dist/process-git.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/checkpoint/dist/process-git.js +23 -1
  52. package/node_modules/@xrkseek/checkpoint/dist/process-git.js.map +1 -1
  53. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts +30 -2
  54. package/node_modules/@xrkseek/checkpoint/dist/store.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/checkpoint/dist/store.js +58 -15
  56. package/node_modules/@xrkseek/checkpoint/dist/store.js.map +1 -1
  57. package/node_modules/@xrkseek/checkpoint/dist/types.d.ts +14 -4
  58. package/node_modules/@xrkseek/checkpoint/dist/types.d.ts.map +1 -1
  59. package/node_modules/@xrkseek/checkpoint/dist/types.js.map +1 -1
  60. package/node_modules/@xrkseek/checkpoint/package.json +4 -1
  61. package/node_modules/@xrkseek/context-fragments/dist/index.d.ts +14 -0
  62. package/node_modules/@xrkseek/context-fragments/dist/index.d.ts.map +1 -1
  63. package/node_modules/@xrkseek/context-fragments/dist/index.js +33 -0
  64. package/node_modules/@xrkseek/context-fragments/dist/index.js.map +1 -1
  65. package/node_modules/@xrkseek/core-agent/dist/index.d.ts +7 -0
  66. package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
  67. package/node_modules/@xrkseek/core-agent/dist/index.js +6 -0
  68. package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
  69. package/node_modules/@xrkseek/core-agent-loop/dist/compaction.d.ts.map +1 -1
  70. package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js +1 -0
  71. package/node_modules/@xrkseek/core-agent-loop/dist/compaction.js.map +1 -1
  72. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +18 -0
  73. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  74. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +98 -50
  75. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  76. package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts +7 -2
  77. package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts.map +1 -1
  78. package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js +7 -3
  79. package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js.map +1 -1
  80. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +23 -2
  81. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
  82. package/node_modules/@xrkseek/core-session/dist/compaction.js +50 -3
  83. package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
  84. package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts +2 -2
  85. package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts.map +1 -1
  86. package/node_modules/@xrkseek/core-session/dist/drain-hub.js +2 -2
  87. package/node_modules/@xrkseek/core-session/dist/drain-hub.js.map +1 -1
  88. package/node_modules/@xrkseek/core-session/dist/index.d.ts +2 -2
  89. package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
  90. package/node_modules/@xrkseek/core-session/dist/index.js +1 -1
  91. package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
  92. package/node_modules/@xrkseek/core-session/dist/latch.d.ts +25 -3
  93. package/node_modules/@xrkseek/core-session/dist/latch.d.ts.map +1 -1
  94. package/node_modules/@xrkseek/core-session/dist/latch.js +33 -12
  95. package/node_modules/@xrkseek/core-session/dist/latch.js.map +1 -1
  96. package/node_modules/@xrkseek/core-session/package.json +1 -0
  97. package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts +1 -0
  98. package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts.map +1 -1
  99. package/node_modules/@xrkseek/core-system-prompt/dist/index.js +1 -0
  100. package/node_modules/@xrkseek/core-system-prompt/dist/index.js.map +1 -1
  101. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts +22 -0
  102. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts.map +1 -0
  103. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js +47 -0
  104. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js.map +1 -0
  105. package/node_modules/@xrkseek/core-tools/dist/definition.d.ts +14 -0
  106. package/node_modules/@xrkseek/core-tools/dist/definition.d.ts.map +1 -1
  107. package/node_modules/@xrkseek/core-tools/dist/definition.js.map +1 -1
  108. package/node_modules/@xrkseek/core-tools/dist/index.d.ts +2 -2
  109. package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
  110. package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
  111. package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
  112. package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts +9 -3
  113. package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts.map +1 -1
  114. package/node_modules/@xrkseek/core-tools/dist/materialize.js +38 -8
  115. package/node_modules/@xrkseek/core-tools/dist/materialize.js.map +1 -1
  116. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts +2 -0
  117. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts.map +1 -1
  118. package/node_modules/@xrkseek/exec-computer-use/dist/format.js +4 -1
  119. package/node_modules/@xrkseek/exec-computer-use/dist/format.js.map +1 -1
  120. package/node_modules/@xrkseek/exec-environment/README.md +21 -0
  121. package/node_modules/@xrkseek/exec-environment/dist/http.d.ts +34 -0
  122. package/node_modules/@xrkseek/exec-environment/dist/http.d.ts.map +1 -0
  123. package/node_modules/@xrkseek/exec-environment/dist/http.js +259 -0
  124. package/node_modules/@xrkseek/exec-environment/dist/http.js.map +1 -0
  125. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts +5 -0
  126. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts.map +1 -0
  127. package/node_modules/@xrkseek/exec-environment/dist/index.js +4 -0
  128. package/node_modules/@xrkseek/exec-environment/dist/index.js.map +1 -0
  129. package/node_modules/@xrkseek/exec-environment/dist/local.d.ts +11 -0
  130. package/node_modules/@xrkseek/exec-environment/dist/local.d.ts.map +1 -0
  131. package/node_modules/@xrkseek/exec-environment/dist/local.js +30 -0
  132. package/node_modules/@xrkseek/exec-environment/dist/local.js.map +1 -0
  133. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts +23 -0
  134. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts.map +1 -0
  135. package/node_modules/@xrkseek/exec-environment/dist/resolve.js +39 -0
  136. package/node_modules/@xrkseek/exec-environment/dist/resolve.js.map +1 -0
  137. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts +33 -0
  138. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts.map +1 -0
  139. package/node_modules/@xrkseek/exec-environment/dist/types.js +9 -0
  140. package/node_modules/@xrkseek/exec-environment/dist/types.js.map +1 -0
  141. package/node_modules/@xrkseek/exec-environment/package.json +28 -0
  142. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  143. package/node_modules/@xrkseek/exec-fs/dist/index.js +1 -0
  144. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  145. package/node_modules/@xrkseek/exec-fs/dist/present.d.ts +5 -2
  146. package/node_modules/@xrkseek/exec-fs/dist/present.d.ts.map +1 -1
  147. package/node_modules/@xrkseek/exec-fs/dist/present.js +22 -4
  148. package/node_modules/@xrkseek/exec-fs/dist/present.js.map +1 -1
  149. package/node_modules/@xrkseek/exec-image-gen/README.md +6 -4
  150. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
  151. package/node_modules/@xrkseek/exec-image-gen/dist/format.js +6 -3
  152. package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
  153. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +4 -2
  154. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
  155. package/node_modules/@xrkseek/exec-image-gen/dist/index.js +4 -2
  156. package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
  157. package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts +4 -1
  158. package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts.map +1 -1
  159. package/node_modules/@xrkseek/exec-image-gen/dist/memory.js +16 -1
  160. package/node_modules/@xrkseek/exec-image-gen/dist/memory.js.map +1 -1
  161. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts +5 -2
  162. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts.map +1 -1
  163. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js +88 -38
  164. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js.map +1 -1
  165. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts +21 -0
  166. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts.map +1 -0
  167. package/node_modules/@xrkseek/exec-image-gen/dist/references.js +145 -0
  168. package/node_modules/@xrkseek/exec-image-gen/dist/references.js.map +1 -0
  169. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts +15 -0
  170. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -0
  171. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +67 -0
  172. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -0
  173. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts +5 -2
  174. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
  175. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +38 -36
  176. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
  177. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts +34 -2
  178. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts.map +1 -1
  179. package/node_modules/@xrkseek/exec-image-gen/dist/types.js +16 -1
  180. package/node_modules/@xrkseek/exec-image-gen/dist/types.js.map +1 -1
  181. package/node_modules/@xrkseek/exec-memory/README.md +3 -2
  182. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -1
  183. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
  184. package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -1
  185. package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
  186. package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts +1 -1
  187. package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts.map +1 -1
  188. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts +15 -4
  189. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts.map +1 -1
  190. package/node_modules/@xrkseek/exec-memory/dist/resolve.js +13 -3
  191. package/node_modules/@xrkseek/exec-memory/dist/resolve.js.map +1 -1
  192. package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts +19 -0
  193. package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts.map +1 -0
  194. package/node_modules/@xrkseek/exec-memory/dist/sqlite.js +190 -0
  195. package/node_modules/@xrkseek/exec-memory/dist/sqlite.js.map +1 -0
  196. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts +21 -0
  197. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts.map +1 -1
  198. package/node_modules/@xrkseek/exec-memory/dist/write-path.js +128 -25
  199. package/node_modules/@xrkseek/exec-memory/dist/write-path.js.map +1 -1
  200. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +8 -1
  201. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
  202. package/node_modules/@xrkseek/exec-shell/dist/index.js +3 -1
  203. package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
  204. package/node_modules/@xrkseek/exec-video-gen/README.md +27 -19
  205. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts +16 -0
  206. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts.map +1 -0
  207. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js +90 -0
  208. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js.map +1 -0
  209. package/node_modules/@xrkseek/exec-video-gen/dist/format.d.ts.map +1 -1
  210. package/node_modules/@xrkseek/exec-video-gen/dist/format.js +3 -1
  211. package/node_modules/@xrkseek/exec-video-gen/dist/format.js.map +1 -1
  212. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts +5 -2
  213. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts.map +1 -1
  214. package/node_modules/@xrkseek/exec-video-gen/dist/index.js +5 -2
  215. package/node_modules/@xrkseek/exec-video-gen/dist/index.js.map +1 -1
  216. package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts +3 -2
  217. package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts.map +1 -1
  218. package/node_modules/@xrkseek/exec-video-gen/dist/memory.js +45 -4
  219. package/node_modules/@xrkseek/exec-video-gen/dist/memory.js.map +1 -1
  220. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts +3 -6
  221. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts.map +1 -1
  222. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js +81 -2
  223. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js.map +1 -1
  224. package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts +24 -0
  225. package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts.map +1 -0
  226. package/node_modules/@xrkseek/exec-video-gen/dist/references.js +151 -0
  227. package/node_modules/@xrkseek/exec-video-gen/dist/references.js.map +1 -0
  228. package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts +15 -0
  229. package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts.map +1 -0
  230. package/node_modules/@xrkseek/exec-video-gen/dist/schema.js +104 -0
  231. package/node_modules/@xrkseek/exec-video-gen/dist/schema.js.map +1 -0
  232. package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts +4 -2
  233. package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts.map +1 -1
  234. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +99 -70
  235. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
  236. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts +73 -2
  237. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts.map +1 -1
  238. package/node_modules/@xrkseek/exec-video-gen/dist/types.js +20 -1
  239. package/node_modules/@xrkseek/exec-video-gen/dist/types.js.map +1 -1
  240. package/node_modules/@xrkseek/exec-web/README.md +2 -2
  241. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts +3 -0
  242. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
  243. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +3 -0
  244. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
  245. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts +32 -0
  246. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts.map +1 -0
  247. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js +141 -0
  248. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js.map +1 -0
  249. package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -0
  250. package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
  251. package/node_modules/@xrkseek/exec-web/dist/index.js +1 -0
  252. package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
  253. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts +1 -0
  254. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts.map +1 -1
  255. package/node_modules/@xrkseek/llm-deepseek/dist/index.js +2 -1
  256. package/node_modules/@xrkseek/llm-deepseek/dist/index.js.map +1 -1
  257. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts +13 -3
  258. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts.map +1 -1
  259. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js +27 -4
  260. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js.map +1 -1
  261. package/node_modules/@xrkseek/preset-harness/README.md +8 -8
  262. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +11 -1
  263. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  264. package/node_modules/@xrkseek/preset-harness/dist/preset.js +11 -3
  265. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  266. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  267. package/node_modules/@xrkseek/preset-minimal/README.md +2 -2
  268. package/node_modules/@xrkseek/preset-minimal/dist/preset.js +1 -1
  269. package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
  270. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  271. package/node_modules/@xrkseek/preset-server/README.md +5 -5
  272. package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
  273. package/node_modules/@xrkseek/preset-server/dist/preset.js +3 -2
  274. package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
  275. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  276. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +9 -0
  277. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
  278. package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
  279. package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
  280. package/node_modules/@xrkseek/protocol/dist/validate.js +9 -0
  281. package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
  282. package/node_modules/@xrkseek/server-config/dist/index.d.ts +1 -0
  283. package/node_modules/@xrkseek/server-config/dist/index.d.ts.map +1 -1
  284. package/node_modules/@xrkseek/server-config/dist/index.js +1 -0
  285. package/node_modules/@xrkseek/server-config/dist/index.js.map +1 -1
  286. package/node_modules/@xrkseek/server-config/dist/json-text.d.ts +8 -0
  287. package/node_modules/@xrkseek/server-config/dist/json-text.d.ts.map +1 -0
  288. package/node_modules/@xrkseek/server-config/dist/json-text.js +12 -0
  289. package/node_modules/@xrkseek/server-config/dist/json-text.js.map +1 -0
  290. package/node_modules/@xrkseek/server-cron/README.md +3 -2
  291. package/node_modules/@xrkseek/server-cron/dist/executions.d.ts +31 -0
  292. package/node_modules/@xrkseek/server-cron/dist/executions.d.ts.map +1 -0
  293. package/node_modules/@xrkseek/server-cron/dist/executions.js +95 -0
  294. package/node_modules/@xrkseek/server-cron/dist/executions.js.map +1 -0
  295. package/node_modules/@xrkseek/server-cron/dist/index.d.ts +1 -0
  296. package/node_modules/@xrkseek/server-cron/dist/index.d.ts.map +1 -1
  297. package/node_modules/@xrkseek/server-cron/dist/index.js +6 -0
  298. package/node_modules/@xrkseek/server-cron/dist/index.js.map +1 -1
  299. package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts +4 -0
  300. package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts.map +1 -1
  301. package/node_modules/@xrkseek/server-cron/dist/scheduler.js +33 -24
  302. package/node_modules/@xrkseek/server-cron/dist/scheduler.js.map +1 -1
  303. package/node_modules/@xrkseek/server-cron/dist/tools.d.ts.map +1 -1
  304. package/node_modules/@xrkseek/server-cron/dist/tools.js +44 -6
  305. package/node_modules/@xrkseek/server-cron/dist/tools.js.map +1 -1
  306. package/node_modules/@xrkseek/server-face/dist/context.d.ts +2 -2
  307. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  308. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  309. package/node_modules/@xrkseek/server-face/dist/dispatch.js +2 -0
  310. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  311. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts +37 -2
  312. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts.map +1 -1
  313. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js +191 -28
  314. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js.map +1 -1
  315. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  316. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +31 -5
  317. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  318. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts +10 -0
  319. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts.map +1 -0
  320. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js +33 -0
  321. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js.map +1 -0
  322. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts +9 -0
  323. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts.map +1 -1
  324. package/node_modules/@xrkseek/server-face/dist/host-open-path.js +13 -7
  325. package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
  326. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
  327. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  328. package/node_modules/@xrkseek/server-face/dist/index.js +1 -1
  329. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  330. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts +2 -0
  331. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts.map +1 -1
  332. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js +13 -0
  333. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js.map +1 -1
  334. package/node_modules/@xrkseek/server-face/dist/llm-resolve.d.ts.map +1 -1
  335. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js +3 -1
  336. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js.map +1 -1
  337. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +4 -0
  338. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  339. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +24 -5
  340. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  341. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +5 -5
  342. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
  343. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  344. package/node_modules/@xrkseek/server-face/dist/runtime.js +14 -2
  345. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  346. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
  347. package/node_modules/@xrkseek/server-face/dist/select-session-model.js +8 -0
  348. package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
  349. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts +11 -0
  350. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts.map +1 -0
  351. package/node_modules/@xrkseek/server-face/dist/session-model-store.js +66 -0
  352. package/node_modules/@xrkseek/server-face/dist/session-model-store.js.map +1 -0
  353. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +64 -13
  354. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  355. package/node_modules/@xrkseek/server-face/dist/session-status.js +173 -5
  356. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  357. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  358. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +4 -5
  359. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  360. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  361. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +36 -4
  362. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  363. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +1 -1
  364. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  365. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +33 -2
  366. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  367. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +15 -1
  368. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  369. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +35 -7
  370. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  371. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts +11 -0
  372. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -0
  373. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +22 -0
  374. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -0
  375. package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts +2 -2
  376. package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts.map +1 -1
  377. package/node_modules/@xrkseek/server-host/dist/drain-status.js +2 -2
  378. package/node_modules/@xrkseek/server-host/dist/drain-status.js.map +1 -1
  379. package/node_modules/@xrkseek/server-host/dist/index.d.ts +19 -0
  380. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  381. package/node_modules/@xrkseek/server-host/dist/index.js +248 -33
  382. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  383. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
  384. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +3 -3
  385. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
  386. package/node_modules/@xrkseek/server-host/package.json +2 -0
  387. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts +13 -0
  388. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
  389. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +24 -0
  390. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
  391. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts +1 -0
  392. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts.map +1 -1
  393. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js +18 -2
  394. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js.map +1 -1
  395. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts +6 -0
  396. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  397. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +26 -1
  398. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  399. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts +2 -2
  400. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts.map +1 -1
  401. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js +9 -4
  402. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js.map +1 -1
  403. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts +37 -1
  404. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts.map +1 -1
  405. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js +125 -9
  406. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js.map +1 -1
  407. package/node_modules/@xrkseek/spill/dist/index.d.ts +1 -1
  408. package/node_modules/@xrkseek/spill/dist/index.d.ts.map +1 -1
  409. package/node_modules/@xrkseek/spill/dist/index.js +1 -1
  410. package/node_modules/@xrkseek/spill/dist/index.js.map +1 -1
  411. package/node_modules/@xrkseek/spill/dist/policy.d.ts +35 -0
  412. package/node_modules/@xrkseek/spill/dist/policy.d.ts.map +1 -1
  413. package/node_modules/@xrkseek/spill/dist/policy.js +45 -4
  414. package/node_modules/@xrkseek/spill/dist/policy.js.map +1 -1
  415. package/node_modules/@xrkseek/workspace/dist/index.d.ts +1 -0
  416. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  417. package/node_modules/@xrkseek/workspace/dist/index.js +1 -0
  418. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  419. package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts +46 -0
  420. package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts.map +1 -0
  421. package/node_modules/@xrkseek/workspace/dist/skill-curator.js +114 -0
  422. package/node_modules/@xrkseek/workspace/dist/skill-curator.js.map +1 -0
  423. package/package.json +5 -1
@@ -3,14 +3,16 @@ import { createMemorySessionStore, createPersistentSessionStore, createSessionDr
3
3
  import { createProviderRegistry } from "@xrkseek/llm-registry";
4
4
  import { loadPolicyRulesetFile } from "@xrkseek/policy";
5
5
  import { flattenText, isHumanUserMessageSource } from "@xrkseek/protocol";
6
- import { consolidateCuratedMemoryPhase1, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
6
+ import { effectiveSandboxMode, shouldConfineSandbox, } from "@xrkseek/protocol";
7
+ import { consolidateCuratedMemoryPhase1, consolidateCuratedMemoryPhase2, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
7
8
  import { resolveSecretStore } from "@xrkseek/secrets";
8
9
  import { hostSettingsPath, defaultSpillDir, resolveXrkHome } from "@xrkseek/server-config";
9
10
  import { installOutboundHttpProxy } from "./http-proxy.js";
10
11
  import { mountInvariantsFailFast } from "./invariants-fail-fast.js";
11
12
  import { watchPolicyFile } from "./policy-file-watch.js";
13
+ import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
12
14
  import { applyXrkProductBootPolicy, chainPublicHandlers, ensureDshCompatHostPlugin, createLiveHostPluginsPublicHandler, createHttpServer, createXrkPluginPublicHandler, createSidebarPublicHandler, prewarmDshCompatAdapters, shutdownDshCompatServices, applyHostPackageByName, stopHostPackageFiber, listHostAppliedPackages, invokeDshCompatRpc, attachDshCompatUpgrades, DSH_SETTINGS_NAMESPACES, DSH_SETTINGS_DEFAULTS, runPluginMutate, ensureXrkPlatformClientBootEntries, injectBootIntoHtml, injectMobileAccessShellIntoHtml, loadBootManifestFromWebDist, mergeWebBootManifests, resolveWebBootManifest, createXrkWalletPort, createMobileAccessGateChecker, createMobileAccessGateHandler, loadSidebarPrefs, } from "@xrkseek/server-http";
13
- import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, } from "@xrkseek/server-face";
15
+ import { attachFaceUpgrades, bindSubagentTools, bindSessionQueryTools, createFaceRuntime, effectiveHostApiKey, isLoopbackAddress, listCredentialSlots, peekSettingsYamlSection, publishRemoteEvent, createSessionRoutingLlm, liveRouteAllowsImageInput, resolveSessionCwd, canonicalAgentPresetId, resolveAgentPresetProfile, DEFAULT_MAX_DEPTH, DEFAULT_MAX_ACTIVE_CHILDREN, tryHandleFaceHttp, isPluginSoftDisabledAt, readDisabledPluginIdsAt, readManagedPackageIndexAt, reconcileManagedProcessPlugins, snapshotSessionWorkspace, } from "@xrkseek/server-face";
14
16
  import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, } from "@xrkseek/server-loader";
15
17
  import { existsSync } from "node:fs";
16
18
  import { access } from "node:fs/promises";
@@ -35,14 +37,26 @@ import { createMcpDeferredDispose } from "./mcp-deferred-dispose.js";
35
37
  import { createStandingToolRegistry } from "./standing-tools.js";
36
38
  import { createDefaultPtyAccess } from "@xrkseek/exec-pty";
37
39
  import { createLocalShell } from "@xrkseek/exec-shell";
38
- import { createBrowserRuntimeRegistry } from "@xrkseek/exec-web";
40
+ import { createSandboxStack, parseSandboxProduct, } from "@xrkseek/exec-sandbox";
41
+ import { createBrowserRuntimeRegistry, setOutboundAllowlistAuditObserver } from "@xrkseek/exec-web";
39
42
  import { createLocalSubprocess } from "@xrkseek/exec-subprocess";
43
+ import { resolveExecEnvironment, } from "@xrkseek/exec-environment";
40
44
  import { createSshExecutionWorld, resolveSshConfig, } from "@xrkseek/exec-ssh";
41
45
  /** True while an unattended cron agent turn is running — skip cron tools to avoid recursion. */
42
46
  const cronAgentDepth = new AsyncLocalStorage();
43
47
  export { createHostAgentCache, HOST_PLUGINS_KEY } from "./agent-cache.js";
44
48
  export { createStandingToolRegistry } from "./standing-tools.js";
45
49
  export { loadMcpToolPlugins, mcpDraftsToSpecs, mcpFingerprint, parseMcpServersEnv, readMcpAllowFromHostSettings, readMcpServersFromHostSettings, reconcileMcpToolPlugins, resetLastGoodHostMcpWireCaches, } from "./mcp-wire.js";
50
+ /**
51
+ * AbortError with a readable reason. Used by the session drain snapshot race
52
+ * so a cancellation that interrupts a stuck git/fs call surfaces as a normal
53
+ * AbortError instead of a bare string or DOMException mismatch.
54
+ */
55
+ function hostAbortError(reason) {
56
+ const err = new Error(reason === undefined ? "aborted" : String(reason));
57
+ err.name = "AbortError";
58
+ return err;
59
+ }
46
60
  function logMcpReconcile(log, label, result) {
47
61
  if (!log)
48
62
  return;
@@ -99,6 +113,38 @@ function resolveMcpAllowConnect(config, faceAllow) {
99
113
  return false;
100
114
  return readMcpAllowFromHostSettings(hostSettingsPath());
101
115
  }
116
+ /**
117
+ * `prepareArgv` for the Host-wide shared shell. Resolves the sandbox stack
118
+ * lazily at spawn time so Face settings (arriving after shell creation) and
119
+ * per-session `sandboxMode` are honored — `danger-full-access` unlocks, every
120
+ * other mode confines. This is the production confine path: the harness
121
+ * preset's own `sharedShell ?? createLocalShell(prepareArgv)` branch would
122
+ * otherwise run bash completely unsandboxed.
123
+ */
124
+ export function createHostShellPrepareArgv(options) {
125
+ let cachedStack;
126
+ let cachedProductKey = "";
127
+ return async (argv, cwd, signal, ctx) => {
128
+ const settings = options.readSandboxSettings();
129
+ const product = parseSandboxProduct(settings);
130
+ const productKey = JSON.stringify(product ?? null);
131
+ if (!cachedStack || cachedProductKey !== productKey) {
132
+ cachedStack = createSandboxStack({
133
+ workspaceRoot: options.workspaceRoot,
134
+ ...(product ? { product } : {}),
135
+ env: options.env,
136
+ ...(options.remoteExecution ? { remoteExecution: true } : {}),
137
+ });
138
+ cachedProductKey = productKey;
139
+ }
140
+ // Per-session unlock: `danger-full-access` runs bash untouched.
141
+ const mode = options.readSandboxMode(ctx?.ownerSessionId);
142
+ if (!shouldConfineSandbox(mode))
143
+ return argv;
144
+ const confined = await cachedStack.confine(argv, cwd, signal);
145
+ return confined;
146
+ };
147
+ }
102
148
  export function createHostManager() {
103
149
  const instances = new Map();
104
150
  let seq = 0;
@@ -299,24 +345,43 @@ export function createHostManager() {
299
345
  // Local Host + remote cwd: swap fs/shell (Hermes/DSH provider pattern).
300
346
  // Env `XRK_SSH_HOST` CI-bypasses Face; else peek settings.yaml before Face
301
347
  // (SSH world must own workspaceRoot before createFaceRuntime).
348
+ // Optional HTTP ExecEnvironment (Modal/e2b-style sidecar) when SSH is off.
302
349
  let sshWorld;
350
+ let httpWorld;
303
351
  /** Local Host cwd before SSH workspace swap (browse/settings anchor). */
304
352
  let localHostRoot;
353
+ let execWorldKind;
305
354
  try {
306
355
  const sshProduct = peekSettingsYamlSection(resolveXrkHome(), "ssh-remote");
307
356
  const sshConfig = resolveSshConfig(process.env, sshProduct);
308
357
  if (sshConfig) {
358
+ execWorldKind = "ssh";
309
359
  localHostRoot = config.runtime.workspaceRoot;
310
360
  sshWorld = createSshExecutionWorld({ config: sshConfig });
311
361
  // Tool coordinates are the remote workspace; Face session cwd follows.
312
362
  config.runtime.workspaceRoot =
313
363
  sshWorld.workspaceRoot;
314
364
  }
365
+ else if (String(process.env.XRK_EXEC_ENVIRONMENT ?? "")
366
+ .trim()
367
+ .toLowerCase() === "http") {
368
+ execWorldKind = "http";
369
+ const provider = resolveExecEnvironment({ env: process.env });
370
+ httpWorld = await provider.createWorld({
371
+ workspaceRoot: config.runtime.workspaceRoot,
372
+ });
373
+ }
315
374
  }
316
375
  catch (err) {
317
376
  const message = err instanceof Error ? err.message : String(err);
318
- throw new Error(`SSH remote workspace: ${message}`, { cause: err });
377
+ throw new Error(execWorldKind === "http"
378
+ ? `HTTP exec environment: ${message}`
379
+ : `SSH remote workspace: ${message}`, { cause: err });
319
380
  }
381
+ // Codex-shaped outbound allowlist audit → Host logger (not MITM).
382
+ setOutboundAllowlistAuditObserver((ev) => {
383
+ log?.debug(`web-fetch-allowlist ${ev.decision} ${ev.host} (${ev.source}: ${ev.reason})`);
384
+ });
320
385
  const sharedPty = !sshWorld &&
321
386
  (config.runtime.preset === "harness" ||
322
387
  config.runtime.preset === "server")
@@ -328,8 +393,29 @@ export function createHostManager() {
328
393
  ? createLocalShell({
329
394
  subprocess: sshWorld
330
395
  ? sshWorld.subprocess
331
- : createLocalSubprocess(),
396
+ : httpWorld
397
+ ? httpWorld.subprocess
398
+ : createLocalSubprocess(),
332
399
  defaultCwd: config.runtime.workspaceRoot,
400
+ // Host-wide shared registry — sandbox confine resolves lazily so
401
+ // Face settings + per-session sandboxMode are read at spawn time,
402
+ // not at shell creation (faceBox.runtime arrives later). This is
403
+ // the production path the harness preset's `sharedShell ??`
404
+ // branch would otherwise bypass entirely.
405
+ prepareArgv: createHostShellPrepareArgv({
406
+ workspaceRoot: config.runtime.workspaceRoot,
407
+ readSandboxSettings: () => {
408
+ const rt = faceBox.runtime;
409
+ if (!rt)
410
+ return undefined;
411
+ return rt.settingsNamespaces.view("sandbox").value;
412
+ },
413
+ readSandboxMode: (sessionId) => effectiveSandboxMode(sessionId
414
+ ? readSessionEvents(store, sessionId)
415
+ : []),
416
+ remoteExecution: sshWorld !== undefined,
417
+ env: process.env,
418
+ }),
333
419
  })
334
420
  : undefined;
335
421
  /** Session-keyed browser pages — survives agent invalidate (Hermes task_id map). */
@@ -338,34 +424,63 @@ export function createHostManager() {
338
424
  : undefined;
339
425
  const ensureSession = (sid) => newSession(store, sid).id;
340
426
  const faceBox = {};
341
- /** Session-end Phase1: fold leftover human notes into MEMORY.md (disk only). */
427
+ /** Session-end Phase1 (+ optional Phase2 LLM): fold leftover notes into MEMORY.md. */
342
428
  const consolidateCuratedMemoryForSession = (sessionId) => {
343
429
  try {
344
430
  const rt = faceBox.runtime;
345
431
  const memEnvRaw = String(process.env.XRK_CURATED_MEMORY ?? "").trim();
346
432
  let enabled = memEnvRaw !== "" ? memEnvRaw !== "0" : true;
433
+ let phase2Llm = false;
347
434
  if (memEnvRaw === "" && rt) {
348
435
  const memNs = rt.settingsNamespaces.view("curated-memory")
349
436
  .value;
350
437
  enabled = memNs.enabled !== false;
438
+ phase2Llm = memNs.phase2Llm === true;
439
+ }
440
+ const phase2Env = String(process.env.XRK_CURATED_MEMORY_PHASE2 ?? "").trim();
441
+ if (phase2Env === "1" || phase2Env.toLowerCase() === "true") {
442
+ phase2Llm = true;
351
443
  }
352
444
  if (!enabled)
353
445
  return;
354
446
  const userTexts = [];
447
+ const assistantTexts = [];
355
448
  for (const event of readSessionEvents(store, sessionId)) {
356
- if (event.type !== "user/message")
449
+ if (event.type === "user/message") {
450
+ if (!isHumanUserMessageSource(event.source))
451
+ continue;
452
+ const text = flattenText(event.content).trim();
453
+ if (text)
454
+ userTexts.push(text);
357
455
  continue;
358
- if (!isHumanUserMessageSource(event.source))
359
- continue;
360
- const text = flattenText(event.content).trim();
361
- if (text)
362
- userTexts.push(text);
456
+ }
457
+ if (event.type === "assistant/message") {
458
+ const text = flattenText(event.content ?? "").trim();
459
+ if (text)
460
+ assistantTexts.push(text);
461
+ }
363
462
  }
364
463
  if (userTexts.length === 0)
365
464
  return;
366
- void consolidateCuratedMemoryPhase1(createCuratedMemoryStore(), {
367
- userTexts,
368
- });
465
+ const memStore = createCuratedMemoryStore();
466
+ void (async () => {
467
+ await consolidateCuratedMemoryPhase1(memStore, { userTexts });
468
+ if (!phase2Llm)
469
+ return;
470
+ const llm = llmResolverBox.resolve?.(sessionId);
471
+ if (!llm?.chat)
472
+ return;
473
+ await consolidateCuratedMemoryPhase2(memStore, {
474
+ userTexts,
475
+ assistantTexts,
476
+ complete: async (prompt) => {
477
+ const out = await llm.chat({
478
+ messages: [{ role: "user", content: prompt }],
479
+ });
480
+ return String(out.content ?? "");
481
+ },
482
+ });
483
+ })();
369
484
  }
370
485
  catch {
371
486
  /* best-effort — Host stop / archive must continue */
@@ -429,6 +544,26 @@ export function createHostManager() {
429
544
  remoteExecution: true,
430
545
  codeRuntime: sshWorld.codeRuntime,
431
546
  }
547
+ : httpWorld
548
+ ? { fs: httpWorld.fs }
549
+ : {}),
550
+ ...(faceBox.runtime
551
+ ? {
552
+ browserVault: {
553
+ list() {
554
+ return listCredentialSlots(faceBox.runtime)
555
+ .filter((s) => s.configured)
556
+ .map((s) => ({
557
+ handle: s.id,
558
+ label: s.label,
559
+ kind: "credential",
560
+ }));
561
+ },
562
+ peek(handle) {
563
+ return faceBox.runtime?.credentials.peek(handle);
564
+ },
565
+ },
566
+ }
432
567
  : {}),
433
568
  ...(llmResolverBox.resolve
434
569
  ? { resolveLlm: llmResolverBox.resolve }
@@ -439,6 +574,16 @@ export function createHostManager() {
439
574
  ...(pluginSettings.maxSteps !== undefined
440
575
  ? { maxSteps: pluginSettings.maxSteps }
441
576
  : {}),
577
+ ...(pluginSettings.autoContinueOnMaxTokens !== undefined
578
+ ? {
579
+ autoContinueOnMaxTokens: pluginSettings.autoContinueOnMaxTokens,
580
+ }
581
+ : {}),
582
+ ...(pluginSettings.autoContinueMaxRounds !== undefined
583
+ ? {
584
+ autoContinueMaxRounds: pluginSettings.autoContinueMaxRounds,
585
+ }
586
+ : {}),
442
587
  ...(pluginSettings.toolOrder !== undefined
443
588
  ? { toolOrder: pluginSettings.toolOrder }
444
589
  : {}),
@@ -459,6 +604,9 @@ export function createHostManager() {
459
604
  toolResultMaxInlineBytes: pluginSettings.toolResultMaxInlineBytes,
460
605
  }
461
606
  : {}),
607
+ ...(pluginSettings.guardianFragments !== undefined
608
+ ? { guardianFragments: pluginSettings.guardianFragments }
609
+ : {}),
462
610
  ...(pluginSettings.locale
463
611
  ? { locale: pluginSettings.locale }
464
612
  : {}),
@@ -569,6 +717,17 @@ export function createHostManager() {
569
717
  };
570
718
  const hub = createSessionDrainHub({
571
719
  createDrain: (sessionId) => async ({ signal }) => {
720
+ const snapshot = () => {
721
+ const face = faceBox.runtime;
722
+ // Best-effort and self-bounded: snapshotSessionWorkspace races its
723
+ // own deadline (SNAPSHOT_TIMEOUT_MS), so a hung git/fs call
724
+ // degrades to "no checkpoint" instead of blocking the turn. The
725
+ // drain loop's abort check covers cancellation; no shared state
726
+ // here, so no signal listener bookkeeping is needed.
727
+ if (!face || signal.aborted)
728
+ return Promise.resolve();
729
+ return snapshotSessionWorkspace(face, sessionId).then(() => undefined);
730
+ };
572
731
  try {
573
732
  const agent = await resolveAgent(sessionId);
574
733
  // Delivery queue rule (docs/session-delivery.md §3):
@@ -576,14 +735,11 @@ export function createHostManager() {
576
735
  // without promoting further inbox items. Loop until inbox empty.
577
736
  while (agent.pendingAdmits().length > 0) {
578
737
  if (signal.aborted) {
579
- throw new DOMException("aborted", "AbortError");
738
+ throw hostAbortError(signal.reason);
580
739
  }
581
740
  // Worktree snapshot before tools mutate files (Hermes-style
582
741
  // checkpoint). Best-effort — never blocks the turn.
583
- const face = faceBox.runtime;
584
- if (face) {
585
- await snapshotSessionWorkspace(face, sessionId);
586
- }
742
+ await snapshot();
587
743
  const result = await agent.continueTurn({ signal });
588
744
  lastDrainResult.set(sessionId, result);
589
745
  }
@@ -626,16 +782,36 @@ export function createHostManager() {
626
782
  }
627
783
  return cronAgentDepth.run(true, async () => {
628
784
  const session = store.create();
629
- const agent = await resolveAgent(session.id);
630
- const result = await agent.continueTurn({
631
- text: `[cron ${job.id}${job.name ? ` ${job.name}` : ""}]\n${run.prompt}`,
632
- ...(signal ? { signal } : {}),
633
- });
634
- return {
635
- ok: true,
636
- output: result.text,
637
- sessionId: session.id,
638
- };
785
+ try {
786
+ const agent = await resolveAgent(session.id);
787
+ const result = await agent.continueTurn({
788
+ text: `[cron ${job.id}${job.name ? ` ${job.name}` : ""}]\n${run.prompt}`,
789
+ ...(signal ? { signal } : {}),
790
+ });
791
+ return {
792
+ ok: true,
793
+ output: result.text,
794
+ sessionId: session.id,
795
+ };
796
+ }
797
+ finally {
798
+ // Ephemeral cron sessions must not retain AgentHandle in agentCache
799
+ // (each composition is heavy; ticker would OOM over hours).
800
+ lastDrainResult.delete(session.id);
801
+ hub.forget(session.id);
802
+ try {
803
+ await faceBox.runtime?.onSessionFinalize?.(session.id);
804
+ }
805
+ catch {
806
+ // best-effort memory/browser cleanup
807
+ }
808
+ if (faceBox.runtime?.invalidateAgent) {
809
+ await faceBox.runtime.invalidateAgent(session.id);
810
+ }
811
+ else {
812
+ await agentCache.invalidate(session.id);
813
+ }
814
+ }
639
815
  });
640
816
  },
641
817
  onError: (err) => {
@@ -870,7 +1046,7 @@ export function createHostManager() {
870
1046
  : {}),
871
1047
  drain: {
872
1048
  wake: (sessionId) => drain.wake(sessionId),
873
- cancel: (sessionId) => drain.cancel(sessionId),
1049
+ cancel: (sessionId, opts) => drain.cancel(sessionId, opts),
874
1050
  isActive: (sessionId) => drain.isActive(sessionId),
875
1051
  run: (sessionId) => hub.run(sessionId),
876
1052
  },
@@ -951,6 +1127,14 @@ export function createHostManager() {
951
1127
  loop.maxSteps > 0
952
1128
  ? Math.floor(loop.maxSteps)
953
1129
  : undefined;
1130
+ const autoContinueOnMaxTokens = loop.autoContinueOnMaxTokens === true;
1131
+ const autoContinueMaxRoundsRaw = loop.autoContinueMaxRounds;
1132
+ const autoContinueMaxRounds = typeof autoContinueMaxRoundsRaw === "number" &&
1133
+ Number.isFinite(autoContinueMaxRoundsRaw) &&
1134
+ autoContinueMaxRoundsRaw >= 1 &&
1135
+ autoContinueMaxRoundsRaw <= 10
1136
+ ? Math.floor(autoContinueMaxRoundsRaw)
1137
+ : undefined;
954
1138
  const toolOrderRaw = loop.toolOrder;
955
1139
  const toolOrder = Array.isArray(toolOrderRaw) &&
956
1140
  toolOrderRaw.length > 0 &&
@@ -982,6 +1166,16 @@ export function createHostManager() {
982
1166
  loop.bufferTokens >= 0
983
1167
  ? Math.floor(loop.bufferTokens)
984
1168
  : undefined;
1169
+ const compactionStrategyRaw = String(loop.compactionStrategy ?? "").trim();
1170
+ const compactionStrategy = compactionStrategyRaw === "prune-summary" ||
1171
+ compactionStrategyRaw === "prune-only" ||
1172
+ compactionStrategyRaw === "summary-only" ||
1173
+ compactionStrategyRaw === "off"
1174
+ ? compactionStrategyRaw
1175
+ : undefined;
1176
+ const guardianFragments = typeof loop.guardianFragments === "boolean"
1177
+ ? loop.guardianFragments
1178
+ : undefined;
985
1179
  const toolResultMaxInlineBytes = typeof loop.toolResultMaxInlineBytes === "number" &&
986
1180
  Number.isFinite(loop.toolResultMaxInlineBytes) &&
987
1181
  loop.toolResultMaxInlineBytes >= 0
@@ -1197,12 +1391,19 @@ export function createHostManager() {
1197
1391
  return {
1198
1392
  ...(maxParallelToolCalls !== undefined ? { maxParallelToolCalls } : {}),
1199
1393
  ...(maxSteps !== undefined ? { maxSteps } : {}),
1394
+ ...(autoContinueOnMaxTokens
1395
+ ? { autoContinueOnMaxTokens: true }
1396
+ : {}),
1397
+ ...(autoContinueMaxRounds !== undefined
1398
+ ? { autoContinueMaxRounds }
1399
+ : {}),
1200
1400
  ...(toolOrder !== undefined ? { toolOrder } : {}),
1201
1401
  ...(toolSettle !== undefined ? { toolSettle } : {}),
1202
1402
  ...(llmRetryMaxRetries !== undefined ? { llmRetryMaxRetries } : {}),
1203
1403
  ...(maxRequestTokens !== undefined ||
1204
1404
  keepTokens !== undefined ||
1205
- bufferTokens !== undefined
1405
+ bufferTokens !== undefined ||
1406
+ compactionStrategy !== undefined
1206
1407
  ? {
1207
1408
  compaction: {
1208
1409
  ...(maxRequestTokens !== undefined
@@ -1210,12 +1411,16 @@ export function createHostManager() {
1210
1411
  : {}),
1211
1412
  ...(keepTokens !== undefined ? { keepTokens } : {}),
1212
1413
  ...(bufferTokens !== undefined ? { bufferTokens } : {}),
1414
+ ...(compactionStrategy !== undefined
1415
+ ? { strategy: compactionStrategy }
1416
+ : {}),
1213
1417
  },
1214
1418
  }
1215
1419
  : {}),
1216
1420
  ...(toolResultMaxInlineBytes !== undefined
1217
1421
  ? { toolResultMaxInlineBytes }
1218
1422
  : {}),
1423
+ ...(guardianFragments !== undefined ? { guardianFragments } : {}),
1219
1424
  ...(maxSubagentDepth !== undefined ? { maxSubagentDepth } : {}),
1220
1425
  ...(maxActiveSubagents !== undefined ? { maxActiveSubagents } : {}),
1221
1426
  bashLimits: {
@@ -1349,6 +1554,13 @@ export function createHostManager() {
1349
1554
  ...(url ? { url } : {}),
1350
1555
  ...(token ? { token } : {}),
1351
1556
  ...(collection ? { collection } : {}),
1557
+ ...(typeof ns.embeddingsUrl === "string" && ns.embeddingsUrl.trim()
1558
+ ? { embeddingsUrl: ns.embeddingsUrl.trim() }
1559
+ : {}),
1560
+ ...(typeof ns.embeddingsModel === "string" &&
1561
+ ns.embeddingsModel.trim()
1562
+ ? { embeddingsModel: ns.embeddingsModel.trim() }
1563
+ : {}),
1352
1564
  };
1353
1565
  },
1354
1566
  tokenLedger: {
@@ -1387,7 +1599,10 @@ export function createHostManager() {
1387
1599
  ensureSession,
1388
1600
  resolveAgent,
1389
1601
  drain,
1390
- tryHandlePublic: chainPublicHandlers(createMobileAccessGateHandler({ xrkHome: resolveXrkHome() }), createSidebarPublicHandler({
1602
+ tryHandlePublic: chainPublicHandlers(createA2aInboundPublicHandler({
1603
+ host: config.runtime.host,
1604
+ port: config.runtime.port,
1605
+ }), createMobileAccessGateHandler({ xrkHome: resolveXrkHome() }), createSidebarPublicHandler({
1391
1606
  xrkHome: resolveXrkHome(),
1392
1607
  defaultCwd: faceRuntime.workspaceRoot,
1393
1608
  resolveSessionCwd: (sessionId) => resolveSessionCwd(faceRuntime, sessionId),