@agimon-ai/po-core 0.0.0-alpha.2 → 0.0.0-alpha.21

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 (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["DOOM_TOOL_SURFACE_SERVICE","requireDoomToolSurface","DOOM_HELP_WHEN","DOOM_HELP_SERVICE","requireDoomHelpService"],"sources":["../../../../src/services/piHelpTools/index.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport { DOOM_HELP_SERVICE, requireDoomHelpService } from '../../schemas/help';\nimport { DOOM_HELP_WHEN } from '../../schemas/help';\nimport {\n DOOM_TOOL_SURFACE_SERVICE,\n requireDoomToolSurface,\n type DoomToolSurfaceService,\n} from '../../schemas/toolSurface';\n\n/** Keep package-owned Pi tools closed when Help or its session provider is absent. */\nexport function createPiHelpToolGate(source: string, names: readonly string[]) {\n const controlled = new Set(names);\n let active: AbortController | undefined;\n let surface: DoomToolSurfaceService | undefined;\n let refresh = () => {};\n const deactivate = () => {\n active?.abort(new Error('Help tools are no longer active.'));\n active = undefined;\n };\n const bind = (context: Context): void => {\n context.inject([DOOM_TOOL_SURFACE_SERVICE], (child) => {\n const current = requireDoomToolSurface(child);\n surface = current;\n const restrict = (incoming: readonly string[]) =>\n active ? incoming : incoming.filter((name) => !controlled.has(name));\n const registration = current.register({\n source,\n controlledTools: [...controlled],\n attribution: DOOM_HELP_WHEN.attribution,\n restrict,\n });\n refresh = () => registration.update(restrict);\n // This restriction outlives the Help binding. Removing Help must not restore its tools.\n child.inject([DOOM_HELP_SERVICE], (helpContext) => {\n const help = requireDoomHelpService(helpContext);\n const synchronize = () => {\n const state = help.getSnapshot().activation;\n if (state === 'active' || state === 'degraded') active ??= new AbortController();\n else deactivate();\n registration.update(restrict);\n };\n const unsubscribe = help.subscribeSnapshot(synchronize);\n synchronize();\n return () => {\n unsubscribe();\n deactivate();\n registration.update(restrict);\n };\n });\n return () => {\n deactivate();\n if (surface === current) {\n surface = undefined;\n refresh = () => {};\n }\n registration.dispose();\n };\n });\n };\n return {\n services: [bind],\n // Native tools have been registered by this point, including a late package mount.\n onStart(this: void) {\n refresh();\n },\n assertActive(name: string, signal?: AbortSignal): AbortSignal {\n signal?.throwIfAborted();\n if (!controlled.has(name) || !active || !surface?.active().includes(name))\n throw new Error(`Help tool '${name}' is inactive or restricted.`);\n active.signal.throwIfAborted();\n return signal ? AbortSignal.any([signal, active.signal]) : active.signal;\n },\n };\n}\n"],"mappings":";;;;AAWA,SAAgB,qBAAqB,QAAgB,OAA0B;CAC7E,MAAM,aAAa,IAAI,IAAI,KAAK;CAChC,IAAI;CACJ,IAAI;CACJ,IAAI,gBAAgB,CAAC;CACrB,MAAM,mBAAmB;EACvB,QAAQ,sBAAM,IAAI,MAAM,kCAAkC,CAAC;EAC3D,SAAS,KAAA;CACX;CACA,MAAM,QAAQ,YAA2B;EACvC,QAAQ,OAAO,CAACA,oBAAAA,yBAAyB,IAAI,UAAU;GACrD,MAAM,UAAUC,oBAAAA,uBAAuB,KAAK;GAC5C,UAAU;GACV,MAAM,YAAY,aAChB,SAAS,WAAW,SAAS,QAAQ,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;GACrE,MAAM,eAAe,QAAQ,SAAS;IACpC;IACA,iBAAiB,CAAC,GAAG,UAAU;IAC/B,aAAaC,aAAAA,eAAe;IAC5B;GACF,CAAC;GACD,gBAAgB,aAAa,OAAO,QAAQ;GAE5C,MAAM,OAAO,CAACC,aAAAA,iBAAiB,IAAI,gBAAgB;IACjD,MAAM,OAAOC,aAAAA,uBAAuB,WAAW;IAC/C,MAAM,oBAAoB;KACxB,MAAM,QAAQ,KAAK,YAAY,CAAC,CAAC;KACjC,IAAI,UAAU,YAAY,UAAU,YAAY,WAAW,IAAI,gBAAgB;UAC1E,WAAW;KAChB,aAAa,OAAO,QAAQ;IAC9B;IACA,MAAM,cAAc,KAAK,kBAAkB,WAAW;IACtD,YAAY;IACZ,aAAa;KACX,YAAY;KACZ,WAAW;KACX,aAAa,OAAO,QAAQ;IAC9B;GACF,CAAC;GACD,aAAa;IACX,WAAW;IACX,IAAI,YAAY,SAAS;KACvB,UAAU,KAAA;KACV,gBAAgB,CAAC;IACnB;IACA,aAAa,QAAQ;GACvB;EACF,CAAC;CACH;CACA,OAAO;EACL,UAAU,CAAC,IAAI;EAEf,UAAoB;GAClB,QAAQ;EACV;EACA,aAAa,MAAc,QAAmC;GAC5D,QAAQ,eAAe;GACvB,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,IAAI,GACtE,MAAM,IAAI,MAAM,cAAc,KAAK,6BAA6B;GAClE,OAAO,OAAO,eAAe;GAC7B,OAAO,SAAS,YAAY,IAAI,CAAC,QAAQ,OAAO,MAAM,CAAC,IAAI,OAAO;EACpE;CACF;AACF"}
1
+ {"version":3,"file":"index.cjs","names":["PO_TOOL_SURFACE_SERVICE","requirePoToolSurface","PO_HELP_WHEN","PO_HELP_SERVICE","requirePoHelpService"],"sources":["../../../../src/services/piHelpTools/index.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport { PO_HELP_SERVICE, requirePoHelpService } from '../../schemas/help';\nimport { PO_HELP_WHEN } from '../../schemas/help';\nimport { PO_TOOL_SURFACE_SERVICE, requirePoToolSurface, type PoToolSurfaceService } from '../../schemas/toolSurface';\n\n/** Keep package-owned Pi tools closed when Help or its session provider is absent. */\nexport function createPiHelpToolGate(source: string, names: readonly string[]) {\n const controlled = new Set(names);\n let active: AbortController | undefined;\n let surface: PoToolSurfaceService | undefined;\n let refresh = () => {};\n const deactivate = () => {\n active?.abort(new Error('Help tools are no longer active.'));\n active = undefined;\n };\n const bind = (context: Context): void => {\n context.inject([PO_TOOL_SURFACE_SERVICE], (child) => {\n const current = requirePoToolSurface(child);\n surface = current;\n const restrict = (incoming: readonly string[]) =>\n active ? incoming : incoming.filter((name) => !controlled.has(name));\n const registration = current.register({\n source,\n controlledTools: [...controlled],\n attribution: PO_HELP_WHEN.attribution,\n restrict,\n });\n refresh = () => registration.update(restrict);\n // This restriction outlives the Help binding. Removing Help must not restore its tools.\n child.inject([PO_HELP_SERVICE], (helpContext) => {\n const help = requirePoHelpService(helpContext);\n const synchronize = () => {\n const state = help.getSnapshot().activation;\n if (state === 'active' || state === 'degraded') active ??= new AbortController();\n else deactivate();\n registration.update(restrict);\n };\n const unsubscribe = help.subscribeSnapshot(synchronize);\n synchronize();\n return () => {\n unsubscribe();\n deactivate();\n registration.update(restrict);\n };\n });\n return () => {\n deactivate();\n if (surface === current) {\n surface = undefined;\n refresh = () => {};\n }\n registration.dispose();\n };\n });\n };\n return {\n services: [bind],\n // Native tools have been registered by this point, including a late package mount.\n onStart(this: void) {\n refresh();\n },\n assertActive(name: string, signal?: AbortSignal): AbortSignal {\n signal?.throwIfAborted();\n if (!controlled.has(name) || !active || !surface?.active().includes(name))\n throw new Error(`Help tool '${name}' is inactive or restricted.`);\n active.signal.throwIfAborted();\n return signal ? AbortSignal.any([signal, active.signal]) : active.signal;\n },\n };\n}\n"],"mappings":";;;;AAOA,SAAgB,qBAAqB,QAAgB,OAA0B;CAC7E,MAAM,aAAa,IAAI,IAAI,KAAK;CAChC,IAAI;CACJ,IAAI;CACJ,IAAI,gBAAgB,CAAC;CACrB,MAAM,mBAAmB;EACvB,QAAQ,sBAAM,IAAI,MAAM,kCAAkC,CAAC;EAC3D,SAAS,KAAA;CACX;CACA,MAAM,QAAQ,YAA2B;EACvC,QAAQ,OAAO,CAACA,oBAAAA,uBAAuB,IAAI,UAAU;GACnD,MAAM,UAAUC,oBAAAA,qBAAqB,KAAK;GAC1C,UAAU;GACV,MAAM,YAAY,aAChB,SAAS,WAAW,SAAS,QAAQ,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;GACrE,MAAM,eAAe,QAAQ,SAAS;IACpC;IACA,iBAAiB,CAAC,GAAG,UAAU;IAC/B,aAAaC,aAAAA,aAAa;IAC1B;GACF,CAAC;GACD,gBAAgB,aAAa,OAAO,QAAQ;GAE5C,MAAM,OAAO,CAACC,aAAAA,eAAe,IAAI,gBAAgB;IAC/C,MAAM,OAAOC,aAAAA,qBAAqB,WAAW;IAC7C,MAAM,oBAAoB;KACxB,MAAM,QAAQ,KAAK,YAAY,CAAC,CAAC;KACjC,IAAI,UAAU,YAAY,UAAU,YAAY,WAAW,IAAI,gBAAgB;UAC1E,WAAW;KAChB,aAAa,OAAO,QAAQ;IAC9B;IACA,MAAM,cAAc,KAAK,kBAAkB,WAAW;IACtD,YAAY;IACZ,aAAa;KACX,YAAY;KACZ,WAAW;KACX,aAAa,OAAO,QAAQ;IAC9B;GACF,CAAC;GACD,aAAa;IACX,WAAW;IACX,IAAI,YAAY,SAAS;KACvB,UAAU,KAAA;KACV,gBAAgB,CAAC;IACnB;IACA,aAAa,QAAQ;GACvB;EACF,CAAC;CACH;CACA,OAAO;EACL,UAAU,CAAC,IAAI;EAEf,UAAoB;GAClB,QAAQ;EACV;EACA,aAAa,MAAc,QAAmC;GAC5D,QAAQ,eAAe;GACvB,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,IAAI,GACtE,MAAM,IAAI,MAAM,cAAc,KAAK,6BAA6B;GAClE,OAAO,OAAO,eAAe;GAC7B,OAAO,SAAS,YAAY,IAAI,CAAC,QAAQ,OAAO,MAAM,CAAC,IAAI,OAAO;EACpE;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/piHelpTools/index.ts"],"mappings":";;;wBAWgB,qBAAqB,gBAAgB;EAkDjD,YAAQ,SAzCa;EA2CrB,QAAO;EAGP,aAAY,cAAa,SAAW,cAAc"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/piHelpTools/index.ts"],"mappings":";;;wBAOgB,qBAAqB,gBAAgB;EAkDjD,YAAQ,SAzCa;EA2CrB,QAAO;EAGP,aAAY,cAAa,SAAW,cAAc"}
@@ -1,5 +1,5 @@
1
- import { DOOM_TOOL_SURFACE_SERVICE, requireDoomToolSurface } from "../../schemas/toolSurface.mjs";
2
- import { DOOM_HELP_SERVICE, DOOM_HELP_WHEN, requireDoomHelpService } from "../../schemas/help.mjs";
1
+ import { PO_TOOL_SURFACE_SERVICE, requirePoToolSurface } from "../../schemas/toolSurface.mjs";
2
+ import { PO_HELP_SERVICE, PO_HELP_WHEN, requirePoHelpService } from "../../schemas/help.mjs";
3
3
  //#region src/services/piHelpTools/index.ts
