@agimon-ai/po-core 0.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1218) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/agentModel.cjs +4 -0
  5. package/dist/agentModel.d.mts +2 -0
  6. package/dist/agentModel.mjs +2 -0
  7. package/dist/apiContracts.cjs +2094 -0
  8. package/dist/apiContracts.cjs.map +1 -0
  9. package/dist/apiContracts.d.mts +1086 -0
  10. package/dist/apiContracts.d.mts.map +1 -0
  11. package/dist/apiContracts.mjs +2074 -0
  12. package/dist/apiContracts.mjs.map +1 -0
  13. package/dist/askUser.cjs +8 -0
  14. package/dist/askUser.d.mts +2 -0
  15. package/dist/askUser.mjs +2 -0
  16. package/dist/authorTools.cjs +5 -0
  17. package/dist/authorTools.d.mts +2 -0
  18. package/dist/authorTools.mjs +2 -0
  19. package/dist/backgroundWork.cjs +9 -0
  20. package/dist/backgroundWork.d.mts +2 -0
  21. package/dist/backgroundWork.mjs +2 -0
  22. package/dist/bundleAssetPolicy.cjs +5 -0
  23. package/dist/bundleAssetPolicy.d.mts +2 -0
  24. package/dist/bundleAssetPolicy.mjs +2 -0
  25. package/dist/childProcess.cjs +15 -0
  26. package/dist/childProcess.d.mts +2 -0
  27. package/dist/childProcess.mjs +2 -0
  28. package/dist/childSession.cjs +9 -0
  29. package/dist/childSession.d.mts +3 -0
  30. package/dist/childSession.mjs +3 -0
  31. package/dist/cockpitContainer.cjs +4 -0
  32. package/dist/cockpitContainer.d.mts +2 -0
  33. package/dist/cockpitContainer.mjs +2 -0
  34. package/dist/config.cjs +13 -0
  35. package/dist/config.d.mts +3 -0
  36. package/dist/config.mjs +2 -0
  37. package/dist/contextApi.cjs +12 -0
  38. package/dist/contextApi.d.mts +4 -0
  39. package/dist/contextApi.mjs +3 -0
  40. package/dist/contextContributions.cjs +7 -0
  41. package/dist/contextContributions.d.mts +3 -0
  42. package/dist/contextContributions.mjs +3 -0
  43. package/dist/contextDetail.cjs +65 -0
  44. package/dist/contextDetail.cjs.map +1 -0
  45. package/dist/contextDetail.d.mts +19 -0
  46. package/dist/contextDetail.d.mts.map +1 -0
  47. package/dist/contextDetail.mjs +64 -0
  48. package/dist/contextDetail.mjs.map +1 -0
  49. package/dist/contextDetailStore.cjs +96 -0
  50. package/dist/contextDetailStore.cjs.map +1 -0
  51. package/dist/contextDetailStore.d.mts +21 -0
  52. package/dist/contextDetailStore.d.mts.map +1 -0
  53. package/dist/contextDetailStore.mjs +87 -0
  54. package/dist/contextDetailStore.mjs.map +1 -0
  55. package/dist/contextProjection.cjs +121 -0
  56. package/dist/contextProjection.cjs.map +1 -0
  57. package/dist/contextProjection.d.mts +130 -0
  58. package/dist/contextProjection.d.mts.map +1 -0
  59. package/dist/contextProjection.mjs +117 -0
  60. package/dist/contextProjection.mjs.map +1 -0
  61. package/dist/cordisHost.cjs +13 -0
  62. package/dist/cordisHost.d.mts +2 -0
  63. package/dist/cordisHost.mjs +2 -0
  64. package/dist/delegation.cjs +18 -0
  65. package/dist/delegation.d.mts +2 -0
  66. package/dist/delegation.mjs +2 -0
  67. package/dist/doomPackage.cjs +61 -0
  68. package/dist/doomPackage.cjs.map +1 -0
  69. package/dist/doomPackage.d.mts +17 -0
  70. package/dist/doomPackage.d.mts.map +1 -0
  71. package/dist/doomPackage.mjs +54 -0
  72. package/dist/doomPackage.mjs.map +1 -0
  73. package/dist/executionBudget.cjs +232 -0
  74. package/dist/executionBudget.cjs.map +1 -0
  75. package/dist/executionBudget.d.mts +11 -0
  76. package/dist/executionBudget.d.mts.map +1 -0
  77. package/dist/executionBudget.mjs +226 -0
  78. package/dist/executionBudget.mjs.map +1 -0
  79. package/dist/extensionFile.cjs +19 -0
  80. package/dist/extensionFile.d.mts +3 -0
  81. package/dist/extensionFile.mjs +2 -0
  82. package/dist/footer.cjs +6 -0
  83. package/dist/footer.d.mts +2 -0
  84. package/dist/footer.mjs +2 -0
  85. package/dist/headless.cjs +16 -0
  86. package/dist/headless.d.mts +2 -0
  87. package/dist/headless.mjs +2 -0
  88. package/dist/headlessHub.cjs +1008 -0
  89. package/dist/headlessHub.cjs.map +1 -0
  90. package/dist/headlessHub.d.mts +176 -0
  91. package/dist/headlessHub.d.mts.map +1 -0
  92. package/dist/headlessHub.mjs +1005 -0
  93. package/dist/headlessHub.mjs.map +1 -0
  94. package/dist/headlessServer.cjs +956 -0
  95. package/dist/headlessServer.cjs.map +1 -0
  96. package/dist/headlessServer.d.mts +66 -0
  97. package/dist/headlessServer.d.mts.map +1 -0
  98. package/dist/headlessServer.mjs +949 -0
  99. package/dist/headlessServer.mjs.map +1 -0
  100. package/dist/headlessSessionHost.cjs +0 -0
  101. package/dist/headlessSessionHost.d.mts +89 -0
  102. package/dist/headlessSessionHost.d.mts.map +1 -0
  103. package/dist/headlessSessionHost.mjs +1 -0
  104. package/dist/headlessSessionManager.cjs +51 -0
  105. package/dist/headlessSessionManager.cjs.map +1 -0
  106. package/dist/headlessSessionManager.d.mts +6 -0
  107. package/dist/headlessSessionManager.d.mts.map +1 -0
  108. package/dist/headlessSessionManager.mjs +50 -0
  109. package/dist/headlessSessionManager.mjs.map +1 -0
  110. package/dist/help.cjs +24 -0
  111. package/dist/help.d.mts +3 -0
  112. package/dist/help.mjs +3 -0
  113. package/dist/history.cjs +25 -0
  114. package/dist/history.d.mts +10 -0
  115. package/dist/history.mjs +10 -0
  116. package/dist/historyOwnership.cjs +253 -0
  117. package/dist/historyOwnership.cjs.map +1 -0
  118. package/dist/historyOwnership.d.mts +23 -0
  119. package/dist/historyOwnership.d.mts.map +1 -0
  120. package/dist/historyOwnership.mjs +247 -0
  121. package/dist/historyOwnership.mjs.map +1 -0
  122. package/dist/hubChannel.cjs +4 -0
  123. package/dist/hubChannel.d.mts +2 -0
  124. package/dist/hubChannel.mjs +2 -0
  125. package/dist/index.cjs +44 -0
  126. package/dist/index.d.mts +6 -0
  127. package/dist/index.mjs +6 -0
  128. package/dist/json.cjs +6 -0
  129. package/dist/json.d.mts +2 -0
  130. package/dist/json.mjs +2 -0
  131. package/dist/jsonlSessionRepo.cjs +44 -0
  132. package/dist/jsonlSessionRepo.cjs.map +1 -0
  133. package/dist/jsonlSessionRepo.d.mts +7 -0
  134. package/dist/jsonlSessionRepo.d.mts.map +1 -0
  135. package/dist/jsonlSessionRepo.mjs +42 -0
  136. package/dist/jsonlSessionRepo.mjs.map +1 -0
  137. package/dist/kernel.cjs +3 -0
  138. package/dist/kernel.d.mts +3 -0
  139. package/dist/kernel.mjs +2 -0
  140. package/dist/leader.cjs +9 -0
  141. package/dist/leader.d.mts +2 -0
  142. package/dist/leader.mjs +2 -0
  143. package/dist/logSinkTelemetry.cjs +5 -0
  144. package/dist/logSinkTelemetry.d.mts +2 -0
  145. package/dist/logSinkTelemetry.mjs +2 -0
  146. package/dist/machineApi.cjs +92 -0
  147. package/dist/machineApi.cjs.map +1 -0
  148. package/dist/machineApi.d.mts +7 -0
  149. package/dist/machineApi.d.mts.map +1 -0
  150. package/dist/machineApi.mjs +88 -0
  151. package/dist/machineApi.mjs.map +1 -0
  152. package/dist/main.cjs +11 -0
  153. package/dist/main.d.mts +5 -0
  154. package/dist/main.mjs +4 -0
  155. package/dist/mcpFacet.cjs +9 -0
  156. package/dist/mcpFacet.d.mts +4 -0
  157. package/dist/mcpFacet.mjs +3 -0
  158. package/dist/mcpProjection.cjs +16 -0
  159. package/dist/mcpProjection.d.mts +2 -0
  160. package/dist/mcpProjection.mjs +2 -0
  161. package/dist/mcpSchemaCost.cjs +195 -0
  162. package/dist/mcpSchemaCost.cjs.map +1 -0
  163. package/dist/mcpSchemaCost.d.mts +35 -0
  164. package/dist/mcpSchemaCost.d.mts.map +1 -0
  165. package/dist/mcpSchemaCost.mjs +190 -0
  166. package/dist/mcpSchemaCost.mjs.map +1 -0
  167. package/dist/mcpSession.cjs +9 -0
  168. package/dist/mcpSession.d.mts +2 -0
  169. package/dist/mcpSession.mjs +2 -0
  170. package/dist/mcpStatus.cjs +7 -0
  171. package/dist/mcpStatus.d.mts +2 -0
  172. package/dist/mcpStatus.mjs +2 -0
  173. package/dist/mcpToolResolver.cjs +5 -0
  174. package/dist/mcpToolResolver.d.mts +2 -0
  175. package/dist/mcpToolResolver.mjs +2 -0
  176. package/dist/mcpWidget.cjs +0 -0
  177. package/dist/mcpWidget.d.mts +2 -0
  178. package/dist/mcpWidget.mjs +1 -0
  179. package/dist/moduleResolution.cjs +412 -0
  180. package/dist/moduleResolution.cjs.map +1 -0
  181. package/dist/moduleResolution.d.mts +72 -0
  182. package/dist/moduleResolution.d.mts.map +1 -0
  183. package/dist/moduleResolution.mjs +396 -0
  184. package/dist/moduleResolution.mjs.map +1 -0
  185. package/dist/narration.cjs +10 -0
  186. package/dist/narration.d.mts +2 -0
  187. package/dist/narration.mjs +2 -0
  188. package/dist/native.cjs +29 -0
  189. package/dist/native.d.mts +12 -0
  190. package/dist/native.mjs +8 -0
  191. package/dist/notification.cjs +17 -0
  192. package/dist/notification.d.mts +2 -0
  193. package/dist/notification.mjs +2 -0
  194. package/dist/packageApi.cjs +17 -0
  195. package/dist/packageApi.d.mts +3 -0
  196. package/dist/packageApi.mjs +3 -0
  197. package/dist/packageApiServer.cjs +196 -0
  198. package/dist/packageApiServer.cjs.map +1 -0
  199. package/dist/packageApiServer.d.mts +62 -0
  200. package/dist/packageApiServer.d.mts.map +1 -0
  201. package/dist/packageApiServer.mjs +194 -0
  202. package/dist/packageApiServer.mjs.map +1 -0
  203. package/dist/piSettings.cjs +20 -0
  204. package/dist/piSettings.d.mts +2 -0
  205. package/dist/piSettings.mjs +2 -0
  206. package/dist/pluginProtocol.cjs +10 -0
  207. package/dist/pluginProtocol.d.mts +2 -0
  208. package/dist/pluginProtocol.mjs +2 -0
  209. package/dist/profileIdentity.cjs +6 -0
  210. package/dist/profileIdentity.d.mts +2 -0
  211. package/dist/profileIdentity.mjs +2 -0
  212. package/dist/protocol.cjs +10 -0
  213. package/dist/protocol.d.mts +2 -0
  214. package/dist/protocol.mjs +2 -0
  215. package/dist/readiness.cjs +8 -0
  216. package/dist/readiness.d.mts +2 -0
  217. package/dist/readiness.mjs +2 -0
  218. package/dist/remoteApi.cjs +45 -0
  219. package/dist/remoteApi.cjs.map +1 -0
  220. package/dist/remoteApi.d.mts +7 -0
  221. package/dist/remoteApi.d.mts.map +1 -0
  222. package/dist/remoteApi.mjs +44 -0
  223. package/dist/remoteApi.mjs.map +1 -0
  224. package/dist/remoteRuntime.cjs +498 -0
  225. package/dist/remoteRuntime.cjs.map +1 -0
  226. package/dist/remoteRuntime.d.mts +36 -0
  227. package/dist/remoteRuntime.d.mts.map +1 -0
  228. package/dist/remoteRuntime.mjs +494 -0
  229. package/dist/remoteRuntime.mjs.map +1 -0
  230. package/dist/runtimeConfig.cjs +232 -0
  231. package/dist/runtimeConfig.cjs.map +1 -0
  232. package/dist/runtimeConfig.d.mts +313 -0
  233. package/dist/runtimeConfig.d.mts.map +1 -0
  234. package/dist/runtimeConfig.mjs +221 -0
  235. package/dist/runtimeConfig.mjs.map +1 -0
  236. package/dist/runtimeContextApi.cjs +64 -0
  237. package/dist/runtimeContextApi.cjs.map +1 -0
  238. package/dist/runtimeContextApi.d.mts +16 -0
  239. package/dist/runtimeContextApi.d.mts.map +1 -0
  240. package/dist/runtimeContextApi.mjs +62 -0
  241. package/dist/runtimeContextApi.mjs.map +1 -0
  242. package/dist/runtimeCordisHost.cjs +223 -0
  243. package/dist/runtimeCordisHost.cjs.map +1 -0
  244. package/dist/runtimeCordisHost.d.mts +78 -0
  245. package/dist/runtimeCordisHost.d.mts.map +1 -0
  246. package/dist/runtimeCordisHost.mjs +212 -0
  247. package/dist/runtimeCordisHost.mjs.map +1 -0
  248. package/dist/runtimeHeadlessSessionManager.cjs +0 -0
  249. package/dist/runtimeHeadlessSessionManager.d.mts +18 -0
  250. package/dist/runtimeHeadlessSessionManager.d.mts.map +1 -0
  251. package/dist/runtimeHeadlessSessionManager.mjs +1 -0
  252. package/dist/runtimeIdentity.cjs +26 -0
  253. package/dist/runtimeIdentity.cjs.map +1 -0
  254. package/dist/runtimeIdentity.d.mts +7 -0
  255. package/dist/runtimeIdentity.d.mts.map +1 -0
  256. package/dist/runtimeIdentity.mjs +21 -0
  257. package/dist/runtimeIdentity.mjs.map +1 -0
  258. package/dist/runtimeJson.cjs +46 -0
  259. package/dist/runtimeJson.cjs.map +1 -0
  260. package/dist/runtimeJson.d.mts +22 -0
  261. package/dist/runtimeJson.d.mts.map +1 -0
  262. package/dist/runtimeJson.mjs +39 -0
  263. package/dist/runtimeJson.mjs.map +1 -0
  264. package/dist/runtimeLogSinkTelemetry.cjs +102 -0
  265. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -0
  266. package/dist/runtimeLogSinkTelemetry.d.mts +49 -0
  267. package/dist/runtimeLogSinkTelemetry.d.mts.map +1 -0
  268. package/dist/runtimeLogSinkTelemetry.mjs +99 -0
  269. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -0
  270. package/dist/runtimePackages.cjs +120 -0
  271. package/dist/runtimePackages.cjs.map +1 -0
  272. package/dist/runtimePackages.d.mts +57 -0
  273. package/dist/runtimePackages.d.mts.map +1 -0
  274. package/dist/runtimePackages.mjs +110 -0
  275. package/dist/runtimePackages.mjs.map +1 -0
  276. package/dist/runtimePiSettings.cjs +257 -0
  277. package/dist/runtimePiSettings.cjs.map +1 -0
  278. package/dist/runtimePiSettings.d.mts +70 -0
  279. package/dist/runtimePiSettings.d.mts.map +1 -0
  280. package/dist/runtimePiSettings.mjs +235 -0
  281. package/dist/runtimePiSettings.mjs.map +1 -0
  282. package/dist/runtimeProtocol.cjs +228 -0
  283. package/dist/runtimeProtocol.cjs.map +1 -0
  284. package/dist/runtimeProtocol.d.mts +86 -0
  285. package/dist/runtimeProtocol.d.mts.map +1 -0
  286. package/dist/runtimeProtocol.mjs +219 -0
  287. package/dist/runtimeProtocol.mjs.map +1 -0
  288. package/dist/runtimeToolNames.cjs +51 -0
  289. package/dist/runtimeToolNames.cjs.map +1 -0
  290. package/dist/runtimeToolNames.d.mts +24 -0
  291. package/dist/runtimeToolNames.d.mts.map +1 -0
  292. package/dist/runtimeToolNames.mjs +49 -0
  293. package/dist/runtimeToolNames.mjs.map +1 -0
  294. package/dist/runtimeTransition.cjs +27 -0
  295. package/dist/runtimeTransition.cjs.map +1 -0
  296. package/dist/runtimeTransition.d.mts +114 -0
  297. package/dist/runtimeTransition.d.mts.map +1 -0
  298. package/dist/runtimeTransition.mjs +24 -0
  299. package/dist/runtimeTransition.mjs.map +1 -0
  300. package/dist/sandboxHarness.cjs +6 -0
  301. package/dist/sandboxHarness.d.mts +2 -0
  302. package/dist/sandboxHarness.mjs +2 -0
  303. package/dist/server.cjs +17 -0
  304. package/dist/server.d.mts +10 -0
  305. package/dist/server.mjs +7 -0
  306. package/dist/serverFacet.cjs +34 -0
  307. package/dist/serverFacet.d.mts +10 -0
  308. package/dist/serverFacet.mjs +9 -0
  309. package/dist/serverTelemetry.cjs +25 -0
  310. package/dist/serverTelemetry.cjs.map +1 -0
  311. package/dist/serverTelemetry.d.mts +12 -0
  312. package/dist/serverTelemetry.d.mts.map +1 -0
  313. package/dist/serverTelemetry.mjs +23 -0
  314. package/dist/serverTelemetry.mjs.map +1 -0
  315. package/dist/sessionFilesApi.cjs +96 -0
  316. package/dist/sessionFilesApi.cjs.map +1 -0
  317. package/dist/sessionFilesApi.d.mts +7 -0
  318. package/dist/sessionFilesApi.d.mts.map +1 -0
  319. package/dist/sessionFilesApi.mjs +91 -0
  320. package/dist/sessionFilesApi.mjs.map +1 -0
  321. package/dist/sessionMcp.cjs +6 -0
  322. package/dist/sessionMcp.d.mts +5 -0
  323. package/dist/sessionMcp.mjs +3 -0
  324. package/dist/sessionProtocol.cjs +8 -0
  325. package/dist/sessionProtocol.d.mts +3 -0
  326. package/dist/sessionProtocol.mjs +2 -0
  327. package/dist/skills.cjs +9 -0
  328. package/dist/skills.d.mts +2 -0
  329. package/dist/skills.mjs +2 -0
  330. package/dist/sqliteSessionStorage.cjs +168 -0
  331. package/dist/sqliteSessionStorage.cjs.map +1 -0
  332. package/dist/sqliteSessionStorage.d.mts +35 -0
  333. package/dist/sqliteSessionStorage.d.mts.map +1 -0
  334. package/dist/sqliteSessionStorage.mjs +158 -0
  335. package/dist/sqliteSessionStorage.mjs.map +1 -0
  336. package/dist/src/constants/authorTools.cjs +10 -0
  337. package/dist/src/constants/authorTools.cjs.map +1 -0
  338. package/dist/src/constants/authorTools.d.mts +6 -0
  339. package/dist/src/constants/authorTools.d.mts.map +1 -0
  340. package/dist/src/constants/authorTools.mjs +8 -0
  341. package/dist/src/constants/authorTools.mjs.map +1 -0
  342. package/dist/src/constants/contextApi.cjs +31 -0
  343. package/dist/src/constants/contextApi.cjs.map +1 -0
  344. package/dist/src/constants/contextApi.d.mts +23 -0
  345. package/dist/src/constants/contextApi.d.mts.map +1 -0
  346. package/dist/src/constants/contextApi.mjs +25 -0
  347. package/dist/src/constants/contextApi.mjs.map +1 -0
  348. package/dist/src/constants/nativeHost.cjs +56 -0
  349. package/dist/src/constants/nativeHost.cjs.map +1 -0
  350. package/dist/src/constants/nativeHost.d.mts +21 -0
  351. package/dist/src/constants/nativeHost.d.mts.map +1 -0
  352. package/dist/src/constants/nativeHost.mjs +53 -0
  353. package/dist/src/constants/nativeHost.mjs.map +1 -0
  354. package/dist/src/constants/remote.cjs +132 -0
  355. package/dist/src/constants/remote.cjs.map +1 -0
  356. package/dist/src/constants/remote.mjs +99 -0
  357. package/dist/src/constants/remote.mjs.map +1 -0
  358. package/dist/src/constants/sessionFiles.cjs +27 -0
  359. package/dist/src/constants/sessionFiles.cjs.map +1 -0
  360. package/dist/src/constants/sessionFiles.mjs +25 -0
  361. package/dist/src/constants/sessionFiles.mjs.map +1 -0
  362. package/dist/src/constants/voiceReloadHandoff.cjs +12 -0
  363. package/dist/src/constants/voiceReloadHandoff.cjs.map +1 -0
  364. package/dist/src/constants/voiceReloadHandoff.d.mts +7 -0
  365. package/dist/src/constants/voiceReloadHandoff.d.mts.map +1 -0
  366. package/dist/src/constants/voiceReloadHandoff.mjs +9 -0
  367. package/dist/src/constants/voiceReloadHandoff.mjs.map +1 -0
  368. package/dist/src/constants/voiceTools.cjs +96 -0
  369. package/dist/src/constants/voiceTools.cjs.map +1 -0
  370. package/dist/src/constants/voiceTools.d.mts +58 -0
  371. package/dist/src/constants/voiceTools.d.mts.map +1 -0
  372. package/dist/src/constants/voiceTools.mjs +60 -0
  373. package/dist/src/constants/voiceTools.mjs.map +1 -0
  374. package/dist/src/extensions/extensionFile.cjs +140 -0
  375. package/dist/src/extensions/extensionFile.cjs.map +1 -0
  376. package/dist/src/extensions/extensionFile.d.mts +69 -0
  377. package/dist/src/extensions/extensionFile.d.mts.map +1 -0
  378. package/dist/src/extensions/extensionFile.mjs +124 -0
  379. package/dist/src/extensions/extensionFile.mjs.map +1 -0
  380. package/dist/src/extensions/serverPlugin.cjs +107 -0
  381. package/dist/src/extensions/serverPlugin.cjs.map +1 -0
  382. package/dist/src/extensions/serverPlugin.d.mts +5 -0
  383. package/dist/src/extensions/serverPlugin.d.mts.map +1 -0
  384. package/dist/src/extensions/serverPlugin.mjs +107 -0
  385. package/dist/src/extensions/serverPlugin.mjs.map +1 -0
  386. package/dist/src/extensions/webPlugin.cjs +136 -0
  387. package/dist/src/extensions/webPlugin.cjs.map +1 -0
  388. package/dist/src/extensions/webPlugin.d.mts +68 -0
  389. package/dist/src/extensions/webPlugin.d.mts.map +1 -0
  390. package/dist/src/extensions/webPlugin.mjs +114 -0
  391. package/dist/src/extensions/webPlugin.mjs.map +1 -0
  392. package/dist/src/pi/piSessionRuntime.cjs +625 -0
  393. package/dist/src/pi/piSessionRuntime.cjs.map +1 -0
  394. package/dist/src/pi/piSessionRuntime.d.mts +43 -0
  395. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -0
  396. package/dist/src/pi/piSessionRuntime.mjs +624 -0
  397. package/dist/src/pi/piSessionRuntime.mjs.map +1 -0
  398. package/dist/src/pi/piWebSocketListener.cjs +115 -0
  399. package/dist/src/pi/piWebSocketListener.cjs.map +1 -0
  400. package/dist/src/pi/piWebSocketListener.mjs +115 -0
  401. package/dist/src/pi/piWebSocketListener.mjs.map +1 -0
  402. package/dist/src/schemas/agentModel.cjs +33 -0
  403. package/dist/src/schemas/agentModel.cjs.map +1 -0
  404. package/dist/src/schemas/agentModel.d.mts +26 -0
  405. package/dist/src/schemas/agentModel.d.mts.map +1 -0
  406. package/dist/src/schemas/agentModel.mjs +32 -0
  407. package/dist/src/schemas/agentModel.mjs.map +1 -0
  408. package/dist/src/schemas/apiContracts.d.mts +58 -0
  409. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  410. package/dist/src/schemas/askUser.cjs +42 -0
  411. package/dist/src/schemas/askUser.cjs.map +1 -0
  412. package/dist/src/schemas/askUser.d.mts +47 -0
  413. package/dist/src/schemas/askUser.d.mts.map +1 -0
  414. package/dist/src/schemas/askUser.mjs +37 -0
  415. package/dist/src/schemas/askUser.mjs.map +1 -0
  416. package/dist/src/schemas/backgroundWork.cjs +44 -0
  417. package/dist/src/schemas/backgroundWork.cjs.map +1 -0
  418. package/dist/src/schemas/backgroundWork.d.mts +76 -0
  419. package/dist/src/schemas/backgroundWork.d.mts.map +1 -0
  420. package/dist/src/schemas/backgroundWork.mjs +38 -0
  421. package/dist/src/schemas/backgroundWork.mjs.map +1 -0
  422. package/dist/src/schemas/childProcess.cjs +67 -0
  423. package/dist/src/schemas/childProcess.cjs.map +1 -0
  424. package/dist/src/schemas/childProcess.d.mts +30 -0
  425. package/dist/src/schemas/childProcess.d.mts.map +1 -0
  426. package/dist/src/schemas/childProcess.mjs +55 -0
  427. package/dist/src/schemas/childProcess.mjs.map +1 -0
  428. package/dist/src/schemas/cockpitContainer.cjs +31 -0
  429. package/dist/src/schemas/cockpitContainer.cjs.map +1 -0
  430. package/dist/src/schemas/cockpitContainer.d.mts +80 -0
  431. package/dist/src/schemas/cockpitContainer.d.mts.map +1 -0
  432. package/dist/src/schemas/cockpitContainer.mjs +30 -0
  433. package/dist/src/schemas/cockpitContainer.mjs.map +1 -0
  434. package/dist/src/schemas/contextContributions.cjs +17 -0
  435. package/dist/src/schemas/contextContributions.cjs.map +1 -0
  436. package/dist/src/schemas/contextContributions.d.mts +49 -0
  437. package/dist/src/schemas/contextContributions.d.mts.map +1 -0
  438. package/dist/src/schemas/contextContributions.mjs +15 -0
  439. package/dist/src/schemas/contextContributions.mjs.map +1 -0
  440. package/dist/src/schemas/delegation.cjs +91 -0
  441. package/dist/src/schemas/delegation.cjs.map +1 -0
  442. package/dist/src/schemas/delegation.d.mts +95 -0
  443. package/dist/src/schemas/delegation.d.mts.map +1 -0
  444. package/dist/src/schemas/delegation.mjs +76 -0
  445. package/dist/src/schemas/delegation.mjs.map +1 -0
  446. package/dist/src/schemas/extensionFile.d.mts +116 -0
  447. package/dist/src/schemas/extensionFile.d.mts.map +1 -0
  448. package/dist/src/schemas/footer.cjs +48 -0
  449. package/dist/src/schemas/footer.cjs.map +1 -0
  450. package/dist/src/schemas/footer.d.mts +48 -0
  451. package/dist/src/schemas/footer.d.mts.map +1 -0
  452. package/dist/src/schemas/footer.mjs +45 -0
  453. package/dist/src/schemas/footer.mjs.map +1 -0
  454. package/dist/src/schemas/headless.cjs +97 -0
  455. package/dist/src/schemas/headless.cjs.map +1 -0
  456. package/dist/src/schemas/headless.d.mts +472 -0
  457. package/dist/src/schemas/headless.d.mts.map +1 -0
  458. package/dist/src/schemas/headless.mjs +84 -0
  459. package/dist/src/schemas/headless.mjs.map +1 -0
  460. package/dist/src/schemas/help.cjs +281 -0
  461. package/dist/src/schemas/help.cjs.map +1 -0
  462. package/dist/src/schemas/help.d.mts +119 -0
  463. package/dist/src/schemas/help.d.mts.map +1 -0
  464. package/dist/src/schemas/help.mjs +262 -0
  465. package/dist/src/schemas/help.mjs.map +1 -0
  466. package/dist/src/schemas/hubChannel.cjs +20 -0
  467. package/dist/src/schemas/hubChannel.cjs.map +1 -0
  468. package/dist/src/schemas/hubChannel.d.mts +271 -0
  469. package/dist/src/schemas/hubChannel.d.mts.map +1 -0
  470. package/dist/src/schemas/hubChannel.mjs +19 -0
  471. package/dist/src/schemas/hubChannel.mjs.map +1 -0
  472. package/dist/src/schemas/leader.cjs +57 -0
  473. package/dist/src/schemas/leader.cjs.map +1 -0
  474. package/dist/src/schemas/leader.d.mts +107 -0
  475. package/dist/src/schemas/leader.d.mts.map +1 -0
  476. package/dist/src/schemas/leader.mjs +51 -0
  477. package/dist/src/schemas/leader.mjs.map +1 -0
  478. package/dist/src/schemas/mcpBundle.d.mts +13 -0
  479. package/dist/src/schemas/mcpBundle.d.mts.map +1 -0
  480. package/dist/src/schemas/mcpFacet.cjs +24 -0
  481. package/dist/src/schemas/mcpFacet.cjs.map +1 -0
  482. package/dist/src/schemas/mcpFacet.d.mts +91 -0
  483. package/dist/src/schemas/mcpFacet.d.mts.map +1 -0
  484. package/dist/src/schemas/mcpFacet.mjs +21 -0
  485. package/dist/src/schemas/mcpFacet.mjs.map +1 -0
  486. package/dist/src/schemas/mcpProjection.cjs +117 -0
  487. package/dist/src/schemas/mcpProjection.cjs.map +1 -0
  488. package/dist/src/schemas/mcpProjection.d.mts +124 -0
  489. package/dist/src/schemas/mcpProjection.d.mts.map +1 -0
  490. package/dist/src/schemas/mcpProjection.mjs +104 -0
  491. package/dist/src/schemas/mcpProjection.mjs.map +1 -0
  492. package/dist/src/schemas/mcpSession.cjs +57 -0
  493. package/dist/src/schemas/mcpSession.cjs.map +1 -0
  494. package/dist/src/schemas/mcpSession.d.mts +57 -0
  495. package/dist/src/schemas/mcpSession.d.mts.map +1 -0
  496. package/dist/src/schemas/mcpSession.mjs +51 -0
  497. package/dist/src/schemas/mcpSession.mjs.map +1 -0
  498. package/dist/src/schemas/mcpStatus.cjs +52 -0
  499. package/dist/src/schemas/mcpStatus.cjs.map +1 -0
  500. package/dist/src/schemas/mcpStatus.d.mts +73 -0
  501. package/dist/src/schemas/mcpStatus.d.mts.map +1 -0
  502. package/dist/src/schemas/mcpStatus.mjs +48 -0
  503. package/dist/src/schemas/mcpStatus.mjs.map +1 -0
  504. package/dist/src/schemas/mcpToolResolver.cjs +17 -0
  505. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -0
  506. package/dist/src/schemas/mcpToolResolver.d.mts +24 -0
  507. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -0
  508. package/dist/src/schemas/mcpToolResolver.mjs +15 -0
  509. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -0
  510. package/dist/src/schemas/narration.cjs +54 -0
  511. package/dist/src/schemas/narration.cjs.map +1 -0
  512. package/dist/src/schemas/narration.d.mts +29 -0
  513. package/dist/src/schemas/narration.d.mts.map +1 -0
  514. package/dist/src/schemas/narration.mjs +47 -0
  515. package/dist/src/schemas/narration.mjs.map +1 -0
  516. package/dist/src/schemas/notification.cjs +122 -0
  517. package/dist/src/schemas/notification.cjs.map +1 -0
  518. package/dist/src/schemas/notification.d.mts +48 -0
  519. package/dist/src/schemas/notification.d.mts.map +1 -0
  520. package/dist/src/schemas/notification.mjs +108 -0
  521. package/dist/src/schemas/notification.mjs.map +1 -0
  522. package/dist/src/schemas/packageApi.cjs +76 -0
  523. package/dist/src/schemas/packageApi.cjs.map +1 -0
  524. package/dist/src/schemas/packageApi.d.mts +302 -0
  525. package/dist/src/schemas/packageApi.d.mts.map +1 -0
  526. package/dist/src/schemas/packageApi.mjs +66 -0
  527. package/dist/src/schemas/packageApi.mjs.map +1 -0
  528. package/dist/src/schemas/pluginContributions.cjs +19 -0
  529. package/dist/src/schemas/pluginContributions.cjs.map +1 -0
  530. package/dist/src/schemas/pluginContributions.d.mts +56 -0
  531. package/dist/src/schemas/pluginContributions.d.mts.map +1 -0
  532. package/dist/src/schemas/pluginContributions.mjs +18 -0
  533. package/dist/src/schemas/pluginContributions.mjs.map +1 -0
  534. package/dist/src/schemas/pluginProtocol.cjs +103 -0
  535. package/dist/src/schemas/pluginProtocol.cjs.map +1 -0
  536. package/dist/src/schemas/pluginProtocol.d.mts +70 -0
  537. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -0
  538. package/dist/src/schemas/pluginProtocol.mjs +96 -0
  539. package/dist/src/schemas/pluginProtocol.mjs.map +1 -0
  540. package/dist/src/schemas/profileIdentity.cjs +67 -0
  541. package/dist/src/schemas/profileIdentity.cjs.map +1 -0
  542. package/dist/src/schemas/profileIdentity.d.mts +50 -0
  543. package/dist/src/schemas/profileIdentity.d.mts.map +1 -0
  544. package/dist/src/schemas/profileIdentity.mjs +64 -0
  545. package/dist/src/schemas/profileIdentity.mjs.map +1 -0
  546. package/dist/src/schemas/readiness.cjs +251 -0
  547. package/dist/src/schemas/readiness.cjs.map +1 -0
  548. package/dist/src/schemas/readiness.d.mts +84 -0
  549. package/dist/src/schemas/readiness.d.mts.map +1 -0
  550. package/dist/src/schemas/readiness.mjs +246 -0
  551. package/dist/src/schemas/readiness.mjs.map +1 -0
  552. package/dist/src/schemas/sandboxHarness.cjs +29 -0
  553. package/dist/src/schemas/sandboxHarness.cjs.map +1 -0
  554. package/dist/src/schemas/sandboxHarness.d.mts +39 -0
  555. package/dist/src/schemas/sandboxHarness.d.mts.map +1 -0
  556. package/dist/src/schemas/sandboxHarness.mjs +26 -0
  557. package/dist/src/schemas/sandboxHarness.mjs.map +1 -0
  558. package/dist/src/schemas/serverBundle.d.mts +19 -0
  559. package/dist/src/schemas/serverBundle.d.mts.map +1 -0
  560. package/dist/src/schemas/serverFacet.cjs +111 -0
  561. package/dist/src/schemas/serverFacet.cjs.map +1 -0
  562. package/dist/src/schemas/serverFacet.d.mts +152 -0
  563. package/dist/src/schemas/serverFacet.d.mts.map +1 -0
  564. package/dist/src/schemas/serverFacet.mjs +101 -0
  565. package/dist/src/schemas/serverFacet.mjs.map +1 -0
  566. package/dist/src/schemas/sessionMcpActivity.d.mts +47 -0
  567. package/dist/src/schemas/sessionMcpActivity.d.mts.map +1 -0
  568. package/dist/src/schemas/sessionProtocol.cjs +17 -0
  569. package/dist/src/schemas/sessionProtocol.cjs.map +1 -0
  570. package/dist/src/schemas/sessionProtocol.d.mts +313 -0
  571. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -0
  572. package/dist/src/schemas/sessionProtocol.mjs +12 -0
  573. package/dist/src/schemas/sessionProtocol.mjs.map +1 -0
  574. package/dist/src/schemas/sessionUpdates.d.mts +34 -0
  575. package/dist/src/schemas/sessionUpdates.d.mts.map +1 -0
  576. package/dist/src/schemas/skills.cjs +115 -0
  577. package/dist/src/schemas/skills.cjs.map +1 -0
  578. package/dist/src/schemas/skills.d.mts +65 -0
  579. package/dist/src/schemas/skills.d.mts.map +1 -0
  580. package/dist/src/schemas/skills.mjs +109 -0
  581. package/dist/src/schemas/skills.mjs.map +1 -0
  582. package/dist/src/schemas/toolOverrides.cjs +17 -0
  583. package/dist/src/schemas/toolOverrides.cjs.map +1 -0
  584. package/dist/src/schemas/toolOverrides.d.mts +29 -0
  585. package/dist/src/schemas/toolOverrides.d.mts.map +1 -0
  586. package/dist/src/schemas/toolOverrides.mjs +15 -0
  587. package/dist/src/schemas/toolOverrides.mjs.map +1 -0
  588. package/dist/src/schemas/toolSurface.cjs +17 -0
  589. package/dist/src/schemas/toolSurface.cjs.map +1 -0
  590. package/dist/src/schemas/toolSurface.d.mts +70 -0
  591. package/dist/src/schemas/toolSurface.d.mts.map +1 -0
  592. package/dist/src/schemas/toolSurface.mjs +15 -0
  593. package/dist/src/schemas/toolSurface.mjs.map +1 -0
  594. package/dist/src/schemas/uiHub.cjs +17 -0
  595. package/dist/src/schemas/uiHub.cjs.map +1 -0
  596. package/dist/src/schemas/uiHub.d.mts +23 -0
  597. package/dist/src/schemas/uiHub.d.mts.map +1 -0
  598. package/dist/src/schemas/uiHub.mjs +15 -0
  599. package/dist/src/schemas/uiHub.mjs.map +1 -0
  600. package/dist/src/schemas/voiceReloadHandoff.cjs +78 -0
  601. package/dist/src/schemas/voiceReloadHandoff.cjs.map +1 -0
  602. package/dist/src/schemas/voiceReloadHandoff.d.mts +31 -0
  603. package/dist/src/schemas/voiceReloadHandoff.d.mts.map +1 -0
  604. package/dist/src/schemas/voiceReloadHandoff.mjs +75 -0
  605. package/dist/src/schemas/voiceReloadHandoff.mjs.map +1 -0
  606. package/dist/src/schemas/voiceTools.cjs +205 -0
  607. package/dist/src/schemas/voiceTools.cjs.map +1 -0
  608. package/dist/src/schemas/voiceTools.d.mts +120 -0
  609. package/dist/src/schemas/voiceTools.d.mts.map +1 -0
  610. package/dist/src/schemas/voiceTools.mjs +194 -0
  611. package/dist/src/schemas/voiceTools.mjs.map +1 -0
  612. package/dist/src/server/devProxyForward.cjs +141 -0
  613. package/dist/src/server/devProxyForward.cjs.map +1 -0
  614. package/dist/src/server/devProxyForward.mjs +139 -0
  615. package/dist/src/server/devProxyForward.mjs.map +1 -0
  616. package/dist/src/server/devProxyRoutes.cjs +97 -0
  617. package/dist/src/server/devProxyRoutes.cjs.map +1 -0
  618. package/dist/src/server/devProxyRoutes.mjs +97 -0
  619. package/dist/src/server/devProxyRoutes.mjs.map +1 -0
  620. package/dist/src/server/devProxySocket.cjs +93 -0
  621. package/dist/src/server/devProxySocket.cjs.map +1 -0
  622. package/dist/src/server/devProxySocket.d.mts +25 -0
  623. package/dist/src/server/devProxySocket.d.mts.map +1 -0
  624. package/dist/src/server/devProxySocket.mjs +93 -0
  625. package/dist/src/server/devProxySocket.mjs.map +1 -0
  626. package/dist/src/server/directHarnessRuntime.cjs +2387 -0
  627. package/dist/src/server/directHarnessRuntime.cjs.map +1 -0
  628. package/dist/src/server/directHarnessRuntime.d.mts +4 -0
  629. package/dist/src/server/directHarnessRuntime.mjs +2384 -0
  630. package/dist/src/server/directHarnessRuntime.mjs.map +1 -0
  631. package/dist/src/server/harnessErrorMessage.cjs +13 -0
  632. package/dist/src/server/harnessErrorMessage.cjs.map +1 -0
  633. package/dist/src/server/harnessErrorMessage.mjs +13 -0
  634. package/dist/src/server/harnessErrorMessage.mjs.map +1 -0
  635. package/dist/src/server/headlessProtocol.cjs +382 -0
  636. package/dist/src/server/headlessProtocol.cjs.map +1 -0
  637. package/dist/src/server/headlessProtocol.mjs +382 -0
  638. package/dist/src/server/headlessProtocol.mjs.map +1 -0
  639. package/dist/src/server/liveImport.cjs +37 -0
  640. package/dist/src/server/liveImport.cjs.map +1 -0
  641. package/dist/src/server/liveImport.d.mts +27 -0
  642. package/dist/src/server/liveImport.d.mts.map +1 -0
  643. package/dist/src/server/liveImport.mjs +34 -0
  644. package/dist/src/server/liveImport.mjs.map +1 -0
  645. package/dist/src/server/mcpBundleLoader.cjs +108 -0
  646. package/dist/src/server/mcpBundleLoader.cjs.map +1 -0
  647. package/dist/src/server/mcpBundleLoader.d.mts +46 -0
  648. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -0
  649. package/dist/src/server/mcpBundleLoader.mjs +107 -0
  650. package/dist/src/server/mcpBundleLoader.mjs.map +1 -0
  651. package/dist/src/server/nativeChildTranscriptReader.cjs +20 -0
  652. package/dist/src/server/nativeChildTranscriptReader.cjs.map +1 -0
  653. package/dist/src/server/nativeChildTranscriptReader.mjs +18 -0
  654. package/dist/src/server/nativeChildTranscriptReader.mjs.map +1 -0
  655. package/dist/src/server/remoteRoutes.cjs +463 -0
  656. package/dist/src/server/remoteRoutes.cjs.map +1 -0
  657. package/dist/src/server/remoteRoutes.mjs +463 -0
  658. package/dist/src/server/remoteRoutes.mjs.map +1 -0
  659. package/dist/src/server/serverFacetLoader.cjs +214 -0
  660. package/dist/src/server/serverFacetLoader.cjs.map +1 -0
  661. package/dist/src/server/serverFacetLoader.d.mts +72 -0
  662. package/dist/src/server/serverFacetLoader.d.mts.map +1 -0
  663. package/dist/src/server/serverFacetLoader.mjs +212 -0
  664. package/dist/src/server/serverFacetLoader.mjs.map +1 -0
  665. package/dist/src/server/sessionMcpHandler.cjs +585 -0
  666. package/dist/src/server/sessionMcpHandler.cjs.map +1 -0
  667. package/dist/src/server/sessionMcpHandler.d.mts +50 -0
  668. package/dist/src/server/sessionMcpHandler.d.mts.map +1 -0
  669. package/dist/src/server/sessionMcpHandler.mjs +582 -0
  670. package/dist/src/server/sessionMcpHandler.mjs.map +1 -0
  671. package/dist/src/server/sessionMcpRoutes.cjs +809 -0
  672. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -0
  673. package/dist/src/server/sessionMcpRoutes.mjs +804 -0
  674. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -0
  675. package/dist/src/server/threadJournals.cjs +172 -0
  676. package/dist/src/server/threadJournals.cjs.map +1 -0
  677. package/dist/src/server/threadJournals.mjs +169 -0
  678. package/dist/src/server/threadJournals.mjs.map +1 -0
  679. package/dist/src/services/acpSessionUpdates/index.cjs +129 -0
  680. package/dist/src/services/acpSessionUpdates/index.cjs.map +1 -0
  681. package/dist/src/services/acpSessionUpdates/index.mjs +129 -0
  682. package/dist/src/services/acpSessionUpdates/index.mjs.map +1 -0
  683. package/dist/src/services/apiSurfaceAssert/index.cjs +60 -0
  684. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -0
  685. package/dist/src/services/apiSurfaceAssert/index.d.mts +24 -0
  686. package/dist/src/services/apiSurfaceAssert/index.d.mts.map +1 -0
  687. package/dist/src/services/apiSurfaceAssert/index.mjs +60 -0
  688. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -0
  689. package/dist/src/services/bundlePublication/index.cjs +89 -0
  690. package/dist/src/services/bundlePublication/index.cjs.map +1 -0
  691. package/dist/src/services/bundlePublication/index.mjs +86 -0
  692. package/dist/src/services/bundlePublication/index.mjs.map +1 -0
  693. package/dist/src/services/contextApiUrls/index.cjs +53 -0
  694. package/dist/src/services/contextApiUrls/index.cjs.map +1 -0
  695. package/dist/src/services/contextApiUrls/index.d.mts +8 -0
  696. package/dist/src/services/contextApiUrls/index.d.mts.map +1 -0
  697. package/dist/src/services/contextApiUrls/index.mjs +52 -0
  698. package/dist/src/services/contextApiUrls/index.mjs.map +1 -0
  699. package/dist/src/services/contextContributions/index.cjs +79 -0
  700. package/dist/src/services/contextContributions/index.cjs.map +1 -0
  701. package/dist/src/services/contextContributions/index.d.mts +6 -0
  702. package/dist/src/services/contextContributions/index.d.mts.map +1 -0
  703. package/dist/src/services/contextContributions/index.mjs +79 -0
  704. package/dist/src/services/contextContributions/index.mjs.map +1 -0
  705. package/dist/src/services/contextUsage/index.cjs +27 -0
  706. package/dist/src/services/contextUsage/index.cjs.map +1 -0
  707. package/dist/src/services/contextUsage/index.mjs +25 -0
  708. package/dist/src/services/contextUsage/index.mjs.map +1 -0
  709. package/dist/src/services/devProxyPolicy/index.cjs +168 -0
  710. package/dist/src/services/devProxyPolicy/index.cjs.map +1 -0
  711. package/dist/src/services/devProxyPolicy/index.mjs +165 -0
  712. package/dist/src/services/devProxyPolicy/index.mjs.map +1 -0
  713. package/dist/src/services/devProxyStore/index.cjs +107 -0
  714. package/dist/src/services/devProxyStore/index.cjs.map +1 -0
  715. package/dist/src/services/devProxyStore/index.mjs +104 -0
  716. package/dist/src/services/devProxyStore/index.mjs.map +1 -0
  717. package/dist/src/services/deviceAuth/index.cjs +146 -0
  718. package/dist/src/services/deviceAuth/index.cjs.map +1 -0
  719. package/dist/src/services/deviceAuth/index.d.mts +9 -0
  720. package/dist/src/services/deviceAuth/index.d.mts.map +1 -0
  721. package/dist/src/services/deviceAuth/index.mjs +146 -0
  722. package/dist/src/services/deviceAuth/index.mjs.map +1 -0
  723. package/dist/src/services/deviceSessions/index.cjs +147 -0
  724. package/dist/src/services/deviceSessions/index.cjs.map +1 -0
  725. package/dist/src/services/deviceSessions/index.d.mts +18 -0
  726. package/dist/src/services/deviceSessions/index.d.mts.map +1 -0
  727. package/dist/src/services/deviceSessions/index.mjs +141 -0
  728. package/dist/src/services/deviceSessions/index.mjs.map +1 -0
  729. package/dist/src/services/deviceTrust/index.cjs +294 -0
  730. package/dist/src/services/deviceTrust/index.cjs.map +1 -0
  731. package/dist/src/services/deviceTrust/index.mjs +282 -0
  732. package/dist/src/services/deviceTrust/index.mjs.map +1 -0
  733. package/dist/src/services/durableNavigation/index.cjs +46 -0
  734. package/dist/src/services/durableNavigation/index.cjs.map +1 -0
  735. package/dist/src/services/durableNavigation/index.mjs +45 -0
  736. package/dist/src/services/durableNavigation/index.mjs.map +1 -0
  737. package/dist/src/services/headlessClient/index.cjs +126 -0
  738. package/dist/src/services/headlessClient/index.cjs.map +1 -0
  739. package/dist/src/services/headlessClient/index.mjs +126 -0
  740. package/dist/src/services/headlessClient/index.mjs.map +1 -0
  741. package/dist/src/services/historyImport/index.cjs +8 -0
  742. package/dist/src/services/historyImport/index.cjs.map +1 -0
  743. package/dist/src/services/historyImport/index.d.mts +68 -0
  744. package/dist/src/services/historyImport/index.d.mts.map +1 -0
  745. package/dist/src/services/historyImport/index.mjs +8 -0
  746. package/dist/src/services/historyImport/index.mjs.map +1 -0
  747. package/dist/src/services/hubChannelHarness/index.cjs +50 -0
  748. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -0
  749. package/dist/src/services/hubChannelHarness/index.d.mts +17 -0
  750. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -0
  751. package/dist/src/services/hubChannelHarness/index.mjs +50 -0
  752. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -0
  753. package/dist/src/services/kernel/index.cjs +147 -0
  754. package/dist/src/services/kernel/index.cjs.map +1 -0
  755. package/dist/src/services/kernel/index.d.mts +9 -0
  756. package/dist/src/services/kernel/index.d.mts.map +1 -0
  757. package/dist/src/services/kernel/index.mjs +147 -0
  758. package/dist/src/services/kernel/index.mjs.map +1 -0
  759. package/dist/src/services/loginFlow/index.cjs +131 -0
  760. package/dist/src/services/loginFlow/index.cjs.map +1 -0
  761. package/dist/src/services/loginFlow/index.mjs +131 -0
  762. package/dist/src/services/loginFlow/index.mjs.map +1 -0
  763. package/dist/src/services/loopbackAddress/index.cjs +58 -0
  764. package/dist/src/services/loopbackAddress/index.cjs.map +1 -0
  765. package/dist/src/services/loopbackAddress/index.mjs +56 -0
  766. package/dist/src/services/loopbackAddress/index.mjs.map +1 -0
  767. package/dist/src/services/openSessionRegistry/index.cjs +134 -0
  768. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -0
  769. package/dist/src/services/openSessionRegistry/index.d.mts +36 -0
  770. package/dist/src/services/openSessionRegistry/index.d.mts.map +1 -0
  771. package/dist/src/services/openSessionRegistry/index.mjs +131 -0
  772. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -0
  773. package/dist/src/services/packageApiHarness/index.cjs +36 -0
  774. package/dist/src/services/packageApiHarness/index.cjs.map +1 -0
  775. package/dist/src/services/packageApiHarness/index.d.mts +40 -0
  776. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -0
  777. package/dist/src/services/packageApiHarness/index.mjs +36 -0
  778. package/dist/src/services/packageApiHarness/index.mjs.map +1 -0
  779. package/dist/src/services/packageResource/index.cjs +54 -0
  780. package/dist/src/services/packageResource/index.cjs.map +1 -0
  781. package/dist/src/services/packageResource/index.d.mts +26 -0
  782. package/dist/src/services/packageResource/index.d.mts.map +1 -0
  783. package/dist/src/services/packageResource/index.mjs +51 -0
  784. package/dist/src/services/packageResource/index.mjs.map +1 -0
  785. package/dist/src/services/pairingFlow/index.cjs +145 -0
  786. package/dist/src/services/pairingFlow/index.cjs.map +1 -0
  787. package/dist/src/services/pairingFlow/index.d.mts +44 -0
  788. package/dist/src/services/pairingFlow/index.d.mts.map +1 -0
  789. package/dist/src/services/pairingFlow/index.mjs +145 -0
  790. package/dist/src/services/pairingFlow/index.mjs.map +1 -0
  791. package/dist/src/services/pairingPage/index.cjs +450 -0
  792. package/dist/src/services/pairingPage/index.cjs.map +1 -0
  793. package/dist/src/services/pairingPage/index.mjs +447 -0
  794. package/dist/src/services/pairingPage/index.mjs.map +1 -0
  795. package/dist/src/services/piExtensionHost/index.cjs +889 -0
  796. package/dist/src/services/piExtensionHost/index.cjs.map +1 -0
  797. package/dist/src/services/piExtensionHost/index.mjs +885 -0
  798. package/dist/src/services/piExtensionHost/index.mjs.map +1 -0
  799. package/dist/src/services/piHelpTools/index.cjs +68 -0
  800. package/dist/src/services/piHelpTools/index.cjs.map +1 -0
  801. package/dist/src/services/piHelpTools/index.d.mts +10 -0
  802. package/dist/src/services/piHelpTools/index.d.mts.map +1 -0
  803. package/dist/src/services/piHelpTools/index.mjs +68 -0
  804. package/dist/src/services/piHelpTools/index.mjs.map +1 -0
  805. package/dist/src/services/piSessionEntries/index.cjs +121 -0
  806. package/dist/src/services/piSessionEntries/index.cjs.map +1 -0
  807. package/dist/src/services/piSessionEntries/index.mjs +117 -0
  808. package/dist/src/services/piSessionEntries/index.mjs.map +1 -0
  809. package/dist/src/services/pluginLifecycle/index.cjs +71 -0
  810. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -0
  811. package/dist/src/services/pluginLifecycle/index.d.mts +8 -0
  812. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -0
  813. package/dist/src/services/pluginLifecycle/index.mjs +71 -0
  814. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -0
  815. package/dist/src/services/providerAuth/index.cjs +156 -0
  816. package/dist/src/services/providerAuth/index.cjs.map +1 -0
  817. package/dist/src/services/providerAuth/index.mjs +154 -0
  818. package/dist/src/services/providerAuth/index.mjs.map +1 -0
  819. package/dist/src/services/publicFileShares/index.cjs +192 -0
  820. package/dist/src/services/publicFileShares/index.cjs.map +1 -0
  821. package/dist/src/services/publicFileShares/index.d.mts +16 -0
  822. package/dist/src/services/publicFileShares/index.d.mts.map +1 -0
  823. package/dist/src/services/publicFileShares/index.mjs +188 -0
  824. package/dist/src/services/publicFileShares/index.mjs.map +1 -0
  825. package/dist/src/services/remoteAccess/index.cjs +567 -0
  826. package/dist/src/services/remoteAccess/index.cjs.map +1 -0
  827. package/dist/src/services/remoteAccess/index.d.mts +121 -0
  828. package/dist/src/services/remoteAccess/index.d.mts.map +1 -0
  829. package/dist/src/services/remoteAccess/index.mjs +567 -0
  830. package/dist/src/services/remoteAccess/index.mjs.map +1 -0
  831. package/dist/src/services/remoteAccessSettings/index.cjs +151 -0
  832. package/dist/src/services/remoteAccessSettings/index.cjs.map +1 -0
  833. package/dist/src/services/remoteAccessSettings/index.mjs +149 -0
  834. package/dist/src/services/remoteAccessSettings/index.mjs.map +1 -0
  835. package/dist/src/services/remoteAccessStore/index.cjs +197 -0
  836. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -0
  837. package/dist/src/services/remoteAccessStore/index.mjs +192 -0
  838. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -0
  839. package/dist/src/services/remoteGuardPolicy/index.cjs +200 -0
  840. package/dist/src/services/remoteGuardPolicy/index.cjs.map +1 -0
  841. package/dist/src/services/remoteGuardPolicy/index.d.mts +7 -0
  842. package/dist/src/services/remoteGuardPolicy/index.d.mts.map +1 -0
  843. package/dist/src/services/remoteGuardPolicy/index.mjs +196 -0
  844. package/dist/src/services/remoteGuardPolicy/index.mjs.map +1 -0
  845. package/dist/src/services/requestReceipts/index.cjs +167 -0
  846. package/dist/src/services/requestReceipts/index.cjs.map +1 -0
  847. package/dist/src/services/requestReceipts/index.d.mts +11 -0
  848. package/dist/src/services/requestReceipts/index.d.mts.map +1 -0
  849. package/dist/src/services/requestReceipts/index.mjs +167 -0
  850. package/dist/src/services/requestReceipts/index.mjs.map +1 -0
  851. package/dist/src/services/rpcTranscript/index.cjs +633 -0
  852. package/dist/src/services/rpcTranscript/index.cjs.map +1 -0
  853. package/dist/src/services/rpcTranscript/index.d.mts +50 -0
  854. package/dist/src/services/rpcTranscript/index.d.mts.map +1 -0
  855. package/dist/src/services/rpcTranscript/index.mjs +632 -0
  856. package/dist/src/services/rpcTranscript/index.mjs.map +1 -0
  857. package/dist/src/services/serverFacet/index.cjs +197 -0
  858. package/dist/src/services/serverFacet/index.cjs.map +1 -0
  859. package/dist/src/services/serverFacet/index.d.mts +31 -0
  860. package/dist/src/services/serverFacet/index.d.mts.map +1 -0
  861. package/dist/src/services/serverFacet/index.mjs +197 -0
  862. package/dist/src/services/serverFacet/index.mjs.map +1 -0
  863. package/dist/src/services/sessionAttachments/index.cjs +111 -0
  864. package/dist/src/services/sessionAttachments/index.cjs.map +1 -0
  865. package/dist/src/services/sessionAttachments/index.d.mts +11 -0
  866. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -0
  867. package/dist/src/services/sessionAttachments/index.mjs +107 -0
  868. package/dist/src/services/sessionAttachments/index.mjs.map +1 -0
  869. package/dist/src/services/sessionGitStatus/index.cjs +46 -0
  870. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -0
  871. package/dist/src/services/sessionGitStatus/index.mjs +46 -0
  872. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -0
  873. package/dist/src/services/sessionGitStatus/type.d.mts +8 -0
  874. package/dist/src/services/sessionGitStatus/type.d.mts.map +1 -0
  875. package/dist/src/services/sessionMcpActivity/index.cjs +115 -0
  876. package/dist/src/services/sessionMcpActivity/index.cjs.map +1 -0
  877. package/dist/src/services/sessionMcpActivity/index.mjs +111 -0
  878. package/dist/src/services/sessionMcpActivity/index.mjs.map +1 -0
  879. package/dist/src/services/sessionMcpAuthorization/index.cjs +473 -0
  880. package/dist/src/services/sessionMcpAuthorization/index.cjs.map +1 -0
  881. package/dist/src/services/sessionMcpAuthorization/index.d.mts +125 -0
  882. package/dist/src/services/sessionMcpAuthorization/index.d.mts.map +1 -0
  883. package/dist/src/services/sessionMcpAuthorization/index.mjs +469 -0
  884. package/dist/src/services/sessionMcpAuthorization/index.mjs.map +1 -0
  885. package/dist/src/services/sessionMcpConversations/index.cjs +217 -0
  886. package/dist/src/services/sessionMcpConversations/index.cjs.map +1 -0
  887. package/dist/src/services/sessionMcpConversations/index.mjs +212 -0
  888. package/dist/src/services/sessionMcpConversations/index.mjs.map +1 -0
  889. package/dist/src/services/sessionMcpRegistrationStore/index.cjs +86 -0
  890. package/dist/src/services/sessionMcpRegistrationStore/index.cjs.map +1 -0
  891. package/dist/src/services/sessionMcpRegistrationStore/index.mjs +83 -0
  892. package/dist/src/services/sessionMcpRegistrationStore/index.mjs.map +1 -0
  893. package/dist/src/services/sessionPresentation/index.cjs +120 -0
  894. package/dist/src/services/sessionPresentation/index.cjs.map +1 -0
  895. package/dist/src/services/sessionPresentation/index.mjs +120 -0
  896. package/dist/src/services/sessionPresentation/index.mjs.map +1 -0
  897. package/dist/src/services/sqliteSessionHistory/index.cjs +97 -0
  898. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -0
  899. package/dist/src/services/sqliteSessionHistory/index.d.mts +28 -0
  900. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -0
  901. package/dist/src/services/sqliteSessionHistory/index.mjs +92 -0
  902. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -0
  903. package/dist/src/services/sqliteTranscriptReader/index.cjs +67 -0
  904. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -0
  905. package/dist/src/services/sqliteTranscriptReader/index.d.mts +14 -0
  906. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -0
  907. package/dist/src/services/sqliteTranscriptReader/index.mjs +65 -0
  908. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -0
  909. package/dist/src/services/toolCost/index.cjs +47 -0
  910. package/dist/src/services/toolCost/index.cjs.map +1 -0
  911. package/dist/src/services/toolCost/index.d.mts +38 -0
  912. package/dist/src/services/toolCost/index.d.mts.map +1 -0
  913. package/dist/src/services/toolCost/index.mjs +46 -0
  914. package/dist/src/services/toolCost/index.mjs.map +1 -0
  915. package/dist/src/services/toolOverrides/index.cjs +45 -0
  916. package/dist/src/services/toolOverrides/index.cjs.map +1 -0
  917. package/dist/src/services/toolOverrides/index.d.mts +6 -0
  918. package/dist/src/services/toolOverrides/index.d.mts.map +1 -0
  919. package/dist/src/services/toolOverrides/index.mjs +45 -0
  920. package/dist/src/services/toolOverrides/index.mjs.map +1 -0
  921. package/dist/src/services/toolPrompt/index.cjs +13 -0
  922. package/dist/src/services/toolPrompt/index.cjs.map +1 -0
  923. package/dist/src/services/toolPrompt/index.mjs +13 -0
  924. package/dist/src/services/toolPrompt/index.mjs.map +1 -0
  925. package/dist/src/services/toolSurface/index.cjs +134 -0
  926. package/dist/src/services/toolSurface/index.cjs.map +1 -0
  927. package/dist/src/services/toolSurface/index.d.mts +19 -0
  928. package/dist/src/services/toolSurface/index.d.mts.map +1 -0
  929. package/dist/src/services/toolSurface/index.mjs +134 -0
  930. package/dist/src/services/toolSurface/index.mjs.map +1 -0
  931. package/dist/src/services/traceContext/index.cjs +13 -0
  932. package/dist/src/services/traceContext/index.cjs.map +1 -0
  933. package/dist/src/services/traceContext/index.mjs +13 -0
  934. package/dist/src/services/traceContext/index.mjs.map +1 -0
  935. package/dist/src/services/transcriptPages/index.cjs +117 -0
  936. package/dist/src/services/transcriptPages/index.cjs.map +1 -0
  937. package/dist/src/services/transcriptPages/index.mjs +115 -0
  938. package/dist/src/services/transcriptPages/index.mjs.map +1 -0
  939. package/dist/src/services/tunnelOutput/index.cjs +58 -0
  940. package/dist/src/services/tunnelOutput/index.cjs.map +1 -0
  941. package/dist/src/services/tunnelOutput/index.mjs +54 -0
  942. package/dist/src/services/tunnelOutput/index.mjs.map +1 -0
  943. package/dist/src/services/tunnelProcess/index.cjs +487 -0
  944. package/dist/src/services/tunnelProcess/index.cjs.map +1 -0
  945. package/dist/src/services/tunnelProcess/index.mjs +481 -0
  946. package/dist/src/services/tunnelProcess/index.mjs.map +1 -0
  947. package/dist/src/services/voiceReloadHandoff/index.cjs +136 -0
  948. package/dist/src/services/voiceReloadHandoff/index.cjs.map +1 -0
  949. package/dist/src/services/voiceReloadHandoff/index.d.mts +34 -0
  950. package/dist/src/services/voiceReloadHandoff/index.d.mts.map +1 -0
  951. package/dist/src/services/voiceReloadHandoff/index.mjs +135 -0
  952. package/dist/src/services/voiceReloadHandoff/index.mjs.map +1 -0
  953. package/dist/src/services/voiceToolsContract/index.cjs +26 -0
  954. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -0
  955. package/dist/src/services/voiceToolsContract/index.d.mts +76 -0
  956. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -0
  957. package/dist/src/services/voiceToolsContract/index.mjs +24 -0
  958. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -0
  959. package/dist/src/services/webauthn/index.cjs +262 -0
  960. package/dist/src/services/webauthn/index.cjs.map +1 -0
  961. package/dist/src/services/webauthn/index.d.mts +39 -0
  962. package/dist/src/services/webauthn/index.d.mts.map +1 -0
  963. package/dist/src/services/webauthn/index.mjs +262 -0
  964. package/dist/src/services/webauthn/index.mjs.map +1 -0
  965. package/dist/src/services/webauthnPolicy/index.cjs +174 -0
  966. package/dist/src/services/webauthnPolicy/index.cjs.map +1 -0
  967. package/dist/src/services/webauthnPolicy/index.d.mts +41 -0
  968. package/dist/src/services/webauthnPolicy/index.d.mts.map +1 -0
  969. package/dist/src/services/webauthnPolicy/index.mjs +167 -0
  970. package/dist/src/services/webauthnPolicy/index.mjs.map +1 -0
  971. package/dist/src/services/workspaceRegistry/index.cjs +187 -0
  972. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -0
  973. package/dist/src/services/workspaceRegistry/index.d.mts +47 -0
  974. package/dist/src/services/workspaceRegistry/index.d.mts.map +1 -0
  975. package/dist/src/services/workspaceRegistry/index.mjs +179 -0
  976. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -0
  977. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +466 -0
  978. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  979. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +36 -0
  980. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  981. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +457 -0
  982. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  983. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  984. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  985. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  986. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  987. package/dist/src/systems/child/services/childSession/index.cjs +219 -0
  988. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -0
  989. package/dist/src/systems/child/services/childSession/index.d.mts +14 -0
  990. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -0
  991. package/dist/src/systems/child/services/childSession/index.mjs +219 -0
  992. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -0
  993. package/dist/src/systems/child/types/childSession.cjs +21 -0
  994. package/dist/src/systems/child/types/childSession.cjs.map +1 -0
  995. package/dist/src/systems/child/types/childSession.d.mts +182 -0
  996. package/dist/src/systems/child/types/childSession.d.mts.map +1 -0
  997. package/dist/src/systems/child/types/childSession.mjs +17 -0
  998. package/dist/src/systems/child/types/childSession.mjs.map +1 -0
  999. package/dist/src/systems/main/adapters/headlessHost.cjs +597 -0
  1000. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -0
  1001. package/dist/src/systems/main/adapters/headlessHost.d.mts +116 -0
  1002. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1003. package/dist/src/systems/main/adapters/headlessHost.mjs +595 -0
  1004. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -0
  1005. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +1668 -0
  1006. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1007. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +20 -0
  1008. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1009. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +1663 -0
  1010. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1011. package/dist/src/systems/main/types/headlessHost.d.mts +37 -0
  1012. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -0
  1013. package/dist/src/testing/pi/extensionScenarios.cjs +73 -0
  1014. package/dist/src/testing/pi/extensionScenarios.cjs.map +1 -0
  1015. package/dist/src/testing/pi/extensionScenarios.d.mts +41 -0
  1016. package/dist/src/testing/pi/extensionScenarios.d.mts.map +1 -0
  1017. package/dist/src/testing/pi/extensionScenarios.mjs +73 -0
  1018. package/dist/src/testing/pi/extensionScenarios.mjs.map +1 -0
  1019. package/dist/src/testing/pi/testHost.cjs +399 -0
  1020. package/dist/src/testing/pi/testHost.cjs.map +1 -0
  1021. package/dist/src/testing/pi/testHost.d.mts +160 -0
  1022. package/dist/src/testing/pi/testHost.d.mts.map +1 -0
  1023. package/dist/src/testing/pi/testHost.mjs +399 -0
  1024. package/dist/src/testing/pi/testHost.mjs.map +1 -0
  1025. package/dist/src/types/config.d.mts +20 -0
  1026. package/dist/src/types/config.d.mts.map +1 -0
  1027. package/dist/src/types/kernel.d.mts +69 -0
  1028. package/dist/src/types/kernel.d.mts.map +1 -0
  1029. package/dist/src/types/remote.d.mts +152 -0
  1030. package/dist/src/types/remote.d.mts.map +1 -0
  1031. package/dist/src/types/server/directHarnessRuntime.d.mts +526 -0
  1032. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -0
  1033. package/dist/src/types/server/session.d.mts +5 -0
  1034. package/dist/src/types/server/session.d.mts.map +1 -0
  1035. package/dist/src/types/server/sessionToolSurface.d.mts +44 -0
  1036. package/dist/src/types/server/sessionToolSurface.d.mts.map +1 -0
  1037. package/dist/src/web/models/globalStore.cjs +23 -0
  1038. package/dist/src/web/models/globalStore.cjs.map +1 -0
  1039. package/dist/src/web/models/globalStore.d.mts +6 -0
  1040. package/dist/src/web/models/globalStore.d.mts.map +1 -0
  1041. package/dist/src/web/models/globalStore.mjs +23 -0
  1042. package/dist/src/web/models/globalStore.mjs.map +1 -0
  1043. package/dist/src/web/models/sessionStore.cjs +56 -0
  1044. package/dist/src/web/models/sessionStore.cjs.map +1 -0
  1045. package/dist/src/web/models/sessionStore.d.mts +14 -0
  1046. package/dist/src/web/models/sessionStore.d.mts.map +1 -0
  1047. package/dist/src/web/models/sessionStore.mjs +56 -0
  1048. package/dist/src/web/models/sessionStore.mjs.map +1 -0
  1049. package/dist/src/web/models/workspaceStore.cjs +50 -0
  1050. package/dist/src/web/models/workspaceStore.cjs.map +1 -0
  1051. package/dist/src/web/models/workspaceStore.d.mts +18 -0
  1052. package/dist/src/web/models/workspaceStore.d.mts.map +1 -0
  1053. package/dist/src/web/models/workspaceStore.mjs +50 -0
  1054. package/dist/src/web/models/workspaceStore.mjs.map +1 -0
  1055. package/dist/src/web/schemas/bundleAssetPolicy.cjs +20 -0
  1056. package/dist/src/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1057. package/dist/src/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1058. package/dist/src/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1059. package/dist/src/web/schemas/bundleAssetPolicy.mjs +18 -0
  1060. package/dist/src/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1061. package/dist/src/web/schemas/template.cjs +35 -0
  1062. package/dist/src/web/schemas/template.cjs.map +1 -0
  1063. package/dist/src/web/schemas/template.d.mts +9 -0
  1064. package/dist/src/web/schemas/template.d.mts.map +1 -0
  1065. package/dist/src/web/schemas/template.mjs +34 -0
  1066. package/dist/src/web/schemas/template.mjs.map +1 -0
  1067. package/dist/src/web/services/apiClient/index.cjs +156 -0
  1068. package/dist/src/web/services/apiClient/index.cjs.map +1 -0
  1069. package/dist/src/web/services/apiClient/index.d.mts +152 -0
  1070. package/dist/src/web/services/apiClient/index.d.mts.map +1 -0
  1071. package/dist/src/web/services/apiClient/index.mjs +154 -0
  1072. package/dist/src/web/services/apiClient/index.mjs.map +1 -0
  1073. package/dist/src/web/services/apiPaths/index.cjs +83 -0
  1074. package/dist/src/web/services/apiPaths/index.cjs.map +1 -0
  1075. package/dist/src/web/services/apiPaths/index.d.mts +81 -0
  1076. package/dist/src/web/services/apiPaths/index.d.mts.map +1 -0
  1077. package/dist/src/web/services/apiPaths/index.mjs +78 -0
  1078. package/dist/src/web/services/apiPaths/index.mjs.map +1 -0
  1079. package/dist/src/web/services/apiRoutes/index.cjs +47 -0
  1080. package/dist/src/web/services/apiRoutes/index.cjs.map +1 -0
  1081. package/dist/src/web/services/apiRoutes/index.d.mts +21 -0
  1082. package/dist/src/web/services/apiRoutes/index.d.mts.map +1 -0
  1083. package/dist/src/web/services/apiRoutes/index.mjs +43 -0
  1084. package/dist/src/web/services/apiRoutes/index.mjs.map +1 -0
  1085. package/dist/src/web/services/mcpWidget.cjs +9 -0
  1086. package/dist/src/web/services/mcpWidget.cjs.map +1 -0
  1087. package/dist/src/web/services/mcpWidget.d.mts +6 -0
  1088. package/dist/src/web/services/mcpWidget.d.mts.map +1 -0
  1089. package/dist/src/web/services/mcpWidget.mjs +9 -0
  1090. package/dist/src/web/services/mcpWidget.mjs.map +1 -0
  1091. package/dist/src/web/services/sessionRegistry/index.cjs +70 -0
  1092. package/dist/src/web/services/sessionRegistry/index.cjs.map +1 -0
  1093. package/dist/src/web/services/sessionRegistry/index.d.mts +29 -0
  1094. package/dist/src/web/services/sessionRegistry/index.d.mts.map +1 -0
  1095. package/dist/src/web/services/sessionRegistry/index.mjs +66 -0
  1096. package/dist/src/web/services/sessionRegistry/index.mjs.map +1 -0
  1097. package/dist/src/web/services/testing/channels.cjs +11 -0
  1098. package/dist/src/web/services/testing/channels.cjs.map +1 -0
  1099. package/dist/src/web/services/testing/channels.d.mts +8 -0
  1100. package/dist/src/web/services/testing/channels.d.mts.map +1 -0
  1101. package/dist/src/web/services/testing/channels.mjs +11 -0
  1102. package/dist/src/web/services/testing/channels.mjs.map +1 -0
  1103. package/dist/src/web/services/testing/index.cjs +27 -0
  1104. package/dist/src/web/services/testing/index.cjs.map +1 -0
  1105. package/dist/src/web/services/testing/index.d.mts +31 -0
  1106. package/dist/src/web/services/testing/index.d.mts.map +1 -0
  1107. package/dist/src/web/services/testing/index.mjs +27 -0
  1108. package/dist/src/web/services/testing/index.mjs.map +1 -0
  1109. package/dist/src/web/services/testing/rpcStub.cjs +58 -0
  1110. package/dist/src/web/services/testing/rpcStub.cjs.map +1 -0
  1111. package/dist/src/web/services/testing/rpcStub.d.mts +37 -0
  1112. package/dist/src/web/services/testing/rpcStub.d.mts.map +1 -0
  1113. package/dist/src/web/services/testing/rpcStub.mjs +58 -0
  1114. package/dist/src/web/services/testing/rpcStub.mjs.map +1 -0
  1115. package/dist/src/web/services/testing/slotProps.cjs +97 -0
  1116. package/dist/src/web/services/testing/slotProps.cjs.map +1 -0
  1117. package/dist/src/web/services/testing/slotProps.d.mts +69 -0
  1118. package/dist/src/web/services/testing/slotProps.d.mts.map +1 -0
  1119. package/dist/src/web/services/testing/slotProps.mjs +96 -0
  1120. package/dist/src/web/services/testing/slotProps.mjs.map +1 -0
  1121. package/dist/src/web/services/testing/templateRail.cjs +156 -0
  1122. package/dist/src/web/services/testing/templateRail.cjs.map +1 -0
  1123. package/dist/src/web/services/testing/templateRail.d.mts +32 -0
  1124. package/dist/src/web/services/testing/templateRail.d.mts.map +1 -0
  1125. package/dist/src/web/services/testing/templateRail.mjs +154 -0
  1126. package/dist/src/web/services/testing/templateRail.mjs.map +1 -0
  1127. package/dist/src/web/services/toolResult/index.cjs +30 -0
  1128. package/dist/src/web/services/toolResult/index.cjs.map +1 -0
  1129. package/dist/src/web/services/toolResult/index.d.mts +14 -0
  1130. package/dist/src/web/services/toolResult/index.d.mts.map +1 -0
  1131. package/dist/src/web/services/toolResult/index.mjs +29 -0
  1132. package/dist/src/web/services/toolResult/index.mjs.map +1 -0
  1133. package/dist/src/web/types/extensionFile.d.mts +62 -0
  1134. package/dist/src/web/types/extensionFile.d.mts.map +1 -0
  1135. package/dist/src/web/types/mcpWidget.d.mts +14 -0
  1136. package/dist/src/web/types/mcpWidget.d.mts.map +1 -0
  1137. package/dist/src/web/types/modelContext.d.mts +43 -0
  1138. package/dist/src/web/types/modelContext.d.mts.map +1 -0
  1139. package/dist/src/web/types/nativeTemplate.d.mts +29 -0
  1140. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -0
  1141. package/dist/src/web/types/sessionRegistry.d.mts +46 -0
  1142. package/dist/src/web/types/sessionRegistry.d.mts.map +1 -0
  1143. package/dist/src/web/types/template.d.mts +135 -0
  1144. package/dist/src/web/types/template.d.mts.map +1 -0
  1145. package/dist/src/web/types/webPlugin.d.mts +915 -0
  1146. package/dist/src/web/types/webPlugin.d.mts.map +1 -0
  1147. package/dist/terminalPiChildSessionService.cjs +324 -0
  1148. package/dist/terminalPiChildSessionService.cjs.map +1 -0
  1149. package/dist/terminalPiChildSessionService.d.mts +46 -0
  1150. package/dist/terminalPiChildSessionService.d.mts.map +1 -0
  1151. package/dist/terminalPiChildSessionService.mjs +318 -0
  1152. package/dist/terminalPiChildSessionService.mjs.map +1 -0
  1153. package/dist/testing.cjs +11 -0
  1154. package/dist/testing.d.mts +6 -0
  1155. package/dist/testing.mjs +6 -0
  1156. package/dist/toolInventory.cjs +136 -0
  1157. package/dist/toolInventory.cjs.map +1 -0
  1158. package/dist/toolInventory.d.mts +66 -0
  1159. package/dist/toolInventory.d.mts.map +1 -0
  1160. package/dist/toolInventory.mjs +133 -0
  1161. package/dist/toolInventory.mjs.map +1 -0
  1162. package/dist/toolNames.cjs +4 -0
  1163. package/dist/toolNames.d.mts +2 -0
  1164. package/dist/toolNames.mjs +2 -0
  1165. package/dist/toolOverrides.cjs +7 -0
  1166. package/dist/toolOverrides.d.mts +3 -0
  1167. package/dist/toolOverrides.mjs +3 -0
  1168. package/dist/toolSurface.cjs +7 -0
  1169. package/dist/toolSurface.d.mts +3 -0
  1170. package/dist/toolSurface.mjs +3 -0
  1171. package/dist/transition.cjs +5 -0
  1172. package/dist/transition.d.cjs +5 -0
  1173. package/dist/transition.d.mts +2 -0
  1174. package/dist/transition.mjs +2 -0
  1175. package/dist/transitionClassifier.cjs +112 -0
  1176. package/dist/transitionClassifier.cjs.map +1 -0
  1177. package/dist/transitionClassifier.d.mts +18 -0
  1178. package/dist/transitionClassifier.d.mts.map +1 -0
  1179. package/dist/transitionClassifier.mjs +111 -0
  1180. package/dist/transitionClassifier.mjs.map +1 -0
  1181. package/dist/transitionCoordinator.cjs +131 -0
  1182. package/dist/transitionCoordinator.cjs.map +1 -0
  1183. package/dist/transitionCoordinator.d.mts +16 -0
  1184. package/dist/transitionCoordinator.d.mts.map +1 -0
  1185. package/dist/transitionCoordinator.mjs +130 -0
  1186. package/dist/transitionCoordinator.mjs.map +1 -0
  1187. package/dist/typesContextApi.cjs +0 -0
  1188. package/dist/typesContextApi.d.mts +79 -0
  1189. package/dist/typesContextApi.d.mts.map +1 -0
  1190. package/dist/typesContextApi.mjs +1 -0
  1191. package/dist/uiHub.cjs +5 -0
  1192. package/dist/uiHub.d.mts +2 -0
  1193. package/dist/uiHub.mjs +2 -0
  1194. package/dist/v3Export.cjs +10 -0
  1195. package/dist/v3Export.cjs.map +1 -0
  1196. package/dist/v3Export.d.mts +35 -0
  1197. package/dist/v3Export.d.mts.map +1 -0
  1198. package/dist/v3Export.mjs +9 -0
  1199. package/dist/v3Export.mjs.map +1 -0
  1200. package/dist/voiceReloadHandoff.cjs +14 -0
  1201. package/dist/voiceReloadHandoff.d.mts +4 -0
  1202. package/dist/voiceReloadHandoff.mjs +4 -0
  1203. package/dist/voiceTools.cjs +56 -0
  1204. package/dist/voiceTools.d.mts +4 -0
  1205. package/dist/voiceTools.mjs +4 -0
  1206. package/dist/web.cjs +65 -0
  1207. package/dist/web.d.mts +20 -0
  1208. package/dist/web.mjs +13 -0
  1209. package/dist/webCompositions.cjs +181 -0
  1210. package/dist/webCompositions.cjs.map +1 -0
  1211. package/dist/webCompositions.d.mts +79 -0
  1212. package/dist/webCompositions.d.mts.map +1 -0
  1213. package/dist/webCompositions.mjs +174 -0
  1214. package/dist/webCompositions.mjs.map +1 -0
  1215. package/dist/webTesting.cjs +14 -0
  1216. package/dist/webTesting.d.mts +6 -0
  1217. package/dist/webTesting.mjs +6 -0
  1218. package/package.json +586 -0
