@agimon-ai/po-core 0.0.0-alpha.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 (1218) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/agentModel.cjs +4 -0
  5. package/dist/agentModel.d.mts +2 -0
  6. package/dist/agentModel.mjs +2 -0
  7. package/dist/apiContracts.cjs +2094 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +1086 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +2074 -0
  12. package/dist/apiContracts.mjs.map +1 -0
  13. package/dist/askUser.cjs +8 -0
  14. package/dist/askUser.d.mts +2 -0
  15. package/dist/askUser.mjs +2 -0
  16. package/dist/authorTools.cjs +5 -0
  17. package/dist/authorTools.d.mts +2 -0
  18. package/dist/authorTools.mjs +2 -0
  19. package/dist/backgroundWork.cjs +9 -0
  20. package/dist/backgroundWork.d.mts +2 -0
  21. package/dist/backgroundWork.mjs +2 -0
  22. package/dist/bundleAssetPolicy.cjs +5 -0
  23. package/dist/bundleAssetPolicy.d.mts +2 -0
  24. package/dist/bundleAssetPolicy.mjs +2 -0
  25. package/dist/childProcess.cjs +15 -0
  26. package/dist/childProcess.d.mts +2 -0
  27. package/dist/childProcess.mjs +2 -0
  28. package/dist/childSession.cjs +9 -0
  29. package/dist/childSession.d.mts +3 -0
  30. package/dist/childSession.mjs +3 -0
  31. package/dist/cockpitContainer.cjs +4 -0
  32. package/dist/cockpitContainer.d.mts +2 -0
  33. package/dist/cockpitContainer.mjs +2 -0
  34. package/dist/config.cjs +13 -0
  35. package/dist/config.d.mts +3 -0
  36. package/dist/config.mjs +2 -0
  37. package/dist/contextApi.cjs +12 -0
  38. package/dist/contextApi.d.mts +4 -0
  39. package/dist/contextApi.mjs +3 -0
  40. package/dist/contextContributions.cjs +7 -0
  41. package/dist/contextContributions.d.mts +3 -0
  42. package/dist/contextContributions.mjs +3 -0
  43. package/dist/contextDetail.cjs +65 -0
  44. package/dist/contextDetail.cjs.map +1 -0
  45. package/dist/contextDetail.d.mts +19 -0
  46. package/dist/contextDetail.d.mts.map +1 -0
  47. package/dist/contextDetail.mjs +64 -0
  48. package/dist/contextDetail.mjs.map +1 -0
  49. package/dist/contextDetailStore.cjs +96 -0
  50. package/dist/contextDetailStore.cjs.map +1 -0
  51. package/dist/contextDetailStore.d.mts +21 -0
  52. package/dist/contextDetailStore.d.mts.map +1 -0
  53. package/dist/contextDetailStore.mjs +87 -0
  54. package/dist/contextDetailStore.mjs.map +1 -0
  55. package/dist/contextProjection.cjs +121 -0
  56. package/dist/contextProjection.cjs.map +1 -0
  57. package/dist/contextProjection.d.mts +130 -0
  58. package/dist/contextProjection.d.mts.map +1 -0
  59. package/dist/contextProjection.mjs +117 -0
  60. package/dist/contextProjection.mjs.map +1 -0
  61. package/dist/cordisHost.cjs +13 -0
  62. package/dist/cordisHost.d.mts +2 -0
  63. package/dist/cordisHost.mjs +2 -0
  64. package/dist/delegation.cjs +18 -0
  65. package/dist/delegation.d.mts +2 -0
  66. package/dist/delegation.mjs +2 -0
  67. package/dist/doomPackage.cjs +61 -0
  68. package/dist/doomPackage.cjs.map +1 -0
  69. package/dist/doomPackage.d.mts +17 -0
  70. package/dist/doomPackage.d.mts.map +1 -0
  71. package/dist/doomPackage.mjs +54 -0
  72. package/dist/doomPackage.mjs.map +1 -0
  73. package/dist/executionBudget.cjs +232 -0
  74. package/dist/executionBudget.cjs.map +1 -0
  75. package/dist/executionBudget.d.mts +11 -0
  76. package/dist/executionBudget.d.mts.map +1 -0
  77. package/dist/executionBudget.mjs +226 -0
  78. package/dist/executionBudget.mjs.map +1 -0
  79. package/dist/extensionFile.cjs +19 -0
  80. package/dist/extensionFile.d.mts +3 -0
  81. package/dist/extensionFile.mjs +2 -0
  82. package/dist/footer.cjs +6 -0
  83. package/dist/footer.d.mts +2 -0
  84. package/dist/footer.mjs +2 -0
  85. package/dist/headless.cjs +16 -0
  86. package/dist/headless.d.mts +2 -0
  87. package/dist/headless.mjs +2 -0
  88. package/dist/headlessHub.cjs +1008 -0
  89. package/dist/headlessHub.cjs.map +1 -0
  90. package/dist/headlessHub.d.mts +176 -0
  91. package/dist/headlessHub.d.mts.map +1 -0
  92. package/dist/headlessHub.mjs +1005 -0
  93. package/dist/headlessHub.mjs.map +1 -0
  94. package/dist/headlessServer.cjs +956 -0
  95. package/dist/headlessServer.cjs.map +1 -0
  96. package/dist/headlessServer.d.mts +66 -0
  97. package/dist/headlessServer.d.mts.map +1 -0
  98. package/dist/headlessServer.mjs +949 -0
  99. package/dist/headlessServer.mjs.map +1 -0
  100. package/dist/headlessSessionHost.cjs +0 -0
  101. package/dist/headlessSessionHost.d.mts +89 -0
  102. package/dist/headlessSessionHost.d.mts.map +1 -0
  103. package/dist/headlessSessionHost.mjs +1 -0
  104. package/dist/headlessSessionManager.cjs +51 -0
  105. package/dist/headlessSessionManager.cjs.map +1 -0
  106. package/dist/headlessSessionManager.d.mts +6 -0
  107. package/dist/headlessSessionManager.d.mts.map +1 -0
  108. package/dist/headlessSessionManager.mjs +50 -0
  109. package/dist/headlessSessionManager.mjs.map +1 -0
  110. package/dist/help.cjs +24 -0
  111. package/dist/help.d.mts +3 -0
  112. package/dist/help.mjs +3 -0
  113. package/dist/history.cjs +25 -0
  114. package/dist/history.d.mts +10 -0
  115. package/dist/history.mjs +10 -0
  116. package/dist/historyOwnership.cjs +253 -0
  117. package/dist/historyOwnership.cjs.map +1 -0
  118. package/dist/historyOwnership.d.mts +23 -0
  119. package/dist/historyOwnership.d.mts.map +1 -0
  120. package/dist/historyOwnership.mjs +247 -0
  121. package/dist/historyOwnership.mjs.map +1 -0
  122. package/dist/hubChannel.cjs +4 -0
  123. package/dist/hubChannel.d.mts +2 -0
  124. package/dist/hubChannel.mjs +2 -0
  125. package/dist/index.cjs +44 -0
  126. package/dist/index.d.mts +6 -0
  127. package/dist/index.mjs +6 -0
  128. package/dist/json.cjs +6 -0
  129. package/dist/json.d.mts +2 -0
  130. package/dist/json.mjs +2 -0
  131. package/dist/jsonlSessionRepo.cjs +44 -0
  132. package/dist/jsonlSessionRepo.cjs.map +1 -0
  133. package/dist/jsonlSessionRepo.d.mts +7 -0
  134. package/dist/jsonlSessionRepo.d.mts.map +1 -0
  135. package/dist/jsonlSessionRepo.mjs +42 -0
  136. package/dist/jsonlSessionRepo.mjs.map +1 -0
  137. package/dist/kernel.cjs +3 -0
  138. package/dist/kernel.d.mts +3 -0
  139. package/dist/kernel.mjs +2 -0
  140. package/dist/leader.cjs +9 -0
  141. package/dist/leader.d.mts +2 -0
  142. package/dist/leader.mjs +2 -0
  143. package/dist/logSinkTelemetry.cjs +5 -0
  144. package/dist/logSinkTelemetry.d.mts +2 -0
  145. package/dist/logSinkTelemetry.mjs +2 -0
  146. package/dist/machineApi.cjs +92 -0
  147. package/dist/machineApi.cjs.map +1 -0
  148. package/dist/machineApi.d.mts +7 -0
  149. package/dist/machineApi.d.mts.map +1 -0
  150. package/dist/machineApi.mjs +88 -0
  151. package/dist/machineApi.mjs.map +1 -0
  152. package/dist/main.cjs +11 -0
  153. package/dist/main.d.mts +5 -0
  154. package/dist/main.mjs +4 -0
  155. package/dist/mcpFacet.cjs +9 -0
  156. package/dist/mcpFacet.d.mts +4 -0
  157. package/dist/mcpFacet.mjs +3 -0
  158. package/dist/mcpProjection.cjs +16 -0
  159. package/dist/mcpProjection.d.mts +2 -0
  160. package/dist/mcpProjection.mjs +2 -0
  161. package/dist/mcpSchemaCost.cjs +195 -0
  162. package/dist/mcpSchemaCost.cjs.map +1 -0
  163. package/dist/mcpSchemaCost.d.mts +35 -0
  164. package/dist/mcpSchemaCost.d.mts.map +1 -0
  165. package/dist/mcpSchemaCost.mjs +190 -0
  166. package/dist/mcpSchemaCost.mjs.map +1 -0
  167. package/dist/mcpSession.cjs +9 -0
  168. package/dist/mcpSession.d.mts +2 -0
  169. package/dist/mcpSession.mjs +2 -0
  170. package/dist/mcpStatus.cjs +7 -0
  171. package/dist/mcpStatus.d.mts +2 -0
  172. package/dist/mcpStatus.mjs +2 -0
  173. package/dist/mcpToolResolver.cjs +5 -0
  174. package/dist/mcpToolResolver.d.mts +2 -0
  175. package/dist/mcpToolResolver.mjs +2 -0
  176. package/dist/mcpWidget.cjs +0 -0
  177. package/dist/mcpWidget.d.mts +2 -0
  178. package/dist/mcpWidget.mjs +1 -0
  179. package/dist/moduleResolution.cjs +412 -0
  180. package/dist/moduleResolution.cjs.map +1 -0
  181. package/dist/moduleResolution.d.mts +72 -0
  182. package/dist/moduleResolution.d.mts.map +1 -0
  183. package/dist/moduleResolution.mjs +396 -0
  184. package/dist/moduleResolution.mjs.map +1 -0
  185. package/dist/narration.cjs +10 -0
  186. package/dist/narration.d.mts +2 -0
  187. package/dist/narration.mjs +2 -0
  188. package/dist/native.cjs +29 -0
  189. package/dist/native.d.mts +12 -0
  190. package/dist/native.mjs +8 -0
  191. package/dist/notification.cjs +17 -0
  192. package/dist/notification.d.mts +2 -0
  193. package/dist/notification.mjs +2 -0
  194. package/dist/packageApi.cjs +17 -0
  195. package/dist/packageApi.d.mts +3 -0
  196. package/dist/packageApi.mjs +3 -0
  197. package/dist/packageApiServer.cjs +196 -0
  198. package/dist/packageApiServer.cjs.map +1 -0
  199. package/dist/packageApiServer.d.mts +62 -0
  200. package/dist/packageApiServer.d.mts.map +1 -0
  201. package/dist/packageApiServer.mjs +194 -0
  202. package/dist/packageApiServer.mjs.map +1 -0
  203. package/dist/piSettings.cjs +20 -0
  204. package/dist/piSettings.d.mts +2 -0
  205. package/dist/piSettings.mjs +2 -0
  206. package/dist/pluginProtocol.cjs +10 -0
  207. package/dist/pluginProtocol.d.mts +2 -0
  208. package/dist/pluginProtocol.mjs +2 -0
  209. package/dist/profileIdentity.cjs +6 -0
  210. package/dist/profileIdentity.d.mts +2 -0
  211. package/dist/profileIdentity.mjs +2 -0
  212. package/dist/protocol.cjs +10 -0
  213. package/dist/protocol.d.mts +2 -0
  214. package/dist/protocol.mjs +2 -0
  215. package/dist/readiness.cjs +8 -0
  216. package/dist/readiness.d.mts +2 -0
  217. package/dist/readiness.mjs +2 -0
  218. package/dist/remoteApi.cjs +45 -0
  219. package/dist/remoteApi.cjs.map +1 -0
  220. package/dist/remoteApi.d.mts +7 -0
  221. package/dist/remoteApi.d.mts.map +1 -0
  222. package/dist/remoteApi.mjs +44 -0
  223. package/dist/remoteApi.mjs.map +1 -0
  224. package/dist/remoteRuntime.cjs +498 -0
  225. package/dist/remoteRuntime.cjs.map +1 -0
  226. package/dist/remoteRuntime.d.mts +36 -0
  227. package/dist/remoteRuntime.d.mts.map +1 -0
  228. package/dist/remoteRuntime.mjs +494 -0
  229. package/dist/remoteRuntime.mjs.map +1 -0
  230. package/dist/runtimeConfig.cjs +232 -0
  231. package/dist/runtimeConfig.cjs.map +1 -0
  232. package/dist/runtimeConfig.d.mts +313 -0
  233. package/dist/runtimeConfig.d.mts.map +1 -0
  234. package/dist/runtimeConfig.mjs +221 -0
  235. package/dist/runtimeConfig.mjs.map +1 -0
  236. package/dist/runtimeContextApi.cjs +64 -0
  237. package/dist/runtimeContextApi.cjs.map +1 -0
  238. package/dist/runtimeContextApi.d.mts +16 -0
  239. package/dist/runtimeContextApi.d.mts.map +1 -0
  240. package/dist/runtimeContextApi.mjs +62 -0
  241. package/dist/runtimeContextApi.mjs.map +1 -0
  242. package/dist/runtimeCordisHost.cjs +223 -0
  243. package/dist/runtimeCordisHost.cjs.map +1 -0
  244. package/dist/runtimeCordisHost.d.mts +78 -0
  245. package/dist/runtimeCordisHost.d.mts.map +1 -0
  246. package/dist/runtimeCordisHost.mjs +212 -0
  247. package/dist/runtimeCordisHost.mjs.map +1 -0
  248. package/dist/runtimeHeadlessSessionManager.cjs +0 -0
  249. package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
  250. package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
  251. package/dist/runtimeHeadlessSessionManager.mjs +1 -0
  252. package/dist/runtimeIdentity.cjs +26 -0
  253. package/dist/runtimeIdentity.cjs.map +1 -0
  254. package/dist/runtimeIdentity.d.mts +7 -0
  255. package/dist/runtimeIdentity.d.mts.map +1 -0
  256. package/dist/runtimeIdentity.mjs +21 -0
  257. package/dist/runtimeIdentity.mjs.map +1 -0
  258. package/dist/runtimeJson.cjs +46 -0
  259. package/dist/runtimeJson.cjs.map +1 -0
  260. package/dist/runtimeJson.d.mts +22 -0
  261. package/dist/runtimeJson.d.mts.map +1 -0
  262. package/dist/runtimeJson.mjs +39 -0
  263. package/dist/runtimeJson.mjs.map +1 -0
  264. package/dist/runtimeLogSinkTelemetry.cjs +102 -0
  265. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
  266. package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
  267. package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
  268. package/dist/runtimeLogSinkTelemetry.mjs +99 -0
  269. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
  270. package/dist/runtimePackages.cjs +120 -0
  271. package/dist/runtimePackages.cjs.map +1 -0
  272. package/dist/runtimePackages.d.mts +57 -0
  273. package/dist/runtimePackages.d.mts.map +1 -0
  274. package/dist/runtimePackages.mjs +110 -0
  275. package/dist/runtimePackages.mjs.map +1 -0
  276. package/dist/runtimePiSettings.cjs +257 -0
  277. package/dist/runtimePiSettings.cjs.map +1 -0
  278. package/dist/runtimePiSettings.d.mts +70 -0
  279. package/dist/runtimePiSettings.d.mts.map +1 -0
  280. package/dist/runtimePiSettings.mjs +235 -0
  281. package/dist/runtimePiSettings.mjs.map +1 -0
  282. package/dist/runtimeProtocol.cjs +228 -0
  283. package/dist/runtimeProtocol.cjs.map +1 -0
  284. package/dist/runtimeProtocol.d.mts +86 -0
  285. package/dist/runtimeProtocol.d.mts.map +1 -0
  286. package/dist/runtimeProtocol.mjs +219 -0
  287. package/dist/runtimeProtocol.mjs.map +1 -0
  288. package/dist/runtimeToolNames.cjs +51 -0
  289. package/dist/runtimeToolNames.cjs.map +1 -0
  290. package/dist/runtimeToolNames.d.mts +24 -0
  291. package/dist/runtimeToolNames.d.mts.map +1 -0
  292. package/dist/runtimeToolNames.mjs +49 -0
  293. package/dist/runtimeToolNames.mjs.map +1 -0
  294. package/dist/runtimeTransition.cjs +27 -0
  295. package/dist/runtimeTransition.cjs.map +1 -0
  296. package/dist/runtimeTransition.d.mts +114 -0
  297. package/dist/runtimeTransition.d.mts.map +1 -0
  298. package/dist/runtimeTransition.mjs +24 -0
  299. package/dist/runtimeTransition.mjs.map +1 -0
  300. package/dist/sandboxHarness.cjs +6 -0
  301. package/dist/sandboxHarness.d.mts +2 -0
  302. package/dist/sandboxHarness.mjs +2 -0
  303. package/dist/server.cjs +17 -0
  304. package/dist/server.d.mts +10 -0
  305. package/dist/server.mjs +7 -0
  306. package/dist/serverFacet.cjs +34 -0
  307. package/dist/serverFacet.d.mts +10 -0
  308. package/dist/serverFacet.mjs +9 -0
  309. package/dist/serverTelemetry.cjs +25 -0
  310. package/dist/serverTelemetry.cjs.map +1 -0
  311. package/dist/serverTelemetry.d.mts +12 -0
  312. package/dist/serverTelemetry.d.mts.map +1 -0
  313. package/dist/serverTelemetry.mjs +23 -0
  314. package/dist/serverTelemetry.mjs.map +1 -0
  315. package/dist/sessionFilesApi.cjs +96 -0
  316. package/dist/sessionFilesApi.cjs.map +1 -0
  317. package/dist/sessionFilesApi.d.mts +7 -0
  318. package/dist/sessionFilesApi.d.mts.map +1 -0
  319. package/dist/sessionFilesApi.mjs +91 -0
  320. package/dist/sessionFilesApi.mjs.map +1 -0
  321. package/dist/sessionMcp.cjs +6 -0
  322. package/dist/sessionMcp.d.mts +5 -0
  323. package/dist/sessionMcp.mjs +3 -0
  324. package/dist/sessionProtocol.cjs +8 -0
  325. package/dist/sessionProtocol.d.mts +3 -0
  326. package/dist/sessionProtocol.mjs +2 -0
  327. package/dist/skills.cjs +9 -0
  328. package/dist/skills.d.mts +2 -0
  329. package/dist/skills.mjs +2 -0
  330. package/dist/sqliteSessionStorage.cjs +168 -0
  331. package/dist/sqliteSessionStorage.cjs.map +1 -0
  332. package/dist/sqliteSessionStorage.d.mts +35 -0
  333. package/dist/sqliteSessionStorage.d.mts.map +1 -0
  334. package/dist/sqliteSessionStorage.mjs +158 -0
  335. package/dist/sqliteSessionStorage.mjs.map +1 -0
  336. package/dist/src/constants/authorTools.cjs +10 -0
  337. package/dist/src/constants/authorTools.cjs.map +1 -0
  338. package/dist/src/constants/authorTools.d.mts +6 -0
  339. package/dist/src/constants/authorTools.d.mts.map +1 -0
  340. package/dist/src/constants/authorTools.mjs +8 -0
  341. package/dist/src/constants/authorTools.mjs.map +1 -0
  342. package/dist/src/constants/contextApi.cjs +31 -0
  343. package/dist/src/constants/contextApi.cjs.map +1 -0
  344. package/dist/src/constants/contextApi.d.mts +23 -0
  345. package/dist/src/constants/contextApi.d.mts.map +1 -0
  346. package/dist/src/constants/contextApi.mjs +25 -0
  347. package/dist/src/constants/contextApi.mjs.map +1 -0
  348. package/dist/src/constants/nativeHost.cjs +56 -0
  349. package/dist/src/constants/nativeHost.cjs.map +1 -0
  350. package/dist/src/constants/nativeHost.d.mts +21 -0
  351. package/dist/src/constants/nativeHost.d.mts.map +1 -0
  352. package/dist/src/constants/nativeHost.mjs +53 -0
  353. package/dist/src/constants/nativeHost.mjs.map +1 -0
  354. package/dist/src/constants/remote.cjs +132 -0
  355. package/dist/src/constants/remote.cjs.map +1 -0
  356. package/dist/src/constants/remote.mjs +99 -0
  357. package/dist/src/constants/remote.mjs.map +1 -0
  358. package/dist/src/constants/sessionFiles.cjs +27 -0
  359. package/dist/src/constants/sessionFiles.cjs.map +1 -0
  360. package/dist/src/constants/sessionFiles.mjs +25 -0
  361. package/dist/src/constants/sessionFiles.mjs.map +1 -0
  362. package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
  363. package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
  364. package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
  365. package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
  366. package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
  367. package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
  368. package/dist/src/constants/voiceTools.cjs +96 -0
  369. package/dist/src/constants/voiceTools.cjs.map +1 -0
  370. package/dist/src/constants/voiceTools.d.mts +58 -0
  371. package/dist/src/constants/voiceTools.d.mts.map +1 -0
  372. package/dist/src/constants/voiceTools.mjs +60 -0
  373. package/dist/src/constants/voiceTools.mjs.map +1 -0
  374. package/dist/src/extensions/extensionFile.cjs +140 -0
  375. package/dist/src/extensions/extensionFile.cjs.map +1 -0
  376. package/dist/src/extensions/extensionFile.d.mts +69 -0
  377. package/dist/src/extensions/extensionFile.d.mts.map +1 -0
  378. package/dist/src/extensions/extensionFile.mjs +124 -0
  379. package/dist/src/extensions/extensionFile.mjs.map +1 -0
  380. package/dist/src/extensions/serverPlugin.cjs +107 -0
  381. package/dist/src/extensions/serverPlugin.cjs.map +1 -0
  382. package/dist/src/extensions/serverPlugin.d.mts +5 -0
  383. package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
  384. package/dist/src/extensions/serverPlugin.mjs +107 -0
  385. package/dist/src/extensions/serverPlugin.mjs.map +1 -0
  386. package/dist/src/extensions/webPlugin.cjs +136 -0
  387. package/dist/src/extensions/webPlugin.cjs.map +1 -0
  388. package/dist/src/extensions/webPlugin.d.mts +68 -0
  389. package/dist/src/extensions/webPlugin.d.mts.map +1 -0
  390. package/dist/src/extensions/webPlugin.mjs +114 -0
  391. package/dist/src/extensions/webPlugin.mjs.map +1 -0
  392. package/dist/src/pi/piSessionRuntime.cjs +625 -0
  393. package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
  394. package/dist/src/pi/piSessionRuntime.d.mts +43 -0
  395. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
  396. package/dist/src/pi/piSessionRuntime.mjs +624 -0
  397. package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
  398. package/dist/src/pi/piWebSocketListener.cjs +115 -0
  399. package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
  400. package/dist/src/pi/piWebSocketListener.mjs +115 -0
  401. package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
  402. package/dist/src/schemas/agentModel.cjs +33 -0
  403. package/dist/src/schemas/agentModel.cjs.map +1 -0
  404. package/dist/src/schemas/agentModel.d.mts +26 -0
  405. package/dist/src/schemas/agentModel.d.mts.map +1 -0
  406. package/dist/src/schemas/agentModel.mjs +32 -0
  407. package/dist/src/schemas/agentModel.mjs.map +1 -0
  408. package/dist/src/schemas/apiContracts.d.mts +58 -0
  409. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  410. package/dist/src/schemas/askUser.cjs +42 -0
  411. package/dist/src/schemas/askUser.cjs.map +1 -0
  412. package/dist/src/schemas/askUser.d.mts +47 -0
  413. package/dist/src/schemas/askUser.d.mts.map +1 -0
  414. package/dist/src/schemas/askUser.mjs +37 -0
  415. package/dist/src/schemas/askUser.mjs.map +1 -0
  416. package/dist/src/schemas/backgroundWork.cjs +44 -0
  417. package/dist/src/schemas/backgroundWork.cjs.map +1 -0
  418. package/dist/src/schemas/backgroundWork.d.mts +76 -0
  419. package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
  420. package/dist/src/schemas/backgroundWork.mjs +38 -0
  421. package/dist/src/schemas/backgroundWork.mjs.map +1 -0
  422. package/dist/src/schemas/childProcess.cjs +67 -0
  423. package/dist/src/schemas/childProcess.cjs.map +1 -0
  424. package/dist/src/schemas/childProcess.d.mts +30 -0
  425. package/dist/src/schemas/childProcess.d.mts.map +1 -0
  426. package/dist/src/schemas/childProcess.mjs +55 -0
  427. package/dist/src/schemas/childProcess.mjs.map +1 -0
  428. package/dist/src/schemas/cockpitContainer.cjs +31 -0
  429. package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
  430. package/dist/src/schemas/cockpitContainer.d.mts +80 -0
  431. package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
  432. package/dist/src/schemas/cockpitContainer.mjs +30 -0
  433. package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
  434. package/dist/src/schemas/contextContributions.cjs +17 -0
  435. package/dist/src/schemas/contextContributions.cjs.map +1 -0
  436. package/dist/src/schemas/contextContributions.d.mts +49 -0
  437. package/dist/src/schemas/contextContributions.d.mts.map +1 -0
  438. package/dist/src/schemas/contextContributions.mjs +15 -0
  439. package/dist/src/schemas/contextContributions.mjs.map +1 -0
  440. package/dist/src/schemas/delegation.cjs +91 -0
  441. package/dist/src/schemas/delegation.cjs.map +1 -0
  442. package/dist/src/schemas/delegation.d.mts +95 -0
  443. package/dist/src/schemas/delegation.d.mts.map +1 -0
  444. package/dist/src/schemas/delegation.mjs +76 -0
  445. package/dist/src/schemas/delegation.mjs.map +1 -0
  446. package/dist/src/schemas/extensionFile.d.mts +116 -0
  447. package/dist/src/schemas/extensionFile.d.mts.map +1 -0
  448. package/dist/src/schemas/footer.cjs +48 -0
  449. package/dist/src/schemas/footer.cjs.map +1 -0
  450. package/dist/src/schemas/footer.d.mts +48 -0
  451. package/dist/src/schemas/footer.d.mts.map +1 -0
  452. package/dist/src/schemas/footer.mjs +45 -0
  453. package/dist/src/schemas/footer.mjs.map +1 -0
  454. package/dist/src/schemas/headless.cjs +97 -0
  455. package/dist/src/schemas/headless.cjs.map +1 -0
  456. package/dist/src/schemas/headless.d.mts +472 -0
  457. package/dist/src/schemas/headless.d.mts.map +1 -0
  458. package/dist/src/schemas/headless.mjs +84 -0
  459. package/dist/src/schemas/headless.mjs.map +1 -0
  460. package/dist/src/schemas/help.cjs +281 -0
  461. package/dist/src/schemas/help.cjs.map +1 -0
  462. package/dist/src/schemas/help.d.mts +119 -0
  463. package/dist/src/schemas/help.d.mts.map +1 -0
  464. package/dist/src/schemas/help.mjs +262 -0
  465. package/dist/src/schemas/help.mjs.map +1 -0
  466. package/dist/src/schemas/hubChannel.cjs +20 -0
  467. package/dist/src/schemas/hubChannel.cjs.map +1 -0
  468. package/dist/src/schemas/hubChannel.d.mts +271 -0
  469. package/dist/src/schemas/hubChannel.d.mts.map +1 -0
  470. package/dist/src/schemas/hubChannel.mjs +19 -0
  471. package/dist/src/schemas/hubChannel.mjs.map +1 -0
  472. package/dist/src/schemas/leader.cjs +57 -0
  473. package/dist/src/schemas/leader.cjs.map +1 -0
  474. package/dist/src/schemas/leader.d.mts +107 -0
  475. package/dist/src/schemas/leader.d.mts.map +1 -0
  476. package/dist/src/schemas/leader.mjs +51 -0
  477. package/dist/src/schemas/leader.mjs.map +1 -0
  478. package/dist/src/schemas/mcpBundle.d.mts +13 -0
  479. package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
  480. package/dist/src/schemas/mcpFacet.cjs +24 -0
  481. package/dist/src/schemas/mcpFacet.cjs.map +1 -0
  482. package/dist/src/schemas/mcpFacet.d.mts +91 -0
  483. package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
  484. package/dist/src/schemas/mcpFacet.mjs +21 -0
  485. package/dist/src/schemas/mcpFacet.mjs.map +1 -0
  486. package/dist/src/schemas/mcpProjection.cjs +117 -0
  487. package/dist/src/schemas/mcpProjection.cjs.map +1 -0
  488. package/dist/src/schemas/mcpProjection.d.mts +124 -0
  489. package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
  490. package/dist/src/schemas/mcpProjection.mjs +104 -0
  491. package/dist/src/schemas/mcpProjection.mjs.map +1 -0
  492. package/dist/src/schemas/mcpSession.cjs +57 -0
  493. package/dist/src/schemas/mcpSession.cjs.map +1 -0
  494. package/dist/src/schemas/mcpSession.d.mts +57 -0
  495. package/dist/src/schemas/mcpSession.d.mts.map +1 -0
  496. package/dist/src/schemas/mcpSession.mjs +51 -0
  497. package/dist/src/schemas/mcpSession.mjs.map +1 -0
  498. package/dist/src/schemas/mcpStatus.cjs +52 -0
  499. package/dist/src/schemas/mcpStatus.cjs.map +1 -0
  500. package/dist/src/schemas/mcpStatus.d.mts +73 -0
  501. package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
  502. package/dist/src/schemas/mcpStatus.mjs +48 -0
  503. package/dist/src/schemas/mcpStatus.mjs.map +1 -0
  504. package/dist/src/schemas/mcpToolResolver.cjs +17 -0
  505. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
  506. package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
  507. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
  508. package/dist/src/schemas/mcpToolResolver.mjs +15 -0
  509. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
  510. package/dist/src/schemas/narration.cjs +54 -0
  511. package/dist/src/schemas/narration.cjs.map +1 -0
  512. package/dist/src/schemas/narration.d.mts +29 -0
  513. package/dist/src/schemas/narration.d.mts.map +1 -0
  514. package/dist/src/schemas/narration.mjs +47 -0
  515. package/dist/src/schemas/narration.mjs.map +1 -0
  516. package/dist/src/schemas/notification.cjs +122 -0
  517. package/dist/src/schemas/notification.cjs.map +1 -0
  518. package/dist/src/schemas/notification.d.mts +48 -0
  519. package/dist/src/schemas/notification.d.mts.map +1 -0
  520. package/dist/src/schemas/notification.mjs +108 -0
  521. package/dist/src/schemas/notification.mjs.map +1 -0
  522. package/dist/src/schemas/packageApi.cjs +76 -0
  523. package/dist/src/schemas/packageApi.cjs.map +1 -0
  524. package/dist/src/schemas/packageApi.d.mts +302 -0
  525. package/dist/src/schemas/packageApi.d.mts.map +1 -0
  526. package/dist/src/schemas/packageApi.mjs +66 -0
  527. package/dist/src/schemas/packageApi.mjs.map +1 -0
  528. package/dist/src/schemas/pluginContributions.cjs +19 -0
  529. package/dist/src/schemas/pluginContributions.cjs.map +1 -0
  530. package/dist/src/schemas/pluginContributions.d.mts +56 -0
  531. package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
  532. package/dist/src/schemas/pluginContributions.mjs +18 -0
  533. package/dist/src/schemas/pluginContributions.mjs.map +1 -0
  534. package/dist/src/schemas/pluginProtocol.cjs +103 -0
  535. package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
  536. package/dist/src/schemas/pluginProtocol.d.mts +70 -0
  537. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
  538. package/dist/src/schemas/pluginProtocol.mjs +96 -0
  539. package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
  540. package/dist/src/schemas/profileIdentity.cjs +67 -0
  541. package/dist/src/schemas/profileIdentity.cjs.map +1 -0
  542. package/dist/src/schemas/profileIdentity.d.mts +50 -0
  543. package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
  544. package/dist/src/schemas/profileIdentity.mjs +64 -0
  545. package/dist/src/schemas/profileIdentity.mjs.map +1 -0
  546. package/dist/src/schemas/readiness.cjs +251 -0
  547. package/dist/src/schemas/readiness.cjs.map +1 -0
  548. package/dist/src/schemas/readiness.d.mts +84 -0
  549. package/dist/src/schemas/readiness.d.mts.map +1 -0
  550. package/dist/src/schemas/readiness.mjs +246 -0
  551. package/dist/src/schemas/readiness.mjs.map +1 -0
  552. package/dist/src/schemas/sandboxHarness.cjs +29 -0
  553. package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
  554. package/dist/src/schemas/sandboxHarness.d.mts +39 -0
  555. package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
  556. package/dist/src/schemas/sandboxHarness.mjs +26 -0
  557. package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
  558. package/dist/src/schemas/serverBundle.d.mts +19 -0
  559. package/dist/src/schemas/serverBundle.d.mts.map +1 -0
  560. package/dist/src/schemas/serverFacet.cjs +111 -0
  561. package/dist/src/schemas/serverFacet.cjs.map +1 -0
  562. package/dist/src/schemas/serverFacet.d.mts +152 -0
  563. package/dist/src/schemas/serverFacet.d.mts.map +1 -0
  564. package/dist/src/schemas/serverFacet.mjs +101 -0
  565. package/dist/src/schemas/serverFacet.mjs.map +1 -0
  566. package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
  567. package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
  568. package/dist/src/schemas/sessionProtocol.cjs +17 -0
  569. package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
  570. package/dist/src/schemas/sessionProtocol.d.mts +313 -0
  571. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
  572. package/dist/src/schemas/sessionProtocol.mjs +12 -0
  573. package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
  574. package/dist/src/schemas/sessionUpdates.d.mts +34 -0
  575. package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
  576. package/dist/src/schemas/skills.cjs +115 -0
  577. package/dist/src/schemas/skills.cjs.map +1 -0
  578. package/dist/src/schemas/skills.d.mts +65 -0
  579. package/dist/src/schemas/skills.d.mts.map +1 -0
  580. package/dist/src/schemas/skills.mjs +109 -0
  581. package/dist/src/schemas/skills.mjs.map +1 -0
  582. package/dist/src/schemas/toolOverrides.cjs +17 -0
  583. package/dist/src/schemas/toolOverrides.cjs.map +1 -0
  584. package/dist/src/schemas/toolOverrides.d.mts +29 -0
  585. package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
  586. package/dist/src/schemas/toolOverrides.mjs +15 -0
  587. package/dist/src/schemas/toolOverrides.mjs.map +1 -0
  588. package/dist/src/schemas/toolSurface.cjs +17 -0
  589. package/dist/src/schemas/toolSurface.cjs.map +1 -0
  590. package/dist/src/schemas/toolSurface.d.mts +70 -0
  591. package/dist/src/schemas/toolSurface.d.mts.map +1 -0
  592. package/dist/src/schemas/toolSurface.mjs +15 -0
  593. package/dist/src/schemas/toolSurface.mjs.map +1 -0
  594. package/dist/src/schemas/uiHub.cjs +17 -0
  595. package/dist/src/schemas/uiHub.cjs.map +1 -0
  596. package/dist/src/schemas/uiHub.d.mts +23 -0
  597. package/dist/src/schemas/uiHub.d.mts.map +1 -0
  598. package/dist/src/schemas/uiHub.mjs +15 -0
  599. package/dist/src/schemas/uiHub.mjs.map +1 -0
  600. package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
  601. package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
  602. package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
  603. package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
  604. package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
  605. package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
  606. package/dist/src/schemas/voiceTools.cjs +205 -0
  607. package/dist/src/schemas/voiceTools.cjs.map +1 -0
  608. package/dist/src/schemas/voiceTools.d.mts +120 -0
  609. package/dist/src/schemas/voiceTools.d.mts.map +1 -0
  610. package/dist/src/schemas/voiceTools.mjs +194 -0
  611. package/dist/src/schemas/voiceTools.mjs.map +1 -0
  612. package/dist/src/server/devProxyForward.cjs +141 -0
  613. package/dist/src/server/devProxyForward.cjs.map +1 -0
  614. package/dist/src/server/devProxyForward.mjs +139 -0
  615. package/dist/src/server/devProxyForward.mjs.map +1 -0
  616. package/dist/src/server/devProxyRoutes.cjs +97 -0
  617. package/dist/src/server/devProxyRoutes.cjs.map +1 -0
  618. package/dist/src/server/devProxyRoutes.mjs +97 -0
  619. package/dist/src/server/devProxyRoutes.mjs.map +1 -0
  620. package/dist/src/server/devProxySocket.cjs +93 -0
  621. package/dist/src/server/devProxySocket.cjs.map +1 -0
  622. package/dist/src/server/devProxySocket.d.mts +25 -0
  623. package/dist/src/server/devProxySocket.d.mts.map +1 -0
  624. package/dist/src/server/devProxySocket.mjs +93 -0
  625. package/dist/src/server/devProxySocket.mjs.map +1 -0
  626. package/dist/src/server/directHarnessRuntime.cjs +2387 -0
  627. package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
  628. package/dist/src/server/directHarnessRuntime.d.mts +4 -0
  629. package/dist/src/server/directHarnessRuntime.mjs +2384 -0
  630. package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
  631. package/dist/src/server/harnessErrorMessage.cjs +13 -0
  632. package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
  633. package/dist/src/server/harnessErrorMessage.mjs +13 -0
  634. package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
  635. package/dist/src/server/headlessProtocol.cjs +382 -0
  636. package/dist/src/server/headlessProtocol.cjs.map +1 -0
  637. package/dist/src/server/headlessProtocol.mjs +382 -0
  638. package/dist/src/server/headlessProtocol.mjs.map +1 -0
  639. package/dist/src/server/liveImport.cjs +37 -0
  640. package/dist/src/server/liveImport.cjs.map +1 -0
  641. package/dist/src/server/liveImport.d.mts +27 -0
  642. package/dist/src/server/liveImport.d.mts.map +1 -0
  643. package/dist/src/server/liveImport.mjs +34 -0
  644. package/dist/src/server/liveImport.mjs.map +1 -0
  645. package/dist/src/server/mcpBundleLoader.cjs +108 -0
  646. package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
  647. package/dist/src/server/mcpBundleLoader.d.mts +46 -0
  648. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
  649. package/dist/src/server/mcpBundleLoader.mjs +107 -0
  650. package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
  651. package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
  652. package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
  653. package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
  654. package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
  655. package/dist/src/server/remoteRoutes.cjs +463 -0
  656. package/dist/src/server/remoteRoutes.cjs.map +1 -0
  657. package/dist/src/server/remoteRoutes.mjs +463 -0
  658. package/dist/src/server/remoteRoutes.mjs.map +1 -0
  659. package/dist/src/server/serverFacetLoader.cjs +214 -0
  660. package/dist/src/server/serverFacetLoader.cjs.map +1 -0
  661. package/dist/src/server/serverFacetLoader.d.mts +72 -0
  662. package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
  663. package/dist/src/server/serverFacetLoader.mjs +212 -0
  664. package/dist/src/server/serverFacetLoader.mjs.map +1 -0
  665. package/dist/src/server/sessionMcpHandler.cjs +585 -0
  666. package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
  667. package/dist/src/server/sessionMcpHandler.d.mts +50 -0
  668. package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
  669. package/dist/src/server/sessionMcpHandler.mjs +582 -0
  670. package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
  671. package/dist/src/server/sessionMcpRoutes.cjs +809 -0
  672. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
  673. package/dist/src/server/sessionMcpRoutes.mjs +804 -0
  674. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
  675. package/dist/src/server/threadJournals.cjs +172 -0
  676. package/dist/src/server/threadJournals.cjs.map +1 -0
  677. package/dist/src/server/threadJournals.mjs +169 -0
  678. package/dist/src/server/threadJournals.mjs.map +1 -0
  679. package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
  680. package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
  681. package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
  682. package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
  683. package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
  684. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
  685. package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
  686. package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
  687. package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
  688. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
  689. package/dist/src/services/bundlePublication/index.cjs +89 -0
  690. package/dist/src/services/bundlePublication/index.cjs.map +1 -0
  691. package/dist/src/services/bundlePublication/index.mjs +86 -0
  692. package/dist/src/services/bundlePublication/index.mjs.map +1 -0
  693. package/dist/src/services/contextApiUrls/index.cjs +53 -0
  694. package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
  695. package/dist/src/services/contextApiUrls/index.d.mts +8 -0
  696. package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
  697. package/dist/src/services/contextApiUrls/index.mjs +52 -0
  698. package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
  699. package/dist/src/services/contextContributions/index.cjs +79 -0
  700. package/dist/src/services/contextContributions/index.cjs.map +1 -0
  701. package/dist/src/services/contextContributions/index.d.mts +6 -0
  702. package/dist/src/services/contextContributions/index.d.mts.map +1 -0
  703. package/dist/src/services/contextContributions/index.mjs +79 -0
  704. package/dist/src/services/contextContributions/index.mjs.map +1 -0
  705. package/dist/src/services/contextUsage/index.cjs +27 -0
  706. package/dist/src/services/contextUsage/index.cjs.map +1 -0
  707. package/dist/src/services/contextUsage/index.mjs +25 -0
  708. package/dist/src/services/contextUsage/index.mjs.map +1 -0
  709. package/dist/src/services/devProxyPolicy/index.cjs +168 -0
  710. package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
  711. package/dist/src/services/devProxyPolicy/index.mjs +165 -0
  712. package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
  713. package/dist/src/services/devProxyStore/index.cjs +107 -0
  714. package/dist/src/services/devProxyStore/index.cjs.map +1 -0
  715. package/dist/src/services/devProxyStore/index.mjs +104 -0
  716. package/dist/src/services/devProxyStore/index.mjs.map +1 -0
  717. package/dist/src/services/deviceAuth/index.cjs +146 -0
  718. package/dist/src/services/deviceAuth/index.cjs.map +1 -0
  719. package/dist/src/services/deviceAuth/index.d.mts +9 -0
  720. package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
  721. package/dist/src/services/deviceAuth/index.mjs +146 -0
  722. package/dist/src/services/deviceAuth/index.mjs.map +1 -0
  723. package/dist/src/services/deviceSessions/index.cjs +147 -0
  724. package/dist/src/services/deviceSessions/index.cjs.map +1 -0
  725. package/dist/src/services/deviceSessions/index.d.mts +18 -0
  726. package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
  727. package/dist/src/services/deviceSessions/index.mjs +141 -0
  728. package/dist/src/services/deviceSessions/index.mjs.map +1 -0
  729. package/dist/src/services/deviceTrust/index.cjs +294 -0
  730. package/dist/src/services/deviceTrust/index.cjs.map +1 -0
  731. package/dist/src/services/deviceTrust/index.mjs +282 -0
  732. package/dist/src/services/deviceTrust/index.mjs.map +1 -0
  733. package/dist/src/services/durableNavigation/index.cjs +46 -0
  734. package/dist/src/services/durableNavigation/index.cjs.map +1 -0
  735. package/dist/src/services/durableNavigation/index.mjs +45 -0
  736. package/dist/src/services/durableNavigation/index.mjs.map +1 -0
  737. package/dist/src/services/headlessClient/index.cjs +126 -0
  738. package/dist/src/services/headlessClient/index.cjs.map +1 -0
  739. package/dist/src/services/headlessClient/index.mjs +126 -0
  740. package/dist/src/services/headlessClient/index.mjs.map +1 -0
  741. package/dist/src/services/historyImport/index.cjs +8 -0
  742. package/dist/src/services/historyImport/index.cjs.map +1 -0
  743. package/dist/src/services/historyImport/index.d.mts +68 -0
  744. package/dist/src/services/historyImport/index.d.mts.map +1 -0
  745. package/dist/src/services/historyImport/index.mjs +8 -0
  746. package/dist/src/services/historyImport/index.mjs.map +1 -0
  747. package/dist/src/services/hubChannelHarness/index.cjs +50 -0
  748. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
  749. package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
  750. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
  751. package/dist/src/services/hubChannelHarness/index.mjs +50 -0
  752. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
  753. package/dist/src/services/kernel/index.cjs +147 -0
  754. package/dist/src/services/kernel/index.cjs.map +1 -0
  755. package/dist/src/services/kernel/index.d.mts +9 -0
  756. package/dist/src/services/kernel/index.d.mts.map +1 -0
  757. package/dist/src/services/kernel/index.mjs +147 -0
  758. package/dist/src/services/kernel/index.mjs.map +1 -0
  759. package/dist/src/services/loginFlow/index.cjs +131 -0
  760. package/dist/src/services/loginFlow/index.cjs.map +1 -0
  761. package/dist/src/services/loginFlow/index.mjs +131 -0
  762. package/dist/src/services/loginFlow/index.mjs.map +1 -0
  763. package/dist/src/services/loopbackAddress/index.cjs +58 -0
  764. package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
  765. package/dist/src/services/loopbackAddress/index.mjs +56 -0
  766. package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
  767. package/dist/src/services/openSessionRegistry/index.cjs +134 -0
  768. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
  769. package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
  770. package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
  771. package/dist/src/services/openSessionRegistry/index.mjs +131 -0
  772. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
  773. package/dist/src/services/packageApiHarness/index.cjs +36 -0
  774. package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
  775. package/dist/src/services/packageApiHarness/index.d.mts +40 -0
  776. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
  777. package/dist/src/services/packageApiHarness/index.mjs +36 -0
  778. package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
  779. package/dist/src/services/packageResource/index.cjs +54 -0
  780. package/dist/src/services/packageResource/index.cjs.map +1 -0
  781. package/dist/src/services/packageResource/index.d.mts +26 -0
  782. package/dist/src/services/packageResource/index.d.mts.map +1 -0
  783. package/dist/src/services/packageResource/index.mjs +51 -0
  784. package/dist/src/services/packageResource/index.mjs.map +1 -0
  785. package/dist/src/services/pairingFlow/index.cjs +145 -0
  786. package/dist/src/services/pairingFlow/index.cjs.map +1 -0
  787. package/dist/src/services/pairingFlow/index.d.mts +44 -0
  788. package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
  789. package/dist/src/services/pairingFlow/index.mjs +145 -0
  790. package/dist/src/services/pairingFlow/index.mjs.map +1 -0
  791. package/dist/src/services/pairingPage/index.cjs +450 -0
  792. package/dist/src/services/pairingPage/index.cjs.map +1 -0
  793. package/dist/src/services/pairingPage/index.mjs +447 -0
  794. package/dist/src/services/pairingPage/index.mjs.map +1 -0
  795. package/dist/src/services/piExtensionHost/index.cjs +889 -0
  796. package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
  797. package/dist/src/services/piExtensionHost/index.mjs +885 -0
  798. package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
  799. package/dist/src/services/piHelpTools/index.cjs +68 -0
  800. package/dist/src/services/piHelpTools/index.cjs.map +1 -0
  801. package/dist/src/services/piHelpTools/index.d.mts +10 -0
  802. package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
  803. package/dist/src/services/piHelpTools/index.mjs +68 -0
  804. package/dist/src/services/piHelpTools/index.mjs.map +1 -0
  805. package/dist/src/services/piSessionEntries/index.cjs +121 -0
  806. package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
  807. package/dist/src/services/piSessionEntries/index.mjs +117 -0
  808. package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
  809. package/dist/src/services/pluginLifecycle/index.cjs +71 -0
  810. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
  811. package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
  812. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
  813. package/dist/src/services/pluginLifecycle/index.mjs +71 -0
  814. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
  815. package/dist/src/services/providerAuth/index.cjs +156 -0
  816. package/dist/src/services/providerAuth/index.cjs.map +1 -0
  817. package/dist/src/services/providerAuth/index.mjs +154 -0
  818. package/dist/src/services/providerAuth/index.mjs.map +1 -0
  819. package/dist/src/services/publicFileShares/index.cjs +192 -0
  820. package/dist/src/services/publicFileShares/index.cjs.map +1 -0
  821. package/dist/src/services/publicFileShares/index.d.mts +16 -0
  822. package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
  823. package/dist/src/services/publicFileShares/index.mjs +188 -0
  824. package/dist/src/services/publicFileShares/index.mjs.map +1 -0
  825. package/dist/src/services/remoteAccess/index.cjs +567 -0
  826. package/dist/src/services/remoteAccess/index.cjs.map +1 -0
  827. package/dist/src/services/remoteAccess/index.d.mts +121 -0
  828. package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
  829. package/dist/src/services/remoteAccess/index.mjs +567 -0
  830. package/dist/src/services/remoteAccess/index.mjs.map +1 -0
  831. package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
  832. package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
  833. package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
  834. package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
  835. package/dist/src/services/remoteAccessStore/index.cjs +197 -0
  836. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
  837. package/dist/src/services/remoteAccessStore/index.mjs +192 -0
  838. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
  839. package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
  840. package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
  841. package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
  842. package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
  843. package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
  844. package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
  845. package/dist/src/services/requestReceipts/index.cjs +167 -0
  846. package/dist/src/services/requestReceipts/index.cjs.map +1 -0
  847. package/dist/src/services/requestReceipts/index.d.mts +11 -0
  848. package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
  849. package/dist/src/services/requestReceipts/index.mjs +167 -0
  850. package/dist/src/services/requestReceipts/index.mjs.map +1 -0
  851. package/dist/src/services/rpcTranscript/index.cjs +633 -0
  852. package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
  853. package/dist/src/services/rpcTranscript/index.d.mts +50 -0
  854. package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
  855. package/dist/src/services/rpcTranscript/index.mjs +632 -0
  856. package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
  857. package/dist/src/services/serverFacet/index.cjs +197 -0
  858. package/dist/src/services/serverFacet/index.cjs.map +1 -0
  859. package/dist/src/services/serverFacet/index.d.mts +31 -0
  860. package/dist/src/services/serverFacet/index.d.mts.map +1 -0
  861. package/dist/src/services/serverFacet/index.mjs +197 -0
  862. package/dist/src/services/serverFacet/index.mjs.map +1 -0
  863. package/dist/src/services/sessionAttachments/index.cjs +111 -0
  864. package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
  865. package/dist/src/services/sessionAttachments/index.d.mts +11 -0
  866. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
  867. package/dist/src/services/sessionAttachments/index.mjs +107 -0
  868. package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
  869. package/dist/src/services/sessionGitStatus/index.cjs +46 -0
  870. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
  871. package/dist/src/services/sessionGitStatus/index.mjs +46 -0
  872. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
  873. package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
  874. package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
  875. package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
  876. package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
  877. package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
  878. package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
  879. package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
  880. package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
  881. package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
  882. package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
  883. package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
  884. package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
  885. package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
  886. package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
  887. package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
  888. package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
  889. package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
  890. package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
  891. package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
  892. package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
  893. package/dist/src/services/sessionPresentation/index.cjs +120 -0
  894. package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
  895. package/dist/src/services/sessionPresentation/index.mjs +120 -0
  896. package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
  897. package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
  898. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
  899. package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
  900. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
  901. package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
  902. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
  903. package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
  904. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
  905. package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
  906. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
  907. package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
  908. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
  909. package/dist/src/services/toolCost/index.cjs +47 -0
  910. package/dist/src/services/toolCost/index.cjs.map +1 -0
  911. package/dist/src/services/toolCost/index.d.mts +38 -0
  912. package/dist/src/services/toolCost/index.d.mts.map +1 -0
  913. package/dist/src/services/toolCost/index.mjs +46 -0
  914. package/dist/src/services/toolCost/index.mjs.map +1 -0
  915. package/dist/src/services/toolOverrides/index.cjs +45 -0
  916. package/dist/src/services/toolOverrides/index.cjs.map +1 -0
  917. package/dist/src/services/toolOverrides/index.d.mts +6 -0
  918. package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
  919. package/dist/src/services/toolOverrides/index.mjs +45 -0
  920. package/dist/src/services/toolOverrides/index.mjs.map +1 -0
  921. package/dist/src/services/toolPrompt/index.cjs +13 -0
  922. package/dist/src/services/toolPrompt/index.cjs.map +1 -0
  923. package/dist/src/services/toolPrompt/index.mjs +13 -0
  924. package/dist/src/services/toolPrompt/index.mjs.map +1 -0
  925. package/dist/src/services/toolSurface/index.cjs +134 -0
  926. package/dist/src/services/toolSurface/index.cjs.map +1 -0
  927. package/dist/src/services/toolSurface/index.d.mts +19 -0
  928. package/dist/src/services/toolSurface/index.d.mts.map +1 -0
  929. package/dist/src/services/toolSurface/index.mjs +134 -0
  930. package/dist/src/services/toolSurface/index.mjs.map +1 -0
  931. package/dist/src/services/traceContext/index.cjs +13 -0
  932. package/dist/src/services/traceContext/index.cjs.map +1 -0
  933. package/dist/src/services/traceContext/index.mjs +13 -0
  934. package/dist/src/services/traceContext/index.mjs.map +1 -0
  935. package/dist/src/services/transcriptPages/index.cjs +117 -0
  936. package/dist/src/services/transcriptPages/index.cjs.map +1 -0
  937. package/dist/src/services/transcriptPages/index.mjs +115 -0
  938. package/dist/src/services/transcriptPages/index.mjs.map +1 -0
  939. package/dist/src/services/tunnelOutput/index.cjs +58 -0
  940. package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
  941. package/dist/src/services/tunnelOutput/index.mjs +54 -0
  942. package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
  943. package/dist/src/services/tunnelProcess/index.cjs +487 -0
  944. package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
  945. package/dist/src/services/tunnelProcess/index.mjs +481 -0
  946. package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
  947. package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
  948. package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
  949. package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
  950. package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
  951. package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
  952. package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
  953. package/dist/src/services/voiceToolsContract/index.cjs +26 -0
  954. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
  955. package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
  956. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
  957. package/dist/src/services/voiceToolsContract/index.mjs +24 -0
  958. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
  959. package/dist/src/services/webauthn/index.cjs +262 -0
  960. package/dist/src/services/webauthn/index.cjs.map +1 -0
  961. package/dist/src/services/webauthn/index.d.mts +39 -0
  962. package/dist/src/services/webauthn/index.d.mts.map +1 -0
  963. package/dist/src/services/webauthn/index.mjs +262 -0
  964. package/dist/src/services/webauthn/index.mjs.map +1 -0
  965. package/dist/src/services/webauthnPolicy/index.cjs +174 -0
  966. package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
  967. package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
  968. package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
  969. package/dist/src/services/webauthnPolicy/index.mjs +167 -0
  970. package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
  971. package/dist/src/services/workspaceRegistry/index.cjs +187 -0
  972. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
  973. package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
  974. package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
  975. package/dist/src/services/workspaceRegistry/index.mjs +179 -0
  976. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
  977. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
  978. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  979. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
  980. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  981. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
  982. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  983. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  984. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  985. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  986. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  987. package/dist/src/systems/child/services/childSession/index.cjs +219 -0
  988. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
  989. package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
  990. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
  991. package/dist/src/systems/child/services/childSession/index.mjs +219 -0
  992. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
  993. package/dist/src/systems/child/types/childSession.cjs +21 -0
  994. package/dist/src/systems/child/types/childSession.cjs.map +1 -0
  995. package/dist/src/systems/child/types/childSession.d.mts +182 -0
  996. package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
  997. package/dist/src/systems/child/types/childSession.mjs +17 -0
  998. package/dist/src/systems/child/types/childSession.mjs.map +1 -0
  999. package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
  1000. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
  1001. package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
  1002. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1003. package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
  1004. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
  1005. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
  1006. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1007. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
  1008. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1009. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
  1010. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1011. package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
  1012. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
  1013. package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
  1014. package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
  1015. package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
  1016. package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
  1017. package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
  1018. package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
  1019. package/dist/src/testing/pi/testHost.cjs +399 -0
  1020. package/dist/src/testing/pi/testHost.cjs.map +1 -0
  1021. package/dist/src/testing/pi/testHost.d.mts +160 -0
  1022. package/dist/src/testing/pi/testHost.d.mts.map +1 -0
  1023. package/dist/src/testing/pi/testHost.mjs +399 -0
  1024. package/dist/src/testing/pi/testHost.mjs.map +1 -0
  1025. package/dist/src/types/config.d.mts +20 -0
  1026. package/dist/src/types/config.d.mts.map +1 -0
  1027. package/dist/src/types/kernel.d.mts +69 -0
  1028. package/dist/src/types/kernel.d.mts.map +1 -0
  1029. package/dist/src/types/remote.d.mts +152 -0
  1030. package/dist/src/types/remote.d.mts.map +1 -0
  1031. package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
  1032. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
  1033. package/dist/src/types/server/session.d.mts +5 -0
  1034. package/dist/src/types/server/session.d.mts.map +1 -0
  1035. package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
  1036. package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
  1037. package/dist/src/web/models/globalStore.cjs +23 -0
  1038. package/dist/src/web/models/globalStore.cjs.map +1 -0
  1039. package/dist/src/web/models/globalStore.d.mts +6 -0
  1040. package/dist/src/web/models/globalStore.d.mts.map +1 -0
  1041. package/dist/src/web/models/globalStore.mjs +23 -0
  1042. package/dist/src/web/models/globalStore.mjs.map +1 -0
  1043. package/dist/src/web/models/sessionStore.cjs +56 -0
  1044. package/dist/src/web/models/sessionStore.cjs.map +1 -0
  1045. package/dist/src/web/models/sessionStore.d.mts +14 -0
  1046. package/dist/src/web/models/sessionStore.d.mts.map +1 -0
  1047. package/dist/src/web/models/sessionStore.mjs +56 -0
  1048. package/dist/src/web/models/sessionStore.mjs.map +1 -0
  1049. package/dist/src/web/models/workspaceStore.cjs +50 -0
  1050. package/dist/src/web/models/workspaceStore.cjs.map +1 -0
  1051. package/dist/src/web/models/workspaceStore.d.mts +18 -0
  1052. package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
  1053. package/dist/src/web/models/workspaceStore.mjs +50 -0
  1054. package/dist/src/web/models/workspaceStore.mjs.map +1 -0
  1055. package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
  1056. package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1057. package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1058. package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1059. package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
  1060. package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1061. package/dist/src/web/schemas/template.cjs +35 -0
  1062. package/dist/src/web/schemas/template.cjs.map +1 -0
  1063. package/dist/src/web/schemas/template.d.mts +9 -0
  1064. package/dist/src/web/schemas/template.d.mts.map +1 -0
  1065. package/dist/src/web/schemas/template.mjs +34 -0
  1066. package/dist/src/web/schemas/template.mjs.map +1 -0
  1067. package/dist/src/web/services/apiClient/index.cjs +156 -0
  1068. package/dist/src/web/services/apiClient/index.cjs.map +1 -0
  1069. package/dist/src/web/services/apiClient/index.d.mts +152 -0
  1070. package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
  1071. package/dist/src/web/services/apiClient/index.mjs +154 -0
  1072. package/dist/src/web/services/apiClient/index.mjs.map +1 -0
  1073. package/dist/src/web/services/apiPaths/index.cjs +83 -0
  1074. package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
  1075. package/dist/src/web/services/apiPaths/index.d.mts +81 -0
  1076. package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
  1077. package/dist/src/web/services/apiPaths/index.mjs +78 -0
  1078. package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
  1079. package/dist/src/web/services/apiRoutes/index.cjs +47 -0
  1080. package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
  1081. package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
  1082. package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
  1083. package/dist/src/web/services/apiRoutes/index.mjs +43 -0
  1084. package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
  1085. package/dist/src/web/services/mcpWidget.cjs +9 -0
  1086. package/dist/src/web/services/mcpWidget.cjs.map +1 -0
  1087. package/dist/src/web/services/mcpWidget.d.mts +6 -0
  1088. package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
  1089. package/dist/src/web/services/mcpWidget.mjs +9 -0
  1090. package/dist/src/web/services/mcpWidget.mjs.map +1 -0
  1091. package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
  1092. package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
  1093. package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
  1094. package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
  1095. package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
  1096. package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
  1097. package/dist/src/web/services/testing/channels.cjs +11 -0
  1098. package/dist/src/web/services/testing/channels.cjs.map +1 -0
  1099. package/dist/src/web/services/testing/channels.d.mts +8 -0
  1100. package/dist/src/web/services/testing/channels.d.mts.map +1 -0
  1101. package/dist/src/web/services/testing/channels.mjs +11 -0
  1102. package/dist/src/web/services/testing/channels.mjs.map +1 -0
  1103. package/dist/src/web/services/testing/index.cjs +27 -0
  1104. package/dist/src/web/services/testing/index.cjs.map +1 -0
  1105. package/dist/src/web/services/testing/index.d.mts +31 -0
  1106. package/dist/src/web/services/testing/index.d.mts.map +1 -0
  1107. package/dist/src/web/services/testing/index.mjs +27 -0
  1108. package/dist/src/web/services/testing/index.mjs.map +1 -0
  1109. package/dist/src/web/services/testing/rpcStub.cjs +58 -0
  1110. package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
  1111. package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
  1112. package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
  1113. package/dist/src/web/services/testing/rpcStub.mjs +58 -0
  1114. package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
  1115. package/dist/src/web/services/testing/slotProps.cjs +97 -0
  1116. package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
  1117. package/dist/src/web/services/testing/slotProps.d.mts +69 -0
  1118. package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
  1119. package/dist/src/web/services/testing/slotProps.mjs +96 -0
  1120. package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
  1121. package/dist/src/web/services/testing/templateRail.cjs +156 -0
  1122. package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
  1123. package/dist/src/web/services/testing/templateRail.d.mts +32 -0
  1124. package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
  1125. package/dist/src/web/services/testing/templateRail.mjs +154 -0
  1126. package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
  1127. package/dist/src/web/services/toolResult/index.cjs +30 -0
  1128. package/dist/src/web/services/toolResult/index.cjs.map +1 -0
  1129. package/dist/src/web/services/toolResult/index.d.mts +14 -0
  1130. package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
  1131. package/dist/src/web/services/toolResult/index.mjs +29 -0
  1132. package/dist/src/web/services/toolResult/index.mjs.map +1 -0
  1133. package/dist/src/web/types/extensionFile.d.mts +62 -0
  1134. package/dist/src/web/types/extensionFile.d.mts.map +1 -0
  1135. package/dist/src/web/types/mcpWidget.d.mts +14 -0
  1136. package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  1137. package/dist/src/web/types/modelContext.d.mts +43 -0
  1138. package/dist/src/web/types/modelContext.d.mts.map +1 -0
  1139. package/dist/src/web/types/nativeTemplate.d.mts +29 -0
  1140. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
  1141. package/dist/src/web/types/sessionRegistry.d.mts +46 -0
  1142. package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
  1143. package/dist/src/web/types/template.d.mts +135 -0
  1144. package/dist/src/web/types/template.d.mts.map +1 -0
  1145. package/dist/src/web/types/webPlugin.d.mts +915 -0
  1146. package/dist/src/web/types/webPlugin.d.mts.map +1 -0
  1147. package/dist/terminalPiChildSessionService.cjs +324 -0
  1148. package/dist/terminalPiChildSessionService.cjs.map +1 -0
  1149. package/dist/terminalPiChildSessionService.d.mts +46 -0
  1150. package/dist/terminalPiChildSessionService.d.mts.map +1 -0
  1151. package/dist/terminalPiChildSessionService.mjs +318 -0
  1152. package/dist/terminalPiChildSessionService.mjs.map +1 -0
  1153. package/dist/testing.cjs +11 -0
  1154. package/dist/testing.d.mts +6 -0
  1155. package/dist/testing.mjs +6 -0
  1156. package/dist/toolInventory.cjs +136 -0
  1157. package/dist/toolInventory.cjs.map +1 -0
  1158. package/dist/toolInventory.d.mts +66 -0
  1159. package/dist/toolInventory.d.mts.map +1 -0
  1160. package/dist/toolInventory.mjs +133 -0
  1161. package/dist/toolInventory.mjs.map +1 -0
  1162. package/dist/toolNames.cjs +4 -0
  1163. package/dist/toolNames.d.mts +2 -0
  1164. package/dist/toolNames.mjs +2 -0
  1165. package/dist/toolOverrides.cjs +7 -0
  1166. package/dist/toolOverrides.d.mts +3 -0
  1167. package/dist/toolOverrides.mjs +3 -0
  1168. package/dist/toolSurface.cjs +7 -0
  1169. package/dist/toolSurface.d.mts +3 -0
  1170. package/dist/toolSurface.mjs +3 -0
  1171. package/dist/transition.cjs +5 -0
  1172. package/dist/transition.d.cjs +5 -0
  1173. package/dist/transition.d.mts +2 -0
  1174. package/dist/transition.mjs +2 -0
  1175. package/dist/transitionClassifier.cjs +112 -0
  1176. package/dist/transitionClassifier.cjs.map +1 -0
  1177. package/dist/transitionClassifier.d.mts +18 -0
  1178. package/dist/transitionClassifier.d.mts.map +1 -0
  1179. package/dist/transitionClassifier.mjs +111 -0
  1180. package/dist/transitionClassifier.mjs.map +1 -0
  1181. package/dist/transitionCoordinator.cjs +131 -0
  1182. package/dist/transitionCoordinator.cjs.map +1 -0
  1183. package/dist/transitionCoordinator.d.mts +16 -0
  1184. package/dist/transitionCoordinator.d.mts.map +1 -0
  1185. package/dist/transitionCoordinator.mjs +130 -0
  1186. package/dist/transitionCoordinator.mjs.map +1 -0
  1187. package/dist/typesContextApi.cjs +0 -0
  1188. package/dist/typesContextApi.d.mts +79 -0
  1189. package/dist/typesContextApi.d.mts.map +1 -0
  1190. package/dist/typesContextApi.mjs +1 -0
  1191. package/dist/uiHub.cjs +5 -0
  1192. package/dist/uiHub.d.mts +2 -0
  1193. package/dist/uiHub.mjs +2 -0
  1194. package/dist/v3Export.cjs +10 -0
  1195. package/dist/v3Export.cjs.map +1 -0
  1196. package/dist/v3Export.d.mts +35 -0
  1197. package/dist/v3Export.d.mts.map +1 -0
  1198. package/dist/v3Export.mjs +9 -0
  1199. package/dist/v3Export.mjs.map +1 -0
  1200. package/dist/voiceReloadHandoff.cjs +14 -0
  1201. package/dist/voiceReloadHandoff.d.mts +4 -0
  1202. package/dist/voiceReloadHandoff.mjs +4 -0
  1203. package/dist/voiceTools.cjs +56 -0
  1204. package/dist/voiceTools.d.mts +4 -0
  1205. package/dist/voiceTools.mjs +4 -0
  1206. package/dist/web.cjs +65 -0
  1207. package/dist/web.d.mts +20 -0
  1208. package/dist/web.mjs +13 -0
  1209. package/dist/webCompositions.cjs +181 -0
  1210. package/dist/webCompositions.cjs.map +1 -0
  1211. package/dist/webCompositions.d.mts +79 -0
  1212. package/dist/webCompositions.d.mts.map +1 -0
  1213. package/dist/webCompositions.mjs +174 -0
  1214. package/dist/webCompositions.mjs.map +1 -0
  1215. package/dist/webTesting.cjs +14 -0
  1216. package/dist/webTesting.d.mts +6 -0
  1217. package/dist/webTesting.mjs +6 -0
  1218. package/package.json +586 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directHarnessRuntime.cjs","names":["defineDoc","projectDurableEntries","BACKGROUND_CONTEXT","openSqliteSessionStorage","createRegistry","NodeExecutionEnv","createModels","createAssistantMessageEventStream","awaitWithContext","formatSkillsForSystemPrompt","hook","GenerationTask","LiveDoc","getCurrentSystemPrompt","isDeepStrictEqual","getCurrentTools","convertToLlm","ToolTask","CompactionTask","Harness","initializeDurableNavigation","AgentDoc","SessionIdentityDoc","randomUUID","SessionMetadataDoc","watchEvents","InboxDoc","UserEntry","DoomHeadlessToolBusyError","withAbortSignal","contextUsageOf","contextTokensOf","latestAssistantUsage","UsageDoc","getSupportedThinkingLevels","navigateDurableConversation","released"],"sources":["../../../src/server/directHarnessRuntime.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { isDeepStrictEqual } from 'node:util';\n\nimport type { Context, JsonValue } from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT, awaitWithContext, withAbortSignal } from '@earendil-works/chord/context';\nimport {\n createModels,\n getSupportedThinkingLevels,\n createAssistantMessageEventStream,\n type AssistantMessageEventStream,\n type Models,\n type MutableModels,\n type Api,\n type Model,\n type ImageContent,\n type Message,\n type Provider,\n type AssistantMessage,\n type ToolResultMessage,\n} from '@earendil-works/pi-ai';\nimport { getCurrentSystemPrompt, getCurrentTools } from '@earendil-works/pi-ai/utils/transcript';\nimport { convertToLlm } from '@earendil-works/pi-coding-agent';\nimport {\n Harness,\n createRegistry,\n defineDoc,\n GenerationTask,\n ToolTask,\n CompactionTask,\n hook,\n watchEvents,\n UsageDoc,\n LiveDoc,\n InboxDoc,\n AgentDoc,\n UserEntry,\n type Tx,\n type CompactionResult,\n type TaskId,\n type Conversation,\n type Cursor,\n type EntryRecord,\n type EntryId,\n type SubmissionId,\n type HarnessSettings,\n type ToolRegistration,\n type AgentEventStream,\n} from '@earendil-works/pi-durable';\nimport { NodeExecutionEnv } from '@earendil-works/pi-durable/env/node';\n\nimport { DoomHeadlessToolBusyError } from '../schemas/headless';\nimport { contextTokensOf, contextUsageOf, latestAssistantUsage } from '../services/contextUsage';\nimport { initializeDurableNavigation, navigateDurableConversation } from '../services/durableNavigation';\nimport { formatSkillsForSystemPrompt } from '../services/piExtensionHost';\nimport { openSqliteSessionStorage, SessionIdentityDoc, SessionMetadataDoc } from '../services/sqliteSessionStorage';\nimport { projectDurableEntries } from '../services/transcriptPages';\nimport type {\n DirectHarnessRuntime,\n DirectHarnessRuntimeOptions,\n DirectHarnessFrame,\n DirectHarnessEventListener,\n DirectHarnessLifecycle,\n DirectHarnessQueuedInput,\n Entry,\n AgentHarnessTool,\n AgentMessage,\n HarnessEvent,\n} from '../types/server/directHarnessRuntime';\n\nexport const AGENT_SETTLED_ENTRY_TYPE = 'po.agent-settled';\nconst LifecycleDoc = defineDoc({\n kind: 'po.server.lifecycle',\n version: 1,\n scope: 'session',\n initial: () => ({ json: '{\"revision\":0,\"paused\":false,\"queue\":[]}' }),\n});\nconst FastModeDoc = defineDoc({\n kind: 'po.fast-mode',\n version: 1,\n scope: 'session',\n initial: (): { enabled: boolean } => ({ enabled: false }),\n});\n// Blocks local agent turns so a remote MCP agent can work without the local model acting.\nconst AgentLockDoc = defineDoc({\n kind: 'po.agent-lock',\n version: 1,\n scope: 'session',\n initial: (): { locked: boolean } => ({ locked: false }),\n});\nconst AGENT_LOCKED_ERROR = 'The local agent is locked. Unlock it to start a turn.';\nconst CODEX_API = 'openai-codex-responses';\nconst CODEX_PROVIDER = 'openai-codex';\nconst LabelsDoc = defineDoc({\n kind: 'po.labels',\n version: 1,\n scope: 'session',\n initial: () => ({ labels: {} as Record<string, string> }),\n});\ntype Retained = Omit<DirectHarnessQueuedInput, 'disposition'> & {\n disposition: DirectHarnessQueuedInput['disposition'] | 'consumed' | 'removed';\n // Older records have unknown provenance and remain retained, not queue-owned.\n explicitQueue?: boolean;\n attempt?: number;\n submissionMode?: 'steer' | 'followUp' | 'reject' | 'write';\n} & { submissionId?: number; conversationId?: number; message?: AgentMessage; operationId?: string };\ntype InternalDeliveryRecord = { message: AgentMessage; conversationId: number; submissionId?: number };\ntype LifecycleRecord = {\n revision: number;\n paused: boolean;\n abortOperationId?: string;\n abortTaskId?: number;\n queue: Retained[];\n internalDeliveries?: Record<string, InternalDeliveryRecord>;\n};\n\nfunction nativeId<T extends number>(id: string): T {\n const value = Number(id);\n if (!Number.isSafeInteger(value) || value < 0 || String(value) !== id)\n throw new Error(`Invalid durable identifier: ${id}`);\n return value as T;\n}\nfunction json(value: unknown): JsonValue {\n return JSON.parse(JSON.stringify(value)) as JsonValue;\n}\nfunction text(message: string | AgentMessage): string {\n if (typeof message === 'string') return message;\n if (!('content' in message))\n return 'summary' in message ? message.summary : 'output' in message ? message.output : '';\n return typeof message.content === 'string'\n ? message.content\n : message.content.map((p) => (p.type === 'text' ? p.text : '')).join('');\n}\n/** Compatibility projection keeps protocol identities strings and retains fork ancestry. */\nexport async function projectDurableConversationEntries(\n conversation: Conversation,\n context: Context,\n): Promise<Entry[]> {\n const records: EntryRecord[] = [];\n let cursor: Cursor | undefined;\n do {\n const page = await conversation.entries({}, 256, cursor, context);\n records.push(...page.items);\n cursor = page.next;\n } while (cursor);\n records.reverse();\n return projectDurableEntries(records);\n}\n/**\n * Runs one prompt and returns the newest assistant text it produced. `hold` keeps the run open\n * across later turns started by intercom delivery: while it resolves true, wait for the lane to\n * go idle and ask again. The returned text is the newest one across all of those turns.\n */\nexport async function promptForAssistantText(\n runtime: DirectHarnessRuntime,\n prompt: string,\n hold?: () => Promise<boolean>,\n): Promise<string | undefined> {\n const previous = new Set((await runtime.readEntries()).entries.map((e) => e.id));\n await (\n await runtime.submitInternalMessage(prompt)\n ).settled;\n while (hold && (await hold())) await runtime.lane.waitForIdle(BACKGROUND_CONTEXT);\n return (\n (await runtime.readEntries()).entries\n .toReversed()\n .filter((e) => !previous.has(e.id))\n .flatMap((e) => (e.type === 'message' && e.message.role === 'assistant' ? [text(e.message).trim()] : []))[0] ||\n undefined\n );\n}\n\nexport async function createDirectHarnessRuntime<TContext extends object | undefined = object | undefined>(\n options: DirectHarnessRuntimeOptions<TContext>,\n): Promise<DirectHarnessRuntime<TContext>> {\n if (options.initialFastMode !== undefined && typeof options.initialFastMode !== 'boolean')\n throw new Error('Initial Fast mode must be a boolean.');\n if (options.initialAgentLocked !== undefined && typeof options.initialAgentLocked !== 'boolean')\n throw new Error('Initial agent lock must be a boolean.');\n const context = options.context ?? BACKGROUND_CONTEXT;\n if (options.storage === 'jsonl' || options.legacySessionPath !== undefined)\n throw new Error('Legacy JSONL direct storage is unsupported; use durable-v1 SQLite');\n if (options.session && !options.durableStorage)\n throw new Error('A durable Session injection requires its raw durableStorage');\n const storage = options.durableStorage\n ? {\n storage: options.durableStorage,\n sessionFile: options.sessionPath,\n historyLease: undefined,\n repository: undefined,\n }\n : await openSqliteSessionStorage(options, context);\n let startupHarness: Harness | undefined;\n try {\n const registry = createRegistry();\n const environment = new NodeExecutionEnv({ cwd: options.cwd });\n let disposed = false;\n let quarantined = false;\n let failure: unknown;\n let preparationFailure: unknown;\n const terminatingCalls = new Set<string>();\n let fastMode = false;\n let agentLocked = false;\n const assertUnlocked = () => {\n if (agentLocked) throw new Error(AGENT_LOCKED_ERROR);\n };\n let resources = options.resources ?? {};\n let tools = options.tools ?? [];\n let activeNames = new Set(options.activeToolNames ?? tools.map((t) => t.name));\n let settings: HarnessSettings = {\n stream: options.streamOptions,\n retry: options.retry,\n compaction: options.compaction,\n toolExecution: options.toolExecution,\n steeringMode: options.steeringMode,\n followUpMode: options.followUpMode,\n };\n const listeners = new Set<(frame: DirectHarnessFrame) => void>();\n const eventListeners = new Set<DirectHarnessEventListener>();\n const checkpointBoundaries = new Set<{\n active: boolean;\n callback: Parameters<NonNullable<DirectHarnessRuntime['registerCheckpointBoundary']>>[0];\n }>();\n const emit = (frame: DirectHarnessFrame) => {\n for (const listener of listeners) {\n try {\n listener(frame);\n } catch (error) {\n for (const other of listeners) if (other !== listener) other({ type: 'handler_error', error: String(error) });\n }\n }\n };\n const writable = async <T>(work: () => Promise<T>): Promise<T> => {\n if (disposed || quarantined) throw new Error('Direct harness writes are unavailable', { cause: failure });\n try {\n await storage.historyLease?.assertQuiescent();\n return await work();\n } catch (error) {\n const code = typeof error === 'object' && error !== null && 'code' in error ? error.code : undefined;\n if (\n typeof code === 'string' &&\n ['EACCES', 'EBUSY', 'EIO', 'EMFILE', 'ENFILE', 'ENOSPC', 'EPERM', 'EROFS'].includes(code)\n ) {\n quarantined = true;\n failure = error;\n emit({ type: 'error', code: 'storage_quarantined', error: String(error) });\n }\n throw error;\n }\n };\n let sourceModels: Models | MutableModels;\n if (options.models) sourceModels = options.models;\n else {\n if (!options.providers?.length) throw new Error('Direct harness requires Models or a Provider');\n sourceModels = createModels(options.credentials ? { credentials: options.credentials } : undefined);\n }\n for (const provider of options.providers ?? []) {\n const mutable = sourceModels as Partial<MutableModels> & {\n registerNativeProvider?: (provider: Provider) => void;\n };\n const register = mutable.setProvider?.bind(sourceModels) ?? mutable.registerNativeProvider?.bind(sourceModels);\n if (!register) throw new Error('Models registry cannot register providers');\n register(provider);\n }\n const models = new Proxy(sourceModels, {\n get(target, key) {\n const value: unknown = Reflect.get(target, key, target);\n if (typeof value !== 'function') return value;\n if (\n !['stream', 'complete', 'streamSimple', 'completeSimple', 'streamDeferred', 'fetchDeferred'].includes(\n String(key),\n )\n )\n return value.bind(target);\n return (...args: unknown[]) => {\n if (disposed || quarantined || preparationFailure)\n throw new Error('Model dispatch unavailable', { cause: preparationFailure });\n options.guardModelRequest?.();\n const request = args[1] as { tools?: { name: string }[] };\n if (\n !['complete', 'completeSimple'].includes(String(key)) &&\n request?.tools?.some((t) => !activeNames.has(t.name))\n )\n throw new Error('Model request contains disabled tools');\n const requestOptions = args[2] as Record<string, unknown> | undefined;\n const usePriority =\n fastMode &&\n (args[0] as Model<Api>).api === CODEX_API &&\n (args[0] as Model<Api>).provider === CODEX_PROVIDER;\n const originalOnPayload = requestOptions?.onPayload;\n args[2] = {\n ...requestOptions,\n // Only the public auxiliary completion API may override Doom's persisted identity.\n sessionId: key === 'complete' ? (requestOptions?.sessionId ?? sessionId) : sessionId,\n ...(usePriority ? { serviceTier: 'priority' } : {}),\n onPayload: async (payload: unknown, model: Model<Api>) => {\n options.guardModelRequest?.();\n const original =\n typeof originalOnPayload === 'function' ? await originalOnPayload(payload, model) : undefined;\n const transformed = original === undefined ? payload : original;\n const patch = await options.beforePayload?.({ payload: transformed, model }, context);\n const finalPayload = patch === undefined ? transformed : patch.payload;\n if (!usePriority) return finalPayload;\n if (typeof finalPayload !== 'object' || finalPayload === null || Array.isArray(finalPayload))\n throw new Error('Invalid Codex request payload');\n return { ...finalPayload, service_tier: 'priority' };\n },\n };\n const dispatched: unknown = Reflect.apply(value, target, args);\n if (!['stream', 'streamSimple', 'fetchDeferred'].includes(String(key))) return dispatched;\n const source = dispatched as AssistantMessageEventStream;\n const output = createAssistantMessageEventStream();\n const requestedModel = args[0] as Model<Api>;\n const signal = (args[2] as { signal?: AbortSignal }).signal;\n let ended = false;\n let current: AssistantMessage = {\n role: 'assistant',\n content: [],\n api: requestedModel.api,\n provider: requestedModel.provider,\n model: requestedModel.id,\n timestamp: Date.now(),\n stopReason: 'pending',\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n },\n };\n const cancel = () => {\n if (ended) return;\n ended = true;\n const cancelled = { ...current, stopReason: 'aborted' as const, errorMessage: 'Agent request aborted' };\n output.push({ type: 'error', reason: 'aborted', error: cancelled });\n output.end();\n };\n signal?.addEventListener('abort', cancel, { once: true });\n if (signal?.aborted) cancel();\n void (async () => {\n try {\n for await (const event of source) {\n if (ended) break;\n if ('partial' in event) current = event.partial;\n output.push(event);\n }\n if (!ended) {\n ended = true;\n output.end(await source.result());\n }\n } catch (error) {\n if (!ended) {\n ended = true;\n const failed = { ...current, stopReason: 'error' as const, errorMessage: String(error) };\n output.push({ type: 'error', reason: 'error', error: failed });\n output.end();\n }\n } finally {\n signal?.removeEventListener('abort', cancel);\n }\n })();\n return output;\n };\n },\n }) as Models;\n const resolveToolContext = async (ctx: Context) =>\n typeof options.toolContext === 'function' ? options.toolContext(ctx) : (options.toolContext as TContext);\n const nativeTool = (tool: AgentHarnessTool<TContext>): ToolRegistration => ({\n name: tool.name,\n description: tool.description,\n parameters: tool.parameters,\n constrainedSampling: tool.constrainedSampling,\n prepareArguments: tool.prepareArguments ? (args) => tool.prepareArguments!(args) : undefined,\n replay: tool.replay ?? 'unsafe',\n executionMode: tool.executionMode,\n async execute(args, api, ctx) {\n if (!activeNames.has(tool.name)) throw new Error(`Tool '${tool.name}' is no longer active`);\n const pending = tool.execute(\n api.callId,\n args,\n (partial) => {\n for (const part of partial.content) if (part.type === 'text') api.output(part.text);\n if (partial.details !== undefined)\n void api\n .details(json(partial.details), ctx)\n .catch((error) => emit({ type: 'error', error: String(error) }));\n },\n await resolveToolContext(ctx),\n {\n invocationId: String(api.taskId),\n operationId: String(api.taskId),\n turnId: String(api.taskId),\n getMemo: (name) => api.memo(name, ctx),\n setMemo: async (name, value) => {\n if (value === undefined) throw new Error('Durable invocation memos cannot be deleted');\n await api.memo(name, value, ctx);\n },\n },\n ctx,\n );\n const result = await awaitWithContext(pending, ctx);\n return {\n content: result.content,\n isError: result.isError,\n ...(result.details === undefined ? {} : { details: json(result.details) }),\n };\n },\n });\n const install = () =>\n registry.install({\n name: 'po.host',\n tools: tools.map(nativeTool),\n sections: [\n {\n key: 'po',\n tag: false,\n async render(_input, ctx) {\n preparationFailure = undefined;\n try {\n const prompt =\n typeof options.systemPrompt === 'function'\n ? await options.systemPrompt(await resolveToolContext(ctx), ctx)\n : (options.systemPrompt ?? '');\n const skills =\n options.systemPrompt === undefined ? formatSkillsForSystemPrompt(resources.skills ?? []) : '';\n return [prompt, skills].filter(Boolean).join('\\n\\n');\n } catch (error) {\n preparationFailure = error;\n throw error;\n }\n },\n },\n ],\n hooks: [\n hook(GenerationTask, {\n async afterTools(_assistant, _results, api, ctx) {\n const lane = conversation;\n if (lane.id !== api.conversationId) return;\n for (const registration of checkpointBoundaries) {\n if (!registration.active || disposed || ctx.abortSignal?.aborted || external) continue;\n let open = true;\n try {\n await registration.callback({\n signal: ctx.abortSignal,\n appendMessage: (message) =>\n commitCheckpointMessage(registration, lane, message, ctx, () => open, api.taskId),\n });\n } finally {\n open = false;\n }\n }\n },\n async beforeRequest(request, api, ctx) {\n // Outside the try: a lock must not poison model dispatch for remote operations.\n assertUnlocked();\n try {\n const live = await api.snapshot(LiveDoc, api.conversationId, ctx);\n const retained = await api.snapshot(LifecycleDoc, ctx);\n const queue = JSON.parse(retained?.json ?? '{\"queue\":[]}') as LifecycleRecord;\n if (\n live?.run &&\n queue.queue.some(\n (item) =>\n item.operationId !== undefined &&\n item.submissionId !== undefined &&\n live.run!.inputs.includes(item.submissionId as SubmissionId) &&\n item.operationId !== String(live.run!.inputs[0]),\n )\n )\n throw new Error('Steering target changed before model admission');\n const agent = await conversation.agent(ctx);\n const model = agent.model ? models.getModel(agent.model.provider, agent.model.modelId) : undefined;\n await options.beforeModelRequest?.(\n { phase: 'turn', model, prompt: [...request.messages], resources },\n ctx,\n );\n const systemPrompt = getCurrentSystemPrompt(request.messages);\n const contextMessages = options.transformContext\n ? await restoreCustomContextMessages(request.messages, ctx, await conversation.context(ctx))\n : request.messages.filter((message) => message.role !== 'system');\n // Snapshot before hooks, which may mutate their input in place.\n const originalContext = structuredClone(contextMessages);\n const patch = await options.transformContext?.({ messages: contextMessages, systemPrompt }, ctx);\n const changed =\n patch &&\n ((patch.systemPrompt !== undefined && patch.systemPrompt !== systemPrompt) ||\n (patch.messages !== undefined && !isDeepStrictEqual(patch.messages, originalContext)));\n let messages: Message[] = changed\n ? [\n {\n role: 'system',\n content: patch.systemPrompt ?? systemPrompt,\n timestamp: Date.now(),\n toolsAdded: getCurrentTools(request.messages),\n },\n ...convertToLlm(patch.messages ?? request.messages.filter((m) => m.role !== 'system')),\n ]\n : [...request.messages];\n if (options.toProviderMessages) messages = await options.toProviderMessages(messages, ctx);\n await options.beforeModelRequest?.({ phase: 'request', model, resources }, ctx);\n return { messages };\n } catch (error) {\n preparationFailure = error;\n throw error;\n }\n },\n }),\n hook(ToolTask, {\n async beforeTool(call, _api, ctx) {\n const patch = await options.beforeTool?.(\n { toolCallId: call.id, toolName: call.name, args: call.arguments as Record<string, JsonValue> },\n ctx,\n );\n if (patch?.block?.terminate) terminatingCalls.add(call.id);\n return patch ? { arguments: patch.args, block: patch.block?.reason } : undefined;\n },\n async afterTool(call, result, _api, ctx) {\n const patch = await options.afterTool?.(\n {\n toolCallId: call.id,\n toolName: call.name,\n args: call.arguments as Record<string, JsonValue>,\n content: result.content ?? [],\n details: result.details,\n isError: result.isError ?? false,\n usage: result.usage,\n },\n ctx,\n );\n return patch\n ? {\n ...result,\n ...patch,\n control:\n patch.terminate || terminatingCalls.delete(call.id)\n ? { ...result.control, terminate: true }\n : result.control,\n }\n : terminatingCalls.delete(call.id)\n ? { ...result, control: { ...result.control, terminate: true } }\n : undefined;\n },\n }),\n hook(CompactionTask, {\n async beforeCompact(input, _api, ctx) {\n if (!options.beforeCompaction) return;\n const entries = projectDurableEntries(input.entries);\n const patch = await options.beforeCompaction(\n {\n reason: input.reason,\n customInstructions: input.instructions,\n preparation: {\n entries,\n messages: [...input.messages],\n tokensBefore: 0,\n retainedTail: [],\n firstKeptEntryId: String(input.firstKept),\n messagesToSummarize: [...input.messages],\n turnPrefixMessages: [],\n isSplitTurn: false,\n fileOps: { read: new Set(), written: new Set(), edited: new Set() },\n settings: {\n enabled: options.compaction?.enabled ?? true,\n reserveTokens: options.compaction?.reserveTokens ?? 16384,\n keepRecentTokens: options.compaction?.keepRecentTokens ?? 20000,\n },\n },\n },\n ctx,\n );\n if (patch?.decline) return { decline: true };\n if (patch?.compaction) return { summary: patch.compaction.summary };\n return undefined;\n },\n }),\n ],\n });\n install();\n const harness = await Harness.open(\n storage.storage,\n {\n models,\n registry,\n get settings() {\n return settings;\n },\n env: () => environment,\n onReport: (error) => emit({ type: 'handler_error', error: String(error) }),\n },\n context,\n );\n startupHarness = harness;\n const root = await harness.root(context, {\n agent: {\n cwd: options.cwd,\n ...((options.model ?? models.getModels()[0])\n ? {\n model: {\n provider: (options.model ?? models.getModels()[0]!).provider,\n modelId: (options.model ?? models.getModels()[0]!).id,\n },\n }\n : {}),\n ...(options.thinkingLevel ? { thinkingLevel: options.thinkingLevel } : {}),\n },\n });\n const activeId = await initializeDurableNavigation(harness, root.id, context);\n let conversation = (await harness.conversation(activeId, context))!;\n const storedAgent = await harness.snapshot(AgentDoc, conversation.id, context);\n const initialModel = options.model ?? models.getModels()[0];\n await conversation.configure(\n {\n ...(!storedAgent?.model && initialModel\n ? { model: { provider: initialModel.provider, modelId: initialModel.id } }\n : {}),\n ...(!storedAgent?.thinkingLevel && options.thinkingLevel ? { thinkingLevel: options.thinkingLevel } : {}),\n tools: tools.filter((t) => activeNames.has(t.name)).map(nativeTool),\n },\n context,\n );\n const storedFastMode = await harness.snapshot(FastModeDoc, context);\n fastMode = storedFastMode?.enabled ?? options.initialFastMode ?? false;\n const storedAgentLock = await harness.snapshot(AgentLockDoc, context);\n agentLocked = storedAgentLock?.locked ?? options.initialAgentLocked ?? false;\n const storedIdentity = await harness.snapshot(SessionIdentityDoc, context);\n const sessionId = storedIdentity?.id || options.sessionId || randomUUID();\n await writable(() =>\n harness.commit(async (tx) => {\n const identity = await tx.doc(SessionIdentityDoc);\n if (!identity.id) {\n identity.id = sessionId;\n identity.createdAt = Date.now();\n identity.parentSessionId = options.parentSessionId ?? '';\n }\n if (!storedAgentLock && options.initialAgentLocked !== undefined)\n (await tx.doc(AgentLockDoc)).locked = agentLocked;\n if (!storedFastMode) {\n (await tx.doc(FastModeDoc)).enabled = fastMode;\n if (options.initialFastMode !== undefined)\n await tx.appendEntry(conversation.id, {\n kind: 'po.fast-mode',\n data: { version: 1, enabled: fastMode, sessionId },\n });\n }\n const metadata = await tx.doc(SessionMetadataDoc);\n metadata.workspaceRoot ||= options.cwd;\n if (options.lane !== undefined) metadata.laneName = options.lane;\n if (!storedIdentity?.id && options.sessionName !== undefined) metadata.name = options.sessionName;\n }, context),\n );\n const laneName = options.lane ?? 'main';\n let resolveExited!: (code: number) => void;\n const exited = new Promise<number>((resolve) => {\n resolveExited = resolve;\n });\n const readRecord = async (): Promise<LifecycleRecord> =>\n JSON.parse(\n (await harness.snapshot(LifecycleDoc, context))?.json ?? '{\"revision\":0,\"paused\":false,\"queue\":[]}',\n ) as LifecycleRecord;\n const changeRecord = async <T>(change: (record: LifecycleRecord) => T): Promise<T> =>\n writable(() =>\n harness.commit(async (tx) => {\n const doc = await tx.doc(LifecycleDoc);\n const record = JSON.parse(doc.json) as LifecycleRecord;\n const result = change(record);\n record.revision++;\n doc.json = JSON.stringify(record);\n return result;\n }, context),\n );\n let userAdmission = false;\n let promptAdmissions = 0;\n let userAdmissionSettled: Promise<void> = Promise.resolve();\n let releaseUserAdmission: (() => void) | undefined;\n const guardUserAdmission = () => {\n if (userAdmission) throw new Error('A user interruption is already being admitted');\n };\n let external: string | undefined;\n let externalAbort: AbortController | undefined;\n let compactionAdmission = false;\n const nativeExecution = async () => {\n const live = await harness.snapshot(LiveDoc, conversation.id, context);\n const inspected = await harness.inspect(context);\n const task = inspected.tasks.find((t) => t.record.conversationId === conversation.id && !t.record.background);\n return live?.run\n ? {\n id: String(live.run.inputs[0]),\n kind: 'run' as const,\n status:\n (await readRecord()).abortOperationId === String(live.run.inputs[0])\n ? ('aborting' as const)\n : ('open' as const),\n }\n : task\n ? {\n id: String(task.record.id),\n kind: 'compaction' as const,\n status: task.record.abortRequested ? ('aborting' as const) : ('open' as const),\n }\n : null;\n };\n const execution = async () =>\n (await nativeExecution()) ??\n (external\n ? { id: external, kind: 'navigation' as const, status: 'open' as const }\n : settling\n ? { id: 'settling', kind: 'run' as const, status: 'open' as const }\n : null);\n const readLifecycle = async (): Promise<DirectHarnessLifecycle> => {\n const record = await readRecord();\n return {\n revision: record.revision,\n paused: record.paused,\n queue: record.queue\n .filter(\n (item): item is Retained & { disposition: DirectHarnessQueuedInput['disposition'] } =>\n item.explicitQueue === true && item.disposition !== 'consumed' && item.disposition !== 'removed',\n )\n .map(\n ({\n explicitQueue: _q,\n submissionId: _s,\n conversationId: _c,\n message: _m,\n operationId: _o,\n attempt: _a,\n ...item\n }) => item,\n ),\n operation: await execution(),\n };\n };\n const publish = async () => emit({ type: 'lifecycle_update', lifecycle: await readLifecycle() });\n let watcher: AgentEventStream;\n let eventsSettled = Promise.resolve();\n let settling = 0;\n const admittingInternal = new Set<string>();\n const reconcilingInternal = new Map<string, Promise<void>>();\n const internalDelivery = new Map<SubmissionId, { done: Promise<void>; resolve: () => void }>();\n const deliveredInputs = new Set<SubmissionId>();\n const nextTurnMessages: AgentMessage[] = [];\n let deferredInternalCount = 0;\n const flushNextTurn = async () => {\n const staged = nextTurnMessages.splice(0);\n for (let index = 0; index < staged.length; index++) {\n const message = staged[index]!;\n try {\n await writable(() =>\n conversation.submit(\n {\n type: 'write',\n requestId: randomUUID(),\n entry: { kind: 'po.entry', data: json({ type: 'message', message }), model: convertToLlm([message]) },\n },\n context,\n ),\n );\n } catch (error) {\n nextTurnMessages.unshift(...staged.slice(index));\n throw error;\n }\n }\n };\n let logicalLoopActive = false;\n let lastAssistant: AssistantMessage | undefined;\n let partial: AssistantMessage | undefined;\n let toolResults: ToolResultMessage[] = [];\n const deliver = async (event: HarnessEvent, eventContext: Context) => {\n for (const listener of eventListeners)\n try {\n await listener(event, eventContext);\n } catch (error) {\n emit({ type: 'handler_error', error: String(error) });\n }\n };\n const attach = async () => {\n if (watcher) await watcher.stop();\n watcher = await watchEvents(harness, conversation.id, context);\n let predecessor = watcher.snapshot.entries.at(-1)?.id;\n const customSources = new Map<string, AgentMessage>();\n const generatedSources = new Map<EntryId, AgentMessage | undefined>();\n const rememberCustom = (raw: EntryRecord) => {\n const projected = projectDurableEntries([raw])[0];\n const data = raw.data && typeof raw.data === 'object' && !Array.isArray(raw.data) ? raw.data : undefined;\n if (\n projected?.type === 'message' &&\n projected.message.role === 'custom' &&\n typeof data?.inputRequestId === 'string'\n )\n customSources.set(data.inputRequestId, projected.message);\n };\n for (const raw of watcher.snapshot.entries) rememberCustom(raw);\n for (const requestId of customSources.keys()) {\n const receipt = await storage.storage.submissionByRequest(conversation.id, requestId, context);\n if (receipt && receipt.status !== 'queued') customSources.delete(requestId);\n }\n const generatedEntrySource = async (raw: EntryRecord, ctx: Context) => {\n if (generatedSources.has(raw.id)) return generatedSources.get(raw.id);\n let source: AgentMessage | undefined;\n if (raw.model?.[0]?.role === 'user')\n for (const [requestId, custom] of customSources) {\n const receipt = await storage.storage.submissionByRequest(conversation.id, requestId, ctx);\n if (receipt && 'entry' in receipt && receipt.entry === raw.id) {\n source = custom;\n customSources.delete(requestId);\n break;\n }\n }\n generatedSources.set(raw.id, source);\n while (generatedSources.size > 128) generatedSources.delete(generatedSources.keys().next().value!);\n return source;\n };\n lastAssistant = undefined;\n partial = undefined;\n toolResults = [];\n watcher.start(async (events, eventContext) => {\n for (const event of events) {\n let mapped: HarnessEvent | undefined;\n if (event.type === 'turn_start' || event.type === 'run_start') {\n lastAssistant = undefined;\n partial = undefined;\n toolResults = [];\n }\n if (event.type === 'message_end' || event.type === 'entry_appended') {\n rememberCustom(event.entry);\n const entry = projectDurableEntries([event.entry])[0];\n await generatedEntrySource(event.entry, eventContext);\n if (entry) {\n entry.parentId = predecessor === undefined ? null : String(predecessor);\n const added: HarnessEvent = { type: 'entry_added', entry };\n emit({ type: 'entry_appended', entry });\n eventsSettled = eventsSettled.then(() => deliver(added, eventContext));\n }\n predecessor = event.entry.id;\n }\n if (['run_start', 'run_end', 'turn_start', 'compaction_start'].includes(event.type))\n mapped = { type: event.type } as HarnessEvent;\n if (event.type === 'message_start') {\n if (event.message.role === 'assistant') partial = structuredClone(event.message);\n mapped = { type: 'message_start', message: event.message };\n }\n if (event.type === 'message_end' && event.entry.model?.[0]) {\n const projected = projectDurableEntries([event.entry])[0];\n if (projected?.type === 'custom' && projected.customType === 'po.internal-context') continue;\n const message =\n (await generatedEntrySource(event.entry, eventContext)) ??\n (projected?.type === 'message' && projected.message.role === 'custom'\n ? projected.message\n : event.entry.model[0]);\n if (message.role === 'assistant') lastAssistant = message;\n if (message.role === 'toolResult') toolResults.push(message);\n mapped = { type: 'message_end', message, entryId: String(event.entry.id), runId: String(conversation.id) };\n }\n\n if (event.type === 'tool_execution_start') mapped = { ...event, type: 'tool_start' };\n if (event.type === 'tool_execution_end') {\n const result = event.entry?.model?.find((m) => m.role === 'toolResult');\n mapped = {\n type: 'tool_end',\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: {\n content: result?.content ?? [],\n details: result?.details === undefined ? undefined : json(result.details),\n },\n isError: result?.isError ?? true,\n };\n }\n if (event.type === 'turn_end' && lastAssistant) {\n mapped = { type: 'turn_end', message: lastAssistant, toolResults };\n toolResults = [];\n lastAssistant = undefined;\n partial = undefined;\n }\n if (event.type === 'message_update' && partial) {\n for (const change of event.changes) {\n if (change.type === 'message') {\n partial = structuredClone(change.message);\n } else if ('block' in change) {\n partial.content[change.contentIndex] = structuredClone(change.block);\n }\n const block = 'contentIndex' in change ? partial.content[change.contentIndex] : undefined;\n if (change.type === 'text_delta' && block?.type === 'text') block.text += change.delta;\n if (change.type === 'thinking_delta' && block?.type === 'thinking') block.thinking += change.delta;\n {\n const update: HarnessEvent = {\n type: 'message_update',\n message: structuredClone(partial),\n event:\n 'delta' in change\n ? {\n type: change.type,\n contentIndex: change.contentIndex,\n delta: change.delta,\n partial: structuredClone(partial),\n }\n : { type: 'start', partial: structuredClone(partial) },\n };\n emit({ ...update, assistantMessageEvent: update.event });\n eventsSettled = eventsSettled.then(() => deliver(update, eventContext));\n }\n }\n }\n if (event.type === 'tool_execution_update')\n mapped = {\n type: 'tool_update',\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n partialResult: {\n content: [\n {\n type: 'text',\n text: event.output ? ('set' in event.output ? event.output.set : (event.output.append ?? '')) : '',\n },\n ],\n details: event.details,\n },\n };\n if (event.type === 'compaction_end') {\n const receipt = await harness.waitForTask(event.taskId as TaskId<CompactionResult>, eventContext);\n const outcome = receipt.state.outcome;\n const result = outcome.status === 'completed' ? outcome.result : undefined;\n const summary = result?.submissionId\n ? await harness.submission(result.submissionId, eventContext)\n : undefined;\n const status = await summary?.status(eventContext);\n const entryId = result?.entryId ?? (status && 'entry' in status ? status.entry : undefined);\n mapped = {\n type: 'compaction_end',\n status:\n outcome.status === 'completed'\n ? result?.entryId !== undefined || result?.submissionId !== undefined\n ? 'completed'\n : 'aborted'\n : outcome.status === 'aborted'\n ? 'aborted'\n : 'failed',\n reason: event.reason,\n entryId: entryId === undefined ? undefined : String(entryId),\n error:\n outcome.status !== 'completed' && outcome.status !== 'aborted'\n ? new Error(\n 'error' in outcome ? (outcome.error?.message ?? 'Compaction failed') : 'Compaction failed',\n )\n : undefined,\n };\n }\n if (event.type === 'inbox_update')\n mapped = { type: 'queue_update', queues: event.items.map((item) => ({ kind: item.mode })) };\n if (event.type === 'message_end') {\n for (const message of event.entry.model ?? [])\n if (message.role === 'assistant')\n eventsSettled = eventsSettled.then(() =>\n deliver({ type: 'usage', row: { id: String(event.entry.id), usage: message.usage } }, eventContext),\n );\n }\n if (!mapped) continue;\n const publishMapped = (event: HarnessEvent) =>\n emit({\n ...event,\n type:\n event.type === 'tool_start'\n ? 'tool_execution_start'\n : event.type === 'tool_update'\n ? 'tool_execution_update'\n : event.type === 'tool_end'\n ? 'tool_execution_end'\n : event.type === 'entry_added'\n ? 'entry_appended'\n : event.type,\n });\n if (mapped.type === 'run_end') {\n const settledEvent = {\n runId: String(event.type === 'run_end' ? event.inputs[0] : conversation.id),\n timestamp: Date.now(),\n };\n settling++;\n let released = false;\n const release = () => {\n if (!released) {\n settling--;\n released = true;\n }\n };\n eventsSettled = eventsSettled\n .then(async () => {\n await reconcile();\n try {\n await writable(() =>\n harness.commit(\n (tx) => tx.appendEntry(conversation.id, { kind: AGENT_SETTLED_ENTRY_TYPE, data: settledEvent }),\n eventContext,\n ),\n );\n } catch (error) {\n emit({ type: 'error', code: 'agent_settled', error: String(error) });\n }\n const live = await harness.snapshot(LiveDoc, conversation.id, eventContext);\n const successorActive = !!live?.run && String(live.run.inputs[0]) !== settledEvent.runId;\n mapped = { type: 'run_end', runId: settledEvent.runId, successorActive };\n publishMapped(mapped);\n await deliver(mapped, eventContext);\n release();\n // A settlement hook can admit work after the initial successor check.\n const lifecycle = await readLifecycle();\n emit({ type: 'lifecycle_update', lifecycle });\n if (!lifecycle.operation) {\n logicalLoopActive = false;\n emit({ type: 'agent_end', runId: settledEvent.runId });\n emit({ type: 'agent_settled', ...settledEvent });\n }\n })\n .catch((error) => emit({ type: 'error', code: 'settled_event', error: String(error) }))\n .finally(async () => {\n release();\n if (event.type === 'run_end')\n for (const id of event.inputs) {\n deliveredInputs.add(id);\n internalDelivery.get(id)?.resolve();\n }\n while (deliveredInputs.size > 128) deliveredInputs.delete(deliveredInputs.values().next().value!);\n try {\n await publish();\n } catch (error) {\n emit({ type: 'error', code: 'lifecycle_update', error: String(error) });\n }\n // Do not await drain here: drain waits for this settlement chain.\n void drain().catch((error) => emit({ type: 'error', code: 'drain', error: String(error) }));\n });\n } else {\n // Protocol publication must not wait for extension hooks on earlier events.\n publishMapped(mapped);\n if (mapped.type === 'run_start') {\n if (!logicalLoopActive) emit({ type: 'agent_start' });\n logicalLoopActive = true;\n void publish().catch((error) => emit({ type: 'error', code: 'lifecycle_update', error: String(error) }));\n }\n const delivered = mapped;\n eventsSettled = eventsSettled.then(() => deliver(delivered, eventContext));\n }\n }\n });\n };\n await attach();\n const reconcileInternal = (requestId: string, item: InternalDeliveryRecord): Promise<void> => {\n const existing = reconcilingInternal.get(requestId);\n if (existing) return existing;\n const work = (async () => {\n if (admittingInternal.has(requestId)) return;\n const target =\n item.conversationId === conversation.id\n ? conversation\n : await harness.conversation(item.conversationId as typeof conversation.id, context);\n if (!target) throw new Error('Internal delivery conversation is unavailable');\n let receipt = await storage.storage.submissionByRequest(target.id, requestId, context);\n // A failed native run can strand queued inputs. Never withdraw from a surviving run.\n if (receipt?.status === 'queued' && !(await harness.snapshot(LiveDoc, target.id, context))?.run) {\n await harness.abortSubmission(receipt.id, context);\n receipt = await storage.storage.submissionByRequest(target.id, requestId, context);\n }\n if (receipt?.status === 'queued') return;\n if (!receipt || (receipt.status === 'unanswered' && receipt.entry === undefined)) {\n if ((await harness.snapshot(LiveDoc, target.id, context))?.run) return;\n let envelope =\n item.message.role === 'custom'\n ? await storage.storage.submissionByRequest(target.id, `${requestId}:message`, context)\n : undefined;\n if (item.message.role === 'custom' && !envelope) {\n await (\n await writable(() =>\n target.submit(\n {\n type: 'write',\n requestId: `${requestId}:message`,\n entry: {\n kind: 'po.entry',\n data: json({\n type: 'message',\n message: item.message,\n timestamp: item.message.timestamp,\n inputRequestId: requestId,\n }),\n },\n },\n context,\n ),\n )\n ).wait(context);\n envelope = await storage.storage.submissionByRequest(target.id, `${requestId}:message`, context);\n }\n if (envelope?.status === 'queued') {\n // An idle passive write places surviving queued envelope writes, without admitting input.\n await (\n await writable(() =>\n target.submit(\n {\n type: 'write',\n requestId: `${requestId}:message-placement`,\n entry: { kind: 'po.internal-delivery' },\n },\n context,\n ),\n )\n ).wait(context);\n envelope = await storage.storage.submissionByRequest(target.id, `${requestId}:message`, context);\n }\n const envelopeId = envelope && 'entry' in envelope ? envelope.entry : undefined;\n const draft: Parameters<Conversation['submit']>[0] = {\n type: 'write',\n requestId: `${requestId}:context`,\n entry: {\n kind: 'po.entry',\n data: json(\n item.message.role === 'custom'\n ? { type: 'custom', customType: 'po.internal-context', data: { inputRequestId: requestId } }\n : { type: 'message', message: item.message },\n ),\n ...(envelopeId === undefined\n ? { model: convertToLlm([item.message]) }\n : {\n edits: [{ target: envelopeId, action: 'replace' as const, messages: convertToLlm([item.message]) }],\n }),\n },\n };\n let fallback;\n try {\n fallback = await writable(() => target.submit(draft, context));\n } catch (error) {\n const accepted = await storage.storage.submissionByRequest(target.id, `${requestId}:context`, context);\n fallback = accepted && (await harness.submission(accepted.id, context));\n if (!fallback) throw error;\n }\n if ((await fallback.wait(context)).status !== 'done') throw new Error('Internal context write failed');\n }\n await changeRecord((r) => {\n delete r.internalDeliveries?.[requestId];\n });\n })().finally(() => {\n reconcilingInternal.delete(requestId);\n });\n reconcilingInternal.set(requestId, work);\n return work;\n };\n const reconcile = async () => {\n const record = await readRecord();\n // Withdraw all stranded internal inputs before any passive write can flush an idle native inbox.\n for (const [requestId, item] of Object.entries(record.internalDeliveries ?? {})) {\n if (admittingInternal.has(requestId)) continue;\n if ((await harness.snapshot(LiveDoc, item.conversationId as typeof conversation.id, context))?.run) continue;\n const receipt = await storage.storage.submissionByRequest(\n item.conversationId as typeof conversation.id,\n requestId,\n context,\n );\n if (receipt?.status === 'queued') await harness.abortSubmission(receipt.id, context);\n }\n for (const [requestId, item] of Object.entries(record.internalDeliveries ?? {}))\n await reconcileInternal(requestId, item);\n for (const item of record.queue) {\n if (item.disposition !== 'handoff' && item.disposition !== 'uncertain') continue;\n const submission = item.submissionId\n ? await harness.submission(item.submissionId as SubmissionId, context)\n : undefined;\n const status = await submission?.status(context);\n if (status?.status === 'done' || status?.status === 'placed' || status?.status === 'unanswered')\n await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === item.id);\n if (!q) return;\n if (status.status === 'unanswered' && status.entry === undefined && r.paused) {\n q.disposition = 'pending';\n q.attempt = (q.attempt ?? 0) + 1;\n delete q.submissionId;\n } else {\n q.disposition = 'consumed';\n q.text = '';\n delete q.message;\n delete q.images;\n }\n const receipts = r.queue.filter((q) => q.disposition === 'consumed' || q.disposition === 'removed');\n if (receipts.length > 128) {\n const expired = new Set(receipts.slice(0, receipts.length - 128).map((q) => q.id));\n r.queue = r.queue.filter((q) => !expired.has(q.id));\n }\n });\n else if (!status && !handingOff.has(item.id) && !userClaims.has(item.id))\n await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === item.id);\n if (q) q.disposition = 'uncertain';\n });\n }\n };\n const handingOff = new Set<string>();\n const userClaims = new Set<string>();\n let drainPromise: Promise<void> | undefined;\n let drainRequested = false;\n const drain = (): Promise<void> => {\n if (drainPromise) {\n drainRequested = true;\n return drainPromise;\n }\n return (drainPromise ??= (async () => {\n await reconcile();\n while (!disposed) {\n const record = await readRecord();\n if (agentLocked || userAdmission || record.paused || (await execution())) break;\n const item = record.queue.find((q) => q.disposition === 'pending');\n if (!item) break;\n const submission = await handoff(item, 'reject');\n if (!submission) continue;\n await submission.wait(context);\n await eventsSettled;\n await reconcile();\n await publish();\n }\n })().finally(() => {\n drainPromise = undefined;\n if (drainRequested) {\n drainRequested = false;\n void drain().catch((error) => emit({ type: 'error', code: 'drain', error: String(error) }));\n }\n }));\n };\n const handoff = async (\n item: Retained,\n mode: NonNullable<Retained['submissionMode']>,\n recovering = false,\n allowPaused = false,\n ) => {\n if (external || handingOff.has(item.id)) return undefined;\n handingOff.add(item.id);\n try {\n const claimed = await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === item.id);\n if (!q || (r.paused && !recovering && !allowPaused)) return undefined;\n if (recovering ? q.disposition !== 'handoff' || q.submissionId !== undefined : q.disposition !== 'pending')\n return undefined;\n q.disposition = 'handoff';\n q.conversationId = conversation.id;\n q.submissionMode = mode;\n if (item.operationId !== undefined) {\n q.delivery = item.delivery;\n q.operationId = item.operationId;\n }\n return q;\n });\n if (!claimed) return undefined;\n const content = input(claimed.message ?? claimed.text, claimed.images);\n const requestId = `${claimed.id}:${claimed.attempt ?? 0}`;\n const submit = () =>\n writable(() =>\n conversation.submit(\n mode === 'write'\n ? {\n type: 'write',\n requestId,\n entry: { kind: 'po.message', model: [{ role: 'user', content, timestamp: Date.now() }] },\n }\n : { type: 'input', content, whenBusy: mode, requestId },\n context,\n ),\n );\n let submission;\n try {\n submission = await submit();\n } catch (error) {\n const accepted = await storage.storage.submissionByRequest(conversation.id, requestId, context);\n if (!accepted) throw error;\n submission = await harness.submission(accepted.id, context);\n if (!submission) throw error;\n }\n await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === item.id);\n if (q) q.submissionId = submission.id;\n });\n await reconcile();\n await publish();\n return submission;\n } finally {\n handingOff.delete(item.id);\n }\n };\n const input = (message: string | AgentMessage, images?: ImageContent[]) => {\n if (typeof message !== 'string') {\n if (message.role !== 'user') throw new Error('Only user messages can admit an agent run');\n return message.content;\n }\n return images?.length ? [{ type: 'text' as const, text: message }, ...images] : message;\n };\n const enqueue = async (\n message: string | AgentMessage,\n images: ImageContent[] | undefined,\n delivery: Retained['delivery'],\n scheduling: Retained['scheduling'],\n explicitQueue = false,\n ) => {\n const id = randomUUID();\n await changeRecord((r) => {\n r.queue.push({\n id,\n text: text(message),\n ...(images ? { images } : {}),\n ...(typeof message === 'string' ? {} : { message }),\n delivery,\n scheduling,\n explicitQueue,\n disposition: 'pending',\n });\n });\n await publish();\n return { id };\n };\n const queued = async (\n message: string | AgentMessage,\n images: ImageContent[] | undefined,\n delivery: 'followUp' | 'nextRun',\n ) => {\n guardUserAdmission();\n assertUnlocked();\n await enqueue(message, images, delivery, 'automatic');\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n };\n const dispatchCommand = async (value: string) => options.dispatchCommand?.(value) ?? false;\n const admit = async (message: string | AgentMessage, images?: ImageContent[], mode?: 'steer' | 'followUp') => {\n guardUserAdmission();\n if (external) throw new Error('An operation is already running');\n if (typeof message === 'string' && (await dispatchCommand(message)))\n return { settled: Promise.resolve(), handledCommand: true };\n guardUserAdmission();\n if (external) throw new Error('An operation is already running');\n promptAdmissions++;\n try {\n assertUnlocked();\n const record = await readRecord();\n await flushNextTurn();\n const { id } = await enqueue(message, images, mode ?? 'nextRun', 'automatic');\n const submission = await handoff(\n (await readRecord()).queue.find((q) => q.id === id)!,\n mode ?? 'reject',\n false,\n record.paused,\n );\n if (!submission) return { settled: Promise.resolve() };\n let resolveDelivery!: () => void;\n const delivered = new Promise<void>((resolve) => {\n resolveDelivery = resolve;\n });\n internalDelivery.set(submission.id, { done: delivered, resolve: resolveDelivery });\n if (deliveredInputs.has(submission.id)) resolveDelivery();\n const settled = (async () => {\n try {\n const status = await submission.wait(context);\n // A durable receipt can finish before the watcher has queued run_end.\n // Wait for this input's settlement hooks, not the current event tail.\n if (status.status === 'done' || status.entry !== undefined) await delivered;\n await eventsSettled;\n await reconcile();\n await publish();\n if (status.status === 'unanswered' && status.reason !== 'aborted')\n throw new Error(\n `Agent submission failed: ${status.reason}${typeof status.detail === 'string' && status.detail ? `: ${status.detail}` : ''}`,\n );\n await drain();\n } finally {\n internalDelivery.delete(submission.id);\n }\n })();\n void settled.catch((error) => emit({ type: 'error', error: String(error) }));\n return { settled };\n } finally {\n promptAdmissions--;\n }\n };\n const abort = async (operationId?: string) => {\n const current = await execution();\n if (!current || current.id === 'settling' || (operationId && current.id !== operationId)) return;\n if (current.id === external) {\n externalAbort?.abort();\n return;\n }\n const live = await harness.snapshot(LiveDoc, conversation.id, context);\n const taskId = live?.run?.taskId ?? nativeId(current.id);\n await changeRecord((r) => {\n r.paused = true;\n r.abortOperationId = current.id;\n r.abortTaskId = taskId;\n });\n await publish();\n await writable(async () => {\n if (current.kind === 'run') await conversation.abort(context);\n else await harness.abortTask(taskId, context);\n });\n await reconcile();\n };\n const interrupt = async () => {\n await abort();\n await writable(() => conversation.abort(context));\n await eventsSettled;\n };\n // Host-owned admission uses only public Tx operations. Target validation and both\n // lifecycle/native ownership move on the same Session mutation line.\n const admitSelected = async (selection: { id: string; operationId?: string }, replay = false) =>\n writable(() =>\n harness.commit(async (tx: Tx) => {\n const doc = await tx.doc(LifecycleDoc);\n const record = JSON.parse(doc.json) as LifecycleRecord;\n const q = record.queue.find((q) => q.id === selection.id);\n if (!q || q.explicitQueue !== true) return 'not_found' as const;\n const requestId = `${q.id}:${q.attempt ?? 0}`;\n // An accepted request survives completion/replacement and a lost acknowledgement.\n const accepted = await tx.submissionByRequest(conversation.id, requestId);\n if (accepted && accepted.type !== 'input')\n throw new Error(`Request ${requestId} already identifies a submission of type ${accepted.type}`);\n if (accepted && replay) return accepted.id;\n if (q.disposition === 'removed' || q.disposition === 'consumed') return 'not_found' as const;\n if (accepted || q.disposition !== 'pending') return 'in_flight' as const;\n const live = await tx.doc(LiveDoc, conversation.id);\n const task = live.run ? await tx.task(live.run.taskId) : undefined;\n if (\n (live.run ? String(live.run.inputs[0]) : undefined) !== selection.operationId ||\n task?.abortRequested ||\n (live.run && record.abortOperationId === selection.operationId)\n )\n return 'target_changed' as const;\n if (!live.run) {\n let page = await tx.scanTasks(\n { conversationId: conversation.id, kind: CompactionTask.definition.name, background: false },\n 128,\n );\n while (true) {\n if (page.items.some((task) => task.state.status !== 'terminal')) return 'target_changed' as const;\n if (!page.next) break;\n page = await tx.scanTasks(\n { conversationId: conversation.id, kind: CompactionTask.definition.name, background: false },\n 128,\n page.next,\n );\n }\n }\n const content = input(q.message ?? q.text, q.images);\n const inbox = await tx.doc(InboxDoc, conversation.id);\n // Native final boundaries read the active head before any table writes.\n let head = live.run ? undefined : (await tx.latestHeadMarker(conversation.id))?.head;\n const now = Date.now();\n let id: SubmissionId;\n if (!live.run && inbox.items.length === 0) {\n const entry = await tx.appendEntry(UserEntry, conversation.id, {\n model: [{ role: 'user', content, timestamp: now }],\n });\n id = (\n await tx.createSubmission({\n conversationId: conversation.id,\n requestId,\n type: 'input',\n status: 'placed',\n entry: entry.id,\n })\n ).id;\n live.run = {\n taskId: await tx.createTask(\n GenerationTask,\n {},\n { ownership: { kind: 'conversation' }, conversationId: conversation.id },\n ),\n inputs: [id],\n };\n } else {\n id = (\n await tx.createSubmission({ conversationId: conversation.id, requestId, type: 'input', status: 'queued' })\n ).id;\n inbox.items.push({ id, mode: 'steer', content: json(content) as typeof content });\n if (!live.run) {\n // Preserve native write-first placement, stale heads, queue modes and\n // positional input order rather than restarting just the selected input.\n const writes = inbox.items.flatMap((item, index) => (item.mode === 'write' ? [index] : []));\n const pick = (mode: 'steer' | 'followUp') => {\n const indexes = inbox.items.flatMap((item, index) => (item.mode === mode ? [index] : []));\n const queueMode = mode === 'steer' ? settings.steeringMode : settings.followUpMode;\n return queueMode === 'all' ? indexes : indexes.slice(0, 1);\n };\n const users = [...pick('steer'), ...pick('followUp')].sort((a, b) => a - b);\n for (const index of writes) {\n const item = inbox.items[index]!;\n if (item.mode !== 'write') continue;\n // Public InboxDoc represents native write drafts as JsonObject.\n const draft = item.entry as unknown as Extract<\n Parameters<Conversation['submit']>[0],\n { type: 'write' }\n >['entry'];\n if (typeof draft.head === 'number' && head !== undefined && draft.head < head) {\n tx.settleSubmission(item.id, { status: 'unanswered', reason: 'stale' });\n continue;\n }\n const entry = await tx.appendEntry(conversation.id, draft);\n if (draft.head !== undefined) head = draft.head === 'self' ? entry.id : draft.head;\n tx.placeSubmission(item.id, entry.id);\n }\n const inputs: SubmissionId[] = [];\n for (const index of users) {\n const item = inbox.items[index]!;\n if (item.mode === 'write') continue;\n const entry = await tx.appendEntry(UserEntry, conversation.id, {\n model: [{ role: 'user', content: item.content, timestamp: now }],\n });\n tx.placeSubmission(item.id, entry.id);\n inputs.push(item.id);\n }\n for (const index of [...writes, ...users].sort((a, b) => b - a)) inbox.items.splice(index, 1);\n if (inputs.length)\n live.run = {\n taskId: await tx.createTask(\n GenerationTask,\n {},\n { ownership: { kind: 'conversation' }, conversationId: conversation.id },\n ),\n inputs,\n };\n }\n }\n q.disposition = 'handoff';\n q.conversationId = conversation.id;\n q.submissionMode = 'steer';\n q.submissionId = id;\n record.revision++;\n doc.json = JSON.stringify(record);\n return id;\n }, context),\n );\n const submitUserPrompt = async (\n message: string | Extract<AgentMessage, { role: 'user' }>,\n images?: ImageContent[],\n selection?: { id: string; operationId?: string },\n submissionMode: 'reject' | 'steer' = 'reject',\n ): Promise<{\n settled: Promise<void>;\n handledCommand?: boolean;\n queueOutcome?: 'not_found' | 'in_flight' | 'target_changed';\n }> => {\n guardUserAdmission();\n if (external) throw new Error('An operation is already running');\n if (!selection && (typeof message === 'string' ? !message && !images?.length : !message.content.length))\n throw new Error('User input must contain text or an image');\n if (!selection && typeof message === 'string' && (await dispatchCommand(message)))\n return { settled: Promise.resolve(), handledCommand: true };\n assertUnlocked();\n guardUserAdmission();\n if (external) throw new Error('An operation is already running');\n userAdmission = true;\n userAdmissionSettled = new Promise<void>((resolve) => {\n releaseUserAdmission = resolve;\n });\n let claimed: Retained | undefined;\n try {\n if (selection && submissionMode === 'steer') {\n let admitted;\n try {\n admitted = await admitSelected(selection);\n } catch (error) {\n // Re-enter the line to find an accepted request before rechecking its target.\n const accepted = await storage.storage.submissionByRequest(\n conversation.id,\n `${selection.id}:${(await readRecord()).queue.find((q) => q.id === selection.id)?.attempt ?? 0}`,\n context,\n );\n if (!accepted) throw error;\n admitted = await admitSelected(selection, true);\n }\n if (typeof admitted === 'string') return { settled: Promise.resolve(), queueOutcome: admitted };\n const submission = await harness.submission(admitted, context);\n if (!submission) throw new Error('Accepted promotion submission is missing');\n const settled = (async () => {\n const status = await submission.wait(context);\n await eventsSettled;\n await reconcile();\n await publish();\n if (status.status === 'unanswered' && status.reason !== 'aborted')\n throw new Error(`Agent submission failed: ${status.reason}`);\n await drain();\n })();\n void settled.catch((error) => emit({ type: 'error', code: 'user_prompt', error: String(error) }));\n await reconcile();\n await publish();\n return { settled };\n }\n const current = await execution();\n if (selection) {\n const outcome = await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === selection.id);\n if (!q || q.explicitQueue !== true || q.disposition === 'removed' || q.disposition === 'consumed')\n return 'not_found' as const;\n if (q.disposition !== 'pending') return 'in_flight' as const;\n if (current?.id !== selection.operationId || current?.status === 'aborting')\n return 'target_changed' as const;\n if (q.message && q.message.role !== 'user') throw new Error('Only user input can interrupt and respond');\n userClaims.add(q.id);\n if (submissionMode === 'reject') r.paused = true;\n q.disposition = 'handoff';\n q.conversationId = conversation.id;\n q.submissionMode = submissionMode;\n return { ...q };\n });\n if (typeof outcome === 'string') return { settled: Promise.resolve(), queueOutcome: outcome };\n claimed = outcome;\n }\n if (submissionMode === 'reject') {\n if (current) await abort(current.id);\n await conversation.waitForIdle(context);\n await eventsSettled;\n }\n if (!selection) await flushNextTurn();\n if (!claimed) {\n const { id } = await enqueue(\n message,\n images,\n submissionMode === 'steer' ? 'steer' : 'nextRun',\n submissionMode === 'steer' ? 'automatic' : 'held',\n );\n claimed = await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === id);\n if (!q || q.disposition !== 'pending') throw new Error('User input was removed before admission');\n q.disposition = 'handoff';\n q.conversationId = conversation.id;\n q.submissionMode = submissionMode;\n return { ...q };\n });\n }\n const submission = await handoff(claimed, submissionMode, true);\n if (!submission) throw new Error('User admission ownership changed');\n const settled = (async () => {\n const status = await submission.wait(context);\n await eventsSettled;\n await reconcile();\n await publish();\n if (status.status === 'unanswered' && status.reason !== 'aborted')\n throw new Error(`Agent submission failed: ${status.reason}`);\n await drain();\n })();\n void settled.catch((error) => emit({ type: 'error', code: 'user_prompt', error: String(error) }));\n await publish();\n return { settled };\n } finally {\n if (claimed) userClaims.delete(claimed.id);\n if (selection) userClaims.delete(selection.id);\n userAdmission = false;\n releaseUserAdmission?.();\n releaseUserAdmission = undefined;\n }\n };\n const recover = async () => {\n const r = await readRecord();\n if (r.abortOperationId) {\n const task =\n r.abortTaskId === undefined\n ? undefined\n : await harness.getTask(r.abortTaskId as Parameters<typeof harness.getTask>[0], context);\n if (task && task.state.status !== 'terminal') await conversation.abort(context);\n }\n for (const item of r.queue.filter((q) => q.disposition === 'handoff' && !q.submissionId)) {\n // requestId deduplicates the crash window between native admission and product receipt.\n if (item.conversationId !== conversation.id) {\n await changeRecord((record) => {\n const q = record.queue.find((q) => q.id === item.id);\n if (q) q.disposition = 'uncertain';\n });\n continue;\n }\n await handoff(item, item.submissionMode ?? (item.delivery === 'steer' ? 'steer' : 'followUp'), true);\n }\n await reconcile();\n await changeRecord(() => undefined);\n };\n const admissionBusy = () =>\n userAdmission ||\n promptAdmissions > 0 ||\n settling > 0 ||\n handingOff.size > 0 ||\n admittingInternal.size > 0 ||\n compactionAdmission;\n const runExternalOperation = async <T>(\n work: () => Promise<T>,\n { signal, waitMs = 0 }: { signal?: AbortSignal; waitMs?: number } = {},\n ): Promise<T> => {\n if (!Number.isFinite(waitMs) || waitMs < 0) throw new RangeError('waitMs must be finite and non-negative');\n const deadline = Date.now() + waitMs;\n const pendingFollowUp = async () => {\n if (waitMs === 0 || agentLocked) return false;\n const record = await readRecord();\n return (\n !record.paused &&\n record.queue.some((item) => item.disposition === 'pending' || item.disposition === 'handoff')\n );\n };\n for (;;) {\n if (waitMs === 0) guardUserAdmission();\n signal?.throwIfAborted();\n if (disposed || disposePromise) throw new Error('Direct harness is disposed');\n const busy = (await nativeExecution()) || (await pendingFollowUp());\n signal?.throwIfAborted();\n if (disposed || disposePromise) throw new Error('Direct harness is disposed');\n // Claim synchronously after every await, so simultaneous external calls cannot both own the lane.\n if (!busy && !external && !admissionBusy()) {\n external = randomUUID();\n let admitted = false;\n try {\n const changed = (await nativeExecution()) || (await pendingFollowUp());\n signal?.throwIfAborted();\n if (disposed || disposePromise) throw new Error('Direct harness is disposed');\n if (waitMs > 0 && Date.now() >= deadline) throw new DoomHeadlessToolBusyError();\n admitted = !changed && !admissionBusy();\n } finally {\n if (!admitted) {\n external = undefined;\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n }\n }\n if (admitted) break;\n }\n const remaining = deadline - Date.now();\n if (remaining <= 0) throw new DoomHeadlessToolBusyError();\n // ponytail: bounded polling, not FIFO. Add ordered admission only if callers need it.\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await awaitWithContext(\n new Promise<void>((resolve) => {\n timer = setTimeout(resolve, Math.min(100, remaining));\n }),\n signal ? withAbortSignal(signal, context) : context,\n );\n } finally {\n clearTimeout(timer);\n }\n }\n externalAbort = new AbortController();\n try {\n await publish();\n return await writable(work);\n } finally {\n external = undefined;\n externalAbort = undefined;\n await publish();\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n }\n };\n const appendEntry = async (entry: Parameters<Conversation['submit']>[0] & { type: 'write' }) => {\n const lane = conversation;\n const submission = await writable(() => lane.submit(entry, context));\n const receipt = await submission.wait(context);\n if (receipt.status !== 'done') throw new Error(`Entry write failed: ${receipt.reason}`);\n return String(receipt.entry);\n };\n // Restore only unchanged native contributions, retaining canonical edits and occurrence ordering.\n const restoreCustomContextMessages = async (\n messages: readonly Message[],\n ctx: Context,\n view: Awaited<ReturnType<Conversation['context']>>,\n conversationId = conversation.id,\n ): Promise<AgentMessage[]> => {\n const contextContributions = new Map<string, AgentMessage[]>();\n const customByEntry = new Map<number, AgentMessage>();\n for (const raw of view.entries) {\n const entry = projectDurableEntries([raw])[0];\n if (entry?.type !== 'message' || entry.message.role !== 'custom') continue;\n const data = raw.data && typeof raw.data === 'object' && !Array.isArray(raw.data) ? raw.data : undefined;\n const receipt =\n typeof data?.inputRequestId === 'string'\n ? await storage.storage.submissionByRequest(conversationId, data.inputRequestId, ctx)\n : undefined;\n const fallback =\n receipt?.status === 'unanswered' &&\n !('entry' in receipt && receipt.entry !== undefined) &&\n typeof data?.inputRequestId === 'string'\n ? await storage.storage.submissionByRequest(conversationId, `${data.inputRequestId}:context`, ctx)\n : undefined;\n const placed = fallback ?? receipt;\n const placedEntry =\n placed && 'entry' in placed && placed.entry !== undefined\n ? view.entries.find((candidate) => candidate.id === placed.entry)\n : undefined;\n const target = placedEntry?.edits?.some((edit) => edit.target === raw.id)\n ? raw.id\n : (placedEntry?.id ?? raw.id);\n const contributions = view.contributions[view.entries.findIndex((candidate) => candidate.id === target)];\n const original = placedEntry?.edits?.find((edit) => edit.target === raw.id && edit.action === 'replace');\n const model = original?.messages ?? view.entries.find((candidate) => candidate.id === target)?.model;\n if (\n model?.length === 1 &&\n contributions?.length === 1 &&\n JSON.stringify(model[0]) === JSON.stringify(contributions[0])\n )\n customByEntry.set(target, entry.message);\n }\n for (const [index, raw] of view.entries.entries()) {\n const custom = customByEntry.get(raw.id);\n for (const native of view.contributions[index] ?? []) {\n const key = JSON.stringify(native);\n const message = custom && view.contributions[index]?.length === 1 ? custom : native;\n const contributions = contextContributions.get(key) ?? [];\n contributions.push(message);\n contextContributions.set(key, contributions);\n }\n }\n return messages\n .filter((message) => message.role !== 'system')\n .map((message) => contextContributions.get(JSON.stringify(message))?.shift() ?? message);\n };\n const readEntries = async () => {\n const entries = await projectDurableConversationEntries(conversation, context);\n return { entries, leafId: entries.at(-1)?.id ?? null };\n };\n const getSessionStats = async () => {\n const { entries } = await readEntries();\n const messages = entries.flatMap((e) => (e.type === 'message' ? [e.message] : []));\n const agent = await conversation.agent(context);\n const selected = agent.model ? models.getModel(agent.model.provider, agent.model.modelId) : undefined;\n const contextUsage = contextUsageOf(contextTokensOf(latestAssistantUsage(entries)), selected?.contextWindow);\n const usage = await harness.usage(context);\n const all = [...Object.values(usage.models), ...Object.values(usage.tools)];\n const tokens = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 };\n let cost = 0;\n for (const u of all) {\n tokens.input += u.input;\n tokens.output += u.output;\n tokens.cacheRead += u.cacheRead;\n tokens.cacheWrite += u.cacheWrite;\n tokens.total += u.totalTokens;\n cost += u.cost.total;\n }\n return {\n sessionId,\n sessionFile: storage.sessionFile,\n ...(contextUsage === undefined ? {} : { contextUsage }),\n messageCount: messages.length,\n totalMessages: messages.length,\n userMessages: messages.filter((m) => m.role === 'user').length,\n assistantMessages: messages.filter((m) => m.role === 'assistant').length,\n toolCalls: messages.flatMap((m) =>\n m.role === 'assistant' ? m.content.filter((c) => c.type === 'toolCall') : [],\n ).length,\n toolResults: messages.filter((m) => m.role === 'toolResult').length,\n tokens,\n cost,\n totalCost: cost,\n usage: {\n input: tokens.input,\n output: tokens.output,\n cacheRead: tokens.cacheRead,\n cacheWrite: tokens.cacheWrite,\n totalTokens: tokens.total,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: cost },\n },\n };\n };\n let disposePromise: Promise<void> | undefined;\n const dispose = () =>\n (disposePromise ??= (async () => {\n const failures: unknown[] = [];\n const attempt = async (cleanup: () => Promise<unknown>) => {\n try {\n await cleanup();\n return true;\n } catch (error) {\n failures.push(error);\n return false;\n }\n };\n await attempt(interrupt);\n disposed = true;\n await attempt(() => watcher.stop());\n await attempt(() => eventsSettled);\n const harnessClosed = await attempt(() => harness.close(context));\n const repositoryClosed = harnessClosed && (await attempt(async () => storage.repository?.close(context)));\n await attempt(() => environment.cleanup(context));\n if (harnessClosed && repositoryClosed) await attempt(async () => storage.historyLease?.release());\n resolveExited(failures.length ? 1 : 0);\n if (failures.length) throw new AggregateError(failures, 'Direct harness cleanup failed');\n })());\n const recordUsage: DirectHarnessRuntime<TContext>['recordUsage'] = async (usage, usageOptions) => {\n const entryId = await appendEntry({\n type: 'write',\n entry: { kind: 'po.usage', data: json({ usage, ...usageOptions }) },\n });\n await writable(() =>\n harness.commit(async (tx) => {\n const ledger = await tx.doc(UsageDoc, conversation.id);\n const key = 'po/auxiliary';\n const previous = ledger.models[key];\n ledger.models[key] = previous\n ? {\n ...usage,\n input: previous.input + usage.input,\n output: previous.output + usage.output,\n cacheRead: previous.cacheRead + usage.cacheRead,\n cacheWrite: previous.cacheWrite + usage.cacheWrite,\n totalTokens: previous.totalTokens + usage.totalTokens,\n cost: {\n input: previous.cost.input + usage.cost.input,\n output: previous.cost.output + usage.cost.output,\n cacheRead: previous.cost.cacheRead + usage.cost.cacheRead,\n cacheWrite: previous.cost.cacheWrite + usage.cost.cacheWrite,\n total: previous.cost.total + usage.cost.total,\n },\n }\n : usage;\n }, context),\n );\n return entryId;\n };\n const removeQueued: DirectHarnessRuntime<TContext>['removeQueued'] = async (id) => {\n const item = (await readRecord()).queue.find((q) => q.id === id);\n if (!item || item.explicitQueue !== true) return 'not_found';\n if (item.disposition === 'consumed') return 'already_consumed';\n if (item.disposition === 'removed') return 'removed';\n if (item.submissionId) {\n const result = await harness.abortSubmission(item.submissionId as SubmissionId, context, conversation.id);\n if (result === 'already_placed') return 'in_flight';\n if (result === 'settled') return 'already_consumed';\n } else if (item.disposition !== 'pending') return 'in_flight';\n const result = await changeRecord((r) => {\n const q = r.queue.find((q) => q.id === id);\n if (!q || q.explicitQueue !== true) return 'not_found' as const;\n if (q.disposition === 'consumed') return 'already_consumed' as const;\n if (q.disposition === 'removed') return 'removed' as const;\n if (q.submissionId !== item.submissionId || (item.submissionId === undefined && q.disposition !== 'pending'))\n return 'in_flight' as const;\n q.disposition = 'removed';\n q.text = '';\n delete q.message;\n delete q.images;\n return 'removed' as const;\n });\n await publish();\n return result;\n };\n const commitCheckpointMessage = async (\n registration: { active: boolean },\n lane: Conversation,\n message: AgentMessage,\n ctx: Context,\n scopeIsOpen: () => boolean = () => true,\n taskId?: TaskId,\n ): Promise<string | undefined> => {\n const usable = () =>\n registration.active &&\n scopeIsOpen() &&\n !disposed &&\n !quarantined &&\n !external &&\n conversation.id === lane.id &&\n !ctx.abortSignal?.aborted;\n if (!usable()) return;\n return writable(async () => {\n if (!usable()) return;\n return harness.commit(async (tx) => {\n if (!usable()) return;\n const live = await tx.doc(LiveDoc, lane.id);\n const inbox = await tx.doc(InboxDoc, lane.id);\n if (\n !usable() ||\n live.compactions?.length ||\n inbox.items.some((item) => item.mode !== 'write') ||\n (taskId === undefined ? live.run !== undefined : live.run?.taskId !== taskId)\n )\n return;\n const entry = await tx.appendEntry(lane.id, {\n kind: 'po.entry',\n data: json({ type: 'message', message, timestamp: message.timestamp }),\n model: convertToLlm([message]),\n });\n return String(entry.id);\n }, ctx);\n });\n };\n const appendMessage = (message: AgentMessage) =>\n appendEntry({\n type: 'write',\n entry: {\n kind: 'po.entry',\n data: json({ type: 'message', message, timestamp: message.timestamp }),\n model: convertToLlm([message]),\n },\n });\n return {\n sessionId,\n sessionFile: storage.sessionFile,\n laneName,\n harnessId: options.harnessId ?? `${sessionId}:${laneName}`,\n session: harness,\n harness,\n get lane() {\n return conversation;\n },\n exited,\n get storageQuarantined() {\n return quarantined;\n },\n completeModel: models.complete?.bind(models),\n onPresentationFrame(listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n onEvent(listener) {\n eventListeners.add(listener);\n return () => eventListeners.delete(listener);\n },\n stop() {\n void dispose().catch((error) => emit({ type: 'error', error: String(error) }));\n },\n readEntries,\n async getContextMessages() {\n const assertReadable = () => {\n if (disposed || quarantined) throw new Error('Direct harness context is unavailable', { cause: failure });\n };\n assertReadable();\n const lane = conversation;\n const view = await lane.context(context);\n assertReadable();\n const messages = await restoreCustomContextMessages(view.messages, context, view, lane.id);\n assertReadable();\n return structuredClone(messages);\n },\n readLifecycle,\n dispatchCommand,\n listCommands: () => [...(options.listCommands?.() ?? [])],\n async readState() {\n const lifecycle = await readLifecycle();\n const agent = await conversation.agent(context);\n const metadata = await harness.snapshot(SessionMetadataDoc, context);\n const stats = await getSessionStats();\n const inbox = await harness.snapshot(InboxDoc, conversation.id, context);\n const retained = (await readRecord()).queue;\n const retainedSubmissions = new Set(retained.map((item) => item.submissionId));\n const nativePending =\n inbox?.items.filter((item) => item.mode !== 'write' && !retainedSubmissions.has(item.id)).length ?? 0;\n return json({\n sessionId,\n sessionFile: storage.sessionFile,\n sessionName: metadata?.name,\n model: agent.model ? { provider: agent.model.provider, id: agent.model.modelId } : undefined,\n thinkingLevel: agent.thinkingLevel,\n isIdle: !(await execution()) && !admissionBusy(),\n isStreaming: lifecycle.operation?.kind === 'run',\n isCompacting: lifecycle.operation?.kind === 'compaction',\n operationId: lifecycle.operation?.id,\n executionStatus: lifecycle.operation?.status,\n fastMode,\n agentLocked,\n queuePaused: lifecycle.paused,\n queueRevision: lifecycle.revision,\n steeringMode: settings.steeringMode ?? 'one-at-a-time',\n followUpMode: settings.followUpMode ?? 'one-at-a-time',\n autoCompactionEnabled: settings.compaction?.enabled ?? true,\n messageCount: stats.messageCount,\n pendingMessageCount:\n retained.filter((item) => item.disposition !== 'consumed' && item.disposition !== 'removed').length +\n nativePending +\n nextTurnMessages.length +\n deferredInternalCount,\n }) as Record<string, unknown>;\n },\n enqueueAutomatic: async (value, images) => {\n assertUnlocked();\n const result = await enqueue(value, images, 'nextRun', 'automatic', true);\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n return result;\n },\n removeQueued,\n async promoteQueued(id, operationId) {\n const result = await submitUserPrompt('', undefined, { id, operationId }, 'steer');\n return result.queueOutcome ?? 'promoted';\n },\n async resumeQueue() {\n guardUserAdmission();\n await changeRecord((r) => {\n r.paused = false;\n delete r.abortOperationId;\n delete r.abortTaskId;\n });\n await publish();\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n },\n recover,\n async setFastMode(enabled) {\n if (enabled) {\n const selected = (await conversation.agent(context)).model;\n const model = selected ? models.getModel(selected.provider, selected.modelId) : undefined;\n if (model?.api !== CODEX_API || model.provider !== CODEX_PROVIDER)\n throw new Error('Fast mode requires an OpenAI Codex model');\n }\n await writable(() =>\n harness.commit(async (tx) => {\n (await tx.doc(FastModeDoc)).enabled = enabled;\n await tx.appendEntry(conversation.id, { kind: 'po.fast-mode', data: { version: 1, enabled, sessionId } });\n }, context),\n );\n fastMode = enabled;\n emit({ type: 'fast_mode_changed', enabled });\n },\n agentLocked: () => agentLocked,\n async setAgentLock(locked) {\n if (typeof locked !== 'boolean') throw new Error('Agent lock must be a boolean.');\n await writable(() =>\n harness.commit(async (tx) => {\n (await tx.doc(AgentLockDoc)).locked = locked;\n }, context),\n );\n agentLocked = locked;\n emit({ type: 'agent_lock_changed', locked });\n if (!locked) return;\n // Only a local agent run stops; a remote MCP operation keeps running.\n const current = await execution();\n if (current?.kind === 'run') await abort(current.id);\n },\n async setModel(model) {\n const previous = (await conversation.agent(context)).model;\n if (!models.getModel(model.provider, model.id))\n throw new Error(`Model not found: ${model.provider}/${model.id}`);\n await writable(() =>\n conversation.configure({ model: { provider: model.provider, modelId: model.id } }, context),\n );\n await deliver(\n {\n type: 'config_update',\n property: 'model',\n value: { provider: model.provider, modelId: model.id },\n previous,\n },\n context,\n );\n emit({ type: 'model_select', model });\n },\n availableModels: () => models.getAvailable(),\n async availableThinkingLevels() {\n const agent = await conversation.agent(context);\n const model = agent.model ? models.getModel(agent.model.provider, agent.model.modelId) : undefined;\n if (!model) throw new Error('No model is selected');\n return getSupportedThinkingLevels(model);\n },\n setThinkingLevel: (level) => writable(() => conversation.configure({ thinkingLevel: level }, context)),\n async setSteeringMode(mode) {\n settings = { ...settings, steeringMode: mode };\n },\n async setFollowUpMode(mode) {\n settings = { ...settings, followUpMode: mode };\n },\n navigateTree: (targetId, navigationOptions) =>\n runExternalOperation(async () => {\n try {\n const expected = conversation.id;\n if (\n targetId !== null &&\n !(await storage.storage.entry(conversation.id, nativeId<EntryId>(targetId), context))\n )\n throw new Error('Navigation target is not in the selected conversation');\n const oldTip = (await readEntries()).leafId;\n await deliver({ type: 'navigation_start' }, context);\n emit({ type: 'navigation_start', targetId });\n let summary = navigationOptions?.summary;\n if (navigationOptions?.summarize === true && summary === undefined) {\n const selected = (await conversation.agent(context)).model;\n const model = selected ? models.getModel(selected.provider, selected.modelId) : undefined;\n if (!model) throw new Error('No model is selected for navigation summary');\n const instructions = navigationOptions.customInstructions;\n if (instructions !== undefined && typeof instructions !== 'string')\n throw new Error('Navigation instructions must be a string');\n const base =\n 'Summarize this conversation for continuing work on another branch. Include decisions, progress, remaining work, and essential context. Return only the summary.';\n const messages: Message[] = [\n {\n role: 'system',\n content:\n navigationOptions.replaceInstructions === true\n ? (instructions ?? base)\n : [base, instructions].filter(Boolean).join('\\n\\n'),\n timestamp: Date.now(),\n },\n {\n role: 'user',\n content: JSON.stringify((await conversation.context(context)).messages),\n timestamp: Date.now(),\n },\n ];\n await options.beforeModelRequest?.({ phase: 'request', model, prompt: messages, resources }, context);\n const summaryContext = withAbortSignal(externalAbort!.signal, context);\n let answer: AssistantMessage;\n try {\n answer = await awaitWithContext(\n models.complete(model, { messages }, { signal: externalAbort!.signal }),\n summaryContext,\n );\n } catch (error) {\n if (externalAbort?.signal.aborted) {\n await deliver(\n { type: 'navigation_end', status: 'aborted', tipId: oldTip, fromTipId: oldTip },\n context,\n );\n emit({ type: 'navigation_end', status: 'aborted' });\n return { cancelled: true, entries: (await readEntries()).entries };\n }\n throw error;\n }\n if (answer.stopReason === 'error' || answer.stopReason === 'aborted')\n throw new Error(answer.errorMessage ?? 'Navigation summary failed');\n summary = text(answer).trim();\n await recordUsage(answer.usage, { details: { purpose: 'branch_summary' } });\n }\n if (externalAbort?.signal.aborted) {\n await deliver({ type: 'navigation_end', status: 'aborted', tipId: oldTip, fromTipId: oldTip }, context);\n emit({ type: 'navigation_end', status: 'aborted' });\n return { cancelled: true, entries: (await readEntries()).entries };\n }\n if (summary !== undefined && typeof summary !== 'string')\n throw new Error('Navigation summary must be a string');\n const id = await navigateDurableConversation(\n harness,\n expected,\n targetId === null ? null : nativeId<EntryId>(targetId),\n context,\n typeof summary === 'string'\n ? {\n summary: {\n kind: 'po.entry',\n data: {\n type: 'branch_summary',\n summary,\n fromId: targetId,\n fromHook: navigationOptions?.summarize !== true,\n },\n model: [\n {\n role: 'user',\n content: `<branch_summary>\\n${summary}\\n</branch_summary>`,\n timestamp: Date.now(),\n },\n ],\n },\n }\n : undefined,\n );\n const agent = await conversation.agent(context);\n conversation = (await harness.conversation(id, context))!;\n if (targetId === null)\n await conversation.configure(\n {\n model: agent.model,\n thinkingLevel: agent.thinkingLevel,\n cwd: agent.cwd,\n tools: tools.filter((t) => activeNames.has(t.name)).map(nativeTool),\n instructions: agent.instructions,\n },\n context,\n );\n await attach();\n const result = await readEntries();\n if (typeof navigationOptions?.label === 'string' && targetId !== null)\n await harness.commit(async (tx) => {\n (await tx.doc(LabelsDoc)).labels[targetId] = navigationOptions.label as string;\n }, context);\n for (const entry of result.entries)\n if (entry.type === 'branch_summary') await deliver({ type: 'entry_added', entry }, context);\n const event: HarnessEvent = {\n type: 'navigation_end',\n status: 'completed',\n tipId: result.leafId,\n fromTipId: oldTip,\n };\n await deliver(event, context);\n emit({ ...event });\n return { cancelled: false, entries: result.entries };\n } catch (error) {\n await deliver(\n {\n type: 'navigation_end',\n status: 'failed',\n tipId: null,\n fromTipId: null,\n error: error instanceof Error ? error : new Error(String(error)),\n },\n context,\n );\n emit({ type: 'navigation_end', status: 'failed', error: String(error) });\n throw error;\n }\n }),\n async clearQueue() {\n const selected = (await readRecord()).queue.filter(\n (item) => item.explicitQueue === true && item.disposition !== 'consumed' && item.disposition !== 'removed',\n );\n for (const item of selected) await removeQueued(item.id);\n await publish();\n return { steering: [], followUp: [] };\n },\n async setName(name) {\n await writable(() =>\n harness.commit(async (tx) => {\n (await tx.doc(SessionMetadataDoc)).name = name;\n }, context),\n );\n emit({ type: 'session_info_changed', name });\n },\n getSessionStats,\n async replaceTools(replacement) {\n tools = replacement;\n activeNames = new Set(tools.map((t) => t.name));\n install();\n await writable(() => conversation.configure({ tools: tools.map(nativeTool) }, context));\n },\n async replaceResources(replacement) {\n resources = replacement;\n install();\n },\n async readResources() {\n return resources;\n },\n runExternalOperation,\n appendCustomEntry: async (customType, data) => {\n const lane = conversation;\n return String(\n (\n await writable(() =>\n lane.commit(\n (tx) =>\n tx.appendEntry(lane.id, {\n kind: customType,\n ...(data === undefined ? {} : { data: json(data) }),\n ...(options.entryProjectors?.[customType]\n ? {\n model: convertToLlm(\n options.entryProjectors[customType]({\n type: 'custom',\n id: '',\n parentId: null,\n timestamp: Date.now(),\n seq: 0,\n customType,\n ...(data === undefined ? {} : { data: json(data) }),\n }),\n ),\n }\n : {}),\n }),\n context,\n ),\n )\n ).id,\n );\n },\n appendMessage,\n registerCheckpointBoundary(callback) {\n const registration = { active: true, callback };\n checkpointBoundaries.add(registration);\n return {\n appendMessage: (message) => commitCheckpointMessage(registration, conversation, message, context),\n dispose() {\n registration.active = false;\n checkpointBoundaries.delete(registration);\n },\n };\n },\n setLabel: (targetId, label) =>\n writable(() =>\n harness.commit(async (tx) => {\n const labels = (await tx.doc(LabelsDoc)).labels;\n if (label === undefined) delete labels[targetId];\n else labels[targetId] = label;\n }, context),\n ),\n recordUsage,\n submitPrompt: admit,\n submitUserPrompt,\n prompt: async (value, images) => {\n await (\n await admit(value, images)\n ).settled;\n },\n admitMessage: (message) => admit(message),\n submitInternalMessage: async function submitInternalMessage(\n message,\n delivery = 'steer',\n requestId = randomUUID(),\n ) {\n if (typeof message !== 'string' && message.role !== 'user' && message.role !== 'custom')\n throw new Error('Internal input must be user or custom message content');\n if (delivery === 'nextTurn') {\n nextTurnMessages.push(\n typeof message === 'string' ? { role: 'user', content: message, timestamp: Date.now() } : message,\n );\n return { settled: Promise.resolve() };\n }\n const preserved: AgentMessage =\n typeof message === 'string' ? { role: 'user', content: message, timestamp: Date.now() } : message;\n // A locked agent records environmental input for its next turn without starting one.\n if (agentLocked) {\n await appendMessage(preserved);\n return { settled: Promise.resolve() };\n }\n const deliveryRecord: InternalDeliveryRecord = { message: preserved, conversationId: conversation.id };\n if (userAdmission) {\n deferredInternalCount++;\n admittingInternal.add(requestId);\n try {\n await changeRecord((r) => {\n (r.internalDeliveries ??= {})[requestId] = deliveryRecord;\n });\n } catch (error) {\n deferredInternalCount--;\n admittingInternal.delete(requestId);\n throw error;\n }\n const released = userAdmissionSettled;\n const settled = released.then(async () => {\n deferredInternalCount--;\n admittingInternal.delete(requestId);\n await (\n await submitInternalMessage(preserved, delivery, requestId)\n ).settled;\n });\n void settled.catch((error) => emit({ type: 'error', code: 'internal_message', error: String(error) }));\n return { settled };\n }\n if (external) throw new Error('An operation is already running');\n const content = typeof message === 'string' ? message : message.content;\n const submit = async (draft: Parameters<Conversation['submit']>[0] & { requestId: string }) => {\n try {\n return await writable(() => conversation.submit(draft, context));\n } catch (error) {\n const accepted = await storage.storage.submissionByRequest(conversation.id, draft.requestId, context);\n const submission = accepted && (await harness.submission(accepted.id, context));\n if (!submission) throw error;\n return submission;\n }\n };\n admittingInternal.add(requestId);\n // Preserve custom presentation metadata without adding its content twice to model context.\n let envelope: Awaited<ReturnType<Conversation['submit']>> | undefined;\n let submission: Awaited<ReturnType<Conversation['submit']>>;\n try {\n await changeRecord((r) => {\n (r.internalDeliveries ??= {})[requestId] = deliveryRecord;\n });\n envelope =\n typeof message !== 'string' && message.role === 'custom'\n ? await submit({\n type: 'write',\n requestId: `${requestId}:message`,\n entry: {\n kind: 'po.entry',\n data: json({ type: 'message', message, timestamp: message.timestamp, inputRequestId: requestId }),\n },\n })\n : undefined;\n submission = await submit({ type: 'input', content, whenBusy: delivery, requestId });\n await changeRecord((r) => {\n const item = r.internalDeliveries?.[requestId];\n if (item) item.submissionId = submission.id;\n });\n } finally {\n admittingInternal.delete(requestId);\n }\n let pendingDelivery = internalDelivery.get(submission.id);\n if (!pendingDelivery) {\n let resolveDelivery!: () => void;\n const done = new Promise<void>((resolve) => {\n resolveDelivery = resolve;\n });\n pendingDelivery = { done, resolve: resolveDelivery };\n internalDelivery.set(submission.id, pendingDelivery);\n }\n if (deliveredInputs.has(submission.id)) pendingDelivery.resolve();\n const delivered = pendingDelivery.done;\n const settled = (async () => {\n try {\n const status = await submission.wait(context);\n if (status.status === 'unanswered' && status.entry === undefined) {\n await conversation.waitForIdle(context);\n await reconcileInternal(requestId, deliveryRecord);\n }\n if (envelope && (await envelope.wait(context)).status !== 'done')\n throw new Error('Internal message journal write failed');\n if (status.status === 'done' || status.entry !== undefined) {\n const live = await harness.snapshot(\n LiveDoc,\n deliveryRecord.conversationId as typeof conversation.id,\n context,\n );\n // Reopened or aged-out receipts have no future run-end notification.\n if (!live?.run?.inputs.some((id) => String(id) === String(submission.id))) pendingDelivery.resolve();\n await delivered;\n }\n await eventsSettled;\n await reconcileInternal(requestId, deliveryRecord);\n } finally {\n internalDelivery.delete(submission.id);\n }\n })();\n void settled.catch((error) => emit({ type: 'error', code: 'internal_message', error: String(error) }));\n return { settled };\n },\n steer: async (message, images) => {\n if (typeof message !== 'string' && message.role !== 'user')\n throw new Error('Only user messages can steer an agent run');\n await submitUserPrompt(message, images, undefined, 'steer');\n },\n followUp: (message, images) => queued(message, images, 'followUp'),\n nextRun: (message, images) => queued(message, images, 'nextRun'),\n abort,\n interrupt,\n async compact(instructions) {\n guardUserAdmission();\n if (external || compactionAdmission) throw new Error('An operation is already running');\n compactionAdmission = true;\n const previous = settings;\n try {\n if (await execution()) throw new Error('An operation is already running');\n settings = { ...settings, compaction: { ...settings.compaction, keepRecentTokens: 0 } };\n const task = await writable(() => conversation.compact(instructions, context));\n const receipt = await harness.waitForTask(task, context);\n await eventsSettled;\n if (['failed', 'faulted', 'orphaned'].includes(receipt.state.outcome.status))\n throw new Error('Compaction failed');\n } finally {\n settings = previous;\n compactionAdmission = false;\n }\n },\n async admitResume() {\n await recover();\n const resumed = !!(await execution());\n harness.resume();\n const settled = (async () => {\n await conversation.waitForIdle(context);\n await eventsSettled;\n await drain();\n })();\n void settled.catch((error) => emit({ type: 'error', code: 'resume', error: String(error) }));\n return { resumed, settled };\n },\n async resume() {\n await recover();\n const resumed = !!(await execution());\n harness.resume();\n if (resumed) {\n await conversation.waitForIdle(context);\n await eventsSettled;\n }\n void drain().catch((error) => emit({ type: 'error', error: String(error) }));\n return resumed;\n },\n dispose,\n };\n } catch (error) {\n const failures: unknown[] = [error];\n try {\n if (startupHarness) await startupHarness.close(context);\n else await storage.storage.close(context);\n } catch (closeError) {\n failures.push(closeError);\n }\n if (failures.length === 1) {\n try {\n await storage.repository?.close(context);\n await storage.historyLease?.release();\n } catch (closeError) {\n failures.push(closeError);\n }\n }\n if (failures.length > 1) throw new AggregateError(failures, 'Direct harness startup and cleanup failed');\n throw error;\n }\n}\nexport type { DirectHarnessRuntime, DirectHarnessRuntimeOptions } from '../types/server/directHarnessRuntime';\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { DirectHarnessRuntime, DirectHarnessRuntimeOptions } from "../types/server/directHarnessRuntime.mjs";
2
+ import { Conversation } from "@earendil-works/pi-durable";
3
+ import { Context } from "@earendil-works/chord";
4
+ export type { DirectHarnessRuntime, DirectHarnessRuntimeOptions };