@xrkseek/harness 0.4.3 → 0.4.5

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 (378) 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 +12 -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 +95 -50
  75. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  76. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +14 -0
  77. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
  78. package/node_modules/@xrkseek/core-session/dist/compaction.js +41 -1
  79. package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
  80. package/node_modules/@xrkseek/core-session/dist/index.d.ts +1 -1
  81. package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
  82. package/node_modules/@xrkseek/core-session/dist/index.js +1 -1
  83. package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
  84. package/node_modules/@xrkseek/core-session/package.json +1 -0
  85. package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts +1 -0
  86. package/node_modules/@xrkseek/core-system-prompt/dist/index.d.ts.map +1 -1
  87. package/node_modules/@xrkseek/core-system-prompt/dist/index.js +1 -0
  88. package/node_modules/@xrkseek/core-system-prompt/dist/index.js.map +1 -1
  89. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts +22 -0
  90. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.d.ts.map +1 -0
  91. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js +47 -0
  92. package/node_modules/@xrkseek/core-system-prompt/dist/time-context.js.map +1 -0
  93. package/node_modules/@xrkseek/core-tools/dist/definition.d.ts +14 -0
  94. package/node_modules/@xrkseek/core-tools/dist/definition.d.ts.map +1 -1
  95. package/node_modules/@xrkseek/core-tools/dist/definition.js.map +1 -1
  96. package/node_modules/@xrkseek/core-tools/dist/index.d.ts +2 -2
  97. package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
  98. package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
  99. package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
  100. package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts +9 -3
  101. package/node_modules/@xrkseek/core-tools/dist/materialize.d.ts.map +1 -1
  102. package/node_modules/@xrkseek/core-tools/dist/materialize.js +38 -8
  103. package/node_modules/@xrkseek/core-tools/dist/materialize.js.map +1 -1
  104. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts +2 -0
  105. package/node_modules/@xrkseek/exec-computer-use/dist/format.d.ts.map +1 -1
  106. package/node_modules/@xrkseek/exec-computer-use/dist/format.js +4 -1
  107. package/node_modules/@xrkseek/exec-computer-use/dist/format.js.map +1 -1
  108. package/node_modules/@xrkseek/exec-environment/README.md +21 -0
  109. package/node_modules/@xrkseek/exec-environment/dist/http.d.ts +34 -0
  110. package/node_modules/@xrkseek/exec-environment/dist/http.d.ts.map +1 -0
  111. package/node_modules/@xrkseek/exec-environment/dist/http.js +259 -0
  112. package/node_modules/@xrkseek/exec-environment/dist/http.js.map +1 -0
  113. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts +5 -0
  114. package/node_modules/@xrkseek/exec-environment/dist/index.d.ts.map +1 -0
  115. package/node_modules/@xrkseek/exec-environment/dist/index.js +4 -0
  116. package/node_modules/@xrkseek/exec-environment/dist/index.js.map +1 -0
  117. package/node_modules/@xrkseek/exec-environment/dist/local.d.ts +11 -0
  118. package/node_modules/@xrkseek/exec-environment/dist/local.d.ts.map +1 -0
  119. package/node_modules/@xrkseek/exec-environment/dist/local.js +30 -0
  120. package/node_modules/@xrkseek/exec-environment/dist/local.js.map +1 -0
  121. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts +23 -0
  122. package/node_modules/@xrkseek/exec-environment/dist/resolve.d.ts.map +1 -0
  123. package/node_modules/@xrkseek/exec-environment/dist/resolve.js +39 -0
  124. package/node_modules/@xrkseek/exec-environment/dist/resolve.js.map +1 -0
  125. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts +33 -0
  126. package/node_modules/@xrkseek/exec-environment/dist/types.d.ts.map +1 -0
  127. package/node_modules/@xrkseek/exec-environment/dist/types.js +9 -0
  128. package/node_modules/@xrkseek/exec-environment/dist/types.js.map +1 -0
  129. package/node_modules/@xrkseek/exec-environment/package.json +28 -0
  130. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  131. package/node_modules/@xrkseek/exec-fs/dist/index.js +1 -0
  132. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  133. package/node_modules/@xrkseek/exec-fs/dist/present.d.ts +5 -2
  134. package/node_modules/@xrkseek/exec-fs/dist/present.d.ts.map +1 -1
  135. package/node_modules/@xrkseek/exec-fs/dist/present.js +22 -4
  136. package/node_modules/@xrkseek/exec-fs/dist/present.js.map +1 -1
  137. package/node_modules/@xrkseek/exec-image-gen/README.md +6 -4
  138. package/node_modules/@xrkseek/exec-image-gen/dist/format.d.ts.map +1 -1
  139. package/node_modules/@xrkseek/exec-image-gen/dist/format.js +6 -3
  140. package/node_modules/@xrkseek/exec-image-gen/dist/format.js.map +1 -1
  141. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts +4 -2
  142. package/node_modules/@xrkseek/exec-image-gen/dist/index.d.ts.map +1 -1
  143. package/node_modules/@xrkseek/exec-image-gen/dist/index.js +4 -2
  144. package/node_modules/@xrkseek/exec-image-gen/dist/index.js.map +1 -1
  145. package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts +4 -1
  146. package/node_modules/@xrkseek/exec-image-gen/dist/memory.d.ts.map +1 -1
  147. package/node_modules/@xrkseek/exec-image-gen/dist/memory.js +16 -1
  148. package/node_modules/@xrkseek/exec-image-gen/dist/memory.js.map +1 -1
  149. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts +5 -2
  150. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.d.ts.map +1 -1
  151. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js +88 -38
  152. package/node_modules/@xrkseek/exec-image-gen/dist/openai-http.js.map +1 -1
  153. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts +21 -0
  154. package/node_modules/@xrkseek/exec-image-gen/dist/references.d.ts.map +1 -0
  155. package/node_modules/@xrkseek/exec-image-gen/dist/references.js +145 -0
  156. package/node_modules/@xrkseek/exec-image-gen/dist/references.js.map +1 -0
  157. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts +15 -0
  158. package/node_modules/@xrkseek/exec-image-gen/dist/schema.d.ts.map +1 -0
  159. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js +67 -0
  160. package/node_modules/@xrkseek/exec-image-gen/dist/schema.js.map +1 -0
  161. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts +5 -2
  162. package/node_modules/@xrkseek/exec-image-gen/dist/tools.d.ts.map +1 -1
  163. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js +38 -36
  164. package/node_modules/@xrkseek/exec-image-gen/dist/tools.js.map +1 -1
  165. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts +34 -2
  166. package/node_modules/@xrkseek/exec-image-gen/dist/types.d.ts.map +1 -1
  167. package/node_modules/@xrkseek/exec-image-gen/dist/types.js +16 -1
  168. package/node_modules/@xrkseek/exec-image-gen/dist/types.js.map +1 -1
  169. package/node_modules/@xrkseek/exec-memory/README.md +3 -2
  170. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts +2 -1
  171. package/node_modules/@xrkseek/exec-memory/dist/index.d.ts.map +1 -1
  172. package/node_modules/@xrkseek/exec-memory/dist/index.js +2 -1
  173. package/node_modules/@xrkseek/exec-memory/dist/index.js.map +1 -1
  174. package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts +1 -1
  175. package/node_modules/@xrkseek/exec-memory/dist/provider.d.ts.map +1 -1
  176. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts +15 -4
  177. package/node_modules/@xrkseek/exec-memory/dist/resolve.d.ts.map +1 -1
  178. package/node_modules/@xrkseek/exec-memory/dist/resolve.js +13 -3
  179. package/node_modules/@xrkseek/exec-memory/dist/resolve.js.map +1 -1
  180. package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts +19 -0
  181. package/node_modules/@xrkseek/exec-memory/dist/sqlite.d.ts.map +1 -0
  182. package/node_modules/@xrkseek/exec-memory/dist/sqlite.js +190 -0
  183. package/node_modules/@xrkseek/exec-memory/dist/sqlite.js.map +1 -0
  184. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts +21 -0
  185. package/node_modules/@xrkseek/exec-memory/dist/write-path.d.ts.map +1 -1
  186. package/node_modules/@xrkseek/exec-memory/dist/write-path.js +128 -25
  187. package/node_modules/@xrkseek/exec-memory/dist/write-path.js.map +1 -1
  188. package/node_modules/@xrkseek/exec-video-gen/README.md +27 -19
  189. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts +16 -0
  190. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.d.ts.map +1 -0
  191. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js +90 -0
  192. package/node_modules/@xrkseek/exec-video-gen/dist/catalog.js.map +1 -0
  193. package/node_modules/@xrkseek/exec-video-gen/dist/format.d.ts.map +1 -1
  194. package/node_modules/@xrkseek/exec-video-gen/dist/format.js +3 -1
  195. package/node_modules/@xrkseek/exec-video-gen/dist/format.js.map +1 -1
  196. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts +5 -2
  197. package/node_modules/@xrkseek/exec-video-gen/dist/index.d.ts.map +1 -1
  198. package/node_modules/@xrkseek/exec-video-gen/dist/index.js +5 -2
  199. package/node_modules/@xrkseek/exec-video-gen/dist/index.js.map +1 -1
  200. package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts +3 -2
  201. package/node_modules/@xrkseek/exec-video-gen/dist/memory.d.ts.map +1 -1
  202. package/node_modules/@xrkseek/exec-video-gen/dist/memory.js +45 -4
  203. package/node_modules/@xrkseek/exec-video-gen/dist/memory.js.map +1 -1
  204. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts +3 -6
  205. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.d.ts.map +1 -1
  206. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js +81 -2
  207. package/node_modules/@xrkseek/exec-video-gen/dist/openai-http.js.map +1 -1
  208. package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts +24 -0
  209. package/node_modules/@xrkseek/exec-video-gen/dist/references.d.ts.map +1 -0
  210. package/node_modules/@xrkseek/exec-video-gen/dist/references.js +151 -0
  211. package/node_modules/@xrkseek/exec-video-gen/dist/references.js.map +1 -0
  212. package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts +15 -0
  213. package/node_modules/@xrkseek/exec-video-gen/dist/schema.d.ts.map +1 -0
  214. package/node_modules/@xrkseek/exec-video-gen/dist/schema.js +104 -0
  215. package/node_modules/@xrkseek/exec-video-gen/dist/schema.js.map +1 -0
  216. package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts +4 -2
  217. package/node_modules/@xrkseek/exec-video-gen/dist/tools.d.ts.map +1 -1
  218. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js +99 -70
  219. package/node_modules/@xrkseek/exec-video-gen/dist/tools.js.map +1 -1
  220. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts +73 -2
  221. package/node_modules/@xrkseek/exec-video-gen/dist/types.d.ts.map +1 -1
  222. package/node_modules/@xrkseek/exec-video-gen/dist/types.js +20 -1
  223. package/node_modules/@xrkseek/exec-video-gen/dist/types.js.map +1 -1
  224. package/node_modules/@xrkseek/exec-web/README.md +2 -2
  225. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts +3 -0
  226. package/node_modules/@xrkseek/exec-web/dist/browser-tools.d.ts.map +1 -1
  227. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js +3 -0
  228. package/node_modules/@xrkseek/exec-web/dist/browser-tools.js.map +1 -1
  229. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts +32 -0
  230. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.d.ts.map +1 -0
  231. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js +141 -0
  232. package/node_modules/@xrkseek/exec-web/dist/browser-vault-tools.js.map +1 -0
  233. package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -0
  234. package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
  235. package/node_modules/@xrkseek/exec-web/dist/index.js +1 -0
  236. package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
  237. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts +1 -0
  238. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts.map +1 -1
  239. package/node_modules/@xrkseek/llm-deepseek/dist/index.js +2 -1
  240. package/node_modules/@xrkseek/llm-deepseek/dist/index.js.map +1 -1
  241. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts +13 -3
  242. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.d.ts.map +1 -1
  243. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js +27 -4
  244. package/node_modules/@xrkseek/llm-deepseek/dist/request-policy.js.map +1 -1
  245. package/node_modules/@xrkseek/preset-harness/README.md +8 -8
  246. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +11 -1
  247. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  248. package/node_modules/@xrkseek/preset-harness/dist/preset.js +11 -3
  249. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  250. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  251. package/node_modules/@xrkseek/preset-minimal/README.md +2 -2
  252. package/node_modules/@xrkseek/preset-minimal/dist/preset.js +1 -1
  253. package/node_modules/@xrkseek/preset-minimal/dist/preset.js.map +1 -1
  254. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  255. package/node_modules/@xrkseek/preset-server/README.md +5 -5
  256. package/node_modules/@xrkseek/preset-server/dist/preset.d.ts.map +1 -1
  257. package/node_modules/@xrkseek/preset-server/dist/preset.js +3 -2
  258. package/node_modules/@xrkseek/preset-server/dist/preset.js.map +1 -1
  259. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  260. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +9 -0
  261. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
  262. package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
  263. package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
  264. package/node_modules/@xrkseek/protocol/dist/validate.js +9 -0
  265. package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
  266. package/node_modules/@xrkseek/server-config/dist/index.d.ts +1 -0
  267. package/node_modules/@xrkseek/server-config/dist/index.d.ts.map +1 -1
  268. package/node_modules/@xrkseek/server-config/dist/index.js +1 -0
  269. package/node_modules/@xrkseek/server-config/dist/index.js.map +1 -1
  270. package/node_modules/@xrkseek/server-config/dist/json-text.d.ts +8 -0
  271. package/node_modules/@xrkseek/server-config/dist/json-text.d.ts.map +1 -0
  272. package/node_modules/@xrkseek/server-config/dist/json-text.js +12 -0
  273. package/node_modules/@xrkseek/server-config/dist/json-text.js.map +1 -0
  274. package/node_modules/@xrkseek/server-cron/README.md +3 -2
  275. package/node_modules/@xrkseek/server-cron/dist/executions.d.ts +31 -0
  276. package/node_modules/@xrkseek/server-cron/dist/executions.d.ts.map +1 -0
  277. package/node_modules/@xrkseek/server-cron/dist/executions.js +95 -0
  278. package/node_modules/@xrkseek/server-cron/dist/executions.js.map +1 -0
  279. package/node_modules/@xrkseek/server-cron/dist/index.d.ts +1 -0
  280. package/node_modules/@xrkseek/server-cron/dist/index.d.ts.map +1 -1
  281. package/node_modules/@xrkseek/server-cron/dist/index.js +6 -0
  282. package/node_modules/@xrkseek/server-cron/dist/index.js.map +1 -1
  283. package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts +4 -0
  284. package/node_modules/@xrkseek/server-cron/dist/scheduler.d.ts.map +1 -1
  285. package/node_modules/@xrkseek/server-cron/dist/scheduler.js +33 -24
  286. package/node_modules/@xrkseek/server-cron/dist/scheduler.js.map +1 -1
  287. package/node_modules/@xrkseek/server-cron/dist/tools.d.ts.map +1 -1
  288. package/node_modules/@xrkseek/server-cron/dist/tools.js +44 -6
  289. package/node_modules/@xrkseek/server-cron/dist/tools.js.map +1 -1
  290. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  291. package/node_modules/@xrkseek/server-face/dist/dispatch.js +2 -0
  292. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  293. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts +37 -2
  294. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.d.ts.map +1 -1
  295. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js +191 -28
  296. package/node_modules/@xrkseek/server-face/dist/external-agent-runtime.js.map +1 -1
  297. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts +10 -0
  298. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.d.ts.map +1 -0
  299. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js +33 -0
  300. package/node_modules/@xrkseek/server-face/dist/handlers/worktree.js.map +1 -0
  301. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts +9 -0
  302. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts.map +1 -1
  303. package/node_modules/@xrkseek/server-face/dist/host-open-path.js +13 -7
  304. package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
  305. package/node_modules/@xrkseek/server-face/dist/index.d.ts +2 -2
  306. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  307. package/node_modules/@xrkseek/server-face/dist/index.js +1 -1
  308. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  309. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts +2 -0
  310. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.d.ts.map +1 -1
  311. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js +13 -0
  312. package/node_modules/@xrkseek/server-face/dist/llm-provider-context.js.map +1 -1
  313. package/node_modules/@xrkseek/server-face/dist/llm-resolve.d.ts.map +1 -1
  314. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js +3 -1
  315. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js.map +1 -1
  316. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +4 -0
  317. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  318. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +24 -5
  319. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  320. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js +5 -5
  321. package/node_modules/@xrkseek/server-face/dist/presets-catalog.js.map +1 -1
  322. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  323. package/node_modules/@xrkseek/server-face/dist/runtime.js +14 -2
  324. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  325. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
  326. package/node_modules/@xrkseek/server-face/dist/select-session-model.js +8 -0
  327. package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
  328. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts +11 -0
  329. package/node_modules/@xrkseek/server-face/dist/session-model-store.d.ts.map +1 -0
  330. package/node_modules/@xrkseek/server-face/dist/session-model-store.js +66 -0
  331. package/node_modules/@xrkseek/server-face/dist/session-model-store.js.map +1 -0
  332. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts +64 -13
  333. package/node_modules/@xrkseek/server-face/dist/session-status.d.ts.map +1 -1
  334. package/node_modules/@xrkseek/server-face/dist/session-status.js +173 -5
  335. package/node_modules/@xrkseek/server-face/dist/session-status.js.map +1 -1
  336. package/node_modules/@xrkseek/server-face/dist/settings-credentials.d.ts.map +1 -1
  337. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js +4 -5
  338. package/node_modules/@xrkseek/server-face/dist/settings-credentials.js.map +1 -1
  339. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  340. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +36 -4
  341. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  342. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts +1 -1
  343. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  344. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +1 -1
  345. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  346. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts +15 -1
  347. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.d.ts.map +1 -1
  348. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js +35 -7
  349. package/node_modules/@xrkseek/server-face/dist/workspace-checkpoint.js.map +1 -1
  350. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts +11 -0
  351. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.d.ts.map +1 -0
  352. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js +22 -0
  353. package/node_modules/@xrkseek/server-host/dist/a2a-inbound-public.js.map +1 -0
  354. package/node_modules/@xrkseek/server-host/dist/index.d.ts +3 -0
  355. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  356. package/node_modules/@xrkseek/server-host/dist/index.js +178 -48
  357. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  358. package/node_modules/@xrkseek/server-host/dist/mcp-wire.d.ts.map +1 -1
  359. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js +3 -3
  360. package/node_modules/@xrkseek/server-host/dist/mcp-wire.js.map +1 -1
  361. package/node_modules/@xrkseek/server-host/package.json +2 -0
  362. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts +2 -2
  363. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.d.ts.map +1 -1
  364. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js +9 -4
  365. package/node_modules/@xrkseek/server-http/dist/dsh-compat/embedded-vector-store.js.map +1 -1
  366. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts +37 -1
  367. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.d.ts.map +1 -1
  368. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js +125 -9
  369. package/node_modules/@xrkseek/server-http/dist/dsh-compat/memory-embeddings.js.map +1 -1
  370. package/node_modules/@xrkseek/workspace/dist/index.d.ts +1 -0
  371. package/node_modules/@xrkseek/workspace/dist/index.d.ts.map +1 -1
  372. package/node_modules/@xrkseek/workspace/dist/index.js +1 -0
  373. package/node_modules/@xrkseek/workspace/dist/index.js.map +1 -1
  374. package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts +46 -0
  375. package/node_modules/@xrkseek/workspace/dist/skill-curator.d.ts.map +1 -0
  376. package/node_modules/@xrkseek/workspace/dist/skill-curator.js +114 -0
  377. package/node_modules/@xrkseek/workspace/dist/skill-curator.js.map +1 -0
  378. package/package.json +5 -1
