@agimon-ai/doompi-core 0.0.1-alpha.100

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 (1233) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -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 +2009 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +1018 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +1989 -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 +7 -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 +8 -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 +10 -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 +100 -0
  50. package/dist/contextDetailStore.cjs.map +1 -0
  51. package/dist/contextDetailStore.d.mts +19 -0
  52. package/dist/contextDetailStore.d.mts.map +1 -0
  53. package/dist/contextDetailStore.mjs +91 -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 +11 -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 +231 -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 +225 -0
  78. package/dist/executionBudget.mjs.map +1 -0
  79. package/dist/extensionFile.cjs +24 -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 +9 -0
  86. package/dist/headless.d.mts +2 -0
  87. package/dist/headless.mjs +2 -0
  88. package/dist/headlessHub.cjs +914 -0
  89. package/dist/headlessHub.cjs.map +1 -0
  90. package/dist/headlessHub.d.mts +157 -0
  91. package/dist/headlessHub.d.mts.map +1 -0
  92. package/dist/headlessHub.mjs +911 -0
  93. package/dist/headlessHub.mjs.map +1 -0
  94. package/dist/headlessServer.cjs +910 -0
  95. package/dist/headlessServer.cjs.map +1 -0
  96. package/dist/headlessServer.d.mts +64 -0
  97. package/dist/headlessServer.d.mts.map +1 -0
  98. package/dist/headlessServer.mjs +904 -0
  99. package/dist/headlessServer.mjs.map +1 -0
  100. package/dist/headlessSessionHost.cjs +0 -0
  101. package/dist/headlessSessionHost.d.mts +71 -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/historyImport.cjs +553 -0
  117. package/dist/historyImport.cjs.map +1 -0
  118. package/dist/historyImport.d.mts +76 -0
  119. package/dist/historyImport.d.mts.map +1 -0
  120. package/dist/historyImport.mjs +547 -0
  121. package/dist/historyImport.mjs.map +1 -0
  122. package/dist/historyOwnership.cjs +253 -0
  123. package/dist/historyOwnership.cjs.map +1 -0
  124. package/dist/historyOwnership.d.mts +23 -0
  125. package/dist/historyOwnership.d.mts.map +1 -0
  126. package/dist/historyOwnership.mjs +247 -0
  127. package/dist/historyOwnership.mjs.map +1 -0
  128. package/dist/hubChannel.cjs +4 -0
  129. package/dist/hubChannel.d.mts +2 -0
  130. package/dist/hubChannel.mjs +2 -0
  131. package/dist/index.cjs +44 -0
  132. package/dist/index.d.mts +6 -0
  133. package/dist/index.mjs +6 -0
  134. package/dist/json.cjs +6 -0
  135. package/dist/json.d.mts +2 -0
  136. package/dist/json.mjs +2 -0
  137. package/dist/jsonlSessionRepo.cjs +217 -0
  138. package/dist/jsonlSessionRepo.cjs.map +1 -0
  139. package/dist/jsonlSessionRepo.d.mts +7 -0
  140. package/dist/jsonlSessionRepo.d.mts.map +1 -0
  141. package/dist/jsonlSessionRepo.mjs +212 -0
  142. package/dist/jsonlSessionRepo.mjs.map +1 -0
  143. package/dist/kernel.cjs +3 -0
  144. package/dist/kernel.d.mts +3 -0
  145. package/dist/kernel.mjs +2 -0
  146. package/dist/leader.cjs +9 -0
  147. package/dist/leader.d.mts +2 -0
  148. package/dist/leader.mjs +2 -0
  149. package/dist/logSinkTelemetry.cjs +5 -0
  150. package/dist/logSinkTelemetry.d.mts +2 -0
  151. package/dist/logSinkTelemetry.mjs +2 -0
  152. package/dist/machineApi.cjs +92 -0
  153. package/dist/machineApi.cjs.map +1 -0
  154. package/dist/machineApi.d.mts +7 -0
  155. package/dist/machineApi.d.mts.map +1 -0
  156. package/dist/machineApi.mjs +88 -0
  157. package/dist/machineApi.mjs.map +1 -0
  158. package/dist/main.cjs +11 -0
  159. package/dist/main.d.mts +5 -0
  160. package/dist/main.mjs +4 -0
  161. package/dist/mcpFacet.cjs +12 -0
  162. package/dist/mcpFacet.d.mts +4 -0
  163. package/dist/mcpFacet.mjs +4 -0
  164. package/dist/mcpProjection.cjs +16 -0
  165. package/dist/mcpProjection.d.mts +2 -0
  166. package/dist/mcpProjection.mjs +2 -0
  167. package/dist/mcpSchemaCost.cjs +195 -0
  168. package/dist/mcpSchemaCost.cjs.map +1 -0
  169. package/dist/mcpSchemaCost.d.mts +35 -0
  170. package/dist/mcpSchemaCost.d.mts.map +1 -0
  171. package/dist/mcpSchemaCost.mjs +190 -0
  172. package/dist/mcpSchemaCost.mjs.map +1 -0
  173. package/dist/mcpSession.cjs +9 -0
  174. package/dist/mcpSession.d.mts +2 -0
  175. package/dist/mcpSession.mjs +2 -0
  176. package/dist/mcpStatus.cjs +7 -0
  177. package/dist/mcpStatus.d.mts +2 -0
  178. package/dist/mcpStatus.mjs +2 -0
  179. package/dist/mcpToolResolver.cjs +5 -0
  180. package/dist/mcpToolResolver.d.mts +2 -0
  181. package/dist/mcpToolResolver.mjs +2 -0
  182. package/dist/mcpWidget.cjs +0 -0
  183. package/dist/mcpWidget.d.mts +2 -0
  184. package/dist/mcpWidget.mjs +1 -0
  185. package/dist/moduleResolution.cjs +405 -0
  186. package/dist/moduleResolution.cjs.map +1 -0
  187. package/dist/moduleResolution.d.mts +67 -0
  188. package/dist/moduleResolution.d.mts.map +1 -0
  189. package/dist/moduleResolution.mjs +389 -0
  190. package/dist/moduleResolution.mjs.map +1 -0
  191. package/dist/narration.cjs +10 -0
  192. package/dist/narration.d.mts +2 -0
  193. package/dist/narration.mjs +2 -0
  194. package/dist/notification.cjs +17 -0
  195. package/dist/notification.d.mts +2 -0
  196. package/dist/notification.mjs +2 -0
  197. package/dist/packageApi.cjs +16 -0
  198. package/dist/packageApi.d.mts +3 -0
  199. package/dist/packageApi.mjs +3 -0
  200. package/dist/packageApiServer.cjs +191 -0
  201. package/dist/packageApiServer.cjs.map +1 -0
  202. package/dist/packageApiServer.d.mts +57 -0
  203. package/dist/packageApiServer.d.mts.map +1 -0
  204. package/dist/packageApiServer.mjs +189 -0
  205. package/dist/packageApiServer.mjs.map +1 -0
  206. package/dist/piExtension.cjs +13 -0
  207. package/dist/piExtension.d.mts +5 -0
  208. package/dist/piExtension.mjs +4 -0
  209. package/dist/piSettings.cjs +12 -0
  210. package/dist/piSettings.d.mts +2 -0
  211. package/dist/piSettings.mjs +2 -0
  212. package/dist/pluginProtocol.cjs +10 -0
  213. package/dist/pluginProtocol.d.mts +2 -0
  214. package/dist/pluginProtocol.mjs +2 -0
  215. package/dist/profileIdentity.cjs +6 -0
  216. package/dist/profileIdentity.d.mts +2 -0
  217. package/dist/profileIdentity.mjs +2 -0
  218. package/dist/protocol.cjs +10 -0
  219. package/dist/protocol.d.mts +2 -0
  220. package/dist/protocol.mjs +2 -0
  221. package/dist/readiness.cjs +8 -0
  222. package/dist/readiness.d.mts +2 -0
  223. package/dist/readiness.mjs +2 -0
  224. package/dist/relaunchHandoff.cjs +6 -0
  225. package/dist/relaunchHandoff.d.mts +2 -0
  226. package/dist/relaunchHandoff.mjs +2 -0
  227. package/dist/remoteApi.cjs +42 -0
  228. package/dist/remoteApi.cjs.map +1 -0
  229. package/dist/remoteApi.d.mts +7 -0
  230. package/dist/remoteApi.d.mts.map +1 -0
  231. package/dist/remoteApi.mjs +41 -0
  232. package/dist/remoteApi.mjs.map +1 -0
  233. package/dist/remoteRuntime.cjs +460 -0
  234. package/dist/remoteRuntime.cjs.map +1 -0
  235. package/dist/remoteRuntime.d.mts +28 -0
  236. package/dist/remoteRuntime.d.mts.map +1 -0
  237. package/dist/remoteRuntime.mjs +456 -0
  238. package/dist/remoteRuntime.mjs.map +1 -0
  239. package/dist/runtimeConfig.cjs +232 -0
  240. package/dist/runtimeConfig.cjs.map +1 -0
  241. package/dist/runtimeConfig.d.mts +313 -0
  242. package/dist/runtimeConfig.d.mts.map +1 -0
  243. package/dist/runtimeConfig.mjs +221 -0
  244. package/dist/runtimeConfig.mjs.map +1 -0
  245. package/dist/runtimeContextApi.cjs +64 -0
  246. package/dist/runtimeContextApi.cjs.map +1 -0
  247. package/dist/runtimeContextApi.d.mts +16 -0
  248. package/dist/runtimeContextApi.d.mts.map +1 -0
  249. package/dist/runtimeContextApi.mjs +62 -0
  250. package/dist/runtimeContextApi.mjs.map +1 -0
  251. package/dist/runtimeCordisHost.cjs +193 -0
  252. package/dist/runtimeCordisHost.cjs.map +1 -0
  253. package/dist/runtimeCordisHost.d.mts +63 -0
  254. package/dist/runtimeCordisHost.d.mts.map +1 -0
  255. package/dist/runtimeCordisHost.mjs +184 -0
  256. package/dist/runtimeCordisHost.mjs.map +1 -0
  257. package/dist/runtimeHeadlessSessionManager.cjs +0 -0
  258. package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
  259. package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
  260. package/dist/runtimeHeadlessSessionManager.mjs +1 -0
  261. package/dist/runtimeIdentity.cjs +26 -0
  262. package/dist/runtimeIdentity.cjs.map +1 -0
  263. package/dist/runtimeIdentity.d.mts +7 -0
  264. package/dist/runtimeIdentity.d.mts.map +1 -0
  265. package/dist/runtimeIdentity.mjs +21 -0
  266. package/dist/runtimeIdentity.mjs.map +1 -0
  267. package/dist/runtimeJson.cjs +46 -0
  268. package/dist/runtimeJson.cjs.map +1 -0
  269. package/dist/runtimeJson.d.mts +22 -0
  270. package/dist/runtimeJson.d.mts.map +1 -0
  271. package/dist/runtimeJson.mjs +39 -0
  272. package/dist/runtimeJson.mjs.map +1 -0
  273. package/dist/runtimeLogSinkTelemetry.cjs +102 -0
  274. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
  275. package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
  276. package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
  277. package/dist/runtimeLogSinkTelemetry.mjs +99 -0
  278. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
  279. package/dist/runtimePiExtension.cjs +339 -0
  280. package/dist/runtimePiExtension.cjs.map +1 -0
  281. package/dist/runtimePiExtension.d.mts +160 -0
  282. package/dist/runtimePiExtension.d.mts.map +1 -0
  283. package/dist/runtimePiExtension.mjs +333 -0
  284. package/dist/runtimePiExtension.mjs.map +1 -0
  285. package/dist/runtimePiSettings.cjs +116 -0
  286. package/dist/runtimePiSettings.cjs.map +1 -0
  287. package/dist/runtimePiSettings.d.mts +29 -0
  288. package/dist/runtimePiSettings.d.mts.map +1 -0
  289. package/dist/runtimePiSettings.mjs +103 -0
  290. package/dist/runtimePiSettings.mjs.map +1 -0
  291. package/dist/runtimeProtocol.cjs +223 -0
  292. package/dist/runtimeProtocol.cjs.map +1 -0
  293. package/dist/runtimeProtocol.d.mts +84 -0
  294. package/dist/runtimeProtocol.d.mts.map +1 -0
  295. package/dist/runtimeProtocol.mjs +215 -0
  296. package/dist/runtimeProtocol.mjs.map +1 -0
  297. package/dist/runtimeToolNames.cjs +51 -0
  298. package/dist/runtimeToolNames.cjs.map +1 -0
  299. package/dist/runtimeToolNames.d.mts +24 -0
  300. package/dist/runtimeToolNames.d.mts.map +1 -0
  301. package/dist/runtimeToolNames.mjs +49 -0
  302. package/dist/runtimeToolNames.mjs.map +1 -0
  303. package/dist/runtimeTransition.cjs +27 -0
  304. package/dist/runtimeTransition.cjs.map +1 -0
  305. package/dist/runtimeTransition.d.mts +114 -0
  306. package/dist/runtimeTransition.d.mts.map +1 -0
  307. package/dist/runtimeTransition.mjs +24 -0
  308. package/dist/runtimeTransition.mjs.map +1 -0
  309. package/dist/sandboxHarness.cjs +6 -0
  310. package/dist/sandboxHarness.d.mts +2 -0
  311. package/dist/sandboxHarness.mjs +2 -0
  312. package/dist/server.cjs +17 -0
  313. package/dist/server.d.mts +10 -0
  314. package/dist/server.mjs +7 -0
  315. package/dist/serverFacet.cjs +30 -0
  316. package/dist/serverFacet.d.mts +8 -0
  317. package/dist/serverFacet.mjs +8 -0
  318. package/dist/serverTelemetry.cjs +25 -0
  319. package/dist/serverTelemetry.cjs.map +1 -0
  320. package/dist/serverTelemetry.d.mts +12 -0
  321. package/dist/serverTelemetry.d.mts.map +1 -0
  322. package/dist/serverTelemetry.mjs +23 -0
  323. package/dist/serverTelemetry.mjs.map +1 -0
  324. package/dist/sessionFilesApi.cjs +96 -0
  325. package/dist/sessionFilesApi.cjs.map +1 -0
  326. package/dist/sessionFilesApi.d.mts +7 -0
  327. package/dist/sessionFilesApi.d.mts.map +1 -0
  328. package/dist/sessionFilesApi.mjs +91 -0
  329. package/dist/sessionFilesApi.mjs.map +1 -0
  330. package/dist/sessionMcp.cjs +6 -0
  331. package/dist/sessionMcp.d.mts +5 -0
  332. package/dist/sessionMcp.mjs +3 -0
  333. package/dist/sessionProtocol.cjs +8 -0
  334. package/dist/sessionProtocol.d.mts +3 -0
  335. package/dist/sessionProtocol.mjs +2 -0
  336. package/dist/skills.cjs +9 -0
  337. package/dist/skills.d.mts +2 -0
  338. package/dist/skills.mjs +2 -0
  339. package/dist/sqliteHistoryImport.cjs +151 -0
  340. package/dist/sqliteHistoryImport.cjs.map +1 -0
  341. package/dist/sqliteHistoryImport.d.mts +8 -0
  342. package/dist/sqliteHistoryImport.d.mts.map +1 -0
  343. package/dist/sqliteHistoryImport.mjs +146 -0
  344. package/dist/sqliteHistoryImport.mjs.map +1 -0
  345. package/dist/sqliteSessionStorage.cjs +53 -0
  346. package/dist/sqliteSessionStorage.cjs.map +1 -0
  347. package/dist/sqliteSessionStorage.d.mts +7 -0
  348. package/dist/sqliteSessionStorage.d.mts.map +1 -0
  349. package/dist/sqliteSessionStorage.mjs +49 -0
  350. package/dist/sqliteSessionStorage.mjs.map +1 -0
  351. package/dist/src/constants/authorTools.cjs +10 -0
  352. package/dist/src/constants/authorTools.cjs.map +1 -0
  353. package/dist/src/constants/authorTools.d.mts +6 -0
  354. package/dist/src/constants/authorTools.d.mts.map +1 -0
  355. package/dist/src/constants/authorTools.mjs +8 -0
  356. package/dist/src/constants/authorTools.mjs.map +1 -0
  357. package/dist/src/constants/contextApi.cjs +28 -0
  358. package/dist/src/constants/contextApi.cjs.map +1 -0
  359. package/dist/src/constants/contextApi.d.mts +21 -0
  360. package/dist/src/constants/contextApi.d.mts.map +1 -0
  361. package/dist/src/constants/contextApi.mjs +23 -0
  362. package/dist/src/constants/contextApi.mjs.map +1 -0
  363. package/dist/src/constants/remote.cjs +90 -0
  364. package/dist/src/constants/remote.cjs.map +1 -0
  365. package/dist/src/constants/remote.mjs +69 -0
  366. package/dist/src/constants/remote.mjs.map +1 -0
  367. package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
  368. package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
  369. package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
  370. package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
  371. package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
  372. package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
  373. package/dist/src/constants/voiceTools.cjs +96 -0
  374. package/dist/src/constants/voiceTools.cjs.map +1 -0
  375. package/dist/src/constants/voiceTools.d.mts +58 -0
  376. package/dist/src/constants/voiceTools.d.mts.map +1 -0
  377. package/dist/src/constants/voiceTools.mjs +60 -0
  378. package/dist/src/constants/voiceTools.mjs.map +1 -0
  379. package/dist/src/extensions/extensionFile.cjs +165 -0
  380. package/dist/src/extensions/extensionFile.cjs.map +1 -0
  381. package/dist/src/extensions/extensionFile.d.mts +79 -0
  382. package/dist/src/extensions/extensionFile.d.mts.map +1 -0
  383. package/dist/src/extensions/extensionFile.mjs +144 -0
  384. package/dist/src/extensions/extensionFile.mjs.map +1 -0
  385. package/dist/src/extensions/serverPlugin.cjs +106 -0
  386. package/dist/src/extensions/serverPlugin.cjs.map +1 -0
  387. package/dist/src/extensions/serverPlugin.d.mts +5 -0
  388. package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
  389. package/dist/src/extensions/serverPlugin.mjs +106 -0
  390. package/dist/src/extensions/serverPlugin.mjs.map +1 -0
  391. package/dist/src/extensions/webPlugin.cjs +131 -0
  392. package/dist/src/extensions/webPlugin.cjs.map +1 -0
  393. package/dist/src/extensions/webPlugin.d.mts +66 -0
  394. package/dist/src/extensions/webPlugin.d.mts.map +1 -0
  395. package/dist/src/extensions/webPlugin.mjs +110 -0
  396. package/dist/src/extensions/webPlugin.mjs.map +1 -0
  397. package/dist/src/pi/piSessionRuntime.cjs +572 -0
  398. package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
  399. package/dist/src/pi/piSessionRuntime.d.mts +43 -0
  400. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
  401. package/dist/src/pi/piSessionRuntime.mjs +571 -0
  402. package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
  403. package/dist/src/pi/piWebSocketListener.cjs +115 -0
  404. package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
  405. package/dist/src/pi/piWebSocketListener.mjs +115 -0
  406. package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
  407. package/dist/src/schemas/agentModel.cjs +33 -0
  408. package/dist/src/schemas/agentModel.cjs.map +1 -0
  409. package/dist/src/schemas/agentModel.d.mts +26 -0
  410. package/dist/src/schemas/agentModel.d.mts.map +1 -0
  411. package/dist/src/schemas/agentModel.mjs +32 -0
  412. package/dist/src/schemas/agentModel.mjs.map +1 -0
  413. package/dist/src/schemas/apiContracts.d.mts +58 -0
  414. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  415. package/dist/src/schemas/askUser.cjs +42 -0
  416. package/dist/src/schemas/askUser.cjs.map +1 -0
  417. package/dist/src/schemas/askUser.d.mts +47 -0
  418. package/dist/src/schemas/askUser.d.mts.map +1 -0
  419. package/dist/src/schemas/askUser.mjs +37 -0
  420. package/dist/src/schemas/askUser.mjs.map +1 -0
  421. package/dist/src/schemas/backgroundWork.cjs +31 -0
  422. package/dist/src/schemas/backgroundWork.cjs.map +1 -0
  423. package/dist/src/schemas/backgroundWork.d.mts +72 -0
  424. package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
  425. package/dist/src/schemas/backgroundWork.mjs +27 -0
  426. package/dist/src/schemas/backgroundWork.mjs.map +1 -0
  427. package/dist/src/schemas/childProcess.cjs +67 -0
  428. package/dist/src/schemas/childProcess.cjs.map +1 -0
  429. package/dist/src/schemas/childProcess.d.mts +30 -0
  430. package/dist/src/schemas/childProcess.d.mts.map +1 -0
  431. package/dist/src/schemas/childProcess.mjs +55 -0
  432. package/dist/src/schemas/childProcess.mjs.map +1 -0
  433. package/dist/src/schemas/cockpitContainer.cjs +31 -0
  434. package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
  435. package/dist/src/schemas/cockpitContainer.d.mts +80 -0
  436. package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
  437. package/dist/src/schemas/cockpitContainer.mjs +30 -0
  438. package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
  439. package/dist/src/schemas/contextContributions.cjs +17 -0
  440. package/dist/src/schemas/contextContributions.cjs.map +1 -0
  441. package/dist/src/schemas/contextContributions.d.mts +49 -0
  442. package/dist/src/schemas/contextContributions.d.mts.map +1 -0
  443. package/dist/src/schemas/contextContributions.mjs +15 -0
  444. package/dist/src/schemas/contextContributions.mjs.map +1 -0
  445. package/dist/src/schemas/delegation.cjs +91 -0
  446. package/dist/src/schemas/delegation.cjs.map +1 -0
  447. package/dist/src/schemas/delegation.d.mts +95 -0
  448. package/dist/src/schemas/delegation.d.mts.map +1 -0
  449. package/dist/src/schemas/delegation.mjs +76 -0
  450. package/dist/src/schemas/delegation.mjs.map +1 -0
  451. package/dist/src/schemas/extensionFile.d.mts +136 -0
  452. package/dist/src/schemas/extensionFile.d.mts.map +1 -0
  453. package/dist/src/schemas/footer.cjs +48 -0
  454. package/dist/src/schemas/footer.cjs.map +1 -0
  455. package/dist/src/schemas/footer.d.mts +48 -0
  456. package/dist/src/schemas/footer.d.mts.map +1 -0
  457. package/dist/src/schemas/footer.mjs +45 -0
  458. package/dist/src/schemas/footer.mjs.map +1 -0
  459. package/dist/src/schemas/headless.cjs +44 -0
  460. package/dist/src/schemas/headless.cjs.map +1 -0
  461. package/dist/src/schemas/headless.d.mts +370 -0
  462. package/dist/src/schemas/headless.d.mts.map +1 -0
  463. package/dist/src/schemas/headless.mjs +38 -0
  464. package/dist/src/schemas/headless.mjs.map +1 -0
  465. package/dist/src/schemas/help.cjs +281 -0
  466. package/dist/src/schemas/help.cjs.map +1 -0
  467. package/dist/src/schemas/help.d.mts +119 -0
  468. package/dist/src/schemas/help.d.mts.map +1 -0
  469. package/dist/src/schemas/help.mjs +262 -0
  470. package/dist/src/schemas/help.mjs.map +1 -0
  471. package/dist/src/schemas/hubChannel.cjs +20 -0
  472. package/dist/src/schemas/hubChannel.cjs.map +1 -0
  473. package/dist/src/schemas/hubChannel.d.mts +236 -0
  474. package/dist/src/schemas/hubChannel.d.mts.map +1 -0
  475. package/dist/src/schemas/hubChannel.mjs +19 -0
  476. package/dist/src/schemas/hubChannel.mjs.map +1 -0
  477. package/dist/src/schemas/leader.cjs +57 -0
  478. package/dist/src/schemas/leader.cjs.map +1 -0
  479. package/dist/src/schemas/leader.d.mts +107 -0
  480. package/dist/src/schemas/leader.d.mts.map +1 -0
  481. package/dist/src/schemas/leader.mjs +51 -0
  482. package/dist/src/schemas/leader.mjs.map +1 -0
  483. package/dist/src/schemas/mcpBundle.cjs +92 -0
  484. package/dist/src/schemas/mcpBundle.cjs.map +1 -0
  485. package/dist/src/schemas/mcpBundle.d.mts +33 -0
  486. package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
  487. package/dist/src/schemas/mcpBundle.mjs +90 -0
  488. package/dist/src/schemas/mcpBundle.mjs.map +1 -0
  489. package/dist/src/schemas/mcpFacet.cjs +24 -0
  490. package/dist/src/schemas/mcpFacet.cjs.map +1 -0
  491. package/dist/src/schemas/mcpFacet.d.mts +91 -0
  492. package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
  493. package/dist/src/schemas/mcpFacet.mjs +21 -0
  494. package/dist/src/schemas/mcpFacet.mjs.map +1 -0
  495. package/dist/src/schemas/mcpProjection.cjs +117 -0
  496. package/dist/src/schemas/mcpProjection.cjs.map +1 -0
  497. package/dist/src/schemas/mcpProjection.d.mts +124 -0
  498. package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
  499. package/dist/src/schemas/mcpProjection.mjs +104 -0
  500. package/dist/src/schemas/mcpProjection.mjs.map +1 -0
  501. package/dist/src/schemas/mcpSession.cjs +57 -0
  502. package/dist/src/schemas/mcpSession.cjs.map +1 -0
  503. package/dist/src/schemas/mcpSession.d.mts +57 -0
  504. package/dist/src/schemas/mcpSession.d.mts.map +1 -0
  505. package/dist/src/schemas/mcpSession.mjs +51 -0
  506. package/dist/src/schemas/mcpSession.mjs.map +1 -0
  507. package/dist/src/schemas/mcpStatus.cjs +52 -0
  508. package/dist/src/schemas/mcpStatus.cjs.map +1 -0
  509. package/dist/src/schemas/mcpStatus.d.mts +73 -0
  510. package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
  511. package/dist/src/schemas/mcpStatus.mjs +48 -0
  512. package/dist/src/schemas/mcpStatus.mjs.map +1 -0
  513. package/dist/src/schemas/mcpToolResolver.cjs +17 -0
  514. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
  515. package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
  516. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
  517. package/dist/src/schemas/mcpToolResolver.mjs +15 -0
  518. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
  519. package/dist/src/schemas/narration.cjs +54 -0
  520. package/dist/src/schemas/narration.cjs.map +1 -0
  521. package/dist/src/schemas/narration.d.mts +29 -0
  522. package/dist/src/schemas/narration.d.mts.map +1 -0
  523. package/dist/src/schemas/narration.mjs +47 -0
  524. package/dist/src/schemas/narration.mjs.map +1 -0
  525. package/dist/src/schemas/notification.cjs +122 -0
  526. package/dist/src/schemas/notification.cjs.map +1 -0
  527. package/dist/src/schemas/notification.d.mts +48 -0
  528. package/dist/src/schemas/notification.d.mts.map +1 -0
  529. package/dist/src/schemas/notification.mjs +108 -0
  530. package/dist/src/schemas/notification.mjs.map +1 -0
  531. package/dist/src/schemas/packageApi.cjs +73 -0
  532. package/dist/src/schemas/packageApi.cjs.map +1 -0
  533. package/dist/src/schemas/packageApi.d.mts +249 -0
  534. package/dist/src/schemas/packageApi.d.mts.map +1 -0
  535. package/dist/src/schemas/packageApi.mjs +64 -0
  536. package/dist/src/schemas/packageApi.mjs.map +1 -0
  537. package/dist/src/schemas/piTool.cjs +26 -0
  538. package/dist/src/schemas/piTool.cjs.map +1 -0
  539. package/dist/src/schemas/piTool.d.mts +25 -0
  540. package/dist/src/schemas/piTool.d.mts.map +1 -0
  541. package/dist/src/schemas/piTool.mjs +26 -0
  542. package/dist/src/schemas/piTool.mjs.map +1 -0
  543. package/dist/src/schemas/pluginContributions.cjs +19 -0
  544. package/dist/src/schemas/pluginContributions.cjs.map +1 -0
  545. package/dist/src/schemas/pluginContributions.d.mts +56 -0
  546. package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
  547. package/dist/src/schemas/pluginContributions.mjs +18 -0
  548. package/dist/src/schemas/pluginContributions.mjs.map +1 -0
  549. package/dist/src/schemas/pluginProtocol.cjs +103 -0
  550. package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
  551. package/dist/src/schemas/pluginProtocol.d.mts +68 -0
  552. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
  553. package/dist/src/schemas/pluginProtocol.mjs +96 -0
  554. package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
  555. package/dist/src/schemas/profileIdentity.cjs +67 -0
  556. package/dist/src/schemas/profileIdentity.cjs.map +1 -0
  557. package/dist/src/schemas/profileIdentity.d.mts +50 -0
  558. package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
  559. package/dist/src/schemas/profileIdentity.mjs +64 -0
  560. package/dist/src/schemas/profileIdentity.mjs.map +1 -0
  561. package/dist/src/schemas/readiness.cjs +251 -0
  562. package/dist/src/schemas/readiness.cjs.map +1 -0
  563. package/dist/src/schemas/readiness.d.mts +84 -0
  564. package/dist/src/schemas/readiness.d.mts.map +1 -0
  565. package/dist/src/schemas/readiness.mjs +246 -0
  566. package/dist/src/schemas/readiness.mjs.map +1 -0
  567. package/dist/src/schemas/relaunchHandoff.cjs +47 -0
  568. package/dist/src/schemas/relaunchHandoff.cjs.map +1 -0
  569. package/dist/src/schemas/relaunchHandoff.d.mts +25 -0
  570. package/dist/src/schemas/relaunchHandoff.d.mts.map +1 -0
  571. package/dist/src/schemas/relaunchHandoff.mjs +44 -0
  572. package/dist/src/schemas/relaunchHandoff.mjs.map +1 -0
  573. package/dist/src/schemas/sandboxHarness.cjs +29 -0
  574. package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
  575. package/dist/src/schemas/sandboxHarness.d.mts +39 -0
  576. package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
  577. package/dist/src/schemas/sandboxHarness.mjs +26 -0
  578. package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
  579. package/dist/src/schemas/serverBundle.cjs +79 -0
  580. package/dist/src/schemas/serverBundle.cjs.map +1 -0
  581. package/dist/src/schemas/serverBundle.d.mts +34 -0
  582. package/dist/src/schemas/serverBundle.d.mts.map +1 -0
  583. package/dist/src/schemas/serverBundle.mjs +77 -0
  584. package/dist/src/schemas/serverBundle.mjs.map +1 -0
  585. package/dist/src/schemas/serverFacet.cjs +102 -0
  586. package/dist/src/schemas/serverFacet.cjs.map +1 -0
  587. package/dist/src/schemas/serverFacet.d.mts +141 -0
  588. package/dist/src/schemas/serverFacet.d.mts.map +1 -0
  589. package/dist/src/schemas/serverFacet.mjs +93 -0
  590. package/dist/src/schemas/serverFacet.mjs.map +1 -0
  591. package/dist/src/schemas/sessionMcpActivity.d.mts +45 -0
  592. package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
  593. package/dist/src/schemas/sessionProtocol.cjs +17 -0
  594. package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
  595. package/dist/src/schemas/sessionProtocol.d.mts +308 -0
  596. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
  597. package/dist/src/schemas/sessionProtocol.mjs +12 -0
  598. package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
  599. package/dist/src/schemas/sessionUpdates.d.mts +34 -0
  600. package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
  601. package/dist/src/schemas/skills.cjs +115 -0
  602. package/dist/src/schemas/skills.cjs.map +1 -0
  603. package/dist/src/schemas/skills.d.mts +65 -0
  604. package/dist/src/schemas/skills.d.mts.map +1 -0
  605. package/dist/src/schemas/skills.mjs +109 -0
  606. package/dist/src/schemas/skills.mjs.map +1 -0
  607. package/dist/src/schemas/toolOverrides.cjs +17 -0
  608. package/dist/src/schemas/toolOverrides.cjs.map +1 -0
  609. package/dist/src/schemas/toolOverrides.d.mts +29 -0
  610. package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
  611. package/dist/src/schemas/toolOverrides.mjs +15 -0
  612. package/dist/src/schemas/toolOverrides.mjs.map +1 -0
  613. package/dist/src/schemas/toolSurface.cjs +17 -0
  614. package/dist/src/schemas/toolSurface.cjs.map +1 -0
  615. package/dist/src/schemas/toolSurface.d.mts +70 -0
  616. package/dist/src/schemas/toolSurface.d.mts.map +1 -0
  617. package/dist/src/schemas/toolSurface.mjs +15 -0
  618. package/dist/src/schemas/toolSurface.mjs.map +1 -0
  619. package/dist/src/schemas/uiHub.cjs +17 -0
  620. package/dist/src/schemas/uiHub.cjs.map +1 -0
  621. package/dist/src/schemas/uiHub.d.mts +23 -0
  622. package/dist/src/schemas/uiHub.d.mts.map +1 -0
  623. package/dist/src/schemas/uiHub.mjs +15 -0
  624. package/dist/src/schemas/uiHub.mjs.map +1 -0
  625. package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
  626. package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
  627. package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
  628. package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
  629. package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
  630. package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
  631. package/dist/src/schemas/voiceTools.cjs +205 -0
  632. package/dist/src/schemas/voiceTools.cjs.map +1 -0
  633. package/dist/src/schemas/voiceTools.d.mts +120 -0
  634. package/dist/src/schemas/voiceTools.d.mts.map +1 -0
  635. package/dist/src/schemas/voiceTools.mjs +194 -0
  636. package/dist/src/schemas/voiceTools.mjs.map +1 -0
  637. package/dist/src/server/devProxyForward.cjs +141 -0
  638. package/dist/src/server/devProxyForward.cjs.map +1 -0
  639. package/dist/src/server/devProxyForward.mjs +139 -0
  640. package/dist/src/server/devProxyForward.mjs.map +1 -0
  641. package/dist/src/server/devProxyRoutes.cjs +97 -0
  642. package/dist/src/server/devProxyRoutes.cjs.map +1 -0
  643. package/dist/src/server/devProxyRoutes.mjs +97 -0
  644. package/dist/src/server/devProxyRoutes.mjs.map +1 -0
  645. package/dist/src/server/devProxySocket.cjs +87 -0
  646. package/dist/src/server/devProxySocket.cjs.map +1 -0
  647. package/dist/src/server/devProxySocket.mjs +87 -0
  648. package/dist/src/server/devProxySocket.mjs.map +1 -0
  649. package/dist/src/server/directHarnessRuntime.cjs +1964 -0
  650. package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
  651. package/dist/src/server/directHarnessRuntime.d.mts +3 -0
  652. package/dist/src/server/directHarnessRuntime.mjs +1958 -0
  653. package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
  654. package/dist/src/server/harnessErrorMessage.cjs +13 -0
  655. package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
  656. package/dist/src/server/harnessErrorMessage.mjs +13 -0
  657. package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
  658. package/dist/src/server/headlessProtocol.cjs +366 -0
  659. package/dist/src/server/headlessProtocol.cjs.map +1 -0
  660. package/dist/src/server/headlessProtocol.mjs +366 -0
  661. package/dist/src/server/headlessProtocol.mjs.map +1 -0
  662. package/dist/src/server/jsonlTranscriptReader.cjs +85 -0
  663. package/dist/src/server/jsonlTranscriptReader.cjs.map +1 -0
  664. package/dist/src/server/jsonlTranscriptReader.mjs +83 -0
  665. package/dist/src/server/jsonlTranscriptReader.mjs.map +1 -0
  666. package/dist/src/server/mcpBundleLoader.cjs +115 -0
  667. package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
  668. package/dist/src/server/mcpBundleLoader.d.mts +27 -0
  669. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
  670. package/dist/src/server/mcpBundleLoader.mjs +111 -0
  671. package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
  672. package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
  673. package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
  674. package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
  675. package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
  676. package/dist/src/server/remoteRoutes.cjs +386 -0
  677. package/dist/src/server/remoteRoutes.cjs.map +1 -0
  678. package/dist/src/server/remoteRoutes.mjs +386 -0
  679. package/dist/src/server/remoteRoutes.mjs.map +1 -0
  680. package/dist/src/server/serverFacetLoader.cjs +220 -0
  681. package/dist/src/server/serverFacetLoader.cjs.map +1 -0
  682. package/dist/src/server/serverFacetLoader.d.mts +77 -0
  683. package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
  684. package/dist/src/server/serverFacetLoader.mjs +215 -0
  685. package/dist/src/server/serverFacetLoader.mjs.map +1 -0
  686. package/dist/src/server/sessionMcpHandler.cjs +494 -0
  687. package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
  688. package/dist/src/server/sessionMcpHandler.d.mts +47 -0
  689. package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
  690. package/dist/src/server/sessionMcpHandler.mjs +493 -0
  691. package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
  692. package/dist/src/server/sessionMcpRoutes.cjs +780 -0
  693. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
  694. package/dist/src/server/sessionMcpRoutes.mjs +775 -0
  695. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
  696. package/dist/src/server/threadJournals.cjs +172 -0
  697. package/dist/src/server/threadJournals.cjs.map +1 -0
  698. package/dist/src/server/threadJournals.mjs +169 -0
  699. package/dist/src/server/threadJournals.mjs.map +1 -0
  700. package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
  701. package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
  702. package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
  703. package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
  704. package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
  705. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
  706. package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
  707. package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
  708. package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
  709. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
  710. package/dist/src/services/bundlePublication/index.cjs +88 -0
  711. package/dist/src/services/bundlePublication/index.cjs.map +1 -0
  712. package/dist/src/services/bundlePublication/index.mjs +85 -0
  713. package/dist/src/services/bundlePublication/index.mjs.map +1 -0
  714. package/dist/src/services/contextApiUrls/index.cjs +14 -0
  715. package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
  716. package/dist/src/services/contextApiUrls/index.d.mts +6 -0
  717. package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
  718. package/dist/src/services/contextApiUrls/index.mjs +14 -0
  719. package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
  720. package/dist/src/services/contextContributions/index.cjs +79 -0
  721. package/dist/src/services/contextContributions/index.cjs.map +1 -0
  722. package/dist/src/services/contextContributions/index.d.mts +6 -0
  723. package/dist/src/services/contextContributions/index.d.mts.map +1 -0
  724. package/dist/src/services/contextContributions/index.mjs +79 -0
  725. package/dist/src/services/contextContributions/index.mjs.map +1 -0
  726. package/dist/src/services/contextUsage/index.cjs +27 -0
  727. package/dist/src/services/contextUsage/index.cjs.map +1 -0
  728. package/dist/src/services/contextUsage/index.mjs +25 -0
  729. package/dist/src/services/contextUsage/index.mjs.map +1 -0
  730. package/dist/src/services/devProxyPolicy/index.cjs +168 -0
  731. package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
  732. package/dist/src/services/devProxyPolicy/index.mjs +165 -0
  733. package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
  734. package/dist/src/services/devProxyStore/index.cjs +107 -0
  735. package/dist/src/services/devProxyStore/index.cjs.map +1 -0
  736. package/dist/src/services/devProxyStore/index.mjs +104 -0
  737. package/dist/src/services/devProxyStore/index.mjs.map +1 -0
  738. package/dist/src/services/deviceAuth/index.cjs +125 -0
  739. package/dist/src/services/deviceAuth/index.cjs.map +1 -0
  740. package/dist/src/services/deviceAuth/index.d.mts +9 -0
  741. package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
  742. package/dist/src/services/deviceAuth/index.mjs +125 -0
  743. package/dist/src/services/deviceAuth/index.mjs.map +1 -0
  744. package/dist/src/services/deviceSessions/index.cjs +147 -0
  745. package/dist/src/services/deviceSessions/index.cjs.map +1 -0
  746. package/dist/src/services/deviceSessions/index.d.mts +15 -0
  747. package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
  748. package/dist/src/services/deviceSessions/index.mjs +141 -0
  749. package/dist/src/services/deviceSessions/index.mjs.map +1 -0
  750. package/dist/src/services/headlessClient/index.cjs +125 -0
  751. package/dist/src/services/headlessClient/index.cjs.map +1 -0
  752. package/dist/src/services/headlessClient/index.mjs +125 -0
  753. package/dist/src/services/headlessClient/index.mjs.map +1 -0
  754. package/dist/src/services/historyCreationFileSystem/index.cjs +115 -0
  755. package/dist/src/services/historyCreationFileSystem/index.cjs.map +1 -0
  756. package/dist/src/services/historyCreationFileSystem/index.mjs +115 -0
  757. package/dist/src/services/historyCreationFileSystem/index.mjs.map +1 -0
  758. package/dist/src/services/hubChannelHarness/index.cjs +50 -0
  759. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
  760. package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
  761. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
  762. package/dist/src/services/hubChannelHarness/index.mjs +50 -0
  763. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
  764. package/dist/src/services/kernel/index.cjs +147 -0
  765. package/dist/src/services/kernel/index.cjs.map +1 -0
  766. package/dist/src/services/kernel/index.d.mts +9 -0
  767. package/dist/src/services/kernel/index.d.mts.map +1 -0
  768. package/dist/src/services/kernel/index.mjs +147 -0
  769. package/dist/src/services/kernel/index.mjs.map +1 -0
  770. package/dist/src/services/loginFlow/index.cjs +131 -0
  771. package/dist/src/services/loginFlow/index.cjs.map +1 -0
  772. package/dist/src/services/loginFlow/index.mjs +131 -0
  773. package/dist/src/services/loginFlow/index.mjs.map +1 -0
  774. package/dist/src/services/loopbackAddress/index.cjs +58 -0
  775. package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
  776. package/dist/src/services/loopbackAddress/index.mjs +56 -0
  777. package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
  778. package/dist/src/services/openSessionRegistry/index.cjs +144 -0
  779. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
  780. package/dist/src/services/openSessionRegistry/index.d.mts +40 -0
  781. package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
  782. package/dist/src/services/openSessionRegistry/index.mjs +141 -0
  783. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
  784. package/dist/src/services/packageApiHarness/index.cjs +36 -0
  785. package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
  786. package/dist/src/services/packageApiHarness/index.d.mts +40 -0
  787. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
  788. package/dist/src/services/packageApiHarness/index.mjs +36 -0
  789. package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
  790. package/dist/src/services/packageResource/index.cjs +54 -0
  791. package/dist/src/services/packageResource/index.cjs.map +1 -0
  792. package/dist/src/services/packageResource/index.d.mts +26 -0
  793. package/dist/src/services/packageResource/index.d.mts.map +1 -0
  794. package/dist/src/services/packageResource/index.mjs +51 -0
  795. package/dist/src/services/packageResource/index.mjs.map +1 -0
  796. package/dist/src/services/pairingFlow/index.cjs +145 -0
  797. package/dist/src/services/pairingFlow/index.cjs.map +1 -0
  798. package/dist/src/services/pairingFlow/index.d.mts +44 -0
  799. package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
  800. package/dist/src/services/pairingFlow/index.mjs +145 -0
  801. package/dist/src/services/pairingFlow/index.mjs.map +1 -0
  802. package/dist/src/services/pairingPage/index.cjs +450 -0
  803. package/dist/src/services/pairingPage/index.cjs.map +1 -0
  804. package/dist/src/services/pairingPage/index.mjs +447 -0
  805. package/dist/src/services/pairingPage/index.mjs.map +1 -0
  806. package/dist/src/services/piExtensionHost/index.cjs +821 -0
  807. package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
  808. package/dist/src/services/piExtensionHost/index.mjs +817 -0
  809. package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
  810. package/dist/src/services/piHelpTools/index.cjs +68 -0
  811. package/dist/src/services/piHelpTools/index.cjs.map +1 -0
  812. package/dist/src/services/piHelpTools/index.d.mts +10 -0
  813. package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
  814. package/dist/src/services/piHelpTools/index.mjs +68 -0
  815. package/dist/src/services/piHelpTools/index.mjs.map +1 -0
  816. package/dist/src/services/piSessionEntries/index.cjs +112 -0
  817. package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
  818. package/dist/src/services/piSessionEntries/index.mjs +108 -0
  819. package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
  820. package/dist/src/services/pluginLifecycle/index.cjs +71 -0
  821. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
  822. package/dist/src/services/pluginLifecycle/index.d.mts +11 -0
  823. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
  824. package/dist/src/services/pluginLifecycle/index.mjs +71 -0
  825. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
  826. package/dist/src/services/providerAuth/index.cjs +156 -0
  827. package/dist/src/services/providerAuth/index.cjs.map +1 -0
  828. package/dist/src/services/providerAuth/index.mjs +154 -0
  829. package/dist/src/services/providerAuth/index.mjs.map +1 -0
  830. package/dist/src/services/remoteAccess/index.cjs +396 -0
  831. package/dist/src/services/remoteAccess/index.cjs.map +1 -0
  832. package/dist/src/services/remoteAccess/index.d.mts +81 -0
  833. package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
  834. package/dist/src/services/remoteAccess/index.mjs +396 -0
  835. package/dist/src/services/remoteAccess/index.mjs.map +1 -0
  836. package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
  837. package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
  839. package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/index.cjs +126 -0
  841. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/index.mjs +121 -0
  843. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
  844. package/dist/src/services/remoteGuardPolicy/index.cjs +190 -0
  845. package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
  846. package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
  847. package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
  848. package/dist/src/services/remoteGuardPolicy/index.mjs +186 -0
  849. package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
  850. package/dist/src/services/requestReceipts/index.cjs +161 -0
  851. package/dist/src/services/requestReceipts/index.cjs.map +1 -0
  852. package/dist/src/services/requestReceipts/index.d.mts +11 -0
  853. package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
  854. package/dist/src/services/requestReceipts/index.mjs +161 -0
  855. package/dist/src/services/requestReceipts/index.mjs.map +1 -0
  856. package/dist/src/services/rpcTranscript/index.cjs +590 -0
  857. package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
  858. package/dist/src/services/rpcTranscript/index.d.mts +50 -0
  859. package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
  860. package/dist/src/services/rpcTranscript/index.mjs +589 -0
  861. package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
  862. package/dist/src/services/serverFacet/index.cjs +197 -0
  863. package/dist/src/services/serverFacet/index.cjs.map +1 -0
  864. package/dist/src/services/serverFacet/index.d.mts +31 -0
  865. package/dist/src/services/serverFacet/index.d.mts.map +1 -0
  866. package/dist/src/services/serverFacet/index.mjs +197 -0
  867. package/dist/src/services/serverFacet/index.mjs.map +1 -0
  868. package/dist/src/services/sessionGitStatus/index.cjs +46 -0
  869. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
  870. package/dist/src/services/sessionGitStatus/index.mjs +46 -0
  871. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
  872. package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
  873. package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
  874. package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
  875. package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
  876. package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
  877. package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
  878. package/dist/src/services/sessionMcpAuthorization/index.cjs +432 -0
  879. package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
  880. package/dist/src/services/sessionMcpAuthorization/index.d.mts +123 -0
  881. package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
  882. package/dist/src/services/sessionMcpAuthorization/index.mjs +430 -0
  883. package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
  884. package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
  885. package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
  886. package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
  887. package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
  888. package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
  889. package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
  890. package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
  891. package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
  892. package/dist/src/services/sessionPresentation/index.cjs +119 -0
  893. package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
  894. package/dist/src/services/sessionPresentation/index.mjs +119 -0
  895. package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
  896. package/dist/src/services/sqliteSessionHistory/index.cjs +105 -0
  897. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
  898. package/dist/src/services/sqliteSessionHistory/index.d.mts +29 -0
  899. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
  900. package/dist/src/services/sqliteSessionHistory/index.mjs +100 -0
  901. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
  902. package/dist/src/services/sqliteTranscriptReader/index.cjs +70 -0
  903. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
  904. package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
  905. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
  906. package/dist/src/services/sqliteTranscriptReader/index.mjs +67 -0
  907. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
  908. package/dist/src/services/toolCost/index.cjs +47 -0
  909. package/dist/src/services/toolCost/index.cjs.map +1 -0
  910. package/dist/src/services/toolCost/index.d.mts +38 -0
  911. package/dist/src/services/toolCost/index.d.mts.map +1 -0
  912. package/dist/src/services/toolCost/index.mjs +46 -0
  913. package/dist/src/services/toolCost/index.mjs.map +1 -0
  914. package/dist/src/services/toolOverrides/index.cjs +45 -0
  915. package/dist/src/services/toolOverrides/index.cjs.map +1 -0
  916. package/dist/src/services/toolOverrides/index.d.mts +6 -0
  917. package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
  918. package/dist/src/services/toolOverrides/index.mjs +45 -0
  919. package/dist/src/services/toolOverrides/index.mjs.map +1 -0
  920. package/dist/src/services/toolPrompt/index.cjs +13 -0
  921. package/dist/src/services/toolPrompt/index.cjs.map +1 -0
  922. package/dist/src/services/toolPrompt/index.mjs +13 -0
  923. package/dist/src/services/toolPrompt/index.mjs.map +1 -0
  924. package/dist/src/services/toolSurface/index.cjs +134 -0
  925. package/dist/src/services/toolSurface/index.cjs.map +1 -0
  926. package/dist/src/services/toolSurface/index.d.mts +19 -0
  927. package/dist/src/services/toolSurface/index.d.mts.map +1 -0
  928. package/dist/src/services/toolSurface/index.mjs +134 -0
  929. package/dist/src/services/toolSurface/index.mjs.map +1 -0
  930. package/dist/src/services/traceContext/index.cjs +13 -0
  931. package/dist/src/services/traceContext/index.cjs.map +1 -0
  932. package/dist/src/services/traceContext/index.mjs +13 -0
  933. package/dist/src/services/traceContext/index.mjs.map +1 -0
  934. package/dist/src/services/transcriptPages/index.cjs +74 -0
  935. package/dist/src/services/transcriptPages/index.cjs.map +1 -0
  936. package/dist/src/services/transcriptPages/index.mjs +73 -0
  937. package/dist/src/services/transcriptPages/index.mjs.map +1 -0
  938. package/dist/src/services/tunnelOutput/index.cjs +58 -0
  939. package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
  940. package/dist/src/services/tunnelOutput/index.mjs +54 -0
  941. package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
  942. package/dist/src/services/tunnelProcess/index.cjs +487 -0
  943. package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
  944. package/dist/src/services/tunnelProcess/index.mjs +481 -0
  945. package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
  946. package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
  947. package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
  948. package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
  949. package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
  950. package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
  951. package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
  952. package/dist/src/services/voiceToolsContract/index.cjs +26 -0
  953. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
  954. package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
  955. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
  956. package/dist/src/services/voiceToolsContract/index.mjs +24 -0
  957. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
  958. package/dist/src/services/webauthn/index.cjs +262 -0
  959. package/dist/src/services/webauthn/index.cjs.map +1 -0
  960. package/dist/src/services/webauthn/index.d.mts +39 -0
  961. package/dist/src/services/webauthn/index.d.mts.map +1 -0
  962. package/dist/src/services/webauthn/index.mjs +262 -0
  963. package/dist/src/services/webauthn/index.mjs.map +1 -0
  964. package/dist/src/services/webauthnPolicy/index.cjs +163 -0
  965. package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
  966. package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
  967. package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
  968. package/dist/src/services/webauthnPolicy/index.mjs +156 -0
  969. package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
  970. package/dist/src/services/workspaceRegistry/index.cjs +151 -0
  971. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
  972. package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
  973. package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
  974. package/dist/src/services/workspaceRegistry/index.mjs +144 -0
  975. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
  976. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +261 -0
  977. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  978. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +32 -0
  979. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  980. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +254 -0
  981. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  982. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  983. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  984. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  985. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  986. package/dist/src/systems/child/services/childSession/index.cjs +219 -0
  987. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
  988. package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
  989. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
  990. package/dist/src/systems/child/services/childSession/index.mjs +219 -0
  991. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
  992. package/dist/src/systems/child/types/childSession.cjs +19 -0
  993. package/dist/src/systems/child/types/childSession.cjs.map +1 -0
  994. package/dist/src/systems/child/types/childSession.d.mts +148 -0
  995. package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
  996. package/dist/src/systems/child/types/childSession.mjs +16 -0
  997. package/dist/src/systems/child/types/childSession.mjs.map +1 -0
  998. package/dist/src/systems/main/adapters/headlessHost.cjs +554 -0
  999. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
  1000. package/dist/src/systems/main/adapters/headlessHost.d.mts +111 -0
  1001. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1002. package/dist/src/systems/main/adapters/headlessHost.mjs +552 -0
  1003. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
  1004. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1293 -0
  1005. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1006. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +14 -0
  1007. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1008. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1288 -0
  1009. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1010. package/dist/src/systems/main/types/headlessHost.d.mts +36 -0
  1011. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
  1012. package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
  1013. package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
  1014. package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
  1015. package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
  1016. package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
  1017. package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
  1018. package/dist/src/testing/pi/testHost.cjs +398 -0
  1019. package/dist/src/testing/pi/testHost.cjs.map +1 -0
  1020. package/dist/src/testing/pi/testHost.d.mts +160 -0
  1021. package/dist/src/testing/pi/testHost.d.mts.map +1 -0
  1022. package/dist/src/testing/pi/testHost.mjs +398 -0
  1023. package/dist/src/testing/pi/testHost.mjs.map +1 -0
  1024. package/dist/src/types/config.d.mts +20 -0
  1025. package/dist/src/types/config.d.mts.map +1 -0
  1026. package/dist/src/types/kernel.d.mts +69 -0
  1027. package/dist/src/types/kernel.d.mts.map +1 -0
  1028. package/dist/src/types/remote.d.mts +124 -0
  1029. package/dist/src/types/remote.d.mts.map +1 -0
  1030. package/dist/src/types/server/directHarnessRuntime.d.mts +209 -0
  1031. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
  1032. package/dist/src/types/server/session.d.mts +5 -0
  1033. package/dist/src/types/server/session.d.mts.map +1 -0
  1034. package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
  1035. package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
  1036. package/dist/src/web/models/globalStore.cjs +23 -0
  1037. package/dist/src/web/models/globalStore.cjs.map +1 -0
  1038. package/dist/src/web/models/globalStore.d.mts +6 -0
  1039. package/dist/src/web/models/globalStore.d.mts.map +1 -0
  1040. package/dist/src/web/models/globalStore.mjs +23 -0
  1041. package/dist/src/web/models/globalStore.mjs.map +1 -0
  1042. package/dist/src/web/models/sessionStore.cjs +56 -0
  1043. package/dist/src/web/models/sessionStore.cjs.map +1 -0
  1044. package/dist/src/web/models/sessionStore.d.mts +14 -0
  1045. package/dist/src/web/models/sessionStore.d.mts.map +1 -0
  1046. package/dist/src/web/models/sessionStore.mjs +56 -0
  1047. package/dist/src/web/models/sessionStore.mjs.map +1 -0
  1048. package/dist/src/web/models/workspaceStore.cjs +50 -0
  1049. package/dist/src/web/models/workspaceStore.cjs.map +1 -0
  1050. package/dist/src/web/models/workspaceStore.d.mts +18 -0
  1051. package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
  1052. package/dist/src/web/models/workspaceStore.mjs +50 -0
  1053. package/dist/src/web/models/workspaceStore.mjs.map +1 -0
  1054. package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
  1055. package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1056. package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1057. package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1058. package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
  1059. package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1060. package/dist/src/web/schemas/template.cjs +15 -0
  1061. package/dist/src/web/schemas/template.cjs.map +1 -0
  1062. package/dist/src/web/schemas/template.d.mts +6 -0
  1063. package/dist/src/web/schemas/template.d.mts.map +1 -0
  1064. package/dist/src/web/schemas/template.mjs +15 -0
  1065. package/dist/src/web/schemas/template.mjs.map +1 -0
  1066. package/dist/src/web/services/apiClient/index.cjs +156 -0
  1067. package/dist/src/web/services/apiClient/index.cjs.map +1 -0
  1068. package/dist/src/web/services/apiClient/index.d.mts +152 -0
  1069. package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
  1070. package/dist/src/web/services/apiClient/index.mjs +154 -0
  1071. package/dist/src/web/services/apiClient/index.mjs.map +1 -0
  1072. package/dist/src/web/services/apiPaths/index.cjs +83 -0
  1073. package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
  1074. package/dist/src/web/services/apiPaths/index.d.mts +81 -0
  1075. package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
  1076. package/dist/src/web/services/apiPaths/index.mjs +78 -0
  1077. package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
  1078. package/dist/src/web/services/apiRoutes/index.cjs +47 -0
  1079. package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
  1080. package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
  1081. package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
  1082. package/dist/src/web/services/apiRoutes/index.mjs +43 -0
  1083. package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
  1084. package/dist/src/web/services/mcpWidget.cjs +9 -0
  1085. package/dist/src/web/services/mcpWidget.cjs.map +1 -0
  1086. package/dist/src/web/services/mcpWidget.d.mts +6 -0
  1087. package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
  1088. package/dist/src/web/services/mcpWidget.mjs +9 -0
  1089. package/dist/src/web/services/mcpWidget.mjs.map +1 -0
  1090. package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
  1091. package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
  1092. package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
  1093. package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
  1094. package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
  1095. package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
  1096. package/dist/src/web/services/testing/channels.cjs +11 -0
  1097. package/dist/src/web/services/testing/channels.cjs.map +1 -0
  1098. package/dist/src/web/services/testing/channels.d.mts +8 -0
  1099. package/dist/src/web/services/testing/channels.d.mts.map +1 -0
  1100. package/dist/src/web/services/testing/channels.mjs +11 -0
  1101. package/dist/src/web/services/testing/channels.mjs.map +1 -0
  1102. package/dist/src/web/services/testing/index.cjs +27 -0
  1103. package/dist/src/web/services/testing/index.cjs.map +1 -0
  1104. package/dist/src/web/services/testing/index.d.mts +31 -0
  1105. package/dist/src/web/services/testing/index.d.mts.map +1 -0
  1106. package/dist/src/web/services/testing/index.mjs +27 -0
  1107. package/dist/src/web/services/testing/index.mjs.map +1 -0
  1108. package/dist/src/web/services/testing/rpcStub.cjs +58 -0
  1109. package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
  1110. package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
  1111. package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
  1112. package/dist/src/web/services/testing/rpcStub.mjs +58 -0
  1113. package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
  1114. package/dist/src/web/services/testing/slotProps.cjs +91 -0
  1115. package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
  1116. package/dist/src/web/services/testing/slotProps.d.mts +69 -0
  1117. package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
  1118. package/dist/src/web/services/testing/slotProps.mjs +90 -0
  1119. package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
  1120. package/dist/src/web/services/testing/templateRail.cjs +128 -0
  1121. package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
  1122. package/dist/src/web/services/testing/templateRail.d.mts +31 -0
  1123. package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
  1124. package/dist/src/web/services/testing/templateRail.mjs +126 -0
  1125. package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
  1126. package/dist/src/web/services/toolResult/index.cjs +30 -0
  1127. package/dist/src/web/services/toolResult/index.cjs.map +1 -0
  1128. package/dist/src/web/services/toolResult/index.d.mts +14 -0
  1129. package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
  1130. package/dist/src/web/services/toolResult/index.mjs +29 -0
  1131. package/dist/src/web/services/toolResult/index.mjs.map +1 -0
  1132. package/dist/src/web/types/extensionFile.d.mts +59 -0
  1133. package/dist/src/web/types/extensionFile.d.mts.map +1 -0
  1134. package/dist/src/web/types/mcpWidget.d.mts +14 -0
  1135. package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  1136. package/dist/src/web/types/modelContext.d.mts +43 -0
  1137. package/dist/src/web/types/modelContext.d.mts.map +1 -0
  1138. package/dist/src/web/types/sessionRegistry.d.mts +43 -0
  1139. package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
  1140. package/dist/src/web/types/template.d.mts +155 -0
  1141. package/dist/src/web/types/template.d.mts.map +1 -0
  1142. package/dist/src/web/types/webPlugin.d.mts +896 -0
  1143. package/dist/src/web/types/webPlugin.d.mts.map +1 -0
  1144. package/dist/syncLocation.cjs +244 -0
  1145. package/dist/syncLocation.cjs.map +1 -0
  1146. package/dist/syncLocation.d.mts +37 -0
  1147. package/dist/syncLocation.d.mts.map +1 -0
  1148. package/dist/syncLocation.mjs +231 -0
  1149. package/dist/syncLocation.mjs.map +1 -0
  1150. package/dist/syncRegistration.cjs +171 -0
  1151. package/dist/syncRegistration.cjs.map +1 -0
  1152. package/dist/syncRegistration.d.mts +48 -0
  1153. package/dist/syncRegistration.d.mts.map +1 -0
  1154. package/dist/syncRegistration.mjs +159 -0
  1155. package/dist/syncRegistration.mjs.map +1 -0
  1156. package/dist/syncStateContract.cjs +19 -0
  1157. package/dist/syncStateContract.cjs.map +1 -0
  1158. package/dist/syncStateContract.d.mts +14 -0
  1159. package/dist/syncStateContract.d.mts.map +1 -0
  1160. package/dist/syncStateContract.mjs +16 -0
  1161. package/dist/syncStateContract.mjs.map +1 -0
  1162. package/dist/terminalPiChildSessionService.cjs +267 -0
  1163. package/dist/terminalPiChildSessionService.cjs.map +1 -0
  1164. package/dist/terminalPiChildSessionService.d.mts +42 -0
  1165. package/dist/terminalPiChildSessionService.d.mts.map +1 -0
  1166. package/dist/terminalPiChildSessionService.mjs +260 -0
  1167. package/dist/terminalPiChildSessionService.mjs.map +1 -0
  1168. package/dist/testing.cjs +11 -0
  1169. package/dist/testing.d.mts +6 -0
  1170. package/dist/testing.mjs +6 -0
  1171. package/dist/toolInventory.cjs +136 -0
  1172. package/dist/toolInventory.cjs.map +1 -0
  1173. package/dist/toolInventory.d.mts +66 -0
  1174. package/dist/toolInventory.d.mts.map +1 -0
  1175. package/dist/toolInventory.mjs +133 -0
  1176. package/dist/toolInventory.mjs.map +1 -0
  1177. package/dist/toolNames.cjs +4 -0
  1178. package/dist/toolNames.d.mts +2 -0
  1179. package/dist/toolNames.mjs +2 -0
  1180. package/dist/toolOverrides.cjs +7 -0
  1181. package/dist/toolOverrides.d.mts +3 -0
  1182. package/dist/toolOverrides.mjs +3 -0
  1183. package/dist/toolSurface.cjs +7 -0
  1184. package/dist/toolSurface.d.mts +3 -0
  1185. package/dist/toolSurface.mjs +3 -0
  1186. package/dist/transition.cjs +5 -0
  1187. package/dist/transition.d.cjs +5 -0
  1188. package/dist/transition.d.mts +2 -0
  1189. package/dist/transition.mjs +2 -0
  1190. package/dist/transitionClassifier.cjs +112 -0
  1191. package/dist/transitionClassifier.cjs.map +1 -0
  1192. package/dist/transitionClassifier.d.mts +18 -0
  1193. package/dist/transitionClassifier.d.mts.map +1 -0
  1194. package/dist/transitionClassifier.mjs +111 -0
  1195. package/dist/transitionClassifier.mjs.map +1 -0
  1196. package/dist/transitionCoordinator.cjs +131 -0
  1197. package/dist/transitionCoordinator.cjs.map +1 -0
  1198. package/dist/transitionCoordinator.d.mts +16 -0
  1199. package/dist/transitionCoordinator.d.mts.map +1 -0
  1200. package/dist/transitionCoordinator.mjs +130 -0
  1201. package/dist/transitionCoordinator.mjs.map +1 -0
  1202. package/dist/typesContextApi.cjs +0 -0
  1203. package/dist/typesContextApi.d.mts +73 -0
  1204. package/dist/typesContextApi.d.mts.map +1 -0
  1205. package/dist/typesContextApi.mjs +1 -0
  1206. package/dist/uiHub.cjs +5 -0
  1207. package/dist/uiHub.d.mts +2 -0
  1208. package/dist/uiHub.mjs +2 -0
  1209. package/dist/v3Export.cjs +1004 -0
  1210. package/dist/v3Export.cjs.map +1 -0
  1211. package/dist/v3Export.d.mts +34 -0
  1212. package/dist/v3Export.d.mts.map +1 -0
  1213. package/dist/v3Export.mjs +1000 -0
  1214. package/dist/v3Export.mjs.map +1 -0
  1215. package/dist/voiceReloadHandoff.cjs +14 -0
  1216. package/dist/voiceReloadHandoff.d.mts +4 -0
  1217. package/dist/voiceReloadHandoff.mjs +4 -0
  1218. package/dist/voiceTools.cjs +56 -0
  1219. package/dist/voiceTools.d.mts +4 -0
  1220. package/dist/voiceTools.mjs +4 -0
  1221. package/dist/web.cjs +64 -0
  1222. package/dist/web.d.mts +19 -0
  1223. package/dist/web.mjs +13 -0
  1224. package/dist/webCompositions.cjs +100 -0
  1225. package/dist/webCompositions.cjs.map +1 -0
  1226. package/dist/webCompositions.d.mts +20 -0
  1227. package/dist/webCompositions.d.mts.map +1 -0
  1228. package/dist/webCompositions.mjs +95 -0
  1229. package/dist/webCompositions.mjs.map +1 -0
  1230. package/dist/webTesting.cjs +14 -0
  1231. package/dist/webTesting.d.mts +6 -0
  1232. package/dist/webTesting.mjs +6 -0
  1233. package/package.json +616 -0