@@ -0,0 +1,318 @@
1
+ import { createDoomChildSessionService } from "./src/systems/child/services/childSession/index.mjs";
2
+ import { createHistoryOwnership } from "./historyOwnership.mjs";
3
+ import { openSqliteSessionStorage } from "./sqliteSessionStorage.mjs";
4
+ import { DurableNavigationDoc } from "./src/services/durableNavigation/index.mjs";
5
+ import { fromPiSessionEntry } from "./src/services/piSessionEntries/index.mjs";
6
+ import { createDirectHarnessRuntime, promptForAssistantText } from "./src/server/directHarnessRuntime.mjs";
7
+ import { registerNativeChild } from "./src/systems/child/adapters/nativeChildRuntimes.mjs";
8
+ import { readNativeChildTranscript } from "./src/server/nativeChildTranscriptReader.mjs";
9
+ import { bindChildHooks, bindChildMcpCatalog, composeDirectHarnessRequestOptions, createHeadlessChildSessionService, parseChildModelReference, resolveChildProviders } from "./src/systems/child/adapters/headlessChildSessionService.mjs";
10
+ import { randomUUID } from "node:crypto";
11
+ import fs from "node:fs";
12
+ import path from "node:path";
13
+ import { AgentDoc } from "@earendil-works/pi-durable";
14
+ import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
15
+ import { convertToLlm, getAgentDir, parseSessionEntries, sessionEntryToContextMessages } from "@earendil-works/pi-coding-agent";
16
+ //#region src/systems/child/adapters/terminalPiChildSessionService.ts
17
+ function childRuntime(runtime, intercom, release) {
18
+ const file = runtime.sessionFile;
19
+ return {
20
+ sessionId: runtime.sessionId,
21
+ ...typeof file === "string" ? { sessionFile: file } : {},
22
+ ...typeof file === "string" ? { readTranscriptPage: (request, signal) => readNativeChildTranscript(file, request, signal) } : {},
23
+ prompt: (task) => promptForAssistantText(runtime, task),
24
+ async steer(message) {
25
+ await runtime.submitInternalMessage(message, "steer");
26
+ },
27
+ async followUp(message) {
28
+ await runtime.submitInternalMessage(message, "followUp");
29
+ },
30
+ onUsage(listener) {
31
+ return runtime.onEvent((event) => {
32
+ if (event.type !== "usage") return;
33
+ listener({
34
+ rowId: event.row.id,
35
+ cost: event.row.usage.cost.total
36
+ });
37
+ });
38
+ },
39
+ abort: () => runtime.abort(),
40
+ dispose: async () => {
41
+ try {
42
+ await release?.();
43
+ } finally {
44
+ try {
45
+ await runtime.dispose();
46
+ } finally {
47
+ intercom?.dispose?.();
48
+ }
49
+ }
50
+ }
51
+ };
52
+ }
53
+ async function installIntercom(runtime, intercom, tools) {
54
+ if (!intercom) return;
55
+ const tool = intercom.bindRuntime(childRuntime(runtime));
56
+ const adapted = {
57
+ ...tool,
58
+ parameters: tool.parameters,
59
+ execute: async (operationId, params, onUpdate, _toolContext, _invocation, context) => tool.execute(operationId, params, context.abortSignal ?? new AbortController().signal, onUpdate)
60
+ };
61
+ tools.push(adapted);
62
+ await runtime.replaceTools(tools);
63
+ }
64
+ function asRecord(value) {
65
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
66
+ }
67
+ function requireString(value, field) {
68
+ if (typeof value !== "string" || value.length === 0) throw new Error(`Invalid terminal Pi snapshot ${field}`);
69
+ return value;
70
+ }
71
+ function parseSnapshot(snapshotJsonl) {
72
+ if (!snapshotJsonl.endsWith("\n")) throw new Error("Terminal Pi snapshot is truncated.");
73
+ const lines = snapshotJsonl.slice(0, -1).split("\n");
74
+ let headerValue;
75
+ try {
76
+ headerValue = JSON.parse(lines[0] ?? "");
77
+ } catch (error) {
78
+ throw new Error("Malformed terminal Pi snapshot header.", { cause: error });
79
+ }
80
+ const header = asRecord(headerValue);
81
+ if (header?.type !== "session" || header.version !== 3) throw new Error("Terminal Pi child source must be a v3 JSONL snapshot.");
82
+ return {
83
+ header,
84
+ records: lines.slice(1).map((line, index) => {
85
+ let value;
86
+ try {
87
+ value = JSON.parse(line);
88
+ } catch (error) {
89
+ throw new Error(`Malformed terminal Pi snapshot record at line ${index + 2}.`, { cause: error });
90
+ }
91
+ const record = asRecord(value);
92
+ if (record === void 0) throw new Error(`Invalid terminal Pi snapshot record at line ${index + 2}`);
93
+ requireString(record.id, `record ${index + 2} id`);
94
+ if (record.parentId !== null && typeof record.parentId !== "string") throw new Error(`Invalid terminal Pi snapshot record ${index + 2} parentId`);
95
+ return record;
96
+ })
97
+ };
98
+ }
99
+ /** Capture data from Pi memory, not its writable v3 path. The JSONL string is immutable after return. */
100
+ function captureTerminalPiForkSource(manager, selectedLeafId = manager.getLeafId()) {
101
+ const sourceSessionId = manager.getSessionId();
102
+ const sourceLeafId = selectedLeafId;
103
+ const header = manager.getHeader();
104
+ if (!sourceSessionId.trim() || !sourceLeafId || header?.type !== "session" || header.version !== 3) return void 0;
105
+ const branch = manager.getBranch(sourceLeafId);
106
+ if (branch.at(-1)?.id !== sourceLeafId) return void 0;
107
+ const snapshotJsonl = `${[header, ...branch].map((record) => JSON.stringify(record)).join("\n")}\n`;
108
+ return Object.freeze({
109
+ kind: "terminal-pi-fork",
110
+ sourceSessionId,
111
+ sourceLeafId,
112
+ snapshotJsonl
113
+ });
114
+ }
115
+ async function createChildJournal(request, source, options, ownership) {
116
+ const parsed = parseSnapshot(source.snapshotJsonl);
117
+ if (requireString(parsed.header.id, "header id") !== source.sourceSessionId) throw new Error("Terminal Pi snapshot session identity does not match its sourceSessionId.");
118
+ if (parsed.records.at(-1)?.id !== source.sourceLeafId) throw new Error("Terminal Pi snapshot leaf does not match its sourceLeafId.");
119
+ const records = parseSessionEntries(source.snapshotJsonl).filter((entry) => entry.type !== "session");
120
+ if (records.length !== parsed.records.length) throw new Error("Terminal Pi snapshot contains invalid entries");
121
+ const ids = /* @__PURE__ */ new Set();
122
+ let parent = null;
123
+ for (const record of records) {
124
+ if (record.parentId !== parent || ids.has(record.id)) throw new Error("Terminal Pi snapshot is not a selected branch");
125
+ ids.add(record.id);
126
+ parent = record.id;
127
+ }
128
+ const destination = await openSqliteSessionStorage({
129
+ sessionsRoot: path.resolve(options.sessionsRoot ?? path.join(getAgentDir(), "server", "sessions")),
130
+ sessionId: randomUUID(),
131
+ parentSessionId: request.parentSessionId || source.sourceSessionId,
132
+ historyOwnership: ownership
133
+ }, BACKGROUND_CONTEXT);
134
+ try {
135
+ await destination.session.commit(async (tx) => {
136
+ const conversation = await tx.createConversation({ ownership: { kind: "ownerless" } });
137
+ const mapped = /* @__PURE__ */ new Map();
138
+ for (const [index, record] of records.entries()) {
139
+ const tail = record.type === "compaction" ? records.slice(records.findIndex((entry) => entry.id === record.firstKeptEntryId), index).flatMap((entry) => sessionEntryToContextMessages(entry)) : [];
140
+ const model = convertToLlm([...sessionEntryToContextMessages(record), ...tail]);
141
+ const head = record.type === "compaction" ? mapped.get(record.firstKeptEntryId) : void 0;
142
+ if (record.type === "compaction" && head === void 0) throw new Error("Terminal Pi snapshot compaction boundary is absent");
143
+ const projected = record.type === "message" ? {
144
+ type: "message",
145
+ message: record.message,
146
+ timestamp: Date.parse(record.timestamp)
147
+ } : record.type === "compaction" ? {
148
+ type: "compaction",
149
+ summary: record.summary,
150
+ tokensBefore: record.tokensBefore,
151
+ retainedTail: tail,
152
+ fromHook: record.fromHook ?? false
153
+ } : record.type === "branch_summary" ? {
154
+ type: "branch_summary",
155
+ summary: record.summary,
156
+ fromId: record.fromId,
157
+ fromHook: record.fromHook ?? false
158
+ } : {
159
+ type: "custom",
160
+ ...fromPiSessionEntry(record)
161
+ };
162
+ const draft = {
163
+ kind: "po.entry",
164
+ data: JSON.parse(JSON.stringify(projected)),
165
+ ...model.length ? { model } : {},
166
+ ...record.type === "compaction" ? { head: "self" } : {}
167
+ };
168
+ const entry = await tx.appendEntry(conversation.id, draft);
169
+ mapped.set(record.id, entry.id);
170
+ if (record.type === "model_change") (await tx.doc(AgentDoc, conversation.id)).model = {
171
+ provider: record.provider,
172
+ modelId: record.modelId
173
+ };
174
+ if (record.type === "thinking_level_change") {
175
+ if (![
176
+ "off",
177
+ "minimal",
178
+ "low",
179
+ "medium",
180
+ "high",
181
+ "xhigh",
182
+ "max"
183
+ ].includes(record.thinkingLevel)) throw new Error("Invalid terminal Pi thinking level");
184
+ (await tx.doc(AgentDoc, conversation.id)).thinkingLevel = record.thinkingLevel;
185
+ }
186
+ }
187
+ (await tx.doc(DurableNavigationDoc)).activeConversationId = conversation.id;
188
+ }, BACKGROUND_CONTEXT);
189
+ return destination.sessionFile;
190
+ } catch (error) {
191
+ fs.rmSync(destination.sessionFile, { force: true });
192
+ throw error;
193
+ } finally {
194
+ await destination.session.close(BACKGROUND_CONTEXT);
195
+ await destination.repository.close(BACKGROUND_CONTEXT);
196
+ await destination.historyLease.release();
197
+ }
198
+ }
199
+ function createTerminalPiChildSessionService(options) {
200
+ const runtimeFactory = options.runtimeFactory ?? createDirectHarnessRuntime;
201
+ const ownership = options.historyOwnership ?? createHistoryOwnership({ sourceFormat: "sqlite" });
202
+ const headlessOptions = {
203
+ parentSessionId: "",
204
+ cwd: options.cwd,
205
+ ...options.sessionsRoot === void 0 ? {} : { sessionsRoot: options.sessionsRoot },
206
+ ...options.models === void 0 ? {} : { models: options.models },
207
+ ...options.providers === void 0 ? {} : { providers: options.providers },
208
+ ...options.defaultModel === void 0 ? {} : { defaultModel: options.defaultModel },
209
+ ...options.parentFastMode === void 0 ? {} : { parentFastMode: options.parentFastMode },
210
+ ...options.mcpTool === void 0 ? {} : { mcpTool: options.mcpTool },
211
+ ...options.subscribeMcpTool === void 0 ? {} : { subscribeMcpTool: options.subscribeMcpTool },
212
+ ...options.hooks === void 0 ? {} : { hooks: options.hooks },
213
+ historyOwnership: ownership,
214
+ ...options.now === void 0 ? {} : { now: options.now },
215
+ runtimeFactory
216
+ };
217
+ const headless = createHeadlessChildSessionService(headlessOptions);
218
+ const terminal = createDoomChildSessionService(async (request, signal) => {
219
+ signal?.throwIfAborted();
220
+ if (request.source.kind !== "terminal-pi-fork") throw new Error("Terminal Pi child sessions require terminal Pi fork sources.");
221
+ const directRequestOptions = composeDirectHarnessRequestOptions(request, options.mcpTool);
222
+ const fastMode = await options.parentFastMode?.();
223
+ if (fastMode !== void 0 && typeof fastMode !== "boolean") throw new Error("Parent Fast mode must be a boolean.");
224
+ const requestedModel = parseChildModelReference(request.model);
225
+ const model = requestedModel?.model ?? options.defaultModel?.();
226
+ const thinking = request.thinking ?? requestedModel?.thinking;
227
+ const providers = resolveChildProviders(options.providers);
228
+ const sessionPath = await createChildJournal(request, request.source, options, ownership);
229
+ const runtimeOptions = {
230
+ cwd: request.cwd || options.cwd,
231
+ parentSessionId: request.parentSessionId,
232
+ sessionPath,
233
+ ...options.sessionsRoot === void 0 ? {} : { sessionsRoot: options.sessionsRoot },
234
+ ...options.models === void 0 ? {} : { models: options.models },
235
+ ...providers === void 0 ? {} : { providers },
236
+ ...model === void 0 ? {} : { model },
237
+ ...thinking === void 0 ? {} : { thinkingLevel: thinking },
238
+ ...directRequestOptions,
239
+ ...fastMode === void 0 ? {} : { initialFastMode: fastMode },
240
+ historyOwnership: ownership
241
+ };
242
+ let runtime;
243
+ let hooks;
244
+ try {
245
+ hooks = bindChildHooks(request, options.hooks?.(), () => runtime, signal);
246
+ if (hooks.binding) {
247
+ runtimeOptions.beforeTool = hooks.binding.beforeTool;
248
+ runtimeOptions.afterTool = hooks.binding.afterTool;
249
+ }
250
+ runtime = await runtimeFactory(runtimeOptions);
251
+ if (requestedModel && model) await runtime.setModel(model);
252
+ if (thinking !== void 0) await runtime.setThinkingLevel(thinking);
253
+ await installIntercom(runtime, request.intercom, runtimeOptions.tools ?? []);
254
+ const releaseMcp = bindChildMcpCatalog(runtime, request, options, runtimeOptions.tools ?? []);
255
+ const file = runtime.sessionFile;
256
+ const releaseNative = typeof file === "string" ? registerNativeChild(file, runtime) : void 0;
257
+ return childRuntime(runtime, request.intercom, async () => {
258
+ try {
259
+ releaseMcp();
260
+ } finally {
261
+ try {
262
+ releaseNative?.();
263
+ } finally {
264
+ await hooks?.dispose();
265
+ }
266
+ }
267
+ });
268
+ } catch (error) {
269
+ let failure = error;
270
+ try {
271
+ await hooks?.dispose();
272
+ } catch (cleanupError) {
273
+ failure = new AggregateError([failure, cleanupError], "Terminal Pi child hook cleanup failed");
274
+ }
275
+ try {
276
+ await runtime?.dispose();
277
+ } catch (cleanupError) {
278
+ failure = new AggregateError([failure, cleanupError], "Terminal Pi child startup cleanup failed");
279
+ } finally {
280
+ request.intercom?.dispose?.();
281
+ fs.rmSync(sessionPath, { force: true });
282
+ }
283
+ throw failure;
284
+ }
285
+ }, { now: options.now ?? Date.now });
286
+ const owners = /* @__PURE__ */ new Map();
287
+ return {
288
+ async start(request, signal) {
289
+ const owner = request.source.kind === "terminal-pi-fork" ? terminal : headless;
290
+ const handle = await owner.start(request, signal);
291
+ owners.set(request.runId, owner);
292
+ return handle;
293
+ },
294
+ get: (runId) => owners.get(runId)?.get(runId) ?? terminal.get(runId) ?? headless.get(runId),
295
+ readTranscriptPage(runId, request, signal) {
296
+ const owner = owners.get(runId);
297
+ if (!owner?.readTranscriptPage) return Promise.reject(/* @__PURE__ */ new Error(`Child run '${runId}' has no readable transcript.`));
298
+ return owner.readTranscriptPage(runId, request, signal);
299
+ },
300
+ close: async () => {
301
+ const failures = await Promise.allSettled([terminal.close(), headless.close()]);
302
+ owners.clear();
303
+ const rejected = failures.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
304
+ if (rejected.length) throw new AggregateError(rejected, "Terminal Pi child-session shutdown failed.");
305
+ }
306
+ };
307
+ }
308
+ function createTerminalPiChildSessionServiceProvider(options) {
309
+ const service = createTerminalPiChildSessionService(options);
310
+ return {
311
+ get: () => service,
312
+ close: () => service.close()
313
+ };
314
+ }
315
+ //#endregion
316
+ export { captureTerminalPiForkSource, createTerminalPiChildSessionService, createTerminalPiChildSessionServiceProvider };
317
+
318
+ //# sourceMappingURL=terminalPiChildSessionService.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalPiChildSessionService.mjs","names":[],"sources":["../src/systems/child/adapters/terminalPiChildSessionService.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { JsonValue } from '@earendil-works/chord';\nimport { BACKGROUND_CONTEXT } from '@earendil-works/chord/context';\nimport type { Models, MutableModels, Provider } from '@earendil-works/pi-ai';\nimport {\n getAgentDir,\n parseSessionEntries,\n sessionEntryToContextMessages,\n convertToLlm,\n} from '@earendil-works/pi-coding-agent';\nimport { AgentDoc, type EntryId } from '@earendil-works/pi-durable';\n\nimport {\n createDoomChildSessionService,\n type DoomChildSessionIntercom,\n type DoomChildSessionHooks,\n type DoomChildSessionRuntime,\n type DoomChildSessionService,\n type DoomChildSessionServiceProvider,\n type DoomChildSessionTerminalPiForkSource,\n type DoomChildSessionRequest,\n} from '../../../exports/childSession';\nimport type { DoomChildSessionMcpTool } from '../../../exports/childSession';\nimport {\n createDirectHarnessRuntime,\n promptForAssistantText,\n type DirectHarnessRuntime,\n type DirectHarnessRuntimeOptions,\n} from '../../../server/directHarnessRuntime';\nimport { readNativeChildTranscript } from '../../../server/nativeChildTranscriptReader';\nimport { DurableNavigationDoc } from '../../../services/durableNavigation';\nimport type { HistoryOwnership } from '../../../services/historyImport';\nimport { createHistoryOwnership } from '../../../services/historyOwnership';\nimport { fromPiSessionEntry } from '../../../services/piSessionEntries';\nimport { openSqliteSessionStorage } from '../../../services/sqliteSessionStorage';\nimport type { DirectHarnessModel } from '../../../types/server/directHarnessRuntime';\nimport {\n composeDirectHarnessRequestOptions,\n bindChildHooks,\n bindChildMcpCatalog,\n createHeadlessChildSessionService,\n parseChildModelReference,\n resolveChildProviders,\n type HeadlessChildSessionServiceOptions,\n} from './headlessChildSessionService';\nimport { registerNativeChild } from './nativeChildRuntimes';\n\nexport interface TerminalPiChildSessionServiceOptions {\n readonly cwd: string;\n readonly sessionsRoot?: string;\n readonly models?: Models | MutableModels;\n /**\n * Providers to merge into the model registry for every child spawn. A thunk\n * is resolved per spawn so providers registered after this service was built,\n * such as Pi extension providers, are still visible to the child.\n */\n readonly providers?: readonly Provider[] | (() => readonly Provider[]);\n readonly defaultModel?: () => DirectHarnessModel | undefined;\n /** Snapshot the parent preference once per creation, never live-sync child toggles. */\n readonly parentFastMode?: () => boolean | Promise<boolean>;\n readonly hooks?: () => DoomChildSessionHooks | undefined;\n readonly mcpTool?: () => DoomChildSessionMcpTool | undefined;\n readonly subscribeMcpTool?: (listener: () => void) => () => void;\n readonly historyOwnership?: HistoryOwnership;\n readonly now?: () => number;\n readonly runtimeFactory?: (options: DirectHarnessRuntimeOptions) => Promise<DirectHarnessRuntime>;\n}\n\nexport interface TerminalPiForkSourceManager {\n getSessionId(): string;\n getLeafId(): string | null;\n getHeader(): { type: string; version?: number; [key: string]: unknown } | null;\n getBranch(fromId?: string): readonly Record<string, unknown>[];\n}\n\nfunction childRuntime(\n runtime: DirectHarnessRuntime,\n intercom?: DoomChildSessionIntercom,\n release?: () => void | Promise<void>,\n): DoomChildSessionRuntime {\n const file = runtime.sessionFile;\n return {\n sessionId: runtime.sessionId,\n ...(typeof file === 'string' ? { sessionFile: file } : {}),\n ...(typeof file === 'string'\n ? { readTranscriptPage: (request, signal) => readNativeChildTranscript(file, request, signal) }\n : {}),\n prompt: (task) => promptForAssistantText(runtime, task),\n async steer(message) {\n await runtime.submitInternalMessage(message, 'steer');\n },\n async followUp(message) {\n await runtime.submitInternalMessage(message, 'followUp');\n },\n onUsage(listener) {\n return runtime.onEvent((event) => {\n if (event.type !== 'usage') return;\n listener({ rowId: event.row.id, cost: event.row.usage.cost.total });\n });\n },\n abort: () => runtime.abort(),\n dispose: async () => {\n try {\n await release?.();\n } finally {\n try {\n await runtime.dispose();\n } finally {\n intercom?.dispose?.();\n }\n }\n },\n };\n}\n\ntype DirectHarnessTool = Parameters<DirectHarnessRuntime['replaceTools']>[0][number];\n\nasync function installIntercom(\n runtime: DirectHarnessRuntime,\n intercom: DoomChildSessionIntercom | undefined,\n tools: DirectHarnessTool[],\n): Promise<void> {\n if (!intercom) return;\n const tool = intercom.bindRuntime(childRuntime(runtime));\n const adapted = {\n ...tool,\n parameters: tool.parameters as never,\n execute: async (\n operationId: string,\n params: unknown,\n onUpdate: (result: { content: unknown; details?: unknown }) => void,\n _toolContext: unknown,\n _invocation: unknown,\n context: { abortSignal: AbortSignal | undefined },\n ) => tool.execute(operationId, params, context.abortSignal ?? new AbortController().signal, onUpdate as never),\n } as unknown as DirectHarnessTool;\n tools.push(adapted);\n await runtime.replaceTools(tools);\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction requireString(value: unknown, field: string): string {\n if (typeof value !== 'string' || value.length === 0) throw new Error(`Invalid terminal Pi snapshot ${field}`);\n return value;\n}\n\nfunction parseSnapshot(snapshotJsonl: string): { header: Record<string, unknown>; records: Record<string, unknown>[] } {\n if (!snapshotJsonl.endsWith('\\n')) throw new Error('Terminal Pi snapshot is truncated.');\n const lines = snapshotJsonl.slice(0, -1).split('\\n');\n let headerValue: unknown;\n try {\n headerValue = JSON.parse(lines[0] ?? '');\n } catch (error) {\n throw new Error('Malformed terminal Pi snapshot header.', { cause: error });\n }\n const header = asRecord(headerValue);\n if (header?.type !== 'session' || header.version !== 3)\n throw new Error('Terminal Pi child source must be a v3 JSONL snapshot.');\n const records = lines.slice(1).map((line, index) => {\n let value: unknown;\n try {\n value = JSON.parse(line);\n } catch (error) {\n throw new Error(`Malformed terminal Pi snapshot record at line ${index + 2}.`, { cause: error });\n }\n const record = asRecord(value);\n if (record === undefined) throw new Error(`Invalid terminal Pi snapshot record at line ${index + 2}`);\n requireString(record.id, `record ${index + 2} id`);\n if (record.parentId !== null && typeof record.parentId !== 'string')\n throw new Error(`Invalid terminal Pi snapshot record ${index + 2} parentId`);\n return record;\n });\n return { header, records };\n}\n\n/** Capture data from Pi memory, not its writable v3 path. The JSONL string is immutable after return. */\nexport function captureTerminalPiForkSource(\n manager: TerminalPiForkSourceManager,\n selectedLeafId = manager.getLeafId(),\n): DoomChildSessionTerminalPiForkSource | undefined {\n const sourceSessionId = manager.getSessionId();\n const sourceLeafId = selectedLeafId;\n const header = manager.getHeader();\n if (!sourceSessionId.trim() || !sourceLeafId || header?.type !== 'session' || header.version !== 3) return undefined;\n const branch = manager.getBranch(sourceLeafId);\n const lastEntry = branch.at(-1);\n if (lastEntry?.id !== sourceLeafId) return undefined;\n const snapshotJsonl = `${[header, ...branch].map((record) => JSON.stringify(record)).join('\\n')}\\n`;\n return Object.freeze({\n kind: 'terminal-pi-fork',\n sourceSessionId,\n sourceLeafId,\n snapshotJsonl,\n });\n}\n\nasync function createChildJournal(\n request: DoomChildSessionRequest,\n source: DoomChildSessionTerminalPiForkSource,\n options: TerminalPiChildSessionServiceOptions,\n ownership: HistoryOwnership,\n): Promise<string> {\n const parsed = parseSnapshot(source.snapshotJsonl);\n if (requireString(parsed.header.id, 'header id') !== source.sourceSessionId)\n throw new Error('Terminal Pi snapshot session identity does not match its sourceSessionId.');\n if (parsed.records.at(-1)?.id !== source.sourceLeafId)\n throw new Error('Terminal Pi snapshot leaf does not match its sourceLeafId.');\n\n const records = parseSessionEntries(source.snapshotJsonl).filter((entry) => entry.type !== 'session');\n if (records.length !== parsed.records.length) throw new Error('Terminal Pi snapshot contains invalid entries');\n const ids = new Set<string>();\n let parent: string | null = null;\n for (const record of records) {\n if (record.parentId !== parent || ids.has(record.id))\n throw new Error('Terminal Pi snapshot is not a selected branch');\n ids.add(record.id);\n parent = record.id;\n }\n const destination = await openSqliteSessionStorage(\n {\n sessionsRoot: path.resolve(options.sessionsRoot ?? path.join(getAgentDir(), 'server', 'sessions')),\n sessionId: randomUUID(),\n parentSessionId: request.parentSessionId || source.sourceSessionId,\n historyOwnership: ownership,\n },\n BACKGROUND_CONTEXT,\n );\n try {\n await destination.session.commit(async (tx) => {\n const conversation = await tx.createConversation({ ownership: { kind: 'ownerless' } });\n const mapped = new Map<string, EntryId>();\n for (const [index, record] of records.entries()) {\n const tail =\n record.type === 'compaction'\n ? records\n .slice(\n records.findIndex((entry) => entry.id === record.firstKeptEntryId),\n index,\n )\n .flatMap((entry) => sessionEntryToContextMessages(entry))\n : [];\n const model = convertToLlm([...sessionEntryToContextMessages(record), ...tail]);\n const head = record.type === 'compaction' ? mapped.get(record.firstKeptEntryId) : undefined;\n if (record.type === 'compaction' && head === undefined)\n throw new Error('Terminal Pi snapshot compaction boundary is absent');\n const projected =\n record.type === 'message'\n ? { type: 'message', message: record.message, timestamp: Date.parse(record.timestamp) }\n : record.type === 'compaction'\n ? {\n type: 'compaction',\n summary: record.summary,\n tokensBefore: record.tokensBefore,\n retainedTail: tail,\n fromHook: record.fromHook ?? false,\n }\n : record.type === 'branch_summary'\n ? {\n type: 'branch_summary',\n summary: record.summary,\n fromId: record.fromId,\n fromHook: record.fromHook ?? false,\n }\n : { type: 'custom', ...fromPiSessionEntry(record) };\n const draft = {\n kind: 'po.entry',\n data: JSON.parse(JSON.stringify(projected)) as JsonValue,\n ...(model.length ? { model } : {}),\n ...(record.type === 'compaction' ? { head: 'self' as const } : {}),\n };\n const entry = await tx.appendEntry(conversation.id, draft);\n mapped.set(record.id, entry.id);\n if (record.type === 'model_change')\n (await tx.doc(AgentDoc, conversation.id)).model = { provider: record.provider, modelId: record.modelId };\n if (record.type === 'thinking_level_change') {\n if (!['off', 'minimal', 'low', 'medium', 'high', 'xhigh', 'max'].includes(record.thinkingLevel))\n throw new Error('Invalid terminal Pi thinking level');\n (await tx.doc(AgentDoc, conversation.id)).thinkingLevel = record.thinkingLevel as NonNullable<\n Awaited<ReturnType<DirectHarnessRuntime['lane']['agent']>>['thinkingLevel']\n >;\n }\n }\n (await tx.doc(DurableNavigationDoc)).activeConversationId = conversation.id;\n }, BACKGROUND_CONTEXT);\n return destination.sessionFile;\n } catch (error) {\n fs.rmSync(destination.sessionFile, { force: true });\n throw error;\n } finally {\n await destination.session.close(BACKGROUND_CONTEXT);\n await destination.repository.close(BACKGROUND_CONTEXT);\n await destination.historyLease.release();\n }\n}\n\nexport function createTerminalPiChildSessionService(\n options: TerminalPiChildSessionServiceOptions,\n): DoomChildSessionService {\n const runtimeFactory = options.runtimeFactory ?? createDirectHarnessRuntime;\n const ownership = options.historyOwnership ?? createHistoryOwnership({ sourceFormat: 'sqlite' });\n const headlessOptions: HeadlessChildSessionServiceOptions = {\n parentSessionId: '',\n cwd: options.cwd,\n ...(options.sessionsRoot === undefined ? {} : { sessionsRoot: options.sessionsRoot }),\n ...(options.models === undefined ? {} : { models: options.models }),\n ...(options.providers === undefined ? {} : { providers: options.providers }),\n ...(options.defaultModel === undefined ? {} : { defaultModel: options.defaultModel }),\n ...(options.parentFastMode === undefined ? {} : { parentFastMode: options.parentFastMode }),\n ...(options.mcpTool === undefined ? {} : { mcpTool: options.mcpTool }),\n ...(options.subscribeMcpTool === undefined ? {} : { subscribeMcpTool: options.subscribeMcpTool }),\n ...(options.hooks === undefined ? {} : { hooks: options.hooks }),\n historyOwnership: ownership,\n ...(options.now === undefined ? {} : { now: options.now }),\n runtimeFactory,\n };\n const headless = createHeadlessChildSessionService(headlessOptions);\n const terminal = createDoomChildSessionService(\n async (request: DoomChildSessionRequest, signal): Promise<DoomChildSessionRuntime> => {\n signal?.throwIfAborted();\n if (request.source.kind !== 'terminal-pi-fork')\n throw new Error('Terminal Pi child sessions require terminal Pi fork sources.');\n const directRequestOptions = composeDirectHarnessRequestOptions(request, options.mcpTool);\n const fastMode = await options.parentFastMode?.();\n if (fastMode !== undefined && typeof fastMode !== 'boolean')\n throw new Error('Parent Fast mode must be a boolean.');\n const requestedModel = parseChildModelReference(request.model);\n const model = requestedModel?.model ?? options.defaultModel?.();\n const thinking = request.thinking ?? requestedModel?.thinking;\n const providers = resolveChildProviders(options.providers);\n const sessionPath = await createChildJournal(request, request.source, options, ownership);\n const runtimeOptions: DirectHarnessRuntimeOptions = {\n cwd: request.cwd || options.cwd,\n parentSessionId: request.parentSessionId,\n sessionPath,\n ...(options.sessionsRoot === undefined ? {} : { sessionsRoot: options.sessionsRoot }),\n ...(options.models === undefined ? {} : { models: options.models }),\n ...(providers === undefined ? {} : { providers }),\n ...(model === undefined ? {} : { model }),\n ...(thinking === undefined ? {} : { thinkingLevel: thinking as never }),\n ...directRequestOptions,\n ...(fastMode === undefined ? {} : { initialFastMode: fastMode }),\n historyOwnership: ownership,\n };\n let runtime: DirectHarnessRuntime | undefined;\n let hooks: ReturnType<typeof bindChildHooks> | undefined;\n try {\n hooks = bindChildHooks(request, options.hooks?.(), () => runtime, signal);\n if (hooks.binding) {\n runtimeOptions.beforeTool = hooks.binding.beforeTool;\n runtimeOptions.afterTool = hooks.binding.afterTool;\n }\n runtime = await runtimeFactory(runtimeOptions);\n if (requestedModel && model) await runtime.setModel(model);\n if (thinking !== undefined) await runtime.setThinkingLevel(thinking as never);\n await installIntercom(runtime, request.intercom, (runtimeOptions.tools ?? []) as DirectHarnessTool[]);\n const releaseMcp = bindChildMcpCatalog(runtime, request, options, runtimeOptions.tools ?? []);\n const file = runtime.sessionFile;\n const releaseNative = typeof file === 'string' ? registerNativeChild(file, runtime) : undefined;\n return childRuntime(runtime, request.intercom, async () => {\n try {\n releaseMcp();\n } finally {\n try {\n releaseNative?.();\n } finally {\n await hooks?.dispose();\n }\n }\n });\n } catch (error) {\n let failure: unknown = error;\n try {\n await hooks?.dispose();\n } catch (cleanupError) {\n failure = new AggregateError([failure, cleanupError], 'Terminal Pi child hook cleanup failed');\n }\n try {\n await runtime?.dispose();\n } catch (cleanupError) {\n failure = new AggregateError([failure, cleanupError], 'Terminal Pi child startup cleanup failed');\n } finally {\n request.intercom?.dispose?.();\n fs.rmSync(sessionPath, { force: true });\n }\n throw failure;\n }\n },\n { now: options.now ?? Date.now },\n );\n const owners = new Map<string, DoomChildSessionService>();\n const service: DoomChildSessionService = {\n async start(request, signal) {\n const owner = request.source.kind === 'terminal-pi-fork' ? terminal : headless;\n const handle = await owner.start(request, signal);\n owners.set(request.runId, owner);\n return handle;\n },\n get: (runId) => owners.get(runId)?.get(runId) ?? terminal.get(runId) ?? headless.get(runId),\n readTranscriptPage(runId, request, signal) {\n const owner = owners.get(runId);\n if (!owner?.readTranscriptPage)\n return Promise.reject(new Error(`Child run '${runId}' has no readable transcript.`));\n return owner.readTranscriptPage(runId, request, signal);\n },\n close: async () => {\n const failures = await Promise.allSettled([terminal.close(), headless.close()]);\n owners.clear();\n const rejected = failures.flatMap((result) => (result.status === 'rejected' ? [result.reason] : []));\n if (rejected.length) throw new AggregateError(rejected, 'Terminal Pi child-session shutdown failed.');\n },\n };\n return service;\n}\n\nexport interface TerminalPiChildSessionServiceProvider extends DoomChildSessionServiceProvider {\n close(): Promise<void>;\n}\n\nexport function createTerminalPiChildSessionServiceProvider(\n options: TerminalPiChildSessionServiceOptions,\n): TerminalPiChildSessionServiceProvider {\n const service = createTerminalPiChildSessionService(options);\n return { get: () => service, close: () => service.close() };\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_testHost = require("./src/testing/pi/testHost.cjs");
3
+ const require_extensionScenarios = require("./src/testing/pi/extensionScenarios.cjs");
4
+ const require_index = require("./src/services/hubChannelHarness/index.cjs");
5
+ const require_index$1 = require("./src/services/packageApiHarness/index.cjs");
6
+ const require_index$2 = require("./src/services/apiSurfaceAssert/index.cjs");
7
+ exports.assertContractSurface = require_index$2.assertContractSurface;
8
+ exports.createPiTestHost = require_testHost.createPiTestHost;
9
+ exports.doomHubChannelHarness = require_index.doomHubChannelHarness;
10
+ exports.mountPackageApi = require_index$1.mountPackageApi;
11
+ exports.standardExtensionScenarios = require_extensionScenarios.standardExtensionScenarios;
@@ -0,0 +1,6 @@
1
+ import { PiTestContextOptions, PiTestDialogAnswers, PiTestHost, PiTestHostOptions, RecordedCommand, RecordedEntry, RecordedExec, RecordedMessage, RecordedNotification, RecordedProvider, RecordedRenderer, RecordedShortcut, RecordedStatus, RecordedUserMessage, RecordedWidget, createPiTestHost } from "./src/testing/pi/testHost.mjs";
2
+ import { ExtensionContractScenario, StandardExtensionContractOptions, standardExtensionScenarios } from "./src/testing/pi/extensionScenarios.mjs";
3
+ import { DoomHubChannelHarness, DoomHubChannelHarnessOptions, doomHubChannelHarness } from "./src/services/hubChannelHarness/index.mjs";
4
+ import { MountPackageApiOptions, MountedPackageApi, mountPackageApi } from "./src/services/packageApiHarness/index.mjs";
5
+ import { ApiSurfaceOptions, assertContractSurface } from "./src/services/apiSurfaceAssert/index.mjs";
6
+ export { type ApiSurfaceOptions, type DoomHubChannelHarness, type DoomHubChannelHarnessOptions, type ExtensionContractScenario, type MountPackageApiOptions, type MountedPackageApi, type PiTestContextOptions, type PiTestDialogAnswers, type PiTestHost, type PiTestHostOptions, type RecordedCommand, type RecordedEntry, type RecordedExec, type RecordedMessage, type RecordedNotification, type RecordedProvider, type RecordedRenderer, type RecordedShortcut, type RecordedStatus, type RecordedUserMessage, type RecordedWidget, type StandardExtensionContractOptions, assertContractSurface, createPiTestHost, doomHubChannelHarness, mountPackageApi, standardExtensionScenarios };
@@ -0,0 +1,6 @@
1
+ import { createPiTestHost } from "./src/testing/pi/testHost.mjs";
2
+ import { standardExtensionScenarios } from "./src/testing/pi/extensionScenarios.mjs";
3
+ import { doomHubChannelHarness } from "./src/services/hubChannelHarness/index.mjs";
4
+ import { mountPackageApi } from "./src/services/packageApiHarness/index.mjs";
5
+ import { assertContractSurface } from "./src/services/apiSurfaceAssert/index.mjs";
6
+ export { assertContractSurface, createPiTestHost, doomHubChannelHarness, mountPackageApi, standardExtensionScenarios };
@@ -0,0 +1,136 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_index = require("./src/services/toolCost/index.cjs");
3
+ //#region src/services/toolInventory/index.ts
4
+ /** Pi tags its own tools with this source; everything else came from an extension. */
5
+ const BUILTIN_SOURCE = "builtin";
6
+ /** Pi's structural tags for an extension path, neither of which is a package name. */
7
+ const CLI_SOURCE = "cli";
8
+ const LOCAL_SOURCE = "local";
9
+ const CORE_KEY = "core";
10
+ const CORE_NAME = "pi";
11
+ const MCP_KEY_PREFIX = "mcp:";
12
+ /** Labels read name first, then kind, because the name is what the eye scans for. */
13
+ const KIND_SUFFIX = {
14
+ core: "core",
15
+ mcp: "mcp",
16
+ extension: "extension"
17
+ };
18
+ const CONNECTED_STATUS = "connected";
19
+ const KIND_ORDER = {
20
+ core: 0,
21
+ mcp: 1,
22
+ extension: 2
23
+ };
24
+ /**
25
+ * Server state worth reporting, which takes the place of the tool count.
26
+ *
27
+ * A connected server is the unremarkable case, so it keeps its count rather
28
+ * than spending the column on a word that says nothing went wrong.
29
+ */
30
+ function displayStatus(server) {
31
+ return server.state === CONNECTED_STATUS ? void 0 : server.state.replace(/-/g, " ");
32
+ }
33
+ function toEntry(tool, activeTools) {
34
+ return {
35
+ name: tool.name,
36
+ ...tool.description ? { description: tool.description } : {},
37
+ ...tool.parameters === void 0 ? {} : { parameters: tool.parameters },
38
+ ...tool.promptSnippet ? { promptSnippet: tool.promptSnippet } : {},
39
+ ...tool.promptGuidelines?.length ? { promptGuidelines: tool.promptGuidelines } : {},
40
+ active: activeTools.has(tool.name)
41
+ };
42
+ }
43
+ function byName(left, right) {
44
+ return left.name.localeCompare(right.name);
45
+ }
46
+ function sourceLabel(name, kind) {
47
+ return `${name} · ${KIND_SUFFIX[kind]}`;
48
+ }
49
+ /**
50
+ * Indexes each server's declared tool names.
51
+ *
52
+ * The snapshot names its tools outright, so attribution is a lookup rather than a
53
+ * guess at the naming scheme. A tool the snapshot does not claim falls through to
54
+ * the extension that registered it.
55
+ */
56
+ function serverByTool(servers) {
57
+ const index = /* @__PURE__ */ new Map();
58
+ for (const server of servers) for (const toolName of server.tools) index.set(toolName, server);
59
+ return index;
60
+ }
61
+ /**
62
+ * Groups the session's tools by where they came from: Pi itself, one group per
63
+ * MCP server, then one per extension that registered a tool.
64
+ *
65
+ * Every MCP tool is registered by one extension, so `sourceInfo` cannot separate
66
+ * servers; the status snapshot supplies the tool-to-server mapping instead.
67
+ */
68
+ function buildToolSources(input) {
69
+ const activeTools = new Set(input.activeTools);
70
+ const servers = input.mcpServers ?? [];
71
+ const owningServer = serverByTool(servers);
72
+ const core = [];
73
+ const mcpTools = /* @__PURE__ */ new Map();
74
+ const extensions = /* @__PURE__ */ new Map();
75
+ for (const tool of input.tools) {
76
+ const entry = toEntry(tool, activeTools);
77
+ const server = owningServer.get(tool.name);
78
+ if (server) {
79
+ const bucket = mcpTools.get(server.name);
80
+ if (bucket) bucket.push(entry);
81
+ else mcpTools.set(server.name, [entry]);
82
+ continue;
83
+ }
84
+ if (tool.sourceInfo.source === BUILTIN_SOURCE) {
85
+ core.push(entry);
86
+ continue;
87
+ }
88
+ const recordedPath = input.resolveExtensionToolSource?.(tool.name);
89
+ const key = recordedPath ?? tool.sourceInfo.path;
90
+ const group = extensions.get(key);
91
+ if (group) group.tools.push(entry);
92
+ else {
93
+ const name = recordedPath !== void 0 || tool.sourceInfo.source === CLI_SOURCE || tool.sourceInfo.source === LOCAL_SOURCE || !tool.sourceInfo.source ? input.resolveExtensionName?.(key) ?? tool.sourceInfo.source ?? key : tool.sourceInfo.source ?? key;
94
+ const scoped = input.resolveExtensionPackageName?.(key);
95
+ extensions.set(key, {
96
+ label: sourceLabel(name, "extension"),
97
+ detail: key,
98
+ ...scoped ? { packageName: scoped } : {},
99
+ tools: [entry]
100
+ });
101
+ }
102
+ }
103
+ const sources = [];
104
+ if (core.length > 0) sources.push({
105
+ key: CORE_KEY,
106
+ label: sourceLabel(CORE_NAME, CORE_KEY),
107
+ kind: CORE_KEY,
108
+ tools: core.sort(byName)
109
+ });
110
+ for (const server of servers) {
111
+ const tools = mcpTools.get(server.name) ?? [];
112
+ const status = displayStatus(server);
113
+ sources.push({
114
+ key: `${MCP_KEY_PREFIX}${server.name}`,
115
+ label: sourceLabel(server.name, "mcp"),
116
+ kind: "mcp",
117
+ ...status ? { status } : {},
118
+ tools: tools.sort(byName)
119
+ });
120
+ }
121
+ for (const [key, group] of extensions) sources.push({
122
+ key,
123
+ label: group.label,
124
+ kind: "extension",
125
+ detail: group.detail,
126
+ ...group.packageName ? { packageName: group.packageName } : {},
127
+ tools: group.tools.sort(byName)
128
+ });
129
+ return sources.sort((left, right) => KIND_ORDER[left.kind] - KIND_ORDER[right.kind] || left.label.localeCompare(right.label));
130
+ }
131
+ //#endregion
132
+ exports.buildToolSources = buildToolSources;
133
+ exports.tokensForSource = require_index.tokensForSource;
134
+ exports.tokensForTool = require_index.tokensForTool;
135
+
136
+ //# sourceMappingURL=toolInventory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolInventory.cjs","names":[],"sources":["../src/services/toolInventory/index.ts"],"sourcesContent":["import type { McpServerSnapshot } from '../../exports/mcpStatus';\n\nexport type ToolSourceKind = 'core' | 'mcp' | 'extension';\n\nexport interface ToolEntry {\n name: string;\n description?: string;\n parameters?: unknown;\n /** One-line snippet Pi keys by tool name in the system prompt. */\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n active: boolean;\n}\n\nexport interface ToolSource {\n key: string;\n label: string;\n kind: ToolSourceKind;\n /** Server state for MCP sources, e.g. `disabled`; absent for core and extensions. */\n status?: string;\n /** The registering file for extension sources. */\n detail?: string;\n /**\n * Package name as its manifest spells it, scope included.\n *\n * `label` is shortened for reading. Attribution joins against `.po`\n * configuration, which names packages in full, so the unshortened name is\n * carried separately rather than recovered from the label.\n */\n packageName?: string;\n tools: readonly ToolEntry[];\n}\n\n/** One server row of the MCP status snapshot. */\nexport type McpServerStatus = McpServerSnapshot;\n\nexport interface ToolInfo {\n name: string;\n description?: string;\n parameters?: unknown;\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n sourceInfo: { path: string; source?: string };\n}\n\nexport interface ToolInventoryInput {\n tools: readonly ToolInfo[];\n activeTools: readonly string[];\n /** Absent when the MCP adapter is not loaded or has not published yet. */\n mcpServers?: readonly McpServerStatus[];\n resolveExtensionName?: (entryPath: string) => string;\n /** Unshortened package name for the same entry path, for attribution. */\n resolveExtensionPackageName?: (entryPath: string) => string | undefined;\n resolveExtensionToolSource?: (toolName: string) => string | undefined;\n}\n\n/** Pi tags its own tools with this source; everything else came from an extension. */\nconst BUILTIN_SOURCE = 'builtin';\n/** Pi's structural tags for an extension path, neither of which is a package name. */\nconst CLI_SOURCE = 'cli';\nconst LOCAL_SOURCE = 'local';\nconst CORE_KEY = 'core';\nconst CORE_NAME = 'pi';\nconst MCP_KEY_PREFIX = 'mcp:';\n/** Labels read name first, then kind, because the name is what the eye scans for. */\nconst KIND_SUFFIX: Record<ToolSourceKind, string> = { core: 'core', mcp: 'mcp', extension: 'extension' };\nconst CONNECTED_STATUS = 'connected';\nconst KIND_ORDER: Record<ToolSourceKind, number> = { core: 0, mcp: 1, extension: 2 };\n\n/**\n * Server state worth reporting, which takes the place of the tool count.\n *\n * A connected server is the unremarkable case, so it keeps its count rather\n * than spending the column on a word that says nothing went wrong.\n */\nfunction displayStatus(server: McpServerStatus): string | undefined {\n return server.state === CONNECTED_STATUS ? undefined : server.state.replace(/-/g, ' ');\n}\n\nfunction toEntry(tool: ToolInfo, activeTools: ReadonlySet<string>): ToolEntry {\n return {\n name: tool.name,\n ...(tool.description ? { description: tool.description } : {}),\n ...(tool.parameters === undefined ? {} : { parameters: tool.parameters }),\n ...(tool.promptSnippet ? { promptSnippet: tool.promptSnippet } : {}),\n ...(tool.promptGuidelines?.length ? { promptGuidelines: tool.promptGuidelines } : {}),\n active: activeTools.has(tool.name),\n };\n}\n\nfunction byName(left: ToolEntry, right: ToolEntry): number {\n return left.name.localeCompare(right.name);\n}\n\nfunction sourceLabel(name: string, kind: ToolSourceKind): string {\n return `${name} · ${KIND_SUFFIX[kind]}`;\n}\n\n/**\n * Indexes each server's declared tool names.\n *\n * The snapshot names its tools outright, so attribution is a lookup rather than a\n * guess at the naming scheme. A tool the snapshot does not claim falls through to\n * the extension that registered it.\n */\nfunction serverByTool(servers: readonly McpServerStatus[]): Map<string, McpServerStatus> {\n const index = new Map<string, McpServerStatus>();\n for (const server of servers) {\n for (const toolName of server.tools) index.set(toolName, server);\n }\n return index;\n}\n\n/**\n * Groups the session's tools by where they came from: Pi itself, one group per\n * MCP server, then one per extension that registered a tool.\n *\n * Every MCP tool is registered by one extension, so `sourceInfo` cannot separate\n * servers; the status snapshot supplies the tool-to-server mapping instead.\n */\nexport function buildToolSources(input: ToolInventoryInput): readonly ToolSource[] {\n const activeTools = new Set(input.activeTools);\n const servers = input.mcpServers ?? [];\n const owningServer = serverByTool(servers);\n const core: ToolEntry[] = [];\n const mcpTools = new Map<string, ToolEntry[]>();\n const extensions = new Map<string, { label: string; detail: string; packageName?: string; tools: ToolEntry[] }>();\n\n for (const tool of input.tools) {\n const entry = toEntry(tool, activeTools);\n const server = owningServer.get(tool.name);\n if (server) {\n const bucket = mcpTools.get(server.name);\n if (bucket) bucket.push(entry);\n else mcpTools.set(server.name, [entry]);\n continue;\n }\n if (tool.sourceInfo.source === BUILTIN_SOURCE) {\n core.push(entry);\n continue;\n }\n // A composed bundle has one Pi source path for every factory inside it. Doom's\n // compiler records the original entry at registration time so those extensions\n // remain separate here even though Pi can only see the outer bundle.\n const recordedPath = input.resolveExtensionToolSource?.(tool.name);\n const key = recordedPath ?? tool.sourceInfo.path;\n const group = extensions.get(key);\n if (group) group.tools.push(entry);\n else {\n const structuralSource =\n recordedPath !== undefined ||\n tool.sourceInfo.source === CLI_SOURCE ||\n tool.sourceInfo.source === LOCAL_SOURCE ||\n !tool.sourceInfo.source;\n const name = structuralSource\n ? (input.resolveExtensionName?.(key) ?? tool.sourceInfo.source ?? key)\n : (tool.sourceInfo.source ?? key);\n const scoped = input.resolveExtensionPackageName?.(key);\n extensions.set(key, {\n label: sourceLabel(name, 'extension'),\n detail: key,\n ...(scoped ? { packageName: scoped } : {}),\n tools: [entry],\n });\n }\n }\n\n const sources: ToolSource[] = [];\n if (core.length > 0) {\n sources.push({ key: CORE_KEY, label: sourceLabel(CORE_NAME, CORE_KEY), kind: CORE_KEY, tools: core.sort(byName) });\n }\n for (const server of servers) {\n const tools = mcpTools.get(server.name) ?? [];\n const status = displayStatus(server);\n // Every configured server is listed, including one with no tools: attribution\n // is exact now, so an empty list is a fact about the server rather than a\n // failure to recognise its tool names.\n sources.push({\n key: `${MCP_KEY_PREFIX}${server.name}`,\n label: sourceLabel(server.name, 'mcp'),\n kind: 'mcp',\n ...(status ? { status } : {}),\n tools: tools.sort(byName),\n });\n }\n for (const [key, group] of extensions) {\n sources.push({\n key,\n label: group.label,\n kind: 'extension',\n detail: group.detail,\n ...(group.packageName ? { packageName: group.packageName } : {}),\n tools: group.tools.sort(byName),\n });\n }\n\n return sources.sort(\n (left, right) => KIND_ORDER[left.kind] - KIND_ORDER[right.kind] || left.label.localeCompare(right.label),\n );\n}\n\nexport { type CountTokens, type ToolCost, tokensForSource, tokensForTool } from '../toolCost';\n"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { McpServerSnapshot } from "./src/schemas/mcpStatus.mjs";
2
+ import "./mcpStatus.mjs";
3
+ import { CountTokens, ToolCost, tokensForSource, tokensForTool } from "./src/services/toolCost/index.mjs";
4
+ //#region src/services/toolInventory/index.d.ts
5
+ export type ToolSourceKind = 'core' | 'mcp' | 'extension';
6
+ export interface ToolEntry {
7
+ name: string;
8
+ description?: string;
9
+ parameters?: unknown;
10
+ /** One-line snippet Pi keys by tool name in the system prompt. */
11
+ promptSnippet?: string;
12
+ promptGuidelines?: readonly string[];
13
+ active: boolean;
14
+ }
15
+ export interface ToolSource {
16
+ key: string;
17
+ label: string;
18
+ kind: ToolSourceKind;
19
+ /** Server state for MCP sources, e.g. `disabled`; absent for core and extensions. */
20
+ status?: string;
21
+ /** The registering file for extension sources. */
22
+ detail?: string;
23
+ /**
24
+ * Package name as its manifest spells it, scope included.
25
+ *
26
+ * `label` is shortened for reading. Attribution joins against `.po`
27
+ * configuration, which names packages in full, so the unshortened name is
28
+ * carried separately rather than recovered from the label.
29
+ */
30
+ packageName?: string;
31
+ tools: readonly ToolEntry[];
32
+ }
33
+ /** One server row of the MCP status snapshot. */
34
+ export type McpServerStatus = McpServerSnapshot;
35
+ export interface ToolInfo {
36
+ name: string;
37
+ description?: string;
38
+ parameters?: unknown;
39
+ promptSnippet?: string;
40
+ promptGuidelines?: readonly string[];
41
+ sourceInfo: {
42
+ path: string;
43
+ source?: string;
44
+ };
45
+ }
46
+ export interface ToolInventoryInput {
47
+ tools: readonly ToolInfo[];
48
+ activeTools: readonly string[];
49
+ /** Absent when the MCP adapter is not loaded or has not published yet. */
50
+ mcpServers?: readonly McpServerStatus[];
51
+ resolveExtensionName?: (entryPath: string) => string;
52
+ /** Unshortened package name for the same entry path, for attribution. */
53
+ resolveExtensionPackageName?: (entryPath: string) => string | undefined;
54
+ resolveExtensionToolSource?: (toolName: string) => string | undefined;
55
+ }
56
+ /**
57
+ * Groups the session's tools by where they came from: Pi itself, one group per
58
+ * MCP server, then one per extension that registered a tool.
59
+ *
60
+ * Every MCP tool is registered by one extension, so `sourceInfo` cannot separate
61
+ * servers; the status snapshot supplies the tool-to-server mapping instead.
62
+ */
63
+ export declare function buildToolSources(input: ToolInventoryInput): readonly ToolSource[];
64
+ //#endregion
65
+ export { type CountTokens, type ToolCost, tokensForSource, tokensForTool };
66
+ //# sourceMappingURL=toolInventory.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolInventory.d.mts","names":[],"sources":["../src/services/toolInventory/index.ts"],"mappings":";;;;YAEY;iBAEK;EACf;EACA;EACA;;EAEA;EACA;EACA;;iBAGe;EACf;EACA;EACA,MAAM;;EAEN;;EAEA;;;;;;;;EAQA;EACA,gBAAgB;;;YAIN,kBAAkB;iBAEb;EACf;EACA;EACA;EACA;EACA;EACA;IAAc;IAAc;;;iBAGb;EACf,gBAAgB;EAChB;;EAEA,sBAAsB;EACtB,wBAAwB;;EAExB,+BAA+B;EAC/B,8BAA8B;;;;;;;;;wBAmEhB,iBAAiB,OAAO,8BAA8B"}