@@ -4,14 +4,15 @@ import { createProviderRegistry } from "@xrkseek/llm-registry";
4
4
  import { loadPolicyRulesetFile } from "@xrkseek/policy";
5
5
  import { flattenText, isHumanUserMessageSource } from "@xrkseek/protocol";
6
6
  import { effectiveSandboxMode, shouldConfineSandbox, } from "@xrkseek/protocol";
7
- import { consolidateCuratedMemoryPhase1, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
7
+ import { consolidateCuratedMemoryPhase1, consolidateCuratedMemoryPhase2, createCuratedMemoryStore, } from "@xrkseek/exec-memory";
8
8
  import { resolveSecretStore } from "@xrkseek/secrets";
9
9
  import { hostSettingsPath, defaultSpillDir, resolveXrkHome } from "@xrkseek/server-config";
10
10
  import { installOutboundHttpProxy } from "./http-proxy.js";
11
11
  import { mountInvariantsFailFast } from "./invariants-fail-fast.js";
12
12
  import { watchPolicyFile } from "./policy-file-watch.js";
13
+ import { createA2aInboundPublicHandler } from "./a2a-inbound-public.js";
13
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";
14
- 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";
15
16
  import { createPluginLoader, composeHostPolicyEngine, wireCompositionChannels, wireCompositionLlm, collectChannelPluginRegistrations, } from "@xrkseek/server-loader";
16
17
  import { existsSync } from "node:fs";
17
18
  import { access } from "node:fs/promises";
@@ -37,8 +38,9 @@ import { createStandingToolRegistry } from "./standing-tools.js";
37
38
  import { createDefaultPtyAccess } from "@xrkseek/exec-pty";
38
39
  import { createLocalShell } from "@xrkseek/exec-shell";
39
40
  import { createSandboxStack, parseSandboxProduct, } from "@xrkseek/exec-sandbox";
40
- import { createBrowserRuntimeRegistry } from "@xrkseek/exec-web";
41
+ import { createBrowserRuntimeRegistry, setOutboundAllowlistAuditObserver } from "@xrkseek/exec-web";
41
42
  import { createLocalSubprocess } from "@xrkseek/exec-subprocess";
43
+ import { resolveExecEnvironment, } from "@xrkseek/exec-environment";
42
44
  import { createSshExecutionWorld, resolveSshConfig, } from "@xrkseek/exec-ssh";
43
45
  /** True while an unattended cron agent turn is running — skip cron tools to avoid recursion. */
44
46
  const cronAgentDepth = new AsyncLocalStorage();
@@ -343,24 +345,43 @@ export function createHostManager() {
343
345
  // Local Host + remote cwd: swap fs/shell (Hermes/DSH provider pattern).
344
346
  // Env `XRK_SSH_HOST` CI-bypasses Face; else peek settings.yaml before Face
345
347
  // (SSH world must own workspaceRoot before createFaceRuntime).
348
+ // Optional HTTP ExecEnvironment (Modal/e2b-style sidecar) when SSH is off.
346
349
  let sshWorld;
350
+ let httpWorld;
347
351
  /** Local Host cwd before SSH workspace swap (browse/settings anchor). */
348
352
  let localHostRoot;
353
+ let execWorldKind;
349
354
  try {
350
355
  const sshProduct = peekSettingsYamlSection(resolveXrkHome(), "ssh-remote");
351
356
  const sshConfig = resolveSshConfig(process.env, sshProduct);
352
357
  if (sshConfig) {
358
+ execWorldKind = "ssh";
353
359
  localHostRoot = config.runtime.workspaceRoot;
354
360
  sshWorld = createSshExecutionWorld({ config: sshConfig });
355
361
  // Tool coordinates are the remote workspace; Face session cwd follows.
356
362
  config.runtime.workspaceRoot =
357
363
  sshWorld.workspaceRoot;
358
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
+ }
359
374
  }
360
375
  catch (err) {
361
376
  const message = err instanceof Error ? err.message : String(err);
362
- 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 });
363
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
+ });
364
385
  const sharedPty = !sshWorld &&
