@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
@@ -0,0 +1,15 @@
1
+ //#region src/services/historyOwnership/type.d.ts
2
+ export interface HistoryOwnershipLease {
3
+ assertQuiescent(): void | Promise<void>;
4
+ release(): void | Promise<void>;
5
+ }
6
+ /**
7
+ * The caller must establish ownership and stop all managed writers before this
8
+ * adapter reads or publishes a session. A filesystem lock cannot prove that an
9
+ * unmanaged Pi process has stopped, so the boundary stays explicit.
10
+ */
11
+ export interface HistoryOwnership {
12
+ acquire(sourcePath: string): HistoryOwnershipLease | Promise<HistoryOwnershipLease>;
13
+ }
14
+ //#endregion
15
+ //# sourceMappingURL=type.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.mts","names":[],"sources":["../../../../src/services/historyOwnership/type.ts"],"mappings":";iBAAiB;EACf,0BAA0B;EAC1B,kBAAkB;;;;;;;iBAQH;EACf,QAAQ,qBAAqB,wBAAwB,QAAQ"}
@@ -3,7 +3,7 @@ const DEFAULT_SESSION = {
3
3
  sessionId: "s1",
4
4
  cwd: "/repo"
5
5
  };
6
- function doomHubChannelHarness(channel, options = {}) {
6
+ function poHubChannelHarness(channel, options = {}) {
7
7
  const sessions = [...options.sessions ?? [DEFAULT_SESSION]];
8
8
  const published = [];
9
9
  const notices = [];
@@ -45,6 +45,6 @@ function doomHubChannelHarness(channel, options = {}) {
45
45
  };
46
46
  }
47
47
  //#endregion
48
- exports.doomHubChannelHarness = doomHubChannelHarness;
48
+ exports.poHubChannelHarness = poHubChannelHarness;
49
49
 
50
50
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n DoomHubChannel,\n DoomHubChannelFrame,\n DoomHubChannelHost,\n DoomHubChannelSource,\n DoomHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface DoomHubChannelHarness {\n source: DoomHubChannelSource;\n readonly published: readonly DoomHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: DoomHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface DoomHubChannelHarnessOptions {\n sessions?: readonly DoomHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: DoomHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function doomHubChannelHarness(\n channel: DoomHubChannel,\n options: DoomHubChannelHarnessOptions = {},\n): DoomHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: DoomHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: DoomHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAuC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE7E,SAAgB,sBACd,SACA,UAAwC,CAAC,GAClB;CACvB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAmC,CAAC;CAC1C,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n PoHubChannel,\n PoHubChannelFrame,\n PoHubChannelHost,\n PoHubChannelSource,\n PoHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface PoHubChannelHarness {\n source: PoHubChannelSource;\n readonly published: readonly PoHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: PoHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface PoHubChannelHarnessOptions {\n sessions?: readonly PoHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: PoHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function poHubChannelHarness(\n channel: PoHubChannel,\n options: PoHubChannelHarnessOptions = {},\n): PoHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: PoHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: PoHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAqC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE3E,SAAgB,oBACd,SACA,UAAsC,CAAC,GAClB;CACrB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAiC,CAAC;CACxC,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
@@ -1,17 +1,17 @@
1
- import { DoomHubChannel, DoomHubChannelFrame, DoomHubChannelSource, DoomHubSessionScope } from "../../schemas/hubChannel.mjs";
1
+ import { PoHubChannel, PoHubChannelFrame, PoHubChannelSource, PoHubSessionScope } from "../../schemas/hubChannel.mjs";
2
2
  //#region src/services/hubChannelHarness/index.d.ts
3
- export interface DoomHubChannelHarness {
4
- source: DoomHubChannelSource;
5
- readonly published: readonly DoomHubChannelFrame[];
3
+ export interface PoHubChannelHarness {
4
+ source: PoHubChannelSource;
5
+ readonly published: readonly PoHubChannelFrame[];
6
6
  readonly notices: readonly string[];
7
7
  snapshot(sessionId?: string): unknown;
8
- addSession(scope: DoomHubSessionScope): void;
8
+ addSession(scope: PoHubSessionScope): void;
9
9
  removeSession(sessionId: string): void;
10
10
  close(): void;
11
11
  }
12
- export interface DoomHubChannelHarnessOptions {
13
- sessions?: readonly DoomHubSessionScope[];
12
+ export interface PoHubChannelHarnessOptions {
13
+ sessions?: readonly PoHubSessionScope[];
14
14
  }
15
- export declare function doomHubChannelHarness(channel: DoomHubChannel, options?: DoomHubChannelHarnessOptions): DoomHubChannelHarness;
15
+ export declare function poHubChannelHarness(channel: PoHubChannel, options?: PoHubChannelHarnessOptions): PoHubChannelHarness;
16
16
  //#endregion
17
17
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"mappings":";;iBAQiB;EACf,QAAQ;WACC,oBAAoB;WACpB;EACT,SAAS;EACT,WAAW,OAAO;EAClB,cAAc;EACd;;iBAGe;EACf,oBAAoB;;wBAKN,sBACd,SAAS,gBACT,UAAS,+BACR"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"mappings":";;iBAQiB;EACf,QAAQ;WACC,oBAAoB;WACpB;EACT,SAAS;EACT,WAAW,OAAO;EAClB,cAAc;EACd;;iBAGe;EACf,oBAAoB;;wBAKN,oBACd,SAAS,cACT,UAAS,6BACR"}
@@ -3,7 +3,7 @@ const DEFAULT_SESSION = {
3
3
  sessionId: "s1",
4
4
  cwd: "/repo"
5
5
  };
6
- function doomHubChannelHarness(channel, options = {}) {
6
+ function poHubChannelHarness(channel, options = {}) {
7
7
  const sessions = [...options.sessions ?? [DEFAULT_SESSION]];
8
8
  const published = [];
9
9
  const notices = [];
@@ -45,6 +45,6 @@ function doomHubChannelHarness(channel, options = {}) {
45
45
  };
46
46
  }
47
47
  //#endregion
48
- export { doomHubChannelHarness };
48
+ export { poHubChannelHarness };
49
49
 
50
50
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n DoomHubChannel,\n DoomHubChannelFrame,\n DoomHubChannelHost,\n DoomHubChannelSource,\n DoomHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface DoomHubChannelHarness {\n source: DoomHubChannelSource;\n readonly published: readonly DoomHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: DoomHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface DoomHubChannelHarnessOptions {\n sessions?: readonly DoomHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: DoomHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function doomHubChannelHarness(\n channel: DoomHubChannel,\n options: DoomHubChannelHarnessOptions = {},\n): DoomHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: DoomHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: DoomHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAuC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE7E,SAAgB,sBACd,SACA,UAAwC,CAAC,GAClB;CACvB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAmC,CAAC;CAC1C,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/hubChannelHarness/index.ts"],"sourcesContent":["import type {\n PoHubChannel,\n PoHubChannelFrame,\n PoHubChannelHost,\n PoHubChannelSource,\n PoHubSessionScope,\n} from '../../schemas/hubChannel';\n\nexport interface PoHubChannelHarness {\n source: PoHubChannelSource;\n readonly published: readonly PoHubChannelFrame[];\n readonly notices: readonly string[];\n snapshot(sessionId?: string): unknown;\n addSession(scope: PoHubSessionScope): void;\n removeSession(sessionId: string): void;\n close(): void;\n}\n\nexport interface PoHubChannelHarnessOptions {\n sessions?: readonly PoHubSessionScope[];\n}\n\nconst DEFAULT_SESSION: PoHubSessionScope = { sessionId: 's1', cwd: '/repo' };\n\nexport function poHubChannelHarness(\n channel: PoHubChannel,\n options: PoHubChannelHarnessOptions = {},\n): PoHubChannelHarness {\n const sessions = [...(options.sessions ?? [DEFAULT_SESSION])];\n const published: PoHubChannelFrame[] = [];\n const notices: string[] = [];\n const host: PoHubChannelHost = {\n sessions: () => sessions,\n directEvents: {\n publish: () => undefined,\n subscribe: () => () => undefined,\n close: () => undefined,\n },\n publish: (sessionId, payload) => {\n published.push({ type: channel.frameType, sessionId, payload });\n },\n requestSessionApi: () =>\n Promise.resolve(Response.json({ error: 'No session API in the channel harness.' }, { status: 501 })),\n onNotice: (message) => notices.push(message),\n };\n const source = channel.start(host);\n\n return {\n source,\n published,\n notices,\n snapshot(sessionId) {\n const scope = sessions.find((candidate) => candidate.sessionId === sessionId) ?? sessions[0] ?? DEFAULT_SESSION;\n return source.payloadFor(scope);\n },\n addSession(scope) {\n sessions.push(scope);\n source.sessionAdded?.(scope);\n },\n removeSession(sessionId) {\n const index = sessions.findIndex((candidate) => candidate.sessionId === sessionId);\n if (index >= 0) sessions.splice(index, 1);\n source.sessionRemoved?.(sessionId);\n },\n close: () => source.close(),\n };\n}\n"],"mappings":";AAsBA,MAAM,kBAAqC;CAAE,WAAW;CAAM,KAAK;AAAQ;AAE3E,SAAgB,oBACd,SACA,UAAsC,CAAC,GAClB;CACrB,MAAM,WAAW,CAAC,GAAI,QAAQ,YAAY,CAAC,eAAe,CAAE;CAC5D,MAAM,YAAiC,CAAC;CACxC,MAAM,UAAoB,CAAC;CAe3B,MAAM,SAAS,QAAQ,MAAM;EAb3B,gBAAgB;EAChB,cAAc;GACZ,eAAe,KAAA;GACf,uBAAuB,KAAA;GACvB,aAAa,KAAA;EACf;EACA,UAAU,WAAW,YAAY;GAC/B,UAAU,KAAK;IAAE,MAAM,QAAQ;IAAW;IAAW;GAAQ,CAAC;EAChE;EACA,yBACE,QAAQ,QAAQ,SAAS,KAAK,EAAE,OAAO,yCAAyC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;EACrG,WAAW,YAAY,QAAQ,KAAK,OAAO;CAEb,CAAC;CAEjC,OAAO;EACL;EACA;EACA;EACA,SAAS,WAAW;GAClB,MAAM,QAAQ,SAAS,MAAM,cAAc,UAAU,cAAc,SAAS,KAAK,SAAS,MAAM;GAChG,OAAO,OAAO,WAAW,KAAK;EAChC;EACA,WAAW,OAAO;GAChB,SAAS,KAAK,KAAK;GACnB,OAAO,eAAe,KAAK;EAC7B;EACA,cAAc,WAAW;GACvB,MAAM,QAAQ,SAAS,WAAW,cAAc,UAAU,cAAc,SAAS;GACjF,IAAI,SAAS,GAAG,SAAS,OAAO,OAAO,CAAC;GACxC,OAAO,iBAAiB,SAAS;EACnC;EACA,aAAa,OAAO,MAAM;CAC5B;AACF"}
@@ -0,0 +1,30 @@
1
+ const require_index = require("../platformFiles/index.cjs");
2
+ //#region src/services/json/core.ts
3
+ function isRecord(value) {
4
+ return typeof value === "object" && value !== null && !Array.isArray(value);
5
+ }
6
+ /** Parses a JSON object, treating missing or blank content as the fallback. */
7
+ function parseJsonObject(content, fallback = {}) {
8
+ const trimmed = content?.trim();
9
+ return trimmed ? JSON.parse(trimmed) : fallback;
10
+ }
11
+ /** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
12
+ function serializeJson(value) {
13
+ return `${JSON.stringify(value, null, 2)}\n`;
14
+ }
15
+ /** Reads a JSON object, treating a missing or empty file as the fallback. */
16
+ async function readJsonAsync(fs, filePath, context, fallback = {}) {
17
+ return parseJsonObject(await require_index.readTextIfExists(fs, filePath, context), fallback);
18
+ }
19
+ /** Writes a JSON object through a uniquely named temporary file and a rename. */
20
+ async function writeJsonAsync(fs, filePath, value, context) {
21
+ await require_index.writeFileAtomic(fs, filePath, serializeJson(value), context);
22
+ }
23
+ //#endregion
24
+ exports.isRecord = isRecord;
25
+ exports.parseJsonObject = parseJsonObject;
26
+ exports.readJsonAsync = readJsonAsync;
27
+ exports.serializeJson = serializeJson;
28
+ exports.writeJsonAsync = writeJsonAsync;
29
+
30
+ //# sourceMappingURL=core.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.cjs","names":["readTextIfExists","writeFileAtomicAsync"],"sources":["../../../../src/services/json/core.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nimport { readTextIfExists, writeFileAtomic as writeFileAtomicAsync } from '../platformFiles';\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\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Parses a JSON object, treating missing or blank content as the fallback. */\nexport function parseJsonObject(content: string | undefined, fallback: JsonObject = {}): JsonObject {\n const trimmed = content?.trim();\n return trimmed ? (JSON.parse(trimmed) as JsonObject) : fallback;\n}\n\n/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */\nexport function serializeJson(value: JsonObject): string {\n return `${JSON.stringify(value, null, 2)}\\n`;\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport async function readJsonAsync(\n fs: FileSystem,\n filePath: string,\n context: Context,\n fallback: JsonObject = {},\n): Promise<JsonObject> {\n return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);\n}\n\n/** Writes a JSON object through a uniquely named temporary file and a rename. */\nexport async function writeJsonAsync(\n fs: FileSystem,\n filePath: string,\n value: JsonObject,\n context: Context,\n): Promise<void> {\n await writeFileAtomicAsync(fs, filePath, serializeJson(value), context);\n}\n"],"mappings":";;AAcA,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,gBAAgB,SAA6B,WAAuB,CAAC,GAAe;CAClG,MAAM,UAAU,SAAS,KAAK;CAC9B,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;AAGA,SAAgB,cAAc,OAA2B;CACvD,OAAO,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE;AAC3C;;AAGA,eAAsB,cACpB,IACA,UACA,SACA,WAAuB,CAAC,GACH;CACrB,OAAO,gBAAgB,MAAMA,cAAAA,iBAAiB,IAAI,UAAU,OAAO,GAAG,QAAQ;AAChF;;AAGA,eAAsB,eACpB,IACA,UACA,OACA,SACe;CACf,MAAMC,cAAAA,gBAAqB,IAAI,UAAU,cAAc,KAAK,GAAG,OAAO;AACxE"}
@@ -0,0 +1,21 @@
1
+ import { FileSystem } from "@earendil-works/pi-durable/env";
2
+ import { Context } from "@earendil-works/chord";
3
+ //#region src/services/json/core.d.ts
4
+ /**
5
+ * JSON state helpers for files the harness owns on disk.
6
+ *
7
+ * Compatibility frontends read these files while another repository's harness
8
+ * may be writing them, so writes go through a rename rather than a truncate.
9
+ */
10
+ export type JsonObject = Record<string, unknown>;
11
+ export declare function isRecord(value: unknown): value is JsonObject;
12
+ /** Parses a JSON object, treating missing or blank content as the fallback. */
13
+ export declare function parseJsonObject(content: string | undefined, fallback?: JsonObject): JsonObject;
14
+ /** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
15
+ export declare function serializeJson(value: JsonObject): string;
16
+ /** Reads a JSON object, treating a missing or empty file as the fallback. */
17
+ export declare function readJsonAsync(fs: FileSystem, filePath: string, context: Context, fallback?: JsonObject): Promise<JsonObject>;
18
+ /** Writes a JSON object through a uniquely named temporary file and a rename. */
19
+ export declare function writeJsonAsync(fs: FileSystem, filePath: string, value: JsonObject, context: Context): Promise<void>;
20
+ //#endregion
21
+ //# sourceMappingURL=core.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.mts","names":[],"sources":["../../../../src/services/json/core.ts"],"mappings":";;;;;;;;;YAYY,aAAa;wBAET,SAAS,iBAAiB,SAAS;;wBAKnC,gBAAgB,6BAA6B,WAAU,aAAkB;;wBAMzE,cAAc,OAAO;;wBAKf,cACpB,IAAI,YACJ,kBACA,SAAS,SACT,WAAU,aACT,QAAQ;;wBAKW,eACpB,IAAI,YACJ,kBACA,OAAO,YACP,SAAS,UACR"}
@@ -0,0 +1,26 @@
1
+ import { readTextIfExists, writeFileAtomic } from "../platformFiles/index.mjs";
2
+ //#region src/services/json/core.ts
3
+ function isRecord(value) {
4
+ return typeof value === "object" && value !== null && !Array.isArray(value);
5
+ }
6
+ /** Parses a JSON object, treating missing or blank content as the fallback. */
7
+ function parseJsonObject(content, fallback = {}) {
8
+ const trimmed = content?.trim();
9
+ return trimmed ? JSON.parse(trimmed) : fallback;
10
+ }
11
+ /** The on-disk form of a JSON state file: two-space indent and a trailing newline. */
12
+ function serializeJson(value) {
13
+ return `${JSON.stringify(value, null, 2)}\n`;
14
+ }
15
+ /** Reads a JSON object, treating a missing or empty file as the fallback. */
16
+ async function readJsonAsync(fs, filePath, context, fallback = {}) {
17
+ return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);
18
+ }
19
+ /** Writes a JSON object through a uniquely named temporary file and a rename. */
20
+ async function writeJsonAsync(fs, filePath, value, context) {
21
+ await writeFileAtomic(fs, filePath, serializeJson(value), context);
22
+ }
23
+ //#endregion
24
+ export { isRecord, parseJsonObject, readJsonAsync, serializeJson, writeJsonAsync };
25
+
26
+ //# sourceMappingURL=core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.mjs","names":["writeFileAtomicAsync"],"sources":["../../../../src/services/json/core.ts"],"sourcesContent":["import type { Context } from '@earendil-works/chord';\nimport type { FileSystem } from '@earendil-works/pi-durable/env';\n\nimport { readTextIfExists, writeFileAtomic as writeFileAtomicAsync } from '../platformFiles';\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\nexport function isRecord(value: unknown): value is JsonObject {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/** Parses a JSON object, treating missing or blank content as the fallback. */\nexport function parseJsonObject(content: string | undefined, fallback: JsonObject = {}): JsonObject {\n const trimmed = content?.trim();\n return trimmed ? (JSON.parse(trimmed) as JsonObject) : fallback;\n}\n\n/** The on-disk form of a JSON state file: two-space indent and a trailing newline. */\nexport function serializeJson(value: JsonObject): string {\n return `${JSON.stringify(value, null, 2)}\\n`;\n}\n\n/** Reads a JSON object, treating a missing or empty file as the fallback. */\nexport async function readJsonAsync(\n fs: FileSystem,\n filePath: string,\n context: Context,\n fallback: JsonObject = {},\n): Promise<JsonObject> {\n return parseJsonObject(await readTextIfExists(fs, filePath, context), fallback);\n}\n\n/** Writes a JSON object through a uniquely named temporary file and a rename. */\nexport async function writeJsonAsync(\n fs: FileSystem,\n filePath: string,\n value: JsonObject,\n context: Context,\n): Promise<void> {\n await writeFileAtomicAsync(fs, filePath, serializeJson(value), context);\n}\n"],"mappings":";;AAcA,SAAgB,SAAS,OAAqC;CAC5D,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;AAGA,SAAgB,gBAAgB,SAA6B,WAAuB,CAAC,GAAe;CAClG,MAAM,UAAU,SAAS,KAAK;CAC9B,OAAO,UAAW,KAAK,MAAM,OAAO,IAAmB;AACzD;;AAGA,SAAgB,cAAc,OAA2B;CACvD,OAAO,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,EAAE;AAC3C;;AAGA,eAAsB,cACpB,IACA,UACA,SACA,WAAuB,CAAC,GACH;CACrB,OAAO,gBAAgB,MAAM,iBAAiB,IAAI,UAAU,OAAO,GAAG,QAAQ;AAChF;;AAGA,eAAsB,eACpB,IACA,UACA,OACA,SACe;CACf,MAAMA,gBAAqB,IAAI,UAAU,cAAc,KAAK,GAAG,OAAO;AACxE"}
@@ -0,0 +1,48 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_core = require("./core.cjs");
3
+ let node_crypto = require("node:crypto");
4
+ let node_fs = require("node:fs");
5
+ node_fs = require_runtime.__toESM(node_fs, 1);
6
+ let node_path = require("node:path");
7
+ node_path = require_runtime.__toESM(node_path, 1);
8
+ //#region src/services/json/sync.ts
9
+ const ATOMIC_FILE_SUFFIX = ".tmp";
10
+ /**
11
+ * Reads a JSON object, treating a missing or empty file as the fallback.
12
+ *
13
+ * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
14
+ */
15
+ function readJson(filePath, fallback = {}) {
16
+ if (!node_fs.default.existsSync(filePath)) return fallback;
17
+ return require_core.parseJsonObject(node_fs.default.readFileSync(filePath, "utf8"), fallback);
18
+ }
19
+ /**
20
+ * Writes through a uniquely named temporary file in the same directory.
21
+ *
22
+ * The pid and a UUID are both in the name so two harnesses writing the same
23
+ * target cannot collide on the temporary path, and a failed write cleans up
24
+ * after itself rather than leaving the fragment behind.
25
+ *
26
+ * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
27
+ */
28
+ function writeFileAtomic(filePath, content) {
29
+ node_fs.default.mkdirSync(node_path.default.dirname(filePath), { recursive: true });
30
+ const temporaryPath = `${filePath}.${process.pid}.${(0, node_crypto.randomUUID)()}${ATOMIC_FILE_SUFFIX}`;
31
+ try {
32
+ node_fs.default.writeFileSync(temporaryPath, content);
33
+ node_fs.default.renameSync(temporaryPath, filePath);
34
+ } catch (error) {
35
+ node_fs.default.rmSync(temporaryPath, { force: true });
36
+ throw error;
37
+ }
38
+ }
39
+ /** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
40
+ function writeJson(filePath, value) {
41
+ writeFileAtomic(filePath, require_core.serializeJson(value));
42
+ }
43
+ //#endregion
44
+ exports.readJson = readJson;
45
+ exports.writeFileAtomic = writeFileAtomic;
46
+ exports.writeJson = writeJson;
47
+
48
+ //# sourceMappingURL=sync.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.cjs","names":["fs","parseJsonObject","path","randomUUID","serializeJson"],"sources":["../../../../src/services/json/sync.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { parseJsonObject, serializeJson } from './core';\nimport type { JsonObject } from './core';\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\n/**\n * Reads a JSON object, treating a missing or empty file as the fallback.\n *\n * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.\n */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n return parseJsonObject(fs.readFileSync(filePath, 'utf8'), 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 *\n * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.\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\n/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, serializeJson(value));\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,qBAAqB;;;;;;AAO3B,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAACA,QAAAA,QAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,OAAOC,aAAAA,gBAAgBD,QAAAA,QAAG,aAAa,UAAU,MAAM,GAAG,QAAQ;AACpE;;;;;;;;;;AAWA,SAAgB,gBAAgB,UAAkB,SAAuB;CACvE,QAAA,QAAG,UAAUE,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;;AAGA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAUC,aAAAA,cAAc,KAAK,CAAC;AAChD"}
@@ -0,0 +1,22 @@
1
+ import { JsonObject } from "./core.mjs";
2
+ //#region src/services/json/sync.d.ts
3
+ /**
4
+ * Reads a JSON object, treating a missing or empty file as the fallback.
5
+ *
6
+ * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
7
+ */
8
+ export declare function readJson(filePath: string, fallback?: JsonObject): JsonObject;
9
+ /**
10
+ * Writes through a uniquely named temporary file in the same directory.
11
+ *
12
+ * The pid and a UUID are both in the name so two harnesses writing the same
13
+ * target cannot collide on the temporary path, and a failed write cleans up
14
+ * after itself rather than leaving the fragment behind.
15
+ *
16
+ * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
17
+ */
18
+ export declare function writeFileAtomic(filePath: string, content: string): void;
19
+ /** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
20
+ export declare function writeJson(filePath: string, value: JsonObject): void;
21
+ //#endregion
22
+ //# sourceMappingURL=sync.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.mts","names":[],"sources":["../../../../src/services/json/sync.ts"],"mappings":";;;;;;;wBAcgB,SAAS,kBAAkB,WAAU,aAAkB;;;;;;;;;;wBAcvD,gBAAgB,kBAAkB;;wBAalC,UAAU,kBAAkB,OAAO"}
@@ -0,0 +1,43 @@
1
+ import { parseJsonObject, serializeJson } from "./core.mjs";
2
+ import { randomUUID } from "node:crypto";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ //#region src/services/json/sync.ts
6
+ const ATOMIC_FILE_SUFFIX = ".tmp";
7
+ /**
8
+ * Reads a JSON object, treating a missing or empty file as the fallback.
9
+ *
10
+ * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.
11
+ */
12
+ function readJson(filePath, fallback = {}) {
13
+ if (!fs.existsSync(filePath)) return fallback;
14
+ return parseJsonObject(fs.readFileSync(filePath, "utf8"), fallback);
15
+ }
16
+ /**
17
+ * Writes through a uniquely named temporary file in the same directory.
18
+ *
19
+ * The pid and a UUID are both in the name so two harnesses writing the same
20
+ * target cannot collide on the temporary path, and a failed write cleans up
21
+ * after itself rather than leaving the fragment behind.
22
+ *
23
+ * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.
24
+ */
25
+ function writeFileAtomic(filePath, content) {
26
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
27
+ const temporaryPath = `${filePath}.${process.pid}.${randomUUID()}${ATOMIC_FILE_SUFFIX}`;
28
+ try {
29
+ fs.writeFileSync(temporaryPath, content);
30
+ fs.renameSync(temporaryPath, filePath);
31
+ } catch (error) {
32
+ fs.rmSync(temporaryPath, { force: true });
33
+ throw error;
34
+ }
35
+ }
36
+ /** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */
37
+ function writeJson(filePath, value) {
38
+ writeFileAtomic(filePath, serializeJson(value));
39
+ }
40
+ //#endregion
41
+ export { readJson, writeFileAtomic, writeJson };
42
+
43
+ //# sourceMappingURL=sync.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.mjs","names":[],"sources":["../../../../src/services/json/sync.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { parseJsonObject, serializeJson } from './core';\nimport type { JsonObject } from './core';\n\nconst ATOMIC_FILE_SUFFIX = '.tmp';\n\n/**\n * Reads a JSON object, treating a missing or empty file as the fallback.\n *\n * @deprecated Node-only sync shim; use readJsonAsync. Removed in M2.\n */\nexport function readJson(filePath: string, fallback: JsonObject = {}): JsonObject {\n if (!fs.existsSync(filePath)) return fallback;\n return parseJsonObject(fs.readFileSync(filePath, 'utf8'), 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 *\n * @deprecated Node-only sync shim; use writeFileAtomic from `@agimon-ai/po-core/platform`. Removed in M2.\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\n/** @deprecated Node-only sync shim; use writeJsonAsync. Removed in M2. */\nexport function writeJson(filePath: string, value: JsonObject): void {\n writeFileAtomic(filePath, serializeJson(value));\n}\n"],"mappings":";;;;;AAOA,MAAM,qBAAqB;;;;;;AAO3B,SAAgB,SAAS,UAAkB,WAAuB,CAAC,GAAe;CAChF,IAAI,CAAC,GAAG,WAAW,QAAQ,GAAG,OAAO;CACrC,OAAO,gBAAgB,GAAG,aAAa,UAAU,MAAM,GAAG,QAAQ;AACpE;;;;;;;;;;AAWA,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;;AAGA,SAAgB,UAAU,UAAkB,OAAyB;CACnE,gBAAgB,UAAU,cAAc,KAAK,CAAC;AAChD"}
@@ -7,7 +7,7 @@ function sameList(left, right) {
7
7
  function describe(error) {
8
8
  return error instanceof Error ? error.message : String(error);
9
9
  }
10
- function createDoomKernel(options = {}) {
10
+ function createPoKernel(options = {}) {
11
11
  const slots = /* @__PURE__ */ new Map();
12
12
  const dirty = /* @__PURE__ */ new Set();
13
13
  /** Slots whose values render differently without the list itself changing. */
@@ -142,6 +142,6 @@ function createDoomKernel(options = {}) {
142
142
  };
143
143
  }
144
144
  //#endregion
145
- exports.createDoomKernel = createDoomKernel;
145
+ exports.createPoKernel = createPoKernel;
146
146
 
147
147
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n DoomKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreateDoomKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createDoomKernel(options: CreateDoomKernelOptions = {}): DoomKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n PoKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreatePoKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createPoKernel(options: CreatePoKernelOptions = {}): PoKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { DoomKernel } from "../../types/kernel.mjs";
1
+ import { PoKernel } from "../../types/kernel.mjs";
2
2
  //#region src/services/kernel/index.d.ts
3
- export interface CreateDoomKernelOptions {
3
+ export interface CreatePoKernelOptions {
4
4
  /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */
5
5
  readonly activeLayers?: readonly string[];
6
6
  }
7
- export declare function createDoomKernel(options?: CreateDoomKernelOptions): DoomKernel;
7
+ export declare function createPoKernel(options?: CreatePoKernelOptions): PoKernel;
8
8
  //#endregion
9
9
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/kernel/index.ts"],"mappings":";;iBA+CiB;;WAEN;;wBAGK,iBAAiB,UAAS,0BAA+B"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/services/kernel/index.ts"],"mappings":";;iBA+CiB;;WAEN;;wBAGK,eAAe,UAAS,wBAA6B"}
@@ -7,7 +7,7 @@ function sameList(left, right) {
7
7
  function describe(error) {
8
8
  return error instanceof Error ? error.message : String(error);
9
9
  }
10
- function createDoomKernel(options = {}) {
10
+ function createPoKernel(options = {}) {
11
11
  const slots = /* @__PURE__ */ new Map();
12
12
  const dirty = /* @__PURE__ */ new Set();
13
13
  /** Slots whose values render differently without the list itself changing. */
@@ -142,6 +142,6 @@ function createDoomKernel(options = {}) {
142
142
  };
143
143
  }
144
144
  //#endregion
145
- export { createDoomKernel };
145
+ export { createPoKernel };
146
146
 
147
147
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n DoomKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreateDoomKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createDoomKernel(options: CreateDoomKernelOptions = {}): DoomKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/kernel/index.ts"],"sourcesContent":["/**\n * The kernel contribution registry.\n *\n * DESIGN PATTERNS:\n * - Pure function of registered contributions plus the active layer set. Every\n * push recomputes from that state, so there is no incremental bookkeeping to\n * drift out of sync.\n * - Pushes are serialized on one tail. A sink that awaits cannot interleave\n * with the next recompute, which is what keeps a host's whole-list setter\n * from being called out of order.\n * - Registration coalesces into one microtask flush, so composing forty\n * packages at startup costs one push per slot rather than forty.\n *\n * AVOID:\n * - Pushing a slot whose active list is unchanged. Hosts treat a set call as a\n * structural change, and a redundant one is visible to the user.\n * - Throwing out of a push loop early. One broken sink must not stop the rest\n * of the surfaces from reaching the host.\n */\n\nimport type {\n PoKernel,\n KernelContribution,\n KernelRegistration,\n KernelSlotHandle,\n KernelSlotSink,\n} from '../../types/kernel';\n\ninterface SlotState {\n readonly name: string;\n readonly sink: KernelSlotSink<unknown>;\n readonly entries: Map<number, KernelContribution<unknown>>;\n pushed: readonly unknown[] | undefined;\n disposed: boolean;\n}\n\nconst DISPOSED_MESSAGE = 'The kernel is disposed';\n\nfunction sameList(left: readonly unknown[] | undefined, right: readonly unknown[]): boolean {\n if (left === undefined || left.length !== right.length) return false;\n return left.every((value, index) => value === right[index]);\n}\n\nfunction describe(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface CreatePoKernelOptions {\n /** Layers active at creation, usually `resolveLayers(config, majorMode)`. */\n readonly activeLayers?: readonly string[];\n}\n\nexport function createPoKernel(options: CreatePoKernelOptions = {}): PoKernel {\n const slots = new Map<string, SlotState>();\n const dirty = new Set<string>();\n /** Slots whose values render differently without the list itself changing. */\n const forced = new Set<string>();\n let layers = new Set(options.activeLayers ?? []);\n let sequence = 0;\n let tail: Promise<void> = Promise.resolve();\n let scheduled: Promise<void> | undefined;\n let disposed = false;\n\n const activeOf = (slot: SlotState): readonly unknown[] =>\n [...slot.entries.entries()]\n .sort(([left], [right]) => left - right)\n .filter(([, entry]) => entry.layer === undefined || layers.has(entry.layer))\n .map(([, entry]) => entry.value);\n\n const pushOne = async (slot: SlotState, force: boolean, failures: string[]): Promise<void> => {\n if (slot.disposed) return;\n const active = activeOf(slot);\n if (!force && sameList(slot.pushed, active)) return;\n try {\n await slot.sink(active);\n slot.pushed = active;\n } catch (error) {\n // Cache only an acknowledged application. A sink may be retried with the\n // same active values after it recovers.\n failures.push(`${slot.name}: ${describe(error)}`);\n }\n };\n\n const flush = (): Promise<void> => {\n const run = tail\n .catch(() => undefined)\n .then(async () => {\n if (dirty.size === 0) return;\n const pending = [...dirty];\n const pendingForced = new Set(forced);\n dirty.clear();\n forced.clear();\n const failures: string[] = [];\n for (const name of pending) {\n const slot = slots.get(name);\n if (slot) await pushOne(slot, pendingForced.has(name), failures);\n }\n if (failures.length > 0) throw new Error(`Kernel slots failed to apply: ${failures.join('; ')}`);\n });\n tail = run;\n return run;\n };\n\n const schedule = (): void => {\n if (scheduled) return;\n scheduled = Promise.resolve().then(() => {\n scheduled = undefined;\n // A scheduled flush is fire and forget; `refresh` is how a caller waits.\n return flush().catch(() => undefined);\n });\n };\n\n const markDirty = (name: string): void => {\n dirty.add(name);\n };\n\n const contribute = <TValue>(slot: string, entry: KernelContribution<TValue>): KernelRegistration => {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n const state = slots.get(slot);\n if (!state)\n throw new Error(`Unknown kernel slot: ${slot}. Defined slots: ${[...slots.keys()].join(', ') || 'none'}`);\n const key = sequence++;\n state.entries.set(key, entry as KernelContribution<unknown>);\n markDirty(slot);\n schedule();\n let removed = false;\n return {\n dispose(): void {\n if (removed) return;\n removed = true;\n state.entries.delete(key);\n markDirty(slot);\n schedule();\n },\n };\n };\n\n return {\n get activeLayers(): readonly string[] {\n return [...layers];\n },\n get slots(): readonly string[] {\n return [...slots.keys()];\n },\n defineSlot<TValue>(name: string, sink: KernelSlotSink<TValue>): KernelSlotHandle<TValue> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slots.has(name)) throw new Error(`Kernel slot already defined: ${name}`);\n const state: SlotState = {\n name,\n sink: sink as KernelSlotSink<unknown>,\n entries: new Map(),\n pushed: undefined,\n disposed: false,\n };\n slots.set(name, state);\n let removed = false;\n return {\n name,\n contribute: (entry) => contribute(name, entry),\n dispose(): void {\n if (removed) return;\n removed = true;\n state.disposed = true;\n slots.delete(name);\n dirty.delete(name);\n forced.delete(name);\n },\n };\n },\n contribute,\n async setActiveLayers(next: readonly string[]): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n layers = new Set(next);\n for (const name of slots.keys()) markDirty(name);\n await flush();\n },\n async refresh(slot?: string): Promise<void> {\n if (disposed) throw new Error(DISPOSED_MESSAGE);\n if (slot === undefined) {\n for (const name of slots.keys()) {\n markDirty(name);\n forced.add(name);\n }\n } else if (slots.has(slot)) {\n markDirty(slot);\n forced.add(slot);\n }\n await flush();\n },\n activeValues<TValue>(slot: string): readonly TValue[] {\n const state = slots.get(slot);\n return state ? (activeOf(state) as readonly TValue[]) : [];\n },\n contributions<TValue>(slot: string): readonly KernelContribution<TValue>[] {\n const state = slots.get(slot);\n return state ? ([...state.entries.values()] as readonly KernelContribution<TValue>[]) : [];\n },\n dispose(): void {\n if (disposed) return;\n disposed = true;\n for (const state of slots.values()) state.disposed = true;\n slots.clear();\n dirty.clear();\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ let _earendil_works_pi_coding_agent = require("@earendil-works/pi-coding-agent");
2
+ //#region src/services/nativeChildTools/index.ts
3
+ /** Pi's built-in coding tools a child session may be granted by name. */
4
+ const NATIVE_TOOL_FACTORIES = {
5
+ read: _earendil_works_pi_coding_agent.createReadTool,
6
+ bash: _earendil_works_pi_coding_agent.createBashTool,
7
+ edit: _earendil_works_pi_coding_agent.createEditTool,
8
+ write: _earendil_works_pi_coding_agent.createWriteTool,
9
+ grep: _earendil_works_pi_coding_agent.createGrepTool,
10
+ find: _earendil_works_pi_coding_agent.createFindTool,
11
+ ls: _earendil_works_pi_coding_agent.createLsTool
12
+ };
13
+ //#endregion
14
+ exports.NATIVE_TOOL_FACTORIES = NATIVE_TOOL_FACTORIES;
15
+
16
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["createReadTool","createBashTool","createEditTool","createWriteTool","createGrepTool","createFindTool","createLsTool"],"sources":["../../../../src/services/nativeChildTools/index.ts"],"sourcesContent":["import {\n createBashTool,\n createEditTool,\n createFindTool,\n createGrepTool,\n createLsTool,\n createReadTool,\n createWriteTool,\n} from '@earendil-works/pi-coding-agent';\n\n/** Pi's built-in coding tools a child session may be granted by name. */\nexport const NATIVE_TOOL_FACTORIES = {\n read: createReadTool,\n bash: createBashTool,\n edit: createEditTool,\n write: createWriteTool,\n grep: createGrepTool,\n find: createFindTool,\n ls: createLsTool,\n};\n"],"mappings":";;;AAWA,MAAa,wBAAwB;CACnC,MAAMA,gCAAAA;CACN,MAAMC,gCAAAA;CACN,MAAMC,gCAAAA;CACN,OAAOC,gCAAAA;CACP,MAAMC,gCAAAA;CACN,MAAMC,gCAAAA;CACN,IAAIC,gCAAAA;AACN"}
@@ -0,0 +1,16 @@
1
+ import { createBashTool, createEditTool, createFindTool, createGrepTool, createLsTool, createReadTool, createWriteTool } from "@earendil-works/pi-coding-agent";
2
+ //#region src/services/nativeChildTools/index.ts
3
+ /** Pi's built-in coding tools a child session may be granted by name. */
4
+ const NATIVE_TOOL_FACTORIES = {
5
+ read: createReadTool,
6
+ bash: createBashTool,
7
+ edit: createEditTool,
8
+ write: createWriteTool,
9
+ grep: createGrepTool,
10
+ find: createFindTool,
11
+ ls: createLsTool
12
+ };
13
+ //#endregion
14
+ export { NATIVE_TOOL_FACTORIES };
15
+
16
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/nativeChildTools/index.ts"],"sourcesContent":["import {\n createBashTool,\n createEditTool,\n createFindTool,\n createGrepTool,\n createLsTool,\n createReadTool,\n createWriteTool,\n} from '@earendil-works/pi-coding-agent';\n\n/** Pi's built-in coding tools a child session may be granted by name. */\nexport const NATIVE_TOOL_FACTORIES = {\n read: createReadTool,\n bash: createBashTool,\n edit: createEditTool,\n write: createWriteTool,\n grep: createGrepTool,\n find: createFindTool,\n ls: createLsTool,\n};\n"],"mappings":";;;AAWA,MAAa,wBAAwB;CACnC,MAAM;CACN,MAAM;CACN,MAAM;CACN,OAAO;CACP,MAAM;CACN,MAAM;CACN,IAAI;AACN"}
@@ -0,0 +1,30 @@
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ let node_os = require("node:os");
3
+ node_os = require_runtime.__toESM(node_os, 1);
4
+ let node_fs_promises = require("node:fs/promises");
5
+ node_fs_promises = require_runtime.__toESM(node_fs_promises, 1);
6
+ //#region src/services/nodeHost/index.ts
7
+ /**
8
+ * Host details that only a Node process has. Portable modules reach them through
9
+ * this seam; the edge build swaps in `index.edge.ts`.
10
+ */
11
+ const nodeHost = {
12
+ homeDirectory: () => node_os.default.homedir(),
13
+ temporaryDirectory: () => node_os.default.tmpdir(),
14
+ processId: () => process.pid,
15
+ /** POSIX permission bits; the edge has no owner to protect against, so it skips this. */
16
+ setMode: (filePath, mode) => node_fs_promises.default.chmod(filePath, mode),
17
+ /** POSIX permission bits of an existing file, or `undefined` when it is missing. */
18
+ fileMode: async (filePath) => {
19
+ try {
20
+ return (await node_fs_promises.default.stat(filePath)).mode & 4095;
21
+ } catch (error) {
22
+ if (error.code === "ENOENT") return void 0;
23
+ throw error;
24
+ }
25
+ }
26
+ };
27
+ //#endregion
28
+ exports.nodeHost = nodeHost;
29
+
30
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["os","fs"],"sources":["../../../../src/services/nodeHost/index.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport os from 'node:os';\n\n/**\n * Host details that only a Node process has. Portable modules reach them through\n * this seam; the edge build swaps in `index.edge.ts`.\n */\nexport const nodeHost = {\n homeDirectory: (): string => os.homedir(),\n temporaryDirectory: (): string => os.tmpdir(),\n processId: (): number => process.pid,\n /** POSIX permission bits; the edge has no owner to protect against, so it skips this. */\n setMode: (filePath: string, mode: number): Promise<void> => fs.chmod(filePath, mode),\n /** POSIX permission bits of an existing file, or `undefined` when it is missing. */\n fileMode: async (filePath: string): Promise<number | undefined> => {\n try {\n return (await fs.stat(filePath)).mode & 0o7777;\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') return undefined;\n throw error;\n }\n },\n};\n"],"mappings":";;;;;;;;;;AAOA,MAAa,WAAW;CACtB,qBAA6BA,QAAAA,QAAG,QAAQ;CACxC,0BAAkCA,QAAAA,QAAG,OAAO;CAC5C,iBAAyB,QAAQ;;CAEjC,UAAU,UAAkB,SAAgCC,iBAAAA,QAAG,MAAM,UAAU,IAAI;;CAEnF,UAAU,OAAO,aAAkD;EACjE,IAAI;GACF,QAAQ,MAAMA,iBAAAA,QAAG,KAAK,QAAQ,EAAA,CAAG,OAAO;EAC1C,SAAS,OAAO;GACd,IAAK,MAAgC,SAAS,UAAU,OAAO,KAAA;GAC/D,MAAM;EACR;CACF;AACF"}