@inhuman.tools/harness 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1324) hide show
  1. package/LICENSE.md +7 -0
  2. package/compact.prompt +64 -0
  3. package/compact.scm +85 -0
  4. package/dist/builtin-tools/catalog-entry.d.ts +12 -0
  5. package/dist/builtin-tools/catalog-entry.d.ts.map +1 -0
  6. package/dist/builtin-tools/catalog-entry.js +35 -0
  7. package/dist/builtin-tools/catalog-entry.js.map +1 -0
  8. package/dist/builtin-tools/errno.d.ts +3 -0
  9. package/dist/builtin-tools/errno.d.ts.map +1 -0
  10. package/dist/builtin-tools/errno.js +7 -0
  11. package/dist/builtin-tools/errno.js.map +1 -0
  12. package/dist/builtin-tools/index.d.ts +37 -0
  13. package/dist/builtin-tools/index.d.ts.map +1 -0
  14. package/dist/builtin-tools/index.js +83 -0
  15. package/dist/builtin-tools/index.js.map +1 -0
  16. package/dist/builtin-tools/metadata/context-need.d.ts +16 -0
  17. package/dist/builtin-tools/metadata/context-need.d.ts.map +1 -0
  18. package/dist/builtin-tools/metadata/context-need.js +38 -0
  19. package/dist/builtin-tools/metadata/context-need.js.map +1 -0
  20. package/dist/builtin-tools/metadata/context-recall.d.ts +18 -0
  21. package/dist/builtin-tools/metadata/context-recall.d.ts.map +1 -0
  22. package/dist/builtin-tools/metadata/context-recall.js +23 -0
  23. package/dist/builtin-tools/metadata/context-recall.js.map +1 -0
  24. package/dist/builtin-tools/metadata/update-metadata.d.ts +11 -0
  25. package/dist/builtin-tools/metadata/update-metadata.d.ts.map +1 -0
  26. package/dist/builtin-tools/metadata/update-metadata.js +30 -0
  27. package/dist/builtin-tools/metadata/update-metadata.js.map +1 -0
  28. package/dist/builtin-tools/named-agents/agent-catalog.d.ts +24 -0
  29. package/dist/builtin-tools/named-agents/agent-catalog.d.ts.map +1 -0
  30. package/dist/builtin-tools/named-agents/agent-catalog.js +121 -0
  31. package/dist/builtin-tools/named-agents/agent-catalog.js.map +1 -0
  32. package/dist/builtin-tools/named-agents/agent-stdlib.d.ts +7 -0
  33. package/dist/builtin-tools/named-agents/agent-stdlib.d.ts.map +1 -0
  34. package/dist/builtin-tools/named-agents/agent-stdlib.js +93 -0
  35. package/dist/builtin-tools/named-agents/agent-stdlib.js.map +1 -0
  36. package/dist/builtin-tools/named-bots-home.d.ts +3 -0
  37. package/dist/builtin-tools/named-bots-home.d.ts.map +1 -0
  38. package/dist/builtin-tools/named-bots-home.js +12 -0
  39. package/dist/builtin-tools/named-bots-home.js.map +1 -0
  40. package/dist/builtin-tools/schemas/tool-result.d.ts +14 -0
  41. package/dist/builtin-tools/schemas/tool-result.d.ts.map +1 -0
  42. package/dist/builtin-tools/schemas/tool-result.js +14 -0
  43. package/dist/builtin-tools/schemas/tool-result.js.map +1 -0
  44. package/dist/builtin-tools/scheme-repl/register.d.ts +29 -0
  45. package/dist/builtin-tools/scheme-repl/register.d.ts.map +1 -0
  46. package/dist/builtin-tools/scheme-repl/register.js +67 -0
  47. package/dist/builtin-tools/scheme-repl/register.js.map +1 -0
  48. package/dist/builtin-tools/shell/job-stop.d.ts +10 -0
  49. package/dist/builtin-tools/shell/job-stop.d.ts.map +1 -0
  50. package/dist/builtin-tools/shell/job-stop.js +20 -0
  51. package/dist/builtin-tools/shell/job-stop.js.map +1 -0
  52. package/dist/builtin-tools/shell/shell-tool.d.ts +28 -0
  53. package/dist/builtin-tools/shell/shell-tool.d.ts.map +1 -0
  54. package/dist/builtin-tools/shell/shell-tool.js +200 -0
  55. package/dist/builtin-tools/shell/shell-tool.js.map +1 -0
  56. package/dist/builtin-tools/toolkit/bounds.d.ts +4 -0
  57. package/dist/builtin-tools/toolkit/bounds.d.ts.map +1 -0
  58. package/dist/builtin-tools/toolkit/bounds.js +4 -0
  59. package/dist/builtin-tools/toolkit/bounds.js.map +1 -0
  60. package/dist/builtin-tools/toolkit/dist-tools.d.ts +104 -0
  61. package/dist/builtin-tools/toolkit/dist-tools.d.ts.map +1 -0
  62. package/dist/builtin-tools/toolkit/dist-tools.js +664 -0
  63. package/dist/builtin-tools/toolkit/dist-tools.js.map +1 -0
  64. package/dist/builtin-tools/toolkit/finder.d.ts +4 -0
  65. package/dist/builtin-tools/toolkit/finder.d.ts.map +1 -0
  66. package/dist/builtin-tools/toolkit/finder.js +65 -0
  67. package/dist/builtin-tools/toolkit/finder.js.map +1 -0
  68. package/dist/builtin-tools/toolkit/write-gate.d.ts +7 -0
  69. package/dist/builtin-tools/toolkit/write-gate.d.ts.map +1 -0
  70. package/dist/builtin-tools/toolkit/write-gate.js +42 -0
  71. package/dist/builtin-tools/toolkit/write-gate.js.map +1 -0
  72. package/dist/builtin-tools/web-search/web-extract.d.ts +16 -0
  73. package/dist/builtin-tools/web-search/web-extract.d.ts.map +1 -0
  74. package/dist/builtin-tools/web-search/web-extract.js +33 -0
  75. package/dist/builtin-tools/web-search/web-extract.js.map +1 -0
  76. package/dist/builtin-tools/web-search/web-search.d.ts +14 -0
  77. package/dist/builtin-tools/web-search/web-search.d.ts.map +1 -0
  78. package/dist/builtin-tools/web-search/web-search.js +21 -0
  79. package/dist/builtin-tools/web-search/web-search.js.map +1 -0
  80. package/dist/connections/adapters.d.ts +39 -0
  81. package/dist/connections/adapters.d.ts.map +1 -0
  82. package/dist/connections/adapters.js +108 -0
  83. package/dist/connections/adapters.js.map +1 -0
  84. package/dist/connections/adopt.d.ts +26 -0
  85. package/dist/connections/adopt.d.ts.map +1 -0
  86. package/dist/connections/adopt.js +17 -0
  87. package/dist/connections/adopt.js.map +1 -0
  88. package/dist/connections/credentials.d.ts +13 -0
  89. package/dist/connections/credentials.d.ts.map +1 -0
  90. package/dist/connections/credentials.js +31 -0
  91. package/dist/connections/credentials.js.map +1 -0
  92. package/dist/connections/identity.d.ts +5 -0
  93. package/dist/connections/identity.d.ts.map +1 -0
  94. package/dist/connections/identity.js +5 -0
  95. package/dist/connections/identity.js.map +1 -0
  96. package/dist/connections/index.d.ts +14 -0
  97. package/dist/connections/index.d.ts.map +1 -0
  98. package/dist/connections/index.js +13 -0
  99. package/dist/connections/index.js.map +1 -0
  100. package/dist/connections/intern.d.ts +18 -0
  101. package/dist/connections/intern.d.ts.map +1 -0
  102. package/dist/connections/intern.js +30 -0
  103. package/dist/connections/intern.js.map +1 -0
  104. package/dist/connections/registry.d.ts +22 -0
  105. package/dist/connections/registry.d.ts.map +1 -0
  106. package/dist/connections/registry.js +69 -0
  107. package/dist/connections/registry.js.map +1 -0
  108. package/dist/connections/resolve.d.ts +17 -0
  109. package/dist/connections/resolve.d.ts.map +1 -0
  110. package/dist/connections/resolve.js +86 -0
  111. package/dist/connections/resolve.js.map +1 -0
  112. package/dist/context/index.d.ts +2 -0
  113. package/dist/context/index.d.ts.map +1 -0
  114. package/dist/context/index.js +2 -0
  115. package/dist/context/index.js.map +1 -0
  116. package/dist/extensions/adjust-json.d.ts +2 -0
  117. package/dist/extensions/adjust-json.d.ts.map +1 -0
  118. package/dist/extensions/adjust-json.js +19 -0
  119. package/dist/extensions/adjust-json.js.map +1 -0
  120. package/dist/extensions/behavior.d.ts +17 -0
  121. package/dist/extensions/behavior.d.ts.map +1 -0
  122. package/dist/extensions/behavior.js +709 -0
  123. package/dist/extensions/behavior.js.map +1 -0
  124. package/dist/extensions/consent.d.ts +71 -0
  125. package/dist/extensions/consent.d.ts.map +1 -0
  126. package/dist/extensions/consent.js +76 -0
  127. package/dist/extensions/consent.js.map +1 -0
  128. package/dist/extensions/contributions.d.ts +8 -0
  129. package/dist/extensions/contributions.d.ts.map +1 -0
  130. package/dist/extensions/contributions.js +27 -0
  131. package/dist/extensions/contributions.js.map +1 -0
  132. package/dist/extensions/crossing.d.ts +12 -0
  133. package/dist/extensions/crossing.d.ts.map +1 -0
  134. package/dist/extensions/crossing.js +176 -0
  135. package/dist/extensions/crossing.js.map +1 -0
  136. package/dist/extensions/dispatch.d.ts +83 -0
  137. package/dist/extensions/dispatch.d.ts.map +1 -0
  138. package/dist/extensions/dispatch.js +433 -0
  139. package/dist/extensions/dispatch.js.map +1 -0
  140. package/dist/extensions/eval.d.ts +29 -0
  141. package/dist/extensions/eval.d.ts.map +1 -0
  142. package/dist/extensions/eval.js +125 -0
  143. package/dist/extensions/eval.js.map +1 -0
  144. package/dist/extensions/fs.d.ts +3 -0
  145. package/dist/extensions/fs.d.ts.map +1 -0
  146. package/dist/extensions/fs.js +18 -0
  147. package/dist/extensions/fs.js.map +1 -0
  148. package/dist/extensions/graph.d.ts +18 -0
  149. package/dist/extensions/graph.d.ts.map +1 -0
  150. package/dist/extensions/graph.js +130 -0
  151. package/dist/extensions/graph.js.map +1 -0
  152. package/dist/extensions/host.d.ts +153 -0
  153. package/dist/extensions/host.d.ts.map +1 -0
  154. package/dist/extensions/host.js +501 -0
  155. package/dist/extensions/host.js.map +1 -0
  156. package/dist/extensions/import-paths.d.ts +4 -0
  157. package/dist/extensions/import-paths.d.ts.map +1 -0
  158. package/dist/extensions/import-paths.js +25 -0
  159. package/dist/extensions/import-paths.js.map +1 -0
  160. package/dist/extensions/index.d.ts +21 -0
  161. package/dist/extensions/index.d.ts.map +1 -0
  162. package/dist/extensions/index.js +18 -0
  163. package/dist/extensions/index.js.map +1 -0
  164. package/dist/extensions/install.d.ts +27 -0
  165. package/dist/extensions/install.d.ts.map +1 -0
  166. package/dist/extensions/install.js +143 -0
  167. package/dist/extensions/install.js.map +1 -0
  168. package/dist/extensions/inventory.d.ts +8 -0
  169. package/dist/extensions/inventory.d.ts.map +1 -0
  170. package/dist/extensions/inventory.js +73 -0
  171. package/dist/extensions/inventory.js.map +1 -0
  172. package/dist/extensions/jail.d.ts +3 -0
  173. package/dist/extensions/jail.d.ts.map +1 -0
  174. package/dist/extensions/jail.js +11 -0
  175. package/dist/extensions/jail.js.map +1 -0
  176. package/dist/extensions/manifest.d.ts +44 -0
  177. package/dist/extensions/manifest.d.ts.map +1 -0
  178. package/dist/extensions/manifest.js +105 -0
  179. package/dist/extensions/manifest.js.map +1 -0
  180. package/dist/extensions/match.d.ts +2 -0
  181. package/dist/extensions/match.d.ts.map +1 -0
  182. package/dist/extensions/match.js +26 -0
  183. package/dist/extensions/match.js.map +1 -0
  184. package/dist/extensions/notes.d.ts +40 -0
  185. package/dist/extensions/notes.d.ts.map +1 -0
  186. package/dist/extensions/notes.js +71 -0
  187. package/dist/extensions/notes.js.map +1 -0
  188. package/dist/extensions/pack-plugin-host.d.ts +29 -0
  189. package/dist/extensions/pack-plugin-host.d.ts.map +1 -0
  190. package/dist/extensions/pack-plugin-host.js +6 -0
  191. package/dist/extensions/pack-plugin-host.js.map +1 -0
  192. package/dist/extensions/pin.d.ts +16 -0
  193. package/dist/extensions/pin.d.ts.map +1 -0
  194. package/dist/extensions/pin.js +17 -0
  195. package/dist/extensions/pin.js.map +1 -0
  196. package/dist/extensions/private-mcp.d.ts +51 -0
  197. package/dist/extensions/private-mcp.d.ts.map +1 -0
  198. package/dist/extensions/private-mcp.js +45 -0
  199. package/dist/extensions/private-mcp.js.map +1 -0
  200. package/dist/extensions/rewind.d.ts +18 -0
  201. package/dist/extensions/rewind.d.ts.map +1 -0
  202. package/dist/extensions/rewind.js +62 -0
  203. package/dist/extensions/rewind.js.map +1 -0
  204. package/dist/extensions/schemas/bot-definition.d.ts +80 -0
  205. package/dist/extensions/schemas/bot-definition.d.ts.map +1 -0
  206. package/dist/extensions/schemas/bot-definition.js +70 -0
  207. package/dist/extensions/schemas/bot-definition.js.map +1 -0
  208. package/dist/extensions/schemas/index.d.ts +3 -0
  209. package/dist/extensions/schemas/index.d.ts.map +1 -0
  210. package/dist/extensions/schemas/index.js +3 -0
  211. package/dist/extensions/schemas/index.js.map +1 -0
  212. package/dist/extensions/schemas/plugin-manifest.d.ts +231 -0
  213. package/dist/extensions/schemas/plugin-manifest.d.ts.map +1 -0
  214. package/dist/extensions/schemas/plugin-manifest.js +94 -0
  215. package/dist/extensions/schemas/plugin-manifest.js.map +1 -0
  216. package/dist/extensions/state-store.d.ts +19 -0
  217. package/dist/extensions/state-store.d.ts.map +1 -0
  218. package/dist/extensions/state-store.js +74 -0
  219. package/dist/extensions/state-store.js.map +1 -0
  220. package/dist/extensions/state.d.ts +81 -0
  221. package/dist/extensions/state.d.ts.map +1 -0
  222. package/dist/extensions/state.js +242 -0
  223. package/dist/extensions/state.js.map +1 -0
  224. package/dist/extensions/surface-error.d.ts +5 -0
  225. package/dist/extensions/surface-error.d.ts.map +1 -0
  226. package/dist/extensions/surface-error.js +5 -0
  227. package/dist/extensions/surface-error.js.map +1 -0
  228. package/dist/extensions/value.d.ts +176 -0
  229. package/dist/extensions/value.d.ts.map +1 -0
  230. package/dist/extensions/value.js +120 -0
  231. package/dist/extensions/value.js.map +1 -0
  232. package/dist/hypervisor/child-runtime.d.ts +21 -0
  233. package/dist/hypervisor/child-runtime.d.ts.map +1 -0
  234. package/dist/hypervisor/child-runtime.js +193 -0
  235. package/dist/hypervisor/child-runtime.js.map +1 -0
  236. package/dist/hypervisor/hypervisor.d.ts +69 -0
  237. package/dist/hypervisor/hypervisor.d.ts.map +1 -0
  238. package/dist/hypervisor/hypervisor.js +472 -0
  239. package/dist/hypervisor/hypervisor.js.map +1 -0
  240. package/dist/hypervisor/index.d.ts +4 -0
  241. package/dist/hypervisor/index.d.ts.map +1 -0
  242. package/dist/hypervisor/index.js +4 -0
  243. package/dist/hypervisor/index.js.map +1 -0
  244. package/dist/hypervisor/ipc.d.ts +5 -0
  245. package/dist/hypervisor/ipc.d.ts.map +1 -0
  246. package/dist/hypervisor/ipc.js +36 -0
  247. package/dist/hypervisor/ipc.js.map +1 -0
  248. package/dist/hypervisor/lock.d.ts +20 -0
  249. package/dist/hypervisor/lock.d.ts.map +1 -0
  250. package/dist/hypervisor/lock.js +185 -0
  251. package/dist/hypervisor/lock.js.map +1 -0
  252. package/dist/hypervisor/supervised-child.d.ts +2 -0
  253. package/dist/hypervisor/supervised-child.d.ts.map +1 -0
  254. package/dist/hypervisor/supervised-child.js +10 -0
  255. package/dist/hypervisor/supervised-child.js.map +1 -0
  256. package/dist/hypervisor/util.d.ts +5 -0
  257. package/dist/hypervisor/util.d.ts.map +1 -0
  258. package/dist/hypervisor/util.js +32 -0
  259. package/dist/hypervisor/util.js.map +1 -0
  260. package/dist/policy-processor/explain.d.ts +2 -0
  261. package/dist/policy-processor/explain.d.ts.map +1 -0
  262. package/dist/policy-processor/explain.js +2 -0
  263. package/dist/policy-processor/explain.js.map +1 -0
  264. package/dist/policy-processor/index.d.ts +2 -0
  265. package/dist/policy-processor/index.d.ts.map +1 -0
  266. package/dist/policy-processor/index.js +2 -0
  267. package/dist/policy-processor/index.js.map +1 -0
  268. package/dist/policy-processor/license.d.ts +2 -0
  269. package/dist/policy-processor/license.d.ts.map +1 -0
  270. package/dist/policy-processor/license.js +2 -0
  271. package/dist/policy-processor/license.js.map +1 -0
  272. package/dist/policy-processor/peel-cwd.d.ts +2 -0
  273. package/dist/policy-processor/peel-cwd.d.ts.map +1 -0
  274. package/dist/policy-processor/peel-cwd.js +2 -0
  275. package/dist/policy-processor/peel-cwd.js.map +1 -0
  276. package/dist/policy-processor/scope.d.ts +2 -0
  277. package/dist/policy-processor/scope.d.ts.map +1 -0
  278. package/dist/policy-processor/scope.js +2 -0
  279. package/dist/policy-processor/scope.js.map +1 -0
  280. package/dist/protocol/document/checkpoint.d.ts +32 -0
  281. package/dist/protocol/document/checkpoint.d.ts.map +1 -0
  282. package/dist/protocol/document/checkpoint.js +76 -0
  283. package/dist/protocol/document/checkpoint.js.map +1 -0
  284. package/dist/protocol/document/index.d.ts +9 -0
  285. package/dist/protocol/document/index.d.ts.map +1 -0
  286. package/dist/protocol/document/index.js +11 -0
  287. package/dist/protocol/document/index.js.map +1 -0
  288. package/dist/protocol/document/inventory.d.ts +37 -0
  289. package/dist/protocol/document/inventory.d.ts.map +1 -0
  290. package/dist/protocol/document/inventory.js +44 -0
  291. package/dist/protocol/document/inventory.js.map +1 -0
  292. package/dist/protocol/document/keys.d.ts +38 -0
  293. package/dist/protocol/document/keys.d.ts.map +1 -0
  294. package/dist/protocol/document/keys.js +77 -0
  295. package/dist/protocol/document/keys.js.map +1 -0
  296. package/dist/protocol/document/occupancy.d.ts +13 -0
  297. package/dist/protocol/document/occupancy.d.ts.map +1 -0
  298. package/dist/protocol/document/occupancy.js +38 -0
  299. package/dist/protocol/document/occupancy.js.map +1 -0
  300. package/dist/protocol/document/ordering.d.ts +41 -0
  301. package/dist/protocol/document/ordering.d.ts.map +1 -0
  302. package/dist/protocol/document/ordering.js +104 -0
  303. package/dist/protocol/document/ordering.js.map +1 -0
  304. package/dist/protocol/document/private.d.ts +84 -0
  305. package/dist/protocol/document/private.d.ts.map +1 -0
  306. package/dist/protocol/document/private.js +260 -0
  307. package/dist/protocol/document/private.js.map +1 -0
  308. package/dist/protocol/rpc/index.d.ts +2 -0
  309. package/dist/protocol/rpc/index.d.ts.map +1 -0
  310. package/dist/protocol/rpc/index.js +2 -0
  311. package/dist/protocol/rpc/index.js.map +1 -0
  312. package/dist/protocol/schemas/descriptor.d.ts +68 -0
  313. package/dist/protocol/schemas/descriptor.d.ts.map +1 -0
  314. package/dist/protocol/schemas/descriptor.js +90 -0
  315. package/dist/protocol/schemas/descriptor.js.map +1 -0
  316. package/dist/protocol/schemas/health.d.ts +112 -0
  317. package/dist/protocol/schemas/health.d.ts.map +1 -0
  318. package/dist/protocol/schemas/health.js +44 -0
  319. package/dist/protocol/schemas/health.js.map +1 -0
  320. package/dist/protocol/schemas/identity.d.ts +51 -0
  321. package/dist/protocol/schemas/identity.d.ts.map +1 -0
  322. package/dist/protocol/schemas/identity.js +37 -0
  323. package/dist/protocol/schemas/identity.js.map +1 -0
  324. package/dist/protocol/schemas/index.d.ts +6 -0
  325. package/dist/protocol/schemas/index.d.ts.map +1 -0
  326. package/dist/protocol/schemas/index.js +6 -0
  327. package/dist/protocol/schemas/index.js.map +1 -0
  328. package/dist/protocol/schemas/loss.d.ts +62 -0
  329. package/dist/protocol/schemas/loss.d.ts.map +1 -0
  330. package/dist/protocol/schemas/loss.js +47 -0
  331. package/dist/protocol/schemas/loss.js.map +1 -0
  332. package/dist/protocol/schemas/message.d.ts +291 -0
  333. package/dist/protocol/schemas/message.d.ts.map +1 -0
  334. package/dist/protocol/schemas/message.js +104 -0
  335. package/dist/protocol/schemas/message.js.map +1 -0
  336. package/dist/protocol/supervision/codec.d.ts +4 -0
  337. package/dist/protocol/supervision/codec.d.ts.map +1 -0
  338. package/dist/protocol/supervision/codec.js +9 -0
  339. package/dist/protocol/supervision/codec.js.map +1 -0
  340. package/dist/protocol/supervision/index.d.ts +3 -0
  341. package/dist/protocol/supervision/index.d.ts.map +1 -0
  342. package/dist/protocol/supervision/index.js +3 -0
  343. package/dist/protocol/supervision/index.js.map +1 -0
  344. package/dist/protocol/supervision/loss.d.ts +28 -0
  345. package/dist/protocol/supervision/loss.d.ts.map +1 -0
  346. package/dist/protocol/supervision/loss.js +77 -0
  347. package/dist/protocol/supervision/loss.js.map +1 -0
  348. package/dist/providers/auth/authorize.d.ts +39 -0
  349. package/dist/providers/auth/authorize.d.ts.map +1 -0
  350. package/dist/providers/auth/authorize.js +107 -0
  351. package/dist/providers/auth/authorize.js.map +1 -0
  352. package/dist/providers/auth/device.d.ts +32 -0
  353. package/dist/providers/auth/device.d.ts.map +1 -0
  354. package/dist/providers/auth/device.js +105 -0
  355. package/dist/providers/auth/device.js.map +1 -0
  356. package/dist/providers/auth/fetch.d.ts +18 -0
  357. package/dist/providers/auth/fetch.d.ts.map +1 -0
  358. package/dist/providers/auth/fetch.js +59 -0
  359. package/dist/providers/auth/fetch.js.map +1 -0
  360. package/dist/providers/auth/index.d.ts +9 -0
  361. package/dist/providers/auth/index.d.ts.map +1 -0
  362. package/dist/providers/auth/index.js +9 -0
  363. package/dist/providers/auth/index.js.map +1 -0
  364. package/dist/providers/auth/json.d.ts +10 -0
  365. package/dist/providers/auth/json.d.ts.map +1 -0
  366. package/dist/providers/auth/json.js +28 -0
  367. package/dist/providers/auth/json.js.map +1 -0
  368. package/dist/providers/auth/loopback.d.ts +24 -0
  369. package/dist/providers/auth/loopback.d.ts.map +1 -0
  370. package/dist/providers/auth/loopback.js +123 -0
  371. package/dist/providers/auth/loopback.js.map +1 -0
  372. package/dist/providers/auth/oidc.d.ts +60 -0
  373. package/dist/providers/auth/oidc.d.ts.map +1 -0
  374. package/dist/providers/auth/oidc.js +227 -0
  375. package/dist/providers/auth/oidc.js.map +1 -0
  376. package/dist/providers/chatgpt/connection.d.ts +75 -0
  377. package/dist/providers/chatgpt/connection.d.ts.map +1 -0
  378. package/dist/providers/chatgpt/connection.js +296 -0
  379. package/dist/providers/chatgpt/connection.js.map +1 -0
  380. package/dist/providers/chatgpt/index.d.ts +9 -0
  381. package/dist/providers/chatgpt/index.d.ts.map +1 -0
  382. package/dist/providers/chatgpt/index.js +9 -0
  383. package/dist/providers/chatgpt/index.js.map +1 -0
  384. package/dist/providers/chatgpt/registration.d.ts +8 -0
  385. package/dist/providers/chatgpt/registration.d.ts.map +1 -0
  386. package/dist/providers/chatgpt/registration.js +23 -0
  387. package/dist/providers/chatgpt/registration.js.map +1 -0
  388. package/dist/providers/grok/client-version.d.ts +12 -0
  389. package/dist/providers/grok/client-version.d.ts.map +1 -0
  390. package/dist/providers/grok/client-version.js +74 -0
  391. package/dist/providers/grok/client-version.js.map +1 -0
  392. package/dist/providers/grok/connection.d.ts +110 -0
  393. package/dist/providers/grok/connection.d.ts.map +1 -0
  394. package/dist/providers/grok/connection.js +445 -0
  395. package/dist/providers/grok/connection.js.map +1 -0
  396. package/dist/providers/grok/index.d.ts +9 -0
  397. package/dist/providers/grok/index.d.ts.map +1 -0
  398. package/dist/providers/grok/index.js +9 -0
  399. package/dist/providers/grok/index.js.map +1 -0
  400. package/dist/providers/grok/registration.d.ts +8 -0
  401. package/dist/providers/grok/registration.d.ts.map +1 -0
  402. package/dist/providers/grok/registration.js +23 -0
  403. package/dist/providers/grok/registration.js.map +1 -0
  404. package/dist/providers/grok/search.d.ts +3 -0
  405. package/dist/providers/grok/search.d.ts.map +1 -0
  406. package/dist/providers/grok/search.js +73 -0
  407. package/dist/providers/grok/search.js.map +1 -0
  408. package/dist/providers/mcp/actor.d.ts +19 -0
  409. package/dist/providers/mcp/actor.d.ts.map +1 -0
  410. package/dist/providers/mcp/actor.js +45 -0
  411. package/dist/providers/mcp/actor.js.map +1 -0
  412. package/dist/providers/mcp/adopt.d.ts +22 -0
  413. package/dist/providers/mcp/adopt.d.ts.map +1 -0
  414. package/dist/providers/mcp/adopt.js +100 -0
  415. package/dist/providers/mcp/adopt.js.map +1 -0
  416. package/dist/providers/mcp/config.d.ts +16 -0
  417. package/dist/providers/mcp/config.d.ts.map +1 -0
  418. package/dist/providers/mcp/config.js +30 -0
  419. package/dist/providers/mcp/config.js.map +1 -0
  420. package/dist/providers/mcp/discovery.d.ts +11 -0
  421. package/dist/providers/mcp/discovery.d.ts.map +1 -0
  422. package/dist/providers/mcp/discovery.js +14 -0
  423. package/dist/providers/mcp/discovery.js.map +1 -0
  424. package/dist/providers/mcp/fetch.d.ts +15 -0
  425. package/dist/providers/mcp/fetch.d.ts.map +1 -0
  426. package/dist/providers/mcp/fetch.js +61 -0
  427. package/dist/providers/mcp/fetch.js.map +1 -0
  428. package/dist/providers/mcp/http-driver.d.ts +49 -0
  429. package/dist/providers/mcp/http-driver.d.ts.map +1 -0
  430. package/dist/providers/mcp/http-driver.js +379 -0
  431. package/dist/providers/mcp/http-driver.js.map +1 -0
  432. package/dist/providers/mcp/index.d.ts +23 -0
  433. package/dist/providers/mcp/index.d.ts.map +1 -0
  434. package/dist/providers/mcp/index.js +23 -0
  435. package/dist/providers/mcp/index.js.map +1 -0
  436. package/dist/providers/mcp/json.d.ts +9 -0
  437. package/dist/providers/mcp/json.d.ts.map +1 -0
  438. package/dist/providers/mcp/json.js +32 -0
  439. package/dist/providers/mcp/json.js.map +1 -0
  440. package/dist/providers/mcp/mcp-connection.d.ts +33 -0
  441. package/dist/providers/mcp/mcp-connection.d.ts.map +1 -0
  442. package/dist/providers/mcp/mcp-connection.js +174 -0
  443. package/dist/providers/mcp/mcp-connection.js.map +1 -0
  444. package/dist/providers/mcp/mcp-result.d.ts +10 -0
  445. package/dist/providers/mcp/mcp-result.d.ts.map +1 -0
  446. package/dist/providers/mcp/mcp-result.js +54 -0
  447. package/dist/providers/mcp/mcp-result.js.map +1 -0
  448. package/dist/providers/mcp/oauth.d.ts +25 -0
  449. package/dist/providers/mcp/oauth.d.ts.map +1 -0
  450. package/dist/providers/mcp/oauth.js +323 -0
  451. package/dist/providers/mcp/oauth.js.map +1 -0
  452. package/dist/providers/mcp/persist.d.ts +21 -0
  453. package/dist/providers/mcp/persist.d.ts.map +1 -0
  454. package/dist/providers/mcp/persist.js +76 -0
  455. package/dist/providers/mcp/persist.js.map +1 -0
  456. package/dist/providers/mcp/quote.d.ts +4 -0
  457. package/dist/providers/mcp/quote.d.ts.map +1 -0
  458. package/dist/providers/mcp/quote.js +8 -0
  459. package/dist/providers/mcp/quote.js.map +1 -0
  460. package/dist/providers/mcp/registration.d.ts +10 -0
  461. package/dist/providers/mcp/registration.d.ts.map +1 -0
  462. package/dist/providers/mcp/registration.js +33 -0
  463. package/dist/providers/mcp/registration.js.map +1 -0
  464. package/dist/providers/mcp/registry.d.ts +24 -0
  465. package/dist/providers/mcp/registry.d.ts.map +1 -0
  466. package/dist/providers/mcp/registry.js +209 -0
  467. package/dist/providers/mcp/registry.js.map +1 -0
  468. package/dist/providers/mcp/schemas/mcp.d.ts +50 -0
  469. package/dist/providers/mcp/schemas/mcp.d.ts.map +1 -0
  470. package/dist/providers/mcp/schemas/mcp.js +85 -0
  471. package/dist/providers/mcp/schemas/mcp.js.map +1 -0
  472. package/dist/providers/mcp/stdio-driver.d.ts +31 -0
  473. package/dist/providers/mcp/stdio-driver.d.ts.map +1 -0
  474. package/dist/providers/mcp/stdio-driver.js +129 -0
  475. package/dist/providers/mcp/stdio-driver.js.map +1 -0
  476. package/dist/providers/mcp/stdio-env.d.ts +23 -0
  477. package/dist/providers/mcp/stdio-env.d.ts.map +1 -0
  478. package/dist/providers/mcp/stdio-env.js +82 -0
  479. package/dist/providers/mcp/stdio-env.js.map +1 -0
  480. package/dist/providers/mcp/tool-filter.d.ts +15 -0
  481. package/dist/providers/mcp/tool-filter.d.ts.map +1 -0
  482. package/dist/providers/mcp/tool-filter.js +75 -0
  483. package/dist/providers/mcp/tool-filter.js.map +1 -0
  484. package/dist/providers/mcp/tool-severity.d.ts +9 -0
  485. package/dist/providers/mcp/tool-severity.d.ts.map +1 -0
  486. package/dist/providers/mcp/tool-severity.js +46 -0
  487. package/dist/providers/mcp/tool-severity.js.map +1 -0
  488. package/dist/providers/mcp/wire.d.ts +11 -0
  489. package/dist/providers/mcp/wire.d.ts.map +1 -0
  490. package/dist/providers/mcp/wire.js +11 -0
  491. package/dist/providers/mcp/wire.js.map +1 -0
  492. package/dist/providers/nous/auth.d.ts +19 -0
  493. package/dist/providers/nous/auth.d.ts.map +1 -0
  494. package/dist/providers/nous/auth.js +49 -0
  495. package/dist/providers/nous/auth.js.map +1 -0
  496. package/dist/providers/nous/borrow.d.ts +3 -0
  497. package/dist/providers/nous/borrow.d.ts.map +1 -0
  498. package/dist/providers/nous/borrow.js +49 -0
  499. package/dist/providers/nous/borrow.js.map +1 -0
  500. package/dist/providers/nous/driver.d.ts +56 -0
  501. package/dist/providers/nous/driver.d.ts.map +1 -0
  502. package/dist/providers/nous/driver.js +232 -0
  503. package/dist/providers/nous/driver.js.map +1 -0
  504. package/dist/providers/nous/ids.d.ts +6 -0
  505. package/dist/providers/nous/ids.d.ts.map +1 -0
  506. package/dist/providers/nous/ids.js +6 -0
  507. package/dist/providers/nous/ids.js.map +1 -0
  508. package/dist/providers/nous/index.d.ts +12 -0
  509. package/dist/providers/nous/index.d.ts.map +1 -0
  510. package/dist/providers/nous/index.js +12 -0
  511. package/dist/providers/nous/index.js.map +1 -0
  512. package/dist/providers/nous/registration.d.ts +7 -0
  513. package/dist/providers/nous/registration.d.ts.map +1 -0
  514. package/dist/providers/nous/registration.js +23 -0
  515. package/dist/providers/nous/registration.js.map +1 -0
  516. package/dist/providers/nous/source.d.ts +26 -0
  517. package/dist/providers/nous/source.d.ts.map +1 -0
  518. package/dist/providers/nous/source.js +70 -0
  519. package/dist/providers/nous/source.js.map +1 -0
  520. package/dist/providers/openai-compat/account-look.d.ts +5 -0
  521. package/dist/providers/openai-compat/account-look.d.ts.map +1 -0
  522. package/dist/providers/openai-compat/account-look.js +33 -0
  523. package/dist/providers/openai-compat/account-look.js.map +1 -0
  524. package/dist/providers/openai-compat/actor.d.ts +99 -0
  525. package/dist/providers/openai-compat/actor.d.ts.map +1 -0
  526. package/dist/providers/openai-compat/actor.js +1520 -0
  527. package/dist/providers/openai-compat/actor.js.map +1 -0
  528. package/dist/providers/openai-compat/adopt.d.ts +20 -0
  529. package/dist/providers/openai-compat/adopt.d.ts.map +1 -0
  530. package/dist/providers/openai-compat/adopt.js +10 -0
  531. package/dist/providers/openai-compat/adopt.js.map +1 -0
  532. package/dist/providers/openai-compat/anthropic-cache.d.ts +40 -0
  533. package/dist/providers/openai-compat/anthropic-cache.d.ts.map +1 -0
  534. package/dist/providers/openai-compat/anthropic-cache.js +75 -0
  535. package/dist/providers/openai-compat/anthropic-cache.js.map +1 -0
  536. package/dist/providers/openai-compat/api-extensions/chatgpt-usage.d.ts +6 -0
  537. package/dist/providers/openai-compat/api-extensions/chatgpt-usage.d.ts.map +1 -0
  538. package/dist/providers/openai-compat/api-extensions/chatgpt-usage.js +134 -0
  539. package/dist/providers/openai-compat/api-extensions/chatgpt-usage.js.map +1 -0
  540. package/dist/providers/openai-compat/api-extensions/chutes.d.ts +3 -0
  541. package/dist/providers/openai-compat/api-extensions/chutes.d.ts.map +1 -0
  542. package/dist/providers/openai-compat/api-extensions/chutes.js +41 -0
  543. package/dist/providers/openai-compat/api-extensions/chutes.js.map +1 -0
  544. package/dist/providers/openai-compat/api-extensions/deepinfra.d.ts +3 -0
  545. package/dist/providers/openai-compat/api-extensions/deepinfra.d.ts.map +1 -0
  546. package/dist/providers/openai-compat/api-extensions/deepinfra.js +44 -0
  547. package/dist/providers/openai-compat/api-extensions/deepinfra.js.map +1 -0
  548. package/dist/providers/openai-compat/api-extensions/deepseek.d.ts +3 -0
  549. package/dist/providers/openai-compat/api-extensions/deepseek.d.ts.map +1 -0
  550. package/dist/providers/openai-compat/api-extensions/deepseek.js +47 -0
  551. package/dist/providers/openai-compat/api-extensions/deepseek.js.map +1 -0
  552. package/dist/providers/openai-compat/api-extensions/grok-billing.d.ts +5 -0
  553. package/dist/providers/openai-compat/api-extensions/grok-billing.d.ts.map +1 -0
  554. package/dist/providers/openai-compat/api-extensions/grok-billing.js +116 -0
  555. package/dist/providers/openai-compat/api-extensions/grok-billing.js.map +1 -0
  556. package/dist/providers/openai-compat/api-extensions/http.d.ts +9 -0
  557. package/dist/providers/openai-compat/api-extensions/http.d.ts.map +1 -0
  558. package/dist/providers/openai-compat/api-extensions/http.js +73 -0
  559. package/dist/providers/openai-compat/api-extensions/http.js.map +1 -0
  560. package/dist/providers/openai-compat/api-extensions/index.d.ts +17 -0
  561. package/dist/providers/openai-compat/api-extensions/index.d.ts.map +1 -0
  562. package/dist/providers/openai-compat/api-extensions/index.js +16 -0
  563. package/dist/providers/openai-compat/api-extensions/index.js.map +1 -0
  564. package/dist/providers/openai-compat/api-extensions/moonshot.d.ts +3 -0
  565. package/dist/providers/openai-compat/api-extensions/moonshot.d.ts.map +1 -0
  566. package/dist/providers/openai-compat/api-extensions/moonshot.js +29 -0
  567. package/dist/providers/openai-compat/api-extensions/moonshot.js.map +1 -0
  568. package/dist/providers/openai-compat/api-extensions/novita.d.ts +3 -0
  569. package/dist/providers/openai-compat/api-extensions/novita.d.ts.map +1 -0
  570. package/dist/providers/openai-compat/api-extensions/novita.js +48 -0
  571. package/dist/providers/openai-compat/api-extensions/novita.js.map +1 -0
  572. package/dist/providers/openai-compat/api-extensions/opencode-go.d.ts +3 -0
  573. package/dist/providers/openai-compat/api-extensions/opencode-go.d.ts.map +1 -0
  574. package/dist/providers/openai-compat/api-extensions/opencode-go.js +50 -0
  575. package/dist/providers/openai-compat/api-extensions/opencode-go.js.map +1 -0
  576. package/dist/providers/openai-compat/api-extensions/openrouter.d.ts +3 -0
  577. package/dist/providers/openai-compat/api-extensions/openrouter.d.ts.map +1 -0
  578. package/dist/providers/openai-compat/api-extensions/openrouter.js +71 -0
  579. package/dist/providers/openai-compat/api-extensions/openrouter.js.map +1 -0
  580. package/dist/providers/openai-compat/api-extensions/poe.d.ts +3 -0
  581. package/dist/providers/openai-compat/api-extensions/poe.d.ts.map +1 -0
  582. package/dist/providers/openai-compat/api-extensions/poe.js +18 -0
  583. package/dist/providers/openai-compat/api-extensions/poe.js.map +1 -0
  584. package/dist/providers/openai-compat/api-extensions/siliconflow.d.ts +3 -0
  585. package/dist/providers/openai-compat/api-extensions/siliconflow.d.ts.map +1 -0
  586. package/dist/providers/openai-compat/api-extensions/siliconflow.js +48 -0
  587. package/dist/providers/openai-compat/api-extensions/siliconflow.js.map +1 -0
  588. package/dist/providers/openai-compat/api-extensions/together.d.ts +3 -0
  589. package/dist/providers/openai-compat/api-extensions/together.d.ts.map +1 -0
  590. package/dist/providers/openai-compat/api-extensions/together.js +32 -0
  591. package/dist/providers/openai-compat/api-extensions/together.js.map +1 -0
  592. package/dist/providers/openai-compat/api-extensions/types.d.ts +120 -0
  593. package/dist/providers/openai-compat/api-extensions/types.d.ts.map +1 -0
  594. package/dist/providers/openai-compat/api-extensions/types.js +141 -0
  595. package/dist/providers/openai-compat/api-extensions/types.js.map +1 -0
  596. package/dist/providers/openai-compat/api-extensions/venice.d.ts +3 -0
  597. package/dist/providers/openai-compat/api-extensions/venice.d.ts.map +1 -0
  598. package/dist/providers/openai-compat/api-extensions/venice.js +49 -0
  599. package/dist/providers/openai-compat/api-extensions/venice.js.map +1 -0
  600. package/dist/providers/openai-compat/api-extensions/vercel-ai-gateway.d.ts +3 -0
  601. package/dist/providers/openai-compat/api-extensions/vercel-ai-gateway.d.ts.map +1 -0
  602. package/dist/providers/openai-compat/api-extensions/vercel-ai-gateway.js +18 -0
  603. package/dist/providers/openai-compat/api-extensions/vercel-ai-gateway.js.map +1 -0
  604. package/dist/providers/openai-compat/arg-aliases.d.ts +12 -0
  605. package/dist/providers/openai-compat/arg-aliases.d.ts.map +1 -0
  606. package/dist/providers/openai-compat/arg-aliases.js +82 -0
  607. package/dist/providers/openai-compat/arg-aliases.js.map +1 -0
  608. package/dist/providers/openai-compat/cache-affinity.d.ts +89 -0
  609. package/dist/providers/openai-compat/cache-affinity.d.ts.map +1 -0
  610. package/dist/providers/openai-compat/cache-affinity.js +221 -0
  611. package/dist/providers/openai-compat/cache-affinity.js.map +1 -0
  612. package/dist/providers/openai-compat/cache-dump.d.ts +32 -0
  613. package/dist/providers/openai-compat/cache-dump.d.ts.map +1 -0
  614. package/dist/providers/openai-compat/cache-dump.js +158 -0
  615. package/dist/providers/openai-compat/cache-dump.js.map +1 -0
  616. package/dist/providers/openai-compat/completion-face.d.ts +18 -0
  617. package/dist/providers/openai-compat/completion-face.d.ts.map +1 -0
  618. package/dist/providers/openai-compat/completion-face.js +27 -0
  619. package/dist/providers/openai-compat/completion-face.js.map +1 -0
  620. package/dist/providers/openai-compat/connection.d.ts +153 -0
  621. package/dist/providers/openai-compat/connection.d.ts.map +1 -0
  622. package/dist/providers/openai-compat/connection.js +837 -0
  623. package/dist/providers/openai-compat/connection.js.map +1 -0
  624. package/dist/providers/openai-compat/fetch-failure.d.ts +23 -0
  625. package/dist/providers/openai-compat/fetch-failure.d.ts.map +1 -0
  626. package/dist/providers/openai-compat/fetch-failure.js +58 -0
  627. package/dist/providers/openai-compat/fetch-failure.js.map +1 -0
  628. package/dist/providers/openai-compat/fetch-types.d.ts +5 -0
  629. package/dist/providers/openai-compat/fetch-types.d.ts.map +1 -0
  630. package/dist/providers/openai-compat/fetch-types.js +19 -0
  631. package/dist/providers/openai-compat/fetch-types.js.map +1 -0
  632. package/dist/providers/openai-compat/index.d.ts +18 -0
  633. package/dist/providers/openai-compat/index.d.ts.map +1 -0
  634. package/dist/providers/openai-compat/index.js +17 -0
  635. package/dist/providers/openai-compat/index.js.map +1 -0
  636. package/dist/providers/openai-compat/json-read.d.ts +7 -0
  637. package/dist/providers/openai-compat/json-read.d.ts.map +1 -0
  638. package/dist/providers/openai-compat/json-read.js +20 -0
  639. package/dist/providers/openai-compat/json-read.js.map +1 -0
  640. package/dist/providers/openai-compat/local-offers.d.ts +10 -0
  641. package/dist/providers/openai-compat/local-offers.d.ts.map +1 -0
  642. package/dist/providers/openai-compat/local-offers.js +59 -0
  643. package/dist/providers/openai-compat/local-offers.js.map +1 -0
  644. package/dist/providers/openai-compat/model-catalog.d.ts +16 -0
  645. package/dist/providers/openai-compat/model-catalog.d.ts.map +1 -0
  646. package/dist/providers/openai-compat/model-catalog.js +97 -0
  647. package/dist/providers/openai-compat/model-catalog.js.map +1 -0
  648. package/dist/providers/openai-compat/presence.d.ts +27 -0
  649. package/dist/providers/openai-compat/presence.d.ts.map +1 -0
  650. package/dist/providers/openai-compat/presence.js +242 -0
  651. package/dist/providers/openai-compat/presence.js.map +1 -0
  652. package/dist/providers/openai-compat/reasoning-flavor.d.ts +29 -0
  653. package/dist/providers/openai-compat/reasoning-flavor.d.ts.map +1 -0
  654. package/dist/providers/openai-compat/reasoning-flavor.js +263 -0
  655. package/dist/providers/openai-compat/reasoning-flavor.js.map +1 -0
  656. package/dist/providers/openai-compat/register.d.ts +3 -0
  657. package/dist/providers/openai-compat/register.d.ts.map +1 -0
  658. package/dist/providers/openai-compat/register.js +25 -0
  659. package/dist/providers/openai-compat/register.js.map +1 -0
  660. package/dist/providers/openai-compat/schema.d.ts +23 -0
  661. package/dist/providers/openai-compat/schema.d.ts.map +1 -0
  662. package/dist/providers/openai-compat/schema.js +47 -0
  663. package/dist/providers/openai-compat/schema.js.map +1 -0
  664. package/dist/providers/openai-compat/tool-call-json.d.ts +5 -0
  665. package/dist/providers/openai-compat/tool-call-json.d.ts.map +1 -0
  666. package/dist/providers/openai-compat/tool-call-json.js +34 -0
  667. package/dist/providers/openai-compat/tool-call-json.js.map +1 -0
  668. package/dist/providers/openai-compat/well-known.d.ts +16 -0
  669. package/dist/providers/openai-compat/well-known.d.ts.map +1 -0
  670. package/dist/providers/openai-compat/well-known.js +128 -0
  671. package/dist/providers/openai-compat/well-known.js.map +1 -0
  672. package/dist/providers/openrouter/connection.d.ts +26 -0
  673. package/dist/providers/openrouter/connection.d.ts.map +1 -0
  674. package/dist/providers/openrouter/connection.js +95 -0
  675. package/dist/providers/openrouter/connection.js.map +1 -0
  676. package/dist/providers/openrouter/index.d.ts +8 -0
  677. package/dist/providers/openrouter/index.d.ts.map +1 -0
  678. package/dist/providers/openrouter/index.js +8 -0
  679. package/dist/providers/openrouter/index.js.map +1 -0
  680. package/dist/providers/openrouter/register.d.ts +3 -0
  681. package/dist/providers/openrouter/register.d.ts.map +1 -0
  682. package/dist/providers/openrouter/register.js +23 -0
  683. package/dist/providers/openrouter/register.js.map +1 -0
  684. package/dist/providers/web/registrations/actor.d.ts +10 -0
  685. package/dist/providers/web/registrations/actor.d.ts.map +1 -0
  686. package/dist/providers/web/registrations/actor.js +25 -0
  687. package/dist/providers/web/registrations/actor.js.map +1 -0
  688. package/dist/providers/web/registrations/adopt.d.ts +16 -0
  689. package/dist/providers/web/registrations/adopt.d.ts.map +1 -0
  690. package/dist/providers/web/registrations/adopt.js +8 -0
  691. package/dist/providers/web/registrations/adopt.js.map +1 -0
  692. package/dist/providers/web/registrations/connection.d.ts +31 -0
  693. package/dist/providers/web/registrations/connection.d.ts.map +1 -0
  694. package/dist/providers/web/registrations/connection.js +197 -0
  695. package/dist/providers/web/registrations/connection.js.map +1 -0
  696. package/dist/providers/web/registrations/exa.d.ts +18 -0
  697. package/dist/providers/web/registrations/exa.d.ts.map +1 -0
  698. package/dist/providers/web/registrations/exa.js +20 -0
  699. package/dist/providers/web/registrations/exa.js.map +1 -0
  700. package/dist/providers/web/registrations/extract-actor.d.ts +10 -0
  701. package/dist/providers/web/registrations/extract-actor.d.ts.map +1 -0
  702. package/dist/providers/web/registrations/extract-actor.js +25 -0
  703. package/dist/providers/web/registrations/extract-actor.js.map +1 -0
  704. package/dist/providers/web/registrations/firecrawl.d.ts +21 -0
  705. package/dist/providers/web/registrations/firecrawl.d.ts.map +1 -0
  706. package/dist/providers/web/registrations/firecrawl.js +32 -0
  707. package/dist/providers/web/registrations/firecrawl.js.map +1 -0
  708. package/dist/providers/web/registrations/ids.d.ts +6 -0
  709. package/dist/providers/web/registrations/ids.d.ts.map +1 -0
  710. package/dist/providers/web/registrations/ids.js +5 -0
  711. package/dist/providers/web/registrations/ids.js.map +1 -0
  712. package/dist/providers/web/registrations/index.d.ts +19 -0
  713. package/dist/providers/web/registrations/index.d.ts.map +1 -0
  714. package/dist/providers/web/registrations/index.js +18 -0
  715. package/dist/providers/web/registrations/index.js.map +1 -0
  716. package/dist/providers/web/registrations/keenable.d.ts +18 -0
  717. package/dist/providers/web/registrations/keenable.d.ts.map +1 -0
  718. package/dist/providers/web/registrations/keenable.js +20 -0
  719. package/dist/providers/web/registrations/keenable.js.map +1 -0
  720. package/dist/providers/web/registrations/keyless.d.ts +13 -0
  721. package/dist/providers/web/registrations/keyless.d.ts.map +1 -0
  722. package/dist/providers/web/registrations/keyless.js +15 -0
  723. package/dist/providers/web/registrations/keyless.js.map +1 -0
  724. package/dist/providers/web/registrations/parallel.d.ts +18 -0
  725. package/dist/providers/web/registrations/parallel.d.ts.map +1 -0
  726. package/dist/providers/web/registrations/parallel.js +20 -0
  727. package/dist/providers/web/registrations/parallel.js.map +1 -0
  728. package/dist/providers/web/registrations/registration.d.ts +7 -0
  729. package/dist/providers/web/registrations/registration.d.ts.map +1 -0
  730. package/dist/providers/web/registrations/registration.js +62 -0
  731. package/dist/providers/web/registrations/registration.js.map +1 -0
  732. package/dist/providers/web/registrations/ring.d.ts +10 -0
  733. package/dist/providers/web/registrations/ring.d.ts.map +1 -0
  734. package/dist/providers/web/registrations/ring.js +59 -0
  735. package/dist/providers/web/registrations/ring.js.map +1 -0
  736. package/dist/providers/web/registrations/schemas.d.ts +8 -0
  737. package/dist/providers/web/registrations/schemas.d.ts.map +1 -0
  738. package/dist/providers/web/registrations/schemas.js +8 -0
  739. package/dist/providers/web/registrations/schemas.js.map +1 -0
  740. package/dist/providers/web/registrations/tavily.d.ts +18 -0
  741. package/dist/providers/web/registrations/tavily.d.ts.map +1 -0
  742. package/dist/providers/web/registrations/tavily.js +20 -0
  743. package/dist/providers/web/registrations/tavily.js.map +1 -0
  744. package/dist/providers/web/wire/adapters.d.ts +22 -0
  745. package/dist/providers/web/wire/adapters.d.ts.map +1 -0
  746. package/dist/providers/web/wire/adapters.js +258 -0
  747. package/dist/providers/web/wire/adapters.js.map +1 -0
  748. package/dist/providers/web/wire/extract.d.ts +35 -0
  749. package/dist/providers/web/wire/extract.d.ts.map +1 -0
  750. package/dist/providers/web/wire/extract.js +267 -0
  751. package/dist/providers/web/wire/extract.js.map +1 -0
  752. package/dist/providers/web/wire/fetch-failure.d.ts +20 -0
  753. package/dist/providers/web/wire/fetch-failure.d.ts.map +1 -0
  754. package/dist/providers/web/wire/fetch-failure.js +47 -0
  755. package/dist/providers/web/wire/fetch-failure.js.map +1 -0
  756. package/dist/providers/web/wire/http.d.ts +45 -0
  757. package/dist/providers/web/wire/http.d.ts.map +1 -0
  758. package/dist/providers/web/wire/http.js +167 -0
  759. package/dist/providers/web/wire/http.js.map +1 -0
  760. package/dist/providers/web/wire/index.d.ts +10 -0
  761. package/dist/providers/web/wire/index.d.ts.map +1 -0
  762. package/dist/providers/web/wire/index.js +10 -0
  763. package/dist/providers/web/wire/index.js.map +1 -0
  764. package/dist/providers/web/wire/json.d.ts +7 -0
  765. package/dist/providers/web/wire/json.d.ts.map +1 -0
  766. package/dist/providers/web/wire/json.js +18 -0
  767. package/dist/providers/web/wire/json.js.map +1 -0
  768. package/dist/providers/web/wire/ssrf.d.ts +3 -0
  769. package/dist/providers/web/wire/ssrf.d.ts.map +1 -0
  770. package/dist/providers/web/wire/ssrf.js +38 -0
  771. package/dist/providers/web/wire/ssrf.js.map +1 -0
  772. package/dist/providers/web/wire/types.d.ts +37 -0
  773. package/dist/providers/web/wire/types.d.ts.map +1 -0
  774. package/dist/providers/web/wire/types.js +21 -0
  775. package/dist/providers/web/wire/types.js.map +1 -0
  776. package/dist/runtime/bot-mcp.d.ts +35 -0
  777. package/dist/runtime/bot-mcp.d.ts.map +1 -0
  778. package/dist/runtime/bot-mcp.js +97 -0
  779. package/dist/runtime/bot-mcp.js.map +1 -0
  780. package/dist/runtime/compose.d.ts +92 -0
  781. package/dist/runtime/compose.d.ts.map +1 -0
  782. package/dist/runtime/compose.js +143 -0
  783. package/dist/runtime/compose.js.map +1 -0
  784. package/dist/runtime/connection-tools.d.ts +31 -0
  785. package/dist/runtime/connection-tools.d.ts.map +1 -0
  786. package/dist/runtime/connection-tools.js +122 -0
  787. package/dist/runtime/connection-tools.js.map +1 -0
  788. package/dist/runtime/eligibility.d.ts +15 -0
  789. package/dist/runtime/eligibility.d.ts.map +1 -0
  790. package/dist/runtime/eligibility.js +46 -0
  791. package/dist/runtime/eligibility.js.map +1 -0
  792. package/dist/runtime/grants.d.ts +13 -0
  793. package/dist/runtime/grants.d.ts.map +1 -0
  794. package/dist/runtime/grants.js +37 -0
  795. package/dist/runtime/grants.js.map +1 -0
  796. package/dist/runtime/index.d.ts +10 -0
  797. package/dist/runtime/index.d.ts.map +1 -0
  798. package/dist/runtime/index.js +8 -0
  799. package/dist/runtime/index.js.map +1 -0
  800. package/dist/runtime/intent-recovery.d.ts +39 -0
  801. package/dist/runtime/intent-recovery.d.ts.map +1 -0
  802. package/dist/runtime/intent-recovery.js +142 -0
  803. package/dist/runtime/intent-recovery.js.map +1 -0
  804. package/dist/runtime/private-plugin-mcp.d.ts +38 -0
  805. package/dist/runtime/private-plugin-mcp.d.ts.map +1 -0
  806. package/dist/runtime/private-plugin-mcp.js +228 -0
  807. package/dist/runtime/private-plugin-mcp.js.map +1 -0
  808. package/dist/runtime/types.d.ts +20 -0
  809. package/dist/runtime/types.d.ts.map +1 -0
  810. package/dist/runtime/types.js +6 -0
  811. package/dist/runtime/types.js.map +1 -0
  812. package/dist/runtime-server/compose.d.ts +45 -0
  813. package/dist/runtime-server/compose.d.ts.map +1 -0
  814. package/dist/runtime-server/compose.js +195 -0
  815. package/dist/runtime-server/compose.js.map +1 -0
  816. package/dist/runtime-server/index.d.ts +2 -0
  817. package/dist/runtime-server/index.d.ts.map +1 -0
  818. package/dist/runtime-server/index.js +2 -0
  819. package/dist/runtime-server/index.js.map +1 -0
  820. package/dist/server/ack-requests.d.ts +39 -0
  821. package/dist/server/ack-requests.d.ts.map +1 -0
  822. package/dist/server/ack-requests.js +74 -0
  823. package/dist/server/ack-requests.js.map +1 -0
  824. package/dist/server/adjust-json.d.ts +2 -0
  825. package/dist/server/adjust-json.d.ts.map +1 -0
  826. package/dist/server/adjust-json.js +2 -0
  827. package/dist/server/adjust-json.js.map +1 -0
  828. package/dist/server/ask-answer.d.ts +70 -0
  829. package/dist/server/ask-answer.d.ts.map +1 -0
  830. package/dist/server/ask-answer.js +159 -0
  831. package/dist/server/ask-answer.js.map +1 -0
  832. package/dist/server/bin.d.ts +3 -0
  833. package/dist/server/bin.d.ts.map +1 -0
  834. package/dist/server/bin.js +52 -0
  835. package/dist/server/bin.js.map +1 -0
  836. package/dist/server/blobs/bucket.d.ts +49 -0
  837. package/dist/server/blobs/bucket.d.ts.map +1 -0
  838. package/dist/server/blobs/bucket.js +20 -0
  839. package/dist/server/blobs/bucket.js.map +1 -0
  840. package/dist/server/blobs/fs-bucket.d.ts +18 -0
  841. package/dist/server/blobs/fs-bucket.d.ts.map +1 -0
  842. package/dist/server/blobs/fs-bucket.js +146 -0
  843. package/dist/server/blobs/fs-bucket.js.map +1 -0
  844. package/dist/server/blobs/media.d.ts +9 -0
  845. package/dist/server/blobs/media.d.ts.map +1 -0
  846. package/dist/server/blobs/media.js +22 -0
  847. package/dist/server/blobs/media.js.map +1 -0
  848. package/dist/server/blobs/store.d.ts +13 -0
  849. package/dist/server/blobs/store.d.ts.map +1 -0
  850. package/dist/server/blobs/store.js +45 -0
  851. package/dist/server/blobs/store.js.map +1 -0
  852. package/dist/server/blobs/vacuum.d.ts +24 -0
  853. package/dist/server/blobs/vacuum.d.ts.map +1 -0
  854. package/dist/server/blobs/vacuum.js +99 -0
  855. package/dist/server/blobs/vacuum.js.map +1 -0
  856. package/dist/server/boot.d.ts +2 -0
  857. package/dist/server/boot.d.ts.map +1 -0
  858. package/dist/server/boot.js +22 -0
  859. package/dist/server/boot.js.map +1 -0
  860. package/dist/server/capture-env.d.ts +3 -0
  861. package/dist/server/capture-env.d.ts.map +1 -0
  862. package/dist/server/capture-env.js +27 -0
  863. package/dist/server/capture-env.js.map +1 -0
  864. package/dist/server/composition.d.ts +19 -0
  865. package/dist/server/composition.d.ts.map +1 -0
  866. package/dist/server/composition.js +111 -0
  867. package/dist/server/composition.js.map +1 -0
  868. package/dist/server/contract.d.ts +90 -0
  869. package/dist/server/contract.d.ts.map +1 -0
  870. package/dist/server/contract.js +318 -0
  871. package/dist/server/contract.js.map +1 -0
  872. package/dist/server/daemon/bots/bot-mode.d.ts +7 -0
  873. package/dist/server/daemon/bots/bot-mode.d.ts.map +1 -0
  874. package/dist/server/daemon/bots/bot-mode.js +11 -0
  875. package/dist/server/daemon/bots/bot-mode.js.map +1 -0
  876. package/dist/server/daemon/bots/index.d.ts +5 -0
  877. package/dist/server/daemon/bots/index.d.ts.map +1 -0
  878. package/dist/server/daemon/bots/index.js +5 -0
  879. package/dist/server/daemon/bots/index.js.map +1 -0
  880. package/dist/server/daemon/bots/merge.d.ts +27 -0
  881. package/dist/server/daemon/bots/merge.d.ts.map +1 -0
  882. package/dist/server/daemon/bots/merge.js +201 -0
  883. package/dist/server/daemon/bots/merge.js.map +1 -0
  884. package/dist/server/daemon/bots/notice.d.ts +5 -0
  885. package/dist/server/daemon/bots/notice.d.ts.map +1 -0
  886. package/dist/server/daemon/bots/notice.js +28 -0
  887. package/dist/server/daemon/bots/notice.js.map +1 -0
  888. package/dist/server/daemon/bots/parse-bot-markdown.d.ts +18 -0
  889. package/dist/server/daemon/bots/parse-bot-markdown.d.ts.map +1 -0
  890. package/dist/server/daemon/bots/parse-bot-markdown.js +21 -0
  891. package/dist/server/daemon/bots/parse-bot-markdown.js.map +1 -0
  892. package/dist/server/daemon/bots/paths.d.ts +4 -0
  893. package/dist/server/daemon/bots/paths.d.ts.map +1 -0
  894. package/dist/server/daemon/bots/paths.js +15 -0
  895. package/dist/server/daemon/bots/paths.js.map +1 -0
  896. package/dist/server/daemon/bots/watcher.d.ts +8 -0
  897. package/dist/server/daemon/bots/watcher.d.ts.map +1 -0
  898. package/dist/server/daemon/bots/watcher.js +25 -0
  899. package/dist/server/daemon/bots/watcher.js.map +1 -0
  900. package/dist/server/daemon/fs/watchFiles.d.ts +24 -0
  901. package/dist/server/daemon/fs/watchFiles.d.ts.map +1 -0
  902. package/dist/server/daemon/fs/watchFiles.js +225 -0
  903. package/dist/server/daemon/fs/watchFiles.js.map +1 -0
  904. package/dist/server/daemon/kernel/KernelDaemon.d.ts +543 -0
  905. package/dist/server/daemon/kernel/KernelDaemon.d.ts.map +1 -0
  906. package/dist/server/daemon/kernel/KernelDaemon.js +1526 -0
  907. package/dist/server/daemon/kernel/KernelDaemon.js.map +1 -0
  908. package/dist/server/daemon/kernel/completion-catalog.d.ts +28 -0
  909. package/dist/server/daemon/kernel/completion-catalog.d.ts.map +1 -0
  910. package/dist/server/daemon/kernel/completion-catalog.js +54 -0
  911. package/dist/server/daemon/kernel/completion-catalog.js.map +1 -0
  912. package/dist/server/daemon/kernel/connection-rpc.d.ts +16 -0
  913. package/dist/server/daemon/kernel/connection-rpc.d.ts.map +1 -0
  914. package/dist/server/daemon/kernel/connection-rpc.js +72 -0
  915. package/dist/server/daemon/kernel/connection-rpc.js.map +1 -0
  916. package/dist/server/daemon/kernel/fs-reflection/KernelReflector.d.ts +22 -0
  917. package/dist/server/daemon/kernel/fs-reflection/KernelReflector.d.ts.map +1 -0
  918. package/dist/server/daemon/kernel/fs-reflection/KernelReflector.js +46 -0
  919. package/dist/server/daemon/kernel/fs-reflection/KernelReflector.js.map +1 -0
  920. package/dist/server/daemon/kernel/fs-reflection/WatchPaths.d.ts +3 -0
  921. package/dist/server/daemon/kernel/fs-reflection/WatchPaths.d.ts.map +1 -0
  922. package/dist/server/daemon/kernel/fs-reflection/WatchPaths.js +37 -0
  923. package/dist/server/daemon/kernel/fs-reflection/WatchPaths.js.map +1 -0
  924. package/dist/server/daemon/kernel/fs-reflection/reflectKernel.d.ts +4 -0
  925. package/dist/server/daemon/kernel/fs-reflection/reflectKernel.d.ts.map +1 -0
  926. package/dist/server/daemon/kernel/fs-reflection/reflectKernel.js +203 -0
  927. package/dist/server/daemon/kernel/fs-reflection/reflectKernel.js.map +1 -0
  928. package/dist/server/daemon/kernel/glance-ask-line.d.ts +7 -0
  929. package/dist/server/daemon/kernel/glance-ask-line.d.ts.map +1 -0
  930. package/dist/server/daemon/kernel/glance-ask-line.js +36 -0
  931. package/dist/server/daemon/kernel/glance-ask-line.js.map +1 -0
  932. package/dist/server/daemon/kernel/kernel-package.d.ts +7 -0
  933. package/dist/server/daemon/kernel/kernel-package.d.ts.map +1 -0
  934. package/dist/server/daemon/kernel/kernel-package.js +40 -0
  935. package/dist/server/daemon/kernel/kernel-package.js.map +1 -0
  936. package/dist/server/daemon/kernel/remote-access.d.ts +75 -0
  937. package/dist/server/daemon/kernel/remote-access.d.ts.map +1 -0
  938. package/dist/server/daemon/kernel/remote-access.js +206 -0
  939. package/dist/server/daemon/kernel/remote-access.js.map +1 -0
  940. package/dist/server/daemon/kernel/remote-connector.d.ts +29 -0
  941. package/dist/server/daemon/kernel/remote-connector.d.ts.map +1 -0
  942. package/dist/server/daemon/kernel/remote-connector.js +475 -0
  943. package/dist/server/daemon/kernel/remote-connector.js.map +1 -0
  944. package/dist/server/daemon/kernel/remote-http.d.ts +19 -0
  945. package/dist/server/daemon/kernel/remote-http.d.ts.map +1 -0
  946. package/dist/server/daemon/kernel/remote-http.js +161 -0
  947. package/dist/server/daemon/kernel/remote-http.js.map +1 -0
  948. package/dist/server/daemon/kernel/settings-config.d.ts +28 -0
  949. package/dist/server/daemon/kernel/settings-config.d.ts.map +1 -0
  950. package/dist/server/daemon/kernel/settings-config.js +53 -0
  951. package/dist/server/daemon/kernel/settings-config.js.map +1 -0
  952. package/dist/server/daemon/kernel/settings-files.d.ts +38 -0
  953. package/dist/server/daemon/kernel/settings-files.d.ts.map +1 -0
  954. package/dist/server/daemon/kernel/settings-files.js +189 -0
  955. package/dist/server/daemon/kernel/settings-files.js.map +1 -0
  956. package/dist/server/daemon/project/ProjectDaemon.d.ts +30 -0
  957. package/dist/server/daemon/project/ProjectDaemon.d.ts.map +1 -0
  958. package/dist/server/daemon/project/ProjectDaemon.js +310 -0
  959. package/dist/server/daemon/project/ProjectDaemon.js.map +1 -0
  960. package/dist/server/daemon/server/HTTPServer.d.ts +13 -0
  961. package/dist/server/daemon/server/HTTPServer.d.ts.map +1 -0
  962. package/dist/server/daemon/server/HTTPServer.js +127 -0
  963. package/dist/server/daemon/server/HTTPServer.js.map +1 -0
  964. package/dist/server/daemon/server/HarnessDaemon.d.ts +20 -0
  965. package/dist/server/daemon/server/HarnessDaemon.d.ts.map +1 -0
  966. package/dist/server/daemon/server/HarnessDaemon.js +117 -0
  967. package/dist/server/daemon/server/HarnessDaemon.js.map +1 -0
  968. package/dist/server/daemon/session/SessionDaemon.d.ts +584 -0
  969. package/dist/server/daemon/session/SessionDaemon.d.ts.map +1 -0
  970. package/dist/server/daemon/session/SessionDaemon.js +1122 -0
  971. package/dist/server/daemon/session/SessionDaemon.js.map +1 -0
  972. package/dist/server/daemon/session/SessionOrchestrator.d.ts +60 -0
  973. package/dist/server/daemon/session/SessionOrchestrator.d.ts.map +1 -0
  974. package/dist/server/daemon/session/SessionOrchestrator.js +1363 -0
  975. package/dist/server/daemon/session/SessionOrchestrator.js.map +1 -0
  976. package/dist/server/daemon/session/agent-calls-operator.d.ts +7 -0
  977. package/dist/server/daemon/session/agent-calls-operator.d.ts.map +1 -0
  978. package/dist/server/daemon/session/agent-calls-operator.js +6 -0
  979. package/dist/server/daemon/session/agent-calls-operator.js.map +1 -0
  980. package/dist/server/daemon/session/agent-runtime.d.ts +44 -0
  981. package/dist/server/daemon/session/agent-runtime.d.ts.map +1 -0
  982. package/dist/server/daemon/session/agent-runtime.js +542 -0
  983. package/dist/server/daemon/session/agent-runtime.js.map +1 -0
  984. package/dist/server/daemon/session/ambient-compact.d.ts +22 -0
  985. package/dist/server/daemon/session/ambient-compact.d.ts.map +1 -0
  986. package/dist/server/daemon/session/ambient-compact.js +121 -0
  987. package/dist/server/daemon/session/ambient-compact.js.map +1 -0
  988. package/dist/server/daemon/session/behavior-host.d.ts +65 -0
  989. package/dist/server/daemon/session/behavior-host.d.ts.map +1 -0
  990. package/dist/server/daemon/session/behavior-host.js +348 -0
  991. package/dist/server/daemon/session/behavior-host.js.map +1 -0
  992. package/dist/server/daemon/session/compact.d.ts +8 -0
  993. package/dist/server/daemon/session/compact.d.ts.map +1 -0
  994. package/dist/server/daemon/session/compact.js +22 -0
  995. package/dist/server/daemon/session/compact.js.map +1 -0
  996. package/dist/server/daemon/session/completion-flight.d.ts +17 -0
  997. package/dist/server/daemon/session/completion-flight.d.ts.map +1 -0
  998. package/dist/server/daemon/session/completion-flight.js +74 -0
  999. package/dist/server/daemon/session/completion-flight.js.map +1 -0
  1000. package/dist/server/daemon/session/hook-deadline.d.ts +25 -0
  1001. package/dist/server/daemon/session/hook-deadline.d.ts.map +1 -0
  1002. package/dist/server/daemon/session/hook-deadline.js +48 -0
  1003. package/dist/server/daemon/session/hook-deadline.js.map +1 -0
  1004. package/dist/server/daemon/session/instructions.d.ts +3 -0
  1005. package/dist/server/daemon/session/instructions.d.ts.map +1 -0
  1006. package/dist/server/daemon/session/instructions.js +14 -0
  1007. package/dist/server/daemon/session/instructions.js.map +1 -0
  1008. package/dist/server/daemon/session/plugin-abi.d.ts +10 -0
  1009. package/dist/server/daemon/session/plugin-abi.d.ts.map +1 -0
  1010. package/dist/server/daemon/session/plugin-abi.js +172 -0
  1011. package/dist/server/daemon/session/plugin-abi.js.map +1 -0
  1012. package/dist/server/daemon/session/plugin-bots.d.ts +29 -0
  1013. package/dist/server/daemon/session/plugin-bots.d.ts.map +1 -0
  1014. package/dist/server/daemon/session/plugin-bots.js +117 -0
  1015. package/dist/server/daemon/session/plugin-bots.js.map +1 -0
  1016. package/dist/server/daemon/session/project-authorization.d.ts +5 -0
  1017. package/dist/server/daemon/session/project-authorization.d.ts.map +1 -0
  1018. package/dist/server/daemon/session/project-authorization.js +26 -0
  1019. package/dist/server/daemon/session/project-authorization.js.map +1 -0
  1020. package/dist/server/daemon/session/prompt-message-of.d.ts +10 -0
  1021. package/dist/server/daemon/session/prompt-message-of.d.ts.map +1 -0
  1022. package/dist/server/daemon/session/prompt-message-of.js +16 -0
  1023. package/dist/server/daemon/session/prompt-message-of.js.map +1 -0
  1024. package/dist/server/daemon/session/re-act-loop-intent-detected-trigger.d.ts +43 -0
  1025. package/dist/server/daemon/session/re-act-loop-intent-detected-trigger.d.ts.map +1 -0
  1026. package/dist/server/daemon/session/re-act-loop-intent-detected-trigger.js +148 -0
  1027. package/dist/server/daemon/session/re-act-loop-intent-detected-trigger.js.map +1 -0
  1028. package/dist/server/daemon/session/round-stop.d.ts +26 -0
  1029. package/dist/server/daemon/session/round-stop.d.ts.map +1 -0
  1030. package/dist/server/daemon/session/round-stop.js +76 -0
  1031. package/dist/server/daemon/session/round-stop.js.map +1 -0
  1032. package/dist/server/daemon/session/statusline-git.d.ts +2 -0
  1033. package/dist/server/daemon/session/statusline-git.d.ts.map +1 -0
  1034. package/dist/server/daemon/session/statusline-git.js +9 -0
  1035. package/dist/server/daemon/session/statusline-git.js.map +1 -0
  1036. package/dist/server/daemon/session/turn-iterator.d.ts +45 -0
  1037. package/dist/server/daemon/session/turn-iterator.d.ts.map +1 -0
  1038. package/dist/server/daemon/session/turn-iterator.js +436 -0
  1039. package/dist/server/daemon/session/turn-iterator.js.map +1 -0
  1040. package/dist/server/daemon/session/turn-resolvers.d.ts +17 -0
  1041. package/dist/server/daemon/session/turn-resolvers.d.ts.map +1 -0
  1042. package/dist/server/daemon/session/turn-resolvers.js +29 -0
  1043. package/dist/server/daemon/session/turn-resolvers.js.map +1 -0
  1044. package/dist/server/daemon/session/visual-store.d.ts +33 -0
  1045. package/dist/server/daemon/session/visual-store.d.ts.map +1 -0
  1046. package/dist/server/daemon/session/visual-store.js +249 -0
  1047. package/dist/server/daemon/session/visual-store.js.map +1 -0
  1048. package/dist/server/defaults/index.d.ts +26 -0
  1049. package/dist/server/defaults/index.d.ts.map +1 -0
  1050. package/dist/server/defaults/index.js +77 -0
  1051. package/dist/server/defaults/index.js.map +1 -0
  1052. package/dist/server/defaults/policy-asset.d.ts +3 -0
  1053. package/dist/server/defaults/policy-asset.d.ts.map +1 -0
  1054. package/dist/server/defaults/policy-asset.js +11 -0
  1055. package/dist/server/defaults/policy-asset.js.map +1 -0
  1056. package/dist/server/drivers/fetch-failure.d.ts +21 -0
  1057. package/dist/server/drivers/fetch-failure.d.ts.map +1 -0
  1058. package/dist/server/drivers/fetch-failure.js +47 -0
  1059. package/dist/server/drivers/fetch-failure.js.map +1 -0
  1060. package/dist/server/drivers/interned-complete.d.ts +8 -0
  1061. package/dist/server/drivers/interned-complete.d.ts.map +1 -0
  1062. package/dist/server/drivers/interned-complete.js +19 -0
  1063. package/dist/server/drivers/interned-complete.js.map +1 -0
  1064. package/dist/server/drivers/request-timeout.d.ts +2 -0
  1065. package/dist/server/drivers/request-timeout.d.ts.map +1 -0
  1066. package/dist/server/drivers/request-timeout.js +19 -0
  1067. package/dist/server/drivers/request-timeout.js.map +1 -0
  1068. package/dist/server/drivers/web-search/nous-gateway.d.ts +21 -0
  1069. package/dist/server/drivers/web-search/nous-gateway.d.ts.map +1 -0
  1070. package/dist/server/drivers/web-search/nous-gateway.js +23 -0
  1071. package/dist/server/drivers/web-search/nous-gateway.js.map +1 -0
  1072. package/dist/server/drivers/web-search/pick.d.ts +29 -0
  1073. package/dist/server/drivers/web-search/pick.d.ts.map +1 -0
  1074. package/dist/server/drivers/web-search/pick.js +65 -0
  1075. package/dist/server/drivers/web-search/pick.js.map +1 -0
  1076. package/dist/server/drivers/web-search/types.d.ts +10 -0
  1077. package/dist/server/drivers/web-search/types.d.ts.map +1 -0
  1078. package/dist/server/drivers/web-search/types.js +17 -0
  1079. package/dist/server/drivers/web-search/types.js.map +1 -0
  1080. package/dist/server/ensure.d.ts +9 -0
  1081. package/dist/server/ensure.d.ts.map +1 -0
  1082. package/dist/server/ensure.js +174 -0
  1083. package/dist/server/ensure.js.map +1 -0
  1084. package/dist/server/index.d.ts +5 -0
  1085. package/dist/server/index.d.ts.map +1 -0
  1086. package/dist/server/index.js +5 -0
  1087. package/dist/server/index.js.map +1 -0
  1088. package/dist/server/provider-roster/nous.d.ts +3 -0
  1089. package/dist/server/provider-roster/nous.d.ts.map +1 -0
  1090. package/dist/server/provider-roster/nous.js +20 -0
  1091. package/dist/server/provider-roster/nous.js.map +1 -0
  1092. package/dist/server/runtime-bin.d.ts +3 -0
  1093. package/dist/server/runtime-bin.d.ts.map +1 -0
  1094. package/dist/server/runtime-bin.js +71 -0
  1095. package/dist/server/runtime-bin.js.map +1 -0
  1096. package/dist/server/schemas/index.d.ts +5 -0
  1097. package/dist/server/schemas/index.d.ts.map +1 -0
  1098. package/dist/server/schemas/index.js +5 -0
  1099. package/dist/server/schemas/index.js.map +1 -0
  1100. package/dist/server/schemas/json-record.d.ts +10 -0
  1101. package/dist/server/schemas/json-record.d.ts.map +1 -0
  1102. package/dist/server/schemas/json-record.js +20 -0
  1103. package/dist/server/schemas/json-record.js.map +1 -0
  1104. package/dist/server/schemas/tool-result.d.ts +14 -0
  1105. package/dist/server/schemas/tool-result.d.ts.map +1 -0
  1106. package/dist/server/schemas/tool-result.js +14 -0
  1107. package/dist/server/schemas/tool-result.js.map +1 -0
  1108. package/dist/server/schemas/well-known.d.ts +99 -0
  1109. package/dist/server/schemas/well-known.d.ts.map +1 -0
  1110. package/dist/server/schemas/well-known.js +141 -0
  1111. package/dist/server/schemas/well-known.js.map +1 -0
  1112. package/dist/server/secrets.d.ts +6 -0
  1113. package/dist/server/secrets.d.ts.map +1 -0
  1114. package/dist/server/secrets.js +80 -0
  1115. package/dist/server/secrets.js.map +1 -0
  1116. package/dist/server/step.d.ts +3 -0
  1117. package/dist/server/step.d.ts.map +1 -0
  1118. package/dist/server/step.js +7 -0
  1119. package/dist/server/step.js.map +1 -0
  1120. package/dist/server/system-plugins/index.d.ts +16 -0
  1121. package/dist/server/system-plugins/index.d.ts.map +1 -0
  1122. package/dist/server/system-plugins/index.js +27 -0
  1123. package/dist/server/system-plugins/index.js.map +1 -0
  1124. package/dist/server/system-plugins/named-agents/agent-catalog.d.ts +9 -0
  1125. package/dist/server/system-plugins/named-agents/agent-catalog.d.ts.map +1 -0
  1126. package/dist/server/system-plugins/named-agents/agent-catalog.js +12 -0
  1127. package/dist/server/system-plugins/named-agents/agent-catalog.js.map +1 -0
  1128. package/dist/server/system-plugins/named-agents/agent-stdlib.d.ts +2 -0
  1129. package/dist/server/system-plugins/named-agents/agent-stdlib.d.ts.map +1 -0
  1130. package/dist/server/system-plugins/named-agents/agent-stdlib.js +4 -0
  1131. package/dist/server/system-plugins/named-agents/agent-stdlib.js.map +1 -0
  1132. package/dist/server/testkit/compat-server.d.ts +23 -0
  1133. package/dist/server/testkit/compat-server.d.ts.map +1 -0
  1134. package/dist/server/testkit/compat-server.js +111 -0
  1135. package/dist/server/testkit/compat-server.js.map +1 -0
  1136. package/dist/server/testkit/index.d.ts +9 -0
  1137. package/dist/server/testkit/index.d.ts.map +1 -0
  1138. package/dist/server/testkit/index.js +9 -0
  1139. package/dist/server/testkit/index.js.map +1 -0
  1140. package/dist/server/testkit/scripted-model.d.ts +40 -0
  1141. package/dist/server/testkit/scripted-model.d.ts.map +1 -0
  1142. package/dist/server/testkit/scripted-model.js +166 -0
  1143. package/dist/server/testkit/scripted-model.js.map +1 -0
  1144. package/dist/server/testkit/sequence-provider.d.ts +11 -0
  1145. package/dist/server/testkit/sequence-provider.d.ts.map +1 -0
  1146. package/dist/server/testkit/sequence-provider.js +105 -0
  1147. package/dist/server/testkit/sequence-provider.js.map +1 -0
  1148. package/dist/server/toolkit/actor.d.ts +15 -0
  1149. package/dist/server/toolkit/actor.d.ts.map +1 -0
  1150. package/dist/server/toolkit/actor.js +133 -0
  1151. package/dist/server/toolkit/actor.js.map +1 -0
  1152. package/dist/server/toolkit/catalog.d.ts +20 -0
  1153. package/dist/server/toolkit/catalog.d.ts.map +1 -0
  1154. package/dist/server/toolkit/catalog.js +97 -0
  1155. package/dist/server/toolkit/catalog.js.map +1 -0
  1156. package/dist/server/toolkit/executor.d.ts +25 -0
  1157. package/dist/server/toolkit/executor.d.ts.map +1 -0
  1158. package/dist/server/toolkit/executor.js +42 -0
  1159. package/dist/server/toolkit/executor.js.map +1 -0
  1160. package/dist/server/toolkit/index.d.ts +8 -0
  1161. package/dist/server/toolkit/index.d.ts.map +1 -0
  1162. package/dist/server/toolkit/index.js +8 -0
  1163. package/dist/server/toolkit/index.js.map +1 -0
  1164. package/dist/server/toolkit/pack-catalog.d.ts +34 -0
  1165. package/dist/server/toolkit/pack-catalog.d.ts.map +1 -0
  1166. package/dist/server/toolkit/pack-catalog.js +19 -0
  1167. package/dist/server/toolkit/pack-catalog.js.map +1 -0
  1168. package/dist/server/toolkit/plugin-registry.d.ts +24 -0
  1169. package/dist/server/toolkit/plugin-registry.d.ts.map +1 -0
  1170. package/dist/server/toolkit/plugin-registry.js +87 -0
  1171. package/dist/server/toolkit/plugin-registry.js.map +1 -0
  1172. package/dist/server/toolkit/plugin-tools.d.ts +6 -0
  1173. package/dist/server/toolkit/plugin-tools.d.ts.map +1 -0
  1174. package/dist/server/toolkit/plugin-tools.js +2 -0
  1175. package/dist/server/toolkit/plugin-tools.js.map +1 -0
  1176. package/dist/server/toolkit/plugin-workspace.d.ts +3 -0
  1177. package/dist/server/toolkit/plugin-workspace.d.ts.map +1 -0
  1178. package/dist/server/toolkit/plugin-workspace.js +15 -0
  1179. package/dist/server/toolkit/plugin-workspace.js.map +1 -0
  1180. package/dist/server/toolkit/source-cut.d.ts +35 -0
  1181. package/dist/server/toolkit/source-cut.d.ts.map +1 -0
  1182. package/dist/server/toolkit/source-cut.js +168 -0
  1183. package/dist/server/toolkit/source-cut.js.map +1 -0
  1184. package/dist/server/toolkit/tool-entry.d.ts +12 -0
  1185. package/dist/server/toolkit/tool-entry.d.ts.map +1 -0
  1186. package/dist/server/toolkit/tool-entry.js +35 -0
  1187. package/dist/server/toolkit/tool-entry.js.map +1 -0
  1188. package/dist/server/toolkit/tool-table.d.ts +21 -0
  1189. package/dist/server/toolkit/tool-table.d.ts.map +1 -0
  1190. package/dist/server/toolkit/tool-table.js +233 -0
  1191. package/dist/server/toolkit/tool-table.js.map +1 -0
  1192. package/dist/server/transport/accept.d.ts +11 -0
  1193. package/dist/server/transport/accept.d.ts.map +1 -0
  1194. package/dist/server/transport/accept.js +23 -0
  1195. package/dist/server/transport/accept.js.map +1 -0
  1196. package/dist/server/transport/jsonrpc.d.ts +17 -0
  1197. package/dist/server/transport/jsonrpc.d.ts.map +1 -0
  1198. package/dist/server/transport/jsonrpc.js +33 -0
  1199. package/dist/server/transport/jsonrpc.js.map +1 -0
  1200. package/dist/server/util/errno.d.ts +3 -0
  1201. package/dist/server/util/errno.d.ts.map +1 -0
  1202. package/dist/server/util/errno.js +7 -0
  1203. package/dist/server/util/errno.js.map +1 -0
  1204. package/dist/server/util/fs.d.ts +3 -0
  1205. package/dist/server/util/fs.d.ts.map +1 -0
  1206. package/dist/server/util/fs.js +18 -0
  1207. package/dist/server/util/fs.js.map +1 -0
  1208. package/dist/server/util/import-paths.d.ts +4 -0
  1209. package/dist/server/util/import-paths.d.ts.map +1 -0
  1210. package/dist/server/util/import-paths.js +25 -0
  1211. package/dist/server/util/import-paths.js.map +1 -0
  1212. package/dist/server/util/jail.d.ts +3 -0
  1213. package/dist/server/util/jail.d.ts.map +1 -0
  1214. package/dist/server/util/jail.js +11 -0
  1215. package/dist/server/util/jail.js.map +1 -0
  1216. package/dist/server/util/read-field.d.ts +8 -0
  1217. package/dist/server/util/read-field.d.ts.map +1 -0
  1218. package/dist/server/util/read-field.js +29 -0
  1219. package/dist/server/util/read-field.js.map +1 -0
  1220. package/dist/server/util/slug.d.ts +2 -0
  1221. package/dist/server/util/slug.d.ts.map +1 -0
  1222. package/dist/server/util/slug.js +9 -0
  1223. package/dist/server/util/slug.js.map +1 -0
  1224. package/dist/server/util/tool-call-json.d.ts +6 -0
  1225. package/dist/server/util/tool-call-json.d.ts.map +1 -0
  1226. package/dist/server/util/tool-call-json.js +41 -0
  1227. package/dist/server/util/tool-call-json.js.map +1 -0
  1228. package/dist/session/index.d.ts +2 -0
  1229. package/dist/session/index.d.ts.map +1 -0
  1230. package/dist/session/index.js +2 -0
  1231. package/dist/session/index.js.map +1 -0
  1232. package/dist/tool-catalog/index.d.ts +2 -0
  1233. package/dist/tool-catalog/index.d.ts.map +1 -0
  1234. package/dist/tool-catalog/index.js +2 -0
  1235. package/dist/tool-catalog/index.js.map +1 -0
  1236. package/dist/tool-runtime/guard-tool.d.ts +54 -0
  1237. package/dist/tool-runtime/guard-tool.d.ts.map +1 -0
  1238. package/dist/tool-runtime/guard-tool.js +97 -0
  1239. package/dist/tool-runtime/guard-tool.js.map +1 -0
  1240. package/dist/tool-runtime/index.d.ts +5 -0
  1241. package/dist/tool-runtime/index.d.ts.map +1 -0
  1242. package/dist/tool-runtime/index.js +4 -0
  1243. package/dist/tool-runtime/index.js.map +1 -0
  1244. package/dist/tool-runtime/tool-behavior.d.ts +43 -0
  1245. package/dist/tool-runtime/tool-behavior.d.ts.map +1 -0
  1246. package/dist/tool-runtime/tool-behavior.js +227 -0
  1247. package/dist/tool-runtime/tool-behavior.js.map +1 -0
  1248. package/dist/yjs/bin.d.ts +3 -0
  1249. package/dist/yjs/bin.d.ts.map +1 -0
  1250. package/dist/yjs/bin.js +77 -0
  1251. package/dist/yjs/bin.js.map +1 -0
  1252. package/dist/yjs/document-service.d.ts +75 -0
  1253. package/dist/yjs/document-service.d.ts.map +1 -0
  1254. package/dist/yjs/document-service.js +359 -0
  1255. package/dist/yjs/document-service.js.map +1 -0
  1256. package/dist/yjs/index.d.ts +10 -0
  1257. package/dist/yjs/index.d.ts.map +1 -0
  1258. package/dist/yjs/index.js +10 -0
  1259. package/dist/yjs/index.js.map +1 -0
  1260. package/dist/yjs/keepalive.d.ts +11 -0
  1261. package/dist/yjs/keepalive.d.ts.map +1 -0
  1262. package/dist/yjs/keepalive.js +27 -0
  1263. package/dist/yjs/keepalive.js.map +1 -0
  1264. package/dist/yjs/private-peer.d.ts +16 -0
  1265. package/dist/yjs/private-peer.d.ts.map +1 -0
  1266. package/dist/yjs/private-peer.js +429 -0
  1267. package/dist/yjs/private-peer.js.map +1 -0
  1268. package/dist/yjs/public-routes.d.ts +22 -0
  1269. package/dist/yjs/public-routes.d.ts.map +1 -0
  1270. package/dist/yjs/public-routes.js +42 -0
  1271. package/dist/yjs/public-routes.js.map +1 -0
  1272. package/dist/yjs/registry/document-registry.d.ts +33 -0
  1273. package/dist/yjs/registry/document-registry.d.ts.map +1 -0
  1274. package/dist/yjs/registry/document-registry.js +281 -0
  1275. package/dist/yjs/registry/document-registry.js.map +1 -0
  1276. package/dist/yjs/registry/identity.d.ts +18 -0
  1277. package/dist/yjs/registry/identity.d.ts.map +1 -0
  1278. package/dist/yjs/registry/identity.js +85 -0
  1279. package/dist/yjs/registry/identity.js.map +1 -0
  1280. package/dist/yjs/registry/images.d.ts +8 -0
  1281. package/dist/yjs/registry/images.d.ts.map +1 -0
  1282. package/dist/yjs/registry/images.js +42 -0
  1283. package/dist/yjs/registry/images.js.map +1 -0
  1284. package/dist/yjs/registry/index.d.ts +3 -0
  1285. package/dist/yjs/registry/index.d.ts.map +1 -0
  1286. package/dist/yjs/registry/index.js +3 -0
  1287. package/dist/yjs/registry/index.js.map +1 -0
  1288. package/dist/yjs/relay.d.ts +33 -0
  1289. package/dist/yjs/relay.d.ts.map +1 -0
  1290. package/dist/yjs/relay.js +123 -0
  1291. package/dist/yjs/relay.js.map +1 -0
  1292. package/dist/yjs/remote-document.d.ts +35 -0
  1293. package/dist/yjs/remote-document.d.ts.map +1 -0
  1294. package/dist/yjs/remote-document.js +426 -0
  1295. package/dist/yjs/remote-document.js.map +1 -0
  1296. package/dist/yjs/rooms.d.ts +75 -0
  1297. package/dist/yjs/rooms.d.ts.map +1 -0
  1298. package/dist/yjs/rooms.js +328 -0
  1299. package/dist/yjs/rooms.js.map +1 -0
  1300. package/dist/yjs/storage.d.ts +29 -0
  1301. package/dist/yjs/storage.d.ts.map +1 -0
  1302. package/dist/yjs/storage.js +205 -0
  1303. package/dist/yjs/storage.js.map +1 -0
  1304. package/dist/yjs/update-log.d.ts +13 -0
  1305. package/dist/yjs/update-log.d.ts.map +1 -0
  1306. package/dist/yjs/update-log.js +91 -0
  1307. package/dist/yjs/update-log.js.map +1 -0
  1308. package/dist/yjs/websocket.d.ts +4 -0
  1309. package/dist/yjs/websocket.d.ts.map +1 -0
  1310. package/dist/yjs/websocket.js +47 -0
  1311. package/dist/yjs/websocket.js.map +1 -0
  1312. package/package.json +114 -3
  1313. package/src/server/defaults/__tests__/resolve-compact-strategy-path.test.ts +31 -0
  1314. package/src/server/defaults/commands/connect.scm +478 -0
  1315. package/src/server/defaults/commands/mcp.scm +143 -0
  1316. package/src/server/defaults/commands/model.scm +71 -0
  1317. package/src/server/defaults/compact.scm +8 -0
  1318. package/src/server/defaults/index.ts +91 -0
  1319. package/src/server/defaults/policy-asset.ts +11 -0
  1320. package/src/server/defaults/system-prompt/SYSTEM.md +5 -0
  1321. package/src/server/defaults/system-prompt/preamble.hbs +7 -0
  1322. package/src/server/defaults/system-prompt/system-prompt.scm +14 -0
  1323. package/src/server/defaults/system-prompt/tools.hbs +6 -0
  1324. package/README.md +0 -3
