@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":"headless.mjs","names":[],"sources":["../../../src/schemas/headless.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport type { ThinkingLevel } from '@earendil-works/pi-agent-core';\nimport type { CallToolResult, Tool } from '@modelcontextprotocol/server';\nimport type { Static, TSchema } from 'typebox';\n\nimport type { SessionToolSurface } from '../types/server/sessionToolSurface';\nimport type { DoomSessionContext } from './hubChannel';\nimport type { DoomNotificationRequest } from './notification';\nimport type { DoomServerBundleEntry } from './serverBundle';\n\n/** Session-only contributions. This is not a Pi ExtensionAPI or a TUI adapter. */\nexport const DOOM_HEADLESS_HOST_SERVICE = 'doom/headless-host';\nexport const DOOM_HEADLESS_OWNER = Symbol.for('doom/headless-owner');\n\nconst PROMPT_ADMISSION_ERROR = 'DoomHeadlessPromptAdmissionError';\n\n/** Admission is a host boundary, not an advisory facet-hook failure. */\nexport class DoomHeadlessPromptAdmissionError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = PROMPT_ADMISSION_ERROR;\n }\n}\n\nconst SESSION_SETUP_ERROR = 'DoomSessionSetupError';\n\n/**\n * A session cannot start until the user fixes their setup, such as configuring a model.\n *\n * Its message is written for the user and says what to do, so a server returns it as is\n * rather than hiding it behind a generic internal error.\n */\nexport class DoomSessionSetupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = SESSION_SETUP_ERROR;\n }\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isDoomSessionSetupError(error: unknown): error is Error {\n return error instanceof Error && error.name === SESSION_SETUP_ERROR;\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isDoomHeadlessPromptAdmissionError(error: unknown): boolean {\n return error instanceof Error && error.name === PROMPT_ADMISSION_ERROR;\n}\nconst TOOL_BUSY_ERROR = 'DoomHeadlessToolBusyError';\n\n/** The tool and its hooks have not started. */\nexport class DoomHeadlessToolBusyError extends Error {\n constructor() {\n super('An operation is already running');\n this.name = TOOL_BUSY_ERROR;\n }\n}\n\nexport function isDoomHeadlessToolBusyError(error: unknown): boolean {\n return error instanceof Error && error.name === TOOL_BUSY_ERROR;\n}\n\nexport interface DoomHeadlessSelection {\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly domains: readonly string[];\n readonly profile?: string;\n /** Feature-owned activation sets, keyed by the contributing capability. */\n readonly state?: Readonly<Record<string, readonly string[]>>;\n}\n\n/** One package-owned selection transition. Server facets change exactly one axis per operation. */\nexport type DoomHeadlessSelectionChange =\n | { readonly axis: 'majorMode'; readonly majorMode: string }\n | { readonly axis: 'domains'; readonly domains: readonly string[] }\n | { readonly axis: 'profile'; readonly profile?: string }\n | {\n readonly axis: 'state';\n readonly key: string;\n readonly values: readonly string[];\n };\n\nexport function readDoomHeadlessOwner(context: Context): DoomServerBundleEntry | undefined {\n return (context as Context & { [DOOM_HEADLESS_OWNER]?: DoomServerBundleEntry })[DOOM_HEADLESS_OWNER];\n}\n\nexport interface DoomHeadlessRegistration {\n dispose(): void;\n}\n\nexport type DoomHeadlessContent = { type: 'text'; text: string } | { type: 'image'; data: string; mimeType: string };\n\nexport interface DoomHeadlessToolResult {\n content: DoomHeadlessContent[];\n /** Public MCP result data. Internal renderer details are not a remote result contract. */\n structuredContent?: Record<string, unknown>;\n /** Component-only MCP metadata, never inferred from internal renderer details. */\n _meta?: CallToolResult['_meta'];\n details?: unknown;\n isError?: boolean;\n}\n\n/**\n * Narrows a Pi tool result to the headless contract. Pi types `structuredContent` as any JSON\n * value, while MCP only accepts an object, so anything else is dropped rather than forwarded.\n */\nexport function toDoomHeadlessToolResult(result: {\n readonly content: DoomHeadlessContent[];\n readonly details?: unknown;\n readonly structuredContent?: unknown;\n readonly _meta?: CallToolResult['_meta'];\n readonly isError?: boolean;\n}): DoomHeadlessToolResult {\n const { structuredContent } = result;\n return {\n content: result.content,\n details: result.details,\n ...(result._meta === undefined ? {} : { _meta: result._meta }),\n ...(typeof structuredContent === 'object' && structuredContent !== null && !Array.isArray(structuredContent)\n ? { structuredContent: structuredContent as Record<string, unknown> }\n : {}),\n ...(result.isError === undefined ? {} : { isError: result.isError }),\n };\n}\n\nexport interface DoomHeadlessClientRequest {\n kind: 'confirm' | 'select' | 'input';\n title: string;\n message?: string;\n options?: readonly { label: string; description?: string; value: string }[];\n initialValue?: string;\n multiline?: boolean;\n}\n\nexport interface DoomHeadlessClient {\n /**\n * Operator-facing surface only: the body is flattened to one line and capped at 4096 characters\n * by schemas/notification.ts:73-83, and the model never sees it. Use session.admitPrompt to\n * reach the model.\n */\n notify(request: DoomNotificationRequest): void | Promise<void>;\n request(request: DoomHeadlessClientRequest, signal?: AbortSignal): Promise<unknown>;\n setStatus(source: string, text: string | undefined): void;\n appendComposerText?(text: string): void;\n}\n\nexport interface DoomHeadlessModelSettings {\n model?: { provider: string; id: string };\n thinkingLevel: ThinkingLevel;\n}\n\nexport interface DoomHeadlessSession {\n readModelSettings?(): Promise<DoomHeadlessModelSettings>;\n setFastMode?(enabled: boolean): Promise<void>;\n setModelSettings?(settings: Partial<DoomHeadlessModelSettings>): Promise<void>;\n /** Query durable history on demand; hosts do not retain the entire transcript. */\n entries(query?: {\n type?: 'custom' | 'message';\n customType?: string;\n limit?: number;\n }): readonly Record<string, unknown>[] | Promise<readonly Record<string, unknown>[]>;\n appendCustomEntry(type: string, data: unknown): Promise<void>;\n /** Append a displayable informational message to history and model context, without admitting input or starting a turn. */\n appendMessage?(message: { type: string; text: string; display?: boolean; details?: unknown }): Promise<string | void>;\n /**\n * Admit one custom message without awaiting its turn, using environmental input policy.\n * Defaults to followUp. Reusing requestId deduplicates normal Durable admission retries;\n * locked-agent appends and deferred operator admission do not provide that guarantee.\n */\n admitMessage?(\n message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n },\n delivery?: 'steer' | 'followUp',\n requestId?: string,\n ): Promise<void>;\n /** Register a checkpoint flush before the next tool-turn request. Idle writes return undefined instead of queueing when busy. */\n registerCheckpointBoundary?(\n callback: (boundary: {\n signal?: AbortSignal;\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n }) => Promise<void>,\n ): {\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n dispose(): void;\n };\n /** Detached canonical model context before facet transformations, with context edits applied and no system message. */\n contextMessages?(): Promise<readonly Record<string, unknown>[]>;\n /** The latest measured assistant usage and the selected model's context window. */\n contextUsage?(): Promise<{ tokens: number | null; contextWindow: number } | undefined>;\n /** Label a durable entry without admitting input or starting a turn. */\n setLabel?(entryId: string, label: string | undefined): Promise<void>;\n /**\n * Delivers operator input through prompt preflight and awaits its turn.\n * Environmental input uses admitPrompt with origin omitted instead.\n * An idle agent is woken; busy delivery uses Durable steering or follow-up.\n */\n prompt(text: string, delivery?: 'prompt' | 'steer' | 'followUp'): Promise<void>;\n /**\n * Admits input without awaiting its turn. Environmental input omits origin and never\n * changes the operator queue. Operator origin uses prompt preflight, including voice\n * capture; 'interrupt' cancels the active run and admits operator input while preserving\n * retained queued work. Environmental callers may reuse requestId when retrying the same input.\n */\n admitPrompt?(\n text: string,\n delivery?: 'prompt' | 'steer' | 'followUp' | 'interrupt',\n origin?: 'operator',\n requestId?: string,\n ): Promise<void>;\n abort(): Promise<void>;\n compact(instructions?: string): Promise<void>;\n activity(): Promise<{ hasPendingMessages: boolean; isIdle: boolean }>;\n /** Renames the durable session and publishes the updated title to presentation clients. */\n setName?(name: string): Promise<void>;\n /** Capture the current persisted branch for an in-process child fork. */\n forkSource?(): Promise<{\n kind: 'v4-fork';\n sessionFile: string;\n branch: string;\n entryId?: string;\n }>;\n}\n\n/** A grant-filtered skill view available only during one remote MCP tool invocation. */\nexport interface DoomMcpSkillAccess {\n list(): Promise<readonly { name: string; description: string }[]>;\n read(name: string): Promise<string>;\n}\n\n/** A stateless auxiliary request. These tools are private to this request, never registered on the agent. */\nexport interface DoomHeadlessToolCompletionRequest {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n tools: readonly Pick<DoomHeadlessTool, 'name' | 'description' | 'parameters'>[];\n}\n\nexport interface DoomHeadlessToolCompletionResult {\n toolCalls: readonly { id: string; name: string; arguments: unknown }[];\n usage: { totalTokens: number };\n}\n\n/** Credential-free catalog metadata. Facets cannot obtain auth, headers, or a mutable registry. */\nexport interface DoomHeadlessModelMetadata {\n readonly provider: string;\n readonly id: string;\n readonly api?: string;\n readonly baseUrl?: string;\n readonly name?: string;\n readonly compat?: Readonly<Record<string, boolean | string>>;\n}\n\nexport interface DoomHeadlessExecutionContext {\n readonly cwd: string;\n /** The checkout the session runs in, distinct from the tool execution directory. */\n readonly repoRoot: string;\n readonly sessionId: string;\n /** The session's baseline context, when its host knows its workspace. */\n readonly sessionContext?: DoomSessionContext;\n /** Immutable session configuration. Facets must not read or mutate process.env. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n readonly client: DoomHeadlessClient;\n readonly session: DoomHeadlessSession;\n readonly model?: DoomHeadlessModelMetadata;\n /** Lookup in this session's catalog, including physical models named by finalized messages. */\n readonly getModel?: (provider: string, id: string) => DoomHeadlessModelMetadata | undefined;\n /** Detached credential-free authenticated chat catalog snapshot, without refreshing providers. */\n readonly getAvailableModels?: () => readonly {\n readonly provider: string;\n readonly id: string;\n }[];\n /** Operation cancellation, supplied only for an active invocation. */\n readonly signal?: AbortSignal;\n readonly textCompletion?: {\n available(reference: string): boolean;\n /** Tool-less conversation summary through the host's guarded session provider. */\n summarize?(\n reference: string,\n request: {\n messages: readonly Record<string, unknown>[];\n instructions: string;\n previousSummary?: string;\n thinkingLevel?: ThinkingLevel;\n signal?: AbortSignal;\n },\n ): Promise<string>;\n complete(\n reference: string,\n request: {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n },\n ): Promise<string>;\n };\n readonly toolCompletion?: {\n complete(reference: string, request: DoomHeadlessToolCompletionRequest): Promise<DoomHeadlessToolCompletionResult>;\n };\n /** Guarded image operation. Credentials and transport configuration remain host-owned. */\n readonly imageGeneration?: {\n available(): boolean;\n generate(request: {\n prompt: string;\n transparentBackground?: boolean;\n images?: readonly { data: string; mimeType: string }[];\n correlationId: string;\n signal?: AbortSignal;\n }): Promise<{ data: string; mimeType: 'image/png'; requestId?: string; generationId?: string }>;\n };\n /**\n * Guarded web search. Credentials, endpoint, model choice, session identity and transport remain host-owned.\n * `commands` follows a schema owned by the calling package; the host only bounds it.\n */\n readonly webSearch?: {\n available(): boolean;\n search(request: {\n commands: Readonly<Record<string, unknown>>;\n /** Optional plain-text excerpt, oldest first. Omit to send no conversation content. */\n conversation?: readonly { role: 'user' | 'assistant'; text: string }[];\n access: 'cached' | 'indexed' | 'live';\n signal?: AbortSignal;\n }): Promise<{ output: string; results?: readonly Record<string, unknown>[] }>;\n };\n readonly selection: DoomHeadlessSelection;\n /** Present only while an authenticated remote MCP tool is running. */\n readonly mcpSkills?: DoomMcpSkillAccess;\n shutdown(): void;\n}\n\n/** Conditions narrow an eligible owner's contributions; they can never restore a disabled owner. */\nexport interface DoomHeadlessCondition {\n state?: Readonly<Record<string, string>>;\n attribution?: { kind: 'minor' | 'domain'; mode: string; label?: string };\n domain?: string;\n}\n\nexport interface DoomHeadlessToolRestriction {\n when?: DoomHeadlessCondition;\n /** Optional capability ceiling. An empty list disables every tool. */\n allowedTools?: readonly string[];\n /**\n * Narrow exclusions without disabling unrelated tools. Exclude a tool your package owns, or a\n * specific foreign tool the mode exists to withdraw. Never enumerate an allowlist here.\n */\n excludedTools?: readonly string[];\n}\n\nexport interface DoomHeadlessTool<TParameters extends TSchema = TSchema> {\n when?: DoomHeadlessCondition;\n name: string;\n label?: string;\n description: string;\n parameters: TParameters;\n annotations?: Tool['annotations'];\n outputSchema?: Tool['outputSchema'];\n /** Remote presentation only. Component tool access must be explicitly opted into. */\n _meta?: Tool['_meta'] & {\n ui?: { resourceUri?: string; visibility?: ('model' | 'app')[] };\n };\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n executionMode?: 'parallel' | 'serial';\n execute(\n toolCallId: string,\n parameters: Static<TParameters>,\n signal: AbortSignal | undefined,\n onUpdate: ((result: DoomHeadlessToolResult) => void) | undefined,\n context: DoomHeadlessExecutionContext,\n ): Promise<DoomHeadlessToolResult>;\n}\n\n/**\n * One package contribution to the session's resource surface.\n *\n * `kind` decides what the model is billed for, and the difference is large:\n * - `context` is EAGER. `read()` runs on every prompt build and the text is pasted\n * into the system prompt verbatim. Reserve it for small live session state that\n * exists nowhere on disk. Never use it for a file the package ships: a README\n * registered this way costs its full length on every single turn.\n * - `skill` is LAZY. Only `name`, `description` and `path` reach the prompt; the\n * agent reads the file itself when the description matches the task.\n * - `prompt` is inert until the user invokes it by name.\n *\n * The rule in one line: if it is a file the package ships, it is a `skill`.\n */\nexport interface DoomHeadlessResource {\n when?: DoomHeadlessCondition;\n name: string;\n /** Model-visible selection signal. A `skill` without one tells the agent nothing. */\n description?: string;\n /** Absolute path of the file `read()` returns, so an advertised skill is one the agent can open. */\n path?: string;\n kind: 'prompt' | 'skill' | 'context';\n read(context: DoomHeadlessExecutionContext): string | Promise<string>;\n}\n\nexport interface DoomHeadlessCommand {\n when?: DoomHeadlessCondition;\n name: string;\n description: string;\n /** Selection-only control allowed after a coherent selection fails admission. */\n selectionRecovery?: boolean;\n execute(args: string, context: DoomHeadlessExecutionContext): void | Promise<void>;\n}\n\nexport type DoomHeadlessEventName =\n | 'session_start'\n | 'session_shutdown'\n | 'session_tree'\n | 'before_agent_start'\n | 'agent_start'\n | 'agent_end'\n | 'agent_settled'\n | 'turn_start'\n | 'turn_end'\n | 'context'\n | 'before_provider_request'\n | 'message_start'\n | 'message_update'\n | 'message_end'\n | 'tool_call'\n | 'tool_execution_start'\n | 'tool_execution_update'\n | 'tool_execution_end'\n | 'tool_result'\n | 'model_select'\n | 'session_before_compact'\n | 'session_compact';\n\nexport type DoomHeadlessHookEvent<E extends DoomHeadlessEventName> = E extends 'before_provider_request'\n ? {\n lane: string;\n runId: string;\n model: { provider: string; id: string; api?: string };\n payload: unknown;\n }\n : E extends 'session_before_compact'\n ? {\n reason: string;\n preparation: unknown;\n instructions?: string;\n customInstructions?: string;\n }\n : E extends 'model_select'\n ? { model: { provider: string; id: string } }\n : Readonly<Record<string, unknown>>;\n\nexport interface DoomHeadlessCompactionResult {\n summary: string;\n tokensBefore: number;\n retainedTail: Record<string, unknown>[];\n usage?: Record<string, unknown>;\n details?: unknown;\n}\n\nexport type DoomHeadlessHookResult<E extends DoomHeadlessEventName> = E extends 'before_provider_request'\n ? { payload: unknown } | void\n : E extends 'session_before_compact'\n ? {\n cancel?: boolean;\n decline?: boolean;\n compaction?: DoomHeadlessCompactionResult;\n } | void\n : E extends 'context'\n ? { messages?: unknown[]; systemPrompt?: string } | void\n : E extends 'before_agent_start'\n ? { systemPrompt?: string } | void\n : E extends 'tool_call'\n ? {\n args?: Record<string, unknown>;\n block?: { reason: string; terminate?: boolean };\n } | void\n : E extends 'tool_result'\n ? {\n content?: DoomHeadlessContent[];\n details?: unknown;\n isError?: boolean;\n usage?: Record<string, unknown>;\n terminate?: boolean;\n } | void\n : unknown;\n\nexport type DoomHeadlessHook<E extends DoomHeadlessEventName = DoomHeadlessEventName> = E extends DoomHeadlessEventName\n ? {\n when?: DoomHeadlessCondition;\n event: E;\n handle(\n event: Readonly<DoomHeadlessHookEvent<E>>,\n context: DoomHeadlessExecutionContext,\n ): DoomHeadlessHookResult<E> | Promise<DoomHeadlessHookResult<E>>;\n }\n : never;\n\n/** A retained facet can register activity without starting disabled watchers or services. */\nexport interface DoomHeadlessActivity {\n when?: DoomHeadlessCondition;\n name: string;\n start(context: DoomHeadlessExecutionContext): (() => void | Promise<void>) | Promise<() => void | Promise<void>>;\n}\n\n/** Read-only metadata for the currently applied session, never executable declarations or resource bodies. */\nexport interface DoomHeadlessCapability {\n readonly source: string;\n readonly name: string;\n readonly kind: 'tool' | 'skill';\n readonly when?: DoomHeadlessCondition;\n readonly active: boolean;\n readonly discoverable: boolean;\n readonly reason?: 'inactive' | 'restricted' | 'shadowed' | 'unavailable' | 'not-discoverable';\n}\n\n/** Visibility controls model discovery only, never admission for external execution. */\nexport function isDoomHeadlessToolModelVisible(tool: Pick<DoomHeadlessTool, '_meta'>): boolean {\n const visibility = tool._meta?.ui?.visibility;\n return visibility === undefined || visibility.includes('model');\n}\n\nexport interface DoomHeadlessCapabilitySnapshot {\n readonly revision: number;\n readonly ready: boolean;\n readonly capabilities: readonly DoomHeadlessCapability[];\n}\n\n/** Registrations inherit package ownership from the caller's Cordis facet. */\n/**\n * The tool a server session loads skills through. When a session carries it, the prompt lists\n * every skill by name and points here, so a skill needs no file the agent could read.\n */\nexport const DOOM_LOAD_SKILL_TOOL = 'load_skill';\n\nexport interface DoomHeadlessHostService {\n readonly context: DoomHeadlessExecutionContext;\n /** Admitted external execution, sharing native hooks, restrictions and session lifetime. */\n readonly toolSurface?: Pick<SessionToolSurface, 'readSurface' | 'invokeTool'>;\n /** The instructions of an applied skill by exact name, or undefined when none is applied. */\n readSkill(name: string): string | undefined;\n changeSelection(change: DoomHeadlessSelectionChange): Promise<void>;\n assertActive(source?: string): void;\n subscribeSelection(listener: (selection: DoomHeadlessSelection) => void | Promise<void>): () => void;\n /** Inspect only a coherently applied generation. A transition returns ready=false and no partial inventory. */\n inspectCapabilities(): DoomHeadlessCapabilitySnapshot;\n registerToolRestriction(restriction: DoomHeadlessToolRestriction): DoomHeadlessRegistration;\n registerTool<TParameters extends TSchema>(tool: DoomHeadlessTool<TParameters>): DoomHeadlessRegistration;\n registerResource(resource: DoomHeadlessResource): DoomHeadlessRegistration;\n registerCommand(command: DoomHeadlessCommand): DoomHeadlessRegistration;\n registerHook(hook: DoomHeadlessHook): DoomHeadlessRegistration;\n registerActivity(activity: DoomHeadlessActivity): DoomHeadlessRegistration;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/headless-host': DoomHeadlessHostService;\n }\n}\n\nexport function readDoomHeadlessHost(context: Context): DoomHeadlessHostService | undefined {\n return context.get(DOOM_HEADLESS_HOST_SERVICE) as DoomHeadlessHostService | undefined;\n}\n\nexport function requireDoomHeadlessHost(context: Context): DoomHeadlessHostService {\n const host = readDoomHeadlessHost(context);\n if (!host) throw new Error('This contribution requires the Doom headless session host.');\n return host;\n}\n"],"mappings":";;AAWA,MAAa,6BAA6B;AAC1C,MAAa,sBAAsB,OAAO,IAAI,qBAAqB;AAEnE,MAAM,yBAAyB;;AAG/B,IAAa,mCAAb,cAAsD,MAAM;CAC1D,YAAY,OAAgB;EAC1B,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,MAAM,CAAC;EACvE,KAAK,OAAO;CACd;AACF;AAEA,MAAM,sBAAsB;;;;;;;AAQ5B,IAAa,wBAAb,cAA2C,MAAM;CAC/C,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF;;AAGA,SAAgB,wBAAwB,OAAgC;CACtE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;;AAGA,SAAgB,mCAAmC,OAAyB;CAC1E,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AACA,MAAM,kBAAkB;;AAGxB,IAAa,4BAAb,cAA+C,MAAM;CACnD,cAAc;EACZ,MAAM,iCAAiC;EACvC,KAAK,OAAO;CACd;AACF;AAEA,SAAgB,4BAA4B,OAAyB;CACnE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAsBA,SAAgB,sBAAsB,SAAqD;CACzF,OAAQ,QAAwE;AAClF;;;;;AAsBA,SAAgB,yBAAyB,QAMd;CACzB,MAAM,EAAE,sBAAsB;CAC9B,OAAO;EACL,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,GAAI,OAAO,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,OAAO,MAAM;EAC5D,GAAI,OAAO,sBAAsB,YAAY,sBAAsB,QAAQ,CAAC,MAAM,QAAQ,iBAAiB,IACvG,EAAqB,kBAA6C,IAClE,CAAC;EACL,GAAI,OAAO,YAAY,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;CACpE;AACF;;AAuZA,SAAgB,+BAA+B,MAAgD;CAC7F,MAAM,aAAa,KAAK,OAAO,IAAI;CACnC,OAAO,eAAe,KAAA,KAAa,WAAW,SAAS,OAAO;AAChE;;;;;;AAaA,MAAa,uBAAuB;AA2BpC,SAAgB,qBAAqB,SAAuD;CAC1F,OAAO,QAAQ,IAAI,0BAA0B;AAC/C;AAEA,SAAgB,wBAAwB,SAA2C;CACjF,MAAM,OAAO,qBAAqB,OAAO;CACzC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4DAA4D;CACvF,OAAO;AACT"}
1
+ {"version":3,"file":"headless.mjs","names":[],"sources":["../../../src/schemas/headless.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport type { ThinkingLevel } from '@earendil-works/pi-agent-core';\nimport type { CallToolResult, Tool } from '@modelcontextprotocol/server';\nimport type { Static, TSchema } from 'typebox';\n\nimport type { SessionToolSurface } from '../types/server/sessionToolSurface';\nimport type { PoSessionContext } from './hubChannel';\nimport type { PoNotificationRequest } from './notification';\nimport type { PoServerBundleEntry } from './serverBundle';\n\n/** Session-only contributions. This is not a Pi ExtensionAPI or a TUI adapter. */\nexport const PO_HEADLESS_HOST_SERVICE = 'po/headless-host';\nexport const PO_HEADLESS_OWNER = Symbol.for('po/headless-owner');\n\nconst PROMPT_ADMISSION_ERROR = 'PoHeadlessPromptAdmissionError';\n\n/** Admission is a host boundary, not an advisory package-hook failure. */\nexport class PoHeadlessPromptAdmissionError extends Error {\n constructor(cause: unknown) {\n super(cause instanceof Error ? cause.message : String(cause), { cause });\n this.name = PROMPT_ADMISSION_ERROR;\n }\n}\n\nconst SESSION_SETUP_ERROR = 'PoSessionSetupError';\n\n/**\n * A session cannot start until the user fixes their setup, such as configuring a model.\n *\n * Its message is written for the user and says what to do, so a server returns it as is\n * rather than hiding it behind a generic internal error.\n */\nexport class PoSessionSetupError extends Error {\n constructor(message: string) {\n super(message);\n this.name = SESSION_SETUP_ERROR;\n }\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isPoSessionSetupError(error: unknown): error is Error {\n return error instanceof Error && error.name === SESSION_SETUP_ERROR;\n}\n\n/** Error identity must survive independently bundled server and extension graphs. */\nexport function isPoHeadlessPromptAdmissionError(error: unknown): boolean {\n return error instanceof Error && error.name === PROMPT_ADMISSION_ERROR;\n}\nconst TOOL_BUSY_ERROR = 'PoHeadlessToolBusyError';\n\n/** The tool and its hooks have not started. */\nexport class PoHeadlessToolBusyError extends Error {\n constructor() {\n super('An operation is already running');\n this.name = TOOL_BUSY_ERROR;\n }\n}\n\nexport function isPoHeadlessToolBusyError(error: unknown): boolean {\n return error instanceof Error && error.name === TOOL_BUSY_ERROR;\n}\n\nexport interface PoHeadlessSelection {\n readonly majorMode: string;\n readonly activeLayers: readonly string[];\n readonly domains: readonly string[];\n readonly profile?: string;\n /** Feature-owned activation sets, keyed by the contributing capability. */\n readonly state?: Readonly<Record<string, readonly string[]>>;\n}\n\n/** One package-owned selection transition. Server packages change exactly one axis per operation. */\nexport type PoHeadlessSelectionChange =\n | { readonly axis: 'majorMode'; readonly majorMode: string }\n | { readonly axis: 'domains'; readonly domains: readonly string[] }\n | { readonly axis: 'profile'; readonly profile?: string }\n | {\n readonly axis: 'state';\n readonly key: string;\n readonly values: readonly string[];\n };\n\nexport function readPoHeadlessOwner(context: Context): PoServerBundleEntry | undefined {\n return (context as Context & { [PO_HEADLESS_OWNER]?: PoServerBundleEntry })[PO_HEADLESS_OWNER];\n}\n\nexport interface PoHeadlessRegistration {\n dispose(): void;\n}\n\nexport type PoHeadlessContent = { type: 'text'; text: string } | { type: 'image'; data: string; mimeType: string };\n\nexport interface PoHeadlessToolResult {\n content: PoHeadlessContent[];\n /** Public MCP result data. Internal renderer details are not a remote result contract. */\n structuredContent?: Record<string, unknown>;\n /** Component-only MCP metadata, never inferred from internal renderer details. */\n _meta?: CallToolResult['_meta'];\n details?: unknown;\n isError?: boolean;\n}\n\n/**\n * Narrows a Pi tool result to the headless contract. Pi types `structuredContent` as any JSON\n * value, while MCP only accepts an object, so anything else is dropped rather than forwarded.\n */\nexport function toPoHeadlessToolResult(result: {\n readonly content: PoHeadlessContent[];\n readonly details?: unknown;\n readonly structuredContent?: unknown;\n readonly _meta?: CallToolResult['_meta'];\n readonly isError?: boolean;\n}): PoHeadlessToolResult {\n const { structuredContent } = result;\n return {\n content: result.content,\n details: result.details,\n ...(result._meta === undefined ? {} : { _meta: result._meta }),\n ...(typeof structuredContent === 'object' && structuredContent !== null && !Array.isArray(structuredContent)\n ? { structuredContent: structuredContent as Record<string, unknown> }\n : {}),\n ...(result.isError === undefined ? {} : { isError: result.isError }),\n };\n}\n\nexport interface PoHeadlessClientRequest {\n kind: 'confirm' | 'select' | 'input';\n title: string;\n message?: string;\n options?: readonly { label: string; description?: string; value: string }[];\n initialValue?: string;\n multiline?: boolean;\n}\n\nexport interface PoHeadlessClient {\n /**\n * Operator-facing surface only: the body is flattened to one line and capped at 4096 characters\n * by schemas/notification.ts:73-83, and the model never sees it. Use session.admitPrompt to\n * reach the model.\n */\n notify(request: PoNotificationRequest): void | Promise<void>;\n request(request: PoHeadlessClientRequest, signal?: AbortSignal): Promise<unknown>;\n /** Ignored once the session has closed, so a package can clear its status while it unwinds. */\n setStatus(source: string, text: string | undefined): void;\n appendComposerText?(text: string): void;\n}\n\nexport interface PoHeadlessModelSettings {\n model?: { provider: string; id: string };\n thinkingLevel: ThinkingLevel;\n}\n\nexport interface PoHeadlessSession {\n readModelSettings?(): Promise<PoHeadlessModelSettings>;\n setFastMode?(enabled: boolean): Promise<void>;\n setModelSettings?(settings: Partial<PoHeadlessModelSettings>): Promise<void>;\n /** Query durable history on demand; hosts do not retain the entire transcript. */\n entries(query?: {\n type?: 'custom' | 'message';\n customType?: string;\n limit?: number;\n }): readonly Record<string, unknown>[] | Promise<readonly Record<string, unknown>[]>;\n appendCustomEntry(type: string, data: unknown): Promise<void>;\n /** Append a displayable informational message to history and model context, without admitting input or starting a turn. */\n appendMessage?(message: { type: string; text: string; display?: boolean; details?: unknown }): Promise<string | void>;\n /**\n * Admit one custom message without awaiting its turn, using environmental input policy.\n * Defaults to followUp. Reusing requestId deduplicates normal Durable admission retries;\n * locked-agent appends and deferred operator admission do not provide that guarantee.\n */\n admitMessage?(\n message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n },\n delivery?: 'steer' | 'followUp',\n requestId?: string,\n ): Promise<void>;\n /** Register a checkpoint flush before the next tool-turn request. Idle writes return undefined instead of queueing when busy. */\n registerCheckpointBoundary?(\n callback: (boundary: {\n signal?: AbortSignal;\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n }) => Promise<void>,\n ): {\n appendMessage(message: {\n type: string;\n text: string;\n display?: boolean;\n details?: unknown;\n }): Promise<string | undefined>;\n dispose(): void;\n };\n /** Detached canonical model context before package transformations, with context edits applied and no system message. */\n contextMessages?(): Promise<readonly Record<string, unknown>[]>;\n /** The latest measured assistant usage and the selected model's context window. */\n contextUsage?(): Promise<{ tokens: number | null; contextWindow: number } | undefined>;\n /** Label a durable entry without admitting input or starting a turn. */\n setLabel?(entryId: string, label: string | undefined): Promise<void>;\n /**\n * Delivers operator input through prompt preflight and awaits its turn.\n * Environmental input uses admitPrompt with origin omitted instead.\n * An idle agent is woken; busy delivery uses Durable steering or follow-up.\n */\n prompt(text: string, delivery?: 'prompt' | 'steer' | 'followUp'): Promise<void>;\n /**\n * Admits input without awaiting its turn. Environmental input omits origin and never\n * changes the operator queue. Operator origin uses prompt preflight, including voice\n * capture; 'interrupt' cancels the active run and admits operator input while preserving\n * retained queued work. Environmental callers may reuse requestId when retrying the same input.\n */\n admitPrompt?(\n text: string,\n delivery?: 'prompt' | 'steer' | 'followUp' | 'interrupt',\n origin?: 'operator',\n requestId?: string,\n ): Promise<void>;\n abort(): Promise<void>;\n compact(instructions?: string): Promise<void>;\n activity(): Promise<{ hasPendingMessages: boolean; isIdle: boolean }>;\n /** Renames the durable session and publishes the updated title to presentation clients. */\n setName?(name: string): Promise<void>;\n /** The current branch's newest entry, for a child that starts from this session's history. */\n forkSource?(): Promise<{\n kind: 'fork';\n entryId?: string;\n }>;\n}\n\n/** A grant-filtered skill view available only during one remote MCP tool invocation. */\nexport interface PoMcpSkillAccess {\n list(): Promise<readonly { name: string; description: string }[]>;\n read(name: string): Promise<string>;\n}\n\n/** A stateless auxiliary request. These tools are private to this request, never registered on the agent. */\nexport interface PoHeadlessToolCompletionRequest {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n tools: readonly Pick<PoHeadlessTool, 'name' | 'description' | 'parameters'>[];\n}\n\nexport interface PoHeadlessToolCompletionResult {\n toolCalls: readonly { id: string; name: string; arguments: unknown }[];\n usage: { totalTokens: number };\n}\n\n/** Credential-free catalog metadata. Packages cannot obtain auth, headers, or a mutable registry. */\nexport interface PoHeadlessModelMetadata {\n readonly provider: string;\n readonly id: string;\n readonly api?: string;\n readonly baseUrl?: string;\n readonly name?: string;\n readonly compat?: Readonly<Record<string, boolean | string>>;\n}\n\nexport interface PoHeadlessExecutionContext {\n readonly cwd: string;\n /** The checkout the session runs in, distinct from the tool execution directory. */\n readonly repoRoot: string;\n readonly sessionId: string;\n /** The session's baseline context, when its host knows its workspace. */\n readonly sessionContext?: PoSessionContext;\n /** Immutable session configuration. Packages must not read or mutate process.env. */\n readonly environment: Readonly<Record<string, string | undefined>>;\n readonly client: PoHeadlessClient;\n readonly session: PoHeadlessSession;\n readonly model?: PoHeadlessModelMetadata;\n /** Lookup in this session's catalog, including physical models named by finalized messages. */\n readonly getModel?: (provider: string, id: string) => PoHeadlessModelMetadata | undefined;\n /** Detached credential-free authenticated chat catalog, read after refreshing provider availability. */\n readonly getAvailableModels?: () => Promise<\n readonly {\n readonly provider: string;\n readonly id: string;\n }[]\n >;\n /** Operation cancellation, supplied only for an active invocation. */\n readonly signal?: AbortSignal;\n readonly textCompletion?: {\n available(reference: string): boolean;\n /** Tool-less conversation summary through the host's guarded session provider. */\n summarize?(\n reference: string,\n request: {\n messages: readonly Record<string, unknown>[];\n instructions: string;\n previousSummary?: string;\n thinkingLevel?: ThinkingLevel;\n signal?: AbortSignal;\n },\n ): Promise<string>;\n complete(\n reference: string,\n request: {\n systemPrompt: string;\n input: string;\n maxTokens: number;\n cacheRetention?: 'none' | 'short' | 'long';\n signal?: AbortSignal;\n },\n ): Promise<string>;\n };\n readonly toolCompletion?: {\n complete(reference: string, request: PoHeadlessToolCompletionRequest): Promise<PoHeadlessToolCompletionResult>;\n };\n /** Guarded image operation. Credentials and transport configuration remain host-owned. */\n readonly imageGeneration?: {\n available(): boolean;\n generate(request: {\n prompt: string;\n transparentBackground?: boolean;\n images?: readonly { data: string; mimeType: string }[];\n correlationId: string;\n signal?: AbortSignal;\n }): Promise<{ data: string; mimeType: 'image/png'; requestId?: string; generationId?: string }>;\n };\n /**\n * Guarded web search. Credentials, endpoint, model choice, session identity and transport remain host-owned.\n * `commands` follows a schema owned by the calling package; the host only bounds it.\n */\n readonly webSearch?: {\n available(): boolean;\n search(request: {\n commands: Readonly<Record<string, unknown>>;\n /** Optional plain-text excerpt, oldest first. Omit to send no conversation content. */\n conversation?: readonly { role: 'user' | 'assistant'; text: string }[];\n access: 'cached' | 'indexed' | 'live';\n signal?: AbortSignal;\n }): Promise<{ output: string; results?: readonly Record<string, unknown>[] }>;\n };\n readonly selection: PoHeadlessSelection;\n /** Present only while an authenticated remote MCP tool is running. */\n readonly mcpSkills?: PoMcpSkillAccess;\n shutdown(): void;\n}\n\n/** Conditions narrow an eligible owner's contributions; they can never restore a disabled owner. */\nexport interface PoHeadlessCondition {\n state?: Readonly<Record<string, string>>;\n attribution?: { kind: 'minor' | 'domain'; mode: string; label?: string };\n domain?: string;\n}\n\nexport interface PoHeadlessToolRestriction {\n when?: PoHeadlessCondition;\n /** Optional capability ceiling. An empty list disables every tool. */\n allowedTools?: readonly string[];\n /**\n * Narrow exclusions without disabling unrelated tools. Exclude a tool your package owns, or a\n * specific foreign tool the mode exists to withdraw. Never enumerate an allowlist here.\n */\n excludedTools?: readonly string[];\n}\n\nexport interface PoHeadlessTool<TParameters extends TSchema = TSchema> {\n when?: PoHeadlessCondition;\n name: string;\n label?: string;\n description: string;\n parameters: TParameters;\n annotations?: Tool['annotations'];\n outputSchema?: Tool['outputSchema'];\n /** Remote presentation only. Component tool access must be explicitly opted into. */\n _meta?: Tool['_meta'] & {\n ui?: { resourceUri?: string; visibility?: ('model' | 'app')[] };\n };\n promptSnippet?: string;\n promptGuidelines?: readonly string[];\n executionMode?: 'parallel' | 'serial';\n execute(\n toolCallId: string,\n parameters: Static<TParameters>,\n signal: AbortSignal | undefined,\n onUpdate: ((result: PoHeadlessToolResult) => void) | undefined,\n context: PoHeadlessExecutionContext,\n ): Promise<PoHeadlessToolResult>;\n}\n\n/**\n * One package contribution to the session's resource surface.\n *\n * `kind` decides what the model is billed for, and the difference is large:\n * - `context` is EAGER. `read()` runs on every prompt build and the text is pasted\n * into the system prompt verbatim. Reserve it for small live session state that\n * exists nowhere on disk. Never use it for a file the package ships: a README\n * registered this way costs its full length on every single turn.\n * - `skill` is LAZY. Only `name`, `description` and `path` reach the prompt; the\n * agent reads the file itself when the description matches the task.\n * - `prompt` is inert until the user invokes it by name.\n *\n * The rule in one line: if it is a file the package ships, it is a `skill`.\n */\nexport interface PoHeadlessResource {\n when?: PoHeadlessCondition;\n name: string;\n /** Model-visible selection signal. A `skill` without one tells the agent nothing. */\n description?: string;\n /** Absolute path of the file `read()` returns, so an advertised skill is one the agent can open. */\n path?: string;\n kind: 'prompt' | 'skill' | 'context';\n read(context: PoHeadlessExecutionContext): string | Promise<string>;\n}\n\nexport interface PoHeadlessCommand {\n when?: PoHeadlessCondition;\n name: string;\n description: string;\n /** Selection-only control allowed after a coherent selection fails admission. */\n selectionRecovery?: boolean;\n execute(args: string, context: PoHeadlessExecutionContext): void | Promise<void>;\n}\n\nexport type PoHeadlessEventName =\n | 'session_start'\n | 'session_shutdown'\n | 'session_tree'\n | 'before_agent_start'\n | 'agent_start'\n | 'agent_end'\n | 'agent_settled'\n | 'turn_start'\n | 'turn_end'\n | 'context'\n | 'before_provider_request'\n | 'message_start'\n | 'message_update'\n | 'message_end'\n | 'tool_call'\n | 'tool_execution_start'\n | 'tool_execution_update'\n | 'tool_execution_end'\n | 'tool_result'\n | 'model_select'\n | 'session_before_compact'\n | 'session_compact';\n\nexport type PoHeadlessHookEvent<E extends PoHeadlessEventName> = E extends 'before_provider_request'\n ? {\n lane: string;\n runId: string;\n model: { provider: string; id: string; api?: string };\n payload: unknown;\n }\n : E extends 'session_before_compact'\n ? {\n reason: string;\n preparation: unknown;\n instructions?: string;\n customInstructions?: string;\n }\n : E extends 'model_select'\n ? { model: { provider: string; id: string } }\n : Readonly<Record<string, unknown>>;\n\nexport interface PoHeadlessCompactionResult {\n summary: string;\n tokensBefore: number;\n retainedTail: Record<string, unknown>[];\n usage?: Record<string, unknown>;\n details?: unknown;\n}\n\nexport type PoHeadlessHookResult<E extends PoHeadlessEventName> = E extends 'before_provider_request'\n ? { payload: unknown } | void\n : E extends 'session_before_compact'\n ? {\n cancel?: boolean;\n decline?: boolean;\n compaction?: PoHeadlessCompactionResult;\n } | void\n : E extends 'context'\n ? { messages?: unknown[]; systemPrompt?: string } | void\n : E extends 'before_agent_start'\n ? { systemPrompt?: string } | void\n : E extends 'tool_call'\n ? {\n args?: Record<string, unknown>;\n block?: { reason: string; terminate?: boolean };\n } | void\n : E extends 'tool_result'\n ? {\n content?: PoHeadlessContent[];\n details?: unknown;\n isError?: boolean;\n usage?: Record<string, unknown>;\n terminate?: boolean;\n } | void\n : unknown;\n\nexport type PoHeadlessHook<E extends PoHeadlessEventName = PoHeadlessEventName> = E extends PoHeadlessEventName\n ? {\n when?: PoHeadlessCondition;\n event: E;\n handle(\n event: Readonly<PoHeadlessHookEvent<E>>,\n context: PoHeadlessExecutionContext,\n ): PoHeadlessHookResult<E> | Promise<PoHeadlessHookResult<E>>;\n }\n : never;\n\n/** A retained package can register activity without starting disabled watchers or services. */\nexport interface PoHeadlessActivity {\n when?: PoHeadlessCondition;\n name: string;\n start(context: PoHeadlessExecutionContext): (() => void | Promise<void>) | Promise<() => void | Promise<void>>;\n}\n\n/** Read-only metadata for the currently applied session, never executable declarations or resource bodies. */\nexport interface PoHeadlessCapability {\n readonly source: string;\n readonly name: string;\n readonly kind: 'tool' | 'skill';\n readonly when?: PoHeadlessCondition;\n readonly active: boolean;\n readonly discoverable: boolean;\n readonly reason?: 'inactive' | 'restricted' | 'shadowed' | 'unavailable' | 'not-discoverable';\n}\n\n/** Visibility controls model discovery only, never admission for external execution. */\nexport function isPoHeadlessToolModelVisible(tool: Pick<PoHeadlessTool, '_meta'>): boolean {\n const visibility = tool._meta?.ui?.visibility;\n return visibility === undefined || visibility.includes('model');\n}\n\nexport interface PoHeadlessCapabilitySnapshot {\n readonly revision: number;\n readonly ready: boolean;\n readonly capabilities: readonly PoHeadlessCapability[];\n}\n\n/** Registrations inherit package ownership from the caller's Cordis fiber. */\n/**\n * The tool a server session loads skills through. When a session carries it, the prompt lists\n * every skill by name and points here, so a skill needs no file the agent could read.\n */\nexport const PO_LOAD_SKILL_TOOL = 'load_skill';\n\nexport interface PoHeadlessHostService {\n readonly context: PoHeadlessExecutionContext;\n /** Admitted external execution, sharing native hooks, restrictions and session lifetime. */\n readonly toolSurface?: Pick<SessionToolSurface, 'readSurface' | 'invokeTool'>;\n /** The instructions of an applied skill by exact name, or undefined when none is applied. */\n readSkill(name: string): string | undefined;\n changeSelection(change: PoHeadlessSelectionChange): Promise<void>;\n assertActive(source?: string): void;\n subscribeSelection(listener: (selection: PoHeadlessSelection) => void | Promise<void>): () => void;\n /** Inspect only a coherently applied generation. A transition returns ready=false and no partial inventory. */\n inspectCapabilities(): PoHeadlessCapabilitySnapshot;\n registerToolRestriction(restriction: PoHeadlessToolRestriction): PoHeadlessRegistration;\n registerTool<TParameters extends TSchema>(tool: PoHeadlessTool<TParameters>): PoHeadlessRegistration;\n registerResource(resource: PoHeadlessResource): PoHeadlessRegistration;\n registerCommand(command: PoHeadlessCommand): PoHeadlessRegistration;\n registerHook(hook: PoHeadlessHook): PoHeadlessRegistration;\n registerActivity(activity: PoHeadlessActivity): PoHeadlessRegistration;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/headless-host': PoHeadlessHostService;\n }\n}\n\nexport function readPoHeadlessHost(context: Context): PoHeadlessHostService | undefined {\n return context.get(PO_HEADLESS_HOST_SERVICE) as PoHeadlessHostService | undefined;\n}\n\nexport function requirePoHeadlessHost(context: Context): PoHeadlessHostService {\n const host = readPoHeadlessHost(context);\n if (!host) throw new Error('This contribution requires the Po headless session host.');\n return host;\n}\n"],"mappings":";;AAWA,MAAa,2BAA2B;AACxC,MAAa,oBAAoB,OAAO,IAAI,mBAAmB;AAE/D,MAAM,yBAAyB;;AAG/B,IAAa,iCAAb,cAAoD,MAAM;CACxD,YAAY,OAAgB;EAC1B,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,MAAM,CAAC;EACvE,KAAK,OAAO;CACd;AACF;AAEA,MAAM,sBAAsB;;;;;;;AAQ5B,IAAa,sBAAb,cAAyC,MAAM;CAC7C,YAAY,SAAiB;EAC3B,MAAM,OAAO;EACb,KAAK,OAAO;CACd;AACF;;AAGA,SAAgB,sBAAsB,OAAgC;CACpE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;;AAGA,SAAgB,iCAAiC,OAAyB;CACxE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AACA,MAAM,kBAAkB;;AAGxB,IAAa,0BAAb,cAA6C,MAAM;CACjD,cAAc;EACZ,MAAM,iCAAiC;EACvC,KAAK,OAAO;CACd;AACF;AAEA,SAAgB,0BAA0B,OAAyB;CACjE,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAsBA,SAAgB,oBAAoB,SAAmD;CACrF,OAAQ,QAAoE;AAC9E;;;;;AAsBA,SAAgB,uBAAuB,QAMd;CACvB,MAAM,EAAE,sBAAsB;CAC9B,OAAO;EACL,SAAS,OAAO;EAChB,SAAS,OAAO;EAChB,GAAI,OAAO,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO,OAAO,MAAM;EAC5D,GAAI,OAAO,sBAAsB,YAAY,sBAAsB,QAAQ,CAAC,MAAM,QAAQ,iBAAiB,IACvG,EAAqB,kBAA6C,IAClE,CAAC;EACL,GAAI,OAAO,YAAY,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;CACpE;AACF;;AAwZA,SAAgB,6BAA6B,MAA8C;CACzF,MAAM,aAAa,KAAK,OAAO,IAAI;CACnC,OAAO,eAAe,KAAA,KAAa,WAAW,SAAS,OAAO;AAChE;;;;;;AAaA,MAAa,qBAAqB;AA2BlC,SAAgB,mBAAmB,SAAqD;CACtF,OAAO,QAAQ,IAAI,wBAAwB;AAC7C;AAEA,SAAgB,sBAAsB,SAAyC;CAC7E,MAAM,OAAO,mBAAmB,OAAO;CACvC,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,0DAA0D;CACrF,OAAO;AACT"}
@@ -2,24 +2,24 @@ let typebox = require("typebox");
2
2
  let typebox_value = require("typebox/value");
3
3
  //#region src/schemas/help.ts
4
4
  /** Provider-owned Cordis service for the live Help catalog. */
5
- const DOOM_HELP_SERVICE = "doom/help";
6
- const DOOM_HELP_WHEN = {
5
+ const PO_HELP_SERVICE = "po/help";
6
+ const PO_HELP_WHEN = {
7
7
  state: { "minor-mode": "help" },
8
8
  attribution: {
9
9
  kind: "minor",
10
10
  mode: "help"
11
11
  }
12
12
  };
13
- const DOOM_HELP_MAX_CONTRIBUTORS = 32;
14
- const DOOM_HELP_MAX_SKILLS = 64;
15
- const DOOM_HELP_MAX_DIAGNOSTICS = 64;
16
- const DOOM_HELP_MAX_DESCRIPTION_LENGTH = 512;
17
- const DOOM_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
13
+ const PO_HELP_MAX_CONTRIBUTORS = 32;
14
+ const PO_HELP_MAX_SKILLS = 64;
15
+ const PO_HELP_MAX_DIAGNOSTICS = 64;
16
+ const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;
17
+ const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
18
18
  const MAX_SOURCE_LENGTH = 128;
19
19
  const MAX_SKILL_NAME_LENGTH = 64;
20
20
  const MAX_MODULE_URL_LENGTH = 4096;
21
21
  const MAX_IDENTIFIER_LENGTH = 256;
22
- const DOOM_HELP_ERROR_CODE = {
22
+ const PO_HELP_ERROR_CODE = {
23
23
  contributorLimit: "HELP_CONTRIBUTOR_LIMIT",
24
24
  disposed: "HELP_DISPOSED",
25
25
  duplicateSkill: "HELP_DUPLICATE_SKILL",
@@ -28,38 +28,38 @@ const DOOM_HELP_ERROR_CODE = {
28
28
  invalidGeneration: "HELP_INVALID_GENERATION",
29
29
  invalidSnapshot: "HELP_INVALID_SNAPSHOT"
30
30
  };
31
- var DoomHelpError = class extends Error {
31
+ var PoHelpError = class extends Error {
32
32
  code;
33
33
  constructor(code, message) {
34
34
  super(message);
35
- this.name = "DoomHelpError";
35
+ this.name = "PoHelpError";
36
36
  this.code = code;
37
37
  }
38
38
  };
39
- const DoomHelpSourceSchema = typebox.Type.String({
39
+ const PoHelpSourceSchema = typebox.Type.String({
40
40
  minLength: 1,
41
41
  maxLength: MAX_SOURCE_LENGTH,
42
42
  pattern: "^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$"
43
43
  });
44
- const DoomHelpSkillNameSchema = typebox.Type.String({
44
+ const PoHelpSkillNameSchema = typebox.Type.String({
45
45
  minLength: 1,
46
46
  maxLength: MAX_SKILL_NAME_LENGTH,
47
47
  pattern: "^[a-z0-9][a-z0-9-]*$"
48
48
  });
49
- const DoomHelpSkillDescriptorSchema = typebox.Type.Object({
50
- name: DoomHelpSkillNameSchema,
49
+ const PoHelpSkillDescriptorSchema = typebox.Type.Object({
50
+ name: PoHelpSkillNameSchema,
51
51
  description: typebox.Type.String({
52
52
  minLength: 1,
53
53
  maxLength: 512
54
54
  })
55
55
  }, { additionalProperties: false });
56
- const DoomHelpContributionSchema = typebox.Type.Object({
57
- source: DoomHelpSourceSchema,
56
+ const PoHelpContributionSchema = typebox.Type.Object({
57
+ source: PoHelpSourceSchema,
58
58
  moduleUrl: typebox.Type.String({
59
59
  minLength: 1,
60
60
  maxLength: MAX_MODULE_URL_LENGTH
61
61
  }),
62
- skills: typebox.Type.Array(DoomHelpSkillDescriptorSchema, {
62
+ skills: typebox.Type.Array(PoHelpSkillDescriptorSchema, {
63
63
  minItems: 1,
64
64
  maxItems: 64
65
65
  })
@@ -68,15 +68,15 @@ const GenerationSchema = typebox.Type.String({
68
68
  minLength: 1,
69
69
  maxLength: MAX_IDENTIFIER_LENGTH
70
70
  });
71
- const DoomHelpActivationSchema = typebox.Type.Union([
71
+ const PoHelpActivationSchema = typebox.Type.Union([
72
72
  typebox.Type.Literal("inactive"),
73
73
  typebox.Type.Literal("activating"),
74
74
  typebox.Type.Literal("active"),
75
75
  typebox.Type.Literal("degraded")
76
76
  ]);
77
- const DoomHelpSkillSchema = typebox.Type.Object({
78
- source: DoomHelpSourceSchema,
79
- name: DoomHelpSkillNameSchema,
77
+ const PoHelpSkillSchema = typebox.Type.Object({
78
+ source: PoHelpSourceSchema,
79
+ name: PoHelpSkillNameSchema,
80
80
  description: typebox.Type.String({
81
81
  minLength: 1,
82
82
  maxLength: 512
@@ -90,8 +90,8 @@ const DoomHelpSkillSchema = typebox.Type.Object({
90
90
  maxLength: MAX_MODULE_URL_LENGTH
91
91
  })
92
92
  }, { additionalProperties: false });
93
- const DoomHelpDiagnosticSchema = typebox.Type.Object({
94
- source: typebox.Type.Optional(DoomHelpSourceSchema),
93
+ const PoHelpDiagnosticSchema = typebox.Type.Object({
94
+ source: typebox.Type.Optional(PoHelpSourceSchema),
95
95
  code: typebox.Type.String({
96
96
  minLength: 1,
97
97
  maxLength: 64,
@@ -102,12 +102,12 @@ const DoomHelpDiagnosticSchema = typebox.Type.Object({
102
102
  maxLength: 512
103
103
  })
104
104
  }, { additionalProperties: false });
105
- const DoomHelpSnapshotSchema = typebox.Type.Object({
105
+ const PoHelpSnapshotSchema = typebox.Type.Object({
106
106
  hostGeneration: GenerationSchema,
107
107
  revision: typebox.Type.Integer({ minimum: 0 }),
108
- activation: DoomHelpActivationSchema,
109
- skills: typebox.Type.Array(DoomHelpSkillSchema, { maxItems: 64 }),
110
- diagnostics: typebox.Type.Array(DoomHelpDiagnosticSchema, { maxItems: 64 })
108
+ activation: PoHelpActivationSchema,
109
+ skills: typebox.Type.Array(PoHelpSkillSchema, { maxItems: 64 }),
110
+ diagnostics: typebox.Type.Array(PoHelpDiagnosticSchema, { maxItems: 64 })
111
111
  }, { additionalProperties: false });
112
112
  function schemaFailure(schema, value) {
113
113
  const [first] = (0, typebox_value.Errors)(schema, value);
@@ -128,17 +128,17 @@ function cloneSnapshot(snapshot) {
128
128
  };
129
129
  }
130
130
  function validateContribution(contribution) {
131
- if (!(0, typebox_value.Check)(DoomHelpContributionSchema, contribution)) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.invalidContribution, `Invalid Help contribution${schemaFailure(DoomHelpContributionSchema, contribution)}.`);
131
+ if (!(0, typebox_value.Check)(PoHelpContributionSchema, contribution)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidContribution, `Invalid Help contribution${schemaFailure(PoHelpContributionSchema, contribution)}.`);
132
132
  const names = /* @__PURE__ */ new Set();
133
133
  for (const skill of contribution.skills) {
134
- if (names.has(skill.name)) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.duplicateSkill, `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`);
134
+ if (names.has(skill.name)) throw new PoHelpError(PO_HELP_ERROR_CODE.duplicateSkill, `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`);
135
135
  names.add(skill.name);
136
136
  }
137
137
  return cloneContribution(contribution);
138
138
  }
139
139
  /** Creates the provider-owned Help service value for one Cordis session. */
140
- function createDoomHelpService(generation) {
141
- if (!(0, typebox_value.Check)(GenerationSchema, generation)) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.invalidGeneration, "Doom Help requires a valid generation.");
140
+ function createPoHelpService(generation) {
141
+ if (!(0, typebox_value.Check)(GenerationSchema, generation)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidGeneration, "Po Help requires a valid generation.");
142
142
  const contributions = /* @__PURE__ */ new Map();
143
143
  const contributionListeners = /* @__PURE__ */ new Set();
144
144
  const snapshotListeners = /* @__PURE__ */ new Set();
@@ -153,7 +153,7 @@ function createDoomHelpService(generation) {
153
153
  diagnostics: []
154
154
  };
155
155
  const ensureActive = () => {
156
- if (disposed) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.disposed, "The Doom Help service is disposed.");
156
+ if (disposed) throw new PoHelpError(PO_HELP_ERROR_CODE.disposed, "The Po Help service is disposed.");
157
157
  };
158
158
  const list = () => [...contributions.values()].map(({ contribution }) => cloneContribution(contribution)).sort((left, right) => left.source.localeCompare(right.source));
159
159
  const notifyContributions = () => {
@@ -165,7 +165,7 @@ function createDoomHelpService(generation) {
165
165
  register(contribution) {
166
166
  ensureActive();
167
167
  const validated = validateContribution(contribution);
168
- if (!contributions.has(validated.source) && contributions.size >= 32) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.contributorLimit, `Help accepts at most 32 contributors.`);
168
+ if (!contributions.has(validated.source) && contributions.size >= 32) throw new PoHelpError(PO_HELP_ERROR_CODE.contributorLimit, `Help accepts at most 32 contributors.`);
169
169
  registrationSequence += 1;
170
170
  const token = Symbol(validated.source);
171
171
  const registrationGeneration = `${generation}:help:${registrationSequence}`;
@@ -197,7 +197,7 @@ function createDoomHelpService(generation) {
197
197
  getSnapshot: () => cloneSnapshot(snapshot),
198
198
  publish(draft) {
199
199
  ensureActive();
200
- if (draft.activation === "inactive" && draft.skills.length > 0) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.inactiveSnapshot, "Inactive Help snapshots cannot expose skills.");
200
+ if (draft.activation === "inactive" && draft.skills.length > 0) throw new PoHelpError(PO_HELP_ERROR_CODE.inactiveSnapshot, "Inactive Help snapshots cannot expose skills.");
201
201
  const next = {
202
202
  hostGeneration: generation,
203
203
  revision: snapshot.revision + 1,
@@ -205,7 +205,7 @@ function createDoomHelpService(generation) {
205
205
  skills: draft.skills.map((skill) => ({ ...skill })),
206
206
  diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic }))
207
207
  };
208
- if (!(0, typebox_value.Check)(DoomHelpSnapshotSchema, next)) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.invalidSnapshot, `Invalid Help snapshot${schemaFailure(DoomHelpSnapshotSchema, next)}.`);
208
+ if (!(0, typebox_value.Check)(PoHelpSnapshotSchema, next)) throw new PoHelpError(PO_HELP_ERROR_CODE.invalidSnapshot, `Invalid Help snapshot${schemaFailure(PoHelpSnapshotSchema, next)}.`);
209
209
  snapshot = next;
210
210
  const published = cloneSnapshot(snapshot);
211
211
  for (const listener of snapshotListeners) listener(cloneSnapshot(published));
@@ -248,34 +248,34 @@ function createDoomHelpService(generation) {
248
248
  }
249
249
  });
250
250
  }
251
- function readDoomHelpService(context) {
252
- return context.get(DOOM_HELP_SERVICE);
251
+ function readPoHelpService(context) {
252
+ return context.get(PO_HELP_SERVICE);
253
253
  }
254
- function requireDoomHelpService(context) {
255
- const service = readDoomHelpService(context);
256
- if (!service) throw new Error("Doom Help is unavailable. Load @agimon-ai/po-help.");
254
+ function requirePoHelpService(context) {
255
+ const service = readPoHelpService(context);
256
+ if (!service) throw new Error("Po Help is unavailable. Load @agimon-ai/po-help.");
257
257
  return service;
258
258
  }
259
259
  //#endregion
260
- exports.DOOM_HELP_ERROR_CODE = DOOM_HELP_ERROR_CODE;
261
- exports.DOOM_HELP_MAX_CONTRIBUTORS = DOOM_HELP_MAX_CONTRIBUTORS;
262
- exports.DOOM_HELP_MAX_DESCRIPTION_LENGTH = DOOM_HELP_MAX_DESCRIPTION_LENGTH;
263
- exports.DOOM_HELP_MAX_DIAGNOSTICS = DOOM_HELP_MAX_DIAGNOSTICS;
264
- exports.DOOM_HELP_MAX_DIAGNOSTIC_LENGTH = DOOM_HELP_MAX_DIAGNOSTIC_LENGTH;
265
- exports.DOOM_HELP_MAX_SKILLS = DOOM_HELP_MAX_SKILLS;
266
- exports.DOOM_HELP_SERVICE = DOOM_HELP_SERVICE;
267
- exports.DOOM_HELP_WHEN = DOOM_HELP_WHEN;
268
- exports.DoomHelpActivationSchema = DoomHelpActivationSchema;
269
- exports.DoomHelpContributionSchema = DoomHelpContributionSchema;
270
- exports.DoomHelpDiagnosticSchema = DoomHelpDiagnosticSchema;
271
- exports.DoomHelpError = DoomHelpError;
272
- exports.DoomHelpSkillDescriptorSchema = DoomHelpSkillDescriptorSchema;
273
- exports.DoomHelpSkillNameSchema = DoomHelpSkillNameSchema;
274
- exports.DoomHelpSkillSchema = DoomHelpSkillSchema;
275
- exports.DoomHelpSnapshotSchema = DoomHelpSnapshotSchema;
276
- exports.DoomHelpSourceSchema = DoomHelpSourceSchema;
277
- exports.createDoomHelpService = createDoomHelpService;
278
- exports.readDoomHelpService = readDoomHelpService;
279
- exports.requireDoomHelpService = requireDoomHelpService;
260
+ exports.PO_HELP_ERROR_CODE = PO_HELP_ERROR_CODE;
261
+ exports.PO_HELP_MAX_CONTRIBUTORS = PO_HELP_MAX_CONTRIBUTORS;
262
+ exports.PO_HELP_MAX_DESCRIPTION_LENGTH = PO_HELP_MAX_DESCRIPTION_LENGTH;
263
+ exports.PO_HELP_MAX_DIAGNOSTICS = PO_HELP_MAX_DIAGNOSTICS;
264
+ exports.PO_HELP_MAX_DIAGNOSTIC_LENGTH = PO_HELP_MAX_DIAGNOSTIC_LENGTH;
265
+ exports.PO_HELP_MAX_SKILLS = PO_HELP_MAX_SKILLS;
266
+ exports.PO_HELP_SERVICE = PO_HELP_SERVICE;
267
+ exports.PO_HELP_WHEN = PO_HELP_WHEN;
268
+ exports.PoHelpActivationSchema = PoHelpActivationSchema;
269
+ exports.PoHelpContributionSchema = PoHelpContributionSchema;
270
+ exports.PoHelpDiagnosticSchema = PoHelpDiagnosticSchema;
271
+ exports.PoHelpError = PoHelpError;
272
+ exports.PoHelpSkillDescriptorSchema = PoHelpSkillDescriptorSchema;
273
+ exports.PoHelpSkillNameSchema = PoHelpSkillNameSchema;
274
+ exports.PoHelpSkillSchema = PoHelpSkillSchema;
275
+ exports.PoHelpSnapshotSchema = PoHelpSnapshotSchema;
276
+ exports.PoHelpSourceSchema = PoHelpSourceSchema;
277
+ exports.createPoHelpService = createPoHelpService;
278
+ exports.readPoHelpService = readPoHelpService;
279
+ exports.requirePoHelpService = requirePoHelpService;
280
280
 
281
281
  //# sourceMappingURL=help.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.cjs","names":["Type","Errors","Check"],"sources":["../../../src/schemas/help.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for the live Help catalog. */\nexport const DOOM_HELP_SERVICE = 'doom/help';\nexport const DOOM_HELP_WHEN = {\n state: { 'minor-mode': 'help' },\n attribution: { kind: 'minor', mode: 'help' },\n} as const;\nexport const DOOM_HELP_MAX_CONTRIBUTORS = 32;\nexport const DOOM_HELP_MAX_SKILLS = 64;\nexport const DOOM_HELP_MAX_DIAGNOSTICS = 64;\nexport const DOOM_HELP_MAX_DESCRIPTION_LENGTH = 512;\nexport const DOOM_HELP_MAX_DIAGNOSTIC_LENGTH = 512;\n\nconst MAX_SOURCE_LENGTH = 128;\nconst MAX_SKILL_NAME_LENGTH = 64;\nconst MAX_MODULE_URL_LENGTH = 4_096;\nconst MAX_IDENTIFIER_LENGTH = 256;\n\nexport const DOOM_HELP_ERROR_CODE = {\n contributorLimit: 'HELP_CONTRIBUTOR_LIMIT',\n disposed: 'HELP_DISPOSED',\n duplicateSkill: 'HELP_DUPLICATE_SKILL',\n inactiveSnapshot: 'HELP_INACTIVE_SNAPSHOT',\n invalidContribution: 'HELP_INVALID_CONTRIBUTION',\n invalidGeneration: 'HELP_INVALID_GENERATION',\n invalidSnapshot: 'HELP_INVALID_SNAPSHOT',\n} as const;\n\nexport type DoomHelpErrorCode = (typeof DOOM_HELP_ERROR_CODE)[keyof typeof DOOM_HELP_ERROR_CODE];\n\nexport class DoomHelpError extends Error {\n readonly code: DoomHelpErrorCode;\n\n constructor(code: DoomHelpErrorCode, message: string) {\n super(message);\n this.name = 'DoomHelpError';\n this.code = code;\n }\n}\n\nexport const DoomHelpSourceSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SOURCE_LENGTH,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const DoomHelpSkillNameSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SKILL_NAME_LENGTH,\n pattern: '^[a-z0-9][a-z0-9-]*$',\n});\n\nexport const DoomHelpSkillDescriptorSchema = Type.Object(\n {\n name: DoomHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DESCRIPTION_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSkillDescriptor = Static<typeof DoomHelpSkillDescriptorSchema>;\n\nexport const DoomHelpContributionSchema = Type.Object(\n {\n source: DoomHelpSourceSchema,\n moduleUrl: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n skills: Type.Array(DoomHelpSkillDescriptorSchema, { minItems: 1, maxItems: DOOM_HELP_MAX_SKILLS }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpContribution = Static<typeof DoomHelpContributionSchema>;\n\nconst GenerationSchema = Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_LENGTH });\n\nexport const DoomHelpActivationSchema = Type.Union([\n Type.Literal('inactive'),\n Type.Literal('activating'),\n Type.Literal('active'),\n Type.Literal('degraded'),\n]);\nexport type DoomHelpActivation = Static<typeof DoomHelpActivationSchema>;\n\nexport const DoomHelpSkillSchema = Type.Object(\n {\n source: DoomHelpSourceSchema,\n name: DoomHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DESCRIPTION_LENGTH }),\n filePath: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n baseDir: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSkill = Static<typeof DoomHelpSkillSchema>;\n\nexport const DoomHelpDiagnosticSchema = Type.Object(\n {\n source: Type.Optional(DoomHelpSourceSchema),\n code: Type.String({ minLength: 1, maxLength: 64, pattern: '^[A-Z0-9_]+$' }),\n message: Type.String({ minLength: 1, maxLength: DOOM_HELP_MAX_DIAGNOSTIC_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpDiagnostic = Static<typeof DoomHelpDiagnosticSchema>;\n\nexport const DoomHelpSnapshotSchema = Type.Object(\n {\n hostGeneration: GenerationSchema,\n revision: Type.Integer({ minimum: 0 }),\n activation: DoomHelpActivationSchema,\n skills: Type.Array(DoomHelpSkillSchema, { maxItems: DOOM_HELP_MAX_SKILLS }),\n diagnostics: Type.Array(DoomHelpDiagnosticSchema, { maxItems: DOOM_HELP_MAX_DIAGNOSTICS }),\n },\n { additionalProperties: false },\n);\nexport type DoomHelpSnapshot = Static<typeof DoomHelpSnapshotSchema>;\n\nexport interface DoomHelpSnapshotDraft {\n readonly activation: DoomHelpActivation;\n readonly skills: readonly DoomHelpSkill[];\n readonly diagnostics: readonly DoomHelpDiagnostic[];\n}\n\nexport interface DoomHelpContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct, session-local registrar and query surface owned by po-help. */\nexport interface DoomHelpService {\n readonly generation: string;\n register(contribution: DoomHelpContribution): DoomHelpContributionHandle;\n listContributions(): readonly DoomHelpContribution[];\n subscribeContributions(listener: (contributions: readonly DoomHelpContribution[]) => void): () => void;\n getSnapshot(): DoomHelpSnapshot;\n publish(snapshot: DoomHelpSnapshotDraft): DoomHelpSnapshot;\n subscribeSnapshot(listener: (snapshot: DoomHelpSnapshot) => void): () => void;\n /** Bind the skill consumer's accepted file paths, without duplicating its inventory. */\n bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;\n /** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */\n inspectSkills(): Promise<readonly DoomHelpSkill[] | undefined>;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'doom/help': DoomHelpService;\n }\n}\n\ninterface RegisteredContribution {\n readonly token: symbol;\n readonly generation: string;\n readonly contribution: DoomHelpContribution;\n}\n\nfunction schemaFailure(\n schema: typeof DoomHelpContributionSchema | typeof DoomHelpSnapshotSchema,\n value: unknown,\n): string {\n const [first] = Errors(schema, value);\n return first ? ` at ${first.instancePath || '/'}: ${first.message}` : '';\n}\n\nfunction cloneContribution(contribution: DoomHelpContribution): DoomHelpContribution {\n return {\n source: contribution.source,\n moduleUrl: contribution.moduleUrl,\n skills: contribution.skills.map((skill) => ({ ...skill })),\n };\n}\n\nfunction cloneSnapshot(snapshot: DoomHelpSnapshot): DoomHelpSnapshot {\n return {\n ...snapshot,\n skills: snapshot.skills.map((skill) => ({ ...skill })),\n diagnostics: snapshot.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n}\n\nfunction validateContribution(contribution: DoomHelpContribution): DoomHelpContribution {\n if (!Check(DoomHelpContributionSchema, contribution)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.invalidContribution,\n `Invalid Help contribution${schemaFailure(DoomHelpContributionSchema, contribution)}.`,\n );\n }\n const names = new Set<string>();\n for (const skill of contribution.skills) {\n if (names.has(skill.name)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.duplicateSkill,\n `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`,\n );\n }\n names.add(skill.name);\n }\n return cloneContribution(contribution);\n}\n\n/** Creates the provider-owned Help service value for one Cordis session. */\nexport function createDoomHelpService(generation: string): DoomHelpService {\n if (!Check(GenerationSchema, generation)) {\n throw new DoomHelpError(DOOM_HELP_ERROR_CODE.invalidGeneration, 'Doom Help requires a valid generation.');\n }\n\n const contributions = new Map<string, RegisteredContribution>();\n const contributionListeners = new Set<(value: readonly DoomHelpContribution[]) => void>();\n const snapshotListeners = new Set<(value: DoomHelpSnapshot) => void>();\n let registrationSequence = 0;\n let disposed = false;\n let skillInventory: { token: symbol; read: () => Promise<readonly string[] | undefined> } | undefined;\n let snapshot: DoomHelpSnapshot = {\n hostGeneration: generation,\n revision: 0,\n activation: 'inactive',\n skills: [],\n diagnostics: [],\n };\n\n const ensureActive = (): void => {\n if (disposed) throw new DoomHelpError(DOOM_HELP_ERROR_CODE.disposed, 'The Doom Help service is disposed.');\n };\n const list = (): readonly DoomHelpContribution[] =>\n [...contributions.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notifyContributions = (): void => {\n const value = list();\n for (const listener of contributionListeners) listener(value);\n };\n\n const service: DoomHelpService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n if (!contributions.has(validated.source) && contributions.size >= DOOM_HELP_MAX_CONTRIBUTORS) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.contributorLimit,\n `Help accepts at most ${DOOM_HELP_MAX_CONTRIBUTORS} contributors.`,\n );\n }\n registrationSequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:help:${registrationSequence}`;\n contributions.set(validated.source, {\n token,\n generation: registrationGeneration,\n contribution: validated,\n });\n notifyContributions();\n let registrationDisposed = false;\n return Object.freeze({\n source: validated.source,\n generation: registrationGeneration,\n dispose() {\n if (registrationDisposed) return;\n registrationDisposed = true;\n if (contributions.get(validated.source)?.token !== token) return;\n contributions.delete(validated.source);\n notifyContributions();\n },\n });\n },\n listContributions: list,\n subscribeContributions(listener) {\n ensureActive();\n contributionListeners.add(listener);\n return () => contributionListeners.delete(listener);\n },\n getSnapshot: () => cloneSnapshot(snapshot),\n publish(draft) {\n ensureActive();\n if (draft.activation === 'inactive' && draft.skills.length > 0) {\n throw new DoomHelpError(DOOM_HELP_ERROR_CODE.inactiveSnapshot, 'Inactive Help snapshots cannot expose skills.');\n }\n const next: DoomHelpSnapshot = {\n hostGeneration: generation,\n revision: snapshot.revision + 1,\n activation: draft.activation,\n skills: draft.skills.map((skill) => ({ ...skill })),\n diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n if (!Check(DoomHelpSnapshotSchema, next)) {\n throw new DoomHelpError(\n DOOM_HELP_ERROR_CODE.invalidSnapshot,\n `Invalid Help snapshot${schemaFailure(DoomHelpSnapshotSchema, next)}.`,\n );\n }\n snapshot = next;\n const published = cloneSnapshot(snapshot);\n for (const listener of snapshotListeners) listener(cloneSnapshot(published));\n return published;\n },\n subscribeSnapshot(listener) {\n ensureActive();\n snapshotListeners.add(listener);\n return () => snapshotListeners.delete(listener);\n },\n bindSkillInventory(read) {\n ensureActive();\n const token = Symbol('help-skill-inventory');\n skillInventory = { token, read };\n return () => {\n if (skillInventory?.token === token) skillInventory = undefined;\n };\n },\n async inspectSkills() {\n if (disposed) return undefined;\n if (snapshot.activation === 'inactive') return [];\n const reader = skillInventory;\n if (!reader) return undefined;\n const revision = snapshot.revision;\n const paths = await reader.read();\n if (disposed || reader !== skillInventory || revision !== snapshot.revision || paths === undefined)\n return undefined;\n const accepted = new Set(paths);\n return snapshot.skills.filter((skill) => accepted.has(skill.filePath)).map((skill) => ({ ...skill }));\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n skillInventory = undefined;\n contributions.clear();\n contributionListeners.clear();\n snapshotListeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readDoomHelpService(context: Context): DoomHelpService | undefined {\n return context.get(DOOM_HELP_SERVICE) as DoomHelpService | undefined;\n}\n\nexport function requireDoomHelpService(context: Context): DoomHelpService {\n const service = readDoomHelpService(context);\n if (!service) throw new Error('Doom Help is unavailable. Load @agimon-ai/po-help.');\n return service;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"help.cjs","names":["Type","Errors","Check"],"sources":["../../../src/schemas/help.ts"],"sourcesContent":["import type { Context } from '@deepseek-ai/cordis';\nimport { type Static, Type } from 'typebox';\nimport { Check, Errors } from 'typebox/value';\n\n/** Provider-owned Cordis service for the live Help catalog. */\nexport const PO_HELP_SERVICE = 'po/help';\nexport const PO_HELP_WHEN = {\n state: { 'minor-mode': 'help' },\n attribution: { kind: 'minor', mode: 'help' },\n} as const;\nexport const PO_HELP_MAX_CONTRIBUTORS = 32;\nexport const PO_HELP_MAX_SKILLS = 64;\nexport const PO_HELP_MAX_DIAGNOSTICS = 64;\nexport const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;\nexport const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;\n\nconst MAX_SOURCE_LENGTH = 128;\nconst MAX_SKILL_NAME_LENGTH = 64;\nconst MAX_MODULE_URL_LENGTH = 4_096;\nconst MAX_IDENTIFIER_LENGTH = 256;\n\nexport const PO_HELP_ERROR_CODE = {\n contributorLimit: 'HELP_CONTRIBUTOR_LIMIT',\n disposed: 'HELP_DISPOSED',\n duplicateSkill: 'HELP_DUPLICATE_SKILL',\n inactiveSnapshot: 'HELP_INACTIVE_SNAPSHOT',\n invalidContribution: 'HELP_INVALID_CONTRIBUTION',\n invalidGeneration: 'HELP_INVALID_GENERATION',\n invalidSnapshot: 'HELP_INVALID_SNAPSHOT',\n} as const;\n\nexport type PoHelpErrorCode = (typeof PO_HELP_ERROR_CODE)[keyof typeof PO_HELP_ERROR_CODE];\n\nexport class PoHelpError extends Error {\n readonly code: PoHelpErrorCode;\n\n constructor(code: PoHelpErrorCode, message: string) {\n super(message);\n this.name = 'PoHelpError';\n this.code = code;\n }\n}\n\nexport const PoHelpSourceSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SOURCE_LENGTH,\n pattern: '^[A-Za-z0-9@][A-Za-z0-9@/._:-]*$',\n});\n\nexport const PoHelpSkillNameSchema = Type.String({\n minLength: 1,\n maxLength: MAX_SKILL_NAME_LENGTH,\n pattern: '^[a-z0-9][a-z0-9-]*$',\n});\n\nexport const PoHelpSkillDescriptorSchema = Type.Object(\n {\n name: PoHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DESCRIPTION_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSkillDescriptor = Static<typeof PoHelpSkillDescriptorSchema>;\n\nexport const PoHelpContributionSchema = Type.Object(\n {\n source: PoHelpSourceSchema,\n moduleUrl: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n skills: Type.Array(PoHelpSkillDescriptorSchema, { minItems: 1, maxItems: PO_HELP_MAX_SKILLS }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpContribution = Static<typeof PoHelpContributionSchema>;\n\nconst GenerationSchema = Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_LENGTH });\n\nexport const PoHelpActivationSchema = Type.Union([\n Type.Literal('inactive'),\n Type.Literal('activating'),\n Type.Literal('active'),\n Type.Literal('degraded'),\n]);\nexport type PoHelpActivation = Static<typeof PoHelpActivationSchema>;\n\nexport const PoHelpSkillSchema = Type.Object(\n {\n source: PoHelpSourceSchema,\n name: PoHelpSkillNameSchema,\n description: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DESCRIPTION_LENGTH }),\n filePath: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n baseDir: Type.String({ minLength: 1, maxLength: MAX_MODULE_URL_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSkill = Static<typeof PoHelpSkillSchema>;\n\nexport const PoHelpDiagnosticSchema = Type.Object(\n {\n source: Type.Optional(PoHelpSourceSchema),\n code: Type.String({ minLength: 1, maxLength: 64, pattern: '^[A-Z0-9_]+$' }),\n message: Type.String({ minLength: 1, maxLength: PO_HELP_MAX_DIAGNOSTIC_LENGTH }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpDiagnostic = Static<typeof PoHelpDiagnosticSchema>;\n\nexport const PoHelpSnapshotSchema = Type.Object(\n {\n hostGeneration: GenerationSchema,\n revision: Type.Integer({ minimum: 0 }),\n activation: PoHelpActivationSchema,\n skills: Type.Array(PoHelpSkillSchema, { maxItems: PO_HELP_MAX_SKILLS }),\n diagnostics: Type.Array(PoHelpDiagnosticSchema, { maxItems: PO_HELP_MAX_DIAGNOSTICS }),\n },\n { additionalProperties: false },\n);\nexport type PoHelpSnapshot = Static<typeof PoHelpSnapshotSchema>;\n\nexport interface PoHelpSnapshotDraft {\n readonly activation: PoHelpActivation;\n readonly skills: readonly PoHelpSkill[];\n readonly diagnostics: readonly PoHelpDiagnostic[];\n}\n\nexport interface PoHelpContributionHandle {\n readonly source: string;\n readonly generation: string;\n dispose(): void;\n}\n\n/** Direct, session-local registrar and query surface owned by po-help. */\nexport interface PoHelpService {\n readonly generation: string;\n register(contribution: PoHelpContribution): PoHelpContributionHandle;\n listContributions(): readonly PoHelpContribution[];\n subscribeContributions(listener: (contributions: readonly PoHelpContribution[]) => void): () => void;\n getSnapshot(): PoHelpSnapshot;\n publish(snapshot: PoHelpSnapshotDraft): PoHelpSnapshot;\n subscribeSnapshot(listener: (snapshot: PoHelpSnapshot) => void): () => void;\n /** Bind the skill consumer's accepted file paths, without duplicating its inventory. */\n bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;\n /** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */\n inspectSkills(): Promise<readonly PoHelpSkill[] | undefined>;\n dispose(): void;\n}\n\ndeclare module '@deepseek-ai/cordis' {\n interface Context {\n 'po/help': PoHelpService;\n }\n}\n\ninterface RegisteredContribution {\n readonly token: symbol;\n readonly generation: string;\n readonly contribution: PoHelpContribution;\n}\n\nfunction schemaFailure(schema: typeof PoHelpContributionSchema | typeof PoHelpSnapshotSchema, value: unknown): string {\n const [first] = Errors(schema, value);\n return first ? ` at ${first.instancePath || '/'}: ${first.message}` : '';\n}\n\nfunction cloneContribution(contribution: PoHelpContribution): PoHelpContribution {\n return {\n source: contribution.source,\n moduleUrl: contribution.moduleUrl,\n skills: contribution.skills.map((skill) => ({ ...skill })),\n };\n}\n\nfunction cloneSnapshot(snapshot: PoHelpSnapshot): PoHelpSnapshot {\n return {\n ...snapshot,\n skills: snapshot.skills.map((skill) => ({ ...skill })),\n diagnostics: snapshot.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n}\n\nfunction validateContribution(contribution: PoHelpContribution): PoHelpContribution {\n if (!Check(PoHelpContributionSchema, contribution)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.invalidContribution,\n `Invalid Help contribution${schemaFailure(PoHelpContributionSchema, contribution)}.`,\n );\n }\n const names = new Set<string>();\n for (const skill of contribution.skills) {\n if (names.has(skill.name)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.duplicateSkill,\n `Help contribution '${contribution.source}' declares duplicate skill '${skill.name}'.`,\n );\n }\n names.add(skill.name);\n }\n return cloneContribution(contribution);\n}\n\n/** Creates the provider-owned Help service value for one Cordis session. */\nexport function createPoHelpService(generation: string): PoHelpService {\n if (!Check(GenerationSchema, generation)) {\n throw new PoHelpError(PO_HELP_ERROR_CODE.invalidGeneration, 'Po Help requires a valid generation.');\n }\n\n const contributions = new Map<string, RegisteredContribution>();\n const contributionListeners = new Set<(value: readonly PoHelpContribution[]) => void>();\n const snapshotListeners = new Set<(value: PoHelpSnapshot) => void>();\n let registrationSequence = 0;\n let disposed = false;\n let skillInventory: { token: symbol; read: () => Promise<readonly string[] | undefined> } | undefined;\n let snapshot: PoHelpSnapshot = {\n hostGeneration: generation,\n revision: 0,\n activation: 'inactive',\n skills: [],\n diagnostics: [],\n };\n\n const ensureActive = (): void => {\n if (disposed) throw new PoHelpError(PO_HELP_ERROR_CODE.disposed, 'The Po Help service is disposed.');\n };\n const list = (): readonly PoHelpContribution[] =>\n [...contributions.values()]\n .map(({ contribution }) => cloneContribution(contribution))\n .sort((left, right) => left.source.localeCompare(right.source));\n const notifyContributions = (): void => {\n const value = list();\n for (const listener of contributionListeners) listener(value);\n };\n\n const service: PoHelpService = {\n generation,\n register(contribution) {\n ensureActive();\n const validated = validateContribution(contribution);\n if (!contributions.has(validated.source) && contributions.size >= PO_HELP_MAX_CONTRIBUTORS) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.contributorLimit,\n `Help accepts at most ${PO_HELP_MAX_CONTRIBUTORS} contributors.`,\n );\n }\n registrationSequence += 1;\n const token = Symbol(validated.source);\n const registrationGeneration = `${generation}:help:${registrationSequence}`;\n contributions.set(validated.source, {\n token,\n generation: registrationGeneration,\n contribution: validated,\n });\n notifyContributions();\n let registrationDisposed = false;\n return Object.freeze({\n source: validated.source,\n generation: registrationGeneration,\n dispose() {\n if (registrationDisposed) return;\n registrationDisposed = true;\n if (contributions.get(validated.source)?.token !== token) return;\n contributions.delete(validated.source);\n notifyContributions();\n },\n });\n },\n listContributions: list,\n subscribeContributions(listener) {\n ensureActive();\n contributionListeners.add(listener);\n return () => contributionListeners.delete(listener);\n },\n getSnapshot: () => cloneSnapshot(snapshot),\n publish(draft) {\n ensureActive();\n if (draft.activation === 'inactive' && draft.skills.length > 0) {\n throw new PoHelpError(PO_HELP_ERROR_CODE.inactiveSnapshot, 'Inactive Help snapshots cannot expose skills.');\n }\n const next: PoHelpSnapshot = {\n hostGeneration: generation,\n revision: snapshot.revision + 1,\n activation: draft.activation,\n skills: draft.skills.map((skill) => ({ ...skill })),\n diagnostics: draft.diagnostics.map((diagnostic) => ({ ...diagnostic })),\n };\n if (!Check(PoHelpSnapshotSchema, next)) {\n throw new PoHelpError(\n PO_HELP_ERROR_CODE.invalidSnapshot,\n `Invalid Help snapshot${schemaFailure(PoHelpSnapshotSchema, next)}.`,\n );\n }\n snapshot = next;\n const published = cloneSnapshot(snapshot);\n for (const listener of snapshotListeners) listener(cloneSnapshot(published));\n return published;\n },\n subscribeSnapshot(listener) {\n ensureActive();\n snapshotListeners.add(listener);\n return () => snapshotListeners.delete(listener);\n },\n bindSkillInventory(read) {\n ensureActive();\n const token = Symbol('help-skill-inventory');\n skillInventory = { token, read };\n return () => {\n if (skillInventory?.token === token) skillInventory = undefined;\n };\n },\n async inspectSkills() {\n if (disposed) return undefined;\n if (snapshot.activation === 'inactive') return [];\n const reader = skillInventory;\n if (!reader) return undefined;\n const revision = snapshot.revision;\n const paths = await reader.read();\n if (disposed || reader !== skillInventory || revision !== snapshot.revision || paths === undefined)\n return undefined;\n const accepted = new Set(paths);\n return snapshot.skills.filter((skill) => accepted.has(skill.filePath)).map((skill) => ({ ...skill }));\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n skillInventory = undefined;\n contributions.clear();\n contributionListeners.clear();\n snapshotListeners.clear();\n },\n };\n return Object.freeze(service);\n}\n\nexport function readPoHelpService(context: Context): PoHelpService | undefined {\n return context.get(PO_HELP_SERVICE) as PoHelpService | undefined;\n}\n\nexport function requirePoHelpService(context: Context): PoHelpService {\n const service = readPoHelpService(context);\n if (!service) throw new Error('Po Help is unavailable. Load @agimon-ai/po-help.');\n return service;\n}\n"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { Static, Type } from "typebox";
2
2
  import { Context } from "@deepseek-ai/cordis";
3
3
  //#region src/schemas/help.d.ts
4
4
  /** Provider-owned Cordis service for the live Help catalog. */
5
- export declare const DOOM_HELP_SERVICE = "doom/help";
6
- export declare const DOOM_HELP_WHEN: {
5
+ export declare const PO_HELP_SERVICE = "po/help";
6
+ export declare const PO_HELP_WHEN: {
7
7
  readonly state: {
8
8
  readonly 'minor-mode': 'help';
9
9
  };
@@ -12,12 +12,12 @@ export declare const DOOM_HELP_WHEN: {
12
12
  readonly mode: 'help';
13
13
  };
14
14
  };
15
- export declare const DOOM_HELP_MAX_CONTRIBUTORS = 32;
16
- export declare const DOOM_HELP_MAX_SKILLS = 64;
17
- export declare const DOOM_HELP_MAX_DIAGNOSTICS = 64;
18
- export declare const DOOM_HELP_MAX_DESCRIPTION_LENGTH = 512;
19
- export declare const DOOM_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
20
- export declare const DOOM_HELP_ERROR_CODE: {
15
+ export declare const PO_HELP_MAX_CONTRIBUTORS = 32;
16
+ export declare const PO_HELP_MAX_SKILLS = 64;
17
+ export declare const PO_HELP_MAX_DIAGNOSTICS = 64;
18
+ export declare const PO_HELP_MAX_DESCRIPTION_LENGTH = 512;
19
+ export declare const PO_HELP_MAX_DIAGNOSTIC_LENGTH = 512;
20
+ export declare const PO_HELP_ERROR_CODE: {
21
21
  readonly contributorLimit: 'HELP_CONTRIBUTOR_LIMIT';
22
22
  readonly disposed: 'HELP_DISPOSED';
23
23
  readonly duplicateSkill: 'HELP_DUPLICATE_SKILL';
@@ -26,19 +26,19 @@ export declare const DOOM_HELP_ERROR_CODE: {
26
26
  readonly invalidGeneration: 'HELP_INVALID_GENERATION';
27
27
  readonly invalidSnapshot: 'HELP_INVALID_SNAPSHOT';
28
28
  };
29
- export type DoomHelpErrorCode = (typeof DOOM_HELP_ERROR_CODE)[keyof typeof DOOM_HELP_ERROR_CODE];
30
- export declare class DoomHelpError extends Error {
31
- readonly code: DoomHelpErrorCode;
32
- constructor(code: DoomHelpErrorCode, message: string);
29
+ export type PoHelpErrorCode = (typeof PO_HELP_ERROR_CODE)[keyof typeof PO_HELP_ERROR_CODE];
30
+ export declare class PoHelpError extends Error {
31
+ readonly code: PoHelpErrorCode;
32
+ constructor(code: PoHelpErrorCode, message: string);
33
33
  }
34
- export declare const DoomHelpSourceSchema: Type.TString;
35
- export declare const DoomHelpSkillNameSchema: Type.TString;
36
- export declare const DoomHelpSkillDescriptorSchema: Type.TObject<{
34
+ export declare const PoHelpSourceSchema: Type.TString;
35
+ export declare const PoHelpSkillNameSchema: Type.TString;
36
+ export declare const PoHelpSkillDescriptorSchema: Type.TObject<{
37
37
  name: Type.TString;
38
38
  description: Type.TString;
39
39
  }>;
40
- export type DoomHelpSkillDescriptor = Static<typeof DoomHelpSkillDescriptorSchema>;
41
- export declare const DoomHelpContributionSchema: Type.TObject<{
40
+ export type PoHelpSkillDescriptor = Static<typeof PoHelpSkillDescriptorSchema>;
41
+ export declare const PoHelpContributionSchema: Type.TObject<{
42
42
  source: Type.TString;
43
43
  moduleUrl: Type.TString;
44
44
  skills: Type.TArray<Type.TObject<{
@@ -46,24 +46,24 @@ export declare const DoomHelpContributionSchema: Type.TObject<{
46
46
  description: Type.TString;
47
47
  }>>;
48
48
  }>;
49
- export type DoomHelpContribution = Static<typeof DoomHelpContributionSchema>;
50
- export declare const DoomHelpActivationSchema: Type.TUnion<[Type.TLiteral<"inactive">, Type.TLiteral<"activating">, Type.TLiteral<"active">, Type.TLiteral<"degraded">]>;
51
- export type DoomHelpActivation = Static<typeof DoomHelpActivationSchema>;
52
- export declare const DoomHelpSkillSchema: Type.TObject<{
49
+ export type PoHelpContribution = Static<typeof PoHelpContributionSchema>;
50
+ export declare const PoHelpActivationSchema: Type.TUnion<[Type.TLiteral<"inactive">, Type.TLiteral<"activating">, Type.TLiteral<"active">, Type.TLiteral<"degraded">]>;
51
+ export type PoHelpActivation = Static<typeof PoHelpActivationSchema>;
52
+ export declare const PoHelpSkillSchema: Type.TObject<{
53
53
  source: Type.TString;
54
54
  name: Type.TString;
55
55
  description: Type.TString;
56
56
  filePath: Type.TString;
57
57
  baseDir: Type.TString;
58
58
  }>;
59
- export type DoomHelpSkill = Static<typeof DoomHelpSkillSchema>;
60
- export declare const DoomHelpDiagnosticSchema: Type.TObject<{
59
+ export type PoHelpSkill = Static<typeof PoHelpSkillSchema>;
60
+ export declare const PoHelpDiagnosticSchema: Type.TObject<{
61
61
  source: Type.TOptional<Type.TString>;
62
62
  code: Type.TString;
63
63
  message: Type.TString;
64
64
  }>;
65
- export type DoomHelpDiagnostic = Static<typeof DoomHelpDiagnosticSchema>;
66
- export declare const DoomHelpSnapshotSchema: Type.TObject<{
65
+ export type PoHelpDiagnostic = Static<typeof PoHelpDiagnosticSchema>;
66
+ export declare const PoHelpSnapshotSchema: Type.TObject<{
67
67
  hostGeneration: Type.TString;
68
68
  revision: Type.TInteger;
69
69
  activation: Type.TUnion<[Type.TLiteral<"inactive">, Type.TLiteral<"activating">, Type.TLiteral<"active">, Type.TLiteral<"degraded">]>;
@@ -80,40 +80,40 @@ export declare const DoomHelpSnapshotSchema: Type.TObject<{
80
80
  message: Type.TString;
81
81
  }>>;
82
82
  }>;
83
- export type DoomHelpSnapshot = Static<typeof DoomHelpSnapshotSchema>;
84
- export interface DoomHelpSnapshotDraft {
85
- readonly activation: DoomHelpActivation;
86
- readonly skills: readonly DoomHelpSkill[];
87
- readonly diagnostics: readonly DoomHelpDiagnostic[];
83
+ export type PoHelpSnapshot = Static<typeof PoHelpSnapshotSchema>;
84
+ export interface PoHelpSnapshotDraft {
85
+ readonly activation: PoHelpActivation;
86
+ readonly skills: readonly PoHelpSkill[];
87
+ readonly diagnostics: readonly PoHelpDiagnostic[];
88
88
  }
89
- export interface DoomHelpContributionHandle {
89
+ export interface PoHelpContributionHandle {
90
90
  readonly source: string;
91
91
  readonly generation: string;
92
92
  dispose(): void;
93
93
  }
94
94
  /** Direct, session-local registrar and query surface owned by po-help. */
95
- export interface DoomHelpService {
95
+ export interface PoHelpService {
96
96
  readonly generation: string;
97
- register(contribution: DoomHelpContribution): DoomHelpContributionHandle;
98
- listContributions(): readonly DoomHelpContribution[];
99
- subscribeContributions(listener: (contributions: readonly DoomHelpContribution[]) => void): () => void;
100
- getSnapshot(): DoomHelpSnapshot;
101
- publish(snapshot: DoomHelpSnapshotDraft): DoomHelpSnapshot;
102
- subscribeSnapshot(listener: (snapshot: DoomHelpSnapshot) => void): () => void;
97
+ register(contribution: PoHelpContribution): PoHelpContributionHandle;
98
+ listContributions(): readonly PoHelpContribution[];
99
+ subscribeContributions(listener: (contributions: readonly PoHelpContribution[]) => void): () => void;
100
+ getSnapshot(): PoHelpSnapshot;
101
+ publish(snapshot: PoHelpSnapshotDraft): PoHelpSnapshot;
102
+ subscribeSnapshot(listener: (snapshot: PoHelpSnapshot) => void): () => void;
103
103
  /** Bind the skill consumer's accepted file paths, without duplicating its inventory. */
104
104
  bindSkillInventory(read: () => Promise<readonly string[] | undefined>): () => void;
105
105
  /** Accepted Help skills, or undefined while the consumer is absent, discovering, or superseded. */
106
- inspectSkills(): Promise<readonly DoomHelpSkill[] | undefined>;
106
+ inspectSkills(): Promise<readonly PoHelpSkill[] | undefined>;
107
107
  dispose(): void;
108
108
  }
109
109
  declare module '@deepseek-ai/cordis' {
110
110
  interface Context {
111
- 'doom/help': DoomHelpService;
111
+ 'po/help': PoHelpService;
112
112
  }
113
113
  }
114
114
  /** Creates the provider-owned Help service value for one Cordis session. */
115
- export declare function createDoomHelpService(generation: string): DoomHelpService;
116
- export declare function readDoomHelpService(context: Context): DoomHelpService | undefined;
117
- export declare function requireDoomHelpService(context: Context): DoomHelpService;
115
+ export declare function createPoHelpService(generation: string): PoHelpService;
116
+ export declare function readPoHelpService(context: Context): PoHelpService | undefined;
117
+ export declare function requirePoHelpService(context: Context): PoHelpService;
118
118
  //#endregion
119
119
  //# sourceMappingURL=help.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.mts","names":[],"sources":["../../../src/schemas/help.ts"],"mappings":";;;;qBAKa;qBACA;WACX;aAAS;;WACT;aAAe;aAAe;;;qBAEnB;qBACA;qBACA;qBACA;qBACA;qBAOA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;YAGU,4BAA4B,mCAAmC;qBAE9D,sBAAsB;WACxB,MAAM;EAEf,YAAY,MAAM,mBAAmB;;qBAO1B,sBAAoB,KAAA;qBAMpB,yBAAuB,KAAA;qBAMvB,+BAA6B,KAAA;;;;YAO9B,0BAA0B,cAAc;qBAEvC,4BAA0B,KAAA;;;;;;;;YAQ3B,uBAAuB,cAAc;qBAIpC,0BAAwB,KAAA,QAAA,KAAA,sBAAA,KAAA,wBAAA,KAAA,oBAAA,KAAA;YAMzB,qBAAqB,cAAc;qBAElC,qBAAmB,KAAA;;;;;;;YAUpB,gBAAgB,cAAc;qBAE7B,0BAAwB,KAAA;;;;;YAQzB,qBAAqB,cAAc;qBAElC,wBAAsB,KAAA;;;;;;;;;;;;;;;;;YAUvB,mBAAmB,cAAc;iBAE5B;WACN,YAAY;WACZ,iBAAiB;WACjB,sBAAsB;;iBAGhB;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,uBAAuB;EAC9C,8BAA8B;EAC9B,uBAAuB,WAAW,wBAAwB;EAC1D,eAAe;EACf,QAAQ,UAAU,wBAAwB;EAC1C,kBAAkB,WAAW,UAAU;;EAEvC,mBAAmB,YAAY;;EAE/B,iBAAiB,iBAAiB;EAClC;;;YAIU;IACR,aAAa;;;;wBAuDD,sBAAsB,qBAAqB;wBAmI3C,oBAAoB,SAAS,UAAU;wBAIvC,uBAAuB,SAAS,UAAU"}
1
+ {"version":3,"file":"help.d.mts","names":[],"sources":["../../../src/schemas/help.ts"],"mappings":";;;;qBAKa;qBACA;WACX;aAAS;;WACT;aAAe;aAAe;;;qBAEnB;qBACA;qBACA;qBACA;qBACA;qBAOA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;YAGU,0BAA0B,iCAAiC;qBAE1D,oBAAoB;WACtB,MAAM;EAEf,YAAY,MAAM,iBAAiB;;qBAOxB,oBAAkB,KAAA;qBAMlB,uBAAqB,KAAA;qBAMrB,6BAA2B,KAAA;;;;YAO5B,wBAAwB,cAAc;qBAErC,0BAAwB,KAAA;;;;;;;;YAQzB,qBAAqB,cAAc;qBAIlC,wBAAsB,KAAA,QAAA,KAAA,sBAAA,KAAA,wBAAA,KAAA,oBAAA,KAAA;YAMvB,mBAAmB,cAAc;qBAEhC,mBAAiB,KAAA;;;;;;;YAUlB,cAAc,cAAc;qBAE3B,wBAAsB,KAAA;;;;;YAQvB,mBAAmB,cAAc;qBAEhC,sBAAoB,KAAA;;;;;;;;;;;;;;;;;YAUrB,iBAAiB,cAAc;iBAE1B;WACN,YAAY;WACZ,iBAAiB;WACjB,sBAAsB;;iBAGhB;WACN;WACA;EACT;;;iBAIe;WACN;EACT,SAAS,cAAc,qBAAqB;EAC5C,8BAA8B;EAC9B,uBAAuB,WAAW,wBAAwB;EAC1D,eAAe;EACf,QAAQ,UAAU,sBAAsB;EACxC,kBAAkB,WAAW,UAAU;;EAEvC,mBAAmB,YAAY;;EAE/B,iBAAiB,iBAAiB;EAClC;;;YAIU;IACR,WAAW;;;;wBAoDC,oBAAoB,qBAAqB;wBAmIzC,kBAAkB,SAAS,UAAU;wBAIrC,qBAAqB,SAAS,UAAU"}