365
386
  (config.runtime.preset === "harness" ||
366
387
  config.runtime.preset === "server")
@@ -372,7 +393,9 @@ export function createHostManager() {
372
393
  ? createLocalShell({
373
394
  subprocess: sshWorld
374
395
  ? sshWorld.subprocess
375
- : createLocalSubprocess(),
396
+ : httpWorld
397
+ ? httpWorld.subprocess
398
+ : createLocalSubprocess(),
376
399
  defaultCwd: config.runtime.workspaceRoot,
377
400
  // Host-wide shared registry — sandbox confine resolves lazily so
378
401
  // Face settings + per-session sandboxMode are read at spawn time,
@@ -401,34 +424,63 @@ export function createHostManager() {
401
424
  : undefined;
402
425
  const ensureSession = (sid) => newSession(store, sid).id;
403
426
  const faceBox = {};
404
- /** 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. */
405
428
  const consolidateCuratedMemoryForSession = (sessionId) => {
406
429
  try {
407
430
  const rt = faceBox.runtime;
408
431
  const memEnvRaw = String(process.env.XRK_CURATED_MEMORY ?? "").trim();
409
432
  let enabled = memEnvRaw !== "" ? memEnvRaw !== "0" : true;
433
+ let phase2Llm = false;
410
434
  if (memEnvRaw === "" && rt) {
411
435
  const memNs = rt.settingsNamespaces.view("curated-memory")
412
436
  .value;
413
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;
414
443
  }
415
444
  if (!enabled)
416
445
  return;
417
446
  const userTexts = [];
447
+ const assistantTexts = [];
418
448
  for (const event of readSessionEvents(store, sessionId)) {
419
- if (event.type !== "user/message")
420
- continue;
421
- if (!isHumanUserMessageSource(event.source))
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);
422
455
  continue;
423
- const text = flattenText(event.content).trim();
424
- if (text)
425
- 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
+ }
426
462
  }
427
463
  if (userTexts.length === 0)
428
464
  return;
429
- void consolidateCuratedMemoryPhase1(createCuratedMemoryStore(), {
430
- userTexts,
431
- });
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
+ })();
432
484
  }
433
485
  catch {
434
486
  /* best-effort — Host stop / archive must continue */
@@ -492,6 +544,26 @@ export function createHostManager() {
492
544
  remoteExecution: true,
493
545
  codeRuntime: sshWorld.codeRuntime,
494
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
+ }
495
567
  : {}),
496
568
  ...(llmResolverBox.resolve
497
569
  ? { resolveLlm: llmResolverBox.resolve }
@@ -502,6 +574,16 @@ export function createHostManager() {
502
574
  ...(pluginSettings.maxSteps !== undefined
503
575
  ? { maxSteps: pluginSettings.maxSteps }
504
576
  : {}),
577
+ ...(pluginSettings.autoContinueOnMaxTokens !== undefined
578
+ ? {
579
+ autoContinueOnMaxTokens: pluginSettings.autoContinueOnMaxTokens,
580
+ }
581
+ : {}),
582
+ ...(pluginSettings.autoContinueMaxRounds !== undefined
583
+ ? {
584
+ autoContinueMaxRounds: pluginSettings.autoContinueMaxRounds,
585
+ }
586
+ : {}),
505
587
  ...(pluginSettings.toolOrder !== undefined
506
588
  ? { toolOrder: pluginSettings.toolOrder }
507
589
  : {}),
@@ -522,6 +604,9 @@ export function createHostManager() {
522
604
  toolResultMaxInlineBytes: pluginSettings.toolResultMaxInlineBytes,
523
605
  }
524
606
  : {}),
607
+ ...(pluginSettings.guardianFragments !== undefined
608
+ ? { guardianFragments: pluginSettings.guardianFragments }
609
+ : {}),
525
610
  ...(pluginSettings.locale
526
611
  ? { locale: pluginSettings.locale }
527
612
  : {}),
@@ -632,30 +717,16 @@ export function createHostManager() {
632
717
  };
633
718
  const hub = createSessionDrainHub({
634
719
  createDrain: (sessionId) => async ({ signal }) => {
635
- // An abort racing the workspace snapshot must not be swallowed:
636
- // the snapshot is best-effort, so race it against the signal and
637
- // let a stuck git/fs call yield to cancellation immediately.
638
720
  const snapshot = () => {
639
721
  const face = faceBox.runtime;
640
- if (!face)
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)
641
728
  return Promise.resolve();
642
- return new Promise((resolve, reject) => {
643
- if (signal.aborted) {
644
- reject(hostAbortError(signal.reason));
645
- return;
646
- }
647
- const onAbort = () => {
648
- reject(hostAbortError(signal.reason));
649
- };
650
- signal.addEventListener("abort", onAbort, { once: true });
651
- snapshotSessionWorkspace(face, sessionId).then(() => {
652
- signal.removeEventListener("abort", onAbort);
653
- resolve();
654
- }, (err) => {
655
- signal.removeEventListener("abort", onAbort);
656
- reject(err instanceof Error ? err : new Error(String(err)));
657
- });
658
- });
729
+ return snapshotSessionWorkspace(face, sessionId).then(() => undefined);
659
730
  };
660
731
  try {
661
732
  const agent = await resolveAgent(sessionId);
@@ -711,16 +782,36 @@ export function createHostManager() {
711
782
  }
712
783
  return cronAgentDepth.run(true, async () => {
713
784
  const session = store.create();
714
- const agent = await resolveAgent(session.id);
715
- const result = await agent.continueTurn({
716
- text: `[cron ${job.id}${job.name ? ` ${job.name}` : ""}]\n${run.prompt}`,
717
- ...(signal ? { signal } : {}),
718
- });
719
- return {
720
- ok: true,
721
- output: result.text,
722
- sessionId: session.id,
723
- };
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
+ }
724
815
  });
725
816
  },
726
817
  onError: (err) => {
@@ -1036,6 +1127,14 @@ export function createHostManager() {
1036
1127
  loop.maxSteps > 0
1037
1128
  ? Math.floor(loop.maxSteps)
1038
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;
1039
1138
  const toolOrderRaw = loop.toolOrder;
1040
1139
  const toolOrder = Array.isArray(toolOrderRaw) &&
1041
1140
  toolOrderRaw.length > 0 &&
@@ -1067,6 +1166,16 @@ export function createHostManager() {
1067
1166
  loop.bufferTokens >= 0
1068
1167
  ? Math.floor(loop.bufferTokens)
1069
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;
1070
1179
  const toolResultMaxInlineBytes = typeof loop.toolResultMaxInlineBytes === "number" &&
1071
1180
  Number.isFinite(loop.toolResultMaxInlineBytes) &&
1072
1181
  loop.toolResultMaxInlineBytes >= 0
@@ -1282,12 +1391,19 @@ export function createHostManager() {
1282
1391
  return {
1283
1392
  ...(maxParallelToolCalls !== undefined ? { maxParallelToolCalls } : {}),
1284
1393
  ...(maxSteps !== undefined ? { maxSteps } : {}),
1394
+ ...(autoContinueOnMaxTokens
1395
+ ? { autoContinueOnMaxTokens: true }
1396
+ : {}),
1397
+ ...(autoContinueMaxRounds !== undefined
1398
+ ? { autoContinueMaxRounds }
1399
+ : {}),
1285
1400
  ...(toolOrder !== undefined ? { toolOrder } : {}),
1286
1401
  ...(toolSettle !== undefined ? { toolSettle } : {}),
1287
1402
  ...(llmRetryMaxRetries !== undefined ? { llmRetryMaxRetries } : {}),
1288
1403
  ...(maxRequestTokens !== undefined ||
1289
1404
  keepTokens !== undefined ||
1290
- bufferTokens !== undefined
1405
+ bufferTokens !== undefined ||
1406
+ compactionStrategy !== undefined
1291
1407
  ? {
1292
1408
  compaction: {
1293
1409
  ...(maxRequestTokens !== undefined
@@ -1295,12 +1411,16 @@ export function createHostManager() {
1295
1411
  : {}),
1296
1412
  ...(keepTokens !== undefined ? { keepTokens } : {}),
1297
1413
  ...(bufferTokens !== undefined ? { bufferTokens } : {}),
1414
+ ...(compactionStrategy !== undefined
1415
+ ? { strategy: compactionStrategy }
1416
+ : {}),
1298
1417
  },
1299
1418
  }
1300
1419
  : {}),
1301
1420
  ...(toolResultMaxInlineBytes !== undefined
1302
1421
  ? { toolResultMaxInlineBytes }
1303
1422
  : {}),
1423
+ ...(guardianFragments !== undefined ? { guardianFragments } : {}),
1304
1424
  ...(maxSubagentDepth !== undefined ? { maxSubagentDepth } : {}),
1305
1425
  ...(maxActiveSubagents !== undefined ? { maxActiveSubagents } : {}),
1306
1426
  bashLimits: {
@@ -1434,6 +1554,13 @@ export function createHostManager() {
1434
1554
  ...(url ? { url } : {}),
1435
1555
  ...(token ? { token } : {}),
1436
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
+ : {}),
1437
1564
  };
1438
1565
  },
1439
1566
  tokenLedger: {
@@ -1472,7 +1599,10 @@ export function createHostManager() {
1472
1599
  ensureSession,
1473
1600
  resolveAgent,
1474
1601
  drain,
1475
- 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({
1476
1606
  xrkHome: resolveXrkHome(),
1477
1607
  defaultCwd: faceRuntime.workspaceRoot,
1478
1608
  resolveSessionCwd: (sessionId) => resolveSessionCwd(faceRuntime, sessionId),