4
4
  /** Keep package-owned Pi tools closed when Help or its session provider is absent. */
5
5
  function createPiHelpToolGate(source, names) {
@@ -12,19 +12,19 @@ function createPiHelpToolGate(source, names) {
12
12
  active = void 0;
13
13
  };
14
14
  const bind = (context) => {
15
- context.inject([DOOM_TOOL_SURFACE_SERVICE], (child) => {
16
- const current = requireDoomToolSurface(child);
15
+ context.inject([PO_TOOL_SURFACE_SERVICE], (child) => {
16
+ const current = requirePoToolSurface(child);
17
17
  surface = current;
18
18
  const restrict = (incoming) => active ? incoming : incoming.filter((name) => !controlled.has(name));
19
19
  const registration = current.register({
20
20
  source,
21
21
  controlledTools: [...controlled],
22
- attribution: DOOM_HELP_WHEN.attribution,
22
+ attribution: PO_HELP_WHEN.attribution,
23
23
  restrict
24
24
  });
25
25
  refresh = () => registration.update(restrict);
26
- child.inject([DOOM_HELP_SERVICE], (helpContext) => {
27
- const help = requireDoomHelpService(helpContext);
26
+ child.inject([PO_HELP_SERVICE], (helpContext) => {
27
+ const help = requirePoHelpService(helpContext);
28
28
  const synchronize = () => {
29
29
  const state = help.getSnapshot().activation;
30
30
  if (state === "active" || state === "degraded") active ??= new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/piHelpTools/index.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport { DOOM_HELP_SERVICE, requireDoomHelpService } from '../../schemas/help';\nimport { DOOM_HELP_WHEN } from '../../schemas/help';\nimport {\n DOOM_TOOL_SURFACE_SERVICE,\n requireDoomToolSurface,\n type DoomToolSurfaceService,\n} from '../../schemas/toolSurface';\n\n/** Keep package-owned Pi tools closed when Help or its session provider is absent. */\nexport function createPiHelpToolGate(source: string, names: readonly string[]) {\n const controlled = new Set(names);\n let active: AbortController | undefined;\n let surface: DoomToolSurfaceService | undefined;\n let refresh = () => {};\n const deactivate = () => {\n active?.abort(new Error('Help tools are no longer active.'));\n active = undefined;\n };\n const bind = (context: Context): void => {\n context.inject([DOOM_TOOL_SURFACE_SERVICE], (child) => {\n const current = requireDoomToolSurface(child);\n surface = current;\n const restrict = (incoming: readonly string[]) =>\n active ? incoming : incoming.filter((name) => !controlled.has(name));\n const registration = current.register({\n source,\n controlledTools: [...controlled],\n attribution: DOOM_HELP_WHEN.attribution,\n restrict,\n });\n refresh = () => registration.update(restrict);\n // This restriction outlives the Help binding. Removing Help must not restore its tools.\n child.inject([DOOM_HELP_SERVICE], (helpContext) => {\n const help = requireDoomHelpService(helpContext);\n const synchronize = () => {\n const state = help.getSnapshot().activation;\n if (state === 'active' || state === 'degraded') active ??= new AbortController();\n else deactivate();\n registration.update(restrict);\n };\n const unsubscribe = help.subscribeSnapshot(synchronize);\n synchronize();\n return () => {\n unsubscribe();\n deactivate();\n registration.update(restrict);\n };\n });\n return () => {\n deactivate();\n if (surface === current) {\n surface = undefined;\n refresh = () => {};\n }\n registration.dispose();\n };\n });\n };\n return {\n services: [bind],\n // Native tools have been registered by this point, including a late package mount.\n onStart(this: void) {\n refresh();\n },\n assertActive(name: string, signal?: AbortSignal): AbortSignal {\n signal?.throwIfAborted();\n if (!controlled.has(name) || !active || !surface?.active().includes(name))\n throw new Error(`Help tool '${name}' is inactive or restricted.`);\n active.signal.throwIfAborted();\n return signal ? AbortSignal.any([signal, active.signal]) : active.signal;\n },\n };\n}\n"],"mappings":";;;;AAWA,SAAgB,qBAAqB,QAAgB,OAA0B;CAC7E,MAAM,aAAa,IAAI,IAAI,KAAK;CAChC,IAAI;CACJ,IAAI;CACJ,IAAI,gBAAgB,CAAC;CACrB,MAAM,mBAAmB;EACvB,QAAQ,sBAAM,IAAI,MAAM,kCAAkC,CAAC;EAC3D,SAAS,KAAA;CACX;CACA,MAAM,QAAQ,YAA2B;EACvC,QAAQ,OAAO,CAAC,yBAAyB,IAAI,UAAU;GACrD,MAAM,UAAU,uBAAuB,KAAK;GAC5C,UAAU;GACV,MAAM,YAAY,aAChB,SAAS,WAAW,SAAS,QAAQ,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;GACrE,MAAM,eAAe,QAAQ,SAAS;IACpC;IACA,iBAAiB,CAAC,GAAG,UAAU;IAC/B,aAAa,eAAe;IAC5B;GACF,CAAC;GACD,gBAAgB,aAAa,OAAO,QAAQ;GAE5C,MAAM,OAAO,CAAC,iBAAiB,IAAI,gBAAgB;IACjD,MAAM,OAAO,uBAAuB,WAAW;IAC/C,MAAM,oBAAoB;KACxB,MAAM,QAAQ,KAAK,YAAY,CAAC,CAAC;KACjC,IAAI,UAAU,YAAY,UAAU,YAAY,WAAW,IAAI,gBAAgB;UAC1E,WAAW;KAChB,aAAa,OAAO,QAAQ;IAC9B;IACA,MAAM,cAAc,KAAK,kBAAkB,WAAW;IACtD,YAAY;IACZ,aAAa;KACX,YAAY;KACZ,WAAW;KACX,aAAa,OAAO,QAAQ;IAC9B;GACF,CAAC;GACD,aAAa;IACX,WAAW;IACX,IAAI,YAAY,SAAS;KACvB,UAAU,KAAA;KACV,gBAAgB,CAAC;IACnB;IACA,aAAa,QAAQ;GACvB;EACF,CAAC;CACH;CACA,OAAO;EACL,UAAU,CAAC,IAAI;EAEf,UAAoB;GAClB,QAAQ;EACV;EACA,aAAa,MAAc,QAAmC;GAC5D,QAAQ,eAAe;GACvB,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,IAAI,GACtE,MAAM,IAAI,MAAM,cAAc,KAAK,6BAA6B;GAClE,OAAO,OAAO,eAAe;GAC7B,OAAO,SAAS,YAAY,IAAI,CAAC,QAAQ,OAAO,MAAM,CAAC,IAAI,OAAO;EACpE;CACF;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/piHelpTools/index.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\n\nimport { PO_HELP_SERVICE, requirePoHelpService } from '../../schemas/help';\nimport { PO_HELP_WHEN } from '../../schemas/help';\nimport { PO_TOOL_SURFACE_SERVICE, requirePoToolSurface, type PoToolSurfaceService } from '../../schemas/toolSurface';\n\n/** Keep package-owned Pi tools closed when Help or its session provider is absent. */\nexport function createPiHelpToolGate(source: string, names: readonly string[]) {\n const controlled = new Set(names);\n let active: AbortController | undefined;\n let surface: PoToolSurfaceService | undefined;\n let refresh = () => {};\n const deactivate = () => {\n active?.abort(new Error('Help tools are no longer active.'));\n active = undefined;\n };\n const bind = (context: Context): void => {\n context.inject([PO_TOOL_SURFACE_SERVICE], (child) => {\n const current = requirePoToolSurface(child);\n surface = current;\n const restrict = (incoming: readonly string[]) =>\n active ? incoming : incoming.filter((name) => !controlled.has(name));\n const registration = current.register({\n source,\n controlledTools: [...controlled],\n attribution: PO_HELP_WHEN.attribution,\n restrict,\n });\n refresh = () => registration.update(restrict);\n // This restriction outlives the Help binding. Removing Help must not restore its tools.\n child.inject([PO_HELP_SERVICE], (helpContext) => {\n const help = requirePoHelpService(helpContext);\n const synchronize = () => {\n const state = help.getSnapshot().activation;\n if (state === 'active' || state === 'degraded') active ??= new AbortController();\n else deactivate();\n registration.update(restrict);\n };\n const unsubscribe = help.subscribeSnapshot(synchronize);\n synchronize();\n return () => {\n unsubscribe();\n deactivate();\n registration.update(restrict);\n };\n });\n return () => {\n deactivate();\n if (surface === current) {\n surface = undefined;\n refresh = () => {};\n }\n registration.dispose();\n };\n });\n };\n return {\n services: [bind],\n // Native tools have been registered by this point, including a late package mount.\n onStart(this: void) {\n refresh();\n },\n assertActive(name: string, signal?: AbortSignal): AbortSignal {\n signal?.throwIfAborted();\n if (!controlled.has(name) || !active || !surface?.active().includes(name))\n throw new Error(`Help tool '${name}' is inactive or restricted.`);\n active.signal.throwIfAborted();\n return signal ? AbortSignal.any([signal, active.signal]) : active.signal;\n },\n };\n}\n"],"mappings":";;;;AAOA,SAAgB,qBAAqB,QAAgB,OAA0B;CAC7E,MAAM,aAAa,IAAI,IAAI,KAAK;CAChC,IAAI;CACJ,IAAI;CACJ,IAAI,gBAAgB,CAAC;CACrB,MAAM,mBAAmB;EACvB,QAAQ,sBAAM,IAAI,MAAM,kCAAkC,CAAC;EAC3D,SAAS,KAAA;CACX;CACA,MAAM,QAAQ,YAA2B;EACvC,QAAQ,OAAO,CAAC,uBAAuB,IAAI,UAAU;GACnD,MAAM,UAAU,qBAAqB,KAAK;GAC1C,UAAU;GACV,MAAM,YAAY,aAChB,SAAS,WAAW,SAAS,QAAQ,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;GACrE,MAAM,eAAe,QAAQ,SAAS;IACpC;IACA,iBAAiB,CAAC,GAAG,UAAU;IAC/B,aAAa,aAAa;IAC1B;GACF,CAAC;GACD,gBAAgB,aAAa,OAAO,QAAQ;GAE5C,MAAM,OAAO,CAAC,eAAe,IAAI,gBAAgB;IAC/C,MAAM,OAAO,qBAAqB,WAAW;IAC7C,MAAM,oBAAoB;KACxB,MAAM,QAAQ,KAAK,YAAY,CAAC,CAAC;KACjC,IAAI,UAAU,YAAY,UAAU,YAAY,WAAW,IAAI,gBAAgB;UAC1E,WAAW;KAChB,aAAa,OAAO,QAAQ;IAC9B;IACA,MAAM,cAAc,KAAK,kBAAkB,WAAW;IACtD,YAAY;IACZ,aAAa;KACX,YAAY;KACZ,WAAW;KACX,aAAa,OAAO,QAAQ;IAC9B;GACF,CAAC;GACD,aAAa;IACX,WAAW;IACX,IAAI,YAAY,SAAS;KACvB,UAAU,KAAA;KACV,gBAAgB,CAAC;IACnB;IACA,aAAa,QAAQ;GACvB;EACF,CAAC;CACH;CACA,OAAO;EACL,UAAU,CAAC,IAAI;EAEf,UAAoB;GAClB,QAAQ;EACV;EACA,aAAa,MAAc,QAAmC;GAC5D,QAAQ,eAAe;GACvB,IAAI,CAAC,WAAW,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,OAAO,CAAC,CAAC,SAAS,IAAI,GACtE,MAAM,IAAI,MAAM,cAAc,KAAK,6BAA6B;GAClE,OAAO,OAAO,eAAe;GAC7B,OAAO,SAAS,YAAY,IAAI,CAAC,QAAQ,OAAO,MAAM,CAAC,IAAI,OAAO;EACpE;CACF;AACF"}
@@ -0,0 +1,106 @@
1
+ //#region src/services/piMessages/index.ts
2
+ const COMPACTION_SUMMARY_PREFIX = "The conversation history before this point was compacted into the following summary:\n\n<summary>\n";
3
+ const COMPACTION_SUMMARY_SUFFIX = "\n</summary>";
4
+ const BRANCH_SUMMARY_PREFIX = "The following is a summary of a branch that this conversation came back from:\n\n<summary>\n";
5
+ const BRANCH_SUMMARY_SUFFIX = "</summary>";
6
+ function bashExecutionToText(msg) {
7
+ let text = `Ran \`${msg.command}\`\n`;
8
+ text += msg.output ? `\`\`\`\n${msg.output}\n\`\`\`` : "(no output)";
9
+ if (msg.cancelled) text += "\n\n(command cancelled)";
10
+ else if (msg.exitCode !== null && msg.exitCode !== void 0 && msg.exitCode !== 0) text += `\n\nCommand exited with code ${msg.exitCode}`;
11
+ if (msg.truncated && msg.fullOutputPath) text += `\n\n[Output truncated. Full output: ${msg.fullOutputPath}]`;
12
+ return text;
13
+ }
14
+ /** Transform AgentMessages, including Pi's custom roles, to LLM-compatible Messages. */
15
+ function convertToLlm(messages) {
16
+ return messages.map((m) => {
17
+ switch (m.role) {
18
+ case "bashExecution":
19
+ if (m.excludeFromContext) return void 0;
20
+ return {
21
+ role: "user",
22
+ content: [{
23
+ type: "text",
24
+ text: bashExecutionToText(m)
25
+ }],
26
+ timestamp: m.timestamp
27
+ };
28
+ case "custom": return {
29
+ role: "user",
30
+ content: typeof m.content === "string" ? [{
31
+ type: "text",
32
+ text: m.content
33
+ }] : m.content,
34
+ timestamp: m.timestamp
35
+ };
36
+ case "branchSummary": return {
37
+ role: "user",
38
+ content: [{
39
+ type: "text",
40
+ text: BRANCH_SUMMARY_PREFIX + m.summary + BRANCH_SUMMARY_SUFFIX
41
+ }],
42
+ timestamp: m.timestamp
43
+ };
44
+ case "compactionSummary": return {
45
+ role: "user",
46
+ content: [{
47
+ type: "text",
48
+ text: COMPACTION_SUMMARY_PREFIX + m.summary + COMPACTION_SUMMARY_SUFFIX
49
+ }],
50
+ timestamp: m.timestamp
51
+ };
52
+ case "system":
53
+ case "user":
54
+ case "assistant":
55
+ case "toolResult": return m;
56
+ default: return;
57
+ }
58
+ }).filter((m) => m !== void 0);
59
+ }
60
+ /**
61
+ * Project one selected session entry into LLM/runtime messages.
62
+ * Plain custom entries are display/state entries and do not participate in context.
63
+ */
64
+ function sessionEntryToContextMessages(entry) {
65
+ if (entry.type === "message") {
66
+ const message = entry.message;
67
+ if (message.role === "system" && message.content == null) return [{
68
+ ...message,
69
+ content: ""
70
+ }];
71
+ if ((message.role === "user" || message.role === "assistant" || message.role === "toolResult") && message.content == null) return [{
72
+ ...message,
73
+ content: []
74
+ }];
75
+ return [message];
76
+ }
77
+ if (entry.type === "custom_message") return [{
78
+ role: "custom",
79
+ customType: entry.customType,
80
+ content: entry.content ?? [],
81
+ display: entry.display,
82
+ details: entry.details,
83
+ timestamp: new Date(entry.timestamp).getTime()
84
+ }];
85
+ if (entry.type === "branch_summary" && entry.summary) return [{
86
+ role: "branchSummary",
87
+ summary: entry.summary,
88
+ fromId: entry.fromId,
89
+ timestamp: new Date(entry.timestamp).getTime()
90
+ }];
91
+ if (entry.type === "compaction") {
92
+ const summary = {
93
+ role: "compactionSummary",
94
+ summary: entry.summary,
95
+ tokensBefore: entry.tokensBefore,
96
+ timestamp: new Date(entry.timestamp).getTime()
97
+ };
98
+ return entry.systemMessage ? [entry.systemMessage, summary] : [summary];
99
+ }
100
+ return [];
101
+ }
102
+ //#endregion
103
+ exports.convertToLlm = convertToLlm;
104
+ exports.sessionEntryToContextMessages = sessionEntryToContextMessages;
105
+
106
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/piMessages/index.ts"],"sourcesContent":["/**\n * Pure message projections vendored from `@earendil-works/pi-coding-agent`, whose package\n * root also loads its filesystem, terminal and CLI modules, so the edge cannot import it.\n *\n * Copied from pi-coding-agent@1.3.0 `dist/core/messages.js` (convertToLlm and its helpers) and\n * `dist/core/session-manager.js` (sessionEntryToContextMessages, CURRENT_SESSION_VERSION).\n * Re-diff both files on every pi-coding-agent upgrade; `tests/.../piMessages.test.ts` compares\n * these against the upstream exports on fixture entries and fails on drift.\n */\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { Message } from '@earendil-works/pi-ai';\nimport type { SessionEntry } from '@earendil-works/pi-coding-agent';\n\nexport const CURRENT_SESSION_VERSION = 3;\n\nconst COMPACTION_SUMMARY_PREFIX =\n 'The conversation history before this point was compacted into the following summary:\\n\\n<summary>\\n';\nconst COMPACTION_SUMMARY_SUFFIX = '\\n</summary>';\nconst BRANCH_SUMMARY_PREFIX =\n 'The following is a summary of a branch that this conversation came back from:\\n\\n<summary>\\n';\nconst BRANCH_SUMMARY_SUFFIX = '</summary>';\n\ntype BashExecutionMessage = Extract<AgentMessage, { role: 'bashExecution' }>;\n\nfunction bashExecutionToText(msg: BashExecutionMessage): string {\n let text = `Ran \\`${msg.command}\\`\\n`;\n text += msg.output ? `\\`\\`\\`\\n${msg.output}\\n\\`\\`\\`` : '(no output)';\n if (msg.cancelled) text += '\\n\\n(command cancelled)';\n else if (msg.exitCode !== null && msg.exitCode !== undefined && msg.exitCode !== 0)\n text += `\\n\\nCommand exited with code ${msg.exitCode}`;\n if (msg.truncated && msg.fullOutputPath) text += `\\n\\n[Output truncated. Full output: ${msg.fullOutputPath}]`;\n return text;\n}\n\n/** Transform AgentMessages, including Pi's custom roles, to LLM-compatible Messages. */\nexport function convertToLlm(messages: AgentMessage[]): Message[] {\n return messages\n .map((m): Message | undefined => {\n switch (m.role) {\n case 'bashExecution':\n if (m.excludeFromContext) return undefined;\n return { role: 'user', content: [{ type: 'text', text: bashExecutionToText(m) }], timestamp: m.timestamp };\n case 'custom':\n return {\n role: 'user',\n content: typeof m.content === 'string' ? [{ type: 'text', text: m.content }] : m.content,\n timestamp: m.timestamp,\n };\n case 'branchSummary':\n return {\n role: 'user',\n content: [{ type: 'text', text: BRANCH_SUMMARY_PREFIX + m.summary + BRANCH_SUMMARY_SUFFIX }],\n timestamp: m.timestamp,\n };\n case 'compactionSummary':\n return {\n role: 'user',\n content: [{ type: 'text', text: COMPACTION_SUMMARY_PREFIX + m.summary + COMPACTION_SUMMARY_SUFFIX }],\n timestamp: m.timestamp,\n };\n case 'system':\n case 'user':\n case 'assistant':\n case 'toolResult':\n return m;\n default:\n return undefined;\n }\n })\n .filter((m): m is Message => m !== undefined);\n}\n\n/**\n * Project one selected session entry into LLM/runtime messages.\n * Plain custom entries are display/state entries and do not participate in context.\n */\nexport function sessionEntryToContextMessages(entry: SessionEntry): AgentMessage[] {\n if (entry.type === 'message') {\n const message = entry.message;\n // Session files are parsed without validation; old versions, forks, or\n // hand-edited files can contain messages with null/missing content.\n if (message.role === 'system' && message.content == null) return [{ ...message, content: '' }];\n if (\n (message.role === 'user' || message.role === 'assistant' || message.role === 'toolResult') &&\n message.content == null\n )\n return [{ ...message, content: [] }];\n return [message];\n }\n if (entry.type === 'custom_message')\n return [\n {\n role: 'custom',\n customType: entry.customType,\n content: entry.content ?? [],\n display: entry.display,\n details: entry.details,\n timestamp: new Date(entry.timestamp).getTime(),\n },\n ];\n if (entry.type === 'branch_summary' && entry.summary)\n return [\n {\n role: 'branchSummary',\n summary: entry.summary,\n fromId: entry.fromId,\n timestamp: new Date(entry.timestamp).getTime(),\n },\n ];\n if (entry.type === 'compaction') {\n const summary: AgentMessage = {\n role: 'compactionSummary',\n summary: entry.summary,\n tokensBefore: entry.tokensBefore,\n timestamp: new Date(entry.timestamp).getTime(),\n };\n return entry.systemMessage ? [entry.systemMessage, summary] : [summary];\n }\n return [];\n}\n"],"mappings":";AAeA,MAAM,4BACJ;AACF,MAAM,4BAA4B;AAClC,MAAM,wBACJ;AACF,MAAM,wBAAwB;AAI9B,SAAS,oBAAoB,KAAmC;CAC9D,IAAI,OAAO,SAAS,IAAI,QAAQ;CAChC,QAAQ,IAAI,SAAS,WAAW,IAAI,OAAO,YAAY;CACvD,IAAI,IAAI,WAAW,QAAQ;MACtB,IAAI,IAAI,aAAa,QAAQ,IAAI,aAAa,KAAA,KAAa,IAAI,aAAa,GAC/E,QAAQ,gCAAgC,IAAI;CAC9C,IAAI,IAAI,aAAa,IAAI,gBAAgB,QAAQ,uCAAuC,IAAI,eAAe;CAC3G,OAAO;AACT;;AAGA,SAAgB,aAAa,UAAqC;CAChE,OAAO,SACJ,KAAK,MAA2B;EAC/B,QAAQ,EAAE,MAAV;GACE,KAAK;IACH,IAAI,EAAE,oBAAoB,OAAO,KAAA;IACjC,OAAO;KAAE,MAAM;KAAQ,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,oBAAoB,CAAC;KAAE,CAAC;KAAG,WAAW,EAAE;IAAU;GAC3G,KAAK,UACH,OAAO;IACL,MAAM;IACN,SAAS,OAAO,EAAE,YAAY,WAAW,CAAC;KAAE,MAAM;KAAQ,MAAM,EAAE;IAAQ,CAAC,IAAI,EAAE;IACjF,WAAW,EAAE;GACf;GACF,KAAK,iBACH,OAAO;IACL,MAAM;IACN,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM,wBAAwB,EAAE,UAAU;IAAsB,CAAC;IAC3F,WAAW,EAAE;GACf;GACF,KAAK,qBACH,OAAO;IACL,MAAM;IACN,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM,4BAA4B,EAAE,UAAU;IAA0B,CAAC;IACnG,WAAW,EAAE;GACf;GACF,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,cACH,OAAO;GACT,SACE;EACJ;CACF,CAAC,CAAC,CACD,QAAQ,MAAoB,MAAM,KAAA,CAAS;AAChD;;;;;AAMA,SAAgB,8BAA8B,OAAqC;CACjF,IAAI,MAAM,SAAS,WAAW;EAC5B,MAAM,UAAU,MAAM;EAGtB,IAAI,QAAQ,SAAS,YAAY,QAAQ,WAAW,MAAM,OAAO,CAAC;GAAE,GAAG;GAAS,SAAS;EAAG,CAAC;EAC7F,KACG,QAAQ,SAAS,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS,iBAC7E,QAAQ,WAAW,MAEnB,OAAO,CAAC;GAAE,GAAG;GAAS,SAAS,CAAC;EAAE,CAAC;EACrC,OAAO,CAAC,OAAO;CACjB;CACA,IAAI,MAAM,SAAS,kBACjB,OAAO,CACL;EACE,MAAM;EACN,YAAY,MAAM;EAClB,SAAS,MAAM,WAAW,CAAC;EAC3B,SAAS,MAAM;EACf,SAAS,MAAM;EACf,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;CAC/C,CACF;CACF,IAAI,MAAM,SAAS,oBAAoB,MAAM,SAC3C,OAAO,CACL;EACE,MAAM;EACN,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;CAC/C,CACF;CACF,IAAI,MAAM,SAAS,cAAc;EAC/B,MAAM,UAAwB;GAC5B,MAAM;GACN,SAAS,MAAM;GACf,cAAc,MAAM;GACpB,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;EAC/C;EACA,OAAO,MAAM,gBAAgB,CAAC,MAAM,eAAe,OAAO,IAAI,CAAC,OAAO;CACxE;CACA,OAAO,CAAC;AACV"}
@@ -0,0 +1,105 @@
1
+ //#region src/services/piMessages/index.ts
2
+ const COMPACTION_SUMMARY_PREFIX = "The conversation history before this point was compacted into the following summary:\n\n<summary>\n";
3
+ const COMPACTION_SUMMARY_SUFFIX = "\n</summary>";
4
+ const BRANCH_SUMMARY_PREFIX = "The following is a summary of a branch that this conversation came back from:\n\n<summary>\n";
5
+ const BRANCH_SUMMARY_SUFFIX = "</summary>";
6
+ function bashExecutionToText(msg) {
7
+ let text = `Ran \`${msg.command}\`\n`;
8
+ text += msg.output ? `\`\`\`\n${msg.output}\n\`\`\`` : "(no output)";
9
+ if (msg.cancelled) text += "\n\n(command cancelled)";
10
+ else if (msg.exitCode !== null && msg.exitCode !== void 0 && msg.exitCode !== 0) text += `\n\nCommand exited with code ${msg.exitCode}`;
11
+ if (msg.truncated && msg.fullOutputPath) text += `\n\n[Output truncated. Full output: ${msg.fullOutputPath}]`;
12
+ return text;
13
+ }
14
+ /** Transform AgentMessages, including Pi's custom roles, to LLM-compatible Messages. */
15
+ function convertToLlm(messages) {
16
+ return messages.map((m) => {
17
+ switch (m.role) {
18
+ case "bashExecution":
19
+ if (m.excludeFromContext) return void 0;
20
+ return {
21
+ role: "user",
22
+ content: [{
23
+ type: "text",
24
+ text: bashExecutionToText(m)
25
+ }],
26
+ timestamp: m.timestamp
27
+ };
28
+ case "custom": return {
29
+ role: "user",
30
+ content: typeof m.content === "string" ? [{
31
+ type: "text",
32
+ text: m.content
33
+ }] : m.content,
34
+ timestamp: m.timestamp
35
+ };
36
+ case "branchSummary": return {
37
+ role: "user",
38
+ content: [{
39
+ type: "text",
40
+ text: BRANCH_SUMMARY_PREFIX + m.summary + BRANCH_SUMMARY_SUFFIX
41
+ }],
42
+ timestamp: m.timestamp
43
+ };
44
+ case "compactionSummary": return {
45
+ role: "user",
46
+ content: [{
47
+ type: "text",
48
+ text: COMPACTION_SUMMARY_PREFIX + m.summary + COMPACTION_SUMMARY_SUFFIX
49
+ }],
50
+ timestamp: m.timestamp
51
+ };
52
+ case "system":
53
+ case "user":
54
+ case "assistant":
55
+ case "toolResult": return m;
56
+ default: return;
57
+ }
58
+ }).filter((m) => m !== void 0);
59
+ }
60
+ /**
61
+ * Project one selected session entry into LLM/runtime messages.
62
+ * Plain custom entries are display/state entries and do not participate in context.
63
+ */
64
+ function sessionEntryToContextMessages(entry) {
65
+ if (entry.type === "message") {
66
+ const message = entry.message;
67
+ if (message.role === "system" && message.content == null) return [{
68
+ ...message,
69
+ content: ""
70
+ }];
71
+ if ((message.role === "user" || message.role === "assistant" || message.role === "toolResult") && message.content == null) return [{
72
+ ...message,
73
+ content: []
74
+ }];
75
+ return [message];
76
+ }
77
+ if (entry.type === "custom_message") return [{
78
+ role: "custom",
79
+ customType: entry.customType,
80
+ content: entry.content ?? [],
81
+ display: entry.display,
82
+ details: entry.details,
83
+ timestamp: new Date(entry.timestamp).getTime()
84
+ }];
85
+ if (entry.type === "branch_summary" && entry.summary) return [{
86
+ role: "branchSummary",
87
+ summary: entry.summary,
88
+ fromId: entry.fromId,
89
+ timestamp: new Date(entry.timestamp).getTime()
90
+ }];
91
+ if (entry.type === "compaction") {
92
+ const summary = {
93
+ role: "compactionSummary",
94
+ summary: entry.summary,
95
+ tokensBefore: entry.tokensBefore,
96
+ timestamp: new Date(entry.timestamp).getTime()
97
+ };
98
+ return entry.systemMessage ? [entry.systemMessage, summary] : [summary];
99
+ }
100
+ return [];
101
+ }
102
+ //#endregion
103
+ export { convertToLlm, sessionEntryToContextMessages };
104
+
105
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/piMessages/index.ts"],"sourcesContent":["/**\n * Pure message projections vendored from `@earendil-works/pi-coding-agent`, whose package\n * root also loads its filesystem, terminal and CLI modules, so the edge cannot import it.\n *\n * Copied from pi-coding-agent@1.3.0 `dist/core/messages.js` (convertToLlm and its helpers) and\n * `dist/core/session-manager.js` (sessionEntryToContextMessages, CURRENT_SESSION_VERSION).\n * Re-diff both files on every pi-coding-agent upgrade; `tests/.../piMessages.test.ts` compares\n * these against the upstream exports on fixture entries and fails on drift.\n */\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { Message } from '@earendil-works/pi-ai';\nimport type { SessionEntry } from '@earendil-works/pi-coding-agent';\n\nexport const CURRENT_SESSION_VERSION = 3;\n\nconst COMPACTION_SUMMARY_PREFIX =\n 'The conversation history before this point was compacted into the following summary:\\n\\n<summary>\\n';\nconst COMPACTION_SUMMARY_SUFFIX = '\\n</summary>';\nconst BRANCH_SUMMARY_PREFIX =\n 'The following is a summary of a branch that this conversation came back from:\\n\\n<summary>\\n';\nconst BRANCH_SUMMARY_SUFFIX = '</summary>';\n\ntype BashExecutionMessage = Extract<AgentMessage, { role: 'bashExecution' }>;\n\nfunction bashExecutionToText(msg: BashExecutionMessage): string {\n let text = `Ran \\`${msg.command}\\`\\n`;\n text += msg.output ? `\\`\\`\\`\\n${msg.output}\\n\\`\\`\\`` : '(no output)';\n if (msg.cancelled) text += '\\n\\n(command cancelled)';\n else if (msg.exitCode !== null && msg.exitCode !== undefined && msg.exitCode !== 0)\n text += `\\n\\nCommand exited with code ${msg.exitCode}`;\n if (msg.truncated && msg.fullOutputPath) text += `\\n\\n[Output truncated. Full output: ${msg.fullOutputPath}]`;\n return text;\n}\n\n/** Transform AgentMessages, including Pi's custom roles, to LLM-compatible Messages. */\nexport function convertToLlm(messages: AgentMessage[]): Message[] {\n return messages\n .map((m): Message | undefined => {\n switch (m.role) {\n case 'bashExecution':\n if (m.excludeFromContext) return undefined;\n return { role: 'user', content: [{ type: 'text', text: bashExecutionToText(m) }], timestamp: m.timestamp };\n case 'custom':\n return {\n role: 'user',\n content: typeof m.content === 'string' ? [{ type: 'text', text: m.content }] : m.content,\n timestamp: m.timestamp,\n };\n case 'branchSummary':\n return {\n role: 'user',\n content: [{ type: 'text', text: BRANCH_SUMMARY_PREFIX + m.summary + BRANCH_SUMMARY_SUFFIX }],\n timestamp: m.timestamp,\n };\n case 'compactionSummary':\n return {\n role: 'user',\n content: [{ type: 'text', text: COMPACTION_SUMMARY_PREFIX + m.summary + COMPACTION_SUMMARY_SUFFIX }],\n timestamp: m.timestamp,\n };\n case 'system':\n case 'user':\n case 'assistant':\n case 'toolResult':\n return m;\n default:\n return undefined;\n }\n })\n .filter((m): m is Message => m !== undefined);\n}\n\n/**\n * Project one selected session entry into LLM/runtime messages.\n * Plain custom entries are display/state entries and do not participate in context.\n */\nexport function sessionEntryToContextMessages(entry: SessionEntry): AgentMessage[] {\n if (entry.type === 'message') {\n const message = entry.message;\n // Session files are parsed without validation; old versions, forks, or\n // hand-edited files can contain messages with null/missing content.\n if (message.role === 'system' && message.content == null) return [{ ...message, content: '' }];\n if (\n (message.role === 'user' || message.role === 'assistant' || message.role === 'toolResult') &&\n message.content == null\n )\n return [{ ...message, content: [] }];\n return [message];\n }\n if (entry.type === 'custom_message')\n return [\n {\n role: 'custom',\n customType: entry.customType,\n content: entry.content ?? [],\n display: entry.display,\n details: entry.details,\n timestamp: new Date(entry.timestamp).getTime(),\n },\n ];\n if (entry.type === 'branch_summary' && entry.summary)\n return [\n {\n role: 'branchSummary',\n summary: entry.summary,\n fromId: entry.fromId,\n timestamp: new Date(entry.timestamp).getTime(),\n },\n ];\n if (entry.type === 'compaction') {\n const summary: AgentMessage = {\n role: 'compactionSummary',\n summary: entry.summary,\n tokensBefore: entry.tokensBefore,\n timestamp: new Date(entry.timestamp).getTime(),\n };\n return entry.systemMessage ? [entry.systemMessage, summary] : [summary];\n }\n return [];\n}\n"],"mappings":";AAeA,MAAM,4BACJ;AACF,MAAM,4BAA4B;AAClC,MAAM,wBACJ;AACF,MAAM,wBAAwB;AAI9B,SAAS,oBAAoB,KAAmC;CAC9D,IAAI,OAAO,SAAS,IAAI,QAAQ;CAChC,QAAQ,IAAI,SAAS,WAAW,IAAI,OAAO,YAAY;CACvD,IAAI,IAAI,WAAW,QAAQ;MACtB,IAAI,IAAI,aAAa,QAAQ,IAAI,aAAa,KAAA,KAAa,IAAI,aAAa,GAC/E,QAAQ,gCAAgC,IAAI;CAC9C,IAAI,IAAI,aAAa,IAAI,gBAAgB,QAAQ,uCAAuC,IAAI,eAAe;CAC3G,OAAO;AACT;;AAGA,SAAgB,aAAa,UAAqC;CAChE,OAAO,SACJ,KAAK,MAA2B;EAC/B,QAAQ,EAAE,MAAV;GACE,KAAK;IACH,IAAI,EAAE,oBAAoB,OAAO,KAAA;IACjC,OAAO;KAAE,MAAM;KAAQ,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM,oBAAoB,CAAC;KAAE,CAAC;KAAG,WAAW,EAAE;IAAU;GAC3G,KAAK,UACH,OAAO;IACL,MAAM;IACN,SAAS,OAAO,EAAE,YAAY,WAAW,CAAC;KAAE,MAAM;KAAQ,MAAM,EAAE;IAAQ,CAAC,IAAI,EAAE;IACjF,WAAW,EAAE;GACf;GACF,KAAK,iBACH,OAAO;IACL,MAAM;IACN,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM,wBAAwB,EAAE,UAAU;IAAsB,CAAC;IAC3F,WAAW,EAAE;GACf;GACF,KAAK,qBACH,OAAO;IACL,MAAM;IACN,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM,4BAA4B,EAAE,UAAU;IAA0B,CAAC;IACnG,WAAW,EAAE;GACf;GACF,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK,cACH,OAAO;GACT,SACE;EACJ;CACF,CAAC,CAAC,CACD,QAAQ,MAAoB,MAAM,KAAA,CAAS;AAChD;;;;;AAMA,SAAgB,8BAA8B,OAAqC;CACjF,IAAI,MAAM,SAAS,WAAW;EAC5B,MAAM,UAAU,MAAM;EAGtB,IAAI,QAAQ,SAAS,YAAY,QAAQ,WAAW,MAAM,OAAO,CAAC;GAAE,GAAG;GAAS,SAAS;EAAG,CAAC;EAC7F,KACG,QAAQ,SAAS,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS,iBAC7E,QAAQ,WAAW,MAEnB,OAAO,CAAC;GAAE,GAAG;GAAS,SAAS,CAAC;EAAE,CAAC;EACrC,OAAO,CAAC,OAAO;CACjB;CACA,IAAI,MAAM,SAAS,kBACjB,OAAO,CACL;EACE,MAAM;EACN,YAAY,MAAM;EAClB,SAAS,MAAM,WAAW,CAAC;EAC3B,SAAS,MAAM;EACf,SAAS,MAAM;EACf,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;CAC/C,CACF;CACF,IAAI,MAAM,SAAS,oBAAoB,MAAM,SAC3C,OAAO,CACL;EACE,MAAM;EACN,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;CAC/C,CACF;CACF,IAAI,MAAM,SAAS,cAAc;EAC/B,MAAM,UAAwB;GAC5B,MAAM;GACN,SAAS,MAAM;GACf,cAAc,MAAM;GACpB,WAAW,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,QAAQ;EAC/C;EACA,OAAO,MAAM,gBAAgB,CAAC,MAAM,eAAe,OAAO,IAAI,CAAC,OAAO;CACxE;CACA,OAAO,CAAC;AACV"}
@@ -1,4 +1,4 @@
1
- let _earendil_works_pi_coding_agent = require("@earendil-works/pi-coding-agent");
1
+ const require_index = require("../piMessages/index.cjs");
2
2
  function toIsoTimestamp(epochMilliseconds) {
3
3
  return new Date(epochMilliseconds).toISOString();
4
4
  }
@@ -6,7 +6,7 @@ function toIsoTimestamp(epochMilliseconds) {
6
6
  function toPiSessionHeader(input) {
7
7
  return {
8
8
  type: "session",
9
- version: _earendil_works_pi_coding_agent.CURRENT_SESSION_VERSION,
9
+ version: 3,
10
10
  id: input.id,
11
11
  timestamp: toIsoTimestamp(input.createdAt),
12
12
  cwd: input.cwd,
@@ -75,7 +75,7 @@ function toPiSessionEntry(entry, firstKeptEntryId) {
75
75
  function toPiSessionEntries(entries) {
76
76
  const converted = [];
77
77
  for (const entry of entries) {
78
- const next = toPiSessionEntry(entry, entry.type === "compaction" ? boundaryEntryId(converted, entry.retainedTail.length) : void 0);
78
+ const next = toPiSessionEntry(entry, entry.type === "compaction" ? entry.firstKeptEntryId ?? boundaryEntryId(converted, entry.retainedTail.length) : void 0);
79
79
  if (next !== void 0) converted.push(next);
80
80
  }
81
81
  return converted;
@@ -86,7 +86,7 @@ function boundaryEntryId(branchEntries, retainedCount) {
86
86
  const entry = branchEntries[index];
87
87
  if (entry === void 0) continue;
88
88
  if (remaining <= 0) return entry.id;
89
- remaining -= (0, _earendil_works_pi_coding_agent.sessionEntryToContextMessages)(entry).length;
89
+ remaining -= require_index.sessionEntryToContextMessages(entry).length;
90
90
  if (remaining <= 0) return entry.id;
91
91
  }
92
92
  return branchEntries[0]?.id;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["CURRENT_SESSION_VERSION","sessionEntryToContextMessages"],"sources":["../../../../src/services/piSessionEntries/index.ts"],"sourcesContent":["import {\n CURRENT_SESSION_VERSION,\n sessionEntryToContextMessages,\n type BranchSummaryEntry,\n type CompactionEntry,\n type CustomEntry,\n type FileEntry,\n type SessionEntry,\n type SessionEntryBase,\n type SessionHeader,\n type SessionMessageEntry,\n} from '@earendil-works/pi-coding-agent';\n\n/**\n * Boundary between the two session record formats Po carries.\n *\n * The headless server persists conversations through the pi-agent-core harness `Session`, whose\n * entries are numbered (`seq`) and timestamped in epoch milliseconds. Pi extensions are instead\n * handed a pi-coding-agent `SessionManager`, whose JSONL records carry no sequence and use ISO\n * timestamps, and whose entry union has five members the harness cannot express natively.\n *\n * This module is the only place that translation happens. It is pure: no IO, no SQLite, no file\n * access, just functions over arrays.\n */\nimport type { Entry } from '../../types/server/directHarnessRuntime';\n\n/** Reserved harness `customType` prefix for Pi entry types the harness has no native record for. */\nexport const PI_MIRRORED_ENTRY_PREFIX = 'pi.';\n\n/** Harness `SessionMetadata` carries no name, model, or thinking level, so the header is synthesized. */\nexport interface PiSessionHeaderInput {\n id: string;\n cwd: string;\n createdAt: number;\n parentSessionId?: string;\n}\n\nfunction toIsoTimestamp(epochMilliseconds: number): string {\n return new Date(epochMilliseconds).toISOString();\n}\n\n/** Synthesize the Pi session header the harness has no direct equivalent for. */\nexport function toPiSessionHeader(input: PiSessionHeaderInput): SessionHeader {\n return {\n type: 'session',\n version: CURRENT_SESSION_VERSION,\n id: input.id,\n timestamp: toIsoTimestamp(input.createdAt),\n cwd: input.cwd,\n ...(input.parentSessionId === undefined ? {} : { parentSession: input.parentSessionId }),\n };\n}\n\n/** Convert one harness entry. Compactions require their retained boundary when the tail is non-empty. */\nexport function toPiSessionEntry(entry: Entry, firstKeptEntryId?: string): SessionEntry | undefined {\n // `seq` is deliberately dropped: Pi orders entries by file position and the parent link.\n const base: Omit<SessionEntryBase, 'type'> = {\n id: entry.id,\n parentId: entry.parentId,\n timestamp: toIsoTimestamp(entry.timestamp),\n };\n switch (entry.type) {\n case 'message': {\n if (entry.message.role === 'custom') {\n return {\n ...base,\n type: 'custom_message',\n customType: entry.message.customType,\n content: entry.message.content,\n display: entry.message.display,\n ...(entry.message.details === undefined ? {} : { details: entry.message.details }),\n };\n }\n const message: SessionMessageEntry = { ...base, type: 'message', message: entry.message };\n return message;\n }\n case 'compaction': {\n const retainedBoundary = firstKeptEntryId ?? (entry.retainedTail.length === 0 ? entry.parentId : null);\n if (retainedBoundary === null) return undefined;\n const compaction: CompactionEntry = {\n ...base,\n type: 'compaction',\n summary: entry.summary,\n firstKeptEntryId: retainedBoundary,\n tokensBefore: entry.tokensBefore,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return compaction;\n }\n case 'branch_summary': {\n // Pi requires an origin entry id. A summary of a branch with no origin cannot be represented,\n // and a partial record would corrupt the tree Pi rebuilds from these links.\n const fromId = entry.fromId ?? entry.parentId;\n if (fromId === null) return undefined;\n const branchSummary: BranchSummaryEntry = {\n ...base,\n type: 'branch_summary',\n fromId,\n summary: entry.summary,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return branchSummary;\n }\n case 'custom': {\n const custom: CustomEntry = {\n ...base,\n type: 'custom',\n customType: entry.customType,\n ...(entry.data === undefined ? {} : { data: entry.data }),\n };\n return custom;\n }\n default:\n // A harness entry type introduced after this boundary was written has no Pi record yet.\n return undefined;\n }\n}\n\n/** Convert every representable entry while deriving compaction boundaries from prior branch context. */\nexport function toPiSessionEntries(entries: readonly Entry[]): SessionEntry[] {\n const converted: SessionEntry[] = [];\n for (const entry of entries) {\n const firstKeptEntryId =\n entry.type === 'compaction' ? boundaryEntryId(converted, entry.retainedTail.length) : undefined;\n const next = toPiSessionEntry(entry, firstKeptEntryId);\n if (next !== undefined) converted.push(next);\n }\n return converted;\n}\n\nfunction boundaryEntryId(branchEntries: readonly SessionEntry[], retainedCount: number): string | undefined {\n let remaining = retainedCount;\n for (let index = branchEntries.length - 1; index >= 0; index -= 1) {\n const entry = branchEntries[index];\n if (entry === undefined) continue;\n if (remaining <= 0) return entry.id;\n remaining -= sessionEntryToContextMessages(entry).length;\n if (remaining <= 0) return entry.id;\n }\n return branchEntries[0]?.id;\n}\n\n/** Header followed by every convertible entry, preserving input order. */\nexport function toPiFileEntries(header: PiSessionHeaderInput, entries: readonly Entry[]): FileEntry[] {\n return [toPiSessionHeader(header), ...toPiSessionEntries(entries)];\n}\n\n/** Reverse direction, for mirroring extension-initiated writes back into the harness. */\nexport function fromPiSessionEntry(entry: SessionEntry): { customType: string; data: unknown } | undefined {\n switch (entry.type) {\n case 'message':\n case 'compaction':\n case 'branch_summary':\n // Produced by the agent loop itself; mirroring these back would double-record them.\n return undefined;\n case 'custom':\n return { customType: entry.customType, data: entry.data };\n default:\n // thinking_level_change, model_change, custom_message, label and session_info have no harness\n // counterpart, so the whole Pi record is preserved under a reserved customType.\n return { customType: `${PI_MIRRORED_ENTRY_PREFIX}${entry.type}`, data: entry };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["sessionEntryToContextMessages"],"sources":["../../../../src/services/piSessionEntries/index.ts"],"sourcesContent":["import type {\n BranchSummaryEntry,\n CompactionEntry,\n CustomEntry,\n FileEntry,\n SessionEntry,\n SessionEntryBase,\n SessionHeader,\n SessionMessageEntry,\n} from '@earendil-works/pi-coding-agent';\n\n/**\n * Boundary between the two session record formats Po carries.\n *\n * The headless server persists conversations through the pi-agent-core harness `Session`, whose\n * entries are numbered (`seq`) and timestamped in epoch milliseconds. Pi extensions are instead\n * handed a pi-coding-agent `SessionManager`, whose JSONL records carry no sequence and use ISO\n * timestamps, and whose entry union has five members the harness cannot express natively.\n *\n * This module is the only place that translation happens. It is pure: no IO, no SQLite, no file\n * access, just functions over arrays.\n */\nimport type { Entry } from '../../types/server/directHarnessRuntime';\nimport { CURRENT_SESSION_VERSION, sessionEntryToContextMessages } from '../piMessages';\n\n/** Reserved harness `customType` prefix for Pi entry types the harness has no native record for. */\nexport const PI_MIRRORED_ENTRY_PREFIX = 'pi.';\n\n/** Harness `SessionMetadata` carries no name, model, or thinking level, so the header is synthesized. */\nexport interface PiSessionHeaderInput {\n id: string;\n cwd: string;\n createdAt: number;\n parentSessionId?: string;\n}\n\nfunction toIsoTimestamp(epochMilliseconds: number): string {\n return new Date(epochMilliseconds).toISOString();\n}\n\n/** Synthesize the Pi session header the harness has no direct equivalent for. */\nexport function toPiSessionHeader(input: PiSessionHeaderInput): SessionHeader {\n return {\n type: 'session',\n version: CURRENT_SESSION_VERSION,\n id: input.id,\n timestamp: toIsoTimestamp(input.createdAt),\n cwd: input.cwd,\n ...(input.parentSessionId === undefined ? {} : { parentSession: input.parentSessionId }),\n };\n}\n\n/** Convert one harness entry. Compactions require their retained boundary when the tail is non-empty. */\nexport function toPiSessionEntry(entry: Entry, firstKeptEntryId?: string): SessionEntry | undefined {\n // `seq` is deliberately dropped: Pi orders entries by file position and the parent link.\n const base: Omit<SessionEntryBase, 'type'> = {\n id: entry.id,\n parentId: entry.parentId,\n timestamp: toIsoTimestamp(entry.timestamp),\n };\n switch (entry.type) {\n case 'message': {\n if (entry.message.role === 'custom') {\n return {\n ...base,\n type: 'custom_message',\n customType: entry.message.customType,\n content: entry.message.content,\n display: entry.message.display,\n ...(entry.message.details === undefined ? {} : { details: entry.message.details }),\n };\n }\n const message: SessionMessageEntry = { ...base, type: 'message', message: entry.message };\n return message;\n }\n case 'compaction': {\n const retainedBoundary = firstKeptEntryId ?? (entry.retainedTail.length === 0 ? entry.parentId : null);\n if (retainedBoundary === null) return undefined;\n const compaction: CompactionEntry = {\n ...base,\n type: 'compaction',\n summary: entry.summary,\n firstKeptEntryId: retainedBoundary,\n tokensBefore: entry.tokensBefore,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return compaction;\n }\n case 'branch_summary': {\n // Pi requires an origin entry id. A summary of a branch with no origin cannot be represented,\n // and a partial record would corrupt the tree Pi rebuilds from these links.\n const fromId = entry.fromId ?? entry.parentId;\n if (fromId === null) return undefined;\n const branchSummary: BranchSummaryEntry = {\n ...base,\n type: 'branch_summary',\n fromId,\n summary: entry.summary,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return branchSummary;\n }\n case 'custom': {\n const custom: CustomEntry = {\n ...base,\n type: 'custom',\n customType: entry.customType,\n ...(entry.data === undefined ? {} : { data: entry.data }),\n };\n return custom;\n }\n default:\n // A harness entry type introduced after this boundary was written has no Pi record yet.\n return undefined;\n }\n}\n\n/** Convert every representable entry while deriving compaction boundaries from prior branch context. */\nexport function toPiSessionEntries(entries: readonly Entry[]): SessionEntry[] {\n const converted: SessionEntry[] = [];\n for (const entry of entries) {\n const firstKeptEntryId =\n entry.type === 'compaction'\n ? (entry.firstKeptEntryId ?? boundaryEntryId(converted, entry.retainedTail.length))\n : undefined;\n const next = toPiSessionEntry(entry, firstKeptEntryId);\n if (next !== undefined) converted.push(next);\n }\n return converted;\n}\n\nfunction boundaryEntryId(branchEntries: readonly SessionEntry[], retainedCount: number): string | undefined {\n let remaining = retainedCount;\n for (let index = branchEntries.length - 1; index >= 0; index -= 1) {\n const entry = branchEntries[index];\n if (entry === undefined) continue;\n if (remaining <= 0) return entry.id;\n remaining -= sessionEntryToContextMessages(entry).length;\n if (remaining <= 0) return entry.id;\n }\n return branchEntries[0]?.id;\n}\n\n/** Header followed by every convertible entry, preserving input order. */\nexport function toPiFileEntries(header: PiSessionHeaderInput, entries: readonly Entry[]): FileEntry[] {\n return [toPiSessionHeader(header), ...toPiSessionEntries(entries)];\n}\n\n/** Reverse direction, for mirroring extension-initiated writes back into the harness. */\nexport function fromPiSessionEntry(entry: SessionEntry): { customType: string; data: unknown } | undefined {\n switch (entry.type) {\n case 'message':\n case 'compaction':\n case 'branch_summary':\n // Produced by the agent loop itself; mirroring these back would double-record them.\n return undefined;\n case 'custom':\n return { customType: entry.customType, data: entry.data };\n default:\n // thinking_level_change, model_change, custom_message, label and session_info have no harness\n // counterpart, so the whole Pi record is preserved under a reserved customType.\n return { customType: `${PI_MIRRORED_ENTRY_PREFIX}${entry.type}`, data: entry };\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CURRENT_SESSION_VERSION, sessionEntryToContextMessages } from "@earendil-works/pi-coding-agent";
1
+ import { sessionEntryToContextMessages } from "../piMessages/index.mjs";
2
2
  function toIsoTimestamp(epochMilliseconds) {
3
3
  return new Date(epochMilliseconds).toISOString();
4
4
  }
@@ -6,7 +6,7 @@ function toIsoTimestamp(epochMilliseconds) {
6
6
  function toPiSessionHeader(input) {
7
7
  return {
8
8
  type: "session",
9
- version: CURRENT_SESSION_VERSION,
9
+ version: 3,
10
10
  id: input.id,
11
11
  timestamp: toIsoTimestamp(input.createdAt),
12
12
  cwd: input.cwd,
@@ -75,7 +75,7 @@ function toPiSessionEntry(entry, firstKeptEntryId) {
75
75
  function toPiSessionEntries(entries) {
76
76
  const converted = [];
77
77
  for (const entry of entries) {
78
- const next = toPiSessionEntry(entry, entry.type === "compaction" ? boundaryEntryId(converted, entry.retainedTail.length) : void 0);
78
+ const next = toPiSessionEntry(entry, entry.type === "compaction" ? entry.firstKeptEntryId ?? boundaryEntryId(converted, entry.retainedTail.length) : void 0);
79
79
  if (next !== void 0) converted.push(next);
80
80
  }
81
81
  return converted;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/piSessionEntries/index.ts"],"sourcesContent":["import {\n CURRENT_SESSION_VERSION,\n sessionEntryToContextMessages,\n type BranchSummaryEntry,\n type CompactionEntry,\n type CustomEntry,\n type FileEntry,\n type SessionEntry,\n type SessionEntryBase,\n type SessionHeader,\n type SessionMessageEntry,\n} from '@earendil-works/pi-coding-agent';\n\n/**\n * Boundary between the two session record formats Po carries.\n *\n * The headless server persists conversations through the pi-agent-core harness `Session`, whose\n * entries are numbered (`seq`) and timestamped in epoch milliseconds. Pi extensions are instead\n * handed a pi-coding-agent `SessionManager`, whose JSONL records carry no sequence and use ISO\n * timestamps, and whose entry union has five members the harness cannot express natively.\n *\n * This module is the only place that translation happens. It is pure: no IO, no SQLite, no file\n * access, just functions over arrays.\n */\nimport type { Entry } from '../../types/server/directHarnessRuntime';\n\n/** Reserved harness `customType` prefix for Pi entry types the harness has no native record for. */\nexport const PI_MIRRORED_ENTRY_PREFIX = 'pi.';\n\n/** Harness `SessionMetadata` carries no name, model, or thinking level, so the header is synthesized. */\nexport interface PiSessionHeaderInput {\n id: string;\n cwd: string;\n createdAt: number;\n parentSessionId?: string;\n}\n\nfunction toIsoTimestamp(epochMilliseconds: number): string {\n return new Date(epochMilliseconds).toISOString();\n}\n\n/** Synthesize the Pi session header the harness has no direct equivalent for. */\nexport function toPiSessionHeader(input: PiSessionHeaderInput): SessionHeader {\n return {\n type: 'session',\n version: CURRENT_SESSION_VERSION,\n id: input.id,\n timestamp: toIsoTimestamp(input.createdAt),\n cwd: input.cwd,\n ...(input.parentSessionId === undefined ? {} : { parentSession: input.parentSessionId }),\n };\n}\n\n/** Convert one harness entry. Compactions require their retained boundary when the tail is non-empty. */\nexport function toPiSessionEntry(entry: Entry, firstKeptEntryId?: string): SessionEntry | undefined {\n // `seq` is deliberately dropped: Pi orders entries by file position and the parent link.\n const base: Omit<SessionEntryBase, 'type'> = {\n id: entry.id,\n parentId: entry.parentId,\n timestamp: toIsoTimestamp(entry.timestamp),\n };\n switch (entry.type) {\n case 'message': {\n if (entry.message.role === 'custom') {\n return {\n ...base,\n type: 'custom_message',\n customType: entry.message.customType,\n content: entry.message.content,\n display: entry.message.display,\n ...(entry.message.details === undefined ? {} : { details: entry.message.details }),\n };\n }\n const message: SessionMessageEntry = { ...base, type: 'message', message: entry.message };\n return message;\n }\n case 'compaction': {\n const retainedBoundary = firstKeptEntryId ?? (entry.retainedTail.length === 0 ? entry.parentId : null);\n if (retainedBoundary === null) return undefined;\n const compaction: CompactionEntry = {\n ...base,\n type: 'compaction',\n summary: entry.summary,\n firstKeptEntryId: retainedBoundary,\n tokensBefore: entry.tokensBefore,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return compaction;\n }\n case 'branch_summary': {\n // Pi requires an origin entry id. A summary of a branch with no origin cannot be represented,\n // and a partial record would corrupt the tree Pi rebuilds from these links.\n const fromId = entry.fromId ?? entry.parentId;\n if (fromId === null) return undefined;\n const branchSummary: BranchSummaryEntry = {\n ...base,\n type: 'branch_summary',\n fromId,\n summary: entry.summary,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return branchSummary;\n }\n case 'custom': {\n const custom: CustomEntry = {\n ...base,\n type: 'custom',\n customType: entry.customType,\n ...(entry.data === undefined ? {} : { data: entry.data }),\n };\n return custom;\n }\n default:\n // A harness entry type introduced after this boundary was written has no Pi record yet.\n return undefined;\n }\n}\n\n/** Convert every representable entry while deriving compaction boundaries from prior branch context. */\nexport function toPiSessionEntries(entries: readonly Entry[]): SessionEntry[] {\n const converted: SessionEntry[] = [];\n for (const entry of entries) {\n const firstKeptEntryId =\n entry.type === 'compaction' ? boundaryEntryId(converted, entry.retainedTail.length) : undefined;\n const next = toPiSessionEntry(entry, firstKeptEntryId);\n if (next !== undefined) converted.push(next);\n }\n return converted;\n}\n\nfunction boundaryEntryId(branchEntries: readonly SessionEntry[], retainedCount: number): string | undefined {\n let remaining = retainedCount;\n for (let index = branchEntries.length - 1; index >= 0; index -= 1) {\n const entry = branchEntries[index];\n if (entry === undefined) continue;\n if (remaining <= 0) return entry.id;\n remaining -= sessionEntryToContextMessages(entry).length;\n if (remaining <= 0) return entry.id;\n }\n return branchEntries[0]?.id;\n}\n\n/** Header followed by every convertible entry, preserving input order. */\nexport function toPiFileEntries(header: PiSessionHeaderInput, entries: readonly Entry[]): FileEntry[] {\n return [toPiSessionHeader(header), ...toPiSessionEntries(entries)];\n}\n\n/** Reverse direction, for mirroring extension-initiated writes back into the harness. */\nexport function fromPiSessionEntry(entry: SessionEntry): { customType: string; data: unknown } | undefined {\n switch (entry.type) {\n case 'message':\n case 'compaction':\n case 'branch_summary':\n // Produced by the agent loop itself; mirroring these back would double-record them.\n return undefined;\n case 'custom':\n return { customType: entry.customType, data: entry.data };\n default:\n // thinking_level_change, model_change, custom_message, label and session_info have no harness\n // counterpart, so the whole Pi record is preserved under a reserved customType.\n return { customType: `${PI_MIRRORED_ENTRY_PREFIX}${entry.type}`, data: entry };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/piSessionEntries/index.ts"],"sourcesContent":["import type {\n BranchSummaryEntry,\n CompactionEntry,\n CustomEntry,\n FileEntry,\n SessionEntry,\n SessionEntryBase,\n SessionHeader,\n SessionMessageEntry,\n} from '@earendil-works/pi-coding-agent';\n\n/**\n * Boundary between the two session record formats Po carries.\n *\n * The headless server persists conversations through the pi-agent-core harness `Session`, whose\n * entries are numbered (`seq`) and timestamped in epoch milliseconds. Pi extensions are instead\n * handed a pi-coding-agent `SessionManager`, whose JSONL records carry no sequence and use ISO\n * timestamps, and whose entry union has five members the harness cannot express natively.\n *\n * This module is the only place that translation happens. It is pure: no IO, no SQLite, no file\n * access, just functions over arrays.\n */\nimport type { Entry } from '../../types/server/directHarnessRuntime';\nimport { CURRENT_SESSION_VERSION, sessionEntryToContextMessages } from '../piMessages';\n\n/** Reserved harness `customType` prefix for Pi entry types the harness has no native record for. */\nexport const PI_MIRRORED_ENTRY_PREFIX = 'pi.';\n\n/** Harness `SessionMetadata` carries no name, model, or thinking level, so the header is synthesized. */\nexport interface PiSessionHeaderInput {\n id: string;\n cwd: string;\n createdAt: number;\n parentSessionId?: string;\n}\n\nfunction toIsoTimestamp(epochMilliseconds: number): string {\n return new Date(epochMilliseconds).toISOString();\n}\n\n/** Synthesize the Pi session header the harness has no direct equivalent for. */\nexport function toPiSessionHeader(input: PiSessionHeaderInput): SessionHeader {\n return {\n type: 'session',\n version: CURRENT_SESSION_VERSION,\n id: input.id,\n timestamp: toIsoTimestamp(input.createdAt),\n cwd: input.cwd,\n ...(input.parentSessionId === undefined ? {} : { parentSession: input.parentSessionId }),\n };\n}\n\n/** Convert one harness entry. Compactions require their retained boundary when the tail is non-empty. */\nexport function toPiSessionEntry(entry: Entry, firstKeptEntryId?: string): SessionEntry | undefined {\n // `seq` is deliberately dropped: Pi orders entries by file position and the parent link.\n const base: Omit<SessionEntryBase, 'type'> = {\n id: entry.id,\n parentId: entry.parentId,\n timestamp: toIsoTimestamp(entry.timestamp),\n };\n switch (entry.type) {\n case 'message': {\n if (entry.message.role === 'custom') {\n return {\n ...base,\n type: 'custom_message',\n customType: entry.message.customType,\n content: entry.message.content,\n display: entry.message.display,\n ...(entry.message.details === undefined ? {} : { details: entry.message.details }),\n };\n }\n const message: SessionMessageEntry = { ...base, type: 'message', message: entry.message };\n return message;\n }\n case 'compaction': {\n const retainedBoundary = firstKeptEntryId ?? (entry.retainedTail.length === 0 ? entry.parentId : null);\n if (retainedBoundary === null) return undefined;\n const compaction: CompactionEntry = {\n ...base,\n type: 'compaction',\n summary: entry.summary,\n firstKeptEntryId: retainedBoundary,\n tokensBefore: entry.tokensBefore,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return compaction;\n }\n case 'branch_summary': {\n // Pi requires an origin entry id. A summary of a branch with no origin cannot be represented,\n // and a partial record would corrupt the tree Pi rebuilds from these links.\n const fromId = entry.fromId ?? entry.parentId;\n if (fromId === null) return undefined;\n const branchSummary: BranchSummaryEntry = {\n ...base,\n type: 'branch_summary',\n fromId,\n summary: entry.summary,\n fromHook: entry.fromHook,\n ...(entry.details === undefined ? {} : { details: entry.details }),\n ...(entry.usage === undefined ? {} : { usage: entry.usage }),\n };\n return branchSummary;\n }\n case 'custom': {\n const custom: CustomEntry = {\n ...base,\n type: 'custom',\n customType: entry.customType,\n ...(entry.data === undefined ? {} : { data: entry.data }),\n };\n return custom;\n }\n default:\n // A harness entry type introduced after this boundary was written has no Pi record yet.\n return undefined;\n }\n}\n\n/** Convert every representable entry while deriving compaction boundaries from prior branch context. */\nexport function toPiSessionEntries(entries: readonly Entry[]): SessionEntry[] {\n const converted: SessionEntry[] = [];\n for (const entry of entries) {\n const firstKeptEntryId =\n entry.type === 'compaction'\n ? (entry.firstKeptEntryId ?? boundaryEntryId(converted, entry.retainedTail.length))\n : undefined;\n const next = toPiSessionEntry(entry, firstKeptEntryId);\n if (next !== undefined) converted.push(next);\n }\n return converted;\n}\n\nfunction boundaryEntryId(branchEntries: readonly SessionEntry[], retainedCount: number): string | undefined {\n let remaining = retainedCount;\n for (let index = branchEntries.length - 1; index >= 0; index -= 1) {\n const entry = branchEntries[index];\n if (entry === undefined) continue;\n if (remaining <= 0) return entry.id;\n remaining -= sessionEntryToContextMessages(entry).length;\n if (remaining <= 0) return entry.id;\n }\n return branchEntries[0]?.id;\n}\n\n/** Header followed by every convertible entry, preserving input order. */\nexport function toPiFileEntries(header: PiSessionHeaderInput, entries: readonly Entry[]): FileEntry[] {\n return [toPiSessionHeader(header), ...toPiSessionEntries(entries)];\n}\n\n/** Reverse direction, for mirroring extension-initiated writes back into the harness. */\nexport function fromPiSessionEntry(entry: SessionEntry): { customType: string; data: unknown } | undefined {\n switch (entry.type) {\n case 'message':\n case 'compaction':\n case 'branch_summary':\n // Produced by the agent loop itself; mirroring these back would double-record them.\n return undefined;\n case 'custom':\n return { customType: entry.customType, data: entry.data };\n default:\n // thinking_level_change, model_change, custom_message, label and session_info have no harness\n // counterpart, so the whole Pi record is preserved under a reserved customType.\n return { customType: `${PI_MIRRORED_ENTRY_PREFIX}${entry.type}`, data: entry };\n }\n}\n"],"mappings":"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"}