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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1149) hide show
  1. package/LICENSE +149 -21
  2. package/NOTICE +41 -0
  3. package/dist/agentModel.cjs +1 -1
  4. package/dist/agentModel.d.mts +2 -2
  5. package/dist/agentModel.mjs +1 -2
  6. package/dist/apiContracts.cjs +623 -802
  7. package/dist/apiContracts.cjs.map +1 -1
  8. package/dist/apiContracts.d.mts +277 -615
  9. package/dist/apiContracts.d.mts.map +1 -1
  10. package/dist/apiContracts.mjs +617 -794
  11. package/dist/apiContracts.mjs.map +1 -1
  12. package/dist/askUser.cjs +2 -2
  13. package/dist/askUser.d.mts +2 -2
  14. package/dist/askUser.mjs +1 -2
  15. package/dist/authorTools.mjs +1 -2
  16. package/dist/backgroundWork.cjs +3 -3
  17. package/dist/backgroundWork.d.mts +2 -2
  18. package/dist/backgroundWork.mjs +1 -2
  19. package/dist/bundleAssetPolicy.mjs +1 -2
  20. package/dist/chatgptAuth.cjs +3 -2
  21. package/dist/chatgptAuth.d.mts +3 -2
  22. package/dist/chatgptAuth.mjs +2 -1
  23. package/dist/childProcess.cjs +1 -1
  24. package/dist/childProcess.d.mts +2 -2
  25. package/dist/childProcess.mjs +1 -2
  26. package/dist/childSession.cjs +11 -6
  27. package/dist/childSession.d.mts +3 -3
  28. package/dist/childSession.mjs +3 -3
  29. package/dist/cockpitContainer.mjs +1 -2
  30. package/dist/config.cjs +1 -1
  31. package/dist/config.d.mts +3 -3
  32. package/dist/config.mjs +1 -2
  33. package/dist/contextApi.cjs +1 -0
  34. package/dist/contextApi.d.mts +2 -2
  35. package/dist/contextApi.mjs +2 -2
  36. package/dist/contextContributions.cjs +4 -4
  37. package/dist/contextContributions.d.mts +3 -3
  38. package/dist/contextContributions.mjs +3 -3
  39. package/dist/contextDetailStore.cjs +7 -5
  40. package/dist/contextDetailStore.cjs.map +1 -1
  41. package/dist/contextDetailStore.d.mts +2 -1
  42. package/dist/contextDetailStore.d.mts.map +1 -1
  43. package/dist/contextDetailStore.mjs +6 -4
  44. package/dist/contextDetailStore.mjs.map +1 -1
  45. package/dist/contextProjection.cjs +7 -2
  46. package/dist/contextProjection.cjs.map +1 -1
  47. package/dist/contextProjection.d.mts +4 -1
  48. package/dist/contextProjection.d.mts.map +1 -1
  49. package/dist/contextProjection.mjs +5 -2
  50. package/dist/contextProjection.mjs.map +1 -1
  51. package/dist/cordisHost.cjs +11 -11
  52. package/dist/cordisHost.d.mts +2 -2
  53. package/dist/cordisHost.mjs +1 -2
  54. package/dist/delegation.cjs +8 -8
  55. package/dist/delegation.d.mts +2 -2
  56. package/dist/delegation.mjs +1 -2
  57. package/dist/executionBudget.cjs +4 -3
  58. package/dist/executionBudget.cjs.map +1 -1
  59. package/dist/executionBudget.d.mts +2 -2
  60. package/dist/executionBudget.d.mts.map +1 -1
  61. package/dist/executionBudget.mjs +4 -3
  62. package/dist/executionBudget.mjs.map +1 -1
  63. package/dist/extensionFile.cjs +5 -0
  64. package/dist/extensionFile.d.mts +4 -2
  65. package/dist/extensionFile.mjs +4 -2
  66. package/dist/footer.d.mts +2 -2
  67. package/dist/footer.mjs +1 -2
  68. package/dist/headless.cjs +14 -14
  69. package/dist/headless.d.mts +2 -2
  70. package/dist/headless.mjs +1 -2
  71. package/dist/headlessHub.cjs +308 -109
  72. package/dist/headlessHub.cjs.map +1 -1
  73. package/dist/headlessHub.d.mts +71 -36
  74. package/dist/headlessHub.d.mts.map +1 -1
  75. package/dist/headlessHub.mjs +309 -110
  76. package/dist/headlessHub.mjs.map +1 -1
  77. package/dist/headlessProtocol.cjs +327 -0
  78. package/dist/headlessProtocol.cjs.map +1 -0
  79. package/dist/headlessProtocol.d.mts +30 -0
  80. package/dist/headlessProtocol.d.mts.map +1 -0
  81. package/dist/headlessProtocol.mjs +326 -0
  82. package/dist/headlessProtocol.mjs.map +1 -0
  83. package/dist/headlessServer.cjs +166 -151
  84. package/dist/headlessServer.cjs.map +1 -1
  85. package/dist/headlessServer.d.mts +13 -5
  86. package/dist/headlessServer.d.mts.map +1 -1
  87. package/dist/headlessServer.mjs +166 -151
  88. package/dist/headlessServer.mjs.map +1 -1
  89. package/dist/headlessSessionHost.d.mts +58 -21
  90. package/dist/headlessSessionHost.d.mts.map +1 -1
  91. package/dist/help.cjs +20 -20
  92. package/dist/help.d.mts +2 -2
  93. package/dist/help.mjs +2 -2
  94. package/dist/history.cjs +16 -20
  95. package/dist/history.d.mts +9 -7
  96. package/dist/history.mjs +6 -7
  97. package/dist/historyOwnership.cjs.map +1 -1
  98. package/dist/historyOwnership.d.mts +1 -1
  99. package/dist/historyOwnership.mjs.map +1 -1
  100. package/dist/hubChannel.cjs +9 -0
  101. package/dist/hubChannel.d.mts +3 -2
  102. package/dist/hubChannel.mjs +3 -2
  103. package/dist/index.cjs +26 -28
  104. package/dist/index.d.mts +6 -6
  105. package/dist/index.mjs +6 -6
  106. package/dist/interop/chord.mjs +1 -0
  107. package/dist/interop/chordContext.mjs +1 -0
  108. package/dist/json.cjs +11 -5
  109. package/dist/json.d.mts +4 -2
  110. package/dist/json.mjs +4 -2
  111. package/dist/kernel.cjs +1 -1
  112. package/dist/kernel.d.mts +3 -3
  113. package/dist/kernel.mjs +1 -2
  114. package/dist/leader.d.mts +2 -2
  115. package/dist/leader.mjs +1 -2
  116. package/dist/logSinkTelemetry.mjs +1 -2
  117. package/dist/machineApi.cjs +80 -74
  118. package/dist/machineApi.cjs.map +1 -1
  119. package/dist/machineApi.d.mts +5 -2
  120. package/dist/machineApi.d.mts.map +1 -1
  121. package/dist/machineApi.mjs +78 -71
  122. package/dist/machineApi.mjs.map +1 -1
  123. package/dist/main.cjs +2 -1
  124. package/dist/main.d.mts +2 -1
  125. package/dist/main.mjs +2 -1
  126. package/dist/mcpFacet.d.mts +3 -3
  127. package/dist/mcpProjection.cjs +13 -13
  128. package/dist/mcpProjection.d.mts +2 -2
  129. package/dist/mcpProjection.mjs +1 -2
  130. package/dist/mcpSchemaCost.cjs +4 -4
  131. package/dist/mcpSchemaCost.cjs.map +1 -1
  132. package/dist/mcpSchemaCost.d.mts +2 -2
  133. package/dist/mcpSchemaCost.mjs +4 -4
  134. package/dist/mcpSchemaCost.mjs.map +1 -1
  135. package/dist/mcpSession.cjs +7 -7
  136. package/dist/mcpSession.d.mts +2 -2
  137. package/dist/mcpSession.mjs +1 -2
  138. package/dist/mcpStatus.cjs +2 -2
  139. package/dist/mcpStatus.d.mts +2 -2
  140. package/dist/mcpStatus.mjs +1 -2
  141. package/dist/mcpToolResolver.cjs +3 -3
  142. package/dist/mcpToolResolver.d.mts +2 -2
  143. package/dist/mcpToolResolver.mjs +1 -2
  144. package/dist/mcpWidget.d.mts +2 -2
  145. package/dist/moduleResolution.cjs +43 -8
  146. package/dist/moduleResolution.cjs.map +1 -1
  147. package/dist/moduleResolution.d.mts +10 -1
  148. package/dist/moduleResolution.d.mts.map +1 -1
  149. package/dist/moduleResolution.mjs +40 -7
  150. package/dist/moduleResolution.mjs.map +1 -1
  151. package/dist/narration.cjs +3 -3
  152. package/dist/narration.d.mts +2 -2
  153. package/dist/narration.mjs +1 -2
  154. package/dist/native.cjs +9 -0
  155. package/dist/native.d.mts +4 -3
  156. package/dist/native.mjs +3 -2
  157. package/dist/nodePlatform.cjs +77 -0
  158. package/dist/nodePlatform.cjs.map +1 -0
  159. package/dist/nodePlatform.d.mts +17 -0
  160. package/dist/nodePlatform.d.mts.map +1 -0
  161. package/dist/nodePlatform.mjs +72 -0
  162. package/dist/nodePlatform.mjs.map +1 -0
  163. package/dist/notification.cjs +15 -15
  164. package/dist/notification.d.mts +2 -2
  165. package/dist/notification.mjs +1 -2
  166. package/dist/packageApi.cjs +11 -11
  167. package/dist/packageApi.d.mts +2 -2
  168. package/dist/packageApi.mjs +2 -2
  169. package/dist/packageApiServer.cjs +45 -27
  170. package/dist/packageApiServer.cjs.map +1 -1
  171. package/dist/packageApiServer.d.mts +36 -26
  172. package/dist/packageApiServer.d.mts.map +1 -1
  173. package/dist/packageApiServer.mjs +44 -26
  174. package/dist/packageApiServer.mjs.map +1 -1
  175. package/dist/piSettings.cjs +41 -20
  176. package/dist/piSettings.d.mts +4 -2
  177. package/dist/piSettings.mjs +4 -2
  178. package/dist/platform.cjs +62 -0
  179. package/dist/platform.d.mts +10 -0
  180. package/dist/platform.mjs +10 -0
  181. package/dist/pluginProtocol.cjs +7 -8
  182. package/dist/pluginProtocol.d.mts +2 -2
  183. package/dist/pluginProtocol.mjs +1 -2
  184. package/dist/poPackage.cjs +12 -0
  185. package/dist/poPackage.d.mts +3 -0
  186. package/dist/poPackage.mjs +3 -0
  187. package/dist/profileIdentity.cjs +1 -1
  188. package/dist/profileIdentity.d.mts +2 -2
  189. package/dist/profileIdentity.mjs +1 -2
  190. package/dist/protocol.cjs +3 -3
  191. package/dist/protocol.d.mts +2 -2
  192. package/dist/protocol.mjs +1 -2
  193. package/dist/readiness.cjs +6 -6
  194. package/dist/readiness.d.mts +2 -2
  195. package/dist/readiness.mjs +1 -2
  196. package/dist/remoteApi.cjs.map +1 -1
  197. package/dist/remoteApi.d.mts +2 -2
  198. package/dist/remoteApi.mjs.map +1 -1
  199. package/dist/remoteRuntime.cjs +42 -65
  200. package/dist/remoteRuntime.cjs.map +1 -1
  201. package/dist/remoteRuntime.d.mts +3 -2
  202. package/dist/remoteRuntime.d.mts.map +1 -1
  203. package/dist/remoteRuntime.mjs +41 -62
  204. package/dist/remoteRuntime.mjs.map +1 -1
  205. package/dist/runtimeConfig.cjs +4 -4
  206. package/dist/runtimeConfig.cjs.map +1 -1
  207. package/dist/runtimeConfig.d.mts +10 -9
  208. package/dist/runtimeConfig.d.mts.map +1 -1
  209. package/dist/runtimeConfig.mjs +4 -4
  210. package/dist/runtimeConfig.mjs.map +1 -1
  211. package/dist/runtimeContextApi.cjs +10 -3
  212. package/dist/runtimeContextApi.cjs.map +1 -1
  213. package/dist/runtimeContextApi.d.mts +3 -3
  214. package/dist/runtimeContextApi.d.mts.map +1 -1
  215. package/dist/runtimeContextApi.mjs +10 -3
  216. package/dist/runtimeContextApi.mjs.map +1 -1
  217. package/dist/runtimeCordisHost.cjs +46 -46
  218. package/dist/runtimeCordisHost.cjs.map +1 -1
  219. package/dist/runtimeCordisHost.d.mts +29 -28
  220. package/dist/runtimeCordisHost.d.mts.map +1 -1
  221. package/dist/runtimeCordisHost.mjs +42 -42
  222. package/dist/runtimeCordisHost.mjs.map +1 -1
  223. package/dist/runtimeIdentity.cjs +6 -9
  224. package/dist/runtimeIdentity.cjs.map +1 -1
  225. package/dist/runtimeIdentity.d.mts +5 -1
  226. package/dist/runtimeIdentity.d.mts.map +1 -1
  227. package/dist/runtimeIdentity.mjs +5 -8
  228. package/dist/runtimeIdentity.mjs.map +1 -1
  229. package/dist/runtimeJson.cjs +10 -45
  230. package/dist/runtimeJson.d.mts +3 -22
  231. package/dist/runtimeJson.mjs +3 -39
  232. package/dist/runtimeLogSinkTelemetry.cjs +19 -19
  233. package/dist/runtimeLogSinkTelemetry.cjs.map +1 -1
  234. package/dist/runtimeLogSinkTelemetry.d.mts +19 -19
  235. package/dist/runtimeLogSinkTelemetry.mjs +19 -19
  236. package/dist/runtimeLogSinkTelemetry.mjs.map +1 -1
  237. package/dist/runtimePackages.cjs +7 -2
  238. package/dist/runtimePackages.cjs.map +1 -1
  239. package/dist/runtimePackages.d.mts +4 -1
  240. package/dist/runtimePackages.d.mts.map +1 -1
  241. package/dist/runtimePackages.mjs +7 -2
  242. package/dist/runtimePackages.mjs.map +1 -1
  243. package/dist/runtimePiSettings.cjs +40 -263
  244. package/dist/runtimePiSettings.d.mts +3 -72
  245. package/dist/runtimePiSettings.mjs +3 -241
  246. package/dist/runtimeProtocol.cjs +19 -19
  247. package/dist/runtimeProtocol.cjs.map +1 -1
  248. package/dist/runtimeProtocol.d.mts +7 -7
  249. package/dist/runtimeProtocol.d.mts.map +1 -1
  250. package/dist/runtimeProtocol.mjs +17 -17
  251. package/dist/runtimeProtocol.mjs.map +1 -1
  252. package/dist/runtimeTransition.cjs +9 -9
  253. package/dist/runtimeTransition.cjs.map +1 -1
  254. package/dist/runtimeTransition.d.mts +10 -10
  255. package/dist/runtimeTransition.d.mts.map +1 -1
  256. package/dist/runtimeTransition.mjs +7 -7
  257. package/dist/runtimeTransition.mjs.map +1 -1
  258. package/dist/sandboxHarness.mjs +1 -2
  259. package/dist/server.cjs +3 -7
  260. package/dist/server.d.mts +6 -6
  261. package/dist/server.mjs +3 -4
  262. package/dist/serverPlugin.cjs +39 -0
  263. package/dist/serverPlugin.d.mts +12 -0
  264. package/dist/serverPlugin.mjs +11 -0
  265. package/dist/serverTelemetry.cjs +1 -1
  266. package/dist/serverTelemetry.cjs.map +1 -1
  267. package/dist/serverTelemetry.d.mts +2 -2
  268. package/dist/serverTelemetry.mjs +2 -2
  269. package/dist/serverTelemetry.mjs.map +1 -1
  270. package/dist/sessionFilesApi.cjs +41 -37
  271. package/dist/sessionFilesApi.cjs.map +1 -1
  272. package/dist/sessionFilesApi.d.mts +6 -3
  273. package/dist/sessionFilesApi.d.mts.map +1 -1
  274. package/dist/sessionFilesApi.mjs +41 -36
  275. package/dist/sessionFilesApi.mjs.map +1 -1
  276. package/dist/sessionProtocol.cjs +31 -6
  277. package/dist/sessionProtocol.d.mts +8 -3
  278. package/dist/sessionProtocol.mjs +8 -2
  279. package/dist/skills.cjs +5 -5
  280. package/dist/skills.d.mts +2 -2
  281. package/dist/skills.mjs +1 -2
  282. package/dist/sqliteSessionStorage.cjs +28 -50
  283. package/dist/sqliteSessionStorage.cjs.map +1 -1
  284. package/dist/sqliteSessionStorage.d.mts +13 -20
  285. package/dist/sqliteSessionStorage.d.mts.map +1 -1
  286. package/dist/sqliteSessionStorage.mjs +25 -48
  287. package/dist/sqliteSessionStorage.mjs.map +1 -1
  288. package/dist/src/constants/agentSettled.cjs +7 -0
  289. package/dist/src/constants/agentSettled.cjs.map +1 -0
  290. package/dist/src/constants/agentSettled.mjs +7 -0
  291. package/dist/src/constants/agentSettled.mjs.map +1 -0
  292. package/dist/src/constants/contextApi.cjs +3 -1
  293. package/dist/src/constants/contextApi.cjs.map +1 -1
  294. package/dist/src/constants/contextApi.d.mts +2 -1
  295. package/dist/src/constants/contextApi.d.mts.map +1 -1
  296. package/dist/src/constants/contextApi.mjs +3 -2
  297. package/dist/src/constants/contextApi.mjs.map +1 -1
  298. package/dist/src/constants/voiceTools.cjs +6 -6
  299. package/dist/src/constants/voiceTools.cjs.map +1 -1
  300. package/dist/src/constants/voiceTools.d.mts +3 -3
  301. package/dist/src/constants/voiceTools.mjs +4 -4
  302. package/dist/src/constants/voiceTools.mjs.map +1 -1
  303. package/dist/src/extensions/extensionFile.cjs +22 -5
  304. package/dist/src/extensions/extensionFile.cjs.map +1 -1
  305. package/dist/src/extensions/extensionFile.d.mts +17 -4
  306. package/dist/src/extensions/extensionFile.d.mts.map +1 -1
  307. package/dist/src/extensions/extensionFile.mjs +22 -6
  308. package/dist/src/extensions/extensionFile.mjs.map +1 -1
  309. package/dist/src/extensions/serverPlugin.cjs +231 -92
  310. package/dist/src/extensions/serverPlugin.cjs.map +1 -1
  311. package/dist/src/extensions/serverPlugin.d.mts +2 -2
  312. package/dist/src/extensions/serverPlugin.d.mts.map +1 -1
  313. package/dist/src/extensions/serverPlugin.mjs +232 -93
  314. package/dist/src/extensions/serverPlugin.mjs.map +1 -1
  315. package/dist/src/pi/piSessionRuntime.cjs +349 -142
  316. package/dist/src/pi/piSessionRuntime.cjs.map +1 -1
  317. package/dist/src/pi/piSessionRuntime.d.mts +18 -17
  318. package/dist/src/pi/piSessionRuntime.d.mts.map +1 -1
  319. package/dist/src/pi/piSessionRuntime.mjs +342 -135
  320. package/dist/src/pi/piSessionRuntime.mjs.map +1 -1
  321. package/dist/src/schemas/agentModel.cjs +2 -2
  322. package/dist/src/schemas/agentModel.cjs.map +1 -1
  323. package/dist/src/schemas/agentModel.d.mts +1 -1
  324. package/dist/src/schemas/agentModel.mjs +2 -2
  325. package/dist/src/schemas/agentModel.mjs.map +1 -1
  326. package/dist/src/schemas/apiContracts.d.mts +2 -2
  327. package/dist/src/schemas/apiContracts.d.mts.map +1 -1
  328. package/dist/src/schemas/askUser.cjs +4 -4
  329. package/dist/src/schemas/askUser.cjs.map +1 -1
  330. package/dist/src/schemas/askUser.d.mts +4 -4
  331. package/dist/src/schemas/askUser.d.mts.map +1 -1
  332. package/dist/src/schemas/askUser.mjs +3 -3
  333. package/dist/src/schemas/askUser.mjs.map +1 -1
  334. package/dist/src/schemas/backgroundWork.cjs +10 -10
  335. package/dist/src/schemas/backgroundWork.cjs.map +1 -1
  336. package/dist/src/schemas/backgroundWork.d.mts +9 -9
  337. package/dist/src/schemas/backgroundWork.d.mts.map +1 -1
  338. package/dist/src/schemas/backgroundWork.mjs +8 -8
  339. package/dist/src/schemas/backgroundWork.mjs.map +1 -1
  340. package/dist/src/schemas/childProcess.cjs +5 -5
  341. package/dist/src/schemas/childProcess.cjs.map +1 -1
  342. package/dist/src/schemas/childProcess.d.mts +2 -2
  343. package/dist/src/schemas/childProcess.mjs +5 -5
  344. package/dist/src/schemas/childProcess.mjs.map +1 -1
  345. package/dist/src/schemas/contextContributions.cjs +10 -10
  346. package/dist/src/schemas/contextContributions.cjs.map +1 -1
  347. package/dist/src/schemas/contextContributions.d.mts +16 -16
  348. package/dist/src/schemas/contextContributions.d.mts.map +1 -1
  349. package/dist/src/schemas/contextContributions.mjs +8 -8
  350. package/dist/src/schemas/contextContributions.mjs.map +1 -1
  351. package/dist/src/schemas/delegation.cjs +17 -17
  352. package/dist/src/schemas/delegation.cjs.map +1 -1
  353. package/dist/src/schemas/delegation.d.mts +16 -16
  354. package/dist/src/schemas/delegation.d.mts.map +1 -1
  355. package/dist/src/schemas/delegation.mjs +10 -10
  356. package/dist/src/schemas/delegation.mjs.map +1 -1
  357. package/dist/src/schemas/extensionFile.d.mts +23 -19
  358. package/dist/src/schemas/extensionFile.d.mts.map +1 -1
  359. package/dist/src/schemas/footer.cjs.map +1 -1
  360. package/dist/src/schemas/footer.d.mts +5 -5
  361. package/dist/src/schemas/footer.d.mts.map +1 -1
  362. package/dist/src/schemas/footer.mjs.map +1 -1
  363. package/dist/src/schemas/headless.cjs +37 -37
  364. package/dist/src/schemas/headless.cjs.map +1 -1
  365. package/dist/src/schemas/headless.d.mts +100 -101
  366. package/dist/src/schemas/headless.d.mts.map +1 -1
  367. package/dist/src/schemas/headless.mjs +24 -24
  368. package/dist/src/schemas/headless.mjs.map +1 -1
  369. package/dist/src/schemas/help.cjs +60 -60
  370. package/dist/src/schemas/help.cjs.map +1 -1
  371. package/dist/src/schemas/help.d.mts +43 -43
  372. package/dist/src/schemas/help.d.mts.map +1 -1
  373. package/dist/src/schemas/help.mjs +41 -41
  374. package/dist/src/schemas/help.mjs.map +1 -1
  375. package/dist/src/schemas/home.cjs +127 -0
  376. package/dist/src/schemas/home.cjs.map +1 -0
  377. package/dist/src/schemas/home.d.mts +63 -0
  378. package/dist/src/schemas/home.d.mts.map +1 -0
  379. package/dist/src/schemas/home.mjs +121 -0
  380. package/dist/src/schemas/home.mjs.map +1 -0
  381. package/dist/src/schemas/httpApiContracts.cjs +441 -0
  382. package/dist/src/schemas/httpApiContracts.cjs.map +1 -0
  383. package/dist/src/schemas/httpApiContracts.d.mts +78 -0
  384. package/dist/src/schemas/httpApiContracts.d.mts.map +1 -0
  385. package/dist/src/schemas/httpApiContracts.mjs +434 -0
  386. package/dist/src/schemas/httpApiContracts.mjs.map +1 -0
  387. package/dist/src/schemas/hubChannel.cjs +3 -0
  388. package/dist/src/schemas/hubChannel.cjs.map +1 -1
  389. package/dist/src/schemas/hubChannel.d.mts +84 -60
  390. package/dist/src/schemas/hubChannel.d.mts.map +1 -1
  391. package/dist/src/schemas/hubChannel.mjs +3 -1
  392. package/dist/src/schemas/hubChannel.mjs.map +1 -1
  393. package/dist/src/schemas/leader.cjs.map +1 -1
  394. package/dist/src/schemas/leader.d.mts +3 -3
  395. package/dist/src/schemas/leader.d.mts.map +1 -1
  396. package/dist/src/schemas/leader.mjs.map +1 -1
  397. package/dist/src/schemas/mcpBundle.d.mts +3 -3
  398. package/dist/src/schemas/mcpFacet.cjs.map +1 -1
  399. package/dist/src/schemas/mcpFacet.d.mts +22 -22
  400. package/dist/src/schemas/mcpFacet.d.mts.map +1 -1
  401. package/dist/src/schemas/mcpFacet.mjs.map +1 -1
  402. package/dist/src/schemas/mcpProjection.cjs +41 -41
  403. package/dist/src/schemas/mcpProjection.cjs.map +1 -1
  404. package/dist/src/schemas/mcpProjection.d.mts +31 -30
  405. package/dist/src/schemas/mcpProjection.d.mts.map +1 -1
  406. package/dist/src/schemas/mcpProjection.mjs +29 -29
  407. package/dist/src/schemas/mcpProjection.mjs.map +1 -1
  408. package/dist/src/schemas/mcpSession.cjs +23 -23
  409. package/dist/src/schemas/mcpSession.cjs.map +1 -1
  410. package/dist/src/schemas/mcpSession.d.mts +12 -12
  411. package/dist/src/schemas/mcpSession.d.mts.map +1 -1
  412. package/dist/src/schemas/mcpSession.mjs +18 -18
  413. package/dist/src/schemas/mcpSession.mjs.map +1 -1
  414. package/dist/src/schemas/mcpStatus.cjs +5 -5
  415. package/dist/src/schemas/mcpStatus.cjs.map +1 -1
  416. package/dist/src/schemas/mcpStatus.d.mts +4 -4
  417. package/dist/src/schemas/mcpStatus.d.mts.map +1 -1
  418. package/dist/src/schemas/mcpStatus.mjs +4 -4
  419. package/dist/src/schemas/mcpStatus.mjs.map +1 -1
  420. package/dist/src/schemas/mcpToolResolver.cjs +9 -9
  421. package/dist/src/schemas/mcpToolResolver.cjs.map +1 -1
  422. package/dist/src/schemas/mcpToolResolver.d.mts +7 -7
  423. package/dist/src/schemas/mcpToolResolver.d.mts.map +1 -1
  424. package/dist/src/schemas/mcpToolResolver.mjs +7 -7
  425. package/dist/src/schemas/mcpToolResolver.mjs.map +1 -1
  426. package/dist/src/schemas/narration.cjs +9 -9
  427. package/dist/src/schemas/narration.cjs.map +1 -1
  428. package/dist/src/schemas/narration.d.mts +5 -5
  429. package/dist/src/schemas/narration.d.mts.map +1 -1
  430. package/dist/src/schemas/narration.mjs +7 -7
  431. package/dist/src/schemas/narration.mjs.map +1 -1
  432. package/dist/src/schemas/notification.cjs +45 -45
  433. package/dist/src/schemas/notification.cjs.map +1 -1
  434. package/dist/src/schemas/notification.d.mts +22 -22
  435. package/dist/src/schemas/notification.d.mts.map +1 -1
  436. package/dist/src/schemas/notification.mjs +31 -31
  437. package/dist/src/schemas/notification.mjs.map +1 -1
  438. package/dist/src/schemas/packageApi.cjs +28 -28
  439. package/dist/src/schemas/packageApi.cjs.map +1 -1
  440. package/dist/src/schemas/packageApi.d.mts +91 -65
  441. package/dist/src/schemas/packageApi.d.mts.map +1 -1
  442. package/dist/src/schemas/packageApi.mjs +18 -18
  443. package/dist/src/schemas/packageApi.mjs.map +1 -1
  444. package/dist/src/schemas/platform.cjs +34 -0
  445. package/dist/src/schemas/platform.cjs.map +1 -0
  446. package/dist/src/schemas/platform.d.mts +75 -0
  447. package/dist/src/schemas/platform.d.mts.map +1 -0
  448. package/dist/src/schemas/platform.mjs +27 -0
  449. package/dist/src/schemas/platform.mjs.map +1 -0
  450. package/dist/src/schemas/pluginContributions.cjs.map +1 -1
  451. package/dist/src/schemas/pluginContributions.d.mts +12 -12
  452. package/dist/src/schemas/pluginContributions.d.mts.map +1 -1
  453. package/dist/src/schemas/pluginContributions.mjs.map +1 -1
  454. package/dist/src/schemas/pluginProtocol.cjs +24 -27
  455. package/dist/src/schemas/pluginProtocol.cjs.map +1 -1
  456. package/dist/src/schemas/pluginProtocol.d.mts +21 -21
  457. package/dist/src/schemas/pluginProtocol.d.mts.map +1 -1
  458. package/dist/src/schemas/pluginProtocol.mjs +18 -20
  459. package/dist/src/schemas/pluginProtocol.mjs.map +1 -1
  460. package/dist/src/schemas/profileIdentity.cjs +2 -2
  461. package/dist/src/schemas/profileIdentity.cjs.map +1 -1
  462. package/dist/src/schemas/profileIdentity.d.mts +1 -1
  463. package/dist/src/schemas/profileIdentity.mjs +2 -2
  464. package/dist/src/schemas/profileIdentity.mjs.map +1 -1
  465. package/dist/src/schemas/protocolChannelsContract.cjs +27 -0
  466. package/dist/src/schemas/protocolChannelsContract.cjs.map +1 -0
  467. package/dist/src/schemas/protocolChannelsContract.d.mts +37 -0
  468. package/dist/src/schemas/protocolChannelsContract.d.mts.map +1 -0
  469. package/dist/src/schemas/protocolChannelsContract.mjs +25 -0
  470. package/dist/src/schemas/protocolChannelsContract.mjs.map +1 -0
  471. package/dist/src/schemas/protocolContracts.cjs +168 -0
  472. package/dist/src/schemas/protocolContracts.cjs.map +1 -0
  473. package/dist/src/schemas/protocolContracts.d.mts +69 -0
  474. package/dist/src/schemas/protocolContracts.d.mts.map +1 -0
  475. package/dist/src/schemas/protocolContracts.mjs +164 -0
  476. package/dist/src/schemas/protocolContracts.mjs.map +1 -0
  477. package/dist/src/schemas/protocolHubContract.cjs +51 -0
  478. package/dist/src/schemas/protocolHubContract.cjs.map +1 -0
  479. package/dist/src/schemas/protocolHubContract.d.mts +218 -0
  480. package/dist/src/schemas/protocolHubContract.d.mts.map +1 -0
  481. package/dist/src/schemas/protocolHubContract.mjs +49 -0
  482. package/dist/src/schemas/protocolHubContract.mjs.map +1 -0
  483. package/dist/src/schemas/protocolSessionContract.cjs +22 -0
  484. package/dist/src/schemas/protocolSessionContract.cjs.map +1 -0
  485. package/dist/src/schemas/protocolSessionContract.d.mts +324 -0
  486. package/dist/src/schemas/protocolSessionContract.d.mts.map +1 -0
  487. package/dist/src/schemas/protocolSessionContract.mjs +22 -0
  488. package/dist/src/schemas/protocolSessionContract.mjs.map +1 -0
  489. package/dist/src/schemas/protocolThreadContract.cjs +21 -0
  490. package/dist/src/schemas/protocolThreadContract.cjs.map +1 -0
  491. package/dist/src/schemas/protocolThreadContract.d.mts +29 -0
  492. package/dist/src/schemas/protocolThreadContract.d.mts.map +1 -0
  493. package/dist/src/schemas/protocolThreadContract.mjs +20 -0
  494. package/dist/src/schemas/protocolThreadContract.mjs.map +1 -0
  495. package/dist/src/schemas/readiness.cjs +36 -36
  496. package/dist/src/schemas/readiness.cjs.map +1 -1
  497. package/dist/src/schemas/readiness.d.mts +37 -37
  498. package/dist/src/schemas/readiness.d.mts.map +1 -1
  499. package/dist/src/schemas/readiness.mjs +31 -31
  500. package/dist/src/schemas/readiness.mjs.map +1 -1
  501. package/dist/src/schemas/serverBundle.d.mts +5 -5
  502. package/dist/src/schemas/serverPlugin.cjs +103 -0
  503. package/dist/src/schemas/serverPlugin.cjs.map +1 -0
  504. package/dist/src/schemas/serverPlugin.d.mts +176 -0
  505. package/dist/src/schemas/serverPlugin.d.mts.map +1 -0
  506. package/dist/src/schemas/serverPlugin.mjs +95 -0
  507. package/dist/src/schemas/serverPlugin.mjs.map +1 -0
  508. package/dist/src/schemas/serverScope.cjs +37 -0
  509. package/dist/src/schemas/serverScope.cjs.map +1 -0
  510. package/dist/src/schemas/serverScope.d.mts +77 -0
  511. package/dist/src/schemas/serverScope.d.mts.map +1 -0
  512. package/dist/src/schemas/serverScope.mjs +33 -0
  513. package/dist/src/schemas/serverScope.mjs.map +1 -0
  514. package/dist/src/schemas/sessionApiContracts.cjs +320 -0
  515. package/dist/src/schemas/sessionApiContracts.cjs.map +1 -0
  516. package/dist/src/schemas/sessionApiContracts.mjs +318 -0
  517. package/dist/src/schemas/sessionApiContracts.mjs.map +1 -0
  518. package/dist/src/schemas/sessionProtocol.cjs +20 -13
  519. package/dist/src/schemas/sessionProtocol.cjs.map +1 -1
  520. package/dist/src/schemas/sessionProtocol.d.mts +37 -54
  521. package/dist/src/schemas/sessionProtocol.d.mts.map +1 -1
  522. package/dist/src/schemas/sessionProtocol.mjs +17 -8
  523. package/dist/src/schemas/sessionProtocol.mjs.map +1 -1
  524. package/dist/src/schemas/skills.cjs +16 -16
  525. package/dist/src/schemas/skills.cjs.map +1 -1
  526. package/dist/src/schemas/skills.d.mts +7 -7
  527. package/dist/src/schemas/skills.d.mts.map +1 -1
  528. package/dist/src/schemas/skills.mjs +12 -12
  529. package/dist/src/schemas/skills.mjs.map +1 -1
  530. package/dist/src/schemas/toolOverrides.cjs +9 -9
  531. package/dist/src/schemas/toolOverrides.cjs.map +1 -1
  532. package/dist/src/schemas/toolOverrides.d.mts +8 -8
  533. package/dist/src/schemas/toolOverrides.d.mts.map +1 -1
  534. package/dist/src/schemas/toolOverrides.mjs +7 -7
  535. package/dist/src/schemas/toolOverrides.mjs.map +1 -1
  536. package/dist/src/schemas/toolSurface.cjs +9 -9
  537. package/dist/src/schemas/toolSurface.cjs.map +1 -1
  538. package/dist/src/schemas/toolSurface.d.mts +13 -13
  539. package/dist/src/schemas/toolSurface.d.mts.map +1 -1
  540. package/dist/src/schemas/toolSurface.mjs +7 -7
  541. package/dist/src/schemas/toolSurface.mjs.map +1 -1
  542. package/dist/src/schemas/uiHub.cjs +9 -9
  543. package/dist/src/schemas/uiHub.cjs.map +1 -1
  544. package/dist/src/schemas/uiHub.d.mts +12 -12
  545. package/dist/src/schemas/uiHub.d.mts.map +1 -1
  546. package/dist/src/schemas/uiHub.mjs +7 -7
  547. package/dist/src/schemas/uiHub.mjs.map +1 -1
  548. package/dist/src/server/directHarnessRuntime.cjs +691 -775
  549. package/dist/src/server/directHarnessRuntime.cjs.map +1 -1
  550. package/dist/src/server/directHarnessRuntime.d.mts +5 -1
  551. package/dist/src/server/directHarnessRuntime.d.mts.map +1 -0
  552. package/dist/src/server/directHarnessRuntime.mjs +671 -754
  553. package/dist/src/server/directHarnessRuntime.mjs.map +1 -1
  554. package/dist/src/server/largeFrameLink.cjs +47 -0
  555. package/dist/src/server/largeFrameLink.cjs.map +1 -0
  556. package/dist/src/server/largeFrameLink.mjs +47 -0
  557. package/dist/src/server/largeFrameLink.mjs.map +1 -0
  558. package/dist/src/server/liveImport.cjs +1 -1
  559. package/dist/src/server/liveImport.cjs.map +1 -1
  560. package/dist/src/server/liveImport.d.mts +1 -1
  561. package/dist/src/server/liveImport.mjs +1 -1
  562. package/dist/src/server/liveImport.mjs.map +1 -1
  563. package/dist/src/server/mcpBundleLoader.cjs.map +1 -1
  564. package/dist/src/server/mcpBundleLoader.d.mts +6 -6
  565. package/dist/src/server/mcpBundleLoader.d.mts.map +1 -1
  566. package/dist/src/server/mcpBundleLoader.mjs.map +1 -1
  567. package/dist/src/server/serverPackages.cjs +60 -0
  568. package/dist/src/server/serverPackages.cjs.map +1 -0
  569. package/dist/src/server/serverPackages.d.mts +44 -0
  570. package/dist/src/server/serverPackages.d.mts.map +1 -0
  571. package/dist/src/server/serverPackages.mjs +59 -0
  572. package/dist/src/server/serverPackages.mjs.map +1 -0
  573. package/dist/src/server/serverScope.cjs +510 -0
  574. package/dist/src/server/serverScope.cjs.map +1 -0
  575. package/dist/src/server/serverScope.d.mts +123 -0
  576. package/dist/src/server/serverScope.d.mts.map +1 -0
  577. package/dist/src/server/serverScope.mjs +510 -0
  578. package/dist/src/server/serverScope.mjs.map +1 -0
  579. package/dist/src/server/sessionMcpHandler.cjs +3 -3
  580. package/dist/src/server/sessionMcpHandler.cjs.map +1 -1
  581. package/dist/src/server/sessionMcpHandler.mjs +4 -4
  582. package/dist/src/server/sessionMcpHandler.mjs.map +1 -1
  583. package/dist/src/server/sessionMcpRoutes.cjs +2 -1
  584. package/dist/src/server/sessionMcpRoutes.cjs.map +1 -1
  585. package/dist/src/server/sessionMcpRoutes.mjs +2 -1
  586. package/dist/src/server/sessionMcpRoutes.mjs.map +1 -1
  587. package/dist/src/server/threadJournals.cjs +38 -107
  588. package/dist/src/server/threadJournals.cjs.map +1 -1
  589. package/dist/src/server/threadJournals.mjs +38 -104
  590. package/dist/src/server/threadJournals.mjs.map +1 -1
  591. package/dist/src/services/apiSurfaceAssert/index.cjs +1 -1
  592. package/dist/src/services/apiSurfaceAssert/index.cjs.map +1 -1
  593. package/dist/src/services/apiSurfaceAssert/index.d.mts +6 -6
  594. package/dist/src/services/apiSurfaceAssert/index.mjs +1 -1
  595. package/dist/src/services/apiSurfaceAssert/index.mjs.map +1 -1
  596. package/dist/src/services/chatgptAuth/index.cjs +1 -220
  597. package/dist/src/services/chatgptAuth/index.cjs.map +1 -1
  598. package/dist/src/services/chatgptAuth/index.d.mts +0 -18
  599. package/dist/src/services/chatgptAuth/index.d.mts.map +1 -1
  600. package/dist/src/services/chatgptAuth/index.mjs +1 -217
  601. package/dist/src/services/chatgptAuth/index.mjs.map +1 -1
  602. package/dist/src/services/chatgptImages/index.cjs +1 -1
  603. package/dist/src/services/chatgptImages/index.cjs.map +1 -1
  604. package/dist/src/services/chatgptImages/index.mjs +1 -1
  605. package/dist/src/services/chatgptImages/index.mjs.map +1 -1
  606. package/dist/src/services/chatgptLogin/index.cjs +230 -0
  607. package/dist/src/services/chatgptLogin/index.cjs.map +1 -0
  608. package/dist/src/services/chatgptLogin/index.d.mts +21 -0
  609. package/dist/src/services/chatgptLogin/index.d.mts.map +1 -0
  610. package/dist/src/services/chatgptLogin/index.mjs +227 -0
  611. package/dist/src/services/chatgptLogin/index.mjs.map +1 -0
  612. package/dist/src/services/chatgptWebSearch/index.cjs +1 -1
  613. package/dist/src/services/chatgptWebSearch/index.cjs.map +1 -1
  614. package/dist/src/services/chatgptWebSearch/index.mjs +1 -1
  615. package/dist/src/services/chatgptWebSearch/index.mjs.map +1 -1
  616. package/dist/src/services/contextContributions/index.cjs +8 -8
  617. package/dist/src/services/contextContributions/index.cjs.map +1 -1
  618. package/dist/src/services/contextContributions/index.d.mts +3 -3
  619. package/dist/src/services/contextContributions/index.d.mts.map +1 -1
  620. package/dist/src/services/contextContributions/index.mjs +8 -8
  621. package/dist/src/services/contextContributions/index.mjs.map +1 -1
  622. package/dist/src/services/devProxyStore/devProxyRecords.cjs +59 -0
  623. package/dist/src/services/devProxyStore/devProxyRecords.cjs.map +1 -0
  624. package/dist/src/services/devProxyStore/devProxyRecords.mjs +56 -0
  625. package/dist/src/services/devProxyStore/devProxyRecords.mjs.map +1 -0
  626. package/dist/src/services/devProxyStore/index.cjs +7 -101
  627. package/dist/src/services/devProxyStore/index.cjs.map +1 -1
  628. package/dist/src/services/devProxyStore/index.mjs +7 -101
  629. package/dist/src/services/devProxyStore/index.mjs.map +1 -1
  630. package/dist/src/services/devProxyStore/sync.cjs +66 -0
  631. package/dist/src/services/devProxyStore/sync.cjs.map +1 -0
  632. package/dist/src/services/devProxyStore/sync.mjs +63 -0
  633. package/dist/src/services/devProxyStore/sync.mjs.map +1 -0
  634. package/dist/src/services/durableNavigation/docs.cjs +15 -0
  635. package/dist/src/services/durableNavigation/docs.cjs.map +1 -0
  636. package/dist/src/services/durableNavigation/docs.mjs +16 -0
  637. package/dist/src/services/durableNavigation/docs.mjs.map +1 -0
  638. package/dist/src/services/durableNavigation/index.cjs +3 -18
  639. package/dist/src/services/durableNavigation/index.cjs.map +1 -1
  640. package/dist/src/services/durableNavigation/index.mjs +2 -17
  641. package/dist/src/services/durableNavigation/index.mjs.map +1 -1
  642. package/dist/src/services/durableQueue/docs.cjs +12 -0
  643. package/dist/src/services/durableQueue/docs.cjs.map +1 -0
  644. package/dist/src/services/durableQueue/docs.mjs +13 -0
  645. package/dist/src/services/durableQueue/docs.mjs.map +1 -0
  646. package/dist/src/services/durableQueue/index.cjs +151 -0
  647. package/dist/src/services/durableQueue/index.cjs.map +1 -0
  648. package/dist/src/services/durableQueue/index.mjs +149 -0
  649. package/dist/src/services/durableQueue/index.mjs.map +1 -0
  650. package/dist/src/services/durableRequestReceipts/docs.cjs +11 -0
  651. package/dist/src/services/durableRequestReceipts/docs.cjs.map +1 -0
  652. package/dist/src/services/durableRequestReceipts/docs.mjs +12 -0
  653. package/dist/src/services/durableRequestReceipts/docs.mjs.map +1 -0
  654. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.cjs +10 -16
  655. package/dist/src/services/durableRequestReceipts/index.cjs.map +1 -0
  656. package/dist/src/services/durableRequestReceipts/index.d.mts +12 -0
  657. package/dist/src/services/durableRequestReceipts/index.d.mts.map +1 -0
  658. package/dist/src/services/{requestReceipts → durableRequestReceipts}/index.mjs +7 -13
  659. package/dist/src/services/durableRequestReceipts/index.mjs.map +1 -0
  660. package/dist/src/services/durableSession/docs.cjs +65 -0
  661. package/dist/src/services/durableSession/docs.cjs.map +1 -0
  662. package/dist/src/services/durableSession/docs.d.mts +17 -0
  663. package/dist/src/services/durableSession/docs.d.mts.map +1 -0
  664. package/dist/src/services/durableSession/docs.mjs +60 -0
  665. package/dist/src/services/durableSession/docs.mjs.map +1 -0
  666. package/dist/src/services/durableSession/index.cjs +21 -0
  667. package/dist/src/services/durableSession/index.cjs.map +1 -0
  668. package/dist/src/services/durableSession/index.d.mts +13 -0
  669. package/dist/src/services/durableSession/index.d.mts.map +1 -0
  670. package/dist/src/services/durableSession/index.mjs +20 -0
  671. package/dist/src/services/durableSession/index.mjs.map +1 -0
  672. package/dist/src/services/durableSubagents/docs.cjs +15 -0
  673. package/dist/src/services/durableSubagents/docs.cjs.map +1 -0
  674. package/dist/src/services/durableSubagents/docs.mjs +16 -0
  675. package/dist/src/services/durableSubagents/docs.mjs.map +1 -0
  676. package/dist/src/services/durableSubagents/extension.cjs +11 -0
  677. package/dist/src/services/durableSubagents/extension.cjs.map +1 -0
  678. package/dist/src/services/durableSubagents/extension.mjs +12 -0
  679. package/dist/src/services/durableSubagents/extension.mjs.map +1 -0
  680. package/dist/src/services/durableSubagents/index.cjs +95 -0
  681. package/dist/src/services/durableSubagents/index.cjs.map +1 -0
  682. package/dist/src/services/durableSubagents/index.mjs +90 -0
  683. package/dist/src/services/durableSubagents/index.mjs.map +1 -0
  684. package/dist/src/services/durableSubagents/tasks.cjs +25 -0
  685. package/dist/src/services/durableSubagents/tasks.cjs.map +1 -0
  686. package/dist/src/services/durableSubagents/tasks.mjs +26 -0
  687. package/dist/src/services/durableSubagents/tasks.mjs.map +1 -0
  688. package/dist/src/services/headlessClient/index.cjs +20 -13
  689. package/dist/src/services/headlessClient/index.cjs.map +1 -1
  690. package/dist/src/services/headlessClient/index.mjs +21 -14
  691. package/dist/src/services/headlessClient/index.mjs.map +1 -1
  692. package/dist/src/services/historyOwnership/type.d.mts +15 -0
  693. package/dist/src/services/historyOwnership/type.d.mts.map +1 -0
  694. package/dist/src/services/hubChannelHarness/index.cjs +2 -2
  695. package/dist/src/services/hubChannelHarness/index.cjs.map +1 -1
  696. package/dist/src/services/hubChannelHarness/index.d.mts +8 -8
  697. package/dist/src/services/hubChannelHarness/index.d.mts.map +1 -1
  698. package/dist/src/services/hubChannelHarness/index.mjs +2 -2
  699. package/dist/src/services/hubChannelHarness/index.mjs.map +1 -1
  700. package/dist/src/services/json/core.cjs +30 -0
  701. package/dist/src/services/json/core.cjs.map +1 -0
  702. package/dist/src/services/json/core.d.mts +21 -0
  703. package/dist/src/services/json/core.d.mts.map +1 -0
  704. package/dist/src/services/json/core.mjs +26 -0
  705. package/dist/src/services/json/core.mjs.map +1 -0
  706. package/dist/src/services/json/sync.cjs +48 -0
  707. package/dist/src/services/json/sync.cjs.map +1 -0
  708. package/dist/src/services/json/sync.d.mts +22 -0
  709. package/dist/src/services/json/sync.d.mts.map +1 -0
  710. package/dist/src/services/json/sync.mjs +43 -0
  711. package/dist/src/services/json/sync.mjs.map +1 -0
  712. package/dist/src/services/kernel/index.cjs +2 -2
  713. package/dist/src/services/kernel/index.cjs.map +1 -1
  714. package/dist/src/services/kernel/index.d.mts +3 -3
  715. package/dist/src/services/kernel/index.d.mts.map +1 -1
  716. package/dist/src/services/kernel/index.mjs +2 -2
  717. package/dist/src/services/kernel/index.mjs.map +1 -1
  718. package/dist/src/services/nativeChildTools/index.cjs +16 -0
  719. package/dist/src/services/nativeChildTools/index.cjs.map +1 -0
  720. package/dist/src/services/nativeChildTools/index.mjs +16 -0
  721. package/dist/src/services/nativeChildTools/index.mjs.map +1 -0
  722. package/dist/src/services/nodeHost/index.cjs +30 -0
  723. package/dist/src/services/nodeHost/index.cjs.map +1 -0
  724. package/dist/src/services/nodeHost/index.d.mts +16 -0
  725. package/dist/src/services/nodeHost/index.d.mts.map +1 -0
  726. package/dist/src/services/nodeHost/index.mjs +27 -0
  727. package/dist/src/services/nodeHost/index.mjs.map +1 -0
  728. package/dist/src/services/nodeModelDependencies/index.cjs +89 -0
  729. package/dist/src/services/nodeModelDependencies/index.cjs.map +1 -0
  730. package/dist/src/services/nodeModelDependencies/index.mjs +86 -0
  731. package/dist/src/services/nodeModelDependencies/index.mjs.map +1 -0
  732. package/dist/src/services/openSessionRegistry/index.cjs +6 -128
  733. package/dist/src/services/openSessionRegistry/index.cjs.map +1 -1
  734. package/dist/src/services/openSessionRegistry/index.d.mts +5 -36
  735. package/dist/src/services/openSessionRegistry/index.mjs +6 -128
  736. package/dist/src/services/openSessionRegistry/index.mjs.map +1 -1
  737. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs +87 -0
  738. package/dist/src/services/openSessionRegistry/openSessionRecords.cjs.map +1 -0
  739. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts +30 -0
  740. package/dist/src/services/openSessionRegistry/openSessionRecords.d.mts.map +1 -0
  741. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs +81 -0
  742. package/dist/src/services/openSessionRegistry/openSessionRecords.mjs.map +1 -0
  743. package/dist/src/services/openSessionRegistry/sync.cjs +71 -0
  744. package/dist/src/services/openSessionRegistry/sync.cjs.map +1 -0
  745. package/dist/src/services/openSessionRegistry/sync.d.mts +14 -0
  746. package/dist/src/services/openSessionRegistry/sync.d.mts.map +1 -0
  747. package/dist/src/services/openSessionRegistry/sync.mjs +68 -0
  748. package/dist/src/services/openSessionRegistry/sync.mjs.map +1 -0
  749. package/dist/src/services/packageApiHarness/index.cjs +1 -1
  750. package/dist/src/services/packageApiHarness/index.cjs.map +1 -1
  751. package/dist/src/services/packageApiHarness/index.d.mts +6 -6
  752. package/dist/src/services/packageApiHarness/index.d.mts.map +1 -1
  753. package/dist/src/services/packageApiHarness/index.mjs +2 -2
  754. package/dist/src/services/packageApiHarness/index.mjs.map +1 -1
  755. package/dist/src/services/piArgs/index.cjs +53 -0
  756. package/dist/src/services/piArgs/index.cjs.map +1 -0
  757. package/dist/src/services/piArgs/index.d.mts +6 -0
  758. package/dist/src/services/piArgs/index.d.mts.map +1 -0
  759. package/dist/src/services/piArgs/index.mjs +53 -0
  760. package/dist/src/services/piArgs/index.mjs.map +1 -0
  761. package/dist/src/services/piExtensionHost/index.cjs +47 -39
  762. package/dist/src/services/piExtensionHost/index.cjs.map +1 -1
  763. package/dist/src/services/piExtensionHost/index.d.mts +83 -0
  764. package/dist/src/services/piExtensionHost/index.d.mts.map +1 -0
  765. package/dist/src/services/piExtensionHost/index.mjs +47 -38
  766. package/dist/src/services/piExtensionHost/index.mjs.map +1 -1
  767. package/dist/src/services/piHelpTools/index.cjs +5 -5
  768. package/dist/src/services/piHelpTools/index.cjs.map +1 -1
  769. package/dist/src/services/piHelpTools/index.d.mts.map +1 -1
  770. package/dist/src/services/piHelpTools/index.mjs +7 -7
  771. package/dist/src/services/piHelpTools/index.mjs.map +1 -1
  772. package/dist/src/services/piMessages/index.cjs +106 -0
  773. package/dist/src/services/piMessages/index.cjs.map +1 -0
  774. package/dist/src/services/piMessages/index.mjs +105 -0
  775. package/dist/src/services/piMessages/index.mjs.map +1 -0
  776. package/dist/src/services/piSessionEntries/index.cjs +4 -4
  777. package/dist/src/services/piSessionEntries/index.cjs.map +1 -1
  778. package/dist/src/services/piSessionEntries/index.mjs +3 -3
  779. package/dist/src/services/piSessionEntries/index.mjs.map +1 -1
  780. package/dist/src/services/piSettings/core.cjs +308 -0
  781. package/dist/src/services/piSettings/core.cjs.map +1 -0
  782. package/dist/src/services/piSettings/core.d.mts +102 -0
  783. package/dist/src/services/piSettings/core.d.mts.map +1 -0
  784. package/dist/src/services/piSettings/core.mjs +276 -0
  785. package/dist/src/services/piSettings/core.mjs.map +1 -0
  786. package/dist/src/services/piSettings/sync.cjs +119 -0
  787. package/dist/src/services/piSettings/sync.cjs.map +1 -0
  788. package/dist/src/services/piSettings/sync.d.mts +44 -0
  789. package/dist/src/services/piSettings/sync.d.mts.map +1 -0
  790. package/dist/src/services/piSettings/sync.mjs +110 -0
  791. package/dist/src/services/piSettings/sync.mjs.map +1 -0
  792. package/dist/src/services/piSummary/index.cjs +7 -0
  793. package/dist/src/services/piSummary/index.cjs.map +1 -0
  794. package/dist/src/services/piSummary/index.mjs +7 -0
  795. package/dist/src/services/piSummary/index.mjs.map +1 -0
  796. package/dist/src/services/platformFiles/index.cjs +44 -0
  797. package/dist/src/services/platformFiles/index.cjs.map +1 -0
  798. package/dist/src/services/platformFiles/index.d.mts +16 -0
  799. package/dist/src/services/platformFiles/index.d.mts.map +1 -0
  800. package/dist/src/services/platformFiles/index.mjs +39 -0
  801. package/dist/src/services/platformFiles/index.mjs.map +1 -0
  802. package/dist/src/services/pluginLifecycle/index.cjs +19 -13
  803. package/dist/src/services/pluginLifecycle/index.cjs.map +1 -1
  804. package/dist/src/services/pluginLifecycle/index.d.mts +2 -0
  805. package/dist/src/services/pluginLifecycle/index.d.mts.map +1 -1
  806. package/dist/src/services/pluginLifecycle/index.mjs +19 -14
  807. package/dist/src/services/pluginLifecycle/index.mjs.map +1 -1
  808. package/dist/src/services/poPackage/core.cjs +73 -0
  809. package/dist/src/services/poPackage/core.cjs.map +1 -0
  810. package/dist/src/services/poPackage/core.d.mts +32 -0
  811. package/dist/src/services/poPackage/core.d.mts.map +1 -0
  812. package/dist/src/services/poPackage/core.mjs +66 -0
  813. package/dist/src/services/poPackage/core.mjs.map +1 -0
  814. package/dist/src/services/poPackage/sync.cjs +55 -0
  815. package/dist/src/services/poPackage/sync.cjs.map +1 -0
  816. package/dist/src/services/poPackage/sync.d.mts +21 -0
  817. package/dist/src/services/poPackage/sync.d.mts.map +1 -0
  818. package/dist/src/services/poPackage/sync.mjs +50 -0
  819. package/dist/src/services/poPackage/sync.mjs.map +1 -0
  820. package/dist/src/services/providerAuth/index.cjs +11 -7
  821. package/dist/src/services/providerAuth/index.cjs.map +1 -1
  822. package/dist/src/services/providerAuth/index.mjs +11 -7
  823. package/dist/src/services/providerAuth/index.mjs.map +1 -1
  824. package/dist/src/services/publicFileShares/index.cjs +1 -1
  825. package/dist/src/services/publicFileShares/index.cjs.map +1 -1
  826. package/dist/src/services/publicFileShares/index.d.mts +2 -2
  827. package/dist/src/services/publicFileShares/index.mjs +2 -2
  828. package/dist/src/services/publicFileShares/index.mjs.map +1 -1
  829. package/dist/src/services/remoteAccess/index.d.mts +1 -0
  830. package/dist/src/services/remoteAccess/index.d.mts.map +1 -1
  831. package/dist/src/services/remoteAccessStore/index.cjs +8 -190
  832. package/dist/src/services/remoteAccessStore/index.cjs.map +1 -1
  833. package/dist/src/services/remoteAccessStore/index.d.mts +2 -0
  834. package/dist/src/services/remoteAccessStore/index.mjs +7 -187
  835. package/dist/src/services/remoteAccessStore/index.mjs.map +1 -1
  836. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs +98 -0
  837. package/dist/src/services/remoteAccessStore/remoteAccessRecords.cjs.map +1 -0
  838. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs +88 -0
  839. package/dist/src/services/remoteAccessStore/remoteAccessRecords.mjs.map +1 -0
  840. package/dist/src/services/remoteAccessStore/sync.cjs +111 -0
  841. package/dist/src/services/remoteAccessStore/sync.cjs.map +1 -0
  842. package/dist/src/services/remoteAccessStore/sync.mjs +108 -0
  843. package/dist/src/services/remoteAccessStore/sync.mjs.map +1 -0
  844. package/dist/src/services/runtimeIdentity/sync.cjs +23 -0
  845. package/dist/src/services/runtimeIdentity/sync.cjs.map +1 -0
  846. package/dist/src/services/runtimeIdentity/sync.d.mts +9 -0
  847. package/dist/src/services/runtimeIdentity/sync.d.mts.map +1 -0
  848. package/dist/src/services/runtimeIdentity/sync.mjs +20 -0
  849. package/dist/src/services/runtimeIdentity/sync.mjs.map +1 -0
  850. package/dist/src/services/serialRunner/index.cjs +25 -0
  851. package/dist/src/services/serialRunner/index.cjs.map +1 -0
  852. package/dist/src/services/serialRunner/index.d.mts +10 -0
  853. package/dist/src/services/serialRunner/index.d.mts.map +1 -0
  854. package/dist/src/services/serialRunner/index.mjs +25 -0
  855. package/dist/src/services/serialRunner/index.mjs.map +1 -0
  856. package/dist/src/services/{serverFacet → serverHost}/index.cjs +5 -5
  857. package/dist/src/services/serverHost/index.cjs.map +1 -0
  858. package/dist/src/services/serverHost/index.d.mts +31 -0
  859. package/dist/src/services/serverHost/index.d.mts.map +1 -0
  860. package/dist/src/services/{serverFacet → serverHost}/index.mjs +5 -5
  861. package/dist/src/services/serverHost/index.mjs.map +1 -0
  862. package/dist/src/services/sessionAttachments/index.cjs +4 -3
  863. package/dist/src/services/sessionAttachments/index.cjs.map +1 -1
  864. package/dist/src/services/sessionAttachments/index.d.mts +1 -6
  865. package/dist/src/services/sessionAttachments/index.d.mts.map +1 -1
  866. package/dist/src/services/sessionAttachments/index.mjs +3 -2
  867. package/dist/src/services/sessionAttachments/index.mjs.map +1 -1
  868. package/dist/src/services/sessionAttachments/type.d.mts +9 -0
  869. package/dist/src/services/sessionAttachments/type.d.mts.map +1 -0
  870. package/dist/src/services/sessionFiles/index.cjs +96 -0
  871. package/dist/src/services/sessionFiles/index.cjs.map +1 -0
  872. package/dist/src/services/sessionFiles/index.d.mts +33 -0
  873. package/dist/src/services/sessionFiles/index.d.mts.map +1 -0
  874. package/dist/src/services/sessionFiles/index.mjs +89 -0
  875. package/dist/src/services/sessionFiles/index.mjs.map +1 -0
  876. package/dist/src/services/sessionFiles/sessionDirectory.cjs +66 -0
  877. package/dist/src/services/sessionFiles/sessionDirectory.cjs.map +1 -0
  878. package/dist/src/services/sessionFiles/sessionDirectory.mjs +62 -0
  879. package/dist/src/services/sessionFiles/sessionDirectory.mjs.map +1 -0
  880. package/dist/src/services/sessionGitStatus/index.cjs +31 -33
  881. package/dist/src/services/sessionGitStatus/index.cjs.map +1 -1
  882. package/dist/src/services/sessionGitStatus/index.mjs +31 -33
  883. package/dist/src/services/sessionGitStatus/index.mjs.map +1 -1
  884. package/dist/src/services/sessionPresentation/index.cjs +3 -27
  885. package/dist/src/services/sessionPresentation/index.cjs.map +1 -1
  886. package/dist/src/services/sessionPresentation/index.mjs +3 -27
  887. package/dist/src/services/sessionPresentation/index.mjs.map +1 -1
  888. package/dist/src/services/skillPrompt/index.cjs +11 -0
  889. package/dist/src/services/skillPrompt/index.cjs.map +1 -0
  890. package/dist/src/services/skillPrompt/index.mjs +11 -0
  891. package/dist/src/services/skillPrompt/index.mjs.map +1 -0
  892. package/dist/src/services/sqliteSessionHistory/index.cjs +44 -30
  893. package/dist/src/services/sqliteSessionHistory/index.cjs.map +1 -1
  894. package/dist/src/services/sqliteSessionHistory/index.d.mts +7 -4
  895. package/dist/src/services/sqliteSessionHistory/index.d.mts.map +1 -1
  896. package/dist/src/services/sqliteSessionHistory/index.mjs +43 -28
  897. package/dist/src/services/sqliteSessionHistory/index.mjs.map +1 -1
  898. package/dist/src/services/sqliteTranscriptReader/index.cjs +21 -45
  899. package/dist/src/services/sqliteTranscriptReader/index.cjs.map +1 -1
  900. package/dist/src/services/sqliteTranscriptReader/index.d.mts +3 -2
  901. package/dist/src/services/sqliteTranscriptReader/index.d.mts.map +1 -1
  902. package/dist/src/services/sqliteTranscriptReader/index.mjs +16 -38
  903. package/dist/src/services/sqliteTranscriptReader/index.mjs.map +1 -1
  904. package/dist/src/services/testMode/index.cjs +162 -0
  905. package/dist/src/services/testMode/index.cjs.map +1 -0
  906. package/dist/src/services/testMode/index.d.mts +17 -0
  907. package/dist/src/services/testMode/index.d.mts.map +1 -0
  908. package/dist/src/services/testMode/index.mjs +155 -0
  909. package/dist/src/services/testMode/index.mjs.map +1 -0
  910. package/dist/src/services/toolOverrides/index.cjs +6 -6
  911. package/dist/src/services/toolOverrides/index.cjs.map +1 -1
  912. package/dist/src/services/toolOverrides/index.d.mts +3 -3
  913. package/dist/src/services/toolOverrides/index.d.mts.map +1 -1
  914. package/dist/src/services/toolOverrides/index.mjs +6 -6
  915. package/dist/src/services/toolOverrides/index.mjs.map +1 -1
  916. package/dist/src/services/toolPrompt/index.d.mts +17 -0
  917. package/dist/src/services/toolPrompt/index.d.mts.map +1 -0
  918. package/dist/src/services/toolSurface/index.cjs +3 -3
  919. package/dist/src/services/toolSurface/index.cjs.map +1 -1
  920. package/dist/src/services/toolSurface/index.d.mts +3 -3
  921. package/dist/src/services/toolSurface/index.d.mts.map +1 -1
  922. package/dist/src/services/toolSurface/index.mjs +4 -4
  923. package/dist/src/services/toolSurface/index.mjs.map +1 -1
  924. package/dist/src/services/traceContext/index.cjs.map +1 -1
  925. package/dist/src/services/traceContext/index.mjs.map +1 -1
  926. package/dist/src/services/transcriptPages/index.cjs +159 -33
  927. package/dist/src/services/transcriptPages/index.cjs.map +1 -1
  928. package/dist/src/services/transcriptPages/index.mjs +158 -34
  929. package/dist/src/services/transcriptPages/index.mjs.map +1 -1
  930. package/dist/src/services/voiceToolsContract/index.cjs +7 -7
  931. package/dist/src/services/voiceToolsContract/index.cjs.map +1 -1
  932. package/dist/src/services/voiceToolsContract/index.d.mts +4 -4
  933. package/dist/src/services/voiceToolsContract/index.d.mts.map +1 -1
  934. package/dist/src/services/voiceToolsContract/index.mjs +7 -7
  935. package/dist/src/services/voiceToolsContract/index.mjs.map +1 -1
  936. package/dist/src/services/workspaceRegistry/index.cjs +9 -179
  937. package/dist/src/services/workspaceRegistry/index.cjs.map +1 -1
  938. package/dist/src/services/workspaceRegistry/index.d.mts +5 -47
  939. package/dist/src/services/workspaceRegistry/index.mjs +7 -176
  940. package/dist/src/services/workspaceRegistry/index.mjs.map +1 -1
  941. package/dist/src/services/workspaceRegistry/sync.cjs +148 -0
  942. package/dist/src/services/workspaceRegistry/sync.cjs.map +1 -0
  943. package/dist/src/services/workspaceRegistry/sync.d.mts +34 -0
  944. package/dist/src/services/workspaceRegistry/sync.d.mts.map +1 -0
  945. package/dist/src/services/workspaceRegistry/sync.mjs +140 -0
  946. package/dist/src/services/workspaceRegistry/sync.mjs.map +1 -0
  947. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs +114 -0
  948. package/dist/src/services/workspaceRegistry/workspaceRecords.cjs.map +1 -0
  949. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts +31 -0
  950. package/dist/src/services/workspaceRegistry/workspaceRecords.d.mts.map +1 -0
  951. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs +101 -0
  952. package/dist/src/services/workspaceRegistry/workspaceRecords.mjs.map +1 -0
  953. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs +339 -202
  954. package/dist/src/systems/child/adapters/headlessChildSessionService.cjs.map +1 -1
  955. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts +16 -21
  956. package/dist/src/systems/child/adapters/headlessChildSessionService.d.mts.map +1 -1
  957. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs +329 -191
  958. package/dist/src/systems/child/adapters/headlessChildSessionService.mjs.map +1 -1
  959. package/dist/src/systems/child/services/childSession/index.cjs +94 -20
  960. package/dist/src/systems/child/services/childSession/index.cjs.map +1 -1
  961. package/dist/src/systems/child/services/childSession/index.d.mts +12 -3
  962. package/dist/src/systems/child/services/childSession/index.d.mts.map +1 -1
  963. package/dist/src/systems/child/services/childSession/index.mjs +94 -20
  964. package/dist/src/systems/child/services/childSession/index.mjs.map +1 -1
  965. package/dist/src/systems/child/types/childSession.cjs +33 -13
  966. package/dist/src/systems/child/types/childSession.cjs.map +1 -1
  967. package/dist/src/systems/child/types/childSession.d.mts +143 -80
  968. package/dist/src/systems/child/types/childSession.d.mts.map +1 -1
  969. package/dist/src/systems/child/types/childSession.mjs +24 -9
  970. package/dist/src/systems/child/types/childSession.mjs.map +1 -1
  971. package/dist/src/systems/main/adapters/headlessHost.cjs +30 -27
  972. package/dist/src/systems/main/adapters/headlessHost.cjs.map +1 -1
  973. package/dist/src/systems/main/adapters/headlessHost.d.mts +22 -22
  974. package/dist/src/systems/main/adapters/headlessHost.d.mts.map +1 -1
  975. package/dist/src/systems/main/adapters/headlessHost.mjs +33 -30
  976. package/dist/src/systems/main/adapters/headlessHost.mjs.map +1 -1
  977. package/dist/src/systems/main/adapters/headlessSessionHost.cjs +248 -229
  978. package/dist/src/systems/main/adapters/headlessSessionHost.cjs.map +1 -1
  979. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts +4 -5
  980. package/dist/src/systems/main/adapters/headlessSessionHost.d.mts.map +1 -1
  981. package/dist/src/systems/main/adapters/headlessSessionHost.mjs +239 -219
  982. package/dist/src/systems/main/adapters/headlessSessionHost.mjs.map +1 -1
  983. package/dist/src/systems/main/types/headlessHost.d.mts +16 -14
  984. package/dist/src/systems/main/types/headlessHost.d.mts.map +1 -1
  985. package/dist/src/testing/pi/testHost.cjs +2 -2
  986. package/dist/src/testing/pi/testHost.cjs.map +1 -1
  987. package/dist/src/testing/pi/testHost.d.mts +3 -2
  988. package/dist/src/testing/pi/testHost.mjs +3 -3
  989. package/dist/src/testing/pi/testHost.mjs.map +1 -1
  990. package/dist/src/types/config.d.mts +1 -1
  991. package/dist/src/types/config.d.mts.map +1 -1
  992. package/dist/src/types/kernel.d.mts +3 -3
  993. package/dist/src/types/server/directHarnessRuntime.d.mts +54 -25
  994. package/dist/src/types/server/directHarnessRuntime.d.mts.map +1 -1
  995. package/dist/src/types/server/sessionToolSurface.d.mts +9 -9
  996. package/dist/src/web/services/apiClient/index.d.mts +1 -0
  997. package/dist/src/web/services/apiPaths/index.cjs.map +1 -1
  998. package/dist/src/web/services/apiPaths/index.d.mts +1 -1
  999. package/dist/src/web/services/apiPaths/index.mjs.map +1 -1
  1000. package/dist/src/web/services/mcpWidget.cjs.map +1 -1
  1001. package/dist/src/web/services/mcpWidget.d.mts +2 -2
  1002. package/dist/src/web/services/mcpWidget.d.mts.map +1 -1
  1003. package/dist/src/web/services/mcpWidget.mjs.map +1 -1
  1004. package/dist/src/web/services/testing/templateRail.cjs +3 -0
  1005. package/dist/src/web/services/testing/templateRail.cjs.map +1 -1
  1006. package/dist/src/web/services/testing/templateRail.mjs +3 -0
  1007. package/dist/src/web/services/testing/templateRail.mjs.map +1 -1
  1008. package/dist/src/web/types/mcpWidget.d.mts +1 -1
  1009. package/dist/src/web/types/nativeTemplate.d.mts +1 -1
  1010. package/dist/src/web/types/nativeTemplate.d.mts.map +1 -1
  1011. package/dist/src/web/types/template.d.mts +8 -0
  1012. package/dist/src/web/types/template.d.mts.map +1 -1
  1013. package/dist/src/web/types/webPlugin.d.mts +17 -5
  1014. package/dist/src/web/types/webPlugin.d.mts.map +1 -1
  1015. package/dist/testMode.cjs +4 -0
  1016. package/dist/testMode.d.mts +2 -0
  1017. package/dist/testMode.mjs +1 -0
  1018. package/dist/testing.cjs +1 -1
  1019. package/dist/testing.d.mts +2 -2
  1020. package/dist/testing.mjs +2 -2
  1021. package/dist/toolInventory.cjs.map +1 -1
  1022. package/dist/toolInventory.mjs.map +1 -1
  1023. package/dist/toolNames.mjs +1 -2
  1024. package/dist/toolOverrides.cjs +4 -4
  1025. package/dist/toolOverrides.d.mts +3 -3
  1026. package/dist/toolOverrides.mjs +3 -3
  1027. package/dist/toolSurface.cjs +4 -4
  1028. package/dist/toolSurface.d.mts +3 -3
  1029. package/dist/toolSurface.mjs +3 -3
  1030. package/dist/transition.cjs +3 -3
  1031. package/dist/transition.d.cjs +3 -3
  1032. package/dist/transition.d.mts +2 -2
  1033. package/dist/transition.mjs +1 -2
  1034. package/dist/transitionClassifier.cjs.map +1 -1
  1035. package/dist/transitionClassifier.d.mts +2 -2
  1036. package/dist/transitionClassifier.d.mts.map +1 -1
  1037. package/dist/transitionClassifier.mjs.map +1 -1
  1038. package/dist/transitionCoordinator.cjs +3 -3
  1039. package/dist/transitionCoordinator.cjs.map +1 -1
  1040. package/dist/transitionCoordinator.d.mts +4 -4
  1041. package/dist/transitionCoordinator.d.mts.map +1 -1
  1042. package/dist/transitionCoordinator.mjs +3 -3
  1043. package/dist/transitionCoordinator.mjs.map +1 -1
  1044. package/dist/typesContextApi.d.mts +2 -1
  1045. package/dist/typesContextApi.d.mts.map +1 -1
  1046. package/dist/uiHub.cjs +3 -3
  1047. package/dist/uiHub.d.mts +2 -2
  1048. package/dist/uiHub.mjs +1 -2
  1049. package/dist/voiceTools.cjs +5 -5
  1050. package/dist/voiceTools.d.mts +3 -3
  1051. package/dist/voiceTools.mjs +3 -3
  1052. package/dist/web.cjs +8 -0
  1053. package/dist/web.d.mts +3 -2
  1054. package/dist/web.mjs +2 -1
  1055. package/dist/webCompositions.cjs.map +1 -1
  1056. package/dist/webCompositions.d.mts +7 -7
  1057. package/dist/webCompositions.d.mts.map +1 -1
  1058. package/dist/webCompositions.mjs.map +1 -1
  1059. package/licenses/Codex-Apache-2.0.txt +201 -0
  1060. package/package.json +58 -53
  1061. package/dist/doomPackage.cjs +0 -61
  1062. package/dist/doomPackage.cjs.map +0 -1
  1063. package/dist/doomPackage.d.mts +0 -17
  1064. package/dist/doomPackage.d.mts.map +0 -1
  1065. package/dist/doomPackage.mjs +0 -54
  1066. package/dist/doomPackage.mjs.map +0 -1
  1067. package/dist/jsonlSessionRepo.cjs +0 -44
  1068. package/dist/jsonlSessionRepo.cjs.map +0 -1
  1069. package/dist/jsonlSessionRepo.d.mts +0 -7
  1070. package/dist/jsonlSessionRepo.d.mts.map +0 -1
  1071. package/dist/jsonlSessionRepo.mjs +0 -42
  1072. package/dist/jsonlSessionRepo.mjs.map +0 -1
  1073. package/dist/runtimeJson.cjs.map +0 -1
  1074. package/dist/runtimeJson.d.mts.map +0 -1
  1075. package/dist/runtimeJson.mjs.map +0 -1
  1076. package/dist/runtimePiSettings.cjs.map +0 -1
  1077. package/dist/runtimePiSettings.d.mts.map +0 -1
  1078. package/dist/runtimePiSettings.mjs.map +0 -1
  1079. package/dist/serverFacet.cjs +0 -34
  1080. package/dist/serverFacet.d.mts +0 -10
  1081. package/dist/serverFacet.mjs +0 -9
  1082. package/dist/src/pi/piWebSocketListener.cjs +0 -115
  1083. package/dist/src/pi/piWebSocketListener.cjs.map +0 -1
  1084. package/dist/src/pi/piWebSocketListener.mjs +0 -115
  1085. package/dist/src/pi/piWebSocketListener.mjs.map +0 -1
  1086. package/dist/src/schemas/serverFacet.cjs +0 -111
  1087. package/dist/src/schemas/serverFacet.cjs.map +0 -1
  1088. package/dist/src/schemas/serverFacet.d.mts +0 -152
  1089. package/dist/src/schemas/serverFacet.d.mts.map +0 -1
  1090. package/dist/src/schemas/serverFacet.mjs +0 -101
  1091. package/dist/src/schemas/serverFacet.mjs.map +0 -1
  1092. package/dist/src/schemas/sessionUpdates.d.mts +0 -34
  1093. package/dist/src/schemas/sessionUpdates.d.mts.map +0 -1
  1094. package/dist/src/server/headlessProtocol.cjs +0 -382
  1095. package/dist/src/server/headlessProtocol.cjs.map +0 -1
  1096. package/dist/src/server/headlessProtocol.mjs +0 -382
  1097. package/dist/src/server/headlessProtocol.mjs.map +0 -1
  1098. package/dist/src/server/nativeChildTranscriptReader.cjs +0 -20
  1099. package/dist/src/server/nativeChildTranscriptReader.cjs.map +0 -1
  1100. package/dist/src/server/nativeChildTranscriptReader.mjs +0 -18
  1101. package/dist/src/server/nativeChildTranscriptReader.mjs.map +0 -1
  1102. package/dist/src/server/serverFacetLoader.cjs +0 -214
  1103. package/dist/src/server/serverFacetLoader.cjs.map +0 -1
  1104. package/dist/src/server/serverFacetLoader.d.mts +0 -72
  1105. package/dist/src/server/serverFacetLoader.d.mts.map +0 -1
  1106. package/dist/src/server/serverFacetLoader.mjs +0 -212
  1107. package/dist/src/server/serverFacetLoader.mjs.map +0 -1
  1108. package/dist/src/services/acpSessionUpdates/index.cjs +0 -129
  1109. package/dist/src/services/acpSessionUpdates/index.cjs.map +0 -1
  1110. package/dist/src/services/acpSessionUpdates/index.mjs +0 -129
  1111. package/dist/src/services/acpSessionUpdates/index.mjs.map +0 -1
  1112. package/dist/src/services/historyImport/index.cjs +0 -8
  1113. package/dist/src/services/historyImport/index.cjs.map +0 -1
  1114. package/dist/src/services/historyImport/index.d.mts +0 -68
  1115. package/dist/src/services/historyImport/index.d.mts.map +0 -1
  1116. package/dist/src/services/historyImport/index.mjs +0 -8
  1117. package/dist/src/services/historyImport/index.mjs.map +0 -1
  1118. package/dist/src/services/openSessionRegistry/index.d.mts.map +0 -1
  1119. package/dist/src/services/requestReceipts/index.cjs.map +0 -1
  1120. package/dist/src/services/requestReceipts/index.d.mts +0 -11
  1121. package/dist/src/services/requestReceipts/index.d.mts.map +0 -1
  1122. package/dist/src/services/requestReceipts/index.mjs.map +0 -1
  1123. package/dist/src/services/rpcTranscript/index.cjs +0 -633
  1124. package/dist/src/services/rpcTranscript/index.cjs.map +0 -1
  1125. package/dist/src/services/rpcTranscript/index.d.mts +0 -50
  1126. package/dist/src/services/rpcTranscript/index.d.mts.map +0 -1
  1127. package/dist/src/services/rpcTranscript/index.mjs +0 -632
  1128. package/dist/src/services/rpcTranscript/index.mjs.map +0 -1
  1129. package/dist/src/services/serverFacet/index.cjs.map +0 -1
  1130. package/dist/src/services/serverFacet/index.d.mts +0 -31
  1131. package/dist/src/services/serverFacet/index.d.mts.map +0 -1
  1132. package/dist/src/services/serverFacet/index.mjs.map +0 -1
  1133. package/dist/src/services/workspaceRegistry/index.d.mts.map +0 -1
  1134. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs +0 -28
  1135. package/dist/src/systems/child/adapters/nativeChildRuntimes.cjs.map +0 -1
  1136. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs +0 -25
  1137. package/dist/src/systems/child/adapters/nativeChildRuntimes.mjs.map +0 -1
  1138. package/dist/terminalPiChildSessionService.cjs +0 -324
  1139. package/dist/terminalPiChildSessionService.cjs.map +0 -1
  1140. package/dist/terminalPiChildSessionService.d.mts +0 -46
  1141. package/dist/terminalPiChildSessionService.d.mts.map +0 -1
  1142. package/dist/terminalPiChildSessionService.mjs +0 -318
  1143. package/dist/terminalPiChildSessionService.mjs.map +0 -1
  1144. package/dist/v3Export.cjs +0 -10
  1145. package/dist/v3Export.cjs.map +0 -1
  1146. package/dist/v3Export.d.mts +0 -35
  1147. package/dist/v3Export.d.mts.map +0 -1
  1148. package/dist/v3Export.mjs +0 -9
  1149. package/dist/v3Export.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"headlessHost.cjs","names":["Service","createDoomKernel","DOOM_HEADLESS_HOST_SERVICE","isDoomHeadlessToolModelVisible","readDoomMcpStatus","formatSkillsForSystemPrompt","isDoomHeadlessPromptAdmissionError","readDoomHeadlessOwner"],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"sourcesContent":["import { Context, Service } from '@deepseek-ai/cordis';\nimport type { TSchema } from 'typebox';\n\nimport {\n DOOM_HEADLESS_HOST_SERVICE,\n DOOM_LOAD_SKILL_TOOL,\n readDoomHeadlessOwner,\n isDoomHeadlessPromptAdmissionError,\n type DoomHeadlessActivity,\n type DoomHeadlessCommand,\n type DoomHeadlessEventName,\n type DoomHeadlessExecutionContext,\n type DoomHeadlessHook,\n type DoomHeadlessHostService,\n isDoomHeadlessToolModelVisible,\n type DoomHeadlessRegistration,\n type DoomHeadlessResource,\n type DoomHeadlessSelection,\n type DoomHeadlessSelectionChange,\n type DoomHeadlessTool,\n type DoomHeadlessCondition,\n type DoomHeadlessToolRestriction,\n} from '../../../exports/headless';\nimport { createDoomKernel } from '../../../exports/kernel';\nimport { readDoomMcpStatus } from '../../../exports/mcpStatus';\nimport type { DoomServerBundleEntry } from '../../../exports/serverFacet';\nimport type { PackageAttribution } from '../../../services/contextProjection';\nimport type {\n ContextConditionalAttribution,\n ContextToolInventory,\n ContextToolSource,\n} from '../../../services/contextProjection';\nimport { formatSkillsForSystemPrompt } from '../../../services/piExtensionHost';\nimport type { CountTokens } from '../../../services/toolInventory';\nimport type {\n HeadlessContextInventory,\n HeadlessHostOptions,\n HeadlessSelectionStatus,\n ResolvedHeadlessResource,\n} from '../types/headlessHost';\n\ntype Owned<T> = { source: string; value: T };\ntype StopActivity = () => void | Promise<void>;\n\nfunction sameStrings(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameValues(left: readonly unknown[], right: readonly unknown[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameSelection(left: DoomHeadlessSelection, right: DoomHeadlessSelection): boolean {\n return (\n left.majorMode === right.majorMode &&\n left.profile === right.profile &&\n sameStrings(left.activeLayers, right.activeLayers) &&\n sameStrings(left.domains, right.domains) &&\n JSON.stringify(left.state ?? {}) === JSON.stringify(right.state ?? {})\n );\n}\n\n/**\n * Maps one typed headless resource to the exact skill shape installed in AgentHarness.\n *\n * Prefers the resource's own `description` and `path`. The fallbacks below are what\n * every skill used to get, and they are only good enough for explicit invocation,\n * which matches on name: `doom-headless://` is not a path any tool can open, and\n * \"Headless skill from <source>\" gives the model nothing to select on. A skill is\n * only advertised in the prompt once it carries a real path.\n */\nexport function headlessHarnessSkill(resource: ResolvedHeadlessResource) {\n return {\n name: resource.name,\n description: resource.description ?? `Headless skill from ${resource.source}`,\n content: resource.text,\n filePath: resource.path ?? `doom-headless://${resource.source}/${resource.name}`,\n };\n}\n\nfunction escapeXml(value: string): string {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;');\n}\n\n/**\n * The load tool's description with the session's skills appended, so the agent sees what it can\n * load where it decides to call the tool. Rebuilt whenever the applied skills change.\n */\nexport function describeLoadSkillTool(base: string, skills: readonly ResolvedHeadlessResource[]): string {\n const listed = skills.filter(\n (skill, index, all) => skill.kind === 'skill' && all.findIndex((entry) => entry.name === skill.name) === index,\n );\n if (listed.length === 0) return base;\n return [\n base,\n '',\n '<available_skills>',\n ...listed.flatMap((skill) => [\n ' <skill>',\n ` <name>${escapeXml(skill.name)}</name>`,\n ` <description>${escapeXml(headlessHarnessSkill(skill).description)}</description>`,\n ' </skill>',\n ]),\n '</available_skills>',\n ].join('\\n');\n}\n\n/** Retains facets and their state; only kernel-computed active contributions change. */\nexport class HeadlessHost extends Service<DoomHeadlessHostService> implements DoomHeadlessHostService {\n private readonly kernel = createDoomKernel();\n private readonly selectionListeners = new Set<(selection: DoomHeadlessSelection) => void | Promise<void>>();\n private restrictions: readonly DoomHeadlessToolRestriction[] = [];\n private restrictionsChanged = false;\n private contributionsChanged = false;\n private readonly options: HeadlessHostOptions;\n private readonly selectionOverrides: Set<string>;\n private applied: DoomHeadlessSelection;\n private requested: DoomHeadlessSelection;\n private applying: DoomHeadlessSelection;\n private refreshing = false;\n private requestedRevision = 0;\n private appliedRevision = 0;\n private recoveryRevision = 0;\n private ready = false;\n private disposed = false;\n private failure: unknown;\n private tail: Promise<void> = Promise.resolve();\n private activeSources = new Set<string>();\n private availableSources = new Set<string>();\n private tools = new Map<string, Owned<DoomHeadlessTool>>();\n private resources: readonly Owned<DoomHeadlessResource>[] = [];\n private resolvedResources: readonly ResolvedHeadlessResource[] = [];\n private commands = new Map<string, Owned<DoomHeadlessCommand>>();\n private hooks: readonly Owned<DoomHeadlessHook>[] = [];\n private readonly activities = new Map<Owned<DoomHeadlessActivity>, StopActivity>();\n\n constructor(context: Context, options: HeadlessHostOptions) {\n super(context, DOOM_HEADLESS_HOST_SERVICE);\n this.options = options;\n this.selectionOverrides = new Set(options.selectionOverrides);\n this.applied = structuredClone(options.selection);\n this.requested = this.applied;\n this.applying = this.applied;\n context.effect(() => () => this.close(), 'headless host lifetime');\n this.kernel.defineSlot<Owned<DoomHeadlessToolRestriction>>('restrictions', (entries) => {\n this.restrictionsChanged = true;\n this.restrictions = entries.map((entry) => entry.value).filter((restriction) => this.matches(restriction.when));\n });\n this.kernel.defineSlot<Owned<DoomHeadlessTool>>('tools', async (entries) => {\n const next = new Map<string, Owned<DoomHeadlessTool>>();\n for (const entry of this.selected(entries)) {\n if (!this.allowsTool(entry.value.name)) continue;\n if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n }\n const tools = [...next.values()].map((entry): DoomHeadlessTool => ({\n ...entry.value,\n execute: async (id, parameters, signal, onUpdate) => {\n this.assertReady();\n if (this.tools.get(entry.value.name) !== entry || !this.activeSources.has(entry.source)) {\n throw new Error(`Tool '${entry.value.name}' is no longer active`);\n }\n return entry.value.execute(id, parameters, signal, onUpdate, this.context);\n },\n }));\n await this.options.applyTools(tools);\n this.tools = next;\n });\n this.kernel.defineSlot<Owned<DoomHeadlessResource>>('resources', async (entries) => {\n this.resources = this.selected(entries);\n this.resolvedResources = await this.resolveResources(this.applying);\n await this.options.applyResources(this.resolvedResources);\n });\n this.kernel.defineSlot<Owned<DoomHeadlessCommand>>('commands', (entries) => {\n const next = new Map<string, Owned<DoomHeadlessCommand>>();\n for (const entry of this.selected(entries)) if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n this.commands = next;\n });\n this.kernel.defineSlot<Owned<DoomHeadlessHook>>('hooks', (entries) => {\n this.hooks = this.selected(entries);\n });\n this.kernel.defineSlot<Owned<DoomHeadlessActivity>>('activities', async (entries) => {\n const desired = new Set(this.selected(entries));\n for (const [entry, stop] of [...this.activities].reverse()) {\n if (desired.has(entry)) continue;\n await stop();\n this.activities.delete(entry);\n }\n for (const entry of desired) {\n if (this.activities.has(entry)) continue;\n try {\n const stop = await entry.value.start(this.options.context(this.applying));\n this.activities.set(entry, stop);\n } catch (error) {\n if (this.options.candidates.some((candidate) => candidate.packageName === entry.source && candidate.required))\n throw error;\n this.options.onError?.(error);\n }\n }\n });\n }\n\n get context(): DoomHeadlessExecutionContext {\n return this.options.context(this.applied);\n }\n\n get status(): HeadlessSelectionStatus {\n return {\n requestedRevision: this.requestedRevision,\n appliedRevision: this.appliedRevision,\n ready: this.ready,\n ...(this.failure === undefined\n ? {}\n : {\n error:\n this.failure instanceof Error\n ? this.failure.message\n : typeof this.failure === 'string'\n ? this.failure\n : 'Headless selection failed',\n }),\n };\n }\n\n /**\n * The resources the last applied selection resolved to.\n *\n * `readResources` re-reads them for a live request and refuses while a\n * selection is mid-apply. A reader describing the applied composition wants\n * the same snapshot `getContextInventory` reports against, and wants it at\n * the same moments, so it reads this instead of dispatching.\n */\n get appliedResources(): readonly ResolvedHeadlessResource[] {\n return this.resolvedResources;\n }\n\n get toolSurface(): DoomHeadlessHostService['toolSurface'] {\n return this.options.toolSurface?.();\n }\n\n readSkill(name: string): string | undefined {\n // The last declaration of a name is the one the session uses.\n return this.resolvedResources.findLast((entry) => entry.kind === 'skill' && entry.name === name)?.text;\n }\n\n inspectCapabilities(): ReturnType<DoomHeadlessHostService['inspectCapabilities']> {\n const ready = this.ready && !this.disposed;\n const capabilities: ReturnType<DoomHeadlessHostService['inspectCapabilities']>['capabilities'][number][] = [];\n if (ready) {\n for (const entry of this.kernel.activeValues<Owned<DoomHeadlessTool>>('tools')) {\n const active = this.tools.get(entry.value.name) === entry;\n const discoverable = active && isDoomHeadlessToolModelVisible(entry.value);\n const reason = active\n ? discoverable\n ? undefined\n : 'not-discoverable'\n : !this.matches(entry.value.when)\n ? 'inactive'\n : !this.allowsTool(entry.value.name)\n ? 'restricted'\n : 'shadowed';\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'tool',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n // The session skill surface uses the last resolved declaration for a name.\n const resolved = new Map(\n this.resolvedResources.filter((entry) => entry.kind === 'skill').map((entry) => [entry.name, entry]),\n );\n for (const entry of this.kernel.activeValues<Owned<DoomHeadlessResource>>('resources')) {\n if (entry.value.kind !== 'skill') continue;\n const current = resolved.get(entry.value.name);\n const selected = this.matches(entry.value.when);\n const active =\n selected &&\n current?.source === entry.source &&\n current.path === entry.value.path &&\n current.text.trim().length > 0;\n const discoverable = active && !!current?.path && !!current.description?.trim();\n const reason = !selected\n ? 'inactive'\n : current && current.source !== entry.source\n ? 'shadowed'\n : !active\n ? 'unavailable'\n : !discoverable\n ? 'not-discoverable'\n : undefined;\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'skill',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n }\n return { revision: this.appliedRevision, ready, capabilities };\n }\n /**\n * Every tool name this composition's eligible owners declare, including the\n * ones a condition or a restriction currently gates out.\n *\n * `appliedTools` answers what runs now. A merge that places another surface's\n * tools beside these needs what is spoken for, so a name a facet deliberately\n * withheld is not handed to an unreconciled surface instead. Owner\n * eligibility stays the outer gate: a package the selection excluded declares\n * nothing here.\n */\n get declaredToolNames(): ReadonlySet<string> {\n return new Set(this.kernel.activeValues<Owned<DoomHeadlessTool>>('tools').map((entry) => entry.value.name));\n }\n getContextInventory(\n selection: DoomHeadlessSelection = this.applied,\n countTokens?: CountTokens,\n ): HeadlessContextInventory {\n const currentSources = new Set(\n this.options.candidates\n .filter(\n (candidate) =>\n candidate.scopes.includes('session') &&\n candidate.owners.some((owner) => owner.majorMode === selection.majorMode),\n )\n .map((candidate) => candidate.packageName),\n );\n const conditionAttribution = (when?: DoomHeadlessCondition): ContextConditionalAttribution | undefined =>\n when?.attribution ?? (when?.domain === undefined ? undefined : { kind: 'domain', mode: when.domain });\n const mcpOwners = new Map<string, string>();\n for (const server of readDoomMcpStatus(this.ctx)?.getSnapshot().servers ?? []) {\n for (const name of server.tools) mcpOwners.set(name, server.name);\n }\n const mcpPackages = new Map<string, string>();\n const toolsBySource = new Map<string, ContextToolInventory[]>();\n for (const contribution of this.kernel.contributions<Owned<DoomHeadlessTool>>('tools')) {\n if (!currentSources.has(contribution.source)) continue;\n const tool = contribution.value.value;\n if (!isDoomHeadlessToolModelVisible(tool)) continue;\n const contextAttribution = conditionAttribution(tool.when);\n const entry: ContextToolInventory = {\n name: tool.name,\n // Priced as sent: the load tool carries the skill list in its description.\n description:\n tool.name === DOOM_LOAD_SKILL_TOOL\n ? describeLoadSkillTool(tool.description, this.resolvedResources)\n : tool.description,\n parameters: tool.parameters,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n active: this.tools.get(tool.name) === contribution.value,\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n };\n const server = mcpOwners.get(tool.name);\n const source = server === undefined ? contribution.source : `mcp:${server}`;\n if (server !== undefined) mcpPackages.set(server, contribution.source);\n const tools = toolsBySource.get(source);\n if (tools) tools.push(entry);\n else toolsBySource.set(source, [entry]);\n }\n\n const sources: ContextToolSource[] = [...toolsBySource].map(([source, tools]) => ({\n key: source,\n label: mcpPackages.has(source.slice(4)) ? `${source.slice(4)} · mcp` : `${source} · extension`,\n kind: mcpPackages.has(source.slice(4)) ? 'mcp' : 'extension',\n packageName: mcpPackages.get(source.slice(4)) ?? source,\n tools,\n }));\n const framingTokens = countTokens === undefined ? 0 : countTokens(formatSkillsForSystemPrompt([]));\n const skills = this.resolvedResources.flatMap((resource, index) => {\n if (resource.kind !== 'skill') return [];\n const skill = headlessHarnessSkill(resource);\n const contextAttribution = conditionAttribution(this.resources[index]?.value.when);\n return [\n {\n name: skill.name,\n description: skill.description,\n group: 'extensions' as const,\n owner: resource.source,\n modelInvocable: true,\n body: skill.content,\n ...(countTokens === undefined\n ? {}\n : { promptTokens: Math.max(0, countTokens(formatSkillsForSystemPrompt([skill])) - framingTokens) }),\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n },\n ];\n });\n const attribution: Record<string, PackageAttribution> = {};\n for (const candidate of this.options.candidates) {\n const owner =\n candidate.owners.find(\n (entry) =>\n entry.majorMode === selection.majorMode &&\n (entry.layer === 'default' || selection.activeLayers.includes(entry.layer)),\n ) ?? candidate.owners.find((entry) => entry.majorMode === selection.majorMode);\n if (owner && attribution[candidate.packageName] === undefined) {\n attribution[candidate.packageName] = { kind: 'major', mode: selection.majorMode, layer: owner.layer };\n }\n }\n for (const [server, source] of mcpPackages) {\n if (attribution[source]) attribution[server] = attribution[source];\n }\n return { sources, skills, attribution };\n }\n\n setAvailableSources(sources: readonly string[]): void {\n this.availableSources = new Set(sources);\n }\n private matches(when?: DoomHeadlessCondition): boolean {\n return (\n Object.entries(when?.state ?? {}).every(([key, value]) => this.applying.state?.[key]?.includes(value)) &&\n (when?.domain === undefined || this.applying.domains.includes(when.domain))\n );\n }\n private selected<T extends { when?: DoomHeadlessCondition }>(entries: readonly Owned<T>[]): readonly Owned<T>[] {\n return entries.filter(({ value }) => this.matches(value.when));\n }\n\n assertActive(source?: string): void {\n this.assertReady();\n if (source !== undefined && !this.activeSources.has(source))\n throw new Error(`Contribution owner '${source}' is inactive`);\n }\n\n subscribeSelection(listener: (selection: DoomHeadlessSelection) => void | Promise<void>): () => void {\n this.selectionListeners.add(listener);\n return () => {\n this.selectionListeners.delete(listener);\n };\n }\n\n /** Shared by facet reconciliation and the final Pi/facet merge. */\n allowsTool(name: string): boolean {\n const allowed = this.options.allowedTools?.(this.applying);\n return (\n (allowed === undefined || allowed.includes(name)) &&\n this.restrictions.every(\n (restriction) =>\n (restriction.allowedTools === undefined || restriction.allowedTools.includes(name)) &&\n !restriction.excludedTools?.includes(name),\n )\n );\n }\n\n registerToolRestriction(restriction: DoomHeadlessToolRestriction): DoomHeadlessRegistration {\n return this.add('restrictions', restriction);\n }\n\n private eligible(entry: DoomServerBundleEntry, selection: DoomHeadlessSelection): boolean {\n return (\n entry.scopes.includes('session') &&\n entry.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n )\n );\n }\n\n changeSelection(change: DoomHeadlessSelectionChange): Promise<void> {\n this.selectionOverrides.add(change.axis);\n if (change.axis === 'majorMode') return this.select({ majorMode: change.majorMode });\n if (change.axis === 'domains') return this.select({ domains: change.domains });\n if (change.axis === 'profile') return this.select({ profile: change.profile });\n return this.select({ state: { ...this.requested.state, [change.key]: [...change.values] } });\n }\n\n private async refreshChangedSelection(\n previous: DoomHeadlessSelection,\n selection: DoomHeadlessSelection,\n previousValues: ReadonlyMap<string, readonly unknown[]>,\n ): Promise<void> {\n const majorChanged =\n previous.majorMode !== selection.majorMode || !sameStrings(previous.activeLayers, selection.activeLayers);\n const domainsChanged = !sameStrings(previous.domains, selection.domains);\n const profileChanged = previous.profile !== selection.profile;\n const stateChanged = JSON.stringify(previous.state ?? {}) !== JSON.stringify(selection.state ?? {});\n if (this.appliedRevision === 0) return;\n\n const refresh = async (slot: string): Promise<void> => {\n const before = previousValues.get(slot) ?? [];\n if (sameValues(before, this.kernel.activeValues(slot))) await this.kernel.refresh(slot);\n };\n if (stateChanged) await refresh('restrictions');\n if (majorChanged || domainsChanged || stateChanged || this.restrictionsChanged) await refresh('tools');\n if (majorChanged || domainsChanged || profileChanged || stateChanged) await refresh('resources');\n if (domainsChanged || stateChanged) {\n await refresh('commands');\n await refresh('hooks');\n await refresh('activities');\n }\n }\n\n /** Refresh inherited defaults only at turn admission, keeping explicit session axes. */\n async inheritSelection(selection: Partial<DoomHeadlessSelection>): Promise<void> {\n const patch: Partial<DoomHeadlessSelection> = {\n ...(!this.selectionOverrides.has('majorMode') && selection.majorMode !== undefined\n ? { majorMode: selection.majorMode }\n : {}),\n ...(!this.selectionOverrides.has('domains') && selection.domains !== undefined\n ? { domains: selection.domains }\n : {}),\n ...(!this.selectionOverrides.has('profile') && Object.hasOwn(selection, 'profile')\n ? { profile: selection.profile }\n : {}),\n };\n if (\n (patch.majorMode === undefined || patch.majorMode === this.requested.majorMode) &&\n (patch.domains === undefined || sameStrings(patch.domains, this.requested.domains)) &&\n (!Object.hasOwn(patch, 'profile') || patch.profile === this.requested.profile)\n )\n return;\n await this.select(patch);\n }\n\n async select(patch: Partial<DoomHeadlessSelection>): Promise<void> {\n if (this.disposed) throw new Error('The headless host is disposed');\n const requested = structuredClone({ ...this.requested, ...patch });\n this.requested = requested;\n const revision = ++this.requestedRevision;\n this.ready = false;\n const apply = async (): Promise<void> => {\n if (this.disposed) throw new Error('The headless host is disposed');\n const selection = structuredClone((await this.options.resolveSelection?.(requested)) ?? requested);\n await this.options.validateSelection?.(selection);\n if (revision === this.requestedRevision) this.requested = selection;\n const eligible = this.options.candidates.filter((entry) => this.eligible(entry, selection));\n const missing = eligible.find((entry) => entry.required && !this.availableSources.has(entry.packageName));\n if (missing) throw new Error(`Required headless package '${missing.packageName}' is unavailable`);\n // The kernel's layer key here is the precomputed package eligibility key.\n // Minor tool restrictions run in the tools sink only after this owner gate.\n this.applying = selection;\n this.refreshing = true;\n let compositionChanged = false;\n try {\n const previousValues = new Map(\n this.kernel.slots.map((slot) => [slot, this.kernel.activeValues(slot)] as const),\n );\n await this.kernel.setActiveLayers(eligible.map((entry) => entry.packageName));\n await this.refreshChangedSelection(this.applied, selection, previousValues);\n compositionChanged =\n this.failure !== undefined ||\n this.appliedRevision === 0 ||\n !sameSelection(this.applied, selection) ||\n this.restrictionsChanged ||\n this.contributionsChanged ||\n !sameValues(previousValues.get('tools') ?? [], this.kernel.activeValues('tools')) ||\n !sameValues(previousValues.get('resources') ?? [], this.kernel.activeValues('resources'));\n this.restrictionsChanged = false;\n this.contributionsChanged = false;\n } finally {\n this.refreshing = false;\n }\n if (this.disposed) throw new Error('The headless host is disposed');\n this.activeSources = new Set(eligible.map((entry) => entry.packageName));\n this.applied = selection;\n this.appliedRevision = revision;\n this.failure = undefined;\n this.ready = revision === this.requestedRevision;\n try {\n for (const listener of this.selectionListeners) await listener(selection);\n } catch (error) {\n if (isDoomHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;\n throw error;\n }\n if (compositionChanged) await this.options.onApplied?.(selection, revision);\n };\n const result = this.tail.catch(() => undefined).then(apply);\n this.tail = result.catch((error: unknown) => {\n this.failure = error;\n this.ready = false;\n // close() marks the host disposed before draining this tail, so every selection still\n // queued at that point rejects by design. Those rejections are teardown artifacts, not\n // actionable failures, and reporting them surfaces one notice per queued contribution.\n if (!this.disposed) this.options.onError?.(error);\n });\n await result;\n await this.settled();\n if (this.failure !== undefined) throw this.failure;\n this.assertReady();\n }\n\n /** Drain selections, including ones queued by selection listeners. */\n async settled(): Promise<void> {\n let pending: Promise<void>;\n do {\n pending = this.tail;\n await pending;\n } while (pending !== this.tail);\n }\n\n private assertReady(): void {\n if (this.disposed || !this.ready)\n throw new Error('Headless dispatch is blocked until selection is coherently applied');\n }\n\n private add<T>(slot: string, value: T): DoomHeadlessRegistration {\n const owner = readDoomHeadlessOwner(this.ctx);\n if (!owner) throw new Error('A headless contribution must have descriptor-owned package identity');\n this.ready = false;\n this.contributionsChanged = true;\n const registration = this.kernel.contribute(slot, {\n source: owner.packageName,\n layer: owner.packageName,\n value: { source: owner.packageName, value } satisfies Owned<T>,\n });\n let disposed = false;\n const dispose = (): void => {\n if (disposed) return;\n disposed = true;\n this.ready = false;\n this.contributionsChanged = true;\n registration.dispose();\n // Reconciled on the same terms as the registration below: before the first applied\n // selection the caller's own select() computes the whole composition, and the sources\n // that selection gates on are not known yet.\n if (this.appliedRevision > 0 && !this.disposed && !this.refreshing) void this.select({}).catch(() => undefined);\n };\n this.ctx.effect(() => dispose, `headless ${slot} contribution`);\n // Initial registration is reconciled once the caller has installed all facets.\n if (this.appliedRevision > 0 && !this.refreshing) void this.select({}).catch(() => undefined);\n return { dispose };\n }\n\n registerTool<TParameters extends TSchema>(tool: DoomHeadlessTool<TParameters>): DoomHeadlessRegistration {\n return this.add('tools', tool);\n }\n registerResource(resource: DoomHeadlessResource): DoomHeadlessRegistration {\n return this.add('resources', resource);\n }\n registerCommand(command: DoomHeadlessCommand): DoomHeadlessRegistration {\n return this.add('commands', command);\n }\n registerHook(hook: DoomHeadlessHook): DoomHeadlessRegistration {\n return this.add('hooks', hook);\n }\n registerActivity(activity: DoomHeadlessActivity): DoomHeadlessRegistration {\n return this.add('activities', activity);\n }\n\n private canRecoverSelection(): boolean {\n return (\n !this.disposed &&\n !this.ready &&\n !this.refreshing &&\n !this.contributionsChanged &&\n !this.restrictionsChanged &&\n this.recoveryRevision === this.requestedRevision &&\n this.appliedRevision === this.requestedRevision &&\n isDoomHeadlessPromptAdmissionError(this.failure)\n );\n }\n\n listCommands(): Array<Pick<DoomHeadlessCommand, 'name' | 'description'>> {\n const recovering = this.canRecoverSelection();\n if (!recovering) this.assertReady();\n return [...this.commands.values()]\n .filter(\n ({ source, value }) =>\n !recovering ||\n (value.selectionRecovery === true && this.activeSources.has(source) && this.availableSources.has(source)),\n )\n .map(({ value }) => ({ name: value.name, description: value.description }));\n }\n\n async dispatchCommand(name: string, args: string): Promise<void> {\n const command = this.commands.get(name);\n if (!this.canRecoverSelection() || command?.value.selectionRecovery !== true) this.assertReady();\n if (!command || !this.activeSources.has(command.source) || !this.availableSources.has(command.source))\n throw new Error(`Command '${name}' is inactive or unknown`);\n await command.value.execute(args, this.context);\n }\n\n async dispatchHook(\n event: DoomHeadlessEventName,\n payload: Readonly<Record<string, unknown>>,\n signal?: AbortSignal,\n ): Promise<unknown[]> {\n this.assertReady();\n signal?.throwIfAborted();\n const results: unknown[] = [];\n const revision = this.appliedRevision;\n let current = payload;\n for (const hook of this.hooks.filter((entry) => entry.value.event === event)) {\n this.assertReady();\n signal?.throwIfAborted();\n if (!this.hooks.includes(hook)) continue;\n let result: unknown;\n try {\n result = await hook.value.handle(current as never, signal ? { ...this.context, signal } : this.context);\n signal?.throwIfAborted();\n } catch (error) {\n if (isDoomHeadlessPromptAdmissionError(error)) throw error;\n signal?.throwIfAborted();\n this.options.onError?.(error);\n continue;\n }\n if (event === 'session_start') {\n // Startup hooks may register retained contributions. Finish their queued reconciliation\n // before the next hook, without relaxing dispatch guards during the transition.\n await this.tail;\n this.assertReady();\n }\n results.push(result);\n if (result && typeof result === 'object' && !Array.isArray(result)) {\n const patch = result as Record<string, unknown>;\n // Execution hooks compose in registration order, just like the public harness hooks.\n const fields =\n event === 'context'\n ? ['messages', 'systemPrompt']\n : event === 'tool_call'\n ? ['args']\n : event === 'tool_result'\n ? ['content', 'details', 'isError', 'usage']\n : event === 'before_agent_start'\n ? ['systemPrompt']\n : event === 'before_provider_request'\n ? ['payload']\n : [];\n for (const field of fields) {\n if (event === 'before_agent_start' && typeof patch[field] !== 'string') continue;\n if (patch[field] !== undefined) current = { ...current, [field]: patch[field] };\n }\n // Denials and structural decisions use upstream first-result semantics.\n if (event === 'tool_call' && patch.block !== undefined) break;\n if (\n event === 'session_before_compact' &&\n (patch.cancel !== undefined || patch.decline !== undefined || patch.compaction !== undefined)\n )\n break;\n }\n }\n if (event === 'before_agent_start' || event === 'context' || event === 'tool_call') {\n this.assertReady();\n if (revision !== this.appliedRevision) {\n throw new Error(\n event === 'before_agent_start'\n ? 'Selection changed while preparing the system prompt'\n : `Selection changed while dispatching ${event}`,\n );\n }\n }\n return results;\n }\n\n private async resolveResources(selection: DoomHeadlessSelection): Promise<readonly ResolvedHeadlessResource[]> {\n const context = this.options.context(selection);\n const result: ResolvedHeadlessResource[] = [];\n for (const resource of this.resources) {\n let value: string;\n try {\n value = await resource.value.read(context);\n } catch (error) {\n // Report and skip, never rethrow. This runs on every prompt build, and a\n // throw here reaches the systemPrompt callback, sets promptPreparationFailed\n // and denies every model request for the rest of the session. One package\n // missing one shipped file must not take the session down with it.\n this.options.onError?.(\n new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }),\n );\n continue;\n }\n result.push({\n source: resource.source,\n name: resource.value.name,\n kind: resource.value.kind,\n ...(resource.value.description === undefined ? {} : { description: resource.value.description }),\n ...(resource.value.path === undefined ? {} : { path: resource.value.path }),\n text: value,\n });\n }\n return result;\n }\n\n async readResources(): Promise<readonly ResolvedHeadlessResource[]> {\n this.assertReady();\n const revision = this.appliedRevision;\n const result = await this.resolveResources(this.applied);\n this.assertReady();\n if (revision !== this.appliedRevision) throw new Error('Selection changed while reading resources');\n return result;\n }\n\n async close(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n this.ready = false;\n this.selectionListeners.clear();\n await this.tail.catch(() => undefined);\n const failures: unknown[] = [];\n for (const stop of [...this.activities.values()].reverse()) {\n try {\n await stop();\n } catch (error) {\n failures.push(error);\n }\n }\n this.activities.clear();\n this.kernel.dispose();\n if (failures.length) throw new AggregateError(failures, 'Headless activities failed to stop');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"headlessHost.cjs","names":["Service","createPoKernel","PO_HEADLESS_HOST_SERVICE","isPoHeadlessToolModelVisible","readPoMcpStatus","formatSkillsForSystemPrompt","isPoHeadlessPromptAdmissionError","readPoHeadlessOwner"],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"sourcesContent":["import { Context, Service } from '@deepseek-ai/cordis';\nimport type { TSchema } from 'typebox';\n\nimport {\n PO_HEADLESS_HOST_SERVICE,\n PO_LOAD_SKILL_TOOL,\n readPoHeadlessOwner,\n isPoHeadlessPromptAdmissionError,\n type PoHeadlessActivity,\n type PoHeadlessCommand,\n type PoHeadlessEventName,\n type PoHeadlessExecutionContext,\n type PoHeadlessHook,\n type PoHeadlessHostService,\n isPoHeadlessToolModelVisible,\n type PoHeadlessRegistration,\n type PoHeadlessResource,\n type PoHeadlessSelection,\n type PoHeadlessSelectionChange,\n type PoHeadlessTool,\n type PoHeadlessCondition,\n type PoHeadlessToolRestriction,\n} from '../../../exports/headless';\nimport { createPoKernel } from '../../../exports/kernel';\nimport { readPoMcpStatus } from '../../../exports/mcpStatus';\nimport type { PoServerBundleEntry } from '../../../exports/serverPlugin';\nimport type { PackageAttribution } from '../../../services/contextProjection';\nimport type {\n ContextConditionalAttribution,\n ContextToolInventory,\n ContextToolSource,\n} from '../../../services/contextProjection';\nimport { formatSkillsForSystemPrompt } from '../../../services/skillPrompt';\nimport type { CountTokens } from '../../../services/toolInventory';\nimport type {\n HeadlessContextInventory,\n HeadlessHostOptions,\n HeadlessSelectionStatus,\n ResolvedHeadlessResource,\n} from '../types/headlessHost';\n\ntype Owned<T> = { source: string; value: T };\ntype StopActivity = () => void | Promise<void>;\n\nfunction sameStrings(left: readonly string[], right: readonly string[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameValues(left: readonly unknown[], right: readonly unknown[]): boolean {\n return left.length === right.length && left.every((value, index) => value === right[index]);\n}\n\nfunction sameSelection(left: PoHeadlessSelection, right: PoHeadlessSelection): boolean {\n return (\n left.majorMode === right.majorMode &&\n left.profile === right.profile &&\n sameStrings(left.activeLayers, right.activeLayers) &&\n sameStrings(left.domains, right.domains) &&\n JSON.stringify(left.state ?? {}) === JSON.stringify(right.state ?? {})\n );\n}\n\n/**\n * Maps one typed headless resource to the exact skill shape installed in AgentHarness.\n *\n * Prefers the resource's own `description` and `path`. The fallbacks below are what\n * every skill used to get, and they are only good enough for explicit invocation,\n * which matches on name: `po-headless://` is not a path any tool can open, and\n * \"Headless skill from <source>\" gives the model nothing to select on. A skill is\n * only advertised in the prompt once it carries a real path.\n */\nexport function headlessHarnessSkill(resource: ResolvedHeadlessResource) {\n return {\n name: resource.name,\n description: resource.description ?? `Headless skill from ${resource.source}`,\n content: resource.text,\n filePath: resource.path ?? `po-headless://${resource.source}/${resource.name}`,\n };\n}\n\nfunction escapeXml(value: string): string {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;');\n}\n\n/**\n * The load tool's description with the session's skills appended, so the agent sees what it can\n * load where it decides to call the tool. Rebuilt whenever the applied skills change.\n */\nexport function describeLoadSkillTool(base: string, skills: readonly ResolvedHeadlessResource[]): string {\n const listed = skills.filter(\n (skill, index, all) => skill.kind === 'skill' && all.findIndex((entry) => entry.name === skill.name) === index,\n );\n if (listed.length === 0) return base;\n return [\n base,\n '',\n '<available_skills>',\n ...listed.flatMap((skill) => [\n ' <skill>',\n ` <name>${escapeXml(skill.name)}</name>`,\n ` <description>${escapeXml(headlessHarnessSkill(skill).description)}</description>`,\n ' </skill>',\n ]),\n '</available_skills>',\n ].join('\\n');\n}\n\n/** Retains packages and their state; only kernel-computed active contributions change. */\nexport class HeadlessHost extends Service<PoHeadlessHostService> implements PoHeadlessHostService {\n private readonly kernel = createPoKernel();\n private readonly selectionListeners = new Set<(selection: PoHeadlessSelection) => void | Promise<void>>();\n private restrictions: readonly PoHeadlessToolRestriction[] = [];\n private restrictionsChanged = false;\n private contributionsChanged = false;\n private readonly options: HeadlessHostOptions;\n private readonly selectionOverrides: Set<string>;\n private applied: PoHeadlessSelection;\n private requested: PoHeadlessSelection;\n private applying: PoHeadlessSelection;\n private refreshing = false;\n private requestedRevision = 0;\n private appliedRevision = 0;\n private recoveryRevision = 0;\n private ready = false;\n private disposed = false;\n private failure: unknown;\n private tail: Promise<void> = Promise.resolve();\n private activeSources = new Set<string>();\n private availableSources = new Set<string>();\n private tools = new Map<string, Owned<PoHeadlessTool>>();\n private resources: readonly Owned<PoHeadlessResource>[] = [];\n private resolvedResources: readonly ResolvedHeadlessResource[] = [];\n private commands = new Map<string, Owned<PoHeadlessCommand>>();\n private hooks: readonly Owned<PoHeadlessHook>[] = [];\n private readonly activities = new Map<Owned<PoHeadlessActivity>, StopActivity>();\n\n constructor(context: Context, options: HeadlessHostOptions) {\n super(context, PO_HEADLESS_HOST_SERVICE);\n this.options = options;\n this.selectionOverrides = new Set(options.selectionOverrides);\n this.applied = structuredClone(options.selection);\n this.requested = this.applied;\n this.applying = this.applied;\n context.effect(() => () => this.close(), 'headless host lifetime');\n this.kernel.defineSlot<Owned<PoHeadlessToolRestriction>>('restrictions', (entries) => {\n this.restrictionsChanged = true;\n this.restrictions = entries.map((entry) => entry.value).filter((restriction) => this.matches(restriction.when));\n });\n this.kernel.defineSlot<Owned<PoHeadlessTool>>('tools', async (entries) => {\n const next = new Map<string, Owned<PoHeadlessTool>>();\n for (const entry of this.selected(entries)) {\n if (!this.allowsTool(entry.value.name)) continue;\n if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n }\n const tools = [...next.values()].map((entry): PoHeadlessTool => ({\n ...entry.value,\n execute: async (id, parameters, signal, onUpdate) => {\n this.assertReady();\n if (this.tools.get(entry.value.name) !== entry || !this.activeSources.has(entry.source)) {\n throw new Error(`Tool '${entry.value.name}' is no longer active`);\n }\n return entry.value.execute(id, parameters, signal, onUpdate, this.context);\n },\n }));\n await this.options.applyTools(tools);\n this.tools = next;\n });\n this.kernel.defineSlot<Owned<PoHeadlessResource>>('resources', async (entries) => {\n this.resources = this.selected(entries);\n this.resolvedResources = await this.resolveResources(this.applying);\n await this.options.applyResources(this.resolvedResources);\n });\n this.kernel.defineSlot<Owned<PoHeadlessCommand>>('commands', (entries) => {\n const next = new Map<string, Owned<PoHeadlessCommand>>();\n for (const entry of this.selected(entries)) if (!next.has(entry.value.name)) next.set(entry.value.name, entry);\n this.commands = next;\n });\n this.kernel.defineSlot<Owned<PoHeadlessHook>>('hooks', (entries) => {\n this.hooks = this.selected(entries);\n });\n this.kernel.defineSlot<Owned<PoHeadlessActivity>>('activities', async (entries) => {\n const desired = new Set(this.selected(entries));\n for (const [entry, stop] of [...this.activities].reverse()) {\n if (desired.has(entry)) continue;\n await stop();\n this.activities.delete(entry);\n }\n for (const entry of desired) {\n if (this.activities.has(entry)) continue;\n try {\n const stop = await entry.value.start(this.options.context(this.applying));\n this.activities.set(entry, stop);\n } catch (error) {\n if (this.options.candidates.some((candidate) => candidate.packageName === entry.source && candidate.required))\n throw error;\n this.options.onError?.(error, 'activity');\n }\n }\n });\n }\n\n get context(): PoHeadlessExecutionContext {\n return this.options.context(this.applied);\n }\n\n get status(): HeadlessSelectionStatus {\n return {\n requestedRevision: this.requestedRevision,\n appliedRevision: this.appliedRevision,\n ready: this.ready,\n ...(this.failure === undefined\n ? {}\n : {\n error:\n this.failure instanceof Error\n ? this.failure.message\n : typeof this.failure === 'string'\n ? this.failure\n : 'Headless selection failed',\n }),\n };\n }\n\n /**\n * The resources the last applied selection resolved to.\n *\n * `readResources` re-reads them for a live request and refuses while a\n * selection is mid-apply. A reader describing the applied composition wants\n * the same snapshot `getContextInventory` reports against, and wants it at\n * the same moments, so it reads this instead of dispatching.\n */\n get appliedResources(): readonly ResolvedHeadlessResource[] {\n return this.resolvedResources;\n }\n\n get toolSurface(): PoHeadlessHostService['toolSurface'] {\n return this.options.toolSurface?.();\n }\n\n readSkill(name: string): string | undefined {\n // The last declaration of a name is the one the session uses.\n return this.resolvedResources.findLast((entry) => entry.kind === 'skill' && entry.name === name)?.text;\n }\n\n inspectCapabilities(): ReturnType<PoHeadlessHostService['inspectCapabilities']> {\n const ready = this.ready && !this.disposed;\n const capabilities: ReturnType<PoHeadlessHostService['inspectCapabilities']>['capabilities'][number][] = [];\n if (ready) {\n for (const entry of this.kernel.activeValues<Owned<PoHeadlessTool>>('tools')) {\n const active = this.tools.get(entry.value.name) === entry;\n const discoverable = active && isPoHeadlessToolModelVisible(entry.value);\n const reason = active\n ? discoverable\n ? undefined\n : 'not-discoverable'\n : !this.matches(entry.value.when)\n ? 'inactive'\n : !this.allowsTool(entry.value.name)\n ? 'restricted'\n : 'shadowed';\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'tool',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n // The session skill surface uses the last resolved declaration for a name.\n const resolved = new Map(\n this.resolvedResources.filter((entry) => entry.kind === 'skill').map((entry) => [entry.name, entry]),\n );\n for (const entry of this.kernel.activeValues<Owned<PoHeadlessResource>>('resources')) {\n if (entry.value.kind !== 'skill') continue;\n const current = resolved.get(entry.value.name);\n const selected = this.matches(entry.value.when);\n const active =\n selected &&\n current?.source === entry.source &&\n current.path === entry.value.path &&\n current.text.trim().length > 0;\n const discoverable = active && !!current?.path && !!current.description?.trim();\n const reason = !selected\n ? 'inactive'\n : current && current.source !== entry.source\n ? 'shadowed'\n : !active\n ? 'unavailable'\n : !discoverable\n ? 'not-discoverable'\n : undefined;\n capabilities.push({\n source: entry.source,\n name: entry.value.name,\n kind: 'skill',\n when: structuredClone(entry.value.when),\n active,\n discoverable,\n ...(reason ? { reason } : {}),\n });\n }\n }\n return { revision: this.appliedRevision, ready, capabilities };\n }\n /**\n * Every tool name this composition's eligible owners declare, including the\n * ones a condition or a restriction currently gates out.\n *\n * `appliedTools` answers what runs now. A merge that places another surface's\n * tools beside these needs what is spoken for, so a name a package deliberately\n * withheld is not handed to an unreconciled surface instead. Owner\n * eligibility stays the outer gate: a package the selection excluded declares\n * nothing here.\n */\n get declaredToolNames(): ReadonlySet<string> {\n return new Set(this.kernel.activeValues<Owned<PoHeadlessTool>>('tools').map((entry) => entry.value.name));\n }\n getContextInventory(\n selection: PoHeadlessSelection = this.applied,\n countTokens?: CountTokens,\n ): HeadlessContextInventory {\n const currentSources = new Set(\n this.options.candidates\n .filter(\n (candidate) =>\n candidate.scopes.includes('session') &&\n candidate.owners.some((owner) => owner.majorMode === selection.majorMode),\n )\n .map((candidate) => candidate.packageName),\n );\n const conditionAttribution = (when?: PoHeadlessCondition): ContextConditionalAttribution | undefined =>\n when?.attribution ?? (when?.domain === undefined ? undefined : { kind: 'domain', mode: when.domain });\n const mcpOwners = new Map<string, string>();\n for (const server of readPoMcpStatus(this.ctx)?.getSnapshot().servers ?? []) {\n for (const name of server.tools) mcpOwners.set(name, server.name);\n }\n const mcpPackages = new Map<string, string>();\n const toolsBySource = new Map<string, ContextToolInventory[]>();\n for (const contribution of this.kernel.contributions<Owned<PoHeadlessTool>>('tools')) {\n if (!currentSources.has(contribution.source)) continue;\n const tool = contribution.value.value;\n if (!isPoHeadlessToolModelVisible(tool)) continue;\n const contextAttribution = conditionAttribution(tool.when);\n const entry: ContextToolInventory = {\n name: tool.name,\n // Priced as sent: the load tool carries the skill list in its description.\n description:\n tool.name === PO_LOAD_SKILL_TOOL\n ? describeLoadSkillTool(tool.description, this.resolvedResources)\n : tool.description,\n parameters: tool.parameters,\n ...(tool.promptSnippet === undefined ? {} : { promptSnippet: tool.promptSnippet }),\n ...(tool.promptGuidelines === undefined ? {} : { promptGuidelines: tool.promptGuidelines }),\n active: this.tools.get(tool.name) === contribution.value,\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n };\n const server = mcpOwners.get(tool.name);\n const source = server === undefined ? contribution.source : `mcp:${server}`;\n if (server !== undefined) mcpPackages.set(server, contribution.source);\n const tools = toolsBySource.get(source);\n if (tools) tools.push(entry);\n else toolsBySource.set(source, [entry]);\n }\n\n const sources: ContextToolSource[] = [...toolsBySource].map(([source, tools]) => ({\n key: source,\n label: mcpPackages.has(source.slice(4)) ? `${source.slice(4)} · mcp` : `${source} · extension`,\n kind: mcpPackages.has(source.slice(4)) ? 'mcp' : 'extension',\n packageName: mcpPackages.get(source.slice(4)) ?? source,\n tools,\n }));\n const framingTokens = countTokens === undefined ? 0 : countTokens(formatSkillsForSystemPrompt([]));\n const skills = this.resolvedResources.flatMap((resource, index) => {\n if (resource.kind !== 'skill') return [];\n const skill = headlessHarnessSkill(resource);\n const contextAttribution = conditionAttribution(this.resources[index]?.value.when);\n return [\n {\n name: skill.name,\n description: skill.description,\n group: 'extensions' as const,\n owner: resource.source,\n modelInvocable: true,\n body: skill.content,\n ...(countTokens === undefined\n ? {}\n : { promptTokens: Math.max(0, countTokens(formatSkillsForSystemPrompt([skill])) - framingTokens) }),\n ...(contextAttribution === undefined ? {} : { contextAttribution }),\n },\n ];\n });\n const attribution: Record<string, PackageAttribution> = {};\n for (const candidate of this.options.candidates) {\n const owner =\n candidate.owners.find(\n (entry) =>\n entry.majorMode === selection.majorMode &&\n (entry.layer === 'default' || selection.activeLayers.includes(entry.layer)),\n ) ?? candidate.owners.find((entry) => entry.majorMode === selection.majorMode);\n if (owner && attribution[candidate.packageName] === undefined) {\n attribution[candidate.packageName] = { kind: 'major', mode: selection.majorMode, layer: owner.layer };\n }\n }\n for (const [server, source] of mcpPackages) {\n if (attribution[source]) attribution[server] = attribution[source];\n }\n return { sources, skills, attribution };\n }\n\n setAvailableSources(sources: readonly string[]): void {\n this.availableSources = new Set(sources);\n }\n private matches(when?: PoHeadlessCondition): boolean {\n return (\n Object.entries(when?.state ?? {}).every(([key, value]) => this.applying.state?.[key]?.includes(value)) &&\n (when?.domain === undefined || this.applying.domains.includes(when.domain))\n );\n }\n private selected<T extends { when?: PoHeadlessCondition }>(entries: readonly Owned<T>[]): readonly Owned<T>[] {\n return entries.filter(({ value }) => this.matches(value.when));\n }\n\n assertActive(source?: string): void {\n this.assertReady();\n if (source !== undefined && !this.activeSources.has(source))\n throw new Error(`Contribution owner '${source}' is inactive`);\n }\n\n subscribeSelection(listener: (selection: PoHeadlessSelection) => void | Promise<void>): () => void {\n this.selectionListeners.add(listener);\n return () => {\n this.selectionListeners.delete(listener);\n };\n }\n\n /** Shared by package reconciliation and the final Pi/package merge. */\n allowsTool(name: string): boolean {\n const allowed = this.options.allowedTools?.(this.applying);\n return (\n (allowed === undefined || allowed.includes(name)) &&\n this.restrictions.every(\n (restriction) =>\n (restriction.allowedTools === undefined || restriction.allowedTools.includes(name)) &&\n !restriction.excludedTools?.includes(name),\n )\n );\n }\n\n registerToolRestriction(restriction: PoHeadlessToolRestriction): PoHeadlessRegistration {\n return this.add('restrictions', restriction);\n }\n\n private eligible(entry: PoServerBundleEntry, selection: PoHeadlessSelection): boolean {\n return (\n entry.scopes.includes('session') &&\n entry.owners.some(\n (owner) =>\n owner.majorMode === selection.majorMode &&\n (owner.layer === 'default' || selection.activeLayers.includes(owner.layer)),\n )\n );\n }\n\n changeSelection(change: PoHeadlessSelectionChange): Promise<void> {\n const apply = (change: PoHeadlessSelectionChange): Promise<void> => {\n this.selectionOverrides.add(change.axis);\n if (change.axis === 'majorMode') return this.select({ majorMode: change.majorMode });\n if (change.axis === 'domains') return this.select({ domains: change.domains });\n if (change.axis === 'profile') return this.select({ profile: change.profile });\n return this.select({ state: { ...this.requested.state, [change.key]: [...change.values] } });\n };\n return this.options.scheduleSelection?.(change, apply) ?? apply(change);\n }\n\n private async refreshChangedSelection(\n previous: PoHeadlessSelection,\n selection: PoHeadlessSelection,\n previousValues: ReadonlyMap<string, readonly unknown[]>,\n ): Promise<void> {\n const majorChanged =\n previous.majorMode !== selection.majorMode || !sameStrings(previous.activeLayers, selection.activeLayers);\n const domainsChanged = !sameStrings(previous.domains, selection.domains);\n const profileChanged = previous.profile !== selection.profile;\n const stateChanged = JSON.stringify(previous.state ?? {}) !== JSON.stringify(selection.state ?? {});\n if (this.appliedRevision === 0) return;\n\n const refresh = async (slot: string): Promise<void> => {\n const before = previousValues.get(slot) ?? [];\n if (sameValues(before, this.kernel.activeValues(slot))) await this.kernel.refresh(slot);\n };\n if (stateChanged) await refresh('restrictions');\n if (majorChanged || domainsChanged || stateChanged || this.restrictionsChanged) await refresh('tools');\n if (majorChanged || domainsChanged || profileChanged || stateChanged) await refresh('resources');\n if (domainsChanged || stateChanged) {\n await refresh('commands');\n await refresh('hooks');\n await refresh('activities');\n }\n }\n\n /** Refresh inherited defaults only at turn admission, keeping explicit session axes. */\n async inheritSelection(selection: Partial<PoHeadlessSelection>): Promise<void> {\n const patch: Partial<PoHeadlessSelection> = {\n ...(!this.selectionOverrides.has('majorMode') && selection.majorMode !== undefined\n ? { majorMode: selection.majorMode }\n : {}),\n ...(!this.selectionOverrides.has('domains') && selection.domains !== undefined\n ? { domains: selection.domains }\n : {}),\n ...(!this.selectionOverrides.has('profile') && Object.hasOwn(selection, 'profile')\n ? { profile: selection.profile }\n : {}),\n };\n if (\n (patch.majorMode === undefined || patch.majorMode === this.requested.majorMode) &&\n (patch.domains === undefined || sameStrings(patch.domains, this.requested.domains)) &&\n (!Object.hasOwn(patch, 'profile') || patch.profile === this.requested.profile)\n )\n return;\n await this.select(patch);\n }\n\n async select(patch: Partial<PoHeadlessSelection>): Promise<void> {\n if (this.disposed) throw new Error('The headless host is disposed');\n const requested = structuredClone({ ...this.requested, ...patch });\n this.requested = requested;\n const revision = ++this.requestedRevision;\n this.ready = false;\n const apply = async (): Promise<void> => {\n if (this.disposed) throw new Error('The headless host is disposed');\n const selection = structuredClone((await this.options.resolveSelection?.(requested)) ?? requested);\n await this.options.validateSelection?.(selection);\n if (revision === this.requestedRevision) this.requested = selection;\n const eligible = this.options.candidates.filter((entry) => this.eligible(entry, selection));\n const missing = eligible.find((entry) => entry.required && !this.availableSources.has(entry.packageName));\n if (missing) throw new Error(`Required headless package '${missing.packageName}' is unavailable`);\n // The kernel's layer key here is the precomputed package eligibility key.\n // Minor tool restrictions run in the tools sink only after this owner gate.\n this.applying = selection;\n this.refreshing = true;\n let compositionChanged = false;\n try {\n const previousValues = new Map(\n this.kernel.slots.map((slot) => [slot, this.kernel.activeValues(slot)] as const),\n );\n await this.kernel.setActiveLayers(eligible.map((entry) => entry.packageName));\n await this.refreshChangedSelection(this.applied, selection, previousValues);\n compositionChanged =\n this.failure !== undefined ||\n this.appliedRevision === 0 ||\n !sameSelection(this.applied, selection) ||\n this.restrictionsChanged ||\n this.contributionsChanged ||\n !sameValues(previousValues.get('tools') ?? [], this.kernel.activeValues('tools')) ||\n !sameValues(previousValues.get('resources') ?? [], this.kernel.activeValues('resources'));\n this.restrictionsChanged = false;\n this.contributionsChanged = false;\n } finally {\n this.refreshing = false;\n }\n if (this.disposed) throw new Error('The headless host is disposed');\n this.activeSources = new Set(eligible.map((entry) => entry.packageName));\n this.applied = selection;\n this.appliedRevision = revision;\n this.failure = undefined;\n this.ready = revision === this.requestedRevision;\n try {\n for (const listener of this.selectionListeners) await listener(selection);\n } catch (error) {\n if (isPoHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;\n throw error;\n }\n if (compositionChanged) await this.options.onApplied?.(selection, revision);\n };\n const result = this.tail.catch(() => undefined).then(apply);\n this.tail = result.catch((error: unknown) => {\n this.failure = error;\n this.ready = false;\n // close() marks the host disposed before draining this tail, so every selection still\n // queued at that point rejects by design. Those rejections are teardown artifacts, not\n // actionable failures, and reporting them surfaces one notice per queued contribution.\n if (!this.disposed) this.options.onError?.(error, 'apply');\n });\n await result;\n await this.settled();\n if (this.failure !== undefined) throw this.failure;\n this.assertReady();\n }\n\n /** Drain selections, including ones queued by selection listeners. */\n async settled(): Promise<void> {\n let pending: Promise<void>;\n do {\n pending = this.tail;\n await pending;\n } while (pending !== this.tail);\n }\n\n private assertReady(): void {\n if (this.disposed || !this.ready)\n throw new Error('Headless dispatch is blocked until selection is coherently applied');\n }\n\n private add<T>(slot: string, value: T): PoHeadlessRegistration {\n const owner = readPoHeadlessOwner(this.ctx);\n if (!owner) throw new Error('A headless contribution must have descriptor-owned package identity');\n this.ready = false;\n this.contributionsChanged = true;\n const registration = this.kernel.contribute(slot, {\n source: owner.packageName,\n layer: owner.packageName,\n value: { source: owner.packageName, value } satisfies Owned<T>,\n });\n let disposed = false;\n const dispose = (): void => {\n if (disposed) return;\n disposed = true;\n this.ready = false;\n this.contributionsChanged = true;\n registration.dispose();\n // Reconciled on the same terms as the registration below: before the first applied\n // selection the caller's own select() computes the whole composition, and the sources\n // that selection gates on are not known yet.\n if (this.appliedRevision > 0 && !this.disposed && !this.refreshing) void this.select({}).catch(() => undefined);\n };\n this.ctx.effect(() => dispose, `headless ${slot} contribution`);\n // Initial registration is reconciled once the caller has installed all packages.\n if (this.appliedRevision > 0 && !this.refreshing) void this.select({}).catch(() => undefined);\n return { dispose };\n }\n\n registerTool<TParameters extends TSchema>(tool: PoHeadlessTool<TParameters>): PoHeadlessRegistration {\n return this.add('tools', tool);\n }\n registerResource(resource: PoHeadlessResource): PoHeadlessRegistration {\n return this.add('resources', resource);\n }\n registerCommand(command: PoHeadlessCommand): PoHeadlessRegistration {\n return this.add('commands', command);\n }\n registerHook(hook: PoHeadlessHook): PoHeadlessRegistration {\n return this.add('hooks', hook);\n }\n registerActivity(activity: PoHeadlessActivity): PoHeadlessRegistration {\n return this.add('activities', activity);\n }\n\n private canRecoverSelection(): boolean {\n return (\n !this.disposed &&\n !this.ready &&\n !this.refreshing &&\n !this.contributionsChanged &&\n !this.restrictionsChanged &&\n this.recoveryRevision === this.requestedRevision &&\n this.appliedRevision === this.requestedRevision &&\n isPoHeadlessPromptAdmissionError(this.failure)\n );\n }\n\n listCommands(): Array<Pick<PoHeadlessCommand, 'name' | 'description'>> {\n const recovering = this.canRecoverSelection();\n if (!recovering) this.assertReady();\n return [...this.commands.values()]\n .filter(\n ({ source, value }) =>\n !recovering ||\n (value.selectionRecovery === true && this.activeSources.has(source) && this.availableSources.has(source)),\n )\n .map(({ value }) => ({ name: value.name, description: value.description }));\n }\n\n async dispatchCommand(name: string, args: string): Promise<void> {\n const command = this.commands.get(name);\n if (!this.canRecoverSelection() || command?.value.selectionRecovery !== true) this.assertReady();\n if (!command || !this.activeSources.has(command.source) || !this.availableSources.has(command.source))\n throw new Error(`Command '${name}' is inactive or unknown`);\n await command.value.execute(args, this.context);\n }\n\n async dispatchHook(\n event: PoHeadlessEventName,\n payload: Readonly<Record<string, unknown>>,\n signal?: AbortSignal,\n ): Promise<unknown[]> {\n this.assertReady();\n signal?.throwIfAborted();\n const results: unknown[] = [];\n const revision = this.appliedRevision;\n let current = payload;\n for (const hook of this.hooks.filter((entry) => entry.value.event === event)) {\n this.assertReady();\n signal?.throwIfAborted();\n if (!this.hooks.includes(hook)) continue;\n let result: unknown;\n try {\n result = await hook.value.handle(current as never, signal ? { ...this.context, signal } : this.context);\n signal?.throwIfAborted();\n } catch (error) {\n if (isPoHeadlessPromptAdmissionError(error)) throw error;\n signal?.throwIfAborted();\n this.options.onError?.(error, 'hook');\n continue;\n }\n if (event === 'session_start') {\n // Startup hooks may register retained contributions. Finish their queued reconciliation\n // before the next hook, without relaxing dispatch guards during the transition.\n await this.tail;\n this.assertReady();\n }\n results.push(result);\n if (result && typeof result === 'object' && !Array.isArray(result)) {\n const patch = result as Record<string, unknown>;\n // Execution hooks compose in registration order, just like the public harness hooks.\n const fields =\n event === 'context'\n ? ['messages', 'systemPrompt']\n : event === 'tool_call'\n ? ['args']\n : event === 'tool_result'\n ? ['content', 'details', 'isError', 'usage']\n : event === 'before_agent_start'\n ? ['systemPrompt']\n : event === 'before_provider_request'\n ? ['payload']\n : [];\n for (const field of fields) {\n if (event === 'before_agent_start' && typeof patch[field] !== 'string') continue;\n if (patch[field] !== undefined) current = { ...current, [field]: patch[field] };\n }\n // Denials and structural decisions use upstream first-result semantics.\n if (event === 'tool_call' && patch.block !== undefined) break;\n if (\n event === 'session_before_compact' &&\n (patch.cancel !== undefined || patch.decline !== undefined || patch.compaction !== undefined)\n )\n break;\n }\n }\n if (event === 'before_agent_start' || event === 'context' || event === 'tool_call') {\n this.assertReady();\n if (revision !== this.appliedRevision) {\n throw new Error(\n event === 'before_agent_start'\n ? 'Selection changed while preparing the system prompt'\n : `Selection changed while dispatching ${event}`,\n );\n }\n }\n return results;\n }\n\n private async resolveResources(selection: PoHeadlessSelection): Promise<readonly ResolvedHeadlessResource[]> {\n const context = this.options.context(selection);\n const result: ResolvedHeadlessResource[] = [];\n for (const resource of this.resources) {\n let value: string;\n try {\n value = await resource.value.read(context);\n } catch (error) {\n // Report and skip, never rethrow. This runs on every prompt build, and a\n // throw here reaches the systemPrompt callback, sets promptPreparationFailed\n // and denies every model request for the rest of the session. One package\n // missing one shipped file must not take the session down with it.\n this.options.onError?.(\n new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }),\n 'resource',\n );\n continue;\n }\n result.push({\n source: resource.source,\n name: resource.value.name,\n kind: resource.value.kind,\n ...(resource.value.description === undefined ? {} : { description: resource.value.description }),\n ...(resource.value.path === undefined ? {} : { path: resource.value.path }),\n text: value,\n });\n }\n return result;\n }\n\n async readResources(): Promise<readonly ResolvedHeadlessResource[]> {\n this.assertReady();\n const revision = this.appliedRevision;\n const result = await this.resolveResources(this.applied);\n this.assertReady();\n if (revision !== this.appliedRevision) throw new Error('Selection changed while reading resources');\n return result;\n }\n\n async close(): Promise<void> {\n if (this.disposed) return;\n this.disposed = true;\n this.ready = false;\n this.selectionListeners.clear();\n await this.tail.catch(() => undefined);\n const failures: unknown[] = [];\n for (const stop of [...this.activities.values()].reverse()) {\n try {\n await stop();\n } catch (error) {\n failures.push(error);\n }\n }\n this.activities.clear();\n this.kernel.dispose();\n if (failures.length) throw new AggregateError(failures, 'Headless activities failed to stop');\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CountTokens } from "../../../services/toolCost/index.mjs";
2
2
  import "../../../../toolInventory.mjs";
3
- import { DoomHeadlessActivity, DoomHeadlessCommand, DoomHeadlessEventName, DoomHeadlessExecutionContext, DoomHeadlessHook, DoomHeadlessHostService, DoomHeadlessRegistration, DoomHeadlessResource, DoomHeadlessSelection, DoomHeadlessSelectionChange, DoomHeadlessTool, DoomHeadlessToolRestriction } from "../../../schemas/headless.mjs";
3
+ import { PoHeadlessActivity, PoHeadlessCommand, PoHeadlessEventName, PoHeadlessExecutionContext, PoHeadlessHook, PoHeadlessHostService, PoHeadlessRegistration, PoHeadlessResource, PoHeadlessSelection, PoHeadlessSelectionChange, PoHeadlessTool, PoHeadlessToolRestriction } from "../../../schemas/headless.mjs";
4
4
  import "../../../../headless.mjs";
5
5
  import { HeadlessContextInventory, HeadlessHostOptions, HeadlessSelectionStatus, ResolvedHeadlessResource } from "../types/headlessHost.mjs";
6
6
  import { TSchema } from "typebox";
@@ -11,7 +11,7 @@ import { Context, Service } from "@deepseek-ai/cordis";
11
11
  *
12
12
  * Prefers the resource's own `description` and `path`. The fallbacks below are what
13
13
  * every skill used to get, and they are only good enough for explicit invocation,
14
- * which matches on name: `doom-headless://` is not a path any tool can open, and
14
+ * which matches on name: `po-headless://` is not a path any tool can open, and
15
15
  * "Headless skill from <source>" gives the model nothing to select on. A skill is
16
16
  * only advertised in the prompt once it carries a real path.
17
17
  */
@@ -26,8 +26,8 @@ export declare function headlessHarnessSkill(resource: ResolvedHeadlessResource)
26
26
  * load where it decides to call the tool. Rebuilt whenever the applied skills change.
27
27
  */
28
28
  export declare function describeLoadSkillTool(base: string, skills: readonly ResolvedHeadlessResource[]): string;
29
- /** Retains facets and their state; only kernel-computed active contributions change. */
30
- export declare class HeadlessHost extends Service<DoomHeadlessHostService> implements DoomHeadlessHostService {
29
+ /** Retains packages and their state; only kernel-computed active contributions change. */
30
+ export declare class HeadlessHost extends Service<PoHeadlessHostService> implements PoHeadlessHostService {
31
31
  private readonly kernel;
32
32
  private readonly selectionListeners;
33
33
  private restrictions;
@@ -55,7 +55,7 @@ export declare class HeadlessHost extends Service<DoomHeadlessHostService> imple
55
55
  private hooks;
56
56
  private readonly activities;
57
57
  constructor(context: Context, options: HeadlessHostOptions);
58
- get context(): DoomHeadlessExecutionContext;
58
+ get context(): PoHeadlessExecutionContext;
59
59
  get status(): HeadlessSelectionStatus;
60
60
  /**
61
61
  * The resources the last applied selection resolved to.
@@ -66,48 +66,48 @@ export declare class HeadlessHost extends Service<DoomHeadlessHostService> imple
66
66
  * the same moments, so it reads this instead of dispatching.
67
67
  */
68
68
  get appliedResources(): readonly ResolvedHeadlessResource[];
69
- get toolSurface(): DoomHeadlessHostService['toolSurface'];
69
+ get toolSurface(): PoHeadlessHostService['toolSurface'];
70
70
  readSkill(name: string): string | undefined;
71
- inspectCapabilities(): ReturnType<DoomHeadlessHostService['inspectCapabilities']>;
71
+ inspectCapabilities(): ReturnType<PoHeadlessHostService['inspectCapabilities']>;
72
72
  /**
73
73
  * Every tool name this composition's eligible owners declare, including the
74
74
  * ones a condition or a restriction currently gates out.
75
75
  *
76
76
  * `appliedTools` answers what runs now. A merge that places another surface's
77
- * tools beside these needs what is spoken for, so a name a facet deliberately
77
+ * tools beside these needs what is spoken for, so a name a package deliberately
78
78
  * withheld is not handed to an unreconciled surface instead. Owner
79
79
  * eligibility stays the outer gate: a package the selection excluded declares
80
80
  * nothing here.
81
81
  */
82
82
  get declaredToolNames(): ReadonlySet<string>;
83
- getContextInventory(selection?: DoomHeadlessSelection, countTokens?: CountTokens): HeadlessContextInventory;
83
+ getContextInventory(selection?: PoHeadlessSelection, countTokens?: CountTokens): HeadlessContextInventory;
84
84
  setAvailableSources(sources: readonly string[]): void;
85
85
  private matches;
86
86
  private selected;
87
87
  assertActive(source?: string): void;
88
- subscribeSelection(listener: (selection: DoomHeadlessSelection) => void | Promise<void>): () => void;
89
- /** Shared by facet reconciliation and the final Pi/facet merge. */
88
+ subscribeSelection(listener: (selection: PoHeadlessSelection) => void | Promise<void>): () => void;
89
+ /** Shared by package reconciliation and the final Pi/package merge. */
90
90
  allowsTool(name: string): boolean;
91
- registerToolRestriction(restriction: DoomHeadlessToolRestriction): DoomHeadlessRegistration;
91
+ registerToolRestriction(restriction: PoHeadlessToolRestriction): PoHeadlessRegistration;
92
92
  private eligible;
93
- changeSelection(change: DoomHeadlessSelectionChange): Promise<void>;
93
+ changeSelection(change: PoHeadlessSelectionChange): Promise<void>;
94
94
  private refreshChangedSelection;
95
95
  /** Refresh inherited defaults only at turn admission, keeping explicit session axes. */
96
- inheritSelection(selection: Partial<DoomHeadlessSelection>): Promise<void>;
97
- select(patch: Partial<DoomHeadlessSelection>): Promise<void>;
96
+ inheritSelection(selection: Partial<PoHeadlessSelection>): Promise<void>;
97
+ select(patch: Partial<PoHeadlessSelection>): Promise<void>;
98
98
  /** Drain selections, including ones queued by selection listeners. */
99
99
  settled(): Promise<void>;
100
100
  private assertReady;
101
101
  private add;
102
- registerTool<TParameters extends TSchema>(tool: DoomHeadlessTool<TParameters>): DoomHeadlessRegistration;
103
- registerResource(resource: DoomHeadlessResource): DoomHeadlessRegistration;
104
- registerCommand(command: DoomHeadlessCommand): DoomHeadlessRegistration;
105
- registerHook(hook: DoomHeadlessHook): DoomHeadlessRegistration;
106
- registerActivity(activity: DoomHeadlessActivity): DoomHeadlessRegistration;
102
+ registerTool<TParameters extends TSchema>(tool: PoHeadlessTool<TParameters>): PoHeadlessRegistration;
103
+ registerResource(resource: PoHeadlessResource): PoHeadlessRegistration;
104
+ registerCommand(command: PoHeadlessCommand): PoHeadlessRegistration;
105
+ registerHook(hook: PoHeadlessHook): PoHeadlessRegistration;
106
+ registerActivity(activity: PoHeadlessActivity): PoHeadlessRegistration;
107
107
  private canRecoverSelection;
108
- listCommands(): Array<Pick<DoomHeadlessCommand, 'name' | 'description'>>;
108
+ listCommands(): Array<Pick<PoHeadlessCommand, 'name' | 'description'>>;
109
109
  dispatchCommand(name: string, args: string): Promise<void>;
110
- dispatchHook(event: DoomHeadlessEventName, payload: Readonly<Record<string, unknown>>, signal?: AbortSignal): Promise<unknown[]>;
110
+ dispatchHook(event: PoHeadlessEventName, payload: Readonly<Record<string, unknown>>, signal?: AbortSignal): Promise<unknown[]>;
111
111
  private resolveResources;
112
112
  readResources(): Promise<readonly ResolvedHeadlessResource[]>;
113
113
  close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"headlessHost.d.mts","names":[],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"mappings":";;;;;;;;;;;;;;;;;wBAuEgB,qBAAqB,UAAU;EAE3C;EACA;EACA;EACA;;;;;;wBAYY,sBAAsB,cAAc,iBAAiB;;qBAoBxD,qBAAqB,QAAQ,oCAAoC;mBAC3D;mBACA;UACT;UACA;UACA;mBACS;mBACA;UACT;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;mBACS;EAEjB,YAAY,SAAS,SAAS,SAAS;MAiEnC,WAAW;MAIX,UAAU;;;;;;;;;MA0BV,6BAA6B;MAI7B,eAAe;EAInB,UAAU;EAKV,uBAAuB,WAAW;;;;;;;;;;;MAwE9B,qBAAqB;EAGzB,oBACE,YAAW,uBACX,cAAc,cACb;EAyFH,oBAAoB;UAGZ;UAMA;EAIR,aAAa;EAMb,mBAAmB,WAAW,WAAW,iCAAiC;;EAQ1E,WAAW;EAYX,wBAAwB,aAAa,8BAA8B;UAI3D;EAWR,gBAAgB,QAAQ,8BAA8B;UAQxC;;EA2BR,iBAAiB,WAAW,QAAQ,yBAAyB;EAqB7D,OAAO,OAAO,QAAQ,yBAAyB;;EAoE/C,WAAW;UAQT;UAKA;EA4BR,aAAa,oBAAoB,SAAS,MAAM,iBAAiB,eAAe;EAGhF,iBAAiB,UAAU,uBAAuB;EAGlD,gBAAgB,SAAS,sBAAsB;EAG/C,aAAa,MAAM,mBAAmB;EAGtC,iBAAiB,UAAU,uBAAuB;UAI1C;EAaR,gBAAgB,MAAM,KAAK;EAYrB,gBAAgB,cAAc,eAAe;EAQ7C,aACJ,OAAO,uBACP,SAAS,SAAS,0BAClB,SAAS,cACR;UAoEW;EA6BR,iBAAiB,iBAAiB;EASlC,SAAS"}
1
+ {"version":3,"file":"headlessHost.d.mts","names":[],"sources":["../../../../../src/systems/main/adapters/headlessHost.ts"],"mappings":";;;;;;;;;;;;;;;;;wBAuEgB,qBAAqB,UAAU;EAE3C;EACA;EACA;EACA;;;;;;wBAYY,sBAAsB,cAAc,iBAAiB;;qBAoBxD,qBAAqB,QAAQ,kCAAkC;mBACzD;mBACA;UACT;UACA;UACA;mBACS;mBACA;UACT;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;mBACS;EAEjB,YAAY,SAAS,SAAS,SAAS;MAiEnC,WAAW;MAIX,UAAU;;;;;;;;;MA0BV,6BAA6B;MAI7B,eAAe;EAInB,UAAU;EAKV,uBAAuB,WAAW;;;;;;;;;;;MAwE9B,qBAAqB;EAGzB,oBACE,YAAW,qBACX,cAAc,cACb;EAyFH,oBAAoB;UAGZ;UAMA;EAIR,aAAa;EAMb,mBAAmB,WAAW,WAAW,+BAA+B;;EAQxE,WAAW;EAYX,wBAAwB,aAAa,4BAA4B;UAIzD;EAWR,gBAAgB,QAAQ,4BAA4B;UAWtC;;EA2BR,iBAAiB,WAAW,QAAQ,uBAAuB;EAqB3D,OAAO,OAAO,QAAQ,uBAAuB;;EAoE7C,WAAW;UAQT;UAKA;EA4BR,aAAa,oBAAoB,SAAS,MAAM,eAAe,eAAe;EAG9E,iBAAiB,UAAU,qBAAqB;EAGhD,gBAAgB,SAAS,oBAAoB;EAG7C,aAAa,MAAM,iBAAiB;EAGpC,iBAAiB,UAAU,qBAAqB;UAIxC;EAaR,gBAAgB,MAAM,KAAK;EAYrB,gBAAgB,cAAc,eAAe;EAQ7C,aACJ,OAAO,qBACP,SAAS,SAAS,0BAClB,SAAS,cACR;UAoEW;EA8BR,iBAAiB,iBAAiB;EASlC,SAAS"}
@@ -1,8 +1,8 @@
1
- import { createDoomKernel } from "../../../services/kernel/index.mjs";
2
- import { DOOM_HEADLESS_HOST_SERVICE, isDoomHeadlessPromptAdmissionError, isDoomHeadlessToolModelVisible, readDoomHeadlessOwner } from "../../../schemas/headless.mjs";
3
- import { readDoomMcpStatus } from "../../../schemas/mcpStatus.mjs";
1
+ import { createPoKernel } from "../../../services/kernel/index.mjs";
2
+ import { PO_HEADLESS_HOST_SERVICE, isPoHeadlessPromptAdmissionError, isPoHeadlessToolModelVisible, readPoHeadlessOwner } from "../../../schemas/headless.mjs";
3
+ import { readPoMcpStatus } from "../../../schemas/mcpStatus.mjs";
4
4
  import "../../../../mcpStatus.mjs";
5
- import { formatSkillsForSystemPrompt } from "../../../services/piExtensionHost/index.mjs";
5
+ import { formatSkillsForSystemPrompt } from "../../../services/skillPrompt/index.mjs";
6
6
  import { Service } from "@deepseek-ai/cordis";
7
7
  //#region src/systems/main/adapters/headlessHost.ts
8
8
  function sameStrings(left, right) {
@@ -19,7 +19,7 @@ function sameSelection(left, right) {
19
19
  *
20
20
  * Prefers the resource's own `description` and `path`. The fallbacks below are what
21
21
  * every skill used to get, and they are only good enough for explicit invocation,
22
- * which matches on name: `doom-headless://` is not a path any tool can open, and
22
+ * which matches on name: `po-headless://` is not a path any tool can open, and
23
23
  * "Headless skill from <source>" gives the model nothing to select on. A skill is
24
24
  * only advertised in the prompt once it carries a real path.
25
25
  */
@@ -28,7 +28,7 @@ function headlessHarnessSkill(resource) {
28
28
  name: resource.name,
29
29
  description: resource.description ?? `Headless skill from ${resource.source}`,
30
30
  content: resource.text,
31
- filePath: resource.path ?? `doom-headless://${resource.source}/${resource.name}`
31
+ filePath: resource.path ?? `po-headless://${resource.source}/${resource.name}`
32
32
  };
33
33
  }
34
34
  function escapeXml(value) {
@@ -54,9 +54,9 @@ function describeLoadSkillTool(base, skills) {
54
54
  "</available_skills>"
55
55
  ].join("\n");
56
56
  }
57
- /** Retains facets and their state; only kernel-computed active contributions change. */
57
+ /** Retains packages and their state; only kernel-computed active contributions change. */
58
58
  var HeadlessHost = class extends Service {
59
- kernel = createDoomKernel();
59
+ kernel = createPoKernel();
60
60
  selectionListeners = /* @__PURE__ */ new Set();
61
61
  restrictions = [];
62
62
  restrictionsChanged = false;
@@ -83,7 +83,7 @@ var HeadlessHost = class extends Service {
83
83
  hooks = [];
84
84
  activities = /* @__PURE__ */ new Map();
85
85
  constructor(context, options) {
86
- super(context, DOOM_HEADLESS_HOST_SERVICE);
86
+ super(context, PO_HEADLESS_HOST_SERVICE);
87
87
  this.options = options;
88
88
  this.selectionOverrides = new Set(options.selectionOverrides);
89
89
  this.applied = structuredClone(options.selection);
@@ -138,7 +138,7 @@ var HeadlessHost = class extends Service {
138
138
  this.activities.set(entry, stop);
139
139
  } catch (error) {
140
140
  if (this.options.candidates.some((candidate) => candidate.packageName === entry.source && candidate.required)) throw error;
141
- this.options.onError?.(error);
141
+ this.options.onError?.(error, "activity");
142
142
  }
143
143
  }
144
144
  });
@@ -177,7 +177,7 @@ var HeadlessHost = class extends Service {
177
177
  if (ready) {
178
178
  for (const entry of this.kernel.activeValues("tools")) {
179
179
  const active = this.tools.get(entry.value.name) === entry;
180
- const discoverable = active && isDoomHeadlessToolModelVisible(entry.value);
180
+ const discoverable = active && isPoHeadlessToolModelVisible(entry.value);
181
181
  const reason = active ? discoverable ? void 0 : "not-discoverable" : !this.matches(entry.value.when) ? "inactive" : !this.allowsTool(entry.value.name) ? "restricted" : "shadowed";
182
182
  capabilities.push({
183
183
  source: entry.source,
@@ -219,7 +219,7 @@ var HeadlessHost = class extends Service {
219
219
  * ones a condition or a restriction currently gates out.
220
220
  *
221
221
  * `appliedTools` answers what runs now. A merge that places another surface's
222
- * tools beside these needs what is spoken for, so a name a facet deliberately
222
+ * tools beside these needs what is spoken for, so a name a package deliberately
223
223
  * withheld is not handed to an unreconciled surface instead. Owner
224
224
  * eligibility stays the outer gate: a package the selection excluded declares
225
225
  * nothing here.
@@ -234,13 +234,13 @@ var HeadlessHost = class extends Service {
234
234
  mode: when.domain
235
235
  });
236
236
  const mcpOwners = /* @__PURE__ */ new Map();
237
- for (const server of readDoomMcpStatus(this.ctx)?.getSnapshot().servers ?? []) for (const name of server.tools) mcpOwners.set(name, server.name);
237
+ for (const server of readPoMcpStatus(this.ctx)?.getSnapshot().servers ?? []) for (const name of server.tools) mcpOwners.set(name, server.name);
238
238
  const mcpPackages = /* @__PURE__ */ new Map();
239
239
  const toolsBySource = /* @__PURE__ */ new Map();
240
240
  for (const contribution of this.kernel.contributions("tools")) {
241
241
  if (!currentSources.has(contribution.source)) continue;
242
242
  const tool = contribution.value.value;
243
- if (!isDoomHeadlessToolModelVisible(tool)) continue;
243
+ if (!isPoHeadlessToolModelVisible(tool)) continue;
244
244
  const contextAttribution = conditionAttribution(tool.when);
245
245
  const entry = {
246
246
  name: tool.name,
@@ -316,7 +316,7 @@ var HeadlessHost = class extends Service {
316
316
  this.selectionListeners.delete(listener);
317
317
  };
318
318
  }
319
- /** Shared by facet reconciliation and the final Pi/facet merge. */
319
+ /** Shared by package reconciliation and the final Pi/package merge. */
320
320
  allowsTool(name) {
321
321
  const allowed = this.options.allowedTools?.(this.applying);
322
322
  return (allowed === void 0 || allowed.includes(name)) && this.restrictions.every((restriction) => (restriction.allowedTools === void 0 || restriction.allowedTools.includes(name)) && !restriction.excludedTools?.includes(name));
@@ -328,14 +328,17 @@ var HeadlessHost = class extends Service {
328
328
  return entry.scopes.includes("session") && entry.owners.some((owner) => owner.majorMode === selection.majorMode && (owner.layer === "default" || selection.activeLayers.includes(owner.layer)));
329
329
  }
330
330
  changeSelection(change) {
331
- this.selectionOverrides.add(change.axis);
332
- if (change.axis === "majorMode") return this.select({ majorMode: change.majorMode });
333
- if (change.axis === "domains") return this.select({ domains: change.domains });
334
- if (change.axis === "profile") return this.select({ profile: change.profile });
335
- return this.select({ state: {
336
- ...this.requested.state,
337
- [change.key]: [...change.values]
338
- } });
331
+ const apply = (change) => {
332
+ this.selectionOverrides.add(change.axis);
333
+ if (change.axis === "majorMode") return this.select({ majorMode: change.majorMode });
334
+ if (change.axis === "domains") return this.select({ domains: change.domains });
335
+ if (change.axis === "profile") return this.select({ profile: change.profile });
336
+ return this.select({ state: {
337
+ ...this.requested.state,
338
+ [change.key]: [...change.values]
339
+ } });
340
+ };
341
+ return this.options.scheduleSelection?.(change, apply) ?? apply(change);
339
342
  }
340
343
  async refreshChangedSelection(previous, selection, previousValues) {
341
344
  const majorChanged = previous.majorMode !== selection.majorMode || !sameStrings(previous.activeLayers, selection.activeLayers);
@@ -404,7 +407,7 @@ var HeadlessHost = class extends Service {
404
407
  try {
405
408
  for (const listener of this.selectionListeners) await listener(selection);
406
409
  } catch (error) {
407
- if (isDoomHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;
410
+ if (isPoHeadlessPromptAdmissionError(error)) this.recoveryRevision = revision;
408
411
  throw error;
409
412
  }
410
413
  if (compositionChanged) await this.options.onApplied?.(selection, revision);
@@ -413,7 +416,7 @@ var HeadlessHost = class extends Service {
413
416
  this.tail = result.catch((error) => {
414
417
  this.failure = error;
415
418
  this.ready = false;
416
- if (!this.disposed) this.options.onError?.(error);
419
+ if (!this.disposed) this.options.onError?.(error, "apply");
417
420
  });
418
421
  await result;
419
422
  await this.settled();
@@ -432,7 +435,7 @@ var HeadlessHost = class extends Service {
432
435
  if (this.disposed || !this.ready) throw new Error("Headless dispatch is blocked until selection is coherently applied");
433
436
  }
434
437
  add(slot, value) {
435
- const owner = readDoomHeadlessOwner(this.ctx);
438
+ const owner = readPoHeadlessOwner(this.ctx);
436
439
  if (!owner) throw new Error("A headless contribution must have descriptor-owned package identity");
437
440
  this.ready = false;
438
441
  this.contributionsChanged = true;
@@ -473,7 +476,7 @@ var HeadlessHost = class extends Service {
473
476
  return this.add("activities", activity);
474
477
  }
475
478
  canRecoverSelection() {
476
- return !this.disposed && !this.ready && !this.refreshing && !this.contributionsChanged && !this.restrictionsChanged && this.recoveryRevision === this.requestedRevision && this.appliedRevision === this.requestedRevision && isDoomHeadlessPromptAdmissionError(this.failure);
479
+ return !this.disposed && !this.ready && !this.refreshing && !this.contributionsChanged && !this.restrictionsChanged && this.recoveryRevision === this.requestedRevision && this.appliedRevision === this.requestedRevision && isPoHeadlessPromptAdmissionError(this.failure);
477
480
  }
478
481
  listCommands() {
479
482
  const recovering = this.canRecoverSelection();
@@ -507,9 +510,9 @@ var HeadlessHost = class extends Service {
507
510
  } : this.context);
508
511
  signal?.throwIfAborted();
509
512
  } catch (error) {
510
- if (isDoomHeadlessPromptAdmissionError(error)) throw error;
513
+ if (isPoHeadlessPromptAdmissionError(error)) throw error;
511
514
  signal?.throwIfAborted();
512
- this.options.onError?.(error);
515
+ this.options.onError?.(error, "hook");
513
516
  continue;
514
517
  }
515
518
  if (event === "session_start") {
@@ -550,7 +553,7 @@ var HeadlessHost = class extends Service {
550
553
  try {
551
554
  value = await resource.value.read(context);
552
555
  } catch (error) {
553
- this.options.onError?.(new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }));
556
+ this.options.onError?.(new Error(`Could not read headless resource '${resource.source}/${resource.value.name}'`, { cause: error }), "resource");
554
557
  continue;
555
558
  }
556
559
  result.push({