@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":"runtimeCordisHost.mjs","names":[],"sources":["../src/pi/cordisHost.ts"],"sourcesContent":["import { Context, type Fiber } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI, ExtensionContext, SessionStartEvent } from '@earendil-works/pi-coding-agent';\n\nimport { DOOM_CONTEXT_CONTRIBUTIONS_SERVICE } from '../schemas/contextContributions';\nimport { DOOM_TOOL_OVERRIDES_SERVICE } from '../schemas/toolOverrides';\nimport { DOOM_TOOL_SURFACE_SERVICE } from '../schemas/toolSurface';\nimport { createDoomContextContributionsService } from '../services/contextContributions';\nimport { createDoomToolOverridesService } from '../services/toolOverrides';\nimport { createDoomToolSurface } from '../services/toolSurface';\n\nexport const DOOM_CORDIS_HOST_ABI_VERSION = 1 as const;\nexport const DOOM_CORDIS_HOST_QUERY_CHANNEL = 'doom:cordis:host:v1:query';\nexport const DOOM_CORDIS_RUNTIME_SERVICE = 'doom/runtime';\nexport const DOOM_CORDIS_SESSION_SERVICE = 'doom/session';\nexport const DOOM_CORDIS_SERVER_SERVICES = 'doom/server-session-services';\n\n/** Read-only access to services already owned by this session's server facets. */\nexport interface DoomCordisServerServices {\n readonly sessionId: string;\n get<T>(name: string): T | undefined;\n}\nconst HOST_PROTOCOL = 'doom.cordis.host';\nconst DEFAULT_HOST_SOURCE = '@agimon-ai/po/cordis-host';\n\nexport type DoomCordisHostMode = 'composed' | 'standalone';\n\nexport interface DoomCordisRuntimeService {\n readonly abiVersion: typeof DOOM_CORDIS_HOST_ABI_VERSION;\n readonly hostId: string;\n readonly generation: string;\n readonly mode: DoomCordisHostMode;\n}\n\nexport interface DoomCordisSessionService {\n readonly sessionId: string;\n readonly generation: string;\n readonly reason: SessionStartEvent['reason'];\n readonly context: ExtensionContext;\n /** This session's admitted environment: its own in a server, the process's in a terminal. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n}\n\ntype SessionEnvironment = Readonly<Record<string, string | undefined>>;\n\n/**\n * Admitted environments of sessions sharing this process, by session id.\n *\n * A server runs many sessions' Pi extensions in one process, so `process.env` is\n * the server's, not any session's. Held on a global symbol because extension\n * packages can load their own copy of this module.\n */\nconst SESSION_ENVIRONMENTS: Map<string, { readonly environment: SessionEnvironment }> = ((\n globalThis as Record<symbol, unknown>\n)[Symbol.for('doom.cordis.session-environments.v1')] ??= new Map()) as Map<\n string,\n { readonly environment: SessionEnvironment }\n>;\n\n/**\n * Binds a session id to its admitted environment until the returned release runs.\n *\n * The newest registration wins: a reopened session can start before its previous host has\n * finished closing, and that late release must not unbind the new one.\n */\nexport function registerDoomSessionEnvironment(sessionId: string, environment: SessionEnvironment): () => void {\n const registration = { environment };\n SESSION_ENVIRONMENTS.set(sessionId, registration);\n return () => {\n if (SESSION_ENVIRONMENTS.get(sessionId) === registration) SESSION_ENVIRONMENTS.delete(sessionId);\n };\n}\n\n/** The session's admitted environment, or `process.env` for a session that owns its process. */\nexport function readDoomSessionEnvironment(sessionId: string | undefined): SessionEnvironment {\n return (sessionId === undefined ? undefined : SESSION_ENVIRONMENTS.get(sessionId)?.environment) ?? process.env;\n}\n\nexport function requireDoomCordisSession(context: Context): DoomCordisSessionService {\n const session = context.get(DOOM_CORDIS_SESSION_SERVICE) as DoomCordisSessionService | undefined;\n if (!session) throw new Error('Doom Cordis session service is unavailable.');\n return session;\n}\n\nexport interface DoomCordisHostConnection {\n readonly root: Context;\n readonly runtime: DoomCordisRuntimeService;\n /** Releases this consumer's lease. It never disposes a composed host. */\n dispose(): Promise<void>;\n}\n\nexport interface DoomCordisHostController {\n readonly root: Context;\n readonly runtime: DoomCordisRuntimeService;\n /** Recursively disposes the session and application plugin tree. */\n shutdown(): Promise<void>;\n}\n\nexport interface InstallDoomCordisHostOptions {\n readonly mode: DoomCordisHostMode;\n readonly source?: string;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/runtime': DoomCordisRuntimeService;\n 'doom/session': DoomCordisSessionService;\n }\n}\n\ninterface HostQuery {\n readonly protocol: typeof HOST_PROTOCOL;\n readonly abiVersion: typeof DOOM_CORDIS_HOST_ABI_VERSION;\n readonly kind: 'query';\n readonly requestId: string;\n readonly source: string;\n readonly accept: (response: unknown) => void;\n}\n\ninterface HostResponder {\n readonly protocol: typeof HOST_PROTOCOL;\n readonly abiVersion: typeof DOOM_CORDIS_HOST_ABI_VERSION;\n readonly hostId: string;\n readonly root: Context;\n readonly runtime: DoomCordisRuntimeService;\n readonly ready: Promise<void>;\n acquire(): DoomCordisHostConnection;\n shutdown(): Promise<void>;\n}\n\nfunction isRecord(value: unknown): value is Record<PropertyKey, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction asHostQuery(value: unknown): HostQuery | undefined {\n if (!isRecord(value)) return undefined;\n if (\n value.protocol !== HOST_PROTOCOL ||\n value.abiVersion !== DOOM_CORDIS_HOST_ABI_VERSION ||\n value.kind !== 'query' ||\n typeof value.requestId !== 'string' ||\n value.requestId.length === 0 ||\n typeof value.source !== 'string' ||\n value.source.length === 0 ||\n typeof value.accept !== 'function'\n ) {\n return undefined;\n }\n return value as unknown as HostQuery;\n}\n\nfunction asHostResponder(value: unknown): HostResponder {\n if (!isRecord(value)) throw new Error('The Doom Cordis host returned an invalid discovery response.');\n if (value.protocol !== HOST_PROTOCOL) {\n throw new Error('The Doom Cordis host returned an invalid protocol identifier.');\n }\n if (value.abiVersion !== DOOM_CORDIS_HOST_ABI_VERSION) {\n throw new Error(\n `The Doom Cordis host ABI is incompatible: expected ${String(DOOM_CORDIS_HOST_ABI_VERSION)}, received ${String(value.abiVersion)}.`,\n );\n }\n if (typeof value.hostId !== 'string' || value.hostId.length === 0) {\n throw new Error('The Doom Cordis host returned an invalid host identifier.');\n }\n if (!Context.is(value.root)) {\n throw new Error('The Doom Cordis host returned a value that is not a Cordis Context.');\n }\n if (\n !isRecord(value.runtime) ||\n value.runtime.abiVersion !== DOOM_CORDIS_HOST_ABI_VERSION ||\n value.runtime.hostId !== value.hostId ||\n typeof value.acquire !== 'function' ||\n typeof value.shutdown !== 'function' ||\n !isRecord(value.ready) ||\n typeof value.ready.then !== 'function'\n ) {\n throw new Error('The Doom Cordis host returned incomplete runtime metadata.');\n }\n return value as unknown as HostResponder;\n}\n\nfunction discoverHosts(pi: Pick<ExtensionAPI, 'events'>, source: string): HostResponder[] {\n const responses: HostResponder[] = [];\n const request: HostQuery = {\n protocol: HOST_PROTOCOL,\n abiVersion: DOOM_CORDIS_HOST_ABI_VERSION,\n kind: 'query',\n requestId: `${source}:${crypto.randomUUID()}`,\n source,\n accept(response) {\n responses.push(asHostResponder(response));\n },\n };\n pi.events.emit(DOOM_CORDIS_HOST_QUERY_CHANNEL, request);\n return responses;\n}\n\nfunction exactlyOneHost(responses: readonly HostResponder[], source: string): HostResponder | undefined {\n if (responses.length <= 1) return responses[0];\n const hostIds = responses.map(({ hostId }) => hostId).join(', ');\n throw new Error(`Multiple Doom Cordis hosts answered ${source}: ${hostIds}.`);\n}\n\nfunction runtimeProvider(ctx: Context, service: DoomCordisRuntimeService): void {\n ctx.provide(DOOM_CORDIS_RUNTIME_SERVICE, service);\n ctx.provide(DOOM_TOOL_OVERRIDES_SERVICE, createDoomToolOverridesService(service.generation));\n}\n\nfunction sessionProvider(ctx: Context, service: DoomCordisSessionService, pi: ExtensionAPI): void {\n ctx.provide(DOOM_CORDIS_SESSION_SERVICE, service);\n ctx.provide(DOOM_CONTEXT_CONTRIBUTIONS_SERVICE, createDoomContextContributionsService(service.generation));\n ctx.provide(\n DOOM_TOOL_SURFACE_SERVICE,\n createDoomToolSurface({\n generation: service.generation,\n allTools: () => pi.getAllTools().map((tool) => tool.name),\n activeTools: () => pi.getActiveTools(),\n setActiveTools: (names) => pi.setActiveTools(names),\n }),\n );\n}\n\n/**\n * Installs the sole Cordis application root for one Pi extension runner.\n *\n * The versioned EventBus query is intentional: Pi may hand independently\n * loaded factories different ExtensionAPI wrapper objects, while their event\n * buses still address the same runner.\n */\nexport async function installDoomCordisHost(\n pi: ExtensionAPI,\n options: InstallDoomCordisHostOptions,\n): Promise<DoomCordisHostController> {\n const source = options.source ?? DEFAULT_HOST_SOURCE;\n const existing = exactlyOneHost(discoverHosts(pi, source), source);\n if (existing) throw new Error(`A Doom Cordis host is already installed: ${existing.hostId}.`);\n\n // This is the one intentional Context constructor for Po extension code.\n const root = new Context();\n const runtime: DoomCordisRuntimeService = Object.freeze({\n abiVersion: DOOM_CORDIS_HOST_ABI_VERSION,\n hostId: `doom-cordis:${crypto.randomUUID()}`,\n generation: `doom-runtime:${crypto.randomUUID()}`,\n mode: options.mode,\n });\n const runtimeFiber = root.plugin(runtimeProvider, runtime);\n const ready = runtimeFiber.await().then(() => undefined);\n let sessionFiber: Fiber | undefined;\n let sessionGeneration = 0;\n let sessionQueue = Promise.resolve();\n let leaseCount = 0;\n let shutdownPromise: Promise<void> | undefined;\n let responder: HostResponder;\n let disposeQuerySubscription = (): void => undefined;\n\n const controller: DoomCordisHostController = {\n root,\n runtime,\n shutdown() {\n shutdownPromise ??= (async () => {\n disposeQuerySubscription();\n await ready.catch(() => undefined);\n await sessionQueue.catch(() => undefined);\n await sessionFiber?.dispose();\n sessionFiber = undefined;\n await root.fiber.dispose();\n })();\n return shutdownPromise;\n },\n };\n\n responder = {\n protocol: HOST_PROTOCOL,\n abiVersion: DOOM_CORDIS_HOST_ABI_VERSION,\n hostId: runtime.hostId,\n root,\n runtime,\n ready,\n acquire() {\n if (shutdownPromise) throw new Error(`The Doom Cordis host is shutting down: ${runtime.hostId}.`);\n leaseCount += 1;\n let released = false;\n return {\n root,\n runtime,\n async dispose() {\n if (released) return;\n released = true;\n leaseCount -= 1;\n if (options.mode === 'standalone' && leaseCount === 0) await controller.shutdown();\n },\n };\n },\n shutdown: () => controller.shutdown(),\n };\n try {\n disposeQuerySubscription = pi.events.on(DOOM_CORDIS_HOST_QUERY_CHANNEL, (value) => {\n const query = asHostQuery(value);\n if (query) query.accept(responder);\n });\n pi.on('session_start', (event, context) => {\n sessionQueue = sessionQueue\n .catch(() => undefined)\n .then(async () => {\n // Pi owns its listener table and can retain this callback across a\n // replacement. A start delivered after finalization belongs to the\n // stale graph and must not revive or fail the next one.\n if (shutdownPromise) return;\n await sessionFiber?.dispose();\n sessionGeneration += 1;\n const service: DoomCordisSessionService = Object.freeze({\n sessionId: context.sessionManager.getSessionId(),\n generation: `${runtime.generation}:${String(sessionGeneration)}`,\n reason: event.reason,\n context,\n environment: readDoomSessionEnvironment(context.sessionManager.getSessionId()),\n });\n sessionFiber = root.plugin((ctx: Context, value: DoomCordisSessionService) => {\n sessionProvider(ctx, value, pi);\n }, service);\n await sessionFiber.await();\n });\n return sessionQueue;\n });\n if (options.mode === 'standalone') {\n pi.on('session_shutdown', () => {\n disposeQuerySubscription();\n });\n }\n await ready;\n } catch (error) {\n await controller.shutdown();\n throw error;\n }\n return controller;\n}\n\n/** Resolves the composed host installed by the canonical runtime. */\nexport function connectDoomCordisHost(\n pi: Pick<ExtensionAPI, 'events'>,\n source: string,\n): Promise<DoomCordisHostConnection>;\nexport function connectDoomCordisHost(\n pi: Pick<ExtensionAPI, 'events'>,\n source: string,\n options: { readonly optional: true },\n): Promise<DoomCordisHostConnection | undefined>;\nexport async function connectDoomCordisHost(\n pi: Pick<ExtensionAPI, 'events'>,\n source: string,\n options?: { readonly optional: true },\n): Promise<DoomCordisHostConnection | undefined> {\n const responder = exactlyOneHost(discoverHosts(pi, source), source);\n if (!responder) {\n // Vanilla Pi plugins do not install a Doom host. Optional discovery permits only\n // that absence, never an invalid or ambiguous responder.\n if (options?.optional) return undefined;\n throw new Error('The composed Doom Cordis host is unavailable. Ensure cordisHost is the first extension.');\n }\n await responder.ready;\n return responder.acquire();\n}\n\n/** Ends the host discovered on this runner. Repeated finalization is a no-op. */\nexport async function finalizeDoomCordisHost(pi: Pick<ExtensionAPI, 'events'>, source: string): Promise<void> {\n const responder = exactlyOneHost(discoverHosts(pi, source), source);\n await responder?.shutdown();\n}\n"],"mappings":";;;;;;;;AAUA,MAAa,+BAA+B;AAC5C,MAAa,iCAAiC;AAC9C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAC3C,MAAa,8BAA8B;AAO3C,MAAM,gBAAgB;AACtB,MAAM,sBAAsB;;;;;;;;AA6B5B,MAAM,uBAAmF,WAEvF,OAAO,IAAI,qCAAqC,uBAAO,IAAI,IAAI;;;;;;;AAWjE,SAAgB,+BAA+B,WAAmB,aAA6C;CAC7G,MAAM,eAAe,EAAE,YAAY;CACnC,qBAAqB,IAAI,WAAW,YAAY;CAChD,aAAa;EACX,IAAI,qBAAqB,IAAI,SAAS,MAAM,cAAc,qBAAqB,OAAO,SAAS;CACjG;AACF;;AAGA,SAAgB,2BAA2B,WAAmD;CAC5F,QAAQ,cAAc,KAAA,IAAY,KAAA,IAAY,qBAAqB,IAAI,SAAS,CAAC,EAAE,gBAAgB,QAAQ;AAC7G;AAEA,SAAgB,yBAAyB,SAA4C;CACnF,MAAM,UAAU,QAAQ,IAAI,2BAA2B;CACvD,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,6CAA6C;CAC3E,OAAO;AACT;AAgDA,SAAS,SAAS,OAAuD;CACvE,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,YAAY,OAAuC;CAC1D,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,KAAA;CAC7B,IACE,MAAM,aAAa,iBACnB,MAAM,eAAA,KACN,MAAM,SAAS,WACf,OAAO,MAAM,cAAc,YAC3B,MAAM,UAAU,WAAW,KAC3B,OAAO,MAAM,WAAW,YACxB,MAAM,OAAO,WAAW,KACxB,OAAO,MAAM,WAAW,YAExB;CAEF,OAAO;AACT;AAEA,SAAS,gBAAgB,OAA+B;CACtD,IAAI,CAAC,SAAS,KAAK,GAAG,MAAM,IAAI,MAAM,8DAA8D;CACpG,IAAI,MAAM,aAAa,eACrB,MAAM,IAAI,MAAM,+DAA+D;CAEjF,IAAI,MAAM,eAAA,GACR,MAAM,IAAI,MACR,sDAAsD,OAAA,CAAmC,EAAE,aAAa,OAAO,MAAM,UAAU,EAAE,EACnI;CAEF,IAAI,OAAO,MAAM,WAAW,YAAY,MAAM,OAAO,WAAW,GAC9D,MAAM,IAAI,MAAM,2DAA2D;CAE7E,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,GACxB,MAAM,IAAI,MAAM,qEAAqE;CAEvF,IACE,CAAC,SAAS,MAAM,OAAO,KACvB,MAAM,QAAQ,eAAA,KACd,MAAM,QAAQ,WAAW,MAAM,UAC/B,OAAO,MAAM,YAAY,cACzB,OAAO,MAAM,aAAa,cAC1B,CAAC,SAAS,MAAM,KAAK,KACrB,OAAO,MAAM,MAAM,SAAS,YAE5B,MAAM,IAAI,MAAM,4DAA4D;CAE9E,OAAO;AACT;AAEA,SAAS,cAAc,IAAkC,QAAiC;CACxF,MAAM,YAA6B,CAAC;CACpC,MAAM,UAAqB;EACzB,UAAU;EACV,YAAA;EACA,MAAM;EACN,WAAW,GAAG,OAAO,GAAG,OAAO,WAAW;EAC1C;EACA,OAAO,UAAU;GACf,UAAU,KAAK,gBAAgB,QAAQ,CAAC;EAC1C;CACF;CACA,GAAG,OAAO,KAAK,gCAAgC,OAAO;CACtD,OAAO;AACT;AAEA,SAAS,eAAe,WAAqC,QAA2C;CACtG,IAAI,UAAU,UAAU,GAAG,OAAO,UAAU;CAC5C,MAAM,UAAU,UAAU,KAAK,EAAE,aAAa,MAAM,CAAC,CAAC,KAAK,IAAI;CAC/D,MAAM,IAAI,MAAM,uCAAuC,OAAO,IAAI,QAAQ,EAAE;AAC9E;AAEA,SAAS,gBAAgB,KAAc,SAAyC;CAC9E,IAAI,QAAQ,6BAA6B,OAAO;CAChD,IAAI,QAAQ,6BAA6B,+BAA+B,QAAQ,UAAU,CAAC;AAC7F;AAEA,SAAS,gBAAgB,KAAc,SAAmC,IAAwB;CAChG,IAAI,QAAQ,6BAA6B,OAAO;CAChD,IAAI,QAAQ,oCAAoC,sCAAsC,QAAQ,UAAU,CAAC;CACzG,IAAI,QACF,2BACA,sBAAsB;EACpB,YAAY,QAAQ;EACpB,gBAAgB,GAAG,YAAY,CAAC,CAAC,KAAK,SAAS,KAAK,IAAI;EACxD,mBAAmB,GAAG,eAAe;EACrC,iBAAiB,UAAU,GAAG,eAAe,KAAK;CACpD,CAAC,CACH;AACF;;;;;;;;AASA,eAAsB,sBACpB,IACA,SACmC;CACnC,MAAM,SAAS,QAAQ,UAAU;CACjC,MAAM,WAAW,eAAe,cAAc,IAAI,MAAM,GAAG,MAAM;CACjE,IAAI,UAAU,MAAM,IAAI,MAAM,4CAA4C,SAAS,OAAO,EAAE;CAG5F,MAAM,OAAO,IAAI,QAAQ;CACzB,MAAM,UAAoC,OAAO,OAAO;EACtD,YAAA;EACA,QAAQ,eAAe,OAAO,WAAW;EACzC,YAAY,gBAAgB,OAAO,WAAW;EAC9C,MAAM,QAAQ;CAChB,CAAC;CAED,MAAM,QADe,KAAK,OAAO,iBAAiB,OACzB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,KAAA,CAAS;CACvD,IAAI;CACJ,IAAI,oBAAoB;CACxB,IAAI,eAAe,QAAQ,QAAQ;CACnC,IAAI,aAAa;CACjB,IAAI;CACJ,IAAI;CACJ,IAAI,iCAAuC,KAAA;CAE3C,MAAM,aAAuC;EAC3C;EACA;EACA,WAAW;GACT,qBAAqB,YAAY;IAC/B,yBAAyB;IACzB,MAAM,MAAM,YAAY,KAAA,CAAS;IACjC,MAAM,aAAa,YAAY,KAAA,CAAS;IACxC,MAAM,cAAc,QAAQ;IAC5B,eAAe,KAAA;IACf,MAAM,KAAK,MAAM,QAAQ;GAC3B,EAAA,CAAG;GACH,OAAO;EACT;CACF;CAEA,YAAY;EACV,UAAU;EACV,YAAA;EACA,QAAQ,QAAQ;EAChB;EACA;EACA;EACA,UAAU;GACR,IAAI,iBAAiB,MAAM,IAAI,MAAM,0CAA0C,QAAQ,OAAO,EAAE;GAChG,cAAc;GACd,IAAI,WAAW;GACf,OAAO;IACL;IACA;IACA,MAAM,UAAU;KACd,IAAI,UAAU;KACd,WAAW;KACX,cAAc;KACd,IAAI,QAAQ,SAAS,gBAAgB,eAAe,GAAG,MAAM,WAAW,SAAS;IACnF;GACF;EACF;EACA,gBAAgB,WAAW,SAAS;CACtC;CACA,IAAI;EACF,2BAA2B,GAAG,OAAO,GAAG,iCAAiC,UAAU;GACjF,MAAM,QAAQ,YAAY,KAAK;GAC/B,IAAI,OAAO,MAAM,OAAO,SAAS;EACnC,CAAC;EACD,GAAG,GAAG,kBAAkB,OAAO,YAAY;GACzC,eAAe,aACZ,YAAY,KAAA,CAAS,CAAC,CACtB,KAAK,YAAY;IAIhB,IAAI,iBAAiB;IACrB,MAAM,cAAc,QAAQ;IAC5B,qBAAqB;IACrB,MAAM,UAAoC,OAAO,OAAO;KACtD,WAAW,QAAQ,eAAe,aAAa;KAC/C,YAAY,GAAG,QAAQ,WAAW,GAAG,OAAO,iBAAiB;KAC7D,QAAQ,MAAM;KACd;KACA,aAAa,2BAA2B,QAAQ,eAAe,aAAa,CAAC;IAC/E,CAAC;IACD,eAAe,KAAK,QAAQ,KAAc,UAAoC;KAC5E,gBAAgB,KAAK,OAAO,EAAE;IAChC,GAAG,OAAO;IACV,MAAM,aAAa,MAAM;GAC3B,CAAC;GACH,OAAO;EACT,CAAC;EACD,IAAI,QAAQ,SAAS,cACnB,GAAG,GAAG,0BAA0B;GAC9B,yBAAyB;EAC3B,CAAC;EAEH,MAAM;CACR,SAAS,OAAO;EACd,MAAM,WAAW,SAAS;EAC1B,MAAM;CACR;CACA,OAAO;AACT;AAYA,eAAsB,sBACpB,IACA,QACA,SAC+C;CAC/C,MAAM,YAAY,eAAe,cAAc,IAAI,MAAM,GAAG,MAAM;CAClE,IAAI,CAAC,WAAW;EAGd,IAAI,SAAS,UAAU,OAAO,KAAA;EAC9B,MAAM,IAAI,MAAM,yFAAyF;CAC3G;CACA,MAAM,UAAU;CAChB,OAAO,UAAU,QAAQ;AAC3B;;AAGA,eAAsB,uBAAuB,IAAkC,QAA+B;CAE5G,MADkB,eAAe,cAAc,IAAI,MAAM,GAAG,MAC9C,CAAC,EAAE,SAAS;AAC5B"}
1
+ {"version":3,"file":"runtimeCordisHost.mjs","names":[],"sources":["../src/pi/cordisHost.ts"],"sourcesContent":["import { Context, type Fiber } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI, ExtensionContext, SessionStartEvent } from '@earendil-works/pi-coding-agent';\n\nimport { PO_CONTEXT_CONTRIBUTIONS_SERVICE } from '../schemas/contextContributions';\nimport { PO_TOOL_OVERRIDES_SERVICE } from '../schemas/toolOverrides';\nimport { PO_TOOL_SURFACE_SERVICE } from '../schemas/toolSurface';\nimport { createPoContextContributionsService } from '../services/contextContributions';\nimport { createPoToolOverridesService } from '../services/toolOverrides';\nimport { createPoToolSurface } from '../services/toolSurface';\n\nexport const PO_CORDIS_HOST_ABI_VERSION = 1 as const;\nexport const PO_CORDIS_HOST_QUERY_CHANNEL = 'po:cordis:host:v1:query';\nexport const PO_CORDIS_RUNTIME_SERVICE = 'po/runtime';\nexport const PO_CORDIS_SESSION_SERVICE = 'po/session';\nexport const PO_CORDIS_SERVER_SERVICES = 'po/server-session-services';\n\n/** Read-only access to services already owned by this session's server packages. */\nexport interface PoCordisServerServices {\n readonly sessionId: string;\n get<T>(name: string): T | undefined;\n}\nconst HOST_PROTOCOL = 'po.cordis.host';\nconst DEFAULT_HOST_SOURCE = '@agimon-ai/po/cordis-host';\n\nexport type PoCordisHostMode = 'composed' | 'standalone';\n\nexport interface PoCordisRuntimeService {\n readonly abiVersion: typeof PO_CORDIS_HOST_ABI_VERSION;\n readonly hostId: string;\n readonly generation: string;\n readonly mode: PoCordisHostMode;\n}\n\nexport interface PoCordisSessionService {\n readonly sessionId: string;\n readonly generation: string;\n readonly reason: SessionStartEvent['reason'];\n readonly context: ExtensionContext;\n /** This session's admitted environment: its own in a server, the process's in a terminal. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n}\n\ntype SessionEnvironment = Readonly<Record<string, string | undefined>>;\n\n/**\n * Admitted environments of sessions sharing this process, by session id.\n *\n * A server runs many sessions' Pi extensions in one process, so `process.env` is\n * the server's, not any session's. Held on a global symbol because extension\n * packages can load their own copy of this module.\n */\nconst SESSION_ENVIRONMENTS: Map<string, { readonly environment: SessionEnvironment }> = ((\n globalThis as Record<symbol, unknown>\n)[Symbol.for('po.cordis.session-environments.v1')] ??= new Map()) as Map<\n string,\n { readonly environment: SessionEnvironment }\n>;\n\n/**\n * Binds a session id to its admitted environment until the returned release runs.\n *\n * The newest registration wins: a reopened session can start before its previous host has\n * finished closing, and that late release must not unbind the new one.\n */\nexport function registerPoSessionEnvironment(sessionId: string, environment: SessionEnvironment): () => void {\n const registration = { environment };\n SESSION_ENVIRONMENTS.set(sessionId, registration);\n return () => {\n if (SESSION_ENVIRONMENTS.get(sessionId) === registration) SESSION_ENVIRONMENTS.delete(sessionId);\n };\n}\n\n/** The session's admitted environment, or `process.env` for a session that owns its process. */\nexport function readPoSessionEnvironment(sessionId: string | undefined): SessionEnvironment {\n return (sessionId === undefined ? undefined : SESSION_ENVIRONMENTS.get(sessionId)?.environment) ?? process.env;\n}\n\nexport function requirePoCordisSession(context: Context): PoCordisSessionService {\n const session = context.get(PO_CORDIS_SESSION_SERVICE) as PoCordisSessionService | undefined;\n if (!session) throw new Error('Po Cordis session service is unavailable.');\n return session;\n}\n\nexport interface PoCordisHostConnection {\n readonly root: Context;\n readonly runtime: PoCordisRuntimeService;\n /** Releases this consumer's lease. It never disposes a composed host. */\n dispose(): Promise<void>;\n}\n\nexport interface PoCordisHostController {\n readonly root: Context;\n readonly runtime: PoCordisRuntimeService;\n /** Recursively disposes the session and application plugin tree. */\n shutdown(): Promise<void>;\n}\n\nexport interface InstallPoCordisHostOptions {\n readonly mode: PoCordisHostMode;\n readonly source?: string;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/runtime': PoCordisRuntimeService;\n 'po/session': PoCordisSessionService;\n }\n}\n\ninterface HostQuery {\n readonly protocol: typeof HOST_PROTOCOL;\n readonly abiVersion: typeof PO_CORDIS_HOST_ABI_VERSION;\n readonly kind: 'query';\n readonly requestId: string;\n readonly source: string;\n readonly accept: (response: unknown) => void;\n}\n\ninterface HostResponder {\n readonly protocol: typeof HOST_PROTOCOL;\n readonly abiVersion: typeof PO_CORDIS_HOST_ABI_VERSION;\n readonly hostId: string;\n readonly root: Context;\n readonly runtime: PoCordisRuntimeService;\n readonly ready: Promise<void>;\n acquire(): PoCordisHostConnection;\n shutdown(): Promise<void>;\n}\n\nfunction isRecord(value: unknown): value is Record<PropertyKey, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction asHostQuery(value: unknown): HostQuery | undefined {\n if (!isRecord(value)) return undefined;\n if (\n value.protocol !== HOST_PROTOCOL ||\n value.abiVersion !== PO_CORDIS_HOST_ABI_VERSION ||\n value.kind !== 'query' ||\n typeof value.requestId !== 'string' ||\n value.requestId.length === 0 ||\n typeof value.source !== 'string' ||\n value.source.length === 0 ||\n typeof value.accept !== 'function'\n ) {\n return undefined;\n }\n return value as unknown as HostQuery;\n}\n\nfunction asHostResponder(value: unknown): HostResponder {\n if (!isRecord(value)) throw new Error('The Po Cordis host returned an invalid discovery response.');\n if (value.protocol !== HOST_PROTOCOL) {\n throw new Error('The Po Cordis host returned an invalid protocol identifier.');\n }\n if (value.abiVersion !== PO_CORDIS_HOST_ABI_VERSION) {\n throw new Error(\n `The Po Cordis host ABI is incompatible: expected ${String(PO_CORDIS_HOST_ABI_VERSION)}, received ${String(value.abiVersion)}.`,\n );\n }\n if (typeof value.hostId !== 'string' || value.hostId.length === 0) {\n throw new Error('The Po Cordis host returned an invalid host identifier.');\n }\n if (!Context.is(value.root)) {\n throw new Error('The Po Cordis host returned a value that is not a Cordis Context.');\n }\n if (\n !isRecord(value.runtime) ||\n value.runtime.abiVersion !== PO_CORDIS_HOST_ABI_VERSION ||\n value.runtime.hostId !== value.hostId ||\n typeof value.acquire !== 'function' ||\n typeof value.shutdown !== 'function' ||\n !isRecord(value.ready) ||\n typeof value.ready.then !== 'function'\n ) {\n throw new Error('The Po Cordis host returned incomplete runtime metadata.');\n }\n return value as unknown as HostResponder;\n}\n\nfunction discoverHosts(pi: Pick<ExtensionAPI, 'events'>, source: string): HostResponder[] {\n const responses: HostResponder[] = [];\n const request: HostQuery = {\n protocol: HOST_PROTOCOL,\n abiVersion: PO_CORDIS_HOST_ABI_VERSION,\n kind: 'query',\n requestId: `${source}:${crypto.randomUUID()}`,\n source,\n accept(response) {\n responses.push(asHostResponder(response));\n },\n };\n pi.events.emit(PO_CORDIS_HOST_QUERY_CHANNEL, request);\n return responses;\n}\n\nfunction exactlyOneHost(responses: readonly HostResponder[], source: string): HostResponder | undefined {\n if (responses.length <= 1) return responses[0];\n const hostIds = responses.map(({ hostId }) => hostId).join(', ');\n throw new Error(`Multiple Po Cordis hosts answered ${source}: ${hostIds}.`);\n}\n\nfunction runtimeProvider(ctx: Context, service: PoCordisRuntimeService): void {\n ctx.provide(PO_CORDIS_RUNTIME_SERVICE, service);\n ctx.provide(PO_TOOL_OVERRIDES_SERVICE, createPoToolOverridesService(service.generation));\n}\n\nfunction sessionProvider(ctx: Context, service: PoCordisSessionService, pi: ExtensionAPI): void {\n ctx.provide(PO_CORDIS_SESSION_SERVICE, service);\n ctx.provide(PO_CONTEXT_CONTRIBUTIONS_SERVICE, createPoContextContributionsService(service.generation));\n ctx.provide(\n PO_TOOL_SURFACE_SERVICE,\n createPoToolSurface({\n generation: service.generation,\n allTools: () => pi.getAllTools().map((tool) => tool.name),\n activeTools: () => pi.getActiveTools(),\n setActiveTools: (names) => pi.setActiveTools(names),\n }),\n );\n}\n\n/**\n * Installs the sole Cordis application root for one Pi extension runner.\n *\n * The versioned EventBus query is intentional: Pi may hand independently\n * loaded factories different ExtensionAPI wrapper objects, while their event\n * buses still address the same runner.\n */\nexport async function installPoCordisHost(\n pi: ExtensionAPI,\n options: InstallPoCordisHostOptions,\n): Promise<PoCordisHostController> {\n const source = options.source ?? DEFAULT_HOST_SOURCE;\n const existing = exactlyOneHost(discoverHosts(pi, source), source);\n if (existing) throw new Error(`A Po Cordis host is already installed: ${existing.hostId}.`);\n\n // This is the one intentional Context constructor for Po extension code.\n const root = new Context();\n const runtime: PoCordisRuntimeService = Object.freeze({\n abiVersion: PO_CORDIS_HOST_ABI_VERSION,\n hostId: `po-cordis:${crypto.randomUUID()}`,\n generation: `po-runtime:${crypto.randomUUID()}`,\n mode: options.mode,\n });\n const runtimeFiber = root.plugin(runtimeProvider, runtime);\n const ready = runtimeFiber.await().then(() => undefined);\n let sessionFiber: Fiber | undefined;\n let sessionGeneration = 0;\n let sessionQueue = Promise.resolve();\n let leaseCount = 0;\n let shutdownPromise: Promise<void> | undefined;\n let responder: HostResponder;\n let disposeQuerySubscription = (): void => undefined;\n\n const controller: PoCordisHostController = {\n root,\n runtime,\n shutdown() {\n shutdownPromise ??= (async () => {\n disposeQuerySubscription();\n await ready.catch(() => undefined);\n await sessionQueue.catch(() => undefined);\n await sessionFiber?.dispose();\n sessionFiber = undefined;\n await root.fiber.dispose();\n })();\n return shutdownPromise;\n },\n };\n\n responder = {\n protocol: HOST_PROTOCOL,\n abiVersion: PO_CORDIS_HOST_ABI_VERSION,\n hostId: runtime.hostId,\n root,\n runtime,\n ready,\n acquire() {\n if (shutdownPromise) throw new Error(`The Po Cordis host is shutting down: ${runtime.hostId}.`);\n leaseCount += 1;\n let released = false;\n return {\n root,\n runtime,\n async dispose() {\n if (released) return;\n released = true;\n leaseCount -= 1;\n if (options.mode === 'standalone' && leaseCount === 0) await controller.shutdown();\n },\n };\n },\n shutdown: () => controller.shutdown(),\n };\n try {\n disposeQuerySubscription = pi.events.on(PO_CORDIS_HOST_QUERY_CHANNEL, (value) => {\n const query = asHostQuery(value);\n if (query) query.accept(responder);\n });\n pi.on('session_start', (event, context) => {\n sessionQueue = sessionQueue\n .catch(() => undefined)\n .then(async () => {\n // Pi owns its listener table and can retain this callback across a\n // replacement. A start delivered after finalization belongs to the\n // stale graph and must not revive or fail the next one.\n if (shutdownPromise) return;\n await sessionFiber?.dispose();\n sessionGeneration += 1;\n const service: PoCordisSessionService = Object.freeze({\n sessionId: context.sessionManager.getSessionId(),\n generation: `${runtime.generation}:${String(sessionGeneration)}`,\n reason: event.reason,\n context,\n environment: readPoSessionEnvironment(context.sessionManager.getSessionId()),\n });\n sessionFiber = root.plugin((ctx: Context, value: PoCordisSessionService) => {\n sessionProvider(ctx, value, pi);\n }, service);\n await sessionFiber.await();\n });\n return sessionQueue;\n });\n if (options.mode === 'standalone') {\n pi.on('session_shutdown', () => {\n disposeQuerySubscription();\n });\n }\n await ready;\n } catch (error) {\n await controller.shutdown();\n throw error;\n }\n return controller;\n}\n\n/** Resolves the composed host installed by the canonical runtime. */\nexport function connectPoCordisHost(pi: Pick<ExtensionAPI, 'events'>, source: string): Promise<PoCordisHostConnection>;\nexport function connectPoCordisHost(\n pi: Pick<ExtensionAPI, 'events'>,\n source: string,\n options: { readonly optional: true },\n): Promise<PoCordisHostConnection | undefined>;\nexport async function connectPoCordisHost(\n pi: Pick<ExtensionAPI, 'events'>,\n source: string,\n options?: { readonly optional: true },\n): Promise<PoCordisHostConnection | undefined> {\n const responder = exactlyOneHost(discoverHosts(pi, source), source);\n if (!responder) {\n // Vanilla Pi plugins do not install a Po host. Optional discovery permits only\n // that absence, never an invalid or ambiguous responder.\n if (options?.optional) return undefined;\n throw new Error('The composed Po Cordis host is unavailable. Ensure cordisHost is the first extension.');\n }\n await responder.ready;\n return responder.acquire();\n}\n\n/** Ends the host discovered on this runner. Repeated finalization is a no-op. */\nexport async function finalizePoCordisHost(pi: Pick<ExtensionAPI, 'events'>, source: string): Promise<void> {\n const responder = exactlyOneHost(discoverHosts(pi, source), source);\n await responder?.shutdown();\n}\n"],"mappings":"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"}
@@ -1,26 +1,23 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
+ const require_sync = require("./src/services/runtimeIdentity/sync.cjs");
3
4
  let node_crypto = require("node:crypto");
4
- let node_fs = require("node:fs");
5
- node_fs = require_runtime.__toESM(node_fs, 1);
6
5
  let node_path = require("node:path");
7
6
  node_path = require_runtime.__toESM(node_path, 1);
8
7
  //#region src/services/runtimeIdentity/index.ts
9
8
  /** Canonical on-disk identity used for activation deduplication and fingerprints. */
10
- function canonicalModulePath(target) {
9
+ async function canonicalModulePathAsync(fs, target, context) {
11
10
  const absolute = node_path.default.resolve(target);
12
- let resolved = absolute;
13
- try {
14
- resolved = node_fs.default.realpathSync.native(absolute);
15
- } catch {}
16
- return resolved.split(node_path.default.sep).join("/");
11
+ const resolved = await fs.canonicalPath(absolute, context);
12
+ return (resolved.ok ? resolved.value : absolute).split(node_path.default.sep).join("/");
17
13
  }
18
14
  /** Stable SHA-256 digest for a canonically serialized runtime identity. */
19
15
  function sha256(value) {
20
16
  return (0, node_crypto.createHash)("sha256").update(value).digest("hex");
21
17
  }
22
18
  //#endregion
23
- exports.canonicalModulePath = canonicalModulePath;
19
+ exports.canonicalModulePath = require_sync.canonicalModulePath;
20
+ exports.canonicalModulePathAsync = canonicalModulePathAsync;
24
21
  exports.sha256 = sha256;
25
22
 
26
23
  //# sourceMappingURL=runtimeIdentity.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeIdentity.cjs","names":["path","fs","createHash"],"sources":["../src/services/runtimeIdentity/index.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\n/** Canonical on-disk identity used for activation deduplication and fingerprints. */\nexport function canonicalModulePath(target: string): string {\n const absolute = path.resolve(target);\n let resolved = absolute;\n try {\n resolved = fs.realpathSync.native(absolute);\n } catch {\n // Missing synthetic/test paths still receive an absolute normalized identity.\n }\n return resolved.split(path.sep).join('/');\n}\n\n/** Stable SHA-256 digest for a canonically serialized runtime identity. */\nexport function sha256(value: string): string {\n return createHash('sha256').update(value).digest('hex');\n}\n"],"mappings":";;;;;;;;;AAKA,SAAgB,oBAAoB,QAAwB;CAC1D,MAAM,WAAWA,UAAAA,QAAK,QAAQ,MAAM;CACpC,IAAI,WAAW;CACf,IAAI;EACF,WAAWC,QAAAA,QAAG,aAAa,OAAO,QAAQ;CAC5C,QAAQ,CAER;CACA,OAAO,SAAS,MAAMD,UAAAA,QAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAC1C;;AAGA,SAAgB,OAAO,OAAuB;CAC5C,QAAA,GAAOE,YAAAA,WAAAA,CAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK;AACxD"}
1
+ {"version":3,"file":"runtimeIdentity.cjs","names":["path","createHash"],"sources":["../src/services/runtimeIdentity/index.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport path from 'node:path';\n\nimport type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nexport { canonicalModulePath } from './sync';\n\n/** Canonical on-disk identity used for activation deduplication and fingerprints. */\nexport async function canonicalModulePathAsync(fs: FileSystem, target: string, context: Context): Promise<string> {\n const absolute = path.resolve(target);\n const resolved = await fs.canonicalPath(absolute, context);\n // Missing synthetic/test paths still receive an absolute normalized identity.\n return (resolved.ok ? resolved.value : absolute).split(path.sep).join('/');\n}\n\n/** Stable SHA-256 digest for a canonically serialized runtime identity. */\nexport function sha256(value: string): string {\n return createHash('sha256').update(value).digest('hex');\n}\n"],"mappings":";;;;;;;;AASA,eAAsB,yBAAyB,IAAgB,QAAgB,SAAmC;CAChH,MAAM,WAAWA,UAAAA,QAAK,QAAQ,MAAM;CACpC,MAAM,WAAW,MAAM,GAAG,cAAc,UAAU,OAAO;CAEzD,QAAQ,SAAS,KAAK,SAAS,QAAQ,SAAA,CAAU,MAAMA,UAAAA,QAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAC3E;;AAGA,SAAgB,OAAO,OAAuB;CAC5C,QAAA,GAAOC,YAAAA,WAAAA,CAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK;AACxD"}
@@ -1,7 +1,11 @@
1
+ import { canonicalModulePath } from "./src/services/runtimeIdentity/sync.mjs";
2
+ import { FileSystem } from "@earendil-works/pi-durable/env";
3
+ import { Context } from "@earendil-works/chord";
1
4
  //#region src/services/runtimeIdentity/index.d.ts
2
5
  /** Canonical on-disk identity used for activation deduplication and fingerprints. */
3
- export declare function canonicalModulePath(target: string): string;
6
+ export declare function canonicalModulePathAsync(fs: FileSystem, target: string, context: Context): Promise<string>;
4
7
  /** Stable SHA-256 digest for a canonically serialized runtime identity. */
5
8
  export declare function sha256(value: string): string;
6
9
  //#endregion
10
+ export { canonicalModulePath };
7
11
  //# sourceMappingURL=runtimeIdentity.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeIdentity.d.mts","names":[],"sources":["../src/services/runtimeIdentity/index.ts"],"mappings":";;wBAKgB,oBAAoB;;wBAYpB,OAAO"}
1
+ {"version":3,"file":"runtimeIdentity.d.mts","names":[],"sources":["../src/services/runtimeIdentity/index.ts"],"mappings":";;;;;wBASsB,yBAAyB,IAAI,YAAY,gBAAgB,SAAS,UAAU;;wBAQlF,OAAO"}
@@ -1,21 +1,18 @@
1
+ import { canonicalModulePath } from "./src/services/runtimeIdentity/sync.mjs";
1
2
  import { createHash } from "node:crypto";
2
- import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  //#region src/services/runtimeIdentity/index.ts
5
5
  /** Canonical on-disk identity used for activation deduplication and fingerprints. */
6
- function canonicalModulePath(target) {
6
+ async function canonicalModulePathAsync(fs, target, context) {
7
7
  const absolute = path.resolve(target);
8
- let resolved = absolute;
9
- try {
10
- resolved = fs.realpathSync.native(absolute);
11
- } catch {}
12
- return resolved.split(path.sep).join("/");
8
+ const resolved = await fs.canonicalPath(absolute, context);
9
+ return (resolved.ok ? resolved.value : absolute).split(path.sep).join("/");
13
10
  }
14
11
  /** Stable SHA-256 digest for a canonically serialized runtime identity. */
15
12
  function sha256(value) {
16
13
  return createHash("sha256").update(value).digest("hex");
17
14
  }
18
15
  //#endregion
19
- export { canonicalModulePath, sha256 };
16
+ export { canonicalModulePath, canonicalModulePathAsync, sha256 };
20
17
 
21
18
  //# sourceMappingURL=runtimeIdentity.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeIdentity.mjs","names":[],"sources":["../src/services/runtimeIdentity/index.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\n/** Canonical on-disk identity used for activation deduplication and fingerprints. */\nexport function canonicalModulePath(target: string): string {\n const absolute = path.resolve(target);\n let resolved = absolute;\n try {\n resolved = fs.realpathSync.native(absolute);\n } catch {\n // Missing synthetic/test paths still receive an absolute normalized identity.\n }\n return resolved.split(path.sep).join('/');\n}\n\n/** Stable SHA-256 digest for a canonically serialized runtime identity. */\nexport function sha256(value: string): string {\n return createHash('sha256').update(value).digest('hex');\n}\n"],"mappings":";;;;;AAKA,SAAgB,oBAAoB,QAAwB;CAC1D,MAAM,WAAW,KAAK,QAAQ,MAAM;CACpC,IAAI,WAAW;CACf,IAAI;EACF,WAAW,GAAG,aAAa,OAAO,QAAQ;CAC5C,QAAQ,CAER;CACA,OAAO,SAAS,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAC1C;;AAGA,SAAgB,OAAO,OAAuB;CAC5C,OAAO,WAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK;AACxD"}
1
+ {"version":3,"file":"runtimeIdentity.mjs","names":[],"sources":["../src/services/runtimeIdentity/index.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport path from 'node:path';\n\nimport type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nexport { canonicalModulePath } from './sync';\n\n/** Canonical on-disk identity used for activation deduplication and fingerprints. */\nexport async function canonicalModulePathAsync(fs: FileSystem, target: string, context: Context): Promise<string> {\n const absolute = path.resolve(target);\n const resolved = await fs.canonicalPath(absolute, context);\n // Missing synthetic/test paths still receive an absolute normalized identity.\n return (resolved.ok ? resolved.value : absolute).split(path.sep).join('/');\n}\n\n/** Stable SHA-256 digest for a canonically serialized runtime identity. */\nexport function sha256(value: string): string {\n return createHash('sha256').update(value).digest('hex');\n}\n"],"mappings":";;;;;AASA,eAAsB,yBAAyB,IAAgB,QAAgB,SAAmC;CAChH,MAAM,WAAW,KAAK,QAAQ,MAAM;CACpC,MAAM,WAAW,MAAM,GAAG,cAAc,UAAU,OAAO;CAEzD,QAAQ,SAAS,KAAK,SAAS,QAAQ,SAAA,CAAU,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG;AAC3E;;AAGA,SAAgB,OAAO,OAAuB;CAC5C,OAAO,WAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK;AACxD"}
@@ -1,46 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
- let node_crypto = require("node:crypto");
4
- let node_fs = require("node:fs");
5
- node_fs = require_runtime.__toESM(node_fs, 1);
6
- let node_path = require("node:path");
7
- node_path = require_runtime.__toESM(node_path, 1);
8
- //#region src/services/json/index.ts
9
- const ATOMIC_FILE_SUFFIX = ".tmp";
10
- function isRecord(value) {
11
- return typeof value === "object" && value !== null && !Array.isArray(value);
12
- }
13
- /** Reads a JSON object, treating a missing or empty file as the fallback. */
14
- function readJson(filePath, fallback = {}) {
15
- if (!node_fs.default.existsSync(filePath)) return fallback;
16
- const content = node_fs.default.readFileSync(filePath, "utf8").trim();
17
- return content ? JSON.parse(content) : fallback;
18
- }
19
- /**
20
- * Writes through a uniquely named temporary file in the same directory.
21
- *
22
- * The pid and a UUID are both in the name so two harnesses writing the same
23
- * target cannot collide on the temporary path, and a failed write cleans up
24
- * after itself rather than leaving the fragment behind.
25
- */
26
- function writeFileAtomic(filePath, content) {
27
- node_fs.default.mkdirSync(node_path.default.dirname(filePath), { recursive: true });
28
- const temporaryPath = `${filePath}.${process.pid}.${(0, node_crypto.randomUUID)()}${ATOMIC_FILE_SUFFIX}`;
29
- try {
30
- node_fs.default.writeFileSync(temporaryPath, content);
31
- node_fs.default.renameSync(temporaryPath, filePath);
32
- } catch (error) {
33
- node_fs.default.rmSync(temporaryPath, { force: true });
34
- throw error;
35
- }
36
- }
37
- function writeJson(filePath, value) {
38
- writeFileAtomic(filePath, `${JSON.stringify(value, null, 2)}\n`);
39
- }
40
- //#endregion
41
- exports.isRecord = isRecord;
42
- exports.readJson = readJson;
43
- exports.writeFileAtomic = writeFileAtomic;
44
- exports.writeJson = writeJson;
45
-
46
- //# sourceMappingURL=runtimeJson.cjs.map
2
+ const require_core = require("./src/services/json/core.cjs");
3
+ const require_sync = require("./src/services/json/sync.cjs");
4
+ exports.isRecord = require_core.isRecord;
5
+ exports.parseJsonObject = require_core.parseJsonObject;
6
+ exports.readJson = require_sync.readJson;
7
+ exports.readJsonAsync = require_core.readJsonAsync;
8
+ exports.serializeJson = require_core.serializeJson;
9
+ exports.writeFileAtomic = require_sync.writeFileAtomic;
10
+ exports.writeJson = require_sync.writeJson;
11
+ exports.writeJsonAsync = require_core.writeJsonAsync;
@@ -1,22 +1,3 @@
1
- //#region src/services/json/index.d.ts
2
- /**
3
- * JSON state helpers for files the harness owns on disk.
4
- *
5
- * Compatibility frontends read these files while another repository's harness
6
- * may be writing them, so writes go through a rename rather than a truncate.
7
- */
8
- export type JsonObject = Record<string, unknown>;
9
- export declare function isRecord(value: unknown): value is JsonObject;
10
- /** Reads a JSON object, treating a missing or empty file as the fallback. */
11
- export declare function readJson(filePath: string, fallback?: JsonObject): JsonObject;
12
- /**
13
- * Writes through a uniquely named temporary file in the same directory.
14
- *
15
- * The pid and a UUID are both in the name so two harnesses writing the same
16
- * target cannot collide on the temporary path, and a failed write cleans up
17
- * after itself rather than leaving the fragment behind.
18
- */
19
- export declare function writeFileAtomic(filePath: string, content: string): void;
20
- export declare function writeJson(filePath: string, value: JsonObject): void;
21
- //#endregion
22
- //# sourceMappingURL=runtimeJson.d.mts.map
1
+ import { JsonObject, isRecord, parseJsonObject, readJsonAsync, serializeJson, writeJsonAsync } from "./src/services/json/core.mjs";
2
+ import { readJson, writeFileAtomic, writeJson } from "./src/services/json/sync.mjs";
3
+ export { JsonObject, isRecord, parseJsonObject, readJson, readJsonAsync, serializeJson, writeFileAtomic, writeJson, writeJsonAsync };
@@ -1,39 +1,3 @@
1
- import { randomUUID } from "node:crypto";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- //#region src/services/json/index.ts
5
- const ATOMIC_FILE_SUFFIX = ".tmp";
6
- function isRecord(value) {
7
- return typeof value === "object" && value !== null && !Array.isArray(value);
8
- }
9
- /** Reads a JSON object, treating a missing or empty file as the fallback. */
10
- function readJson(filePath, fallback = {}) {
11
- if (!fs.existsSync(filePath)) return fallback;
12
- const content = fs.readFileSync(filePath, "utf8").trim();
13
- return content ? JSON.parse(content) : fallback;
14
- }
15
- /**
16
- * Writes through a uniquely named temporary file in the same directory.
17
- *
18
- * The pid and a UUID are both in the name so two harnesses writing the same
19
- * target cannot collide on the temporary path, and a failed write cleans up
20
- * after itself rather than leaving the fragment behind.
21
- */
22
- function writeFileAtomic(filePath, content) {
23
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
24
- const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;
25
- try {
26
- fs.writeFileSync(temporaryPath, content);
27
- fs.renameSync(temporaryPath, filePath);
28
- } catch (error) {
29
- fs.rmSync(temporaryPath, { force: true });
30
- throw error;
31
- }
32
- }
33
- function writeJson(filePath, value) {
34
- writeFileAtomic(filePath, `${JSON.stringify(value, null, 2)}\n`);
35
- }
36
- //#endregion
37
- export { isRecord, readJson, writeFileAtomic, writeJson };
38
-
39
- //# sourceMappingURL=runtimeJson.mjs.map
1
+ import { isRecord, parseJsonObject, readJsonAsync, serializeJson, writeJsonAsync } from "./src/services/json/core.mjs";
2
+ import { readJson, writeFileAtomic, writeJson } from "./src/services/json/sync.mjs";
3
+ export { isRecord, parseJsonObject, readJson, readJsonAsync, serializeJson, writeFileAtomic, writeJson, writeJsonAsync };
@@ -4,30 +4,30 @@ const MAX_PENDING_EVENTS = 64;
4
4
  const SERVICE_NAME = "po";
5
5
  const PACKAGE_NAME = "@agimon-ai/po";
6
6
  const HARNESS_EVENT = {
7
- cliFailed: "doom_pi.cli_failed",
8
- contextBuildFailed: "doom_pi.context_build_failed",
9
- resourceCollectionFailed: "doom_pi.resource_collection_failed",
10
- configLoadFailed: "doom_pi.config_load_failed",
11
- launchFailed: "doom_pi.launch_failed",
12
- compatibilityLaunchFailed: "doom_pi.compatibility_launch_failed",
13
- harnessStateParseFailed: "doom_pi.harness_state_parse_failed",
14
- hookFailed: "doom_pi.hook_failed",
15
- hookRegistryReadFailed: "doom_pi.hook_registry_read_failed",
16
- personaReadFailed: "doom_pi.persona_read_failed",
17
- styleSystemRenderFailed: "doom_pi.style_system_render_failed",
18
- majorModeUnavailable: "doom_pi.major_mode_unavailable",
19
- profileLoadFailed: "doom_pi.profile_load_failed",
20
- launchCompleted: "doom_pi.launch_completed",
21
- projectTrustResolved: "doom_pi.project_trust_resolved",
22
- majorModeSwitched: "doom_pi.major_mode_switched",
23
- profileApplied: "doom_pi.profile_applied"
7
+ cliFailed: "po_pi.cli_failed",
8
+ contextBuildFailed: "po_pi.context_build_failed",
9
+ resourceCollectionFailed: "po_pi.resource_collection_failed",
10
+ configLoadFailed: "po_pi.config_load_failed",
11
+ launchFailed: "po_pi.launch_failed",
12
+ compatibilityLaunchFailed: "po_pi.compatibility_launch_failed",
13
+ harnessStateParseFailed: "po_pi.harness_state_parse_failed",
14
+ hookFailed: "po_pi.hook_failed",
15
+ hookRegistryReadFailed: "po_pi.hook_registry_read_failed",
16
+ personaReadFailed: "po_pi.persona_read_failed",
17
+ styleSystemRenderFailed: "po_pi.style_system_render_failed",
18
+ majorModeUnavailable: "po_pi.major_mode_unavailable",
19
+ profileLoadFailed: "po_pi.profile_load_failed",
20
+ launchCompleted: "po_pi.launch_completed",
21
+ projectTrustResolved: "po_pi.project_trust_resolved",
22
+ majorModeSwitched: "po_pi.major_mode_switched",
23
+ profileApplied: "po_pi.profile_applied"
24
24
  };
25
25
  function createHarnessTelemetry(options = {}) {
26
26
  let telemetryPromise;
27
27
  const pendingEvents = [];
28
28
  let pendingEventDropReported = false;
29
29
  const telemetry = () => {
30
- telemetryPromise ??= import("@agimon-ai/po-telemetry").then(({ createDoomTelemetry }) => createDoomTelemetry({
30
+ telemetryPromise ??= import("@agimon-ai/po-telemetry").then(({ createPoTelemetry }) => createPoTelemetry({
31
31
  serviceName: SERVICE_NAME,
32
32
  packageName: PACKAGE_NAME,
33
33
  cwd: options.cwd,
@@ -63,7 +63,7 @@ function createHarnessTelemetry(options = {}) {
63
63
  else if (!pendingEventDropReported) {
64
64
  pendingEventDropReported = true;
65
65
  try {
66
- (options.warn ?? ((message) => process.emitWarning(message)))("Doom telemetry deferred event limit reached; later events were dropped.");
66
+ (options.warn ?? ((message) => process.emitWarning(message)))("Po telemetry deferred event limit reached; later events were dropped.");
67
67
  } catch {}
68
68
  }
69
69
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeLogSinkTelemetry.cjs","names":[],"sources":["../src/services/logSinkTelemetry/index.ts"],"sourcesContent":["import type { DoomTelemetry, DoomTelemetryOptions } from '@agimon-ai/po-telemetry';\n\nconst MAX_PENDING_EVENTS = 64;\nconst SERVICE_NAME = 'po';\nconst PACKAGE_NAME = '@agimon-ai/po';\n\nexport const HARNESS_EVENT = {\n cliFailed: 'doom_pi.cli_failed',\n contextBuildFailed: 'doom_pi.context_build_failed',\n resourceCollectionFailed: 'doom_pi.resource_collection_failed',\n configLoadFailed: 'doom_pi.config_load_failed',\n launchFailed: 'doom_pi.launch_failed',\n compatibilityLaunchFailed: 'doom_pi.compatibility_launch_failed',\n harnessStateParseFailed: 'doom_pi.harness_state_parse_failed',\n hookFailed: 'doom_pi.hook_failed',\n hookRegistryReadFailed: 'doom_pi.hook_registry_read_failed',\n personaReadFailed: 'doom_pi.persona_read_failed',\n styleSystemRenderFailed: 'doom_pi.style_system_render_failed',\n majorModeUnavailable: 'doom_pi.major_mode_unavailable',\n profileLoadFailed: 'doom_pi.profile_load_failed',\n launchCompleted: 'doom_pi.launch_completed',\n projectTrustResolved: 'doom_pi.project_trust_resolved',\n majorModeSwitched: 'doom_pi.major_mode_switched',\n profileApplied: 'doom_pi.profile_applied',\n} as const;\n\nexport type HarnessEventName = (typeof HARNESS_EVENT)[keyof typeof HARNESS_EVENT];\nexport type HarnessEventAttributes = Record<string, string | number | boolean>;\nexport type HarnessErrorSink = (event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes) => void;\n\nexport interface HarnessFailureReporter {\n error: HarnessErrorSink;\n warn: HarnessErrorSink;\n}\n\nexport interface HarnessTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n /** Run startup callbacks before loading the telemetry backend. */\n deferSpans?: boolean;\n}\n\nexport interface HarnessTelemetry {\n recordError(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordWarning(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordEvent(event: HarnessEventName, attributes?: HarnessEventAttributes): Promise<void>;\n runInSpan<T>(name: string, attributes: HarnessEventAttributes, callback: () => Promise<T>): Promise<T>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createHarnessTelemetry(options: HarnessTelemetryOptions = {}): HarnessTelemetry {\n let telemetryPromise: Promise<DoomTelemetry> | undefined;\n const pendingEvents: Array<{ event: HarnessEventName; attributes?: HarnessEventAttributes }> = [];\n let pendingEventDropReported = false;\n const telemetry = (): Promise<DoomTelemetry> => {\n telemetryPromise ??= import('@agimon-ai/po-telemetry').then(({ createDoomTelemetry }) =>\n createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n }),\n );\n return telemetryPromise;\n };\n const drainEvents = async (loaded: DoomTelemetry): Promise<void> => {\n for (const pending of pendingEvents.splice(0)) {\n await loaded.recordEvent(pending.event, pending.attributes);\n }\n };\n return {\n recordError: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordError(event, error, attributes);\n },\n recordWarning: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordWarning(event, error, attributes);\n },\n recordEvent: async (event, attributes) => {\n if (options.deferSpans && !telemetryPromise) {\n if (pendingEvents.length < MAX_PENDING_EVENTS) pendingEvents.push({ event, attributes });\n else if (!pendingEventDropReported) {\n pendingEventDropReported = true;\n try {\n const reportWarning = options.warn ?? ((message: string) => process.emitWarning(message));\n reportWarning('Doom telemetry deferred event limit reached; later events were dropped.');\n } catch {\n // Telemetry warnings must not interrupt launcher startup.\n }\n }\n return;\n }\n await (await telemetry()).recordEvent(event, attributes);\n },\n runInSpan: (name, attributes, callback) => {\n // The launcher opts into this path for pre-spawn preparation. Lifecycle\n // events remain buffered until flush; failures still initialize the real\n // sink immediately so diagnostics are not lost.\n if (options.deferSpans && !telemetryPromise) return callback();\n return telemetry().then((loaded) => loaded.runInSpan(name, attributes, callback));\n },\n flush: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.flush();\n },\n shutdown: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.shutdown();\n },\n };\n}\n\nexport function toFailureReporter(telemetry: HarnessTelemetry): HarnessFailureReporter {\n return {\n error: (event, error, attributes) => void telemetry.recordError(event, error, attributes),\n warn: (event, error, attributes) => void telemetry.recordWarning(event, error, attributes),\n };\n}\n"],"mappings":";;AAEA,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AACrB,MAAM,eAAe;AAErB,MAAa,gBAAgB;CAC3B,WAAW;CACX,oBAAoB;CACpB,0BAA0B;CAC1B,kBAAkB;CAClB,cAAc;CACd,2BAA2B;CAC3B,yBAAyB;CACzB,YAAY;CACZ,wBAAwB;CACxB,mBAAmB;CACnB,yBAAyB;CACzB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;CACjB,sBAAsB;CACtB,mBAAmB;CACnB,gBAAgB;AAClB;AA8BA,SAAgB,uBAAuB,UAAmC,CAAC,GAAqB;CAC9F,IAAI;CACJ,MAAM,gBAAyF,CAAC;CAChG,IAAI,2BAA2B;CAC/B,MAAM,kBAA0C;EAC9C,qBAAqB,OAAO,0BAA0B,CAAC,MAAM,EAAE,0BAC7D,oBAAoB;GAClB,aAAa;GACb,aAAa;GACb,KAAK,QAAQ;GACb,eAAe,QAAQ;GACvB,KAAK,QAAQ;GACb,kBAAkB,QAAQ;GAC1B,MAAM,QAAQ;GACd,YAAY;GACZ,cAAc;EAChB,CAAC,CACH;EACA,OAAO;CACT;CACA,MAAM,cAAc,OAAO,WAAyC;EAClE,KAAK,MAAM,WAAW,cAAc,OAAO,CAAC,GAC1C,MAAM,OAAO,YAAY,QAAQ,OAAO,QAAQ,UAAU;CAE9D;CACA,OAAO;EACL,aAAa,OAAO,OAAO,OAAO,eAAe;GAC/C,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,YAAY,OAAO,OAAO,UAAU;EACnD;EACA,eAAe,OAAO,OAAO,OAAO,eAAe;GACjD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,cAAc,OAAO,OAAO,UAAU;EACrD;EACA,aAAa,OAAO,OAAO,eAAe;GACxC,IAAI,QAAQ,cAAc,CAAC,kBAAkB;IAC3C,IAAI,cAAc,SAAS,oBAAoB,cAAc,KAAK;KAAE;KAAO;IAAW,CAAC;SAClF,IAAI,CAAC,0BAA0B;KAClC,2BAA2B;KAC3B,IAAI;MAEF,CADsB,QAAQ,UAAU,YAAoB,QAAQ,YAAY,OAAO,GAAA,CACzE,yEAAyE;KACzF,QAAQ,CAER;IACF;IACA;GACF;GACA,OAAO,MAAM,UAAU,EAAA,CAAG,YAAY,OAAO,UAAU;EACzD;EACA,YAAY,MAAM,YAAY,aAAa;GAIzC,IAAI,QAAQ,cAAc,CAAC,kBAAkB,OAAO,SAAS;GAC7D,OAAO,UAAU,CAAC,CAAC,MAAM,WAAW,OAAO,UAAU,MAAM,YAAY,QAAQ,CAAC;EAClF;EACA,OAAO,YAAY;GACjB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,MAAM;EACrB;EACA,UAAU,YAAY;GACpB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,SAAS;EACxB;CACF;AACF;AAEA,SAAgB,kBAAkB,WAAqD;CACrF,OAAO;EACL,QAAQ,OAAO,OAAO,eAAe,KAAK,UAAU,YAAY,OAAO,OAAO,UAAU;EACxF,OAAO,OAAO,OAAO,eAAe,KAAK,UAAU,cAAc,OAAO,OAAO,UAAU;CAC3F;AACF"}
1
+ {"version":3,"file":"runtimeLogSinkTelemetry.cjs","names":[],"sources":["../src/services/logSinkTelemetry/index.ts"],"sourcesContent":["import type { PoTelemetry, PoTelemetryOptions } from '@agimon-ai/po-telemetry';\n\nconst MAX_PENDING_EVENTS = 64;\nconst SERVICE_NAME = 'po';\nconst PACKAGE_NAME = '@agimon-ai/po';\n\nexport const HARNESS_EVENT = {\n cliFailed: 'po_pi.cli_failed',\n contextBuildFailed: 'po_pi.context_build_failed',\n resourceCollectionFailed: 'po_pi.resource_collection_failed',\n configLoadFailed: 'po_pi.config_load_failed',\n launchFailed: 'po_pi.launch_failed',\n compatibilityLaunchFailed: 'po_pi.compatibility_launch_failed',\n harnessStateParseFailed: 'po_pi.harness_state_parse_failed',\n hookFailed: 'po_pi.hook_failed',\n hookRegistryReadFailed: 'po_pi.hook_registry_read_failed',\n personaReadFailed: 'po_pi.persona_read_failed',\n styleSystemRenderFailed: 'po_pi.style_system_render_failed',\n majorModeUnavailable: 'po_pi.major_mode_unavailable',\n profileLoadFailed: 'po_pi.profile_load_failed',\n launchCompleted: 'po_pi.launch_completed',\n projectTrustResolved: 'po_pi.project_trust_resolved',\n majorModeSwitched: 'po_pi.major_mode_switched',\n profileApplied: 'po_pi.profile_applied',\n} as const;\n\nexport type HarnessEventName = (typeof HARNESS_EVENT)[keyof typeof HARNESS_EVENT];\nexport type HarnessEventAttributes = Record<string, string | number | boolean>;\nexport type HarnessErrorSink = (event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes) => void;\n\nexport interface HarnessFailureReporter {\n error: HarnessErrorSink;\n warn: HarnessErrorSink;\n}\n\nexport interface HarnessTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<PoTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n /** Run startup callbacks before loading the telemetry backend. */\n deferSpans?: boolean;\n}\n\nexport interface HarnessTelemetry {\n recordError(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordWarning(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordEvent(event: HarnessEventName, attributes?: HarnessEventAttributes): Promise<void>;\n runInSpan<T>(name: string, attributes: HarnessEventAttributes, callback: () => Promise<T>): Promise<T>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createHarnessTelemetry(options: HarnessTelemetryOptions = {}): HarnessTelemetry {\n let telemetryPromise: Promise<PoTelemetry> | undefined;\n const pendingEvents: Array<{ event: HarnessEventName; attributes?: HarnessEventAttributes }> = [];\n let pendingEventDropReported = false;\n const telemetry = (): Promise<PoTelemetry> => {\n telemetryPromise ??= import('@agimon-ai/po-telemetry').then(({ createPoTelemetry }) =>\n createPoTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n }),\n );\n return telemetryPromise;\n };\n const drainEvents = async (loaded: PoTelemetry): Promise<void> => {\n for (const pending of pendingEvents.splice(0)) {\n await loaded.recordEvent(pending.event, pending.attributes);\n }\n };\n return {\n recordError: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordError(event, error, attributes);\n },\n recordWarning: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordWarning(event, error, attributes);\n },\n recordEvent: async (event, attributes) => {\n if (options.deferSpans && !telemetryPromise) {\n if (pendingEvents.length < MAX_PENDING_EVENTS) pendingEvents.push({ event, attributes });\n else if (!pendingEventDropReported) {\n pendingEventDropReported = true;\n try {\n const reportWarning = options.warn ?? ((message: string) => process.emitWarning(message));\n reportWarning('Po telemetry deferred event limit reached; later events were dropped.');\n } catch {\n // Telemetry warnings must not interrupt launcher startup.\n }\n }\n return;\n }\n await (await telemetry()).recordEvent(event, attributes);\n },\n runInSpan: (name, attributes, callback) => {\n // The launcher opts into this path for pre-spawn preparation. Lifecycle\n // events remain buffered until flush; failures still initialize the real\n // sink immediately so diagnostics are not lost.\n if (options.deferSpans && !telemetryPromise) return callback();\n return telemetry().then((loaded) => loaded.runInSpan(name, attributes, callback));\n },\n flush: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.flush();\n },\n shutdown: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.shutdown();\n },\n };\n}\n\nexport function toFailureReporter(telemetry: HarnessTelemetry): HarnessFailureReporter {\n return {\n error: (event, error, attributes) => void telemetry.recordError(event, error, attributes),\n warn: (event, error, attributes) => void telemetry.recordWarning(event, error, attributes),\n };\n}\n"],"mappings":";;AAEA,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AACrB,MAAM,eAAe;AAErB,MAAa,gBAAgB;CAC3B,WAAW;CACX,oBAAoB;CACpB,0BAA0B;CAC1B,kBAAkB;CAClB,cAAc;CACd,2BAA2B;CAC3B,yBAAyB;CACzB,YAAY;CACZ,wBAAwB;CACxB,mBAAmB;CACnB,yBAAyB;CACzB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;CACjB,sBAAsB;CACtB,mBAAmB;CACnB,gBAAgB;AAClB;AA8BA,SAAgB,uBAAuB,UAAmC,CAAC,GAAqB;CAC9F,IAAI;CACJ,MAAM,gBAAyF,CAAC;CAChG,IAAI,2BAA2B;CAC/B,MAAM,kBAAwC;EAC5C,qBAAqB,OAAO,0BAA0B,CAAC,MAAM,EAAE,wBAC7D,kBAAkB;GAChB,aAAa;GACb,aAAa;GACb,KAAK,QAAQ;GACb,eAAe,QAAQ;GACvB,KAAK,QAAQ;GACb,kBAAkB,QAAQ;GAC1B,MAAM,QAAQ;GACd,YAAY;GACZ,cAAc;EAChB,CAAC,CACH;EACA,OAAO;CACT;CACA,MAAM,cAAc,OAAO,WAAuC;EAChE,KAAK,MAAM,WAAW,cAAc,OAAO,CAAC,GAC1C,MAAM,OAAO,YAAY,QAAQ,OAAO,QAAQ,UAAU;CAE9D;CACA,OAAO;EACL,aAAa,OAAO,OAAO,OAAO,eAAe;GAC/C,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,YAAY,OAAO,OAAO,UAAU;EACnD;EACA,eAAe,OAAO,OAAO,OAAO,eAAe;GACjD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,cAAc,OAAO,OAAO,UAAU;EACrD;EACA,aAAa,OAAO,OAAO,eAAe;GACxC,IAAI,QAAQ,cAAc,CAAC,kBAAkB;IAC3C,IAAI,cAAc,SAAS,oBAAoB,cAAc,KAAK;KAAE;KAAO;IAAW,CAAC;SAClF,IAAI,CAAC,0BAA0B;KAClC,2BAA2B;KAC3B,IAAI;MAEF,CADsB,QAAQ,UAAU,YAAoB,QAAQ,YAAY,OAAO,GAAA,CACzE,uEAAuE;KACvF,QAAQ,CAER;IACF;IACA;GACF;GACA,OAAO,MAAM,UAAU,EAAA,CAAG,YAAY,OAAO,UAAU;EACzD;EACA,YAAY,MAAM,YAAY,aAAa;GAIzC,IAAI,QAAQ,cAAc,CAAC,kBAAkB,OAAO,SAAS;GAC7D,OAAO,UAAU,CAAC,CAAC,MAAM,WAAW,OAAO,UAAU,MAAM,YAAY,QAAQ,CAAC;EAClF;EACA,OAAO,YAAY;GACjB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,MAAM;EACrB;EACA,UAAU,YAAY;GACpB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,SAAS;EACxB;CACF;AACF;AAEA,SAAgB,kBAAkB,WAAqD;CACrF,OAAO;EACL,QAAQ,OAAO,OAAO,eAAe,KAAK,UAAU,YAAY,OAAO,OAAO,UAAU;EACxF,OAAO,OAAO,OAAO,eAAe,KAAK,UAAU,cAAc,OAAO,OAAO,UAAU;CAC3F;AACF"}
@@ -1,23 +1,23 @@
1
- import { DoomTelemetryOptions } from "@agimon-ai/po-telemetry";
1
+ import { PoTelemetryOptions } from "@agimon-ai/po-telemetry";
2
2
  //#region src/services/logSinkTelemetry/index.d.ts
3
3
  export declare const HARNESS_EVENT: {
4
- readonly cliFailed: 'doom_pi.cli_failed';
5
- readonly contextBuildFailed: 'doom_pi.context_build_failed';
6
- readonly resourceCollectionFailed: 'doom_pi.resource_collection_failed';
7
- readonly configLoadFailed: 'doom_pi.config_load_failed';
8
- readonly launchFailed: 'doom_pi.launch_failed';
9
- readonly compatibilityLaunchFailed: 'doom_pi.compatibility_launch_failed';
10
- readonly harnessStateParseFailed: 'doom_pi.harness_state_parse_failed';
11
- readonly hookFailed: 'doom_pi.hook_failed';
12
- readonly hookRegistryReadFailed: 'doom_pi.hook_registry_read_failed';
13
- readonly personaReadFailed: 'doom_pi.persona_read_failed';
14
- readonly styleSystemRenderFailed: 'doom_pi.style_system_render_failed';
15
- readonly majorModeUnavailable: 'doom_pi.major_mode_unavailable';
16
- readonly profileLoadFailed: 'doom_pi.profile_load_failed';
17
- readonly launchCompleted: 'doom_pi.launch_completed';
18
- readonly projectTrustResolved: 'doom_pi.project_trust_resolved';
19
- readonly majorModeSwitched: 'doom_pi.major_mode_switched';
20
- readonly profileApplied: 'doom_pi.profile_applied';
4
+ readonly cliFailed: 'po_pi.cli_failed';
5
+ readonly contextBuildFailed: 'po_pi.context_build_failed';
6
+ readonly resourceCollectionFailed: 'po_pi.resource_collection_failed';
7
+ readonly configLoadFailed: 'po_pi.config_load_failed';
8
+ readonly launchFailed: 'po_pi.launch_failed';
9
+ readonly compatibilityLaunchFailed: 'po_pi.compatibility_launch_failed';
10
+ readonly harnessStateParseFailed: 'po_pi.harness_state_parse_failed';
11
+ readonly hookFailed: 'po_pi.hook_failed';
12
+ readonly hookRegistryReadFailed: 'po_pi.hook_registry_read_failed';
13
+ readonly personaReadFailed: 'po_pi.persona_read_failed';
14
+ readonly styleSystemRenderFailed: 'po_pi.style_system_render_failed';
15
+ readonly majorModeUnavailable: 'po_pi.major_mode_unavailable';
16
+ readonly profileLoadFailed: 'po_pi.profile_load_failed';
17
+ readonly launchCompleted: 'po_pi.launch_completed';
18
+ readonly projectTrustResolved: 'po_pi.project_trust_resolved';
19
+ readonly majorModeSwitched: 'po_pi.major_mode_switched';
20
+ readonly profileApplied: 'po_pi.profile_applied';
21
21
  };
22
22
  export type HarnessEventName = (typeof HARNESS_EVENT)[keyof typeof HARNESS_EVENT];
23
23
  export type HarnessEventAttributes = Record<string, string | number | boolean>;
@@ -30,7 +30,7 @@ export interface HarnessTelemetryOptions {
30
30
  cwd?: string;
31
31
  workspaceRoot?: string;
32
32
  env?: NodeJS.ProcessEnv;
33
- telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;
33
+ telemetryFactory?: NonNullable<PoTelemetryOptions['telemetryFactory']>;
34
34
  warn?: (message: string) => void;
35
35
  /** Run startup callbacks before loading the telemetry backend. */
36
36
  deferSpans?: boolean;
@@ -3,30 +3,30 @@ const MAX_PENDING_EVENTS = 64;
3
3
  const SERVICE_NAME = "po";
4
4
  const PACKAGE_NAME = "@agimon-ai/po";
5
5
  const HARNESS_EVENT = {
6
- cliFailed: "doom_pi.cli_failed",
7
- contextBuildFailed: "doom_pi.context_build_failed",
8
- resourceCollectionFailed: "doom_pi.resource_collection_failed",
9
- configLoadFailed: "doom_pi.config_load_failed",
10
- launchFailed: "doom_pi.launch_failed",
11
- compatibilityLaunchFailed: "doom_pi.compatibility_launch_failed",
12
- harnessStateParseFailed: "doom_pi.harness_state_parse_failed",
13
- hookFailed: "doom_pi.hook_failed",
14
- hookRegistryReadFailed: "doom_pi.hook_registry_read_failed",
15
- personaReadFailed: "doom_pi.persona_read_failed",
16
- styleSystemRenderFailed: "doom_pi.style_system_render_failed",
17
- majorModeUnavailable: "doom_pi.major_mode_unavailable",
18
- profileLoadFailed: "doom_pi.profile_load_failed",
19
- launchCompleted: "doom_pi.launch_completed",
20
- projectTrustResolved: "doom_pi.project_trust_resolved",
21
- majorModeSwitched: "doom_pi.major_mode_switched",
22
- profileApplied: "doom_pi.profile_applied"
6
+ cliFailed: "po_pi.cli_failed",
7
+ contextBuildFailed: "po_pi.context_build_failed",
8
+ resourceCollectionFailed: "po_pi.resource_collection_failed",
9
+ configLoadFailed: "po_pi.config_load_failed",
10
+ launchFailed: "po_pi.launch_failed",
11
+ compatibilityLaunchFailed: "po_pi.compatibility_launch_failed",
12
+ harnessStateParseFailed: "po_pi.harness_state_parse_failed",
13
+ hookFailed: "po_pi.hook_failed",
14
+ hookRegistryReadFailed: "po_pi.hook_registry_read_failed",
15
+ personaReadFailed: "po_pi.persona_read_failed",
16
+ styleSystemRenderFailed: "po_pi.style_system_render_failed",
17
+ majorModeUnavailable: "po_pi.major_mode_unavailable",
18
+ profileLoadFailed: "po_pi.profile_load_failed",
19
+ launchCompleted: "po_pi.launch_completed",
20
+ projectTrustResolved: "po_pi.project_trust_resolved",
21
+ majorModeSwitched: "po_pi.major_mode_switched",
22
+ profileApplied: "po_pi.profile_applied"
23
23
  };
24
24
  function createHarnessTelemetry(options = {}) {
25
25
  let telemetryPromise;
26
26
  const pendingEvents = [];
27
27
  let pendingEventDropReported = false;
28
28
  const telemetry = () => {
29
- telemetryPromise ??= import("@agimon-ai/po-telemetry").then(({ createDoomTelemetry }) => createDoomTelemetry({
29
+ telemetryPromise ??= import("@agimon-ai/po-telemetry").then(({ createPoTelemetry }) => createPoTelemetry({
30
30
  serviceName: SERVICE_NAME,
31
31
  packageName: PACKAGE_NAME,
32
32
  cwd: options.cwd,
@@ -62,7 +62,7 @@ function createHarnessTelemetry(options = {}) {
62
62
  else if (!pendingEventDropReported) {
63
63
  pendingEventDropReported = true;
64
64
  try {
65
- (options.warn ?? ((message) => process.emitWarning(message)))("Doom telemetry deferred event limit reached; later events were dropped.");
65
+ (options.warn ?? ((message) => process.emitWarning(message)))("Po telemetry deferred event limit reached; later events were dropped.");
66
66
  } catch {}
67
67
  }
68
68
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeLogSinkTelemetry.mjs","names":[],"sources":["../src/services/logSinkTelemetry/index.ts"],"sourcesContent":["import type { DoomTelemetry, DoomTelemetryOptions } from '@agimon-ai/po-telemetry';\n\nconst MAX_PENDING_EVENTS = 64;\nconst SERVICE_NAME = 'po';\nconst PACKAGE_NAME = '@agimon-ai/po';\n\nexport const HARNESS_EVENT = {\n cliFailed: 'doom_pi.cli_failed',\n contextBuildFailed: 'doom_pi.context_build_failed',\n resourceCollectionFailed: 'doom_pi.resource_collection_failed',\n configLoadFailed: 'doom_pi.config_load_failed',\n launchFailed: 'doom_pi.launch_failed',\n compatibilityLaunchFailed: 'doom_pi.compatibility_launch_failed',\n harnessStateParseFailed: 'doom_pi.harness_state_parse_failed',\n hookFailed: 'doom_pi.hook_failed',\n hookRegistryReadFailed: 'doom_pi.hook_registry_read_failed',\n personaReadFailed: 'doom_pi.persona_read_failed',\n styleSystemRenderFailed: 'doom_pi.style_system_render_failed',\n majorModeUnavailable: 'doom_pi.major_mode_unavailable',\n profileLoadFailed: 'doom_pi.profile_load_failed',\n launchCompleted: 'doom_pi.launch_completed',\n projectTrustResolved: 'doom_pi.project_trust_resolved',\n majorModeSwitched: 'doom_pi.major_mode_switched',\n profileApplied: 'doom_pi.profile_applied',\n} as const;\n\nexport type HarnessEventName = (typeof HARNESS_EVENT)[keyof typeof HARNESS_EVENT];\nexport type HarnessEventAttributes = Record<string, string | number | boolean>;\nexport type HarnessErrorSink = (event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes) => void;\n\nexport interface HarnessFailureReporter {\n error: HarnessErrorSink;\n warn: HarnessErrorSink;\n}\n\nexport interface HarnessTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n /** Run startup callbacks before loading the telemetry backend. */\n deferSpans?: boolean;\n}\n\nexport interface HarnessTelemetry {\n recordError(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordWarning(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordEvent(event: HarnessEventName, attributes?: HarnessEventAttributes): Promise<void>;\n runInSpan<T>(name: string, attributes: HarnessEventAttributes, callback: () => Promise<T>): Promise<T>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createHarnessTelemetry(options: HarnessTelemetryOptions = {}): HarnessTelemetry {\n let telemetryPromise: Promise<DoomTelemetry> | undefined;\n const pendingEvents: Array<{ event: HarnessEventName; attributes?: HarnessEventAttributes }> = [];\n let pendingEventDropReported = false;\n const telemetry = (): Promise<DoomTelemetry> => {\n telemetryPromise ??= import('@agimon-ai/po-telemetry').then(({ createDoomTelemetry }) =>\n createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n }),\n );\n return telemetryPromise;\n };\n const drainEvents = async (loaded: DoomTelemetry): Promise<void> => {\n for (const pending of pendingEvents.splice(0)) {\n await loaded.recordEvent(pending.event, pending.attributes);\n }\n };\n return {\n recordError: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordError(event, error, attributes);\n },\n recordWarning: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordWarning(event, error, attributes);\n },\n recordEvent: async (event, attributes) => {\n if (options.deferSpans && !telemetryPromise) {\n if (pendingEvents.length < MAX_PENDING_EVENTS) pendingEvents.push({ event, attributes });\n else if (!pendingEventDropReported) {\n pendingEventDropReported = true;\n try {\n const reportWarning = options.warn ?? ((message: string) => process.emitWarning(message));\n reportWarning('Doom telemetry deferred event limit reached; later events were dropped.');\n } catch {\n // Telemetry warnings must not interrupt launcher startup.\n }\n }\n return;\n }\n await (await telemetry()).recordEvent(event, attributes);\n },\n runInSpan: (name, attributes, callback) => {\n // The launcher opts into this path for pre-spawn preparation. Lifecycle\n // events remain buffered until flush; failures still initialize the real\n // sink immediately so diagnostics are not lost.\n if (options.deferSpans && !telemetryPromise) return callback();\n return telemetry().then((loaded) => loaded.runInSpan(name, attributes, callback));\n },\n flush: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.flush();\n },\n shutdown: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.shutdown();\n },\n };\n}\n\nexport function toFailureReporter(telemetry: HarnessTelemetry): HarnessFailureReporter {\n return {\n error: (event, error, attributes) => void telemetry.recordError(event, error, attributes),\n warn: (event, error, attributes) => void telemetry.recordWarning(event, error, attributes),\n };\n}\n"],"mappings":";AAEA,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AACrB,MAAM,eAAe;AAErB,MAAa,gBAAgB;CAC3B,WAAW;CACX,oBAAoB;CACpB,0BAA0B;CAC1B,kBAAkB;CAClB,cAAc;CACd,2BAA2B;CAC3B,yBAAyB;CACzB,YAAY;CACZ,wBAAwB;CACxB,mBAAmB;CACnB,yBAAyB;CACzB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;CACjB,sBAAsB;CACtB,mBAAmB;CACnB,gBAAgB;AAClB;AA8BA,SAAgB,uBAAuB,UAAmC,CAAC,GAAqB;CAC9F,IAAI;CACJ,MAAM,gBAAyF,CAAC;CAChG,IAAI,2BAA2B;CAC/B,MAAM,kBAA0C;EAC9C,qBAAqB,OAAO,0BAA0B,CAAC,MAAM,EAAE,0BAC7D,oBAAoB;GAClB,aAAa;GACb,aAAa;GACb,KAAK,QAAQ;GACb,eAAe,QAAQ;GACvB,KAAK,QAAQ;GACb,kBAAkB,QAAQ;GAC1B,MAAM,QAAQ;GACd,YAAY;GACZ,cAAc;EAChB,CAAC,CACH;EACA,OAAO;CACT;CACA,MAAM,cAAc,OAAO,WAAyC;EAClE,KAAK,MAAM,WAAW,cAAc,OAAO,CAAC,GAC1C,MAAM,OAAO,YAAY,QAAQ,OAAO,QAAQ,UAAU;CAE9D;CACA,OAAO;EACL,aAAa,OAAO,OAAO,OAAO,eAAe;GAC/C,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,YAAY,OAAO,OAAO,UAAU;EACnD;EACA,eAAe,OAAO,OAAO,OAAO,eAAe;GACjD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,cAAc,OAAO,OAAO,UAAU;EACrD;EACA,aAAa,OAAO,OAAO,eAAe;GACxC,IAAI,QAAQ,cAAc,CAAC,kBAAkB;IAC3C,IAAI,cAAc,SAAS,oBAAoB,cAAc,KAAK;KAAE;KAAO;IAAW,CAAC;SAClF,IAAI,CAAC,0BAA0B;KAClC,2BAA2B;KAC3B,IAAI;MAEF,CADsB,QAAQ,UAAU,YAAoB,QAAQ,YAAY,OAAO,GAAA,CACzE,yEAAyE;KACzF,QAAQ,CAER;IACF;IACA;GACF;GACA,OAAO,MAAM,UAAU,EAAA,CAAG,YAAY,OAAO,UAAU;EACzD;EACA,YAAY,MAAM,YAAY,aAAa;GAIzC,IAAI,QAAQ,cAAc,CAAC,kBAAkB,OAAO,SAAS;GAC7D,OAAO,UAAU,CAAC,CAAC,MAAM,WAAW,OAAO,UAAU,MAAM,YAAY,QAAQ,CAAC;EAClF;EACA,OAAO,YAAY;GACjB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,MAAM;EACrB;EACA,UAAU,YAAY;GACpB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,SAAS;EACxB;CACF;AACF;AAEA,SAAgB,kBAAkB,WAAqD;CACrF,OAAO;EACL,QAAQ,OAAO,OAAO,eAAe,KAAK,UAAU,YAAY,OAAO,OAAO,UAAU;EACxF,OAAO,OAAO,OAAO,eAAe,KAAK,UAAU,cAAc,OAAO,OAAO,UAAU;CAC3F;AACF"}
1
+ {"version":3,"file":"runtimeLogSinkTelemetry.mjs","names":[],"sources":["../src/services/logSinkTelemetry/index.ts"],"sourcesContent":["import type { PoTelemetry, PoTelemetryOptions } from '@agimon-ai/po-telemetry';\n\nconst MAX_PENDING_EVENTS = 64;\nconst SERVICE_NAME = 'po';\nconst PACKAGE_NAME = '@agimon-ai/po';\n\nexport const HARNESS_EVENT = {\n cliFailed: 'po_pi.cli_failed',\n contextBuildFailed: 'po_pi.context_build_failed',\n resourceCollectionFailed: 'po_pi.resource_collection_failed',\n configLoadFailed: 'po_pi.config_load_failed',\n launchFailed: 'po_pi.launch_failed',\n compatibilityLaunchFailed: 'po_pi.compatibility_launch_failed',\n harnessStateParseFailed: 'po_pi.harness_state_parse_failed',\n hookFailed: 'po_pi.hook_failed',\n hookRegistryReadFailed: 'po_pi.hook_registry_read_failed',\n personaReadFailed: 'po_pi.persona_read_failed',\n styleSystemRenderFailed: 'po_pi.style_system_render_failed',\n majorModeUnavailable: 'po_pi.major_mode_unavailable',\n profileLoadFailed: 'po_pi.profile_load_failed',\n launchCompleted: 'po_pi.launch_completed',\n projectTrustResolved: 'po_pi.project_trust_resolved',\n majorModeSwitched: 'po_pi.major_mode_switched',\n profileApplied: 'po_pi.profile_applied',\n} as const;\n\nexport type HarnessEventName = (typeof HARNESS_EVENT)[keyof typeof HARNESS_EVENT];\nexport type HarnessEventAttributes = Record<string, string | number | boolean>;\nexport type HarnessErrorSink = (event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes) => void;\n\nexport interface HarnessFailureReporter {\n error: HarnessErrorSink;\n warn: HarnessErrorSink;\n}\n\nexport interface HarnessTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<PoTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n /** Run startup callbacks before loading the telemetry backend. */\n deferSpans?: boolean;\n}\n\nexport interface HarnessTelemetry {\n recordError(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordWarning(event: HarnessEventName, error: unknown, attributes?: HarnessEventAttributes): Promise<void>;\n recordEvent(event: HarnessEventName, attributes?: HarnessEventAttributes): Promise<void>;\n runInSpan<T>(name: string, attributes: HarnessEventAttributes, callback: () => Promise<T>): Promise<T>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createHarnessTelemetry(options: HarnessTelemetryOptions = {}): HarnessTelemetry {\n let telemetryPromise: Promise<PoTelemetry> | undefined;\n const pendingEvents: Array<{ event: HarnessEventName; attributes?: HarnessEventAttributes }> = [];\n let pendingEventDropReported = false;\n const telemetry = (): Promise<PoTelemetry> => {\n telemetryPromise ??= import('@agimon-ai/po-telemetry').then(({ createPoTelemetry }) =>\n createPoTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n }),\n );\n return telemetryPromise;\n };\n const drainEvents = async (loaded: PoTelemetry): Promise<void> => {\n for (const pending of pendingEvents.splice(0)) {\n await loaded.recordEvent(pending.event, pending.attributes);\n }\n };\n return {\n recordError: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordError(event, error, attributes);\n },\n recordWarning: async (event, error, attributes) => {\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.recordWarning(event, error, attributes);\n },\n recordEvent: async (event, attributes) => {\n if (options.deferSpans && !telemetryPromise) {\n if (pendingEvents.length < MAX_PENDING_EVENTS) pendingEvents.push({ event, attributes });\n else if (!pendingEventDropReported) {\n pendingEventDropReported = true;\n try {\n const reportWarning = options.warn ?? ((message: string) => process.emitWarning(message));\n reportWarning('Po telemetry deferred event limit reached; later events were dropped.');\n } catch {\n // Telemetry warnings must not interrupt launcher startup.\n }\n }\n return;\n }\n await (await telemetry()).recordEvent(event, attributes);\n },\n runInSpan: (name, attributes, callback) => {\n // The launcher opts into this path for pre-spawn preparation. Lifecycle\n // events remain buffered until flush; failures still initialize the real\n // sink immediately so diagnostics are not lost.\n if (options.deferSpans && !telemetryPromise) return callback();\n return telemetry().then((loaded) => loaded.runInSpan(name, attributes, callback));\n },\n flush: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.flush();\n },\n shutdown: async () => {\n if (!telemetryPromise && pendingEvents.length === 0) return;\n const loaded = await telemetry();\n await drainEvents(loaded);\n await loaded.shutdown();\n },\n };\n}\n\nexport function toFailureReporter(telemetry: HarnessTelemetry): HarnessFailureReporter {\n return {\n error: (event, error, attributes) => void telemetry.recordError(event, error, attributes),\n warn: (event, error, attributes) => void telemetry.recordWarning(event, error, attributes),\n };\n}\n"],"mappings":";AAEA,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AACrB,MAAM,eAAe;AAErB,MAAa,gBAAgB;CAC3B,WAAW;CACX,oBAAoB;CACpB,0BAA0B;CAC1B,kBAAkB;CAClB,cAAc;CACd,2BAA2B;CAC3B,yBAAyB;CACzB,YAAY;CACZ,wBAAwB;CACxB,mBAAmB;CACnB,yBAAyB;CACzB,sBAAsB;CACtB,mBAAmB;CACnB,iBAAiB;CACjB,sBAAsB;CACtB,mBAAmB;CACnB,gBAAgB;AAClB;AA8BA,SAAgB,uBAAuB,UAAmC,CAAC,GAAqB;CAC9F,IAAI;CACJ,MAAM,gBAAyF,CAAC;CAChG,IAAI,2BAA2B;CAC/B,MAAM,kBAAwC;EAC5C,qBAAqB,OAAO,0BAA0B,CAAC,MAAM,EAAE,wBAC7D,kBAAkB;GAChB,aAAa;GACb,aAAa;GACb,KAAK,QAAQ;GACb,eAAe,QAAQ;GACvB,KAAK,QAAQ;GACb,kBAAkB,QAAQ;GAC1B,MAAM,QAAQ;GACd,YAAY;GACZ,cAAc;EAChB,CAAC,CACH;EACA,OAAO;CACT;CACA,MAAM,cAAc,OAAO,WAAuC;EAChE,KAAK,MAAM,WAAW,cAAc,OAAO,CAAC,GAC1C,MAAM,OAAO,YAAY,QAAQ,OAAO,QAAQ,UAAU;CAE9D;CACA,OAAO;EACL,aAAa,OAAO,OAAO,OAAO,eAAe;GAC/C,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,YAAY,OAAO,OAAO,UAAU;EACnD;EACA,eAAe,OAAO,OAAO,OAAO,eAAe;GACjD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,cAAc,OAAO,OAAO,UAAU;EACrD;EACA,aAAa,OAAO,OAAO,eAAe;GACxC,IAAI,QAAQ,cAAc,CAAC,kBAAkB;IAC3C,IAAI,cAAc,SAAS,oBAAoB,cAAc,KAAK;KAAE;KAAO;IAAW,CAAC;SAClF,IAAI,CAAC,0BAA0B;KAClC,2BAA2B;KAC3B,IAAI;MAEF,CADsB,QAAQ,UAAU,YAAoB,QAAQ,YAAY,OAAO,GAAA,CACzE,uEAAuE;KACvF,QAAQ,CAER;IACF;IACA;GACF;GACA,OAAO,MAAM,UAAU,EAAA,CAAG,YAAY,OAAO,UAAU;EACzD;EACA,YAAY,MAAM,YAAY,aAAa;GAIzC,IAAI,QAAQ,cAAc,CAAC,kBAAkB,OAAO,SAAS;GAC7D,OAAO,UAAU,CAAC,CAAC,MAAM,WAAW,OAAO,UAAU,MAAM,YAAY,QAAQ,CAAC;EAClF;EACA,OAAO,YAAY;GACjB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,MAAM;EACrB;EACA,UAAU,YAAY;GACpB,IAAI,CAAC,oBAAoB,cAAc,WAAW,GAAG;GACrD,MAAM,SAAS,MAAM,UAAU;GAC/B,MAAM,YAAY,MAAM;GACxB,MAAM,OAAO,SAAS;EACxB;CACF;AACF;AAEA,SAAgB,kBAAkB,WAAqD;CACrF,OAAO;EACL,QAAQ,OAAO,OAAO,eAAe,KAAK,UAAU,YAAY,OAAO,OAAO,UAAU;EACxF,OAAO,OAAO,OAAO,eAAe,KAAK,UAAU,cAAc,OAAO,OAAO,UAAU;CAC3F;AACF"}
@@ -39,11 +39,16 @@ function compatibleUpm() {
39
39
  */
40
40
  /** Days a newly picked version must have been published, matching `pnpm-workspace.yaml`. */
41
41
  const RUNTIME_MIN_RELEASE_AGE_DAYS = 2;
42
- /** First-party scopes that are never held back, matching `pnpm-workspace.yaml`. */
42
+ /**
43
+ * Packages that are never held back: the first-party scopes and the pins `pnpm-workspace.yaml`
44
+ * excludes by version. upm only honours name or scope entries, so the pins are listed by name.
45
+ */
43
46
  const RUNTIME_MIN_RELEASE_AGE_EXCLUDE = [
44
47
  "@agimon-ai/*",
45
48
  "@agiflowai/*",
46
- "@earendil-works/*"
49
+ "@earendil-works/*",
50
+ "@deepseek-ai/cordis",
51
+ "@deepseek-ai/cosmokit"
47
52
  ];
48
53
  const STORE_DIRECTORY = "store";
49
54
  const ENV_PROXY_FLAG = "--use-env-proxy";