@@ -0,0 +1,1964 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_historyImport = require("../../historyImport.cjs");
3
+ const require_sqliteSessionStorage = require("../../sqliteSessionStorage.cjs");
4
+ const require_index = require("../services/historyCreationFileSystem/index.cjs");
5
+ const require_harnessErrorMessage = require("./harnessErrorMessage.cjs");
6
+ let node_crypto = require("node:crypto");
7
+ let node_fs = require("node:fs");
8
+ node_fs = require_runtime.__toESM(node_fs, 1);
9
+ let node_path = require("node:path");
10
+ node_path = require_runtime.__toESM(node_path, 1);
11
+ let _earendil_works_pi_agent_core_harness_context = require("@earendil-works/pi-agent-core/harness/context");
12
+ let _earendil_works_pi_agent_core_harness_session = require("@earendil-works/pi-agent-core/harness/session");
13
+ let _earendil_works_pi_agent_core_node = require("@earendil-works/pi-agent-core/node");
14
+ let _earendil_works_pi_agent_core = require("@earendil-works/pi-agent-core");
15
+ let _earendil_works_pi_ai = require("@earendil-works/pi-ai");
16
+ //#region src/server/directHarnessRuntime.ts
17
+ const DEFAULT_LANE = "main";
18
+ const DEFAULT_SESSION_ROOT = ".pi/sessions";
19
+ const FRAME_ERROR = "error";
20
+ /** Journaled at every run end, so a reopened session can tell when it last settled. */
21
+ const AGENT_SETTLED_ENTRY_TYPE = "doompi.agent-settled";
22
+ const EVENT_TYPES = [
23
+ "run_start",
24
+ "run_resume",
25
+ "run_suspend",
26
+ "operation_abort",
27
+ "run_end",
28
+ "fault",
29
+ "handler_error",
30
+ "turn_start",
31
+ "turn_end",
32
+ "retry_scheduled",
33
+ "retry_start",
34
+ "retry_end",
35
+ "message_start",
36
+ "message_update",
37
+ "message_end",
38
+ "tool_start",
39
+ "tool_update",
40
+ "tool_end",
41
+ "entry_added",
42
+ "queue_update",
43
+ "value_update",
44
+ "config_update",
45
+ "compaction_start",
46
+ "compaction_end",
47
+ "navigation_start",
48
+ "navigation_end",
49
+ "usage",
50
+ "lane_created"
51
+ ];
52
+ const STORAGE_ERROR_CODES = /* @__PURE__ */ new Set([
53
+ "EACCES",
54
+ "EBUSY",
55
+ "EIO",
56
+ "EMFILE",
57
+ "ENFILE",
58
+ "ENOSPC",
59
+ "EPERM",
60
+ "EROFS"
61
+ ]);
62
+ const EMPTY_LIFECYCLE = {
63
+ version: 1,
64
+ revision: 0,
65
+ paused: false,
66
+ queue: []
67
+ };
68
+ const RETAINED_RECEIPTS = 128;
69
+ function compactLifecycle(record) {
70
+ let receipts = 0;
71
+ const queue = record.queue.toReversed().filter((item) => {
72
+ if (item.disposition !== "consumed" && item.disposition !== "removed") return true;
73
+ receipts += 1;
74
+ return receipts <= RETAINED_RECEIPTS;
75
+ }).toReversed().map((item) => item.disposition === "consumed" || item.disposition === "removed" ? {
76
+ id: item.id,
77
+ text: "",
78
+ delivery: item.delivery,
79
+ scheduling: item.scheduling,
80
+ disposition: item.disposition
81
+ } : item);
82
+ return {
83
+ ...record,
84
+ queue
85
+ };
86
+ }
87
+ function isRecord(value) {
88
+ return typeof value === "object" && value !== null && !Array.isArray(value);
89
+ }
90
+ function stringValue(value) {
91
+ return typeof value === "string" ? value : void 0;
92
+ }
93
+ /** Run one prompt and return only the assistant text appended by that prompt. */
94
+ async function promptForAssistantText(runtime, text) {
95
+ const previousEntryIds = new Set((await runtime.readEntries()).entries.map((entry) => entry.id));
96
+ await runtime.prompt(text);
97
+ const { entries } = await runtime.readEntries();
98
+ for (let index = entries.length - 1; index >= 0; index--) {
99
+ const entry = entries[index];
100
+ if (!entry || previousEntryIds.has(entry.id)) continue;
101
+ if (entry.type !== "message" || entry.message.role !== "assistant") continue;
102
+ return entry.message.content.flatMap((part) => part.type === "text" ? [part.text] : []).join("\n").trim() || void 0;
103
+ }
104
+ }
105
+ function modelReference(model, models) {
106
+ if (model !== void 0 && "api" in model) return model;
107
+ const requested = model;
108
+ const resolved = requested === void 0 ? models.getModels()[0] : models.getModel(requested.provider, requested.id);
109
+ if (resolved === void 0) {
110
+ const identity = requested === void 0 ? "the first configured model" : `${requested.provider}/${requested.id}`;
111
+ throw new Error(`Direct harness could not resolve ${identity}`);
112
+ }
113
+ return resolved;
114
+ }
115
+ function readDirectHarnessSessionMetadata(filePath) {
116
+ const absolute = node_fs.default.realpathSync(filePath);
117
+ const firstLine = node_fs.default.readFileSync(absolute, "utf8").split("\n", 1)[0];
118
+ let header;
119
+ try {
120
+ const parsed = JSON.parse(firstLine ?? "");
121
+ if (!isRecord(parsed)) throw new Error("header is not an object");
122
+ header = parsed;
123
+ } catch (error) {
124
+ throw new Error(`Invalid JSONL session header: ${absolute}`, { cause: error });
125
+ }
126
+ if (header.kind !== "header" || header.v !== 4) throw new Error(`Session is not an upstream v4 JSONL file: ${absolute}`);
127
+ const id = stringValue(header.id);
128
+ const cwd = stringValue(header.cwd);
129
+ const createdAt = header.createdAt;
130
+ if (!id || !cwd || typeof createdAt !== "number" || !Number.isFinite(createdAt)) throw new Error(`Invalid JSONL session identity: ${absolute}`);
131
+ const stat = node_fs.default.statSync(absolute);
132
+ return {
133
+ id,
134
+ createdAt,
135
+ storageVersion: typeof header.storageVersion === "number" ? header.storageVersion : _earendil_works_pi_agent_core_harness_session.JSONL_STORAGE_VERSION,
136
+ cwd,
137
+ path: absolute,
138
+ modifiedAt: stat.mtimeMs,
139
+ ...typeof header.parentSessionId === "string" ? { parentSessionId: header.parentSessionId } : {},
140
+ ...typeof header.legacyParentSessionPath === "string" ? { legacyParentSessionPath: header.legacyParentSessionPath } : {}
141
+ };
142
+ }
143
+ function isV3File(filePath) {
144
+ let firstLine;
145
+ try {
146
+ firstLine = node_fs.default.readFileSync(node_path.default.resolve(filePath), "utf8").split("\n", 1)[0] ?? "";
147
+ } catch (error) {
148
+ if (isRecord(error) && error.code === "ENOENT") return false;
149
+ throw error;
150
+ }
151
+ try {
152
+ const header = JSON.parse(firstLine);
153
+ return isRecord(header) && header.type === "session" && header.version === 3;
154
+ } catch {
155
+ return false;
156
+ }
157
+ }
158
+ async function acquireHistoryLease(owner, filePath) {
159
+ const lease = await owner.acquire(filePath);
160
+ try {
161
+ await lease.assertQuiescent();
162
+ return lease;
163
+ } catch (error) {
164
+ await Promise.resolve(lease.release()).catch(() => void 0);
165
+ throw error;
166
+ }
167
+ }
168
+ async function closeStorage(storage, context) {
169
+ const failures = [];
170
+ try {
171
+ await storage.session?.close(context);
172
+ } catch (error) {
173
+ failures.push(error);
174
+ }
175
+ try {
176
+ await storage.repository?.close(context);
177
+ } catch (error) {
178
+ failures.push(error);
179
+ }
180
+ try {
181
+ await storage.environment?.cleanup(context);
182
+ } catch (error) {
183
+ failures.push(error);
184
+ }
185
+ try {
186
+ await storage.historyLease?.release();
187
+ } catch (error) {
188
+ failures.push(error);
189
+ }
190
+ storage.historyLease = void 0;
191
+ if (failures.length) throw new AggregateError(failures, "Direct harness storage cleanup failed");
192
+ }
193
+ async function openStorage(options, context) {
194
+ if (options.session !== void 0) return {
195
+ session: options.session,
196
+ ...options.sessionPath === void 0 ? {} : { sessionFile: node_path.default.resolve(options.sessionPath) }
197
+ };
198
+ if (options.storage === "sqlite") return require_sqliteSessionStorage.openSqliteSessionStorage(options, context);
199
+ const sessionPath = options.sessionPath === void 0 ? void 0 : node_path.default.resolve(options.sessionPath);
200
+ const legacyPath = options.legacySessionPath === void 0 ? sessionPath : node_path.default.resolve(options.legacySessionPath);
201
+ let importedPath = sessionPath;
202
+ if (legacyPath !== void 0 && isV3File(legacyPath)) throw new Error("Legacy v3 history cannot be opened for writing. Stop Pi, run doompi history-import <v3-source> <v4-destination> --confirm-offline, then open the v4 destination.");
203
+ const environment = new _earendil_works_pi_agent_core_node.NodeExecutionEnv({ cwd: options.cwd });
204
+ const sessionsRoot = node_path.default.resolve(options.sessionsRoot ?? (importedPath === void 0 ? node_path.default.join(options.cwd, DEFAULT_SESSION_ROOT) : node_path.default.dirname(importedPath)));
205
+ let metadata;
206
+ if (importedPath === void 0 && options.sessionId !== void 0) {
207
+ const discovery = new _earendil_works_pi_agent_core_harness_session.JsonlSessionRepo({
208
+ fileSystem: environment,
209
+ sessionsRoot,
210
+ now: () => Date.now()
211
+ });
212
+ try {
213
+ metadata = (await discovery.list({ cwd: options.cwd }, context)).find((candidate) => candidate.id === options.sessionId);
214
+ importedPath = metadata?.path;
215
+ } finally {
216
+ await discovery.close(context);
217
+ }
218
+ }
219
+ let historyLease;
220
+ let session;
221
+ const fileSystem = importedPath === void 0 ? require_index.createHistoryCreationFileSystem(environment, async (destinationPath) => {
222
+ const owner = options.historyOwnership;
223
+ if (owner === void 0) throw new Error("Creating a writable session requires explicit HistoryOwnership");
224
+ historyLease = await acquireHistoryLease(owner, destinationPath);
225
+ }) : environment;
226
+ const repository = new _earendil_works_pi_agent_core_harness_session.JsonlSessionRepo({
227
+ fileSystem,
228
+ sessionsRoot,
229
+ now: () => Date.now()
230
+ });
231
+ try {
232
+ if (importedPath !== void 0) {
233
+ const owner = options.historyOwnership;
234
+ if (owner === void 0) throw new Error("Opening an existing session requires explicit HistoryOwnership");
235
+ historyLease = await acquireHistoryLease(owner, importedPath);
236
+ metadata ??= readDirectHarnessSessionMetadata(importedPath);
237
+ if (options.sessionId !== void 0 && options.sessionId !== metadata.id) throw new Error(`Session id mismatch: expected ${options.sessionId}, found ${metadata.id}`);
238
+ await require_historyImport.preserveHistoryBeforeOpen(metadata.path, historyLease);
239
+ session = await repository.open(metadata, context);
240
+ } else {
241
+ if (options.historyOwnership === void 0) throw new Error("Creating a writable session requires explicit HistoryOwnership");
242
+ const created = await repository.create({
243
+ id: options.sessionId,
244
+ cwd: options.cwd,
245
+ ...options.parentSessionId === void 0 ? {} : { parentSessionId: options.parentSessionId }
246
+ }, context);
247
+ session = created;
248
+ importedPath = created.metadata.path;
249
+ if (historyLease === void 0) throw new Error("New history was not admitted before publication");
250
+ }
251
+ return {
252
+ session,
253
+ sessionFile: importedPath,
254
+ repository,
255
+ environment,
256
+ historyLease
257
+ };
258
+ } catch (error) {
259
+ await closeStorage({
260
+ session,
261
+ repository,
262
+ environment,
263
+ historyLease
264
+ }, context);
265
+ throw error;
266
+ }
267
+ }
268
+ /**
269
+ * Merge caller-supplied providers into the registry the harness will use.
270
+ * A pi-ai MutableModels exposes setProvider; a Pi ModelRuntime exposes
271
+ * registerNativeProvider instead, and dropping providers for the latter would
272
+ * silently hide every extension-registered provider from the child harness.
273
+ */
274
+ function mergeProviders(models, providers) {
275
+ const mutable = models;
276
+ const register = typeof mutable.setProvider === "function" ? mutable.setProvider.bind(models) : typeof mutable.registerNativeProvider === "function" ? mutable.registerNativeProvider.bind(models) : void 0;
277
+ if (register === void 0) throw new Error("Direct harness cannot register providers on the supplied Models registry");
278
+ for (const provider of providers) register(provider);
279
+ }
280
+ function configureModels(options) {
281
+ if (options.models !== void 0) {
282
+ if (options.providers !== void 0 && options.providers.length > 0) mergeProviders(options.models, options.providers);
283
+ return options.models;
284
+ }
285
+ if (options.providers === void 0 || options.providers.length === 0) throw new Error("Direct harness requires a public Models registry or at least one Provider");
286
+ const models = options.credentials === void 0 ? (0, _earendil_works_pi_ai.createModels)() : (0, _earendil_works_pi_ai.createModels)({ credentials: options.credentials });
287
+ for (const provider of options.providers) models.setProvider(provider);
288
+ return models;
289
+ }
290
+ function textContent(value) {
291
+ if (typeof value === "string") return value;
292
+ if (!Array.isArray(value)) return "";
293
+ return value.filter(isRecord).filter((part) => part.type === "text").map((part) => stringValue(part.text) ?? "").join("");
294
+ }
295
+ function queueText(item) {
296
+ if (!isRecord(item) || item.type !== "message" || !isRecord(item.message)) return void 0;
297
+ return textContent(item.message.content);
298
+ }
299
+ function mapQueueUpdate(event) {
300
+ const queues = Array.isArray(event.queues) ? event.queues : [];
301
+ const steering = [];
302
+ const followUp = [];
303
+ for (const item of queues) {
304
+ if (!isRecord(item)) continue;
305
+ const text = queueText(item);
306
+ if (text === void 0) continue;
307
+ if (item.kind === "steer") steering.push(text);
308
+ else if (item.kind === "followUp" || item.kind === "nextRun") followUp.push(text);
309
+ }
310
+ return {
311
+ type: "queue_update",
312
+ queues,
313
+ steering,
314
+ followUp
315
+ };
316
+ }
317
+ function stateModel(model) {
318
+ if (!isRecord(model)) return void 0;
319
+ const provider = stringValue(model.provider);
320
+ const id = stringValue(model.id) ?? stringValue(model.modelId);
321
+ return provider && id ? {
322
+ provider,
323
+ id
324
+ } : void 0;
325
+ }
326
+ function mapHarnessEvent(event) {
327
+ const value = event;
328
+ switch (event.type) {
329
+ case "run_start": return [{
330
+ type: "agent_start",
331
+ runId: value.runId,
332
+ startedAt: value.startedAt
333
+ }];
334
+ case "run_resume": return [{
335
+ type: "agent_start",
336
+ runId: value.runId,
337
+ resumed: true
338
+ }];
339
+ case "run_suspend": return [{
340
+ type: "run_suspend",
341
+ runId: value.runId,
342
+ reason: value.reason,
343
+ deferred: value.deferred
344
+ }];
345
+ case "operation_abort": return [{
346
+ type: "operation_abort",
347
+ operationId: value.operationId,
348
+ steer: value.steer,
349
+ followUp: value.followUp
350
+ }];
351
+ case "run_end": return [{
352
+ type: "agent_end",
353
+ runId: value.runId,
354
+ status: value.status,
355
+ ...value.error === void 0 ? {} : { error: value.error }
356
+ }, {
357
+ type: "agent_settled",
358
+ runId: value.runId,
359
+ timestamp: value.endedAt
360
+ }];
361
+ case "fault": return [{
362
+ type: FRAME_ERROR,
363
+ error: value.message,
364
+ code: value.code
365
+ }];
366
+ case "handler_error": return [{
367
+ type: "handler_error",
368
+ kind: value.kind,
369
+ hook: value.hook,
370
+ event: value.event,
371
+ error: value.error,
372
+ stack: value.stack
373
+ }];
374
+ case "turn_start": return [{
375
+ type: "turn_start",
376
+ runId: value.runId,
377
+ turnId: value.turnId
378
+ }];
379
+ case "turn_end": return [{
380
+ type: "turn_end",
381
+ runId: value.runId,
382
+ turnId: value.turnId,
383
+ message: value.message,
384
+ toolResults: value.toolResults
385
+ }];
386
+ case "retry_scheduled": return [{
387
+ type: "auto_retry_start",
388
+ runId: value.runId,
389
+ attempt: value.attempt,
390
+ maxAttempts: value.maxAttempts,
391
+ error: value.errorMessage
392
+ }];
393
+ case "retry_start": return [{
394
+ type: "auto_retry_start",
395
+ runId: value.runId,
396
+ attempt: value.attempt
397
+ }];
398
+ case "retry_end": return [{
399
+ type: "auto_retry_end",
400
+ runId: value.runId,
401
+ attempt: value.attempt,
402
+ success: value.success,
403
+ error: value.finalError
404
+ }];
405
+ case "message_start": return [{
406
+ type: "message_start",
407
+ runId: value.runId,
408
+ message: value.message
409
+ }];
410
+ case "message_update": return [{
411
+ type: "message_update",
412
+ runId: value.runId,
413
+ message: value.message,
414
+ assistantMessageEvent: value.event,
415
+ ...value.frame === void 0 ? {} : { assistantMessageFrame: value.frame }
416
+ }];
417
+ case "message_end": return [{
418
+ type: "message_end",
419
+ runId: value.runId,
420
+ message: value.message,
421
+ entryId: value.entryId
422
+ }];
423
+ case "tool_start": return [{
424
+ type: "tool_execution_start",
425
+ runId: value.runId,
426
+ turnId: value.turnId,
427
+ toolCallId: value.toolCallId,
428
+ toolName: value.toolName,
429
+ args: value.args
430
+ }];
431
+ case "tool_update": return [{
432
+ type: "tool_execution_update",
433
+ runId: value.runId,
434
+ turnId: value.turnId,
435
+ toolCallId: value.toolCallId,
436
+ toolName: value.toolName,
437
+ partialResult: value.partialResult
438
+ }];
439
+ case "tool_end": return [{
440
+ type: "tool_execution_end",
441
+ runId: value.runId,
442
+ turnId: value.turnId,
443
+ toolCallId: value.toolCallId,
444
+ toolName: value.toolName,
445
+ result: value.result,
446
+ isError: value.isError,
447
+ terminate: value.terminate
448
+ }];
449
+ case "entry_added": return [{
450
+ type: "entry_appended",
451
+ entry: value.entry
452
+ }];
453
+ case "queue_update": return [mapQueueUpdate(value)];
454
+ case "value_update":
455
+ if (value.value === "session_name") return [{
456
+ type: "session_info_changed",
457
+ name: value.name
458
+ }];
459
+ return [{
460
+ type: "entry_label_changed",
461
+ targetId: value.targetId,
462
+ label: value.label
463
+ }];
464
+ case "config_update":
465
+ if (value.property === "thinkingLevel") return [{
466
+ type: "thinking_level_changed",
467
+ level: value.value
468
+ }];
469
+ if (value.property === "model") {
470
+ const model = stateModel(value.value);
471
+ return model === void 0 ? [] : [{
472
+ type: "response",
473
+ command: "get_state",
474
+ success: true,
475
+ data: { model }
476
+ }];
477
+ }
478
+ return [{
479
+ type: "config_update",
480
+ property: value.property,
481
+ value: value.value,
482
+ previous: value.previous
483
+ }];
484
+ case "compaction_start": return [{
485
+ type: "compaction_start",
486
+ runId: value.runId,
487
+ reason: value.reason
488
+ }];
489
+ case "compaction_end": return [{
490
+ type: "compaction_end",
491
+ runId: value.runId,
492
+ reason: value.reason,
493
+ status: value.status,
494
+ entryId: value.entryId
495
+ }];
496
+ case "navigation_start": return [{
497
+ type: "navigation_start",
498
+ runId: value.runId,
499
+ targetId: value.targetId
500
+ }];
501
+ case "navigation_end": return [{
502
+ type: "navigation_end",
503
+ runId: value.runId,
504
+ status: value.status
505
+ }];
506
+ case "usage": return [{
507
+ type: "usage",
508
+ lane: value.lane,
509
+ row: value.row,
510
+ totals: value.totals
511
+ }];
512
+ case "lane_created": return [{
513
+ type: "lane_created",
514
+ at: value.at
515
+ }];
516
+ }
517
+ }
518
+ function isStorageFailure(error) {
519
+ if (error instanceof _earendil_works_pi_agent_core.HarnessFault) return true;
520
+ if (isRecord(error) && typeof error.code === "string" && STORAGE_ERROR_CODES.has(error.code)) return true;
521
+ return /(?:storage|session|jsonl|journal|commit|mutation).*(?:fail|error|fault|write|invariant)|(?:fail|error|fault|write|invariant).*(?:storage|session|jsonl|journal|commit|mutation)/iu.test(require_harnessErrorMessage.harnessErrorMessage(error));
522
+ }
523
+ function resultError(value) {
524
+ if (isRecord(value) && value.ok === false) throw value.error;
525
+ throw value;
526
+ }
527
+ async function entriesForLane(lane, context) {
528
+ return lane.findEntries({ order: "oldestFirst" }, context);
529
+ }
530
+ /**
531
+ * Creates a same-process AgentHarness and the legacy framed compatibility
532
+ * facade expected by doompi-server. No child process, RPC launcher, or Pi UI
533
+ * runtime is created.
534
+ */
535
+ async function createDirectHarnessRuntime(options) {
536
+ const context = options.context ?? _earendil_works_pi_agent_core_harness_context.BACKGROUND_CONTEXT;
537
+ const laneName = options.lane ?? DEFAULT_LANE;
538
+ let disposed = false;
539
+ let disposePromise;
540
+ let storageQuarantined = false;
541
+ let storageFailure;
542
+ let requestPreparationFailure;
543
+ let turnPreparationFailure;
544
+ let contextPreparationFailure;
545
+ let payloadPreparationFailure;
546
+ let toolsReady = true;
547
+ let activeToolNames = new Set(options.activeToolNames ?? options.tools?.map((tool) => tool.name) ?? []);
548
+ const storage = await openStorage(options, context);
549
+ let models;
550
+ let harnessResult;
551
+ try {
552
+ const registry = configureModels(options);
553
+ const dispatchMethods = /* @__PURE__ */ new Set([
554
+ "stream",
555
+ "complete",
556
+ "streamSimple",
557
+ "completeSimple",
558
+ "streamDeferred",
559
+ "fetchDeferred"
560
+ ]);
561
+ models = new Proxy(registry, { get(target, key) {
562
+ const value = Reflect.get(target, key, target);
563
+ if (typeof value !== "function") return value;
564
+ if (!dispatchMethods.has(key)) return value.bind(target);
565
+ return (...args) => {
566
+ try {
567
+ if (disposed || storageQuarantined || !toolsReady) throw new Error("Direct harness model dispatch is blocked");
568
+ if (key !== "streamDeferred" && key !== "fetchDeferred") {
569
+ if (args[1].tools?.some((tool) => !activeToolNames.has(tool.name))) throw new Error("Model request contains a tool disabled after generation preparation");
570
+ }
571
+ if (contextPreparationFailure !== void 0) throw contextPreparationFailure.error;
572
+ if (turnPreparationFailure !== void 0) throw turnPreparationFailure.error;
573
+ if (requestPreparationFailure !== void 0) throw requestPreparationFailure.error;
574
+ options.guardModelRequest?.();
575
+ } catch {
576
+ const model = args[0];
577
+ const blocked = {
578
+ role: "assistant",
579
+ content: [],
580
+ api: model.api,
581
+ provider: model.provider,
582
+ model: model.id,
583
+ timestamp: Date.now(),
584
+ stopReason: "error",
585
+ errorMessage: "Model request blocked: headless capability preparation is not ready.",
586
+ usage: {
587
+ input: 0,
588
+ output: 0,
589
+ cacheRead: 0,
590
+ cacheWrite: 0,
591
+ totalTokens: 0,
592
+ cost: {
593
+ input: 0,
594
+ output: 0,
595
+ cacheRead: 0,
596
+ cacheWrite: 0,
597
+ total: 0
598
+ }
599
+ }
600
+ };
601
+ if (key === "complete" || key === "completeSimple" || key === "fetchDeferred") return Promise.resolve(blocked);
602
+ const stream = (0, _earendil_works_pi_ai.createAssistantMessageEventStream)();
603
+ stream.push({
604
+ type: "error",
605
+ reason: "error",
606
+ error: blocked
607
+ });
608
+ return stream;
609
+ }
610
+ const requestOptions = args[2];
611
+ if (isRecord(requestOptions) && typeof requestOptions.onPayload === "function") {
612
+ const onPayload = requestOptions.onPayload;
613
+ args[2] = {
614
+ ...requestOptions,
615
+ onPayload: async (payload, requestModel) => {
616
+ payloadPreparationFailure = void 0;
617
+ const transformed = await onPayload(payload, requestModel);
618
+ const failure = payloadPreparationFailure;
619
+ if (failure !== void 0) throw failure.error;
620
+ return transformed;
621
+ }
622
+ };
623
+ }
624
+ return Reflect.apply(value, target, args);
625
+ };
626
+ } });
627
+ harnessResult = await _earendil_works_pi_agent_core.AgentHarness.create({
628
+ session: storage.session,
629
+ models,
630
+ model: modelReference(options.model, models),
631
+ ...options.thinkingLevel === void 0 ? {} : { thinkingLevel: options.thinkingLevel },
632
+ ...options.activeToolNames === void 0 ? {} : { activeToolNames: options.activeToolNames },
633
+ ...options.tools === void 0 ? {} : { tools: options.tools },
634
+ ...options.resources === void 0 ? {} : { resources: options.resources },
635
+ ...options.toolContext === void 0 ? {} : { toolContext: options.toolContext },
636
+ ...options.systemPrompt === void 0 ? {} : { systemPrompt: options.systemPrompt },
637
+ ...options.streamOptions === void 0 ? {} : { streamOptions: options.streamOptions },
638
+ ...options.retry === void 0 ? {} : { retry: options.retry },
639
+ ...options.compaction === void 0 ? {} : { compaction: options.compaction },
640
+ ...options.steeringMode === void 0 ? {} : { steeringMode: options.steeringMode },
641
+ ...options.followUpMode === void 0 ? {} : { followUpMode: options.followUpMode },
642
+ ...options.toolExecution === void 0 ? {} : { toolExecution: options.toolExecution },
643
+ ...options.toProviderMessages === void 0 ? {} : { toProviderMessages: options.toProviderMessages },
644
+ ...options.entryProjectors === void 0 ? {} : { entryProjectors: options.entryProjectors }
645
+ }, context);
646
+ } catch (error) {
647
+ await closeStorage(storage, context);
648
+ throw error;
649
+ }
650
+ const harness = harnessResult.harness;
651
+ const sessionId = storage.session.metadata.id;
652
+ const harnessId = options.harnessId ?? `${sessionId}:${laneName}`;
653
+ const listeners = /* @__PURE__ */ new Set();
654
+ const lifecycleListeners = /* @__PURE__ */ new Set();
655
+ let resolveExited;
656
+ const exited = new Promise((resolve) => {
657
+ resolveExited = resolve;
658
+ });
659
+ let exitResolved = false;
660
+ let lane;
661
+ const emitFrame = (frame) => {
662
+ for (const listener of Array.from(listeners)) try {
663
+ listener(frame);
664
+ } catch {}
665
+ };
666
+ const emitLifecycle = async (event, eventContext) => {
667
+ await Promise.all([...lifecycleListeners].map(async (listener) => {
668
+ try {
669
+ await listener(event, eventContext);
670
+ } catch (error) {
671
+ emitFrame({
672
+ type: "handler_error",
673
+ kind: "event",
674
+ event: event.type,
675
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
676
+ });
677
+ }
678
+ }));
679
+ };
680
+ let settledEvents = Promise.resolve();
681
+ let toolsThisRun = 0;
682
+ const deliverHarnessEvent = async (event, eventContext) => {
683
+ if (event.type === "run_start") toolsThisRun = 0;
684
+ if (event.type === "tool_start") toolsThisRun += 1;
685
+ if (event.type === "run_end" && options.storage === "sqlite") {
686
+ const record = event;
687
+ try {
688
+ const latest = await lane.findEntry({
689
+ type: "custom",
690
+ customType: AGENT_SETTLED_ENTRY_TYPE,
691
+ order: "newestFirst"
692
+ }, eventContext);
693
+ if ((latest?.type === "custom" && isRecord(latest.data) ? latest.data : void 0)?.runId !== record.runId) await lane.appendCustomEntry(AGENT_SETTLED_ENTRY_TYPE, {
694
+ runId: String(record.runId),
695
+ timestamp: Number(record.endedAt),
696
+ tools: toolsThisRun
697
+ }, eventContext);
698
+ } catch (error) {
699
+ markStorageFailure(error);
700
+ emitFrame({
701
+ type: FRAME_ERROR,
702
+ code: "agent_settled",
703
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
704
+ });
705
+ }
706
+ }
707
+ await emitLifecycle(event, eventContext);
708
+ if (event.type === "fault") markStorageFailure(event);
709
+ for (const frame of mapHarnessEvent(event)) emitFrame(frame);
710
+ if ([
711
+ "run_start",
712
+ "run_end",
713
+ "operation_abort",
714
+ "queue_update",
715
+ "compaction_start",
716
+ "compaction_end"
717
+ ].includes(event.type)) (event.type === "queue_update" ? reconcileNativeQueue() : publishLifecycle()).catch((error) => emitFrame({
718
+ type: FRAME_ERROR,
719
+ code: "lifecycle_projection",
720
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
721
+ }));
722
+ };
723
+ const handleHarnessEvent = async (event, eventContext) => {
724
+ if (event.type === "run_end") {
725
+ settledEvents = settledEvents.then(() => deliverHarnessEvent(event, eventContext)).catch((error) => emitFrame({
726
+ type: FRAME_ERROR,
727
+ code: "settled_event",
728
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
729
+ }));
730
+ return;
731
+ }
732
+ await deliverHarnessEvent(event, eventContext);
733
+ };
734
+ const unsubscribe = EVENT_TYPES.map((type) => harness.events.on(type, handleHarnessEvent));
735
+ const guardLive = () => {
736
+ if (disposed) throw new Error("The direct harness runtime is disposed");
737
+ };
738
+ const guardWritable = () => {
739
+ guardLive();
740
+ if (storageQuarantined) throw new Error(`Direct harness writes are quarantined after a storage failure: ${require_harnessErrorMessage.harnessErrorMessage(storageFailure)}`, { cause: storageFailure });
741
+ };
742
+ const markStorageFailure = (error) => {
743
+ if (!isStorageFailure(error)) return;
744
+ if (!storageQuarantined) storageFailure = error;
745
+ storageQuarantined = true;
746
+ emitFrame({
747
+ type: FRAME_ERROR,
748
+ code: "storage_quarantined",
749
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
750
+ });
751
+ };
752
+ const writable = async (operation) => {
753
+ guardWritable();
754
+ try {
755
+ await storage.historyLease?.assertQuiescent();
756
+ return await operation();
757
+ } catch (error) {
758
+ markStorageFailure(error);
759
+ throw error;
760
+ }
761
+ };
762
+ const lifecycleAddress = (0, _earendil_works_pi_agent_core_harness_session.value)("doompi.server.lifecycle", laneName);
763
+ const readRecord = async () => {
764
+ const stored = await storage.session.getValue(lifecycleAddress, context);
765
+ if (stored !== void 0 && stored.value.version !== 1) throw new Error("Unknown server lifecycle format");
766
+ return stored?.value ?? EMPTY_LIFECYCLE;
767
+ };
768
+ const changeRecord = async (change) => writable(() => storage.session.mutate(async (mutator) => {
769
+ const current = (await mutator.getValue(lifecycleAddress, context))?.value ?? EMPTY_LIFECYCLE;
770
+ if (current.version !== 1) throw new Error("Unknown server lifecycle format");
771
+ const decision = change(current);
772
+ if ("record" in decision) await mutator.commit([(0, _earendil_works_pi_agent_core_harness_session.setValue)(lifecycleAddress, compactLifecycle({
773
+ ...decision.record,
774
+ revision: current.revision + 1
775
+ }))], context);
776
+ return decision.result;
777
+ }, context));
778
+ let settlingOperationId;
779
+ let abortingOperationId;
780
+ const readLifecycle = async () => {
781
+ const [record, execution] = await Promise.all([readRecord(), lane.inspectExecution(context)]);
782
+ const current = execution.current;
783
+ return {
784
+ revision: Math.max(record.revision, publicationRevision),
785
+ operation: current === null ? settlingOperationId === void 0 ? null : {
786
+ id: settlingOperationId,
787
+ kind: "run",
788
+ status: abortingOperationId === settlingOperationId ? "aborting" : "open"
789
+ } : {
790
+ id: current.id,
791
+ kind: current.kind,
792
+ status: current.status === "aborting" || abortingOperationId === current.id ? "aborting" : "open"
793
+ },
794
+ paused: record.paused,
795
+ queue: record.queue.filter((item) => item.disposition !== "consumed" && item.disposition !== "removed").map(({ id, text, images, delivery, scheduling, disposition }) => ({
796
+ id,
797
+ text,
798
+ ...images === void 0 ? {} : { images },
799
+ delivery,
800
+ scheduling,
801
+ disposition
802
+ }))
803
+ };
804
+ };
805
+ let publishingLifecycle = Promise.resolve();
806
+ let publicationRevision = 0;
807
+ const publishLifecycle = () => {
808
+ const next = publishingLifecycle.then(async () => {
809
+ if (disposed) return;
810
+ const lifecycle = await readLifecycle();
811
+ publicationRevision = Math.max(publicationRevision + 1, lifecycle.revision);
812
+ emitFrame({
813
+ type: "lifecycle_update",
814
+ lifecycle: {
815
+ ...lifecycle,
816
+ revision: publicationRevision
817
+ }
818
+ });
819
+ });
820
+ publishingLifecycle = next.catch((error) => {
821
+ emitFrame({
822
+ type: FRAME_ERROR,
823
+ code: "lifecycle_projection",
824
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
825
+ });
826
+ });
827
+ return next;
828
+ };
829
+ const retainedMessage = (id, kind, message) => {
830
+ const content = message.role === "user" ? message.content : [];
831
+ const parts = typeof content === "string" ? [{
832
+ type: "text",
833
+ text: content
834
+ }] : content;
835
+ const text = message.role === "user" ? parts.map((part) => part.type === "text" ? part.text : "").filter(Boolean).join("\n") : "";
836
+ const images = message.role === "user" ? parts.filter((part) => part.type === "image") : [];
837
+ return {
838
+ id,
839
+ text,
840
+ ...images.length === 0 ? {} : { images },
841
+ message,
842
+ delivery: kind,
843
+ scheduling: "held",
844
+ disposition: "handoff",
845
+ nativeEntryId: id
846
+ };
847
+ };
848
+ const adoptNativeQueue = async () => {
849
+ if (await writable(() => storage.session.mutate(async (mutator) => {
850
+ const native = await mutator.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context);
851
+ const current = (await mutator.getValue(lifecycleAddress, context))?.value ?? EMPTY_LIFECYCLE;
852
+ const adopted = [];
853
+ for (const item of native?.value.inbox ?? []) {
854
+ if (item.kind !== "steer" && item.kind !== "followUp" && item.kind !== "nextRun") continue;
855
+ if (current.queue.some((entry) => entry.nativeEntryId === item.entryId || entry.id === item.entryId)) continue;
856
+ const pending = await mutator.getValue((0, _earendil_works_pi_agent_core_harness_session.pendingEntry)(item.entryId), context);
857
+ if (pending?.value.type !== "message") throw new Error(`Native queued input ${item.entryId} has no message payload`);
858
+ adopted.push(retainedMessage(item.entryId, item.kind, pending.value.payload));
859
+ }
860
+ if (adopted.length === 0) return false;
861
+ await mutator.commit([(0, _earendil_works_pi_agent_core_harness_session.setValue)(lifecycleAddress, {
862
+ ...current,
863
+ revision: current.revision + 1,
864
+ queue: [...current.queue, ...adopted]
865
+ })], context);
866
+ return true;
867
+ }, context))) await publishLifecycle();
868
+ };
869
+ const reconcileNativeQueue = async () => {
870
+ if (disposed) return;
871
+ const native = await storage.session.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context);
872
+ const remaining = new Set((native?.value.inbox ?? []).map((entry) => entry.entryId));
873
+ const record = await readRecord();
874
+ for (const item of record.queue.filter((entry) => entry.nativeEntryId !== void 0 && !remaining.has(entry.nativeEntryId))) {
875
+ if (record.abortOperationId !== void 0) continue;
876
+ const committed = await storage.session.getEntry(item.nativeEntryId, context);
877
+ await changeRecord((current) => ({
878
+ record: {
879
+ ...current,
880
+ queue: current.queue.map((entry) => entry.id === item.id && entry.nativeEntryId === item.nativeEntryId ? committed !== void 0 ? {
881
+ ...entry,
882
+ disposition: "consumed"
883
+ } : current.paused ? {
884
+ ...entry,
885
+ disposition: "pending",
886
+ nativeEntryId: void 0,
887
+ delivery: entry.delivery === "steer" ? "followUp" : entry.delivery
888
+ } : {
889
+ ...entry,
890
+ disposition: "uncertain"
891
+ } : entry)
892
+ },
893
+ result: void 0
894
+ }));
895
+ }
896
+ await publishLifecycle();
897
+ };
898
+ const unsubscribeHooks = [];
899
+ if (options.transformContext !== void 0) unsubscribeHooks.push(harness.hooks.on("before_run", () => {
900
+ contextPreparationFailure = void 0;
901
+ }));
902
+ if (options.beforeModelRequest !== void 0) unsubscribeHooks.push(harness.hooks.on("before_run", async (event, hookContext) => {
903
+ turnPreparationFailure = void 0;
904
+ requestPreparationFailure = void 0;
905
+ try {
906
+ await options.beforeModelRequest?.({
907
+ phase: "turn",
908
+ prompt: event.prompt,
909
+ resources: event.resources
910
+ }, hookContext);
911
+ } catch (error) {
912
+ turnPreparationFailure = { error };
913
+ throw error;
914
+ }
915
+ }), harness.hooks.on("before_request", async (event, hookContext) => {
916
+ try {
917
+ await options.beforeModelRequest?.({
918
+ phase: "request",
919
+ model: event.model,
920
+ resources: await harness.getResources(hookContext)
921
+ }, hookContext);
922
+ requestPreparationFailure = void 0;
923
+ } catch (error) {
924
+ requestPreparationFailure = { error };
925
+ throw error;
926
+ }
927
+ }));
928
+ if (options.transformContext !== void 0) unsubscribeHooks.push(harness.hooks.on("transform_context", async (event, hookContext) => {
929
+ try {
930
+ return await options.transformContext(event, hookContext);
931
+ } catch (error) {
932
+ contextPreparationFailure = { error };
933
+ throw error;
934
+ }
935
+ }));
936
+ if (options.beforePayload !== void 0) unsubscribeHooks.push(harness.hooks.on("before_payload", async (event, hookContext) => {
937
+ try {
938
+ return await options.beforePayload(event, hookContext);
939
+ } catch (error) {
940
+ payloadPreparationFailure = { error };
941
+ throw error;
942
+ }
943
+ }));
944
+ if (options.beforeTool !== void 0) unsubscribeHooks.push(harness.hooks.on("before_tool", options.beforeTool));
945
+ if (options.afterTool !== void 0) unsubscribeHooks.push(harness.hooks.on("after_tool", options.afterTool));
946
+ if (options.beforeCompaction !== void 0) unsubscribeHooks.push(harness.hooks.on("before_compaction", options.beforeCompaction));
947
+ try {
948
+ lane = await harness.lane(laneName, context);
949
+ if (options.sessionName !== void 0) await writable(() => harness.setName(options.sessionName, context));
950
+ } catch (error) {
951
+ for (const unsubscribeHook of unsubscribeHooks) unsubscribeHook();
952
+ for (const unsubscribeEvent of unsubscribe) unsubscribeEvent();
953
+ await harness.close(context).catch(() => void 0);
954
+ await closeStorage(storage, context);
955
+ throw error;
956
+ }
957
+ const settleExit = (code) => {
958
+ if (exitResolved) return;
959
+ exitResolved = true;
960
+ resolveExited(code);
961
+ };
962
+ let externalOperationActive = false;
963
+ let agentOperationsActive = 0;
964
+ const acquireAgentOperation = () => {
965
+ if (externalOperationActive) throw new Error("The session is busy with an external tool invocation");
966
+ agentOperationsActive += 1;
967
+ let released = false;
968
+ return () => {
969
+ if (released) return;
970
+ released = true;
971
+ agentOperationsActive -= 1;
972
+ };
973
+ };
974
+ const runAgentOperation = async (operation) => {
975
+ const release = acquireAgentOperation();
976
+ try {
977
+ return await operation();
978
+ } finally {
979
+ release();
980
+ }
981
+ };
982
+ const runExternalOperation = async (operation) => {
983
+ guardWritable();
984
+ if (externalOperationActive) throw new Error("The session is busy with an external tool invocation");
985
+ if (agentOperationsActive > 0) throw new Error("The session is busy with an agent operation");
986
+ externalOperationActive = true;
987
+ try {
988
+ if ((await lane.inspectExecution(context)).current !== null) throw new Error("The session is busy with an agent operation");
989
+ return await operation();
990
+ } finally {
991
+ externalOperationActive = false;
992
+ }
993
+ };
994
+ let admissionLine = Promise.resolve();
995
+ const serializeAdmission = async (operation) => {
996
+ const previous = admissionLine;
997
+ let release;
998
+ admissionLine = new Promise((resolve) => {
999
+ release = resolve;
1000
+ });
1001
+ await previous;
1002
+ try {
1003
+ return await operation();
1004
+ } finally {
1005
+ release();
1006
+ }
1007
+ };
1008
+ let drainingAutomatic = false;
1009
+ let drainRequested = false;
1010
+ const drive = async (operationId) => {
1011
+ settlingOperationId = operationId;
1012
+ let failure;
1013
+ try {
1014
+ const result = await writable(() => lane.drive({
1015
+ operationId,
1016
+ waitForRetry: true
1017
+ }, context));
1018
+ if (!result.ok) resultError(result);
1019
+ if (result.value.kind === "waiting" && result.value.reason === "retry") throw new Error(`Direct harness returned an unexpected retry wait for ${operationId}`);
1020
+ } catch (error) {
1021
+ failure = error;
1022
+ } finally {
1023
+ try {
1024
+ await settledEvents;
1025
+ } catch (error) {
1026
+ if (failure === void 0) failure = error;
1027
+ else emitFrame({
1028
+ type: FRAME_ERROR,
1029
+ code: "settled_event",
1030
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1031
+ });
1032
+ }
1033
+ if (settlingOperationId === operationId) settlingOperationId = void 0;
1034
+ if (abortingOperationId === operationId) abortingOperationId = void 0;
1035
+ if (!disposed) {
1036
+ let publicationSucceeded = false;
1037
+ try {
1038
+ await publishLifecycle();
1039
+ publicationSucceeded = true;
1040
+ } catch (error) {
1041
+ if (failure === void 0) failure = error;
1042
+ }
1043
+ if (publicationSucceeded && !storageQuarantined) drainAutomatic().catch((error) => emitFrame({
1044
+ type: FRAME_ERROR,
1045
+ code: "queue_drain",
1046
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1047
+ }));
1048
+ }
1049
+ }
1050
+ if (failure !== void 0) throw failure;
1051
+ };
1052
+ const drainAutomatic = async () => {
1053
+ if (disposed) return;
1054
+ if (drainingAutomatic) {
1055
+ drainRequested = true;
1056
+ return;
1057
+ }
1058
+ drainingAutomatic = true;
1059
+ try {
1060
+ while (!disposed) {
1061
+ if ((await lane.inspectExecution(context)).current !== null) return;
1062
+ const operationId = (0, node_crypto.randomUUID)();
1063
+ const claimed = await changeRecord((record) => {
1064
+ if (record.paused || record.abortOperationId !== void 0) return { result: void 0 };
1065
+ const item = record.queue.find((candidate) => candidate.disposition === "pending" && candidate.scheduling === "automatic" && candidate.delivery !== "steer");
1066
+ if (!item) return { result: void 0 };
1067
+ return {
1068
+ record: {
1069
+ ...record,
1070
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1071
+ ...entry,
1072
+ disposition: "handoff",
1073
+ operationId,
1074
+ attemptId: (0, node_crypto.randomUUID)()
1075
+ } : entry)
1076
+ },
1077
+ result: item
1078
+ };
1079
+ });
1080
+ if (!claimed) return;
1081
+ await publishLifecycle();
1082
+ try {
1083
+ const message = claimed.message ?? {
1084
+ role: "user",
1085
+ content: [...claimed.text ? [{
1086
+ type: "text",
1087
+ text: claimed.text
1088
+ }] : [], ...claimed.images ?? []],
1089
+ timestamp: Date.now()
1090
+ };
1091
+ const admitted = await serializeAdmission(async () => {
1092
+ if ((await readRecord()).paused) return void 0;
1093
+ return writable(() => lane.accept({
1094
+ kind: "prompt",
1095
+ operationId,
1096
+ prompt: message
1097
+ }, context));
1098
+ });
1099
+ if (!admitted || !admitted.ok) {
1100
+ if (admitted && admitted.error._tag !== "LaneBusy") resultError(admitted);
1101
+ await changeRecord((record) => ({
1102
+ record: {
1103
+ ...record,
1104
+ queue: record.queue.map((entry) => entry.id === claimed.id && entry.operationId === operationId ? {
1105
+ ...entry,
1106
+ disposition: "pending",
1107
+ operationId: void 0,
1108
+ attemptId: void 0
1109
+ } : entry)
1110
+ },
1111
+ result: void 0
1112
+ }));
1113
+ await publishLifecycle();
1114
+ return;
1115
+ }
1116
+ await changeRecord((record) => ({
1117
+ record: {
1118
+ ...record,
1119
+ queue: record.queue.map((entry) => entry.id === claimed.id && entry.operationId === operationId ? {
1120
+ ...entry,
1121
+ disposition: "consumed"
1122
+ } : entry)
1123
+ },
1124
+ result: void 0
1125
+ }));
1126
+ await publishLifecycle();
1127
+ await drive(operationId);
1128
+ } catch (error) {
1129
+ await changeRecord((record) => ({
1130
+ record: {
1131
+ ...record,
1132
+ queue: record.queue.map((entry) => entry.id === claimed.id && entry.operationId === operationId && entry.disposition === "handoff" ? {
1133
+ ...entry,
1134
+ disposition: "uncertain"
1135
+ } : entry)
1136
+ },
1137
+ result: void 0
1138
+ }));
1139
+ emitFrame({
1140
+ type: FRAME_ERROR,
1141
+ code: "queue_handoff",
1142
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1143
+ });
1144
+ await publishLifecycle();
1145
+ }
1146
+ }
1147
+ } finally {
1148
+ drainingAutomatic = false;
1149
+ if (drainRequested && !disposed) {
1150
+ drainRequested = false;
1151
+ drainAutomatic().catch((error) => emitFrame({
1152
+ type: FRAME_ERROR,
1153
+ code: "queue_drain",
1154
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1155
+ }));
1156
+ }
1157
+ }
1158
+ };
1159
+ const admitPrompt = async (text, images, streamingBehavior) => {
1160
+ const execution = await lane.inspectExecution(context);
1161
+ if (execution.current !== null && streamingBehavior !== void 0) {
1162
+ const queued = streamingBehavior === "steer" ? await writable(() => lane.steer(text, images, context)) : await writable(() => lane.followUp(text, images, context));
1163
+ if (!queued.ok) resultError(queued);
1164
+ await adoptNativeQueue();
1165
+ return { settled: Promise.resolve() };
1166
+ }
1167
+ const request = typeof text === "string" ? {
1168
+ kind: "prompt",
1169
+ prompt: text,
1170
+ ...images === void 0 ? {} : { images }
1171
+ } : {
1172
+ kind: "prompt",
1173
+ prompt: text
1174
+ };
1175
+ const admission = await serializeAdmission(async () => {
1176
+ const lifecycle = await readRecord();
1177
+ if (lifecycle.paused) {
1178
+ if (execution.current !== null || settlingOperationId !== void 0 || lifecycle.queue.some((entry) => entry.disposition !== "consumed" && entry.disposition !== "removed")) throw new Error("The agent queue is paused; resume before starting a turn");
1179
+ await changeRecord((record) => {
1180
+ if (record.queue.some((entry) => entry.disposition !== "consumed" && entry.disposition !== "removed")) throw new Error("The agent queue is paused; resume before starting a turn");
1181
+ return {
1182
+ record: {
1183
+ ...record,
1184
+ paused: false,
1185
+ abortOperationId: void 0
1186
+ },
1187
+ result: void 0
1188
+ };
1189
+ });
1190
+ await publishLifecycle();
1191
+ }
1192
+ for (const item of (await readRecord()).queue.filter((entry) => entry.disposition === "pending" && entry.scheduling === "held")) {
1193
+ await changeRecord((record) => ({
1194
+ record: {
1195
+ ...record,
1196
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1197
+ ...entry,
1198
+ disposition: "handoff",
1199
+ attemptId: (0, node_crypto.randomUUID)()
1200
+ } : entry)
1201
+ },
1202
+ result: void 0
1203
+ }));
1204
+ try {
1205
+ const queued = await writable(() => lane.followUp(item.message ?? item.text, item.message ? void 0 : item.images, context));
1206
+ if (!queued.ok) resultError(queued);
1207
+ await changeRecord((record) => ({
1208
+ record: {
1209
+ ...record,
1210
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1211
+ ...entry,
1212
+ nativeEntryId: queued.value.entryId
1213
+ } : entry)
1214
+ },
1215
+ result: void 0
1216
+ }));
1217
+ } catch (error) {
1218
+ await changeRecord((record) => ({
1219
+ record: {
1220
+ ...record,
1221
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1222
+ ...entry,
1223
+ disposition: "uncertain"
1224
+ } : entry)
1225
+ },
1226
+ result: void 0
1227
+ }));
1228
+ await publishLifecycle();
1229
+ throw error;
1230
+ }
1231
+ }
1232
+ return writable(() => lane.accept(request, context));
1233
+ });
1234
+ if (!admission.ok) {
1235
+ if (streamingBehavior !== void 0 && admission.error._tag === "LaneBusy") {
1236
+ const queued = await writable(() => streamingBehavior === "steer" ? lane.steer(text, images, context) : lane.followUp(text, images, context));
1237
+ if (!queued.ok) resultError(queued);
1238
+ await adoptNativeQueue();
1239
+ return { settled: Promise.resolve() };
1240
+ }
1241
+ resultError(admission);
1242
+ }
1243
+ return { settled: drive(admission.value.operationId) };
1244
+ };
1245
+ const replaceTools = (tools) => runAgentOperation(async () => {
1246
+ toolsReady = false;
1247
+ await writable(async () => {
1248
+ await harness.setTools(tools, context);
1249
+ await lane.setActiveTools(tools.map((tool) => tool.name), context);
1250
+ activeToolNames = new Set(tools.map((tool) => tool.name));
1251
+ toolsReady = true;
1252
+ });
1253
+ });
1254
+ const replaceResources = async (resources) => {
1255
+ await writable(() => harness.setResources(resources, context));
1256
+ };
1257
+ const readResources = async () => {
1258
+ guardLive();
1259
+ return harness.getResources(context);
1260
+ };
1261
+ const appendCustomEntry = async (customType, data) => writable(() => lane.appendCustomEntry(customType, data, context));
1262
+ const appendMessage = async (message) => writable(() => lane.appendMessage(message, context));
1263
+ const setLabel = async (targetId, label) => writable(() => harness.setLabel(targetId, label, context));
1264
+ const recordUsage = async (usage, options) => {
1265
+ const result = await writable(() => lane.recordUsage(usage, options, context));
1266
+ if (!result.ok) resultError(result);
1267
+ return result.value.usageId;
1268
+ };
1269
+ const tryDispatchCommand = async (text) => await options.dispatchCommand?.(text) ?? false;
1270
+ const dispatchCommand = (text) => runAgentOperation(async () => {
1271
+ guardLive();
1272
+ return tryDispatchCommand(text);
1273
+ });
1274
+ const submitPrompt = async (text, images, streamingBehavior) => {
1275
+ const release = acquireAgentOperation();
1276
+ try {
1277
+ if (await tryDispatchCommand(text)) {
1278
+ release();
1279
+ return {
1280
+ settled: Promise.resolve(),
1281
+ handledCommand: true
1282
+ };
1283
+ }
1284
+ const submission = await admitPrompt(text, images, streamingBehavior);
1285
+ submission.settled.then(release, release);
1286
+ return submission;
1287
+ } catch (error) {
1288
+ release();
1289
+ throw error;
1290
+ }
1291
+ };
1292
+ const prompt = async (text, images) => {
1293
+ await (await submitPrompt(text, images)).settled;
1294
+ };
1295
+ const admitMessage = async (message) => {
1296
+ const release = acquireAgentOperation();
1297
+ try {
1298
+ const submission = await admitPrompt(message);
1299
+ submission.settled.then(release, release);
1300
+ return submission;
1301
+ } catch (error) {
1302
+ release();
1303
+ throw error;
1304
+ }
1305
+ };
1306
+ const enqueueAutomatic = async (text, images) => {
1307
+ if (!text && !images?.length) throw new Error("Queued input must contain text or an image");
1308
+ const id = (0, node_crypto.randomUUID)();
1309
+ await changeRecord((record) => ({
1310
+ record: {
1311
+ ...record,
1312
+ queue: [...record.queue, {
1313
+ id,
1314
+ text,
1315
+ ...images === void 0 ? {} : { images },
1316
+ delivery: "followUp",
1317
+ scheduling: "automatic",
1318
+ disposition: "pending"
1319
+ }]
1320
+ },
1321
+ result: void 0
1322
+ }));
1323
+ await publishLifecycle();
1324
+ drainAutomatic().catch((error) => emitFrame({
1325
+ type: FRAME_ERROR,
1326
+ code: "queue_drain",
1327
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1328
+ }));
1329
+ return { id };
1330
+ };
1331
+ const removeQueued = async (id) => {
1332
+ const native = (await readRecord()).queue.find((entry) => entry.id === id);
1333
+ if (native?.disposition === "handoff" && native.nativeEntryId !== void 0) {
1334
+ const cancelled = await writable(() => lane.cancelQueued(native.nativeEntryId, context));
1335
+ if (!cancelled.ok) resultError(cancelled);
1336
+ if (cancelled.value.kind === "cancelled") {
1337
+ await changeRecord((record) => ({
1338
+ record: {
1339
+ ...record,
1340
+ queue: record.queue.map((entry) => entry.id === id ? {
1341
+ ...entry,
1342
+ disposition: "removed"
1343
+ } : entry)
1344
+ },
1345
+ result: void 0
1346
+ }));
1347
+ await publishLifecycle();
1348
+ return "removed";
1349
+ }
1350
+ await reconcileNativeQueue();
1351
+ return cancelled.value.kind === "already_consumed" ? "already_consumed" : "not_found";
1352
+ }
1353
+ const result = await changeRecord((record) => {
1354
+ const item = record.queue.find((entry) => entry.id === id);
1355
+ if (!item) return { result: "not_found" };
1356
+ if (item.disposition === "consumed") return { result: "already_consumed" };
1357
+ if (item.disposition === "removed") return { result: "removed" };
1358
+ if (item.disposition !== "pending") return { result: "in_flight" };
1359
+ return {
1360
+ record: {
1361
+ ...record,
1362
+ queue: record.queue.map((entry) => entry.id === id ? {
1363
+ ...entry,
1364
+ disposition: "removed"
1365
+ } : entry)
1366
+ },
1367
+ result: "removed"
1368
+ };
1369
+ });
1370
+ if (result === "removed") await publishLifecycle();
1371
+ return result;
1372
+ };
1373
+ const deliverPromoted = (id, operationId) => serializeAdmission(async () => {
1374
+ const execution = await lane.inspectExecution(context);
1375
+ if (execution.current?.id !== operationId || execution.current.status === "aborting") {
1376
+ await changeRecord((record) => ({
1377
+ record: {
1378
+ ...record,
1379
+ queue: record.queue.map((entry) => entry.id === id && entry.operationId === operationId ? {
1380
+ ...entry,
1381
+ delivery: "followUp",
1382
+ disposition: "pending",
1383
+ operationId: void 0
1384
+ } : entry)
1385
+ },
1386
+ result: void 0
1387
+ }));
1388
+ await publishLifecycle();
1389
+ drainAutomatic().catch((error) => emitFrame({
1390
+ type: FRAME_ERROR,
1391
+ code: "queue_drain",
1392
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1393
+ }));
1394
+ return;
1395
+ }
1396
+ const item = (await readRecord()).queue.find((entry) => entry.id === id && entry.operationId === operationId);
1397
+ if (!item || item.disposition !== "pending") return;
1398
+ const message = item.message ?? {
1399
+ role: "user",
1400
+ content: [...item.text ? [{
1401
+ type: "text",
1402
+ text: item.text
1403
+ }] : [], ...item.images ?? []],
1404
+ timestamp: Date.now()
1405
+ };
1406
+ if (!await changeRecord((record) => {
1407
+ const current = record.queue.find((entry) => entry.id === id && entry.operationId === operationId);
1408
+ if (!current || current.disposition !== "pending" || record.paused) return { result: false };
1409
+ return {
1410
+ record: {
1411
+ ...record,
1412
+ queue: record.queue.map((entry) => entry.id === id ? {
1413
+ ...entry,
1414
+ disposition: "handoff",
1415
+ attemptId: (0, node_crypto.randomUUID)()
1416
+ } : entry)
1417
+ },
1418
+ result: true
1419
+ };
1420
+ })) return;
1421
+ await publishLifecycle();
1422
+ try {
1423
+ const queued = await writable(() => lane.steer(message, void 0, context));
1424
+ if (!queued.ok) resultError(queued);
1425
+ const after = await lane.inspectExecution(context);
1426
+ if (after.current?.id !== operationId || after.current.status === "aborting") {
1427
+ const cancelled = await writable(() => lane.cancelQueued(queued.value.entryId, context));
1428
+ if (!cancelled.ok) resultError(cancelled);
1429
+ await changeRecord((record) => ({
1430
+ record: {
1431
+ ...record,
1432
+ queue: record.queue.map((entry) => entry.id === id ? cancelled.value.kind === "cancelled" ? {
1433
+ ...entry,
1434
+ delivery: "followUp",
1435
+ disposition: "pending",
1436
+ operationId: void 0,
1437
+ attemptId: void 0
1438
+ } : {
1439
+ ...entry,
1440
+ disposition: cancelled.value.kind === "already_consumed" ? "consumed" : "uncertain",
1441
+ nativeEntryId: queued.value.entryId
1442
+ } : entry)
1443
+ },
1444
+ result: void 0
1445
+ }));
1446
+ await publishLifecycle();
1447
+ if (cancelled.value.kind === "cancelled") drainAutomatic().catch((error) => emitFrame({
1448
+ type: FRAME_ERROR,
1449
+ code: "queue_drain",
1450
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1451
+ }));
1452
+ return;
1453
+ }
1454
+ await changeRecord((record) => ({
1455
+ record: {
1456
+ ...record,
1457
+ queue: record.queue.map((entry) => entry.id === id ? {
1458
+ ...entry,
1459
+ nativeEntryId: queued.value.entryId
1460
+ } : entry)
1461
+ },
1462
+ result: void 0
1463
+ }));
1464
+ await reconcileNativeQueue();
1465
+ } catch (error) {
1466
+ await changeRecord((record) => ({
1467
+ record: {
1468
+ ...record,
1469
+ queue: record.queue.map((entry) => entry.id === id && entry.disposition === "handoff" ? {
1470
+ ...entry,
1471
+ disposition: "uncertain"
1472
+ } : entry)
1473
+ },
1474
+ result: void 0
1475
+ }));
1476
+ await publishLifecycle();
1477
+ emitFrame({
1478
+ type: FRAME_ERROR,
1479
+ code: "steer_handoff",
1480
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1481
+ });
1482
+ }
1483
+ });
1484
+ const promoteQueued = async (id, operationId) => {
1485
+ const execution = await lane.inspectExecution(context);
1486
+ const result = await changeRecord((record) => {
1487
+ const item = record.queue.find((entry) => entry.id === id);
1488
+ if (!item || item.disposition === "removed" || item.disposition === "consumed") return { result: "not_found" };
1489
+ if (item.disposition !== "pending") return { result: "in_flight" };
1490
+ if (record.paused || execution.current?.id !== operationId || execution.current.status === "aborting") return { result: "target_changed" };
1491
+ return {
1492
+ record: {
1493
+ ...record,
1494
+ queue: record.queue.map((entry) => entry.id === id ? {
1495
+ ...entry,
1496
+ delivery: "steer",
1497
+ operationId
1498
+ } : entry)
1499
+ },
1500
+ result: "promoted"
1501
+ };
1502
+ });
1503
+ if (result === "promoted") {
1504
+ await publishLifecycle();
1505
+ deliverPromoted(id, operationId).catch((error) => emitFrame({
1506
+ type: FRAME_ERROR,
1507
+ code: "steer_handoff",
1508
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1509
+ }));
1510
+ }
1511
+ return result;
1512
+ };
1513
+ const resumeQueue = async () => {
1514
+ if ((await lane.inspectExecution(context)).current !== null) throw new Error("Wait for the active turn to settle before resuming the queue");
1515
+ await changeRecord((record) => ({
1516
+ record: {
1517
+ ...record,
1518
+ paused: false,
1519
+ abortOperationId: void 0,
1520
+ queue: record.queue.map((entry) => entry.disposition === "pending" && entry.delivery === "steer" ? {
1521
+ ...entry,
1522
+ delivery: "followUp",
1523
+ operationId: void 0,
1524
+ scheduling: "automatic"
1525
+ } : entry)
1526
+ },
1527
+ result: void 0
1528
+ }));
1529
+ await publishLifecycle();
1530
+ drainAutomatic().catch((error) => emitFrame({
1531
+ type: FRAME_ERROR,
1532
+ code: "queue_drain",
1533
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1534
+ }));
1535
+ };
1536
+ const steer = (message, images, targetOperationId) => runAgentOperation(async () => {
1537
+ const execution = await lane.inspectExecution(context);
1538
+ const id = (0, node_crypto.randomUUID)();
1539
+ const retained = typeof message === "string" ? {
1540
+ id,
1541
+ text: message,
1542
+ ...images === void 0 ? {} : { images }
1543
+ } : {
1544
+ ...retainedMessage(id, "steer", message),
1545
+ id
1546
+ };
1547
+ const target = targetOperationId ?? execution.current?.id;
1548
+ const active = target !== void 0 && execution.current?.id === target && execution.current.status !== "aborting";
1549
+ await changeRecord((record) => ({
1550
+ record: {
1551
+ ...record,
1552
+ queue: [...record.queue, {
1553
+ ...retained,
1554
+ delivery: active ? "steer" : "followUp",
1555
+ scheduling: "automatic",
1556
+ disposition: "pending",
1557
+ nativeEntryId: void 0,
1558
+ ...active ? { operationId: target } : {}
1559
+ }]
1560
+ },
1561
+ result: void 0
1562
+ }));
1563
+ await publishLifecycle();
1564
+ if (active) deliverPromoted(id, target).catch((error) => emitFrame({
1565
+ type: FRAME_ERROR,
1566
+ code: "steer_handoff",
1567
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1568
+ }));
1569
+ else drainAutomatic().catch((error) => emitFrame({
1570
+ type: FRAME_ERROR,
1571
+ code: "queue_drain",
1572
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1573
+ }));
1574
+ });
1575
+ const followUp = (message, images) => runAgentOperation(async () => {
1576
+ const result = await writable(() => lane.followUp(message, images, context));
1577
+ if (!result.ok) resultError(result);
1578
+ await adoptNativeQueue();
1579
+ });
1580
+ const nextRun = (message, images) => runAgentOperation(async () => {
1581
+ const result = await writable(() => lane.nextRun(message, images, context));
1582
+ if (!result.ok) resultError(result);
1583
+ await adoptNativeQueue();
1584
+ });
1585
+ const abortCurrent = async (targetOperationId) => {
1586
+ const currentId = (await lane.inspectExecution(context)).current?.id;
1587
+ if (!currentId || targetOperationId !== void 0 && targetOperationId !== currentId) return;
1588
+ if (!await serializeAdmission(async () => {
1589
+ if ((await lane.inspectExecution(context)).current?.id !== currentId) return false;
1590
+ if (!await writable(() => storage.session.mutate(async (mutator) => {
1591
+ const record = (await mutator.getValue(lifecycleAddress, context))?.value ?? EMPTY_LIFECYCLE;
1592
+ const native = await mutator.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context);
1593
+ if (native?.value.currentOperationId !== currentId) return false;
1594
+ const adopted = [];
1595
+ for (const pending of native.value.inbox) {
1596
+ if (pending.kind !== "steer" && pending.kind !== "followUp") continue;
1597
+ if (record.queue.some((item) => item.id === pending.entryId || item.nativeEntryId === pending.entryId)) continue;
1598
+ const payload = await mutator.getValue((0, _earendil_works_pi_agent_core_harness_session.pendingEntry)(pending.entryId), context);
1599
+ if (payload?.value.type !== "message") throw new Error(`Native queued input ${pending.entryId} has no message payload`);
1600
+ adopted.push(retainedMessage(pending.entryId, pending.kind, payload.value.payload));
1601
+ }
1602
+ await mutator.commit([(0, _earendil_works_pi_agent_core_harness_session.setValue)(lifecycleAddress, {
1603
+ ...record,
1604
+ revision: record.revision + 1,
1605
+ paused: true,
1606
+ abortOperationId: currentId,
1607
+ queue: [...record.queue.map((entry) => entry.disposition === "pending" && entry.delivery === "steer" ? {
1608
+ ...entry,
1609
+ delivery: "followUp",
1610
+ operationId: void 0
1611
+ } : entry), ...adopted]
1612
+ })], context);
1613
+ return true;
1614
+ }, context))) return false;
1615
+ abortingOperationId = currentId;
1616
+ await publishLifecycle();
1617
+ return true;
1618
+ })) return;
1619
+ const result = await writable(() => lane.requestAbort(currentId, context));
1620
+ if (!result.ok) {
1621
+ if (result.error._tag === "OperationMismatch") return;
1622
+ resultError(result);
1623
+ }
1624
+ const returned = [...result.value.steer.map((message) => ({
1625
+ kind: "steer",
1626
+ message
1627
+ })), ...result.value.followUp.map((message) => ({
1628
+ kind: "followUp",
1629
+ message
1630
+ }))];
1631
+ const latest = await readRecord();
1632
+ const native = await storage.session.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context);
1633
+ const remaining = new Set((native?.value.inbox ?? []).map((item) => item.entryId));
1634
+ const consumed = await Promise.all(latest.queue.filter((item) => item.nativeEntryId !== void 0).map(async (item) => [item.id, await storage.session.getEntry(item.nativeEntryId, context)]));
1635
+ const committed = new Set(consumed.filter(([, entry]) => entry !== void 0).map(([id]) => id));
1636
+ const removedUnconsumed = latest.queue.filter((item) => item.nativeEntryId !== void 0 && !remaining.has(item.nativeEntryId) && !committed.has(item.id));
1637
+ const unmatched = {
1638
+ steer: removedUnconsumed.filter((item) => item.delivery === "steer").length,
1639
+ followUp: removedUnconsumed.filter((item) => item.delivery === "followUp").length
1640
+ };
1641
+ const ambiguous = returned.filter(({ kind }) => kind === "steer").length !== unmatched.steer || returned.filter(({ kind }) => kind === "followUp").length !== unmatched.followUp;
1642
+ const extras = returned.filter(({ kind }) => {
1643
+ if (!ambiguous && unmatched[kind] > 0) {
1644
+ unmatched[kind] -= 1;
1645
+ return false;
1646
+ }
1647
+ return true;
1648
+ }).map(({ kind, message }) => ({
1649
+ ...retainedMessage((0, node_crypto.randomUUID)(), kind, message),
1650
+ delivery: kind === "steer" ? "followUp" : kind,
1651
+ scheduling: "held",
1652
+ disposition: "pending",
1653
+ nativeEntryId: void 0
1654
+ }));
1655
+ await changeRecord((current) => ({
1656
+ record: {
1657
+ ...current,
1658
+ queue: [...current.queue.map((item) => {
1659
+ if (item.nativeEntryId === void 0 || remaining.has(item.nativeEntryId)) return item;
1660
+ if (committed.has(item.id)) return {
1661
+ ...item,
1662
+ disposition: "consumed"
1663
+ };
1664
+ return ambiguous ? {
1665
+ ...item,
1666
+ disposition: "uncertain"
1667
+ } : {
1668
+ ...item,
1669
+ disposition: "pending",
1670
+ nativeEntryId: void 0,
1671
+ delivery: item.delivery === "steer" ? "followUp" : item.delivery,
1672
+ scheduling: item.delivery === "steer" ? "automatic" : item.scheduling
1673
+ };
1674
+ }), ...extras]
1675
+ },
1676
+ result: void 0
1677
+ }));
1678
+ await publishLifecycle();
1679
+ };
1680
+ const abort = (targetOperationId) => runAgentOperation(() => abortCurrent(targetOperationId));
1681
+ const interrupt = async () => {
1682
+ guardLive();
1683
+ await abortCurrent();
1684
+ await lane.waitForIdle(context);
1685
+ };
1686
+ const compact = (customInstructions) => runAgentOperation(async () => {
1687
+ const result = await writable(() => lane.compact(customInstructions === void 0 ? void 0 : { customInstructions }, context));
1688
+ if (!result.ok) resultError(result);
1689
+ });
1690
+ const recover = async () => {
1691
+ await adoptNativeQueue();
1692
+ const record = await readRecord();
1693
+ if (record.abortOperationId !== void 0) {
1694
+ if ((await lane.inspectExecution(context)).current?.id === record.abortOperationId) {
1695
+ await abort(record.abortOperationId);
1696
+ const afterAbort = await lane.inspectExecution(context);
1697
+ if (afterAbort.current?.id === record.abortOperationId && afterAbort.current.status !== "aborting") throw new Error("Cannot resume a turn before its persisted abort intent reaches native cancellation");
1698
+ if (afterAbort.current?.id === record.abortOperationId) {
1699
+ const resumed = await writable(() => lane.resume(context));
1700
+ if (!resumed.ok && resumed.error._tag !== "NothingToResume") resultError(resumed);
1701
+ }
1702
+ }
1703
+ await changeRecord((current) => ({
1704
+ record: {
1705
+ ...current,
1706
+ abortOperationId: void 0,
1707
+ paused: true
1708
+ },
1709
+ result: void 0
1710
+ }));
1711
+ }
1712
+ for (const item of (await readRecord()).queue.filter((entry) => entry.disposition === "handoff" && entry.attemptId !== void 0 && entry.operationId === void 0 && entry.nativeEntryId === void 0)) await changeRecord((record) => ({
1713
+ record: {
1714
+ ...record,
1715
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1716
+ ...entry,
1717
+ disposition: "uncertain"
1718
+ } : entry)
1719
+ },
1720
+ result: void 0
1721
+ }));
1722
+ const current = await readRecord();
1723
+ for (const item of current.queue.filter((entry) => entry.disposition === "handoff" && entry.operationId !== void 0)) {
1724
+ const execution = await lane.inspectExecution(context);
1725
+ const result = await lane.getResult(item.operationId, context);
1726
+ if (item.delivery !== "steer" && (execution.current?.id === item.operationId || result !== void 0)) await changeRecord((record) => ({
1727
+ record: {
1728
+ ...record,
1729
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1730
+ ...entry,
1731
+ disposition: "consumed"
1732
+ } : entry)
1733
+ },
1734
+ result: void 0
1735
+ }));
1736
+ else await changeRecord((record) => ({
1737
+ record: {
1738
+ ...record,
1739
+ queue: record.queue.map((entry) => entry.id === item.id ? {
1740
+ ...entry,
1741
+ disposition: "uncertain"
1742
+ } : entry)
1743
+ },
1744
+ result: void 0
1745
+ }));
1746
+ }
1747
+ await reconcileNativeQueue();
1748
+ await publishLifecycle();
1749
+ };
1750
+ const resume = () => runAgentOperation(async () => {
1751
+ await recover();
1752
+ if ((await readRecord()).paused) return false;
1753
+ const result = await writable(() => lane.resume(context));
1754
+ if (!result.ok && result.error._tag === "NothingToResume") {
1755
+ drainAutomatic().catch((error) => emitFrame({
1756
+ type: FRAME_ERROR,
1757
+ code: "queue_drain",
1758
+ error: require_harnessErrorMessage.harnessErrorMessage(error)
1759
+ }));
1760
+ return false;
1761
+ }
1762
+ if (!result.ok) resultError(result);
1763
+ return true;
1764
+ });
1765
+ const readState = async () => {
1766
+ const [lifecycle, retained, persisted, stats, thinking] = await Promise.all([
1767
+ readLifecycle(),
1768
+ readRecord(),
1769
+ storage.session.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context),
1770
+ storage.session.getStats(context),
1771
+ lane.getThinkingLevel(context)
1772
+ ]);
1773
+ const configuredModel = await lane.getModel(context);
1774
+ const name = await harness.getName(context);
1775
+ return {
1776
+ model: configuredModel === void 0 ? void 0 : {
1777
+ provider: configuredModel.provider,
1778
+ id: configuredModel.id
1779
+ },
1780
+ thinkingLevel: thinking,
1781
+ isStreaming: lifecycle.operation?.kind === "run",
1782
+ isCompacting: lifecycle.operation?.kind === "compaction",
1783
+ ...lifecycle.operation === null ? {} : {
1784
+ operationId: lifecycle.operation.id,
1785
+ executionStatus: lifecycle.operation.status
1786
+ },
1787
+ queuePaused: lifecycle.paused,
1788
+ queueRevision: lifecycle.revision,
1789
+ steeringMode: await harness.getSteeringMode(context),
1790
+ followUpMode: await harness.getFollowUpMode(context),
1791
+ sessionFile: storage.sessionFile,
1792
+ sessionId,
1793
+ ...name === void 0 ? {} : { sessionName: name },
1794
+ autoCompactionEnabled: (await harness.getCompactionSettings(context)).enabled,
1795
+ messageCount: stats.messageCount,
1796
+ pendingMessageCount: lifecycle.queue.length + (persisted?.value.inbox.filter((entry) => entry.kind !== "write" && !retained.queue.some((item) => item.id === entry.entryId || item.nativeEntryId === entry.entryId)).length ?? 0)
1797
+ };
1798
+ };
1799
+ const readEntries = async () => ({
1800
+ entries: await entriesForLane(lane, context),
1801
+ leafId: await lane.getTipId(context)
1802
+ });
1803
+ const listCommands = () => [...options.listCommands?.() ?? []];
1804
+ const setModel = async (model) => {
1805
+ if (models.getModel(model.provider, model.id) === void 0) throw new Error(`Model not found: ${model.provider}/${model.id}`);
1806
+ await writable(() => lane.setModel({
1807
+ provider: model.provider,
1808
+ modelId: model.id
1809
+ }, context));
1810
+ };
1811
+ const availableModels = () => models.getAvailable();
1812
+ const availableThinkingLevels = async () => {
1813
+ const model = await lane.getModel(context);
1814
+ if (!model) throw new Error("No model is selected");
1815
+ return (0, _earendil_works_pi_ai.getSupportedThinkingLevels)(model);
1816
+ };
1817
+ const setThinkingLevel = (level) => writable(() => lane.setThinkingLevel(level, context));
1818
+ const setSteeringMode = (mode) => writable(() => harness.setSteeringMode(mode, context));
1819
+ const setFollowUpMode = (mode) => writable(() => harness.setFollowUpMode(mode, context));
1820
+ const navigateTree = (targetId, navigationOptions) => runAgentOperation(async () => {
1821
+ const result = await writable(() => lane.navigateTree(targetId, navigationOptions, context));
1822
+ if (!result.ok) resultError(result);
1823
+ return {
1824
+ cancelled: result.value.navigation.status !== "completed",
1825
+ entries: await entriesForLane(lane, context)
1826
+ };
1827
+ });
1828
+ const clearQueue = async () => {
1829
+ await changeRecord((record) => ({
1830
+ record: {
1831
+ ...record,
1832
+ queue: record.queue.map((entry) => entry.disposition === "pending" ? {
1833
+ ...entry,
1834
+ disposition: "removed"
1835
+ } : entry)
1836
+ },
1837
+ result: void 0
1838
+ }));
1839
+ const queued = (await storage.session.getValue((0, _earendil_works_pi_agent_core_harness_session.laneState)(laneName), context))?.value.inbox ?? [];
1840
+ for (const item of queued) {
1841
+ if (item.kind === "write") continue;
1842
+ const result = await writable(() => lane.cancelQueued(item.entryId, context));
1843
+ if (!result.ok) resultError(result);
1844
+ if (result.value.kind === "cancelled") await changeRecord((record) => ({
1845
+ record: {
1846
+ ...record,
1847
+ queue: record.queue.map((entry) => entry.nativeEntryId === item.entryId ? {
1848
+ ...entry,
1849
+ disposition: "removed"
1850
+ } : entry)
1851
+ },
1852
+ result: void 0
1853
+ }));
1854
+ }
1855
+ await publishLifecycle();
1856
+ return {
1857
+ steering: [],
1858
+ followUp: []
1859
+ };
1860
+ };
1861
+ const setName = (name) => writable(() => harness.setName(name, context));
1862
+ const getSessionStats = () => storage.session.getStats(context);
1863
+ const dispose = () => {
1864
+ if (disposed) return disposePromise?.then(() => void 0, () => void 0) ?? Promise.resolve();
1865
+ disposePromise ??= (async () => {
1866
+ let failure;
1867
+ try {
1868
+ const execution = await lane.inspectExecution(context);
1869
+ if (execution.current !== null) await abortCurrent(execution.current.id);
1870
+ } catch (error) {
1871
+ failure = error;
1872
+ markStorageFailure(error);
1873
+ }
1874
+ disposed = true;
1875
+ for (const unsubscribeEvent of unsubscribe) unsubscribeEvent();
1876
+ for (const unsubscribeHook of unsubscribeHooks) unsubscribeHook();
1877
+ try {
1878
+ await harness.close(context);
1879
+ } catch (error) {
1880
+ failure ??= error;
1881
+ markStorageFailure(error);
1882
+ }
1883
+ try {
1884
+ await closeStorage(storage, context);
1885
+ } catch (error) {
1886
+ failure ??= error;
1887
+ markStorageFailure(error);
1888
+ }
1889
+ settleExit(failure === void 0 ? 0 : 1);
1890
+ if (failure !== void 0) throw failure;
1891
+ })();
1892
+ return disposePromise;
1893
+ };
1894
+ return {
1895
+ sessionId,
1896
+ laneName,
1897
+ harnessId,
1898
+ completeModel: models.complete?.bind(models),
1899
+ session: storage.session,
1900
+ harness,
1901
+ lane,
1902
+ exited,
1903
+ get storageQuarantined() {
1904
+ return storageQuarantined;
1905
+ },
1906
+ onPresentationFrame(listener) {
1907
+ listeners.add(listener);
1908
+ return () => listeners.delete(listener);
1909
+ },
1910
+ onEvent(listener) {
1911
+ lifecycleListeners.add(listener);
1912
+ return () => lifecycleListeners.delete(listener);
1913
+ },
1914
+ stop() {
1915
+ abort().catch(() => void 0).finally(() => dispose().catch(() => void 0));
1916
+ },
1917
+ readState,
1918
+ readLifecycle,
1919
+ enqueueAutomatic,
1920
+ removeQueued,
1921
+ promoteQueued,
1922
+ resumeQueue,
1923
+ recover,
1924
+ readEntries,
1925
+ listCommands,
1926
+ dispatchCommand,
1927
+ setModel,
1928
+ availableModels,
1929
+ availableThinkingLevels,
1930
+ setThinkingLevel,
1931
+ setSteeringMode,
1932
+ setFollowUpMode,
1933
+ navigateTree,
1934
+ clearQueue,
1935
+ setName,
1936
+ getSessionStats,
1937
+ replaceTools,
1938
+ replaceResources,
1939
+ readResources,
1940
+ runExternalOperation,
1941
+ appendCustomEntry,
1942
+ appendMessage,
1943
+ setLabel,
1944
+ recordUsage,
1945
+ submitPrompt,
1946
+ prompt,
1947
+ admitMessage,
1948
+ steer,
1949
+ followUp,
1950
+ nextRun,
1951
+ abort,
1952
+ interrupt,
1953
+ compact,
1954
+ resume,
1955
+ dispose
1956
+ };
1957
+ }
1958
+ //#endregion
1959
+ exports.AGENT_SETTLED_ENTRY_TYPE = AGENT_SETTLED_ENTRY_TYPE;
1960
+ exports.createDirectHarnessRuntime = createDirectHarnessRuntime;
1961
+ exports.promptForAssistantText = promptForAssistantText;
1962
+ exports.readDirectHarnessSessionMetadata = readDirectHarnessSessionMetadata;
1963
+
1964
+ //# sourceMappingURL=directHarnessRuntime.cjs.map