@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,42 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- //#region src/services/jsonlSessionRepo/index.ts
3
- function asRecord(value) {
4
- return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
5
- }
6
- function stableJson(value) {
7
- if (Array.isArray(value)) return `[${value.map(stableJson).join(",")}]`;
8
- const record = asRecord(value);
9
- if (record === void 0) return JSON.stringify(value) ?? "null";
10
- return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
11
- }
12
- function contentHash(record) {
13
- const { id: _id, parentId: _parentId, timestamp: _timestamp, kind: _kind, seq: _seq, ...content } = record;
14
- if (content.type === "custom_message") {
15
- content.type = "message";
16
- content.message = {
17
- role: "custom",
18
- customType: content.customType,
19
- content: content.content,
20
- details: content.details,
21
- display: content.display
22
- };
23
- delete content.customType;
24
- delete content.content;
25
- delete content.details;
26
- delete content.display;
27
- }
28
- if (content.type === "branch_summary" && content.fromId === "root") content.fromId = null;
29
- if (content.type === "compaction") {
30
- delete content.firstKeptEntryId;
31
- delete content.retainedTail;
32
- }
33
- return createHash("sha256").update(Buffer.from(stableJson(content))).digest("hex");
34
- }
35
- /** Retained legacy entrypoint. Fresh durable sessions do not import old journals. */
36
- async function importV3WithPinnedUpstream(_input) {
37
- throw new Error("Legacy history import is unsupported by fresh durable storage");
38
- }
39
- //#endregion
40
- export { contentHash, importV3WithPinnedUpstream };
41
-
42
- //# sourceMappingURL=jsonlSessionRepo.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonlSessionRepo.mjs","names":[],"sources":["../src/services/jsonlSessionRepo/index.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\nimport type { HistoryImportVerification, HistoryStagingImportInput } from '../historyImport';\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\nfunction stableJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(stableJson).join(',')}]`;\n const record = asRecord(value);\n if (record === undefined) return JSON.stringify(value) ?? 'null';\n return `{${Object.keys(record)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`)\n .join(',')}}`;\n}\n\nexport function contentHash(record: Record<string, unknown>): string {\n const { id: _id, parentId: _parentId, timestamp: _timestamp, kind: _kind, seq: _seq, ...content } = record;\n if (content.type === 'custom_message') {\n content.type = 'message';\n content.message = {\n role: 'custom',\n customType: content.customType,\n content: content.content,\n details: content.details,\n display: content.display,\n };\n delete content.customType;\n delete content.content;\n delete content.details;\n delete content.display;\n }\n if (content.type === 'branch_summary' && content.fromId === 'root') content.fromId = null;\n if (content.type === 'compaction') {\n delete content.firstKeptEntryId;\n delete content.retainedTail;\n }\n return createHash('sha256')\n .update(Buffer.from(stableJson(content)))\n .digest('hex');\n}\n\n/** Retained legacy entrypoint. Fresh durable sessions do not import old journals. */\nexport async function importV3WithPinnedUpstream(\n _input: HistoryStagingImportInput,\n): Promise<HistoryImportVerification> {\n throw new Error('Legacy history import is unsupported by fresh durable storage');\n}\n"],"mappings":";;AAGA,SAAS,SAAS,OAAqD;CACrE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACrE,QACD,KAAA;AACN;AACA,SAAS,WAAW,OAAwB;CAC1C,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,IAAI,MAAM,IAAI,UAAU,CAAC,CAAC,KAAK,GAAG,EAAE;CACrE,MAAM,SAAS,SAAS,KAAK;CAC7B,IAAI,WAAW,KAAA,GAAW,OAAO,KAAK,UAAU,KAAK,KAAK;CAC1D,OAAO,IAAI,OAAO,KAAK,MAAM,CAAC,CAC3B,KAAK,CAAC,CACN,KAAK,QAAQ,GAAG,KAAK,UAAU,GAAG,EAAE,GAAG,WAAW,OAAO,IAAI,GAAG,CAAC,CACjE,KAAK,GAAG,EAAE;AACf;AAEA,SAAgB,YAAY,QAAyC;CACnE,MAAM,EAAE,IAAI,KAAK,UAAU,WAAW,WAAW,YAAY,MAAM,OAAO,KAAK,MAAM,GAAG,YAAY;CACpG,IAAI,QAAQ,SAAS,kBAAkB;EACrC,QAAQ,OAAO;EACf,QAAQ,UAAU;GAChB,MAAM;GACN,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,SAAS,QAAQ;GACjB,SAAS,QAAQ;EACnB;EACA,OAAO,QAAQ;EACf,OAAO,QAAQ;EACf,OAAO,QAAQ;EACf,OAAO,QAAQ;CACjB;CACA,IAAI,QAAQ,SAAS,oBAAoB,QAAQ,WAAW,QAAQ,QAAQ,SAAS;CACrF,IAAI,QAAQ,SAAS,cAAc;EACjC,OAAO,QAAQ;EACf,OAAO,QAAQ;CACjB;CACA,OAAO,WAAW,QAAQ,CAAC,CACxB,OAAO,OAAO,KAAK,WAAW,OAAO,CAAC,CAAC,CAAC,CACxC,OAAO,KAAK;AACjB;;AAGA,eAAsB,2BACpB,QACoC;CACpC,MAAM,IAAI,MAAM,+DAA+D;AACjF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimeJson.cjs","names":["fs","path","randomUUID"],"sources":["../src/services/json/index.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\n/**\n * JSON state helpers for files the harness owns on disk.\n *\n * Compatibility frontends read these files while another repository's harness\n * may be writing them, so writes go through a rename rather than a truncate.\n */\n\nexport type JsonObject = Record<string, unknown>;\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n const content = fs.readFileSync(filePath, 'utf8').trim();\n return content ? (JSON.parse(content) as JsonObject) : fallback;\n}\n\n/**\n * Writes through a uniquely named temporary file in the same directory.\n *\n * The pid and a UUID are both in the name so two harnesses writing the same\n * target cannot collide on the temporary path, and a failed write cleans up\n * after itself rather than leaving the fragment behind.\n */\nexport function writeFileAtomic(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;\n try {\n fs.writeFileSync(temporaryPath, content);\n fs.renameSync(temporaryPath, filePath);\n } catch (error) {\n fs.rmSync(temporaryPath, { force: true });\n throw error;\n }\n}\n\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, `${JSON.stringify(value, null, 2)}\\n`);\n}\n"],"mappings":";;;;;;;;AAaA,MAAM,qBAAqB;AAE3B,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAACA,QAAAA,QAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,MAAM,UAAUA,QAAAA,QAAG,aAAa,UAAU,MAAM,CAAC,CAAC,KAAK;CACvD,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;;;;;;;AASA,SAAgB,gBAAgB,UAAkB,SAAuB;CACvE,QAAA,QAAG,UAAUC,UAAAA,QAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;CACxD,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,IAAI,IAAA,GAAGC,YAAAA,WAAAA,CAAW,IAAI;CACnE,IAAI;EACF,QAAA,QAAG,cAAc,eAAe,OAAO;EACvC,QAAA,QAAG,WAAW,eAAe,QAAQ;CACvC,SAAS,OAAO;EACd,QAAA,QAAG,OAAO,eAAe,EAAE,OAAO,KAAK,CAAC;EACxC,MAAM;CACR;AACF;AAEA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAU,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE,GAAG;AACjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimeJson.d.mts","names":[],"sources":["../src/services/json/index.ts"],"mappings":";;;;;;;YAWY,aAAa;wBAIT,SAAS,iBAAiB,SAAS;;wBAKnC,SAAS,kBAAkB,WAAU,aAAkB;;;;;;;;wBAavD,gBAAgB,kBAAkB;wBAYlC,UAAU,kBAAkB,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimeJson.mjs","names":[],"sources":["../src/services/json/index.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\n/**\n * JSON state helpers for files the harness owns on disk.\n *\n * Compatibility frontends read these files while another repository's harness\n * may be writing them, so writes go through a rename rather than a truncate.\n */\n\nexport type JsonObject = Record<string, unknown>;\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n const content = fs.readFileSync(filePath, 'utf8').trim();\n return content ? (JSON.parse(content) as JsonObject) : fallback;\n}\n\n/**\n * Writes through a uniquely named temporary file in the same directory.\n *\n * The pid and a UUID are both in the name so two harnesses writing the same\n * target cannot collide on the temporary path, and a failed write cleans up\n * after itself rather than leaving the fragment behind.\n */\nexport function writeFileAtomic(filePath: string, content: string): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;\n try {\n fs.writeFileSync(temporaryPath, content);\n fs.renameSync(temporaryPath, filePath);\n } catch (error) {\n fs.rmSync(temporaryPath, { force: true });\n throw error;\n }\n}\n\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, `${JSON.stringify(value, null, 2)}\\n`);\n}\n"],"mappings":";;;;AAaA,MAAM,qBAAqB;AAE3B,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAAC,GAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,MAAM,UAAU,GAAG,aAAa,UAAU,MAAM,CAAC,CAAC,KAAK;CACvD,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;;;;;;;AASA,SAAgB,gBAAgB,UAAkB,SAAuB;CACvE,GAAG,UAAU,KAAK,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;CACxD,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,IAAI,GAAG,WAAW,IAAI;CACnE,IAAI;EACF,GAAG,cAAc,eAAe,OAAO;EACvC,GAAG,WAAW,eAAe,QAAQ;CACvC,SAAS,OAAO;EACd,GAAG,OAAO,eAAe,EAAE,OAAO,KAAK,CAAC;EACxC,MAAM;CACR;AACF;AAEA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAU,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE,GAAG;AACjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimePiSettings.cjs","names":["DOOM_PACKAGE_NAME","path","os","fs","readJson","isRecord"],"sources":["../src/services/piSettings/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { DOOM_PACKAGE_NAME } from '../doomPackage';\nimport { isRecord, readJson, writeFileAtomic } from '../json';\nimport type { JsonObject } from '../json';\n\n/**\n * Pi's user settings, as `po sync` maintains them.\n *\n * The Doom package is registered globally so a plain `pi` process can find the\n * lightweight package bootstrap before project resources are trusted. Sync owns\n * the extension registration, ambient-discovery filter, theme resource, selected default theme, and quiet-startup keys\n * while preserving every unrelated user setting.\n */\n\nconst PI_CODING_AGENT_DIR_ENV = 'PI_CODING_AGENT_DIR';\n/** Moves Po's whole home, agent directory included, away from `~/.po`. */\nexport const PO_HOME_ENV = 'PO_HOME';\nconst PO_HOME_DIRECTORY = '.po';\n/** Plain Pi's home, whose agent directory Po falls back to for model config. */\nconst PI_HOME_DIRECTORY = '.pi';\nconst AGENT_DIRECTORY = 'agent';\nconst RUNTIME_DIRECTORY = 'runtime';\nconst SETTINGS_FILE = 'settings.json';\nconst AUTH_FILE = 'auth.json';\nconst MODELS_FILE = 'models.json';\nconst THEMES_DIRECTORY = 'themes';\nconst EXTENSIONS_KEY = 'extensions';\nconst THEMES_KEY = 'themes';\nconst THEME_KEY = 'theme';\nconst QUIET_STARTUP_KEY = 'quietStartup';\nconst PO_THEME_NAME = 'po-dark';\nconst PO_THEME_FILE = `${PO_THEME_NAME}.json`;\nconst PACKAGE_MANIFEST = 'package.json';\nconst AGIMON_SCOPE_PREFIX = '@agimon-ai/';\nconst NPM_SOURCE_PREFIX = 'npm:';\nconst HOME_ALIAS = '~';\nconst HOME_ALIAS_PREFIX = '~/';\n/** The stable package entry Pi loads for every synced repository. */\nexport const DOOM_EXTENSION = DOOM_PACKAGE_NAME;\n/** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */\nexport const AMBIENT_EXTENSION_FILTER = '!extensions/**';\n/**\n * Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and\n * tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them\n * loaded would declare both to the model in every session.\n */\nexport const DISABLED_PI_BUILTINS: readonly string[] = ['-builtin:mcp', '-builtin:codemode', '-builtin:tool-search'];\n/** Ownership marker `po init` wrote into the dispatcher package manifest. */\nexport const PO_DISPATCHER_MARKER = 1;\nexport interface PiSettingsUpdate {\n /** Absolute path to the synchronized user theme file. */\n themePath: string;\n themeName: string;\n}\n\n/**\n * Expands `~` and resolves a relative path against home, never the cwd, so every\n * Po process lands on the same directory wherever it was started.\n */\nfunction resolveConfiguredDirectory(configured: string, homeDirectory: string): string {\n if (configured === HOME_ALIAS) return homeDirectory;\n if (configured.startsWith(HOME_ALIAS_PREFIX)) {\n return path.join(homeDirectory, configured.slice(HOME_ALIAS_PREFIX.length));\n }\n return path.resolve(homeDirectory, configured);\n}\n\n/**\n * Po's home: config, workspaces, runtime registry and its Pi agent directory.\n * Defaults to `~/.po`; `PO_HOME` moves all of it.\n */\nexport function poHomeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n const configured = environment[PO_HOME_ENV]?.trim();\n return configured\n ? resolveConfiguredDirectory(configured, homeDirectory)\n : path.join(homeDirectory, PO_HOME_DIRECTORY);\n}\n\n/**\n * The single install root for runtime packages every Po root shares: its\n * `package.json` declares them and its `node_modules` holds them.\n */\nexport function poRuntimeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n return path.join(poHomeDirectory(homeDirectory, environment), RUNTIME_DIRECTORY);\n}\n\n/**\n * True when a directory's `.po` folder exists and is a repository's own configuration.\n *\n * Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is\n * the global layer, not a repository marker: walking up from any path under home must not\n * stop at home and treat the global configuration as repository configuration.\n */\nexport function hasRepositoryDoomDirectory(\n directory: string,\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): boolean {\n const marker = path.resolve(directory, PO_HOME_DIRECTORY);\n if (marker === path.resolve(poHomeDirectory(homeDirectory, environment))) return false;\n try {\n return fs.statSync(marker).isDirectory();\n } catch {\n // No readable `.po` folder here, so this directory is not marked as a repository.\n return false;\n }\n}\n\n/**\n * The Pi agent directory Po runs with. Honors Pi's documented override; every Po\n * entry point sets that override, so the default only applies to library callers.\n */\nexport function piAgentDirectory(\n environment: Readonly<Record<string, string | undefined>> = process.env,\n homeDirectory: string = os.homedir(),\n): string {\n const configured = environment[PI_CODING_AGENT_DIR_ENV]?.trim();\n if (!configured) return path.join(poHomeDirectory(homeDirectory, environment), AGENT_DIRECTORY);\n return resolveConfiguredDirectory(configured, homeDirectory);\n}\n\n/** True when the directory names a model: credentials, a custom provider, or a default. */\nfunction hasModelConfig(agentDirectory: string): boolean {\n try {\n return (\n fs.existsSync(path.join(agentDirectory, MODELS_FILE)) ||\n Object.keys(readJson(path.join(agentDirectory, AUTH_FILE))).length > 0 ||\n typeof readJson(piSettingsPath(agentDirectory)).defaultProvider === 'string'\n );\n } catch {\n // A malformed file is still the user's config: surface its error rather than switch away.\n return true;\n }\n}\n\n/**\n * Where Po reads auth.json and models.json from. Po's own agent\n * directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who\n * already set Pi up can start a session before configuring Po.\n */\nexport function modelConfigDirectory(agentDirectory: string, homeDirectory: string = os.homedir()): string {\n if (hasModelConfig(agentDirectory)) return agentDirectory;\n const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);\n return pi !== agentDirectory && hasModelConfig(pi) ? pi : agentDirectory;\n}\n/** Model defaults fall back independently of credentials, only when settings.json is absent. */\nexport function modelSettingsDirectory(agentDirectory: string, homeDirectory: string = os.homedir()): string {\n if (fs.existsSync(piSettingsPath(agentDirectory))) return agentDirectory;\n const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);\n return fs.existsSync(piSettingsPath(pi)) ? pi : agentDirectory;\n}\n\nexport function piSettingsPath(agentDirectory: string): string {\n return path.join(agentDirectory, SETTINGS_FILE);\n}\n\nexport function piThemeDirectory(agentDirectory: string): string {\n return path.join(agentDirectory, THEMES_DIRECTORY);\n}\n\nfunction stringList(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n}\n\nfunction settingsRelativePath(agentDirectory: string, target: string): string {\n const relative = path.relative(agentDirectory, target);\n if (relative.startsWith('..') || path.isAbsolute(relative)) return target;\n return relative.split(path.sep).join('/');\n}\n\nfunction isManagedExtension(value: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return (\n normalized === DOOM_EXTENSION ||\n normalized === AMBIENT_EXTENSION_FILTER ||\n DISABLED_PI_BUILTINS.includes(normalized)\n );\n}\n\nfunction isLegacyDoomTheme(value: string, themeName: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return normalized.endsWith(`/doom/${themeName}.json`) || normalized === `doom/${themeName}.json`;\n}\n\n/** Produces the user settings content for an update, without writing it. */\nexport function mergePiSettings(current: JsonObject, agentDirectory: string, update: PiSettingsUpdate): JsonObject {\n const theme = settingsRelativePath(agentDirectory, update.themePath);\n // First in the list, so the harness environment is hydrated before any\n // extension a user added themselves runs. The filter affects only Pi's\n // automatic extensions/** scan; explicit settings and CLI entries still load.\n const extensions = [\n DOOM_EXTENSION,\n AMBIENT_EXTENSION_FILTER,\n ...DISABLED_PI_BUILTINS,\n ...stringList(current[EXTENSIONS_KEY]).filter((value) => !isManagedExtension(value)),\n ];\n const themes = [\n theme,\n ...stringList(current[THEMES_KEY]).filter(\n (value) => value !== theme && !isLegacyDoomTheme(value, update.themeName),\n ),\n ];\n return {\n ...current,\n [QUIET_STARTUP_KEY]: true,\n [EXTENSIONS_KEY]: extensions,\n [THEMES_KEY]: themes,\n // Only filled in when unset: a theme the user picked later is their choice,\n // and re-imposing the Doom theme on every sync would silently undo it.\n [THEME_KEY]: typeof current[THEME_KEY] === 'string' ? current[THEME_KEY] : update.themeName,\n };\n}\n\nexport function readPiSettings(agentDirectory: string): JsonObject {\n const settings = readJson(piSettingsPath(agentDirectory));\n return isRecord(settings) ? settings : {};\n}\n\nexport function serializePiSettings(settings: JsonObject): string {\n return `${JSON.stringify(settings, null, 2)}\\n`;\n}\n\n/** Merges the Doom-owned keys into Pi's user settings file. */\nexport function writePiSettings(agentDirectory: string, update: PiSettingsUpdate): string {\n const settingsPath = piSettingsPath(agentDirectory);\n writeFileAtomic(\n settingsPath,\n serializePiSettings(mergePiSettings(readPiSettings(agentDirectory), agentDirectory, update)),\n );\n return settingsPath;\n}\n\n/** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */\nexport function isPoDispatcherPackage(directory: string): boolean {\n try {\n const parsed = JSON.parse(fs.readFileSync(path.join(directory, PACKAGE_MANIFEST), 'utf8')) as {\n name?: unknown;\n poDispatcher?: unknown;\n };\n return parsed.name === DOOM_PACKAGE_NAME && parsed.poDispatcher === PO_DISPATCHER_MARKER;\n } catch {\n return false;\n }\n}\n\nfunction poDispatcherDirectory(agentDirectory: string): string | undefined {\n const directory = path.join(agentDirectory, ...DOOM_PACKAGE_NAME.split('/'));\n const stat = fs.lstatSync(directory, { throwIfNoEntry: false });\n return stat?.isDirectory() && isPoDispatcherPackage(directory) ? directory : undefined;\n}\n\nfunction isOtherAgimonDistribution(value: string): boolean {\n const normalized = value.startsWith(NPM_SOURCE_PREFIX) ? value.slice(NPM_SOURCE_PREFIX.length) : value;\n return normalized.startsWith(AGIMON_SCOPE_PREFIX) && normalized !== DOOM_EXTENSION;\n}\n\nfunction isSharedFilter(value: string): boolean {\n return value === AMBIENT_EXTENSION_FILTER || DISABLED_PI_BUILTINS.includes(value);\n}\n\n/**\n * Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.\n *\n * The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)\n * is still registered, because it relies on the same filters. Unrelated settings are preserved,\n * and nothing is written when no Po entry is present. Returns the paths and entries it removed.\n */\nexport function removePoPiSettings(agentDirectory: string): string[] {\n const removed: string[] = [];\n const settingsPath = piSettingsPath(agentDirectory);\n const themePath = path.join(piThemeDirectory(agentDirectory), PO_THEME_FILE);\n const current = readPiSettings(agentDirectory);\n const extensions = stringList(current[EXTENSIONS_KEY]);\n const themes = stringList(current[THEMES_KEY]);\n const isPoTheme = (value: string) => path.resolve(agentDirectory, value) === themePath;\n const hasPoSettings =\n extensions.includes(DOOM_EXTENSION) || themes.some(isPoTheme) || current[THEME_KEY] === PO_THEME_NAME;\n\n if (hasPoSettings) {\n const keepFilters = extensions.some(isOtherAgimonDistribution);\n const next: JsonObject = { ...current };\n if (Array.isArray(current[EXTENSIONS_KEY])) {\n next[EXTENSIONS_KEY] = (current[EXTENSIONS_KEY] as unknown[]).filter(\n (value) => value !== DOOM_EXTENSION && (keepFilters || typeof value !== 'string' || !isSharedFilter(value)),\n );\n }\n if (Array.isArray(current[THEMES_KEY])) {\n next[THEMES_KEY] = (current[THEMES_KEY] as unknown[]).filter(\n (value) => typeof value !== 'string' || !isPoTheme(value),\n );\n }\n if (current[THEME_KEY] === PO_THEME_NAME) delete next[THEME_KEY];\n writeFileAtomic(settingsPath, serializePiSettings(next));\n removed.push(settingsPath);\n }\n if (fs.lstatSync(themePath, { throwIfNoEntry: false })?.isFile()) {\n fs.rmSync(themePath, { force: true });\n removed.push(themePath);\n }\n const dispatcher = poDispatcherDirectory(agentDirectory);\n if (dispatcher) {\n fs.rmSync(dispatcher, { recursive: true, force: true });\n removed.push(dispatcher);\n }\n return removed;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimePiSettings.d.mts","names":[],"sources":["../src/services/piSettings/index.ts"],"mappings":";;;qBAmBa;;qBAsBA;;qBAEA;;;;;;qBAMA;;qBAEA;iBACI;;EAEf;EACA;;;;;;wBAmBc,gBACd,wBACA,cAAa,SAAS;;;;;wBAYR,mBACd,wBACA,cAAa,SAAS;;;;;;;;wBAYR,2BACd,mBACA,wBACA,cAAa,SAAS;;;;;wBAgBR,iBACd,cAAa,SAAS,qCACtB;;;;;;wBA0Bc,qBAAqB,wBAAwB;;wBAM7C,uBAAuB,wBAAwB;wBAM/C,eAAe;wBAIf,iBAAiB;;wBA6BjB,gBAAgB,SAAS,YAAY,wBAAwB,QAAQ,mBAAmB;wBA4BxF,eAAe,yBAAyB;wBAKxC,oBAAoB,UAAU;;wBAK9B,gBAAgB,wBAAwB,QAAQ;;wBAUhD,sBAAsB;;;;;;;;wBAkCtB,mBAAmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtimePiSettings.mjs","names":[],"sources":["../src/services/piSettings/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { DOOM_PACKAGE_NAME } from '../doomPackage';\nimport { isRecord, readJson, writeFileAtomic } from '../json';\nimport type { JsonObject } from '../json';\n\n/**\n * Pi's user settings, as `po sync` maintains them.\n *\n * The Doom package is registered globally so a plain `pi` process can find the\n * lightweight package bootstrap before project resources are trusted. Sync owns\n * the extension registration, ambient-discovery filter, theme resource, selected default theme, and quiet-startup keys\n * while preserving every unrelated user setting.\n */\n\nconst PI_CODING_AGENT_DIR_ENV = 'PI_CODING_AGENT_DIR';\n/** Moves Po's whole home, agent directory included, away from `~/.po`. */\nexport const PO_HOME_ENV = 'PO_HOME';\nconst PO_HOME_DIRECTORY = '.po';\n/** Plain Pi's home, whose agent directory Po falls back to for model config. */\nconst PI_HOME_DIRECTORY = '.pi';\nconst AGENT_DIRECTORY = 'agent';\nconst RUNTIME_DIRECTORY = 'runtime';\nconst SETTINGS_FILE = 'settings.json';\nconst AUTH_FILE = 'auth.json';\nconst MODELS_FILE = 'models.json';\nconst THEMES_DIRECTORY = 'themes';\nconst EXTENSIONS_KEY = 'extensions';\nconst THEMES_KEY = 'themes';\nconst THEME_KEY = 'theme';\nconst QUIET_STARTUP_KEY = 'quietStartup';\nconst PO_THEME_NAME = 'po-dark';\nconst PO_THEME_FILE = `${PO_THEME_NAME}.json`;\nconst PACKAGE_MANIFEST = 'package.json';\nconst AGIMON_SCOPE_PREFIX = '@agimon-ai/';\nconst NPM_SOURCE_PREFIX = 'npm:';\nconst HOME_ALIAS = '~';\nconst HOME_ALIAS_PREFIX = '~/';\n/** The stable package entry Pi loads for every synced repository. */\nexport const DOOM_EXTENSION = DOOM_PACKAGE_NAME;\n/** Suppresses Pi's ambient extension-directory scan while leaving explicit sources intact. */\nexport const AMBIENT_EXTENSION_FILTER = '!extensions/**';\n/**\n * Pi built-in extensions kept off under Po. po-mcp owns `/mcp` and MCP servers. Codemode and\n * tool search are opt-in in plain Pi, but Po activates every registered tool, so leaving them\n * loaded would declare both to the model in every session.\n */\nexport const DISABLED_PI_BUILTINS: readonly string[] = ['-builtin:mcp', '-builtin:codemode', '-builtin:tool-search'];\n/** Ownership marker `po init` wrote into the dispatcher package manifest. */\nexport const PO_DISPATCHER_MARKER = 1;\nexport interface PiSettingsUpdate {\n /** Absolute path to the synchronized user theme file. */\n themePath: string;\n themeName: string;\n}\n\n/**\n * Expands `~` and resolves a relative path against home, never the cwd, so every\n * Po process lands on the same directory wherever it was started.\n */\nfunction resolveConfiguredDirectory(configured: string, homeDirectory: string): string {\n if (configured === HOME_ALIAS) return homeDirectory;\n if (configured.startsWith(HOME_ALIAS_PREFIX)) {\n return path.join(homeDirectory, configured.slice(HOME_ALIAS_PREFIX.length));\n }\n return path.resolve(homeDirectory, configured);\n}\n\n/**\n * Po's home: config, workspaces, runtime registry and its Pi agent directory.\n * Defaults to `~/.po`; `PO_HOME` moves all of it.\n */\nexport function poHomeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n const configured = environment[PO_HOME_ENV]?.trim();\n return configured\n ? resolveConfiguredDirectory(configured, homeDirectory)\n : path.join(homeDirectory, PO_HOME_DIRECTORY);\n}\n\n/**\n * The single install root for runtime packages every Po root shares: its\n * `package.json` declares them and its `node_modules` holds them.\n */\nexport function poRuntimeDirectory(\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): string {\n return path.join(poHomeDirectory(homeDirectory, environment), RUNTIME_DIRECTORY);\n}\n\n/**\n * True when a directory's `.po` folder exists and is a repository's own configuration.\n *\n * Po's home is `~/.po`, so the home directory carries a `.po` folder too. That folder is\n * the global layer, not a repository marker: walking up from any path under home must not\n * stop at home and treat the global configuration as repository configuration.\n */\nexport function hasRepositoryDoomDirectory(\n directory: string,\n homeDirectory: string = os.homedir(),\n environment: Readonly<Record<string, string | undefined>> = process.env,\n): boolean {\n const marker = path.resolve(directory, PO_HOME_DIRECTORY);\n if (marker === path.resolve(poHomeDirectory(homeDirectory, environment))) return false;\n try {\n return fs.statSync(marker).isDirectory();\n } catch {\n // No readable `.po` folder here, so this directory is not marked as a repository.\n return false;\n }\n}\n\n/**\n * The Pi agent directory Po runs with. Honors Pi's documented override; every Po\n * entry point sets that override, so the default only applies to library callers.\n */\nexport function piAgentDirectory(\n environment: Readonly<Record<string, string | undefined>> = process.env,\n homeDirectory: string = os.homedir(),\n): string {\n const configured = environment[PI_CODING_AGENT_DIR_ENV]?.trim();\n if (!configured) return path.join(poHomeDirectory(homeDirectory, environment), AGENT_DIRECTORY);\n return resolveConfiguredDirectory(configured, homeDirectory);\n}\n\n/** True when the directory names a model: credentials, a custom provider, or a default. */\nfunction hasModelConfig(agentDirectory: string): boolean {\n try {\n return (\n fs.existsSync(path.join(agentDirectory, MODELS_FILE)) ||\n Object.keys(readJson(path.join(agentDirectory, AUTH_FILE))).length > 0 ||\n typeof readJson(piSettingsPath(agentDirectory)).defaultProvider === 'string'\n );\n } catch {\n // A malformed file is still the user's config: surface its error rather than switch away.\n return true;\n }\n}\n\n/**\n * Where Po reads auth.json and models.json from. Po's own agent\n * directory when it names a model; otherwise plain Pi's `~/.pi/agent`, so a user who\n * already set Pi up can start a session before configuring Po.\n */\nexport function modelConfigDirectory(agentDirectory: string, homeDirectory: string = os.homedir()): string {\n if (hasModelConfig(agentDirectory)) return agentDirectory;\n const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);\n return pi !== agentDirectory && hasModelConfig(pi) ? pi : agentDirectory;\n}\n/** Model defaults fall back independently of credentials, only when settings.json is absent. */\nexport function modelSettingsDirectory(agentDirectory: string, homeDirectory: string = os.homedir()): string {\n if (fs.existsSync(piSettingsPath(agentDirectory))) return agentDirectory;\n const pi = path.join(homeDirectory, PI_HOME_DIRECTORY, AGENT_DIRECTORY);\n return fs.existsSync(piSettingsPath(pi)) ? pi : agentDirectory;\n}\n\nexport function piSettingsPath(agentDirectory: string): string {\n return path.join(agentDirectory, SETTINGS_FILE);\n}\n\nexport function piThemeDirectory(agentDirectory: string): string {\n return path.join(agentDirectory, THEMES_DIRECTORY);\n}\n\nfunction stringList(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n}\n\nfunction settingsRelativePath(agentDirectory: string, target: string): string {\n const relative = path.relative(agentDirectory, target);\n if (relative.startsWith('..') || path.isAbsolute(relative)) return target;\n return relative.split(path.sep).join('/');\n}\n\nfunction isManagedExtension(value: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return (\n normalized === DOOM_EXTENSION ||\n normalized === AMBIENT_EXTENSION_FILTER ||\n DISABLED_PI_BUILTINS.includes(normalized)\n );\n}\n\nfunction isLegacyDoomTheme(value: string, themeName: string): boolean {\n const normalized = value.replaceAll('\\\\', '/');\n return normalized.endsWith(`/doom/${themeName}.json`) || normalized === `doom/${themeName}.json`;\n}\n\n/** Produces the user settings content for an update, without writing it. */\nexport function mergePiSettings(current: JsonObject, agentDirectory: string, update: PiSettingsUpdate): JsonObject {\n const theme = settingsRelativePath(agentDirectory, update.themePath);\n // First in the list, so the harness environment is hydrated before any\n // extension a user added themselves runs. The filter affects only Pi's\n // automatic extensions/** scan; explicit settings and CLI entries still load.\n const extensions = [\n DOOM_EXTENSION,\n AMBIENT_EXTENSION_FILTER,\n ...DISABLED_PI_BUILTINS,\n ...stringList(current[EXTENSIONS_KEY]).filter((value) => !isManagedExtension(value)),\n ];\n const themes = [\n theme,\n ...stringList(current[THEMES_KEY]).filter(\n (value) => value !== theme && !isLegacyDoomTheme(value, update.themeName),\n ),\n ];\n return {\n ...current,\n [QUIET_STARTUP_KEY]: true,\n [EXTENSIONS_KEY]: extensions,\n [THEMES_KEY]: themes,\n // Only filled in when unset: a theme the user picked later is their choice,\n // and re-imposing the Doom theme on every sync would silently undo it.\n [THEME_KEY]: typeof current[THEME_KEY] === 'string' ? current[THEME_KEY] : update.themeName,\n };\n}\n\nexport function readPiSettings(agentDirectory: string): JsonObject {\n const settings = readJson(piSettingsPath(agentDirectory));\n return isRecord(settings) ? settings : {};\n}\n\nexport function serializePiSettings(settings: JsonObject): string {\n return `${JSON.stringify(settings, null, 2)}\\n`;\n}\n\n/** Merges the Doom-owned keys into Pi's user settings file. */\nexport function writePiSettings(agentDirectory: string, update: PiSettingsUpdate): string {\n const settingsPath = piSettingsPath(agentDirectory);\n writeFileAtomic(\n settingsPath,\n serializePiSettings(mergePiSettings(readPiSettings(agentDirectory), agentDirectory, update)),\n );\n return settingsPath;\n}\n\n/** Whether a directory is the dispatcher package `po init` generated, by its manifest ownership marker. */\nexport function isPoDispatcherPackage(directory: string): boolean {\n try {\n const parsed = JSON.parse(fs.readFileSync(path.join(directory, PACKAGE_MANIFEST), 'utf8')) as {\n name?: unknown;\n poDispatcher?: unknown;\n };\n return parsed.name === DOOM_PACKAGE_NAME && parsed.poDispatcher === PO_DISPATCHER_MARKER;\n } catch {\n return false;\n }\n}\n\nfunction poDispatcherDirectory(agentDirectory: string): string | undefined {\n const directory = path.join(agentDirectory, ...DOOM_PACKAGE_NAME.split('/'));\n const stat = fs.lstatSync(directory, { throwIfNoEntry: false });\n return stat?.isDirectory() && isPoDispatcherPackage(directory) ? directory : undefined;\n}\n\nfunction isOtherAgimonDistribution(value: string): boolean {\n const normalized = value.startsWith(NPM_SOURCE_PREFIX) ? value.slice(NPM_SOURCE_PREFIX.length) : value;\n return normalized.startsWith(AGIMON_SCOPE_PREFIX) && normalized !== DOOM_EXTENSION;\n}\n\nfunction isSharedFilter(value: string): boolean {\n return value === AMBIENT_EXTENSION_FILTER || DISABLED_PI_BUILTINS.includes(value);\n}\n\n/**\n * Removes the entries `po init` and older `po sync` runs added to Pi's user agent directory.\n *\n * The shared ambient and built-in filters stay while another `@agimon-ai/*` distribution (doompi)\n * is still registered, because it relies on the same filters. Unrelated settings are preserved,\n * and nothing is written when no Po entry is present. Returns the paths and entries it removed.\n */\nexport function removePoPiSettings(agentDirectory: string): string[] {\n const removed: string[] = [];\n const settingsPath = piSettingsPath(agentDirectory);\n const themePath = path.join(piThemeDirectory(agentDirectory), PO_THEME_FILE);\n const current = readPiSettings(agentDirectory);\n const extensions = stringList(current[EXTENSIONS_KEY]);\n const themes = stringList(current[THEMES_KEY]);\n const isPoTheme = (value: string) => path.resolve(agentDirectory, value) === themePath;\n const hasPoSettings =\n extensions.includes(DOOM_EXTENSION) || themes.some(isPoTheme) || current[THEME_KEY] === PO_THEME_NAME;\n\n if (hasPoSettings) {\n const keepFilters = extensions.some(isOtherAgimonDistribution);\n const next: JsonObject = { ...current };\n if (Array.isArray(current[EXTENSIONS_KEY])) {\n next[EXTENSIONS_KEY] = (current[EXTENSIONS_KEY] as unknown[]).filter(\n (value) => value !== DOOM_EXTENSION && (keepFilters || typeof value !== 'string' || !isSharedFilter(value)),\n );\n }\n if (Array.isArray(current[THEMES_KEY])) {\n next[THEMES_KEY] = (current[THEMES_KEY] as unknown[]).filter(\n (value) => typeof value !== 'string' || !isPoTheme(value),\n );\n }\n if (current[THEME_KEY] === PO_THEME_NAME) delete next[THEME_KEY];\n writeFileAtomic(settingsPath, serializePiSettings(next));\n removed.push(settingsPath);\n }\n if (fs.lstatSync(themePath, { throwIfNoEntry: false })?.isFile()) {\n fs.rmSync(themePath, { force: true });\n removed.push(themePath);\n }\n const dispatcher = poDispatcherDirectory(agentDirectory);\n if (dispatcher) {\n fs.rmSync(dispatcher, { recursive: true, force: true });\n removed.push(dispatcher);\n }\n return removed;\n}\n"],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_liveImport = require("./src/server/liveImport.cjs");
3
- const require_serverFacet = require("./src/schemas/serverFacet.cjs");
4
- const require_index = require("./src/services/serverFacet/index.cjs");
5
- const require_serverFacetLoader = require("./src/server/serverFacetLoader.cjs");
6
- const require_pluginContributions = require("./src/schemas/pluginContributions.cjs");
7
- const require_serverPlugin = require("./src/extensions/serverPlugin.cjs");
8
- const require_index$1 = require("./src/services/packageResource/index.cjs");
9
- const require_index$2 = require("./src/services/sessionAttachments/index.cjs");
10
- exports.DOOM_SERVER_FACET_EXPORT = require_serverFacet.DOOM_SERVER_FACET_EXPORT;
11
- exports.DOOM_SERVER_FACET_MANIFEST_FIELD = require_serverFacet.DOOM_SERVER_FACET_MANIFEST_FIELD;
12
- exports.DOOM_SERVER_HOST_SERVICE = require_serverFacet.DOOM_SERVER_HOST_SERVICE;
13
- exports.DoomServerFacetManifestError = require_serverFacet.DoomServerFacetManifestError;
14
- exports.LIVE_FACTORY_TIMEOUT_MS = require_liveImport.LIVE_FACTORY_TIMEOUT_MS;
15
- exports.LIVE_IMPORT_TIMEOUT_MS = require_liveImport.LIVE_IMPORT_TIMEOUT_MS;
16
- exports.composeServerProviderOverrides = require_serverFacet.composeServerProviderOverrides;
17
- exports.createDoomServerHost = require_index.createDoomServerHost;
18
- exports.declaredServerFacetsOf = require_serverFacet.declaredServerFacetsOf;
19
- exports.defineCommand = require_pluginContributions.defineCommand;
20
- exports.defineServerMethod = require_serverFacet.defineServerMethod;
21
- exports.defineServerPlugin = require_serverPlugin.defineServerPlugin;
22
- exports.defineTool = require_pluginContributions.defineTool;
23
- exports.guardedImport = require_liveImport.guardedImport;
24
- exports.installServerFacets = require_serverFacetLoader.installServerFacets;
25
- exports.isDoomServerFacet = require_serverFacet.isDoomServerFacet;
26
- exports.loadServerFacets = require_serverFacetLoader.loadServerFacets;
27
- exports.orderServerFacets = require_serverFacet.orderServerFacets;
28
- exports.packageResourcePath = require_index$1.packageResourcePath;
29
- exports.readDoomServerHost = require_serverFacet.readDoomServerHost;
30
- exports.readPackageResource = require_index$1.readPackageResource;
31
- exports.requireDoomServerHost = require_serverFacet.requireDoomServerHost;
32
- exports.selectedServerProviderOverrides = require_serverFacetLoader.selectedServerProviderOverrides;
33
- exports.withTimeout = require_liveImport.withTimeout;
34
- exports.writeSessionAttachment = require_index$2.writeSessionAttachment;
@@ -1,10 +0,0 @@
1
- import { DoomServerBundleEntry, DoomServerBundleOwner } from "./src/schemas/serverBundle.mjs";
2
- import { DoomPluginCommand, DoomPluginTool, DoomPluginToolExecution, DoomPluginToolResult, defineCommand, defineTool } from "./src/schemas/pluginContributions.mjs";
3
- import { DOOM_SERVER_FACET_EXPORT, DOOM_SERVER_FACET_MANIFEST_FIELD, DOOM_SERVER_HOST_SERVICE, DeclaredServerFacet, DoomServerFacet, DoomServerFacetManifestError, DoomServerHostService, DoomServerMethod, DoomServerPluginContext, DoomServerPluginDefinition, DoomServerPluginScope, DoomServerProviderOverride, DoomServerProviderOverrides, DoomServerRegistration, DoomServerSessionPlugin, composeServerProviderOverrides, declaredServerFacetsOf, defineServerMethod, isDoomServerFacet, orderServerFacets, readDoomServerHost, requireDoomServerHost } from "./src/schemas/serverFacet.mjs";
4
- import { CreateDoomServerHostOptions, DoomServerHost, createDoomServerHost } from "./src/services/serverFacet/index.mjs";
5
- import { LIVE_FACTORY_TIMEOUT_MS, LIVE_IMPORT_TIMEOUT_MS, LiveImportGuard, guardedImport, withTimeout } from "./src/server/liveImport.mjs";
6
- import { InstallServerFacetsOptions, InstalledServerFacets, LiveServerFacetEntry, LoadServerFacetsOptions, LoadedServerFacet, LoadedServerFacets, installServerFacets, loadServerFacets, selectedServerProviderOverrides } from "./src/server/serverFacetLoader.mjs";
7
- import { defineServerPlugin } from "./src/extensions/serverPlugin.mjs";
8
- import { packageResourcePath, readPackageResource } from "./src/services/packageResource/index.mjs";
9
- import { writeSessionAttachment } from "./src/services/sessionAttachments/index.mjs";
10
- export { type CreateDoomServerHostOptions, DOOM_SERVER_FACET_EXPORT, DOOM_SERVER_FACET_MANIFEST_FIELD, DOOM_SERVER_HOST_SERVICE, type DeclaredServerFacet, type DoomPluginCommand, type DoomPluginTool, type DoomPluginToolExecution, type DoomPluginToolResult, type DoomServerBundleEntry, type DoomServerBundleOwner, type DoomServerFacet, DoomServerFacetManifestError, type DoomServerHost, type DoomServerHostService, type DoomServerMethod, type DoomServerPluginContext, type DoomServerPluginDefinition, type DoomServerPluginScope, type DoomServerProviderOverride, type DoomServerProviderOverrides, type DoomServerRegistration, type DoomServerSessionPlugin, type InstallServerFacetsOptions, type InstalledServerFacets, LIVE_FACTORY_TIMEOUT_MS, LIVE_IMPORT_TIMEOUT_MS, type LiveImportGuard, type LiveServerFacetEntry, type LoadServerFacetsOptions, type LoadedServerFacet, type LoadedServerFacets, composeServerProviderOverrides, createDoomServerHost, declaredServerFacetsOf, defineCommand, defineServerMethod, defineServerPlugin, defineTool, guardedImport, installServerFacets, isDoomServerFacet, loadServerFacets, orderServerFacets, packageResourcePath, readDoomServerHost, readPackageResource, requireDoomServerHost, selectedServerProviderOverrides, withTimeout, writeSessionAttachment };
@@ -1,9 +0,0 @@
1
- import { LIVE_FACTORY_TIMEOUT_MS, LIVE_IMPORT_TIMEOUT_MS, guardedImport, withTimeout } from "./src/server/liveImport.mjs";
2
- import { DOOM_SERVER_FACET_EXPORT, DOOM_SERVER_FACET_MANIFEST_FIELD, DOOM_SERVER_HOST_SERVICE, DoomServerFacetManifestError, composeServerProviderOverrides, declaredServerFacetsOf, defineServerMethod, isDoomServerFacet, orderServerFacets, readDoomServerHost, requireDoomServerHost } from "./src/schemas/serverFacet.mjs";
3
- import { createDoomServerHost } from "./src/services/serverFacet/index.mjs";
4
- import { installServerFacets, loadServerFacets, selectedServerProviderOverrides } from "./src/server/serverFacetLoader.mjs";
5
- import { defineCommand, defineTool } from "./src/schemas/pluginContributions.mjs";
6
- import { defineServerPlugin } from "./src/extensions/serverPlugin.mjs";
7
- import { packageResourcePath, readPackageResource } from "./src/services/packageResource/index.mjs";
8
- import { writeSessionAttachment } from "./src/services/sessionAttachments/index.mjs";
9
- export { DOOM_SERVER_FACET_EXPORT, DOOM_SERVER_FACET_MANIFEST_FIELD, DOOM_SERVER_HOST_SERVICE, DoomServerFacetManifestError, LIVE_FACTORY_TIMEOUT_MS, LIVE_IMPORT_TIMEOUT_MS, composeServerProviderOverrides, createDoomServerHost, declaredServerFacetsOf, defineCommand, defineServerMethod, defineServerPlugin, defineTool, guardedImport, installServerFacets, isDoomServerFacet, loadServerFacets, orderServerFacets, packageResourcePath, readDoomServerHost, readPackageResource, requireDoomServerHost, selectedServerProviderOverrides, withTimeout, writeSessionAttachment };
@@ -1,115 +0,0 @@
1
- //#region src/pi/piWebSocketListener.ts
2
- const OPEN = 1;
3
- const MAX_PENDING_BYTES = 67108864;
4
- /** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */
5
- function createPiWebSocketListener(options = {}) {
6
- let acceptor;
7
- const open = /* @__PURE__ */ new Set();
8
- return {
9
- async start(accept) {
10
- acceptor = accept;
11
- },
12
- async close() {
13
- acceptor = void 0;
14
- await Promise.all([...open].map(async (close) => {
15
- try {
16
- await close();
17
- } catch (error) {
18
- options.onError?.(error instanceof Error ? error : new Error(String(error)));
19
- }
20
- }));
21
- },
22
- accept(socket) {
23
- if (!acceptor) {
24
- socket.close();
25
- return;
26
- }
27
- let closed = false;
28
- let closing = false;
29
- let notified = false;
30
- let sending = Promise.resolve();
31
- let queuedBytes = 0;
32
- let handler;
33
- const write = async (chunk) => {
34
- let timer;
35
- try {
36
- await Promise.race([socket.send(chunk), new Promise((_resolve, reject) => {
37
- timer = setTimeout(() => reject(/* @__PURE__ */ new Error("Protocol socket write timed out.")), 15e3);
38
- timer.unref();
39
- })]);
40
- } finally {
41
- clearTimeout(timer);
42
- }
43
- };
44
- const notify = (error) => {
45
- closed = true;
46
- open.delete(close);
47
- if (notified) return;
48
- notified = true;
49
- if (error) handler?.onError(error);
50
- else handler?.onClose();
51
- };
52
- const close = async (finalChunk) => {
53
- if (closing || closed) return;
54
- closing = true;
55
- open.delete(close);
56
- try {
57
- await sending;
58
- if (!closed && finalChunk) await write(finalChunk);
59
- } finally {
60
- try {
61
- socket.close();
62
- } finally {
63
- notify();
64
- }
65
- }
66
- };
67
- const connection = {
68
- get closed() {
69
- return closed || closing || socket.readyState !== void 0 && socket.readyState !== OPEN;
70
- },
71
- async send(chunk) {
72
- if (connection.closed) throw new Error("Protocol socket closed before send.");
73
- if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {
74
- const error = /* @__PURE__ */ new Error("Protocol socket send queue exhausted.");
75
- notify(error);
76
- socket.close();
77
- throw error;
78
- }
79
- queuedBytes += chunk.byteLength;
80
- const next = sending.then(() => {
81
- if (closed) throw new Error("Protocol socket closed before send.");
82
- return write(chunk);
83
- }).finally(() => {
84
- queuedBytes -= chunk.byteLength;
85
- });
86
- sending = next.catch((error) => {
87
- notify(error instanceof Error ? error : new Error(String(error)));
88
- socket.close();
89
- });
90
- return next;
91
- },
92
- close
93
- };
94
- open.add(close);
95
- try {
96
- handler = acceptor(connection);
97
- } catch (error) {
98
- open.delete(close);
99
- socket.close();
100
- throw error;
101
- }
102
- return {
103
- onData: (chunk) => {
104
- if (!closed && !closing) handler?.onData(chunk);
105
- },
106
- onClose: () => notify(),
107
- onError: (error) => notify(error)
108
- };
109
- }
110
- };
111
- }
112
- //#endregion
113
- exports.createPiWebSocketListener = createPiWebSocketListener;
114
-
115
- //# sourceMappingURL=piWebSocketListener.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"piWebSocketListener.cjs","names":[],"sources":["../../../src/pi/piWebSocketListener.ts"],"sourcesContent":["import type { Server, ServerListener } from '@earendil-works/pi-server';\n\ntype ByteConnection = Parameters<Server['accept']>[0];\ntype ByteConnectionHandler = ReturnType<Server['accept']>;\ntype ByteConnectionAcceptor = (connection: ByteConnection) => ByteConnectionHandler;\n\n/** The minimum WebSocket surface needed by the Pi byte-protocol listener. */\nexport interface PiListenerSocket {\n send(data: ArrayBufferLike | Uint8Array): void | Promise<void>;\n close(): void;\n readonly readyState?: number;\n}\n\nconst OPEN = 1;\nconst MAX_PENDING_BYTES = 64 * 1024 * 1024;\n\nexport interface PiWebSocketListener extends ServerListener {\n /** Hands an authenticated, already-upgraded socket to the protocol server. */\n accept(socket: PiListenerSocket): ByteConnectionHandler | undefined;\n}\n\n/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */\nexport function createPiWebSocketListener(options: { onError?: (error: Error) => void } = {}): PiWebSocketListener {\n let acceptor: ByteConnectionAcceptor | undefined;\n const open = new Set<() => Promise<void>>();\n return {\n async start(accept) {\n acceptor = accept;\n },\n async close() {\n acceptor = undefined;\n await Promise.all(\n [...open].map(async (close) => {\n try {\n await close();\n } catch (error) {\n options.onError?.(error instanceof Error ? error : new Error(String(error)));\n }\n }),\n );\n },\n accept(socket) {\n if (!acceptor) {\n socket.close();\n return undefined;\n }\n let closed = false;\n let closing = false;\n let notified = false;\n let sending = Promise.resolve();\n let queuedBytes = 0;\n let handler: ByteConnectionHandler | undefined;\n const write = async (chunk: Uint8Array): Promise<void> => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n socket.send(chunk),\n new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => reject(new Error('Protocol socket write timed out.')), 15_000);\n timer.unref();\n }),\n ]);\n } finally {\n clearTimeout(timer);\n }\n };\n const notify = (error?: Error): void => {\n closed = true;\n open.delete(close);\n if (notified) return;\n notified = true;\n if (error) handler?.onError(error);\n else handler?.onClose();\n };\n const close = async (finalChunk?: Uint8Array): Promise<void> => {\n if (closing || closed) return;\n closing = true;\n open.delete(close);\n try {\n await sending;\n if (!closed && finalChunk) await write(finalChunk);\n } finally {\n try {\n socket.close();\n } finally {\n notify();\n }\n }\n };\n const connection: ByteConnection = {\n get closed() {\n return closed || closing || (socket.readyState !== undefined && socket.readyState !== OPEN);\n },\n async send(chunk) {\n if (connection.closed) throw new Error('Protocol socket closed before send.');\n if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {\n const error = new Error('Protocol socket send queue exhausted.');\n notify(error);\n socket.close();\n throw error;\n }\n queuedBytes += chunk.byteLength;\n const next = sending\n .then(() => {\n if (closed) throw new Error('Protocol socket closed before send.');\n return write(chunk);\n })\n .finally(() => {\n queuedBytes -= chunk.byteLength;\n });\n sending = next.catch((error: unknown) => {\n notify(error instanceof Error ? error : new Error(String(error)));\n socket.close();\n });\n return next;\n },\n close,\n };\n open.add(close);\n try {\n handler = acceptor(connection);\n } catch (error) {\n open.delete(close);\n socket.close();\n throw error;\n }\n return {\n onData: (chunk) => {\n if (!closed && !closing) handler?.onData(chunk);\n },\n onClose: () => notify(),\n onError: (error) => notify(error),\n };\n },\n };\n}\n"],"mappings":";AAaA,MAAM,OAAO;AACb,MAAM,oBAAoB;;AAQ1B,SAAgB,0BAA0B,UAAgD,CAAC,GAAwB;CACjH,IAAI;CACJ,MAAM,uBAAO,IAAI,IAAyB;CAC1C,OAAO;EACL,MAAM,MAAM,QAAQ;GAClB,WAAW;EACb;EACA,MAAM,QAAQ;GACZ,WAAW,KAAA;GACX,MAAM,QAAQ,IACZ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU;IAC7B,IAAI;KACF,MAAM,MAAM;IACd,SAAS,OAAO;KACd,QAAQ,UAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;IAC7E;GACF,CAAC,CACH;EACF;EACA,OAAO,QAAQ;GACb,IAAI,CAAC,UAAU;IACb,OAAO,MAAM;IACb;GACF;GACA,IAAI,SAAS;GACb,IAAI,UAAU;GACd,IAAI,WAAW;GACf,IAAI,UAAU,QAAQ,QAAQ;GAC9B,IAAI,cAAc;GAClB,IAAI;GACJ,MAAM,QAAQ,OAAO,UAAqC;IACxD,IAAI;IACJ,IAAI;KACF,MAAM,QAAQ,KAAK,CACjB,OAAO,KAAK,KAAK,GACjB,IAAI,SAAgB,UAAU,WAAW;MACvC,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,kCAAkC,CAAC,GAAG,IAAM;MACtF,MAAM,MAAM;KACd,CAAC,CACH,CAAC;IACH,UAAU;KACR,aAAa,KAAK;IACpB;GACF;GACA,MAAM,UAAU,UAAwB;IACtC,SAAS;IACT,KAAK,OAAO,KAAK;IACjB,IAAI,UAAU;IACd,WAAW;IACX,IAAI,OAAO,SAAS,QAAQ,KAAK;SAC5B,SAAS,QAAQ;GACxB;GACA,MAAM,QAAQ,OAAO,eAA2C;IAC9D,IAAI,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,OAAO,KAAK;IACjB,IAAI;KACF,MAAM;KACN,IAAI,CAAC,UAAU,YAAY,MAAM,MAAM,UAAU;IACnD,UAAU;KACR,IAAI;MACF,OAAO,MAAM;KACf,UAAU;MACR,OAAO;KACT;IACF;GACF;GACA,MAAM,aAA6B;IACjC,IAAI,SAAS;KACX,OAAO,UAAU,WAAY,OAAO,eAAe,KAAA,KAAa,OAAO,eAAe;IACxF;IACA,MAAM,KAAK,OAAO;KAChB,IAAI,WAAW,QAAQ,MAAM,IAAI,MAAM,qCAAqC;KAC5E,IAAI,cAAc,MAAM,aAAa,mBAAmB;MACtD,MAAM,wBAAQ,IAAI,MAAM,uCAAuC;MAC/D,OAAO,KAAK;MACZ,OAAO,MAAM;MACb,MAAM;KACR;KACA,eAAe,MAAM;KACrB,MAAM,OAAO,QACV,WAAW;MACV,IAAI,QAAQ,MAAM,IAAI,MAAM,qCAAqC;MACjE,OAAO,MAAM,KAAK;KACpB,CAAC,CAAC,CACD,cAAc;MACb,eAAe,MAAM;KACvB,CAAC;KACH,UAAU,KAAK,OAAO,UAAmB;MACvC,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;MAChE,OAAO,MAAM;KACf,CAAC;KACD,OAAO;IACT;IACA;GACF;GACA,KAAK,IAAI,KAAK;GACd,IAAI;IACF,UAAU,SAAS,UAAU;GAC/B,SAAS,OAAO;IACd,KAAK,OAAO,KAAK;IACjB,OAAO,MAAM;IACb,MAAM;GACR;GACA,OAAO;IACL,SAAS,UAAU;KACjB,IAAI,CAAC,UAAU,CAAC,SAAS,SAAS,OAAO,KAAK;IAChD;IACA,eAAe,OAAO;IACtB,UAAU,UAAU,OAAO,KAAK;GAClC;EACF;CACF;AACF"}
@@ -1,115 +0,0 @@
1
- //#region src/pi/piWebSocketListener.ts
2
- const OPEN = 1;
3
- const MAX_PENDING_BYTES = 67108864;
4
- /** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */
5
- function createPiWebSocketListener(options = {}) {
6
- let acceptor;
7
- const open = /* @__PURE__ */ new Set();
8
- return {
9
- async start(accept) {
10
- acceptor = accept;
11
- },
12
- async close() {
13
- acceptor = void 0;
14
- await Promise.all([...open].map(async (close) => {
15
- try {
16
- await close();
17
- } catch (error) {
18
- options.onError?.(error instanceof Error ? error : new Error(String(error)));
19
- }
20
- }));
21
- },
22
- accept(socket) {
23
- if (!acceptor) {
24
- socket.close();
25
- return;
26
- }
27
- let closed = false;
28
- let closing = false;
29
- let notified = false;
30
- let sending = Promise.resolve();
31
- let queuedBytes = 0;
32
- let handler;
33
- const write = async (chunk) => {
34
- let timer;
35
- try {
36
- await Promise.race([socket.send(chunk), new Promise((_resolve, reject) => {
37
- timer = setTimeout(() => reject(/* @__PURE__ */ new Error("Protocol socket write timed out.")), 15e3);
38
- timer.unref();
39
- })]);
40
- } finally {
41
- clearTimeout(timer);
42
- }
43
- };
44
- const notify = (error) => {
45
- closed = true;
46
- open.delete(close);
47
- if (notified) return;
48
- notified = true;
49
- if (error) handler?.onError(error);
50
- else handler?.onClose();
51
- };
52
- const close = async (finalChunk) => {
53
- if (closing || closed) return;
54
- closing = true;
55
- open.delete(close);
56
- try {
57
- await sending;
58
- if (!closed && finalChunk) await write(finalChunk);
59
- } finally {
60
- try {
61
- socket.close();
62
- } finally {
63
- notify();
64
- }
65
- }
66
- };
67
- const connection = {
68
- get closed() {
69
- return closed || closing || socket.readyState !== void 0 && socket.readyState !== OPEN;
70
- },
71
- async send(chunk) {
72
- if (connection.closed) throw new Error("Protocol socket closed before send.");
73
- if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {
74
- const error = /* @__PURE__ */ new Error("Protocol socket send queue exhausted.");
75
- notify(error);
76
- socket.close();
77
- throw error;
78
- }
79
- queuedBytes += chunk.byteLength;
80
- const next = sending.then(() => {
81
- if (closed) throw new Error("Protocol socket closed before send.");
82
- return write(chunk);
83
- }).finally(() => {
84
- queuedBytes -= chunk.byteLength;
85
- });
86
- sending = next.catch((error) => {
87
- notify(error instanceof Error ? error : new Error(String(error)));
88
- socket.close();
89
- });
90
- return next;
91
- },
92
- close
93
- };
94
- open.add(close);
95
- try {
96
- handler = acceptor(connection);
97
- } catch (error) {
98
- open.delete(close);
99
- socket.close();
100
- throw error;
101
- }
102
- return {
103
- onData: (chunk) => {
104
- if (!closed && !closing) handler?.onData(chunk);
105
- },
106
- onClose: () => notify(),
107
- onError: (error) => notify(error)
108
- };
109
- }
110
- };
111
- }
112
- //#endregion
113
- export { createPiWebSocketListener };
114
-
115
- //# sourceMappingURL=piWebSocketListener.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"piWebSocketListener.mjs","names":[],"sources":["../../../src/pi/piWebSocketListener.ts"],"sourcesContent":["import type { Server, ServerListener } from '@earendil-works/pi-server';\n\ntype ByteConnection = Parameters<Server['accept']>[0];\ntype ByteConnectionHandler = ReturnType<Server['accept']>;\ntype ByteConnectionAcceptor = (connection: ByteConnection) => ByteConnectionHandler;\n\n/** The minimum WebSocket surface needed by the Pi byte-protocol listener. */\nexport interface PiListenerSocket {\n send(data: ArrayBufferLike | Uint8Array): void | Promise<void>;\n close(): void;\n readonly readyState?: number;\n}\n\nconst OPEN = 1;\nconst MAX_PENDING_BYTES = 64 * 1024 * 1024;\n\nexport interface PiWebSocketListener extends ServerListener {\n /** Hands an authenticated, already-upgraded socket to the protocol server. */\n accept(socket: PiListenerSocket): ByteConnectionHandler | undefined;\n}\n\n/** Adapts authenticated browser WebSockets to Pi 0.85 byte connections. */\nexport function createPiWebSocketListener(options: { onError?: (error: Error) => void } = {}): PiWebSocketListener {\n let acceptor: ByteConnectionAcceptor | undefined;\n const open = new Set<() => Promise<void>>();\n return {\n async start(accept) {\n acceptor = accept;\n },\n async close() {\n acceptor = undefined;\n await Promise.all(\n [...open].map(async (close) => {\n try {\n await close();\n } catch (error) {\n options.onError?.(error instanceof Error ? error : new Error(String(error)));\n }\n }),\n );\n },\n accept(socket) {\n if (!acceptor) {\n socket.close();\n return undefined;\n }\n let closed = false;\n let closing = false;\n let notified = false;\n let sending = Promise.resolve();\n let queuedBytes = 0;\n let handler: ByteConnectionHandler | undefined;\n const write = async (chunk: Uint8Array): Promise<void> => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n socket.send(chunk),\n new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => reject(new Error('Protocol socket write timed out.')), 15_000);\n timer.unref();\n }),\n ]);\n } finally {\n clearTimeout(timer);\n }\n };\n const notify = (error?: Error): void => {\n closed = true;\n open.delete(close);\n if (notified) return;\n notified = true;\n if (error) handler?.onError(error);\n else handler?.onClose();\n };\n const close = async (finalChunk?: Uint8Array): Promise<void> => {\n if (closing || closed) return;\n closing = true;\n open.delete(close);\n try {\n await sending;\n if (!closed && finalChunk) await write(finalChunk);\n } finally {\n try {\n socket.close();\n } finally {\n notify();\n }\n }\n };\n const connection: ByteConnection = {\n get closed() {\n return closed || closing || (socket.readyState !== undefined && socket.readyState !== OPEN);\n },\n async send(chunk) {\n if (connection.closed) throw new Error('Protocol socket closed before send.');\n if (queuedBytes + chunk.byteLength > MAX_PENDING_BYTES) {\n const error = new Error('Protocol socket send queue exhausted.');\n notify(error);\n socket.close();\n throw error;\n }\n queuedBytes += chunk.byteLength;\n const next = sending\n .then(() => {\n if (closed) throw new Error('Protocol socket closed before send.');\n return write(chunk);\n })\n .finally(() => {\n queuedBytes -= chunk.byteLength;\n });\n sending = next.catch((error: unknown) => {\n notify(error instanceof Error ? error : new Error(String(error)));\n socket.close();\n });\n return next;\n },\n close,\n };\n open.add(close);\n try {\n handler = acceptor(connection);\n } catch (error) {\n open.delete(close);\n socket.close();\n throw error;\n }\n return {\n onData: (chunk) => {\n if (!closed && !closing) handler?.onData(chunk);\n },\n onClose: () => notify(),\n onError: (error) => notify(error),\n };\n },\n };\n}\n"],"mappings":";AAaA,MAAM,OAAO;AACb,MAAM,oBAAoB;;AAQ1B,SAAgB,0BAA0B,UAAgD,CAAC,GAAwB;CACjH,IAAI;CACJ,MAAM,uBAAO,IAAI,IAAyB;CAC1C,OAAO;EACL,MAAM,MAAM,QAAQ;GAClB,WAAW;EACb;EACA,MAAM,QAAQ;GACZ,WAAW,KAAA;GACX,MAAM,QAAQ,IACZ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU;IAC7B,IAAI;KACF,MAAM,MAAM;IACd,SAAS,OAAO;KACd,QAAQ,UAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;IAC7E;GACF,CAAC,CACH;EACF;EACA,OAAO,QAAQ;GACb,IAAI,CAAC,UAAU;IACb,OAAO,MAAM;IACb;GACF;GACA,IAAI,SAAS;GACb,IAAI,UAAU;GACd,IAAI,WAAW;GACf,IAAI,UAAU,QAAQ,QAAQ;GAC9B,IAAI,cAAc;GAClB,IAAI;GACJ,MAAM,QAAQ,OAAO,UAAqC;IACxD,IAAI;IACJ,IAAI;KACF,MAAM,QAAQ,KAAK,CACjB,OAAO,KAAK,KAAK,GACjB,IAAI,SAAgB,UAAU,WAAW;MACvC,QAAQ,iBAAiB,uBAAO,IAAI,MAAM,kCAAkC,CAAC,GAAG,IAAM;MACtF,MAAM,MAAM;KACd,CAAC,CACH,CAAC;IACH,UAAU;KACR,aAAa,KAAK;IACpB;GACF;GACA,MAAM,UAAU,UAAwB;IACtC,SAAS;IACT,KAAK,OAAO,KAAK;IACjB,IAAI,UAAU;IACd,WAAW;IACX,IAAI,OAAO,SAAS,QAAQ,KAAK;SAC5B,SAAS,QAAQ;GACxB;GACA,MAAM,QAAQ,OAAO,eAA2C;IAC9D,IAAI,WAAW,QAAQ;IACvB,UAAU;IACV,KAAK,OAAO,KAAK;IACjB,IAAI;KACF,MAAM;KACN,IAAI,CAAC,UAAU,YAAY,MAAM,MAAM,UAAU;IACnD,UAAU;KACR,IAAI;MACF,OAAO,MAAM;KACf,UAAU;MACR,OAAO;KACT;IACF;GACF;GACA,MAAM,aAA6B;IACjC,IAAI,SAAS;KACX,OAAO,UAAU,WAAY,OAAO,eAAe,KAAA,KAAa,OAAO,eAAe;IACxF;IACA,MAAM,KAAK,OAAO;KAChB,IAAI,WAAW,QAAQ,MAAM,IAAI,MAAM,qCAAqC;KAC5E,IAAI,cAAc,MAAM,aAAa,mBAAmB;MACtD,MAAM,wBAAQ,IAAI,MAAM,uCAAuC;MAC/D,OAAO,KAAK;MACZ,OAAO,MAAM;MACb,MAAM;KACR;KACA,eAAe,MAAM;KACrB,MAAM,OAAO,QACV,WAAW;MACV,IAAI,QAAQ,MAAM,IAAI,MAAM,qCAAqC;MACjE,OAAO,MAAM,KAAK;KACpB,CAAC,CAAC,CACD,cAAc;MACb,eAAe,MAAM;KACvB,CAAC;KACH,UAAU,KAAK,OAAO,UAAmB;MACvC,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;MAChE,OAAO,MAAM;KACf,CAAC;KACD,OAAO;IACT;IACA;GACF;GACA,KAAK,IAAI,KAAK;GACd,IAAI;IACF,UAAU,SAAS,UAAU;GAC/B,SAAS,OAAO;IACd,KAAK,OAAO,KAAK;IACjB,OAAO,MAAM;IACb,MAAM;GACR;GACA,OAAO;IACL,SAAS,UAAU;KACjB,IAAI,CAAC,UAAU,CAAC,SAAS,SAAS,OAAO,KAAK;IAChD;IACA,eAAe,OAAO;IACtB,UAAU,UAAU,OAAO,KAAK;GAClC;EACF;CACF;AACF"}
@@ -1,111 +0,0 @@
1
- //#region src/schemas/serverFacet.ts
2
- /** The host a server facet contributes to. */
3
- const DOOM_SERVER_HOST_SERVICE = "doom/server-host";
4
- function readDoomServerHost(context) {
5
- return context.get(DOOM_SERVER_HOST_SERVICE);
6
- }
7
- function requireDoomServerHost(context) {
8
- const service = readDoomServerHost(context);
9
- if (!service) throw new Error("The Doom server host is unavailable. Start a Doom server first.");
10
- return service;
11
- }
12
- /** The package.json field a package declares its server facet under. */
13
- const DOOM_SERVER_FACET_MANIFEST_FIELD = "poServer";
14
- /** The default export a facet module must provide, so a host can install it. */
15
- const DOOM_SERVER_FACET_EXPORT = "default";
16
- /** Read pure root metadata without initializing or mounting the root. */
17
- function composeServerProviderOverrides(...roots) {
18
- return (context) => roots.flatMap((root) => {
19
- if (typeof root !== "function" && typeof root !== "object" || root === null) return [];
20
- const callback = root.providerOverrides;
21
- return typeof callback === "function" ? callback(context) : [];
22
- });
23
- }
24
- /** Capture schema inference before heterogeneous methods enter a contribution array. */
25
- function defineServerMethod(definition, handler) {
26
- return { register: (host) => host.registerMethod(definition, handler) };
27
- }
28
- var DoomServerFacetManifestError = class extends Error {
29
- constructor(packageDir, message) {
30
- super(`${DOOM_SERVER_FACET_MANIFEST_FIELD} manifest in ${packageDir}: ${message}`);
31
- this.name = "DoomServerFacetManifestError";
32
- }
33
- };
34
- function isRecord(value) {
35
- return typeof value === "object" && value !== null && !Array.isArray(value);
36
- }
37
- /** Narrows a module's default export, so a broken package is a notice rather than a crash. */
38
- function isDoomServerFacet(value) {
39
- return isRecord(value) && typeof value.apply === "function";
40
- }
41
- function normalizePath(packageDir, field, value) {
42
- if (typeof value !== "string" || !value.startsWith("./") || value.includes("..")) throw new DoomServerFacetManifestError(packageDir, `${field} must be a package-relative ./path with no '..'.`);
43
- return value;
44
- }
45
- function normalizeScopes(packageDir, value) {
46
- if (value === void 0) throw new DoomServerFacetManifestError(packageDir, "scopes must be declared explicitly.");
47
- if (!Array.isArray(value) || value.length === 0) throw new DoomServerFacetManifestError(packageDir, "scopes must name 'global', 'workspace', or 'session'.");
48
- const scopes = [];
49
- for (const scope of value) {
50
- if (scope !== "session" && scope !== "global" && scope !== "workspace") throw new DoomServerFacetManifestError(packageDir, `Unknown scope '${String(scope)}'; resync for the three-level host.`);
51
- if (!scopes.includes(scope)) scopes.push(scope);
52
- }
53
- return scopes;
54
- }
55
- /**
56
- * Validates one package.json's `poServer` block.
57
- *
58
- * `dist` is required because a host imports the built entry the package ships,
59
- * never its source.
60
- */
61
- function declaredServerFacetsOf(packageDir, manifest) {
62
- const declared = manifest[DOOM_SERVER_FACET_MANIFEST_FIELD];
63
- if (declared === void 0) return [];
64
- if (!isRecord(declared)) throw new DoomServerFacetManifestError(packageDir, "the block must be an object naming entry and dist.");
65
- const entry = normalizePath(packageDir, "entry", declared.entry);
66
- if (declared.dist === void 0) throw new DoomServerFacetManifestError(packageDir, "dist is required: a host imports the built entry the package ships, never its source.");
67
- const dist = normalizePath(packageDir, "dist", declared.dist);
68
- if (declared.required !== void 0 && typeof declared.required !== "boolean") throw new DoomServerFacetManifestError(packageDir, "required must be a boolean.");
69
- return [{
70
- packageName: typeof manifest.name === "string" ? manifest.name : packageDir,
71
- packageDir,
72
- entry,
73
- dist,
74
- scopes: normalizeScopes(packageDir, declared.scopes),
75
- ...typeof declared.required === "boolean" ? { required: declared.required } : {}
76
- }];
77
- }
78
- /**
79
- * The deterministic order hosts install in. A package appears once: the first
80
- * directory claiming a package name keeps it and the later one is dropped with
81
- * a notice, so a duplicated install never installs a facet twice.
82
- */
83
- function orderServerFacets(facets, onNotice = () => void 0) {
84
- const sorted = [...facets].sort((left, right) => left.packageName.localeCompare(right.packageName) || left.packageDir.localeCompare(right.packageDir));
85
- const owners = /* @__PURE__ */ new Map();
86
- const kept = [];
87
- for (const facet of sorted) {
88
- const holder = owners.get(facet.packageName);
89
- if (holder !== void 0) {
90
- onNotice(`server facet '${facet.packageName}' from ${facet.packageDir} is skipped: ${holder.packageDir} already claims it.`);
91
- continue;
92
- }
93
- owners.set(facet.packageName, facet);
94
- kept.push(facet);
95
- }
96
- return kept;
97
- }
98
- //#endregion
99
- exports.DOOM_SERVER_FACET_EXPORT = DOOM_SERVER_FACET_EXPORT;
100
- exports.DOOM_SERVER_FACET_MANIFEST_FIELD = DOOM_SERVER_FACET_MANIFEST_FIELD;
101
- exports.DOOM_SERVER_HOST_SERVICE = DOOM_SERVER_HOST_SERVICE;
102
- exports.DoomServerFacetManifestError = DoomServerFacetManifestError;
103
- exports.composeServerProviderOverrides = composeServerProviderOverrides;
104
- exports.declaredServerFacetsOf = declaredServerFacetsOf;
105
- exports.defineServerMethod = defineServerMethod;
106
- exports.isDoomServerFacet = isDoomServerFacet;
107
- exports.orderServerFacets = orderServerFacets;
108
- exports.readDoomServerHost = readDoomServerHost;
109
- exports.requireDoomServerHost = requireDoomServerHost;
110
-
111
- //# sourceMappingURL=serverFacet.cjs.map