@agimon-ai/doompi-core 0.0.1-alpha.70

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 (1372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/agent-model.cjs +4 -0
  5. package/dist/agent-model.d.cts +2 -0
  6. package/dist/agent-model.d.mts +2 -0
  7. package/dist/agent-model.mjs +2 -0
  8. package/dist/api-contracts.cjs +27 -0
  9. package/dist/api-contracts.d.cts +7 -0
  10. package/dist/api-contracts.d.mts +7 -0
  11. package/dist/api-contracts.mjs +7 -0
  12. package/dist/ask-user.cjs +8 -0
  13. package/dist/ask-user.d.cts +2 -0
  14. package/dist/ask-user.d.mts +2 -0
  15. package/dist/ask-user.mjs +2 -0
  16. package/dist/author-tools.cjs +5 -0
  17. package/dist/author-tools.d.cts +2 -0
  18. package/dist/author-tools.d.mts +2 -0
  19. package/dist/author-tools.mjs +2 -0
  20. package/dist/background-work.cjs +7 -0
  21. package/dist/background-work.d.cts +2 -0
  22. package/dist/background-work.d.mts +2 -0
  23. package/dist/background-work.mjs +2 -0
  24. package/dist/child-process.cjs +15 -0
  25. package/dist/child-process.d.cts +2 -0
  26. package/dist/child-process.d.mts +2 -0
  27. package/dist/child-process.mjs +2 -0
  28. package/dist/child.cjs +7 -0
  29. package/dist/child.d.cts +3 -0
  30. package/dist/child.d.mts +3 -0
  31. package/dist/child.mjs +3 -0
  32. package/dist/cockpit-container.cjs +4 -0
  33. package/dist/cockpit-container.d.cts +2 -0
  34. package/dist/cockpit-container.d.mts +2 -0
  35. package/dist/cockpit-container.mjs +2 -0
  36. package/dist/config.cjs +13 -0
  37. package/dist/config.d.cts +3 -0
  38. package/dist/config.d.mts +3 -0
  39. package/dist/config.mjs +2 -0
  40. package/dist/constants/authorTools.cjs +10 -0
  41. package/dist/constants/authorTools.cjs.map +1 -0
  42. package/dist/constants/authorTools.d.cts +6 -0
  43. package/dist/constants/authorTools.d.cts.map +1 -0
  44. package/dist/constants/authorTools.d.mts +6 -0
  45. package/dist/constants/authorTools.d.mts.map +1 -0
  46. package/dist/constants/authorTools.mjs +8 -0
  47. package/dist/constants/authorTools.mjs.map +1 -0
  48. package/dist/constants/contextApi.cjs +28 -0
  49. package/dist/constants/contextApi.cjs.map +1 -0
  50. package/dist/constants/contextApi.d.cts +21 -0
  51. package/dist/constants/contextApi.d.cts.map +1 -0
  52. package/dist/constants/contextApi.d.mts +21 -0
  53. package/dist/constants/contextApi.d.mts.map +1 -0
  54. package/dist/constants/contextApi.mjs +23 -0
  55. package/dist/constants/contextApi.mjs.map +1 -0
  56. package/dist/constants/remote.cjs +81 -0
  57. package/dist/constants/remote.cjs.map +1 -0
  58. package/dist/constants/remote.mjs +62 -0
  59. package/dist/constants/remote.mjs.map +1 -0
  60. package/dist/constants/voiceReloadHandoff.cjs +12 -0
  61. package/dist/constants/voiceReloadHandoff.cjs.map +1 -0
  62. package/dist/constants/voiceReloadHandoff.d.cts +7 -0
  63. package/dist/constants/voiceReloadHandoff.d.cts.map +1 -0
  64. package/dist/constants/voiceReloadHandoff.d.mts +7 -0
  65. package/dist/constants/voiceReloadHandoff.d.mts.map +1 -0
  66. package/dist/constants/voiceReloadHandoff.mjs +9 -0
  67. package/dist/constants/voiceReloadHandoff.mjs.map +1 -0
  68. package/dist/constants/voiceTools.cjs +96 -0
  69. package/dist/constants/voiceTools.cjs.map +1 -0
  70. package/dist/constants/voiceTools.d.cts +58 -0
  71. package/dist/constants/voiceTools.d.cts.map +1 -0
  72. package/dist/constants/voiceTools.d.mts +58 -0
  73. package/dist/constants/voiceTools.d.mts.map +1 -0
  74. package/dist/constants/voiceTools.mjs +60 -0
  75. package/dist/constants/voiceTools.mjs.map +1 -0
  76. package/dist/context-api.cjs +10 -0
  77. package/dist/context-api.d.cts +4 -0
  78. package/dist/context-api.d.mts +4 -0
  79. package/dist/context-api.mjs +3 -0
  80. package/dist/context-contributions.cjs +7 -0
  81. package/dist/context-contributions.d.cts +3 -0
  82. package/dist/context-contributions.d.mts +3 -0
  83. package/dist/context-contributions.mjs +3 -0
  84. package/dist/context-detail-store.cjs +100 -0
  85. package/dist/context-detail-store.cjs.map +1 -0
  86. package/dist/context-detail-store.d.cts +19 -0
  87. package/dist/context-detail-store.d.cts.map +1 -0
  88. package/dist/context-detail-store.d.mts +19 -0
  89. package/dist/context-detail-store.d.mts.map +1 -0
  90. package/dist/context-detail-store.mjs +91 -0
  91. package/dist/context-detail-store.mjs.map +1 -0
  92. package/dist/context-detail.cjs +57 -0
  93. package/dist/context-detail.cjs.map +1 -0
  94. package/dist/context-detail.d.cts +13 -0
  95. package/dist/context-detail.d.cts.map +1 -0
  96. package/dist/context-detail.d.mts +13 -0
  97. package/dist/context-detail.d.mts.map +1 -0
  98. package/dist/context-detail.mjs +56 -0
  99. package/dist/context-detail.mjs.map +1 -0
  100. package/dist/context-projection.cjs +120 -0
  101. package/dist/context-projection.cjs.map +1 -0
  102. package/dist/context-projection.d.cts +113 -0
  103. package/dist/context-projection.d.cts.map +1 -0
  104. package/dist/context-projection.d.mts +113 -0
  105. package/dist/context-projection.d.mts.map +1 -0
  106. package/dist/context-projection.mjs +116 -0
  107. package/dist/context-projection.mjs.map +1 -0
  108. package/dist/cordis-host.cjs +10 -0
  109. package/dist/cordis-host.d.cts +2 -0
  110. package/dist/cordis-host.d.mts +2 -0
  111. package/dist/cordis-host.mjs +2 -0
  112. package/dist/delegation.cjs +18 -0
  113. package/dist/delegation.d.cts +2 -0
  114. package/dist/delegation.d.mts +2 -0
  115. package/dist/delegation.mjs +2 -0
  116. package/dist/doom-package.cjs +61 -0
  117. package/dist/doom-package.cjs.map +1 -0
  118. package/dist/doom-package.d.cts +17 -0
  119. package/dist/doom-package.d.cts.map +1 -0
  120. package/dist/doom-package.d.mts +17 -0
  121. package/dist/doom-package.d.mts.map +1 -0
  122. package/dist/doom-package.mjs +54 -0
  123. package/dist/doom-package.mjs.map +1 -0
  124. package/dist/extensions/serverPlugin.cjs +106 -0
  125. package/dist/extensions/serverPlugin.cjs.map +1 -0
  126. package/dist/extensions/serverPlugin.d.cts +5 -0
  127. package/dist/extensions/serverPlugin.d.cts.map +1 -0
  128. package/dist/extensions/serverPlugin.d.mts +5 -0
  129. package/dist/extensions/serverPlugin.d.mts.map +1 -0
  130. package/dist/extensions/serverPlugin.mjs +106 -0
  131. package/dist/extensions/serverPlugin.mjs.map +1 -0
  132. package/dist/extensions/webPlugin.cjs +28 -0
  133. package/dist/extensions/webPlugin.cjs.map +1 -0
  134. package/dist/extensions/webPlugin.d.cts +19 -0
  135. package/dist/extensions/webPlugin.d.cts.map +1 -0
  136. package/dist/extensions/webPlugin.d.mts +19 -0
  137. package/dist/extensions/webPlugin.d.mts.map +1 -0
  138. package/dist/extensions/webPlugin.mjs +26 -0
  139. package/dist/extensions/webPlugin.mjs.map +1 -0
  140. package/dist/footer.cjs +6 -0
  141. package/dist/footer.d.cts +2 -0
  142. package/dist/footer.d.mts +2 -0
  143. package/dist/footer.mjs +2 -0
  144. package/dist/headless-hub.cjs +499 -0
  145. package/dist/headless-hub.cjs.map +1 -0
  146. package/dist/headless-hub.d.cts +96 -0
  147. package/dist/headless-hub.d.cts.map +1 -0
  148. package/dist/headless-hub.d.mts +96 -0
  149. package/dist/headless-hub.d.mts.map +1 -0
  150. package/dist/headless-hub.mjs +498 -0
  151. package/dist/headless-hub.mjs.map +1 -0
  152. package/dist/headless-server.cjs +492 -0
  153. package/dist/headless-server.cjs.map +1 -0
  154. package/dist/headless-server.d.cts +30 -0
  155. package/dist/headless-server.d.cts.map +1 -0
  156. package/dist/headless-server.d.mts +30 -0
  157. package/dist/headless-server.d.mts.map +1 -0
  158. package/dist/headless-server.mjs +488 -0
  159. package/dist/headless-server.mjs.map +1 -0
  160. package/dist/headless-session-host.cjs +0 -0
  161. package/dist/headless-session-host.d.cts +45 -0
  162. package/dist/headless-session-host.d.cts.map +1 -0
  163. package/dist/headless-session-host.d.mts +45 -0
  164. package/dist/headless-session-host.d.mts.map +1 -0
  165. package/dist/headless-session-host.mjs +1 -0
  166. package/dist/headless-session-manager.cjs +51 -0
  167. package/dist/headless-session-manager.cjs.map +1 -0
  168. package/dist/headless-session-manager.d.cts +6 -0
  169. package/dist/headless-session-manager.d.cts.map +1 -0
  170. package/dist/headless-session-manager.d.mts +6 -0
  171. package/dist/headless-session-manager.d.mts.map +1 -0
  172. package/dist/headless-session-manager.mjs +50 -0
  173. package/dist/headless-session-manager.mjs.map +1 -0
  174. package/dist/headless.cjs +7 -0
  175. package/dist/headless.d.cts +2 -0
  176. package/dist/headless.d.mts +2 -0
  177. package/dist/headless.mjs +2 -0
  178. package/dist/help.cjs +21 -0
  179. package/dist/help.d.cts +2 -0
  180. package/dist/help.d.mts +2 -0
  181. package/dist/help.mjs +2 -0
  182. package/dist/history-import.cjs +553 -0
  183. package/dist/history-import.cjs.map +1 -0
  184. package/dist/history-import.d.cts +76 -0
  185. package/dist/history-import.d.cts.map +1 -0
  186. package/dist/history-import.d.mts +76 -0
  187. package/dist/history-import.d.mts.map +1 -0
  188. package/dist/history-import.mjs +547 -0
  189. package/dist/history-import.mjs.map +1 -0
  190. package/dist/history-ownership.cjs +169 -0
  191. package/dist/history-ownership.cjs.map +1 -0
  192. package/dist/history-ownership.d.cts +23 -0
  193. package/dist/history-ownership.d.cts.map +1 -0
  194. package/dist/history-ownership.d.mts +23 -0
  195. package/dist/history-ownership.d.mts.map +1 -0
  196. package/dist/history-ownership.mjs +163 -0
  197. package/dist/history-ownership.mjs.map +1 -0
  198. package/dist/history.cjs +13 -0
  199. package/dist/history.d.cts +6 -0
  200. package/dist/history.d.mts +6 -0
  201. package/dist/history.mjs +6 -0
  202. package/dist/hub-channel.cjs +0 -0
  203. package/dist/hub-channel.d.cts +2 -0
  204. package/dist/hub-channel.d.mts +2 -0
  205. package/dist/hub-channel.mjs +1 -0
  206. package/dist/index.cjs +44 -0
  207. package/dist/index.d.cts +6 -0
  208. package/dist/index.d.mts +6 -0
  209. package/dist/index.mjs +6 -0
  210. package/dist/json.cjs +6 -0
  211. package/dist/json.d.cts +2 -0
  212. package/dist/json.d.mts +2 -0
  213. package/dist/json.mjs +2 -0
  214. package/dist/jsonl-session-repo.cjs +217 -0
  215. package/dist/jsonl-session-repo.cjs.map +1 -0
  216. package/dist/jsonl-session-repo.d.cts +7 -0
  217. package/dist/jsonl-session-repo.d.cts.map +1 -0
  218. package/dist/jsonl-session-repo.d.mts +7 -0
  219. package/dist/jsonl-session-repo.d.mts.map +1 -0
  220. package/dist/jsonl-session-repo.mjs +212 -0
  221. package/dist/jsonl-session-repo.mjs.map +1 -0
  222. package/dist/kernel.cjs +3 -0
  223. package/dist/kernel.d.cts +3 -0
  224. package/dist/kernel.d.mts +3 -0
  225. package/dist/kernel.mjs +2 -0
  226. package/dist/leader.cjs +9 -0
  227. package/dist/leader.d.cts +2 -0
  228. package/dist/leader.d.mts +2 -0
  229. package/dist/leader.mjs +2 -0
  230. package/dist/log-sink-telemetry.cjs +5 -0
  231. package/dist/log-sink-telemetry.d.cts +2 -0
  232. package/dist/log-sink-telemetry.d.mts +2 -0
  233. package/dist/log-sink-telemetry.mjs +2 -0
  234. package/dist/machine-api.cjs +73 -0
  235. package/dist/machine-api.cjs.map +1 -0
  236. package/dist/machine-api.d.cts +7 -0
  237. package/dist/machine-api.d.cts.map +1 -0
  238. package/dist/machine-api.d.mts +7 -0
  239. package/dist/machine-api.d.mts.map +1 -0
  240. package/dist/machine-api.mjs +70 -0
  241. package/dist/machine-api.mjs.map +1 -0
  242. package/dist/main.cjs +10 -0
  243. package/dist/main.d.cts +5 -0
  244. package/dist/main.d.mts +5 -0
  245. package/dist/main.mjs +4 -0
  246. package/dist/mcp-projection.cjs +15 -0
  247. package/dist/mcp-projection.d.cts +2 -0
  248. package/dist/mcp-projection.d.mts +2 -0
  249. package/dist/mcp-projection.mjs +2 -0
  250. package/dist/mcp-schema-cost.cjs +195 -0
  251. package/dist/mcp-schema-cost.cjs.map +1 -0
  252. package/dist/mcp-schema-cost.d.cts +35 -0
  253. package/dist/mcp-schema-cost.d.cts.map +1 -0
  254. package/dist/mcp-schema-cost.d.mts +35 -0
  255. package/dist/mcp-schema-cost.d.mts.map +1 -0
  256. package/dist/mcp-schema-cost.mjs +190 -0
  257. package/dist/mcp-schema-cost.mjs.map +1 -0
  258. package/dist/mcp-session.cjs +9 -0
  259. package/dist/mcp-session.d.cts +2 -0
  260. package/dist/mcp-session.d.mts +2 -0
  261. package/dist/mcp-session.mjs +2 -0
  262. package/dist/mcp-status.cjs +7 -0
  263. package/dist/mcp-status.d.cts +2 -0
  264. package/dist/mcp-status.d.mts +2 -0
  265. package/dist/mcp-status.mjs +2 -0
  266. package/dist/mcp-tool-resolver.cjs +5 -0
  267. package/dist/mcp-tool-resolver.d.cts +2 -0
  268. package/dist/mcp-tool-resolver.d.mts +2 -0
  269. package/dist/mcp-tool-resolver.mjs +2 -0
  270. package/dist/module-resolution.cjs +405 -0
  271. package/dist/module-resolution.cjs.map +1 -0
  272. package/dist/module-resolution.d.cts +67 -0
  273. package/dist/module-resolution.d.cts.map +1 -0
  274. package/dist/module-resolution.d.mts +67 -0
  275. package/dist/module-resolution.d.mts.map +1 -0
  276. package/dist/module-resolution.mjs +389 -0
  277. package/dist/module-resolution.mjs.map +1 -0
  278. package/dist/narration.cjs +10 -0
  279. package/dist/narration.d.cts +2 -0
  280. package/dist/narration.d.mts +2 -0
  281. package/dist/narration.mjs +2 -0
  282. package/dist/notification.cjs +17 -0
  283. package/dist/notification.d.cts +2 -0
  284. package/dist/notification.d.mts +2 -0
  285. package/dist/notification.mjs +2 -0
  286. package/dist/package-api-server.cjs +161 -0
  287. package/dist/package-api-server.cjs.map +1 -0
  288. package/dist/package-api-server.d.cts +47 -0
  289. package/dist/package-api-server.d.cts.map +1 -0
  290. package/dist/package-api-server.d.mts +47 -0
  291. package/dist/package-api-server.d.mts.map +1 -0
  292. package/dist/package-api-server.mjs +159 -0
  293. package/dist/package-api-server.mjs.map +1 -0
  294. package/dist/package-api.cjs +11 -0
  295. package/dist/package-api.d.cts +2 -0
  296. package/dist/package-api.d.mts +2 -0
  297. package/dist/package-api.mjs +2 -0
  298. package/dist/pi/piSessionRuntime.cjs +520 -0
  299. package/dist/pi/piSessionRuntime.cjs.map +1 -0
  300. package/dist/pi/piSessionRuntime.d.cts +43 -0
  301. package/dist/pi/piSessionRuntime.d.cts.map +1 -0
  302. package/dist/pi/piSessionRuntime.d.mts +43 -0
  303. package/dist/pi/piSessionRuntime.d.mts.map +1 -0
  304. package/dist/pi/piSessionRuntime.mjs +519 -0
  305. package/dist/pi/piSessionRuntime.mjs.map +1 -0
  306. package/dist/pi/piWebSocketListener.cjs +115 -0
  307. package/dist/pi/piWebSocketListener.cjs.map +1 -0
  308. package/dist/pi/piWebSocketListener.mjs +115 -0
  309. package/dist/pi/piWebSocketListener.mjs.map +1 -0
  310. package/dist/pi-extension.cjs +8 -0
  311. package/dist/pi-extension.d.cts +5 -0
  312. package/dist/pi-extension.d.mts +5 -0
  313. package/dist/pi-extension.mjs +4 -0
  314. package/dist/pi-settings.cjs +11 -0
  315. package/dist/pi-settings.d.cts +2 -0
  316. package/dist/pi-settings.d.mts +2 -0
  317. package/dist/pi-settings.mjs +2 -0
  318. package/dist/plugin-protocol.cjs +10 -0
  319. package/dist/plugin-protocol.d.cts +2 -0
  320. package/dist/plugin-protocol.d.mts +2 -0
  321. package/dist/plugin-protocol.mjs +2 -0
  322. package/dist/profile-identity.cjs +6 -0
  323. package/dist/profile-identity.d.cts +2 -0
  324. package/dist/profile-identity.d.mts +2 -0
  325. package/dist/profile-identity.mjs +2 -0
  326. package/dist/protocol.cjs +10 -0
  327. package/dist/protocol.d.cts +2 -0
  328. package/dist/protocol.d.mts +2 -0
  329. package/dist/protocol.mjs +2 -0
  330. package/dist/readiness.cjs +8 -0
  331. package/dist/readiness.d.cts +2 -0
  332. package/dist/readiness.d.mts +2 -0
  333. package/dist/readiness.mjs +2 -0
  334. package/dist/relaunch-handoff.cjs +6 -0
  335. package/dist/relaunch-handoff.d.cts +2 -0
  336. package/dist/relaunch-handoff.d.mts +2 -0
  337. package/dist/relaunch-handoff.mjs +2 -0
  338. package/dist/remote-api.cjs +42 -0
  339. package/dist/remote-api.cjs.map +1 -0
  340. package/dist/remote-api.d.cts +7 -0
  341. package/dist/remote-api.d.cts.map +1 -0
  342. package/dist/remote-api.d.mts +7 -0
  343. package/dist/remote-api.d.mts.map +1 -0
  344. package/dist/remote-api.mjs +41 -0
  345. package/dist/remote-api.mjs.map +1 -0
  346. package/dist/remote-runtime.cjs +394 -0
  347. package/dist/remote-runtime.cjs.map +1 -0
  348. package/dist/remote-runtime.d.cts +26 -0
  349. package/dist/remote-runtime.d.cts.map +1 -0
  350. package/dist/remote-runtime.d.mts +26 -0
  351. package/dist/remote-runtime.d.mts.map +1 -0
  352. package/dist/remote-runtime.mjs +390 -0
  353. package/dist/remote-runtime.mjs.map +1 -0
  354. package/dist/runtime-config.cjs +232 -0
  355. package/dist/runtime-config.cjs.map +1 -0
  356. package/dist/runtime-config.d.cts +313 -0
  357. package/dist/runtime-config.d.cts.map +1 -0
  358. package/dist/runtime-config.d.mts +313 -0
  359. package/dist/runtime-config.d.mts.map +1 -0
  360. package/dist/runtime-config.mjs +221 -0
  361. package/dist/runtime-config.mjs.map +1 -0
  362. package/dist/runtime-context-api.cjs +64 -0
  363. package/dist/runtime-context-api.cjs.map +1 -0
  364. package/dist/runtime-context-api.d.cts +16 -0
  365. package/dist/runtime-context-api.d.cts.map +1 -0
  366. package/dist/runtime-context-api.d.mts +16 -0
  367. package/dist/runtime-context-api.d.mts.map +1 -0
  368. package/dist/runtime-context-api.mjs +62 -0
  369. package/dist/runtime-context-api.mjs.map +1 -0
  370. package/dist/runtime-cordis-host.cjs +191 -0
  371. package/dist/runtime-cordis-host.cjs.map +1 -0
  372. package/dist/runtime-cordis-host.d.cts +57 -0
  373. package/dist/runtime-cordis-host.d.cts.map +1 -0
  374. package/dist/runtime-cordis-host.d.mts +57 -0
  375. package/dist/runtime-cordis-host.d.mts.map +1 -0
  376. package/dist/runtime-cordis-host.mjs +183 -0
  377. package/dist/runtime-cordis-host.mjs.map +1 -0
  378. package/dist/runtime-headless-session-manager.cjs +0 -0
  379. package/dist/runtime-headless-session-manager.d.cts +14 -0
  380. package/dist/runtime-headless-session-manager.d.cts.map +1 -0
  381. package/dist/runtime-headless-session-manager.d.mts +14 -0
  382. package/dist/runtime-headless-session-manager.d.mts.map +1 -0
  383. package/dist/runtime-headless-session-manager.mjs +1 -0
  384. package/dist/runtime-identity.cjs +26 -0
  385. package/dist/runtime-identity.cjs.map +1 -0
  386. package/dist/runtime-identity.d.cts +7 -0
  387. package/dist/runtime-identity.d.cts.map +1 -0
  388. package/dist/runtime-identity.d.mts +7 -0
  389. package/dist/runtime-identity.d.mts.map +1 -0
  390. package/dist/runtime-identity.mjs +21 -0
  391. package/dist/runtime-identity.mjs.map +1 -0
  392. package/dist/runtime-json.cjs +46 -0
  393. package/dist/runtime-json.cjs.map +1 -0
  394. package/dist/runtime-json.d.cts +22 -0
  395. package/dist/runtime-json.d.cts.map +1 -0
  396. package/dist/runtime-json.d.mts +22 -0
  397. package/dist/runtime-json.d.mts.map +1 -0
  398. package/dist/runtime-json.mjs +39 -0
  399. package/dist/runtime-json.mjs.map +1 -0
  400. package/dist/runtime-log-sink-telemetry.cjs +102 -0
  401. package/dist/runtime-log-sink-telemetry.cjs.map +1 -0
  402. package/dist/runtime-log-sink-telemetry.d.cts +49 -0
  403. package/dist/runtime-log-sink-telemetry.d.cts.map +1 -0
  404. package/dist/runtime-log-sink-telemetry.d.mts +49 -0
  405. package/dist/runtime-log-sink-telemetry.d.mts.map +1 -0
  406. package/dist/runtime-log-sink-telemetry.mjs +99 -0
  407. package/dist/runtime-log-sink-telemetry.mjs.map +1 -0
  408. package/dist/runtime-pi-extension.cjs +243 -0
  409. package/dist/runtime-pi-extension.cjs.map +1 -0
  410. package/dist/runtime-pi-extension.d.cts +102 -0
  411. package/dist/runtime-pi-extension.d.cts.map +1 -0
  412. package/dist/runtime-pi-extension.d.mts +102 -0
  413. package/dist/runtime-pi-extension.d.mts.map +1 -0
  414. package/dist/runtime-pi-extension.mjs +242 -0
  415. package/dist/runtime-pi-extension.mjs.map +1 -0
  416. package/dist/runtime-pi-settings.cjs +104 -0
  417. package/dist/runtime-pi-settings.cjs.map +1 -0
  418. package/dist/runtime-pi-settings.d.cts +23 -0
  419. package/dist/runtime-pi-settings.d.cts.map +1 -0
  420. package/dist/runtime-pi-settings.d.mts +23 -0
  421. package/dist/runtime-pi-settings.d.mts.map +1 -0
  422. package/dist/runtime-pi-settings.mjs +92 -0
  423. package/dist/runtime-pi-settings.mjs.map +1 -0
  424. package/dist/runtime-protocol.cjs +223 -0
  425. package/dist/runtime-protocol.cjs.map +1 -0
  426. package/dist/runtime-protocol.d.cts +84 -0
  427. package/dist/runtime-protocol.d.cts.map +1 -0
  428. package/dist/runtime-protocol.d.mts +84 -0
  429. package/dist/runtime-protocol.d.mts.map +1 -0
  430. package/dist/runtime-protocol.mjs +215 -0
  431. package/dist/runtime-protocol.mjs.map +1 -0
  432. package/dist/runtime-tool-names.cjs +51 -0
  433. package/dist/runtime-tool-names.cjs.map +1 -0
  434. package/dist/runtime-tool-names.d.cts +24 -0
  435. package/dist/runtime-tool-names.d.cts.map +1 -0
  436. package/dist/runtime-tool-names.d.mts +24 -0
  437. package/dist/runtime-tool-names.d.mts.map +1 -0
  438. package/dist/runtime-tool-names.mjs +49 -0
  439. package/dist/runtime-tool-names.mjs.map +1 -0
  440. package/dist/runtime-transition.cjs +27 -0
  441. package/dist/runtime-transition.cjs.map +1 -0
  442. package/dist/runtime-transition.d.cts +114 -0
  443. package/dist/runtime-transition.d.cts.map +1 -0
  444. package/dist/runtime-transition.d.mts +114 -0
  445. package/dist/runtime-transition.d.mts.map +1 -0
  446. package/dist/runtime-transition.mjs +24 -0
  447. package/dist/runtime-transition.mjs.map +1 -0
  448. package/dist/sandbox-harness.cjs +6 -0
  449. package/dist/sandbox-harness.d.cts +2 -0
  450. package/dist/sandbox-harness.d.mts +2 -0
  451. package/dist/sandbox-harness.mjs +2 -0
  452. package/dist/schemas/agentModel.cjs +33 -0
  453. package/dist/schemas/agentModel.cjs.map +1 -0
  454. package/dist/schemas/agentModel.d.cts +26 -0
  455. package/dist/schemas/agentModel.d.cts.map +1 -0
  456. package/dist/schemas/agentModel.d.mts +26 -0
  457. package/dist/schemas/agentModel.d.mts.map +1 -0
  458. package/dist/schemas/agentModel.mjs +32 -0
  459. package/dist/schemas/agentModel.mjs.map +1 -0
  460. package/dist/schemas/apiContracts.cjs +145 -0
  461. package/dist/schemas/apiContracts.cjs.map +1 -0
  462. package/dist/schemas/apiContracts.d.cts +81 -0
  463. package/dist/schemas/apiContracts.d.cts.map +1 -0
  464. package/dist/schemas/apiContracts.d.mts +81 -0
  465. package/dist/schemas/apiContracts.d.mts.map +1 -0
  466. package/dist/schemas/apiContracts.mjs +140 -0
  467. package/dist/schemas/apiContracts.mjs.map +1 -0
  468. package/dist/schemas/askUser.cjs +42 -0
  469. package/dist/schemas/askUser.cjs.map +1 -0
  470. package/dist/schemas/askUser.d.cts +47 -0
  471. package/dist/schemas/askUser.d.cts.map +1 -0
  472. package/dist/schemas/askUser.d.mts +47 -0
  473. package/dist/schemas/askUser.d.mts.map +1 -0
  474. package/dist/schemas/askUser.mjs +37 -0
  475. package/dist/schemas/askUser.mjs.map +1 -0
  476. package/dist/schemas/backgroundWork.cjs +31 -0
  477. package/dist/schemas/backgroundWork.cjs.map +1 -0
  478. package/dist/schemas/backgroundWork.d.cts +72 -0
  479. package/dist/schemas/backgroundWork.d.cts.map +1 -0
  480. package/dist/schemas/backgroundWork.d.mts +72 -0
  481. package/dist/schemas/backgroundWork.d.mts.map +1 -0
  482. package/dist/schemas/backgroundWork.mjs +27 -0
  483. package/dist/schemas/backgroundWork.mjs.map +1 -0
  484. package/dist/schemas/builtinApiContracts.cjs +37 -0
  485. package/dist/schemas/builtinApiContracts.cjs.map +1 -0
  486. package/dist/schemas/builtinApiContracts.d.cts +51 -0
  487. package/dist/schemas/builtinApiContracts.d.cts.map +1 -0
  488. package/dist/schemas/builtinApiContracts.d.mts +51 -0
  489. package/dist/schemas/builtinApiContracts.d.mts.map +1 -0
  490. package/dist/schemas/builtinApiContracts.mjs +37 -0
  491. package/dist/schemas/builtinApiContracts.mjs.map +1 -0
  492. package/dist/schemas/childProcess.cjs +67 -0
  493. package/dist/schemas/childProcess.cjs.map +1 -0
  494. package/dist/schemas/childProcess.d.cts +30 -0
  495. package/dist/schemas/childProcess.d.cts.map +1 -0
  496. package/dist/schemas/childProcess.d.mts +30 -0
  497. package/dist/schemas/childProcess.d.mts.map +1 -0
  498. package/dist/schemas/childProcess.mjs +55 -0
  499. package/dist/schemas/childProcess.mjs.map +1 -0
  500. package/dist/schemas/cockpitContainer.cjs +31 -0
  501. package/dist/schemas/cockpitContainer.cjs.map +1 -0
  502. package/dist/schemas/cockpitContainer.d.cts +80 -0
  503. package/dist/schemas/cockpitContainer.d.cts.map +1 -0
  504. package/dist/schemas/cockpitContainer.d.mts +80 -0
  505. package/dist/schemas/cockpitContainer.d.mts.map +1 -0
  506. package/dist/schemas/cockpitContainer.mjs +30 -0
  507. package/dist/schemas/cockpitContainer.mjs.map +1 -0
  508. package/dist/schemas/contextContributions.cjs +17 -0
  509. package/dist/schemas/contextContributions.cjs.map +1 -0
  510. package/dist/schemas/contextContributions.d.cts +49 -0
  511. package/dist/schemas/contextContributions.d.cts.map +1 -0
  512. package/dist/schemas/contextContributions.d.mts +49 -0
  513. package/dist/schemas/contextContributions.d.mts.map +1 -0
  514. package/dist/schemas/contextContributions.mjs +15 -0
  515. package/dist/schemas/contextContributions.mjs.map +1 -0
  516. package/dist/schemas/delegation.cjs +91 -0
  517. package/dist/schemas/delegation.cjs.map +1 -0
  518. package/dist/schemas/delegation.d.cts +95 -0
  519. package/dist/schemas/delegation.d.cts.map +1 -0
  520. package/dist/schemas/delegation.d.mts +95 -0
  521. package/dist/schemas/delegation.d.mts.map +1 -0
  522. package/dist/schemas/delegation.mjs +76 -0
  523. package/dist/schemas/delegation.mjs.map +1 -0
  524. package/dist/schemas/footer.cjs +48 -0
  525. package/dist/schemas/footer.cjs.map +1 -0
  526. package/dist/schemas/footer.d.cts +48 -0
  527. package/dist/schemas/footer.d.cts.map +1 -0
  528. package/dist/schemas/footer.d.mts +48 -0
  529. package/dist/schemas/footer.d.mts.map +1 -0
  530. package/dist/schemas/footer.mjs +45 -0
  531. package/dist/schemas/footer.mjs.map +1 -0
  532. package/dist/schemas/headless.cjs +23 -0
  533. package/dist/schemas/headless.cjs.map +1 -0
  534. package/dist/schemas/headless.d.cts +238 -0
  535. package/dist/schemas/headless.d.cts.map +1 -0
  536. package/dist/schemas/headless.d.mts +238 -0
  537. package/dist/schemas/headless.d.mts.map +1 -0
  538. package/dist/schemas/headless.mjs +19 -0
  539. package/dist/schemas/headless.mjs.map +1 -0
  540. package/dist/schemas/help.cjs +249 -0
  541. package/dist/schemas/help.cjs.map +1 -0
  542. package/dist/schemas/help.d.cts +106 -0
  543. package/dist/schemas/help.d.cts.map +1 -0
  544. package/dist/schemas/help.d.mts +106 -0
  545. package/dist/schemas/help.d.mts.map +1 -0
  546. package/dist/schemas/help.mjs +231 -0
  547. package/dist/schemas/help.mjs.map +1 -0
  548. package/dist/schemas/httpApiContracts.cjs +388 -0
  549. package/dist/schemas/httpApiContracts.cjs.map +1 -0
  550. package/dist/schemas/httpApiContracts.d.cts +14 -0
  551. package/dist/schemas/httpApiContracts.d.cts.map +1 -0
  552. package/dist/schemas/httpApiContracts.d.mts +14 -0
  553. package/dist/schemas/httpApiContracts.d.mts.map +1 -0
  554. package/dist/schemas/httpApiContracts.mjs +377 -0
  555. package/dist/schemas/httpApiContracts.mjs.map +1 -0
  556. package/dist/schemas/hubChannel.d.cts +91 -0
  557. package/dist/schemas/hubChannel.d.cts.map +1 -0
  558. package/dist/schemas/hubChannel.d.mts +91 -0
  559. package/dist/schemas/hubChannel.d.mts.map +1 -0
  560. package/dist/schemas/leader.cjs +57 -0
  561. package/dist/schemas/leader.cjs.map +1 -0
  562. package/dist/schemas/leader.d.cts +107 -0
  563. package/dist/schemas/leader.d.cts.map +1 -0
  564. package/dist/schemas/leader.d.mts +107 -0
  565. package/dist/schemas/leader.d.mts.map +1 -0
  566. package/dist/schemas/leader.mjs +51 -0
  567. package/dist/schemas/leader.mjs.map +1 -0
  568. package/dist/schemas/mcpProjection.cjs +114 -0
  569. package/dist/schemas/mcpProjection.cjs.map +1 -0
  570. package/dist/schemas/mcpProjection.d.cts +116 -0
  571. package/dist/schemas/mcpProjection.d.cts.map +1 -0
  572. package/dist/schemas/mcpProjection.d.mts +116 -0
  573. package/dist/schemas/mcpProjection.d.mts.map +1 -0
  574. package/dist/schemas/mcpProjection.mjs +102 -0
  575. package/dist/schemas/mcpProjection.mjs.map +1 -0
  576. package/dist/schemas/mcpSession.cjs +57 -0
  577. package/dist/schemas/mcpSession.cjs.map +1 -0
  578. package/dist/schemas/mcpSession.d.cts +57 -0
  579. package/dist/schemas/mcpSession.d.cts.map +1 -0
  580. package/dist/schemas/mcpSession.d.mts +57 -0
  581. package/dist/schemas/mcpSession.d.mts.map +1 -0
  582. package/dist/schemas/mcpSession.mjs +51 -0
  583. package/dist/schemas/mcpSession.mjs.map +1 -0
  584. package/dist/schemas/mcpStatus.cjs +52 -0
  585. package/dist/schemas/mcpStatus.cjs.map +1 -0
  586. package/dist/schemas/mcpStatus.d.cts +73 -0
  587. package/dist/schemas/mcpStatus.d.cts.map +1 -0
  588. package/dist/schemas/mcpStatus.d.mts +73 -0
  589. package/dist/schemas/mcpStatus.d.mts.map +1 -0
  590. package/dist/schemas/mcpStatus.mjs +48 -0
  591. package/dist/schemas/mcpStatus.mjs.map +1 -0
  592. package/dist/schemas/mcpToolResolver.cjs +17 -0
  593. package/dist/schemas/mcpToolResolver.cjs.map +1 -0
  594. package/dist/schemas/mcpToolResolver.d.cts +24 -0
  595. package/dist/schemas/mcpToolResolver.d.cts.map +1 -0
  596. package/dist/schemas/mcpToolResolver.d.mts +24 -0
  597. package/dist/schemas/mcpToolResolver.d.mts.map +1 -0
  598. package/dist/schemas/mcpToolResolver.mjs +15 -0
  599. package/dist/schemas/mcpToolResolver.mjs.map +1 -0
  600. package/dist/schemas/narration.cjs +54 -0
  601. package/dist/schemas/narration.cjs.map +1 -0
  602. package/dist/schemas/narration.d.cts +29 -0
  603. package/dist/schemas/narration.d.cts.map +1 -0
  604. package/dist/schemas/narration.d.mts +29 -0
  605. package/dist/schemas/narration.d.mts.map +1 -0
  606. package/dist/schemas/narration.mjs +47 -0
  607. package/dist/schemas/narration.mjs.map +1 -0
  608. package/dist/schemas/notification.cjs +122 -0
  609. package/dist/schemas/notification.cjs.map +1 -0
  610. package/dist/schemas/notification.d.cts +48 -0
  611. package/dist/schemas/notification.d.cts.map +1 -0
  612. package/dist/schemas/notification.d.mts +48 -0
  613. package/dist/schemas/notification.d.mts.map +1 -0
  614. package/dist/schemas/notification.mjs +108 -0
  615. package/dist/schemas/notification.mjs.map +1 -0
  616. package/dist/schemas/packageApi.cjs +52 -0
  617. package/dist/schemas/packageApi.cjs.map +1 -0
  618. package/dist/schemas/packageApi.d.cts +149 -0
  619. package/dist/schemas/packageApi.d.cts.map +1 -0
  620. package/dist/schemas/packageApi.d.mts +149 -0
  621. package/dist/schemas/packageApi.d.mts.map +1 -0
  622. package/dist/schemas/packageApi.mjs +44 -0
  623. package/dist/schemas/packageApi.mjs.map +1 -0
  624. package/dist/schemas/piTool.cjs +25 -0
  625. package/dist/schemas/piTool.cjs.map +1 -0
  626. package/dist/schemas/piTool.d.cts +12 -0
  627. package/dist/schemas/piTool.d.cts.map +1 -0
  628. package/dist/schemas/piTool.d.mts +12 -0
  629. package/dist/schemas/piTool.d.mts.map +1 -0
  630. package/dist/schemas/piTool.mjs +25 -0
  631. package/dist/schemas/piTool.mjs.map +1 -0
  632. package/dist/schemas/pluginContributions.cjs +19 -0
  633. package/dist/schemas/pluginContributions.cjs.map +1 -0
  634. package/dist/schemas/pluginContributions.d.cts +56 -0
  635. package/dist/schemas/pluginContributions.d.cts.map +1 -0
  636. package/dist/schemas/pluginContributions.d.mts +56 -0
  637. package/dist/schemas/pluginContributions.d.mts.map +1 -0
  638. package/dist/schemas/pluginContributions.mjs +18 -0
  639. package/dist/schemas/pluginContributions.mjs.map +1 -0
  640. package/dist/schemas/pluginProtocol.cjs +103 -0
  641. package/dist/schemas/pluginProtocol.cjs.map +1 -0
  642. package/dist/schemas/pluginProtocol.d.cts +68 -0
  643. package/dist/schemas/pluginProtocol.d.cts.map +1 -0
  644. package/dist/schemas/pluginProtocol.d.mts +68 -0
  645. package/dist/schemas/pluginProtocol.d.mts.map +1 -0
  646. package/dist/schemas/pluginProtocol.mjs +96 -0
  647. package/dist/schemas/pluginProtocol.mjs.map +1 -0
  648. package/dist/schemas/profileIdentity.cjs +67 -0
  649. package/dist/schemas/profileIdentity.cjs.map +1 -0
  650. package/dist/schemas/profileIdentity.d.cts +50 -0
  651. package/dist/schemas/profileIdentity.d.cts.map +1 -0
  652. package/dist/schemas/profileIdentity.d.mts +50 -0
  653. package/dist/schemas/profileIdentity.d.mts.map +1 -0
  654. package/dist/schemas/profileIdentity.mjs +64 -0
  655. package/dist/schemas/profileIdentity.mjs.map +1 -0
  656. package/dist/schemas/readiness.cjs +251 -0
  657. package/dist/schemas/readiness.cjs.map +1 -0
  658. package/dist/schemas/readiness.d.cts +84 -0
  659. package/dist/schemas/readiness.d.cts.map +1 -0
  660. package/dist/schemas/readiness.d.mts +84 -0
  661. package/dist/schemas/readiness.d.mts.map +1 -0
  662. package/dist/schemas/readiness.mjs +246 -0
  663. package/dist/schemas/readiness.mjs.map +1 -0
  664. package/dist/schemas/relaunchHandoff.cjs +47 -0
  665. package/dist/schemas/relaunchHandoff.cjs.map +1 -0
  666. package/dist/schemas/relaunchHandoff.d.cts +25 -0
  667. package/dist/schemas/relaunchHandoff.d.cts.map +1 -0
  668. package/dist/schemas/relaunchHandoff.d.mts +25 -0
  669. package/dist/schemas/relaunchHandoff.d.mts.map +1 -0
  670. package/dist/schemas/relaunchHandoff.mjs +44 -0
  671. package/dist/schemas/relaunchHandoff.mjs.map +1 -0
  672. package/dist/schemas/remoteApiContracts.cjs +307 -0
  673. package/dist/schemas/remoteApiContracts.cjs.map +1 -0
  674. package/dist/schemas/remoteApiContracts.mjs +303 -0
  675. package/dist/schemas/remoteApiContracts.mjs.map +1 -0
  676. package/dist/schemas/sandboxHarness.cjs +29 -0
  677. package/dist/schemas/sandboxHarness.cjs.map +1 -0
  678. package/dist/schemas/sandboxHarness.d.cts +39 -0
  679. package/dist/schemas/sandboxHarness.d.cts.map +1 -0
  680. package/dist/schemas/sandboxHarness.d.mts +39 -0
  681. package/dist/schemas/sandboxHarness.d.mts.map +1 -0
  682. package/dist/schemas/sandboxHarness.mjs +26 -0
  683. package/dist/schemas/sandboxHarness.mjs.map +1 -0
  684. package/dist/schemas/serverBundle.cjs +79 -0
  685. package/dist/schemas/serverBundle.cjs.map +1 -0
  686. package/dist/schemas/serverBundle.d.cts +34 -0
  687. package/dist/schemas/serverBundle.d.cts.map +1 -0
  688. package/dist/schemas/serverBundle.d.mts +34 -0
  689. package/dist/schemas/serverBundle.d.mts.map +1 -0
  690. package/dist/schemas/serverBundle.mjs +77 -0
  691. package/dist/schemas/serverBundle.mjs.map +1 -0
  692. package/dist/schemas/serverFacet.cjs +102 -0
  693. package/dist/schemas/serverFacet.cjs.map +1 -0
  694. package/dist/schemas/serverFacet.d.cts +141 -0
  695. package/dist/schemas/serverFacet.d.cts.map +1 -0
  696. package/dist/schemas/serverFacet.d.mts +141 -0
  697. package/dist/schemas/serverFacet.d.mts.map +1 -0
  698. package/dist/schemas/serverFacet.mjs +93 -0
  699. package/dist/schemas/serverFacet.mjs.map +1 -0
  700. package/dist/schemas/sessionApiContracts.cjs +474 -0
  701. package/dist/schemas/sessionApiContracts.cjs.map +1 -0
  702. package/dist/schemas/sessionApiContracts.d.cts +563 -0
  703. package/dist/schemas/sessionApiContracts.d.cts.map +1 -0
  704. package/dist/schemas/sessionApiContracts.d.mts +563 -0
  705. package/dist/schemas/sessionApiContracts.d.mts.map +1 -0
  706. package/dist/schemas/sessionApiContracts.mjs +472 -0
  707. package/dist/schemas/sessionApiContracts.mjs.map +1 -0
  708. package/dist/schemas/sessionProtocol.cjs +17 -0
  709. package/dist/schemas/sessionProtocol.cjs.map +1 -0
  710. package/dist/schemas/sessionProtocol.d.cts +269 -0
  711. package/dist/schemas/sessionProtocol.d.cts.map +1 -0
  712. package/dist/schemas/sessionProtocol.d.mts +269 -0
  713. package/dist/schemas/sessionProtocol.d.mts.map +1 -0
  714. package/dist/schemas/sessionProtocol.mjs +12 -0
  715. package/dist/schemas/sessionProtocol.mjs.map +1 -0
  716. package/dist/schemas/sessionUpdates.d.cts +34 -0
  717. package/dist/schemas/sessionUpdates.d.cts.map +1 -0
  718. package/dist/schemas/sessionUpdates.d.mts +34 -0
  719. package/dist/schemas/sessionUpdates.d.mts.map +1 -0
  720. package/dist/schemas/skills.cjs +115 -0
  721. package/dist/schemas/skills.cjs.map +1 -0
  722. package/dist/schemas/skills.d.cts +65 -0
  723. package/dist/schemas/skills.d.cts.map +1 -0
  724. package/dist/schemas/skills.d.mts +65 -0
  725. package/dist/schemas/skills.d.mts.map +1 -0
  726. package/dist/schemas/skills.mjs +109 -0
  727. package/dist/schemas/skills.mjs.map +1 -0
  728. package/dist/schemas/toolOverrides.cjs +17 -0
  729. package/dist/schemas/toolOverrides.cjs.map +1 -0
  730. package/dist/schemas/toolOverrides.d.cts +29 -0
  731. package/dist/schemas/toolOverrides.d.cts.map +1 -0
  732. package/dist/schemas/toolOverrides.d.mts +29 -0
  733. package/dist/schemas/toolOverrides.d.mts.map +1 -0
  734. package/dist/schemas/toolOverrides.mjs +15 -0
  735. package/dist/schemas/toolOverrides.mjs.map +1 -0
  736. package/dist/schemas/toolSurface.cjs +17 -0
  737. package/dist/schemas/toolSurface.cjs.map +1 -0
  738. package/dist/schemas/toolSurface.d.cts +54 -0
  739. package/dist/schemas/toolSurface.d.cts.map +1 -0
  740. package/dist/schemas/toolSurface.d.mts +54 -0
  741. package/dist/schemas/toolSurface.d.mts.map +1 -0
  742. package/dist/schemas/toolSurface.mjs +15 -0
  743. package/dist/schemas/toolSurface.mjs.map +1 -0
  744. package/dist/schemas/transportApiContracts.cjs +248 -0
  745. package/dist/schemas/transportApiContracts.cjs.map +1 -0
  746. package/dist/schemas/transportApiContracts.d.cts +205 -0
  747. package/dist/schemas/transportApiContracts.d.cts.map +1 -0
  748. package/dist/schemas/transportApiContracts.d.mts +205 -0
  749. package/dist/schemas/transportApiContracts.d.mts.map +1 -0
  750. package/dist/schemas/transportApiContracts.mjs +242 -0
  751. package/dist/schemas/transportApiContracts.mjs.map +1 -0
  752. package/dist/schemas/uiHub.cjs +17 -0
  753. package/dist/schemas/uiHub.cjs.map +1 -0
  754. package/dist/schemas/uiHub.d.cts +23 -0
  755. package/dist/schemas/uiHub.d.cts.map +1 -0
  756. package/dist/schemas/uiHub.d.mts +23 -0
  757. package/dist/schemas/uiHub.d.mts.map +1 -0
  758. package/dist/schemas/uiHub.mjs +15 -0
  759. package/dist/schemas/uiHub.mjs.map +1 -0
  760. package/dist/schemas/voiceReloadHandoff.cjs +78 -0
  761. package/dist/schemas/voiceReloadHandoff.cjs.map +1 -0
  762. package/dist/schemas/voiceReloadHandoff.d.cts +31 -0
  763. package/dist/schemas/voiceReloadHandoff.d.cts.map +1 -0
  764. package/dist/schemas/voiceReloadHandoff.d.mts +31 -0
  765. package/dist/schemas/voiceReloadHandoff.d.mts.map +1 -0
  766. package/dist/schemas/voiceReloadHandoff.mjs +75 -0
  767. package/dist/schemas/voiceReloadHandoff.mjs.map +1 -0
  768. package/dist/schemas/voiceTools.cjs +205 -0
  769. package/dist/schemas/voiceTools.cjs.map +1 -0
  770. package/dist/schemas/voiceTools.d.cts +120 -0
  771. package/dist/schemas/voiceTools.d.cts.map +1 -0
  772. package/dist/schemas/voiceTools.d.mts +120 -0
  773. package/dist/schemas/voiceTools.d.mts.map +1 -0
  774. package/dist/schemas/voiceTools.mjs +194 -0
  775. package/dist/schemas/voiceTools.mjs.map +1 -0
  776. package/dist/server/directHarnessRuntime.cjs +981 -0
  777. package/dist/server/directHarnessRuntime.cjs.map +1 -0
  778. package/dist/server/directHarnessRuntime.d.cts +3 -0
  779. package/dist/server/directHarnessRuntime.d.mts +3 -0
  780. package/dist/server/directHarnessRuntime.mjs +976 -0
  781. package/dist/server/directHarnessRuntime.mjs.map +1 -0
  782. package/dist/server/headlessProtocol.cjs +233 -0
  783. package/dist/server/headlessProtocol.cjs.map +1 -0
  784. package/dist/server/headlessProtocol.mjs +233 -0
  785. package/dist/server/headlessProtocol.mjs.map +1 -0
  786. package/dist/server/jsonlTranscriptReader.cjs +85 -0
  787. package/dist/server/jsonlTranscriptReader.cjs.map +1 -0
  788. package/dist/server/jsonlTranscriptReader.mjs +83 -0
  789. package/dist/server/jsonlTranscriptReader.mjs.map +1 -0
  790. package/dist/server/nativeChildTranscriptReader.cjs +20 -0
  791. package/dist/server/nativeChildTranscriptReader.cjs.map +1 -0
  792. package/dist/server/nativeChildTranscriptReader.mjs +18 -0
  793. package/dist/server/nativeChildTranscriptReader.mjs.map +1 -0
  794. package/dist/server/remoteRoutes.cjs +386 -0
  795. package/dist/server/remoteRoutes.cjs.map +1 -0
  796. package/dist/server/remoteRoutes.mjs +386 -0
  797. package/dist/server/remoteRoutes.mjs.map +1 -0
  798. package/dist/server/serverFacetLoader.cjs +220 -0
  799. package/dist/server/serverFacetLoader.cjs.map +1 -0
  800. package/dist/server/serverFacetLoader.d.cts +77 -0
  801. package/dist/server/serverFacetLoader.d.cts.map +1 -0
  802. package/dist/server/serverFacetLoader.d.mts +77 -0
  803. package/dist/server/serverFacetLoader.d.mts.map +1 -0
  804. package/dist/server/serverFacetLoader.mjs +215 -0
  805. package/dist/server/serverFacetLoader.mjs.map +1 -0
  806. package/dist/server/threadJournals.cjs +172 -0
  807. package/dist/server/threadJournals.cjs.map +1 -0
  808. package/dist/server/threadJournals.mjs +169 -0
  809. package/dist/server/threadJournals.mjs.map +1 -0
  810. package/dist/server-facet.cjs +27 -0
  811. package/dist/server-facet.d.cts +7 -0
  812. package/dist/server-facet.d.mts +7 -0
  813. package/dist/server-facet.mjs +7 -0
  814. package/dist/server-telemetry.cjs +25 -0
  815. package/dist/server-telemetry.cjs.map +1 -0
  816. package/dist/server-telemetry.d.cts +12 -0
  817. package/dist/server-telemetry.d.cts.map +1 -0
  818. package/dist/server-telemetry.d.mts +12 -0
  819. package/dist/server-telemetry.d.mts.map +1 -0
  820. package/dist/server-telemetry.mjs +23 -0
  821. package/dist/server-telemetry.mjs.map +1 -0
  822. package/dist/server.cjs +17 -0
  823. package/dist/server.d.cts +10 -0
  824. package/dist/server.d.mts +10 -0
  825. package/dist/server.mjs +7 -0
  826. package/dist/services/acpSessionUpdates/index.cjs +129 -0
  827. package/dist/services/acpSessionUpdates/index.cjs.map +1 -0
  828. package/dist/services/acpSessionUpdates/index.mjs +129 -0
  829. package/dist/services/acpSessionUpdates/index.mjs.map +1 -0
  830. package/dist/services/apiContracts/index.cjs +267 -0
  831. package/dist/services/apiContracts/index.cjs.map +1 -0
  832. package/dist/services/apiContracts/index.d.cts +42 -0
  833. package/dist/services/apiContracts/index.d.cts.map +1 -0
  834. package/dist/services/apiContracts/index.d.mts +42 -0
  835. package/dist/services/apiContracts/index.d.mts.map +1 -0
  836. package/dist/services/apiContracts/index.mjs +266 -0
  837. package/dist/services/apiContracts/index.mjs.map +1 -0
  838. package/dist/services/bundlePublication/index.cjs +88 -0
  839. package/dist/services/bundlePublication/index.cjs.map +1 -0
  840. package/dist/services/bundlePublication/index.mjs +85 -0
  841. package/dist/services/bundlePublication/index.mjs.map +1 -0
  842. package/dist/services/contextApiUrls/index.cjs +15 -0
  843. package/dist/services/contextApiUrls/index.cjs.map +1 -0
  844. package/dist/services/contextApiUrls/index.d.cts +6 -0
  845. package/dist/services/contextApiUrls/index.d.cts.map +1 -0
  846. package/dist/services/contextApiUrls/index.d.mts +6 -0
  847. package/dist/services/contextApiUrls/index.d.mts.map +1 -0
  848. package/dist/services/contextApiUrls/index.mjs +15 -0
  849. package/dist/services/contextApiUrls/index.mjs.map +1 -0
  850. package/dist/services/contextContributions/index.cjs +79 -0
  851. package/dist/services/contextContributions/index.cjs.map +1 -0
  852. package/dist/services/contextContributions/index.d.cts +6 -0
  853. package/dist/services/contextContributions/index.d.cts.map +1 -0
  854. package/dist/services/contextContributions/index.d.mts +6 -0
  855. package/dist/services/contextContributions/index.d.mts.map +1 -0
  856. package/dist/services/contextContributions/index.mjs +79 -0
  857. package/dist/services/contextContributions/index.mjs.map +1 -0
  858. package/dist/services/deviceAuth/index.cjs +125 -0
  859. package/dist/services/deviceAuth/index.cjs.map +1 -0
  860. package/dist/services/deviceAuth/index.d.cts +9 -0
  861. package/dist/services/deviceAuth/index.d.cts.map +1 -0
  862. package/dist/services/deviceAuth/index.d.mts +9 -0
  863. package/dist/services/deviceAuth/index.d.mts.map +1 -0
  864. package/dist/services/deviceAuth/index.mjs +125 -0
  865. package/dist/services/deviceAuth/index.mjs.map +1 -0
  866. package/dist/services/deviceSessions/index.cjs +147 -0
  867. package/dist/services/deviceSessions/index.cjs.map +1 -0
  868. package/dist/services/deviceSessions/index.d.cts +15 -0
  869. package/dist/services/deviceSessions/index.d.cts.map +1 -0
  870. package/dist/services/deviceSessions/index.d.mts +15 -0
  871. package/dist/services/deviceSessions/index.d.mts.map +1 -0
  872. package/dist/services/deviceSessions/index.mjs +141 -0
  873. package/dist/services/deviceSessions/index.mjs.map +1 -0
  874. package/dist/services/headlessClient/index.cjs +117 -0
  875. package/dist/services/headlessClient/index.cjs.map +1 -0
  876. package/dist/services/headlessClient/index.mjs +117 -0
  877. package/dist/services/headlessClient/index.mjs.map +1 -0
  878. package/dist/services/historyCreationFileSystem/index.cjs +114 -0
  879. package/dist/services/historyCreationFileSystem/index.cjs.map +1 -0
  880. package/dist/services/historyCreationFileSystem/index.mjs +114 -0
  881. package/dist/services/historyCreationFileSystem/index.mjs.map +1 -0
  882. package/dist/services/hubChannelHarness/index.cjs +50 -0
  883. package/dist/services/hubChannelHarness/index.cjs.map +1 -0
  884. package/dist/services/hubChannelHarness/index.d.cts +17 -0
  885. package/dist/services/hubChannelHarness/index.d.cts.map +1 -0
  886. package/dist/services/hubChannelHarness/index.d.mts +17 -0
  887. package/dist/services/hubChannelHarness/index.d.mts.map +1 -0
  888. package/dist/services/hubChannelHarness/index.mjs +50 -0
  889. package/dist/services/hubChannelHarness/index.mjs.map +1 -0
  890. package/dist/services/kernel/index.cjs +147 -0
  891. package/dist/services/kernel/index.cjs.map +1 -0
  892. package/dist/services/kernel/index.d.cts +9 -0
  893. package/dist/services/kernel/index.d.cts.map +1 -0
  894. package/dist/services/kernel/index.d.mts +9 -0
  895. package/dist/services/kernel/index.d.mts.map +1 -0
  896. package/dist/services/kernel/index.mjs +147 -0
  897. package/dist/services/kernel/index.mjs.map +1 -0
  898. package/dist/services/loginFlow/index.cjs +131 -0
  899. package/dist/services/loginFlow/index.cjs.map +1 -0
  900. package/dist/services/loginFlow/index.mjs +131 -0
  901. package/dist/services/loginFlow/index.mjs.map +1 -0
  902. package/dist/services/packageApiHarness/index.cjs +36 -0
  903. package/dist/services/packageApiHarness/index.cjs.map +1 -0
  904. package/dist/services/packageApiHarness/index.d.cts +40 -0
  905. package/dist/services/packageApiHarness/index.d.cts.map +1 -0
  906. package/dist/services/packageApiHarness/index.d.mts +40 -0
  907. package/dist/services/packageApiHarness/index.d.mts.map +1 -0
  908. package/dist/services/packageApiHarness/index.mjs +36 -0
  909. package/dist/services/packageApiHarness/index.mjs.map +1 -0
  910. package/dist/services/pairingFlow/index.cjs +145 -0
  911. package/dist/services/pairingFlow/index.cjs.map +1 -0
  912. package/dist/services/pairingFlow/index.d.cts +44 -0
  913. package/dist/services/pairingFlow/index.d.cts.map +1 -0
  914. package/dist/services/pairingFlow/index.d.mts +44 -0
  915. package/dist/services/pairingFlow/index.d.mts.map +1 -0
  916. package/dist/services/pairingFlow/index.mjs +145 -0
  917. package/dist/services/pairingFlow/index.mjs.map +1 -0
  918. package/dist/services/pairingPage/index.cjs +450 -0
  919. package/dist/services/pairingPage/index.cjs.map +1 -0
  920. package/dist/services/pairingPage/index.mjs +447 -0
  921. package/dist/services/pairingPage/index.mjs.map +1 -0
  922. package/dist/services/pluginLifecycle/index.cjs +71 -0
  923. package/dist/services/pluginLifecycle/index.cjs.map +1 -0
  924. package/dist/services/pluginLifecycle/index.d.cts +11 -0
  925. package/dist/services/pluginLifecycle/index.d.cts.map +1 -0
  926. package/dist/services/pluginLifecycle/index.d.mts +11 -0
  927. package/dist/services/pluginLifecycle/index.d.mts.map +1 -0
  928. package/dist/services/pluginLifecycle/index.mjs +71 -0
  929. package/dist/services/pluginLifecycle/index.mjs.map +1 -0
  930. package/dist/services/providerAuth/index.cjs +156 -0
  931. package/dist/services/providerAuth/index.cjs.map +1 -0
  932. package/dist/services/providerAuth/index.mjs +154 -0
  933. package/dist/services/providerAuth/index.mjs.map +1 -0
  934. package/dist/services/remoteAccess/index.cjs +393 -0
  935. package/dist/services/remoteAccess/index.cjs.map +1 -0
  936. package/dist/services/remoteAccess/index.d.cts +79 -0
  937. package/dist/services/remoteAccess/index.d.cts.map +1 -0
  938. package/dist/services/remoteAccess/index.d.mts +79 -0
  939. package/dist/services/remoteAccess/index.d.mts.map +1 -0
  940. package/dist/services/remoteAccess/index.mjs +393 -0
  941. package/dist/services/remoteAccess/index.mjs.map +1 -0
  942. package/dist/services/remoteAccessSettings/index.cjs +151 -0
  943. package/dist/services/remoteAccessSettings/index.cjs.map +1 -0
  944. package/dist/services/remoteAccessSettings/index.mjs +149 -0
  945. package/dist/services/remoteAccessSettings/index.mjs.map +1 -0
  946. package/dist/services/remoteAccessStore/index.cjs +126 -0
  947. package/dist/services/remoteAccessStore/index.cjs.map +1 -0
  948. package/dist/services/remoteAccessStore/index.mjs +121 -0
  949. package/dist/services/remoteAccessStore/index.mjs.map +1 -0
  950. package/dist/services/remoteGuardPolicy/index.cjs +190 -0
  951. package/dist/services/remoteGuardPolicy/index.cjs.map +1 -0
  952. package/dist/services/remoteGuardPolicy/index.d.cts +7 -0
  953. package/dist/services/remoteGuardPolicy/index.d.cts.map +1 -0
  954. package/dist/services/remoteGuardPolicy/index.d.mts +7 -0
  955. package/dist/services/remoteGuardPolicy/index.d.mts.map +1 -0
  956. package/dist/services/remoteGuardPolicy/index.mjs +186 -0
  957. package/dist/services/remoteGuardPolicy/index.mjs.map +1 -0
  958. package/dist/services/rpcTranscript/index.cjs +590 -0
  959. package/dist/services/rpcTranscript/index.cjs.map +1 -0
  960. package/dist/services/rpcTranscript/index.d.cts +50 -0
  961. package/dist/services/rpcTranscript/index.d.cts.map +1 -0
  962. package/dist/services/rpcTranscript/index.d.mts +50 -0
  963. package/dist/services/rpcTranscript/index.d.mts.map +1 -0
  964. package/dist/services/rpcTranscript/index.mjs +589 -0
  965. package/dist/services/rpcTranscript/index.mjs.map +1 -0
  966. package/dist/services/serverFacet/index.cjs +197 -0
  967. package/dist/services/serverFacet/index.cjs.map +1 -0
  968. package/dist/services/serverFacet/index.d.cts +31 -0
  969. package/dist/services/serverFacet/index.d.cts.map +1 -0
  970. package/dist/services/serverFacet/index.d.mts +31 -0
  971. package/dist/services/serverFacet/index.d.mts.map +1 -0
  972. package/dist/services/serverFacet/index.mjs +197 -0
  973. package/dist/services/serverFacet/index.mjs.map +1 -0
  974. package/dist/services/sessionPresentation/index.cjs +117 -0
  975. package/dist/services/sessionPresentation/index.cjs.map +1 -0
  976. package/dist/services/sessionPresentation/index.mjs +117 -0
  977. package/dist/services/sessionPresentation/index.mjs.map +1 -0
  978. package/dist/services/sqliteSessionHistory/index.cjs +59 -0
  979. package/dist/services/sqliteSessionHistory/index.cjs.map +1 -0
  980. package/dist/services/sqliteSessionHistory/index.d.cts +13 -0
  981. package/dist/services/sqliteSessionHistory/index.d.cts.map +1 -0
  982. package/dist/services/sqliteSessionHistory/index.d.mts +13 -0
  983. package/dist/services/sqliteSessionHistory/index.d.mts.map +1 -0
  984. package/dist/services/sqliteSessionHistory/index.mjs +57 -0
  985. package/dist/services/sqliteSessionHistory/index.mjs.map +1 -0
  986. package/dist/services/sqliteTranscriptReader/index.cjs +49 -0
  987. package/dist/services/sqliteTranscriptReader/index.cjs.map +1 -0
  988. package/dist/services/sqliteTranscriptReader/index.mjs +47 -0
  989. package/dist/services/sqliteTranscriptReader/index.mjs.map +1 -0
  990. package/dist/services/toolCost/index.cjs +47 -0
  991. package/dist/services/toolCost/index.cjs.map +1 -0
  992. package/dist/services/toolCost/index.d.cts +38 -0
  993. package/dist/services/toolCost/index.d.cts.map +1 -0
  994. package/dist/services/toolCost/index.d.mts +38 -0
  995. package/dist/services/toolCost/index.d.mts.map +1 -0
  996. package/dist/services/toolCost/index.mjs +46 -0
  997. package/dist/services/toolCost/index.mjs.map +1 -0
  998. package/dist/services/toolOverrides/index.cjs +45 -0
  999. package/dist/services/toolOverrides/index.cjs.map +1 -0
  1000. package/dist/services/toolOverrides/index.d.cts +6 -0
  1001. package/dist/services/toolOverrides/index.d.cts.map +1 -0
  1002. package/dist/services/toolOverrides/index.d.mts +6 -0
  1003. package/dist/services/toolOverrides/index.d.mts.map +1 -0
  1004. package/dist/services/toolOverrides/index.mjs +45 -0
  1005. package/dist/services/toolOverrides/index.mjs.map +1 -0
  1006. package/dist/services/toolSurface/index.cjs +105 -0
  1007. package/dist/services/toolSurface/index.cjs.map +1 -0
  1008. package/dist/services/toolSurface/index.d.cts +19 -0
  1009. package/dist/services/toolSurface/index.d.cts.map +1 -0
  1010. package/dist/services/toolSurface/index.d.mts +19 -0
  1011. package/dist/services/toolSurface/index.d.mts.map +1 -0
  1012. package/dist/services/toolSurface/index.mjs +105 -0
  1013. package/dist/services/toolSurface/index.mjs.map +1 -0
  1014. package/dist/services/traceContext/index.cjs +13 -0
  1015. package/dist/services/traceContext/index.cjs.map +1 -0
  1016. package/dist/services/traceContext/index.mjs +13 -0
  1017. package/dist/services/traceContext/index.mjs.map +1 -0
  1018. package/dist/services/transcriptPages/index.cjs +74 -0
  1019. package/dist/services/transcriptPages/index.cjs.map +1 -0
  1020. package/dist/services/transcriptPages/index.mjs +73 -0
  1021. package/dist/services/transcriptPages/index.mjs.map +1 -0
  1022. package/dist/services/tunnelOutput/index.cjs +58 -0
  1023. package/dist/services/tunnelOutput/index.cjs.map +1 -0
  1024. package/dist/services/tunnelOutput/index.mjs +54 -0
  1025. package/dist/services/tunnelOutput/index.mjs.map +1 -0
  1026. package/dist/services/tunnelProcess/index.cjs +486 -0
  1027. package/dist/services/tunnelProcess/index.cjs.map +1 -0
  1028. package/dist/services/tunnelProcess/index.mjs +480 -0
  1029. package/dist/services/tunnelProcess/index.mjs.map +1 -0
  1030. package/dist/services/voiceReloadHandoff/index.cjs +136 -0
  1031. package/dist/services/voiceReloadHandoff/index.cjs.map +1 -0
  1032. package/dist/services/voiceReloadHandoff/index.d.cts +34 -0
  1033. package/dist/services/voiceReloadHandoff/index.d.cts.map +1 -0
  1034. package/dist/services/voiceReloadHandoff/index.d.mts +34 -0
  1035. package/dist/services/voiceReloadHandoff/index.d.mts.map +1 -0
  1036. package/dist/services/voiceReloadHandoff/index.mjs +135 -0
  1037. package/dist/services/voiceReloadHandoff/index.mjs.map +1 -0
  1038. package/dist/services/voiceToolsContract/index.cjs +26 -0
  1039. package/dist/services/voiceToolsContract/index.cjs.map +1 -0
  1040. package/dist/services/voiceToolsContract/index.d.cts +76 -0
  1041. package/dist/services/voiceToolsContract/index.d.cts.map +1 -0
  1042. package/dist/services/voiceToolsContract/index.d.mts +76 -0
  1043. package/dist/services/voiceToolsContract/index.d.mts.map +1 -0
  1044. package/dist/services/voiceToolsContract/index.mjs +24 -0
  1045. package/dist/services/voiceToolsContract/index.mjs.map +1 -0
  1046. package/dist/services/webauthn/index.cjs +262 -0
  1047. package/dist/services/webauthn/index.cjs.map +1 -0
  1048. package/dist/services/webauthn/index.d.cts +39 -0
  1049. package/dist/services/webauthn/index.d.cts.map +1 -0
  1050. package/dist/services/webauthn/index.d.mts +39 -0
  1051. package/dist/services/webauthn/index.d.mts.map +1 -0
  1052. package/dist/services/webauthn/index.mjs +262 -0
  1053. package/dist/services/webauthn/index.mjs.map +1 -0
  1054. package/dist/services/webauthnPolicy/index.cjs +178 -0
  1055. package/dist/services/webauthnPolicy/index.cjs.map +1 -0
  1056. package/dist/services/webauthnPolicy/index.d.cts +41 -0
  1057. package/dist/services/webauthnPolicy/index.d.cts.map +1 -0
  1058. package/dist/services/webauthnPolicy/index.d.mts +41 -0
  1059. package/dist/services/webauthnPolicy/index.d.mts.map +1 -0
  1060. package/dist/services/webauthnPolicy/index.mjs +171 -0
  1061. package/dist/services/webauthnPolicy/index.mjs.map +1 -0
  1062. package/dist/session-files-api.cjs +61 -0
  1063. package/dist/session-files-api.cjs.map +1 -0
  1064. package/dist/session-files-api.d.cts +7 -0
  1065. package/dist/session-files-api.d.cts.map +1 -0
  1066. package/dist/session-files-api.d.mts +7 -0
  1067. package/dist/session-files-api.d.mts.map +1 -0
  1068. package/dist/session-files-api.mjs +57 -0
  1069. package/dist/session-files-api.mjs.map +1 -0
  1070. package/dist/session-protocol.cjs +8 -0
  1071. package/dist/session-protocol.d.cts +3 -0
  1072. package/dist/session-protocol.d.mts +3 -0
  1073. package/dist/session-protocol.mjs +2 -0
  1074. package/dist/skills.cjs +9 -0
  1075. package/dist/skills.d.cts +2 -0
  1076. package/dist/skills.d.mts +2 -0
  1077. package/dist/skills.mjs +2 -0
  1078. package/dist/sqlite-history-import.cjs +151 -0
  1079. package/dist/sqlite-history-import.cjs.map +1 -0
  1080. package/dist/sqlite-history-import.d.cts +8 -0
  1081. package/dist/sqlite-history-import.d.cts.map +1 -0
  1082. package/dist/sqlite-history-import.d.mts +8 -0
  1083. package/dist/sqlite-history-import.d.mts.map +1 -0
  1084. package/dist/sqlite-history-import.mjs +146 -0
  1085. package/dist/sqlite-history-import.mjs.map +1 -0
  1086. package/dist/sqlite-session-storage.cjs +53 -0
  1087. package/dist/sqlite-session-storage.cjs.map +1 -0
  1088. package/dist/sqlite-session-storage.d.cts +7 -0
  1089. package/dist/sqlite-session-storage.d.cts.map +1 -0
  1090. package/dist/sqlite-session-storage.d.mts +7 -0
  1091. package/dist/sqlite-session-storage.d.mts.map +1 -0
  1092. package/dist/sqlite-session-storage.mjs +49 -0
  1093. package/dist/sqlite-session-storage.mjs.map +1 -0
  1094. package/dist/sync-location.cjs +209 -0
  1095. package/dist/sync-location.cjs.map +1 -0
  1096. package/dist/sync-location.d.cts +31 -0
  1097. package/dist/sync-location.d.cts.map +1 -0
  1098. package/dist/sync-location.d.mts +31 -0
  1099. package/dist/sync-location.d.mts.map +1 -0
  1100. package/dist/sync-location.mjs +199 -0
  1101. package/dist/sync-location.mjs.map +1 -0
  1102. package/dist/sync-registration.cjs +140 -0
  1103. package/dist/sync-registration.cjs.map +1 -0
  1104. package/dist/sync-registration.d.cts +38 -0
  1105. package/dist/sync-registration.d.cts.map +1 -0
  1106. package/dist/sync-registration.d.mts +38 -0
  1107. package/dist/sync-registration.d.mts.map +1 -0
  1108. package/dist/sync-registration.mjs +131 -0
  1109. package/dist/sync-registration.mjs.map +1 -0
  1110. package/dist/sync-state-contract.cjs +19 -0
  1111. package/dist/sync-state-contract.cjs.map +1 -0
  1112. package/dist/sync-state-contract.d.cts +14 -0
  1113. package/dist/sync-state-contract.d.cts.map +1 -0
  1114. package/dist/sync-state-contract.d.mts +14 -0
  1115. package/dist/sync-state-contract.d.mts.map +1 -0
  1116. package/dist/sync-state-contract.mjs +16 -0
  1117. package/dist/sync-state-contract.mjs.map +1 -0
  1118. package/dist/systems/child/adapters/headlessChildSessionService.cjs +210 -0
  1119. package/dist/systems/child/adapters/headlessChildSessionService.cjs.map +1 -0
  1120. package/dist/systems/child/adapters/headlessChildSessionService.d.cts +24 -0
  1121. package/dist/systems/child/adapters/headlessChildSessionService.d.cts.map +1 -0
  1122. package/dist/systems/child/adapters/headlessChildSessionService.d.mts +24 -0
  1123. package/dist/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -0
  1124. package/dist/systems/child/adapters/headlessChildSessionService.mjs +205 -0
  1125. package/dist/systems/child/adapters/headlessChildSessionService.mjs.map +1 -0
  1126. package/dist/systems/child/adapters/nativeChildRuntimes.cjs +28 -0
  1127. package/dist/systems/child/adapters/nativeChildRuntimes.cjs.map +1 -0
  1128. package/dist/systems/child/adapters/nativeChildRuntimes.mjs +25 -0
  1129. package/dist/systems/child/adapters/nativeChildRuntimes.mjs.map +1 -0
  1130. package/dist/systems/child/services/childSession/index.cjs +206 -0
  1131. package/dist/systems/child/services/childSession/index.cjs.map +1 -0
  1132. package/dist/systems/child/services/childSession/index.d.cts +14 -0
  1133. package/dist/systems/child/services/childSession/index.d.cts.map +1 -0
  1134. package/dist/systems/child/services/childSession/index.d.mts +14 -0
  1135. package/dist/systems/child/services/childSession/index.d.mts.map +1 -0
  1136. package/dist/systems/child/services/childSession/index.mjs +206 -0
  1137. package/dist/systems/child/services/childSession/index.mjs.map +1 -0
  1138. package/dist/systems/child/types/childSession.cjs +16 -0
  1139. package/dist/systems/child/types/childSession.cjs.map +1 -0
  1140. package/dist/systems/child/types/childSession.d.cts +135 -0
  1141. package/dist/systems/child/types/childSession.d.cts.map +1 -0
  1142. package/dist/systems/child/types/childSession.d.mts +135 -0
  1143. package/dist/systems/child/types/childSession.d.mts.map +1 -0
  1144. package/dist/systems/child/types/childSession.mjs +14 -0
  1145. package/dist/systems/child/types/childSession.mjs.map +1 -0
  1146. package/dist/systems/main/adapters/headlessHost.cjs +436 -0
  1147. package/dist/systems/main/adapters/headlessHost.cjs.map +1 -0
  1148. package/dist/systems/main/adapters/headlessHost.d.cts +72 -0
  1149. package/dist/systems/main/adapters/headlessHost.d.cts.map +1 -0
  1150. package/dist/systems/main/adapters/headlessHost.d.mts +72 -0
  1151. package/dist/systems/main/adapters/headlessHost.d.mts.map +1 -0
  1152. package/dist/systems/main/adapters/headlessHost.mjs +435 -0
  1153. package/dist/systems/main/adapters/headlessHost.mjs.map +1 -0
  1154. package/dist/systems/main/adapters/headlessSessionHost.cjs +653 -0
  1155. package/dist/systems/main/adapters/headlessSessionHost.cjs.map +1 -0
  1156. package/dist/systems/main/adapters/headlessSessionHost.d.cts +14 -0
  1157. package/dist/systems/main/adapters/headlessSessionHost.d.cts.map +1 -0
  1158. package/dist/systems/main/adapters/headlessSessionHost.d.mts +14 -0
  1159. package/dist/systems/main/adapters/headlessSessionHost.d.mts.map +1 -0
  1160. package/dist/systems/main/adapters/headlessSessionHost.mjs +649 -0
  1161. package/dist/systems/main/adapters/headlessSessionHost.mjs.map +1 -0
  1162. package/dist/systems/main/types/headlessHost.d.cts +36 -0
  1163. package/dist/systems/main/types/headlessHost.d.cts.map +1 -0
  1164. package/dist/systems/main/types/headlessHost.d.mts +36 -0
  1165. package/dist/systems/main/types/headlessHost.d.mts.map +1 -0
  1166. package/dist/terminal-pi-child-session-service.cjs +263 -0
  1167. package/dist/terminal-pi-child-session-service.cjs.map +1 -0
  1168. package/dist/terminal-pi-child-session-service.d.cts +36 -0
  1169. package/dist/terminal-pi-child-session-service.d.cts.map +1 -0
  1170. package/dist/terminal-pi-child-session-service.d.mts +36 -0
  1171. package/dist/terminal-pi-child-session-service.d.mts.map +1 -0
  1172. package/dist/terminal-pi-child-session-service.mjs +256 -0
  1173. package/dist/terminal-pi-child-session-service.mjs.map +1 -0
  1174. package/dist/testing/pi/extensionScenarios.cjs +73 -0
  1175. package/dist/testing/pi/extensionScenarios.cjs.map +1 -0
  1176. package/dist/testing/pi/extensionScenarios.d.cts +41 -0
  1177. package/dist/testing/pi/extensionScenarios.d.cts.map +1 -0
  1178. package/dist/testing/pi/extensionScenarios.d.mts +41 -0
  1179. package/dist/testing/pi/extensionScenarios.d.mts.map +1 -0
  1180. package/dist/testing/pi/extensionScenarios.mjs +73 -0
  1181. package/dist/testing/pi/extensionScenarios.mjs.map +1 -0
  1182. package/dist/testing/pi/testHost.cjs +365 -0
  1183. package/dist/testing/pi/testHost.cjs.map +1 -0
  1184. package/dist/testing/pi/testHost.d.cts +160 -0
  1185. package/dist/testing/pi/testHost.d.cts.map +1 -0
  1186. package/dist/testing/pi/testHost.d.mts +160 -0
  1187. package/dist/testing/pi/testHost.d.mts.map +1 -0
  1188. package/dist/testing/pi/testHost.mjs +365 -0
  1189. package/dist/testing/pi/testHost.mjs.map +1 -0
  1190. package/dist/testing.cjs +9 -0
  1191. package/dist/testing.d.cts +5 -0
  1192. package/dist/testing.d.mts +5 -0
  1193. package/dist/testing.mjs +5 -0
  1194. package/dist/tool-inventory.cjs +136 -0
  1195. package/dist/tool-inventory.cjs.map +1 -0
  1196. package/dist/tool-inventory.d.cts +66 -0
  1197. package/dist/tool-inventory.d.cts.map +1 -0
  1198. package/dist/tool-inventory.d.mts +66 -0
  1199. package/dist/tool-inventory.d.mts.map +1 -0
  1200. package/dist/tool-inventory.mjs +133 -0
  1201. package/dist/tool-inventory.mjs.map +1 -0
  1202. package/dist/tool-names.cjs +4 -0
  1203. package/dist/tool-names.d.cts +2 -0
  1204. package/dist/tool-names.d.mts +2 -0
  1205. package/dist/tool-names.mjs +2 -0
  1206. package/dist/tool-overrides.cjs +7 -0
  1207. package/dist/tool-overrides.d.cts +3 -0
  1208. package/dist/tool-overrides.d.mts +3 -0
  1209. package/dist/tool-overrides.mjs +3 -0
  1210. package/dist/tool-surface.cjs +7 -0
  1211. package/dist/tool-surface.d.cts +3 -0
  1212. package/dist/tool-surface.d.mts +3 -0
  1213. package/dist/tool-surface.mjs +3 -0
  1214. package/dist/transition-classifier.cjs +112 -0
  1215. package/dist/transition-classifier.cjs.map +1 -0
  1216. package/dist/transition-classifier.d.cts +18 -0
  1217. package/dist/transition-classifier.d.cts.map +1 -0
  1218. package/dist/transition-classifier.d.mts +18 -0
  1219. package/dist/transition-classifier.d.mts.map +1 -0
  1220. package/dist/transition-classifier.mjs +111 -0
  1221. package/dist/transition-classifier.mjs.map +1 -0
  1222. package/dist/transition-coordinator.cjs +131 -0
  1223. package/dist/transition-coordinator.cjs.map +1 -0
  1224. package/dist/transition-coordinator.d.cts +16 -0
  1225. package/dist/transition-coordinator.d.cts.map +1 -0
  1226. package/dist/transition-coordinator.d.mts +16 -0
  1227. package/dist/transition-coordinator.d.mts.map +1 -0
  1228. package/dist/transition-coordinator.mjs +130 -0
  1229. package/dist/transition-coordinator.mjs.map +1 -0
  1230. package/dist/transition.cjs +5 -0
  1231. package/dist/transition.d.cts +2 -0
  1232. package/dist/transition.d.mts +2 -0
  1233. package/dist/transition.mjs +2 -0
  1234. package/dist/types/config.d.cts +20 -0
  1235. package/dist/types/config.d.cts.map +1 -0
  1236. package/dist/types/config.d.mts +20 -0
  1237. package/dist/types/config.d.mts.map +1 -0
  1238. package/dist/types/kernel.d.cts +69 -0
  1239. package/dist/types/kernel.d.cts.map +1 -0
  1240. package/dist/types/kernel.d.mts +69 -0
  1241. package/dist/types/kernel.d.mts.map +1 -0
  1242. package/dist/types/remote.d.cts +124 -0
  1243. package/dist/types/remote.d.cts.map +1 -0
  1244. package/dist/types/remote.d.mts +124 -0
  1245. package/dist/types/remote.d.mts.map +1 -0
  1246. package/dist/types/server/directHarnessRuntime.d.cts +156 -0
  1247. package/dist/types/server/directHarnessRuntime.d.cts.map +1 -0
  1248. package/dist/types/server/directHarnessRuntime.d.mts +156 -0
  1249. package/dist/types/server/directHarnessRuntime.d.mts.map +1 -0
  1250. package/dist/types/server/session.d.cts +5 -0
  1251. package/dist/types/server/session.d.cts.map +1 -0
  1252. package/dist/types/server/session.d.mts +5 -0
  1253. package/dist/types/server/session.d.mts.map +1 -0
  1254. package/dist/types-context-api.cjs +0 -0
  1255. package/dist/types-context-api.d.cts +48 -0
  1256. package/dist/types-context-api.d.cts.map +1 -0
  1257. package/dist/types-context-api.d.mts +48 -0
  1258. package/dist/types-context-api.d.mts.map +1 -0
  1259. package/dist/types-context-api.mjs +1 -0
  1260. package/dist/ui-hub.cjs +5 -0
  1261. package/dist/ui-hub.d.cts +2 -0
  1262. package/dist/ui-hub.d.mts +2 -0
  1263. package/dist/ui-hub.mjs +2 -0
  1264. package/dist/v3-export.cjs +1004 -0
  1265. package/dist/v3-export.cjs.map +1 -0
  1266. package/dist/v3-export.d.cts +34 -0
  1267. package/dist/v3-export.d.cts.map +1 -0
  1268. package/dist/v3-export.d.mts +34 -0
  1269. package/dist/v3-export.d.mts.map +1 -0
  1270. package/dist/v3-export.mjs +1000 -0
  1271. package/dist/v3-export.mjs.map +1 -0
  1272. package/dist/voice-reload-handoff.cjs +14 -0
  1273. package/dist/voice-reload-handoff.d.cts +4 -0
  1274. package/dist/voice-reload-handoff.d.mts +4 -0
  1275. package/dist/voice-reload-handoff.mjs +4 -0
  1276. package/dist/voice-tools.cjs +56 -0
  1277. package/dist/voice-tools.d.cts +4 -0
  1278. package/dist/voice-tools.d.mts +4 -0
  1279. package/dist/voice-tools.mjs +4 -0
  1280. package/dist/web/models/globalStore.cjs +23 -0
  1281. package/dist/web/models/globalStore.cjs.map +1 -0
  1282. package/dist/web/models/globalStore.d.cts +6 -0
  1283. package/dist/web/models/globalStore.d.cts.map +1 -0
  1284. package/dist/web/models/globalStore.d.mts +6 -0
  1285. package/dist/web/models/globalStore.d.mts.map +1 -0
  1286. package/dist/web/models/globalStore.mjs +23 -0
  1287. package/dist/web/models/globalStore.mjs.map +1 -0
  1288. package/dist/web/models/sessionStore.cjs +56 -0
  1289. package/dist/web/models/sessionStore.cjs.map +1 -0
  1290. package/dist/web/models/sessionStore.d.cts +14 -0
  1291. package/dist/web/models/sessionStore.d.cts.map +1 -0
  1292. package/dist/web/models/sessionStore.d.mts +14 -0
  1293. package/dist/web/models/sessionStore.d.mts.map +1 -0
  1294. package/dist/web/models/sessionStore.mjs +56 -0
  1295. package/dist/web/models/sessionStore.mjs.map +1 -0
  1296. package/dist/web/schemas/bundleAssetPolicy.cjs +20 -0
  1297. package/dist/web/schemas/bundleAssetPolicy.cjs.map +1 -0
  1298. package/dist/web/schemas/bundleAssetPolicy.d.cts +10 -0
  1299. package/dist/web/schemas/bundleAssetPolicy.d.cts.map +1 -0
  1300. package/dist/web/schemas/bundleAssetPolicy.d.mts +10 -0
  1301. package/dist/web/schemas/bundleAssetPolicy.d.mts.map +1 -0
  1302. package/dist/web/schemas/bundleAssetPolicy.mjs +18 -0
  1303. package/dist/web/schemas/bundleAssetPolicy.mjs.map +1 -0
  1304. package/dist/web/services/sessionRegistry/index.cjs +107 -0
  1305. package/dist/web/services/sessionRegistry/index.cjs.map +1 -0
  1306. package/dist/web/services/sessionRegistry/index.d.cts +42 -0
  1307. package/dist/web/services/sessionRegistry/index.d.cts.map +1 -0
  1308. package/dist/web/services/sessionRegistry/index.d.mts +42 -0
  1309. package/dist/web/services/sessionRegistry/index.d.mts.map +1 -0
  1310. package/dist/web/services/sessionRegistry/index.mjs +100 -0
  1311. package/dist/web/services/sessionRegistry/index.mjs.map +1 -0
  1312. package/dist/web/services/testing/channels.cjs +11 -0
  1313. package/dist/web/services/testing/channels.cjs.map +1 -0
  1314. package/dist/web/services/testing/channels.d.cts +8 -0
  1315. package/dist/web/services/testing/channels.d.cts.map +1 -0
  1316. package/dist/web/services/testing/channels.d.mts +8 -0
  1317. package/dist/web/services/testing/channels.d.mts.map +1 -0
  1318. package/dist/web/services/testing/channels.mjs +11 -0
  1319. package/dist/web/services/testing/channels.mjs.map +1 -0
  1320. package/dist/web/services/testing/index.cjs +27 -0
  1321. package/dist/web/services/testing/index.cjs.map +1 -0
  1322. package/dist/web/services/testing/index.d.cts +31 -0
  1323. package/dist/web/services/testing/index.d.cts.map +1 -0
  1324. package/dist/web/services/testing/index.d.mts +31 -0
  1325. package/dist/web/services/testing/index.d.mts.map +1 -0
  1326. package/dist/web/services/testing/index.mjs +27 -0
  1327. package/dist/web/services/testing/index.mjs.map +1 -0
  1328. package/dist/web/services/testing/slotProps.cjs +90 -0
  1329. package/dist/web/services/testing/slotProps.cjs.map +1 -0
  1330. package/dist/web/services/testing/slotProps.d.cts +67 -0
  1331. package/dist/web/services/testing/slotProps.d.cts.map +1 -0
  1332. package/dist/web/services/testing/slotProps.d.mts +67 -0
  1333. package/dist/web/services/testing/slotProps.d.mts.map +1 -0
  1334. package/dist/web/services/testing/slotProps.mjs +89 -0
  1335. package/dist/web/services/testing/slotProps.mjs.map +1 -0
  1336. package/dist/web/services/toolResult/index.cjs +30 -0
  1337. package/dist/web/services/toolResult/index.cjs.map +1 -0
  1338. package/dist/web/services/toolResult/index.d.cts +14 -0
  1339. package/dist/web/services/toolResult/index.d.cts.map +1 -0
  1340. package/dist/web/services/toolResult/index.d.mts +14 -0
  1341. package/dist/web/services/toolResult/index.d.mts.map +1 -0
  1342. package/dist/web/services/toolResult/index.mjs +29 -0
  1343. package/dist/web/services/toolResult/index.mjs.map +1 -0
  1344. package/dist/web/testing.cjs +8 -0
  1345. package/dist/web/testing.d.cts +4 -0
  1346. package/dist/web/testing.d.mts +4 -0
  1347. package/dist/web/testing.mjs +4 -0
  1348. package/dist/web/types/modelContext.d.cts +43 -0
  1349. package/dist/web/types/modelContext.d.cts.map +1 -0
  1350. package/dist/web/types/modelContext.d.mts +43 -0
  1351. package/dist/web/types/modelContext.d.mts.map +1 -0
  1352. package/dist/web/types/sessionRegistry.d.cts +59 -0
  1353. package/dist/web/types/sessionRegistry.d.cts.map +1 -0
  1354. package/dist/web/types/sessionRegistry.d.mts +59 -0
  1355. package/dist/web/types/sessionRegistry.d.mts.map +1 -0
  1356. package/dist/web/types/webPlugin.d.cts +809 -0
  1357. package/dist/web/types/webPlugin.d.cts.map +1 -0
  1358. package/dist/web/types/webPlugin.d.mts +809 -0
  1359. package/dist/web/types/webPlugin.d.mts.map +1 -0
  1360. package/dist/web-compositions.cjs +100 -0
  1361. package/dist/web-compositions.cjs.map +1 -0
  1362. package/dist/web-compositions.d.cts +20 -0
  1363. package/dist/web-compositions.d.cts.map +1 -0
  1364. package/dist/web-compositions.d.mts +20 -0
  1365. package/dist/web-compositions.d.mts.map +1 -0
  1366. package/dist/web-compositions.mjs +95 -0
  1367. package/dist/web-compositions.mjs.map +1 -0
  1368. package/dist/web.cjs +25 -0
  1369. package/dist/web.d.cts +10 -0
  1370. package/dist/web.d.mts +10 -0
  1371. package/dist/web.mjs +7 -0
  1372. package/package.json +587 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/services/rpcTranscript/index.ts"],"sourcesContent":["import type {\n AssistantTranscriptItem,\n JsonValue,\n SessionPhase,\n SessionSnapshot,\n ThinkingLevel,\n ToolTranscriptItem,\n TranscriptItem,\n TranscriptProgress,\n UserTranscriptItem,\n} from '../../exports/sessionProtocol';\nimport type { SessionFrame } from '../../types/server/session';\n\nconst THINKING_LEVELS = new Set<string>(['off', 'minimal', 'low', 'medium', 'high']);\nconst STOP_REASONS = new Set<string>(['stop', 'length', 'toolUse']);\nconst UNKNOWN_MODEL = { provider: 'unknown', id: 'unknown' };\n\n/**\n * What one agent frame changed.\n *\n * A frame can do both: finishing a message publishes the completed item as\n * progress and appends it to the authoritative transcript.\n */\nexport interface TranscriptReduction {\n /** Present when the frame changed authoritative state. */\n snapshot?: SessionSnapshot;\n /** Present when the frame produced transient activity. */\n /** Coarse assistant usage totals. Never includes message or tool content. */\n aggregate?: Record<string, number>;\n progress?: TranscriptProgress;\n}\n\nexport interface RpcTranscript {\n snapshot(): SessionSnapshot;\n phase(): SessionPhase;\n apply(frame: SessionFrame): TranscriptReduction;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction text(value: unknown, fallback = ''): string {\n return typeof value === 'string' ? value : fallback;\n}\n\nfunction finiteNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\nfunction assistantAggregate(message: Record<string, unknown>): Record<string, number> {\n const aggregate: Record<string, number> = { assistant_messages: 1 };\n const usage = isRecord(message.usage) ? message.usage : {};\n const cost = isRecord(usage.cost) ? usage.cost : {};\n const fields: Array<[string, unknown]> = [\n ['input_tokens', usage.input ?? usage.inputTokens],\n ['output_tokens', usage.output ?? usage.outputTokens],\n ['cache_read_tokens', usage.cacheRead ?? usage.cacheReadTokens],\n ['cache_write_tokens', usage.cacheWrite ?? usage.cacheWriteTokens],\n ['total_tokens', usage.totalTokens],\n ['cost_usd', cost.total ?? message.cost],\n ];\n for (const [name, value] of fields) {\n const numeric = finiteNumber(value);\n if (numeric !== undefined) aggregate[name] = numeric;\n }\n return aggregate;\n}\n\n/** Coerces to the protocol's JSON subset, which rejects undefined and non-plain objects. */\nfunction normalizeJson(value: unknown): JsonValue {\n if (value === null || typeof value === 'boolean' || typeof value === 'string') return value;\n if (typeof value === 'number') return Number.isFinite(value) ? value : null;\n if (Array.isArray(value)) return value.map((entry) => normalizeJson(entry));\n if (!isRecord(value)) return null;\n return Object.fromEntries(\n Object.entries(value)\n .filter(([, entry]) => entry !== undefined)\n .map(([key, entry]) => [key, normalizeJson(entry)]),\n );\n}\n\nfunction thinkingLevel(value: unknown, fallback: ThinkingLevel): ThinkingLevel {\n return typeof value === 'string' && THINKING_LEVELS.has(value) ? (value as ThinkingLevel) : fallback;\n}\n\nfunction modelRef(value: unknown): { provider: string; id: string } {\n if (!isRecord(value)) return UNKNOWN_MODEL;\n const provider = text(value.provider);\n const id = text(value.id);\n return provider && id ? { provider, id } : UNKNOWN_MODEL;\n}\n\n/** Maps pi-ai assistant content onto the protocol's closed part union. */\nfunction assistantContent(value: unknown): AssistantTranscriptItem['content'] {\n if (!Array.isArray(value)) return [];\n const parts: AssistantTranscriptItem['content'] = [];\n for (const part of value) {\n if (!isRecord(part)) continue;\n if (part.type === 'text') parts.push({ type: 'text', text: text(part.text) });\n else if (part.type === 'thinking') {\n parts.push({\n type: 'thinking',\n thinking: text(part.thinking),\n ...(part.redacted === true ? { redacted: true } : {}),\n });\n } else if (part.type === 'toolCall') {\n const toolCallId = text(part.id, text(part.toolCallId));\n const toolName = text(part.name, text(part.toolName));\n if (!toolCallId || !toolName) continue;\n parts.push({ type: 'toolCall', toolCallId, toolName, input: normalizeJson(part.arguments ?? part.input) });\n }\n }\n return parts;\n}\n\ntype AssistantContentPart = AssistantTranscriptItem['content'][number];\n\n/** Applies Pi RPC's delta-only assistant event to the live protocol item. */\nfunction applyAssistantEvent(\n content: AssistantTranscriptItem['content'],\n value: unknown,\n): AssistantTranscriptItem['content'] {\n if (!isRecord(value) || !Number.isInteger(value.contentIndex) || (value.contentIndex as number) < 0) return content;\n const index = value.contentIndex as number;\n const parts: Array<AssistantContentPart | undefined> = [...content];\n const existing = parts[index];\n switch (value.type) {\n case 'text_start':\n parts[index] = existing?.type === 'text' ? existing : { type: 'text', text: '' };\n break;\n case 'text_delta':\n parts[index] = { type: 'text', text: (existing?.type === 'text' ? existing.text : '') + text(value.delta) };\n break;\n case 'text_end':\n parts[index] = { type: 'text', text: text(value.content, existing?.type === 'text' ? existing.text : '') };\n break;\n case 'thinking_start':\n parts[index] = existing?.type === 'thinking' ? existing : { type: 'thinking', thinking: '' };\n break;\n case 'thinking_delta':\n parts[index] = {\n type: 'thinking',\n thinking: (existing?.type === 'thinking' ? existing.thinking : '') + text(value.delta),\n };\n break;\n case 'thinking_end':\n parts[index] = {\n type: 'thinking',\n thinking: text(value.content, existing?.type === 'thinking' ? existing.thinking : ''),\n };\n break;\n case 'toolcall_start': {\n const toolCallId = text(value.id);\n const toolName = text(value.toolName);\n if (toolCallId && toolName) parts[index] = { type: 'toolCall', toolCallId, toolName, input: {} };\n break;\n }\n case 'toolcall_end': {\n const completed = assistantContent([value.toolCall])[0];\n if (completed) parts[index] = completed;\n break;\n }\n }\n return parts.filter((part): part is AssistantContentPart => part !== undefined);\n}\n\n/** Maps a user or tool payload onto the protocol's text-and-image union. */\nfunction plainContent(value: unknown): UserTranscriptItem['content'] {\n if (typeof value === 'string') return [{ type: 'text', text: value }];\n if (!Array.isArray(value)) return [];\n const parts: UserTranscriptItem['content'] = [];\n for (const part of value) {\n if (!isRecord(part)) continue;\n if (part.type === 'text') parts.push({ type: 'text', text: text(part.text) });\n else if (part.type === 'image') {\n const data = text(part.data);\n const mimeType = text(part.mimeType);\n if (data && mimeType) parts.push({ type: 'image', data, mimeType });\n }\n }\n return parts;\n}\n\ninterface JournalToolCall {\n name: string;\n input: JsonValue;\n}\n\nfunction timestampFrom(entry: Record<string, unknown>, message: Record<string, unknown>, now: () => number): number {\n const messageTimestamp = finiteNumber(message.timestamp);\n if (messageTimestamp !== undefined) return messageTimestamp;\n const entryTimestamp = finiteNumber(entry.timestamp);\n if (entryTimestamp !== undefined) return entryTimestamp;\n const parsed = typeof entry.timestamp === 'string' ? Date.parse(entry.timestamp) : Number.NaN;\n return Number.isFinite(parsed) ? parsed : now();\n}\n\n/** Selects the active branch from a complete get_entries response. */\nexport function activeBranch(data: Record<string, unknown>): Record<string, unknown>[] | undefined {\n if (!Array.isArray(data.entries)) return undefined;\n if (data.leafId === null) return [];\n if (typeof data.leafId !== 'string') return undefined;\n const entries = new Map(data.entries.filter(isRecord).map((entry) => [entry.id, entry]));\n const branch: Record<string, unknown>[] = [];\n const visited = new Set<string>();\n let id: unknown = data.leafId;\n while (id !== null) {\n if (typeof id !== 'string' || visited.has(id)) return undefined;\n const entry = entries.get(id);\n // Incremental answers cannot replace the complete transcript.\n if (!entry) return undefined;\n visited.add(id);\n branch.push(entry);\n id = entry.parentId;\n }\n return branch.reverse();\n}\n\n/** Rebuilds the active protocol transcript from journal messages. */\nfunction transcriptFromBranch(\n value: unknown,\n fallbackModel: { provider: string; id: string },\n now: () => number,\n): TranscriptItem[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const items: TranscriptItem[] = [];\n const toolCalls = new Map<string, JournalToolCall>();\n\n for (const candidate of value) {\n if (!isRecord(candidate) || candidate.type !== 'message' || !isRecord(candidate.message)) continue;\n const message = candidate.message;\n const role = text(message.role);\n const timestamp = timestampFrom(candidate, message, now);\n\n if (role === 'user') {\n const content = plainContent(message.content);\n if (content.length === 0) continue;\n const stamp = finiteNumber(message.timestamp);\n items.push({\n id: stamp === undefined ? text(candidate.id, `user-${String(timestamp)}`) : `user-${String(stamp)}`,\n role: 'user',\n content,\n timestamp,\n });\n continue;\n }\n\n if (role === 'assistant') {\n const content = assistantContent(message.content);\n for (const part of content) {\n if (part.type === 'toolCall') {\n toolCalls.set(part.toolCallId, { name: part.toolName, input: part.input });\n }\n }\n const stopReason = text(message.stopReason);\n const errorMessage = text(message.errorMessage);\n const base = {\n id: text(message.id, text(candidate.id, `assistant-${String(timestamp)}`)),\n role: 'assistant' as const,\n content,\n model: modelRef(message.model ?? fallbackModel),\n timestamp,\n };\n items.push(\n stopReason === 'aborted'\n ? { ...base, status: 'aborted', stopReason: 'aborted', ...(errorMessage ? { errorMessage } : {}) }\n : stopReason === 'error'\n ? { ...base, status: 'error', stopReason: 'error', ...(errorMessage ? { errorMessage } : {}) }\n : {\n ...base,\n status: 'complete',\n stopReason: STOP_REASONS.has(stopReason) ? (stopReason as 'stop' | 'length' | 'toolUse') : 'stop',\n },\n );\n continue;\n }\n\n if (role === 'toolResult') {\n const toolCallId = text(message.toolCallId);\n const call = toolCalls.get(toolCallId);\n if (!call) continue;\n const isError = message.isError === true;\n const base = {\n id: toolCallId,\n role: 'tool' as const,\n toolCallId,\n toolName: call.name,\n input: call.input,\n content: plainContent(message.content),\n ...(message.details === undefined ? {} : { details: normalizeJson(message.details) }),\n timestamp,\n };\n items.push(\n isError ? { ...base, status: 'error', isError: true } : { ...base, status: 'complete', isError: false },\n );\n }\n }\n\n return items;\n}\n\nexport interface RpcTranscriptOptions {\n id: string;\n cwd: string;\n name?: string;\n /** Server streaming projections do not retain committed history. */\n retainEntries?: number;\n /**\n * Supplies every timestamp this projection stamps.\n *\n * Required rather than defaulted: a service that reaches for the clock is\n * one a test cannot pin, and the snapshot's timestamps are compared.\n */\n now: () => number;\n}\n\n/**\n * Projects Pi's rpc event stream onto the protocol's session model.\n *\n * The protocol is snapshot-authoritative: the snapshot is the truth and\n * progress is a transient hint that must never be reduced into it. That split\n * is the reason this exists at all, because Pi's rpc stream makes no such\n * distinction and reports a running message the same way it reports a settled\n * one. Frames with no protocol meaning reduce to nothing rather than being\n * forced into a shape the schema would reject.\n */\nexport function createRpcTranscript(options: RpcTranscriptOptions): RpcTranscript {\n const now = options.now;\n const created = now();\n let snapshot: SessionSnapshot = {\n id: options.id,\n cwd: options.cwd,\n createdAt: created,\n updatedAt: created,\n phase: 'idle',\n model: UNKNOWN_MODEL,\n thinkingLevel: 'medium',\n attached: false,\n locked: false,\n revision: 0,\n transcript: [],\n queuedSteer: [],\n queuedSteerCount: 0,\n ...(options.name === undefined ? {} : { name: options.name }),\n };\n /** Assistant messages still streaming, by message id. */\n const streaming = new Map<string, AssistantTranscriptItem>();\n let activeAssistantId: string | undefined;\n /** Tool calls still running, by tool call id. */\n const running = new Map<string, ToolTranscriptItem>();\n\n const commit = (updates: Partial<SessionSnapshot>): SessionSnapshot => {\n snapshot = { ...snapshot, ...updates, revision: snapshot.revision + 1, updatedAt: now() };\n if (options.retainEntries !== undefined)\n snapshot.transcript = options.retainEntries === 0 ? [] : snapshot.transcript.slice(-options.retainEntries);\n return snapshot;\n };\n\n const append = (item: TranscriptItem): SessionSnapshot => commit({ transcript: [...snapshot.transcript, item] });\n\n /**\n * Appends unless the transcript already holds that id.\n *\n * A user message reaches this twice: once as the message the agent started,\n * and again when the session journals it. Only one belongs in the\n * transcript, and the id is what decides which arrival was first.\n */\n const appendUnique = (item: TranscriptItem): SessionSnapshot | undefined =>\n snapshot.transcript.some((existing) => existing.id === item.id) ? undefined : append(item);\n\n /**\n * A user message keyed by when it was written.\n *\n * pi-ai gives a user message no id of its own, so the timestamp is the only\n * thing both arrivals of the same message agree on.\n */\n const userFrom = (\n message: Record<string, unknown>,\n fallbackId: string,\n fallbackTimestamp?: number,\n ): UserTranscriptItem | undefined => {\n const content = plainContent(message.content);\n if (content.length === 0) return undefined;\n const stamp = typeof message.timestamp === 'number' ? message.timestamp : fallbackTimestamp;\n return {\n id: stamp === undefined ? fallbackId : `user-${stamp}`,\n role: 'user',\n content,\n timestamp: stamp ?? now(),\n };\n };\n\n const assistantFrom = (message: unknown, id: string): AssistantTranscriptItem => ({\n id,\n role: 'assistant',\n content: assistantContent(isRecord(message) ? message.content : undefined),\n model: isRecord(message) ? modelRef(message.model ?? snapshot.model) : snapshot.model,\n status: 'streaming',\n timestamp: now(),\n });\n\n return {\n snapshot: () => structuredClone(snapshot),\n phase: () => snapshot.phase,\n apply(frame) {\n const type = text(frame.type);\n switch (type) {\n case 'agent_start':\n return { snapshot: commit({ phase: 'turn' }) };\n case 'agent_settled':\n return { snapshot: commit({ phase: 'idle' }) };\n case 'compaction_start':\n return { snapshot: commit({ phase: 'compaction' }) };\n case 'compaction_end':\n return { snapshot: commit({ phase: 'idle' }) };\n case 'auto_retry_start':\n return { snapshot: commit({ phase: 'retry' }) };\n case 'auto_retry_end':\n return { snapshot: commit({ phase: 'turn' }) };\n case 'thinking_level_changed':\n return { snapshot: commit({ thinkingLevel: thinkingLevel(frame.level, snapshot.thinkingLevel) }) };\n case 'session_info_changed': {\n const name = text(frame.name);\n return { snapshot: commit(name ? { name } : {}) };\n }\n case 'queue_update': {\n const steering = Array.isArray(frame.steering) ? frame.steering : [];\n const followUp = Array.isArray(frame.followUp) ? frame.followUp : [];\n const queuedSteer: UserTranscriptItem[] = [...steering, ...followUp].map((entry, index) => ({\n id: `steer-${snapshot.revision}-${index}`,\n role: 'user',\n content: [{ type: 'text', text: text(entry) }],\n timestamp: now(),\n }));\n return { snapshot: commit({ queuedSteer, queuedSteerCount: queuedSteer.length }) };\n }\n case 'message_start': {\n const message = isRecord(frame.message) ? frame.message : {};\n // These frames carry whichever message the agent started, and that\n // includes the one the user just sent. Treating every message as the\n // assistant's is what puts a prompt in the agent's voice.\n if (message.role === 'user') {\n const item = userFrom(message, `user-${snapshot.revision}`);\n if (!item) return {};\n const committed = appendUnique(item);\n return committed ? { snapshot: committed } : {};\n }\n if (message.role !== 'assistant') return {};\n const id = text(message.id, `assistant-${snapshot.revision}`);\n const item = assistantFrom(frame.message, id);\n streaming.set(id, item);\n activeAssistantId = id;\n return { progress: { type: 'item_started', item } };\n }\n case 'message_update': {\n const id = text(isRecord(frame.message) ? frame.message.id : undefined, activeAssistantId);\n const existing = streaming.get(id);\n if (!existing) return {};\n const item: AssistantTranscriptItem = {\n ...existing,\n content: isRecord(frame.message)\n ? assistantContent(frame.message.content)\n : applyAssistantEvent(existing.content, frame.assistantMessageEvent),\n };\n streaming.set(id, item);\n return { progress: { type: 'item_updated', item } };\n }\n case 'message_end': {\n const ended = isRecord(frame.message) ? frame.message : {};\n if (ended.role === 'user') {\n const item = userFrom(ended, `user-${snapshot.revision}`);\n if (!item) return {};\n const committed = appendUnique(item);\n return committed ? { snapshot: committed } : {};\n }\n // A tool result closes here too, but the transcript builds tool items\n // from the execution frames, which carry the call as well as its result.\n if (ended.role !== 'assistant') return {};\n const id = text(ended.id, activeAssistantId);\n const started = streaming.get(id) ?? assistantFrom(frame.message, id || `assistant-${snapshot.revision}`);\n streaming.delete(started.id);\n if (activeAssistantId === started.id) activeAssistantId = undefined;\n const message = ended;\n const stopReason = text(message.stopReason);\n const errorMessage = text(message.errorMessage);\n const base = {\n ...started,\n content: assistantContent(message.content ?? started.content),\n };\n const item: AssistantTranscriptItem =\n stopReason === 'aborted'\n ? { ...base, status: 'aborted', stopReason: 'aborted', ...(errorMessage ? { errorMessage } : {}) }\n : stopReason === 'error'\n ? { ...base, status: 'error', stopReason: 'error', ...(errorMessage ? { errorMessage } : {}) }\n : {\n ...base,\n status: 'complete',\n stopReason: STOP_REASONS.has(stopReason) ? (stopReason as 'stop' | 'length' | 'toolUse') : 'stop',\n };\n return {\n snapshot: append(item),\n progress: { type: 'item_finished', item },\n aggregate: assistantAggregate(message),\n };\n }\n case 'tool_execution_start': {\n const toolCallId = text(frame.toolCallId);\n const toolName = text(frame.toolName);\n if (!toolCallId || !toolName) return {};\n const item: ToolTranscriptItem = {\n id: toolCallId,\n role: 'tool',\n toolCallId,\n toolName,\n input: normalizeJson(frame.args),\n content: [],\n status: 'running',\n isError: false,\n timestamp: now(),\n };\n running.set(toolCallId, item);\n return { progress: { type: 'item_started', item } };\n }\n case 'tool_execution_update': {\n const existing = running.get(text(frame.toolCallId));\n if (!existing) return {};\n // The partial result is DoomPi's own view of the call in flight, and\n // `details` is the only field on a tool item the schema leaves open.\n const item: ToolTranscriptItem = { ...existing, details: normalizeJson(frame.partialResult) };\n running.set(existing.toolCallId, item);\n return { progress: { type: 'item_updated', item } };\n }\n case 'tool_execution_end': {\n const toolCallId = text(frame.toolCallId);\n const existing = running.get(toolCallId);\n if (!existing) return {};\n running.delete(toolCallId);\n const result = isRecord(frame.result) ? frame.result : {};\n const isError = frame.isError === true;\n const item: ToolTranscriptItem = {\n ...existing,\n content: plainContent(result.content ?? result.output),\n ...(result.details === undefined ? {} : { details: normalizeJson(result.details) }),\n ...(isError ? { status: 'error', isError: true } : { status: 'complete', isError: false }),\n };\n return { snapshot: append(item), progress: { type: 'item_finished', item } };\n }\n case 'entry_appended': {\n const entry = isRecord(frame.entry) ? frame.entry : undefined;\n // Only a journalled user message has a protocol shape. Everything\n // else DoomPi journals travels on its own channel, where it keeps\n // the vocabulary the schema has no room for.\n if (!entry || entry.type !== 'message') return {};\n const message = isRecord(entry.message) ? entry.message : undefined;\n if (!message || message.role !== 'user') return {};\n // Keyed the same way the started message was, so whichever arrival\n // came first is the one the transcript keeps.\n const item = userFrom(\n message,\n text(entry.id, `user-${snapshot.revision}`),\n typeof entry.timestamp === 'number' ? entry.timestamp : undefined,\n );\n if (!item) return {};\n const committed = appendUnique(item);\n return committed ? { snapshot: committed } : {};\n }\n case 'response': {\n if (frame.command === 'get_state') return applyState(frame.data);\n if (frame.command === 'get_entries' && frame.success === true && isRecord(frame.data)) {\n const branch = activeBranch(frame.data);\n const rebuilt = transcriptFromBranch(branch, snapshot.model, now);\n return rebuilt ? { snapshot: commit({ transcript: rebuilt }) } : {};\n }\n if (frame.command !== 'navigate_tree' || frame.success !== true || !isRecord(frame.data)) return {};\n if (frame.data.cancelled === true) return {};\n const rebuilt = transcriptFromBranch(frame.data.entries, snapshot.model, now);\n if (!rebuilt) return {};\n streaming.clear();\n running.clear();\n activeAssistantId = undefined;\n return {\n snapshot: commit({ transcript: rebuilt, queuedSteer: [], queuedSteerCount: 0, phase: 'idle' }),\n };\n }\n default:\n return {};\n }\n },\n };\n\n function applyState(data: unknown): TranscriptReduction {\n if (!isRecord(data)) return {};\n const streamingNow = data.isStreaming === true;\n const compacting = data.isCompacting === true;\n const name = text(data.sessionName);\n return {\n snapshot: commit({\n model: modelRef(data.model),\n thinkingLevel: thinkingLevel(data.thinkingLevel, snapshot.thinkingLevel),\n phase: compacting ? 'compaction' : streamingNow ? 'turn' : 'idle',\n ...(name ? { name } : {}),\n }),\n };\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ //#region src/services/serverFacet/index.ts
2
+ function createDoomServerHost(options) {
3
+ const { scope, context } = options;
4
+ const notice = (message) => context.onNotice(message);
5
+ const mounts = [];
6
+ const channels = [];
7
+ const methods = /* @__PURE__ */ new Set();
8
+ let disposed = false;
9
+ const changed = () => options.onChange?.(mounts.map((mount) => mount.basePath));
10
+ const channelsChanged = () => options.onChannelsChange?.(channels.map((mount) => mount.channel.frameType));
11
+ const noop = {
12
+ mounted: false,
13
+ dispose: () => void 0
14
+ };
15
+ const registerApi = (api) => {
16
+ if (disposed) {
17
+ notice(`package API '${api.basePath}' is skipped: the server host is already disposed.`);
18
+ return noop;
19
+ }
20
+ if (mounts.find((mount) => mount.basePath === api.basePath) !== void 0) {
21
+ notice(`package API '${api.basePath}' is skipped: another facet already claims it.`);
22
+ return noop;
23
+ }
24
+ let handler;
25
+ try {
26
+ handler = api.start(context);
27
+ } catch (error) {
28
+ notice(`package API '${api.basePath}' did not start (${String(error)}); it is skipped.`);
29
+ return noop;
30
+ }
31
+ const mount = {
32
+ basePath: api.basePath,
33
+ handler
34
+ };
35
+ mounts.push(mount);
36
+ changed();
37
+ let released = false;
38
+ return {
39
+ mounted: true,
40
+ dispose: () => {
41
+ if (released) return;
42
+ released = true;
43
+ const index = mounts.indexOf(mount);
44
+ if (index >= 0) mounts.splice(index, 1);
45
+ try {
46
+ handler.close();
47
+ } catch (error) {
48
+ notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);
49
+ }
50
+ changed();
51
+ }
52
+ };
53
+ };
54
+ const registerChannel = (channel) => {
55
+ if (disposed) {
56
+ notice(`hub channel '${channel.frameType}' is skipped: the server host is already disposed.`);
57
+ return noop;
58
+ }
59
+ if (options.mountChannel !== void 0) {
60
+ let registration;
61
+ try {
62
+ registration = options.mountChannel(channel);
63
+ } catch (error) {
64
+ notice(`hub channel '${channel.frameType}' did not mount (${String(error)}); it is skipped.`);
65
+ return noop;
66
+ }
67
+ if (registration.mounted !== true) return registration;
68
+ const mount = {
69
+ channel,
70
+ registration
71
+ };
72
+ channels.push(mount);
73
+ channelsChanged();
74
+ let released = false;
75
+ return {
76
+ mounted: true,
77
+ dispose: () => {
78
+ if (released) return;
79
+ released = true;
80
+ const index = channels.indexOf(mount);
81
+ if (index >= 0) channels.splice(index, 1);
82
+ try {
83
+ registration.dispose();
84
+ } catch (error) {
85
+ notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);
86
+ }
87
+ channelsChanged();
88
+ }
89
+ };
90
+ }
91
+ const channelHost = options.channelHostFor?.(channel) ?? options.channelHost;
92
+ if (!channelHost) {
93
+ notice(`hub channel '${channel.frameType}' is skipped: this server host has no channel capability.`);
94
+ return noop;
95
+ }
96
+ if (channels.some((mount) => mount.channel.frameType === channel.frameType)) {
97
+ notice(`hub channel '${channel.frameType}' is skipped: another facet already claims it.`);
98
+ return noop;
99
+ }
100
+ let source;
101
+ try {
102
+ source = channel.start(channelHost);
103
+ } catch (error) {
104
+ notice(`hub channel '${channel.frameType}' did not start (${String(error)}); it is skipped.`);
105
+ return noop;
106
+ }
107
+ const mount = {
108
+ channel,
109
+ source
110
+ };
111
+ channels.push(mount);
112
+ channelsChanged();
113
+ let released = false;
114
+ return {
115
+ mounted: true,
116
+ dispose: () => {
117
+ if (released) return;
118
+ released = true;
119
+ const index = channels.indexOf(mount);
120
+ if (index >= 0) channels.splice(index, 1);
121
+ try {
122
+ source.close();
123
+ } catch (error) {
124
+ notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);
125
+ }
126
+ channelsChanged();
127
+ }
128
+ };
129
+ };
130
+ const registerMethod = (definition, handler) => {
131
+ if (disposed || !options.pluginRegistry) {
132
+ notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no plugin dispatcher.`);
133
+ return noop;
134
+ }
135
+ const mount = scope === "global" ? { scope: "global" } : scope === "workspace" && context.workspaceId ? {
136
+ scope: "workspace",
137
+ workspaceId: context.workspaceId
138
+ } : scope === "session" && context.sessionId ? {
139
+ scope: "session",
140
+ sessionId: context.sessionId
141
+ } : void 0;
142
+ if (!mount) {
143
+ notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no mount identity.`);
144
+ return noop;
145
+ }
146
+ try {
147
+ const release = options.pluginRegistry.register(mount, definition, handler);
148
+ let released = false;
149
+ const dispose = () => {
150
+ if (released) return;
151
+ released = true;
152
+ methods.delete(dispose);
153
+ release();
154
+ };
155
+ methods.add(dispose);
156
+ return {
157
+ mounted: true,
158
+ dispose
159
+ };
160
+ } catch (error) {
161
+ notice(`plugin method '${definition.service}.${definition.method}' did not mount (${String(error)}).`);
162
+ return noop;
163
+ }
164
+ };
165
+ return {
166
+ scope,
167
+ context,
168
+ registerApi,
169
+ registerChannel,
170
+ registerMethod,
171
+ mounted: () => mounts.map((mount) => mount.basePath),
172
+ mountedChannels: () => channels.map((mount) => mount.channel.frameType),
173
+ handlerFor: (basePath) => mounts.find((mount) => mount.basePath === basePath)?.handler,
174
+ dispose: () => {
175
+ if (disposed) return;
176
+ disposed = true;
177
+ for (const release of [...methods].reverse()) release();
178
+ for (const mount of channels.splice(0).reverse()) try {
179
+ if (mount.registration !== void 0) mount.registration.dispose();
180
+ else mount.source?.close();
181
+ } catch (error) {
182
+ notice(`hub channel '${mount.channel.frameType}' did not close cleanly (${String(error)}).`);
183
+ }
184
+ for (const mount of mounts.splice(0).reverse()) try {
185
+ mount.handler.close();
186
+ } catch (error) {
187
+ notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);
188
+ }
189
+ channelsChanged();
190
+ changed();
191
+ }
192
+ };
193
+ }
194
+ //#endregion
195
+ exports.createDoomServerHost = createDoomServerHost;
196
+
197
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/services/serverFacet/index.ts"],"sourcesContent":["/**\n * The server host a facet contributes to.\n *\n * DESIGN PATTERNS:\n * - One mount table. Every facet registers through this service, so the host\n * process has a single ordered record of what is mounted and under what.\n * - Base paths are first-come. A collision is reported and skipped, so one\n * misdeclared package cannot take a server down.\n * - Handlers are started lazily on first mount and closed on dispose, so a\n * facet that registers and immediately unwinds leaves nothing running.\n *\n * AVOID:\n * - Letting a throwing `start` escape. A package whose API cannot start is\n * reported and skipped; the remaining facets still mount.\n * - Reaching for node:*. The host owns the listener; this only owns the table.\n */\n\nimport type { DoomHubChannel, DoomHubChannelHost, DoomHubChannelSource } from '../../schemas/hubChannel';\nimport type { DoomApi, DoomApiContext, DoomApiHandler, DoomApiScope } from '../../schemas/packageApi';\nimport type { DoomPluginRegistry } from '../../schemas/pluginProtocol';\nimport type { DoomServerHostService, DoomServerRegistration } from '../../schemas/serverFacet';\n\ninterface MountedApi {\n readonly basePath: string;\n readonly handler: DoomApiHandler;\n}\n\ninterface MountedChannel {\n readonly channel: DoomHubChannel;\n readonly source?: DoomHubChannelSource;\n readonly registration?: DoomServerRegistration;\n}\n\nexport interface CreateDoomServerHostOptions {\n scope: DoomApiScope;\n context: DoomApiContext;\n /** Required when facets may register live channels. */\n channelHost?: DoomHubChannelHost;\n /** Supplies a channel-specific host when one host serves multiple channels. */\n channelHostFor?: (channel: DoomHubChannel) => DoomHubChannelHost;\n /** Delegates channel mounting to an owner of the canonical channel table. */\n mountChannel?: (channel: DoomHubChannel) => DoomServerRegistration;\n /** Shared exact-scope dispatch table, owned by the server composition. */\n pluginRegistry?: DoomPluginRegistry;\n /** Called when an API mount table entry appears or disappears. */\n onChange?: (mounted: readonly string[]) => void;\n /** Called when a channel mount table entry appears or disappears. */\n onChannelsChange?: (mounted: readonly string[]) => void;\n}\n\n/** The mount table a server host exposes to its facets, plus the router's read side. */\nexport interface DoomServerHost extends DoomServerHostService {\n /** The handler owning a base path, for the router that dispatches to it. */\n handlerFor(basePath: string): DoomApiHandler | undefined;\n /** Close every mounted handler and empty the table. */\n dispose(): void;\n}\n\nexport function createDoomServerHost(options: CreateDoomServerHostOptions): DoomServerHost {\n const { scope, context } = options;\n const notice = (message: string): void => context.onNotice(message);\n const mounts: MountedApi[] = [];\n const channels: MountedChannel[] = [];\n const methods = new Set<() => void>();\n let disposed = false;\n\n const changed = (): void => options.onChange?.(mounts.map((mount) => mount.basePath));\n const channelsChanged = (): void => options.onChannelsChange?.(channels.map((mount) => mount.channel.frameType));\n\n const noop: DoomServerRegistration = { mounted: false, dispose: () => undefined };\n\n const registerApi = (api: DoomApi): DoomServerRegistration => {\n if (disposed) {\n notice(`package API '${api.basePath}' is skipped: the server host is already disposed.`);\n return noop;\n }\n const holder = mounts.find((mount) => mount.basePath === api.basePath);\n if (holder !== undefined) {\n notice(`package API '${api.basePath}' is skipped: another facet already claims it.`);\n return noop;\n }\n let handler: DoomApiHandler;\n try {\n handler = api.start(context);\n } catch (error) {\n notice(`package API '${api.basePath}' did not start (${String(error)}); it is skipped.`);\n return noop;\n }\n const mount: MountedApi = { basePath: api.basePath, handler };\n mounts.push(mount);\n changed();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = mounts.indexOf(mount);\n if (index >= 0) mounts.splice(index, 1);\n try {\n handler.close();\n } catch (error) {\n notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);\n }\n changed();\n },\n };\n };\n\n const registerChannel = (channel: DoomHubChannel): DoomServerRegistration => {\n if (disposed) {\n notice(`hub channel '${channel.frameType}' is skipped: the server host is already disposed.`);\n return noop;\n }\n if (options.mountChannel !== undefined) {\n let registration: DoomServerRegistration;\n try {\n registration = options.mountChannel(channel);\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not mount (${String(error)}); it is skipped.`);\n return noop;\n }\n if (registration.mounted !== true) return registration;\n const mount: MountedChannel = { channel, registration };\n channels.push(mount);\n channelsChanged();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = channels.indexOf(mount);\n if (index >= 0) channels.splice(index, 1);\n try {\n registration.dispose();\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n channelsChanged();\n },\n };\n }\n const channelHost = options.channelHostFor?.(channel) ?? options.channelHost;\n if (!channelHost) {\n notice(`hub channel '${channel.frameType}' is skipped: this server host has no channel capability.`);\n return noop;\n }\n if (channels.some((mount) => mount.channel.frameType === channel.frameType)) {\n notice(`hub channel '${channel.frameType}' is skipped: another facet already claims it.`);\n return noop;\n }\n let source: DoomHubChannelSource;\n try {\n source = channel.start(channelHost);\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not start (${String(error)}); it is skipped.`);\n return noop;\n }\n const mount: MountedChannel = { channel, source };\n channels.push(mount);\n channelsChanged();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = channels.indexOf(mount);\n if (index >= 0) channels.splice(index, 1);\n try {\n source.close();\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n channelsChanged();\n },\n };\n };\n\n const registerMethod: DoomServerHostService['registerMethod'] = (definition, handler) => {\n if (disposed || !options.pluginRegistry) {\n notice(\n `plugin method '${definition.service}.${definition.method}' is skipped: this host has no plugin dispatcher.`,\n );\n return noop;\n }\n const mount =\n scope === 'global'\n ? { scope: 'global' as const }\n : scope === 'workspace' && context.workspaceId\n ? { scope: 'workspace' as const, workspaceId: context.workspaceId }\n : scope === 'session' && context.sessionId\n ? { scope: 'session' as const, sessionId: context.sessionId }\n : undefined;\n if (!mount) {\n notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no mount identity.`);\n return noop;\n }\n try {\n const release = options.pluginRegistry.register(mount, definition, handler);\n let released = false;\n const dispose = () => {\n if (released) return;\n released = true;\n methods.delete(dispose);\n release();\n };\n methods.add(dispose);\n return { mounted: true, dispose };\n } catch (error) {\n notice(`plugin method '${definition.service}.${definition.method}' did not mount (${String(error)}).`);\n return noop;\n }\n };\n\n return {\n scope,\n context,\n registerApi,\n registerChannel,\n registerMethod,\n mounted: () => mounts.map((mount) => mount.basePath),\n mountedChannels: () => channels.map((mount) => mount.channel.frameType),\n handlerFor: (basePath) => mounts.find((mount) => mount.basePath === basePath)?.handler,\n dispose: () => {\n if (disposed) return;\n disposed = true;\n for (const release of [...methods].reverse()) release();\n for (const mount of channels.splice(0).reverse()) {\n try {\n if (mount.registration !== undefined) mount.registration.dispose();\n else mount.source?.close();\n } catch (error) {\n notice(`hub channel '${mount.channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n }\n for (const mount of mounts.splice(0).reverse()) {\n try {\n mount.handler.close();\n } catch (error) {\n notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);\n }\n }\n channelsChanged();\n changed();\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { DoomHubChannel, DoomHubChannelHost } from "../../schemas/hubChannel.cjs";
2
+ import { DoomApiContext, DoomApiHandler, DoomApiScope } from "../../schemas/packageApi.cjs";
3
+ import { DoomPluginRegistry } from "../../schemas/pluginProtocol.cjs";
4
+ import { DoomServerHostService, DoomServerRegistration } from "../../schemas/serverFacet.cjs";
5
+ //#region src/services/serverFacet/index.d.ts
6
+ export interface CreateDoomServerHostOptions {
7
+ scope: DoomApiScope;
8
+ context: DoomApiContext;
9
+ /** Required when facets may register live channels. */
10
+ channelHost?: DoomHubChannelHost;
11
+ /** Supplies a channel-specific host when one host serves multiple channels. */
12
+ channelHostFor?: (channel: DoomHubChannel) => DoomHubChannelHost;
13
+ /** Delegates channel mounting to an owner of the canonical channel table. */
14
+ mountChannel?: (channel: DoomHubChannel) => DoomServerRegistration;
15
+ /** Shared exact-scope dispatch table, owned by the server composition. */
16
+ pluginRegistry?: DoomPluginRegistry;
17
+ /** Called when an API mount table entry appears or disappears. */
18
+ onChange?: (mounted: readonly string[]) => void;
19
+ /** Called when a channel mount table entry appears or disappears. */
20
+ onChannelsChange?: (mounted: readonly string[]) => void;
21
+ }
22
+ /** The mount table a server host exposes to its facets, plus the router's read side. */
23
+ export interface DoomServerHost extends DoomServerHostService {
24
+ /** The handler owning a base path, for the router that dispatches to it. */
25
+ handlerFor(basePath: string): DoomApiHandler | undefined;
26
+ /** Close every mounted handler and empty the table. */
27
+ dispose(): void;
28
+ }
29
+ export declare function createDoomServerHost(options: CreateDoomServerHostOptions): DoomServerHost;
30
+ //#endregion
31
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/services/serverFacet/index.ts"],"mappings":";;;;;iBAiCiB;EACf,OAAO;EACP,SAAS;;EAET,cAAc;;EAEd,kBAAkB,SAAS,mBAAmB;;EAE9C,gBAAgB,SAAS,mBAAmB;;EAE5C,iBAAiB;;EAEjB,YAAY;;EAEZ,oBAAoB;;;iBAIL,uBAAuB;;EAEtC,WAAW,mBAAmB;;EAE9B;;wBAGc,qBAAqB,SAAS,8BAA8B"}
@@ -0,0 +1,31 @@
1
+ import { DoomHubChannel, DoomHubChannelHost } from "../../schemas/hubChannel.mjs";
2
+ import { DoomApiContext, DoomApiHandler, DoomApiScope } from "../../schemas/packageApi.mjs";
3
+ import { DoomPluginRegistry } from "../../schemas/pluginProtocol.mjs";
4
+ import { DoomServerHostService, DoomServerRegistration } from "../../schemas/serverFacet.mjs";
5
+ //#region src/services/serverFacet/index.d.ts
6
+ export interface CreateDoomServerHostOptions {
7
+ scope: DoomApiScope;
8
+ context: DoomApiContext;
9
+ /** Required when facets may register live channels. */
10
+ channelHost?: DoomHubChannelHost;
11
+ /** Supplies a channel-specific host when one host serves multiple channels. */
12
+ channelHostFor?: (channel: DoomHubChannel) => DoomHubChannelHost;
13
+ /** Delegates channel mounting to an owner of the canonical channel table. */
14
+ mountChannel?: (channel: DoomHubChannel) => DoomServerRegistration;
15
+ /** Shared exact-scope dispatch table, owned by the server composition. */
16
+ pluginRegistry?: DoomPluginRegistry;
17
+ /** Called when an API mount table entry appears or disappears. */
18
+ onChange?: (mounted: readonly string[]) => void;
19
+ /** Called when a channel mount table entry appears or disappears. */
20
+ onChannelsChange?: (mounted: readonly string[]) => void;
21
+ }
22
+ /** The mount table a server host exposes to its facets, plus the router's read side. */
23
+ export interface DoomServerHost extends DoomServerHostService {
24
+ /** The handler owning a base path, for the router that dispatches to it. */
25
+ handlerFor(basePath: string): DoomApiHandler | undefined;
26
+ /** Close every mounted handler and empty the table. */
27
+ dispose(): void;
28
+ }
29
+ export declare function createDoomServerHost(options: CreateDoomServerHostOptions): DoomServerHost;
30
+ //#endregion
31
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/services/serverFacet/index.ts"],"mappings":";;;;;iBAiCiB;EACf,OAAO;EACP,SAAS;;EAET,cAAc;;EAEd,kBAAkB,SAAS,mBAAmB;;EAE9C,gBAAgB,SAAS,mBAAmB;;EAE5C,iBAAiB;;EAEjB,YAAY;;EAEZ,oBAAoB;;;iBAIL,uBAAuB;;EAEtC,WAAW,mBAAmB;;EAE9B;;wBAGc,qBAAqB,SAAS,8BAA8B"}
@@ -0,0 +1,197 @@
1
+ //#region src/services/serverFacet/index.ts
2
+ function createDoomServerHost(options) {
3
+ const { scope, context } = options;
4
+ const notice = (message) => context.onNotice(message);
5
+ const mounts = [];
6
+ const channels = [];
7
+ const methods = /* @__PURE__ */ new Set();
8
+ let disposed = false;
9
+ const changed = () => options.onChange?.(mounts.map((mount) => mount.basePath));
10
+ const channelsChanged = () => options.onChannelsChange?.(channels.map((mount) => mount.channel.frameType));
11
+ const noop = {
12
+ mounted: false,
13
+ dispose: () => void 0
14
+ };
15
+ const registerApi = (api) => {
16
+ if (disposed) {
17
+ notice(`package API '${api.basePath}' is skipped: the server host is already disposed.`);
18
+ return noop;
19
+ }
20
+ if (mounts.find((mount) => mount.basePath === api.basePath) !== void 0) {
21
+ notice(`package API '${api.basePath}' is skipped: another facet already claims it.`);
22
+ return noop;
23
+ }
24
+ let handler;
25
+ try {
26
+ handler = api.start(context);
27
+ } catch (error) {
28
+ notice(`package API '${api.basePath}' did not start (${String(error)}); it is skipped.`);
29
+ return noop;
30
+ }
31
+ const mount = {
32
+ basePath: api.basePath,
33
+ handler
34
+ };
35
+ mounts.push(mount);
36
+ changed();
37
+ let released = false;
38
+ return {
39
+ mounted: true,
40
+ dispose: () => {
41
+ if (released) return;
42
+ released = true;
43
+ const index = mounts.indexOf(mount);
44
+ if (index >= 0) mounts.splice(index, 1);
45
+ try {
46
+ handler.close();
47
+ } catch (error) {
48
+ notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);
49
+ }
50
+ changed();
51
+ }
52
+ };
53
+ };
54
+ const registerChannel = (channel) => {
55
+ if (disposed) {
56
+ notice(`hub channel '${channel.frameType}' is skipped: the server host is already disposed.`);
57
+ return noop;
58
+ }
59
+ if (options.mountChannel !== void 0) {
60
+ let registration;
61
+ try {
62
+ registration = options.mountChannel(channel);
63
+ } catch (error) {
64
+ notice(`hub channel '${channel.frameType}' did not mount (${String(error)}); it is skipped.`);
65
+ return noop;
66
+ }
67
+ if (registration.mounted !== true) return registration;
68
+ const mount = {
69
+ channel,
70
+ registration
71
+ };
72
+ channels.push(mount);
73
+ channelsChanged();
74
+ let released = false;
75
+ return {
76
+ mounted: true,
77
+ dispose: () => {
78
+ if (released) return;
79
+ released = true;
80
+ const index = channels.indexOf(mount);
81
+ if (index >= 0) channels.splice(index, 1);
82
+ try {
83
+ registration.dispose();
84
+ } catch (error) {
85
+ notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);
86
+ }
87
+ channelsChanged();
88
+ }
89
+ };
90
+ }
91
+ const channelHost = options.channelHostFor?.(channel) ?? options.channelHost;
92
+ if (!channelHost) {
93
+ notice(`hub channel '${channel.frameType}' is skipped: this server host has no channel capability.`);
94
+ return noop;
95
+ }
96
+ if (channels.some((mount) => mount.channel.frameType === channel.frameType)) {
97
+ notice(`hub channel '${channel.frameType}' is skipped: another facet already claims it.`);
98
+ return noop;
99
+ }
100
+ let source;
101
+ try {
102
+ source = channel.start(channelHost);
103
+ } catch (error) {
104
+ notice(`hub channel '${channel.frameType}' did not start (${String(error)}); it is skipped.`);
105
+ return noop;
106
+ }
107
+ const mount = {
108
+ channel,
109
+ source
110
+ };
111
+ channels.push(mount);
112
+ channelsChanged();
113
+ let released = false;
114
+ return {
115
+ mounted: true,
116
+ dispose: () => {
117
+ if (released) return;
118
+ released = true;
119
+ const index = channels.indexOf(mount);
120
+ if (index >= 0) channels.splice(index, 1);
121
+ try {
122
+ source.close();
123
+ } catch (error) {
124
+ notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);
125
+ }
126
+ channelsChanged();
127
+ }
128
+ };
129
+ };
130
+ const registerMethod = (definition, handler) => {
131
+ if (disposed || !options.pluginRegistry) {
132
+ notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no plugin dispatcher.`);
133
+ return noop;
134
+ }
135
+ const mount = scope === "global" ? { scope: "global" } : scope === "workspace" && context.workspaceId ? {
136
+ scope: "workspace",
137
+ workspaceId: context.workspaceId
138
+ } : scope === "session" && context.sessionId ? {
139
+ scope: "session",
140
+ sessionId: context.sessionId
141
+ } : void 0;
142
+ if (!mount) {
143
+ notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no mount identity.`);
144
+ return noop;
145
+ }
146
+ try {
147
+ const release = options.pluginRegistry.register(mount, definition, handler);
148
+ let released = false;
149
+ const dispose = () => {
150
+ if (released) return;
151
+ released = true;
152
+ methods.delete(dispose);
153
+ release();
154
+ };
155
+ methods.add(dispose);
156
+ return {
157
+ mounted: true,
158
+ dispose
159
+ };
160
+ } catch (error) {
161
+ notice(`plugin method '${definition.service}.${definition.method}' did not mount (${String(error)}).`);
162
+ return noop;
163
+ }
164
+ };
165
+ return {
166
+ scope,
167
+ context,
168
+ registerApi,
169
+ registerChannel,
170
+ registerMethod,
171
+ mounted: () => mounts.map((mount) => mount.basePath),
172
+ mountedChannels: () => channels.map((mount) => mount.channel.frameType),
173
+ handlerFor: (basePath) => mounts.find((mount) => mount.basePath === basePath)?.handler,
174
+ dispose: () => {
175
+ if (disposed) return;
176
+ disposed = true;
177
+ for (const release of [...methods].reverse()) release();
178
+ for (const mount of channels.splice(0).reverse()) try {
179
+ if (mount.registration !== void 0) mount.registration.dispose();
180
+ else mount.source?.close();
181
+ } catch (error) {
182
+ notice(`hub channel '${mount.channel.frameType}' did not close cleanly (${String(error)}).`);
183
+ }
184
+ for (const mount of mounts.splice(0).reverse()) try {
185
+ mount.handler.close();
186
+ } catch (error) {
187
+ notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);
188
+ }
189
+ channelsChanged();
190
+ changed();
191
+ }
192
+ };
193
+ }
194
+ //#endregion
195
+ export { createDoomServerHost };
196
+
197
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/services/serverFacet/index.ts"],"sourcesContent":["/**\n * The server host a facet contributes to.\n *\n * DESIGN PATTERNS:\n * - One mount table. Every facet registers through this service, so the host\n * process has a single ordered record of what is mounted and under what.\n * - Base paths are first-come. A collision is reported and skipped, so one\n * misdeclared package cannot take a server down.\n * - Handlers are started lazily on first mount and closed on dispose, so a\n * facet that registers and immediately unwinds leaves nothing running.\n *\n * AVOID:\n * - Letting a throwing `start` escape. A package whose API cannot start is\n * reported and skipped; the remaining facets still mount.\n * - Reaching for node:*. The host owns the listener; this only owns the table.\n */\n\nimport type { DoomHubChannel, DoomHubChannelHost, DoomHubChannelSource } from '../../schemas/hubChannel';\nimport type { DoomApi, DoomApiContext, DoomApiHandler, DoomApiScope } from '../../schemas/packageApi';\nimport type { DoomPluginRegistry } from '../../schemas/pluginProtocol';\nimport type { DoomServerHostService, DoomServerRegistration } from '../../schemas/serverFacet';\n\ninterface MountedApi {\n readonly basePath: string;\n readonly handler: DoomApiHandler;\n}\n\ninterface MountedChannel {\n readonly channel: DoomHubChannel;\n readonly source?: DoomHubChannelSource;\n readonly registration?: DoomServerRegistration;\n}\n\nexport interface CreateDoomServerHostOptions {\n scope: DoomApiScope;\n context: DoomApiContext;\n /** Required when facets may register live channels. */\n channelHost?: DoomHubChannelHost;\n /** Supplies a channel-specific host when one host serves multiple channels. */\n channelHostFor?: (channel: DoomHubChannel) => DoomHubChannelHost;\n /** Delegates channel mounting to an owner of the canonical channel table. */\n mountChannel?: (channel: DoomHubChannel) => DoomServerRegistration;\n /** Shared exact-scope dispatch table, owned by the server composition. */\n pluginRegistry?: DoomPluginRegistry;\n /** Called when an API mount table entry appears or disappears. */\n onChange?: (mounted: readonly string[]) => void;\n /** Called when a channel mount table entry appears or disappears. */\n onChannelsChange?: (mounted: readonly string[]) => void;\n}\n\n/** The mount table a server host exposes to its facets, plus the router's read side. */\nexport interface DoomServerHost extends DoomServerHostService {\n /** The handler owning a base path, for the router that dispatches to it. */\n handlerFor(basePath: string): DoomApiHandler | undefined;\n /** Close every mounted handler and empty the table. */\n dispose(): void;\n}\n\nexport function createDoomServerHost(options: CreateDoomServerHostOptions): DoomServerHost {\n const { scope, context } = options;\n const notice = (message: string): void => context.onNotice(message);\n const mounts: MountedApi[] = [];\n const channels: MountedChannel[] = [];\n const methods = new Set<() => void>();\n let disposed = false;\n\n const changed = (): void => options.onChange?.(mounts.map((mount) => mount.basePath));\n const channelsChanged = (): void => options.onChannelsChange?.(channels.map((mount) => mount.channel.frameType));\n\n const noop: DoomServerRegistration = { mounted: false, dispose: () => undefined };\n\n const registerApi = (api: DoomApi): DoomServerRegistration => {\n if (disposed) {\n notice(`package API '${api.basePath}' is skipped: the server host is already disposed.`);\n return noop;\n }\n const holder = mounts.find((mount) => mount.basePath === api.basePath);\n if (holder !== undefined) {\n notice(`package API '${api.basePath}' is skipped: another facet already claims it.`);\n return noop;\n }\n let handler: DoomApiHandler;\n try {\n handler = api.start(context);\n } catch (error) {\n notice(`package API '${api.basePath}' did not start (${String(error)}); it is skipped.`);\n return noop;\n }\n const mount: MountedApi = { basePath: api.basePath, handler };\n mounts.push(mount);\n changed();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = mounts.indexOf(mount);\n if (index >= 0) mounts.splice(index, 1);\n try {\n handler.close();\n } catch (error) {\n notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);\n }\n changed();\n },\n };\n };\n\n const registerChannel = (channel: DoomHubChannel): DoomServerRegistration => {\n if (disposed) {\n notice(`hub channel '${channel.frameType}' is skipped: the server host is already disposed.`);\n return noop;\n }\n if (options.mountChannel !== undefined) {\n let registration: DoomServerRegistration;\n try {\n registration = options.mountChannel(channel);\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not mount (${String(error)}); it is skipped.`);\n return noop;\n }\n if (registration.mounted !== true) return registration;\n const mount: MountedChannel = { channel, registration };\n channels.push(mount);\n channelsChanged();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = channels.indexOf(mount);\n if (index >= 0) channels.splice(index, 1);\n try {\n registration.dispose();\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n channelsChanged();\n },\n };\n }\n const channelHost = options.channelHostFor?.(channel) ?? options.channelHost;\n if (!channelHost) {\n notice(`hub channel '${channel.frameType}' is skipped: this server host has no channel capability.`);\n return noop;\n }\n if (channels.some((mount) => mount.channel.frameType === channel.frameType)) {\n notice(`hub channel '${channel.frameType}' is skipped: another facet already claims it.`);\n return noop;\n }\n let source: DoomHubChannelSource;\n try {\n source = channel.start(channelHost);\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not start (${String(error)}); it is skipped.`);\n return noop;\n }\n const mount: MountedChannel = { channel, source };\n channels.push(mount);\n channelsChanged();\n let released = false;\n return {\n mounted: true,\n dispose: () => {\n if (released) return;\n released = true;\n const index = channels.indexOf(mount);\n if (index >= 0) channels.splice(index, 1);\n try {\n source.close();\n } catch (error) {\n notice(`hub channel '${channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n channelsChanged();\n },\n };\n };\n\n const registerMethod: DoomServerHostService['registerMethod'] = (definition, handler) => {\n if (disposed || !options.pluginRegistry) {\n notice(\n `plugin method '${definition.service}.${definition.method}' is skipped: this host has no plugin dispatcher.`,\n );\n return noop;\n }\n const mount =\n scope === 'global'\n ? { scope: 'global' as const }\n : scope === 'workspace' && context.workspaceId\n ? { scope: 'workspace' as const, workspaceId: context.workspaceId }\n : scope === 'session' && context.sessionId\n ? { scope: 'session' as const, sessionId: context.sessionId }\n : undefined;\n if (!mount) {\n notice(`plugin method '${definition.service}.${definition.method}' is skipped: this host has no mount identity.`);\n return noop;\n }\n try {\n const release = options.pluginRegistry.register(mount, definition, handler);\n let released = false;\n const dispose = () => {\n if (released) return;\n released = true;\n methods.delete(dispose);\n release();\n };\n methods.add(dispose);\n return { mounted: true, dispose };\n } catch (error) {\n notice(`plugin method '${definition.service}.${definition.method}' did not mount (${String(error)}).`);\n return noop;\n }\n };\n\n return {\n scope,\n context,\n registerApi,\n registerChannel,\n registerMethod,\n mounted: () => mounts.map((mount) => mount.basePath),\n mountedChannels: () => channels.map((mount) => mount.channel.frameType),\n handlerFor: (basePath) => mounts.find((mount) => mount.basePath === basePath)?.handler,\n dispose: () => {\n if (disposed) return;\n disposed = true;\n for (const release of [...methods].reverse()) release();\n for (const mount of channels.splice(0).reverse()) {\n try {\n if (mount.registration !== undefined) mount.registration.dispose();\n else mount.source?.close();\n } catch (error) {\n notice(`hub channel '${mount.channel.frameType}' did not close cleanly (${String(error)}).`);\n }\n }\n for (const mount of mounts.splice(0).reverse()) {\n try {\n mount.handler.close();\n } catch (error) {\n notice(`package API '${mount.basePath}' did not close cleanly (${String(error)}).`);\n }\n }\n channelsChanged();\n changed();\n },\n };\n}\n"],"mappings":"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"}