@@ -0,0 +1,1363 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { EvalTrace } from "@here.build/arrival/provenance";
3
+ import { docTag, fail, step, trace } from "@inhuman.tools/harness-diagnostics";
4
+ import { AGENT_ASK, AGENT_SEND, AgentCallbackJob, AgentCallJob, BotCallJob, CallJob, AgentMessageJob, AgentNotifyJob, ApprovableJob, cancelOutcomeText, CompletionExpectation, CompletionJob, ContextNeedToolJob, delegatesPermissionMode, deskPermissionSnap, hostingTurnOf, McpToolExpectation, MCPToolJob, liveBackgroundJobs, permissionDeskSessionId, ProgrammaticJob, projectWorkerPermissions, SessionTurn, SystemToolJob, parseGrantRows, tapeCompletion, ToolCallJob, WebExtractToolJob, WebSearchToolJob, } from "@inhuman.tools/harness-model";
5
+ import { RE_ACT_LOOP_INTENT_DETECTED_TRIGGER_STREAK_MAX, reActLoopIntentDetectedTriggerFor, } from "@inhuman.tools/harness-model/shared";
6
+ import { connectionSupports, } from "@inhuman.tools/harness-provider-sdk";
7
+ import { interpretSchemeRepl, liveModelsOf } from "@inhuman.tools/harness-scheme";
8
+ import { walkWork, WorkExpectation } from "@inhuman.tools/plexus-expectations";
9
+ import { ConnectionMiss } from "@inhuman.tools/plexus-expectations/driver";
10
+ import { dropConnection, Orchestrator } from "@inhuman.tools/plexus-expectations/executor";
11
+ import { closeTurn, isCallPaused, joinReleased, schemeDeskReadonly, shouldSkipTurnCancel, } from "@inhuman.tools/turn/agent-calls";
12
+ import { autorun, comparer, reaction, runInAction, when } from "mobx";
13
+ import invariant from "tiny-invariant";
14
+ import { admitPrivateMcpTool } from "../../../extensions/index.js";
15
+ import { license, noteDenied } from "../../../policy-processor/license.js";
16
+ import { scopes } from "../../../policy-processor/scope.js";
17
+ import { documentKey } from "../../../protocol/document/index.js";
18
+ import { hydrateMcpAlwaysAllows, MCP_HTTP_DRIVER, mcpSessionPersistAllows, mcpSessionPersistDenies, } from "../../../providers/mcp/index.js";
19
+ import { borrowedEnsureKey, memoBorrowedEnsure, NOUS_GATEWAY_CONNECTION_ID, nousGatewaySourceOf, secretsConnectionId, } from "../../../providers/nous/index.js";
20
+ import { isPrivatePluginConnection, parsePrivateConnectionKey, persistJobIntent } from "../../../runtime/index.js";
21
+ import { abortParkableWork, dispatchedMcpSettled, failLeftoverApprovables, liveEvalWork, mcpJobOnWire, turnLoopStopped, } from "../../../session/index.js";
22
+ import { behaviorEntriesOf } from "../../../tool-catalog/index.js";
23
+ import { agentCallFromWire, agentGuardedCall, distPolicySource, executeSystemTool, guardedCallOf, behaviorEntriesThatRun, guardHostTool, inboundTurnGuard, loadPolicySource, publishPolicyError, cancelUnstartedTool, stampLicenseDeny, stampUnentered, } from "../../../tool-runtime/index.js";
24
+ import { completeCallExceptionally, deliverAgentMessage, executeAgentCall, executeBotCall, loadOpenCall, notifyAgentCall, sealCall, settleAgentCallback, } from "./agent-runtime.js";
25
+ import { startAmbientCompact } from "./ambient-compact.js";
26
+ import { isParkAbort, SessionBehavior } from "./behavior-host.js";
27
+ import { loadCompactProgram } from "./compact.js";
28
+ import { CompletionFlights } from "./completion-flight.js";
29
+ import { pluginHookTimeoutMs } from "./hook-deadline.js";
30
+ import { PROJECT_LAYER_POLL_MS, readProjectAuthorization } from "./project-authorization.js";
31
+ import { internContinueStreak, internJudgeWire, runTextOnlyContinueIntern, } from "./re-act-loop-intent-detected-trigger.js";
32
+ import { iterateTurn } from "./turn-iterator.js";
33
+ import { createTurnResolvers } from "./turn-resolvers.js";
34
+ import { resolveCompactStrategyPath } from "../../defaults/index.js";
35
+ import { internedComplete } from "../../drivers/interned-complete.js";
36
+ import { pickWebExtractConnection, pickWebSearchConnection } from "../../drivers/web-search/pick.js";
37
+ import { readConnectionSecrets, writeConnectionSecrets } from "../../secrets.js";
38
+ import { KernelToolCatalog, sessionCatalog } from "../../toolkit/tool-table.js";
39
+ const INTENT_NOT_PERSISTED = "intent could not be persisted";
40
+ const OUTSIDE_WORKER_CEILING = "outside worker tool ceiling";
41
+ /** Not a property alias. An early `=== false` must not narrow the getter across `await license`. */
42
+ function licenseDecisionNow(job) {
43
+ return job.licenseDecision;
44
+ }
45
+ export class SessionOrchestrator extends Orchestrator {
46
+ sessionDaemon;
47
+ #disposeConnections;
48
+ #disposeBoundWire;
49
+ #disposeLive;
50
+ #disposePromptQueue;
51
+ #disposeAutoAllow;
52
+ #disposeDesk;
53
+ #disposeCompletions;
54
+ #closed = false;
55
+ /** Judge pairs that cannot send json_schema. Sticky skip, not retry. */
56
+ #reActLoopIntentDetectedTriggerHaltKeys = new Set();
57
+ /** Cutoff round → prefix key of the ambient completion still running. */
58
+ #ambientInflight = new Map();
59
+ #flights = new CompletionFlights((req) => this.#driveCompletion(req));
60
+ /**
61
+ * Rounds already open at {@link activate}. Recovery does not replay them
62
+ * (`unknown-no-replay`); honor adopts one only after `startedAtMs`.
63
+ */
64
+ #completionBaseline = null;
65
+ #loggedError = new Map();
66
+ #loggedDriver = new Map();
67
+ #gatewayEnsure = new Map();
68
+ #behavior;
69
+ /** One-shot recipe calls whose tools an agent guard narrowed, until the worker is minted. */
70
+ #agentTools = new Map();
71
+ get #behaviorNotes() {
72
+ return this.sessionDaemon.kernel.behavior.notes;
73
+ }
74
+ constructor(sessionDaemon) {
75
+ super(sessionDaemon.kernel.plexus, sessionDaemon.plexus);
76
+ this.sessionDaemon = sessionDaemon;
77
+ this.#behavior = new SessionBehavior(sessionDaemon.kernel.behavior, this.session.root, sessionDaemon.project.path, sessionDaemon.kernel.catalog, {
78
+ syncTools: (turn) => sessionDaemon.syncBehaviorTools(turn),
79
+ hookTimeoutMs: () => pluginHookTimeoutMs(this.session.root.kvs, this.kernel.root.kvs),
80
+ });
81
+ const scope = scopes.get(this.session.root);
82
+ runInAction(() => {
83
+ scope.cap = this.kernel.root.speculativePolicyProcessingTools;
84
+ stampSessionPrograms(this.session.root, this.sessionDaemon.kernel.root, this.kernel.root);
85
+ });
86
+ scope.complete = (req) => this.complete(req);
87
+ scope.judgeFallbackKvs = this.kernel.root.kvs;
88
+ scope.judgeConfiguredModel = (connectionId) => this.#configuredModel(connectionId);
89
+ scope.onPolicyError = (text) => publishPolicyError(this.session, text);
90
+ scope.mcpPersistAllows = (job) => job instanceof MCPToolJob &&
91
+ mcpSessionPersistAllows(job.connectionKey, job.serverToolName, this.session.root.toolAllowlist, this.session.root.toolBlocklist);
92
+ scope.mcpPersistDenies = (job) => job instanceof MCPToolJob &&
93
+ mcpSessionPersistDenies(job.connectionKey, job.serverToolName, this.session.root.toolBlocklist);
94
+ runInAction(() => {
95
+ hydrateMcpAlwaysAllows(this.session.root.toolAllowlist, this.kernel.root.connections);
96
+ });
97
+ // The authorization table: the user layer from `config.json`, the project layer from
98
+ // `<repo>/.inhuman/authorization.json` (tighten only). Both are re-stamped when their files change, so a
99
+ // mid-session tightening applies to the next call.
100
+ const projectPath = this.sessionDaemon.project.path;
101
+ const syncAuthorization = () => {
102
+ const session = this.session.root;
103
+ const user = this.kernel.root.authorizationJson;
104
+ if (session.authorizationUserJson !== user)
105
+ session.authorizationUserJson = user;
106
+ const project = readProjectAuthorization(projectPath);
107
+ if (session.authorizationProjectJson !== project)
108
+ session.authorizationProjectJson = project;
109
+ };
110
+ runInAction(syncAuthorization);
111
+ const poll = setInterval(() => {
112
+ if (this.activated && !this.#closed)
113
+ runInAction(syncAuthorization);
114
+ }, PROJECT_LAYER_POLL_MS);
115
+ poll.unref();
116
+ const stopAuthorization = reaction(() => (this.activated ? this.kernel.root.authorizationJson : null), () => {
117
+ if (!this.activated)
118
+ return;
119
+ runInAction(syncAuthorization);
120
+ });
121
+ // Stored grants of project, bot and global scope come from the kernel's `grants.json`.
122
+ scope.persistentGrants = () => parseGrantRows(this.kernel.root.grantsJson);
123
+ scope.botName = () => {
124
+ const spec = this.session.root.agent.spec;
125
+ return spec.name.trim() === "" ? undefined : spec.name;
126
+ };
127
+ const stopGrants = reaction(() => this.kernel.root.grantsJson, () => scope.reconcileGrants());
128
+ scope.onRunStopped = (stop) => {
129
+ publishPolicyError(this.session, `Run stopped: ${stop.reason}`);
130
+ };
131
+ scope.onRunNotice = (notice) => {
132
+ publishPolicyError(this.session, notice.text);
133
+ };
134
+ this.#disposeAutoAllow = () => {
135
+ clearInterval(poll);
136
+ stopAuthorization();
137
+ stopGrants();
138
+ };
139
+ this.#disposeDesk = reaction(() => (this.activated ? this.#deskPermissionSnap() : null), (snap) => {
140
+ if (snap == null)
141
+ return;
142
+ const desk = this.#permissionDesk();
143
+ if (desk == null)
144
+ return;
145
+ runInAction(() => projectWorkerPermissions(this.session.root, desk));
146
+ }, { equals: comparer.structural, fireImmediately: true });
147
+ this.#disposePromptQueue = reaction(() => {
148
+ if (!this.activated || this.#closed)
149
+ return "";
150
+ const root = this.session.root;
151
+ if (root.findRunningTurn() != null)
152
+ return "";
153
+ const first = root.promptQueue[0];
154
+ if (first == null)
155
+ return "";
156
+ return `${first.uuid}:${(root.kvs.connection ?? "").trim()}`;
157
+ }, (key) => {
158
+ if (key === "")
159
+ return;
160
+ void this.sessionDaemon.drainPromptQueue();
161
+ });
162
+ this.registerExecutor(SystemToolJob, (job) => this.#guardTool(job), async (job, signal) => {
163
+ if (await this.#bodyRefused(job, signal))
164
+ return;
165
+ try {
166
+ await executeSystemTool(job, signal, {
167
+ shellTailBytes: this.kernel.root.shellTailBytes,
168
+ stopJob: async (jobId) => {
169
+ const nodes = this.session.root.motionWork();
170
+ const id = jobId.trim();
171
+ if (id === "")
172
+ return { ok: true, value: { jobs: await liveBackgroundJobs(nodes) } };
173
+ for (const node of nodes) {
174
+ if (!(node instanceof ProgrammaticJob || node instanceof CallJob || node instanceof SystemToolJob))
175
+ continue;
176
+ if (!node.isTrackedBackground || node.toolCallId !== id)
177
+ continue;
178
+ if (node.completed)
179
+ return { ok: true, value: { job_id: id, status: "completed" } };
180
+ if (node.cancelled)
181
+ return { ok: true, value: { job_id: id, status: "cancelled" } };
182
+ this.#abortWork(node);
183
+ return { ok: true, value: { job_id: id, status: "cancelled" } };
184
+ }
185
+ return { ok: true, value: { job_id: id, status: "absent" } };
186
+ },
187
+ });
188
+ }
189
+ finally {
190
+ await this.#behavior.finishTool(job, signal);
191
+ if (!job.completed && !job.cancelled)
192
+ job.markComplete();
193
+ }
194
+ }, { seal: false });
195
+ this.registerExecutor(MCPToolJob, (job) => this.#guardTool(job), async (job, signal) => {
196
+ if (await this.#bodyRefused(job, signal))
197
+ return;
198
+ try {
199
+ await this.#runMcp(job, signal);
200
+ }
201
+ finally {
202
+ await this.#behavior.finishTool(job, signal);
203
+ }
204
+ }, { seal: false });
205
+ this.registerExecutor(WebSearchToolJob, (job) => this.#guardTool(job), (job, signal) => this.#runWeb(job, signal), { seal: false });
206
+ this.registerExecutor(WebExtractToolJob, (job) => this.#guardTool(job), (job, signal) => this.#runWeb(job, signal), { seal: false });
207
+ this.registerExecutor(BotCallJob, (job) => this.#guardTool(job), async (job, signal) => {
208
+ try {
209
+ await executeBotCall(job, this.#agentHost());
210
+ }
211
+ catch (error) {
212
+ sealCall(job, "error", error instanceof Error ? error.message : String(error));
213
+ }
214
+ finally {
215
+ await waitUntil(() => job.completed, signal);
216
+ await this.#finishCall(job, signal);
217
+ }
218
+ }, { seal: false });
219
+ this.registerExecutor(AgentCallJob, (job) => this.#guardTool(job), async (job, signal) => {
220
+ try {
221
+ await executeAgentCall(job, this.#agentHost(), this.#agentTools.get(job));
222
+ }
223
+ catch (error) {
224
+ sealCall(job, "error", error instanceof Error ? error.message : String(error));
225
+ }
226
+ finally {
227
+ await waitUntil(() => job.completed, signal);
228
+ await this.#finishCall(job, signal);
229
+ }
230
+ }, { seal: false });
231
+ this.registerExecutor(AgentCallbackJob, () => true, async (job, signal) => {
232
+ if (await this.#bodyRefused(job, signal))
233
+ return;
234
+ await settleAgentCallback(job, this.#agentHost(), (node) => this.#abortWork(node));
235
+ });
236
+ this.registerExecutor(AgentNotifyJob, () => true, async (job, signal) => {
237
+ if (await this.#bodyRefused(job, signal))
238
+ return;
239
+ notifyAgentCall(job, this.#agentHost());
240
+ });
241
+ this.registerExecutor(AgentMessageJob, (job) => this.#license(job), async (job, signal) => {
242
+ if (await this.#bodyRefused(job, signal))
243
+ return;
244
+ await deliverAgentMessage(job, this.#agentHost(), signal);
245
+ });
246
+ this.registerExecutor(ContextNeedToolJob, (job) => this.#license(job), async (job) => {
247
+ job.outcomeSnap ??= { ok: true };
248
+ });
249
+ this.registerExecutor(ProgrammaticJob,
250
+ // Bag is not remainder. Inner System/MCP/agent leaves still `#license`.
251
+ () => true, async (job, signal) => {
252
+ if (!(await this.#waitEvalAdmission(signal)))
253
+ return;
254
+ const catalog = sessionCatalog(this.session.root) ?? new KernelToolCatalog();
255
+ await interpretSchemeRepl(job, {
256
+ catalog,
257
+ root: this.session.root.path.trim() === "" ? process.cwd() : this.session.root.path,
258
+ signal,
259
+ sessionId: this.session.root.sessionId,
260
+ observe: (run) => {
261
+ const evalTrace = new EvalTrace();
262
+ evalTrace.withAutoBindings();
263
+ return run(evalTrace);
264
+ },
265
+ readonly: schemeDeskReadonly(this.session.root, enclosingCallOf(this.sessionDaemon.kernel, this.session.root, job)),
266
+ session: this.session.root,
267
+ doors: this.sessionDaemon.doors,
268
+ evalProgram: (hostingTurnOf(this.session.root, job) ?? this.session.root.head)?.evalSpec != null,
269
+ connectionId: this.session.root.kvs.connection?.trim() || undefined,
270
+ completionModel: this.session.root.kvs.model?.trim() || undefined,
271
+ complete: async (req) => {
272
+ try {
273
+ return await this.complete(req);
274
+ }
275
+ catch (error) {
276
+ if (error instanceof ConnectionMiss)
277
+ throw new Error(error.message);
278
+ throw error;
279
+ }
280
+ },
281
+ connectionModels: (name) => {
282
+ const spec = this.sessionDaemon.kernel.plexus.root.connections[name];
283
+ invariant(spec != null, `unknown connection ${name}`);
284
+ return liveModelsOf(spec);
285
+ },
286
+ admit: (call) => this.sessionDaemon.project.toolCalls.admit(call, catalog, {
287
+ session: this.session.root,
288
+ loadAgentCall: (uuid) => loadOpenCall(this.sessionDaemon.kernel, this.session.root, uuid),
289
+ }),
290
+ abort: (leaf, reason) => this.#abortLeaf(leaf, reason),
291
+ notify: (note) => {
292
+ const call = enclosingCallOf(this.sessionDaemon.kernel, this.session.root, job);
293
+ if (call != null) {
294
+ call.notifications.push(note);
295
+ return;
296
+ }
297
+ job.notifications.push(note);
298
+ },
299
+ });
300
+ }, { seal: false });
301
+ this.registerExecutor(SessionTurn, (turn) => inboundTurnGuard(turn), async (turn, signal) => {
302
+ // Any other abort runs the close below; the iterator stops at once.
303
+ if (!(await this.#waitEvalAdmission(signal)) && isParkAbort(signal))
304
+ return;
305
+ if (turn.reducerExited)
306
+ return;
307
+ // Rewound away before it ran. Its close touches only itself: the steers and holds belong to the live head.
308
+ if (!this.reachableJobs.includes(turn)) {
309
+ closeTurn(turn, { kind: "rewound" }, this.#closeOptions());
310
+ return;
311
+ }
312
+ const session = this.session.root;
313
+ const toolCalls = this.sessionDaemon.project.toolCalls;
314
+ let broke = "";
315
+ try {
316
+ const connectionId = session.kvs.connection?.trim() ?? "";
317
+ const model = session.kvs.model?.trim() ?? "";
318
+ trace("harness:turn", `open ${turn.uuid} connection=${connectionId || "(none)"} model=${model || "(none)"}`);
319
+ await iterateTurn(turn, {
320
+ session,
321
+ resolvers: createTurnResolvers({
322
+ complete: (req) => this.complete(req),
323
+ join: (job, abort) => waitCompleted(job, abort, this.sessionDaemon.kernel.catalog),
324
+ compactHost: () => this.#compactHost(turn, session, connectionId, model),
325
+ }),
326
+ notes: this.#behaviorNotes,
327
+ compactKeepTurns: this.kernel.root.compactKeepTurns,
328
+ hardCompactTrigger: this.kernel.root.compactTriggers.hard,
329
+ loopLimits: () => {
330
+ const root = this.kernel.root;
331
+ // A thread reached through bot/ask has its own round cap.
332
+ const bot = session.agent.spec.botDepth > 0;
333
+ return {
334
+ maxRounds: bot ? root.maxBotRounds : root.maxRounds,
335
+ lengthContinuations: root.lengthContinuations,
336
+ };
337
+ },
338
+ remoteMcp: (key) => this.kernel.root.connections[key]?.driver?.name === MCP_HTTP_DRIVER,
339
+ admit: (call) => {
340
+ const catalog = sessionCatalog(session) ?? toolCalls.kernel.catalog;
341
+ const ctx = {
342
+ session,
343
+ originTurn: turn,
344
+ parent: turn,
345
+ loadAgentCall: (uuid) => loadOpenCall(this.sessionDaemon.kernel, session, uuid),
346
+ };
347
+ return call.function.name === AGENT_ASK || call.function.name === AGENT_SEND
348
+ ? agentCallFromWire(call, catalog, ctx)
349
+ : toolCalls.admit(call, catalog, ctx);
350
+ },
351
+ waitInbound: (abort) => this.#inboundResumed(turn, abort, () => turnLoopStopped(turn, abort)),
352
+ openRound: async (resumed) => {
353
+ const behavior = await this.#behavior.enterTurn(turn, resumed);
354
+ return (behavior != null && !turnLoopStopped(turn, signal) && (await this.#behavior.openRound(turn, behavior)));
355
+ },
356
+ closeRound: (settle) => this.#behavior.closeRound(turn, settle),
357
+ classifyIntent: (pew, abort) => this.#reActLoopIntentDetectedTrigger(turn, pew, abort),
358
+ startAmbientCompact: (options) => {
359
+ void startAmbientCompact({
360
+ ...options,
361
+ complete: (req) => this.complete(req),
362
+ inflight: this.#ambientInflight,
363
+ });
364
+ },
365
+ }, signal);
366
+ }
367
+ catch (error) {
368
+ broke = error instanceof Error ? error.message : String(error);
369
+ fail("turn", error);
370
+ }
371
+ finally {
372
+ trace("harness:turn", `close ${turn.uuid} cancel=${turn.cancelRequested} park=${signal.reason === "park"}`);
373
+ if (signal.reason === "park")
374
+ this.#behavior.dropTurn(turn);
375
+ else {
376
+ // The post hooks are bounded, but a throw must still reach the close below.
377
+ try {
378
+ await this.#behavior.leaveTurn(turn, broke);
379
+ }
380
+ catch (error) {
381
+ fail("turn boundary", error);
382
+ }
383
+ const ending = turn.cancelRequested
384
+ ? { kind: "cancel" }
385
+ : broke === ""
386
+ ? { kind: "finish" }
387
+ : { kind: "broke", detail: broke };
388
+ closeTurn(turn, ending, this.#closeOptions());
389
+ this.#releaseUnansweredCall(turn);
390
+ // Self-service lane: the turn that was head takes the next queued message itself.
391
+ // The prompt-queue reaction stays as the fallback (a restart re-arms it).
392
+ void this.sessionDaemon.drainPromptQueue();
393
+ }
394
+ }
395
+ }, { seal: false });
396
+ this.#disposeLive = autorun(() => {
397
+ if (!this.activated || this.#closed)
398
+ return;
399
+ const reachable = this.reachableJobs;
400
+ for (const job of this.inFlightJobs()) {
401
+ if (!(job instanceof SessionTurn) || job.reducerExited || reachable.includes(job))
402
+ continue;
403
+ failLeftoverApprovables(job, (leaf) => this.#abortLeaf(leaf), this.sessionDaemon.kernel.catalog);
404
+ }
405
+ });
406
+ // Honor refuses an unstamped completion (`shouldHonor`). An executor would
407
+ // stamp `orchestrationResult` or `completed` on every historical round.
408
+ // Snapshot at activate is the recovery set; only a round that appears after
409
+ // that is a new attempt, including an isolated `.prompt`.
410
+ const stopBaseline = reaction(() => this.activated, (activated) => {
411
+ if (!activated || this.#completionBaseline !== null)
412
+ return;
413
+ this.#completionBaseline = new Set(this.#openUnstartedCompletions());
414
+ });
415
+ const stopDrive = reaction(() => this.#openUnstartedCompletions(), (jobs) => {
416
+ const baseline = this.#completionBaseline;
417
+ if (baseline === null)
418
+ return;
419
+ for (const job of jobs) {
420
+ if (baseline.has(job))
421
+ continue;
422
+ baseline.add(job);
423
+ const pew = job.expectation;
424
+ void this.complete(completionRequest(pew)).catch((error) => {
425
+ if (pew.isDone || this.#flights.aborted(pew))
426
+ return;
427
+ pew.fail("crash", error instanceof Error ? error.message : String(error), "null");
428
+ });
429
+ }
430
+ }, { equals: comparer.shallow });
431
+ this.#disposeCompletions = () => {
432
+ stopBaseline();
433
+ stopDrive();
434
+ };
435
+ this.#disposeConnections = autorun(() => {
436
+ if (!this.activated || this.#closed)
437
+ return;
438
+ for (const name of Object.keys(this.drivers)) {
439
+ const spec = this.drivers[name];
440
+ if (spec === undefined)
441
+ continue;
442
+ if (!this.#loggedDriver.has(name)) {
443
+ this.#loggedDriver.set(name, "");
444
+ step(`driver ${name}`);
445
+ }
446
+ if (spec.readyState === "ready" && this.#loggedDriver.get(name) !== "ready") {
447
+ this.#loggedDriver.set(name, "ready");
448
+ step(`driver ${name} ready`);
449
+ }
450
+ if (spec.readyState === "failed") {
451
+ const detail = spec.error === "" ? "failed" : spec.error;
452
+ if (this.#loggedError.get(`driver:${name}`) !== detail) {
453
+ this.#loggedError.set(`driver:${name}`, detail);
454
+ fail(`driver ${name}`, detail);
455
+ }
456
+ }
457
+ }
458
+ for (const connectionId of Object.keys(this.connections)) {
459
+ const spec = this.connections[connectionId];
460
+ if (spec === undefined)
461
+ continue;
462
+ // Catalog is report. Honor ensures a wire when work names it.
463
+ const live = spec.live;
464
+ const models = Array.isArray(live.models) ? live.models.map(String) : [];
465
+ const can = spec.driver?.abilityClaim ?? [];
466
+ const liveSig = `${spec.readyState}|${can.join(",")}|${models.length}|${models.slice(0, 8).join(",")}`;
467
+ if (this.#loggedError.get(`live:${connectionId}`) !== liveSig) {
468
+ this.#loggedError.set(`live:${connectionId}`, liveSig);
469
+ const authoring = spec.__doc__;
470
+ const transport = this.kernel.doc;
471
+ step(`kernel live: connection=${connectionId} readyState=${spec.readyState} can=${can.join(",") || "(none)"} models=${models.length} ${models.length === 0 ? "(none)" : models.slice(0, 8).join(",")} shadow=${docTag(authoring)} main=${docTag(transport)} sameDoc=${authoring === transport}`);
472
+ }
473
+ if (spec.readyState !== "failed")
474
+ continue;
475
+ const detail = spec.error === "" ? "failed" : spec.error;
476
+ if (this.#loggedError.get(connectionId) === detail)
477
+ continue;
478
+ this.#loggedError.set(connectionId, detail);
479
+ fail(`connection ${connectionId}`, detail);
480
+ }
481
+ });
482
+ this.#disposeBoundWire = reaction(() => (this.activated ? (this.session.root.kvs.connection ?? "").trim() : ""), (id) => {
483
+ if (!this.activated || this.#closed || id === "" || this.connections[id] === undefined)
484
+ return;
485
+ void this.ensure(id);
486
+ }, { fireImmediately: true });
487
+ }
488
+ async #runMcp(job, signal) {
489
+ if (this.#outsideWorkerCeiling(job)) {
490
+ closeMcpFailure(job, OUTSIDE_WORKER_CEILING);
491
+ return;
492
+ }
493
+ if (mcpSessionPersistDenies(job.connectionKey, job.serverToolName, this.session.root.toolBlocklist)) {
494
+ closeMcpFailure(job, `unknown MCP tool "${job.serverToolName.trim() || job.name}"`);
495
+ return;
496
+ }
497
+ if (isPrivatePluginConnection(job.connectionKey)) {
498
+ const parsed = parsePrivateConnectionKey(job.connectionKey);
499
+ const recipe = this.session.root.agent.spec.name;
500
+ if (parsed == null || recipe === "") {
501
+ closeMcpFailure(job, "private MCP tool not admitted");
502
+ return;
503
+ }
504
+ const admission = admitPrivateMcpTool(this.sessionDaemon.kernel.catalog.pluginInstall, recipe, parsed.pluginName, parsed.serverName, job.serverToolName);
505
+ if (!admission.allowed) {
506
+ closeMcpFailure(job, admission.reason ?? "private MCP tool not admitted");
507
+ return;
508
+ }
509
+ if (job.serverToolName === "commit") {
510
+ const requestId = job.argString("requestId");
511
+ const open = loadOpenCall(this.sessionDaemon.kernel, this.session.root, requestId);
512
+ if (open == null) {
513
+ closeMcpFailure(job, "commit requestId is not an open writer Call");
514
+ return;
515
+ }
516
+ }
517
+ }
518
+ if (!(await this.#inboundResumed(hostingTurnOf(this.session.root, job) ?? this.session.root.head, signal))) {
519
+ if (isParkAbort(signal))
520
+ return;
521
+ closeMcpFailure(job, signal.aborted ? cancelOutcomeText(signal.reason) : "contribution paused");
522
+ return;
523
+ }
524
+ if (signal.aborted) {
525
+ if (isParkAbort(signal)) {
526
+ await waitDispatchedMcp(job);
527
+ sealMcpIfSettled(job);
528
+ return;
529
+ }
530
+ closeMcpFailure(job, cancelOutcomeText(signal.reason));
531
+ return;
532
+ }
533
+ const key = job.connectionKey.trim();
534
+ if (key === "") {
535
+ const name = job.serverToolName.trim() || job.name.trim() || "mcp";
536
+ closeMcpFailure(job, `${name}: missing MCP connection`);
537
+ return;
538
+ }
539
+ if (job.dispatched && !job.completed) {
540
+ if ((await this.#settleLeftoverPew(job.expectation, key, "MCP connection", signal)) === "settled") {
541
+ sealMcpIfSettled(job);
542
+ return;
543
+ }
544
+ if (isParkAbort(signal)) {
545
+ await waitDispatchedMcp(job);
546
+ sealMcpIfSettled(job);
547
+ return;
548
+ }
549
+ job.outcomeSnap ??= { ok: false, text: cancelOutcomeText(signal.reason) };
550
+ this.#terminatePew(job.expectation);
551
+ job.markComplete();
552
+ return;
553
+ }
554
+ const missing = this.#connectionFailure(key, "MCP connection");
555
+ if (missing !== null) {
556
+ closeMcpFailure(job, missing);
557
+ return;
558
+ }
559
+ try {
560
+ const instance = (await this.ensure(key));
561
+ if (!connectionSupports(instance, "mcp") || instance.callTool == null) {
562
+ closeMcpFailure(job, `${key}: missing MCP connection`);
563
+ return;
564
+ }
565
+ const args = job.args;
566
+ if (args === null) {
567
+ closeMcpFailure(job, "mcp: arguments");
568
+ return;
569
+ }
570
+ const result = await instance.callTool({
571
+ serverToolName: job.serverToolName,
572
+ args,
573
+ signal,
574
+ onDispatch: () => {
575
+ job.dispatched = true;
576
+ },
577
+ });
578
+ job.outcomeSnap ??= result;
579
+ await this.#behavior.finishTool(job, signal);
580
+ if (!job.completed && !job.cancelled)
581
+ job.markComplete();
582
+ }
583
+ catch (error) {
584
+ if (isParkAbort(signal)) {
585
+ await waitDispatchedMcp(job);
586
+ sealMcpIfSettled(job);
587
+ return;
588
+ }
589
+ if (error instanceof ConnectionMiss) {
590
+ closeMcpFailure(job, error.code === "noconnect" ? `${key}: missing MCP connection` : error.message);
591
+ return;
592
+ }
593
+ closeMcpFailure(job, signal.aborted ? cancelOutcomeText(signal.reason) : error instanceof Error ? error.message : String(error));
594
+ }
595
+ }
596
+ /**
597
+ * A paused inbound call holds its turn's work. True when the call is not
598
+ * paused or resumed while waiting; false when it ended, stopped, or aborted.
599
+ */
600
+ async #inboundResumed(turn, signal, stopped = () => false) {
601
+ const inboundId = turn?.agentRequestId.trim() ?? "";
602
+ if (inboundId === "")
603
+ return true;
604
+ const catalog = this.sessionDaemon.kernel.catalog;
605
+ const inbound = loadOpenCall(this.sessionDaemon.kernel, this.session.root, inboundId);
606
+ if (inbound == null || !isCallPaused(inbound, catalog))
607
+ return true;
608
+ await waitUntil(() => !isCallPaused(inbound, catalog) || inbound.completed || stopped(), signal);
609
+ return !signal.aborted && !inbound.completed && !isCallPaused(inbound, catalog);
610
+ }
611
+ /**
612
+ * Covering receipt before BODY. Failed write is not dispatch. Recheck
613
+ * cancel after the receipt — local mutation is not a receipt.
614
+ */
615
+ async #gateIntent(job, signal) {
616
+ const documents = this.sessionDaemon.kernel.runtime.documents;
617
+ if (documents != null) {
618
+ const gate = await persistJobIntent(documents, documentKey("sessions", this.session.root.sessionId), job);
619
+ if (!gate.ok)
620
+ return { dispatch: false, persistFailed: true };
621
+ }
622
+ if (job.cancelled ||
623
+ job.completed ||
624
+ signal.aborted ||
625
+ hostingTurnOf(this.session.root, job)?.cancelRequested === true) {
626
+ return { dispatch: false, persistFailed: false };
627
+ }
628
+ return { dispatch: true };
629
+ }
630
+ /**
631
+ * A BODY the gate refused still settles and runs its finish step, so the
632
+ * turn's join returns. A park leaves the job open for the next wrap.
633
+ */
634
+ async #bodyRefused(job, signal) {
635
+ const intent = await this.#gateIntent(job, signal);
636
+ if (intent.dispatch)
637
+ return false;
638
+ if (!job.completed && (intent.persistFailed || !isParkAbort(signal))) {
639
+ const text = intent.persistFailed ? INTENT_NOT_PERSISTED : cancelOutcomeText(signal.reason);
640
+ job.outcomeSnap ??= { ok: false, text };
641
+ if (job instanceof MCPToolJob && !job.expectation.isDone)
642
+ job.expectation.fail("crash", text, "null");
643
+ job.markComplete();
644
+ }
645
+ await this.#behavior.finishTool(job, signal);
646
+ return true;
647
+ }
648
+ /** The two web tools differ only in their argument, their connection pick, and the call. */
649
+ async #runWeb(job, signal) {
650
+ if (await this.#bodyRefused(job, signal))
651
+ return;
652
+ const web = job instanceof WebSearchToolJob
653
+ ? {
654
+ name: "web_search",
655
+ ability: "web-search",
656
+ missing: job.query === "" ? "query is required — call web_search again with the text to search for" : "",
657
+ pick: pickWebSearchConnection,
658
+ call: (instance) => instance.webSearch?.({ query: job.query, limit: job.limit, signal }),
659
+ }
660
+ : {
661
+ name: "web_extract",
662
+ ability: "web-extract",
663
+ missing: job.url === "" ? "url is required — call web_extract again with the page url" : "",
664
+ pick: pickWebExtractConnection,
665
+ call: (instance) => instance.webExtract?.({ url: job.url, charLimit: job.charLimit, signal }),
666
+ };
667
+ try {
668
+ if (this.#outsideWorkerCeiling(job)) {
669
+ job.outcomeSnap ??= { ok: false, text: OUTSIDE_WORKER_CEILING };
670
+ return;
671
+ }
672
+ if (signal.aborted) {
673
+ job.outcomeSnap ??= { ok: false, text: cancelOutcomeText(signal.reason) };
674
+ return;
675
+ }
676
+ if (web.missing !== "") {
677
+ job.outcomeSnap ??= { ok: false, text: `${web.name}: ${web.missing}` };
678
+ return;
679
+ }
680
+ const key = web.pick(this.kernel.root);
681
+ if (key === null) {
682
+ job.outcomeSnap ??= {
683
+ ok: false,
684
+ text: `${web.name}: no ${web.ability} connection — /connect a provider or leave the keyless ring on`,
685
+ };
686
+ return;
687
+ }
688
+ job.connectionKey = key;
689
+ if (job.expectation.startedAtMs == null)
690
+ job.expectation.connectionId = key;
691
+ const leftoverPew = job.expectation;
692
+ if (leftoverPew.startedAtMs != null && !leftoverPew.isDone) {
693
+ if ((await this.#settleLeftoverPew(leftoverPew, key, `${web.ability} connection`, signal)) === "aborted") {
694
+ job.outcomeSnap ??= { ok: false, text: cancelOutcomeText(signal.reason) };
695
+ this.#terminatePew(leftoverPew);
696
+ }
697
+ return;
698
+ }
699
+ try {
700
+ const instance = (await this.ensure(key));
701
+ const found = connectionSupports(instance, web.ability) ? await web.call(instance) : undefined;
702
+ job.outcomeSnap ??= found ?? { ok: false, text: `${web.name}: intern failed` };
703
+ }
704
+ catch (error) {
705
+ job.outcomeSnap ??= {
706
+ ok: false,
707
+ text: signal.aborted
708
+ ? cancelOutcomeText(signal.reason)
709
+ : error instanceof Error
710
+ ? error.message
711
+ : String(error),
712
+ };
713
+ }
714
+ }
715
+ finally {
716
+ await this.#behavior.finishTool(job, signal);
717
+ this.#sealWebJob(job);
718
+ }
719
+ }
720
+ /** A named worker runs only the tools its catalog lists. */
721
+ #outsideWorkerCeiling(job) {
722
+ const root = this.session.root;
723
+ return root.agent.spec.name !== "" && sessionCatalog(root)?.catalogEntry(job.name) == null;
724
+ }
725
+ /** Why `key` cannot serve, or null while it may. */
726
+ #connectionFailure(key, what) {
727
+ const spec = this.connections[key];
728
+ if (spec === undefined)
729
+ return `${key}: missing ${what}`;
730
+ if (spec.readyState === "failed")
731
+ return spec.error === "" ? `${key}: failed` : spec.error;
732
+ return null;
733
+ }
734
+ /**
735
+ * A PEW an earlier wrap started settles on its own; it fails here only when
736
+ * its connection is gone. Aborted leaves the PEW to the caller.
737
+ */
738
+ async #settleLeftoverPew(pew, key, what, signal) {
739
+ const settled = await waitUntil(() => pew.isDone || this.#connectionFailure(key, what) !== null, signal);
740
+ if (settled === "aborted")
741
+ return settled;
742
+ const detail = this.#connectionFailure(key, what);
743
+ if (detail !== null && !pew.isDone)
744
+ pew.fail("crash", detail, "null");
745
+ return settled;
746
+ }
747
+ #sealWebJob(job) {
748
+ if (job.completed || job.cancelled)
749
+ return;
750
+ if ((job.receiptJson != null && job.receiptJson !== "") || job.expectation.isDone) {
751
+ job.markComplete();
752
+ }
753
+ }
754
+ /**
755
+ * Guard phase of a host tool. The session's plugin guards wrap the license:
756
+ * a guard may refuse, answer without running the tool, or narrow the
757
+ * arguments, which are written back before the license judges them.
758
+ * Pre hooks run once the call is licensed.
759
+ */
760
+ async #guardTool(job) {
761
+ // Origin-aware door. Scheme inner admits and RPC/statusline still enter
762
+ // here as model until those callers pass their origin through this path.
763
+ const result = await guardHostTool({
764
+ job,
765
+ origin: "model",
766
+ agent: this.#behavior.agent,
767
+ behaviorEntries: behaviorEntriesThatRun(behaviorEntriesOf(this.session.root), (wire) => sessionCatalog(this.session.root)?.catalogEntry(wire)),
768
+ guardedCall: (leaf) => this.#guardedCall(leaf),
769
+ license: (leaf) => this.#license(leaf),
770
+ turnId: (hostingTurnOf(this.session.root, job) ?? this.session.root.head)?.uuid ?? "",
771
+ narrowAgent: (leaf, tools) => this.#narrowAgent(leaf, tools),
772
+ onUnentered: stampUnentered,
773
+ onProblem: (what, error) => this.#behavior.problem(what, error),
774
+ onReport: (leaf, outcome) => this.#behavior.toolReport(leaf, outcome),
775
+ });
776
+ if (result.opened != null)
777
+ this.#behavior.holdTool(job, result.opened);
778
+ return result.allowed;
779
+ }
780
+ #guardedCall(job) {
781
+ if (job instanceof BotCallJob) {
782
+ // Named bot calls retain the existing agent guard point, without child tool grants.
783
+ if (job.name !== AGENT_ASK && job.name !== AGENT_SEND)
784
+ return guardedCallOf(job, this.session.root.path);
785
+ const spec = job.botName || job.contributionBotName || job.argString("spec").trim();
786
+ const catalog = sessionCatalog(this.session.root) ?? this.sessionDaemon.kernel.catalog;
787
+ const recipe = catalog.recipe(spec);
788
+ return recipe == null ? null : agentGuardedCall(job, spec, recipe.spec.tools, false);
789
+ }
790
+ if (!(job instanceof AgentCallJob))
791
+ return guardedCallOf(job, this.session.root.path);
792
+ if (job.name !== AGENT_ASK && job.name !== AGENT_SEND)
793
+ return null;
794
+ const spec = job.argString("spec").trim();
795
+ const fresh = job.workerSessionId === "";
796
+ const catalog = sessionCatalog(this.session.root) ?? this.sessionDaemon.kernel.catalog;
797
+ if (spec === "") {
798
+ const tools = job.inheritCallerTools ? catalog.catalogWireNames() : job.tools;
799
+ return agentGuardedCall(job, "", tools, fresh);
800
+ }
801
+ const recipe = catalog.recipe(spec);
802
+ return recipe == null ? null : agentGuardedCall(job, spec, recipe.spec.tools, fresh);
803
+ }
804
+ /** An ad-hoc ask carries its tools on the job; a one-shot recipe worker takes them at mint. */
805
+ #narrowAgent(job, tools) {
806
+ if (job.argString("spec").trim() === "") {
807
+ job.tools = [...tools];
808
+ job.inheritCallerTools = false;
809
+ return;
810
+ }
811
+ this.#agentTools.set(job, tools);
812
+ // A call cancelled before its worker is minted never takes these.
813
+ void when(() => job.completed || job.cancelled).then(() => this.#agentTools.delete(job));
814
+ }
815
+ async #finishCall(job, signal) {
816
+ if (job instanceof AgentCallJob)
817
+ this.#agentTools.delete(job);
818
+ await this.#behavior.finishCall(job, signal);
819
+ }
820
+ async #license(job) {
821
+ const started = Date.now();
822
+ trace("harness:license", `wait ${job.toolCallId || job.name} tool=${job.name} policy=${job.policyResult ?? "pending"}`);
823
+ if (licenseDecisionNow(job) === false) {
824
+ stampLicenseDeny(job, this.session.root.permissionMode);
825
+ await noteDenied(job, this.session.root);
826
+ trace("harness:license", `deny ${job.toolCallId || job.name}`);
827
+ return false;
828
+ }
829
+ const hostTurn = hostingTurnOf(this.session.root, job) ?? this.session.root.head;
830
+ const ok = await license(job, hostTurn, this.session.root);
831
+ trace("harness:license", `${ok ? "allow" : "deny"} ${job.toolCallId || job.name} ms=${Date.now() - started} policy=${job.policyResult ?? ""} judge=${job.classifierResult ?? ""}`);
832
+ if (ok || job.cancelled || job.completed)
833
+ return ok;
834
+ const decision = licenseDecisionNow(job);
835
+ if (decision === false)
836
+ stampLicenseDeny(job, this.session.root.permissionMode);
837
+ else if (!this.#closed)
838
+ cancelUnstartedTool(job);
839
+ return false;
840
+ }
841
+ #agentHost() {
842
+ return {
843
+ kernel: this.sessionDaemon.kernel,
844
+ project: this.sessionDaemon.project,
845
+ caller: this.session.root,
846
+ problem: (what, error) => this.#behavior.problem(what, error),
847
+ };
848
+ }
849
+ #permissionDesk() {
850
+ if (!delegatesPermissionMode(this.session.root))
851
+ return null;
852
+ const id = permissionDeskSessionId(this.session.root, this.kernel.root);
853
+ if (id === "" || id === this.session.root.sessionId)
854
+ return null;
855
+ return this.sessionDaemon.kernel.sessionPlexus(id)?.root ?? null;
856
+ }
857
+ #deskPermissionSnap() {
858
+ const desk = this.#permissionDesk();
859
+ return desk == null ? null : deskPermissionSnap(desk);
860
+ }
861
+ ensure(connectionId) {
862
+ if (connectionId === NOUS_GATEWAY_CONNECTION_ID)
863
+ return this.#ensureBorrowedGateway();
864
+ return this.#loggedEnsure(connectionId, this.isEnsured(connectionId), super.ensure(connectionId));
865
+ }
866
+ /**
867
+ * `web-nous` is one intern id whose person can move. Memo by intern+source;
868
+ * {@link dropConnection} is the remint door so B is not A's lease.
869
+ */
870
+ #ensureBorrowedGateway() {
871
+ const connectionId = NOUS_GATEWAY_CONNECTION_ID;
872
+ const source = nousGatewaySourceOf(this.kernel.root, connectionId);
873
+ const tracked = this.#gatewayEnsure.has(borrowedEnsureKey(connectionId, source));
874
+ return this.#loggedEnsure(connectionId, tracked, memoBorrowedEnsure(this.#gatewayEnsure, connectionId, source, (id) => this.ensure(id), () => super.ensure(connectionId), () => dropConnection(this.kernel.root, connectionId)));
875
+ }
876
+ #loggedEnsure(connectionId, tracked, pending) {
877
+ if (tracked)
878
+ return pending;
879
+ step(`ensure ${connectionId}`);
880
+ void pending.then(() => step(`ensure ${connectionId} ready`), (error) => fail(`ensure ${connectionId}`, error));
881
+ return pending;
882
+ }
883
+ attachConnection(connectionId, instance) {
884
+ const kernel = this.sessionDaemon.kernel;
885
+ instance.bindSettingsWriter((patch) => {
886
+ kernel.adjustConfig((config) => {
887
+ if (!Object.hasOwn(config.connections, connectionId))
888
+ return;
889
+ const row = config.connections[connectionId];
890
+ row.settings = { ...row.settings, ...patch };
891
+ });
892
+ });
893
+ }
894
+ connectionSecrets(connectionId) {
895
+ const root = this.sessionDaemon.kernel.root;
896
+ const ownerId = () => secretsConnectionId(this.kernel.root, connectionId);
897
+ return {
898
+ get: (field) => readConnectionSecrets(root, ownerId())[field],
899
+ all: () => readConnectionSecrets(root, ownerId()),
900
+ replace: (secrets) => {
901
+ writeConnectionSecrets(root, ownerId(), { ...secrets });
902
+ },
903
+ };
904
+ }
905
+ /**
906
+ * Remainder / compact `.prompt` / turn port. Interns the row, then
907
+ * `connection.complete` → `handle(round)`. `KernelDaemon` has no `complete()`.
908
+ */
909
+ complete(req) {
910
+ return this.#flights.complete(req);
911
+ }
912
+ /**
913
+ * Open completions honor will not start. `startedAtMs` means the attempt
914
+ * already began. Tape completions belong to the turn resolution strategy. Only isolated
915
+ * completions use this driver, so there is one dispatch owner per node.
916
+ */
917
+ #openUnstartedCompletions() {
918
+ if (!this.activated || this.#closed)
919
+ return [];
920
+ const open = [];
921
+ for (const node of this.reachableJobs) {
922
+ if (!(node instanceof CompletionJob))
923
+ continue;
924
+ const pew = node.expectation;
925
+ if (pew.isDone || pew.startedAtMs != null)
926
+ continue;
927
+ const parent = node.parent;
928
+ if (parent instanceof SessionTurn && (parent.queue.includes(node) || parent.doneWork.includes(node)))
929
+ continue;
930
+ open.push(node);
931
+ }
932
+ return open;
933
+ }
934
+ #stopCompletions(reason) {
935
+ this.#disposeCompletions();
936
+ this.#flights.abortAll(reason);
937
+ }
938
+ async #driveCompletion(req) {
939
+ const owner = req.round.parent;
940
+ if (owner instanceof CompletionJob) {
941
+ if (owner.orchestrationResult == null) {
942
+ runInAction(() => {
943
+ owner.orchestrationResult = true;
944
+ });
945
+ }
946
+ const intent = await this.#gateIntent(owner, req.signal ?? new AbortController().signal);
947
+ if (!intent.dispatch) {
948
+ if (intent.persistFailed && req.round.outcome == null) {
949
+ req.round.fail("crash", INTENT_NOT_PERSISTED, "null");
950
+ }
951
+ throw new Error(intent.persistFailed ? INTENT_NOT_PERSISTED : "completion cancelled");
952
+ }
953
+ }
954
+ // The retry budget is read once, here, and recorded on the round. A live setting change
955
+ // does not reach a round that is already retrying.
956
+ req.round.stampRetryLimits({
957
+ maxMs: this.kernel.root.retryMaxMs,
958
+ maxAttempts: this.kernel.root.retryMaxAttempts,
959
+ });
960
+ const started = Date.now();
961
+ const id = req.round.uuid;
962
+ trace("harness:complete", `start ${id} connection=${req.connectionId} model=${req.model} isolated=${req.round.completionMode === "isolated"}`);
963
+ this.originCompletions.add(req.round);
964
+ try {
965
+ const result = await internedComplete(this, req);
966
+ trace("harness:complete", `done ${id} ms=${Date.now() - started} chars=${result.text.length}`);
967
+ return result;
968
+ }
969
+ catch (error) {
970
+ trace("harness:complete", `fail ${id} ms=${Date.now() - started} ${error instanceof Error ? error.message : String(error)}`);
971
+ if (error instanceof ConnectionMiss)
972
+ this.originCompletions.delete(req.round);
973
+ throw error;
974
+ }
975
+ }
976
+ /**
977
+ * A guard or body threw. The job's joiners (the turn's `joinReleased`, a
978
+ * program's leaf wait) read the receipt, so the model sees the error as
979
+ * the tool result and the turn continues instead of waiting forever.
980
+ */
981
+ stampCrash(job, phase, detail) {
982
+ const text = `${phase === "license" ? "license crashed" : "tool crashed"}: ${detail === "" ? "unknown error" : detail}`;
983
+ trace("harness:crash", `${job.__type__} ${phase} ${detail}`);
984
+ if (job instanceof ToolCallJob)
985
+ stampUnentered(job, { ok: false, text });
986
+ else if (job instanceof ProgrammaticJob)
987
+ job.outcomeSnap ??= { ok: false, text };
988
+ }
989
+ shouldHonor(node) {
990
+ if (!super.shouldHonor(node))
991
+ return false;
992
+ if (node instanceof McpToolExpectation)
993
+ return node.startedAtMs != null || node.dispatched;
994
+ if (node instanceof CompletionExpectation)
995
+ return node.startedAtMs != null;
996
+ return true;
997
+ }
998
+ async loadDriverModule(driver) {
999
+ return this.sessionDaemon.kernel.runtime.loadDriver(driver);
1000
+ }
1001
+ #holdingDispatchedMcp = false;
1002
+ #holdingEval = false;
1003
+ get holdingEval() {
1004
+ return this.#holdingEval;
1005
+ }
1006
+ /** Honor still running after last-seat park: on-wire MCP or an unsealed eval bag. */
1007
+ get holding() {
1008
+ return this.#holdingDispatchedMcp || this.#holdingEval;
1009
+ }
1010
+ async #waitEvalAdmission(signal) {
1011
+ const held = this.sessionDaemon.evalAdmissionHeld;
1012
+ return !held.get() || (await waitUntil(() => !held.get(), signal)) === "settled";
1013
+ }
1014
+ /**
1015
+ * Pause interpretation. Open Calls and agentCallbacks stay. Abort reason
1016
+ * `"park"` so Call / program / turn handlers do not seal.
1017
+ *
1018
+ * ONE SETTLEMENT. `tools/call` already on the wire is not aborted and not
1019
+ * started again — a second dispatch would hide whether the mutation landed.
1020
+ * Park waits for that settlement. Undispatched MCP is aborted without a
1021
+ * cancel receipt.
1022
+ *
1023
+ * Live eval bags are a wrap hold, not a mutation hold: last-seat drop must
1024
+ * not mint a second honor on the unsealed program. On-wire MCP does not
1025
+ * keep `interpreting` true.
1026
+ *
1027
+ * A held program keeps calling tools, and a tool is licensed and run by the
1028
+ * executors that a stop disposes. So the stop waits for the programs
1029
+ * instead of leaving them parked on a leaf nobody will run: until the last
1030
+ * live program settles this wrap keeps interpreting (and says so), then
1031
+ * parks as usual. The round a park interrupts is never ended: it is the
1032
+ * resumed turn that opens a fresh one.
1033
+ */
1034
+ park() {
1035
+ if (this.#closed)
1036
+ return Promise.resolve();
1037
+ if (liveEvalWork(this.session.root).size === 0)
1038
+ return this.#parkNow();
1039
+ this.#deferredPark ??= (async () => {
1040
+ this.#holdingEval = true;
1041
+ try {
1042
+ await when(() => this.#closed || liveEvalWork(this.session.root).size === 0);
1043
+ }
1044
+ finally {
1045
+ this.#holdingEval = false;
1046
+ }
1047
+ await this.#parkNow();
1048
+ })();
1049
+ return this.#deferredPark;
1050
+ }
1051
+ #deferredPark = null;
1052
+ #parkNow() {
1053
+ if (!this.#stop("park"))
1054
+ return Promise.resolve();
1055
+ const hold = this.#abortParkableWork();
1056
+ if (!hold.mcpPending && !hold.evalPending) {
1057
+ this.#abortParkableWork();
1058
+ this.#release();
1059
+ return Promise.resolve();
1060
+ }
1061
+ this.#holdingDispatchedMcp = hold.mcpPending;
1062
+ this.#holdingEval = hold.evalPending;
1063
+ return when(() => dispatchedMcpSettled(this.session.root) && liveEvalWork(this.session.root).size === 0).then(() => {
1064
+ this.#holdingDispatchedMcp = false;
1065
+ this.#holdingEval = false;
1066
+ this.#abortParkableWork();
1067
+ this.#release();
1068
+ return undefined;
1069
+ });
1070
+ }
1071
+ /** Close the wrap to new work. Park and dispose share it; false once closed. */
1072
+ #stop(cause) {
1073
+ if (this.#closed)
1074
+ return false;
1075
+ this.#closed = true;
1076
+ this.#disposeLive();
1077
+ this.#disposeConnections();
1078
+ this.#disposeBoundWire();
1079
+ this.#disposePromptQueue();
1080
+ this.#disposeAutoAllow();
1081
+ this.#disposeDesk();
1082
+ // A park pauses the round it interrupts; only a dispose ends it.
1083
+ this.#stopCompletions(cause);
1084
+ this.stopAdmission();
1085
+ scopes.get(this.session.root).close();
1086
+ return true;
1087
+ }
1088
+ /** Release what the wrap holds, once its last held work settled. */
1089
+ #release() {
1090
+ this.#behavior[Symbol.dispose]();
1091
+ super[Symbol.dispose]();
1092
+ }
1093
+ #abortParkableWork() {
1094
+ return abortParkableWork(this.session.root, {
1095
+ inFlightJobs: () => this.inFlightJobs(),
1096
+ abortJob: (job, reason) => this.abortJob(job, reason),
1097
+ abortExpectation: (expectation, reason) => {
1098
+ this.actorOf(expectation)?.abort(reason);
1099
+ },
1100
+ });
1101
+ }
1102
+ [Symbol.dispose]() {
1103
+ if (!this.#stop())
1104
+ return;
1105
+ for (const job of this.inFlightJobs()) {
1106
+ if (job instanceof SessionTurn) {
1107
+ failLeftoverApprovables(job, (leaf) => this.#abortLeaf(leaf), this.sessionDaemon.kernel.catalog);
1108
+ }
1109
+ }
1110
+ this.#release();
1111
+ }
1112
+ #compactHost(turn, session, connectionId, model) {
1113
+ return {
1114
+ turn,
1115
+ session,
1116
+ compactKeepTurns: this.kernel.root.compactKeepTurns,
1117
+ compactStrategy: this.kernel.root.compactStrategy,
1118
+ kernelFsRoot: this.sessionDaemon.kernel.root,
1119
+ connectionId,
1120
+ model,
1121
+ complete: (req) => this.complete(req),
1122
+ loadProgram: (spec, root) => loadCompactProgram(spec, root),
1123
+ log: (message) => step(message),
1124
+ fail: (label, error) => fail(label, error),
1125
+ };
1126
+ }
1127
+ cancelOwned(turn) {
1128
+ const catalog = this.sessionDaemon.kernel.catalog;
1129
+ turn.cancelRequested = true;
1130
+ for (const node of walkWork(turn)) {
1131
+ if (node instanceof CallJob && !node.completed) {
1132
+ if (shouldSkipTurnCancel(node, catalog))
1133
+ continue;
1134
+ completeCallExceptionally(node, this.#agentHost(), "cancelled");
1135
+ }
1136
+ }
1137
+ failLeftoverApprovables(turn, (leaf) => this.#abortLeaf(leaf), catalog);
1138
+ for (const node of walkWork(turn)) {
1139
+ if (node instanceof ProgrammaticJob && !node.completed) {
1140
+ if (node.orchestrated)
1141
+ this.abortJob(node);
1142
+ else {
1143
+ node.outcomeSnap ??= { ok: false, text: "cancelled" };
1144
+ node.cancelled = true;
1145
+ node.markComplete();
1146
+ }
1147
+ }
1148
+ if (node instanceof WorkExpectation && !node.isDone)
1149
+ this.#terminatePew(node);
1150
+ }
1151
+ let inFlight = false;
1152
+ for (const job of this.inFlightJobs()) {
1153
+ if (job === turn) {
1154
+ inFlight = true;
1155
+ break;
1156
+ }
1157
+ }
1158
+ this.abortJob(turn);
1159
+ if (!inFlight) {
1160
+ // The executor is not inside this turn, so its finally will not clear `inLoop`.
1161
+ closeTurn(turn, { kind: "cancel" }, this.#closeOptions());
1162
+ }
1163
+ }
1164
+ /** What every turn close needs from this wrap: the abort of an in-flight body, the actor-aware end, the inbox. */
1165
+ #closeOptions() {
1166
+ return {
1167
+ catalog: this.sessionDaemon.kernel.catalog,
1168
+ abort: (job) => (job instanceof ApprovableJob ? this.#abortLeaf(job) : this.abortJob(job)),
1169
+ terminate: (expectation) => this.#terminatePew(expectation),
1170
+ releaseCall: (call) => {
1171
+ if (!call.completed)
1172
+ completeCallExceptionally(call, this.#agentHost(), "cancelled");
1173
+ },
1174
+ session: this.session.root,
1175
+ };
1176
+ }
1177
+ /**
1178
+ * Stream stall failed this turn's completion. A keepAlive worker can still
1179
+ * respond after any other close, and eval timeout cancels the call itself.
1180
+ * The turn is already closed, so force-stop does not abort this executor.
1181
+ */
1182
+ #releaseUnansweredCall(turn) {
1183
+ const requestId = turn.agentRequestId.trim();
1184
+ if (requestId === "")
1185
+ return;
1186
+ const call = loadOpenCall(this.sessionDaemon.kernel, this.session.root, requestId);
1187
+ if (call == null || call.completed)
1188
+ return;
1189
+ let detail = "";
1190
+ for (const node of walkWork(turn)) {
1191
+ const pew = node instanceof CompletionExpectation ? node : tapeCompletion(node);
1192
+ if (pew == null)
1193
+ continue;
1194
+ if (pew.outcome !== "failed")
1195
+ continue;
1196
+ const text = pew.endDetail?.trim() || pew.failReason?.trim() || "";
1197
+ if (!text.startsWith("stream stalled after "))
1198
+ continue;
1199
+ detail = text;
1200
+ break;
1201
+ }
1202
+ if (detail === "")
1203
+ return;
1204
+ completeCallExceptionally(call, this.#agentHost(), "error", detail);
1205
+ }
1206
+ /**
1207
+ * In-flight BODY abort. `abortJob` does not stop a worker session — AgentCall
1208
+ * must complete exceptionally. MCP/web terminate PEW.
1209
+ */
1210
+ #abortLeaf(leaf, reason) {
1211
+ this.abortJob(leaf, reason);
1212
+ if (leaf instanceof CallJob) {
1213
+ if (!leaf.completed) {
1214
+ completeCallExceptionally(leaf, this.#agentHost(), "cancelled", cancelOutcomeText(reason));
1215
+ }
1216
+ return;
1217
+ }
1218
+ if (leaf instanceof MCPToolJob || leaf instanceof WebSearchToolJob || leaf instanceof WebExtractToolJob) {
1219
+ leaf.outcomeSnap ??= { ok: false, text: cancelOutcomeText(reason) };
1220
+ const pew = leaf.expectation;
1221
+ if (!pew.isDone)
1222
+ this.#terminatePew(pew);
1223
+ }
1224
+ }
1225
+ #abortWork(job) {
1226
+ if (job instanceof ApprovableJob)
1227
+ this.#abortLeaf(job);
1228
+ else
1229
+ this.abortJob(job);
1230
+ }
1231
+ #terminatePew(expectation) {
1232
+ const actor = this.actorOf(expectation);
1233
+ if (actor !== undefined)
1234
+ actor.admitTermination();
1235
+ if (!expectation.isDone)
1236
+ expectation.fail("cancel", "terminate", "null");
1237
+ }
1238
+ #configuredModel(connectionId) {
1239
+ const spec = this.kernel.root.connections[connectionId];
1240
+ if (spec == null)
1241
+ return "";
1242
+ const configured = typeof spec.configuration.model === "string" ? spec.configuration.model.trim() : "";
1243
+ if (configured !== "")
1244
+ return configured;
1245
+ const activeConnection = (this.session.root.kvs.connection || this.kernel.root.kvs.connection || "").trim();
1246
+ if (connectionId === activeConnection) {
1247
+ const activeModel = (this.session.root.kvs.model || this.kernel.root.kvs.model || "").trim();
1248
+ if (activeModel !== "")
1249
+ return activeModel;
1250
+ }
1251
+ const liveModels = spec.live?.models;
1252
+ if (Array.isArray(liveModels)) {
1253
+ const first = liveModels.find((id) => typeof id === "string" && id.trim() !== "");
1254
+ if (typeof first === "string")
1255
+ return first.trim();
1256
+ }
1257
+ return "";
1258
+ }
1259
+ async #reActLoopIntentDetectedTrigger(turn, pew, signal) {
1260
+ if (internContinueStreak(turn) >= RE_ACT_LOOP_INTENT_DETECTED_TRIGGER_STREAK_MAX)
1261
+ return "seal";
1262
+ if (!reActLoopIntentDetectedTriggerFor(this.kernel.root.reActLoopIntentDetectedTrigger, pew.connectionId, pew.model))
1263
+ return "seal";
1264
+ const wire = internJudgeWire(this.session.root.kvs, this.kernel.root.kvs, (id) => this.#configuredModel(id));
1265
+ if (wire == null)
1266
+ return "seal";
1267
+ return runTextOnlyContinueIntern({
1268
+ speech: pew.responseText,
1269
+ wire,
1270
+ haltKeys: this.#reActLoopIntentDetectedTriggerHaltKeys,
1271
+ home: turn,
1272
+ complete: (req) => this.complete(req),
1273
+ signal,
1274
+ });
1275
+ }
1276
+ }
1277
+ function completionRequest(pew) {
1278
+ return {
1279
+ connectionId: pew.connectionId,
1280
+ model: pew.model,
1281
+ promptText: pew.userPrompt,
1282
+ messages: pew.messages,
1283
+ responseSchemaJson: pew.responseSchema == null ? undefined : JSON.stringify(pew.responseSchema),
1284
+ systemNote: pew.systemNote,
1285
+ round: pew,
1286
+ };
1287
+ }
1288
+ async function waitCompleted(job, signal, catalog) {
1289
+ return waitUntil(() => joinReleased(job, catalog), signal);
1290
+ }
1291
+ async function waitUntil(pred, signal) {
1292
+ if (signal.aborted)
1293
+ return "aborted";
1294
+ if (pred())
1295
+ return "settled";
1296
+ let onAbort;
1297
+ const aborted = new Promise((resolve) => {
1298
+ onAbort = () => resolve("aborted");
1299
+ signal.addEventListener("abort", onAbort, { once: true });
1300
+ });
1301
+ const joined = when(pred);
1302
+ try {
1303
+ return await Promise.race([
1304
+ joined.then(() => "settled", () => "aborted"),
1305
+ aborted,
1306
+ ]);
1307
+ }
1308
+ finally {
1309
+ joined.cancel();
1310
+ if (onAbort !== undefined)
1311
+ signal.removeEventListener("abort", onAbort);
1312
+ }
1313
+ }
1314
+ function stampSessionPrograms(session, kernelFsRoot, kernel) {
1315
+ session.policyProgram = loadPolicySource(kernelFsRoot) ?? distPolicySource();
1316
+ try {
1317
+ session.judgeAskProgram = readFileSync(resolveCompactStrategyPath(kernel.autoModeClassifier, kernelFsRoot), "utf8");
1318
+ }
1319
+ catch {
1320
+ session.judgeAskProgram = "";
1321
+ }
1322
+ }
1323
+ function closeMcpFailure(job, text) {
1324
+ job.outcomeSnap ??= { ok: false, text };
1325
+ const pew = job.expectation;
1326
+ if (!pew.isDone)
1327
+ pew.fail("crash", text, "null");
1328
+ if (!job.completed && !job.cancelled)
1329
+ job.markComplete();
1330
+ }
1331
+ function waitDispatchedMcp(job) {
1332
+ if (!mcpJobOnWire(job))
1333
+ return Promise.resolve();
1334
+ return when(() => !mcpJobOnWire(job) || job.completed || job.cancelled);
1335
+ }
1336
+ function sealMcpIfSettled(job) {
1337
+ if (job.completed || job.cancelled)
1338
+ return;
1339
+ if (job.receiptJson == null || job.receiptJson === "")
1340
+ return;
1341
+ if (job.expectation.startedAtMs != null && !job.expectation.isDone)
1342
+ return;
1343
+ job.markComplete();
1344
+ }
1345
+ function enclosingCallOf(kernel, session, job) {
1346
+ let unit = session.head;
1347
+ let holding;
1348
+ // A tail cycle is a corrupt document, not an endless walk.
1349
+ const seen = new Set();
1350
+ while (unit instanceof SessionTurn && !seen.has(unit)) {
1351
+ seen.add(unit);
1352
+ if (unit.queue.includes(job) || unit.doneWork.includes(job) || unit.children.includes(job)) {
1353
+ holding = unit;
1354
+ break;
1355
+ }
1356
+ unit = unit.turnTail instanceof SessionTurn ? unit.turnTail : null;
1357
+ }
1358
+ const requestId = holding?.agentRequestId.trim() ?? "";
1359
+ if (requestId === "")
1360
+ return undefined;
1361
+ return loadOpenCall(kernel, session, requestId);
1362
+ }
1363
+ //# sourceMappingURL=SessionOrchestrator.js.map